當前位置:首頁 > 消費電子 > 消費電子
[導讀]根據(jù)目前主流電子紙閱讀器硬件資源有限、要求功耗小、灰階顯示等特點,提出了一種PPT格式文檔解析方案。聚焦于滿足人們對于移動閱讀的基本需求,選取了文字、圖形、圖像作為基本解析對象,設(shè)計并實現(xiàn)了一個適合電子紙閱讀器的PPT格式引擎,并進行了多重優(yōu)化以提升性能體驗,在低端的硬件配置和有限的運行時間內(nèi)完成格式解析。

引言

  PPT(Microsoft Office PowerPoint),是微軟公司開發(fā)的編輯演示文稿的辦公軟件。該格式相對于txt、chm等,信息量更大,結(jié)構(gòu)也更加復雜,導致其對硬件配置要求較高。然而,目前嵌入式終端配置低,因此本文聚焦于滿足人們對于移動閱讀的基本需求,暫不考慮視頻、音頻和外部對象等特性支持。本解析器在開源環(huán)境下,基于Linux操作系統(tǒng)實現(xiàn)。基于嵌入式多格式解析引擎系統(tǒng)架構(gòu)和中間格式理論,具有平臺無關(guān)性、高效性的特點。

  1  系統(tǒng)特點

  該解析引擎兼容版本多,包括Microsoft PowerPoint 97?2003等版本。下面介紹一下系統(tǒng)特點。

 ?、?不依賴于圖形服務(wù)器。解析引擎擁有自己的專用的矢量圖形繪制器。不依賴于特定的底層圖形服務(wù)器。例如,我們的實驗系統(tǒng)的圖形服務(wù)器由nanoX改為Qt時,該解析引擎不需要修改。

 ?、?高效性。對于一般的格式解析器,樣本文件越大,打開速度越慢,而該解析器可以做到文件打開速度與文件大小基本無關(guān)。

 ?、?平臺無關(guān)性。解析引擎并不是直接在顯示設(shè)備上繪制圖形和文字,而是把各種格式元素繪制在一段內(nèi)存區(qū)域上,然后把這段內(nèi)存數(shù)據(jù)映射到物理設(shè)備上。即輸入是文件,輸出是屏幕大小的位圖。

 ?、?配置靈活。解析引擎的模塊化設(shè)計便于移植和裁剪。所有數(shù)據(jù)類型采用宏定義,便于根據(jù)平臺配置。

 ?、?支持手寫批注。 解析器只做內(nèi)容抽取和顯示,不支持編輯和保存,支持手寫批注。手寫批注不改變原文檔,而是新建xml描述文件。

  ⑥ 個性化交互方式。利用電子紙控制器的16通道和黑白刷,實現(xiàn)動畫切換效果。

  2  格式分析

  2.1  總體結(jié)構(gòu)

  Microsoft PowerPoint使用OLE2組合文檔存儲。和文件系統(tǒng)結(jié)構(gòu)類似,它包含容器和流,并組成的樹狀結(jié)構(gòu)。各種流獨立存儲,便于載入和快速保存。如表1所列,PPT文件包括以下5種流式數(shù)據(jù)。

  表1  PowerPoint文件結(jié)構(gòu)

  PPT存儲格式采用十六進制,small endian字節(jié)序,分為若干個大數(shù)據(jù)塊和小數(shù)據(jù)塊,大小分別為512字節(jié)和64字節(jié),第一個數(shù)據(jù)塊為初始數(shù)據(jù)塊,存儲了數(shù)據(jù)塊索引表。 

  2.2  圖像流結(jié)構(gòu)

  PPT中包含矩形、圖片框、文本框、線、橢圓等204種形式的元素,統(tǒng)稱為Shape。每種Shape有一個唯一的實例碼與之相應(yīng)。

  多媒體數(shù)據(jù)的層次結(jié)構(gòu)如圖1所示。

  圖1  容器層次結(jié)構(gòu)

  Drawing GROUP為組合圖形存儲結(jié)構(gòu),它包含了一組圖形對象。Drawing為圖形存儲結(jié)構(gòu),Shape和Solver為兩組圖形屬性元數(shù)據(jù)。Blip Store為插入的圖片對象。Property Table為缺省屬性表。Client Data為一組元數(shù)據(jù)信息,包含坐標,文本和OLE數(shù)據(jù)和用戶自定義屬性表。

  屬性項采用id?value結(jié)構(gòu),自定義屬性表的長度可變。各項屬性相對位置不變。自定義屬性表中出現(xiàn)的屬性將覆蓋默認屬性。

  Drawing為一組描述來管理容器中的圖形對象的規(guī)則集合,包括對齊方式、標尺等。

  3  軟件設(shè)計

  本設(shè)計以嵌入式多格式解析引擎系統(tǒng)架構(gòu)為基礎(chǔ)。解析引擎是負責對源文件進行解析,生成中間格式需要的數(shù)據(jù)的模塊。

  解析引擎的內(nèi)部架構(gòu)如圖2所示。

  圖2  解析引擎架構(gòu)

  3.1  語法分析器

  語法分析器為輸入流數(shù)據(jù),輸出為結(jié)構(gòu)化數(shù)據(jù)供各模塊使用。PPT格式的記錄采用id?value結(jié)構(gòu),id和value占據(jù)規(guī)定的字節(jié)數(shù),語法分析器負責識別記錄id,并抽取value。 

  3.2  導航器

  負責把數(shù)據(jù)從文件系統(tǒng)調(diào)入內(nèi)存,并把I/O流轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù),即用DOM結(jié)構(gòu)描述文件的整體架構(gòu)。

  該模塊具有頁面導航作用。PPT使用OLE2組合文檔存儲。容器和結(jié)點只存儲粗粒度索引信息,對于不需要立即顯示的頁,只存儲容器結(jié)點,暫時不展開,需要顯示該頁時,再從該結(jié)點向下展開,從而減少了不必要的文件讀取。這種分層裝載方法,提高了打開速度,并且對于大文檔,進入速度只和第一頁的復雜程度有關(guān)。

  此外,為了更好地索引,建立了一系列的鏈表結(jié)構(gòu)。如:數(shù)據(jù)塊索引表、根目錄表、圖像數(shù)據(jù)流鏈表、用戶反向鏈表、文本鏈、母板鏈表等。

  文件長度、版本號、進行文件合法性等信息通過讀取初始化塊獲得。除此之外還需要初始化幾個重要的全局鏈表。

  ① 數(shù)據(jù)塊索引表。文件以塊為單位存儲,且不連續(xù),數(shù)據(jù)所屬塊號和塊內(nèi)偏移量可以方便地進行尋址操作。

 ?、?構(gòu)建根目錄表,包括存儲內(nèi)容的起始塊號和大小,用于尋址操作。讀操作只在當前塊范圍內(nèi),當超出當前塊可讀長度時,通過查詢塊索引表找到下一塊的塊號。

  ③ 構(gòu)建圖像數(shù)據(jù)流鏈表。

 ?、?構(gòu)建用戶反向鏈表。為了快速保存,PPT采用增量式存儲,即每次保存時,直接生成頁面副本并追加到文檔末尾。增量式存儲的缺點是冗余量大。例如,有的文件只有幾頁,但文件大小幾MB甚至幾十MB,文件實際大小和修改次數(shù)有關(guān)。

  ⑤ 幻燈片文本鏈,流信息到排版元數(shù)據(jù)獨立存儲。純文本存儲在文本流中,存儲以及排版信息存儲在頁數(shù)據(jù)區(qū)。頁數(shù)據(jù)區(qū)還存儲了純文本在文本流中的位置。

 ?、?母板鏈表,母板一般作為背景,以頁為單位順次存儲。因為電子紙顯示灰度圖像,背景和正文疊加以后看不清楚,用戶閱讀時可以去除背景,而不會影響到文件本身。

  增量式存儲的基本思想是:每次修改產(chǎn)生一個用戶信息,存儲修改的塊號,當前用戶信息反向指向上一個用戶信息,從而構(gòu)成一個用戶反向鏈。遍歷用戶反向鏈可以找到最后一次修改。冗余數(shù)據(jù)可以直接丟棄。

  3.3  布局管理器

  負責屏幕劃分和圖層管理,布局管理器劃為不同的矩形區(qū)域,并標識該區(qū)域的類型。然后分別將解析得到的文字,圖形,圖像緩沖區(qū)映射到屏幕位圖上。

  3.4  文字處理器

  PPT格式的文字種類和布局相對復雜,可以分為正文和圖形內(nèi)嵌文字兩種,各級標題正文的布局也有要求。文字處理器針對各種文本的排版格式多樣性進行解析和布局,完整再現(xiàn)原文檔的版式信息。

  文字處理過程分為預(yù)排版和頁面排版兩部分,預(yù)排版負責填充字模緩沖區(qū),抽取字符編碼和字體信息作為FreeType的輸入,用生成的單個字模位圖填充緩沖區(qū)。然后結(jié)合標尺和對其方式把映射到頁面顯示緩沖區(qū)。文字解析原理圖如圖3所示。

  圖3  文字解析原理圖 

  3.5  圖形渲染

  負責圖形繪制和組合圖形坐標空間轉(zhuǎn)換。本解析引擎不依賴于圖形服務(wù)器,擁有專用的矢量圖形繪制庫。能夠?qū)D形直接繪制到頁面位圖中,與物理顯示無關(guān)。

  繪制直線,曲線和多邊形填充分別采用了經(jīng)典的Breshman算法,三次貝塞爾曲線畫線算法,列掃描多邊形填充算法3種成熟算法。為了提高了運算效率,對于浮點數(shù)作取整運算。經(jīng)驗證,在浮點數(shù)運算效率不佳的嵌入式系統(tǒng)上也能到達較好的渲染效果。

  組合圖形(Drawing GROUP)包含了一組圖形對象,采用了Dom結(jié)構(gòu)。子結(jié)點使用相對于父結(jié)點的坐標空間。因此,圖形處理能夠遞歸地進行坐標轉(zhuǎn)化,并把圖形繪制在其父結(jié)點的坐標空間內(nèi)。

  3.6  圖像渲染

  圖像渲染器采用Cximage圖像庫把圖像數(shù)據(jù)重構(gòu),并進一步轉(zhuǎn)化成灰度圖像放入屏幕緩沖區(qū)。

  文件中圖像和多媒體信息存儲在圖像流中,通過FBSE (File Blip Store Entry)描述。于是定義了結(jié)構(gòu)體:

  typedef struct _FBSE{

  MSOBLIPTYPE imageType;

  ULONG id;

  ULONG size;

  ULONG cRef;

  ULONG offsetInDelayStream;

  }FBSE;

  4  優(yōu)化提速

  用戶總是希望系統(tǒng)越快越好,但是嵌入式系統(tǒng)受主頻較低、內(nèi)存較小的限制,對于一些計算量比較大的工作,很難達到理想的效果。于是本解析引擎在應(yīng)用了多頁面緩沖機制和異步并行機制的優(yōu)化策略。

  各渲染器異步并行地工作,第一個完成任務(wù)的渲染器立即把數(shù)據(jù)提交給屏幕顯示。電子紙整屏刷新速度為1 s,利用這個刷屏間歇,其余渲染器完成任務(wù),再采用局部刷屏的方式把增量部分刷新到屏幕上。這樣整體速度取決于渲染速度最慢的那一個。此外,異步執(zhí)行不阻塞輸入,如果這時用戶翻頁,未完成解析線程會被終止,并建立新線程來解析下一頁。例如:打開一頁圖文混排的幻燈片,打開時先顯示文字,隨后顯示出圖像,并且不會阻塞用戶輸入,假如用戶快速連續(xù)翻若干頁后停止,中間頁解析會被終止。

  5  驗證

  在主頻200 MHz的電子紙閱讀器上實現(xiàn)效果如圖4所示。

  圖4  在電子紙閱讀器上解析效果圖

  隨機選擇60個樣本文件,進入書籍最短時間2.82 s,最長11.92 s.如圖5所示。

  圖5  在電子紙閱讀器上解析速度統(tǒng)計圖

  解析引擎采用分層裝載方法,提高了打開書籍速度,這里選擇了3個第一頁完全相同但是大小差別較大的PPT文檔。實驗表明,雖然文檔大小差別很大,但是打開速度差異不大。如表2所列。

  表2  啟動速度對比

  結(jié)語

  由于電子紙的特性和嵌入式設(shè)備的資源限制,本文僅僅聚焦在常用元素的解析上,如文字、圖形、圖像、表格等,而對于嵌入對象(如視頻、音頻等)沒有支持。對于未知元素的解析將成為未來的主要工作。本文模塊化的設(shè)計架構(gòu),有利于下一步進行功能擴展,另外,隨著Office開放文檔格式(OOXML)的誕生并成為國際標準,未來將開發(fā)支持OOXML的嵌入式解析器。

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