TWI297569B - Apparatus for compressing data in a bit stream or bit pattern - Google Patents

Apparatus for compressing data in a bit stream or bit pattern Download PDF

Info

Publication number
TWI297569B
TWI297569B TW093132226A TW93132226A TWI297569B TW I297569 B TWI297569 B TW I297569B TW 093132226 A TW093132226 A TW 093132226A TW 93132226 A TW93132226 A TW 93132226A TW I297569 B TWI297569 B TW I297569B
Authority
TW
Taiwan
Prior art keywords
mask
logic
bits
bit
pixel
Prior art date
Application number
TW093132226A
Other languages
English (en)
Other versions
TW200515717A (en
Inventor
Timour Paltachev
Boris Prokopenko
Original Assignee
Via Tech 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 Tech Inc filed Critical Via Tech Inc
Publication of TW200515717A publication Critical patent/TW200515717A/zh
Application granted granted Critical
Publication of TWI297569B publication Critical patent/TWI297569B/zh

Links

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)

Description

1297569 九、發明說明: 【相關申請案之交互參考】 本申請案優先權之申請係根據美國專利暫時申請案,申請案號為 6()/515,841、申請日為2003年10月29日,而本發明係結合其全部的内容 及目的作為參考文獻。 美國申請曰期題目 6〇/515?841 2003/10/29
System and method for providing variable length compression between successive bit
【發明所屬之技術領域】 本發明係有輯圖系統;_是有關於—種位元流或位元樣型 pattem)中資料壓縮的裝置。 【先前技術】 會协! f ^所知’二維(3D ; three-dimensional)電會圖技術與科學著 S (rendering) 顯干d,員不^ ’如CRT (傳統映像管顯示器)、LCD (平面液晶 連接的平面;邊=表為:的物件其可以藉由- 件藉由-系列連接的平面三角开,來現至一顯示裝置,例如:將物 一頂點或-組頂點來敘述件。所以幾何圖綠後能夠以 線段的終點或—多邊形的’座標(X,y,z)用以定義—個點以及- 1297569 為了產生一資料組以藉由投射表示三維圖元至二維空間之觀看平面, 而呈現影像資料於一電腦螢幕或其他顯示裝置,圖元的許多頂點藉由一系 列的運算或繪圖彩現管線(graphics_rendering pipeline)的處理階段來加以處 理。一般的管線僅為一系列串聯處理單元或處理階段,其中前一階段的輸 出將被當作下一隨後階段的輸入。一繪圖處理器中包含許多階段,例如: 每一頂點運算(per-vertex operations)、圖元配置運算(primitive assembly operations)、像素運算(pixel 〇perati〇ns)、材質配置運算(咖肌挪⑽脚、 operations )、圖形描繪運算(rasterizati〇n 〇perati〇ns )以及資料分段運算 (fragment operations )。 在一典型繪圖顯示系統中,一影像資料庫(例如··一指令集)可以儲 存在此場景(scene)中的許多物件之描述。這些物件以一些小多邊形被加_ 以描述’這些多邊形覆蓋該物件的表面,許多分割圖塊⑽⑷以同樣的 方式覆蓋一牆面或其他表面。每一多邊形被描述為頂點座標(模型座標中 的Π、Z:的列表’以及材料表面性質的一些規袼詳述(例如:顏色、 材質、亮度等等),也有可能包含每一頂點至該表面的法線向量。對於具 有複雜曲面的三維物件而言,多邊形—般必須是三角形或四邊形,而後者 通常可以被分解成許多成對的三角形。 一轉換引擎用以轉換物件的座標來對應至使用者輸入所選擇的觀看角 度。此外’使用者可以指定瀏覽的區域、所製造影像的大小、瀏覽區塊所· 涵蓋的體積,以便使用者依其所需包含或去除背景。 旦劉覽區域被選擇之後,一修剪邏輯(clipping 1〇咏)用以去除 ^覽區域範圍的多邊形(例如:三角形),接著修煎該些多邊形,其有 可能部分在範圍之内而部分在範圍之外。這些修剪過後的多邊形相當ς具 有新的邊緣(edges)的_區域内之多邊形,而這些新的邊緣相當於劉賢 ^的該些邊緣。接著,多邊形的頂點,相當於劉覽營幕座標(χ、γ 以及每-頂點的相關深度(即Ζ座標),被傳送至下一階段。接著= 7 1297569 以應 用 典型系統中,-光影模組(lighting m〇del) 。這些多邊形包含其顏色值被傳送至一描緣處理器(_财)?。加 ^每-多邊形而言’描繪處理器決定哪些像素位置被多邊形所覆 4嶋_,色值及深度值(即z值)寫人至訊框緩衝器(丘屢 1 er)。描繪處理器將那些正在被處理 、° =較,其亦可以是已經·至訊二=r= =素的=度值係為較小的’意謂其位於已g入至訊框緩衝器之多邊形 =京τ將會取代訊框緩衝器中的值’係因新的多邊形將遮掩前次 2形_繪出(_ed)。此時,—(vldeQ =;= 展不-訊滅衝器_容依據描繪之瓣—次以—掃赠展示出。 μΪΪϊΪ技術背景的描述,接著參照第—圖所示,其係展示一電腦繪 =統^_官線之數個單元功能流程圖。此處需要說_是,在繪圖管 ^ ^早7G可關應著不同线而有所不同,且將以不同方式加以說明。 j豕所知,-主機電腦1G,或者一主機電腦中所執行的繪圖顧程式介 面(aPPh0at1〇nprogramming interface ;綱),可以產生一指令隹 u,其勺 含-系列晴圖指令及資·以展現於—賴顯示環境。義^線中的= 件可以在齡集12巾的資料及齡運算,來藉此展麟—職顯示環境。 一^^點而言,語法解析器(p臟)14可以從指令集12擷取資料、 ,由故些減加以剖析並藉此解釋這些齡,以及沿著糊管線通過資料 1義圖元(primitive)。圖元可以藉由位置資料(例如:x、y、z以及w座 ^)、光影以及材質資訊被加以定義。對於每—圖^而言,這些資訊可以 從指令集12被語法解析器14所擷取,且通過至一頂點著色器 咖=)16。如大家所知,頂點著色器16可以針對從指令集12接收到的緣 圖:貝料作不同的轉換。就這—點而言,這些資料可以從世界座標(肅以 coordinates)轉換至模型瀏覽座標(m〇del view c〇〇rdinates)、投影座標
1297569 /projectioncoordinates)以及最後轉換至螢幕座標。由頂點著色器%所執 行的功能性處理係為熟悉此技術領域人士所知曉且不需要於此處贅述。之 後,繪圖資料可以被傳送至描繪處理器18,其運作原理係如上所述。 接著,正被運算的圖元中每一像素將立即進行2測試伽)。如大家 所知,此處的Z測試係為將一目前的2值(亦即,目前圖元一給定像素之z 值)與所儲存相對應像素位置的Z值加以比較。所儲存的z值提供每一先前 已彩現(previously- rendered)的圖元某一像素位置的深度值。假設目前的 z值顯示,一深度相比於所儲存的z值係較接近瀏覽者眼睛時,則目前的z 值將取代所儲存的z值,而目前的_資訊(亦即,顏色值)將取代在相 對應的訊框缓衝器中像素位置(由像素著色器22所決定)之顏色資訊。假 設目前的z值相比於所儲存❺z值,較為不接近於目前的觀看點 (viewpoint),則訊框緩衝器及2緩衝器的内容不需要被取代,先前已彩現 的像素將被視作在目前像素的前面。 再-人地,對於那些位於圖元中已彩現(rendered)的像素,其被判定為 相比於先前儲存的像素係較為接近觀看點,則那些跟圖元有關的資訊將會 被傳送至像素著色器(pixel Shader)22,其決定圖元中被判定為較為接近目^ 觀看點的每-像素之顏色資訊。—旦像素著色器22已計算顏色資訊,此資 訊將被儲存在訊框緩衝器24。 、、 、 雖然前述已經簡要地敘述不同處理元件的運算,凡熟悉此技術領域的 人士皆認騎圖資料的處理是相當重要的。!^此亟需提高輯處理的效率。 【發明内容】 本發明之目的、優點及特點將於其後詳加敘述,且其對於熟知本技術 項域之專門人士應可明瞭及貫施。本發明之目的、優點並不應受限於本實 靶例,反而其意圖在涵盍有關本發明精神及在附屬申請專利範圍中所定義 的發明範圍所有可替代、修正的及類似的案件。
1297569 根據本發明一具體實施例的一種邏輯結構,係用以提供所輸入訊號或 位元可變長度(variable-length)的資料壓縮。此一實施例包含多排複數個 多工器(multiplexers),其中第一排多工器具有多個輸入,其連接至跟待壓 縮之資料有關(或待壓縮之資料代表性位置)的訊號。下一排多工器具有 多個輸入,其連接到前一排多工器的輸出。多工器的選擇線(selectlines) 係被控制的,使得與第一排多工器輸入所提供訊號有關的資料可以被壓縮。 根據本發明另一具體實施例的一種繪圖系統,包含一邏輯用以產生一 遮罩來辨識複數個位元中未被一隨後的計算所影響(impacted)的位元。上 述之繪圖系統更包含一對應至該遮罩的壓縮邏輯,用以產生一壓縮位元流 (bitstream) ’使得未被該計算所影響的該些位元未包含於該壓縮位元流之 中。 根據本發明又一具體實施例的一種緣圖系統,包含一邏輯用以產生一 遮罩來辨識位元流巾複數恤置在—壓賴算賴紐移除的位置。上述 之緣圖系統更包含-對應至該遮罩的邏輯,用以產生_壓縮位元流,使得 應被移除職些錄齡-適當的量錢化挪移相難置的内絲加以移 除,如此得以覆蓋那些應被移除(或前次被挪移)的位置之内容。 本發明的其他實施例以及其差異將於後面詳細敘述。 【實施方式】 本發明的-些實施例將詳細描述如下。然:而,除了如下描述外,本發 其他的實施例施行,且本發明的範圍並不受實施例之^ 發日利範圍為準。再者,為提供更清楚的描述及更易理解本 照其姆尺稍®,赵財與其他相關尺 度相比已μ皮誇張;不相關之細節部分也未完全緣出,以求
1297569 如同前面已·魏’树縣域供—齡位元流錄 2料續位元位置(或多組位W中可變長度舰的纽。本發明一具 /關中包含-邏輯单疋’有時被稱為封裝程式(packer)與解封裝程式 (u—) ’係於硬體中加人該邏輯單元用以電腦繪圖系統。然而 需要力:以綱岐,本俩並秘於此實_之内。本發明—些具體實ς 現’其包含—個或多個用以壓縮f料的邏輯單元(有時被稱為封裝 或多侧萌義先前魏f料的邏輯單元(有時被稱為 為了更進,地詳述,本發明之無與觀點可實行於賴祕中的多 個位置(locations)。同樣地’其他與電腦緣圖有關的系統與環境,立仍位 癱 於本發明之精神與範圍之内。 在實订-像素著色(pixel-shading)運算之前,一實施例之特點可以被 實?,例丨::位元壓縮或像素難。如同其名稱卿以及如大家所知,像 素著色運异係以母一像素為墓礎而實行。然而,為了不同的理由,一給定 圖70的許?像素可以不需要進行像素著色運算。舉例來說,—圖元的部分 像素被其他圖元所遮蓋(例如:Z測試所判定),不需要在其上進行像素著 色運算。這些像素被傳送到像素著色器之前,被加以確認並從位元序列(bit 记quence)移除。就這一點而言,位元序列可以被加以壓縮使得那些被傳送 到像素著色器的像素才會被加以運算。 攀 接著,參照第二圖所示,其係為一方塊圖用以說明根據本發明一具體 貝方也例中數個基本緣圖元件。第二圖包含一繪圖單元11〇,其標示或代表一 繪圖管線中的硬體單元。在繪圖單元110中,邏輯112係用來提供一位元 序列中可受長度麗、纟但(例如·位元封裝)。同樣地,邏輯114係用來提供在 資料壓縮處理之後,位元序列中的解壓縮(例如:解封裝)。本發明的此一 具體實施例可以被實行在提供可程式處理某些功能的系統之中,諸如繪圖 處理單元(GPU ; graphic processing units)用以處理像素著色,而不是用專 11
1297569 用的硬體來實行此項魏。在這樣齡統巾,像素的齡(eliminati〇n)不 而要被處理’藉由上述的像素封裝處理,大幅地改善Gpu處理器可程式化 的效能。 繼續參照第三圖所示,其係為—方塊圖用以—般性地說明_繪圖管線 - 中數個元件,其可以據以實行本發明具體實施例之許多特點。⑹前所述, -主機電腦提供以-種圖元或幾何資料的形式輪入至一繪圖管線。關於此 資訊及相關資料係為眾所皆知,在此不加以贅述。如同更進一步所知,繪 圖官線包含-系列功能性單元及(或)邏輯單元,其被用以實行從主機電 腦所傳送的賴資訊之處理:L作。這些單元於第三圖巾加以敘述,例如: 第一單元120、第二單元130以及第N單元140。這些單元可以不同形式呈 暴 現,其隨著不同的實施可以有較大的差異,例如:緣圖硬體有不同的實施 方式之差異。然而,一般來說,處理器的前端(第一單元12〇)通常用以接 收圖元幾何資訊及實行某些幾何運算或以頂點為基礎的運算。這些運算的 類型包含轉換、光影、三角形設置等等。在一些實施例中,繪圖^線的前 端也可以包含用以實行棋盤形(tessellati〇n)運算的邏輯單元,其係將圖元 分離為較小的圖元或三角形。在進行繪圖管線前端運算之後,更進一步的 運异包含產生圖幅(span)及分割圖塊(tiies)、z測試、像素著色、…則試 及α混色等等,其中產生分割圖塊係藉由三角形描繪處理。這些運算係為熟 悉此技術之專業人士所熟知,因此不需要另行贅述。 本發明一具體實施例包含一封裝邏輯132,用以執行位於繪圖管線中内 部,的位元序列之封裝運算。在一實施例中,封裝運算通常係用於像素 運异,而非頂點運算。再者,封裝邏輯可被實行於一個以上的内部單元。 舉^來說,在一實施例中,封裝邏輯132可以在執行一像素著色運算之前 而提供。同樣地,封裝功能也可以被運用於Ζ壓縮器,其中ζ壓縮器用以 產生壓縮的ζ資訊。 接著’解封裝邏輯142可以被提供於封裝邏輯丨32之後。解封裝運算 本質上為封裝運算的反運算(inverse),較佳地係以與封裝運算相同,以及 12 1297569 伴,之邏輯結構與方法來實施。當然,用於封裝運算的遮罩亦被使用於解 封叙運异。因此,實行封裝運算的邏輯單元,其結構及運算之敘述已經足 以使彳于热悉此技藝人士知道解封裝運算之實施方式。 第四圖為一方塊圖用以說明一繪圖管線多個單元用以實施封裝及解封 裝功旎,其具有根據本發明一具體實施例中的多個單元。 , 更明確地說,第四圖說明本發明一具體實施例之繪圖管線,其係運用 了迕多傳統的單元藉以實施一些創新性特點。舉例來說,指令語法解析器 162、頂點及幾何著色器164、三角形設置166,以及圖幅與分割圖塊的產 生⑽、皆為已知的運算’因此不需要加以贅述。同樣地,分割圖塊的z範 圍式170也疋已知,z測試在壓縮的z資料中執行。以這樣方式所執行之 壓縮的z測試可以藉由壓縮的zf訊得以續、細地接受某些圖元或續細地拒絕 某,圖元(或是兩者選-的方式)來改善其效能。此外,—個相似的測試 (每-像素測試)其可以由像素2測試方塊⑽來實行。 =z快取區塊172可以被_合至上述兩個測試方塊(亦即,分割圖塊 ^範圍測試170以及像素z測試18〇),如此可提供z資料的高速記憶體 予取例如·遂較於z緩衝區記憶體較為高速地取回及存取。此外 _器174。如大家所知,z資料(深度資料)可以被加以壓縮以 期效此及值輯算能得赌高。_,在本發明—频實施财,壓缩z 機制^將z資料封裝邏輯176及解封裝邏輯i78的單元來實施。 同以下將詳細敘述的,—像素遮罩(使用深度資訊所產 ii二,蚊餅動叫度邊· ㈣,其係造成位元或 >料中的貧料被移動,使提二欠 及挪移運算之前,需事先減蓋。在實行此壓縮 如:z範圍測試)所影響。•來獲知哪些像素紐不被—計算(例 口鬼(例如:44像素分割圖塊、8 8像素分割圖 13 1297569 〒¥—%修如正替換頁 塊或其他尺寸的分觸塊)僅儲存此—分_塊z㈣最小值及最大值。 在這樣的情況下,-個16像素分細塊之z值將會從16壓縮至2 (亦即, 最小值及最大值)。而2壓縮器174可以藉由分派單一位元至每一分割 的位置,以及假設雜素不是此分_塊z _最小值就是其最大值,則 對於-給定分瀬·絲說在綠元記錄為丨,如縣產生—44像 割,塊的像素鮮。而〇將被記錄在所有其他辭驗元位置。接著 衣邏輯176 Y以左#與像素位置(遮罩值為1)有關的像素資訊,而移除其 t斤有ί素該。在此—實施财,僅有壓縮的資職傳送至方塊⑽以 仃Ζ範圍測試。消除那些未受到ζ範圍測試之計算所影響的資料,用以 >、此邏輯方塊執行的運算並藉此改善其計算效能。 “第四圖中的緣圖管線也說明了用以執行像素封裝運算的邏輯182、像素 H器184、執如職的方塊186及㈣執行像素解難運算的邏輯咖 =者色184及α測試方塊186皆為熟悉此技藝之人士所知道,因此不另 二t如同其名稱所示,像素著色器184係以像素為基礎來執行一著色運 =胁—給狂被運算的繪_元來說,或是對於以分觸塊為基礎運 =:給定分棚塊的,通常—定數量的像素最後會被視覺化至一使用 根據深度資訊、介於目前像素及觀看點之_其他物件所阻礙)。 縮傻2Ϊ的像素而言’像素著色及_試運算不需要被執行。因此,需要壓 塑使得僅有那些不受由像素著色器及(或)α測試運算之計算所影 曰 <貝矾或資料通過此管線被傳送至這些邏輯方塊。 的傻Ϊί封裝邏輯182可以執行從_ #線的上部通過至像素封裝邏輯182 裝邏較之壓縮。像素封裝邏輯182的運算與封裝邏輯176類似,而封 進n6結合ζ壓縮11 174的運作原理已於前面簡要敘述。以下將繼續 用攻相是,其可以基於深度錄訊形成—遮罩(例如-像素遮罩), 用的^^料的壓縮。更明確地而言,在執行像素著色或α测試時那些被使 、=影響的資料將被加以壓縮,而那些未被這些運算或計算影響的資 ’ 一經由管線傳送至邏輯方塊(像素著色器184及α測試186)二前, 1297569 9VY· I mb幽^ 資料由像素解封裝188的 由位元流(bit stream)之中移除。最後,移除的 邏輯方塊所恢復。 ' 接著參照第五圖’其係包含第四配酬之部分單元 施例係為具有多錄行緒共时行處職錢 ^二 圖=的每,或邏輯方塊由專用硬趙所執;;===
一 旱可程式處理資源210來執行之。在-具體實施例中, 處理早兀可以使用夕重執行绪處理器別來實現,而此處理器可以包含一 規劃邈_以官理傳送至此處理器的卫作。此處需要詳細說_是,辭 邈輯282可以由-適合的遮罩224 (例如:像素遮罩)所控制,其可以时 辨識哪些位兀(像素)位置或儲存位置需被保存, 算或封裝運算中可以被捨棄。遮罩-可峨儲存在儲 中央存取的,可猶職雜所使用,鼠原先驗元賴可被恢復。
從-操作性或功能性觀點來看,第五圖說日鱗單元其實施方法盘第四 圖所對應的料相似。然而,因為第五圖中的__包含—多重執行緒 共用處理H 210,是故個卿輯方塊所執行的運算可以由處職21G所中央 ,理。在此-具體實施例中,儘管不同邏輯方塊之功能性觀_為相同(與 弟四圖相同),然而邏輯方塊之内不結構可以稍微地不同。 —如第四圖巾已敘述的,像素遮罩可以被封裝及解縣單元(也就是壓 縮器及解壓縮器)所使用。第五圖說明了兩個這樣的遮罩222及似,其可 =與其他資料儲存在以分割方塊為基礎的儲存區域裡22〇。當然,對於一給 疋刀剎圖塊而5,像素遮罩222的内容對於z壓縮器來說可以不同於像素 遮罩224的内容(像素封裝程式所相對應的分割圖塊)。因此,這些遮罩已 經於第五圖中分別敘述。 一 ^需要加以說明的是,如第五圖所敘述的系統中,根據本發明之具體實 知例所貝行的壓纟但其效盤是相當大的。也就是說,使用多重執行緒處理器 15 1297569 9V°H I修(k)正替换頁 210共旱麟之-實施例中,假設多重執行緒處理㈣效能增加,則系統整 體的效能亦明顯地增加。假如沒有實行根據本發明之具體實施例所實行的 壓縮^素著色器284可用其他方式傳送那些需要處理器21()加以處理的 像素貝料。對卿些不顯示於—顯示裝置的像素,任何在那些像素所執行 之像素著色運#將是大大地浪費。在執行像素著色運算時,—共享資源的 ,用(例如處理器210)可以避免處理器去處理其他請求或執行管線中其他 早7L的工作。因此,整體看來,像素封裝邏輯282所實行的壓縮可以提供 處理器210當其運算時具有顯著的改善。 接著,參照第六騎示,其係說明了根據本發明—具體實施例可使用 的-種遮罩的產生方式。此處需說明的是,為了方便說明本發明具體實施 例的許多觀點,第六A®至第六F圖已經過簡化。然而,熟悉此技藝之相 關技術領域人士可以據此而實施更為複雜一點或較為實際的例子。κ 參考第六A圖,其係為顯示晝面31〇邊界的三角形圖元32〇。眾所皆 知,’電職圖之顯示在單-繪醜示晝面巾,通常需要掃卿元千次, 或,數百次。這些圖元頻繁地被破壞成為三角形圖元,例如三角形32〇。如 大家所知,繪圖管線中較為前端單元用以在這些圖元上執行一些步驟及以 頂點為基礎的運算。圖幅及分割圖塊產生單元將一圖元分離為數條掃描線 322,如第六B圖所示,而分割圖塊係由垂直線324與交又的圖幅線322來 加以定義,如第六c圖所示。分割圖塊中的數個正方形通常被群組為2 2、 44、8 8或其他尺寸的分麵塊。第六Dgj說明了具有44像素的分則圖塊 326。分麵塊326的組合係可參考三角形圖元32〇。三角形圖元32〇位於 4 4分割圖塊範圍之外的部分將被捨棄,第六E圖說明了分割圖塊326及三 角形圖元320的重疊部分,係如平行線相交之陰影328所示。每一像素可 以由1或0(單一位元)來表示,其用以顯示圖元32〇是否佔據一給定像素 的支配部分(predominate portion)。就這一點而言,由第六D圖可以觀察到, 分割S1塊326像素的其中五個完全被圖元32〇所覆蓋。此五個像素分丁別位 於分割圖塊326的右下方處的四個像素以及此四個像素之上方的一個像 16 1297569 丨,%-$修.(k)正雜頁 素。同樣地’沿著分割圖塊326的左方垂直邊有四個像素沒有被圖元汹 所覆蓋。而其他像素則是部分為圖元32〇所覆蓋。一種用以減少圖形 失真或提賴元(其邊界落於不同像素之間)的混色效果之機制,其係 =皆知的且不需要贅述。從—鮮紐的娜來看,—像素遮罩^(= 照第六F圖所示)的產生可以藉由放置一個丨於像素位置上(其主要夸 為圖元320所覆蓋)。而上述結果可以是一像素遮罩,其具有如第六张 敘述的内容。 闺& 前述所提出的一種產生像素遮罩的方法,而其他較為複雜一些的方 也:以據岭施。舉例來說,那些完全或部分包含於_目咖元的其他圖 元珠度值貧訊,也可以被考慮進來。然而,此處需要說明的是,本發明二 不侷限於特定的方法或任何用以產生一像素遮罩的方法,但是不同的方法 皆不脫離本發明之精神和範圍内。就這一點而言,本發明的實施例中,一 像素遮罩(或其他遮罩)的產生需要考量到較為廣泛的方法。 基於前述,繼續參照第七圖所示,其係為一方塊圖用以說明根據本發 明-具體實施例。更為具體地說,第七圖說明了用以壓縮像素資料的綠^ 系統之f中一部分350,其係藉由纷圖管線或繪圖系統中的數個單元來執行 之後接續的運算。如同前面所提到的,繪圖資訊係從一主機傳送至繪圖管 線。-些步驟及頂點運算會被實行,但!會圖資料最後會不儲存在划ϋ 在執行圖幅及分测塊運算之後,記憶齡保持像素之錄個分割圖塊有 關的繪圖資料或内容。第七圖說明了-記憶體352,其具有— η的像素資料或内容。當然,記憶體352也可以包含其他分割圖塊师^ 邏輯354用以壓縮繪圖資料的内容,作為緣圖系統中其他 接心 運算或計算。壓賴輯用贿得-鮮執行義。賊點而言,遮罩^是 ,素位置’其具有不受-隨後運算或計算所影響的資料,也因此在壓縮運 算期間可以將之移除。在-較佳的實施例巾,此遮罩係為—像素遮罩。 接著,更進-步地說明第七圖,-像素遮罩356用以將分割圖塊η加 17 1297569 以壓縮。於-具體實輯輸出358,其包含八宝伯 塊Ί壓^素資料或内容。於另一具體實施例中,壓縮邏輯354二輪^ 執行的㈣(有效的解壓縮資料)。假如適當的話,處^或== ^中的運异早疋(用以執行壓縮資料的運)其可以從記憶體M2中掏取資 可以辑只斗ΛΛ π 貫例中弟七圖中所敘述的單元是 了凋正尺寸的,用以儲存及管理像素資料中多個分割圖塊的壓縮。 辦本考第人圖’其係為根據本發明另—實施例的方塊圖。在此-且 =封遮罩)被_ 362用來控制封裝程式祕 是里他*貝订輸人至封裝程式的解封裝像素資料3的(或 疋八K、至輸人有_峨)之可變 =:=素r (或與_裝資料有 示的單元以有獨財法触_以實麵第八圖所 關圖式,其 保漠補财發狀㈣專概騎界定者為準。 以0 魏。第九财的邏輯單元彻可以被用 變地_料(==)= 了練據本㈣―實施例用以可 例如一分割圖塊 自第九圖開始,健縮的資料可以由—赫器提供, 18
1297569 貝料鎖存器410。在前述已說明的實施例中,資料中有16位元位置(bit 〇 至bit 15)為待壓縮的。每一位元位置之訊號輸出連接至一多工器(係位於 第二排多工器)的輸入端。在一具體實施例中,分割圖塊資料鎖存器41〇 的每—位元位置對應至(或者與之相關聯)遮罩的一位元位置(例如,第 F圖所示)’其用以定義與分割圖塊資料鎖存器410相關資料的壓縮。需 兒明的是,使用第九圖所示的邏輯結構,其可以有不同的方式來作資料 壓縮。舉例來說,假設定義位於遮罩内的任一位置(例如:第六F圖所示) 對應至一個或多個資料位元組(在大多數的實施例中皆為如此),接著第九 圖中的結構可以被複製(疊合)對應至一給定分割圖塊位置的位元資訊。 經,,子可知,假設遮罩的每一位置對應資料的一位元組(亦即8位元), 接著弟九圖中的結構可以有效地重叠到多層架構(例如:八層的深度)。第 :層^分麵塊資料鎖存H 其中的位元〇位置,其可以保持在待壓縮 貢料範圍之内的位元組之最低有效位元。同樣地,第九圖邏輯架構第二層 (圖中未示之連續的層)分割圖塊資料鎖存器410其中的位元0位置,^ 可以保持對應至遮罩位置的資料下一個最低有效位元。複製如第九圖中所 示的結構,崎樣的方式使得不同組的位元得以魏。以下將繼續敛述, 一組之所有位元(例如:與分割圖塊資料鎖存器的一給定位元位置有關的 所有位元)在壓縮運算期間不是被保留就是被捨棄。也就是說,假設第一 層的位元G位置之位元在壓縮_不是被捨棄的,則沒有任—㈣〇位置 之位元(位於任一層)在壓縮期間將會被捨棄。同樣地,假設第一層的位 元〇位置之位元在壓縮期間被捨棄,則任一位元〇位置之位力(位於任一 層)在壓縮期間將會被捨棄。 第九圖中的結構亦可以另—種方式來達到資料壓縮。舉例來說,於一 具體實施例中,絕大多數的資料係與分賴塊資料鎖存器的每—位元位置 有關,重,第九B中的結構以使得龍之中的每—位元位置可能導致不大 士意的大量硬體使用。在此實闕巾,儲存在分觸塊龍·器之中的 貧料可以是位址資料(或-指標),其指向記憶體中資料記錄的開始位置(再 次重述,第九圖中的邏輯結構其可以是複合的)。有關於館存於記憶體儲存 19 难.1¾ 1297569 位置的資料之先前技術,據此可知此—實補係為可行的。 所需的邏輯單元(較少組的位元可以用來定義資料的位 = 資料本身真正所需的邏輯。 舉例來說’在電麟圖系統中’其可能具有與每—像 圖資料的有效量。此-繪圖資料可以包含色彩值資訊,例如:紅綠該及^ (也就是R、G、B、A),深度值資訊⑻以及材質資訊(例如:u、 標)等等。,設-給定像素並未用以顯示,則所有與該像 貪訊可以被壓縮、被移除(假如其係由繪圖管線中的一些計算)。彳鳩 有^九财所示結構之運算將會敘述壓縮資料的單_位元相 知識。然而,再次地綱,第九圖中的邏輯可以藉由新增用以的 群組位元之數層而被立即地複製(或調整尺寸)。 」、"+的 弟九圖中的邏輯提供-種以遮罩為基礎可變地獅資料位元(或資 ^組之結構,其藉由挪移待壓縮至那些待移除資料的位元位置之 叙-點而言,第九圖中的結構可用於錄的⑽ 十圖(將於稍後敘述)則是提供如第九圖中所使用的多工器之 = =、:,)。第一排多工請中的多工器具有心 :塊細不同位元位置所輸出的訊麟。同樣地, 排多工4具有多數個輸人端,其連接至前—排多工器的輸出 :位==工Γ入,擇控制,分割圖塊資料鎖存器 -給定位 岸的位」° ^ 可以疋直接被傳送至封裳對準資料移位器420 -相對 應糾兀位置,不然就是交替地挪移任—數量之位 說,假設分割圖塊資料鎖存哭41〇 ^ +例; 對準資料移位請的的11之魏^被挪移至封裝 438選擇輸入端來得以實行。更^確2猎夕由控制f工器432、似,及 、更月萑地况,夕工态432的控制輸入端可以藉 &擇(在”輸入知)位元位置u所保持的訊號值被控制。多工器似可以 20
端見第九圖可以得到證實,每—多卫器具有兩輸入端及一輸出 圖中可知’輸入端〇位於每_多工器的左邊,而輸入端i則是位於 器的右邊。第一排多工器402之中的每一多工器具有輸入端0,其 輸^^圖塊資料鎖存器41。之相對應位元位置。而第一排多工器402 U每^工益具有輸入端h與相對應之位元位置右邊1位元的分割圖 塊育料鎖存器權的位元位置。為了簡化學術用語,第九圖中的多工器可 =被視為-矩陣’其中這些多工器可以標示為r (代表列數)、C (代表行 )。因此’第-排多工器402之中的多工器可以標示為多工器⑽(例如: ,〇至0,14。同樣地,第二排多工器4〇4之中的多工器可以標示為多工器 二〇至1:13。第三排多工器4〇6之中的多工器可以標示為多工器2,〇至2,u。 取後丄最後-排多工器概之中的多工器可以標示為多工器3,〇至3,7。由 於考量到第九®所示的單元之密度,僅有其找個多卫把經以這種方式 被加以標示。 ^如岫所述,接續數排多工器的多工器數量相較於前一排為少。甚者, 第,402的母一多工器分別具有輸入端,連接至輸入資料兩相鄰位元位 置。第二排404的每一多工器分別具有兩輸入端,連接至第一排每一第二 個多工,的輸出端。同樣地,第三排4〇6的每一多工器分別具有兩輸入端, $接至第二排每一第四個多工器之輸出端。最後,第四排4〇8的每一多工 时刀別具有兩輸入端’連接至第三排4%每一第八個多工器之輸出端。以 &樣的方式將多個多工器連接,第四排權的多工器之選擇訊麟用以控 制不是0就是8位元的挪移(有關於分割圖塊資料鎖存器41〇中的原始位 元位置)’其係根據所選擇的輸入端而定。同樣地,第三排4〇6的多工器之 選擇訊唬線用以控制不是0就是4位元的挪移,亦係根據所選擇的輸入端 而定。第二排404的多工器之選擇訊號線用以控制不是〇就是2位元的挪 21 1297569 9ϋ·一、 -年月日修(兄)正曾捷頁 移’亦係根據所選擇的輸入端而定。第-排他的多工器之選擇訊號線用 以控制不是〇就是1位元的挪移,亦係根據所選擇的輸入端而定。
在先前的例子中,其係敘述多工器M2、434、436及如何被控制 以將分割Β塊資料鎖存器雜植置Η挪移至對準龍移位器 幻0的位元3之位置。❼此例則是包含8位元的挪移。假設相同的資料位元 (分割圖塊資料鎖存器41〇的位元位置n) f要被挪移七個位置(封裝對 準育料移鄕42G的細她元之位置),其藉由選擇控442、4体 446及448的選擇線來據以實施。就這一點而言,多工器松藉選擇連接至 ^割圖塊雜鎖翻楊之第卜位元位置的輸人端而可以被控制。同樣 地,多工器444藉選擇多工器442的輸出端,而多工器_藉選擇多工哭 物的輸出端,多工器448藉選擇多工胃的輸出端而可以被控制。™ 需要說明的是’第九圖中邏輯單元的結構輕易地被缩放遮罩的不同尺 寸大小(例如:具有不同數量位元位置的分麵塊資料鎖存器)。舉例來說, 假設-遮罩的大小2 2取代為4 4遮罩,僅需要三排的多4。如此將 Ϊ地=三排多卫器的外形’如第九圖右半部所示。同樣地,假設第九圖 中的遊輯擴充為8 8遮罩,則需要新增—排多卫器。就這—點而言,第 中的結構可輕易地縮放尺寸’其係藉由容納不同的遮罩尺寸大小。 u需要加錢_是’第域巾已敘述—主要操作性賴,其與控觀 · #u (用以控制不同多工H的適當選擇)之產生有關。—種產生這種控制訊 號的方法,於第十圖中制。如同先前已敘述,本發___些具體實施 以像素遮罩或分姻塊的形絲實行鮮。㈣的鮮可以姻於像素之 不同分割Wj ’以及不_圖元。於針_具體實施射,其係說明 九圖的多工②中控制訊號之產生,此實施例係使用44遮罩452為例— 分割圖塊中的位元位置係以-定順序排列。就這一點而言,—特幻噴序 指派及安排麵任意的。但對於不同的分瀬塊f顧定且已知的發 明具體實施例中的所有例子,4 4遮罩的序列順序或排序係如遮草453戶; 22 I297569 . |96年!0,5^1^ 述也就疋說,左上位置為〇位置,而後漸漸地至右邊則為丨位置,其可 ί第t圖中得知。邏輯46G係用以判定或定義每—像素挪移量。就此點而 。,邏輯460產生第九圖中多工器所用的控制訊號,在此實施例中,用以 控制不同個別的多工器之不同控繼,其可以由一 R〇M (唯讀記憶體)所 產生,其係與提供給定址輸入至R〇M的分割圖塊遮罩許多位元值編碼在一 起(hard coded)。第九圖所示的多工器及控制結構可以藉由提供任何適合 的水平挪移至任-像素至像素插槽(pixel_slQt)而輕胃地被證實。再者,藉 由忽略或置換所有像素遮罩中所有〇值可以將位元序列加以壓縮。 ―繼續回到第九圖,不同的多工器除了以數排的方式排列之外,尚可以
,的方式安排多工11 (分別標示為CG至C14)。第十11中的邏輯460產生 多組輸出,其係為不同行之間的多工器之選擇(控制線。如第十圖中所 $,C0至C7每-行有四條訊號線,而C8至⑶每一行有三條訊號線, 2至每一行有兩條訊號線,C14的多工器則有一條訊號線(因為在 此行中,僅有一個多工器)。
处^工器控制邏輯460内的邏輯或電路可以不同方式加以實施。從_ 能性觀點來看,-給定行之多二龍麟所產生的侧 稅的所有前面位元錄加總運算賴號(例如:⑶結果。如=戶= $遮罩453的每-位置係為一單一位元(不是〇就是r)。遮罩中的c 應到該位置的值不是❹卜隨後的運算影響(或者說於壓縮運遺 除)。Λ反地’相素遮罩中一特定位置的邏輯1代表相對應的ϊ 二一。後的?异影響(或者說於資料壓縮運算期間不被移除)。因此, 行夕工态(例如c3)的一給定群組訊號線的總和時,前面數行彡 =的位置(^70位置G、1及2)之總和會被計算。與此-致的是, 亍—四们夕工為,夕工态控制邏輯產生一四位元輸出(eg)用匕 ^位讀置G、1及2的總和來控制該些多工器。在此四位讀出中 =讀制第四排多工器罐,而最少有效位元控制第—排多工器搬纪 23
1297569 用以圖’其係分卿應至第十第九圖, 述,在傻t it 卜給定像素料的移實際併。如上所 在像素遮罩中相對應資料的六 於入^ m )顯示應用到每—相對選擇線的值。同樣地, 輸入貝枓(在分割圖塊資料鎖存器 二’地 =裝對準資料移位器的輸出,f Μ、Μ 如^^ 的方弋敘、L 4肝巾未被§作搬運讀使用之資料路徑將以加註底線 式敘i之=盆=地二未被當作搬運資料使用之多工器以加註底線的方 ” 』制(秘)輪人職示為X (代表其為不4要的值)。 李餅3 Iff十圖,其係 1為遮罩指標產生邏輯470及其輸出472。在繪圖 ^缩的二1、一〔對應至單一顯不螢幕許多分割圖塊的資料將被壓縮。所
圖塊而有所不同(依據個別分割圖塊遮罩),一系統可以 Γ割圖塊邊界’將會結合第十-圖來加以敘述。在 對應至壓縮資料(係由遮罩定義之)的資料值(或多 h :貝料流中展示。在前面提到的例子(第十二A圖及第十二B 倾射,—特定分麵塊麟具有六個合理之賴值會被 太一 _ 1罩指標之產生係用以標記對應到該分割圖塊的資料之邊界。 體實施例中,遮罩指標產生邏輯可以簡化為分湖塊遮罩452 身夕個別值之總和。·此值也可以在第十二A圖_子中敘述。 卢一^、、、第十目’其可以結合第九圖及第十®而共同觀看。就此點而言, 系統中用以處理之壓縮資料流,將不隨著單—分割圖塊資料之處 ί=、、σ ’但會發生許多次包含—賴顯示的許多分麵塊。第十一圖欽 匕尤月四個這樣的連續分瀬塊,每_分割圖塊具有不同的遮罩值。第九 24 5 5 1297569 曰修(k)正替沒頁 圖及第十®的討論,以及結合第十二A圖及第十二8騎 其係敘述-給定分割圖塊遮罩(或像素遮罩)如何被使 分割圖塊之壓縮值。連續分麵塊之鱗_喊生—壓师料^應^ 縮資料流包含對應至複數個分割圖塊之資料。第十_圖敘述—分塊 罩482的被轉換成-線性遮罩483 (例如:第十圖所示的像素。松)。 因為分割圖塊!的遮罩482用以定義六個合理值的位置(或相 對應資料值之像素位置),遮罩指標產生邏輯獨可以產生具有 指標。如資料流490所示,對應至分割圖塊i之部分資料 DO、m、D4、D5、D7及D8,接著具有—指標492的插桿== 塊i的結尾。同樣地,基於分割圖塊i+1 484所表示的值(資料圖 ^防侧養及则可以被壓縮至緊接著一指標视之資料流柳。 因=遮罩彻中具有七個位元位置t要被保f 於壓騎程被保存〕, 貝科化49〇巾提供七個相對應的資料值。此遮罩的指標可以具有一值為7, ΪίΪΐ人至前面的指標值6使之成為—值為13。隨後的分塊之資料 及扣輮產生值可以用同樣的方式來產生。、 在本發明—具體實施例中,繪圖系統中—資料流 包從-單元傳送到另—單元。在-實施例中,資料封包 值=設—封包邊界落人—分麵塊的中間位置,則將插入 遮二圖中戶tt、f這一點而言’分割圖塊i+2486標示六個 、、、、侣k耘中而要被保留。這些遮罩位置對應到資料值D2、 2-,包〕及封包j+1之間。因此,部分指標值495被插入封包^ 。毛而701的分告ij圖塊指標496被插入在封包j+i第三個資料值之後。、 ,十目伽以說明H軌多個分瀬塊鮮之資料值管理方法 的是’與本發明的精神與範圍—致,根據此觀點的不 工阿以據以實現。就這—點而言,指標的功能性之實施方式可 猎由不同的方法與機制(例如··在壓縮資料流中區分出分割圖塊邊界的 25 日修(b正替授頁i 1297569 機制)。 在已敘述有關實施例之許多細節及 示,係為—方塊圖用以說明 且接著參照第十三圖所 例中,記情體510 #用以杜六十/、體例的許多特點。在此實施 =景雜。在麵 料包含色彩值資訊_、Α)、 與繪圖系統中像素有_屬性。這麵 侧 ^雜 此處不需要分開敎述;
:^的疋對於母-給疋像素位置’其具有與該像餘對㈣大量的資料。 ^ ^圖中的記憶體51〇說明記憶體中的十六個分散區域,其中每一區域 =夕位元組的資料,這些資料係有關於—相_素之不同屬性。遮罩52〇 的母一位置對應包含資料之記憶體510 —區域。 . 根據本發明-具體實施例,塵縮邏輯仍用以使遮罩^㈣内容壓縮 ,存於記憶體510中的資料。如第十三圖所述,遮罩52()包含兩位置用以 標不該分割圖塊之有效資料。記憶體51M目對應的記憶體區塊也可以被強 凋因此,在壓縮邏輯525的壓縮之後,將產生資料的縮減量,如530所 示。接著,此壓縮資料將提供給處理器540用以執行一個或多個資料53〇 之運算。就此點而言,運算邏輯545係為處理器540之一部分。運算邏輯 545 —般被標示為此種方式,與本發明的精神與範圍一致,其可以包含不同 種類之運算。在執行此運算之後,解壓縮邏輯55〇用以恢復資料至原先未 壓縮的形式。 、 就這一點而言,需要加以思量的是,運算545僅影響記憶體區塊512 及514之資料。此資料可以提供給處理器540當作運算之依據,以及藉由 解壓縮邏輯550將之恢復至適當的記憶體區塊。 如前已注意到的是,除了實際的資料(記憶體510實際的内容)被壓 26 1297569 ·%修(k)正替顧 ••’―丨丨---------| 丨‘ 縮’壓縮邏輯也可以用於記憶體位址之運算,例如:處理器540可以被用 來接收記憶體區塊512及514啟始位址的確認。接著,處理器54〇擷取(直 接從記憶體510中擷取)有關的資料以執行運算545。 關於解壓縮邏輯550’假設壓縮邏輯525係為結構上與第九圖中的邏輯 相類似,則一相似的對等結構用以執行解壓縮。這樣的結構係於第十四圖 敘述。第九圖中運算及結構已經於前面說明過,已經足夠用以了解第十四 圖中結構600之運算(此結構係可以具以實行對等的運算),因此關於第十 四圖的相關細節討論並不需要的。就這一點而言,解壓縮邏輯6〇〇包含多 排複數個多工器602、604、606及608及多行多工器C0至C15。每一多工 杰具有一控制輸入端(例如:u〇,l控制多工器〇,1的輸入選擇)。藉由控制 複數個多工器控制輸入端的值,第十四圖中的邏輯所實行的解壓縮可以類 似於第九圖的方式被控制。 需要加以說明的是,關於本發明之實施例具有不同的創新特點。這些 特點包含繪圖管線中一單元的資料可變長度壓縮,使用一系列多工器的封 叙私式之貫施架構,其中每一多工器的控制輸入端係被獨特地控制,以及 一種用以封裝功能中控制壓縮層級之使用位元或像素遮罩的方法。 雖然本發明已以若干較佳實施例揭露如上,然其並非用以限定本發 明任何热習此技藝者,在不脫離本發明之精神和範圍内,當可作此許之 更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界^者為 準。 【圖式簡單說明】 發明的許多觀點可以參考以下的圖式而更加清楚的了解。相關圖式並 未依比例繪製,其作用僅在清楚表現本發明有關定理。此外,使;數^來 表示圖式中相對應的部分。 27
1297569 第一圖係為先前技術中一傳統繪圖管線的方塊圖; 第二圖係為一方塊圖用以說明根據本發明一具體實施例中一緣圖單元 之數個繪圖元件; ^ 第三圖係為一方塊圖用以說明根據本發明一具體實施例中一繪圖管 中的繪圖單元之數個元件; 第四圖係為一方塊圖用以說明一繪圖管線,其具有根據本 一1 實施例中的多個單元; /、體 第五圖係為一方塊圖用以說明一繪圖系統的數個部分,此繪圖系統 根據本發明另一具體實施例; —第六A圖至第六F圖綱產生-遮罩的數個步驟,其可被用於本發明 的實施例中; 又
第七圖係為-方塊圖用以說明根據本發明一具體實施例一緣圖 用以資料壓縮的單元; 第八圖係為-方塊圖用以說明根據本發明另一具體實施例一 中用以資料壓縮的單元; 〃、 第九_為-方塊酬以說明根據本發明—具體實施例之邏輯單元, ”係用/x訊賴縮、位元舰及-資料財位置的屋縮; =十圖係為—方顧用以說明根據本發明—具體實施例之第九圖中多 為中一種產生選擇訊號線的機制;
1缩方塊圖用以說明根據本發明一具體實施例中產生具有 圖'中邏輯元件的二丨;、*九醜似,❹X說明此二 係用綱本發明-具體實關巾數個單元,其 【主要元件符號說明】 28 1297569 頁 * 产 ίο 主機電腦(繪圖應用程式介面) 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 α測試 1297569 86,1〇9 - 5 月日修(¾正替换頁 188像素解封裝邏輯 210多重執行緒共用處理器 220以分割圖塊為基礎的儲存體 282像素封裝邏輯 284像素著色器 352存放分割圖塊η像素資料及内容的記憶體 354壓縮邏輯 356分割圖塊η的像素遮罩 358分割圖塊η的壓縮像素資料及内容 362遮罩/控制器
364封裝程式 366解封裝像素資料及内容 368封裝像素資料及内容 410分割圖塊資料鎖存器 420封裝對準資料移位器 460每一像素挪移量產生器(多工器選擇控制的產生) 470遮罩指標的產生 525壓縮邏輯 540 處理器
545運算單元 550解壓縮邏輯 30

Claims (1)

1297569 f\2·#2 日修 it 本 : 十、申請專利範圍: 1.一種繪圖系統,包含: -產生邏輯,用以產生-遮罩來辨識在複數個位元中未被一計算所影 ‘ 響的位元;以及 -回應於該遮罩的壓縮邏輯,用以產生一壓縮位元流,其中該壓齡 ‘ 元流未包含該些未被該計算所影響的位元。 2·如申请專利範圍第1項所述之繪圖系統,其中該遮罩係為一像素遮罩,該 像素遮罩對應至顯示於一顯示裝置的一含有複數個像素之分割圖塊。 3·如申请專利fe圍第1項所述之繪圖系統,其中該產生邏輯係根據一深度值鲁 資訊用以產生該遮罩。 4·如申请專利$請第3項所述之繪圖系統,其中該深度值資訊係由一 z緩衝 區塊(z-buffer)來獲得。 5·如申請專利範圍第1項所述之繪圖系統,其中該壓縮邏輯包含複數個多工 器用以根據該遮罩的内容來挪移該複數個位元之個別位元一變化量值,且 每一新增挪移的位元有效地覆蓋未被該計算所影響的該些位元。 6.如申請專利範圍第5項所述之_系統,更包含一壓縮控制邏輯,用雜 · 制該壓縮邏輯挪移個別位元相等於複數個位元位置的一量值,該複數個^ 元位置位於目前位元位置的前面且係為未被該計算所影塑。 7·如申請專利範圍第1項所述之繪圖系統,更包含一解壓縮邏輯,用以解壓 縮一壓縮資訊,其中該解壓縮邏輯使用該遮罩來解壓縮該壓縮資訊。 8·—種壓縮複數個位元的裝置,包含: 以複數排方式排列之複數個多工器,其中該些第一排多工器具有連接 31 1297569 p^rr^2-1 年月曰修正本 、 至複數個訊號之複數個輸入端,而該複數個訊號用以定義需要被壓縮之複 ,個也元,该些隨後複數排多工器具有複數個輸入端,連接至該些前一排 多工器的複數個輸出端,其中每一該些隨後複數排多工器相較於該些前一 排多工器具有較少的多工器;以及 二。一控制邏輯,用以控制使用於該複數個多工器之複數個資料選擇輸入 汛浼,使得該複數個位元的個別位元可以一變動量進行挪移,且該挪移量 值係由一遮罩所判定。 9·如申請專利範圍第8項所述之壓縮複數個位元的裝置,其中該複數個多工 器係根據該遮罩的内容來挪移該複數個位元之個別位元一變化量值,且每 一新增挪移值有效地覆蓋未被一隨後計算所影響的一位元。 10·如申請專利範圍第9項所述之壓縮複數個位元的裝置,更包含一壓縮控 制邏輯’用以控制該控制邏輯挪移個別位元相等於複數個位元位置的一量 值,該複數個位元位置位於目前位元位置的前面且係為未被該計算所影響。 11·如申請專利範圍第8項所述之壓縮複數個位元的裝置,其中該遮罩係為 一像素遮罩,該像素遮罩對應至顯示於一顯示裝置的一含有複數個像素之 分割圖塊。 12·如申請專利範圍第11項所述之壓縮複數個位元的裝置,其中該像素遮罩 的内容係根據一深度值資訊。 13·如申請專利範圍第8項所述之壓縮複數個位元的裝置,其中多組該複數 個位元用以定義複數個資料值來表示顯示於一顯示裝置複數個像素的一屬 14·如申請專利範圍第13項所述之壓縮複數個位元的裝置,其中該屬性係選 自下列族群之一:R、G、B、A、U&V。 、 1297569 年月:曰修正本 15.—種用於電腦繪圖系統中的單元,包含: 一邏輯’用=康一雜遮罩塵縮複數俯立元的複數個群組(ap_y 個二’ r中該遮罩的内容由未被-計算所影響之相對應複數個 =的複數個群組(gr〇UPSOfbits)的一判定而取得,該像素遮罩的該内容 疋義該複數個位元被挪移在壓縮期間之一可變量值。 16·如申請專利範圍第15項所述之用於電腦缘圖系統中的單元,其中該像 素遮罩的每-位置定義複數個位元的一群組(gr〇up 〇f麻)的一挪移量。 Π·如申請專利範圍第1G項所述之用於電腦緣圖系統中的單元,其中該像 φ 素遮罩的每-位置之内容用_單〜位元加以絲,複數個位元的—群組& group 〇f bits)的該挪移量由前面像素遮罩位置的一總和來定義,該前面 ^象素遮罩位置的内容顯示未被一隨後計算影響的相對應複數個像素,其中 該像素遮罩的該些位置以—順序加以安排,而該些前面像素鮮位置以一 給定位置之前的順序安排。 以·如申請專利範圍第17項所述之用於電腦繪圖系統中的單元,其中該像 素遮罩位置之安排順序係為任意的。
19·一種電腦繪圖系統,包含: 一用以壓縮複數個群組位元的邏輯,來排除未被一計算所影響的群組 位元; " 一用以實行該計算的邏輯;以及 一用以於實行該計算之後解壓縮相對應資料的邏輯,來恢復資料對應 至先前消除的群組位元。 “ 20·如申請專利範圍第19項所述之電腦繪圖系統,其中該用以實行該計算的 邏輯包含一多重執行緒處理單元。 33 1¾2¾修正本 1297569 21·如申請專利範圍第20項所述之電腦繪圖系統,其中該計算為一像素著色 運算。 22·—種繪圖系統,包含: 一遮罩邏輯’用以產生一遮罩來辨識位於一位元流的複數個位置中, * 於一壓縮運算期間應被移除的位置; 一對應至該遮罩的壓縮邏輯,用以產生一壓縮位元流,其中需被移除 的該些位置係藉由對後續位置的適當變動位移量來使得其内容被覆蓋。 23·如申請專利範圍第22項所述之繪圖系統,其中該遮罩係為一像素遮罩,鲁 該像素遮罩對應至顯示於一顯示裝置的一含有複數個像素之分割圖塊。 24·如申請專利範圍第22項所述之繪圖系統,其中該遮罩邏輯用以根據一深 度值貨訊產生該遮罩。 25·如申請專利範圍第24項所述之繪圖系統,其中該深度值資訊係由一 ζ 緩衝器來獲得。 26·如申請專利範圍第22項所述之繪圖系統,其中該壓縮邏輯包含複數個 φ 多工器用以根據該遮罩的内容變化量值來挪移該複數個位元之個別位元, 且每一新增挪移的位元有效地覆蓋未被一隨後計算所影響的該些位元。 27·如申請專利範圍第26項所述之繪圖系統,更包含一壓縮控制邏輯,用 以控制該壓縮邏輯挪移個別位元相等於複數個位元位置的一量值,該複數 個位元位置位於目前位元位置的前面且係為未被該隨後計算所影響。 28. —種用以壓縮複數個位元資料的裝置,包含: 以複數排方式排列之複數個多工器,其中在第一排的該些多工器具有 34 1297569 本 ϊίϋ個健ί數個輸人端’藉由壓縮—卩分該複數個訊號, 工器的複數個輸出端之 隨後的該複數排多工器具有連接至前一排的該些多 複數個輸入端,;以及 -控觸輯,㈣控驗餘該複數㈣工^之概個雜選擇輸入 -破’雜制邏輯回應-遮罩’該遮罩定義該複數個訊號的位置,舍作該 複數個hn巾麻被難㈣的輸域,使得闕在被移^訊^ 後面者可以被挪移至該被移除訊號的位置上。 29·如申請專利範圍第28項所述之用以壓縮複數個位元資料的裝置,其中該 複數個多工器用以根據該遮罩的内容來挪移該複數個輸入訊號之個別訊號 麦化里值,且每一新增挪移的值有效地使得一挪移位元可以覆蓋需被移 除的一訊號位置。 30·如申請專利範圍第29項所述之用以壓縮複數個位元資料的裝置,更包含 一壓縮控制邏輯,用以控制該壓縮邏輯挪移個別訊號相等於複數個訊號位 置的一里值’該複數個訊|號位置位於目前訊號位置的前面且係為需被移除 的0 31·—種用於電腦繪圖系統中的單元,包含:
一邏輯,用以藉由挪移已壓縮之群組位元至壓縮期間應被移除的位元 位置來壓縮複數個群組位元,該邏輯係回應一遮罩,其中該遮罩的内容用 以定義在該壓縮期間複數個位元被挪移之一可變量值。 32·如申請專利範圍第31項所述之用於電腦繪圖系統中的單元,其中該遮罩 係為一像素遮罩,且該些需被壓縮的群組位元對應與所顯示之複數個像素 有關的一屬性。 33.如申請專利範圍第31項所述之用於電腦繪圖系統中的單元,其中該遮罩 的每一位置定義一群組位元的挪移量。 35 1297569 34·如申凊專利範圍第33項所述之用於電腦繪圖系統中的單元,其中該遮罩 的每一位置之内容用一單一位元加以定義,一群組位元的該挪移量由前面 遮罩位置的7總和來絲,該前面鮮位置_容齡未被一隨後計算影 響的相對應魏個像素,其巾該鱗的該些位置以_順序加以安排,而該 些前面遮罩位置以一給定位置之前的順序安排。 μ 35·如申請專利範圍第34項所述之用於電輯圖系統中的單元,i中該 之該位置的安排順序係為任意的。 /、 早
36 1297569 七、指定代表圖: (一) 本案指定代表圖為:第(四)圖。 (二) 本代表圖之元件符號簡單說明: 162指令語法解析器 164頂點及幾何著色器 166三角形設置 168圖幅及分割圖塊的產生 170分割圖塊的Z範圍測試 172 Z快取區塊 174 Z壓縮器 176封裝邏輯 178解封裝邏輯 180像素Z測試 182像素封裝邏輯 184像素著色器 186 α測試 188像素解封裝邏輯 八、本案若有化學式時,請揭示最能顯示發明特徵的化學式:
TW093132226A 2003-10-29 2004-10-22 Apparatus for compressing data in a bit stream or bit pattern TWI297569B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US51584103P 2003-10-29 2003-10-29

Publications (2)

Publication Number Publication Date
TW200515717A TW200515717A (en) 2005-05-01
TWI297569B true TWI297569B (en) 2008-06-01

Family

ID=34794196

Family Applications (2)

Application Number Title Priority Date Filing Date
TW093132226A TWI297569B (en) 2003-10-29 2004-10-22 Apparatus for compressing data in a bit stream or bit pattern
TW093132222A TWI264183B (en) 2003-10-29 2004-10-22 Method for compressing data in a bit stream or bit pattern

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW093132222A TWI264183B (en) 2003-10-29 2004-10-22 Method for compressing data in a bit stream or bit pattern

Country Status (3)

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

Families Citing this family (53)

* 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
TWI348651B (en) * 2006-06-09 2011-09-11 Via Tech Inc A system for reducing bandwidth requirements for transferring graphics data and its related method
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
CN108702160B (zh) * 2016-01-29 2022-05-17 零点科技公司 用于压缩和解压缩数据的方法、设备和系统
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

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
CN1606038A (zh) 2005-04-13
CN1648948A (zh) 2005-08-03
US20050093872A1 (en) 2005-05-05
US7202872B2 (en) 2007-04-10

Similar Documents

Publication Publication Date Title
TWI297569B (en) Apparatus for compressing data in a bit stream or bit pattern
EP3673463B1 (en) Rendering an image from computer graphics using two rendering computing devices
CA2948903C (en) Method, system and apparatus for generation and playback of virtual reality multimedia
CN107277616A (zh) 视频特效渲染方法、装置及终端
US6741259B2 (en) Applying multiple texture maps to objects in three-dimensional imaging processes
EP2973423B1 (en) System and method for display of a repeating texture stored in a texture atlas
US10776997B2 (en) Rendering an image from computer graphics using two rendering computing devices
JP6626691B2 (ja) テクスチャ処理方法及びその装置
TW200917228A (en) Compression of multiple-sample-anti-aliasing tile data in a graphics pipeline
CN101477701B (zh) 面向AutoCAD和3DS MAX软件的植入式真三维立体渲染方法
Bao et al. Large-scale forest rendering: Real-time, realistic, and progressive
US20230260443A1 (en) Two-dimensional compositing
TW200426709A (en) Mechanism for reducing Z buffer traffic in three dimensional graphics processing
Lengyel Voxel-based terrain for real-time virtual simulations
Pajarola et al. DMesh: Fast depth-image meshing and warping
KR20160068204A (ko) 메시 지오메트리를 위한 데이터 처리 방법 및 이를 기록한 컴퓨터 판독 가능 저장 매체
Ignatenko et al. A framework for depth image-based modeling and rendering
Beacco et al. A flexible approach for output‐sensitive rendering of animated characters
CN101561935B (zh) 面向GoCAD软件的植入式三维立体显示方法
Nozick et al. Multi-view Rendering using GPU for 3-D Displays
WO2023220807A1 (en) Light field offset rendering
US7012613B1 (en) Method and apparatus for fragment scriptor for use in over-sampling anti-aliasing
Pintér Large-Scale Terrain Rendering for Outdoor Games
KR20190129013A (ko) 그래픽 처리
Wang et al. Research of the wheat modeling problems based on Creator