Stagefright分析

Stagefright分析
Stagefright分析

1、StageFright介绍

Androidfroyo版本多媒体引擎做了变动,新添加了stagefright框架,并且默认情况android选择stagefright,并没有完全抛弃opencore,主要是做了一个OMX层,仅仅是对opencore的omx-component部分做了引用。stagefright是在MediaPlayerService 这一层加入的,和opencore是并列的。Stagefright在Android中是以sharedlibrary的形式存在(libstagefright.so),其中的module --AwesomePlayer可用来播放video/audio。AwesomePlayer提供许多API,可以让上层的应用程序(Java/JNI)来调用。

2、StageFright数据流封装

封装流程如下图:

当调用MediaSource.start()方法后,它的内部就会开始从数据源获取数据并解析,等到缓冲区满后便停止。在AwesomePlayer里就可以调用MediaSource的read方法读取解码后的数据。

ν对于mVideoSource来说,读取的数据:在onVideoEvent回调函数中mVideoSource->read(&mVideoBuffer,&options)交给显示模块进行渲染,mVideoRenderer->render(mVideoBuffer);

ν对mAudioSource来说,在play_l函数中用mAudioPlayer对mAudioSource进行封装,然后由mAudioPlayer负责读取数据和播放控制。

3、StageFright的Parse/Decod e

经过“数据流的封装”得到的两个MediaSource,其实是两个OMXCodec。AwesomePlayer和mAudioPlayer都是从MediaSource中得到数据进行播放。AwesomePlayer得到的是最终需要渲染的原始视频数据,而mAudioPlayer读取的是最终需要播放的原始音频数据。也就是说,从OMXCodec中读到的数据已经是原始数据了。OMXCodec是怎么把数据源经过parse、decode两步以后转化成原始数据的。过程入下图所示:

从OMXCodec::Create这个构造方法开始,它的参数:

ν IOMX &omx指的是一个OMXNodeInstance对象的实例。

νMetaData&meta这个参数由MediaSource.getFormat获取得到。这个对象的主要成员就是一个KeyedVectormItems,里面存放了一些代表MediaSource格式信息的名值对。

boolν createEncoder指明这个OMXCodec是编码还是解码。

MediaSourceν&source是一个MediaExtractor。

charν *matchComponentName指定一种Codec用于生成这个OMXCodec。

先使用findMatchingCodecs寻找对应的Codec,找到以后为当前IOMX分配节点并注册事件监听器:omx->allocateNode(componentName, observer,&node)。最后,把IOMX封装进一个OMXCodec:

sp codec = new OMXCodec(

omx, node, quirks,

createEncoder, mime, componentName,

source);

这样就得到了OMXCodec。

AwesomePlayer中得到这个OMXCodec后,首先调用mVideoSource->start()进行初始化。OMXCodec初始化主要是做两件事:向OpenMAX发送开始命令。mOMX-ν>sendCommand(mNode, OMX_CommandStateSet, OMX_StateIdle)

ν调用allocateBuffers()分配两个缓冲区,存放在Vector mPortBuffers[2]中,分别用于输入和输出。

AwesomePlayer开始播放后,通过mVideoSource->read(&mVideoBuffer,&options)读取数据。mVideoSource->read(&mVideoBuffer,&options)具体是调用OMXCodec.read来读取数据。而OMXCodec.read主要分两步来实现数据的读取:

υ通过调用drainInputBuffers()对mPortBuffers[kPortIndexInput]进行填充,这一步完成parse。由OpenMAX从数据源把demux后的数据读取到输入缓冲区,作为OpenMAX的输入。

υ通过fillOutputBuffers()对mPortBuffers[kPortIndexOutput]进行填充,这一步完成decode。由OpenMAX对输入缓冲区中的数据进行

解码,然后把解码后可以显示的视频数据输出到输出缓冲区。

AwesomePlayer通过mVideoRenderer->render(mVideoBuffer)对经过parse和decode处理的数据进行渲染。一个mVideoRenderer其实就是一个包装了IOMXRenderer的AwesomeRemoteRenderer:

mVideoRenderer = new AwesomeRemoteRenderer(

mClient.interface()->createRenderer(

mISurface, component,

(OMX_COLOR_FORMATTYPE)format,

decodedWidth, decodedHeight,

mVideoWidth, mVideoHeight,

rotationDegrees));

到此,可能产生的问题:

1:视频源mVideoSource是如何由事件驱动的?mAudioPlayer怎么播放声音?

2:音视频如何同步?(答案在下面)

4、StageFright处理流程

Audioplayer为AwesomePlayer的成员,audioplayer通过callback来驱动数据的获取,awesomeplayer则是通过videoevent来驱动。二者有个共性,就是数据的获取都抽象成mSource->Read()来完成,且read内部把parser和dec绑在一起。StagefrightAV同步部分,audio完全是callback驱动数据流,video部分在onVideoEvent里会获取audio的时间戳,是传统的AV时间戳做同步。

最后,可能产生的问题:

2:OpenMAX接口是怎么扩展的?

OpenMax IL层的接口定义由若干个头文件组成,这也是实现它需要实现的内容,它们的基本描述如下所示。

OMX_Types.h:OpenMax Il的数据类型定义

OMX_Core.h:OpenMax IL核心的API

OMX_Component.h:OpenMax IL 组件相关的API

OMX_Audio.h:音频相关的常量和数据结构

OMX_IVCommon.h:图像和视频公共的常量和数据结构

OMX_Image.h:图像相关的常量和数据结构

OMX_Video.h:视频相关的常量和数据结构

OMX_Other.h:其他数据结构(包括A/V 同步)

OMX_Index.h:OpenMax IL定义的数据结构索引

OMX_ContentPipe.h:内容的管道定义

提示:OpenMax标准只有头文件,没有标准的库,设置没有定义函数接口。对于实现者,需要实现的主要是包含函数指针的结构体。

缓冲溶液及其作用机制的教案

