阅读:1427回复:7
关于用directdraw直接显示yub的方法,哪位能给点意见?多谢了.
我现在要用directdraw直接显示yuv图像(为了节省cpu的消耗),但是不知道怎么显示啊.只有yuv转换成rgb的.哪位能给点意见?或者有例子代码更好了.多谢了先.
|
|
沙发#
发布于:2004-08-16 23:12
DirectX SDK 7里面有个“蚊子”的例子,你可以参考。建议你还是使用DirectShow,功能多多,专门用于视频采集和显示,请参考DirectX SDK 9。
|
|
|
板凳#
发布于:2004-08-17 09:08
用OVERLAY方式:它支持的像素格式多多。
|
|
|
地板#
发布于:2004-08-17 10:25
多谢各位的回复.
如果用overlay的方式,那也得设定那个pixelformat的格式,但是我用的是平面4:1:1的格式,如何设定啊? 还有,如果将一帧yuv的数据拷贝到overlay上面去啊. 实在是新手,请大家多多指教啊. |
|
地下室#
发布于:2004-08-25 13:05
恐怕没有什么显卡支持4:1:1的格式
|
|
5楼#
发布于:2004-08-26 21:10
请教:
4:1:1是什么样的一个格式? |
|
6楼#
发布于:2004-09-07 10:14
4:1:1就是在一行相邻的每4个象素中,采样4个Y、1个U和1个V。PC机对这种格式基本上没有什么支持,因为数字视频压缩标准几乎都是用4:2:0或4:2:2的。楼主最好把图像先转成4:2:2(YUY2或者UYVY)再送去显示,这个操作花不了多少CPU时间。
|
|
7楼#
发布于:2004-09-07 11:56
谢谢各位的回复,我已经做出来了。
是将原来的格式,先转化成4:2:2的格式(这个格式directdraw是支持的,而420格式不支持,411也不支持,但是directshow可能支持420的格式),然后用directdraw直接显示的yuv数据,cpu消耗的确降低了很多, 另,directdraw中的overlay方式,不适合做多路的,因为只有一个主平面,但是如果想在平面上打字或者是重叠放多个平面的话(有的需要特殊效果),可能就得用overlay方式。 谢谢各位的回复。 |
|