王圣杰,楊 華,2,鄭世寶,2,梁龍飛
(1.上海交通大學電子工程系圖像通信與網絡工程研究所,上海200240;2.上海市數字媒體處理與傳輸重點實驗室,上海200240;3.上海博康智能網絡科技股份有限公司,上海200030)
隨著科學技術的不斷進步,計算機的普及率日益提高,其操作的安全性與合法性也越來越受到人們的關注。通過對計算機操作進行無間斷地記錄,可以有效避免由于非法操作而造成的不良后果,對于存儲有個人檔案、商業機密、病人病歷等敏感信息的計算機,這種需求尤為迫切。
目前,對計算機操作視頻進行記錄主要存在硬件實現[1]與軟件實現[2]兩種方式。軟件實現在原理上一般基于操作系統底層機制,可靈活使用包括 VC、VB[3]、JAVA[4]、C#[5]、Delphi[6]等在內的多種開發語言,但這種實現方式大多依賴于操作系統對自身行為進行記錄,需要在被記錄計算機上安裝特定的軟件,這樣不僅會占用過高的CPU資源,使計算機工作性能受到較大影響,而且跨平臺適應性差。硬件實現方式很好地解決了以上問題,大多通過在被記錄計算機主機上安裝VGA采集卡,實現了對計算機屏幕的錄制,并可在用戶端安裝配套的軟件用于觀看實時操作視頻,但是,使用VGA采集卡存在著采購成本高、用戶端軟件功能單一等不足。
針對以上實現方式的缺陷,本文介紹了一套自主研發的系統,在不占用被記錄計算機任何資源的前提下,通過軟硬件相結合的方式實現了對包括計算機操作視頻、鍵鼠操作信息在內的計算機操作信息的全面、高效的記錄,并將記錄數據以壓縮碼流的形式存儲于遠程服務器中,同時提供了多種方式實現了對操作信息的查看與回放。
本文研究的計算機操作視頻記錄系統總體應用框架如圖1所示,系統由被記錄計算機、計算機操作視頻記錄設備、以太網絡、數據存儲與管理服務器、管理者終端組成。每臺被記錄計算機都配備一臺計算機操作視頻記錄設備對包括計算機操作視頻、鍵鼠信息在內的操作信息進行采集,并將其以壓縮碼流的方式通過以太網絡傳輸至中心機房的數據存儲與管理服務器,該服務器負責對來自多臺計算機操作視頻記錄設備的碼流數據、設備信息和用戶信息進行集中存儲與管理。管理者終端不僅可以通過使用瀏覽器登錄位于一臺或多臺計算機操作記錄設備中的Web Server對其工作參數進行設置,實現對設備工作狀態的動態調整;而且能夠通過安裝定制的軟件連接服務器,查看和回放服務器存儲的計算機操作記錄數據。

