JPEG

姓名:李伟      学号:17101223393

【嵌牛导读】:大家对JPEG了解吗?今天和大家分享一下。

【嵌牛鼻子】:DCT 变换、图像压缩。

【嵌牛提问】:JPEG变换的计算过程

【嵌牛正文】:

JPEG 是Joint Photographic Experts Group(联合图像专家小组)的缩写,是第一个国际图像压缩标准。JPEG图像压缩算法能够在提供良好的压缩性能的同时,具有比较好的重建质量,被广泛应用于图像、视频处理领域。人们日常碰到的“.jpeg”、‘’.jpg“等指代的是图像数据经压缩编码后在媒体上的封存形式,不能与JPEG压缩标准混为一谈。

JPEG编解码器

下图为JPEG基本系统的编解码器原理图,输入的彩色图像为Y、U、V三个分量,JPEG对它们分别进行编码。


压缩步骤

由于JPEG的有损压缩方式(Lossy mode of operation)并不比其他的压缩方法更优秀,

因此我们着重来看它的有损压缩中最常用的基线JPEG算法(baseline sequential)。以一幅24位彩色图像为例,JPEG的压缩步骤分为:

1.颜色转换

JPEG支持图像采用任何一个色彩空间,支持1~4个颜色分量。灰度图像颜色分量数为1。RGB、YUV、YCbCr等拥有3种颜色分量。4种颜色分量的例子是青、洋红、黄和黑(Cyan,Magenta,Yellow,and Black,CMYK)。为了减少色度通道包含的大量的冗余信息,本例中采用YCbCr色彩空间。首先需要进行从RGB到YCbCr的色彩空间变换:

Y = 0.299000R + 0.587000G + 0.114000B

Cb = -0.168736R - 0.331264G + 0.500002B

Cr = 0.500000R - 0.418688G - 0.081312B

其中,Y表示亮度分量,Cb和Cr表示蓝红色度分量。

2.DC电平偏移

最初,在图像中的像素存储在无符号的整数中。对于数学计算,在图像中任何变换或数学计算开始之前,根本上是将这些采样转换成两个补码表示。DC电平偏移的目的是保证输入图像的采样有近似地集中在零附近的动态范围。DC电平偏移执行的图像采样只通过无符号数表示。

方法:假设图片分量的采样精度为n,那么分量中的每个像素值应减去2的(n-1)次幂。

对于图像而言他的采样由无符号的整数表示,例如CT(X光断层成像)图像,动态范围已经集中于零附近,所以不需要DC电平偏移。

3.子采样

色彩空间转换之后,图像的大多数空间信息包含在亮度分量Y中。色度分量Cb和Cr包含大量冗余的颜色信息,所以我们运用子采样较少色度数据量以在丢失少量信息的情况下压缩图像。

基线JPEG常用的子采样格式为4:2:0,同时支持4:2:2和4:4:4颜色格式。

4.DCT变换


DCT(DiscreteCosineTransform)是将图像信号在频率域上进行变换,分离出高频和低频信息的处理过程。然后再对图像的高频部分(即图像细节)进行压缩,以达到压缩图像数据的目的。首先将图像划分为多个8*8的矩阵。然后对每一个矩阵作DCT变换。变换后得到一个频率系数矩阵,其中的频率系数都是浮点数。

标准色度量化表


标准亮度量化表


5.量化

由于在后面编码过程中使用的码本都是整数,因此需要对变换后的频率系数进行量化,将之转换为整数。由于进行数据量化后,矩阵中的数据都是近似值,和原始图像矩阵之间有了差异,这一差异是造成图像失真后失真的主要原因。

量化算法


在这一过程中,质量因子的选取至为重要。值选得过大,可以大幅度提高压缩比,但是图像质量就比较差;反之,质量因子越小(最小为1),图像重建质量越好,但是压缩比越低。对此,ISO已经制定了一组供JPEG代码实现者使用的标准量化值(如右图所示)。

