电子纸阅读器的PPT格式引擎设计和优化

发布者:brian808090最新更新时间:2011-06-14 关键字:电子纸  PPT格式  OOXML 手机看文章 扫描二维码
随时随地手机看文章

  根据目前主流电子纸阅读器硬件资源有限、要求功耗小、灰阶显示等特点,提出了一种PPT格式文档解析方案。聚焦于满足人们对于移动阅读的基本需求,选取了文字、图形、图像作为基本解析对象,设计并实现了一个适合电子纸阅读器的PPT格式引擎,并进行了多重优化以提升性能体验,在低端的硬件配置和有限的运行时间内完成格式解析。

  引言

  PPT(Microsoft Office PowerPoint),是微软公司开发的编辑演示文稿的办公软件。该格式相对于txt、chm等,信息量更大,结构也更加复杂,导致其对硬件配置要求较高。然而,目前嵌入式终端配置低,因此本文聚焦于满足人们对于移动阅读的基本需求,暂不考虑视频、音频和外部对象等特性支持。本解析器在开源环境下,基于 Linux操作系统实现。基于嵌入式多格式解析引擎系统架构和中间格式理论,具有平台无关性、高效性的特点。

  1 系统特点

  该解析引擎兼容版本多,包括Microsoft PowerPoint 972003等版本。下面介绍一下系统特点。

  ① 不依赖于图形服务器。解析引擎拥有自己的专用的矢量图形绘制器。不依赖于特定的底层图形服务器。例如,我们的实验系统的图形服务器由nanoX改为Qt时,该解析引擎不需要修改。

  ② 高效性。对于一般的格式解析器,样本文件越大,打开速度越慢,而该解析器可以做到文件打开速度与文件大小基本无关。

  ③ 平台无关性。解析引擎并不是直接在显示设备上绘制图形和文字,而是把各种格式元素绘制在一段内存区域上,然后把这段内存数据映射到物理设备上。即输入是文件,输出是屏幕大小的位图。

  ④ 配置灵活。解析引擎的模块化设计便于移植和裁剪。所有数据类型采用宏定义,便于根据平台配置。

  ⑤ 支持手写批注。 解析器只做内容抽取和显示,不支持编辑和保存,支持手写批注。手写批注不改变原文档,而是新建xml描述文件。

  ⑥ 个性化交互方式。利用电子纸控制器的16通道和黑白刷,实现动画切换效果。

  2 格式分析

  2.1 总体结构

  Microsoft PowerPoint使用OLE2组合文档存储。和文件系统结构类似,它包含容器和流,并组成的树状结构。各种流独立存储,便于载入和快速保存。如表1所列,PPT文件包括以下5种流式数据。

表1 PowerPoint文件结构

 

  PPT存储格式采用十六进制,small endian字节序,分为若干个大数据块和小数据块,大小分别为512字节和64字节,第一个数据块为初始数据块,存储了数据块索引表。

  2.2 图像流结构

  PPT中包含矩形、图片框、文本框、线、椭圆等204种形式的元素,统称为Shape。每种Shape有一个唯一的实例码与之相应。

  多媒体数据的层次结构如图1所示。

 

图1 容器层次结构

  Drawing GROUP为组合图形存储结构,它包含了一组图形对象。Drawing为图形存储结构,Shape和Solver为两组图形属性元数据。Blip Store为插入的图片对象。Property Table为缺省属性表。Client Data为一组元数据信息,包含坐标,文本和OLE数据和用户自定义属性表。[page]

  属性项采用idvalue结构,自定义属性表的长度可变。各项属性相对位置不变。自定义属性表中出现的属性将覆盖默认属性。

  Drawing为一组描述来管理容器中的图形对象的规则集合,包括对齐方式、标尺等。

  3 软件设计

  本设计以嵌入式多格式解析引擎系统架构为基础。解析引擎是负责对源文件进行解析,生成中间格式需要的数据的模块。

  解析引擎的内部架构如图2所示。

 

