日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

數據壓縮的制作方法

文檔序號:9691361閱讀:439來源:國知局
數據壓縮的制作方法
【專利說明】數據壓縮
【背景技術】
[0001] 在數據將被存儲在存儲器中和/或從存儲器被讀取的許多應用中,無損的和有損 的數據壓縮兩者都是值得要的。通過在將數據存儲在存儲器中之前壓縮數據,可以減少傳 送至存儲器的數據量。數據壓縮特別有用的數據的一種示例是圖像數據,諸如將被存儲在 深度緩沖器中的深度數據、將被存儲在幀緩沖器中的像素數據、以及將被存儲在紋理緩沖 器中的紋理數據。這些緩沖器可以是任何適當類型的存儲器,諸如緩存存儲器、分離的存儲 器子系統(tǒng)、共享存儲器系統(tǒng)中的存儲器區(qū)域、或者它們的某種組合。
[0002] 圖形處理單元(GPU)可以被用來處理圖像數據,以便確定將被存儲在幀緩沖器中 以用于輸出至顯示器的圖像的像素值。GPU通常具有用于并行處理大塊數據的高度并行化 結構。使得GPU (尤其是意圖在移動設備上實施的那些GPU)在較低的功率電平處進行操作 存在著顯著的商業(yè)壓力。與之相抵觸的是,在更快的GPU上使用更高質量的渲染算法的要 求,這由此對相對有限的資源:存儲器帶寬施加了壓力。然而,增加存儲器子系統(tǒng)的帶寬可 能不是有吸引力的解決方案,因為向GPU移動數據和從GPU移動數據以及甚至在GPU內移 動數據,消耗了 GPU的顯著一部分的功率預算。除了 GPU之外,相同的問題可能也與中央處 理單元(CPU)有關。
[0003] 如上文所描述的,減少傳送至存儲器的數據量的一種方式是壓縮將向存儲器傳送 和從存儲器傳送的數據。用于數據被壓縮和解壓縮所花費的時間增加到存儲器讀取操作和 寫入操作的時延,并且因此可能影響GPU工作的速度。此外,可以準許數據被壓縮的速率不 同于經壓縮的數據被解壓縮的速率。作為一個示例,經常可以準許用于壓縮紋理數據的壓 縮過程(其通常為有損的壓縮過程)顯著地慢于用于解壓縮經壓縮的紋理數據的解壓縮過 程。相對照地,用于壓縮用于存儲在深度緩沖器中的深度數據或者用于存儲在幀緩沖器中 的像素數據的壓縮過程(其通常為無損的壓縮過程)理想地應當以與對應的解壓縮過程近 似相同的速率來加以執(zhí)行。GB2451911公開了一種能夠壓縮二維數據集合的圖形渲染系統(tǒng)。

【發(fā)明內容】

