当前位置:首页 » 操作系统 » 帧同步源码

帧同步源码

发布时间: 2022-06-12 07:00:05

1. 可否在PC机上对视频流做实时压缩

视频压缩技术
视频编码的基本原理

视频图像数据有极强的相关性,也就是说有大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。压缩技术就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。

去时域冗余信息
使用帧间编码技术可去除时域冗余信息,它包括以下三部分:

- 运动补偿
运动补偿是通过先前的局部图像来预测、补偿当前的局部图像,它是减少帧序列冗余信息的有效方法。

- 运动表示
不同区域的图像需要使用不同的运动矢量来描述运动信息。运动矢量通过熵编码进行压缩。

- 运动估计
运动估计是从视频序列中抽取运动信息的一整套技术。

注:通用的压缩标准都使用基于块的运动估计和运动补偿。

去空域冗余信息
主要使用帧间编码技术和熵编码技术:

- 变换编码
帧内图像和预测差分信号都有很高的空域冗余信息。变换编码将空域信号变换到另一正交矢量空间,使其相关性下降,数据冗余度减小。

- 量化编码
经过变换编码后,产生一批变换系数,对这些系数进行量化,使编码器的输出达到一定的位率。这一过程导致精度的降低。

- 熵编码
熵编码是无损编码。它对变换、量化后得到的系数和运动信息,进行进一步的压缩。

视频编码的基本框架(图)

国际音视频压缩标准发展历程

H.261

H.261标准是为ISDN设计,主要针对实时编码和解码设计,压缩和解压缩的信号延时不超过150ms,码率px64kbps(p=1~30)。

H.261标准主要采用运动补偿的帧间预测、DCT变换、自适应量化、熵编码等压缩技术。 只有I帧和P帧,没有B帧,运动估计精度只精确到像素级。支持两种图像扫描格式:QCIF和CIF。

H.263

H.263标准是甚低码率的图像编码国际标准,它一方面以H.261为基础,以混合编码为核心,其基本原理框图和H.261十分相似,原始数据和码流组织也相似;另一方面,H.263也吸收了MPEG等其它一些国际标准中有效、合理的部分,如:半像素精度的运动估计、PB帧预测等,使它性能优于H.261。

H.263使用的位率可小于64Kb/s,且传输比特率可不固定(变码率)。H.263支持多种分辨率: SQCIF(128x96)、 QCIF、CIF、4CIF、16CIF。

与H.261和H.263相关的国际标准
与H.261有关的国际标准
H.320:窄带可视电话系统和终端设备;
H.221:视听电信业务中64~1 920Kb/s信道的帧结构;
H.230:视听系统的帧同步控制和指示信号;
H.242:使用直到2Mb/s数字信道的视听终端的系统。
与H.263有关的国际标准
H.324:甚低码率多媒体通信终端设备;
H.223:甚低码率多媒体通信复合协议;
H.245:多媒体通信控制协议;
G.723.1.1:传输速率为5.3Kb/s和6.3Kb/s的语音编码器。

JPEG

国际标准化组织于1986年成立了JPEG(Joint Photographic Expert Group)联合图片专家小组,主要致力于制定连续色调、多级灰度、静态图像的数字图像压缩编码标准。常用的基于离散余弦变换(DCT)的编码方法,是JPEG算法的核心内容。

MPEG-1/2

MPEG-1标准用于数字存储体上活动图像及其伴音的编码,其数码率为1.5Mb/s。 MPEG-1的视频原理框图和H.261的相似。

MPEG-1视频压缩技术的特点:1. 随机存取;2. 快速正向/逆向搜索;3 .逆向重播;4. 视听同步;5. 容错性;6. 编/解码延迟。MPEG-1视频压缩策略:为了提高压缩比,帧内/帧间图像数据压缩技术必须同时使用。帧内压缩算法与JPEG压缩算法大致相同,采用基于DCT的变换编码技术,用以减少空域冗余信息。帧间压缩算法,采用预测法和插补法。预测误差可在通过DCT变换编码处理,进一步压缩。帧间编码技术可减少时间轴方向的冗余信息。

MPEG-2被称为“21世纪的电视标准”,它在MPEG-1的基础上作了许多重要的扩展和改进,但基本算法和MPEG-1相同。

MPEG-4

MPEG-4标准并非是MPEG-2的替代品,它着眼于不同的应用领域。MPEG-4的制定初衷主要针对视频会议、可视电话超低比特率压缩(小于64Kb/s)的需求。在制定过程中,MPEG组织深深感受到人们对媒体信息,特别是对视频信息的需求由播放型转向基于内容的访问、检索和操作。

MPEG-4与前面提到的JPEG、MPEG-1/2有很大的不同,它为多媒体数据压缩编码提供了更为广阔的平台,它定义的是一种格式、一种框架,而不是具体算法,它希望建立一种更自由的通信与开发环境。于是MPEG-4新的目标就是定义为:支持多种多媒体的应用,特别是多媒体信息基于内容的检索和访问,可根据不同的应用需求,现场配置解码器。编码系统也是开放的,可随时加入新的有效的算法模块。应用范围包括实时视听通信、多媒体通信、远地监测/监视、VOD、家庭购物/娱乐等。

JVT:新一代的视频压缩标准

JVT是由ISO/IEC MPEG和ITU-T VCEG成立的联合视频工作组(Joint Video Team),致力于新一代数字视频压缩标准的制定。

JVT标准在ISO/IEC中的正式名称为:MPEG-4 AVC(part10)标准;在ITU-T中的名称:H.264(早期被称为H.26L)

H264/AVC

H264集中了以往标准的优点,并吸收了以往标准制定中积累的经验, 采用简洁设计,使它比MPEG4更容易推广。H.264创造性了多参考帧、多块类型、整数变换、帧内预测等新的压缩技术,使用了更精细的分象素运动矢量(1/4、1/8)和新一代的环路滤波器,使得压缩性能大大提高,系统更加完善。

H.264主要有以下几大优点:

- 高效压缩:与H.263+和MPEG4 SP相比,减小50%比特率
- 延时约束方面有很好的柔韧性
- 容错能力
- 编/解码的复杂性可伸缩性
- 解码全部细节:没有不匹配
- 高质量应用
- 网络友善

监控中的视频编码技术

目前监控中主要采用MJPEG、MPEG1/2、MPEG4(SP/ASP)、H.264/AVC等几种视频编码技术。对于最终用户来言他最为关心的主要有:清晰度、存储量(带宽)、稳定性还有价格。采用不同的压缩技术,将很大程度影响以上几大要素。

MJPEG

MJPEG(Motion JPEG)压缩技术,主要是基于静态视频压缩发展起来的技术,它的主要特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩。

MJPEG压缩技术可以获取清晰度很高的视频图像,可以动态调整帧率、分辨率。但由于没有考虑到帧间变化,造成大量冗余信息被重复存储,因此单帧视频的占用空间较大,目前流行的MJPEG技术最好的也只能做到3K字节/帧,通常要8~20K!

MPEG-1/2

MPEG-1标准主要针对SIF标准分辨率(NTSC制为352X240;PAL制为352X288)的图像进行压缩. 压缩位率主要目标为1.5Mb/s.较MJPEG技术,MPEG1在实时压缩、每帧数据量、处理速度上有显着的提高。但MPEG1也有较多不利地方:存储容量还是过大、清晰度不够高和网络传输困难。

MPEG-2 在MPEG-1基础上进行了扩充和提升,和MPEG-1向下兼容,主要针对存储媒体、数字电视、高清晰等应用领域,分辨率为:低(352x288),中(720x480),次高(1440x1080),高(1920x1080)。MPEG-2视频相对MPEG-1提升了分辨率,满足了用户高清晰的要求,但由于压缩性能没有多少提高,使得存储容量还是太大,也不适和网络传输。

MPEG-4

MPEG-4视频压缩算法相对于MPEG-1/2在低比特率压缩上有着显着提高,在CIF(352*288)或者更高清晰度(768*576)情况下的视频压缩,无论从清晰度还是从存储量上都比MPEG1具有更大的优势,也更适合网络传输。另外MPEG-4可以方便地动态调整帧率、比特率,以降低存储量。

MPEG-4由于系统设计过于复杂,使得MPEG-4难以完全实现并且兼容,很难在视频会议、可视电话等领域实现,这一点有点偏离原来地初衷。另外对于中国企业来说还要面临高昂的专利费问题,目前规定:

- 每台解码设备需要交给MPEG-LA 0.25美元

- 编码/解码设备还需要按时间交费(4美分/天=1.2美元/月 =14.4美元/年)

H.264/AVC

H.264集中了以往标准的优点,在许多领域都得到突破性进展,使得它获得比以往标准好得多整体性能:

- 和H.263+和MPEG-4 SP相比最多可节省50%的码率,使存储容量大大降低;

- H.264在不同分辨率、不同码率下都能提供较高的视频质量;

- 采用“网络友善”的结构和语法,使其更有利于网络传输。

H.264采用简洁设计,使它比MPEG4更容易推广,更容易在视频会议、视频电话中实现,更容易实现互连互通,可以简便地和G.729等低比特率语音压缩组成一个完整的系统。

MPEG LA吸收MPEG-4的高昂专利费而使它难以推广的教训,MPEG LA制定了以下低廉的H.264收费标准:H.264广播时基本不收费;产品中嵌入H.264编/解码器时,年产量10万台以下不收取费,超过10万台每台收取0.2美元,超过500万台每台收取0.1美元。低廉的专利费使得中国H.264监控产品更容易走向世界。

监控中视频编码分辨率的选择

目前监控行业中主要使用以下分辨率:SQCIF、QCIF、CIF、4CIF。

SQCIF和QCIF的优点是存储量低,可以在窄带中使用,使用这种分辨率的产品价格低廉;缺点是图像质量往往很差、不被用户所接受。

CIF是目前监控行业的主流分辨率,它的优点是存储量较低,能在普通宽带网络中传输,价格也相对低廉,它的图像质量较好,被大部分用户所接受。缺点是图像质量不能满足高清晰的要求。

4CIF是标清分辨率,它的优点是图像清晰。缺点是存储量高,网络传输带宽要求很高,价格也较高。

分辨率新的选择-528x384

2CIF(704x288)已被部分产品采用,用来解决CIF清晰度不够高和4CIF存储量高、价格高昂的缺点。但由于704x288只是水平分辨率的提升,图像质量提高不是特别明显。

经过测试,我们发现另外一种2CIF分辨率528x384,比704x288能更好解决CIF、4CIF的问题。特别是在512Kbps-1Mbps码率之间,能获得稳定的高质量图像,满足用户较高图像质量的要求。目前这一分辨率已被许多网络多媒体广播所采用,被广大用户所接受。比如杭州网通网上影院是采用512x384分辨率,在768k下能稳定地获得近似DVD的图像质量。

监控中实现视频编码的最佳方式

目前视频编码正处于一个技术日新月异的时期,视频编码的压缩性能在不断得到提升。

在监控中主要使用ASCI和DSP两种方案。由于ASIC芯片的设计、生产周期过长,使它已跟不上视频编码的发展速度。而DSP芯片,由于它的通用设计,使它能实现各种视频编码算法,并且可以及时更新视频编码器,紧跟视频编码的发展速度。另外使用DSP芯片可以比ASIC更灵活的配置编码器,使编码器达到最佳性能。

海康威视产品目前达到的技术水准

海康威视产品采用最先进的H.264视频压缩算法和高性能的DSP处理器。

强大的H.264视频压缩引擎使产品获得极高的压缩比、高质量的图像质量和良好的网络传输性能。高性能的DSP处理器能灵活的配置视频编/解码器:动态设置分辨率、帧率、码率、图像质量等;可以双码流输出,达到本地存储和网络传输分别处理的功能。

使用TM130X DSP的产品,单个芯片能实时压缩一路以下分辨率的视频:SQCIF、QCIF、CIF、2CIF(PAL:704x288或528x384)。

