VIP之FrameBuffer

 2、VIP Frame Buffer1、原来我是一直存在一个疑惑,demo上说VIP Frame Buffer输出是固定的60fps,但是在NiosII的程序中我没有找到设置输出为60fps的设置,怎么会这样呢? 想来想去觉得是CVO的dout_rdy信号实现了所谓的60fsp.2、搞明白了什么是双缓存和三缓存  双缓存    在双缓存模式中,IP核会在外部存储器中开辟两帧缓存器。一个用于存储写入帧,另一个用于读取输出像素,当读和写都完成一个帧外,交换两个缓存器,输入的帧可以被从存储器中读出并发送给输出,同时原来用于读取的帧缓存器,可以用于新数据写入和覆盖。这个特征主要用于输入和输出一侧或者两侧像素速率不规则。或者一帧必须在相对于整个帧率较短的时间内被接收或者发送。比如,在裁剪器IP之后,或者Alpha混合器的前景层之前。 三缓存    在三缓存模式中,IP核在外部存储器中使用三个帧缓存器,一个缓存器用于存储输入像素,第二个缓存器用于从存储器读取输出像素。第三个缓存器是备用缓存,它允许输入和输出异步交换缓存。备用缓存可以是”干净的”也可以是“脏的”,如果该帧还没有被发送过,则认为是“干净的”,如果它存放的是已经被读取过的帧,则认为是“脏的”。如果输入数据被写完一帧后,且备用缓存是“脏的”,则备用缓存作为输入缓存,而原输入缓存则用作新的备用缓存并且它是“干净的”。如果输入帧写完后,备用帧还是“干净的”,则要根据是否允许丢弃来作选择,如果允许丢弃,那么刚被写入的帧会被丢弃并被下一个要写入的帧覆盖;如果不允许丢弃帧,写操作会被停止,直到读出帧完成,并把备用帧作为输出帧而原输出帧作为“脏的”备用帧。当读操作帧读取完毕并且备用帧是“干净的”,就用读取帧与备用帧交换。如果读操作帧读取完毕而备用帧是“脏的”,则要考虑是否允许复制: 1、如果允许帧复制–读操作会再次读取刚被读完的帧2、如果不允许帧复制–读操作会停止直到写操作完成并用“干净的”帧替换备用帧后再读取  什么是锁定帧速率转换?  锁定帧速率转换就是允许Frame Buffer IP通过avalon-mm从接口同步输入和输出帧速率。Avalon-MM主接口的宽度一定应该与数据速率和存储器的时钟速率有关系。如果同时存储多个通道时,是不是要选择不同的基地址呢?

前端开发【第6篇:JavaScript客户端(浏览器)】

Web浏览器中的JavaScript 客户端JavaScript时间线 1、Web浏览器创建Document对象,并且开始解析web页面,解析HTML元素和它门的文本内容后添加Element对象和Text节点到文档中。在这个阶段Document.readystate属性的值是“loading” 2、当HTML解析器遇到没有async和defer属性的<script>元素时,它把这些元素添加到文档中,然后执行内火外部脚本。这些脚本会同步执行,并且在脚本下载(如果需要)和执行时解析器会暂停,因为JavaScript是单线程的。这样脚本就可以用Document.write()来吧文本插入到输入流中。解析器恢复时这些文本会成为文档的一部分。同步脚本经常简单定义函数和注册后面试用的注册事件处理程序,但它们可以遍历和操作文档书,因为它们执行时已经存在了。 3、解析器遇到了设置了async属性的<script>元素时,它开始下载脚本,并继续解析文档。脚本在它下载完成后尽快执行,但是解析器没有停下来等它下载,异步脚本禁止使用document.write()方法。 4、当文档完成解析,document.readyState属性变成“interactive” 5、所有defer属性的脚本,会按照它们在文档里的出现顺序执行。异步脚本可能也会在这个时间执行,延迟脚本能访问完成的文档书,禁止使用document.write() 6、浏览器在Document对象上触发DOMContentLoaded事件,这标志着程序执行从同步脚本执行阶段转换到异步事件驱动时间阶段。但是要注意,这时可能还有异步脚本没有执行完。 7、这时,文档已经完全解析完成,但是浏览器还在等待其他内容载入,如图片。当所有的内容完成载入时,并且所有异步脚本载入和执行,document.readyState属性改变为”complete”,Web浏览器触发Windows对象上的load事件。 8、从此刻起,会调用异步事件,以异步响应用户输入事件、网络事件、计时器过期等 以上为一条理想的时间线,但是并不是所有的浏览器都支持并完成了全部细节但是大部分都支持 JavaScript不能做什么 1、JavaScript程序可以打开一个新的浏览器窗口,但是为了防止广告商滥用弹出窗口,很多浏览器限制了这个功能,是的只有为了响应鼠标单击这样的用户触发时间的时候才能使用它 2、JavaScript程序可以关闭自己打开的浏览器窗口,但是不允许它不经过用户确认就关闭其他的窗口 3、HTML FileUpload元素的value属性是只读的,如果可以设置这个属性,脚本就能设置它为任意期望的文件名,从而导致表单上传指定文件(比如密码文件)的内容到服务器 4、脚本不能读取从不同服务器载入的文档内容,除非这个就是包含改脚本。这个就防止来自其他不同服务器上的文档时间监听器,防止窃取用户输入,这个限制叫同源策略 同源策略及其规避方法…

