搜索
您的当前位置:首页正文

嵌入式Linux软件平台系统设计说明书【范本模板】

来源:独旅网
嵌入式Linux软件平台系统设计说明书

面向行业手持设备的嵌入式Linux软件平台项目

嵌入式Linux软件平台系统设计说明书

编写者: CY

嵌入式Linux软件平台系统设计说明书

版本说明

日期 版本号 发布说明 作者 批准人 签字

岗位

嵌入式Linux软件平台系统设计说明书

目 录

1

引言 ............................................................................... 1 1。1 编写目的 ........................................................................ 1 1。2 背景 ............................................................................ 1 1。3 基线 ............................................................................ 1 1.4 范围 ............................................................................ 1 1。5 定义 ............................................................................ 1 1.6 参考资料 ........................................................................ 1 2

总体设计 ........................................................................... 1 2。1 概述 ............................................................................ 1 2.2 设计思想 ........................................................................ 3 2.3 基本处理流程 .................................................................... 5 2.4 产品的系统体系结构 .............................................................. 8 2.5 功能需求与系统单元的关系 ....................................................... 10 2。6 人工处理过程 ................................................................... 11 3

系统主要数据结构说明 .............................................................. 11 3.1 数据结构 ....................................................................... 11 3。2 数据结构与系统单元的关系 ....................................................... 16 4

接口设计 .......................................................................... 16 4。1 外部接口 ....................................................................... 16 4.2 内部接口 ....................................................................... 17 5

运行设计 .......................................................................... 17 5。1 系统初始化 ..................................................................... 17 5。2 运行控制 ....................................................................... 17 5.3 运行结束 ....................................................................... 17 6

系统出错处理设计 .................................................................. 17 6.1 出错信息 ....................................................................... 17 6.2 补救措施 ....................................................................... 17 7

系统维护设计 ...................................................................... 18 7.1 检测点的设计 ................................................................... 18

嵌入式Linux软件平台系统设计说明书

7.2检测专用模块的设计 ............................................................ 18

8

尚待解决的问题 .................................................................... 18

附录A:嵌入式中文字库关键技术和算法 .................................................... 19

GLYPH的矢量表示 ..................................................................... 19

计算转换系数SCALE ................................................................... 20 附录B: 嵌入式中文字库数据流程图 ...................................................... 21 附录C :全屏手写系统结构图 ............................................................ 22 附录D:多媒体软件移植系统流程图 ....................................................... 23

嵌入式Linux软件平台系统设计说明书

1 引言

1.1 编写目的

本文档是为保证“面向行业手持设备的嵌入式linux软件平台”项目在整个开发过程中的完整性、可追溯性,并保证软件产品与《面向行业手持设备的嵌入式Linux软件平台项目系统需求规格说明书》保持一致性而编写的。

预期读者为项目相关开发人员、项目管理人员和SCM、SQA人员、客户代表.

1.2 背景

项目名称:面向行业手持设备的嵌入式Linux软件平台 用户: 无线手持通信设备厂商

1.3 基线

《面向行业手持设备的嵌入式Linux软件平台项目系统需求规格说明书》

1.4 范围

本软件结构设计说明书所涉及的内容范围包括总体的结构设计,系统单元的结构设计,系统主要数据结构说明,接口设计,运行设计,系统出错处理设计和维护设计。

1.5 定义

无。

1.6 参考资料

1) 《面向行业手持设备的嵌入式Linux软件平台项目系统需求规格说明书》

《面向行业手持设备的嵌入式Linux开发平台项目总体开发计划》 2) 本文件中引用的其他文献、资料以及软件开发标准。

2 总体设计

2.1 概述

2.1.1

功能描述

本产品要实现的功能包括:  嵌入式Linux系统  目标系统的软件开发环境

 对运行平台提供的各种接口,提供稳定的驱动程序  基于QT/embedded的图形用户界面  中文图形界面

 中英文手写输入、键盘输入

1