缓冲溶液及其作用机制(教学教案) 授课人:张瑞林 授课时间:20分钟 【教学目标】: 通过缓冲溶液的定义、作用、组成及作用机制的介绍,使学生对缓冲体系有一个基本的了解,为以后学习人体缓冲体系打下理论基础。 【教学方式】:多媒体结合板书进行讲解式教学 【教学内容】: 1、缓冲溶液的定义 2、缓冲溶液的作用 3、缓冲溶液的组成 4、缓冲溶液的作用机制 【教学重点及难点】:缓冲溶液的组成、缓冲溶液的作用机制 【教学过程】: 引言: 通过医学常识我们知道正常人的血液pH范围为7.35 ~ 7.45,pH值不因代谢过程中产生酸、碱性物质而变化。为什么血液的pH的范围能保持在7.35 ~ 7.45? 知识准备: 1.弱电解质的电离平衡 2.盐类水解 一、缓冲溶液的概念(由实验引出) 缓冲溶液:能抵抗外加少量强酸或强碱,而维持pH基本不发生变化的溶液。 缓冲作用:缓冲溶液所具有的抵抗外加少量强酸或强碱的作用。 【提问】:1.缓冲溶液的组成是怎样的? 2.缓冲溶液为什么能对抗外来少量强酸、强碱或适当稀释,而保持溶液的pH几乎不变的? 二、缓冲溶液的组成和作用机制 1.缓冲溶液的组成 根据缓冲对不同,缓冲溶液分为三种: 弱酸及其盐 弱碱及其盐 多元弱酸的酸式盐与其次级盐

2.缓冲溶液的作用机制 以HAc — NaAc为例 HAc、NaAc足量 HAc + H 2O H 3 O+ + Ac- + 左移 H 3 O+抗酸成分 + 抗碱成分右移 OH- 2H 2 O 共轭酸—抗碱成分共轭碱—抗酸成分三、讨论: NH 3—NH 4 Cl的缓冲原理 四、练习: 五、小结: 概念:缓冲溶液 缓冲溶液组成和缓冲作用 缓冲原理 六、作业: 搜集资料: 缓冲溶液在日常生活中的应用。

材料分析方法课后答案(更新至第十章)

材料分析方法课后练习题参考答案 2015-1-4 BY:二专业の学渣 材料科学与工程学院

3.讨论下列各组概念的关系 答案之一 (1)同一物质的吸收谱和发射谱; 答:λk吸收〈λkβ发射〈λkα发射 (2)X射线管靶材的发射谱与其配用的滤波片的吸收谱。 答:λkβ发射(靶)〈λk吸收(滤波片)〈λkα发射(靶)。任何材料对X射线的吸收都有一个Kα线和Kβ线。如Ni 的吸收限为0.14869 nm。也就是说它对0.14869nm波长及稍短波长的X射线有强烈的吸收。而对比0.14869稍长的X射线吸收很小。Cu靶X射线:Kα=0.15418nm Kβ=0.13922nm。 (3)X射线管靶材的发射谱与被照射试样的吸收谱。 答:Z靶≤Z样品+1 或Z靶>>Z样品 X射线管靶材的发射谱稍大于被照射试样的吸收谱,或X射线管靶材的发射谱大大小于被照射试样的吸收谱。在进行衍射分析时,总希望试样对X射线应尽可能少被吸收,获得高的衍射强度和低的背底。 答案之二 1)同一物质的吸收谱和发射谱; 答:当构成物质的分子或原子受到激发而发光,产生的光谱称为发射光谱,发射光谱的谱线与组成物质的元素及其外围电子的结构有关。吸收光谱是指光通过物质被吸收后的光谱,吸收光谱则决定于物质的化学结构,与分子中的双键有关。 2)X射线管靶材的发射谱与其配用的滤波片的吸收谱。 答:可以选择λK刚好位于辐射源的Kα和Kβ之间的金属薄片作为滤光片,放在X射线源和试样之间。这时滤光片对Kβ射线强烈吸收,而对Kα吸收却少。 6、欲用Mo 靶X 射线管激发Cu 的荧光X 射线辐射,所需施加的最低管电压是多少?激发出的荧光辐射的波长是多少? 答:eVk=hc/λ Vk=6.626×10-34×2.998×108/(1.602×10-19×0.71×10-10)=17.46(kv) λ0=1.24/v(nm)=1.24/17.46(nm)=0.071(nm) 其中h为普郎克常数,其值等于6.626×10-34 e为电子电荷,等于1.602×10-19c 故需加的最低管电压应≥17.46(kv),所发射的荧光辐射波长是0.071纳米。 7、名词解释:相干散射、非相干散射、荧光辐射、吸收限、俄歇效应 答:⑴当χ射线通过物质时,物质原子的电子在电磁场的作用下将产生受迫振动,受迫振动产生交变电磁场,其频率与入射线的频率相同,这种由于散射线与入射线的波长和频率一致,位相固定,在相同方向上各散射波符合相干条件,故称为相干散射。 ⑵当χ射线经束缚力不大的电子或自由电子散射后,可以得到波长比入射χ射线长的χ射线,且波长随散射方向不同而改变,这种散射现象称为非相干散射。

材料研究与测试方法复习题答案版

材料研究与测试方法复习题答案版

