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