圖1 系統總體應用框架
圖1所示的系統中,核心設備為計算機操作視頻記錄設備,該設備主要技術指標要求如下:1)計算機操作視頻輸入與輸出接口,同時支持HDMI/VGA/DVI三種接口;2)計算機操作視頻分辨率格式,1 024×768,1 280×720,1 280×768,1 280 ×800,1 280 ×1 024,1 360 ×768,1 366×768,1 600 × 1 200,1 680 × 1 050,1 600 × 900,1 280×1 024,1 280×960,1 920×1 080。支持幀率:120 Hz,60 Hz,40 Hz,30 Hz,逐行掃描。支持輸入信號分辨率自適應識別;3)視頻編解碼標準,支持H.264/AVC Baseline Profile Level4.0;4)視頻編碼分辨率,與輸入信號分辨率相同(支持隨著操作過程中被記錄計算機操作視頻分辨率的改變而改變);5)視頻編碼幀率為1~30 f/s(幀/秒);6)視頻編碼碼率為1~12 Mbit/s;7)操作系統為嵌入式Linux操作系統;8)支持Web Server;9)固件升級:網絡在線升級;10)電壓AC 220 V;11)功耗小于20W。
計算機操作視頻記錄設備在硬件構造上主要由數據編碼與管理主板和數據采集與環出子板組成,如圖2所示。其中1和2分別為輸入鍵盤信號與鼠標信號,3和4為輸出鍵盤信號與鼠標信號,5和6分別為輸入與輸出的VGA/DVI/HDMI信號,7為輸出碼流數據,8為AC 220 V電源。如上所述,設備硬件分別由一塊主板與一塊子板組成,其中主板主要包括數據處理模塊、數據接口轉換模塊、外圍接口模塊和電源模塊,子板主要包括計算機操作視頻信號采集模塊、操作視頻信號輸出模塊、鍵鼠信息環出模塊。下面將分別對各個模塊進行介紹。
計算機操作視頻信號采集模塊主要完成被記錄計算機輸出操作視頻的采集、顏色空間的變換、圖像增強等操作,它支持HDMI,DVI,VGA等多種接口,并將輸入信號統一去格式化轉化為4∶2∶2的Y∶Cb∶Cr信號輸出。操作視頻信號輸出模塊將經由數據接口轉換模塊環出的信號轉化為VGA,HDMI,DVI信號,并送入被記錄計算機顯示器進行顯示。鍵鼠信息環出模塊將以PS/2格式輸入的鍵鼠操作信息分為2路,其中一路直接送入數據接口轉換模塊,另一路輸出至被記錄計算機主機。

圖2 計算機操作視頻記錄設備框圖
數據處理模塊核心為嵌入式SOC芯片,它以ARM11為內核,內嵌vDSP子系統,主要負責對輸入計算機操作視頻信號與鍵鼠信息進行編碼、管理壓縮碼流數據、通過以太網絡將碼流傳輸至用戶管理與數據存儲服務器。它實現了在H.264 Baseline Profile Level 4.0標準下對數據接口轉換模塊輸出信號的壓縮編碼。
數據接口轉化模塊核心為FPGA芯片,它實現了對輸入操作視頻分辨率的自適應識別以及對鍵鼠信息的采集,并將操作視頻采集模塊輸入的LVDS信號分為兩路,其中一路送至多媒體信號輸出模塊,完成了對輸入信號的環出,另一路轉化為BT656格式的TTL信號,并以特定格式送入數據處理模塊進行壓縮編碼。
外圍接口模塊主要包括Nand Flash,Micro SD,DDR2,PHY,GPIO和UART等接口,它們分別負責SOC芯片中程序與數據的存儲、編碼數據的本地存儲、編碼數據的緩沖、連接以太網并將編碼數據傳輸至遠程服務器、作為芯片擴展功能接口與RS-232調試接口。
本系統電源模塊采用了開關電源與線性電源相結合的較為成熟的電源方案,該方案外部走線少,可靠性高,抗干擾能力強,成本低,有效完成了對各個模塊進行供電的任務。
計算機操作視頻記錄系統軟件主要包括計算機操作視頻記錄設備軟件、數據存儲與管理服務器軟件以及管理者終端用戶軟件等。下面分別介紹幾種軟件。
計算機操作視頻記錄設備軟件為運行于該嵌入式設備中的Web Server,為系統輔助功能實現軟件,其軟件運行平臺為嵌入式ARM,操作系統為Linux操作系統。Web Server的功能主要包括:1)對計算機操作視頻信號進行壓縮編碼;2)配置計算機操作視頻記錄設備IP地址、網關等網絡參數;3)配置編碼幀率、編碼碼率、數據傳輸方式(UDP/TCP)等參數;4)管理用戶名、密碼等用戶信息。
計算機操作視頻記錄設備軟件架構圖如圖3所示,設備軟件分為4個層次:物理接口層、設備驅動層、中間件(SDK)層和系統應用層。物理接口和設備驅動層用以進行Linux操作系統和底層硬件之間的通信,中間件層為系統提供基本的功能模塊,包括用戶管理、編解碼參數配置、用戶管理、網絡參數配置等,以方便應用軟件的開發,系統應用層主要是面向用戶的上層應用軟件。
從整體上來看,圖1中管理者終端與計算機操作視頻記錄設備采用 B/S[7](Browser/Server)模式進行交互,前者作為Browser,后者作為Server,在本系統中,Browser為管理者終端軟件中的瀏覽器,Server即為3.1節介紹的嵌入式Web Server,管理者終端用戶通過在瀏覽器中輸入Web Server的IP地址、用戶名、密碼登陸服務器完成對其的各種操作。這種基于http瀏覽器/服務器的交互方式,大大擴展了交互范圍,不需要安裝額外的軟件,給系統應用帶來很大的方便,同時提高了系統的可移植性,給系統的維護、管理和更新帶來了便利。

