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