从YUY2到RGB24的快速转换

时间:2010-01-08 02:35:51

标签: c++ webcam data-conversion

我正在编写一个程序,它会对网络摄像头中的图像进行实时转换。与几乎所有其他网络摄像头一样,我的noname以YUY2格式提供数据(用bmiHeader.biCompression编写)。我根据http://www.fourcc.org/yuv.php#YUY2尝试在CPU端进行直接转换,但它非常慢而且错误:)。

当我将源输出引脚连接到渲染器时,图像和帧速率都很好。

所以我正在寻找一个DirectShow过滤器,或者可能是一些编解码器,它可以在视频卡上从YUY2快速转换为RGB24,并且无需在屏幕上显示结果即可获得结果。

我正在使用:

  • 32位Windows XP SP3。
  • VC ++ 2005
  • 最近下载的Windows SDK。
  • DirectX August'09。

2 个答案:

答案 0 :(得分:2)

我目前没有可用的代码。但是看一下使用GDI来快速进行转换。

基本上捕获源帧,以正确的格式(rgb24)创建内存dib并向位图blit。在blitting期间进行转换,而且我的经验非常快。

我用这个从网络摄像头抓取帧然后我可以以所需的帧率将帧丢弃到硬盘驱动器作为jpegs或位图。

DC

答案 1 :(得分:0)

您可以使用VirtualDub Kasumi库http://virtualdub.sourceforge.net/