摘要:針對目前醫(yī)院內(nèi)鏡檢查科的實際項目需求,給出了內(nèi)鏡影像信息系統(tǒng)中的內(nèi)鏡影像管理功能的設(shè)計與實現(xiàn),深入探討了其中視頻錄像模塊的關(guān)鍵技術(shù)實現(xiàn)(包括自定義的JPS視頻流格式和基于精確系統(tǒng)采集時鐘的錄像線程實現(xiàn))。
關(guān)鍵詞:醫(yī)療內(nèi)鏡影像;影像管理;M-JPEG
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2009)35-10077-03
The Implementation of Image Management in an Endoscope Image Information System
CHEN Li
(Tianhe Branch, Guangzhou Radio TV University, Guangzhou 510665, China)
Abstract: According to the requirement of a practical hospital project in common endoscope inspection department, this paper presents the design and implementation of image management module in an Endoscope Image Information System, deeply discusses the key technical implementations in video recording function including the self-defined JPS video stream format and the recording thread based on the precisely video-capturing system clock.
Key words: medical endoscope image; image management; M-JPEG
醫(yī)療內(nèi)窺鏡目前已廣泛應(yīng)用于消化系統(tǒng)、呼吸系統(tǒng)疾病的臨床診治中因此,在開發(fā)面向內(nèi)窺鏡臨床應(yīng)用的醫(yī)療信息系統(tǒng)時,所面臨的主要問題是需要從原有內(nèi)鏡影像設(shè)備中采集病人的檢查影像信號,經(jīng)數(shù)字化后,轉(zhuǎn)換為計算機(jī)系統(tǒng)可支持的影像格式,完成對這些影像數(shù)據(jù)的模擬實際操作的拍片、掛片、錄像與視頻通信等要求,將檢查影像數(shù)據(jù)與病人的基本信息、主要癥狀、診斷結(jié)果等臨床資料進(jìn)行關(guān)聯(lián),最終實現(xiàn)醫(yī)療圖文資料的統(tǒng)一存儲和管理。
作者針對醫(yī)院鏡檢科的業(yè)務(wù)需求,結(jié)合PACS的應(yīng)用思想,利用Delphi6.0作為開發(fā)工具,以Microsoft SQL Server 2000作為后臺數(shù)據(jù)庫系統(tǒng),設(shè)計并實現(xiàn)了一個基于C/S模型的內(nèi)鏡影像信息系統(tǒng)[1]。本文將給出其中關(guān)鍵的內(nèi)鏡影像管理部分(包括檢查影像信息的采集、拍片、掛片和視頻錄像與回放)的設(shè)計與實現(xiàn)。
1 內(nèi)窺鏡影像信息系統(tǒng)簡介
內(nèi)鏡鏡檢科的業(yè)務(wù)流程要求對病人的基本信息(如鏡檢號、姓名、性別、年齡、診斷日期、送檢部門等)進(jìn)行登記(同時也包括預(yù)約的病人)并寫入數(shù)據(jù)庫,創(chuàng)建每位就診病人的鏡檢記錄。醫(yī)生為病人做鏡檢時可以調(diào)出其鏡檢記錄,以便將鏡檢中的拍片和鏡檢視頻錄像與病人的鏡檢記錄關(guān)聯(lián),最終可生成一份圖文并茂的電子鏡檢報告,最后打印給病人閱覽。同時,還需要對鏡檢過程中的影像進(jìn)行錄像并實時地通過醫(yī)院內(nèi)部的局域網(wǎng)傳輸?shù)讲煌攸c(diǎn)的客戶工作站,以便遠(yuǎn)程的觀摩、診斷與教學(xué)。本文所開發(fā)的內(nèi)鏡影像信息系統(tǒng)實現(xiàn)了上述業(yè)務(wù)需求,系統(tǒng)功能結(jié)構(gòu)如圖1所示。
2 內(nèi)鏡影像管理的關(guān)鍵問題分析
2.1 內(nèi)鏡影像信息的基本處理流程
根據(jù)鏡檢業(yè)務(wù)需求,對檢查影像信息的處理包括以下基本流程:
1) 影像采集:系統(tǒng)針對一些老式的內(nèi)窺鏡設(shè)備(如胃鏡、十二指腸鏡、小腸鏡等)進(jìn)行設(shè)計。由于這些設(shè)備主要采用模擬視頻接口,經(jīng)過視頻采集卡的模擬/數(shù)字(A/D)轉(zhuǎn)換后,形成計算機(jī)能夠處理的各種數(shù)字媒體數(shù)據(jù)。
2) 視頻預(yù)覽:在屏幕的指定窗口區(qū)域,實時顯示內(nèi)鏡檢查時傳導(dǎo)過來的視頻圖像,醫(yī)生通過視頻預(yù)覽窗口可觀察當(dāng)時鏡檢部位的狀況。
3) 拍片:類似于實際工作中的拍片操作。醫(yī)生在觀察視頻預(yù)覽窗口中的實時鏡檢影像時,若認(rèn)為某些影像片段(通常是患者的關(guān)鍵病灶區(qū))對診斷有價值,可對當(dāng)前預(yù)覽圖像進(jìn)行凍結(jié)、保存,完成拍片過程。
4) 掛片:由于每條病人的鏡檢記錄都關(guān)聯(lián)多張拍片圖像,因此需要對這些圖片進(jìn)行管理,在檢索病人鏡檢記錄時可以動態(tài)顯示鏡檢記錄所關(guān)聯(lián)的所有拍片列表(相當(dāng)于實際鏡檢中的掛片,醫(yī)生可以通過看掛片來診斷,一目了然),并可在撰寫圖文鏡檢報告時選擇合適的拍片圖像供打印輸出。
5) 視頻錄像、檢索與回放:在檢查工作站上可對檢查過程進(jìn)行視頻錄制,同時支持本地和異地工作站的錄像文件檢索與錄像回放。
6) 視頻傳輸與遠(yuǎn)程控制:在檢查工作站上的實時檢查視頻可通過網(wǎng)絡(luò)同時傳輸給遠(yuǎn)程工作站,以便于遠(yuǎn)程診斷、教學(xué)與觀摩;遠(yuǎn)程工作站也可通過網(wǎng)絡(luò)對檢查工作站的操作進(jìn)行遠(yuǎn)程控制,如遠(yuǎn)程控制拍片、錄像與視頻傳輸?shù)?。限于篇幅,這部分內(nèi)容將另文敘述。
2.2 視頻采集卡
視頻采集卡的選型要能滿足醫(yī)學(xué)圖像的高清晰度要求和豐富的顏色數(shù)支持,同時,也要考慮其是否提供全面的API,以支持系統(tǒng)的二次開發(fā)。本系統(tǒng)采用天敏SDK2000卡進(jìn)行視頻采集。SDK2000卡具有高品質(zhì)的視頻采集性能,顯示分辨率可達(dá)640x480,24位真彩,顯示畫面流暢不間斷,每秒可達(dá)30幀,在性能上已達(dá)到電子內(nèi)窺鏡影像的性能指標(biāo)要求;具有復(fù)合視頻端口和S-Video端口,匹配內(nèi)窺鏡的常規(guī)視頻輸出接口。SDK2000卡支持系統(tǒng)開發(fā),兼容Windows VFW軟件架構(gòu)和WDM模式,提供功能全面的二次開發(fā)包。
2.3 拍片圖像格式的選擇
拍片圖像采用JPEG標(biāo)準(zhǔn)進(jìn)行壓縮存儲。JPEG是面向連續(xù)色調(diào)、多級灰度、彩色或單色靜止圖像的壓縮標(biāo)準(zhǔn),有真彩色和灰度圖兩種類型,而大多數(shù)醫(yī)學(xué)圖像都是灰度圖像或真彩色圖像,因此根據(jù)JPEG標(biāo)準(zhǔn)對醫(yī)學(xué)圖像實施壓縮是合適的。另外,JPEG 還是一種比較靈活的圖像格式,當(dāng)將圖像保存為JPEG 格式時,允許用戶用不同的壓縮比對文件進(jìn)行壓縮,即可以指定圖像的品質(zhì)和壓縮級別。JPEG雖然是有損壓縮方式,但當(dāng)壓縮比在(12-16):1之間,壓縮后的一個像素點(diǎn)可用1.5-2比特存儲,得到的壓縮圖像質(zhì)量與原始圖像幾乎一樣。
2.4 錄像壓縮標(biāo)準(zhǔn)的選擇
目前,最常用的動態(tài)圖像壓縮標(biāo)準(zhǔn)包括:M-JPEG、H.263、H.264、MPEG(1,2,4)。采用哪一種壓縮標(biāo)準(zhǔn),需要考慮壓縮視頻圖像的分辨率、碼流等關(guān)鍵QoP指標(biāo)。鏡檢圖像對圖像畫質(zhì)的要求比較高。MPEG的應(yīng)用比較廣泛,它是針對運(yùn)動圖像而設(shè)計的,為了適應(yīng)各種碼流要求,這一系列標(biāo)準(zhǔn)的壓縮算法也采用幀間壓縮,使得不是每一幀圖像都容易達(dá)到高質(zhì)量的畫質(zhì)要求。M-JPEG由于是幀內(nèi)壓縮,每一幀圖像都是單獨(dú)的整個畫面,由于每幀圖像都采用JPEG壓縮,圖像畫質(zhì)可以任意控制,直至獲得滿足使用要求的圖像質(zhì)量。從這點(diǎn)上看,M-JPEG比MPEG更適合于內(nèi)鏡檢查用途。
M-JPEG允許自定義運(yùn)動圖像文件格式。我們按照M-JPEG的思想,自定義了本系統(tǒng)的視頻錄像文件格式(JPEG Stream,簡稱JPS格式)。JPS里的每幀圖像都采用相同的JPEG標(biāo)準(zhǔn)壓縮(采用相同的默認(rèn)表和量化表),因此保證它們都具有相同的圖像質(zhì)量。由于采用幀內(nèi)壓縮,JPS文件在視頻傳輸?shù)倪^程中出現(xiàn)丟幀時,不影響整體QoP質(zhì)量。對JPS文件的存取、回放與編輯等操作,都可以依據(jù)自定義的JPS文件頭來實現(xiàn)。
3 內(nèi)鏡影像管理的設(shè)計與實現(xiàn)
3.1 視頻預(yù)覽模塊
為了能夠匹配內(nèi)鏡設(shè)備的模擬視頻接口,同時也需要控制視頻圖像輸出效果,視頻預(yù)覽模塊通過設(shè)置SDK2000卡各個輸出參數(shù)實現(xiàn)對視頻色彩、視頻格式、視頻窗口三方面的視頻圖像輸出控制:
1) 視頻色彩設(shè)置:設(shè)置SDK2000卡的各個色彩參數(shù)(亮度、對比度、色調(diào)和飽和度)。
2) 視頻格式設(shè)置:設(shè)置SDK2000卡的輸入信號視頻端口(即視頻信號源,SDK2000卡支持同時接兩路視頻信號輸入,也就是可以接兩臺電子內(nèi)窺鏡的視頻端子輸入,但某一時刻只能顯示其中一路信號)、視頻端口的制式(NTSC、PAL和SECAM)和視頻編碼類型(RGB555、RGB24、YUY2、YVU9和YV12)。
3) 視頻窗口設(shè)置:設(shè)置視頻尺寸(640x480、352x288、320x240和240x180);能夠以不同風(fēng)格來顯示視頻區(qū)域(按原始尺寸、窗口居中和滿窗拉伸顯示);可以按上、下、左、右四種不同方位移動視頻圖像幅面,以便于觀察,另外,在拍片中保存圖像時能夠自動按不同的比例裁減圖像大小(如若裁減10%,則系統(tǒng)自動保存包含圖像中心位置的90%區(qū)域)。
3.2 拍片管理模塊
系統(tǒng)通過以下步驟完成拍片過程:
1) 圖像凍結(jié):圖像凍結(jié)操作主要在服務(wù)器端完成,但在客戶端可以發(fā)送圖像凍結(jié)命令給服務(wù)器,指示其完成圖像凍結(jié)操作。服務(wù)器端的凍結(jié)操作實際上是調(diào)用SDK2000卡的SDK的暫停視頻流函數(shù)TSDK_2000.Pause,使當(dāng)前的圖像停留在預(yù)覽顯示區(qū)域,完成圖像凍結(jié)。
2) 保存圖像:用戶既可以先凍結(jié)圖像,再保存被凍結(jié)的圖像,或者直接截取當(dāng)前正在預(yù)覽中的視頻圖像來保存。實現(xiàn)保存圖像要完成兩個基本步驟:
圖像的剪裁:對圖像的保存并不是把采集視頻窗口區(qū)域內(nèi)的所有像素都進(jìn)行保存,而是保留視頻窗口區(qū)域內(nèi)顯示原始圖像的中心部分,但按比例裁剪掉原始圖像的無關(guān)重要的周邊區(qū)域,為此要計算出圖像在視頻窗口區(qū)域內(nèi)的頂點(diǎn)坐標(biāo)。
圖像的壓縮與保存:圖像文件不保存在數(shù)據(jù)庫中,而是以文件的方式存放在指定的系統(tǒng)目錄,在鏡檢圖像表(Pict)中存放圖像文件名,因此,檢索Pict表能夠找到與某病人鏡檢記錄關(guān)聯(lián)的所有圖像文件。
3.3掛片管理模塊
掛片管理完成以下基本功能:
1) 拍片圖像預(yù)覽列表:在系統(tǒng)主界面或在影像管理界面的底部顯示與某病人鏡檢記錄關(guān)聯(lián)的拍片圖像列表,在每幅圖像的左上角,顯示圖像的順序編號;
2) 拍片打印選擇:在打印鏡檢報告時,同時可以附上并排的最多六幅拍片圖像,用戶可以選擇某幅圖像作為打印用,同時選擇的次序被保存在鏡檢圖像表(Pict)里,被選擇的次序也決定了該圖像在打印報告里的先后排列次序;
3) 添加或刪除關(guān)聯(lián)的拍片圖像文件:用戶拍照時所保存的圖像文件名將自動與病人鏡檢記錄關(guān)聯(lián),用戶也可以在拍片圖像預(yù)覽列表里刪除或添加部分圖像文件,同時在鏡檢圖像表(Pict)中刪除或添加這些圖像文件與當(dāng)前病人鏡檢記錄關(guān)聯(lián)的所有記錄。
3.4 視頻錄像管理模塊
視頻錄像模塊完成以下的基本操作:
1) 視頻錄制:對鏡檢視頻進(jìn)行實時采集與壓縮,生成自定義JPS格式的視頻錄像文件,最后將完整錄制好的錄像文件與在檢病人的鏡檢記錄關(guān)聯(lián),并寫入數(shù)據(jù)庫;
2) 錄像檢索:可按鏡檢號和錄像時間段來檢索已存檔的鏡檢錄像文件;
3) 錄像回放:可連續(xù)播放多個指定的鏡檢錄像文件。
錄像存檔和錄像檢索的實現(xiàn)比較簡單,限于篇幅,本文只討論視頻錄制與錄像回放的主要實現(xiàn)過程。
3.4.1 JPS錄像文件格式設(shè)計
JPS文件包括文件頭(文件標(biāo)記用字符串“JPS\\0”標(biāo)識)和圖像數(shù)據(jù),文件格式如圖2所示。JPS錄像文件除前面的32K字節(jié),即從第32768個字節(jié)開始,連續(xù)保存多幀圖像數(shù)據(jù)(完整的JPG圖像數(shù)據(jù)),每幀圖像的大小視壓縮的圖像質(zhì)量而定。
3.4.2 視頻錄像與回放的實現(xiàn)
1) 視頻錄像
每一個錄像片段只能在15分鐘以內(nèi),即每一個JPS文件只能存儲15分鐘長的錄像數(shù)據(jù),這主要是受到JPS文件頭的幀圖像存取偏移量的總數(shù)的限制,但規(guī)定其長度也有好處,就是能夠避免產(chǎn)生巨大數(shù)據(jù)量的錄像文件,從而給錄像文件的存取和編輯造成困難。視頻錄像程序流程如圖3所示。
2) 錄像回放
視頻錄像回放是在錄像文件檢索結(jié)果的基礎(chǔ)上選擇一個或多個視頻錄像文件進(jìn)行播放。具體實現(xiàn)時使用Delphi的時鐘Ttimer組件,設(shè)置其超時時間間隔(可根據(jù)JPS文件的播放幀率計算得到:1000 ms / 幀率),在超時時間到(time out)所觸發(fā)的事件過程里執(zhí)行播放函數(shù)。視頻錄像回放流程如圖4所示。
3) 視頻錄像的關(guān)鍵技術(shù)實現(xiàn)
JPS要求按一定的幀率來錄像和回放,時敏性高,因此需要用一個工作線程在相對精準(zhǔn)的時間間隔里完成圖像幀的捕捉、壓縮與存儲。為實現(xiàn)這一過程,先定義一個回調(diào)函數(shù):
procedure TimeProc(uTimerID, uMessage: unit; dwUser, dw1, dw2: dword) stdcall;
在回調(diào)函數(shù)中,完成原始圖像數(shù)據(jù)的捕捉以及對圖像進(jìn)行JPEG壓縮等。然后,把回調(diào)函數(shù)與操作系統(tǒng)的多媒體時鐘事件(timeSetEvent)掛接起來。其實現(xiàn)的主要代碼如下:
proTimeCallback:=TimeProc;
hTimeID:=timeSetEvent(callbackInterval,callbackIntervalResolution,proTimeCallback,1,1);
這時,操作系統(tǒng)會為其分配一個系統(tǒng)的多媒體時鐘(實際上是一個工作線程),該時鐘具有較高的線程優(yōu)先級,能夠比較精確地在一定的時間精度(或誤差,由參數(shù)callbackIntervalResolution確定,以毫秒為單位)內(nèi),準(zhǔn)確地每隔一定時間(由參數(shù)callbackInterval確定,以毫秒為單位)觸發(fā)該多媒體時鐘事件(timeSetEvent),從而能夠準(zhǔn)確地執(zhí)行每幀圖像的采集、壓縮和存儲,實際上也就能夠保證穩(wěn)定的幀率,因此能夠保證較好的QoP質(zhì)量?;卣{(diào)間隔時間callbackInterval=1000ms / 幀率。如采用15幀/s,結(jié)果是為66ms。callbackIntervalResolution表示時間誤差,理想的情況下(其值為0ms),系統(tǒng)準(zhǔn)確無誤地在每隔callbackInterval毫秒就可以調(diào)用一次回調(diào)函數(shù)。但在實際的運(yùn)行環(huán)境中,由于操作系統(tǒng)同一時刻不僅僅只有一個計算任務(wù),因此,應(yīng)嘗試找到一個合理的時間誤差(本系統(tǒng)的取值為10ms),如果值太小,會引起系統(tǒng)過載,而值過大,則又可能使采集幀率難以保證。
4 結(jié)束語
本文給出了內(nèi)鏡影像信息系統(tǒng)中的內(nèi)鏡影像管理功能的設(shè)計及其關(guān)鍵技術(shù)實現(xiàn)。該系統(tǒng)的內(nèi)鏡影像管理基本涵蓋了內(nèi)鏡檢查科對內(nèi)鏡影像的管理需求,包括影像采集、拍片、掛片、視頻錄像與回放等功能。系統(tǒng)參考M-JPEG運(yùn)動圖像編碼思想,采用自定義的JPS視頻流格式存儲錄像數(shù)據(jù),運(yùn)行測試表明JPS格式能夠節(jié)省視頻錄像的存儲空間并能滿足常規(guī)的內(nèi)鏡圖像質(zhì)量要求。本系統(tǒng)來源于實際的醫(yī)院項目,其使用效果表明,它的設(shè)計在一定程度能滿足已有電子內(nèi)窺鏡影像處理的數(shù)字化要求,對于提高醫(yī)院的醫(yī)療信息化管理水平,有其積極的應(yīng)用意義。
參考文獻(xiàn):
[1] 陳力,梅炳夫.內(nèi)鏡影像信息系統(tǒng)的設(shè)計與實現(xiàn)[J].廣州廣播電視大學(xué)學(xué)報,2009,9(5):102-106.
[2] 樊慶福.國內(nèi)外PACS現(xiàn)狀及發(fā)展趨勢[J].上海生物醫(yī)學(xué)工程,2004,25(3):44-46.
[3] 龔華,劉雪松,張奎剛.JPEG標(biāo)準(zhǔn)格式的編碼方法[J].微處理機(jī),2002(1):12-16.
[4] 張仿彥.Delphi接口技術(shù)開發(fā)實例解析[M].北京:機(jī)械工業(yè)出版社,2007.
[5] 李彥,韓光林,李玉波.SQL Server完全自學(xué)手冊[M].北京:機(jī)械工業(yè)出版社,2007.
[6] Satzinger J W,Jackson R B,Burd S D.系統(tǒng)分析與設(shè)計[M].朱群雄,李芳,汪曉男,等,譯.2版.北京:電子工業(yè)出版社,2003:137-138.
[7] 韓冰.Delphli多媒體應(yīng)用技術(shù)開發(fā)實例[M].北京:清華大學(xué)出版社,2002.
[8] 蔡安妮,孫景鰲.多媒體通信技術(shù)基礎(chǔ)[M].北京:電子工業(yè)出版社,2000.