图2 解析引擎架构

  3.1 语法分析器

  语法分析器为输入流数据,输出为结构化数据供各模块使用。PPT格式的记录采用idvalue结构,id和value占据规定的字节数,语法分析器负责识别记录id,并抽取value。

        3.2 导航器

  负责把数据从文件系统调入内存,并把I/O流转换成结构化数据,即用DOM结构描述文件的整体架构。

  该模块具有页面导航作用。PPT使用OLE2组合文档存储。容器和结点只存储粗粒度索引信息,对于不需要立即显示的页,只存储容器结点,暂时不展开,需要显示该页时,再从该结点向下展开,从而减少了不必要的文件读取。这种分层装载方法,提高了打开速度,并且对于大文档,进入速度只和第一页的复杂程度有关。

  此外,为了更好地索引,建立了一系列的链表结构。如:数据块索引表、根目录表、图像数据流链表、用户反向链表、文本链、母板链表等。


  文件长度、版本号、进行文件合法性等信息通过读取初始化块获得。除此之外还需要初始化几个重要的全局链表。

  ① 数据块索引表。文件以块为单位存储,且不连续,数据所属块号和块内偏移量可以方便地进行寻址操作。

  ② 构建根目录表,包括存储内容的起始块号和大小,用于寻址操作。读操作只在当前块范围内,当超出当前块可读长度时,通过查询块索引表找到下一块的块号。

  ③ 构建图像数据流链表。

  ④ 构建用户反向链表。为了快速保存,PPT采用增量式存储,即每次保存时,直接生成页面副本并追加到文档末尾。增量式存储的缺点是冗余量大。例如,有的文件只有几页,但文件大小几MB甚至几十MB,文件实际大小和修改次数有关。

  ⑤ 幻灯片文本链,流信息到排版元数据独立存储。纯文本存储在文本流中,存储以及排版信息存储在页数据区。页数据区还存储了纯文本在文本流中的位置。

  ⑥ 母板链表,母板一般作为背景,以页为单位顺次存储。因为电子纸显示灰度图像,背景和正文叠加以后看不清楚,用户阅读时可以去除背景,而不会影响到文件本身。

  增量式存储的基本思想是:每次修改产生一个用户信息,存储修改的块号,当前用户信息反向指向上一个用户信息,从而构成一个用户反向链。遍历用户反向链可以找到最后一次修改。冗余数据可以直接丢弃。

  3.3 布局管理器

  负责屏幕划分和图层管理,布局管理器划为不同的矩形区域,并标识该区域的类型。然后分别将解析得到的文字,图形,图像缓冲区映射到屏幕位图上。

  3.4 文字处理器

  PPT格式的文字种类和布局相对复杂,可以分为正文和图形内嵌文字两种,各级标题正文的布局也有要求。文字处理器针对各种文本的排版格式多样性进行解析和布局,完整再现原文档的版式信息。

  文字处理过程分为预排版和页面排版两部分,预排版负责填充字模缓冲区,抽取字符编码和字体信息作为FreeType的输入,用生成的单个字模位图填充缓冲区。然后结合标尺和对其方式把映射到页面显示缓冲区。文字解析原理图如图3所示。

 

图3 文字解析原理图[page]

  3.5 图形渲染

  负责图形绘制和组合图形坐标空间转换。本解析引擎不依赖于图形服务器,拥有专用的矢量图形绘制库。能够将图形直接绘制到页面位图中,与物理显示无关。

  绘制直线,曲线和多边形填充分别采用了经典的Breshman算法,三次贝塞尔曲线画线算法,列扫描多边形填充算法3种成熟算法。为了提高了运算效率,对于浮点数作取整运算。经验证,在浮点数运算效率不佳的嵌入式系统上也能到达较好的渲染效果。

  组合图形(Drawing GROUP)包含了一组图形对象,采用了Dom结构。子结点使用相对于父结点的坐标空间。因此,图形处理能够递归地进行坐标转化,并把图形绘制在其父结点的坐标空间内。

  3.6 图像渲染

  图像渲染器采用Cximage图像库把图像数据重构,并进一步转化成灰度图像放入屏幕缓冲区。

  文件中图像和多媒体信息存储在图像流中,通过FBSE (File Blip Store Entry)描述。于是定义了结构体:

  typedef struct _FBSE{

  MSOBLIPTYPE imageType;

  ULONG id;

  ULONG size;

  ULONG cRef;

  ULONG offsetInDelayStream;

  }FBSE;

  4 优化提速

  用户总是希望系统越快越好,但是嵌入式系统受主频较低、内存较小的限制,对于一些计算量比较大的工作,很难达到理想的效果。于是本解析引擎在应用了多页面缓冲机制和异步并行机制的优化策略。

  各渲染器异步并行地工作,第一个完成任务的渲染器立即把数据提交给屏幕显示。电子纸整屏刷新速度为1 s,利用这个刷屏间歇,其余渲染器完成任务,再采用局部刷屏的方式把增量部分刷新到屏幕上。这样整体速度取决于渲染速度最慢的那一个。此外,异步执行不阻塞输入,如果这时用户翻页,未完成解析线程会被终止,并建立新线程来解析下一页。例如:打开一页图文混排的幻灯片,打开时先显示文字,随后显示出图像,并且不会阻塞用户输入,假如用户快速连续翻若干页后停止,中间页解析会被终止。

  5 验证

  在主频200 MHz的电子纸阅读器上实现效果如图4所示。

 

