Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encoding JPEG编码器性能_Encoding_Jpeg - Fatal编程技术网

Encoding JPEG编码器性能

Encoding JPEG编码器性能,encoding,jpeg,Encoding,Jpeg,我目前正在用C编写JPEG编码器,我刚刚完成了我的第一个实现。编码器在ppm/pgm图像上工作良好。现在我关心的是编码器的性能 与libjpeg-turbo的JPEG相比,我的编码器实际上速度较慢。cjpeg以200毫秒的速度处理3000万像素的图像,而我的需要7秒的时间来进行编码。我不明白这是怎么可能的,因为我使用的是快速DCT实现 谁能告诉我这巨大的差异是从哪里来的?cjpeg怎么这么快?您需要进行一些分析,以了解发生了什么。也就是说,我敢打赌性能差异的原因在于缓冲。从逻辑上讲,JPEG认为

我目前正在用C编写JPEG编码器,我刚刚完成了我的第一个实现。编码器在ppm/pgm图像上工作良好。现在我关心的是编码器的性能

与libjpeg-turbo的JPEG相比,我的编码器实际上速度较慢。cjpeg以200毫秒的速度处理3000万像素的图像,而我的需要7秒的时间来进行编码。我不明白这是怎么可能的,因为我使用的是快速DCT实现


谁能告诉我这巨大的差异是从哪里来的?cjpeg怎么这么快?

您需要进行一些分析,以了解发生了什么。也就是说,我敢打赌性能差异的原因在于缓冲。从逻辑上讲,JPEG认为数据在不同的压缩阶段具有不同的格式

输入通常是24位颜色值的数组。 这些被转换为YCbCR,给出另一个颜色值数组。 这些通常是次采样的,因此给出的逻辑Cb和Cr数组比Y数组小

对于DCT,先前的数组采用不同的形式;8x8阵列的阵列

对于DCT输出,您有一个每像素16位的阵列


这些不同阵列的管理可能是性能差异的根源。通过消除物理转换,您可以获得最大的性能改进。

您需要进行一些分析,以了解发生了什么。也就是说,我敢打赌性能差异的原因在于缓冲。从逻辑上讲,JPEG认为数据在不同的压缩阶段具有不同的格式

输入通常是24位颜色值的数组。 这些被转换为YCbCR,给出另一个颜色值数组。 这些通常是次采样的,因此给出的逻辑Cb和Cr数组比Y数组小

对于DCT,先前的数组采用不同的形式;8x8阵列的阵列

对于DCT输出,您有一个每像素16位的阵列

这些不同阵列的管理可能是性能差异的根源。通过消除物理转换,您可以获得最大的性能改进