如何并行执行一个BIG RGB-图像的jpeg编码?

问题描述 投票:1回答:1

我必须用jpeg压缩一张很大的图片(图片大小为1.5米)。> 100 MB ).

我现在使用openCV 3.4.3编码(openCV使用libjpeg-turbo 1.5),它需要我的 750 [ms] 对于 129 MB RGB图像 ( 7250 * 621 * 3 ),但它使用的是单线程。

我想 通过使用线程来加快jpeg的编码(和解码)。.

怎么做呢?

我用的是Windows机器。

我可以使用IPP(英特尔的),如果它的帮助。

c++ parallel-processing jpeg image-compression
1个回答
0
投票

Q : "如何对一个BIG RGB-图像进行并行的jpeg编码?" @user3666197, 我只有一张大图片。目标是尽可能用最短的延迟完成任务。我的用户正在等待他的输出 - Ido 5小时前

由RGB阵列产生的JPEG编码可以是 进行 主要分几个步骤。

1 ) 颜色变换: 将RGB转换为YCbCr--易于并行,不依赖块内核 2 ) JPEG 彩色亮度下采样 - 容易并行,不依赖内核块 3 ) 8x8块的DCT 零去除& Huffman编码 - AFAIK,这,工作,必须是一个纯粹的。[SERIAL] 流程

如果有兴趣设计一个高效的,最终低延迟的处理方式,最好的结果将需要不去重用一个COTS通用代码,而是深入下去,重写自上而下的处理方式,最好遵循缓存线重用模式,并尽可能使用CPU原生的矢量化指令(无论是使用内嵌的汇编代码还是AVX AVX2 AVX512本体)来做。

© www.soinside.com 2019 - 2024. All rights reserved.