1

是否有一个易于使用的用于 Delphi 6 的 JPEG 转换器(源代码),它可以将内存缓冲区中的 JPEG 帧快速转换为 DirectShow 兼容的位图,而无需不断重新分配内存?我试图避免将默认 JPEG 单元与 TBitmap 结合使用,因为它为每次转换分配一个新位图,并且每个操作也涉及一些其他初始化/拆卸操作。

我将从 RTP 服务器接收 JPEG 帧,我需要将其转换为位图并通过 DirectShow 过滤器的 FillBuffer() 调用推出。每个帧都将具有完全相同的大小和格式,因为它们是使用预设设置从视频捕获设备流式传输的。因此,如果我可以只分配一次位图,然后将每个传入的 JPEG 帧转换到现有的位图内存区域,我可以避免每秒 25 次重新分配一块内存以及 Delphi 涉及的任何其他辅助数据对象的开销在转换过程中使用的 JPEG 单元与 TBitmap 一起使用。

从 CPU 使用的角度来看,它不必快如闪电。速度足以在不到 1/25 秒的时间内处理 640 x 480 JPEG 帧转换(1/15 以确保安全)。

4

1 回答 1

1

Not sure about the memory usage but a very small JPEG-decoder with source that you can easily modify yourself is NanoJPEG: http://keyj.emphy.de/nanojpeg/

Delphi conversion here: http://www.emix8.org/static.php?page=nanoJpeg

于 2011-12-26T10:32:31.960 回答