[0004] 本概述被提供用以采用簡化形式來介紹對下文在詳細描述中進一步描述的概念 的選擇。本概述不意圖為識別所要求保護的主題的關鍵特征或者必要特征,也不意圖用來 限制所要求保護的主題的范圍。
[0005] 例如作為數據壓縮過程的一部分,能夠根據預定的可變長度熵編碼方案(例如, 基于指數哥倫布編碼)對數據值進行熵編碼,從而它們具有多1個前綴比特以及多〇個后 綴比特。在一些示例中,至少一些前綴比特與后綴比特進行交織,并且在其他示例中,前綴 比特可以與后綴比特分離地被分組。對應的熵解碼過程能夠被執(zhí)行,由此第一和第二比特 被取回(例如,被解交織),并且前綴比特被分析以確定所接收的經熵編碼的數據值之間的 比特邊界。所取出(例如,被解交織)的后綴比特和所確定的比特邊界被用于解碼經熵編 碼的數據值。以這種方式,在確定比特邊界時能夠考慮減少的比特集合,這進而意味著,例 如通過分析并行的解碼單元中的前綴比特,在相同時鐘周期期間能夠找到多個比特邊界, 由此允許多個經熵編碼的數據值(它們已經使用可變長度編碼方案被編碼)在相同時鐘周 期中被解碼。作為一個示例,經熵編碼的數據值可以形成塊(例如,8X8塊),并且來自該 塊的一行的所有經熵編碼的數據值(例如,8個經熵編碼的數據值)可以在一個時鐘周期中 被解碼。
[0006] 特別地,提供了一種對經熵編碼的數據值的序列執(zhí)行熵解碼的方法,其中經熵編 碼的數據值已經根據預定的可變長度熵編碼方案而被編碼,從而經熵編碼的數據值中的每 個經熵編碼的數據值包括一個或多個第一比特以及零個或更多第二比特,其中對于經編碼 的數據值中的每個經編碼的數據值,第一比特的數目根據熵編碼方案的預定關系而與第二 比特的數目有關,并且其中經熵編碼的數據值的序列中的多個比特位置中的每個比特位置 由熵編碼方案預先確定為包括第一比特或第二比特,該方法包括:接收經熵編碼的數據值 的序列;基于經熵編碼的數據值的序列中的比特的根據熵編碼方案的比特位置,將所接收 的經熵編碼的數據值的第一比特與所接收的經熵編碼的數據值的第二比特分離;對于所接 收的經編碼的數據值中的每個所接收的經編碼的數據值,根據第一比特的數目與第二比特 的數目之間的預定關系,分析所接收的經熵編碼的數據值的所分離的第一比特,以確定所 接收的經熵編碼的數據值之間的比特邊界;以及根據預定的可變長度熵編碼方案,使用第 二比特和所確定的比特邊界來解碼經熵編碼的數據值??梢蕴峁┮环N計算機可讀存儲介 質,具有被編碼在其上的計算機可讀程序代碼,該計算機可讀程序代碼用于生成熵解碼模 塊,該熵解碼模塊被配置為執(zhí)行根據本文所描述的任何示例的執(zhí)行熵解碼的方法。
[0007] 提供了一種熵解碼模塊,被配置為對經熵編碼的數據值的序列執(zhí)行熵解碼,其中 經熵編碼的數據值已經根據預定的可變長度熵編碼方案而被編碼,從而經熵編碼的數據值 中的每個經熵編碼的數據值包括一個或多個第一比特以及零個或更多第二比特,其中對于 經編碼的數據值中的每個經編碼的數據值,第一比特的數目根據熵編碼方案的預定關系而 與第二比特的數目有關,并且其中經熵編碼的數據值的序列中的多個比特位置中的每個比 特位置由熵編碼方案預先確定為包括第一比特或第二比特,熵解碼模塊被配置為:接收經 熵編碼的數據值的序列;基于經熵編碼的數據值的序列中的比特的根據熵編碼方案的比特 位置,將所接收的經熵編碼的數據值的第一比特與所接收的經熵編碼的數據值的第二比特 分離;對于所接收的經編碼的數據值中的每個所接收的經編碼的數據值,根據第一比特的 數目與第二比特的數目之間的預定關系,分析所接收的經熵編碼的數據值的所分離的第一 比特,以確定所接收的經熵編碼的數據值之間的比特邊界;以及根據預定的可變長度熵編 碼方案,使用第二比特和所確定的比特邊界來解碼經熵編碼的數據值。可以提供一種數據 解壓縮單元,包括這樣的熵解碼模塊。
[0008] 提供了一種根據預定的可變長度熵編碼方案對多個數據值執(zhí)行熵編碼以形成經 熵編碼的數據值的序列的方法,該方法包括:接收數據值;對于所接收的數據值中的每個 所接收的數據值,根據熵編碼方案來確定經熵編碼的數據值,由此經熵編碼的數據值包括 一個或多個第一比特以及零個或更多第二比特,其中對于經編碼的數據值中的每個經編碼 的數據值,第一比特的數目根據熵編碼方案的預定關系而與第二比特的數目有關;以及從 所確定的經熵編碼的數據值形成經熵編碼的數據值的序列,其中經熵編碼的數據值的序列 中的多個比特位置中的每個比特位置由熵編碼方案預先確定為包括第一比特或第二比特。 可以提供一種計算機可讀存儲介質,具有被編碼在其上的計算機可讀程序代碼,該計算機 可讀程序代碼用于生成熵編碼模塊,該熵編碼模塊被配置為執(zhí)行根據本文描述的任何示例 的執(zhí)行熵編碼的方法。
[0009] 提供了一種熵編碼模塊,被配置為根據預定的可變長度熵編碼方案對多個數據值 執(zhí)行熵編碼以形成經熵編碼的數據值的序列,該熵編碼模塊被配置為:接收數據值;對于 所接收的數據值中的每個所接收的數據值,根據熵編碼方案來確定經熵編碼的數據值,由 此經熵編碼的數據值包括一個或多個第一比特以及零個或更多第二比特,其中對于經編碼 的數據值中的每個經編碼的數據值,第一比特的數目根據所述熵編碼方案的預定關系而與 第二比特的數目有關;以及從所確定的經熵編碼的數據值形成經熵編碼的數據值的序列, 其中經熵編碼的數據值的序列中的多個比特位置中的每個比特位置由熵編碼方案預先確 定為包括第一比特或第二比特??梢蕴峁┮环N數據壓縮單元,包括這樣的熵編碼模塊。
[0010] 如對本領域的技術人員將是明顯的,上面的特征在適當時可以被組合,并且可以 與本文所描述的示例的方面中的任何方面進行組合。
【附圖說明】
[0011] 現在將參考附圖具體描述示例,在附圖中:
[0012] 圖1示出了一種圖形渲染系統(tǒng);
[0013] 圖2示出了 一種數據壓縮單元;
[0014] 圖3示出了用于一種壓縮數據的方法的流程圖;
[0015] 圖4示出了一種數據解壓縮單元;
[0016] 圖5示出了用于一種解壓縮數據的方法的流程圖;
[0017] 圖6示出了一種空間解相關模塊;
[0018] 圖7示出了一種線性預測方法的圖示;
[0019] 圖8圖示了空間解相關模塊的處理管線的操作;
[0020] 圖9示出了用于一種在數據值塊上執(zhí)行空間解相關的方法的流程圖;
[0021] 圖10是圖示了熵編碼方案如何編碼不同符號值的表格;
[0022] 圖11示出了一種熵編碼模塊;
[0023] 圖12示出了用于一種對多個數據值執(zhí)行熵編碼的方法的流程圖;
[0024] 圖13示出了一種熵解碼模塊;
[0025] 圖14示出了用于一種對多個經熵編碼的數據值執(zhí)行熵解碼的方法的流程圖;
[0026] 圖15表示包括經編碼的數據值的塊的第一數據分組;
[0027] 圖16表示包括多個數據塊的第二數據分組;
[0028] 圖17圖示了通道的數據如何被存儲在經編碼的數據值的塊中;
[0029] 圖18示出了一種空間重相關模塊;以及
[0030] 圖19圖示了空間重相關模塊的一級處理管線的操作。
[0031 ] 貫穿附圖,在適當處使用共同的參考數字來指示類似的特征。
【具體實施方式】
[0032] 現在通過僅為示例的方式來描述實施例。
[0033] 在各種各樣的不同場景中,數據壓縮是有用的。本文描述的示例中的大多數示例 涉及用于由GPU使用的圖像數據的壓縮(以及解壓縮),但是類似的原理可以應用到其他類 型的數據的壓縮(以及解壓縮),諸如音頻數據、數字數據、或文本數據和/或用于由除了 GHJ之外的其他處理單元(諸如CPU)使用的數據。
[0034] 圖1示出了可以實施在電子設備(諸如移動設備)中的圖形渲染系統(tǒng)100。圖形 渲染系統(tǒng)100包括主機CPU 102、GPU 104、存儲器106 (例如圖形存儲器)以及顯示器108。 CPU 102被布置為與GPU 104進行通信。數據(其可以是經壓縮的數據)能夠在GPU 104 與存儲器106之間在任一方向上加以傳送。由GPU 104渲染的圖像可以被顯示在顯示器 108 上。
[0035] GPU 104包括渲染單元110、壓縮/解壓縮單元112、存儲器接口 114、以及顯示器 接口 116。系統(tǒng)100被布置使得數據能夠在以下各項之間在任一方向上傳遞:(i)CPU 102 與渲染單元110 ;(ii)CPU 102與存儲器接口 114 渲染單元110與存儲器接口 114 ; (iv)存儲器接口 114與存儲器106 ; (v)植染單元110與壓縮/解壓縮單元112 ; (vi)壓縮 /解壓縮單元112與存儲器接口 114 ;以及(vii)存儲器接口 114與顯示器接口。系統(tǒng)100 進一步被布置使得數據能夠從壓縮/解壓縮單元112傳遞到顯示器接口 116,并且使得數據 能夠從顯示器接口傳遞到顯示器108。
[0036] 在操作中,GPU 104個體地處理圖像數據的區(qū)域。區(qū)域可以例如表示圖像的矩形 (包括正方形)部分。渲染單元110可以使用諸如Z-測試和紋理映射的已知技術來執(zhí)行圖 形基元(primitives)(諸如三角形和線)的掃描轉換。植染單元110可以包含緩存單元以 減少存儲器流量。一些數據由渲染單元110經由存儲器接口單元114(其可以包括緩存) 讀取或寫入至存儲器106,但是對于其他數據(諸如將被存儲在幀緩沖器中的數據),數據 優(yōu)選地從渲染單元110經由壓縮/解壓縮單元112去到存儲器接口 114。壓縮/解壓縮單 元112通過如下文更詳細描述的那樣對數據進行壓縮,來減少將跨越外部存儲器總線而被 傳送至存儲器106的數據量。
[0037] 顯示器接口 116將所完成的圖像數據發(fā)送至顯示器108。未壓縮的圖像可以直接 從存儲器接口單元114來加以訪問。經壓縮的數據可以經由壓縮/解壓縮單元112來加以 訪問,并且作為未壓縮的數據而被發(fā)送至顯示器108。在替換的示例中,經壓縮的數據可以 被直接發(fā)送至顯示器108,并且顯示器108可以包括如下邏輯,該邏輯用于以與壓縮/解壓 縮單元112的解壓縮等同的方式來解壓縮經壓縮的數據。雖然被示出為單個實體,但是為 了增強性能的原因,壓縮/解壓縮單元112可以包含多個并行的壓縮和/或解壓縮單元。
[0038] 作為一般性的概述,壓縮系統(tǒng)可以遵循一種基本的算法綱要(algorithmic outline),從而執(zhí)行以下步驟(并不必然按照下文給出的順序):
[0039] 1.劃分為塊
[0040]圖像數據在邏輯上被劃分為獨立的非重疊的矩形塊,以便于準許對經壓縮的數 據的隨機訪問。塊的尺寸是依賴于實施方式的,并且塊可以例如為數據值的8X8、16X4、 32X2、4X4或32X16塊。增加塊尺寸趨于提高所實現的壓縮比。然而,增加塊尺寸還趨于 招致更大的硬件成本,并且此外,在訪問模態(tài)(pattern)變得較不連貫時,可能會具有降低 的效率。因此,在選擇塊尺寸時存在將要達到(struck)的一個平衡,其依賴于實施方式并 且其可以例如依賴于將被壓縮的數據的類型的特性。可以獨立于由GPU處理的區(qū)域的尺寸 來選擇塊尺寸,然而從選擇塊尺寸而使得它是區(qū)域尺寸的方便倍數或者反之亦然,可能會 得到某種益處。
[0041] 2.格式轉換
[0042] 一些緩沖器(例如深度緩沖器)可以以浮點格式來存儲數據,但是對浮點數執(zhí)行 無損算法可能是有問題的。因此,浮點值可以被解釋為帶符號的大小整數值以準許無損計 算。在數據值包括表示不同顏色分量的數據的多個通道的場合,也可以使用格式轉換,其中 這些通道中的值不是8比特的倍數,例如RGB 5:6:5或者ARGB 2:10:10:10格式。數據值 的格式可以被轉換,從而每個通道具有8比特的倍數的值(例如ARGB 8:8:8:8格式)。在 壓縮過程中并不總是需要該格式轉換步驟,例如,當數據已經采用整數格式或者能夠對其 執(zhí)行無損算法的某種其他格式時。
[0043] 3.顏色通道解相關
[0044] 數據值可以包括表示不同顏色分量的數據的多個通道。例如,數據可以采用ARGB 8:8:8:8格式,其中存在8個比特來表示數據值中的每個數據值的阿爾法通道、紅色通道、 綠色通道和藍色通道中的每個通道。在這些顏色通道中的一些或所有顏色通道(例如R通 道、G通道和B通道)的值之間經常存在值得考慮的相關性,并且壓縮算法能夠利用這種相 關性通過平均地減少這些通道中的一些通道的范圍來壓縮數據。用于利用不同顏色通道之 間的相關性的適合的顏色空間變換在本領域中是已知的,例如在GB2451911中所描述的, 并且本文中沒有詳細描述。適合的顏色空間變換是無損的和"非擴展的",意味著用來表示 顏色值的比特數目不會由于顏色空間變換而增加。
[0045] 4.空間解相關
[0046] 空間解相關(也稱為"預測")移除了鄰近像素之間的一些相關性,由此平均地減 少了值的動態(tài)范圍。下文參考圖6到9詳細地描述一種用于執(zhí)行空間解相關的方法。
[0047] 5.熵編碼
[0048] 熵編碼利用經解相關的數據的統(tǒng)計性質來減少用來表示數據的比特數目。算術 編碼方案在計算上是相對密集和緩慢的。因此,相對簡單的可變長度編碼(VLC)(例如 Huffman或Golomb-Rice)或者基于運行長度的熵編碼方案已經被使用。然而,即使利用簡 單的VLC編碼方案,可能還是難以高速地執(zhí)行熵編碼。下文參考圖10到14詳細地描述了 一種用于高速地并且以低計算復雜度地執(zhí)行熵編碼和解碼的新方法。
[0049] 6.存儲
[0050] 最后,經壓縮的數據被存儲在存儲器106中。用于將數據存儲在存儲器106中的機 制的細節(jié)對本領域的技術人員而言將是已知的,并且如此在本文中并不非常詳細地描述。
[0051] 解壓縮系統(tǒng)可以遵循上文針對壓縮所給出的基本算法綱要的逆轉(并非必然按 照上文給出的順序的逆轉)。
[0052] 上文給出的一般壓縮算法可以應用在壓縮/解壓縮單元112中。圖2示出了壓縮 /解壓縮單元112的模塊,當壓縮/解壓縮單元112作為壓縮單元進行操作時,這些模塊將 被用來壓縮包括四個8比特通道的ARGB數據值的塊。在其他示例中,壓縮/解壓縮單元 112可以被用來壓縮具有其他格式的數據值的塊。壓縮單元112包括顏色解相關模塊202、 四個空間解相關模塊204$」204 4、四個熵編碼模塊206$」206 4、以及包裝(packing)模塊 208 〇
[0053] 圖3示出了用于一種壓縮數據塊的方法的流程圖。在步驟S302中,在壓縮單元 112處接收未壓縮的數據的塊。在壓縮單元112處接收數據之前,可以對該數據執(zhí)行上文 給出的一般壓縮算法的第一步驟,即劃分為塊。替換地,可以在壓縮單元112處執(zhí)行這一步 驟。在顏色解相關模塊220處接收未壓縮的數據。在步驟S304中,顏色解相關模塊202可 以如上文所描述的那樣對數據值應用格式轉換。注意,例如當數據已經采用了適合的格式 (諸如,采用整數格式)時,格式轉換步驟可能不被實施,從而格式轉換不是必要的。在圖2 和3中所示出的示例中,在壓縮單元112處接收的數據已經被劃分為塊,例如8X8塊。此 外,在這個示例中,所接收的數據采用ARGB 8:8:8:8格式,并且在步驟S304中不需要格式 轉換。也就是說,在這個示例中,8X8塊中的每個數據值都包括32比特:用于阿爾法通道 的8比特、用于紅色通道的8比特、用于綠色通道的8比特、以及用于藍色通道的8比特。
[0054] 在步驟S304中,顏色解相關模塊202還對數據值應用顏色解相關。適合的顏色解 相關方法在本領域中是已知的。優(yōu)選地,使用不擴展任何輸出通道的顏色解相關方法,即從 顏色相關模塊202輸出的比特數目不大于被輸入到顏色解相關模塊202的比特數目。
[0055] 在其他示例中,阿爾法通道的數據值被發(fā)送至空間解相關模塊2044,并且R通道、G 通道和B通道的數據值被發(fā)送至顏色解相關模塊202,從而顏色解相關模塊202僅對R值、 G值和B值應用顏色解相關。
[0056] 已經發(fā)現了(例如,如GB2451911中所示出的)以下的非常簡單的顏色轉換對于 8比特顏色值表現良好:
[0057] R' = R-G mod 2 8
[0058] G' = G
[0059] B' = B_G mod 2 8
當前第1頁1 2 3 4 5 6 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1