使用DM642 DSP的产品,单个芯片能实时压缩4路以下分辨率的视频:SQCIF、QCIF、CIF、2CIF(PAL:704x288或528x384)。单个芯片能实时压缩2路4CIF视频。

电视节目制作数字网络化已成为大家关心的热点,其中重要的技术之一是数字视频压缩。运动图像专家组(MPEG)是ISO/IEC的一个工作组,负责开发运动图像、声频及其混合信息的压缩、解压缩、处理和编码表示方面的国际标准。MPEG已经制定了MPEG-1、MPEG-2和MPEG-4标准。MPEG-1和MPEG-2已广泛应用在多媒体工业,例如数字电视、CD、视频点播、归档、因特网上的音乐等等。MPEG-4主要用于64 kb/s以下的低速率音视频编码,以使用于窄带多媒体通信等领域。MPEG目前正在制定MPEG-7和MPEG-21。但M-JPEG、MPEG-2和DV三大压缩技术已占据着当今视频压缩技术的主要地位,呈现互不替代,激烈竞争,共同发展的状态。

M-JPEG和DV均采用帧内压缩方式,压缩效率要比MPEG-2低。在低码率的时候,MPEG-2可以提供比M-JPEG高的压缩比而保持较好的图像质量;在要求高图像质量的时候(比如节目编辑和后期制作),MPEG-2与M-JPEG、DV的输出码率差别要小得多。电视台业务的多样性要求压缩标准能提供多种码率。可变码率(VBR)特性对电视台有效利用资源非常重要。MPEG-2可以通过改变GOP结构和DCT及霍夫曼编码的参数来调整输出码率;M-JPEG可以通过改变DCT及霍夫曼编码参数调节压缩比;DV格式因其应用特点,没有提供VBR。M-JPEG发展较早,在非线性视频编辑方面应用多年,软、硬件技术成熟,成本低廉,以目前硬件平台而言,平均比MPEG-2平台便宜5000美元左右。目前,M-JPEG、DV和MPEG-2三个标准各有长处,设备都获得了广泛使用。日本和北美大多用DV格式进行后期制作;EBU在1999年的D84、D85技术声明中推荐电视台在演播室使用50 Mb/s的纯I帧4:2:2P MPEG-2;而中国在广泛使用M-JPEG的同时热烈讨论MPEG-2 IBP格式的编辑。

下面针对现今在电视台数字化网络中主要应用的两种视频压缩技术,即M-JPEG和MPEG-2做一下对比。最后对MPEG-7作简单概述。

M-JPEG是针对活动图像而优化的JPEG压缩而称。而JPEG是针对一帧图像DCT变换来对图像数据进行压缩,通过对电视数字信号(4:2:2数据)的每一帧进行JPEG压缩。由于电视编辑、特技制作均需要以帧为基本单位,所以对以帧为单元进行压缩(帧内压缩)的M-JPEG格式被成功地用于数字视频系统,特别是数字非线性节目编辑系统。目前我国非线性编辑系统大都采用4:1 M-JPEG压缩,被认为是可以接受的广播级水平。当PAL制4:2:2数字信号采用4:1压缩时,其数据率是5 MB/s(40M b/s), 每小时视频节目占用18 GB存储空间。由于M-JPEG是帧内压缩方式,可以提供精确到帧的随机存取访问,不附带任何的访问延迟,能够实现精确到帧的节目编辑。 所谓MPEG-2压缩是根据运动图像相邻帧之间有一定的相似性原则,通过运动预测,参考前一帧图像与这一帧图像的相似情况,去掉与前一帧相似的冗余数据,而只记录这一帧与上一帧不同的数据,从而大大提高了视频数据的压缩效率,这种压缩方法也称为帧相关压缩。因为采用运动预测帧相关的压缩方式,针对视频压缩有很好的效果,在获得广播级数字视频质量的前提下,可以实现20:1的压缩效率,数据率可降至1 MB/s(8M b/s),一小时视频节目占用3.6 GB空间。数据存储空间利用率高,网络传输效率是M-JPEG系统的5倍以上。这给基于MPEG-2压缩视频的存储、传输、编辑、播出带来极大的好处,在存储方面可以大大节约存储体成本,并能引入各种类型的存储介质,如硬盘、光盘、数据磁带以及存储器芯片等。

但由于MPEG-2格式只有一个完整的帧,即I帧,所以在电视需要帧精确地进行剪接时会带来一定的困难,需要硬件板卡或软件系统的支持。MPEG-2在压缩方面有帧内压缩和帧间压缩两种方式,使用三种类型的图像,即I帧、P帧和B帧。I帧使用帧内压缩,不使用运动补偿,提供中等压缩比。由于I帧不依赖其它帧,所以是随机存取的入点,同时是解码的基准帧。P帧根据前面的I帧或P帧进行预测,使用运动补偿算法进行压缩,压缩比要比I帧高。P帧是对B帧和后继P帧进行解码的基准帧。它本身有误差,会造成误差传播。B帧是基于内插重建的帧,它基于前后两个IP帧或PP帧,不传播误差。它使用双向预测进行压缩,提供更高的压缩比。目前各硬件板卡厂商正在抓紧开发,以解决基于MPEG-2的IBP帧编辑,目前国内很多公司如奥维迅、索贝、大洋已经用软件解决了IBP帧精确编辑的问题,使MPEG-2格式应用到电视节目的制作、传输、存储、播出,构架全电视台的数字化网络系统成为可能。

1996年10月,运动图像专家组开始着手一项新的研究课题来解决多媒体内容描述的问题,即多媒体内容描述接口(简称MPEG-7)。MPEG-7将扩大现今在识别内容方面存在的能力限制,将包括更多的数据类型。MPEG-7的目标是支持多种音频和视觉的描述,包括自由文本、N维时空结构、统计信息、客观属性、主观属性、生产属性和组合信息。对于视觉信息,描述将包括颜色、视觉对象、纹理、草图、形状、体积、空间关系、运动及变形等。

MPEG-7的目标是根据信息的抽象层次,提供一种描述多媒体材料的方法以便表示不同层次上的用户对信息的需求。以视觉内容为例,较低抽象层将包括形状、尺寸、纹理、颜色、运动(轨道)和位置的描述。对于音频的较低抽象层包括音调、调式、音速、音速变化、音响空间位置。MPEG-7的目标是支持数据管理的灵活性、数据资源的全球化和互操作性。

对于未来的多媒体服务,必须将内容的表示和描述共同来考虑,也就是说,许多涉及内容表示的服务必须要首先处理内容描述。利用MPEG-7 描述可用的音视信息,大家就能快速找到我们想要的信息,可以更加自由的与多媒体内容交互及重新使用音视信息的内容,或以新的方式将这些内容的某些成分结合起来使用。

编解码技术在过去十年中不断改进。最新的编解码技术(H.264/AVC与VC-1)代表着第三代视频压缩技术。为具体应用选择正确的编解码器并优化其实时实施仍然是一项巨大的挑战,最佳的设计必须权衡压缩效率及可用的计算能力。 ……

视频压缩是所有令人振奋的、新型视频产品的重要动力。为具体应用选择正确的编解码器并优化其实时处理仍然是一项巨大的挑战。最佳的设计必须权衡压缩效率及可用的计算能力。此外,如何在计算能力有限的情况下获得最佳压缩效率也是一门大学问。

数字视频的主要挑战在于原始或未压缩的视频需要存储或传输大量数据。例如,标准清晰度的 NTSC 视频的数字化一般是每秒 30 帧速率,采用 4:2:2 YCrCb 及 720×480,其要求超过 165Mbps 的数据速率。保存 90 分钟的视频需要 110GB 空间,或者说超过标准 DVD-R 存储容量的 25 倍。即使是视频流应用中常用的低分辨率视频(如CIF:352×288 4:2:0、30 帧/秒)也需要超过 36.5Mbps 的数据速率,这是 ADSL 或 3G 无线等宽带网络速度的许多倍。目前的宽带网可提供 1~10Mbps 的持续传输能力,显然数字视频的存储或传输需要采用压缩技术。

视频压缩的目的是对数字视频进行编码——在保持视频质量的同时占用尽可能少的空间。编解码技术理论依据为信息理论的数学原理。不过,开发实用的编解码技术需要艺术性的精心考虑。

压缩权衡

在选择数字视频系统的编解码技术时需要考虑诸多因素。主要因素包括应用的视频质量要求、传输通道或存储介质所处的环境(速度、时延、错误特征)以及源内容的格式。同样重要的还有预期分辨率、目标比特率、色彩深度、每秒帧数以及内容和显示是逐行扫描还是隔行扫描。压缩通常需要在应用的视频质量要求与其他需求之间做出取舍。首先,用途是存储还是单播、多播、双向通信或广播?对于存储应用,到底有多少可用的存储容量以及存储时间需要多久?对于存储之外的应用,最高比特率是多少?对于双向视频通信,时延容差或容许的端到端系统延迟是多少?如果不是双向通信,内容需要在脱机状态提前完成编码还是需要实时编码?网络或存储介质的容错能力如何?根据基本目标应用,不同压缩标准以不同方式处理这些问题的权衡。

另一方面是需要权衡编解码实时处理的成本。如 H.264/AVC 或 WMV9/VC-1等能够实现较高压缩比的新算法需要更高的处理能力,这会影响编解码器件的成本、系统功耗以及系统内存。

……

标准对编解码技术的普及至关重要。出于规模经济原因,用户根据可承受的标准寻找相应产品。由于能够保障厂商之间的互操作性,业界乐意在标准方面进行投资。而由于自己的内容可以获得较长的生命周期及广泛的需求,内容提供商也对标准青睐有加。尽管几乎所有视频标准都是针对少数特定应用的,但是在能够适用的情况下,它们在其他应用中也能发挥优势。

为了实现更好的压缩及获得新的市场机遇,ITU与 MPEG 一直在不断发展压缩技术和开发新标准。中国最近开发了一种称为 AVS 的国家视频编码标准,我们在后面也会做一介绍。目前正在开发的标准包括 ITU/MPEG 联合可扩展视频编码 (Joint Scalable Video Coding)(对 H264/ AVC 的修订)和MPEG 多视角视频编码 (Multi-view Video Coding)。另外,为了满足新的应用需求,现有标准也在不断发展。例如,H.264 最近定义了一种称为高精度拓展 (Fidelity Range Extensions) 的新模式,以满足新的市场需求,如专业数字编辑、HD-DVD 与无损编码等。

…………视频压缩正在市场中催生数量日益增长的数字视频产品。采用数字视频压缩技术的终端设备范围广泛,从电池驱动的便携设备到高性能基础设备。

数字视频的最佳处理器解决方案取决于具体的目标应用。TI 拥有可支持多种标准并满足主要设计及系统约束需求的各种 DSP。TI的解决方案范围广泛,其中包括低功耗 C5000 DSP与移动OMAP 应用处理器、高性能C6000 DSP 与视频优化的高性能 DM64x 和 DM644x 数字媒体处理器。

德州仪器 (TI) 的DM 列处理器专门针对高端视频系统的需求而设计。该系列的最新处理器是功能强大的 DM6446[15],其采用了TI的达芬奇 (DaVinci)技术[16]。DM6446的双内核架构兼具DSP和RISC技术优势,集成了时钟频率达594MHz 的c64x+ DSP内核与ARM926EJ-S内核。新一代c64x+ DSP 是 TMS320C6000(tm) DSP 平台中性能最高的定 DSP,并建立在TI开发的第二代高性能高级VLIW架构的增强版之上。c64x+与前代C6000 DSP平台代码兼容。DM644x等可编程数字媒体处理器可以支持所有的现有业界标准以及采用单个可编程数字媒体处理器的专有视频格式。DM6446 还具有片上内存,包括一个2级高速缓存和众多具有视频专用功能的外设。DM6446 还包含一种视频/影像协处理器 (VICP),用于减轻相关算法(如:JPEG、H.264、MPEG4 与 VC-1)的 DSP 内核繁重的视频与影像处理负担,从而使更多的 DSP MIPS能够用于视频后处理或者其他并行运行等功能。

