EDN China > 设计实例 > 消费电子设计 > 便携设备 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

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

单片机与嵌入式系统应用 南开大学 李庆诚 张占营?? 2011年01月24日 ?? 收藏0

???? 摘要: 根据目前主流电子纸阅读器硬件资源有限、要求功耗小、灰阶显示等特点,提出了一种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文件结构

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数据和用户自定义属性表。

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

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

  3? 软件设计

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

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

解析引擎架构

图2? 解析引擎架构

  3.1? 语法分析器

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


上一页123下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

电子纸阅读器? PPT? 引擎设计? 优化?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