阅读:3934回复:30
878问题
PCI是否能够支持878a芯片8路PAL,384X288,YUY2,25f/s的图像传输,
我的总有数据线丢失,在16f/s左右时没有数据线丢失,有什么方法解决这个问题,最好是通过软件解决. |
|
最新喜欢:beni_w |
沙发#
发布于:2004-02-01 09:46
8路没有什么问题,一般的主板都可以支持。
我在做16路时遇到过这个问题,当时得出结论是: 与桥芯片、显卡芯片有关。 |
|
|
板凳#
发布于:2004-02-01 09:54
解决方法有:
1、用连续的大内存 2、主板上最好有AGP总线,直接用显存作为数据缓冲区 [编辑 - 2/1/04 by Sunbeam] [编辑 - 2/3/04 by Sunbeam] |
|
|
地板#
发布于:2004-02-02 09:09
谢谢楼上的大侠,本人先试一试.
|
|
地下室#
发布于:2004-02-02 09:25
楼上的大侠,不知能否告知本人RISC指令怎样才能控制每次传输1~2k的数据.有机会我请客.
|
|
5楼#
发布于:2004-02-02 13:34
我这里的硬件是两块四路芯片的PCI卡.不知大侠实现的卡是怎样的?
是不是我的硬件的问题. |
|
6楼#
发布于:2004-02-03 13:29
呵呵,RISC指令控制不了。它是根据一行一行来传输。
TM1300的DMA特点有此要求 |
|
|
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] |
|
8楼#
发布于:2004-02-07 12:46
直接把显存作为预览视频流的缓冲区。用DDRAW中的函数来分配内存。
|
|
|
9楼#
发布于:2004-02-09 10:11
谢谢大侠,本人先试一试
|
|
10楼#
发布于:2004-02-09 18:01
本人使用函数分配了显卡内存,传入驱动程序. 可还是有数据线丢失.
改成320X240好多了,但图像快速移动时,有时还是可以看到一两根数据线丢失. |
|
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? |
|
12楼#
发布于:2004-02-10 09:13
回HONG:
奇偶场合成一帧时要加一个DEINTERLACE FILTER,算法有简单的,也有复杂点的。要看你的实际应用情况而定。 |
|
|
13楼#
发布于:2004-02-10 09:59
大侠,我的路怎么还是有数据线丢失,我试过4 路PAL 640x480 YUY2 25f/s好像没有数据线丢失,计算PCI传输数据总量, 应该8路384x288 YUY2 25f/s PAL 的数据总量还要大,怎么PCI就前一种情况能传输,
是不是还有很多技巧在里面,能否指点指点? |
|
14楼#
发布于:2004-02-10 18:49
我有做好的8路不丢的,可以出售给你源码。
另外有带声音的usb多路方案。 可实现8路320×240 25fps,8路12bits8khz声音采样。 mqy@263.net.cn |
|
15楼#
发布于:2004-02-11 09:24
那你能不能发一个可以运行的驱动和测试程序给我,我要先看一下效果,是否真的能做到图像在快速移动时不会丢数据线,我的邮箱是
[编辑 - 2/17/04 by liuzhigao] |
|
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. |
|
17楼#
发布于:2004-02-12 12:38
回HONG:
你说的不是:DEINTERFACE,这只是把一帧的两场简单的交叉在一起,你可以看看相关的相关算法,PHILIPS的TREMEDIA开发包有一些介绍。 把不是一帧的两场交叉在一起,更是不对的做法。你应该建立两帧视频缓冲区,写完一帧数据后,由显卡的内部硬件把数据拿去显示。直接由BT878A的DMA写往显示卡的当前显示区域,是做不到这一点的。 |
|
|
18楼#
发布于:2004-02-12 14:34
Sunbeam:
你好,Bt878a真的能否做到 8 384x288 YUY2 25f/s图像显示? |
|
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! |
|
上一页
下一页