符世園,張敏行,高宇,汪璐,程耀東,3
(1.中國科學院高能物理研究所,北京 100049;2.中國科學院大學,北京 100049;3.中國科學院高能物理研究所天府宇宙線研究中心,成都 610041)
高能同步輻射光源(High-Energy Photon Source,HEPS)是我國重大科技基礎設施。一期建設的實驗線站預計每天會產生數百太字節的原始實驗數據[1],海量數據對存儲和傳輸帶來極大壓力。數據壓縮作為一種減少數據量的方法可以用于緩解該問題。實驗線站產生的數據中占比最高的是硬X 射線實驗線站產生的圖像數據。硬X 射線實驗線站利用硬X 射線的穿透能力掃描樣本,產生16 位單通道灰度圖。在相鄰成像間隔中,樣本均圍繞自身中心軸旋轉一個極小的角度,每掃描一個樣本會產生成百上千張二維投影圖像。
壓縮方法按照信息有無損失可以分為有損壓縮和無損壓縮。在有損壓縮中,不相關或者不重要的數據被直接忽略,解壓后得到的數據與原始數據不同。在無損壓縮中,每個細節都會被保存,只有統計冗余被消除,可完整重構原始數據。由于該成像線站采集圖像的目的是用于探索物質內部結構,因此為保證數據的科學潛力,采用無損壓縮保證圖像信息的完整性。但是,通用圖像無損壓縮方法對光源圖像壓縮效果不佳。
近年來,人工智能技術得到了飛速發展。在數據無損壓縮領域,深度學習技術也受到了越來越多的關注,已有研究人員將Softmax 層作為壓縮的一部分與傳統編碼方法相結合,用于探索文本壓縮比的優化。本文提出一種面向同步輻射光源圖像的可并行無損壓縮方法,充分利用光源圖像的相關性,以參數自適應的可逆量化方法和非線性預測方法實現對光源圖像的智能化壓縮,逐步降低存儲光源圖像所需要的資源。針對算術編碼效率問題,設計概率距離量化方法提升編碼并行度,最終達到提高圖像壓縮比的同時完全保留數據科學潛力并且使其具有高并行度。
無損圖像壓縮方法可以分為熵編碼、預測編碼、變換編碼和基 于字典的編碼[2]4 類。Huffman 編碼[3]、算術編碼[4]等熵編碼在編碼過程中,首先通過概率估計生成編碼表,概率可通過全局統計生成,也可由局部信息生成,然后通過編碼表消除編碼冗余。預測編碼通過圖像空間結構進行像素值預測,再將預測值與真實值之間的殘差通過熵編碼壓縮,從而達到無損壓縮的目的,例如:WebP[5]基于3 個相鄰塊預測當前塊;PNG[6]可通過可選的5 種類型的過濾器進行預測,不同類型的過濾器對周圍的像素值進行不同的計算得到預測值;FLIF[7]通過上下文模型結合熵編碼進行壓縮;JPEG_LS[8]中當前像素的預測值取決于局部邊緣方向的自適應模型。變換編碼是將空域轉變到頻域進行無損壓縮,例如JPEG2000[9]使用可逆的小波變換。基于字典的編碼是通過字符串表進行壓縮,例如LZW 將像素分組為字符串,最后轉換成編碼。
視頻冗余除了圖像中存在的空間冗余和編碼冗余外,還包括時間冗余,所以視頻無損壓縮方法可以進一步從時間維度上進行預測。FFV1[10]是一個簡單高效的無損幀內編碼器,可使用可變長度編碼或算術編碼進行熵編碼。因此,通用壓縮方法主要包括變換、量化、預測、編碼4 個步驟,而由于這些步驟中量化過程不可逆,無損壓縮直接跳過該步驟。此外,通用圖像無損壓縮方法可以有效地利用圖像的局部結構,而通用視頻無損壓縮方法可以進一步消除圖像序列內部的時間冗余,但是只能捕獲手工指定的簡單統計信息。為解決這兩個問題,本文結合同步輻射光源圖像的特點,提出一種完全可逆的分區量化方法,通過基于深度學習的無損壓縮方法提升壓縮效果。
近年來,深度學習技術在諸多任務中取得了達到或超越傳統通用方法的性能。由于數據量的持續爆發性增長,越來越多的研究人員將深度學習技術應用于無損壓縮。在無損壓縮任務中最關鍵的是準確的概率估計,深度學習方法主要用于預測階段,利用訓練得到的概率模型對數據分布進行建模,與熵編碼結合對殘差進行無損編碼,最大化模型在真實值上的預測概率,等同于最小化使用編碼器的無損壓縮模型所獲得的比特率[11]。
在圖像無損壓縮任務中:文獻[11]通過建模低分辨率與高分辨率圖像的還原過程,從低分辨率圖像直接得到預測圖像的概率分布,結合算術編碼進行壓縮;文獻[12]結合通用的有損圖像壓縮方法構建無損圖像壓縮,利用CNN 對殘差分布進行建模;文獻[13]通過基于流的方法將輸入圖像轉換為具有預定義分布函數的潛在表示,編碼和解碼函數必須互為可逆,并使用大型神經網絡提高壓縮性能。在科學數據的壓縮任務中,深度學習方法也得到廣泛的應用:文獻[14]提出一種基于神經網絡的DNA 序列壓縮器,在壓縮效果上得到一定的提升;文獻[15]使用深度遞歸神經網絡來改進傳統方法并提高模型的泛化能力和預測精度。
上述基于深度學習的壓縮方法建模追求泛化性和通用性。與上述壓縮方法不同,GOYAL 等[16]在DeepZip 中提出一種基于時序網絡的文本無損壓縮方法,該方法針對不同的數據過擬合訓練獨立的模型,為保證壓縮過程完全可逆,將模型與壓縮結果一并保存,即壓縮數據與模型為一對一關系,模型僅適用于訓練數據的壓縮任務。這種對不同數據過擬合建模的方式可在其測試數據上優化壓縮比,但是模型規模會帶來額外的存儲空間開銷。對于模型規模影響壓縮效果的問題,文獻[17]提出一種基于自適應和半自適應訓練的新型混合架構,無需重新訓練模型即可壓縮新的數據。同時,基于深度學習的無損壓縮方法通常編碼速度較慢,低編碼速率限制了應用的可行性。針對這一問題,文獻[18]提出一種多尺度的漸進統計模型加速模型推理速度,文獻[19]通過流模型進行加速,文獻[20]通過并行預測多個像素的概率進行加速,文獻[21]通過跳過耗時較長的編碼階段進行加速。
本文通過提出概率距離以及穩定的計算過程替換算術編碼過程,在保證壓縮比優化的前提下提高編碼過程的并行度。受DeepZip 啟發,結合光源圖像特點,以數據集為單位過擬合訓練模型,減少模型規模對壓縮比提升的影響。
本文圖像數據來自上海同步輻射光源裝置,是掃描不同樣本得到的圖像序列,涵蓋了魚鱗、菌絲、小鼠腦和化石翅膀。不同圖像序列的幀數和圖像尺寸有所不同,分辨率為2 048×2 048 像素和2 048×1 200 像素兩種,均為16 位單通道灰度投影圖序列,具體信息如表1 所示。