[转]Tomcat7基于Redis的Session共享

转自:http://blog.csdn.net/catoop/article/details/48603891 目前,为了使web能适应大规模的访问,需要实现应用的集群部署。集群最有效的方案就是负载均衡,而实现负载均衡用户没一个请求都有可能被分配到不固定的服务器上,这样我们首先要解决session的统一来保证无论用户的请求被转发到哪个服务器上都能保证用户的正常使用,即需要实现session的共享机制。 在集群系统下实现session统一的有如下几种方案: (1) 应用服务器间的session复制共享(如tomcat自带session共享) (2) 基于cache DB缓存的session共享 应用服务器间的session复制共享(Tomcat自带的功能) session复制共享,主要是指集群环境下,多台应用服务器之间同步session,使session保持一致,对外透明。 如果其中一台服务器发生故障,根据负载均衡的原理,web服务器(apache/nginx)会遍历寻找可用节点,分发请求,由于session已同步,故能保证用户的session信息不会丢失。 此方案的不足之处: 技术复杂,必须在同一种中间件之间完成(如:tomcat-tomcat之间). session复制带来的性能损失会快速增加.特别是当session中保存了较大的对象,而且对象变化较快时, 性能下降更加显著. 这种特性使得web应用的水平扩展受到了限制。 Session内容序列化(serialize),会消耗系统性能。 Session内容通过广播同步给成员,会造成网络流量瓶颈,即便是内网瓶颈。…

【网络】TCP和UDP的区别以及TCP的三次握手四次释放

一、两者区别 1.TCP面向连接的运输层协议,UDP无连接2.TCP是可靠交付,UDP是尽最大努力交付3.TCP面向字节流,UDP面向报文4.TCP是点对点连接的,UDP一对一,一对多,多对多都可以5.TCP适合用于网页,邮件等,UDP适合用于视频,语音广播等 TCP(Transmission Control Protocol): 可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。 使用TCP的应用:Web浏览器;电子邮件、文件传输程序。 UDP(User Datagram Protocol) 不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。 使用UDP的应用:域名系统 (DNS);视频流;IP语音(VoIP)。 二、为什么UDP有时比TCP更有优势? UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时游戏。 (1)网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。 (2)TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。 采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。 TCP三次握手的过程…

AOP Aspect Oriented Programming

原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。  AOP将应用系统分为两部分,核心业务逻辑(Core businessconcerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterpriseconcerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事务管理(TransactionManagement)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging)等。  AOP正在成为软件开发的下一个光环。使用AOP,你可以将处理aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些aspect。AOP可以防止代码混乱。  Spring framework是很有前途的AOP技术。作为一种非侵略性的、轻型的AOPframework,你无需使用预编译器或其他的元标签,便可以在Java程序中使用它。这意味着开发团队里只需一人要对付AOPframework,其他人还是像往常一样编程。 AOP概念  让我们从定义一些重要的AOP概念开始。  — 方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。  — 连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。  — 通知(Advice):在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。  — 切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。  — 引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现IsModified接口,来简化缓存。  — 目标对象(Target Object):包含连接点的对象,也被称作被通知或被代理对象。  — AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。  — 编织(Weaving):组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。