JPEG压缩数据格式.docx
- 文档编号:3260732
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:19
- 大小:778.91KB
JPEG压缩数据格式.docx
《JPEG压缩数据格式.docx》由会员分享,可在线阅读,更多相关《JPEG压缩数据格式.docx(19页珍藏版)》请在冰豆网上搜索。
JPEG压缩数据格式
JPEG压缩数据格式
————————————————————————————————作者:
————————————————————————————————日期:
JPEG压缩数据格式
AnnexB
Compresseddataformats
(ThisannexformsanintegralpartofthisRecommendation|InternationalStandard)
T本附录介绍三种压缩数据格式:
a)交换格式,在B。
2和B。
3中介绍;
b)压缩图像数据的缩略格式,在B.4中介绍;
c)表规范数据的缩略格式,在B。
5中介绍。
B。
1描述这些格式的构成部分。
B.1。
3和B。
1.4给出了格式规范中使用到的插图和符号的约定。
B。
1压缩数据规范的基本层面
在结构上,压缩数据格式包含一个由参数、标记和熵编码数据段组成的有序集合.参数和标记往往又形成标记段。
由于所有这些组成部分是由字节对齐的代码表示的,因此每一个压缩数据格式由一个8—bits字节的有序序列组成.对于每一个字节,都定义了一个最高有效位(MSB)和一个最低有效位(LSB)。
B.1。
1组成部分
这个小节给出了压缩数据格式每一个部分的概述。
B.1。
1.1参数
参数是整数,其值特定于具体的编码过程,源图像的特点,和应用程序可选的其他特性.参数由4-bit,1字节或2字节的代码赋值。
除了某些可选的参数组,参数都编码重要的信息,如果没有这些信息,解码过程就无法正确的重建图像。
一个参数的代码应该是一个无符号整数,该整数具有以位为单位的规定长度,并具有特定的参数值。
对于长度2字节(16位)的参数,则在压缩数据字节的有序序列中,最高位字节应该在前。
长度为4位的参数成对出现,并且这一对参数应被编码为一个单独的字节。
参数对中的第一个4-bit参数应该占据字节的高4位。
对于任何的16—,8—,或4—bit参数,MSB应该在前,LSB在后。
B.1。
1。
2标记
标记用于标识压缩数据格式的各个不同结构部分。
大多数标记开启了一个标记段,而标记段则包含了一个相关的参数组。
所有的标记均被分配一个2字节的代码:
一个X’FF字节后跟一个不为0或X’FF’字节(参见表B.1)。
所有的标记前面可以有一些可选的代码为X’FF的填充字节。
注意–由于这种特别的代码分配结构,因此标记使解码器可以在不解码图像数据的其他段的情况下,而解析压缩数据并定位它的各个部分.
B。
1。
1。
3标记分配
所有的标记均被分配一个两字节的代码:
一个X’FF’,及其后跟着的一个不为0或X’FF的第二个字节.每一个定义的标记的第二个字节在表B.1中指定.一个星号(*)表示一个标记是独立的,即,它不是一个标记段的开始。
TableB。
1–Markercodeassignments
B.1.1。
4标记段
一个标记段由一个标记和该标记后面跟着的一个相关参数的序列组成.标记段中的第一个参数是2字节的长度参数。
该长度参数编码了标记段以字节为单位的长度,包括长度参数,但不包括2字节的标记。
以SOF和SOS标记码标识的标记段被称为头:
分别为帧头和扫描头。
B。
1.1。
5熵编码数据段
一个熵编码数据段包含了一个熵编码过程的输出。
无论熵编码过程使用的是霍夫曼编码还是算术编码,它都由整数个自己组成。
注意
1按下面方法执行以使熵编码数据段具有整数个字节:
对于霍夫曼编码,如果需要,则在压缩数据的最后填充值为1的位值来补齐段的最后一个字节。
对于算术编码,字节对齐在终止熵编码段的过程中进行(参见D。
1。
8)。
2为了确保一个标记不会出现在一个熵编码段中,则任何一个由霍夫曼编码或算术编码产生的X’FF’字节,或如上面注意1中所述,由值为1的位填充而得的一个X’FF’字节,其后要紧跟一个“填塞"0字节(参见D.1.6和F。
1.2。
3).
B。
1。
2语法
B.2和B。
3中详述了交换格式的语法。
就本规范的目的,语法规范的组成为:
–要求的标记,参数和熵编码段的顺序;
–可选的和有条件的组成部分的识别;
–每一个标记和参数的名称、符号和识别;
–每一个参数的允许值;
–以上各条特定于各种编码过程的所有限制。
各组成部分的次序及可选的和有条件的部分的识别在语法插图B.2和B.3中示出。
名称、符号、定义、允许值、条件和限制很快将在下面的各个语法插图中示出。
B.1。
3语法插图约定
B.2和B。
3中的语法插图是交换格式规范的一部分。
在图B.1中阐明的,下面的约定,应用于这些插图:
–参数/标记指示符:
一个细线的盒子包围一个标记或一个单独的参数;
–段指示符:
一个细线的盒子包围一个标记段、一个熵编码段或他们的结合;
–参数长度指示符:
一个细线的盒子的宽度与标记的参数长度(4,8或16位,如图B。
1中的E,B和D所示)或它包围的参数成比例;多个细线包围的盒子的宽度是无意义的;
–可选的/有条件的指示符:
方括号标明,在压缩数据中,一个标记段或标记只是可选的或有条件的.
–次序:
交换格式中,图中所示的参数或标记都先于其右边所示的参数或标记,并跟在它左边的参数后面.
–熵编码数据指示符:
尖括号标明,其包围的内容是已经经过了熵编码的。
B。
1。
4符号,代码长度和值约定
在下面的B。
2和B.3中的每一个语法插图,图中所示的每一个标记和参数符号、名称和定义都描述过了.对于每一个参数,长度和允许值也在表格中详述。
下面的约定应用于标记和参数的符号:
–所有的标记符号有三个大写字母,而某些则还具有下标。
如:
SOI,SOFn;
–所有的参数符号有一个大写字母;某些还具有一个小写字母和一些下标。
如:
Y,Nf,Hi,Tqi。
B。
2普通的顺序和增量语法
这一章说明了应用于所有的编码过程的交换格式语法,包括基于DCT的顺序操作模式,基于DCT的增量操作模式和无损操作模式
B.2.1高层次语法
图B。
2说明了用于本规范中详述的所有的非层次式(non—hierarchical)编码过程的交换格式的高层次组成部分的顺序。
图B.2所示的三个标记定义如下:
SOI:
图像开始标记–出现于交换格式或缩写格式中,标记一幅压缩图像的开始。
EOI:
图像结束标记-出现于交换格式或缩写格式中,标记一幅压缩图像的结束。
RSTm:
重新开始标记–只有重新开始使能时,放在熵编码段之间的一个有条件的标记。
有8个唯一的重新开始标记(m=0-7),他们从0到7顺序的重复,每一个扫描的以0开始,以此来提供一个模8的重新开始间隔计数。
图B。
2的最顶层说明了非层次式交换格式应该以SOI标记作为开始,包含一个帧,并以一个EOI标记结束。
图B。
2的第二层说明一个帧应该以一个帧头开始并包含一个或多个扫描.一个帧头前面也许有一个或多个表规范或B.2。
4中说明的多种标记段。
如果有一个DNL段(参见B.2。
5),那么它应该紧跟在第一扫描的后面.
对于基于DCT的顺序操作模式和无损过程,每一个扫描应该包含一到四个图像成分.如果一个扫描中2到4个成分,那么,它们应该在扫描中交替出现。
对于基于DCT的增进式过程,每一个图像成分只是部分的包含于任何一个扫描中。
只有成分(只包含DC系数数据)的第一个扫描可能是交替的。
图B.2的第三层说明了一个扫描应该以一个扫描头开始,并包含一个或多个熵编码数据段。
每一个扫描头前面可能有一个或多个表规范或多种标记段。
如果重新开始没有被使能,则应该只有一个熵编码段(标记为“last"的那个),并且没有重新开始标记.如果使能了重新开始,则熵编码段有图像的大小和DRI定义。
这种情况下,一个重新开始标记应该跟在除了最后一个熵编码段之外的熵编码段之后。
图B.2的第四层说明每一个熵编码段由一系列熵编码MCUs组成.如果使能了重新开始,并且重新开始间隔被定义为Ri,则除了最后一个之外的每一个熵编码段应该包含Ri个MCUs,最后一个应该包含扫描的剩余的MCUs
图B.2说明了表规范可能出现的位置.然而,这里的规范特指交换格式应该包含的用于解码压缩图像的所有的表规范数据。
因此,需要的表规范数据应该出现于一个或多个允许的位置。
B.2。
2帧头语法
图B。
3说明了应该出现在一个帧的开始处的帧头.这个头说明了源图像特性(参见A。
1),包括包含于帧中的成分,每一个成分的采样因子,以及恢复每一个成分所使用的目标量化表.
图B.3中所示的标记和参数定义如下.每一个参数的大小和允许的值由表B.2给出。
在表B.2(以及随后类似的表)中,可选的值由逗号隔开(e。
g.8,12),范围值的边界由破折号隔开(e.g。
0-3)。
SOFn:
帧标记的开始–标记帧参数的开始。
下标n标识编码过程为基线顺序编码,扩展顺序编码,增量式编码,或无损编码,也标识使用了哪个熵编码过程。
SOF0:
基线DCT
SOF1:
扩展顺序DCT,霍夫曼编码
SOF2:
增量式DCT,霍夫曼编码
SOF3:
无损(顺序)的,霍夫曼编码
SOF9:
扩展顺序DCT,算术编码
SOF10:
增量式DCT,算术编码
SOF11:
无损(顺序)的,算术编码
Lf:
帧头的长度–说明了图B。
3中所示的帧头的长度(参见B。
1。
1.4).
P:
采样精度–以位为单位说明了帧中的成分的采样精度。
Y:
行数–说明了源图像的最大行数。
它应该等于成分中具有最大垂直采样数的成分的行数(参见A。
1.1)。
值为0则表明行数应该由DNL标记定义,并且参数在第一个扫描的结尾(参见B。
2.5).
X:
每一行的采样数-说明了源图像中每一行的最大采样数。
它应该等于成分中具有最大的水平采样数的成分的每一行的采样数。
(参见A.1.1)。
Nf:
帧中的图像成分数–指定了帧中源图像的成分数。
Nf的值应该与出现在帧头中帧成分规范参数(Ci,Hi,Vi,andTqi)的个数。
Ci:
成分标识符–顺序的为帧成分规范参数中的第i个参数分配一个唯一的标记.这些值应该被用于扫描头中来识别扫描中的成分Ci应该不同于C1到Ci−1.
Hi:
水平采样因子–说明了成分的水平尺寸和最大的图像尺寸X之间的关系(参见A。
1。
1);当一个扫描中编码了多于一个成分时,也指定了每一MCU中成分Ci的水平数据单元数。
Vi:
垂直采样因子–说明了成分的垂直尺寸和最大的图像尺寸Y之间的关系(参见A.1.1);当一个扫描中编码了多于一个成分时,也指定了每一MCU中成分Ci的垂直数据单元数。
Tqi:
量化表目的选择子–指定了用于恢复成分Ci而对DCT系数反量化的四个可能的量化表中的一个。
如果解码过程使用反量化例程,则在解码器已经准备好去解码扫描中包含的成分Ci时,这个表应该已经被安装在了目标位置。
目标位置不应该被重新指定,或者改变它的内容,直到包含Ci的所有扫描均被解码完成。
B.2。
3扫描头语法
图B.4详细说明了应该出现在一个扫描的开始位置的扫描头。
这个头指定扫描中包含哪些成分,恢复每一个成分时使用的熵编码表,和(用于增量式DCT)扫描中包含哪些量化后的DCT系数数据。
对于无损过程,扫描参数指定预测值和点转换。
注意–如果扫描中只有一个图像成分,根据定义,那个成分时非交替的。
如果扫描中有多个图像成分,根据定义,这些成分要交替出现。
图B.4中所示的标记和参数定义如下。
每一个参数大小和允许的值由表B。
3给出。
SOS:
扫描标记的开始–标记扫描参数的开始。
Ls:
扫描头的长度–说明了图B.4中所示的扫描头的长度(参见B.1.1。
4)。
Ns:
扫描中图象成分的个数–
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JPEG 压缩 数据格式
![提示](https://static.bdocx.com/images/bang_tan.gif)