表1 數據集信息Table 1 Dataset information
分別對上述圖像序列使用通用無損壓縮方法進行壓縮測試,得到結果如表2 所示,壓縮結果以壓縮比(Compression Ratio,CR)衡量,壓縮比即為壓縮前文件大小與壓縮后文件大小的比值。通用無損壓縮方法達到的最優壓縮比為1.46~1.64。壓縮比越高,說明節省的存儲空間越多,數據長期存儲的成本越低。

表2 4 種通用壓縮方法的壓縮比Table 2 CR of four general compression methods
對于圖像相似度的衡量指標,Spearman 系數[22]比SSIM[23-24]更準確,因此以Spearman 系數為圖像間線性關系的衡量標準。同一樣本圖像序列內部的時間線性相關性由相鄰圖像間線性相關性的均值計算得到。
圖像序列內部的部分時間線性相關性通過時間差分去除。時間差分即將相鄰幀同一空間位置像素相減,該過程也可以看作將前幀作為后幀的線性預測幀,差分后得到去除部分線性冗余后的殘差數據,殘差數據可通過深度學習方法建模非線性關系進一步壓縮。
差分前后圖像序列內部的線性時間相關性如表3 所示,差分前圖像序列內部具有極強的線性時間相關性,差分后其相關性接近于0。因此,差分可以簡單有效地去除圖像序列內部的時間線性相關性。

表3 圖像差分前后的相關性對比Table 3 Comparison of correlation before and after image difference
本文提出一種面向同步輻射光源圖像的可并行智能無損壓縮方法,如圖1 所示,主要包括線性預測和非線性預測,用以分別去除圖像序列中的線性及非線性冗余信息。以時間差分作為去除線性冗余的線性預測方法,差分后的圖像通過分區量化方法將像素值取值范圍映射到一個更小的區間,以減小像素值所占比特位,得到images′。在非線性預測模塊中,通過預測模型及訓練方法以加速訓練及預測過程,定義概率距離概念以加速編碼過程,將概率距離量化流作為最終壓縮流。

