www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

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

引言

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

  1  系統(tǒng)特點(diǎn)

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

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

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

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

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

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

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

  2  格式分析

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

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

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

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

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

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

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

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

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

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

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

  3  軟件設(shè)計(jì)

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

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

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

  3.1  語(yǔ)法分析器

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

  3.2  導(dǎo)航器

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

  該模塊具有頁(yè)面導(dǎo)航作用。PPT使用OLE2組合文檔存儲(chǔ)。容器和結(jié)點(diǎn)只存儲(chǔ)粗粒度索引信息,對(duì)于不需要立即顯示的頁(yè),只存儲(chǔ)容器結(jié)點(diǎn),暫時(shí)不展開(kāi),需要顯示該頁(yè)時(shí),再?gòu)脑摻Y(jié)點(diǎn)向下展開(kāi),從而減少了不必要的文件讀取。這種分層裝載方法,提高了打開(kāi)速度,并且對(duì)于大文檔,進(jìn)入速度只和第一頁(yè)的復(fù)雜程度有關(guān)。

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

  文件長(zhǎng)度、版本號(hào)、進(jìn)行文件合法性等信息通過(guò)讀取初始化塊獲得。除此之外還需要初始化幾個(gè)重要的全局鏈表。

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

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

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

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

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

 ?、?母板鏈表,母板一般作為背景,以頁(yè)為單位順次存儲(chǔ)。因?yàn)殡娮蛹堬@示灰度圖像,背景和正文疊加以后看不清楚,用戶閱讀時(shí)可以去除背景,而不會(huì)影響到文件本身。

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

  3.3  布局管理器

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

  3.4  文字處理器

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

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

  圖3  文字解析原理圖 

  3.5  圖形渲染

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

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

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

  3.6  圖像渲染

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

  文件中圖像和多媒體信息存儲(chǔ)在圖像流中,通過(guò)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)存較小的限制,對(duì)于一些計(jì)算量比較大的工作,很難達(dá)到理想的效果。于是本解析引擎在應(yīng)用了多頁(yè)面緩沖機(jī)制和異步并行機(jī)制的優(yōu)化策略。

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

  5  驗(yàn)證

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

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

  隨機(jī)選擇60個(gè)樣本文件,進(jìn)入書(shū)籍最短時(shí)間2.82 s,最長(zhǎng)11.92 s.如圖5所示。

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

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

  表2  啟動(dòng)速度對(duì)比

  結(jié)語(yǔ)

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

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

美國(guó)紐約州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)發(fā)布 2022 年第三季度業(yè)績(jī)報(bào)告。 IBM 董事長(zhǎng)兼首席執(zhí)行官 Arvind Kri...

關(guān)鍵字: IBM 軟件 BSP 云平臺(tái)

成都2022年10月19日 /美通社/ -- 近期,平安養(yǎng)老險(xiǎn)積極籌備個(gè)人養(yǎng)老金的產(chǎn)品設(shè)計(jì)和系統(tǒng)開(kāi)發(fā)工作,發(fā)展多樣化的養(yǎng)老金融產(chǎn)品,推動(dòng)商業(yè)養(yǎng)老保險(xiǎn)、個(gè)人養(yǎng)老金、專屬商業(yè)養(yǎng)老保險(xiǎn)等產(chǎn)品供給。 搭養(yǎng)老政策東風(fēng) ...

關(guān)鍵字: 溫度 BSP 東風(fēng) 大眾

廣東佛山2022年10月19日 /美通社/ -- 空間是人居生活的基礎(chǔ)單元,承載著生存與活動(dòng)的最基本功能。而對(duì)于理想空間的解構(gòu)意義卻在物理性容器之外,體現(xiàn)出人們對(duì)于空間和生活深層關(guān)系的思考,同時(shí)也塑造著人與空間的新型連接...

關(guān)鍵字: 溫度 BSP 智能化 進(jìn)程

上海2022年10月19日 /美通社/ -- 10月17日晚間,安集科技披露業(yè)績(jī)預(yù)告。今年前三季度,公司預(yù)計(jì)實(shí)現(xiàn)營(yíng)業(yè)收入7.54億元至8.33億元,同比增長(zhǎng)60.24%至77.03%;歸母凈利潤(rùn)預(yù)計(jì)為1.73億...

關(guān)鍵字: 電子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市經(jīng)濟(jì)和信息化局發(fā)布2022年度第一批北京市市級(jí)企業(yè)技術(shù)中心創(chuàng)建名單的通知,諾誠(chéng)健華正式獲得"北京市企業(yè)技術(shù)中心"認(rèn)定。 北京市企業(yè)技...

關(guān)鍵字: BSP ARMA COM 代碼

北京2022年10月18日 /美通社/ -- 10月14日,國(guó)際數(shù)據(jù)公司(IDC)發(fā)布《2022Q2中國(guó)軟件定義存儲(chǔ)及超融合市場(chǎng)研究報(bào)告》,報(bào)告顯示:2022年上半年浪潮超融合銷售額同比增長(zhǎng)59.4%,近5倍于...

關(guān)鍵字: IDC BSP 數(shù)字化 數(shù)據(jù)中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都銀行集團(tuán)成立60周年的紀(jì)念日。趁著首都銀行集團(tuán)成立60周年與首都銀行(中國(guó))在華深耕經(jīng)營(yíng)12年的“大日子”,圍繞作為外資金融機(jī)構(gòu)對(duì)在華戰(zhàn)略的構(gòu)想和業(yè)...

關(guān)鍵字: 數(shù)字化 BSP 供應(yīng)鏈 控制

東京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式會(huì)社(NIPPON EXPRESS HOLDINGS, INC.)旗下集團(tuán)公司上海通運(yùn)國(guó)際物流有限公司(Nipp...

關(guān)鍵字: 溫控 精密儀器 半導(dǎo)體制造 BSP

廣州2022年10月18日 /美通社/ -- 10月15日,第 132 屆中國(guó)進(jìn)出口商品交易會(huì)("廣交會(huì)")于"云端"開(kāi)幕。本屆廣交會(huì)上高新技術(shù)企業(yè)云集,展出的智能產(chǎn)品超過(guò)140,...

關(guān)鍵字: 中國(guó)智造 BSP 手機(jī) CAN

要問(wèn)機(jī)器人公司哪家強(qiáng),波士頓動(dòng)力絕對(duì)是其中的佼佼者。近來(lái)年該公司在機(jī)器人研發(fā)方面獲得的一些成果令人印象深刻,比如其開(kāi)發(fā)的機(jī)器人會(huì)后空翻,自主爬樓梯等。這不,波士頓動(dòng)力又發(fā)布了其機(jī)器人組團(tuán)跳男團(tuán)舞的新視頻,表演的機(jī)器人包括...

關(guān)鍵字: 機(jī)器人 BSP 工業(yè)機(jī)器人 現(xiàn)代汽車

消費(fèi)電子

95867 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