压缩标准规定需要的语法与可用的工具,不过许多算法结果取决于具体实施情况。主要变量包括:比特率控制算法、单通道与多通道编码、I/B/P 帧比率、运动搜索范围、运动搜索算法、以及选用的个别工具与模式。这种灵活性允许我们在计算负载和改进质量之间做出不同取舍。显然所有编码器都可以采用或高或低的频率实现不同的视频质量水平。

越来越多的视频压缩标准可以针对具体最终应用提供越来越高的压缩效率和越来越丰富的工具。另外,向网络化连接发展的趋势意味着许多产品越来越需要支持多种标准。多种标准和专有算法的流行也使我们难以选择单个标准,尤其是在硬件决策经常超前于产品部署的情况下。不仅如此,每个视频编码算法都提供丰富的工具与功能选择,以平衡压缩效率的复杂性。工具和功能的选择是与特定应用和用例息息相关的重复过程。由于必须支持的编解码器数量的增多以及针对具体解决方案和应用而对编解码器进行优化的选择范围更为广泛,因此在数字视频系统中采用灵活的媒体处理器是大势所趋。DM6446等数字媒体处理器可充分满足性能处理需求同时架构灵活,从而能够快速把新标准实施推向市场,其中包括:H.264、AVS 与 WMV9。我们可以在标准定义阶段实施算法并且保持软件算法与工具的更新,从而紧随标准大大小小的修改并且满足应用不断变化的质量需求。

编辑词条
http://tech.sina.com.cn/other/2004-10-15/1438441503.shtml

2. 用迅雷或者kmplayer软件做源码输出会发生音画不同步,画面延迟。怎么解

一、我来回答这个问题,不过我没用KMplayer,用的是potplayer。设置原理应该一样的。出现的问题如下:
电脑连接功放,功放连接电视,音频直通给功放解码,播放TrueHD音频源码直通,画面比声音滞后。

解决办法:potplayer播放器-选项-声音-音频解码器设置--直通勾选后-将TrueHD下:passthrough合成器从默认改为备用。
二、附上播放4K等耗费CPU音画不同步或者卡顿的方法:
1、选项-播放-优先运行权: 默认是"高配置", 可以选择"实时性"尝试一下 这个我暂未尝试
2、选项-滤镜-视频解码器-内置解码器/DXVA设置:
勾选: 图像滞后时允许漏帧保证同步
勾选: 使用硬件加速

3. 详细说下OSI及TCP/IP是什么及其原理…

TCP/IP(Transmission Control Protocol/Internet Protocol)的简写,中文译名为传输控制协议/互联网络协议)协议是Internet最基本的协议,简单地说,就是由网络层的IP协议和传输层的TCP协议组成的。 没有什么原理就是一种通信协议
OSI是Open System Interconnection 的缩写,意为开放式系统互联参考模型。在OSI出现之前,计算机网络中存在众多的体系结构,其中以IBM公司的SNA(系统网络体系结构)和DEC公司的DNA(Digital Network Architecture)数字网络体系结构最为着名。为了解决不同体系结构的网络的互联问题,国际标准化组织ISO(注意不要与OSI搞混)于1981年制定了开放系统互连参考模型(Open System Interconnection Reference Model,OSI/RM)。这个模型把网络通信的工作分为7层,它们由低到高分别是物理层(Physical Layer),数据链路层(Data Link Layer),网络层(Network Layer),传输层(Transport Layer),会话层(Session Layer),表示层(Presentation Layer)和应用层(Application Layer)。第一层到第三层属于OSI参考模型的低三层,负责创建网络通信连接的链路;第四层到第七层为OSI参考模型的高四层,具体负责端到端的数据通信。每层完成一定的功能,每层都直接为其上层提供服务,并且所有层次都互相支持,而网络通信则可以自上而下(在发送端)或者自下而上(在接收端)双向进行。当然并不是每一通信都需要经过OSI的全部七层,有的甚至只需要双方对应的某一层即可。物理接口之间的转接,以及中继器与中继器之间的连接就只需在物理层中进行即可;而路由器与路由器之间的连接则只需经过网络层以下的三层即可。总的来说,双方的通信是在对等层次上进行的,不能在不对称层次上进行通信。
OSI 标准制定过程中采用的方法是将整个庞大而复杂的问题划分为若干个容易处理的小问题,这就是分层的体系结构办法。在OSI中,采用了三级抽象,既体系结构,服务定义,协议规格说明。
OSI划分层次的原则

网络中各结点都有相同的层次
不同结点相同层次具有相同的功能
同一结点相邻层间通过接口通信
每一层可以使用下层提供的服务,并向上层提供服务
不同结点的同等层间通过协议来实现对等层间的通信
OSI/RM分层结构

1.对等层实体间通信时信息的流动过程
对等层通信的实质:
对等层实体之间虚拟通信;下层向上层提供服务;实际通信在最底层完成在发送方数据由最高层逐渐向下层传递,到接收方数据由最低层逐渐向高层传递.
协议数据单元PDU
SI参考模型中,对等层协议之间交换的信息单元统称为协议数据单元(PDU,Protocol Data Unit)。
而传输层及以下各层的PDU另外还有各自特定的名称:
传输层——数据段(Segment)
网络层——分组(数据报)(Packet)
数据链路层——数据帧(Frame)
物理层——比特(Bit)

OSI的七层结构

第一层:物理层(PhysicalLayer),规定通信设备的机械的、电气的、功能的和规程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE和DCE双方在各电路上的动作系列。
在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
物理层的主要功能:
为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路.
传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要.
完成物理层的一些管理工作.
第二层:数据链路层(DataLinkLayer):在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
链路层的主要功能:
链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:
链路连接的建立,拆除,分离。
帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界。
顺序控制,指对帧的收发顺序的控制。
差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发技术来完成。
第三层是网络层(Network layer)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。
如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。
在这一层,数据的单位称为数据包(packet)。
网络层协议的代表包括:IP、IPX、RIP、OSPF等。
网络层主要功能:
网络层为建立网络连接和为上层提供服务,应具备以下主要功能:
路由选择和中继
激活,终止网络连接
在一条数据链路上复用多条网络连接,多采取分时复用技术
差错检测与恢复
排序,流量控制
服务选择
网络管理
网络层标准简介
第四层是处理信息的传输层(Transport layer)。第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。
传输层协议的代表包括:TCP、UDP、SPX等。
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。 传输层也称为运输层.传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层.
有一个既存事实,即世界上各种通信子网在性能上存在着很大差异.例如电话交换网,分组交换网,公用数据交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传输速率,数据延迟通信费用各不相同.对于会话层来说,却要求有一性能恒定的界面.传输层就承担了这一功能.它采用分流/合流,复用/介复用技术来调节上述通信子网的差异,使会话层感受不到.
此外传输层还要具备差错恢复,流量控制等功能,以此对会话层屏蔽通信子网在这些方面的细节与差异.传输层面对的数据对象已不是网络地址和主机地址,而是和会话层的界面端口.上述功能的最终目的是为会话提供可靠的,无误的数据传输.传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程.而在数据传送阶段又分为一般数据传送和加速数据传送两种。传输层服务分成5种类型.基本可以满足对传送质量,传送速度,传送费用的各种不同需要.传输层的协议标准有以下几种:
第五层是会话层(Session layer)
这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层,表示层,应用层构成开放系统的高3层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等. 会话层同样要担负应用进程服务要求,而运输层不能完成的那部分工作,给运输层功能差距以弥补.主要的功能是对话管理,数据流同步和重新同步。要完成这些功能,需要由大量的服务单元功能组合,已经制定的功能单元已有几十种.现将会话层主要功能介绍如下.
为会话实体间建立连接。为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作:
将会话地址映射为运输地址
选择需要的运输服务质量参数(QOS)
对会话参数进行协商
识别各个会话连接
传送有限的透明用户数据
数据传输阶段
这个阶段是在两个会话用户之间实现有组织的,同步的数据传输.用户数据单元为SSDU,而协议数据单元为SPDU.会话用户之间的数据传送过程是将SSDU转变成SPDU进行的.
连接释放
连接释放是通过"有序释放","废弃","有限量透明用户数据传送"等功能单元来释放会话连接的.会话层标准为了使会话连接建立阶段能进行功能协商,也为了便于其它国际标准参考和引用,定义了12种功能单元.各个系统可根据自身情况和需要,以核心功能服务单元为基础,选配其他功能单元组成合理的会话服务子集.会话层的主要标准有"DIS8236:会话服务定义"和"DIS8237:会话协议规范".
第六层是表示层(Presentation layer)
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。例如图像格式的显示,就是由位于表示层的协议来支持。
第七层应用层(Application layer),应用层为操作系统或网络应用程序提供访问网络服务的接口。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
通过 OSI 层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机 A 上的应用程序要将信息发送到计算机 B 的应用程序,则计算机 A 中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层(第一层)。在物理层,数据被放置在物理网络媒介中并被发送至计算机 B 。计算机 B 的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机 B 的应用层。最后,计算机 B 的应用层再将信息传送给应用程序接收端,从而完成通信过程。下面图示说明了这一过程。
OSI 的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的 OSI 层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。
对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个 OSI 层来说并不是必需的。
当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层间的通信信息。头、尾以及数据是相关联的概念,它们取决于分析信息单元的协议层。例如,传输层头包含了只有传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对于网络层,一个信息单元由第三层的头和数据组成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一 OSI 层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为封装。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B ,数据首先传送至应用层。 计算机 A 的应用层通过在数据上添加协议头来和计算机 B 的应用层通信。所形成的信息单元包含协议头、数据、可能还有协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机 B 中的物理层收到信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取计算机 A 的数据链路层添加的协议头中的控制信息;然后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至上一层。应用层执行完这些动作后,数据就被传送至计算机 B 中的应用程序,这些数据和计算机 A 的应用程序所发送的完全相同 。
一个 OSI 层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服务帮助一 OSI 层与另一计算机系统的对应层进行通信。一个 OSI 模型的特定层通常是与另外三个 OSI 层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机 A 的数据链路层应与其网络层,物理层以及计算机 B 的数据链路层进行通信。

OSI模型与TCP/IP模型的比较