圖3 計算機操作記錄設備軟件架構圖
圖1中管理者終端與中心機房數據存儲與管理服務器之間采用Client/Server[7]的模式進行信息交互;前者作為Client,后者作為Server,允許兩者通過OCX控件進行信息交互,在本系統中Client為數據集中管理軟件,Server為數據存儲與管理服務器軟件,管理者終端用戶通過安裝在本地的數據集中管理軟件完成各種操作。此種模式將用戶端與服務器端區分開來,兩者獨立完成系統分配的不同任務,有效避免了因服務器超負荷工作而導致效率低下的問題,同時有著交互與信息安全控制能力強,用戶端操作響應快速,圖形用戶界面豐富的特點。
在本系統中用數據存儲與管理服務器軟件作為數據庫管理系統,主要負責存儲用戶名、密碼等用戶信息,提供事務運行管理及用戶日志,存儲與管理來自多臺計算機操作記錄設備的多路碼流數據、響應管理者終端用戶的各種操作請求等功能。
如上所述,計算機操作記錄系統的管理者終端用戶軟件,既包括Browser,又包括Client,其中Browser可選用Windows XP系統支持的任意瀏覽器,Client為數據集中管理軟件,筆者主要參與了數據集中管理軟件的設計,該軟件為核心功能實現軟件,其架構圖如圖4所示,分為物理接口層、BIOS層、操作系統層、SDK層與應用軟件層。其中物理接口層提供與底層硬件相連接的接口,BIOS與操作系統實現對底層硬件的控制,SDK提供可供軟件開發者調用的核心功能模塊接口,應用軟件層主要為直接面向用戶的操作軟件。
軟件功能為:
1)碼流直播:從樹形設備列表中選擇指定的一臺或多臺設備,查看其實時編碼數據;
2)碼流點播與下載:從樹形設備列表中選擇指定的設備,按照時間段檢索該由設備壓縮編碼的碼流數據,進行播放或下載至指定的本地存儲路徑;

圖4 管理者終端數據流集中管理軟件架構圖
3)本地回放:播放存儲在本地的被記錄計算機操作信息壓縮碼流;
4)播放控制:碼流點播與本地回放過程中可實現暫停、停止、單幀后退、單幀前進、截圖、全屏顯示等播放控制功能;
5)多畫面顯示:支持對碼流進行1,4,6,8,9,13,16 不同數量畫面的播放顯示。
數據集中管理軟件的設計與實現主要通過調用SDK提供的各個功能模塊來完成,主要包括主框架模塊、用戶檢測與登錄模塊、通信模塊、軟解模塊,其中主框架模塊又可細分為直播模塊、點播模塊、下載模塊、本地回放模塊。各個模塊間的關系如圖5所示,下面對其功能做詳細闡述。

