馬艷歌+馮娟
摘 要:簡要介紹了一種多適應(yīng)可復(fù)用X射線產(chǎn)品的算法庫架構(gòu)設(shè)計,以期為日后的相關(guān)工作提供參考。基本這種設(shè)計方法、算法庫內(nèi)的功能和代碼,可以在不同產(chǎn)品之間或者同一產(chǎn)品的不同版本間反復(fù)使用,這對算法庫的日常維護(hù)是非常重要的。針對算法庫的管理對象,闡述了對象池模式的使用方法,進(jìn)而提高對象的可復(fù)用性,降低系統(tǒng)內(nèi)存的使用率。
關(guān)鍵詞:架構(gòu)設(shè)計;對象池;X射線;可復(fù)用性
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A DOI:10.15913/j.cnki.kjycx.2016.05.099
在數(shù)字化醫(yī)用X射線攝影系統(tǒng)中,獲取到原始圖像后,必須采用圖像處理算法得到適用于臨床診斷的圖像。在設(shè)計相關(guān)軟件時,將一系列圖像處理算法的集合稱為算法庫。雖然攝影產(chǎn)品的種類繁多,但是,圖像處理算法卻有很多共同之處,它們差異不大。這就為不同產(chǎn)品之間圖像處理算法的復(fù)用提供了有利的條件。在同一個產(chǎn)品的生命周期中,會遇到需要同時維護(hù)多個有差異的算法版本的情況,而在這些差異版本之間,也有大量的代碼是可以復(fù)用的。
本文提出的多適應(yīng)可復(fù)用的算法庫架構(gòu)設(shè)計適用于不同產(chǎn)品之間或者同一個產(chǎn)品的不同版本之間,它能最大限度地復(fù)用算法代碼。另外,針對算法庫實例對象管理提出了對象池模式。它不僅能夠保證每幅圖像都有獨立的算法庫實例對象,還能夠提高對象的可復(fù)用性,降低系統(tǒng)內(nèi)存的使用率。
1 算法庫總體架構(gòu)設(shè)計
圖1展示了算法庫總體架構(gòu)的設(shè)計原理。其中,IPMain具有算法庫實例對象管理功能;XXImplement具有算法完整的功能,能夠?qū)崿F(xiàn)不同產(chǎn)品之間或者同一產(chǎn)品不同版本之間的算法功能對接;AlgorithmBasis則具有基礎(chǔ)算法的功能,它為所有產(chǎn)品和同一產(chǎn)品所有版本的實現(xiàn)提供算法調(diào)用服務(wù);ArithemeticBasis則具有基礎(chǔ)運算功能,比如加、減、乘、除,求直方圖等。
2 算法庫詳細(xì)架構(gòu)設(shè)計
圖2展示了算法庫的基礎(chǔ)架構(gòu)和2種擴(kuò)展變化。其中,圖2(a)為基礎(chǔ)架構(gòu),A1是算法庫提供的2個差異較大的對外使用接口。它可能是2個產(chǎn)品的接口,也可能是屬于同一個產(chǎn)品的不同版本的接口。A1_A1是接口的實現(xiàn)類,它們不是用于實現(xiàn)某個算法的代碼,而是用于算法流程設(shè)立和參數(shù)配置等操作的。圖2(b)適用于接口沒有變化的產(chǎn)品,但是,它們的功能實現(xiàn)不同。A1_B1的功能與A1_A1完全獨立。這種情形多出現(xiàn)在不同產(chǎn)品之間,它們的功能相同,算法不同。圖2(c)適用于在原有產(chǎn)品的所有功能上新增了獨立功能的新產(chǎn)品,比如乳腺篩查機(jī)。這種架構(gòu)設(shè)計的第一代產(chǎn)品只有2D圖像功能,第二代產(chǎn)品既包含2D功能,又新增了斷層重建功能。
3 算法庫對象管理
圖像處理流程要求支持多線程的應(yīng)用場景,即每一幅圖像能夠獨立處理,而且多幅圖像的處理能夠同時進(jìn)行。因為算法實現(xiàn)對象內(nèi)部有不同的模板、數(shù)據(jù)等圖像獨享信息,所以,每幅圖像都需要一個算法實現(xiàn)對象與其對應(yīng),即在圖像開始處理時創(chuàng)建該對象,在圖像處理結(jié)束后銷毀該對象,整個操作由應(yīng)用層執(zhí)行。
本文提出了一種使用對象池模式的算法庫對象管理方法,其主要有以下3個特點:①將對象的創(chuàng)建、銷毀、復(fù)制、賦值等操作以接口的方式提供給應(yīng)用層使用。②為每一個創(chuàng)建的對象增加引用計數(shù),表示該對象正在使用。當(dāng)引用計數(shù)被清除時,表示該對象已經(jīng)閑置。③當(dāng)接收到創(chuàng)建對象的申請時,要先查找當(dāng)前有無閑置對象,如果有,則返回該對象供使用,不然就要創(chuàng)建新對象。為了有效控制對象占用的內(nèi)存,就要控制對象的總數(shù)量。當(dāng)對象的數(shù)量達(dá)到上限,全部在使用,并且又收到創(chuàng)建對象的申請時,則需等待對方閑置下來后再返回。
4 結(jié)論
由本文提出的設(shè)計方法可知,與傳統(tǒng)方法相比,從架構(gòu)角度來說,文中提到的方法有較強(qiáng)的復(fù)用性和可維護(hù)性;從對象管理的角度來說,對象池模式的方法在面向接口編程時,在對象復(fù)用性、運行穩(wěn)定性和最大內(nèi)存可控性方面有明顯的優(yōu)勢。
參考文獻(xiàn)
[1]Linlan Liu.Study of Multiple Instances Schedule Based on Object Pool[G]//International Symposium on Information Processing(ISIP).Qingdao:Institute of Electrical and Electronics Engineers ,2010:46-49.
[2]Sun Ruizhi,Shi Meilin.Schedule of activity instance in workflow management system[J].Journal of Softerware,2005(03):400-406.
[3]Prayasee P.Impact of Design Patterns on Quantitative Assessment of Quality Parameters[G]//Advances in Computing and Comm -unication Engineering(ICACCE).Dehradun:Insitute of Electrical and Electronics Engineers,2015: 577-582.