【问题标题】:Fast conversion from YUY2 to RGB24从 YUY2 到 RGB24 的快速转换
【发布时间】:2011-01-02 18:20:38
【问题描述】:

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

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

所以我正在寻找一个 DirectShow 过滤器,或者,也许,一些编解码器,它可以在视频卡上进行从 YUY2 到 RGB24 的快速转换,并且无需在屏幕上渲染就可以得到结果。

我正在使用:

  • 32 位 Windows XP SP3。
  • VC++ 2005
  • 最近下载的 Windows SDK。
  • DirectX 09 年 8 月。

【问题讨论】:

    标签: c++ webcam data-conversion


    【解决方案1】:

    我目前没有可用的代码。但是看看使用 GDI 进行转换的速度非常快。

    基本上捕获源帧,以正确的格式 (rgb24) 创建内存 dib 并 blit 到位图。转换发生在 blitting 期间,根据我的经验,转换非常快。

    我使用它从网络摄像头抓取帧,然后我可以将帧以所需的帧速率作为 jpeg 或位图拖放到硬盘驱动器。

    直流

    【讨论】:

    • 我将答案标记为接受不是因为它对我有帮助。但我找到了解决方案。我只是将我的 ISampleGrabber 的 AM_MEDIA_TYPE 设置为 rgb24,如 MSDN 中所写。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-26
      • 1970-01-01
      • 1970-01-01
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-16
      相关资源
      最近更新 更多