TCP/IP模型实际上是OSI模型的一个浓缩版本,它只有四个层次:
1.应用层
2.运输层
3.网际层
4.网络接口层
与OSI功能相比:
应用层对应着OSI的 应用层 表示层 会话层
运输层对应着OSI的传输层
网际层对应着OSI的网络层
网络接口层对应着OSI的数据链路层和物理层[编辑本段]2 .
Open Source Initiative(简称OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。

4. 在Flash中,点击Flash按钮转到第几帧时,代码怎么写

几种Action命令

1.影片的播放与停止:
Play( );//播放命令 stop( );//停止命令
2.改变Frame流向命令
gotoAndPlay(frame) //跳到指定的画面并连续播放。
gotoAndStop(frame) //跳到指定的画面并停止播放。
gotAndplay(“场景名称”,frame)//跳到指定场景帧并连续播放。
gotoAndStop(“场景名称:,frlme)//跳到指定场景帧并停止播放。
nextFrame( );//跳到下一帧播放;
PrevPrame( );//跳到上一帧播放。

3.控制影片剪辑的播放与停止:tellTarget命令
如:tellTarget(“C1”)
{gotoAndStop(2);}//跳影片剪辑实例C1的第2帧并停止。

二、几种功能元件的制作方法
1.计时器的制作
单击菜单Insert/new symbol,在弹出的对话框中输入插入的符号名称(如:计时器),确
定后选择文字工具,属性为动态(Dynamic text),在第一帧中画两个文本框。分别设置变
量名为munite和timer,在两个文本框之间画一个形如冒号的圆点(这两个圆点可以做成一个
符号,类型为电影片段,每秒闪动一次.然后拖入到两文本框之间。在第二帧插入帧。在
第一帧输入动作脚本(Action)如下:
//设置时间的初值
if(!started) {
start_time=getTimer();
started=true;
timer=0;
i=o;
munite=0;
}
x=getTimer()-start_time;//计算时间的变化
x=int(x/1000); //时间的单位为1000分之一秒
y=x-60*i
if (y>59)
{i=i+1;munite=munite+1
timer=timer+1:
}
else
{timer=y}
该符号制作完毕后。将其拖入主场景中即可。

2.智能判断速择题,并作正误提示
单击菜单Insert/new symbo1,在弹出的对话框中输入插入的符名称。如:“对错提示”。
符号类型为“电影片段”。在第一帧输入文本“在括号内输入答案,按enrer键确定“ 在
该帧上输入动作脚本:
_root.flah=false;_root.ans=" ";gotoAndStop(1);在第16帧插入空关键帧。在该帧上
画一个形如“x”的图或输入文本“x”,在第30帧插入关键帧,帧AAction为_root.ans="
":gotoAndStop(31);在第31帧插人空白关键帧,在该帧上输人静态文本“请重作,按e
nter键确定。“在该帧输入脚本:“stop();”至此,该符号制作主或:例如:
第1题:1十1十( )
A.2 B.3 C.4 D.0
在上例括号位置插入动态文本框,不输入任何内容。该文本框变量名为:ans。在该帧适当
位置插入电影“对错提示”,该电影片断名属性为“ql”,在该电影片断上输人脚本:

//键盘事件控制程序
onClipEvent(keyDown)
}
//取得按键的键值
keycode=Key.getCode();
//判断是否为Enter键
if(keycode==Key.ENTER) {
//判断输入的答案是否正确
//answer=Number(A)
if(_root,ans=="A" or _root.ans=="a"{
//显示“答对了”信息
tellTsrget(_root.q1) {
gotoAndPlay(2);
}
} else {
//显示“答错了”信息
tellTarget(_root.q1) {
gotoAndplay(16)
}
}
}
}

3.声音的加载和控制
插入一段音乐:在Pile/Import to Library中,找到要插入的音乐(如战马奔腾),打开符
号库,找到“战马奔腾”符号,单击右键,在弹出的菜单中单击Linkage…命令,再在弹出
的菜单中选中Export for ActionSc选项,在Indentify框内输入标识符:如music。
在需要播放的帧插入如下脚本:
soun=new Sound();//创建声音实例
sound.attachSound("music");//将音乐music链接到sound实例
sound.start(0,2);//播放音乐2遍
sound.setVolume(70):该音乐的音量为70%。
以上加载音乐通过帧加载,也可以通过按钮加载。
停止音乐的方法:制作一个按钮,在按钮上输人脚本:
on(release)
{
sound.stop();
}

4.如何用键盘控制帧的跳转
有的教师喜欢用键盘进行操作,如何使这类操作方使自如呢?用Flash MX制作的方法如下:

制作一个符号(如“知识回顾”),符号类型为“电影片段”。在这个符号中将需要回顾的
知识点逐帧展示,每帧动作脚本为:stop()回到主场景,在需要的帧插入该符号,该帧脚
本为:stop();插入后.单击该符号.输人脚本:
onClipEvent(Key Down) {//键盘响应,按下任一键时响应该命令
nextFrame();
}
这样即实现了按任一键便可跳转到指定帧的效果。此例仅仅是一种基本方法,读者朋友在
应用时可以有更多的扩展。

5.鼠标指向显示填空题答案
显示一些问题的答案,可以将这一答案制成—个按钮,在这一按钮的Up帧可以为空白关键
帧,其它帧为答案内容。在问题的答案处插入该按钮,在该帧输入脚本:
on(release) {
gotoAndStop;//第i帧将答案固定显示在屏幕上

flash场景之间相互跳转的实现方法
在制作flash动画的时候,可能会有有很的mc
有时会把它放到几个场景中,那么在场景中的跳转如何实现呢?
1.方法一:(使用telltarget命令)
按钮上的as为:
on (release) {
tellTarget ("/") {
gotoAndPlay ("场景 1", 1);
}
}
2.方法二(用gotoandplay命令)
主场景2中的mc放到场景2的时间轴上
按钮的as:
on release {
gotoAndPlay(”场景1”,1)
}
并且在最后一帧加stop()
问题就可以解决了:
3.方法三(利用路径_root.gotoandplay())
第二个场景2里面只有一个mc,在这个mc的最后一帧是stop和一个replay按

按钮的as:_root.gotoAndPlay(1)
【即告知按钮回到场景1的第一帧】

4.方法四(给场景起不同的名字)
如果你的as这样写:
第二个sence里面只有一个mc,在这个mc的最后一帧是stop和一个repl
ay按钮
按钮的as:
on release {
gotoAndPlay(”sence1”,1)

结果按下后却是从这个mc的第一帧开始播放,而不是从sence1的第一帧
这是因为主场景的名字默认为senceN
MC里也可以有多个场景,而mc也是默认为senceN
所以当你在MC用上gotoAndPlay ("scene1", 1);时,指的是所在场景中MC里的第一帧,而
不是主场景
解决的方法,就是给场景定义不同的名字
scene1我们改名为:主场景
scene2我们改名为:次场景1
正确的as应该为:
on (release) {
tellTarget (_root) {
gotoAndPlay (1);
}
}
如果想实现按钮点击后从次场景播放就可以在按钮上写上:
on (release) {
tellTarget (_root.次场景) {
gotoAndPlay (1);
}
}
5.方法五(利用标签label)
我们在控制动画的时候一般也不是从开始播放,可能是希望从某个场景的某一个关键帧开
始播放,那么标签是
最好的实现方法;
例如我们希望点击上面的按钮的时候让动画从主场景中的label1开始 播放,那么按钮上的
as应该为:
on (release) {
tellTarget (_root) {
gotoAndPlay ("label1");
}
例如有3个场景,我们希望点击上面的按钮的时候让动画从次场景1中的label4开始播放,
那么按钮上的as应该为:
on (release) {
tellTarget (_root) {
gotoAndPlay ("次场景 1", "label4");
}
}
}
}
如果想实现按钮点击后从次场景播放
就可以在按钮上写上:
on (release) {
tellTarget (_root.次场景) {
gotoAndPlay (1);
}
}

3,什么叫矢量图?
矢量图可以任意缩放而不影响Flash的画质,位图图像一般只作为静态元素或背景图,Fla
sh并不擅长处理位图图像的动作,应避免位图图像元素的动画。
4,如何迅速地对齐不同Frame中的物件?
用 Inspector “Ctrl+Alt+I” 直接输入坐标。
或是工具栏〉〉窗口〉〉面板〉〉排列“Ctrl+K” 调出排列面板来。图例
5,怎样调节一个Symbol/MC地透明度?
选中Symbol/MC,菜单栏找到Modify(修改) 〉〉 Instance (实例)〉〉Color effect (效果
)〉〉 Alpha(透明度) 调整就可以了
6,做好地Flash放在html上面以后,它老是循环,怎么能够让它不进行循环?
最后一个祯地Action设置成Stop(停止)
7,怎样给我的FLASH做一个预加载地LOADING?
用Action语法地if frame is loaded来实现,新建一层,这层专门放Action,
第一帧,
ifFrameLoaded ("场景", frame) //假如场景中地祯数已经载入
goto and play() //跳至并播放某某祯(自己设定)
{}
第二帧,
goto and play("场景1", 1)//跳至并播放第一祯循环
再加上一个load地MC循环播放在这两帧的中间,就OK了。
什么?你要非常详细地LOADING?那就当这个源码吧,够详细了.
源码下载
8,怎样点击一个按钮打开一个页面html而不是一个祯.
制作一个按钮,上面地AS直接写:
on (release)
getURL ("***.html");
{}
这里地***.html就是你要打开地页面文件名,当然也可以是某某URL地址,比如说http://www.quanmingle.cn
9,我在按钮地OVER祯放置了一个很大地MC,为什么我要没有点击到按钮鼠标就变成了手地状态?
按钮真正激活区是在HIT(按下)祯地位置,如果想控制按钮的位置为一定值,可以在HIT祯绘
制一个透明地图形来判断.
10,如果屏蔽鼠标右键?FS命令都是什么意思?
fscommand ("fullscreen", "true/false");(全屏设置,TRUE开,FALSE关)
fscommand ("showmenu", "true/false");(右键菜单设置,TRUE显示,FALSE不显示)
fscommand ("allowscale", "true/false");(缩放设置,TRUE自由缩放,FALSE调整画面
不影响影片本身的尺寸)
fscommand ("trapallkeys", "true/false");(快捷键设置,TRUE快捷键开,FALSE快捷键
关)
fscommand ("exec");(EXE程序调用)
fscommand ("quit");(退出关闭窗口)
11,在FLASH中的字体总是很模糊,用变清晰地办法吗?
写好文本以后CTRL+T打开文本设置面板,在最后地文本框选项那里框选使用设计字体就行了
.(注意最好使用宋体,尺寸为12或者8,这样比较工整)
12,我想做一个MTV,怎么导入声音呀?
很简单,CTRL+R导入你地声音文件就行了.
13,我制作地MTV声音和歌词总是不同步.
CTRL+F打开祯控制面板,右边找到声音选项卡,调整声音地同步效果为STREM(音频数据流)模
式就行了.
14,怎样可以做出很漂亮地字体特效?
用第三方软件Swish和Swfx这些,闪吧地软件资源有下载.

5. 直播系统源码:直播平台开发中,源码有什么用

建个房子,源码就相当于地基了。重要性不言而喻,好的源码可以造就好的直播平台。想要做直播的咱们可以沟通下,专业的呆萌直播开发团队。

6. 求前辈指教。linux的套接字编程,这个程序运行,我照着源码敲,出现一堆错误。用的是vim和gcc

再启动时会出现:
Bind(): Address already in use
的错误提示,并导致程序直接退出;

$netstat -an |grep 8080



$ps aux |grep 8080
都还能看到刚才用Ctrl+C“强制结束”了的进程,端口还是使用中,
只能用kill结束进程,才能收回端口,很是麻烦。
在代码中添加:
int optval;

optval = 1;

ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval) );
可以解决这问题。
在网上查到的更好的解释如下:
http://www.ibm.com/developerworks/cn/linux/l-sockpit/
在 4.2 BSD UNIX® 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。
事实上,很难找到一种不支持 Sockets API 的现代语言。
该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。
本文识别那些隐患并向您显示如何避开它们。

隐患 1.忽略返回状态
第一个隐患很明显,但它是开发新手最容易犯的一个错误。
如果您忽略函数的返回状态,当它们失败或部分成功的时候,您也许会迷失。
反过来,这可能传播错误,使定位问题的源头变得困难。
捕获并检查每一个返回状态,而不是忽略它们。
考虑清单 1 显示的例子,一个套接字 send 函数。

清单 1. 忽略 API 函数返回状态

int status, sock, mode;

/* Create a new stream (TCP) socket */
sock = socket( AF_INET, SOCK_STREAM, 0 );
...
status = send( sock, buffer, buflen, MSG_DONTWAIT );
if (status == -1)
{
/* send failed */
printf( "send failed: %s\n", strerror(errno) );
}
else
{
/* send succeeded -- or did it? */
}

清单 1 探究一个函数片断,它完成套接字 send 操作(通过套接字发送数据)。
函数的错误状态被捕获并测试,但这个例子忽略了send 在无阻塞模式(由 MSG_DONTWAIT 标志启用)下的一个特性。
send API 函数有三类可能的返回值:
如果数据成功地排到传输队列,则返回 0。
如果排队失败,则返回 -1(通过使用 errno 变量可以了解失败的原因)。
如果不是所有的字符都能够在函数调用时排队,则最终的返回值是发送的字符数。
由于 send 的 MSG_DONTWAIT 变量的无阻塞性质,
函数调用在发送完所有的数据、一些数据或没有发送任何数据后返回。
在这里忽略返回状态将导致不完全的发送和随后的数据丢失。

