第二章 系統架構
Portable Embedded System
A/V Recording and Playback Communication
Interface Human-Machine
Interface Database
Communication Interface Human-Machine
Interface
Portable Embedded System A/V Recording
Diagnostic Data Processing Communication Interface Hospital
Server
Residential Gateway
圖 2-1 遠距居家照護系統圖
如圖 2-1 所示,我們所認為理想的遠距居家照護系統[15][39],應該至少 要具備診斷資料的收集和處理的功能,而且在醫生與病人之間的介面必須要 能有及時的通訊,最好要做到同時有影音的相互溝通,而且必須要是可以隨 身攜帶的設備讓醫生能夠隨時知道病人的狀況,最後是需要無線通訊的介 面,以減少病人的麻煩。
但是因為無線網路的頻寬限制,所以影音資訊與生醫訊號在傳輸之前必 須要先做壓縮,而在遠距醫療的領域中,無線網路與通訊閘道器的研究已經 發展到一個很成熟的階段,但是就我們所知,很少有人把影音資訊與生醫訊 號放在一起做壓縮,並且還要把所有的功能加在一個可攜式的系統平台上,
而這個系統的最難處就是在於如何有效的運用這麼有限的計算資源。
本章共有兩節,第一節會針對系統的硬體平台作介紹,包括硬體架構以 及資料在硬體中的傳輸方式,而第二節則會對軟體平台作介紹,包括整個相 機的大致軟體架構,以及相機當中主要演算法的流程,以及心音壓縮辨認線 程(Thread)所需執行的流程。
2.1 硬體平台
SDRAM
Flash Mem ory
M an-Machine Interface
AR M
DS P
CC D Sensor LCD Display
JPE G/MP EG Compression
Microphone
Speaker
A/D and D /A
Com munication
圖 2-2 嵌入式系統架構圖
圖 2-2 為病人端之可攜式照護系統架構圖[17][37][38][39][40][41][42],
這個照護系統是建構在一台消費型的數位相機平台上。以下對圖 2-2 的各個 區塊作簡單的介紹:
一、 ARM:為本系統之協同中央處理器之一,負責資料處理及系統流程 控制。
二、 DSP:為本系統之協同中央處理器之一,負責同類型大量資料處理 如 MPEG4 的位移估測(Motion Estimation)的計算 SAD 值,由 ARM 發旗標控制其動作,為整個系統的加速處理器。
三、 Communication:負責醫生與病人之間的無線通訊溝通。
四、 JPEG/MPEG Compression:負責照片以及影像最後輸出的壓縮格式。
五、 CCD Sensor:包含 Photo Diode,負責影像的感光以及將感光後的電 壓值數位化以利於處理。
六、 Flash Memory:負責存放程式碼以及 Lookup table,以利於中央處理 器的存取與計算。
七、 SDRAM:資料存放記憶體,接收 CCD Sensor 所讀出來的圖像感光
資料。
八、 LCD-Display:負責所錄製影像的 Replay。
九、 Speak 與 Microphone:負責錄音與 Replay,或是病人與醫生的互動 溝通。
十、 Man-Machine Interface:使用者介面,包括平台上面的按鈕以及軟 體,以簡單容易操作為主。
十一、 A/D converter and D/A converter:將 Speaker 與 Microphone 的聲 音資料由類比訊號轉為數位訊號或是由數位訊號轉為類比訊號。
SDRAM Audio
D/A; A/D
Microphone
Speaker CCD/CMOS
Sensor Zoom
Lens M-Shutter
Strobe User I/F & Button User I/F & Button
USB Slave
USB Host DPS Printer
Internal Flash Memory
LCD Display Signal Processor
TV
Flash Cards
Traditional Printer Computer
圖 2-3 影音資料處理的硬體資料傳輸方式
圖 2-3 為本系統在執行影音資料處理時的硬體資料傳輸方式,首先,影 像會經由 CCD/CMOS Sensor 讀取,接著便存放至 SDRAM 中,然後再經由 訊號處理器執行影像處理。同一時間,聲音訊號會被麥克風錄下來並經由 A/D 處理器轉換產生數位音頻訊號,這些處理器包含微處理器、數位訊號處 理器,與其他加速晶片。經過處理的聲音與影像的資料將會被儲存到外部的 記憶卡。
因此,在這樣的硬體平台上,所剩下來的工作就是發展一套強健的演算 法來充分利用硬體資源,經由軟體的排程,同時進行影音的紀錄以及生醫訊
號的診斷與壓縮。
2.2 軟體平台
System
Maintenance User
Interface System
Self-Diagnosis Application Layer
Sensor
Interface Storage System Video Data
Processing Still Image Processing
CommunicationData System Flow Control Diagnostic Data (PCG)
Processing
Functional Layer Application Program Interface (API)
Device Driver Interface (DDI)
Real-Time Operating System Hardware Driver System Layer
圖 2-4 所提出之系統軟體架構
以系統晶片(system-on-a-chip,簡稱 SoC)的觀念為基礎,心音圖的訊號 處理成為軟體中的一個專門線程,可以與多媒體資料分享共同的硬體資源,
這個系統晶片平台包含一個微處理器(ARM9),數位信號處理器(DSP)與其他 的計算單元以利於影像的處理,為了要達到可以同時做 MPEG-4 影像資料流 壓縮與心音圖的訊號處理(包含壓縮與診斷)的目標,所以心音圖的訊號是 以週期性的在嵌入式微處理器上做處理,選擇在微處理器上做處理而不在數 位信號處理器上處理的原因是當時數位信號處理器的子系統所有資源幾乎 都去做 MPEG-4 影像壓縮中的影像穩定(image stabilization),而數位訊號處 理器所做的運算目的是可以將 MPEG-4 畫面中的 P-frame 的影像最佳化。
如圖 2-4 所示,心音圖的訊號處理與相機的軟體系統分享共同的應用程 式介面(API)以及設備驅動介面(DDI),在基本的相機功能正在啟用時,一個
獨立的線程會週期性的執行以獲得心音圖的訊號並同時作分析處理,而且所 有的多媒體資料以及心電圖的壓縮與診斷結果會使用相同的檔案系統做儲 存,而且透過 DMA(Direct Memory Access)控制器來將資料儲存進記憶卡 中,以這樣的軟體架構為基礎,剩下的主要挑戰便是發展一個簡單但是有效 的心音圖訊號處理演算法,這個演算法要能夠即時的執行,必須要把在微處 理器上面的心音圖訊號處理可以在數位信號處理器做完多媒體資料處理之 前結束。
圖 2-5 心音圖訊號處理線程
圖 2-5 中為心音圖資料處理的線程,最上面的是一個檢查機制,會固定 的檢查數位信號處理器是否忙碌,若不忙碌則過一段時間再檢查,如果數位 信號處理器處於忙碌的狀態,則代表數位信號處理器正在做 MPEG-4 影像資 料流的壓縮,這個時候便啟動 DMA controller 存取一個週期的心音圖訊號到 SDRAM 當中,接著嵌入式微處理器便會去做這一個週期心音圖訊號的壓縮 及診斷,但是有一點值得注意的地方是,在數位信號處理器正在忙碌於
MPEG-4 資料壓縮以及影像穩定的同時,DMA controller 可能同時也因為即 時的影音資料流的大量讀取與儲存而變得忙碌,因此必須要透過旗標 (semaphore)來控制 DMA controller 的讀取跟寫入。
Capture CCD Raw Data
Audio Raw Data Input
Audio Noise
Filtering ARM DMA Interrupt
Image Resize &
Processing
Store Image to Frame Buffers CCD Controller
Live View Engine
Global Motion Vector CalculationDSP
Live View Engine
Video Data Compression Audio Data DSP
Compression ARM
Video and Audio Bit Stream Synchronization ARM
AE/AWB Prediction and Adjustment
ARM
Write to Flash Memory DMA
DMA
Vertical Sync Interrupt
MPEG File with AVI format
Bit Rate Control
圖 2-6 影音處理演算法流程
圖 2-6 為影音處理的演算法流程,右半邊為影像資訊的處理流程,首先 由 CCD Controller 控制 CCD Sensor 讀取 RAW Data,然後調整 CCD Sensor 所讀取出來的影像尺寸,使其可以同步的在 LCD 螢幕上顯現出來,接著將 影像的資料傳送到暫存器中等待數位信號處理器處理,接著數位信號處理器 就會去做影像位移估測(motion estimation)的計算,計算完之後就會開始做影 像的壓縮,做完後會把資訊傳回給微處理器,微處理器便會根據數位信號處 理器的資訊來決定自動曝光與自動白平衡的預測與校正。而圖 2-6 的左半邊 為聲音訊號的處理流程,首先啟動 DMA 將 Microphone 所錄製的聲音原始 信號儲存起來,再經由微處理器做噪音的濾除,然後做聲音的壓縮,接著再 將上面數位信號處理器所壓縮完的影像訊號與剛剛所壓縮的聲音訊號同步 化,最後再透過 DMA 將壓縮後的結果檔案儲存至 Flash Memory 當中,而且
會有一個資料位元控制機制,透過所儲存以及壓縮資料的資訊,可以計算出 較好的影像壓縮效率。
Diagnostic
Data input Data
Segmentation
Wavelet Transform
Energy Calculation
Energy Calculation
Feature Extraction
Zero Thresholding
Test Vector Making Data
Compression
PredictionSVM Write to Flash
Memory Compressed Data
and Prediction Result
圖 2-7 心音訊號處理流程
圖 2-7 為心音訊號處理的流程,首先使用電子聽診器將心音訊號讀取進 來,透過 A/D converter 將訊號數位化,再啟動 DMA 將心音訊號儲存至 SDRAM 當中,接著微處理器若接收到數位信號處理器正在忙碌的旗標後,
便會開始做心音的訊號處理,首先會先將每一個心音訊號依週期來切割,依 照壓縮以及診斷會有不同的處理流程,上半部是壓縮的處理程序,首先將信 號作小波轉換,接著將每一階的小波轉換值各計算其能量,由計算出來的能 量決定需保留能量值的大小,然後將不必要的小波係數濾除,最後再做資料 壓縮;下半部是診斷的處理程序,首先會先計算出整個心音的能量分佈,接 著決定心音位置,然後做心音特徵的抽取,接著將抽取出來的特徵值做轉化 成為特徵向量,再將特徵向量傳入支持向量機做診斷,最後將所診斷出來的 結果以及壓縮後的檔案儲存到 Flash Memory 中,最後在經由網路儲存到醫 院端,並將結果交由醫師診斷。