复习题 一、名词解释 1、系统消光: 把由于F HKL=0而使衍射线有规律消失的现象称为系统消光。 2、X射线衍射方向: 是两种相干波的光程差是波长整数倍的方向。 3、Moseley定律:对于一定线性系的某条谱线而言其波长与原子序数平方近似成反比关系。 4、相对强度:同一衍射图中各个衍射线的绝对强度的比值。 5、积分强度:扣除背影强度后衍射峰下的累积强度。 6、明场像暗场像:用物镜光栏挡去衍射束,让透射束成像,有衍射的为暗像,无衍射的为明像,这样形成的为明场像;用物镜光栏挡去透射束和及其余衍射束,让一束强衍射束成像,则无衍射的为暗像,有衍射的为明像,这样形成的为暗场像。 7、透射电镜点分辨率、线分辨率:点分辨率表示电镜所能分辨的两个点之间的最小距离;线分辨率表示电镜所能分辨的两条线之间的最小距离。 8、厚度衬度:由于试样各部分的密度(或原子序数)和厚度不同形成的透射强度的差异; 9、衍射衬度:由于晶体薄膜内各部分满足衍射条件的程度不同形成的衍射强度的差异;10相位衬度:入射电子收到试样原子散射,得到透射波和散射波,两者振幅接近,强度差很小,两者之间引入相位差,使得透射波和合成波振幅产生较大差异,从而产生衬度。 11像差:从物面上一点散射出的电子束,不一定全部聚焦在一点,或者物面上的各点并不按比例成像于同一平面,结果图像模糊不清,或者原物的几何形状不完全相似,这种现象称为像差 球差:由于电磁透镜磁场的近轴区和远轴区对电子束的汇聚能力不同造成的 像散:由于透镜磁场不是理想的旋转对称磁场而引起的像差 色差:由于成像电子的波长(或能量)不同而引起的一种像差 12、透镜景深:在不影响透镜成像分辨本领的前提下,物平面可沿透镜轴移动的距离 13、透镜焦深:在不影响透镜成像分辨本领的前提下,像平面可沿透镜轴移动的距离 14、电子衍射:电子衍射是指当一定能量的电子束落到晶体上时,被晶体中原子散射,各散射电子波之间产生互相干涉现象。它满足劳厄方程或布拉格方程,并满足电子衍射的基本公式Lλ=Rd L是相机长度,λ为入射电子束波长,R是透射斑点与衍射斑点间的距离。 15、二次电子:二次电子是指在入射电子作用下被轰击出来并离开样品表面的原子的核外电子。

android文件功能释义

01.frameworks: 02../bin/am am命令来发送Intent 03../bin/app_process 系统进程 04../bin/audioloop 多媒体框架读取缓存内容 05../bin/bmgr adb shell命令下对Android Device所有package备份和恢复的操作。 06../bin/bootanimation 显示开机画面命令 07../bin/bu 系统backup manager 08../bin/bugreport bugreport命令,里面包含了各种log信息,大部分log也可以通过直接运行相关的程序来直接获得. bin/mpdecision 智能开核 09../bin/decoder decoder命令 10../bin/drmserver video protected 11../bin/dumpstate 状态抓取器 12../bin/dumpsys 系统抓取器 13../bin/ime ime命令所需jar包,用于查看当前话机输入法列表、设置输入法 14../bin/input input命令所需的jar包,用于模拟按键输入。 15../bin/installd android apk安装最后使用服务installd 来实现 16../bin/keystore keystore服务是加解密储存键值的服务。它主要作用就是验证应用程序与签名文件是否一致。 17../bin/keystore_cli keystore命令行 18../bin/mediaserver 是整个android中media部分的核心和灵魂。几乎所有与多媒体播放相关的内容都放在这里。包括了音视频的编解码以及显示输出 19../bin/omx_tests 多媒体框架omx接口测试 20../bin/pm 包管理器 21../bin/record 多媒体核心及插件record命令 22../bin/recordvideo 多媒体核心及插件 recordvideo命令 23../bin/screencap framebuffer service则调用截屏工具screencap来截屏。那些同步软件也是调用screencap实现截屏的 24../bin/screenshot 系统screenshot命令 25../bin/sensorservice 在Java层Sensor的状态控制由SensorService来负责 26../bin/service 配合libandroid_servers.so在话机启动时通过SystemServer以循环闭合管理的方式将各个service添加到ServiceManager中。 27../bin/servicemanager servicemanager服务的作用主要是服务管理,所谓的服务管理其实就是获取服务、检查服务、添加服务、枚举所有服务。 28../bin/sf2 多媒体核心及插件 recordvideo命令 sf2命令 29../bin/stagefright 多媒体框架 30../bin/stream 多媒体核心及插件stream命令 31../bin/surfaceflinger 触摸感应驱动

Android客户端缓存方案

概述: 客户端缓存机制是android应用开发中非常重要的一项工作,使用缓存机制不仅仅可以为用户节省3G流量,同时在用户体验方面也是非常好的选择. 缓存机制分为两部分,一部分是文字缓存,另一部分是多媒体文件缓存. 缓存文件保存策略: 1.文字缓存: 文字缓存应该分为两种,一种是更新比较频繁的区域,一种是更新不频繁的区域. 根据两者的更新频率区分它们的过期时间. 更新比较频繁的区域,它的缓存过期时间应该为应用程序内(即应用程序从打开到关闭的这段时间).这种情况会有专门的缓存文件夹存放该类缓存文件,以及专门的缓存数据库表存放信息.每次应用程序启动的时候都会先将该类数据清空. 另一种很少更新的区域,它的缓存不设置过期时间,而是提供一个按钮或者Menu可以让用户选择手动更新(如我的好友列表,我的订阅,我的分享.等等….) 具体的文字缓存划分,详见附录1. (1)通常情况下,我们与服务器交互都是采用JSON格式获取数据的,获取的JSON数 据仅仅是一段字符串,我们可以考虑将这些字符串使用文件流写入一个TXT,保存到 SD卡中,在数据库添加该数据的记录.添加数据库记录时,提供两个关键字段,一个是 请求的URL,另一个则是本地保存后的文件地址.日后每次向服务器发起请求之前都会根据URL在数据库中检索. 该方法好处:降低系统数据库数据量,不会出现数据库满了的现象. 缺点:IO操作频繁,有时代码书写有误会造成内存泄露等状况. (2)将JSON数据解析后装入List对象中,然后遍历List,将数据统统写入相应的 数据库表结构中,以后每次向服务器发起请求之前可以先在数据库中检索,如果有直接返回. 该方法好处:如果本地存在文字缓存,那么读取缓存速度快. 缺点:增加数据库数据量. 2.多媒体文件缓存 (1)图片缓存 图片的缓存可以根据当前日期,时间为名字缓存到SD卡中的指定图片缓存目录, 同时数据库中做相应记录,记录办法可以采用两个关键字段控制,一个字段是该图片 的URL地址,另一个字段是该图片的本机地址.取图片时根据URL在数据中检索, 如果没有则连接服务器下载,下载之后再服务器中作出相应记录. (2)视频文件缓存 考虑到视频文件就是动画片,每一集的大小应该超过20MB,如果边播放边下载的话 用户的3G流量负担是很大的,而且用户看完一集动画片,基本上不会再去看第二遍. 从这个状况来看,建议不要对视频文件进行下载缓存.另外也能降低程序员的编码负 担.

缓存机制

