Delphi 6 的 JPEG 到位图转换器易于使用,内存使用效率高?

发布于 2024-12-22 15:34:53 字数 482 浏览 2 评论 0原文

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

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

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

Is there an easy to use JPEG converter (source code) for Delphi 6 that will convert a JPEG frame in a memory buffer to a DirectShow compatible bitmap quickly and without constant memory re-allocation? I'm trying to avoid the default JPEG unit in conjunction with TBitmap because it allocates a new bitmap with every conversion, and has some other initialize/teardown operations involved with each operation too.

I'll be receiving JPEG frames from an RTP server that I need to convert to bitmaps and push out through the FillBuffer() call of my DirectShow filter. Each frame will be exactly the same size and format since they are streamed from a video capture device using preset settings. Therefore, if I could allocate the bitmap only once, and then convert each incoming JPEG frame into the existing bitmap memory area, I could avoid re-allocating a chunk of memory 25 times a second and the overhead of any other ancillary data objects Delphi involves in the conversion process used in the JPEG unit along with TBitmap.

It doesn't have to be lightning fast from a CPU usage perspective. Just fast enough to handle a 640 x 480 JPEG frame conversion in less than 1/25 of a second (1/15 to be safe).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

天暗了我发光 2024-12-29 15:34:53

不确定内存使用情况,但 NanoJPEG 是一个非常小的 JPEG 解码器,您可以轻松修改其源代码: http: //keyj.emphy.de/nanojpeg/

此处进行 Delphi 转换:http://www.emix8.org/static.php?page=nanoJpeg

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文