隐患 2.对等套接字闭包
UNIX 有趣的一面是您几乎可以把任何东西看成是一个文件。
文件本身、目录、管道、设备和套接字都被当作文件。
这是新颖的抽象,意味着一整套的 API 可以用在广泛的设备类型上。
考虑 read API 函数,它从文件读取一定数量的字节。
read 函数返回:
读取的字节数(最高为您指定的最大值);
或者 -1,表示错误;
或者 0,如果已经到达文件末尾。
如果在一个套接字上完成一个 read 操作并得到一个为 0 的返回值,这表明远程套接字端的对等层调用了 close API 方法。
该指示与文件读取相同 —— 没有多余的数据可以通过描述符读取(参见 清单 2)。

清单 2.适当处理 read API 函数的返回值

int sock, status;
sock = socket( AF_INET, SOCK_STREAM, 0 );
...
status = read( sock, buffer, buflen );
if (status > 0)
{
/* Data read from the socket */
}
else if (status == -1)
{
/* Error, check errno, take action... */
}
else if (status == 0)
{
/* Peer closed the socket, finish the close */
close( sock );
/* Further processing... */
}

同样,可以用 write API 函数来探测对等套接字的闭包。
在这种情况下,接收 SIGPIPE 信号,或如果该信号阻塞,write 函数将返回 -1 并设置 errno 为 EPIPE。

隐患 3.地址使用错误(EADDRINUSE)
您可以使用 bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接字端点。
可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。
也可以在客户端设置中使用这个函数,以便限制应当供出去的连接所使用的接口。
bind 最常见的用法是关联端口号和服务器,并使用通配符地址(INADDR_ANY),它允许任何接口为到来的连接所使用。
bind 普遍遭遇的问题是试图绑定一个已经在使用的端口。
该陷阱是也许没有活动的套接字存在,但仍然禁止绑定端口(bind 返回EADDRINUSE),
它由 TCP 套接字状态 TIME_WAIT 引起。
该状态在套接字关闭后约保留 2 到 4 分钟。
在 TIME_WAIT 状态退出之后,套接字被删除,该地址才能被重新绑定而不出问题。
等待 TIME_WAIT 结束可能是令人恼火的一件事,
特别是如果您正在开发一个套接字服务器,就需要停止服务器来做一些改动,然后重启。
幸运的是,有方法可以避开 TIME_WAIT 状态。可以给套接字应用 SO_REUSEADDR 套接字选项,以便端口可以马上重用。
考虑清单 3 的例子。
在绑定地址之前,我以 SO_REUSEADDR 选项调用 setsockopt。
为了允许地址重用,我设置整型参数(on)为 1 (不然,可以设为 0 来禁止地址重用)。

清单 3.使用 SO_REUSEADDR 套接字选项避免地址使用错误

int sock, ret, on; struct sockaddr_in servaddr; /* Create a new stream (TCP) socket */ sock = socket( AF_INET, SOCK_STREAM, 0 ):
/* Enable address reuse */
on = 1;
ret = setsockopt( sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on) );

/* Allow connections to port 8080 from any available interface */
memset( &servaddr, 0, sizeof(servaddr) );
servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = htonl( INADDR_ANY );
servaddr.sin_port = htons( 45000 );

/* Bind to the address (interface/port) */
ret = bind( sock, (struct sockaddr *)&servaddr, sizeof(servaddr) );

在应用了 SO_REUSEADDR 选项之后,bind API 函数将允许地址的立即重用。

隐患 4.发送结构化数据
套接字是发送无结构二进制字节流或 ASCII 数据流(比如 HTTP 上的 HTTP 页面,或 SMTP 上的电子邮件)的完美工具。但是如果试图在一个套接字上发送二进制数据,事情将会变得更加复杂。
比如说,您想要发送一个整数:您可以肯定,接收者将使用同样的方式来解释该整数吗?
运行在同一架构上的应用程序可以依赖它们共同的平台来对该类型的数据做出相同的解释。
但是,如果一个运行在高位优先的 IBM PowerPC 上的客户端发送一个 32 位的整数到一个低位优先的 Intel x86,
那将会发生什么呢?
字节排列将引起不正确的解释。
字节交换还是不呢?
Endianness 是指内存中字节的排列顺序。高位优先(big endian) 按最高有效字节在前排列,然而 低位优先(little endian) 按照最低有效字节在前排序。
高位优先架构(比如 PowerPC®)比低位优先架构(比如 Intel® Pentium® 系列,其网络字节顺序是高位优先)有优势。这意味着,对高位优先的机器来说,在 TCP/IP 内控制数据是自然有序的。低位优先架构要求字节交换 —— 对网络应用程序来说,这是一个轻微的性能弱点。
通过套接字发送一个 C 结构会怎么样呢?这里,也会遇到麻烦,因为不是所有的编译器都以相同的方式排列一个结构的元素。结构也可能被压缩以便使浪费的空间最少,这进一步使结构中的元素错位。
幸好,有解决这个问题的方案,能够保证两端数据的一致解释。过去,远程过程调用(Remote Procere Call,RPC)套装工具提供所谓的外部数据表示(External Data Representation,XDR)。XDR 为数据定义一个标准的表示来支持异构网络应用程序通信的开发。
现在,有两个新的协议提供相似的功能。可扩展标记语言/远程过程调用(XML/RPC)以 XML 格式安排 HTTP 上的过程调用。数据和元数据用 XML 进行编码并作为字符串传输,并通过主机架构把值和它们的物理表示分开。SOAP 跟随 XML-RPC,以更好的特性和功能扩展了它的思想。参见 参考资料 小节,获取更多关于每个协议的信息。
回页首
隐患 5.TCP 中的帧同步假定
TCP 不提供帧同步,这使得它对于面向字节流的协议是完美的。
这是 TCP 与 UDP(User Datagram Protocol,用户数据报协议)的一个重要区别。
UDP 是面向消息的协议,它保留发送者和接收者之间的消息边界。
TCP 是一个面向流的协议,它假定正在通信的数据是无结构的,
如图 1 所示。

图 1.UDP 的帧同步能力和缺乏帧同步的 TCP

图 1 的上部说明一个 UDP 客户端和服务器。
左边的对等层完成两个套接字的写操作,每个 100 字节。
协议栈的 UDP 层追踪写的数量,并确保当右边的接收者通过套接字获取数据时,它以同样数量的字节到达。
换句话说,为读者保留了写者提供的消息边界。
现在,看图 1 的底部.它为 TCP 层演示了相同粒度的写操作。
两个独立的写操作(每个 100 字节)写入流套接字。
但在本例中,流套接字的读者得到的是 200 字节。
协议栈的 TCP 层聚合了两次写操作。
这种聚合可以发生在 TCP/IP 协议栈的发送者或接收者中任何一方。
重要的是,要注意到聚合也许不会发生 —— TCP 只保证数据的有序发送。
对大多数开发人员来说,该陷阱会引起困惑。
您想要获得 TCP 的可靠性和 UDP 的帧同步。
除非改用其他的传输协议,比如流传输控制协议(STCP),
否则就要求应用层开发人员来实现缓冲和分段功能。

调试套接字应用程序的工具
GNU/Linux 提供几个工具,它们可以帮助您发现套接字应用程序中的一些问题。
此外,使用这些工具还有教育意义,而且能够帮助解释应用程序和 TCP/IP 协议栈的行为。
在这里,您将看到对几个工具的概述。查阅下面的 参考资料 了解更多的信息。
查看网络子系统的细节
netstat 工具提供查看 GNU/Linux 网络子系统的能力。
使用 netstat,可以查看当前活动的连接(按单个协议进行查看),
查看特定状态的连接(比如处于监听状态的服务器套接字)和许多其他的信息。
清单 4 显示了 netstat 提供的一些选项和它们启用的特性。

清单 4.netstat 实用程序的用法模式

View all TCP sockets currently active $ netstat --tcp View all UDP sockets $ netstat --udp View all TCP sockets in the listening state $ netstat --listening View the multicast group membership information $ netstat --groups Display the list of masqueraded connections $ netstat --masquerade View statistics for each protocol $ netstat --statistics

尽管存在许多其他的实用程序,但 netstat 的功能很全面,
它覆盖了 route、ifconfig 和其他标准 GNU/Linux 工具的功能。
监视流量
可以使用 GNU/Linux 的几个工具来检查网络上的低层流量。
tcpmp 工具是一个比较老的工具,它从网上“嗅探”网络数据包,打印到stdout 或记录在一个文件中。
该功能允许查看应用程序产生的流量和 TCP 生成的低层流控制机制。
一个叫做 tcpflow 的新工具与tcpmp 相辅相成,
它提供协议流分析和适当地重构数据流的方法,而不管数据包的顺序或重发。
清单 5 显示 tcpmp 的两个用法模式。

清单 5.tcpmp 工具的用法模式

Display all traffic on the eth0 interface for the local host
$ tcpmp -l -i eth0 // Show all traffic on the network coming from or going to host plato
$ tcpmp host plato // Show all HTTP traffic for host camus
$ tcpmp host camus and (port http) //View traffic coming from or going to TCP port 45000 on the local host
$ tcpmp tcp port 45000

tcpmp 和 tcpflow 工具有大量的选项,包括创建复杂过滤表达式的能力。
查阅下面的 参考资料 获取更多关于这些工具的信息。
tcpmp 和 tcpflow 都是基于文本的命令行工具。
如果您更喜欢图形用户界面(GUI),有一个开放源码工具 Ethereal 也许适合您的需要。
Ethereal 是一个专业的协议分析软件,它可以帮助调试应用层协议。
它的插入式架构(plug-in architecture)可以分解协议,
比如 HTTP 和您能想到的任何协议(写本文的时候共有 637 个协议)。
回页首
总结
套接字编程是容易而有趣的,但是您要避免引入错误或至少使它们容易被发现,
这就需要考虑本文中描述的这 5 个常见的陷阱,并且采用标准的防错性程序设计实践。
GNU/Linux 工具和实用程序还可以帮助发现一些程序中的小问题。
记住:在查看实用程序的帮助手册时候,跟踪相关的或“请参见”工具。
您也许会发现一个必要的新工具。

7. 设计一个用8250实现串口通信

数据接收存储技术革新是信号采集处理领域内的一个重要课题。利用这种技术,可以把信号的实时采集和精确处理在时间上分为两个阶段,有利于获得令人更满意的处理结果。在无线数传接收设备中应用数据接收存储方法时,除了要满足数据传输速率和差错控制方面的要求外,还需要考虑如何使设备易于携带、接口简单、使用方便。
传统外设接口技术不但数据传输速率较低,独占中断、I/O地址、DMA通道等计算机系统关键资源,容易造成资源冲突问题,而且使用时繁杂的安装配置手续也给终端用户带来了诸多不便。近年来,USB接口技术迅速发展,新型计算机纷纷对其提供支持。USB2.0是USB技术发展的最新成果,利用USB2.0接口技术开发计算机外设,不但可以借用其差错控制机制[1][6]减轻开发人员的负担、获得高速数据传输能力(480Mb/s),而且可以实现便捷的机箱外即插即用特性,方便终端用户的使用。
1 无线数传接设备总体构成
无线数传接收设备是某靶场测量系统的一个重要组成部分。如图1所示,该设备由遥测接收机利用天线接收经过调制的无线电波信号,解调后形成传输速率为4Mb/s的RS-422电平差分串行数据流。以帧同步字打头的有效数据帧周期性地出现在这些串行数据中。数据转存系统从中提取出有效的数据帧,并在帧同步字后插入利用GPS接收机生成的本地时间信息,用于记录该帧数据被接收到的时间,然后送给主机硬件保存。
在无线数传接收设备中,数据转存系统是实现数据接收存储的关键子系统。下面将详细介绍该系统的硬件实现及工作过程。

