liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3934回复:30

878问题

楼主#
更多 发布于:2004-01-31 11:33
PCI是否能够支持878a芯片8路PAL,384X288,YUY2,25f/s的图像传输,
我的总有数据线丢失,在16f/s左右时没有数据线丢失,有什么方法解决这个问题,最好是通过软件解决.

最新喜欢:

beni_wbeni_w
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-02-01 09:46
8路没有什么问题,一般的主板都可以支持。
我在做16路时遇到过这个问题,当时得出结论是: 与桥芯片、显卡芯片有关。
堂堂正正做人,明明白白做事
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-02-01 09:54
解决方法有:
  1、用连续的大内存
  2、主板上最好有AGP总线,直接用显存作为数据缓冲区



[编辑 -  2/1/04 by  Sunbeam]

[编辑 -  2/3/04 by  Sunbeam]
堂堂正正做人,明明白白做事
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-02-02 09:09
谢谢楼上的大侠,本人先试一试.
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-02-02 09:25
楼上的大侠,不知能否告知本人RISC指令怎样才能控制每次传输1~2k的数据.有机会我请客.
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-02-02 13:34
我这里的硬件是两块四路芯片的PCI卡.不知大侠实现的卡是怎样的?
是不是我的硬件的问题.
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-02-03 13:29
呵呵,RISC指令控制不了。它是根据一行一行来传输。

TM1300的DMA特点有此要求

堂堂正正做人,明明白白做事
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-02-03 13:49
我是使用如下方法分配内存:
PHYSICAL_ADDRESS highest;
highest.QuadPart=0xffffffffffffffff;
int n=BT_SCREEN_WIDTH*BT_SCREEN_HEIGHT*4*2*8;  
scr->pBuffer=(PUCHAR)MmAllocateContiguousMemory(n,highest);
RtlZeroMemory(scr->pBuffer, n);
scr->pBufferPhy=MmGetPhysicalAddress(scr->pBuffer).u.LowPart;
不知大侠做到的是怎样,能否告知本人?
我试了很多次还是做不到25f/s, 总有数据线丢失.


[编辑 -  2/3/04 by  liuzhigao]
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-02-07 12:46
直接把显存作为预览视频流的缓冲区。用DDRAW中的函数来分配内存。
堂堂正正做人,明明白白做事
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-02-09 10:11
谢谢大侠,本人先试一试
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-02-09 18:01
本人使用函数分配了显卡内存,传入驱动程序. 可还是有数据线丢失.
改成320X240好多了,但图像快速移动时,有时还是可以看到一两根数据线丢失.
hong
驱动小牛
驱动小牛
  • 注册日期2001-09-19
  • 最后登录2005-12-16
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-02-10 03:25
this is BT878 bug.
you can try on different chiset/motherboards. it seems Bt878 is not running well on all motherboards.

odd/event is not joint well is another problem.
any one know how to solve it?
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-02-10 09:13
回HONG:
  奇偶场合成一帧时要加一个DEINTERLACE FILTER,算法有简单的,也有复杂点的。要看你的实际应用情况而定。
堂堂正正做人,明明白白做事
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-02-10 09:59
大侠,我的路怎么还是有数据线丢失,我试过4 路PAL 640x480 YUY2 25f/s好像没有数据线丢失,计算PCI传输数据总量, 应该8路384x288 YUY2 25f/s PAL 的数据总量还要大,怎么PCI就前一种情况能传输,
是不是还有很多技巧在里面,能否指点指点?
sunfammer
驱动牛犊
驱动牛犊
  • 注册日期2002-11-24
  • 最后登录2004-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-02-10 18:49
我有做好的8路不丢的,可以出售给你源码。
另外有带声音的usb多路方案。
可实现8路320×240 25fps,8路12bits8khz声音采样。
mqy@263.net.cn
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-02-11 09:24
那你能不能发一个可以运行的驱动和测试程序给我,我要先看一下效果,是否真的能做到图像在快速移动时不会丢数据线,我的邮箱是

[编辑 -  2/17/04 by  liuzhigao]
hong
驱动小牛
驱动小牛
  • 注册日期2001-09-19
  • 最后登录2005-12-16
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-02-12 02:40
Sunbeam:
i have try to dma
odd lines to memory blocks 0, 2, 4, ...
even lines to memory blocks 1, 3, 5,...
so the video should be "DEINTERLACE" automatically.
the problem is some times, the odd and event fields are not come from the same frame so you can see moving picture is not joint well.
Sunbeam
驱动小牛
驱动小牛
  • 注册日期2001-10-29
  • 最后登录2010-01-29
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望12点
  • 贡献值0点
  • 好评度11点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2004-02-12 12:38
回HONG:
你说的不是:DEINTERFACE,这只是把一帧的两场简单的交叉在一起,你可以看看相关的相关算法,PHILIPS的TREMEDIA开发包有一些介绍。

把不是一帧的两场交叉在一起,更是不对的做法。你应该建立两帧视频缓冲区,写完一帧数据后,由显卡的内部硬件把数据拿去显示。直接由BT878A的DMA写往显示卡的当前显示区域,是做不到这一点的。
堂堂正正做人,明明白白做事
liuzhigao
驱动牛犊
驱动牛犊
  • 注册日期2003-03-09
  • 最后登录2005-12-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2004-02-12 14:34
Sunbeam:
你好,Bt878a真的能否做到 8 384x288 YUY2 25f/s图像显示?
hong
驱动小牛
驱动小牛
  • 注册日期2001-09-19
  • 最后登录2005-12-16
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2004-02-12 23:45
回 Sunbeam:
i create a buffer,viod* p, for 640*480 pixels size (640*480*2 bytes)

and write RISC code as such:
Wait for odd sync;
write 640*2 bytes into *p (for first line)
write 640*2 bytes into *(p + 640*2*2); (for 3rd line)
...
write 640*2 bytes into *(p + 640*2*478); (for 479 line, last line of odd field)
wait for even sync;
write 640*2 bytes into *(p + 640*2*1);(for 2nd line, first line of event field)
write 640*2 bytes into *(p + 640*2*3); (for 4rd line)
...
write 640*2 bytes into *(p + 640*2*479); (for 480 line, last line of even field)
generate done interrupt;

by this way, a complete frame should be inside the buffer.

when you display the video you will find that they are not come from the same frame's odd and even field: just not joint well!

上一页
游客

返回顶部