1

我有一系列 jpg 图像,我正在捕获这些图像并将其渲染到屏幕上以创建视频。

我正在使用 JpegBitmapDecoder 从 MemoryStream 解压缩图像,并通过在 Image 控件上设置 Source 来呈现它。这似乎工作正常,但处理器开销相当高。图像为 1280x720,以 30fps 运行,我几乎无法跟上我的电脑(双核 2.8Ghz)。以更高的分辨率运行会导致我丢弃帧。我想尝试降低 CPU 利用率。

花费的大部分时间似乎都花在了解码上(仅在我的机器上进行解码的简单基准测试表明我可以解码大约 40fps)。有谁知道是否有更快的解码器可用(DirectX?DirectShow?我可以卸载到视频卡的东西?)

至于渲染,Image 控件似乎不是为这种类型的使用而设计的(实际上我很惊讶它完全起作用,我只是尝试了它,因为它很容易做到)。是否有另一种方法可以更快地渲染单个帧?

4

1 回答 1

1

听起来您同时在解码和调整 jpeg 大小。调整大小也可能很昂贵。尝试对 jpeg 进行解码和调整大小(使用最便宜的算法)。使用FreeImage之类的东西和“JPEG_FAST”来解压缩和“FILTER_BOX”来调整大小。

对于显示,TinyPTC 简单快捷。(DirectDraw 的包装器)它是 C,但编写包装器并编译成您可以引用的 dll 非常容易。

于 2009-07-11T14:38:19.507 回答