相關申請的交叉引用
本申請要求于2014年10月15日提交的美國臨時申請序列號62/064,282和于2014年11月26日提交的臨時申請序列號62/085,138的權益,其申請的全部內容通過引用合并于此。
本文涉及對數(shù)據(jù)進行轉換和壓縮。
背景技術:
一些圖像很大,諸如通過醫(yī)療x射線設備獲得的圖像。例如,一些完整的(full-filed)數(shù)字乳腺x射線圖像在未壓縮格式的情況下大于50mb。無損圖像壓縮技術可以減少圖像的大小,但圖像文件仍然足夠大以使得傳送整個圖像文件到遠程計算設備(例如,醫(yī)療專業(yè)人員已經要求圖像的客戶端計算設備)要求該遠程計算設備處的人員在整個圖像通過網(wǎng)絡被檢索期間、可以查看之前等待。此外,一些圖像壓縮算法未被集成到某些web瀏覽器中。由于這樣,客戶端側解壓縮算法可以必須以腳本語言編程(例如,javascript)并且在圖像可以被解壓縮之前被傳送到客戶端計算設備。在腳本語言中編程的解壓縮算法可以由web瀏覽器腳本引擎執(zhí)行,盡管這樣的引擎執(zhí)行指令可以比在web瀏覽器腳本引擎外執(zhí)行指令更慢。
技術實現(xiàn)要素:
本文描述技術、方法、系統(tǒng)以及用于轉換和壓縮數(shù)據(jù)的其它機制。一般來說,在客戶端計算設備處的用戶可以請求查看存儲在遠程計算系統(tǒng)處存儲的圖像文件。遠程計算系統(tǒng)可以生成圖像的降低分辨率版本,并傳送圖像的降低分辨率版本到客戶端計算設備,用于顯示。在稍后的時候,客戶端計算設備可以請求遠程計算系統(tǒng)發(fā)送數(shù)據(jù)用于生成圖像的中間分辨率版本的顯示。計算系統(tǒng)可以發(fā)送這樣的數(shù)據(jù),即使它本身可以作為圖像不可見。然而,客戶端計算設備可以可以將在圖像的降低分辨率版本中的信息與來自圖像的中間分辨率版本的數(shù)據(jù)進行組合來生成圖像的中間分辨率版本的顯示。
從遠程計算系統(tǒng)傳送到客戶端計算設備的圖像信息可以在傳送之前被壓縮以促進更快地傳送數(shù)據(jù)。此外,遠程計算系統(tǒng)可以轉換數(shù)據(jù)以增加由數(shù)據(jù)表示的數(shù)據(jù)值的冗余度。這種轉換可以在壓縮之前執(zhí)行,以便于增加壓縮水平。例如,如果表示圖像像素的圖像數(shù)據(jù)不使用每個像素值的一些最高有效位(例如,因為像素值用10位存儲,但是10位信息存儲在兩個8位的字節(jié)中),則遠程計算系統(tǒng)可以分割構成每個像素值的數(shù)據(jù)(例如,在存儲像素值的字節(jié)之間均勻地或基本均勻地)。因此,可以出現(xiàn)在每個所存儲的字節(jié)中的唯一值的數(shù)目可以減少,并且數(shù)據(jù)值的重復(以及由此的壓縮程度)可以增加。
作為對下面描述的實施例的附加描述,本公開描述了以下實施例。
實施例1是用于將圖像數(shù)據(jù)發(fā)送到客戶端設備的計算機實現(xiàn)的方法。所述方法包括由計算系統(tǒng)接收對將圖像數(shù)據(jù)發(fā)送到計算設備的第一請求。所述方法包括由計算系統(tǒng)發(fā)送第一圖像數(shù)據(jù)并且由計算設備響應于已經接收到第一請求而接收所述第一圖像數(shù)據(jù),計算設備能夠從第一圖像數(shù)據(jù)生成圖像的初始顯示,其中圖像的初始顯示是與圖像的全分辨率相比分辨率降低的圖像的降低分辨率版本。所述方法包括由計算系統(tǒng)接收對將圖像數(shù)據(jù)發(fā)送到計算設備的第二請求。所述方法包括由計算系統(tǒng)發(fā)送第二圖像數(shù)據(jù)并且由計算設備響應于已經接收到第二請求而接收所述第二圖像數(shù)據(jù),計算設備能夠從第二圖像數(shù)據(jù)生成圖像的后續(xù)顯示,其中圖像的后續(xù)顯示是圖像的中間分辨率版本,圖像的中間分辨率版本具有比圖像的降低分辨率版本的分辨率高并且比圖像的全分辨率低的分辨率,其中通過從圖像的中間分辨率版本中的像素的值中減去圖像的初始顯示中的像素的值來先前生成第二圖像數(shù)據(jù)的部分,其中第二圖像數(shù)據(jù)被配置以使得計算設備能夠通過將第二圖像數(shù)據(jù)與第一圖像數(shù)據(jù)組合來生成圖像的后續(xù)顯示。
實施例2是實施例1的計算機實現(xiàn)的方法,進一步包括由計算系統(tǒng),通過壓縮對圖像的初始顯示進行編碼的數(shù)據(jù)或壓縮表示對圖像的初始顯示進行編碼的數(shù)據(jù)的轉換的數(shù)據(jù)來生成第一圖像數(shù)據(jù)。
實施例3是實施例1的計算機實現(xiàn)的方法,其中,圖像的中間分辨率版本被配置以使得計算機能夠通過將圖像的中間分辨率版本與附加圖像數(shù)據(jù)組合而無損地重新創(chuàng)建圖像的全分辨率。
實施例4是實施例1的計算機實現(xiàn)的方法,其中第二圖像數(shù)據(jù)包含沒有附加的圖像數(shù)據(jù)不足以從中生成圖像的版本的顯示的信息。
實施例5是實施例1的計算機實現(xiàn)的方法,進一步包括由計算系統(tǒng)生成第一圖像數(shù)據(jù),其中生成第一圖像數(shù)據(jù)包括通過對分辨率高于圖像的初始顯示的圖像的版本中的多個像素的值進行組合來生成第一圖像數(shù)據(jù)的部分,所述第一圖像數(shù)據(jù)的部分表示圖像的初始顯示中的像素的值。
實施例6是實施例1的計算機實現(xiàn)的方法,其中,將圖像數(shù)據(jù)發(fā)送到計算設備的第二請求由計算設備發(fā)送,以被計算系統(tǒng)接收,作為計算設備接收用戶輸入以放大到圖像的初始顯示的結果。
實施例7是實施例1的計算機實現(xiàn)的方法,進一步包括由計算系統(tǒng)并且基于識別計算設備的顯示特性的數(shù)據(jù)來確定發(fā)送第一圖像數(shù)據(jù),計算設備從第一圖像數(shù)據(jù)能夠生成圖像的降低分辨率版本,所述第一圖像數(shù)據(jù)區(qū)別于從中能夠生成圖像的其他分辨率版本的圖像數(shù)據(jù)。
實施例8是實施例1的計算機實現(xiàn)的方法,其中圖像的中間分辨率版本的存儲在存儲器中的大小大于第二圖像數(shù)據(jù)的未壓縮形式的存儲在存儲器中的大小。
實施例9是實施例1的計算機實現(xiàn)的方法,進一步包括由計算系統(tǒng)生成第一圖像數(shù)據(jù),其中圖像中的像素值各自被編碼為雙字節(jié)數(shù)據(jù)單元,并且其中生成第一圖像數(shù)據(jù)包括:(i)由計算系統(tǒng)識別其中對像素值進行編碼的每個雙字節(jié)數(shù)據(jù)單元中的位數(shù)量,其中位數(shù)量是雙字節(jié)數(shù)據(jù)單元中所有位的子集,其中位數(shù)量跨越每個雙字節(jié)數(shù)據(jù)單元中的位的范圍,以及(ii)由計算系統(tǒng)將位于每個雙字節(jié)數(shù)據(jù)單元中位的范圍的上半部的位移位到每個雙字節(jié)數(shù)據(jù)單元中的不同位置,同時將位于每個雙字節(jié)數(shù)據(jù)單元中位的范圍的下半部的位留在其原始位置。
實施例10是實施例9的計算機實現(xiàn)的方法,其中位的范圍占據(jù)全部雙字節(jié)數(shù)據(jù)單元的最低字節(jié)以及雙字節(jié)數(shù)據(jù)單元的最高字節(jié)的子集。
實施例11是實施例9的計算機實現(xiàn)的方法,其中,在計算系統(tǒng)已經將位于所述不同位置的上半部的位移位之后,生成第一圖像數(shù)據(jù)包括對一起包括圖像的雙字節(jié)數(shù)據(jù)單元的組合進行壓縮。
實施例12是實施例1的計算機實現(xiàn)的方法,進一步包括由計算系統(tǒng)通過移動像素的多字節(jié)表示中的位的子集來生成第一圖像數(shù)據(jù),使得位的子集從占據(jù)像素的多字節(jié)表示的第一字節(jié)的部分和像素的多字節(jié)表示的第二字節(jié)的部分移動到僅占據(jù)像素的多字節(jié)表示的第二字節(jié)的部分。
實施例13是實施例12的計算機實現(xiàn)的方法,其中將位的子集從占據(jù)第一字節(jié)的部分和第二字節(jié)的部分移動到僅占據(jù)第二字節(jié)的部分包括將二進制零插入第一字節(jié)的部分中,位的子集已經先前位于所述第一字節(jié)的部分處。
實施例14是實施例1的計算機實現(xiàn)的方法,進一步包括由計算系統(tǒng)通過在每個雙字節(jié)數(shù)據(jù)單元的第一字節(jié)和每個雙字節(jié)數(shù)據(jù)單元的第二字節(jié)之間均勻地擴展在多個雙字節(jié)數(shù)據(jù)單元中編碼的二進制數(shù)據(jù),來生成第二圖像數(shù)據(jù),使得二進制數(shù)據(jù)由每個雙字節(jié)數(shù)據(jù)單元的第一字節(jié)中的一定數(shù)目的位以及每個雙字節(jié)數(shù)據(jù)單元的第二字節(jié)中的一定數(shù)目的位表示。
實施例15是實施例14的計算機實現(xiàn)的方法,其中:第一字節(jié)中一定數(shù)目的位與第二字節(jié)中一定數(shù)目的位相同;第一字節(jié)中一定數(shù)目的位是第一字節(jié)中位的子集;以及第二字節(jié)中的一定數(shù)目的位是第二字節(jié)中位的子集。
實施例16是實施例15的計算機實現(xiàn)的方法,其中在多個雙字節(jié)數(shù)據(jù)單元中編碼的二進制數(shù)據(jù)是由計算系統(tǒng)對圖像的全分辨率或圖像的降低分辨率版本執(zhí)行的delta編碼過程的結果。
實施例17是一種計算機實現(xiàn)的方法。所述方法包括由計算系統(tǒng)接收對將圖像數(shù)據(jù)發(fā)送到計算設備的第一請求,計算設備能夠從所述第一請求生成圖像的初始顯示。所述方法包括由計算系統(tǒng)從圖像的全分辨率生成第一圖像數(shù)據(jù),以及從圖像的全分辨率生成第二圖像數(shù)據(jù)。生成第一圖像數(shù)據(jù)包括:(i)生成與圖像的全分辨率相比分辨率降低的圖像的降低分辨率版本,其中圖像的降低分辨率版本中的像素被存儲在多字節(jié)數(shù)據(jù)單元中,(ii)在相應的多字節(jié)數(shù)據(jù)單元中的每個字節(jié)之間均勻地重新布置若干個位,所述若干個位在每個相應的多字節(jié)數(shù)據(jù)單元中編碼每個像素值,以及(iii)在對每個相應的多字節(jié)數(shù)據(jù)單元的每個像素的值進行編碼的所述若干個位被均勻地重新布置之后,通過壓縮過程發(fā)送在多字節(jié)數(shù)據(jù)單元中編碼的數(shù)據(jù)。所述方法包括由計算系統(tǒng)發(fā)送第一圖像數(shù)據(jù)并由計算設備響應于已經接收到第一請求而接收所述第一圖像數(shù)據(jù),計算設備能夠從所述第一圖像數(shù)據(jù)生成圖像的初始顯示,其中圖像的初始顯示是與圖像的全分辨率相比分辨率降低的圖像的降低分辨率版本。所述方法包括由計算系統(tǒng)接收對將圖像數(shù)據(jù)發(fā)送到計算設備的第二請求,計算設備能夠從所述第二請求生成圖像的后續(xù)顯示。所述方法包括由計算系統(tǒng)發(fā)送第二圖像數(shù)據(jù)并由計算設備響應于已經接收到第二請求而接收所述第二圖像數(shù)據(jù),計算設備能夠從所述第二圖像數(shù)據(jù)生成圖像的后續(xù)顯示,其中圖像的后續(xù)顯示是圖像的中間分辨率版本,所述圖像的所述中間分辨率版本具有高于圖像的降低分辨率版本的分辨率并且低于圖像的全分辨率的分辨率,其中通過從圖像的中間分辨率版本中的像素的值中減去圖像的初始顯示中的像素的值來先前生成第二圖像數(shù)據(jù)的部分,以及其中第二圖像數(shù)據(jù)被配置以使得計算設備能夠通過將第二圖像數(shù)據(jù)與第一圖像數(shù)據(jù)組合來生成圖像的后續(xù)顯示。
實施例18涉及一個或多個包括指令的計算機可讀設備,所述指令當由一個或多個計算機處理器執(zhí)行時,使得執(zhí)行根據(jù)實施例1到17中任一個的方法的動作。
在某些情況下,特定實施方式可以實現(xiàn)以下優(yōu)點中的一個或多個。在客戶端計算設備上查看大圖像文件可以比將整個圖像傳送到客戶端計算設備然后呈現(xiàn)以查看更快。當圖像的較低分辨率版本已經被下載到客戶端計算設備時顯示圖像的中間分辨率版本可以不要求下載在較低分辨率的圖像數(shù)據(jù)還沒有被下載到客戶端計算設備的情況下查看圖像的中間分辨率版本所需要的所有信息。在數(shù)據(jù)字節(jié)之間均勻地呈現(xiàn)以供壓縮的分割信息可以減少所述數(shù)據(jù)的值的范圍以及所述數(shù)據(jù)中值的重復,這可以提高數(shù)據(jù)的壓縮水平。
在附圖和下面的描述中闡述一個或多個實施方式的細節(jié)。其他特征、對象和優(yōu)點從描述和附圖以及權利要求中將是顯而易見的。
附圖說明
圖1圖示出了用于將圖像數(shù)據(jù)從計算系統(tǒng)傳送到計算設備的系統(tǒng)和各種方法。
圖2圖示出了用于生成圖像的較低分辨率版本以及重建到包括原始無損版本的較高分辨率版本所需的數(shù)據(jù)的過程。
圖3圖示出了將圖像轉換為圖像的較低分辨率版本以及重建到包括原始無損版本的較高分辨率版本的數(shù)據(jù)的過程。
圖4圖示出了通過在數(shù)據(jù)的字節(jié)之間重新布置數(shù)據(jù)的位來轉換圖像數(shù)據(jù)的過程。
圖5a-b圖示出了用于對圖像數(shù)據(jù)進行delta編碼以及通過查找表重新映射經delta編碼的數(shù)據(jù)的過程。
圖6是可以用于實現(xiàn)本文中描述的系統(tǒng)和方法的計算設備的框圖,作為客戶端或作為服務器或多個服務器。
各附圖中的相同附圖標記指示相同的元件。
具體實施方式
所述文大體上描述了轉換和壓縮數(shù)據(jù)。例如,圖像數(shù)據(jù)可以被分開成代表圖像的不同分辨率視圖的數(shù)據(jù)層。與較低分辨率視圖相對應的層可以被傳送以被客戶端計算設備接收,然后客戶端計算設備顯示圖像。計算設備可以通過將來自較低分辨率視圖的數(shù)據(jù)與可以用于生成較高分辨率的視圖的數(shù)據(jù)進行組合來顯示圖像的較高分辨率的版本。實際上,計算設備可以通過部分地使用較低分辨率的圖像信息并部分使用較高分辨率的圖像信息來無損地重建圖像的較高分辨率視圖。
此外,在每個圖像數(shù)據(jù)層被傳送到客戶端計算設備之前,所述圖像數(shù)據(jù)層可以經歷無損數(shù)據(jù)轉換和壓縮過程。無損數(shù)據(jù)轉換可以涉及改變存儲在多字節(jié)單元信息中的值,使得構成所述值的二進制值在多個字節(jié)之間被均勻地或有些均勻地存儲,這可以減少在數(shù)據(jù)中重復的值的數(shù)目并增加后續(xù)數(shù)據(jù)壓縮(例如,利用來自符號查找表中的符號替代數(shù)據(jù),或者利用諸如huffman編碼或deflate的站點特定壓縮算法)。系統(tǒng)的這些和其它方面在下面的圖中描述。
圖1圖示出了用于將圖像數(shù)據(jù)從計算系統(tǒng)102傳送到計算設備104的系統(tǒng)和各種方法。在所述示例中,計算系統(tǒng)102可以是單個計算機或計算機的集合,諸如使用一個地理上分散的服務器集合操作的云計算系統(tǒng)。計算設備104可以是移動電話,如圖1所示,或者可以是諸如平板計算機、膝上型計算機或桌面計算機的各種其他形式的計算設備。所述系統(tǒng)不限于將圖像數(shù)據(jù)從醫(yī)療保健組織的計算系統(tǒng)傳送到醫(yī)療專業(yè)人員的計算設備,但是在本說明書中的示例將參考這樣的布置以便說明系統(tǒng)的益處。
在框110處,計算設備104接收請求圖像的用戶輸入。例如,計算設備104的用戶可以已經啟動了應用程序(例如,“應用(app)”),或者被導航到被配置為向醫(yī)療專業(yè)人員的計算設備提供醫(yī)學圖像的網(wǎng)站。作為一個例子,醫(yī)生可以只帶有他的手機離開醫(yī)院,并且立即需要查看剛剛入院的創(chuàng)傷受害者的高分辨率圖像。醫(yī)生可以打開醫(yī)學圖像查看器應用程序或訪問網(wǎng)站,并且作為響應,被呈現(xiàn)醫(yī)生可以在他的電話104上查看的圖像的多個鏈接或縮略圖。(在一些實施方式中,縮略圖是通過框206(圖2)的過程生成的圖像的較低分辨率版本。)醫(yī)生可以為特定圖像選擇鏈接或縮略圖,并且作為響應,計算設備104可以傳送對圖像的請求(框112)。
在框112處,從移動計算設備104傳送對圖像的請求由計算系統(tǒng)102接收。所述請求可以具體地識別出所請求圖像的低分辨率版本,或者可以簡單地識別圖像,并且計算系統(tǒng)102可以確定是發(fā)送圖像的全分辨率版本還是圖像的較低分辨率版本。在一些示例中,請求112或從計算設備104到計算系統(tǒng)102的先前通信可以包括識別計算設備104的顯示能力的信息。例如,請求104可以包括識別移動電話的類型或移動電話的顯示的最大分辨率(例如,1334x740像素)的信息。在一些示例中,計算系統(tǒng)102可以接收指定計算設備104的數(shù)據(jù)傳送能力的信息(例如,由計算設備104通過網(wǎng)絡接收信息的速度,或者計算設備104當前是否通過小區(qū)信號塔或通過wi-fi連接到互聯(lián)網(wǎng))。
計算系統(tǒng)102接收請求112,并且作為響應發(fā)送由計算設備104接收的低分辨率圖像數(shù)據(jù)132(框116)。低分辨率圖像數(shù)據(jù)132可以由計算系統(tǒng)102響應于已經接收到的請求112而生成,或者可以已經由計算系統(tǒng)102在先前的時間點生成(例如,原始圖像130可以已經預先被處理以生成圖像數(shù)據(jù)132、134和136)。事實上,低分辨率圖像數(shù)據(jù)132(以及諸如中間分辨率圖像數(shù)據(jù)134和高分辨率圖像數(shù)據(jù)136的圖像數(shù)據(jù)的其它層)可以已經由不同的計算系統(tǒng)生成并且由計算系統(tǒng)102傳送以進行存儲。生成圖像數(shù)據(jù)132、134和136的各個層的動作由框114表示,其將參照圖2更詳細地描述,在返回到圖1描述框116至124之前這個描述的焦點將轉向圖2。
圖2圖示出了用于生成圖像的較低分辨率版本和重構包括原始無損版本的較高分辨率的圖像所需的圖像數(shù)據(jù)的過程。所述過程可以接收圖像130(在此有時被指代為全分辨率圖像)作為輸入,并且可以輸出表示不同分辨率水平的圖像的數(shù)據(jù)的多個壓縮數(shù)據(jù)塊132、134和136。為了產生壓縮數(shù)據(jù)塊132、134和136,所述過程可以產生未壓縮數(shù)據(jù)140、222和224的對應塊。然后,未壓縮數(shù)據(jù)塊140、222和224可以被delta編碼并通過查找表(框208)重新映射以產生經編碼和重新映射的數(shù)據(jù)塊230、232和234。然后可以進一步轉換delta編碼和重新映射的數(shù)據(jù)以增加數(shù)據(jù)中的數(shù)據(jù)值的復制(框210)以產生經轉換數(shù)據(jù)塊240、242和244。然后可以壓縮所述信息(框212)以產生上述壓縮數(shù)據(jù)塊132、134和136,其中一些塊可被傳送以供計算設備104接收。圖2中示出的每個框在以下結合附加細節(jié)進行說明。
在框202處,計算系統(tǒng)接收生成圖像的較低分辨率版本的請求202,以及重建包括原始無損版本的圖像的較高分辨率所需的圖像數(shù)據(jù)。請求202可以與請求112(圖1)相同,可以是獨立請求,或者可以是由請求112(圖1)發(fā)起的請求。用于生成圖像的較低分辨率版本的請求202可以指定圖像的期望的或目標較低分辨率版本,或者可以不指定。請求202可以識別要為其產生較低分辨率版本的圖像。在所述圖示中,圖像130是全分辨率圖像,其中框114的過程將為其生成較低分辨率的版本(例如,較低分辨率版本132)。在所述圖示中,圖像130是用戶頭部的醫(yī)學圖像(例如,頭部顱骨的計算機斷層(ct)掃描)。
在方框204,計算系統(tǒng)102對圖像進行預處理。預處理可以包括在排除像素填充值的同時計算最小和最大像素值。預處理還可以包括將位于圖像中所示的解剖結構外的像素的值改變?yōu)樽钚∠袼刂?。例如,醫(yī)學成像設備可以將像素填充值插入到圖像中以表示圖像的那些部分,所述圖像的那些部分基本上是填充圖像的側面以滿足特定圖像形狀以及不表示由醫(yī)學成像設備捕獲的數(shù)據(jù)的填充信息。像素填充值可以由醫(yī)學成像設備設定為任意數(shù)目(例如,“ffee”十六進制),并且預處理可以將這些值改變?yōu)楸茸钚∠袼刂瞪僖坏闹?例如,最小值為“0001”十六進制,將像素填充值重新映射為“0000”十六進制)。
圖像的預處理還可以包括從圖像中的每個像素減去minpixelvalue,其可以作為最小值“0000”(十六進制)。這樣做可以提供由客戶端計算設備104處理圖像數(shù)據(jù)的性能提升,因為一些javascript引擎被優(yōu)化以訪問基于零的陣列。
在框206處,計算系統(tǒng)將圖像轉換成圖像的較低分辨率版本?,F(xiàn)在參照圖3更詳細地描述所述過程,盡管所述描述稍后將返回到描述圖2的框208、210和212。
圖3圖示出了將圖像轉換成圖像的較低分辨率版本的過程。盡管圖2指示所述過程將在512kb圖像130上執(zhí)行,圖3中的過程的簡化說明參考16像素圖像210示出???06的過程包括多個迭代或遞歸轉換,如下所述。
轉換的初始迭代在原始圖像210的四個像素塊上(例如,每個2×2像素塊上)進行操作。在所述圖示中,參考像素p1至p4描述轉換過程,盡管可以將相同的過程應用于像素p5至p8、像素p9至p12以及像素p13至p16。參照像素p1至p4,所述過程使用圖3所示的轉換部分290所示的算法。特別地,計算系統(tǒng)生成像素p1至p4的總和(例如,sum=p1+p2+p3+p4),然后生成所述和的近似值(例如,a(近似)=sum/4)。(在一些實施方式中,近似是和的平均值)。轉換值d1至d3和m是使用轉換部分290中所示的其他算法生成的(例如,m(模數(shù))=sum%4);d1=p1-a;d2=p2-a;d3=p3-a)。因此,轉換的單次迭代生成轉換數(shù)據(jù)220。(在所述示例中,“a(近似)”值被示為a1,因為來自其他轉換的a值被呈現(xiàn)為a2、a3等)。從四個像素的每個轉換輸出的“a”或“近似”值表示這四個像素的近似值。作為一個粗略的比喻,每個四像素組的陰影混合在一起以產生單一的陰影。在一些實施方式中,所述過程可以對不同于2x2(例如,1×4,3×3等)的像素塊進行操作。在一些實施方式中,由處理每個像素塊產生的值可以不同于精確的平均值或算術平均值,并且另外可以將塊中的每個像素的值組合成單個像素值。
來自初始轉換的所有a值可以被組合以生成圖像230的降低分辨率版本,其將具有與原始圖像210的四分之一像素一樣多的像素(或近似數(shù)字,當原始圖像210中的像素數(shù)目不能被四整除)。在一些示例中,圖像230的所述降低分辨率版本是被發(fā)送到客戶端計算設備104的圖像。
在一些示例中,對圖像230的降低分辨率版本執(zhí)行轉換的另一次迭代。例如,計算系統(tǒng)可以確定圖像230的降低分辨率版本是否已經滿足用于傳送到客戶端計算設備104的標準。例如,計算系統(tǒng)102可以存儲默認分辨率,在所述默認分辨率它將停止遞歸地應用轉換(例如,一旦圖像的降低分辨率版本處于諸如128×128的閾值分辨率,或者當確定轉換的另一次迭代將產生具有小于閾值分辨率的分辨率的圖像)。
在一些實施方式中,計算系統(tǒng)102可以停止執(zhí)行過程的閾值分辨率小于計算設備102的分辨率(例如,256×256像素)。在一些實施方式中,計算系統(tǒng)102可以停止執(zhí)行過程的閾值分辨率可以基于識別計算設備104的分辨率的信息來確定。例如,計算系統(tǒng)102可以接收指示計算設備104具有分辨率為1334×740像素的顯示器的信息,并且因此可以執(zhí)行轉換的連續(xù)迭代,直到創(chuàng)建了具有1334×740或更大分辨率的圖像230的降低分辨率版本,并且其中轉換的另一次迭代將產生圖像230的甚至更降低分辨率版本,其將落在1334×740分辨率閾值以下。換句話說,框206的過程可以被配置為連續(xù)執(zhí)行上述轉換,直到適當分辨率的圖像被創(chuàng)建以在計算設備104上顯示。適當?shù)姆直媛士梢缘扔诨蚯『酶哂谟嬎阍O備的顯示器的分辨率,因為在計算設備上的顯示器上不會呈現(xiàn)任何更大的分辨率。如果用戶放大圖像,則可以從計算系統(tǒng)檢索附加信息以生成圖像的較高分辨率版本。在一些示例中,將基于所識別的計算設備104到其網(wǎng)絡連接速度或其與網(wǎng)絡的連接類型來確定要生成并發(fā)送到客戶端計算設備的圖像的分辨率。
所述描述現(xiàn)在轉向描述對從初始轉換輸出的a值的四字節(jié)或像素組合執(zhí)行的轉換的后續(xù)迭代。例如,可以對圖像230的降低分辨率版本中所示的a1至a4值執(zhí)行轉換。在這種轉換的遞歸應用中,為了轉換部分290中示出的算法的目的,每個a值被視為“p”值。所述處理由圖3所示的a1至a4的替選名稱反映(即,數(shù)據(jù)替選地被稱為p1'至p4')。這些算法的應用產生包括a1',d1',d2',d3'和m'的轉換數(shù)據(jù)240。
在框206中執(zhí)行的過程的一些版本中,圖像的全分辨率和中間分辨率版本可被計算系統(tǒng)102丟棄,并且計算系統(tǒng)240可以存儲由過程(圖3中所示的a1')創(chuàng)建的圖像的最低分辨率版本以及每層轉換的d1至d3和m值。(在圖3中用點虛線表示可以丟棄但仍然許可無損重構的數(shù)據(jù),而轉換過程的每個階段的數(shù)據(jù)由虛線分組。)針對每層轉換存儲d1至d3和m值,因為計算系統(tǒng)可以使用圖像的最低分辨率版本和“d”和“m”值無損地重新創(chuàng)建原始圖像210。例如,可以使用值a1',d1',d2',d3'和m'重新創(chuàng)建圖像230的降低分辨率版本。這樣做的算法遵循。p1=d1+a。p2=d2+a。p3=d3+a。p4=(a*4)-p1-p2-p3+m。
圖2中圖示出了各種信息層的這種存儲。在所述示例中,圖像140是由框206(在所述圖示中為128×128×1632kb圖像)的過程生成的最低分辨率圖像。數(shù)據(jù)222表示可以與圖像140組合以創(chuàng)建較高分辨率圖像(256×256×16128kb圖像)的數(shù)據(jù)。例如,圖像140(圖2)可以與像素/圖像a1'(圖3)相對應,而數(shù)據(jù)222(圖2)可以與d1',d2',d3'和m'(圖3)相對應。沿著相似的線,一旦從圖像140和數(shù)據(jù)222創(chuàng)建了較高分辨率的圖像,就可以通過將所述圖像與可和d1,d2,d3和m相對應的數(shù)據(jù)224組合來創(chuàng)建甚至較高分辨率圖像(圖3)。如圖3所示,這種反向轉換將產生原始圖像210。重建可以是無損的。
應當注意,圖3中所示的過程206的圖示是非典型的,因為它需要一個小的16像素圖像,并將其減少到單個像素a1'。在典型的過程中,初始圖像將大于16像素,并且輸出的圖像將大于單個像素。換句話說,方框206中描述的過程在圖像減少到單個像素之前將經常停止其轉換。
在圖2所示的過程中接下來是框208。在框208處,計算系統(tǒng)102對從框206的過程輸出的每個數(shù)據(jù)層(例如,對圖像140、數(shù)據(jù)222和數(shù)據(jù)224中的每一個)執(zhí)行各種處理和轉換。仍然,本描述將簡單地越過其對框208的討論而進入對框210的討論。其原因在于對框208和210僅用少量像素來圖示,但框208的過程將示例數(shù)據(jù)簡化到這樣的程度以至于框210的益處不是清楚的示出。因此,本描述首先圖示出了框210的操作和益處,然后轉回來描述另一個示例,其中數(shù)據(jù)由框208的操作處理,然后由框210的操作來處理。在一些實施方式中,可以不執(zhí)行關于框206描述的轉換過程,而是可以執(zhí)行框208的操作。在一些實施方式中,框208的操作是可選的。
在框210處,計算系統(tǒng)通過在多個字節(jié)之間重新布置數(shù)據(jù)來執(zhí)行圖像數(shù)據(jù)的轉換。例如,圖像數(shù)據(jù)有時被存儲為16位字(兩個8位字節(jié))的集合,每個字表示圖像的單個像素或圖像數(shù)據(jù)的單個通道(例如,用于單個像素的紅色、綠色或藍色數(shù)據(jù))。然而,醫(yī)學成像設備可以不生成可以填充能夠由16位字表示的所有值的數(shù)據(jù)。例如,16位值可以存儲0和65,535之間的2的6次方或65,536個不同的值,但是示例的醫(yī)學成像系統(tǒng)可以僅被配置為圖像的單個像素區(qū)域生成10位值(即,2的10次方或1024值)。在這樣的系統(tǒng)中,每個像素的10位信息仍然可以被存儲在一個16位字中。因此,每個字可以浪費6位。此外,來自圖像中每個像素的最低字節(jié)(即8位)可以包含多達256個不同的值,而最高字節(jié)可以僅在其最低二位中包含圖像數(shù)據(jù),使得來自每個像素的最高字節(jié)可以包含不超過四個不同的值。
最低字節(jié)值的寬范圍意味著用來自查找表的值替代字節(jié)中的值的過程可以不是有效的,因為最低字節(jié)的查找表可以仍然包含多達256個值。(在所述描述中,可以使用符號樹而不是查找樹)。減少在圖像中的所有最低字節(jié)之間發(fā)現(xiàn)的唯一值的數(shù)目的處理可以增加值的重復。這種增加的重復的示例益處可以包括在最低字節(jié)中減少數(shù)目的唯一值,并且因此減小大小的查找表。減小大小的查找表可以允許圖像中最低字節(jié)之間的所有值由較小的查找表數(shù)目(例如,對于每個最低字節(jié)值不超過5位來表示,而不是每個最低字節(jié)值都需要8位)。
獲得增加的值重復的益處的一種方法是將位于每個最低字節(jié)的信息位中的一些移位到最高字節(jié)。盡管這增加了可以在最高字節(jié)中表示的唯一值的數(shù)目,但可以減少在最低和最高字節(jié)的組合之間發(fā)現(xiàn)的唯一值的總體減少?,F(xiàn)在參考圖4描述執(zhí)行所述數(shù)據(jù)移位過程的轉換的示例。
圖4圖示出了通過在數(shù)據(jù)的字節(jié)之間重新布置數(shù)據(jù)來轉換圖像數(shù)據(jù)的過程。原始圖像數(shù)據(jù)402表示送入到框210的轉換過程的數(shù)據(jù)。所述數(shù)據(jù)可以來自圖像的任何層,并且不必是來自“原始”圖像的數(shù)據(jù)。例如,如果框208的操作未被執(zhí)行,則送入到框210的轉換過程的數(shù)據(jù)可以是圖像數(shù)據(jù)140(圖2),或者如果框208的操作被執(zhí)行,則可以是圖像數(shù)據(jù)230(圖2)。輸入轉換過程210的數(shù)據(jù)也可以是各種示例中的圖像130、數(shù)據(jù)222、數(shù)據(jù)224、數(shù)據(jù)232或數(shù)據(jù)234。
在圖4中以十六進制和二進制格式圖示出了原始圖像數(shù)據(jù)402。在所述圖示中,信息的每個16位字表示圖像的像素(因此,像素1至4的標記),但正在處理的數(shù)據(jù)集中的每個16位字不需要表示像素。例如,在輸入數(shù)據(jù)是數(shù)據(jù)222(圖2)的示例中,所述數(shù)據(jù)是相對于圖3描述的d1',d2',d3'和m'值的集合。值重復表404示出了在包括原始圖像數(shù)據(jù)的八個字節(jié)之間表示的五個唯一的8位值。
數(shù)據(jù)的轉換由框410表示,框410包括框412,414和416。
在框412處,計算系統(tǒng)識別使用的位數(shù)目。在一些示例中,圖像數(shù)據(jù)伴隨有元數(shù)據(jù),所述元數(shù)據(jù)指示每個字的多少位用于表示值。例如,醫(yī)療成像設備可以記錄10位值,并且可以將數(shù)據(jù)附加到圖像,其指示像素值被記錄為10位數(shù)據(jù)。在一些示例中,計算系統(tǒng)必須識別用于記錄值的位數(shù)目。例如,計算系統(tǒng)可以分析信息以識別最小值(在所述示例中為“0000”十六進制)和最大值(在所述示例中為“0208”十六進制)。在所述跨度之間表示的值的范圍僅占據(jù)10位信息,因此可以將10位設置為數(shù)據(jù)的動態(tài)范圍。
在上述示例中,數(shù)據(jù)從“0000”(十六進制)開始,并且在所述范圍的頂部附近不存在值(例如,在“ffff”十六進制或“ef10”十六進制)處。這可以是由于在框204(圖2)執(zhí)行的預處理,其中將minpixelvalue添加到每個圖像值。例如,如果最低值為“0004”(十六進制)(表示“0000000000000100”二進制),則將數(shù)據(jù)向下移位到“0000”(十六進制)將減少對兩位的需要。類似地,相同的預處理重新映射填充數(shù)據(jù),其有時由靠近所述范圍頂部的值(例如,在“ffff”)處表示。在沒有重新映射這些值的情況下,可以值的范圍從“0000”或其附近一直擴展到“ffff”。因此,預處理允許相對于框210描述的位重新布置的轉換與表示人體解剖的數(shù)據(jù)值的范圍一起工作。因此,預處理可以在框410之前或作為框410的一部分執(zhí)行,而不是在圖2中示出框204的位置處。
在任何情況下,一旦確定了由圖像中的每個16位值表示的值的范圍,則框414的操作被執(zhí)行以識別如何重新布置或分割在字的兩個字節(jié)之間的范圍中的值。在值范圍內有偶數(shù)位(在本示例中為10位)的示例中,則位可以均勻分布在兩個字節(jié)之間(最高字節(jié)中的5位和最低字節(jié)中的5位)。在值范圍內的位為奇數(shù)(例如,11位)的示例中,則位可以基本均勻地分布在兩個字節(jié)之間(例如,最高字節(jié)中的5位和最低字節(jié)中的6位,或反之亦然),使得指派給最高字節(jié)的位數(shù)目和指派給最低字節(jié)的位數(shù)目相差不多于一位。在一些實施方式中,位指派可以相差多于一位。在一些實施方式中,轉換可以不均勻地或基本均勻地在多個字節(jié)之間重新布置或分割數(shù)據(jù)。例如,存儲在雙字節(jié)數(shù)據(jù)單元中的8位數(shù)字的轉換可以移動數(shù)據(jù),使得單個位被存儲在較高字節(jié)中,并且八位中的七位在最低字節(jié)中。
在框416,圖像數(shù)據(jù)的每個字的較高字節(jié)用指派給較高字節(jié)的位數(shù)填充,并且最低字節(jié)用指派給最低字節(jié)的位數(shù)填充。數(shù)據(jù)從最初識別的值范圍填充。例如,將像素1的轉換示出為圖4中的項420。所述示例示出范圍為10位的字。作為轉換的結果,最低的5位留在字的最低字節(jié)中,并且最高的5位被移動到字的最高字節(jié)。所述過程可以包括掩?;蛑概伞?”值給沒有指派的最低字節(jié)中的位。在這個示例中,除了在實質數(shù)據(jù)的第5位和第6位之間插入“000”(二進制)之外,最高字節(jié)開始處的位和最低字節(jié)開始處的位按順序表示原始數(shù)據(jù)。數(shù)據(jù)在此示例中保留其原始順序,但數(shù)據(jù)也可以不保留其原始順序。
應當注意,由像素1的轉換示出的10位的范圍以二進制“1”開始,并以二進制“1”結束,但不一定必須是這種情況。例如,所使用的被識別的位的數(shù)目是被翻譯的數(shù)據(jù)的所有值之中的位的數(shù)目。作為示例,值“0000000000000100”(二進制)可以具有10位的范圍,并且可以相應地操作。
經轉換的圖像數(shù)據(jù)430圖示出了使用上述過程來轉換原始圖像數(shù)據(jù)402中數(shù)據(jù)的的四個像素的結果。如值重復表432所示,經轉換的數(shù)據(jù)430僅包括四個唯一值,在這些值中比在原始圖像數(shù)據(jù)402中具有更多的重復(比較值重復表432與值重復表404,其中所述值重復表432具有shannon熵值為1.9(8位)和2.0(16位),所述值重復表404具有shannon熵值為2.2(8位)和2.0(16位))。
在一些實施方式中,參考圖4描述的轉換過程可以利用使用大于16位的數(shù)據(jù)量記錄的數(shù)據(jù)來執(zhí)行。例如,轉換過程可以以3字節(jié)(24位)、4字節(jié)(32位)或更多的數(shù)量所存儲的數(shù)據(jù)執(zhí)行。在每個示例中,可以不要求指定數(shù)據(jù)量中的所有位的原始數(shù)據(jù)在數(shù)據(jù)量的字節(jié)或子部分之間重新布置或分割。在一些實施方式中,數(shù)據(jù)量不是8位字節(jié)的倍數(shù)。例如,可以將數(shù)據(jù)記錄在兩個5位數(shù)據(jù)子單元的數(shù)據(jù)量中,但是數(shù)據(jù)可以只填充兩個5位數(shù)據(jù)子單元的8位。因此,可以擴展數(shù)據(jù),使得每個5位數(shù)據(jù)子單元存儲四位。
雖然本公開討論了關于圖像數(shù)據(jù)的數(shù)據(jù)擴展轉換過程,但是轉換及其益處不限于圖像數(shù)據(jù),并且可以用于增加其中每個數(shù)據(jù)值被存儲在多字節(jié)數(shù)據(jù)單元中的其他類型的數(shù)據(jù)的值的重復,但數(shù)據(jù)值不跨越多字節(jié)數(shù)據(jù)單元可以表示的整個值范圍。數(shù)據(jù)擴展轉換過程也將受益的示例場景是高保真科學測量數(shù)據(jù)。例如,測量精確距離、溫度或速度的科學測試儀器,可以生成存儲在16位或24位數(shù)據(jù)單元中的信息,但信息可以使用少于所有所要求的數(shù)據(jù)單元。在本文中描述的技術(至少相對于圖2的框208、210和212描述的技術)可以用于在不執(zhí)行本文中的其他過程的操作(例如,相對于圖3所描述的那些)的情況下轉換和壓縮這樣的數(shù)據(jù)。
返回到由圖2框202至212的組合所示的框114的過程,框210處的數(shù)據(jù)的轉換結果是數(shù)據(jù)240、242和244,然后數(shù)據(jù)240、242和244在框212處被壓縮。在一些示例中,壓縮包括單獨地或由gzip程序實現(xiàn)的應用deflate數(shù)據(jù)壓縮算法。也可以使用其他壓縮算法。在一些實施方式中,代替應用壓縮算法或作為應用壓縮算法的部分,經轉換的圖像數(shù)據(jù)通過lz77運行或由其檢測到重復的串并被串和重復數(shù)目替代的其他過程運行。例如,如果檢測“e100e100e100e100”(十六進制),則可以用“e100”以及距離2和長度為6的特殊符號替代。(距離和長度值被識別為2和6,因為有4次重復十六進制字節(jié)“e1”和“00”,并且lz77放置一個特殊的標記,指示所述過程應該在流中返回一個“距離”字節(jié)數(shù),并重復最多為“長度”字節(jié),因此在“e100”之后將是特殊代碼說回到“e100”之前的2個字節(jié),并重復最多6個字節(jié),這擴展到這兩個字節(jié)“e100e100e100e100”的附件的3個復本。)用更緊湊的表示替代重復的串,由于表示重復的串所需的位較少,可以降低數(shù)據(jù)的整體大小。從lz77或類似過程導致的壓縮水平隨著數(shù)據(jù)中重復值水平的增加而增加。至少由于這個原因,在lz77或類似過程之前應用數(shù)據(jù)重新布置轉換可以增加壓縮水平。
在一些實施方式中,代替應用壓縮算法或作為應用壓縮算法的部分,經轉換的圖像數(shù)據(jù)或經由lz77或類似過程進行的其他數(shù)據(jù)通過huffman編碼器或一些其他過程來運行,通過這些其他過程創(chuàng)建符號樹來用使用較少位來編碼更常見的符號的不同符號替代經轉換的圖像數(shù)據(jù)中找到的值。例如,如果“e1”(hex)是圖像數(shù)據(jù)中最常見的值,則可以使用少于8位進行編碼。通過符號樹映射經轉換的數(shù)據(jù)中的值可以降低數(shù)據(jù)的總體大小,因為通常使用比原始符號更少的位來編碼通常出現(xiàn)的符號。進一步地,當將數(shù)據(jù)提供給這樣的替代過程包括更小數(shù)目的唯一值(并且那些值被重復更多)時,壓縮水平可以增加,因為可以存在更少替代值,并且因此最長的替代值可以在單個二進制長度上較小。因此,在替代過程之前應用數(shù)據(jù)重新布置轉換可以增加由替代過程導致的壓縮。
現(xiàn)在回到框208(圖2),生成圖像的較低分辨率層的框114中的過程可以包括對圖像的較低分辨率版本進行delta編碼,并在應用框210的數(shù)據(jù)重新布置轉換之前通過查找表重新映射經delta編碼的數(shù)據(jù)。相對于圖5a-b描述所述過程的示例圖示。
圖5a示出了輸入到過程500中用于對數(shù)據(jù)進行delta編碼并應用查找表的原始圖像數(shù)據(jù)502。原始圖像數(shù)據(jù)502表示輸入到過程500,諸如數(shù)據(jù)140、222和224(圖2),并不一定意味著數(shù)據(jù)是原始圖像130的數(shù)據(jù)。如值重復表504所示,原始圖像數(shù)據(jù)要求三個唯一的16位值,并且僅包括單個重復實例。在本例中,原始數(shù)據(jù)的shannon熵值為2.2。在典型圖像中,原始圖像數(shù)據(jù)502可以包括更多的16位值,使得將存在更多唯一的16位值。
在框510處,delta編碼過程例如由計算系統(tǒng)102應用于原始圖像數(shù)據(jù)502。delta編碼是將數(shù)據(jù)存儲或傳送作為順序數(shù)據(jù)值之間的差異的方式,而不是作為每個數(shù)據(jù)值的絕對值的方式。例如,由于原始圖像數(shù)據(jù)502中的像素1和像素2之間的變化為“1”,像素2的值可以簡單地為“1”。類似地,因為像素2和像素3之間的變化是“1”,像素3的值可以是“1”。像素3和像素4之間的變化為“-1”(整數(shù)),因此像素4值可以是“ffff”(十六進制)。為了簡化這里的說明,像素1的值被設置為“0”,即使一系列經delta編碼的值中的第一值有時將被設置為其絕對數(shù)以使得所述系列中的每個數(shù)據(jù)值的絕對值可以恢復。
delta編碼過程的輸出的整數(shù)值(即,0、1、1、-1)在項512處示出,并且經delta編碼的值的十六進制和二進制表示由標記為經delta編碼的數(shù)據(jù)520的項顯示。如值重復表522所示,所述四像素示例仍然包括三個唯一的16位值,盡管可以通過包括多于四個16位值的數(shù)據(jù)(例如,在512kb圖像中)注意到唯一值的減少。此外,8位字節(jié)的值重復從五個(對于原始圖像數(shù)據(jù)502)減少到三個(對于經delta編碼的數(shù)據(jù))。類似地,shannon熵已從2.2降至1.5。
在框530和532處,創(chuàng)建正向和反向查找表540和542,計算系統(tǒng)102將使用其來將經delta編碼的數(shù)據(jù)重新映射到新的數(shù)據(jù)值。例如,正向查找表540可以用于將經delta編碼的數(shù)據(jù)520中重復最多的數(shù)據(jù)值映射到要求其表示的最少位的值。例如,在此示例中由于值“0001”(十六進制)是重復最多的值,所以所述表可以將所述值映射到“00”(十六進制)。從這個說明顯而易見的是,以這種方式映射數(shù)據(jù)的另一個益處是,如果在原始集合中唯一值的數(shù)目可以由這樣的較小的數(shù)字表示,16位值的集合可以被映射到需要較少數(shù)據(jù)(例如,8位值)的值的集合??梢酝ㄟ^按照出現(xiàn)頻率對值進行排序來創(chuàng)建正向查找表540??梢酝ㄟ^鏡像正向查找表530中的值來創(chuàng)建反向查找表532。在數(shù)據(jù)被壓縮并被傳送到客戶端計算設備104之前,計算系統(tǒng)102可以使用正向查找表540來重新映射經delta編碼的數(shù)據(jù)520,同時客戶機計算設備104可以使用反向查找表542來反轉經delta編碼的數(shù)據(jù)的映射。
在框550處,使用正向查找表540重新映射經delta編碼的數(shù)據(jù)。這導致1、0、0、2(整數(shù))的輸出數(shù)據(jù)流。所述數(shù)據(jù)還在重新映射的數(shù)據(jù)部分560(圖5b)處以十六進制和二進制被識別。如值重復表562所示,唯一的16位值的數(shù)目仍然為3,但shannon熵已進一步降至0.8。如果對具有更多數(shù)據(jù)值的數(shù)據(jù)集合執(zhí)行過程,則唯一16位值的數(shù)目可以降低。
在框580處,560中的數(shù)據(jù)被轉換,使得由每對msb和lsb字節(jié)表示的數(shù)據(jù)在兩個字節(jié)之間被均勻地或基本均勻地重新布置或分割,這導致單個字節(jié)陣列582和584。參考圖4更詳細地描述數(shù)據(jù)重新布置過程。如值重復表590和592所示,shannon熵進一步降低。盡管圖4圖示出轉換后的圖像數(shù)據(jù)430被輸出為單個陣列,其包括每個16位字的最高8位字節(jié)(也稱為最高有效字節(jié)或msb)和每個16位字的最低8位字節(jié)(也稱為最低有效字節(jié)或lsb),圖4的過程可以將經轉換的圖像數(shù)據(jù)430輸出為兩個陣列-一個用于msb,一個用于lsb,如圖5b所示。將信息指派到msb和lsb的單獨陣列中可以進一步增加字節(jié)流中的重復值的數(shù)目,這可以進一步增加后續(xù)數(shù)據(jù)壓縮算法執(zhí)行的壓縮水平。例如,壓縮過程可以分別對每個陣列進行操作,使得為每個陣列創(chuàng)建單獨的查找表。可以在上述位重新布置之前、在位重新布置之后或者與位的重新布置同時執(zhí)行到兩個陣列的轉換。
如前所述,數(shù)據(jù)重新布置過程在經delta編碼的數(shù)據(jù)的簡單四值分析中并不明顯。在所述示例中,可能值的范圍被限制為兩位,因此重新布置或分割lsb與msb之間的值僅導致對像素4的數(shù)據(jù)的改變的值,其中值從“00000000”(msb二進制)“00000010”(lsb二進制)到“00000001”(msb二進制)“00000000”(lsb二進制)改變。換句話說,兩位數(shù)“01”(二進制)最初完全存儲在lsb的最后兩位,但重新布置所述數(shù)字使得一個位被存儲在msb中并且一位被存儲在lsb中導致二進制“1”從lsb被移動到msb。
現(xiàn)在回到圖1,計算系統(tǒng)102響應于已經接收到對圖像數(shù)據(jù)112的請求,返回低分辨率圖像數(shù)據(jù)(框116)。圖1圖示出了低分辨率圖像數(shù)據(jù)132是從圖像130生成的圖像數(shù)據(jù)層132、134和136的多個集合中的一個。如相對于圖2所描述的,圖像數(shù)據(jù)132可以是應用了各種轉換和數(shù)據(jù)壓縮算法的圖像130的降低分辨率版本。由于如此,低分辨率圖像數(shù)據(jù)132可以要求在其作為圖像顯示之前進行處理,因此在圖1和圖2中圖示出了作為陰影數(shù)據(jù)塊而不是圖像的低分辨率圖像數(shù)據(jù)132。
在一些示例中,低分辨率圖像數(shù)據(jù)132是由框114的過程生成的最低生成的圖像數(shù)據(jù)層。在一些示例中,框114的過程先前生成了多個圖像數(shù)據(jù)層,并且計算系統(tǒng)102基于計算設備104的顯示特性來選擇要發(fā)送到計算設備104的適當?shù)臄?shù)據(jù)層。由于這樣,計算系統(tǒng)102可以向具有不同顯示特性的不同計算設備提供不同圖像數(shù)據(jù)層,響應于來自每個不同計算設備的對相同圖像的初始請求。
在框118處,計算設備104接收低分辨率圖像數(shù)據(jù)132,處理低分辨率圖像數(shù)據(jù)132以生成可顯示為低分辨率圖像140的數(shù)據(jù),然后顯示低分辨率圖像140,例如,在計算設備104的lcd顯示器上。更具體地,計算設備104可以通過諸如互聯(lián)網(wǎng)的網(wǎng)絡來接收圖像數(shù)據(jù)132,其中計算設備104可以在地理上遠離并且與計算系統(tǒng)102分開。計算設備104可以需要撤消由計算系統(tǒng)102應用于圖像數(shù)據(jù)132的轉換和數(shù)據(jù)壓縮過程,以便將圖像數(shù)據(jù)132還原成可視形式作為低分辨率圖像140。
例如,計算設備104可以通過應用反轉在框212中應用的壓縮過程的過程(例如,通過反轉gzip以及deflate的壓縮過程)來解壓縮圖像數(shù)據(jù)132??梢酝ㄟ^在許多web瀏覽器中發(fā)現(xiàn)的deflate的解壓縮算法的本地實施方式來執(zhí)行圖像的解壓縮。如前所述,可以使用其他壓縮和解壓縮算法。然而,一些web瀏覽器可以不包括某些解壓縮算法的本地實施方式。結果,解壓縮指令可以用腳本語言(例如,javascript)來描述,然后如果期望,由web瀏覽器的腳本語言引擎來執(zhí)行。然而,在web瀏覽器中使用腳本語言引擎執(zhí)行解壓縮算法可以比在web瀏覽器中本地實現(xiàn)的解壓縮算法來執(zhí)行解壓縮算法更低效。此外,解壓縮指令可以需要被傳送到計算設備,這可以進一步延遲顯示圖像所需的時間。仍然,無論解壓縮算法是否由web瀏覽器本地實現(xiàn),本說明書中討論的技術的許多益處都可以實現(xiàn)。
在框120處,計算設備104向計算系統(tǒng)102發(fā)送對中間分辨率圖像數(shù)據(jù)的請求120。計算設備104可以響應于在計算設備104顯示低分辨率圖像140之后接收到的用戶輸入來發(fā)送請求,或者可以是在計算設備104接收到低分辨率圖像數(shù)據(jù)132之后并且在計算設備104接收低分辨率圖像數(shù)據(jù)132之后沒有用戶輸入時由計算設備104自動發(fā)送。
作為說明,計算設備104可以在計算設備104的顯示器上顯示低分辨率圖像104。盡管本文將所述圖像稱為“低分辨率”,但是所述分辨率可以匹配或超過計算設備104的顯示能力。如果用戶期望放大圖像,例如查看圖像中具有更多細節(jié)的描繪的人體解剖結構的部分,則由計算設備104存儲的圖像的當前版本可以沒有足夠的分辨率來顯示具有匹配或超過計算設備104的分辨能力的細節(jié)的放大區(qū)域。由于如此,用于放大區(qū)域的較高分辨率圖像可以是有益的,并且計算設備104可以發(fā)送對可以從其生成較高分辨率圖像的信息的請求120。
計算設備104可以響應于計算設備104接收請求顯示較高分辨率圖像數(shù)據(jù)的用戶輸入(諸如導致計算設備的顯示放大圖像使得圖像的某部分被放大以占據(jù)比縮放操作之前更大的顯示空間的請求)而發(fā)送請求120。在一些示例中,計算設備104可以在計算設備104接收到初始圖像數(shù)據(jù)132之后,并且在計算設備處完全沒有接收到用戶輸入的情況下,或者在被定向發(fā)送請求120的計算設備處沒有接收到用戶輸入的情況下,發(fā)送請求120。因此,計算設備104可以在用戶與圖像交互之前接收用于生成圖像的較高分辨率版本的數(shù)據(jù)134,并且由于數(shù)據(jù)134已經存儲在計算設備104處,所以響應于用戶輸入請求執(zhí)行縮放動作,計算設備104可以能夠立即呈現(xiàn)圖像的放大顯示,而不在接收到對執(zhí)行縮放動作的用戶輸入請求之后從計算系統(tǒng)102接收數(shù)據(jù)。
在一些實施方式中,計算系統(tǒng)102在沒有從計算設備104接收另一請求的情況下發(fā)送中間分辨率圖像數(shù)據(jù)134。例如,計算系統(tǒng)可以被配置為初始發(fā)送低分辨率圖像數(shù)據(jù)132,然后,立即或延遲之后,在沒有從設備104接收獨立于初始請求112的對這種數(shù)據(jù)的請求的情況下,發(fā)送中間分辨率圖像數(shù)據(jù)。
在一些實施方式中,計算系統(tǒng)響應于請求120發(fā)送到計算設備104的數(shù)據(jù)134是計算設備104可以在有或者沒有解壓縮和數(shù)據(jù)轉換以及沒有其他圖像數(shù)據(jù)的情況下處理的信息,以生成圖像的較高分辨率的顯示(例如,諸如通過發(fā)送圖3所示的“a”值的集合,或其經轉換和/或經壓縮版本)。仍然,響應于請求120從計算系統(tǒng)102傳送到計算設備104的數(shù)據(jù)量可以通過傳送圖像數(shù)據(jù)層的“d”和“m”值來減少,從所述圖像數(shù)據(jù)層“a”值被先前發(fā)送,而不是發(fā)送較高分辨率水平的“a”值(例如,因為m值可以是小于16位a值的2位值,并且因為d和m值可以具有比a值更低的熵而因此可以更好地壓縮)。這是因為計算設備104能夠將來自先前發(fā)送的圖像140的“a”信息與“d”和“m”值組合以無損地創(chuàng)建圖像的較高分辨率版本,如下所述。
在框124處,計算設備在接收到圖像數(shù)據(jù)134之后,通過將來自低分辨率圖像140的數(shù)據(jù)與新接收的圖像數(shù)據(jù)134組合來生成中間分辨率圖像。在一些示例中,計算設備104可以不能在不使用圖像140中的數(shù)據(jù)的情況下生成從中間分辨率圖像數(shù)據(jù)134合理地近似由全分辨率圖像130所描繪的內容的圖像的顯示。作為松散而不完全準確的概括,計算設備104可以使用中間分辨率圖像數(shù)據(jù)134在先前顯示的圖像140中“填充”細節(jié)。用于從低分辨率圖像重新創(chuàng)建較高分辨率圖像的算法和附加數(shù)據(jù)在這個描述中在前描述。例如,可以使用值a1',d1',d2',d3'和m'來重建圖像230(圖3)的降低分辨率版本。這樣做的算法遵循。p1=d1+a。p2=d2+a。p3=d3+a。p4=(a*4)-p1-p2-p3+m。由于這樣,來自較高分辨率圖像的像素的值可以是使用來自較低分辨率圖像的像素的值和一些最近接收到的數(shù)據(jù)來生成。
盡管圖1描繪了其中計算系統(tǒng)102響應于兩個請求112和120發(fā)送兩組圖像信息132和134的示例,計算系統(tǒng)102可以發(fā)送圖像信息的進一步的集合,計算設備104可以使用所述圖像信息的集合來生成圖像的甚至較高分辨率的版本,直到計算設備104無損地重建全分辨率圖像130為止。例如,響應于從計算設備104到計算系統(tǒng)102的后續(xù)請求,計算系統(tǒng)102可以發(fā)送圖像數(shù)據(jù)136,可以從其構建圖像130的全分辨率。
在一些實施方式中,計算系統(tǒng)102可以響應于單個請求發(fā)送多個圖像數(shù)據(jù)層。例如,計算系統(tǒng)102可以響應于來自計算設備104的單個請求來發(fā)送圖像數(shù)據(jù)134和圖像數(shù)據(jù)136。這種動作可以有幫助的示例場景是當接收到顯著放大圖像的用戶輸入。例如,適度縮放可以僅需要圖像數(shù)據(jù)134以較高的分辨率充分地顯示圖像,但是如果縮放是實質的,則計算系統(tǒng)102可以確定圖像數(shù)據(jù)136也應所述被發(fā)送到計算設備104。然后,計算設備104可以對所述過程執(zhí)行兩次迭代以解壓縮圖像和反轉轉換。
在一些實施方式中,圖像130被分段成多個“圖塊(tile)”,其中每個圖塊表示圖像130的區(qū)域(例如,圖像可以包括二乘二的圖塊網(wǎng)格)。如在本說明書中相對于圖像130所描述的,計算系統(tǒng)130可以將每個單獨的圖塊轉換成多個較低分辨率的圖像數(shù)據(jù)層。由于如此,響應于對圖像的低分辨率版本的請求112,計算系統(tǒng)102可以向客戶端計算設備104發(fā)送一個或多個圖像數(shù)據(jù)塊,其中每個圖像數(shù)據(jù)塊表示圖像的相應圖塊的較低分辨率版本。當接收到對放大圖像的用戶請求時,具有多個圖塊中的每一個的圖像數(shù)據(jù)層的益處變得顯而易見。縮放區(qū)域可以僅需要來自包含圖像的圖塊的子集的數(shù)據(jù),因此,計算系統(tǒng)102可以僅需要為所述圖塊子集發(fā)送附加的圖像數(shù)據(jù)。因此,來自計算設備104到計算系統(tǒng)102的請求可以指定用戶已經請求縮放顯示的圖像的區(qū)域,或者可以指定期望中間分辨率圖像數(shù)據(jù)的圖塊。
圖6是可以用于將本文中描述的系統(tǒng)和方法實現(xiàn)為客戶端或服務器或多個服務器的計算設備600、650的框圖。計算設備600旨在表示各種形式的數(shù)字計算機,諸如膝上型計算機、桌面機、工作站、個人數(shù)字助理、服務器、刀片服務器、大型機和其他合適的計算機。計算設備650旨在表示各種形式的移動設備,諸如個人數(shù)字助理、蜂窩電話、智能電話和其他類似的計算設備。這里示出的組件、它們的連接和關系以及它們的功能僅僅是示例性的,并不意味著限制本文中描述和/或要求保護的實施方式。
計算設備600包括處理器602、存儲器604、存儲設備606、連接到存儲器604和高速擴展端口610的高速接口608以及連接到低速總線614和存儲設備606的低速接口612。組件602、604、606、608、610和612中的每一個使用各種總線互連,并且可以適當?shù)匕惭b在公共主板上或以其他方式安裝。處理器602可以處理用于在計算設備600內執(zhí)行的指令,包括存儲在存儲器604或存儲設備606上的指令,以在外部輸入/輸出設備上顯示用于gui的圖形信息,諸如耦合到高速接口608的顯示器616。在其他實施方式中,可以適當?shù)厥褂枚鄠€處理器和/或多個總線以及多個存儲器和多個類型的存儲器。而且,可以連接多個計算設備600,每個設備提供必要操作的部分(例如,作為服務器組,一組刀片服務器或多處理器系統(tǒng))。
存儲器604在計算設備600內存儲信息。在一個實施方式中,存儲器604是一個或多個易失性存儲器單元。在另一實施方式中,存儲器604是一個或多個非易失性存儲器單元。存儲器604還可以是另一種形式的計算機可讀介質,諸如磁盤或光盤。
存儲設備606能夠為計算設備600提供大容量存儲。在一個實施方式中,存儲設備606可以是或包含計算機可讀介質,諸如軟盤設備、硬盤設備、光盤設備或磁帶設備、閃存或其它類似的固態(tài)存儲設備,或包括存儲區(qū)域網(wǎng)絡中的設備或其他配置的設備陣列。計算機程序產品可以有形地體現(xiàn)在信息載體中。計算機程序產品還可以包含指令,所述指令在被執(zhí)行時執(zhí)行一個或多個方法,諸如上述的方法。信息載體是諸如存儲器604、存儲設備606或處理器602上的存儲器的計算機可讀介質或機器可讀介質。
高速控制器608管理計算設備600的帶寬密集型操作,而低速控制器612管理較低帶寬密集型操作。功能的這種分配僅作為示例。在一個實施方式中,高速控制器608耦合到存儲器604、顯示器616(例如,通過圖形處理器或加速器)以及耦合到可接受各種擴展卡(未示出)的高速擴展端口610。在所述實施方式中,低速控制器612耦合到存儲設備606和低速擴展端口614??梢园ǜ鞣N通信端口(例如,usb、藍牙、以太網(wǎng)、無線以太網(wǎng))的低速擴展端口可以是耦合到一個或多個輸入/輸出設備,諸如鍵盤、指針設備、掃描儀或諸如交換機或路由器的網(wǎng)絡設備,例如,通過網(wǎng)絡適配器。
計算設備600可以以多種不同的形式來實現(xiàn),如圖所示。例如,它可以被實現(xiàn)為標準服務器620,或者在一組這樣的服務器中多次實現(xiàn)。它也可以被實現(xiàn)為機架服務器系統(tǒng)624的一部分。此外,它可以在諸如膝上型計算機622的個人計算機中實現(xiàn)。替選地,來自計算設備600的組件可以與諸如設備650的移動設備(未示出)中的其他組件組合。這樣的設備中的每一個可以包含計算設備600、650中的一個或多個,并且整個系統(tǒng)可以由彼此通信的多個計算設備600、650組成。
計算設備650包括處理器652、存儲器664、諸如顯示器654的輸入/輸出設備、通信接口666和收發(fā)器668以及其他組件。設備650還可以被提供有諸如微驅動器或其他設備的存儲設備,以提供附加存儲。組件650、652、664、654、666和668中的每一個都是使用各種總線互連,并且若干組件可以適當?shù)匕惭b在公共主板上或以其他適合方式安裝。
處理器652可以執(zhí)行計算設備650內的指令,包括存儲在存儲器664中的指令。處理器可以被實現(xiàn)為包括分開和多個模擬和數(shù)字處理器的芯片的芯片集。另外,處理器可以使用若干個架構中的任何來實現(xiàn)。例如,處理器410可以是cisc(復雜指令集計算機)處理器、risc(精簡指令集計算機)處理器或misc(最小指令集計算機)處理器。例如,處理器可以提供用于設備650的其他組件的協(xié)同,諸如用戶界面的控制,由設備650運行的應用以及由設備650進行的無線通信。
處理器652可以通過耦合到顯示器654的控制接口658和顯示接口656與用戶通信。顯示器654可以是例如tft(薄膜晶體管液晶顯示器)顯示器或oled(有機發(fā)光二極管)顯示器或其他適當?shù)娘@示技術。顯示接口656可以包括用于驅動顯示器654向用戶呈現(xiàn)圖形和其它信息的適當電路。控制接口658可以從用戶接收命令并將其變換以提交給處理器652。此外,可以提供與處理器652通信的外部接口662,以使得設備650能夠與其他設備進行近區(qū)域通信。例如,外部接口662可以提供在一些實施方式中的有線通信,或者在其它實施方式中的無線通信,并且還可以使用多個接口。
存儲器664在計算設備650內存儲信息。存儲器664可以被實現(xiàn)為計算機可讀介質,易失性存儲器單元,或非易失性存儲器單元。擴展存儲器674也可以通過擴展接口672被提供并且被連接到設備650,擴展接口672可以包括例如simm(單列直插存儲器模塊)卡接口。這種擴展存儲器674可以為設備650提供附加的存儲空間,或者還可以存儲用于設備650的應用或其他信息。具體來說,擴展存儲器674可以包括執(zhí)行或補充上述過程的指令,也可以包括安全信息。因此,例如,擴展存儲器674可以被提供為用于設備650的安全模塊,并且可以用許可設備650的安全使用的指令來編程。此外,可以經由simm卡以及附加信息來提供安全應用,諸如以不可攻擊的方式將識別信息放置在simm卡上。
例如,存儲器可以包括閃存和/或nvram存儲器,如下所述。在一個實施方式中,計算機程序產品被有形地體現(xiàn)在信息載體中。計算機程序產品包含指令,所述指令當被執(zhí)行時,執(zhí)行一個或多個方法,諸如上述的方法。信息載體是計算機可讀介質或機器可讀介質,諸如存儲器664、擴展存儲器674或可以例如通過收發(fā)器668或外部接口662接收的處理器652上的存儲器。
設備650可以通過通信接口666進行無線通信,通信接口666可以在必要時包括數(shù)字信號處理電路。通信接口666可以提供諸如gsm語音呼叫、sms、ems或mms消息,cdma、tdma、pdc、wcdma、cdma2000或gprs等各種模式或協(xié)議的通信。這樣的通信可以例如通過射頻收發(fā)器668發(fā)生。此外,可以發(fā)生短距離通信,諸如使用藍牙、wifi或其他這樣的收發(fā)器(未示出)。此外,gps(全球定位系統(tǒng))接收器模塊670可以向設備650提供附加的導航和位置相關的無線數(shù)據(jù),其可以由在設備650上運行的應用適當?shù)厥褂谩?/p>
設備650還可以使用音頻編解碼器660可聽地通信,音頻編解碼器660可以從用戶接收說話信息并將其變換為可用的數(shù)字信息。音頻編解碼器660同樣可以為用戶生成諸如通過揚聲器(例如,在設備650的手機中)的可聽見的聲音。這樣的聲音可以包括來自語音電話呼叫的聲音,可以包括記錄的聲音(例如,語音消息,音樂文件等),并且還可以包括在設備650上操作的應用生成的聲音。
計算設備650可以以多種不同的形式來實現(xiàn),其中一些在圖中示出。例如,它可以被實現(xiàn)為蜂窩電話680。它也可以被實現(xiàn)為智能電話682、個人數(shù)字助理或其他類似移動設備的一部分。
另外,計算設備600或650可以包括通用串行總線(usb)閃存驅動器。usb閃存驅動器可以存儲操作系統(tǒng)和其他應用。usb閃存驅動器可以包括輸入/輸出組件,諸如可以插入到另一計算設備的usb端口中的無線發(fā)射器或usb連接器。
這里描述的系統(tǒng)和技術的各種實施方式可以在數(shù)字電子電路、集成電路、專門設計的asic(專用集成電路)、計算機硬件、固件、軟件和/或其組合中實現(xiàn)。這些各種實施方式可以包括在可編程系統(tǒng)上可執(zhí)行和/或可解釋的一個或多個計算機程序中的實施方式,所述可編程系統(tǒng)包括至少一個可編程處理器,其可以是專用的或通用的,所述處理器被耦合以從存儲系統(tǒng)、至少一個輸入設備和至少一個輸出設備接收數(shù)據(jù)和指令,以及向存儲系統(tǒng)、至少一個輸入設備和至少一個輸出設備傳送數(shù)據(jù)和指令。
這些計算機程序(也稱為程序、軟件、軟件應用或代碼)包括用于可編程處理器的機器指令,并且可以以高級程序和/或對象導向的編程語言和/或匯編/機器語言來實現(xiàn)。如本文所使用的,術語“機器可讀介質”和“計算機可讀介質”是指任何計算機程序產品、裝置和/或設備(例如,磁盤、光盤、存儲器、可編程邏輯設備(pld))用來向可編程處理器提供機器指令和/或數(shù)據(jù)。
為了提供與用戶的交互,這里描述的系統(tǒng)和技術可以在具有顯示設備(例如,crt(陰極射線管)或lcd(液晶顯示器)監(jiān)視器)的計算機上實現(xiàn),用于將信息顯示給用戶,以及用戶可以向計算機提供輸入的鍵盤和指針設備(例如,鼠標或軌跡球)。其他類型的設備也可用于提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的感覺反饋(例如,視覺反饋、聽覺反饋或觸覺反饋);并且可以以任何形式接收來自用戶的輸入,包括聲音、語音或觸覺輸入。
這里描述的系統(tǒng)和技術可以在包括后端組件(例如,作為數(shù)據(jù)服務器)或包括中間件組件(例如,應用服務器)),或者包括前端組件(例如,具有圖形用戶界面或web瀏覽器的客戶端計算機,用戶可以通過所述圖形用戶界面或web瀏覽器與這里描述的系統(tǒng)和技術的實施方式進行交互),或者這種后端、中間件或前端組件的任何組合的計算系統(tǒng)中實現(xiàn)。系統(tǒng)的組件可以通過數(shù)字數(shù)據(jù)通信(例如,通信網(wǎng)絡)的任何形式或介質互連。通信網(wǎng)絡的示例包括局域網(wǎng)(“l(fā)an”)、廣域網(wǎng)(“wan”)、對等網(wǎng)絡(具有點對點或靜態(tài)成員)、網(wǎng)格計算基礎設施和互聯(lián)網(wǎng)。
計算系統(tǒng)可以包括客戶端和服務器??蛻舳撕头掌魍ǔ1舜诉h離,通常通過通信網(wǎng)絡進行交互??蛻舳撕头掌髦g的關系是由于在相應的計算機上運行并且彼此之間具有客戶端-服務器關系的計算機程序而產生的。
服務器系統(tǒng)可以是提供服務或服務集合的硬件和軟件的組合。例如,物理上分開和聯(lián)網(wǎng)的計算機化設備的集合可一起操作為邏輯服務器系統(tǒng)單元,以處理為數(shù)百個計算設備提供服務所必需的操作。本文中描述的計算系統(tǒng)可以是服務器系統(tǒng)。
在各種實施方式中,如果先前的操作不成功(例如,如果確定沒有被執(zhí)行),則不執(zhí)行“響應于”或“作為另一操作的結果”(例如,確定或識別)”而執(zhí)行的操作?!白詣印眻?zhí)行的操作是沒有用戶干預(例如,插入用戶輸入)而執(zhí)行的操作。用條件語言描述的本文中的特征可以描述可選的實施方式。在一些示例中,從第一設備“傳送”到第二設備包括第一設備將數(shù)據(jù)放置到網(wǎng)絡中以供第二設備接收,但可以不包括第二設備接收數(shù)據(jù)。相反,從第一設備“接收”可以包括從網(wǎng)絡接收數(shù)據(jù),但可以不包括第一設備傳送數(shù)據(jù)。
由計算系統(tǒng)“確定”可以包括計算系統(tǒng)請求另一個設備執(zhí)行確定并將結果提供給計算系統(tǒng)。此外,由計算系統(tǒng)“顯示”或“呈現(xiàn)”可以包括計算系統(tǒng)發(fā)送用于導致另一設備顯示或呈現(xiàn)參考信息的數(shù)據(jù)。
雖然上面已經詳細描述了一些實施方式,但是其它修改是可能的。此外,可以使用用于執(zhí)行本文中描述的系統(tǒng)和方法的其他機制。此外,附圖中描繪的邏輯流程不需要所示的特定順序或序列順序來實現(xiàn)期望的結果??梢詮乃枋龅牧鞒讨刑峁┢渌襟E或者消除步驟,并且可以將其他組件添加到所描述的系統(tǒng)中或從所描述的系統(tǒng)中移除。因此,其他實施方式在所附權利要求的范圍內。
在一些實施例中,用于轉換數(shù)據(jù)的計算機實現(xiàn)的方法包括由計算系統(tǒng)接收包括各自存儲在相應的多字節(jié)數(shù)據(jù)單元內的多個值的數(shù)據(jù)。多個值中的每一個由比每個多字節(jié)數(shù)據(jù)單元中的位數(shù)目少的位數(shù)量進行編碼,其中編碼多個值中的每一個的位數(shù)量完全占據(jù)每個多字節(jié)數(shù)據(jù)結構的最低有效字節(jié),并且僅部分占據(jù)每個多字節(jié)數(shù)據(jù)結構的最高有效字節(jié)。計算系統(tǒng)將多個值中的每一個中的位數(shù)量中的一些位移動到每個多字節(jié)數(shù)據(jù)結構的最高有效字節(jié),使得對多個值中的每一個進行編碼的位數(shù)量不再完全占據(jù)每個多字節(jié)數(shù)據(jù)結構的最低有效字節(jié)。在移動了位數(shù)量的一些位之后,計算系統(tǒng)壓縮包括多個值的數(shù)據(jù),每個值存儲在相應的多字節(jié)數(shù)據(jù)單元中。
作為對上述實施例的附加描述,本公開描述了以下實施例。
實施例21是一種用于通過減少由每個多字節(jié)數(shù)據(jù)單元的最低字節(jié)表示的若干個唯一值來增加數(shù)據(jù)的可壓縮性的計算機實現(xiàn)的方法,所述數(shù)據(jù)包括多字節(jié)數(shù)據(jù)單元的集合。所述方法包括由計算系統(tǒng)識別表示值集合的數(shù)據(jù),其中每個值由在一起形成數(shù)據(jù)的多字節(jié)數(shù)據(jù)單元的集合中的多字節(jié)數(shù)據(jù)單元表示。所述方法包括由計算系統(tǒng)識別用于表示每個多字節(jié)數(shù)據(jù)單元中的值的位數(shù)量,其中位數(shù)量跨越每個多字節(jié)數(shù)據(jù)單元中的位的范圍,并且是少于形成每個多字節(jié)數(shù)據(jù)單元的所有位。所述方法包括由計算系統(tǒng)將每個多字節(jié)數(shù)據(jù)單元中的位的子集從(i)占據(jù)多字節(jié)數(shù)據(jù)單元的第一字節(jié)的部分和多字節(jié)數(shù)據(jù)的第二字節(jié)的部分移動到(ii)僅占據(jù)多字節(jié)數(shù)據(jù)單元的第二字節(jié)的部分,而不占據(jù)多字節(jié)數(shù)據(jù)單元的第一字節(jié)的部分。方法包括由計算系統(tǒng)在計算系統(tǒng)已經將每個多字節(jié)數(shù)據(jù)單元中的位子集移動后,將由數(shù)據(jù)中的每個字節(jié)識別的值映射到使用比一個字節(jié)少一個或多個位的新值。所述方法包括在計算系統(tǒng)已經移動位的子集并且然后映射值之后,由計算系統(tǒng)壓縮數(shù)據(jù)。
實施例22是實施例21的計算機實現(xiàn)的方法,其中表示值的集合的數(shù)據(jù)是圖像數(shù)據(jù),并且這些值是多個對應像素的值。
實施例23是實施例21的計算機實現(xiàn)的方法,其中表示值的集合的數(shù)據(jù)包括由科學測試儀器生成的數(shù)據(jù),并且這些值是由科學測試儀器生成的單獨測量。
實施例24是實施例21的計算機實現(xiàn)的方法,其中多字節(jié)數(shù)據(jù)單元是雙字節(jié)數(shù)據(jù)單元;并且移動每個多字節(jié)數(shù)據(jù)單元中位的子集包括移動位于每個多字節(jié)數(shù)據(jù)單元中的位的范圍的上半部分中的位到每個多字節(jié)數(shù)據(jù)單元中的不同位置,同時留下位于其原始位置的每個多字節(jié)數(shù)據(jù)單元中的位的范圍的下半部分中的位。
實施例25是實施例24的計算機實現(xiàn)的方法,其中位的范圍占據(jù)多字節(jié)數(shù)據(jù)單元的最低字節(jié)的全部以及多字節(jié)數(shù)據(jù)單元的最高字節(jié)的子集。
實施例26是實施例21的計算機實現(xiàn)的方法,其中移動每個多字節(jié)數(shù)據(jù)單元中的位子集包括將二進制零插入到第一字節(jié)的部分中,位的子集先前位于第一字節(jié)的所述部分處。
實施例27是實施例21的計算機實現(xiàn)的方法,其中移動每個多字節(jié)數(shù)據(jù)單元中的位的子集包括在每個多字節(jié)數(shù)據(jù)單元的第一字節(jié)和每個多字節(jié)數(shù)據(jù)單元的第二字節(jié)之間均勻地擴展在每個多字節(jié)數(shù)據(jù)單元中編碼的二進制數(shù)據(jù),使得二進制數(shù)據(jù)由每個多字節(jié)數(shù)據(jù)單元的第一字節(jié)中的一定數(shù)目的位和每個多字節(jié)數(shù)據(jù)單元的第二字節(jié)中的一定數(shù)目的位的表示。
實施例28是實施例27的計算機實現(xiàn)的方法,其中:第一字節(jié)中的一定數(shù)目的位與第二字節(jié)中的一定數(shù)目的位相同;第一字節(jié)中的一定數(shù)目的位是形成第一字節(jié)的位的子集;并且第二字節(jié)中的一定數(shù)目的位是形成第二字節(jié)的位的子集。
實施例29是實施例21的計算機實現(xiàn)的方法,進一步包括在移位發(fā)生之后由計算系統(tǒng)生成查找表,所述查找表將多字節(jié)數(shù)據(jù)單元的集合中的共同出現(xiàn)的值指派給使用比共同出現(xiàn)的值少一個或多個位的新值,其中在映射中使用查找表。
實施例30涉及一個或多個包括指令的計算機可讀設備,所述指令當由一個或多個計算機處理器執(zhí)行時根據(jù)實施例21至30中任一個的方法執(zhí)行動作。