jpeg图像质量参数及icc信息提取

本文介绍了一种通过解析JPEG图像中的量化表来估算其压缩质量参数的方法。利用libjpeg-turbo库,在Linux环境下实现了从JPEG文件中读取并计算质量参数的C++代码示例。该方法通过对量化表进行反推计算,得出图像的平均压缩质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图像编码算法都有相应的质量参数,如hevc编码中的qp值(值越大,压缩率越高),jpeg中的quality(对应到DCT变换后的量化程度)。最近看了看如何根据jpeg图像中的量化文件统计其quality参数,记录下过程。

jpeg文件中可以携带icc颜色配置信息,这个参数告诉显示器用什么色域来显示图像,如下图文件中包含了Adobe RGB色彩描述文件,icc文件大小通常为几百个字节,嵌入在APP2 marker(0xe2)中。
在这里插入图片描述
我的环境:linux centos、libjpeg turbo库
Talk is cheap, Show me your code…

#include <stdio.h>
#include <math.h>

#include "jpeglib.h"
#include <setjmp.h>
#include "turbojpeg.h"
#include "cdjpeg.h"

//标准亮度分量量化表
static const unsigned int std_luminance_quant_tbl[DCTSIZE2] = {
    16,  11,  10,  16,  24,  40,  51,  61,
    12,  12,  14,  19,  26,  58,  60,  55,
    14,  13,  16,  24,  40,  57,  69,  56,
    14,  17,  22,  29,  51,  87,  80,  62,
    18,  22,  37,  56,  68, 109, 103,  77,
    24,  35,  55,  64,  81, 104, 113,  92,
    49,  64,  78,  87, 103, 121, 120, 101,
    72,  92,  95,  98, 112, 100, 103,  99
};

//标准色度分量量化表
static const unsigned int std_chrominance_quant_tbl[DCTSIZE2] = {
    17,  18,  24,  47,  99,  99,  99,  99,
    18,  21,  26,  66,  99,  99,  99,  99,
    24,  26,  56,  99, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值