zoukankan      html  css  js  c++  java
  • 《计算机图形学》2.2.1 视频控制器

    光栅扫描系统通常是使用记得处理部件。除了中烟处理器(CPU)以外,还是用一个视频控制器(video controller)或显示控制器( display controller)来控制显示设备的曹锁。简单光栅系统的组织结构如图2.24所示。其中,帧缓存可以在系统存储器的任意位置,视频控制器了通过访问帧缓存来刷新屏幕。更高级的光栅系统除了使用视频控制器之外了,还是用其他处理器作为协处理器和加速器来完成各种图形操作。
    [图2.24]
    【2.2.1 视频控制器】
    图2.25给出了常用的光栅系统组织。帧缓存使用系统存储器的固定区域,并且由视频控制器直接访问。
    [图2.25]
    帧缓存的位置了一级相应的屏幕位置均使用笛卡尔(Cartesian)坐标。(右手坐标系)
    图2.27给出了视频控制器的基本刷新操作流程。由两个寄存器用来存放屏幕像素的坐标。开始时,为顶部扫描行将x寄存器置为0,将y寄存器置为Ymax。存储器在帧缓存中该像素对应位置的值被取出,并用来设置CRT电子束的强度值。然后,x寄存器加1,且该过程对顶部扫描线上的下一个像素重复执行,并沿该扫描线对每个像素重复执行。在处理完顶部扫描线的最后一个像素之后,x寄存器复位为0,y寄存器减1,指向顶部扫面行的下一行。然后依次处理沿该扫描线的各像素,且该过程对每条后继的扫描线重复执行。当循环处理完底部扫描线的所有像素后,视频控制器将寄存器复位为最高行扫描线上第一个像素的位置,刷新过程重复开始。
    [图2.27]
    因为屏幕必须按每秒最少60帧的平率刷新,所以图2.27所示的简单过程不能使用循环周期太慢的RAM芯片。为了加速像素处理,视频控制器每次从刷新缓存中取出多个像素值。当处理完该组像素后,从帧缓存取出下一块像素值。
    视频控制器还能执行一些其他操作。对于多类应用,视频控制器在不同的刷新周期内可以从不同的存储区中取出像素强度值。例如,在高性能系统中,常常提供两个帧缓存,一个缓存用来刷新,另一个以强度值填充。然后,这两个缓存可以互换角色。这种方法提供了生成实时动画的快速机构,因为正在移动的对象的不同视图可以逐一装入缓存中而不用中断刷新周期。同样,视频控制器可以完成像素块的变换。在一个刷新周期内,屏幕区域可以放大、缩小,或从一个位置移向另一个位置。此外,视频控制器常常包含一个查找表,帧缓存中的像素值用来访问查找表,而不是直接控制CRT电子束强度。这提供了改变屏幕强度值的快速方法。最好否,可以将某些系统设计成允许视频控制器将来自电视摄像机或其他输入设备的输入图像与帧缓存图像进行混合。
     
  • 相关阅读:
    Nodejs exec和spawn的区别
    VC++每个版本对应的库
    在cmd启动一个win32程序,printf把信息输出到启运它的那个CMD窗口
    window 控制台解决中文乱码
    NW.js 桌面应用程序
    C++ Addon Async 异步机制
    Node bak
    nodejs electron 创建桌面应用
    跨平台桌面程序框架Electron
    js post 下载文件
  • 原文地址:https://www.cnblogs.com/moonlightpoet/p/5705248.html
Copyright © 2011-2022 走看看