阅读:2073回复:14
如何直接写显卡内存?
为了把USB摄像头的图象更快地显示,最好的办法是在驱动软件里
直接把图象数据流丢到显存里直接显示图象。 但怎么才能找到显存的地址,如何直接写屏? 应用程序要做哪些响应的动作来完成显示? 请驱动及显卡高手指教,不胜感激。 |
|
沙发#
发布于:2002-11-05 08:57
不会,不过有人问过,搜搜看。
|
|
板凳#
发布于:2002-11-05 09:12
我觉得用usb传输图像的瓶颈在于传输通道,不在主机端。
|
|
地板#
发布于:2002-11-05 11:27
我觉得用usb传输图像的瓶颈在于传输通道,不在主机端。 同感。 |
|
地下室#
发布于:2002-11-05 15:42
传输瓶径差不多解决了,基本达到了USB的最大值。
为了更实用,还必须采用更快的显示图象方法,比如 OVERLAY等。 直接写屏是让图象看起来没有停滞感的最好方法了。所以图象设备 的数据一般都是采用直接写屏的,可惜我不知道原理。苦闷呀。 |
|
5楼#
发布于:2002-11-05 15:48
传输瓶径基本没办法了,差不多已经达到USB的最大值了。
为了使图象看起来更快,更流畅,必须采用OVERLAY等方法,直接写屏。 现在的图象设备的数据流基本都是直接写屏的吧。可惜我不知道原理, 苦闷呀,苦闷 |
|
6楼#
发布于:2002-11-06 18:09
同病相连,不过我不是做图像采集的。我用的图象卡(北京大恒)就是采用的这样的技术.
我想实现的是直接写屏画BMP或则函数图像,我找到显存的基地址 但不知道显存是怎样组织的所以画上去总是出现一条有灰度的带。我 也正想把这个东西做完。能交流一下吗? cbuilder@peoplemail.com.cn 你可以试试Directx我不想用他,你可以试试. [编辑 - 11/6/02 by ZHANGYIFENG] |
|
|
7楼#
发布于:2002-11-06 18:18
LRG2002:
使用Windrvr很容易找到显卡基地址.大恒公司也是这样干的。 |
|
|
8楼#
发布于:2002-11-07 13:04
我的已经能工作啦!
|
|
|
9楼#
发布于:2002-11-08 09:41
ZHANGYIFENG, 你好。希望我们以后能多交流下。
用Directx是可以,但必须要驱动里支持Directx,并不是 所有的视频设备的驱动都支持呀,至少我的并不支持 还是直接写屏来的好。我给你发了邮件,希望能向你请教,并交流相关问题经验 |
|
10楼#
发布于:2002-11-08 13:37
大家对直接写屏这么感兴趣!!!!
在DOS下你要先设置你的显示模式,之后就得知显存的组织格式了。 在WINDOWS下,M$提供了DDRAW模式要尽量采用此模式。否则就会出现不兼容情况。即要通过DDRAW来得知显存的组织格式。 |
|
|
11楼#
发布于:2002-11-08 14:37
兼容问题的确不少,不过这样程序执行起来效率会更高一点,更直接一些.
LRG2002:我已经给你回邮件,你可能要考虑各种分辨率下的显存组织情况.我只是在32位下写成功,有空我再试验16,256色下的操作. [编辑 - 11/8/02 by ZHANGYIFENG] |
|
|
12楼#
发布于:2002-11-08 19:37
在设备管理器中查找到显示卡的内存地址(应该是物理地址),然后编写驱动程序将物理地址映射为逻辑地址,然后向里面写数就行了。
|
|
13楼#
发布于:2002-11-11 18:26
SetupDixxx能在内核态调用吗?
如果可以的话倒是能得到显卡的地址空间,然后将数据通过DMA的方式传给显存,但是你如何考虑同步问题,防止撕裂呢? 可以交流。 |
|
14楼#
发布于:2002-11-15 21:08
video port extension(VPE视频端口扩展)使用cpature
抓取图像然后使用overlay显示,可以flip交换特别快的,但是硬件及驱动程序需要支持才行 |
|
|