3.1、缓存策略 3.1.1、一级缓存 之前每一个数据库操作都是一个Session,那么对于Session来说本身是存在着缓存,可以保留之前的查询结果。 但是对于Session的缓存只针对于一个Session有效,那么如果现在想针对于多个Session 有作用,则必须在SessionFactory上配置缓存,那么这样的缓存称为二级缓存。 在Hiernate按ID查询有两个方法:load、get 那么下面使用以上的查询方法,查询两次 程序虽然调用了两次load方法,但是只发出了一条的查询命令,证明,第一次的查询结果被保存下来了,那么这就是一级缓存。

与之前的相比,查询了两次操作,所以此时,证明一级缓存只是针对于一个Session起作用的。但是一级缓存是无法关闭的,始终会存在。

从运行结果可以发现,如果之前先进行了保存操作,那么之后再查询的话也不会重新发出查询语句。证明实体被缓存下来。 问题: 如果现在要求使用程序插入100000万条记录?该怎么办? 如果使用Hibernate处理的话,则可能会出现内存的溢出,所以在这种情况下首先是绝对不建议使用Hibernate完成的,就使用最基本的JDBC操作完成即可。 如果非要使用Hibernate做,则必须使用到Session中关于缓存的一些操作方法:·清空Session中的所有缓存:clear() ·清空Session中一个指定的实体:evict(Object obj) 例如:下面验证clear()方法 因为程序中,将所有的缓存清空了,所以之后再查询相同实体的时候,在Session中已

以上因为只清空了一个实体,所以只发出了三个查询语句。 那么就可以通过以上的方式完成100W条记录的插入 思路:按照每十条清空缓存的操作,并将缓存中的内容强制性的写到数据库之中 3.1.2、二级缓存(重点) 在Hibernate本身中支持了多种的二级缓存组件。本次使用EHcache。如果要想使用ehcache话,则首先必须进行配置,配置ehcache的缓存文件。 ehcache.xml:

材料分析方法答案

第一章 一、选择题 1.用来进行晶体结构分析的X射线学分支是() A.X射线透射学; B.X射线衍射学; C.X射线光谱学; D.其它 2. M层电子回迁到K层后,多余的能量放出的特征X射线称() A.Kα; B. Kβ; C. Kγ; D. Lα。 3. 当X射线发生装置是Cu靶,滤波片应选() A.Cu;B. Fe;C. Ni;D. Mo。 4. 当电子把所有能量都转换为X射线时,该X射线波长称() A.短波限λ0; B. 激发限λk; C. 吸收限; D. 特征X射线 5.当X射线将某物质原子的K层电子打出去后,L层电子回迁K层,多余能量将另一个L层电子打出核外,这整个过程将产生()(多选题) A.光电子; B. 二次荧光; C. 俄歇电子; D. (A+C) 二、正误题 1. 随X射线管的电压升高,λ0和λk都随之减小。() 2. 激发限与吸收限是一回事,只是从不同角度看问题。() 3. 经滤波后的X射线是相对的单色光。() 4. 产生特征X射线的前提是原子内层电子被打出核外,原子处于激发状态。() 5. 选择滤波片只要根据吸收曲线选择材料,而不需要考虑厚度。() 三、填空题 1. 当X射线管电压超过临界电压就可以产生X射线和X射线。 2. X射线与物质相互作用可以产生、、、、 、、、。 3. 经过厚度为H的物质后,X射线的强度为。 4. X射线的本质既是也是,具有性。 5. 短波长的X射线称,常用于;长波长的X射线称 ,常用于。 习题 1.X射线学有几个分支?每个分支的研究对象是什么? 2.分析下列荧光辐射产生的可能性,为什么? (1)用CuKαX射线激发CuKα荧光辐射; (2)用CuKβX射线激发CuKα荧光辐射; (3)用CuKαX射线激发CuLα荧光辐射。 3.什么叫“相干散射”、“非相干散射”、“荧光辐射”、“吸收限”、“俄歇效应”、“发射谱

ch05材料分析测试方法作业答案