2 数据转存系统基本构成及硬件实现
数据转存系统主要由FPGA模块、DSP模块、USB2.0接口芯片构成,各个模块之间的相互关系如图2所示示。图中,4Mb/s的串行数据输入信号SDI已由RS-422差分电平转换为CMOS电平。为突出重点,不太重要的信号连线未在图中绘出。下面分别介绍这几个模块的主要功能。
2.1 FPGA模块实现及春功能
FPGA模块在Altera公司ACEX系列的EP1K30TI144-2芯片中实现。其中主要的功能子模块有:位同步逻辑、帧同步逻辑、授时时钟和译码逻辑。位同步逻辑主要由数字锁相环构成,用于从串行数据输入信号SDI中恢复出位时钟信号。帧同步逻辑从位同步逻辑的输出信号提取帧同步脉冲。两者为DSP利用其同步串行口接收串行数据作好准备。这样,利用一对差分信号线就可以接收同步串行数据,简化了印制电路板的外部接口。授时时钟在DSP和GSP接收机的协助下生成精度为0.1ms的授时信息。译码逻辑用于实现系统互联。
2.2 DSP模块实现及其功能
DSP模块是数据转存系统的主控模块,在T1公司16位定点DSP芯片TMS320F206[4]中实现。在DSP的外部数据空间还配置了32KX16的高速SRAM,可以缓存80余帧数据,用于提高系统的差错控制能力。DSP利用同步串行口接收FPGA送来的同步串行数据,利用异步串口接收GPS接收机送来时间信息(用于初始化FPGA授时时钟),利用外部总线接口访问FPGA授时时钟、外部SRAM、ISP1581的片内寄存器。可以看出DSP模块主要用于完成数据帧的接收、重组以及转存调度等任务。

ISP1581芯片是PHILIPS公司推出的高速USB2.0设备控制器,实现了USB2.0/1.1物理层、协议层,完全符合USB2.0规范,即支持高速(480Mb/s)操作,又支持全速(12Mb/s)操作。ISP1581没有内嵌微处理器,但对微处理器操作了灵活的接口。在上电时,通过配置BUS——CONF、DAO、MODE1、MODE0、DA1引脚电平可以适应绝大多数的微处理器接口类型。例如,通过BUS_CONF/DA0引脚,总线配置可以选择普通处理器模块(Generic Phocessor mode)中分割总线模式(Split Bus Mode);在普通处理器模式下,通过MODE0/DA1引脚可以选择读写选通为8051风格或者Motorola风格。
在数据转存系统中,ISP1581用于处理主机的高速数据传输。它工作在普通处理器接口模式下,采用8051风格的读写选通信号,由DSP芯片TMS320F206控制。两者在选定工作方式下的信号连线如图3所示,图中未画出的信号引脚可以悬空,供电引脚的连接方式在参考资料[2]第46页有简明描述。在FPGA译码逻辑的作用下,ISP1581的片内寄存器被映射在DSP的片外数据空间中。DSP通过8位地址线选择要访问的寄存器,在读写选通信号的控制下,利用16位数据线与选定的寄存器交换数据。在访问ISP1581单字节寄存器时,数据总线高字节内容无关紧要。ISP1581通过中断引脚INT向DSP报告发生的总线事件,利用D+、D-引脚完成与主机的数据交换。
3 数据转存系统的工作过程
系统加电后,当FPGA配置过程结束时,如果有串行数据输入,位同步逻辑和帧同步逻辑便启动同步过程。同时,DSP片内FLASH中复位中断服务程序c_int0()[4]被立即执行,在建立好C语言的工作环境下,它会调用主函数main()。在main()中,需要安排好一系列有先后顺序的初始化工作。其中,ISP1581的初始化过程比较复杂,需要考虑设备采用的供电方式(这里为自供电[6]方式)、插接主机和系统上电的先后次序,并需要与USB总线枚举[1][6]过程相结合。
在FPGA中的位同步逻辑和帧同步逻辑均进入同步状态,且DSP主控模块配合主机完成初始化任务后,即可启动数据的传输过程。下面介绍一下ISP1581的初始化过程及DSP控制的数据帧的接收机转存流程。
3.1 ISP1581的初始化
在初始化过程中,首先需要设置影响ISP1581自身工作方式的一些寄存器,然后与主机端USB系统配合进行,应答来自主机端的设备请求。当数据转存系统板作为USB 2.0设备通过连接器连到主机USB根集线器上的一个端口时,主机便可检测到这一连接,接着给该端口加电,检测设备并激活该端口,向USB设备发送复位信号。设备收到这一复位信号后,即进入缺省状态,此后就能够通过缺省通信通道响应主机端送来的设备请求。主机通过描述符请求(GET_DESCRIPTOR)获得设备端的详细信息,通过设置地址请求(SET_ADDRESS)设置设备地址,通过设置配置请求(SET_CONFIGURATION)选定合适的设备配置。在设备成功响应了这些设备请求之后,就可以与主机通信了。

在响应主机请求的过程中,DSP需要配置ISP1581的端点以实现不同类型的传输通道。根据数据传输速率的要求,除了缺省的控制通道外,系统中实现了一个批传输(bulk)[1]类型的输入通道。这样,ISP1581就可以像FIFO一样方便地从数据转存系统向主机传输数据,而且具有差错控制能力,简化了设备端软件设计的复杂性。
3.2 数据帧的接收转存过程
系统正常工作时,需要与主机端程序相互配合。主要端需要开发者实现的程序包括设备驱动程序和应用程序。在Windows 2000操作系统下,USB设备驱动程序为WDM模型的驱动程序,开发环境DriverStudio为WDM型驱动程序提供了框架结构,使得驱动开发变得非常容易(参见参考文献[5]第八、九、十章)。驱动程序接收应用程序的请求,利用USB总线驱动程序(US-BD)和主机控制器驱动程序(HCD)通过主机控制器安排USB总线事务,设备端则根据这些事务调度相应的数据帧的传输。关于主机端口如何安排总线事务可以查阅参考文献[1]。以下着重介绍设备端数据的调度过程。
数据帧的接收转存过程主要由DSP负责,DSP在外部SRAM中建立了一个数据帧的队列,如图4所示。系统主要工作在中断驱动模式下,与同步串行口相关的中断服务程序负责建立队列的尾部,对应于ISP1581中断引脚INT的中断服务程序负责建立队列的头部。
当以帧同步字打头的一帧数据以串行位流的形式到来时,FPGA产生的帧同步脉冲可以直接启动DSP同步串行口接收数据,该同步脉冲同时以中断方式通知DSP为一帧数据的接收做好准备。DSP接到通知后,首先检查外部SRAM中是否有足够的空间容纳一帧数据。如果没有空间,则丢弃当前数据帧(根据设计,这种情况是很少见的);如果有空间,则为当前数据帧保留足够的空间。接着在帧起始位置填写帧步字,读取授时时钟的当前值并填写在帧同步字后。这样,一个新的数据帧(图4中数据帧F_N)就建立了,但是并没有加入到队列中,而是要等待来自同步串行口的后继数据嵌入该帧中后再加入到队列中。
同步串行口的接收缓冲区在接收到若干字(由初始化时的设置决定)后,会向DSP提出中断请求。在中断服务程序中,DSP读取接收缓冲区中的内容,并将其填入上述新开辟的帧F_N中。在一帧数据接收完毕后,就将该帧添加到队列的尾部,表示该帧数据已经准备好(图4中数据帧F_R),可以通过ISP1581送给主机硬件保存。

DSP在查询到队列中有已经准备好的数据帧存在时,就设置ISP1581的端点索引寄存器(Endpoint Index Register)使其指向初始化时配置的批传输输入端点,然后将队列首帧数据通过ISP1581的数据端口寄存器(Data Port Register)填写在端点缓冲区中。在端点缓冲区被填满后,它就自动生效。在不能填满端点缓冲区的情况下,可以通过设置控制功能寄存器(Control Function Register)的VENDP位[2]强制该端点缓冲区生效。端点缓冲区生效后,在USB总线上下一IN令牌到来时,该端点缓冲区中的数据就通过USB总线传输到主机中。主机成功接收到数据后,会给ISP1581以ACK应答。能够通过INT引脚报告给DSP,DSP就可以继续往端点中填写该帧其余数据。
在队列首帧数据被成功转移到主机后,DSP就丢弃首帧数据。如果队列在还有数据帧,则将次首帧作为首帧,继续前述传输过程;如果没有要传输的数据帧,则为队列首帧指针Head_Ptr赋空值(NULL),等待新的数据帧的到来。
USB2.0是计算机外设接口技术发展的最新成功,具有广阔的应用前景。本文介绍了PHILIPS公司USB2.0接口芯片ISP1581在无线数据接收设备中的应用。高性能、便携化的无线数据传接收设备。其在靶场实弹试验中受到了用户的好评。

PC机的RS-232C串行口是使用最多的接口之一。因此,4串口、8串口等以增加串口数量为目的的ISA总线卡产品大量问世。一般串口应用只是使用了RXD和TXD两条传输线和地线所构成的串口的最基本的应用条件,而本文介绍一个利用PC机的RS-232串口加上若干电路来实现多串口需求的接口电路。
1.PC机串口的RTS和DTR及扩展电路
RTS和DTR是PC机中8250芯片的MODEM控制寄存器的两个输出引角D1和D0位,口地址为COM1的是3FCH,口地址为COM2的是2FCH。我们可以利用对MODEM控制寄存器3FCH或2FCH的写操作对其进行控制。从而利用该操作和扩展电路实现对TXD和RXD进行多线扩展,图1是其扩展电路。
在图1所示的PC机串口扩展电路中,74LS161是二进制计数器,1脚是清0端,2脚是计数端,计数脉冲为负脉冲信号,4051是八选一双向数字/模拟电子开关电路,其中一片用于正向输出,一片用于反向输出。该扩展电路工作原理是通过控制PC机串口的DTR输出的高低电平来形成74LS161的P2脚计数端的负脉冲信号,使161的输出端P14(QA)、P13(QB)、P12(QC)、P11(QD)脚依次在0000到1111十六个状态中变化,本电路仅使用了QA、QB、QC三个输出来形成对4051的ABC控制,最终使得4051(1)的输入端TXD依次通过与TX1~TX8导通而得到输出信号,4051(2)的输出端RXD与RX1~RX8依次导通形成输入信号。由于RXD和TXD的导通是一一对应的,因此串口通信就可以依次通过与多达8个带有三线基本串口的外部设备进行通信传输以实现数据传送。PC机端的电平转换电路是将RS232电平转换为TTL电平,外设端的电平转换电路是将TTL电平转换为RS232电平。由于这种转换有许多电路可以实现,因而,这里不再介绍。
2.电路使用程序
对PC机串口COM1的编程如下:
……
… ;对COM1口的波特率等设置;
MOV DX,3FCH
MOV AL,XXXXXX01B
OUT DX,AL;D1生成RTS负脉冲,对74LS161输出端清0
MOV AL,XXXXXX11B;
OUT DX,AL ;4051的RX1和TX1导通
CALL COM ;调用通信子程序,与第一个外部设备通信;
MOV CX,7 ;设置循环计数器;
NEXT:MOV DX ,3FCH
MOV AL,XXXXXX10B
OUT DX ,AL ;D0位生成DTR的负脉冲,形成161的P2脚计数脉冲
MOV AL,XXXXXX11B
OUT DX,AL ;RX2和TX2导通
CALL COM ;调用通信子程序,与第二个外部设备通信
LOOP NEXT ;循环与另外6个外部设备通信

… ;通信子程序略
3.使用说明
由于该扩展的多路接口在通信时共用一个子程序,因此在与某一路导通时,系统只能与这一路的外部设备进行通信联络。
如果工作现场需要立即和某一路通信,则需要对3FCH的D1位执行两个写操作并在RTS脚形成负脉冲,以对7416I清0后,再连接执行若干次对DTR的两次写操作。例如想对第4路外设通信,则需要执行完成对74LS161清0后,再连续三次对3FCH的D0位进行两个写操作以形成DTR脚的负脉冲,然后即可调用通信子程序。
如需使用PC机的COM2串口,只需将程序中的3F8H~3FDH全部换成2F8H~2FDH即可。
如果使用十六选一双向数字/模拟电子开关电路,可将74LS161的QA、QB、QC、QD四个输出端接至电子开关的四个控制端A、B、C、D,这样就可以达到一个PC机的RS232口与16个带有串口的外设的数据通信。

8. vrp的应用范围

