c++ - 通过网络(远程屏幕广播应用程序)传输 JPEG 压缩的屏幕图 block 时,是否值得/推荐使用 zlib(或类似的)压缩?

标签 c++ zlib vnc libjpeg

我开始用 C++(Windows 平台)实现某种远程屏幕广播(类似 VNC)客户端/服务器软件,它仅通过网络传输屏幕更新(图像图 block )。

在通过网络发送之前,屏幕被分为多个 block ,每个图 block 都被压缩为 JPEG(可能我会使用 libjpeg-turbo)。所以我的问题是,为这些(已经 JPEG 压缩的)图 block 实现另一层压缩(无损)会好吗?使用 zlib?

我有一种感觉,zlib 不会在带宽方面提供任何显着的改进,因为 JPEG 文件已经被压缩了。我希望避免仅仅出于测试目的而投入更多的时间和金钱来实现额外的压缩层,因此我想听听您的建议。

P.S.:顺便问一下,除了将图 block 编码为 JPEG 之外,还有其他更好的选择吗?也许立即进行无损压缩?上述技术(将屏幕划分为图 block => 选择更新的图 block => 将它们压缩为 JPEG => 通过网络发送)是实现此类软件的好方法吗?

任何形式的意见都将不胜感激!

最佳答案

JPEG 文件已经被压缩得几乎尽可能小。您可能会在 header 上节省一些字节,但这可以通过额外压缩的开销来克服。

如果您需要进行快速检查以证明这一点,那么应该很容易压缩一组示例 jpeg 文件并查看差异。

关于c++ - 通过网络(远程屏幕广播应用程序)传输 JPEG 压缩的屏幕图 block 时,是否值得/推荐使用 zlib(或类似的)压缩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6269542/

相关文章:

iphone - zlib 直接用于解压 iPhone 的 zip 文件夹

macos - Raspberry PI 和 Mac OSx 之间的屏幕共享

c++ - 为什么从输入收集字符串时整数输出为0

c++ - 参数包不在最后位置的部分类模板特化

C++程序无法编译

c# - 无法解压缩 ZLIB/DEFLATE 数据

C++ zLib 字节数组压缩

android - Droid VNC 是如何工作的?

windows-7 - Windows 7 上的 VNC 服务器

c++ - 客户端到客户端套接字通信