第五章 X 射线衍射分析原理 一、教材习题 5-2 “一束X 射线照射一个原子列(一维晶体),只有镜面反射方向上才有可能 产生衍射”,此种说法是否正确? 答:不正确。(根据劳埃一维方程,一个原子列形成的衍射线构成一系列共顶同轴的衍射圆锥,不仅镜面反射方向上才有可能产生衍射。) 5-3 辨析概念:X 射线散射、衍射与反射。 答:X 射线散射:X 射线与物质作用(主要是电子)时,传播方向发生改变的现象。 X 射线衍射:晶体中某方向散射X 射线干涉一致加强的结果,即衍射。 X 射线反射:晶体中各原子面产生的反射方向上的相干散射。与可见光的反射不同,是“选择反射”。 在材料的衍射分析工作中,“反射”与“衍射”通常作为同义词使用。 5-4 某斜方晶体晶胞含有两个同类原子,坐标位置分别为:( 43,43,1)和(4 1 ,41,2 1 ),该晶体属何种布拉菲点阵?写出该晶体(100)、(110)、(211)、(221)等晶面反射线的F 2值。 答:根据题意,可画出二个同类原子的位置,如下图所示: 如果将原子(1/4,1/4,1/2)移动到原点(0,0,0),则另一原子(3/4,3/4,1)的坐标变为(1/2,1/2,1/2),因此该晶体属布拉菲点阵中的斜方体心点阵。 对于体心点阵: ])1(1[)()2/2/2/(2)0(2L K H L K H i i f fe fe F ++++-+=+=ππ

???=++=++=奇数时 ,当偶数时; 当L K H 0,2L K H f F ?? ?=++=++=奇数时 ,当偶数时; 当L K H L K H f 0,4F 22 或直接用两个原子的坐标计算: ()()()()()()()3 31112()2()4444211111122()222442 111 2() 4421 (2)2 11111111i h k l i h k l i h k l i h k l i h k l h k l i h k l h k l h k l F f e e f e e f e f e f ππππππ++++??++++ ? ??++++++++++??=+ ? ????=+?????? ??=+-?? ?? =+-?? ??=+-±?? 所以 F 2=f 2[1+(-1)(h +k +l )]2 因此,(100)和(221),h +k +l =奇数,|F |2=0;(110)、(211),h +k +l =偶数,|F |2=4f 2。 5-7 金刚石晶体属面心立方点阵,每个晶胞含8个原子,坐标为:(0,0,0)、 ( 21,21,0)、(21,0,21)、(0,21,21)、(41,41,41)、(43,43,41 )、(43,41,43)、(41,43,4 3),原子散射因子为f a ,求其系统消光规律(F 2 最简表达式),并据此说明结构消光的概念。 答:金刚石晶体属面心立方点阵,每个晶胞含8个原子,坐标为:(0,0,0)、(1/2,1/2,0)、(1/2,0,1/2)、(0,1/2,1/2)、(1/4,1/4,1/4)、(3/4,3/4,1/4)、(3/4,1/4,3/4)、(1/4,3/4,3/4),可以看成一个面心立方点阵和沿体对角线平移(1/4,1/4,1/4)的另一个面心立方点阵叠加而成的。

Android4.0的多媒体框架Nuplayer介绍

Android4.x 的RTSP 框架学习 ——NuPlayer 介绍 本文介绍如下内容: 播放框架介绍 RTSP 源介绍 HTTP 流媒体的区别 要研究的点 NuPlayer 框图: NuPlayer NuPlayerDriver ALooper <<接口>> MediaPlayerInterface NuPlayer::Renderer NuPlayer::Decoder ACodec::UninitializedState AHierarchicalStateMachine ACodec ACodec::UninitializedState ACodec::LoadedToIdleState ACodec::IdleToExecutingState ACodec::ExecutingState ACodec::ExecutingToIdleState ACodec::IdleToLoadedState ACodec::FlushingState AHandler 1 * * 11* <<接口>>NuPlayer::Source *1 NuPlayer::HTTPLiveSource NuPlayer::RTSPSource ALooper 1* MyHandler * 1 ARTPConnection ARTSPConnection ALooper 1* mNetLooper for ARTPConnection ARTPSource ARTPAssembler AAVCAssembler AAVCAssembler AMPEG4AudioAssembler AH263Assembler AAMRAssembler AAMRAssembler AMPEG4ElementaryAssembler ARawAudioAssembler AnotherPacketSource <<接口>>MediaSource APacketSource * 1 * 1* 1OMX AHandler

材料分析方法课后习题答案

第十四章 1、波谱仪和能谱仪各有什么优缺点 优点:1)能谱仪探测X射线的效率高。 2)在同一时间对分析点内所有元素X射线光子的能量进行测定和计数,在几分钟内可得到定性分析结果,而波谱仪只能逐个测量每种元素特征波长。 3)结构简单,稳定性和重现性都很好 4)不必聚焦,对样品表面无特殊要求,适于粗糙表面分析。 缺点:1)分辨率低。 2)能谱仪只能分析原子序数大于11的元素;而波谱仪可测定原子序数从4到92间的所有元素。 3)能谱仪的Si(Li)探头必须保持在低温态,因此必须时时用液氮冷却。 分析钢中碳化物成分可用能谱仪;分析基体中碳含量可用波谱仪。 2、举例说明电子探针的三种工作方式(点、线、面)在显微成分分析中的应用。 答:(1)、定点分析:将电子束固定在要分析的微区上用波谱仪分析时,改变分光晶体和探测器的位置,即可得到分析点的X射线谱线;

用能谱仪分析时,几分钟内即可直接从荧光屏(或计算机)上得到微区内全部元素的谱线。 (2)、线分析:将谱仪(波、能)固定在所要测量的某一元素特征X射线信号(波长或能量)的位置把电子束沿着指定的方向作直线轨迹扫描,便可得到这一元素沿直线的浓度分布情况。改变位置可得到另一元素的浓度分布情况。 (3)、面分析:电子束在样品表面作光栅扫描,将谱仪(波、能)固定在所要测量的某一元素特征X射线信号(波长或能量)的位置,此时,在荧光屏上得到该元素的面分布图像。改变位置可得到另一元素的浓度分布情况。也是用X射线调制图像的方法。 3、要在观察断口形貌的同时,分析断口上粒状夹杂物的化学成分,选用什么仪器用怎样的操作方式进行具体分析 答:(1)若观察断口形貌,用扫描电子显微镜来观察:而要分析夹杂物的化学成分,得选用能谱仪来分析其化学成分。 (2)A、用扫描电镜的断口分析观察其断口形貌:

材料分析测试技术习题

近代材料分析测试方法习题 1 Ariy斑如何形成? 2 简述产生像差的三种原因。 3 何为焦长及景深,有何用途? 4 对比光学显微镜与电磁显微镜分辨率。 6 画出电镜结构原理图,简述每个部件的 作用。 7 何谓点分辨率、晶格分辨率、放大倍 数,其测定方法? 8 简述塑料一级复型、碳一级复型、塑料 -碳-喷铬二级复型制作步骤,对比各 有何特点。 9 简述质后衬度成像原理。 10 计算2种复型样品相对衬度(见书)。 11 简述透射电镜的主要用途。 12 写出劳埃方程,简述其用途。 13 写出布拉格方程,简述其用途。 14 已知简单立方晶体晶格常数为3A°,分别 在正空间和倒易空间中画出(101)、 (210)、(111)晶面及倒易易点,并计算出晶面的面间距和倒易失量的大小。 15 画出面心立方及体心立方[011]晶带轴的 标准电子衍射花样,标出最近的三个斑点指数及夹角。 16 画出爱瓦尔德球简述其用途。 17 体心立方和简单立方晶体的消光条件。 18 何谓标准电子衍射花样。面心立方和简单 立方晶体的消光条件。 19 为何不精确满足布拉格方程时,也会在底 片上出现衍射斑点。 20 为何入射电子束严格平行〔uvw〕时, 底片上也有衍射斑点出现。 21 绘出面心立方〔012〕晶带轴的标准电 子衍射花样,并写明步骤。(10分)22 已知相机常数K、晶体结构及单晶衍射花 样,简述单晶衍射花样标定步骤。(10 分) 23 何谓磁偏角。 24 选区衍射操作与选区衍射成像操作有何不 同。 25 孪晶衍射花样有何特点。 26 高阶劳爱斑点如何得到。 27 如何确定有序固溶体。 28 何谓菊池线花样。 29 何谓二次衍射斑点。 30 简述薄晶体样品制作步骤。 31 多晶衍射花样标定步骤。32 薄晶体成像原理与复型成像原理有何异同 点。 33 画出薄晶体衍衬成明场像、暗场像的光路 图,并加以说明。 34 螺型位错和刃型位错衍衬成像特征。为 何? 35 厚度消光、弯曲消光条纹产生原因。 36 孪晶、层错典型特征。 37 扫描电镜的主要用途。 38 扫描电镜中能成形貌像、成分像的信号各 有哪些? 39 如图所示,晶粒1为铝、晶粒2为铁,画 出A、B探头的收集背散射电子的信 号,及形貌、成分信号。 40 对比二次电子、背散电子成像衬度。 41 特征x射线可成哪种像,有何特征。 42 简述能谱仪与波谱仪工作原理。 43 试述原子散射因子f和结构因子│FHKL│ 2的物理意义,结构因子与哪些因素有 关? 44 画出X射线衍射分析光路图,说明测角仪 的工作原理。(8分) 45 简述用X射线衍射方法定性分析未知材料 的步骤。 46 写出粉末衍射卡组字母索引和数字索引 的编排方法和查询方法。 47 对钙钛矿(CaTiO3)为主的复相材料进 行定性分析,试设计分析方案(特别应 指出选何种辐射源及滤光片)。 48 用X射线衍射仪进行物相分析,请绘图说 明X射线管焦点、入射束、衍射束、接收狭缝、样品表面法线、反射晶面法线、 衍射圆之间的关系。

Android http流媒体开发总结

Android http流媒体开发总结 http流媒体原理与实现: (1) android http流媒体的实现: (2) android http流媒体存在的问题与改善: (3) 流媒体早已容入我们现代的生活,给我们的生活带来很多欢快与乐趣。那它的技术原理又是如何的,又是如何实现的呢?流媒体是一种在网络上在线播放多媒体的技术,由于其边下载边播放的特性,缩短了用户初始等待的延迟,所以其数据也需要采用流式传输,具有较高的实时需求;其传输协议是使用最为广泛的http/tcp协议。 http流媒体原理与实现: http流媒体这个应用是从http网站提供文件服务发展而来的,在网站我们可以把文件放到http的服务器上,用户就可以从下载,而把支持流媒体传输的媒体文件放到支持http服务的服务器上,并且支持断点继传的服务就能做为http流媒体的服务器,然后客户端就可以通过url直接连接到服务器接收数据进行流媒体的播放,之前的http服务是只能支持下载然后播放的,而现在我们可以直接在线播放边下载边播放,这得益于我们在http协议层有了支持,就是在HTTP/1.1里新增了一个header field叫做range 的字段。 http协议对range 的规范定义如下: ranges-specifier = byte-ranges-specifier byte-ranges-specifier = bytes-unit “=” byte-range-set byte-range-set = 1#( byte-range-spec | suffix-byte-range-spec ) byte-range-spec = first-byte-pos “-” [last-byte-pos] first-byte-pos = 1*DIGIT last-byte-pos = 1*DIGIT range的意思请求的数据可以是指定位置,指定大小的,这样就如同操作本地文件一样读取服务器中的文件任何位置的任何数据。有了range支持使得http流媒体播放成为可能,当然也使得一些快速下载工具成为可能。如果在没有range 的情况下,数据只能顺序的接收,当文件的媒体数据很大的时候就出现内存无法保存到索引出现的地方,只能把整个文件下载下来才能播放。当有range的时候,文件可以像本地文件一样,随处随大小的读取播放。

缓存管理需求说明

缓存管理功能需求说明 缓存管理开发背景 缓存管理功能的开发,意在减少系统对数据库的过多访问,通过减少对数据库的访问次数,改用访问内存的方式,提升系统的性能。直接从内存获取数据,较之从数据库获取数据,效率可以得到显著的提升。 系统由于多次查询数据库,消耗大量系统资源,且查询效率可能因为开发者的个人能力导致查询效率不高,或占用过多资源影响系统性能。使用缓存管理,系统只有第一次查询访问数据库,而后皆通过访问内存取得数据,不需要在计较这次查询的SQL是否过于复杂,是否效率低下,直接取得数据返回即可。 第一部分、缓存管理 缓存管理提供了缓存工具类CacheUtils以供开发者对缓存进行自定义开发。如果开发者需要自己开发某功能需要涉及缓存管理则可以借助使用CacheUtils工具类来完成。本地缓存管理和redis 缓存管理的区分在于redis是否正确连接且启动。注意,是正确连接并且启动redis服务器。 关于开发者需要自行开发某功能的缓存管理需要了解CacheUtils怎么使用可以查看《缓存管理开发说明》 本地缓存管理 本地缓存管理是在redis没有正常启动运行的时候系统提供的缓存管理方式。本地缓存管理暂无任何持久化操作。对于缓存中的所有数据,在应用重启后一律清空,需要重新载入缓存。本地缓存

管理采用的是标准的key-value形式保存,于Java中采用的结构形式为HashMap结构,HashMap 有利于快速的存取,因而采用该结构保存本地缓存。其中key的类型为string,value的类型为object。本地缓存管理对于类型的限制基本没有。Value可以置入任何Java支持的对象。 本地缓存管理中,保存进入缓存只需要使用CacheUtils中的save方法进行保存即可,保存的数据在本地缓存中不做多余的处理,直接置入缓存中。由于采用的是以Object类型的形式保存,并不会对保存的数据进行转换,获取保存的缓存数据时直接使用CacheUtils中的get方法即可取得保存的数据,达到怎么存就怎么取,存什么取什么。无需更多的变换数据结构,更不会导致因为存储导致类型的变换或者数据的丢失。 由于存什么取得的就是什么,因而直接修改取得的数据对象有可能导致缓存数据也被修改。Redis缓存管理 Redis缓存管理需要开启redis服务器并正确配置连接信息,系统会在启动的时候检测redis是否可以正常连接启用,如果没有正常连接启用则使用本地缓存管理。 Redis缓存管理对于类型具有特别的要求,对于不同的数据类型需要使用对应的类型进行保存。且不允许使用复杂的对象类型进行保存,如list-object是不被允许的,需要转换为list-string的类型再进行保存,同理Map类型也不被允许使用Object,但是单个JavaBean是允许进行存取的。即redis 缓存管理不支持三维结构存储,仅支持二维结构存储。 Redis缓存管理的数据会有简易的持久化。即当redis停止后或者系统停止后,再次启动时redis 依然存有数据提供,不需要再次载入缓存。如果缓存设置了失效则可能会被清除。 Redis缓存管理保存、修改 由于redis数据类型的特殊性,所以所有Java中复杂的对象存储都需要进行相应的转换后才可

