发新话题
打印

JFIF文件格式的使用价值

JFIF文件格式的使用价值

现在很多的数码相机的图片格式采用JFIF文件格式,这种格式在低级操作系统如9X系列的一些软件上无法正确识别,低级版本的软件也是无法打开进行编辑的,如CD8,如下介绍下这个JFIF文件格式是个什么:::
JFIF文件格式即JPEG文件交换格式(JPEG File Interchonge Format)。
一般的JFIF文件由下面的9个部分组成:
(字段偏移量 字段长度(若未说明“长度不定”则表明在任何情况下长度均为所写的值) 字段内容(若未说明“内容不定”则在任何情况下内容均为所写的值,为方便表示还可以把内容设为某值))
(1) 图像开始SOI(Start of Image)标记
      0h 2字节 0xFFD8
(2) APP0标记(Marker)
      0h 2字节 0xFFE0
  ① APP0长度(length)(①~⑨九个字段的总长度)
      2h 2字节 内容不定(①~⑨九个字段的总长度)   
  ② 标识符(identifier)
      4h 5字节 0x4A46494600 即“JFIF0”
  ③ 版本号(version)
      9h 2字节 0x0102 JFIF的版本号目前基本上都是1.2   
  ④ X和Y的密度单位(units=0:无单位;units=1:点数/英寸;units=2:点数/厘米)
      bh 1字节 只有0,1,2三个值可选,其分别代表的意义如上
  ⑤ X方向像素密度(X density)
      ch 2字节 取值范围未知
  ⑥ Y方向像素密度(Y density)
      eh 2字节 取值范围未知   
  ⑦ 缩略图水平像素数目(thumbnail horizontal pixels)
      10h 1字节 取值范围未知
  ⑧ 缩略图垂直像素数目(thumbnail vertical pixels)
      11h 1字节 取值范围未知
  ⑨ 缩略图RGB位图(thumbnail RGB bitmap)
      12h 长度可能是3的倍数 内容不定
          本段(APP0)可以包含图像的一个微缩版本,存为24位的RGB像素。如果没有微缩图像
      (这种情况更常见),则⑦“缩略图水平像素数目”和⑧“缩略图垂直像素数目”的值均为0。
(3) APPn标记(Markers),其中n=1~15(任选)
  ① APPn长度(length)(①②两个字段的总长度)
  ② 详细信息(application specific information)
        对每个APP:
        若为APPN(N=1~F(以16进制表示,N任选其中一个))
        标记
            mh 2字节 0xFFEN
        长度
            (m+2)h 2字节 内容不定(设为n(10进制))(本字段与下一字段的总长度)
        详细信息
            (m+4)h n-2字节(即长度减2) 内容不定

TOP

JFIF文件格式的使用价值

(4) 一个或者多个量化表DQT(Difine Quantization Table)
      0h 2字节 0xFFDB
  ① 量化表长度(quantization table length)(①~②两个字段的总长度)
      2h 2字节 内容不定(①~②两个字段的总长度)   
  ② 量化表(quantization table)
        a) P/T(高四位:精度,低四位:表ID)
        b) 表项
          对每个量化表:
          P/T(高四位:精度,低四位:表ID)
              mh 1字节 精度, 0 表示 8 bit, 1表示 16 bit;ID取值范围为0~3, 否则错误           
          表项
              (m+1)h (64×(精度+1))字节 内容长,故略
(5) 帧图像开始SOF0(Start of Frame)
      0h 2字节 0xFFC0
  ① 帧开始长度(start of frame length) (①~⑥六个字段的总长度)
          2h 2字节 内容不定(①~⑥六个字段的总长度)
  ② 精度(precision),每个颜色分量每个像素的位数(bits per pixel per color component)
          4h 1字节 每个样本位数, 通常是 8 (大多数软件不支持 12 和 16)
  ③ 图像高度(image height)
          5h 2字节 内容不定(如果不支持 DNL 就必须 >0)
  ④ 图像宽度(image width)
          7h 2字节 内容不定(如果不支持 DNL 就必须 >0)
  ⑤ 颜色分量数(number of color components)
          9h 1字节 内容不定(灰度图是 1, YCbCr/YIQ 彩色图是 3, CMYK 彩色图是 4,我们这里讨论的JFIF使用的是YCbCr,故这里颜色分量数为3)
  ⑥ 对每个颜色分量(for each component)
        a) ID
        b) 垂直方向的样本因子(vertical sample factor)
        c) 水平方向的样本因子(horizontal sample factor) (b) c)共占用1字节,b)占用低4位,c)占用高4位)
        d) 量化表号(quantization table#)
                JFIF格式使用的是YCbCr所以有3个分量(这里特别要注意的是颜色分量的ID号是有含义的,1代表Y,2代表Cb,3代表Cr,4代表I,5代表Q):
              1) ID
                    ah 1字节 0x01
                (高四位)水平(低四位)垂直样本因子
                    bh 共1字节 0x22
                  量化表号
                    ch 1字节 内容不定(本分量使用的量化表的ID号)
              2) ID
                    dh 1字节 0x02
                (高四位)水平(低四位)垂直样本因子
                    eh 共1字节 0x11
                  量化表号
                    fh 1字节 内容不定(本分量使用的量化表的ID号)
              3) ID
                    10h 1字节 0x03
                (高四位)水平(低四位)垂直样本因子
                    11h 共1字节 0x11
                  量化表号
                    12h 1字节 内容不定(本分量使用的量化表的ID号)
(6) 一个或者多个霍夫曼表DHT(Difine Huffman Table)
      0h 2字节 0xFFC4
    ① 霍夫曼表的长度(Huffman table length) (①~②两个字段的总长度)
        2h 2字节 内容不定(①~②两个字段的总长度)
    ② 对每个霍夫曼表(一般情况下,霍夫曼表不止一个,但是绝对不多于4个)
        a) 表号
        b) 类型:AC或者DC(Type, AC or DC。其中0为DC表,1为AC表)(a) b)共占用1字
          节,a)占用低4位,b)占用高4位)
        c) 长16个字节的编码,其代码代数和为接下来的编码的长度
        d) 内容编码
              对每个霍夫曼表:
            (高四位)类型和(低四位)表号
                  mh 共1字节 内容不定(有四个可能:0x00表示第0个DC表,0x01表示第1
                        个DC表,0x10表示第0个AC表,0x11表示第1个AC表)
              长16个字节的编码
                  (m+1)h 16字节 内容不定(设这16个字节上数据之和为n)
              内容编码
                  (m+17)h n字节 内容长,故略
(7) 定义重新开始间隔DRI(Difine Restart Interval)(在没有DRI标记,或间隔为零时,就不存在重开始间隔和重开始标记)
      0h 2字节 0xFFDD
  ① 长度
      2h 2字节 0x0004(①~②两个字段的总长度)
  ② MCU 块的单元中的重新开始间隔
      4h 2字节 内容不定(设为n,则意思是说,每n个MCU块就有一个RSTn标记。第一个标记
            是RST0,然后是RST1等,RST7后再从RST0重复)
(8) 扫描开始SOS(Start of Scan)
        0h 2字节 0xFFDA
  ① 扫描开始长度(start of scan length)
        2h 2字节 内容不定(①~③再加上④的a) b) c)的总长度)
  ② 颜色分量数(number of color components)
        4h 1字节 应该和⑸⑤的值相同(灰度图是1, YCbCr/YIQ 彩色图是3, CMYK 彩色图是4)
  ③ 每个颜色分量
        a) ID
        b) 交流系数表号(AC table #)
        c) 直流系数表号(DC table #)(b) c)共占用1字节,b)占用低4位,c)占用高4位)
            由②得到这里的颜色分量数为3(这里的颜色分量的ID号的含义和⑸⑥的一样,1代表Y,2代表Cb,3代表Cr,4代表I,5代表Q):
              1) ID
                    5h 1字节 0x01
                (高四位)直流(低四位)交流数表号
                    6h 共1字节 0x00
              2) ID
                    7h 1字节 0x02
                (高四位)直流(低四位)交流数表号
                    8h 共1字节 0x11
              3) ID
                    9h 1字节 0x03
                (高四位)直流(低四位)交流数表号
                    ah 共1字节 0x11
  ④ 压缩图像数据(compressed image data)
        a) 谱选择开始
            bh 1字节 0x00
        b) 谱选择结束
            ch 1字节 0x3F
        c) 两个4位字段,高位和低位的谱选择
            dh 1字节 在基本JPEG中总为00
        d) 数据
            eh 长度不定 内容长,故略
(9) 图像结束EOI(End of Image)
        0h 2字节 0xFFD9

TOP

JFIF文件格式的使用价值

解决问题的方法我使用:
1、用PS打开后再转存为IPEG,不压缩。
2、用CD12导入,存CMX格式进行数据交换。
3、用ACDSEE转换成为100%的JPEG。

TOP

JFIF文件格式的使用价值

比较复杂的说,大多数的数码相机还是JPEG吧

TOP

JFIF文件格式的使用价值

[quote][b]下面引用由[u]小泥子[/u]在 [i]2006/11/07 08:50pm[/i] 发表的内容:[/b]
比较复杂的说,大多数的数码相机还是JPEG吧
[/quote]
我近期接的很多的JFIF数据图片,用CD怎么也打不开,搞得我很晕倒,,,于是乎,我就:::
以JPEG文件格式保存的图像实际上是2个不同格式的混合物:JPEG格式规范本身,用来定义图像的压缩方法,并且被包在定议分辨率和颜色模式的图像数据格式之中。Photoshop和实际上每个能读取和写入JPEG文件格式的其他应用程序,以 JFIF文件格式(JPEG文件交换格式, JPEG File Interchonge Format)或与JFIF格式非常象的其他格式保存图像数据。JFIF文件格式只是将一种图像格或环绕JPEG压缩的一种简单方法,它们没有其他的更多功能。[br][br][color=#990000][b]-=-=-=- 以下内容由 [i]ftio[/i] 在 [i]2006年11月07日 08:58pm[/i] 时添加 -=-=-=-[/b][/color]

随着以后的市场发展,越来越多的数码机采用JFIF格式。。。

TOP

JFIF文件格式的使用价值

令人感到可怕闹心的是,这种格式在属性上反映的是JPEG,但是却无法解读识别,用这种数据直接导进CD中编辑生成的文件无法正确地进行印前发片。要务必小心转换。

TOP

JFIF文件格式的使用价值

严重晕倒~~~

TOP

JFIF文件格式的使用价值

[quote][b]下面引用由[u]超级懒虫[/u]在 [i]2006/11/08 10:51pm[/i] 发表的内容:[/b]
严重晕倒~~~
[/quote]
别严重晕倒~~~~~~,遇见问题解决问题。。世上无难事只怕有心人。。

TOP

发新话题