右图的两个量化表的设计是根据由Lohscheller做的心理视觉实验来确定二维基函数的可见阈值。

这些表也不适用于各种各样的图像,但他们为大多8位精度自然图像进行亮度和色度采样提供了合理的、出色的结果。

6.编码

从前面过程我们可以看到,颜色转换完成到编码之前,图像并没有得到进一步的压缩,DCT变换和量化可以说是为编码阶段做准备。

编码采用两种机制:一是0值的行程长度编码;二是熵编码(EntropyCoding)。

zig_zag


①之字形排序(Zig-zag ordering)

在JPEG中,采用曲徊序列,即以矩阵对角线的法线方向作“之”字排列矩阵中的元素。这样做的优点是使得靠近矩阵左上角、值比较大的元素排列在行程的前面,而行程的后面所排列的矩阵元素基本上为0值。

②使用RLE对交流系数(AC)进行编码

行程长度编码是非常简单和常用的编码方式,在此不再赘述。

需要注意的是,AC系数的之字形序列编码中有两个特殊符号——(0,0)和(15,0)。第一个特殊符号指的是块的结束(end-of-block,EOB),用来表明在之字形块中剩余的元素都是零。另一个特殊符号是指零游程长度(zero-run-length,ZRL),用来表明16个零游程。基线JPEG允许的零游程最大长度是16个。如果这里的零超过16个,那么这个游程分成几个长度为16的零游程。

③使用DPCM对直流系数(DC)进行编码

DCT系数量化之后,通过差分编码对量化后的DC系数编码。当前块的DC系数减去前个块的DC系数,然后对其差值进行编码,如右图所示。这就利用了邻接块DC值之间的空间相关性。

④熵编码

编码实际上是一种基于统计特性的编码方法。在JPEG中允许采用HUFFMAN编码或者算数编码。而基线JPEG算法(baseline sequential)采用的是前者。

经过RLE编码的AC系数可以映射成两个标志(RUNLENGTHCATEGORY)和(AMPLITUDE),前者采用的是霍夫曼编码,而后者采用的是VLI编码。同理经过DPCM编码的DC系数同样可以映射成两个标志(CATEGORY)和(AMPLITUDE),,前者采用霍夫曼编码,后者采用VLI编码。

基线JPEG允许使用4个霍夫曼表,两个用于AC系数编码,两个用于DC系数编码。具体的编码表请查询ITU-T.81的表K.3~K.6

数据压缩格式

1.JPEG定义了三种压缩数据格式:

a) 交换格式 (interchange format)

b) 压缩图像数据的缩略格式(abbreviated format for compressed image data,)

c) 规范表数据的缩略格式(abbreviated format for table-specification data)

2.压缩数据规范的基本内容(General aspects of the compressed data formatspecifications)

在结构上,压缩数据格式包含一个由参数、标志和熵编码数据段组成的有序集合。参数和标记往往又形成标志段。由于所有这些组成部分是由字节对齐的代码表示的,因此每一个压缩数据格式由一个8-bits字节的有序序列组成。对于每一个字节,都定义了一个最高有效位(MSB)和一个最低有效位(LSB)。[4]

插图的语法规定示例


3.插图的语法规定(Conventions for syntax figures)

如右图:



为了便于了解JPEG压缩数据流中每一个frame和scan的内容,必须掌握以下语法

– 参数/标记指示符:一个细线框包含一个标志或一个单独的参数;

– 段指示符:一个粗线框包含一个标志段、一个熵编码段或他们的结合;

– 参数长度指示符:细线框的宽度与其包含的参数或标志的位长成正比(如图B.1中的E(4位),B(8位)和D(16位)所示)。相反,粗线框的宽度是无意义的;

– 可选的/有条件的指示符:方括号标明,在压缩数据中,当前标志段或标记只是可选的或有条件的。

– 次序:交换格式中,图中所示的参数或标志都先于其右边所示的参数或标志,并跟在它左边的参数后面。

– 熵编码数据指示符:尖括号标明,其包围的内容是已经经过了熵编码的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容