圖5 數據集中管理軟件設計模塊圖
用戶檢測與登陸模塊主要用于建立管理者終端用戶與數據存儲和管理服務器的連接,使后續操作的實現成為可能。在本設計中,基于安全因素的考慮,采取了雙重驗證機制。用戶與服務器建立連接的過程分為兩個階段:用戶檢測階段首先需要輸入Key IP,并與服務器內嵌的USB Key的IP進行比對,相同則進入登錄驗證階段,反之等待用戶重新輸入;用戶在登陸驗證階段需要輸入服務器IP、用戶名、密碼,在三種信息全部與服務器存儲信息一致的前提下,成功建立與服務器的連接,反之連接失敗。
主框架模塊扮演著實現主要操作功能的角色,諸如對一臺或多臺被記錄計算機操作視頻數據進行實時直播,按時間段對多路碼流進行點播、將存儲于服務器端的碼流數據下載至本地硬盤、播放下載碼流等功能。
通信模塊是管理者終端用戶與服務器進行信息交互的媒介,建立了從服務器獲取信息的通道,提供了檢測服務器狀態、登錄與登出服務器、獲取服務器歷史信息、請求下載操作等接口。通信模塊基于Win socket編程實現數據通信。通信模塊與服務器成功建立連接后,自動獲取服務器基礎資源(計算機操作視頻記錄設備信息、數據存儲信息、數據編碼參數等),獲取的數據以特定格式的消息形式通知主框架模塊,并完成數據的解析與處理。主框架模塊對基礎資源解析完畢后調用通信模塊接口通知服務器初始化工作完畢,此后通信模塊一直等待響應服務器消息或調用方法執行用戶操作。
軟解模塊完成碼流的解碼與播放工作,提供了登錄服務器、退出服務器、播放直播碼流、播放點播碼流、打開本地文件、視頻播放控制等接口。軟解模塊內嵌高性能的Coreavc編解碼器,它支持大多數的視頻編解碼標準和多種形式的GPU硬件加速,與單純依賴“硬解碼”的解決方案相比,有更高的工作效率。
本文介紹的計算機操作視頻記錄系統實現了對計算機輸出操作視頻與鍵鼠操作信息的采集、編碼、傳輸、存儲以及回放查看。本系統主要性能指標為直播碼流的延遲時間,經多次測試,在多媒體信號分辨率為1 024×768,幀率為25 f/s,碼率為4.7 Mbit/s情況下碼流播放平均延遲為0.72 s,基本達到了實時性的要求。
目前本系統已成功應用于多個單位,經過大量使用人員的實踐檢驗與長時間的應用測試,該系統運行良好,工作性能穩定,具有廣闊的應用前景。針對此系統的后續工作將集中在對計算機操作視頻進行智能分析,從計算機視覺的角度提取含有重要或敏感操作的關鍵幀,以此來實現在短時間內對長時間用戶操作的凝縮回放;同時對獲取的PS/2形式鍵鼠操作信息進行解析,還原具體操作類型與操作發生時間,并結合關鍵幀信息實現基于多種信息融合的計算機操作數據檢索。
[1]孫紅亮,唐艷發,梁春鋒,等.基于FPGA+ARM的高速計算機屏幕信息記錄系統[J].電視技術,2010,34(S2):16-19.
[2]敖文兵.基于H.264/AVC屏幕錄制回放系統[D].武漢:華中科技大學,2012.
[3] ZHAO Ling.Remote screen locked technology based on winsock[C]//Proc.Asia-Pacific Youth Conference of Youth Communication and Technology.[S.l.]:Atlantis Press,2011:65-68.
[4] HOU Jinbiao.Design and implementation of a remote screen monitoring system based on Java[C]//Proc.WCSE.Xiamen:IEEEComputer Society.[S.l.]:IEEE Press,2009:292-296.
[5] ZHANG Jia’ai.The research and implementation of screen monitoring and process controlling in C/Smode based on C#technology[J].Applied Mechanics and Materials,2012(6):1800-1802.
[6] JIANG Rong.The application of intelligent remote monitoring platform underWindows on physical theory education[C]//Proc.ICMT.Hangzhou:IEEE Press,2011:3706-3709.
[7]湯庸,葉小平,湯娜.數據庫理論及應用基礎[M].北京:清華大學出版社,2004.