数据压缩第十次作业

本文详细介绍了JPEG编码原理,包括零偏置、8×8DCT变换、量化和编码过程。同时,深入解析了JPEG文件格式,涵盖SOI、APPx、DQT、SOF0等数据段。此外,还概述了JPEG解码的基本步骤,从读取文件到解码图像,以及解码器的调试方法,帮助理解JPEG图像处理。
摘要由CSDN通过智能技术生成

JPEG原理分析及JPEG解码器的调试

JPEG实验原理

1.JPEG编码原理
在这里插入图片描述
(1)零偏置:即把[0,255]的像素值减128变为[-128,127];
(2)8×8DCT变换:能量集中和去相关,减小空间冗余;
(3)量化:根据人眼视觉特性,低频细量化,高频粗量化,减小视觉冗余;
(4)编码:直流系数进行差分和VLC编码,交流系数进行之字形扫描、游程编码和VLC编码,减少数据冗余。

2.JPEG文件格式
JPEG文件可以看作由多条数据段拼接成的文件,每条数据段包括两个部分:标记码和数据流。

标记码:由两个字节构成,其前一个字节为0xFF(通常只有一个0xFF,可以多个连续的0xFF),后一个字节则根据不同意义有不同数值。
数据流:记录了关于JPEG文件的相应信息(有些数据段无数据流)。

常用的数据段有SOI、APPx、DQT、SOF0、DHT、DRI、SOS、EOI等(SOI等只是数据段名,例如SOI是标记码为0xFFD8的数据段名,DHT是标记码为0xFFC4的数据段名)。

JPEG主要数据段说明
SOI ->Start of Image

含义:图像结束
标记码:0xFFD9 占2字节
数据流:无

APP0 ->Application 0(保留标记)
含义:应用程序保留标记0
标记码:0xFFE0——占2字节
数据流:
数据段长度——占2字节
标识符——5字节(固定值0x4A46494600=“JFIF0”)
版本号——2字节
密度单位——1字节(0->无单位 1->点数/英寸 2->点数/厘米)
X方向像素密度——2字节
Y方向像素密度——2字节
缩略图水平像素数目——1字节
缩略图垂直像素数目——1字节
缩略图RGB位图——长度为是3的倍数

APPx -> APPn->Application,x=1~15(可任选)
含义:应用程序保留标记x
标记码:0xFFE1~0xFFF——2字节(手机照片通常包含APP1,内容由地点,时间等)
数据流:
数据段长度——占2字节(不同数据段数据格式不同)

DQT ->Define Quantization Table,定义量化表
含义:定义量化表
标记码:0xFFDB——占2字节
数据流:
数据段长度——占2字节
量化表长度——占2字节
量化表ID——占1字节
量化表内容——占64字节
(量化表可以有多个,不超过4个)

SOF0 ->Start of Frame
含义:帧图像起始
标记码:0xFFC0——占2字节
数据流:
数据段长度——占2字节
精度——1字节
图像高度——2字节
图像宽度——2字节
颜色分量数——1字节(1-灰度图 3-YCrCb或YIQ 4-CMYK)
颜色分量信息——9字节

DHT ->Difine Huffman Table
含义:定义哈夫曼表
标记码:0xFFC4——占2字节
数据流:
数据段长度——占2字节
霍夫曼表长度——占2字节
表ID和表类型——1字节
不同位数的码字数量——16字节
编码内容——占16个不同位数的码字数量之和字节

DRI ->Define Restart Interval
含义:定义差分编码累计复位的间隔
标记码:0xFFDD——占2字节
数据流:
数据段长度——占2字节(长度固定为4)
MCU块的单元中的重新开始间隔——占2字节

SOS ->Start of Scan
含义:定义差分编码累计复位的间隔
标记码:0xFFC4——占2字节
数据流:
数据段长度——占2字节
颜色分量数——1字节(1-灰度图是 3-YCrCb或YIQ 4-CMYK)
颜色分量ID——1字节
直流/交流系数表号——1字节
压缩图像数据——3字节(固定值0x003F00)

EOI ->End of Image
含义:图像结束
标记码:0xFFD9 占2字节
数据流:无

JPEG文件格式fromCSDN

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.JPEG解码基本原理
(1)读取文件
(2)解析segment marker
(a)解析 SOI
(b)解析 APP0
检查标识“JFIF”及版本并得到一些参数
© 解析 DQT
得到量化表长度(可能包含多张量化表)
得到量化表的精度
得到及检查量化表的序号(只能是 0 —— 3)
得到量化表内容(64 个数据)
(d)解析 SOF0
得到每个 sample 的比特数、长宽、颜色分量数
得到每个颜色分量的 ID、水平采样因子、垂直采样因子、使用的量化表 序号(与 DQT 中序号对应)
(e) 解析 DHT
得到 Huffman 表的类型(AC、DC)、序号
依据数据重建 Huffman 表 3.2.6 解析 SOS
得到解析每个颜色分量的 DC、AC 值所使用的 Huffman 表序号(与 DHT 中序号对应)
(3)依据每个分量的水平、垂直采样因子计算 MCU 的大小,并得到每个 MCU 中 8*8 宏块的个数
(4) 对每个 MCU 解码(依照各分量水平、垂直采样因子对 MCU 中每个分量宏块解 码)
(a)对每个宏块进行 Huffman 解码,得到 DCT 系数
(b)对每个宏块的 DCT 系数进行 IDCT,得到 Y、Cb、Cr
©遇

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值