Encoding JPEG编码器性能
我目前正在用C编写JPEG编码器,我刚刚完成了我的第一个实现。编码器在ppm/pgm图像上工作良好。现在我关心的是编码器的性能 与libjpeg-turbo的JPEG相比,我的编码器实际上速度较慢。cjpeg以200毫秒的速度处理3000万像素的图像,而我的需要7秒的时间来进行编码。我不明白这是怎么可能的,因为我使用的是快速DCT实现Encoding JPEG编码器性能,encoding,jpeg,Encoding,Jpeg,我目前正在用C编写JPEG编码器,我刚刚完成了我的第一个实现。编码器在ppm/pgm图像上工作良好。现在我关心的是编码器的性能 与libjpeg-turbo的JPEG相比,我的编码器实际上速度较慢。cjpeg以200毫秒的速度处理3000万像素的图像,而我的需要7秒的时间来进行编码。我不明白这是怎么可能的,因为我使用的是快速DCT实现 谁能告诉我这巨大的差异是从哪里来的?cjpeg怎么这么快?您需要进行一些分析,以了解发生了什么。也就是说,我敢打赌性能差异的原因在于缓冲。从逻辑上讲,JPEG认为
谁能告诉我这巨大的差异是从哪里来的?cjpeg怎么这么快?您需要进行一些分析,以了解发生了什么。也就是说,我敢打赌性能差异的原因在于缓冲。从逻辑上讲,JPEG认为数据在不同的压缩阶段具有不同的格式 输入通常是24位颜色值的数组。 这些被转换为YCbCR,给出另一个颜色值数组。 这些通常是次采样的,因此给出的逻辑Cb和Cr数组比Y数组小 对于DCT,先前的数组采用不同的形式;8x8阵列的阵列 对于DCT输出,您有一个每像素16位的阵列
这些不同阵列的管理可能是性能差异的根源。通过消除物理转换,您可以获得最大的性能改进。您需要进行一些分析,以了解发生了什么。也就是说,我敢打赌性能差异的原因在于缓冲。从逻辑上讲,JPEG认为数据在不同的压缩阶段具有不同的格式 输入通常是24位颜色值的数组。 这些被转换为YCbCR,给出另一个颜色值数组。 这些通常是次采样的,因此给出的逻辑Cb和Cr数组比Y数组小 对于DCT,先前的数组采用不同的形式;8x8阵列的阵列 对于DCT输出,您有一个每像素16位的阵列 这些不同阵列的管理可能是性能差异的根源。通过消除物理转换,您可以获得最大的性能改进