减震缓冲技术

减震缓冲技术发展综述 姓名:尚兴超 学号:511011503 指导老师:梁医 一.概述 机械振动、冲击问题广泛存在于工程机械[1]、汽车机械、建筑机械、船舶机械、航空航天、武器领域[2]等,减振器和缓冲器主要是用于减小或削弱振动或冲击对设备与人员影响的一个部件。它起到衰减和吸收振动的作用。使得某些设备及人员免受不良振动的影响,起到保护设备及人员正常工作与安全的作用,因此它广泛应用于各种机床、汽车、摩托车、火车、轮船、飞机及坦克等装备上。 振动问题的基本方程为: ()e sin n t d x A t ζωωφ-=+ 从方程中可以看出,系统振动幅值的衰减与阻尼系数大小ζ有关[3],也就是说,震动产生的能量将会被阻尼所吸收。减震器和缓冲器就是基于此原理而设计的。 二.发展历史 世界上第一个有记载、比较简单的减震器是1897年由两个姓吉明的人发明的。他们把橡胶块与叶片弹簧的端部相连,当悬架被完全压缩时,橡胶减震块就碰到连接在汽车大梁上的一个螺栓, 产生止动。1898年,第一个实用的减震器 由一个法国人特鲁芬特研制成功并被安装到摩托赛车上。他将前叉悬置于弹簧上,同时与一个摩擦阻尼件相连,以防止摩托车的振颤。1899年,美国汽车爱好者爱德华特·哈德福特将前者应用于汽车上。后来,又经历了加布里埃尔减震器、平衡弹簧式减震器和1909年发明的空气弹簧减震器。空气弹簧减震器类似于充气轮胎的工作原理,它的主要缺点是常常产生漏气。 1908年法国人霍迪立设计了第一个实用的液压减震器。其原理是液流通过小孔时产生的阻尼现象。20世纪60年代,通用公司麦迪逊工程师研制了把螺旋弹簧、液压减震器和上悬架臂杆组成的麦迪逊减震器,其体积比较小,得到了广泛的应用[4]。 三.研究现状 液压缓冲器是目前应用最为广泛的减震缓冲装置,其结构简单,运行平稳。

(完整版)材料分析方法_俞建长_试卷5

材料现代分析方法试题5 材料学院材料科学与工程专业年级班级材料现代分析方法课程200—200学年第学期()卷期末考试题( 120 分钟) 考生姓名学号考试时间 题号得分分数 主考教师:阅卷教师: 材料现代分析方法试题5(参考答案) 一、基本概念题(共10题,每题5分) 1.若X射线管的额定功率为1.5kW,在管电压为35kV时,容许的最大电流是多少? 答:1.5kW/35kV=0.043A 2.证明()、()、()、(01)、(12)晶面属于[111]晶带。 答:根据晶带定律公式Hu+Kv+Lw=0计算 ()晶面:1×1+1×+0×1=1—1+0=0 ()晶面:1×1+1×+1×1=1—2+1=0 ()晶面:×1+2×1+1×1=(—3)+2+1=0 (01)晶面:0×1+×1+1×1=0+(—1)+1=0 (12)晶面:1×1+×1+1×2=1+(—3)+2=0 因此,经上五个晶面属于[111]晶带。 3.当X射线在原子例上发射时,相邻原子散射线在某个方向上的波程差若不为波长的整数倍,则此方向上必然不存在放射,为什么?

答:因为X射线在原子上发射的强度非常弱,需通过波程差为波长的整数倍而产生干涉加强后才可能有反射线存在,而干涉加强的条件之一必须存在波程差,且波程差需等于其波长的整数倍,不为波长的整数倍方向上必然不存在反射。4.某一粉末相上背射区线条与透射区线条比较起来,其θ较高抑或较低?相应的d较大还是较小? 答:背射区线条与透射区线条比较θ较高,d较小。 产生衍射线必须符合布拉格方程2dsinθ=λ,对于背射区属于2θ高角度区, 根据d=λ/2sinθ,θ越大d越小。 5.已知Cu3Au为面心立方结构,可以以有序和无序两种结构存在,请画出其有序和无序结构[001]晶带的电子衍射花样,并标定出其指数。 答:如图所示: 6.(1)试说明电子束入射固体样品表面激发的主要信号、主要特点和用途。(2)扫描电镜的分辨率受哪些因素影响? 给出典型信号成像的分辨率,并说明原因。(3)二次电子(SE)信号主要用于分析样品表面形貌,说明其衬度形成原理。(4)用二次电子像和背散射电子像在显示表面形貌衬度时有何相同与不同之处? 答:(1)背散射电子:能量高;来自样品表面几百nm深度范围;其产额随 原子序数增大而增多.用作形貌分析、成分分析以及结构分析。 二次电子:能量较低;来自表层5-10nm深度范围;对样品表面状态十分敏感.不能进行成分分析.主要用于分析样品表面形貌。

OpenMax多媒体引擎

Android OpenMax的基本层次结构如图18-1所示。