圖1 整體壓縮流程Fig.1 Overall compression process
由于光源圖像序列內部時間線性相關性較強,因此通過時間差分方法去除序列內部的大部分時間線性冗余。時間差分前圖像像素值分布如圖2(a)所示,時間差分后圖像像素值集中分布在0 和65 535 附近,該范圍中部僅有少量數據存在,如圖2(b)所示。將像素值映射到較小的數據范圍能夠縮小其所占比特位,從而達到壓縮的目的,因此本文提出可逆的分區量化方法,以保存少量未壓縮數據為代價,換取較小的數據分布范圍。

圖2 菌絲圖像差分前后的像素值分布對比Fig.2 Comparison of pixel value distribution before and after difference
該量化過程完全可逆,因此可以保證反量化后數據與量化前數據一致。分區量化與反量化過程如圖3 所示,在分區量化后,原始數據分為待壓縮數據和直接保留數據,其中直接保留數據直接按順序單獨存儲。為保證無損還原,直接保留數據以占位符的形式存在于待壓縮數據中。在反量化時,在待壓縮數據中掃描到占位符時,按順序回填直接保留數據即可。待壓縮數據量化方法為向右平移指定距離,在還原時需向左平移相同距離。

圖3 分區量化與反量化過程Fig.3 Process of partition quantization and inverse quantization
對于T×M×N的圖像序列,其中,T為幀數,M為高度,N為寬度,分區量化步驟具體如下:
1)采樣:從圖像序列中等間隔抽取一定數量樣本。
2)統計像素值:統計采樣數據集中像素值的分布得到Dict,記錄每一個像素值出現的次數,Dict(i)表示值為i的像素值出現的次數。
3)確定占位符f:由占位符確定數據的量化函數,依據式(1)確定占位符:

4)構造量化函數F(x):x為分區量化前的差分像素值,根據占位符構造量化函數,約定占位符為量化后范圍末尾加1 的值。待壓縮數據后,只需向右平移指定步長(f-1)/2,直接保留數據并映射到占位符,按順序存儲到文件中,如式(2)所示:

5)量化:根據量化函數將數據量化到新的值。
分區反量化步驟具體如下:
1)確定占位符f:由于占位符的設置是新的映射范圍最大值加1,因此待壓縮數據的最大值即為占位符的值。
2)構造反量化函數G(y):該過程為量化函數逆過程,y為量化后的值。若數據等于占位符,則從直接保留數據中讀取一個數據,否則向左平移指定步長(f-1)/2,如式(3)所示:

3)反量化:根據反量化函數還原量化值。
在分區量化過程中,主要包括像素值統計、占位符確定、量化(反量化)過程,這3 個過程均可并行計算。
圖像序列經過差分及量化后,已去除部分線性冗余并將像素值映射到較小范圍。非線性預測用于利用差分量化后圖像序列的非線性相關性進一步提升壓縮比。受DeepZip 啟發,使用深度學習方法過擬合壓縮數據,學習其非線性相關性。但是該方法存在以下問題:1)由于模型規模較大,因此抵消了壓縮所節省的空間;2)一對一訓練過程耗時;3)模型預測時間較長。對于問題1 和2,結合同步輻射光源圖像的特點,提出一種以數據集為單位,用少量數據訓練模型以壓縮整體數據的方法;對于問題3,提出一種以CNN 為基礎架構的概率預測模型,以提高預測的并行度。
3.3.1 訓練與預測方法
本文將壓縮方法分為通用壓縮與專用壓縮兩類,如圖4、圖5 所示。通用方法是由專門的組織提出標準編寫而成的,對大部分圖像數據具有壓縮效果。專用方法如DeepZip,壓縮器僅對訓練數據有效。

圖4 通用壓縮中數據與壓縮器的對應關系Fig.4 Correspondence between data and compressors in the general compression

圖5 專用壓縮中數據與壓縮器的對應關系Fig.5 Correspondence between data and compressors in the special compression
基于同步輻射光源圖像中一個樣本對應一個數據集的特點,本文提出一種壓縮粒度介于通用與專用之間的非線性預測方法,如圖6 所示,每一個數據集即為一個圖像序列。該方法以專用壓縮的思想提升壓縮比,即對不同的圖像序列訓練不同的模型,這是因為不同樣本生成的圖像序列內容差別較大。由于同一樣本生成的圖像序列內容非常相似,因此借鑒通用壓縮的思想加速訓練過程,即對同一圖像序列使用統一的模型進行預測。在本文的訓練與預測方法中,以數據集為單位過擬合訓練獨立模型,訓練數據為樣本圖像序列中的單張圖像及其前序圖像組成的小樣本數據集,用于該樣本所有圖像的壓縮。