图4 在电子纸阅读器上解析效果图

随机选择60个样本文件,进入书籍最短时间2.82 s,最长11.92 s.如图5所示。

 

图5 在电子纸阅读器上解析速度统计图[page]

  解析引擎采用分层装载方法,提高了打开书籍速度,这里选择了3个第一页完全相同但是大小差别较大的PPT文档。实验表明,虽然文档大小差别很大,但是打开速度差异不大。如表2所列。


表2 启动速度对比

 

  结语

  由于电子纸的特性和嵌入式设备的资源限制,本文仅仅聚焦在常用元素的解析上,如文字、图形、图像、表格等,而对于嵌入对象(如视频、音频等)没有支持。对于未知元素的解析将成为未来的主要工作。本文模块化的设计架构,有利于下一步进行功能扩展,另外,随着Office开放文档格式(OOXML)的诞生并成为国际标准,未来将开发支持OOXML的嵌入式解析器。

 

 

 

关键字:电子纸  PPT格式  OOXML 引用地址:电子纸阅读器的PPT格式引擎设计和优化

上一篇:基于AU7845单芯片的无机芯迷你音响方案设计
下一篇:基于DSP和MAX1420的高速数据采集系统设计

推荐阅读最新更新时间:2024-05-02 21:26

电子市场再掀高潮 元太2.15亿美元收购E Ink
台湾地区电子纸显示器(EPD)模块供货商暨中小尺寸LCD制造商元太科技(PVI),宣布与美国电子纸显示材料领导供货商E Ink签署并购协议。元太将以约合2.15亿美元的并购价格,取得E Ink全部股权以及电子纸显示器材料的关键技术及专利;合并后的新公司将扩大产能,并持续发展电子纸技术,以期研发出更轻便、环保、节能省电,且更加适合阅读的电子纸产品。 根据市场研究机构Display Search的预测,EPD模块将在2013年达到超过30亿美元的市场规模。尤其在彩色电子纸与柔性电子纸陆续推出后,将因未来电子教科书、电子报纸、电子杂志等多元化的应用,进一步快速成长。目前全球90%以上的电子纸均采用电泳式显示技术,而E In
[手机便携]
电子新用途:书桌手表应有尽有
E Ink元太科技携手台北国际书展 实践绿色阅读 全球电子纸领导厂商E Ink元太科技,长期致力于E Ink电子纸化生活的推广,此次适逢台北国际书展迈入第二十年,有别于过去以国家为主题,世贸一馆特别以「绿色阅读」为大会主轴,邀请E Ink元太科技于书展上运用其环保节能的E Ink电子纸技术,展示以健康绿色为主的电子书籍。更秀出首次在台亮相的电子纸书桌、全球限量的Seiko(精工)电子纸手表、永丰银行电子纸信用卡兼金融卡等,在在展现E Ink元太科技深耕绿色阅读与电子纸应用的实力。 一张看似普通的桌子,仔细一看,桌面竟然是电子纸荧幕!E Ink元太科技最新的概念性产品「电子纸书桌」首次在台登场,于绿色阅读区的「名人推荐
[嵌入式]
<font color='red'>电子</font><font color='red'>纸</font>新用途:书桌手表应有尽有
ARM9+Linux下电子驱动的设计与实现
为实现在ARM9+Linux系统下对电子纸的快速、有效控制,设计了一种基于电子纸显示控制芯片(GD6210E)的电子纸驱动。根据S3C2440 ARM9处理器和GD6210E的接口特点,利用S3C2440的GPIO口来扩展GD6210E,最后利用Linux为显示设备提供的帧缓冲专用接口编写驱动程序,完成电子纸的驱动。该驱动有利于电子纸的普及应用。 电子纸可以实现显示内容的重写,具有对比度高、重量轻、可以适当弯曲,且在断电的情况下,能保持原有的显示内容等优点。Linux是一种具有开放性、多用户、多任务、设备独立性、系统可靠安全、良好移植性等优点的操作系统 ,其内核可根据具体的运行平台进行适当的裁剪,这对于资源有限的嵌入式系统至关重
[单片机]
ARM9+Linux下<font color='red'>电子</font><font color='red'>纸</font>驱动的设计与实现
基于WinCE5.0的电子系统设计
引言 在当今的桌面和 嵌入式 两个系统中,阴极射线管(CRT)技术和液晶显示( LCD )技术是屏幕印刷的两大主流技术。这两大技术有一个共同的特点——需要动态刷新整个屏幕来维持显示,即光栅动态扫描。这种技术使得阴极射线管和液晶显示需要不断地消耗电能维持显示,因此,它们并不适合移动嵌入式阅读应用。 电子 纸的出现改变了这种状况。电子纸,也可以称为“像纸一样薄、可擦写的 显示器 ”,是专门用于阅读的电子装置;其对比度较高、文字清晰、支持屏幕手写、耗电量极小,并且能够轻轻弯曲,也被业内人士称为“电子纸手写 平板电脑 ”。目前,拥有电子纸技术的公司主要有E-ink、东芝、摩托罗拉、LBM等公司。其中E-ink公司的电子纸技术比较成熟,已
[嵌入式]
电子显示控制器S1D13521的人机交互设计
  1 概 述   电子纸显示屏是一种全新显示屏,具有功耗低、阅读舒适等优点。作为一种新型显示屏技术,电子纸显示屏催生了众多创新性移动应用,比如电子书、电子报纸、电子显示牌等。S1D13521是Epson公司和E Ink公司2008年联合推出的一款电子纸显示控制器,具有多种全新特性,为E Ink电子纸显示屏提供了强大的技术支持。如何充分利用S1D13521的特性,为新一代电子纸显示屏提供更佳的人机交互体验已成为一个有待研究与解决的问题。本文以津科V30型手持阅读器为实例,介绍一些实际开发中的设计经验和实现技术。   2 S1D13521及开发平台   2.1 S1D13521简介   S1D13521提供多种主机处