嵌入式Linux软件平台系统设计说明书

 多媒体播放器  个人助理套件  英汉词典  浏览器

 面向交通、物流行业的应用编程接口

本参考平台包括开发包和运行包.要求参考平台具备高度的可配置性,方便开发人员根据其需要在参考平台的基础上进行添加、裁减和上层开发,快速形成产品。

2.1.2 运行环境

开发平台的运行环境:推荐采用PIII650以上CPU,内存大于128M,硬盘空间大于4G;推荐完全安装普华Linux 3.0,并安装开发包和目标系统源代码。

运行包硬件环境:

硬件采用PXA250开发板,规格如下:

     

socketed processor for easy upgrades 64 MBytes SDRAM 32 MBytes Boot ROM 32 MBytes Flash Memory 1 MByte SRAM

one Intel® SA—1111® Companion Chip, which provides:

- one PCMCIA slot — one Compact Flash slot — one USB Host port

— PS/2 keyboard and mouse support

 

Standard Microsystems LAN91C96* Ethernet controller touch—screen panel controllers:

— Philips UCB 1400* — Burr Brown ADS7846*

audio CODECs with MIC, LINE IN, and HEADPHONE connectors:

— Philips UCB 1400 — Cirrus CS4201*

Sharp LM8V31 LCD panel, with support for other LCD types

2

嵌入式Linux软件平台系统设计说明书

         

one USB Client port

pulse width modulation control one infrared (IrDA) transceiver

Full Function and Bluetooth UART serial ports

one slot for one Secure Digital memory card or MultiMediaCard I2C bus communications logic analyzer connections

one expansion-card slot for custom development

isolatable processor core voltage for precise power measurements

eight 7-segment LED digits, eight discrete LEDs, eight discrete switches, and two hexadecimal—encoding switches for use by application software

2.2 设计思想 2.2.1 系统构思

本项目向用户提供参考平台包含开发包和运行包,在系统设计中因此也分为开发平台和运行平台,其中 开发平台系统构思如图1所示,运行平台构思如图2所示.

PXA250的 Linux核心和glibc库 Bash源代码 Qpe源代码 目标系统源码

目标系统交叉编译工 目标系统裁减工具 目标系统打包工具 目标系统下载工具 目标系统远程调试工PXA开发包

标准Linux系统

3

PC环境

图1 开发平台系统构思

嵌入式Linux软件平台系统设计说明书

中文终端 文件管理器 邮件客户端 嵌入式文本浏览器 嵌入式GUI 嵌入式 多媒体套件 嵌入式矢量字库 全屏手写识别输入法 基本库和扩展库支持 (C库、网络、多媒体(IPP)、图形) Linux核心 串口驱动 USB驱动 音频I/O驱动 背光灯驱动 LCD驱动 网卡驱动 触摸屏、键盘、鼠标驱动

图2 运行平台系统构思 2.2.2 关键技术与算法

关键技术:

嵌入式Linux操作系统:

主要是基于IntePXA 250 硬件平台进行嵌入式Linux系统优化,保证系统具备良好的可移植性和可扩展性,此过程主要涉及的技术包括:  系统可剪裁可配置技术;  支持无硬盘及闪存工作方式技术;  JFFS2 文件系统技术;  支持随时直接关机;

 支持运行时核心模块动态加载机制; 嵌入式图形用户界面:

 支持基于Framebuffer的GUI系统;

 支持GIF、JPEG、XPM、PNG、BMP等常用图像格式;

4

嵌入式Linux软件平台系统设计说明书

 提供易用的、可定制的、功能完善的人机交互界面;

 提供已预制的应用模块接口,提供对应用程序添加的扩展机制等;

 图形界面支持完整的中文机制及环境;

 为提高用户的开发效率,提供丰富的控件集和开发工具; 面向行业类的应用编程接口库:

 提供具体行业的API函数的实现机制;  实现不同系统平台间的通讯;

 使开发出的API函数能够让开发人员较方便地实现上层应用程序与底层硬件之间的通讯; 嵌入式JAVA:

 嵌入式Java虚拟机;  提供Java处理程序;

 支持Java applet和Java application;  提供Java工具;  提供Java运行环境; 嵌入式中文信息处理子系统:  全面的中文显示支持;  提供多种中文输入法;  嵌入式中文字体;

 支持嵌入式手写输入;

本项目目的是提供系统平台,所以具体算法主要由合作厂商提供相关接口,本项目设计的主要算法有:

 基于IPP的多媒体编解码算法

 矢量字体的轮廓描绘、填充、平滑算法(算法分析见附录A)

 高效、准确的手写笔迹匹配识别算法

2.2.3 关键数据结构

2.3 基本处理流程

(1) 系统流程图

开发平台系统流程如图3所示:

5

嵌入式Linux软件平台系统设计说明书

根据开发需要对参考平台进行配置 根据配置对源代码进行编译 生成动态库或静态库 链接库文件,形成可执行代码 N 判断是否需要裁减 Y 根据需要进行裁减 N 判断是否需要打包 Y 按配置要求对相关文件进行打包 写入目标系统

图3 开发平台系统流程图 6

嵌入式Linux软件平台系统设计说明书

运行平台系统流程图如图4所示。

加载图形界面(QPE)

7

开发板加电 初始化设备 启动init进程 挂装文件系统 加载busybox 上层应用(记事本,媒体播放,关机等) 退出运行环境 关机

图4 运行平台系统流程图 嵌入式Linux软件平台系统设计说明书

(2) 数据流程图

本项目提供系统平台,因此项目没有核心数据流程,相关模块的数据流程见附录B。

2.4 产品的系统体系结构

系统单元如下例表所示:

单元名称 开发平台包 标识符 kfptb 功能 交叉编译源代码,并打包下载到PXA开发板 设备/接口驱动程序 qdcx 访问设备/接口的IO端口/寄存器/配置空间,进行设备检测和参数设定,并初始化设备。处理中断请求,完成数据读写操作检测错误和处理异常 中软嵌入式Linux操作系统 czxt 嵌入式Linux核心、基本库和扩展库(C库、网络、多媒体、图形库) 嵌入式中文GUI zwgui QPE图形环境(窗口管理、中文字库、中文手写) 上层应用 scyy QPE下的上层应用程序(包含个人助理套件、多媒体应用等)

2.4.1 系统层次结构

运行平台系统层次结构如图5所示:

8

嵌入式Linux软件平台系统设计说明书

上层应用(关键是多媒体应用) 嵌入式中文GUI 全屏中文手写 嵌入式中文字库 中软嵌入式Linux操作系统 设备/接口驱动程序 图5 运行平台系统层次结构图 2.4.2 系统单元设计 开发平台:

将现有的交叉编译工具、调试器、软件包下载工具等整合在一起,并增加裁减、打包工具。 设备/接口驱动程序:

在现有的相关驱动程序源代码基础上,对PS/2,USB, 以太网口,LCD以及音频口进行测试,并实现x86平台到PXA平台的移植. 中软嵌入式Linux操作系统:

使用开发平台提供的交叉编译工具编译基于PXA平台的嵌入式Linux核心和基本库以及启动程序,并使用开发平台的相关工具下载到开发板上。 嵌入式中文GUI:

开放源码的图形环境QPE的修改和汉化(另包括全屏中文手写单元和嵌入式中文字库单元),然后交叉编译修改后的QPE源码并下载到开发板上(全屏中文手写流程图见附录C) 上层应用:

修改一些已有源码的应用并交叉编译下载到开发板上,关键是实现一个基于Intel IPP的多媒体播放器,主要方法是在分析QPE多媒体软件底层接口的基础上,移植替换底层解码库.(多媒体解码流程图见附录D)

9

嵌入式Linux软件平台系统设计说明书

2.5 功能需求与系统单元的关系

开发平台:

 可以在PC机上交叉编译PXA的应用程序  可对生成的PXA目标代码进行裁减  可对生成的系统进行打包集成

 可以将软件包下载到PXA开发板,并写入Flash  提供minicom,可通过串口进行调试

 可在PXA开发板上通过gdb/gdbserver调试二进制代码 设备/接口驱动程序:

 能使用PS2接口的键盘和鼠标  能通过USB口使用外接设备  能使用10M 以太网接口  能使用LCD和触摸屏

 能使用外接的音频输入输出设备 中软嵌入式Linux操作系统:

 在开发板上Linux核心正常启动  在开发板上能使用Linux基本指令

嵌入式中文GUI:

 完善稳定的QPE图形界面  全面汉化处理  手写识别率高  中文字体美观、清晰  字符显示能够无级缩放 上层应用:

 嵌入式中文套件  邮件客户端

10

嵌入式Linux软件平台系统设计说明书

 多媒体应用软件(能正常播放MPEG4和MP3文件,多媒体文件播放流畅,播放速率至少达

到25帧/秒)

2.6 人工处理过程

开发平台:

根据目标系统需求,修改配置文件或Makefile

软件的配置、编译过程,包括configure、make、make install等 软件裁剪、打包和下载过程。

运行平台: 无。

3 系统主要数据结构说明

3.1 数据结构

本项目主要是提供一个系统平台,因此没有全局的数据结构,系统单元的数据结构如下: a) 嵌入式中文字库主要数据结构

FT_Outline_

typedef struct FT_Outline_ {

short n_contours; /* number of contours in glyph */ short n_points; /* number of points in the glyph */ FT_Vector* points; /* the outline’s points */ char* tags; /* the points flags */ short* contours; /* the contour end points */ int flags; /* outline masks */ } FT_Outline;

n_contours:表示在一个glyph outline中所有的字形轮廓的数目 n_points:表示在一个glyph outline的矢量表示中,所有坐标点的数目。

Points:一个指向有`n_points' 个FT_Vector元素的数组的指针,给出了outline's 点坐标 Tags:一个指向有`n_points’ 个char元素的数组的指针,给出每个outline point的类型。 Contours: 一个`n_contours' 个短整型元素的数组,给出了每个contour的结束点的索引。 Flags:一系列bit flags用来表示outline的特征。

11

嵌入式Linux软件平台系统设计说明书

b) 全屏中文手写主要数据结构 class QMatcher{ //识别库标准接口类 public: };

struct Q_PACKED QIMPenGlyphLink//每个点的坐标结构 {

signed char dx; signed char dy; };

class QIMPenStroke//记录每一个笔画中的各个点 { public:

QIMPenStroke();//初始化 void clear();//清空

bool isEmpty();//判断是否为空

int length();//返回点的个数

const QArrayQPoint startingPoint();//返回开始点 void beginInput( QPoint p );//开始记录 bool addPoint( QPoint p );//把点加入links数组

void endInput();//某个笔画结束 protected:

12

QMatcher (); //初始化 virtual ~ QMatcher();//析构

virtual void setType();//设置识别类型 virtual void setSpeed();//设置识别速度 virtual unsigned long getType();//获得识别类型 virtual short getSpeed();//获得识别速度 virtual int Recognize();//识别处理

virtual struct rangelist *TypeRange();//获得识别类型表列

嵌入式Linux软件平台系统设计说明书

QArray〈QIMPenGlyphLink〉 links;//某个笔画的各个点的坐标 };

typedef QList(1) mp3解码所用到的结构

typedef struct {

/****************************************/

1. ippsUnpackFrameHeader_MP3

***********************************/

IppMP3FrameHeader FrameHdr; /* MP3 帧头信息*/ Ipp8u HdrBuf[HDR_BUF_SIZE]; Ipp8u *pHdrBuf;

/* MP3帧头缓冲区*/ /* MP3帧头缓冲区指针*/

/*********************************** 2. ippsUnpackSideInfo_MP3

***********************************/

IppMP3SideInfo SideInfo[MAX_GRAN][MAX_CHAN]; /***********************************

3。 ippsUnpackScaleFactors_MP3_1u8s

***********************************/

表*/

int Scfsi[MAX_CHAN*SCF_BANDS];

/* Scalefactor 信息选择表 */

Ipp8s ScaleFactor[MAX_CHAN*IPP_MP3_SF_BUF_LEN]; /* mp3 scalefactors 信息

/* MP3 side信息表 */

/*******************************

4. ippsHuffmanDecode_MP3_1u32s

********************************/

Ipp32s IsXr[MAX_CHAN*IPP_MP3_GRANULE_LEN];

IMDCT流缓冲区 */

int NonZeroBound[MAX_CHAN];

IMDCT coefficient set for each channel */

/*******************************

13

/* Huffman 解码缓冲区和

/* Non-zero bounds on Huffman

嵌入式Linux软件平台系统设计说明书

5. ippsReQuantize_MP3_32s_I

********************************/ Ipp32s RequantBuf[IPP_MP3_GRANULE_LEN];

required by requantization primitive */

/*******************************

6。 ippsMDCTInv_MP3_32s

********************************/ Ipp32s Xs[MAX_CHAN*IPP_MP3_GRANULE_LEN];

/PQMF 输入缓冲区 */

/* Overlap—add buffer

/* IMDCT 输出

/* Work space buffer

Ipp32s OverlapAddBuf[MAX_CHAN*IPP_MP3_GRANULE_LEN];

required by IMDCT primitive */

int PreviousIMDCT[MAX_CHAN];

on previous granule/frame */

/*******************************

7. ippsSynthPQMF_MP3_32s16s

********************************/

Ipp32s PQMF_V_Buf[MAX_CHAN*IPP_MP3_V_BUF_LEN];

used by fast DCT—based algorithm for synthesis PQMF bank */

int PQMF_V_Indx[MAX_CHAN];

internal maintainence of the \"V” buffer */

/*******************************

Main Data Decoding Buffer

********************************/

Ipp8u MainDataBuf[MAIN_DATA_BUF_SIZE]; int MainDataEnd;

/* Number of IMDCTs computed

/* ”V\" buffer -

/* Index used by the PQMF for

/* 数据区解码缓冲区*/

/* 数据区指针 */

/******************************* Application Interface Parameters

********************************/

int Channels; int pcmLen;

14

/* 通道数量 */

/* pcm 输出缓冲长度 */

嵌入式Linux软件平台系统设计说明书

} MP3DecoderState;

(2) mpeg4解码所用到的结构

/* 视频属性结构 */ typedef enum {

IPP_VIDEO_LUMINANCE,

/* 亮度 */

/* 色度 */

IPP_VIDEO_CHROMINANCE,

IPP_VIDEO_ALPHA } IppVideoComponent;

/* Macroblock Types */ typedef enum { IPP_VIDEO_INTER

IPP_VIDEO_INTER_Q

IPP_VIDEO_INTER4V IPP_VIDEO_INTRA IPP_VIDEO_INTRA_Q

= 0,

/* Alpha component */

/* P picture or P—VOP */

= 1, /* P picture or P—VOP */ = 2, /* P picture or P—VOP */

= 3, /* I and P picture, or I— and P—VOP */ = 4, = 5, = 6,

/* I and P picture, or I— and P-VOP */ /* P picture or P-VOP(H.263)*/

/* B picture or B—VOP (MPEG—4 only) */ /* B picture or B—VOP */

IPP_VIDEO_INTER4V_Q IPP_VIDEO_DIRECT

IPP_VIDEO_INTERPOLATE = 7, IPP_VIDEO_BACKWARD IPP_VIDEO_FORWARD } IppMacroblockType;

/* 矢量动作结构 */

typedef struct _IppMotionVector { Ipp16s dx; Ipp16s dy; } IppMotionVector;

= 8, /* B picture or B—VOP */

/* B picture or B—VOP */

= 9

15

嵌入式Linux软件平台系统设计说明书

/* 透明状态结构 */ enum {

IPP_VIDEO_TRANSPARENT = 0, IPP_VIDEO_PARTIAL IPP_VIDEO_OPAQUE

= 1, = 2

};

3.2 数据结构与系统单元的关系

嵌入式中文字库单元,在对矢量字库的处理中,数据结构FT_Outline_中描述了字形轮廓的矢量表示,按照设置的字体格式,对字形轮廓的矢量表示的进行转换,并以此生成位图,输出显示字符。

全屏中文手写单元,在鼠标输入过程中,利用数据结构QIMPenStroke记录每一个笔画中的各个点,利用Qmatcher识别引擎作为调用识别库标准接口,在手写识别程序和识别库之间进行数据交换,并产生候选字列表.

多媒体软件移植单元,主要通过这些数据结构在解码过程来描述媒体文件,并在最后通过数据结构返回上层软件。

4 接口设计

4.1 外部接口 4.1.1 用户接口

开发平台:

采用命令行方式与用户交互信息.

运行平台:

用户通过手写输入或者虚拟终端同开发板交互信息。

4.1。2 其它外部接口

开发平台:

硬件接口:通过串口、并口、网口与开发板通讯。 软件接口:通过minicom、ftp、telnet与运行环境交互信息。

运行平台:

嵌入式GUI:TrollTech公司。 中英文手写输入:清华文通。

16

嵌入式Linux软件平台系统设计说明书

嵌入式中文字库:长沙东文

4.2 内部接口

运行平台系统单元接口如6所示:

上层应用 设备驱动 QPE中文图形环境 全屏中文手写 嵌入式中文字中软嵌入式Linux核心 图6 运行平台系统单元接口 5 运行设计

5.1 系统初始化

加电复位,核心引导,执行初始化脚本,建立基本运行环境,启动图形界面.

5.2 运行控制

5.3 运行结束

退出系统,关闭电源。

6 系统出错处理设计

6.1 出错信息

本项目可能出错的信息有:运行平台系统启动失败,某设备不支持等。(x86平台图形界面和应用编程中出现的错误由开发人员根据实际情况修改调试,在此不做预测)

6.2 补救措施

根据出错信息重新交叉编译Linux核心源码,写入目标系统运行。

17

嵌入式Linux软件平台系统设计说明书

7 系统维护设计

7.1 检测点的设计

7.2 检测专用模块的设计

8 尚待解决的问题

18

嵌入式Linux软件平台系统设计说明书

附录A:嵌入式中文字库关键技术和算法

glyph的矢量表示

Glyph image的矢量表示被称为outline,outline是一系列封闭的路径称之为contours组成,每个contours划定了一个glyph的外部和内部区域,它是由线段和贝塞尔曲线组成。

Contours是由一系列的points来表示,通过control points来定义曲线的弧是二次还是三次的贝塞尔曲线。因此,每一个point都对应一个tag标志,说明其是normal还是control point。 每一个contour对应下列四种情况:

图一图二

图三

由三个数组来进行描述:

图四

points数组包含了contours所有的点,tags数组包含了与每一个point相对应的flag,contours数组包含了一个contour结束点的索引.

n_points是outline所有的点数,n_contours是outline包含的contours的数量. Tag可以为以下的三种value:

FT_Curve_Tag_On:表示其所对应的point在曲线上,两个连续的FT_Curve_Tag_On的point表

示一个直线段。如图一所示。

FT_Curve_Tag_Conic:表示其所对应的point不在曲线上,但是一个control point,在两个

FT_Curve_Tag_On的point中间有一个FT_Curve_Tag_Conic的point表示了一段二次贝塞尔曲线,如

19

嵌入式Linux软件平台系统设计说明书

图二所示。

FT_Curve_Tag_Cubic:也表示所对应的point是一个control point,在两个FT_Curve_Tag_On

的point中间有两个FT_Curve_Tag_ Cubic的points表示了一段三次贝塞尔曲线,如图三所示。

如果在两个FT_Curve_Tag_On的point中间有两个FT_Curve_Tag_ Conic的points,则会在两个

off points的中间加上一个虚拟的point,形成两个二次的贝塞尔曲线。如图四所示。 计算转换系数scale

设char_width为设置的字体大小,horz_resolution为设备的分辨率 将字体大小放大64倍: char_width=char_width〈<6 将字体的大小转换成26.6格式:

dim_x = ( ( ( char_width * horz_resolution ) / 72 ) + 32 ) & —64; dim_y = ( ( ( char_height * vert_resolution ) / 72 ) + 32 ) & —64; 计算水平方向pixels per font unit,格式是16.16:

x_scale = FT_DivFix( dim_x, face—>units_per_EM )= dim_x〈<16/ face->units_per_EM; 计算垂直方向 pixels per font unit,格式是16。16: y_scale = FT_DivFix( dim_y, face->units_per_EM )

20

嵌入式Linux软件平台系统设计说明书

附录B: 嵌入式中文字库数据流程图

21

字符(Unicode) 编码将字符编码转化成GBK编码 将字符编码转换成字库索引 按字库索引读入多级结构曲线字参数 将得到的参数转换成FT_Outline格式 按照设置的字体的大小,计算转换的系数scale 如果设置字体为斜体,则变换outline的坐标 按照转换系数scale,将字型轮廓转化成像素格式 按字型轮廓描述生成位图 显示字符 嵌入式Linux软件平台系统设计说明书

附录C :全屏手写系统结构图 全屏/窗口手写切换候选字队列显手写识别功能基本设帮助系手写识别程序界面 由 系全屏手 统继 续截获所有 处窗口的鼠理 标事件 N

处理 Y 窗口手把窗口分为左右两格。当鼠标切换到另一格时,则前一个窗在窗口中显示已识别出来的MouseClick 根据输入状态,选择候选字窗口中的某个字,送入焦点窗口 设置识别速度 设置线条属性 设置识别引擎 在窗口中,提供本手写识别软件的使用方法说明,及其他相鼠标事件处理模块 在窗口设置手写时画出的线条的风格 判断MouseEvent类型 MousePress 设置表示输入状态的变量,开始输入 不处理其他类型的事件 MouseMove 根据输入状态记录鼠标移动个轨MouseRelease 改变输入状态变量的值 迹 把鼠标轨迹记录在队列里,并在屏幕上画出轨迹曲线 未写完,则继续读鼠标事整字写写完 在窗口中提供不同识别库的选项,根据选择加载相应的手写识别库,并可以在窗口中设置识别范围 把队列中的轨迹坐标送入识别库,把结果显示在候选字识别库:对输入的轨迹进行识别,结果放入一个候选字队22

嵌入式Linux软件平台系统设计说明书

附录D:多媒体软件移植系统流程图

a) mp3解码流程图

23

开始 根据信息进行Huffman解码得到原始数据流 初始化数据结构 MP3DecoderState MP3BitStream 进行综合过滤,产生IMDCT流 打开媒体文件流 从原始文件流中解析mp3头部 过滤IMDCT流,产生PCM流 在解析mp3头部的基础上解析mp3 Side信息 把PCM流提交给上层软件 在解析mp3 side信息的基础上解析scalefactors 信息 写音频设备 结束 嵌入式Linux软件平台系统设计说明书

b) mpeg解码流程图

音频视频同步处理 提交上层软件 提交上层软件 原始流解码成媒体流 原始流解码成媒体流 根据帧头信息读取音频原始流放入缓冲区 根据帧头信息读取视频原始流放入缓冲区 读取帧头信息 初始化解码需要用到的结构 开始 写音频设备和刷屏幕处理 24

因篇幅问题不能全部显示,请点此查看更多更全内容

Top