圖6 本文中數據與壓縮器的對應關系Fig.6 Correspondence between data and compressors in this study
3.3.2 C-Zip 網絡結構
概率預測模型C-Zip 以CNN 為基礎架構,輸入為指定patch 大小,如圖7 所示。該模型主要基于TCN[25]和Octave Convolution[26]。

圖7 C-Zip 網絡結構Fig.7 C-Zip network structure
TCN 是一種通過因果卷積和膨脹卷積學習序列的非線性關系的模型,僅使用CNN 模型,可大規模并行處理。本文方法利用3D-TCN 學習圖像序列中的時空特征,最后通過Fully-Connected 層加Softmax層得到編碼時使用的預測概率分布,其中3D-TOCN子模塊如圖8 所示。該子模塊結合了Octave Convolution,將輸入按通道切分為高頻和低頻,低頻數據所含信息量較少,可以在高度和寬度的維度上縮小為原來的1/2,之后分別通過3D-TCN 學習頻域內非線性關系,通過Octave Convolution 進行頻域間通信,最后將低頻信息通過上采樣恢復成原始大小,與高頻信息做拼接即得到最后的輸出。

圖8 3D-TOCN 子模塊結構Fig.8 3D-TOCN submodule structure
由于算術編碼速度慢,并行度低,影響壓縮效率,因此本文提出概率距離方法(Rank)用以增加編碼并行度。
Softmax 層的輸出根據不同的任務可以得到不同的解讀與計算,從而提取出不同的信息。Softmax的輸出經過歸一化后可以認為是每個值對應的概率。對于壓縮問題,概率可直接與熵編碼進行結合;對于多分類問題,預測類別為最大概率值對應的類別;對于推薦問題,需對概率進行排序。本文針對的問題是大字典數數據壓縮,對于大字典數據而言,若神經網絡預測的結果較好,則大部分真實值對應的概率距離在Top-K中,當K的比特位數小于當前數據的比特位數時,可結合分區量化達到壓縮效果,因此可通過概率距離結合分區量化達到壓縮的目的。
概率距離方法定義為真實值對應的預測概率值在預測概率向量中的排序位置,針對概率值相同導致排序不穩定的問題,進一步比較字典中值的大小,保證計算過程完全可逆。
對于字典數為[0,n-1]的數據,當前待編碼數據為v,模型輸出為預測概率向量p,p[j]為字典數j對應的概率值,其中0≤j≤n-1,概率距離計算如式(4)及式(5)所示:


目前,在傳統智能壓縮方法中,將模型的輸出看作概率,結合算術編碼進行壓縮。本文根據神經網絡輸出計算得到概率距離,結合分區量化進行壓縮,如圖9 所示。該方法計算簡單,因為僅涉及比較大小和做統計的過程,而不同像素值概率距離的計算相互獨立,所以并行度高。同時,該方法的輸出可以繼續與其他編碼方法相結合,進一步提升壓縮比。

圖9 非線性壓縮流程Fig.9 Process of nonlinear compression
對不同數據集進行時間差分,圖10 和圖11 為不同數據集中單張圖像差分前后的像素值分布對比,其中,差分前不同數據集圖像像素值分布的范圍和密度不同,差分后不同數據集圖像像素值的分布范圍均密集分布在兩端區域。因此,不同數據集時間差分后均可通過分區量化縮小像素值分布范圍。

圖10 原圖像素值分布Fig.10 Pixel value distribution of original images

圖11 差分圖像素值分布Fig.11 Pixel value distribution of difference images
對每個數據集的圖像序列抽取1/100 的數據統計其像素值并計算其占位符,結果如表4 所示。不同樣本的占位符有所不同,說明分區量化的計算具有數據自適應性。量化后像素值所占比特位由16 位降低至11 或12 位,而保留數據只占原始數據的0.29%~1.97%,說明量化后數據可以達到壓縮的目的。