OpenMax是无授权费的,跨平台的应用程序接口API,通过使媒体加速组件能够在开发、集成和编程环节中实现跨多操作系统和处理器硬件平台,提供全面的流媒体编解码器和应用程序便携化。 OpenMax的官方网站如下所示: https://www.360docs.net/doc/311082382.html,/openmax/ OpenMax实际上分成三个层次,自上而下分别是,OpenMax DL(开发层),OpenMax IL(集成层)和OpenMax AL(应用层)。三个层次的内容分别如下所示。 第一层:OpenMax DL(Development Layer,开发层) OpenMax DL定义了一个API,它是音频、视频和图像功能的集合。供应商能够在一个新的处理器上实现并优化,然后编解码供应商使用它来编写更广泛的编解码器功能。它包括音频信号的处理功能,如FFT和filter,图像原始处理,如颜色空间转换、视频原始处理,以实现例如MPEG-4、H.264、MP3、AAC和JPEG 等编解码器的优化。 第二层:OpenMax IL(Integration Layer,集成层) OpenMax IL作为音频、视频和图像编解码器能与多媒体编解码器交互,并以统一的行为支持组件(例如,资源和皮肤)。这些编解码器或许是软硬件的混合体,对用户是透明的底层接口应用于嵌入式、移动设备。它提供了应用程序和媒体框架,透明的。S编解码器供应商必须写私有的或者封闭的接口,集成进移动设备。IL的主要目的是使用特征集合为编解码器提供一个系统抽象,为解决多个不同媒体系统之间轻便性的问题。 第三层:OpenMax AL(Appliction Layer,应用层) OpenMax AL API在应用程序和多媒体中间件之间提供了一个标准化接口,多媒体中间件提供服务以实现被期待的API功能。 --------------------------------------------------------------------------------------------------- OpenMax的三个层次如图18-2所示。 OpenMax API将会与处理器一同提供,以使库和编解码器开发者能够高速有效地利用新器件的完整加速潜能,无须担心其底层的硬件结构。该标准是针对嵌入式设备和移动设备的多媒体软件架构。在架构底层上为多媒体的编解码和数据处理定义了一套统一的编程接口,对多媒体数据的处理功能进行系统级抽象,为用户屏蔽了底层的细节。因此,多媒体应用程序和多媒体框架通过OpenMax IL

(完整版)材料现代分析方法考试试卷

班级学号姓名考试科目现代材料测试技术A 卷开卷一、填空题(每空1 分,共计20 分;答案写在下面对应的空格处,否则不得分) 1. 原子中电子受激向高能级跃迁或由高能级向低能级跃迁均称为_辐射跃迁__ 跃迁或_无辐射跃迁__跃迁。 2. 多原子分子振动可分为__伸缩振动_振动与_变形振动__振动两类。 3. 晶体中的电子散射包括_弹性、__与非弹性___两种。 4. 电磁辐射与物质(材料)相互作用,产生辐射的_吸收_、_发射__、_散射/光电离__等,是光谱分析方法的主要技术基础。 5. 常见的三种电子显微分析是_透射电子显微分析、扫描电子显微分析___和_电子探针__。 6. 透射电子显微镜(TEM)由_照明__系统、_成像__系统、_记录__系统、_真空__系统和__电器系统_系统组成。 7. 电子探针分析主要有三种工作方式,分别是_定点_分析、_线扫描_分析和__ 面扫描_分析。 二、名词解释(每小题3 分,共计15 分;答案写在下面对应的空格处,否则不得分) 1. 二次电子二次电子:在单电子激发过程中被入射电子轰击出来的核外电子. 2. 电磁辐射:在空间传播的交变电磁场。在空间的传播遵循波动方程,其波动性表现为反射、折射、干涉、衍射、偏振等。 3. 干涉指数:对晶面空间方位与晶面间距的标识。 4. 主共振线:电子在基态与最低激发态之间跃迁所产生的谱线则称为主共振线 5. 特征X 射线:迭加于连续谱上,具有特定波长的X 射线谱,又称单色X 射线谱。 三、判断题(每小题2 分,共计20 分;对的用“√”标识,错的用“×”标识) 1.当有外磁场时,只用量子数n、l 与m 表征的原子能级失去意义。(√) 2.干涉指数表示的晶面并不一定是晶体中的真实原子面,即干涉指数表示的晶面上不一定有原子分布。(√) 3.晶面间距为d101/2 的晶面,其干涉指数为(202)。(×) 4.X 射线衍射是光谱法。(×) 5.根据特征X 射线的产生机理,λKβ<λK α。 (√ ) 6.物质的原子序数越高,对电子产生弹性散射的比例就越大。(√ ) 7.透射电镜分辨率的高低主要取决于物镜。(√ )8.通常所谓的扫描电子显微镜的分辨率是指二次电子像的分辨率。(√)9.背散射电子像与二次电子像比较,其分辨率高,景深大。(× )10.二次电子像的衬度来源于形貌衬度。(× ) 四、简答题(共计30 分;答案写在下面对应的空格处,否则不得分) 1. 简述电磁波谱的种类及其形成原因?(6 分)答:按照波长的顺序,可分为:(1)长波部分,包括射频波与微波。长波辐射光子能量低,与物质间隔很小的能级跃迁能量相适应,主要通过分子转动能级跃迁或电子自旋或核自旋形成;(2)中间部分,包括紫外线、可见光核红外线,统称为光学光谱,此部分辐射光子能量与原子或分子的外层电子的能级跃迁相适应;(3)短波部分,包括X 射线和γ射线,此部分可称射线谱。X 射线产生于原子内层电子能级跃迁,而γ射线产生于核反应。

LibStageFright

LibStageFright AwesomePlayer AudioPlayer MEPG4Writer (default) AMRWriter OMXCodec OMX AwesomeRender OMXClient SoftWareRender AwesomeNativeWindowRenderer MediaExtractor SoftWare Codec DataSource 图1 LibStageFright 内部架构图 LibStageFright 图2 LibStageFright 与外部接口调用关系图 MediaSource OMXMaster MediaPlayerService AwesomePlayer MEPG4Writer AMRWriter SoftWareRender AwesomeNativeWindowRenderer AudioPlayer OMXClient OMX StagefrightRecorder Audio Output Get OMX SurfaceFlinger EGL AudioFlinger StagefrightPlayer OMXMaster libstagefrighthw Hardware

MediaPlayer MediaPlayeService Jni_android_media_MediaPlayer AwesomPlayer StagefrightPlayer MediaPlayer.java 图3 MediaPlayer 框架 MediaRecorder.java Jni_android_media_MediaRecorder MediaRecorder MediaPlayerService MediaRecorderClient StagefrightRecorder AudioSource CameraSource AudioRecord Camera 图4 MediaRecorder 框架

相关文档
最新文档