電子紙閱讀器的PPT格式引擎設(shè)計和優(yōu)化
摘要:根據(jù)目前主流電子紙閱讀器硬件資源有限、要求功耗小、灰階顯示等特點,提出了一種PPT格式文檔解析方案。聚焦于滿足人們對于移動閱讀的基本需求,選取了文字、圖形、圖像作為基本解析對象,設(shè)計并實現(xiàn)了一個適合電子紙閱讀器的PPT格式引擎,并進行了多重優(yōu)化以提升性能體驗,在低端的硬件配置和有限的運行時間內(nèi)完成格式解析。
關(guān)鍵詞:電子紙閱讀器;格式解析;移動閱讀;格式引擎
引言
PPT(Microsoft Office PowerPoint),是微軟公司開發(fā)的編輯演示文稿的辦公軟件。該格式相對于txt、chm等,信息量更大,結(jié)構(gòu)也更加復(fù)雜,導致其對硬件配置要求較高。然而,目前嵌入式終端配置低,因此本文聚焦于滿足人們對于移動閱讀的基本需求,暫不考慮視頻、音頻和外部對象等特性支持。本解析器在開源環(huán)境下,基于Linux操作系統(tǒng)實現(xiàn)?;谇度胧蕉喔袷浇馕鲆嫦到y(tǒng)架構(gòu)和中間格式理論,具有平臺無關(guān)性、高效性的特點。
1 系統(tǒng)特點
該解析引擎兼容版本多,包括Microsoft PowerPoint97-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ù)。
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所示。
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ī)則集合,包括對齊方式、標尺等。
評論