VRP可广泛的应用于城市规划、室内设计、工业仿真、古迹复原、桥梁道路设计、房地产销售、旅游教学、水利电力、地质灾害等众多领域,为其提供切实可行的解决方案。 很久以来,在中国的虚拟现实技术领域,一直是引进国外的虚拟现实软件,中国在很长的一段时间内没有自己独立开发的虚拟现实仿真平台软件。泱泱大国,中国显然不能总是拾人牙慧,开发出中国自主知识产权的虚拟现实软件,才是王道。中视典数字科技一直致力于中国虚拟现实技术自有软件的开发和探索,终于研发除了具有完全自主知识产权的虚拟现实软件—Virtual Reallity Platform(通俗称为VRP)。
VRP系列产品自问世以来,一举打破该领域被国外领域所垄断的局面,以极高的性价比获得国内广大客户的喜爱,已经成为目前中国国内市场占有率最高的一款国产虚拟现实仿真平台软件。 VRP虚拟现实仿真平台,经历了多年的研发与探索,已经在VRP引擎为核心的基础上,衍生出了九个相关三维产品的软件平台。
其中VRP-BUILDER虚拟现实编辑器和VRPIE3D互联网平台(又称VRPIE)软件已经成为目前国内应用最为广泛的VR和WEB3D制作工具,连续三年占据国内同行业的领导地位,用户数量始稳居于第一。

(1)VRP-BUILDER 虚拟现实编辑器
VRP-BUILDER虚拟现实编辑器的软件用途、功能特点和客户群
软件用途:三维场景的模型导入、后期编辑、交互制作、特效制作、界面设计、打包发布的工具
客户群:主要面向三维内容制作公司
功能特点: VRP-Builder所有操作都是以美工熟悉的方式进行,并且提供了大量的支持工具和辅助库以快速提高成品质量。如果使用者有一定的3DSMAX建模和渲染基础,只要对VR-Builder平台稍加学习,很快就可以制作出自己的虚拟现实场景。
(2)VRPIE-3D互联网平台
VRPIE3D互联网平台(又称VRPIE) 是中视典数字科技有限公司自主研发的一款用于在互联网上进行三维互动浏览操作的软件,可将三维的虚拟现实技术成果用于互联网应用。
在安装了VRP-IE浏览器插件的基础上,用户可在任意一台连上互联网的电脑上,访问VRP-IE互联网平台网页,实现全三维场景的浏览和交互。
VRPIE软件用途、功能特点和客户群
软件用途:将VRP-BUILDER的编辑成果发布到互联网,并可让客户通过互联网进行对三维场景的浏览与互动
功能特点:VRP-IE 三维网络平台具备高度真实感画质,支持大场景动态调度,良好的低端硬件兼容性,高压缩比,多线程下载,支持高并发访问,支持视点优化的流式下载,支持高性能物理引擎,支持软件抗锯齿,支持脚本编程,支持无缝升级等等特性,为广大用户开发面向公众或集团用户的大型WEB3D 网站提供了强有力的技术支持和保障。
客户群:直接面向所有互联网用户
(3)VRP-PHYSICS 物理模拟系统
VRP-PHYSICS物理模拟系统是中视典数字科技有限公司研发的一款物理引擎系统。系统赋予虚拟现实场景中的物体以物理属性,符合现实世界中的物理定律,是在虚拟现实场景中表现虚拟碰撞、惯性、加速度、破碎、倒塌、爆炸等物体交互式运动和物体力学特性的核心。
VRP-PHYSICS物理模拟系统软件用途和客户群
软件用途:可逼真的模拟各种物理学运动,实现如碰撞、重力、摩擦、阻尼、陀螺、粒子等自然现象,在算法过程中严格符合牛顿定律、动量守恒、动能守恒等物理原理
客户群:主要面向院校和科研单位
(4)VRP-DIGICITY 数字城市平台
VRP-DIGICITY数字城市平台的软件用途和客户群
软件用途:具备建筑设计和城市规划方面的专业功能,如数据库查询、实时测量、通视分析、高度调整、分层显示、动态导航、日照分析等
客户群:主要面向建筑设计、城市规划的相关研究和管理部门
(5)VRP-INDUSIM 工业仿真平台
VRP-INDUSIM工业仿真平台的软件用途和客户群
软件用途:模型化,角色化,事件化的虚拟模拟,使演练更接近真实情况,降低演练和培训成本,降低演练风险。
客户群:主要面向石油、电力、机械、重工、船舶、钢铁、矿山、应急等行业
(6)VRP-TRAVEL 虚拟旅游平台
VRP-TRAVEL虚拟旅游平台的软件用途和客户群
软件用途:激发学生学习兴趣,培养导游职业意识,培养学生创新思维,积累讲解专项知识,架起学生与社会联系的桥梁,全方位提升学生讲解能力,让单纯的考试变成互动教学与考核双模式。
客户群:主要面向导游、旅游规划
(7)VRP-MUSEUM 虚拟展馆
VRP-MUSEUM虚拟展馆的软件用途和客户群
软件用途:是针对各类科博馆、体验中心、大型展会等行业,将其展馆、陈列品以及临时展品移植到互联网上进行展示、宣传与教育的三维互动体验解决方案。它将传统展馆与互联网和三维虚拟技术相结合,打破了时间与空间的限制、最大化地提升了现实展馆及展品的宣传效果与社会价值,使得公众通过互联网即能真实感受展馆及展品,并能在线参与各种互动体验,网络三维虚拟展馆将成为未来最具价值的展示手段。
客户群:科博馆、艺术馆、革命展馆、工业展馆、图书馆、旅游景区、企业体验中心以及各种园区
(8)VRP-SDK 系统开发包
VRP-SDK系统开发包的软件用途和客户群
软件用途:提供C++源码级的开发函数库,用户可在此基础之上开发出自己所需要的高效仿真软件
客户群:主要面向水利电力、能源交通等工业仿真研究与设计单位

(9)VRP-STORY故事编辑器
VRP-MYSTORY故事编辑器的特点
操作灵活、界面友好、使用方便,就像在玩电脑游戏一样简单
易学易会、无需编程,也无需美术设计能力,就可以进行3D制作
成本低、速度快,能够帮助用户高效率、低成本地做出想得到的3D作品
支持与VRP平台所有软件模块的无缝接口,可以与以往所有软件模块结合使用,实现更炫、更丰富的交互功能。
(10)VRP-3DNCS 三维网络交互平台
VRP-3DNCS三维网络交互平台(英文全称Virtual Reality Platform 3D Net Communication System,简称VRP-3DNCS)提供了一个允许不同地区、不同行业、不同角色实时在同一场景下交互的平台。用户可将VRP-MYSTORY下制作的应用,根据自身需求,使用SDK开发包,开发符合行业特性的专项策略,提供语音、文字等多种交流方式,实现各地用户身临同一场景的效果。 VRP高级模块主要包括VRP-多通道环幕模块、VRP-立体投影模块、VRP-多PC级联网络计算模块、VRP-游戏外设模块、VRP-多媒体插件模块等五个模块。
(1)VRP-多通道环幕模块
多通道环幕模块由三部分组成:边缘融合模块、几何矫正模块、帧同步模块。
它是基于软件实现对图像的分屏、融合与矫正,是的一般用融合机来实现多通道环幕投影的过程基于一台PC机器即可全部实现。
(2)VRP-立体投影模块
立体投影模块是采用被动式立体原理,通过软件技术分离出图像的左、右眼信息。相比于主动式立体投影方式的显示刷新提高一倍以上,且运算能力比主动式立体投影方式更高。
(3)VRP-多PC级联网络计算模块
采用多主机联网方式,避免了多头显卡进行多通道计算的弊端,而且三维运算能力相比多头显卡方式提高了5倍以上,而PC机事件的延迟由不超过0.1毫秒。
(4)VRP-游戏外设模块
Logitech方向盘、Xbox手柄、甚至数据头盔数据手套等都是虚拟现实的外围设备,通过VRP-游戏外设板块就可以轻松实现通过这些设备对场景进行浏览操作,并且该模块还能自定义扩展,可自由映射。
(5)VRP-多媒体插件模块
VRP-多媒体插件模块可将制作好的VRP文件嵌入到Neobook、Director等多媒体软件中,能够极大地扩展虚拟现实的表现途径和传播方式。 VRP虚拟现实仿真平台自发布第一个版本至今已经历数年,经过中视典人不断的创新与改进。VRP12.0于2012年5月24日在北京国家会议中心正式对外发布。
VRP12.0作为中视典数字科技2012年推出的VRP仿真平台软件系列的最新版本,不尽完善和提高了VRP软件原有的一些功能,还新增了包括增强现实技术、VRP-MYSTORY故事编辑器等新功能。
VRP12.0新增功能
(1)集成了增强现实技术
1.稳定高效的增强现实算法库:摄像机的自动标定、实时多mark跟踪、实时自然图片的跟踪、实时简单3D物体的跟踪、实时人脸面部跟踪。
2.方便易用的AR-Builder编辑器:有好的界面编辑工具、快速定制个性化AR案例、支持3dMax和Maya导出动画。
3.支持多种AR交互硬件:增强现实眼镜、头部跟踪器、骨骼跟踪器、红外传感系统、惯性传感系统、动作捕捉系统
(2)无缝结合VRP-MYSTORY故事编辑器
1.提供大量的精美模型库、角色库、特效库
2.对象化的模型操作,精美的实时渲染效果
3.支持直接发布各种格式的图片
(3)支持工业格式数据
1.支持模型直接从工业软件导入到VRP中进行编辑
2.支持Maya、Pro/E、Catia、Solidworks等
3.支持VRP模型导回到MAX及其他工业软件中再次修改
(4)全新编辑模式
1.拖拽节点式的编辑模式,可编辑产生无限多种GPU-Shader材质效果
2.材质编辑人员无需掌握GPU显示编程原理即可制作出所需的GPU-Shader效果
3.支持材质库功能,包含大量的金属材质、建筑类材质、织物类材质、自然类材质,满足各种需求
4.针对美术人员的设计流程优化,提高制作效率
5.支持时间动态材质效果,极大提高VRP编辑器的渲染效果
6.完全支持导出DirectX和OpenGL的GPU-Shader效果
(5)支持在线烘焙
1.支持场景烘焙功能和贴图烘焙功能,一键更新烘焙全场景的光照贴图
2. 支持基于GPU硬件的快速烘焙技术和基于CPU的光线跟踪烘焙技术
3.离线渲染技术与实时渲染技术友好结合,支持VRP中的所有灯光类型
4.丰富的采样技术:均匀采样、随机采样、抖动采样、多重采样及Hammersly采样
(6)支持多人协作
1.基于事件驱动的场景制作方式,支持时间优先、主机优先的抢占式通讯模式
2.相机数据自动同步,场景状态同步,支持画中画相机
3.场景数据自动统一,无需任何额外操作,各用户登陆场景后的画面均可一致
4.支持自定义标准,可以在场景中任意添加一个标注信息,并在网络上进行实时同步
(7)支持硬件交互
1. 支持基于微软Kinect for Windows的动态手势识别及静态姿势识别
2. 支持数据手套datalove,可控制三维虚拟手在场景中抓取物体,并进行交互操作
3.支持反馈数据手套CyberGlove、CyberTouch和CyberGrasp,具有真实触感和力反馈效果
4.支持Patriot和Liberty跟踪器,精确捕捉人体的位置和动作,并在场景中控制虚拟手的运动
5.支持头戴式显示器,让人有高沉浸感的立体视觉感受 中视典数字科技有限公司,2002年于深圳高新技术园区正式注册成立,是专注于虚拟现实、增强现实与3D互联网领域的软硬件研发与推广的专业机构,是国际领先的虚拟现实技术、增强现实技术解决方案供应商和相关服务提供商,是中国虚拟现实、增强现实领域的领军企业。
中视典数字科技有限公司,立志做中国自己的图形图像专家,自成立之初,一直致力于中国自主知识产权虚拟现实仿真平台的开发和探索。研发出了中国第一个完全独立自主知识产权的虚拟现实三维互动仿真平台VR-Platform(简称VRP),一举打破了中国虚拟现实领域被国外软件垄断的局面。
中视典数字科技有限公司,是最专业的虚拟现实硬件设备(如VR-Platform CAVE“洞穴式”虚拟现实显示系统 )提供商以及相关解决方案的集成商。
中视典数字科技有限公司,提供的虚拟现实解决方案涉及虚拟旅游教学、机械仿真、数字展馆、军事仿真、工业仿真等众多领域,在自主产权虚拟现实软件VRP的基础上为客户量身打造最专业的个性化解决方案。