[嵌入式]
子公司E Ink失火,元太称出货不受影响
  国际电子商情讯 (PVI)美国子公司E Ink位于麻州剑桥市的实验室,于美东时间4月23日中午发生火灾,所幸无人员伤亡或任何重大损失。此一事件并未造成生产线延误, 对于客户订单出货状况,不会有任何影响。   根据元太的说法,此次引发火灾的地区为实验室的一小部分,当时有数名工作人员正进行化学物料的实验工作,起火后自动洒水系统激活,随后消防队员抵达灭火,火势随即全部扑灭 ,起火原因正由消防队及公司进行确认中。   此次引发火灾的地区为实验室的一小部分,火势并未波及重要实验区或生产线、原料制作区,所以,对于生产、制造并不会有任何影响,也不会耽误任何出货状况。财务损失方面,由于影响范围并不大,损失并不严重,主要为厂区的清理须花费较
[手机便携]
有望取代传统书籍,电书前途被看好
  人类文明的传承是和文字的记载与传播密不可分的,古代中国的四大发明其中就有二个与之有关。一个是东汉的造纸术,另外一个则是宋代的印刷术。造出来的纸张用来记载文字,而印刷术则可以使得这些文字流传的更为久远。纸的“进化”过程,从最初的甲骨到竹简再到纸,都是因为后者比前者更容易携带和保存而被人类所选择使用。随着数字化时代越发的深入,印刷术和造纸术这二种人类使用了几百年和上千年的技术却很有可能被近二年出现的一种新兴的电子产品所替代,那就是电纸书。      什么是电纸书呢?它是一种采用电子纸显示屏幕的新式手持阅读器,可以阅读目前电脑上绝大部分格式的电子书比如PDF,CHM,TXT等。所以与传统的书籍相比,它更加的环保和节省空间。存储在其内
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved