新闻中心

EEPW首页 > 消费电子 > 设计应用 > 电子纸阅读器的PPT格式引擎设计和优化

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

作者:时间:2011-03-10来源:网络收藏

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

c.JPG
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所示。

d.JPG
3.5 图形渲染
负责图形绘制和组合图形坐标空间转换。本解析引擎不依赖于图形服务器,拥有专用的矢量图形绘制库。能够将图形直接绘制到页面位图中,与物理显示无关。
绘制直线,曲线和多边形填充分别采用了经典的Breshman算法,三次贝塞尔曲线画线算法,列扫描多边形填充算法3种成熟算法。为了提高了运算效率,对于浮点数作取整运算。经验证,在浮点数运算效率不佳的嵌入式系统上也能到达较好的渲染效果。
组合图形(Drawing Group)包含了一组图形对象,采用了Dom结构。子结点使用相对于父结点的坐标空间。因此,图形处理能够递归地进行坐标转化,并把图形绘制在其父结点的坐标空间内。

矢量控制相关文章:矢量控制原理


关键词: 视频 音频

评论


相关推荐

技术专区

关闭