9. quartus II帧同步电路

嗨~同学,这里是唐老师给的答案哈~!
异步模拟信号:只从发送端发送一个模拟信号
同步模拟信号:发送端一直发送同频同相的模拟信号
位同步:接收端接收的每一位信息均与发送端同步的信号
帧同步:数字信道的接收端与发送端相应信道对齐的信号~~加油吼!

10. OSI参考模型

OSI的七层结构

第一层:物理层(PhysicalLayer),规定通信设备的机械的、电气的、功能的和规程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上信号电平的大小、阻抗匹配、传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即定义了DTE和DCE之间各个线路的功能;规程特性定义了利用信号线进行bit流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE和DCE双方在各电路上的动作系列。
在这一层,数据的单位称为比特(bit)。
属于物理层定义的典型规范代表包括:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45等。
物理层的主要功能:
为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路.
传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或异步传输的需要.
完成物理层的一些管理工作.
物理层的主要设备:中继器、集线器。
第二层:数据链路层(DataLinkLayer):在物理层提供比特流服务的基础上,建立相邻结点之间的数据链路,通过差错控制提供数据帧(Frame)在信道上无差错的传输,并进行各电路上的动作系列。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
在这一层,数据的单位称为帧(frame)。
数据链路层协议的代表包括:SDLC、HDLC、PPP、STP、帧中继等。
链路层的主要功能:
链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应具备如下功能:
链路连接的建立,拆除,分离。
帧定界和帧同步。链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但无论如何必须对帧进行定界。
顺序控制,指对帧的收发顺序的控制。
差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发技术来完成。
数据链路层主要设备:二层交换机、网桥
第三层是网络层(Network layer)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。
如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。
在这一层,数据的单位称为数据包(packet)。
网络层协议的代表包括:IP、IPX、RIP、OSPF等。
网络层主要功能:
网络层为建立网络连接和为上层提供服务,应具备以下主要功能:
路由选择和中继
激活,终止网络连接
在一条数据链路上复用多条网络连接,多采取分时复用技术
差错检测与恢复
排序,流量控制
服务选择
网络管理
网络层标准简介
网络层主要设备:路由器
第四层是处理信息的传输层(Transport layer)。第4层的数据单元也称作数据包(packets)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(最终用户到最终用户)的透明的、可靠的数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。
传输层协议的代表包括:TCP、UDP、SPX等。
传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次,具有缓冲作用。当网络层服务质量不能满足要求时,它将服务加以提高,以满足高层的要求;当网络层服务质量较好时,它只用很少的工作。传输层还可进行复用,即在一个网络连接上创建多个逻辑连接。 传输层也称为运输层.传输层只存在于端开放系统中,是介于低3层通信子网系统和高3层之间的一层,但是很重要的一层.因为它是源端到目的端对数据传送进行控制从低到高的最后一层.
有一个既存事实,即世界上各种通信子网在性能上存在着很大差异.例如电话交换网,分组交换网,公用数据交换网,局域网等通信子网都可互连,但它们提供的吞吐量,传输速率,数据延迟通信费用各不相同.对于会话层来说,却要求有一性能恒定的界面.传输层就承担了这一功能.它采用分流/合流,复用/介复用技术来调节上述通信子网的差异,使会话层感受不到.
此外传输层还要具备差错恢复,流量控制等功能,以此对会话层屏蔽通信子网在这些方面的细节与差异.传输层面对的数据对象已不是网络地址和主机地址,而是和会话层的界面端口.上述功能的最终目的是为会话提供可靠的,无误的数据传输.传输层的服务一般要经历传输连接建立阶段,数据传送阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程.而在数据传送阶段又分为一般数据传送和加速数据传送两种。传输层服务分成5种类型.基本可以满足对传送质量,传送速度,传送费用的各种不同需要.传输层的协议标准有以下几种:
第五层是会话层(Session layer)
这一层也可以称为会晤层或对话层,在会话层及以上的高层次中,数据传送的单位不再另外命名,统称为报文。会话层不参与具体的传输,它提供包括访问验证和会话管理在内的建立和维护应用之间通信的机制。如服务器验证用户登录便是由会话层完成的。
会话层提供的服务可使应用建立和维持会话,并能使会话获得同步。会话层使用校验点可使通信会话在通信失效时从校验点继续恢复通信。这种能力对于传送大的文件极为重要。会话层,表示层,应用层构成开放系统的高3层,面对应用进程提供分布处理,对话管理,信息表示,恢复最后的差错等. 会话层同样要担负应用进程服务要求,而运输层不能完成的那部分工作,给运输层功能差距以弥补.主要的功能是对话管理,数据流同步和重新同步。要完成这些功能,需要由大量的服务单元功能组合,已经制定的功能单元已有几十种.现将会话层主要功能介绍如下.
为会话实体间建立连接。为给两个对等会话服务用户建立一个会话连接,应该做如下几项工作:
将会话地址映射为运输地址
选择需要的运输服务质量参数(QOS)
对会话参数进行协商
识别各个会话连接
传送有限的透明用户数据
数据传输阶段
这个阶段是在两个会话用户之间实现有组织的,同步的数据传输.用户数据单元为SSDU,而协议数据单元为SPDU.会话用户之间的数据传送过程是将SSDU转变成SPDU进行的.
连接释放
连接释放是通过"有序释放","废弃","有限量透明用户数据传送"等功能单元来释放会话连接的.会话层标准为了使会话连接建立阶段能进行功能协商,也为了便于其它国际标准参考和引用,定义了12种功能单元.各个系统可根据自身情况和需要,以核心功能服务单元为基础,选配其他功能单元组成合理的会话服务子集.会话层的主要标准有"DIS8236:会话服务定义"和"DIS8237:会话协议规范".
第六层是表示层(Presentation layer)
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供格式化的表示和转换数据服务。数据的压缩和解压缩, 加密和解密等工作都由表示层负责。例如图像格式的显示,就是由位于表示层的协议来支持。
第七层应用层(Application layer),应用层为操作系统或网络应用程序提供访问网络服务的接口。
应用层协议的代表包括:Telnet、FTP、HTTP、SNMP等。
通过 OSI 层,信息可以从一台计算机的软件应用程序传输到另一台的应用程序上。例如,计算机 A 上的应用程序要将信息发送到计算机 B 的应用程序,则计算机 A 中的应用程序需要将信息先发送到其应用层(第七层),然后此层将信息发送到表示层(第六层),表示层将数据转送到会话层(第五层),如此继续,直至物理层(第一层)。在物理层,数据被放置在物理网络媒介中并被发送至计算机 B 。计算机 B 的物理层接收来自物理媒介的数据,然后将信息向上发送至数据链路层(第二层),数据链路层再转送给网络层,依次继续直到信息到达计算机 B 的应用层。最后,计算机 B 的应用层再将信息传送给应用程序接收端,从而完成通信过程。下面图示说明了这一过程。
OSI 的七层运用各种各样的控制信息来和其他计算机系统的对应层进行通信。这些控制信息包含特殊的请求和说明,它们在对应的 OSI 层间进行交换。每一层数据的头和尾是两个携带控制信息的基本形式。
对于从上一层传送下来的数据,附加在前面的控制信息称为头,附加在后面的控制信息称为尾。然而,在对来自上一层数据增加协议头和协议尾,对一个 OSI 层来说并不是必需的。
当数据在各层间传送时,每一层都可以在数据上增加头和尾,而这些数据已经包含了上一层增加的头和尾。协议头包含了有关层与层间的通信信息。头、尾以及数据是相关联的概念,它们取决于分析信息单元的协议层。例如,传输层头包含了只有传输层可以看到的信息,传输层下面的其他层只将此头作为数据的一部分传递。对于网络层,一个信息单元由第三层的头和数据组成。对于数据链路层,经网络层向下传递的所有信息即第三层头和数据都被看作是数据。换句话说,在给定的某一 OSI 层,信息单元的数据部分包含来自于所有上层的头和尾以及数据,这称之为封装。
例如,如果计算机 A 要将应用程序中的某数据发送至计算机 B ,数据首先传送至应用层。 计算机 A 的应用层通过在数据上添加协议头来和计算机 B 的应用层通信。所形成的信息单元包含协议头、数据、可能还有协议尾,被发送至表示层,表示层再添加为计算机 B 的表示层所理解的控制信息的协议头。信息单元的大小随着每一层协议头和协议尾的添加而增加,这些协议头和协议尾包含了计算机 B 的对应层要使用的控制信息。在物理层,整个信息单元通过网络介质传输。
计算机 B 中的物理层收到信息单元并将其传送至数据链路层;然后 B 中的数据链路层读取计算机 A 的数据链路层添加的协议头中的控制信息;然后去除协议头和协议尾,剩余部分被传送至网络层。每一层执行相同的动作:从对应层读取协议头和协议尾,并去除,再将剩余信息发送至上一层。应用层执行完这些动作后,数据就被传送至计算机 B 中的应用程序,这些数据和计算机 A 的应用程序所发送的完全相同 。
一个 OSI 层与另一层之间的通信是利用第二层提供的服务完成的。相邻层提供的服务帮助一 OSI 层与另一计算机系统的对应层进行通信。一个 OSI 模型的特定层通常是与另外三个 OSI 层联系:与之直接相邻的上一层和下一层,还有目标联网计算机系统的对应层。例如,计算机 A 的数据链路层应与其网络层,物理层以及计算机 B 的数据链路层进行通信。

OSI分层的优点
[1][2](1)人们可以很容易的讨论和学习协议的规范细节。
(2)层间的标准接口方便了工程模块化。
(3)创建了一个更好的互连环境。
(4)降低了复杂度,使程序更容易修改,产品开发的速度更快。
(5)每层利用紧邻的下层服务,更容易记住个层的功能。
OSI是一个定义良好的协议规范集,并有许多可选部分完成类似的任务。
它定义了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的任务。是作为一个框架来协调和组织各层所提供的服务。
OSI参考模型并没有提供一个可以实现的方法,而是描述了一些概念,用来协调进程间通信标准的制定。即OSI参考模型并不是一个标准,而是一个在制定标准时所使用的概念性框架。

OSI模型与TCP/IP模型的比较

TCP/IP模型实际上是OSI模型的一个浓缩版本,它只有四个层次:
1.应用层
2.运输层
3.网际层
4.网络接口层
与OSI功能相比:
应用层对应着OSI的 应用层 表示层 会话层
运输层对应着OSI的传输层
网际层对应着OSI的网络层
网络接口层对应着OSI的数据链路层和物理层

Open Source Initiative(简称OSI,有译作开放源代码促进会、开放原始码组织)是一个旨在推动开源软件发展的非盈利组织。

热点内容
瑞纳自动买哪个配置 发布:2024-11-02 20:18:45 浏览:559
sql复制数据库结构 发布:2024-11-02 20:18:43 浏览:582
yaf编译 发布:2024-11-02 20:06:30 浏览:126
小数除以大数怎么算法 发布:2024-11-02 19:44:59 浏览:810
安卓手机如何重新设置付款密码 发布:2024-11-02 19:31:44 浏览:980
多巴胺3mg静脉注射怎么配置 发布:2024-11-02 19:25:50 浏览:618
源码之城 发布:2024-11-02 19:24:43 浏览:513
国军标环境存储要求 发布:2024-11-02 19:23:04 浏览:107
sql多行转多列 发布:2024-11-02 19:17:52 浏览:119
linuxftp文件夹权限 发布:2024-11-02 19:17:03 浏览:899