表4 不同數據集上的分區量化結果Table 4 Partition quantization results on different datasets
因此,分區量化可以達到將數據無損量化到較小數據范圍的目的,能夠節省20%以上的存儲空間,同時較小的數據分布范圍有利于后續基于深度學習的模型訓練與壓縮。
數據集圖像序列進行時間差分及分區量化后,通過非線性預測方法進行概率預測,直接結合算術編碼進行壓縮。
模型的輸入維度為3×32×32,即將圖像數據分塊處理,塊大小為32×32 像素,利用當前幀的前向3 幀不同圖像塊預測當前幀相應圖像塊每一個像素值的概率分布,損失函數為交叉熵損失函數,損失連續3 個epoch 不下降或者epoch 達到16 時停止訓練,學習率設置為0.01,使用Adam 優化器,每3 個epoch學習率下降10%,Octave Convolution 中超參數設置為0.5。
以小鼠腦數據集為例,本文提出的C-Zip 中僅使用CNN 模型,即可達到與DeepZip 相近的壓縮比優化效果,并且可以減少預測時間,如圖12 所示。

圖12 DeepZip 與C-Zip 壓縮比與預測時間對比Fig.12 Comparison of DeepZip and C-Zip in CR and predicting time
取數據集中少量數據過擬合訓練模型作為整體圖像序列的預測模型,壓縮結果如表5 所示。對于專用模型壓縮以圖片為單位的原訓練方法和本文提出的以數據集為單位的壓縮方法,兩者結果較為接近,驗證了本文方法在光源圖像壓縮問題上的有效性。在化石翅膀數據集的結果中,原方法的壓縮比較高。在小鼠腦和魚鱗數據集的結果中,本文方法的壓縮比較高,這是因為實際的模型訓練過程中,考慮到實際應用的時間限制,訓練過程中達到指定epoch 即停止訓練,會導致訓練過程中未找到最優解的問題,從而導致某些圖像壓縮效果不佳。本文方法在壓縮時隨機選取的模型若為訓練效果好的模型,則會出現整體壓縮比高于原方法的結果,這是未來可以改進的方向。但是相較于傳統壓縮方法,這兩種方法的壓縮比均可獲得0.5 以上的提升效果。

表5 2 種壓縮方式的壓縮比對比Table 5 Comparison of CR of two compression methods
對不同數據集的圖像序列,經過相同的時間差分與分區量化、訓練與預測方法,僅將模型輸出改為概率距離,算術編碼改為分區量化過程,所得壓縮比結果如表6 所示。

表6 不同數據集上的概率距離量化結果Table 6 Probability distance quantization results on different datasets
不同數據集概率距離的占位符不同,量化后比特位為7~9 位,相較于原16 位數據,該部分數據在比特位上可以節省43.75%~56.25%的存儲空間。結合保留數據占比,整體壓縮比為1.74~2.00,與使用概率距離前的壓縮方法相比,整體壓縮比有所下降。
在單個像素值的概率距離的計算過程中,僅涉及簡單的加減運算,相較于算術編碼,該壓縮流程更易于硬件實現及加速。同時,不同像素值的概率距離計算過程相互獨立,后續分區量化過程同為高可并行方法。因此,對比原始壓縮流程,概率距離量化流程能夠在保證壓縮比的前提下提高并行度。
在本文方法中,為保證壓縮過程無損,壓縮后需要存儲的數據包含預測模型數據、差分量化后保留數據、Rank 保留數據以及Rank 量化后數據4 個部分,其中預測模型數據可忽略不計,另外3 個部分數據大小占原數據大小比值如表7 所示,整體壓縮比為1.69~2.22。PNG、JPEG2000、JPEG_LS、FLIF 和本文方法的壓縮比對比如表8 所示,相較于傳統無損壓縮方法,本文方法的壓縮比提升了0.23~0.58。可見,本文方法在保證壓縮比優化的前提下,具有較高的并行度。

表7 不同數據集上的整體壓縮比Table 7 Overall CR on different datasets

表8 5 種方法的壓縮比對比Table 8 Comparison of CR of five methods
本文提出一種面向同步輻射光源圖像的可并行智能無損壓縮方法。通過充分挖掘該類圖像序列內部相關性,設計可逆的分區量化方法。以數據集為單位過擬合訓練模型,作為概率預測器,并結合穩定的概率距離計算方法,在確保圖像壓縮比的同時提高了編碼并行度。實驗結果表明,該方法相比于傳統圖像無損壓縮方法對于同步輻射光源圖像具有更好的壓縮效果。下一步將細化分區量化中占位符的選擇范圍,明確占位符對壓縮效果的影響程度,形成可量化指標,同時通過提升模型訓練過程中尋找最優解的速度,以獲得穩定的壓縮比優化效果,并且可將該方法與FPGA 等硬件相結合進一步降低計算成本,加速壓縮過程,提升適用范圍。