压缩原始资源数据,桌面图像帧,来自 D3D11_MAPPED_SUBRESOURCE(桌面复制 API)

Compression of raw resource data, of desktop image frame, from D3D11_MAPPED_SUBRESOURCE (Desktop Duplication API)

我需要通过网络传输 帧桌面图像数据,这些数据是使用桌面复制 API 捕获的,但有一个问题:size of raw frame data, in FullHD with DXGI_FORMAT_B8G8R8A8_UNORM格式,大约等于 8 MB,尺寸太大,尤其是对于一帧。

有没有什么好的方法可以压缩桌面图像的框架,来自 D3D11_MAPPED_SUBRESOURCE 的数据,并获得至少 KB[ 的大小=29=]?也许是某种从 bmp 到 jpeg 的转换?

我已经尝试过 LZ4 压缩,使用 LZ4_compress_default 方法,并得到字节数组 3.4 MB 大小,对于框架来说还是太大了。

...large size, especially for one frame

由于您正在处理视频并且网络传输存在问题,因此您唯一真正的选择是 H.264 和 H.265 视频压缩 - 可在视频适配器上的硬件辅助编码器中实现的那些。 Microsoft Media Foundation API (Transforms) 和视频硬件供应商特定的 SDK 提供相关功能。

Windows 单个图像的成像组件 (WIC) 在压缩率方面既慢又低。虽然在单独快照是唯一要传输的数据而不是视频的情况下,这可能是一个不错的选择。

此外,检查视频编码支持的简单方法:http://alax.info/blog/1609

The tools enumerates the transforms and provides details, similar to Enumerating Media Foundation Transforms (MFTs) application