jpeg格式 - kkl_fly - 网易博客.htm
来自「一个jpeg的解码库」· HTM 代码 · 共 1,051 行 · 第 1/3 页
HTM
1,051 行
<P></P>
<P style="TEXT-INDENT: 2em">Other marker</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">SOI</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFD8</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Start of image</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">EOI</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFD9</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">End of image</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">SOS</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFDA</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Start of scan</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">DQT</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFDB</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Define quantization table(s)</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">DNL</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFDC</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Define number of lines</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">DRI</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFDD</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Define restart interval</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">DHP</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFDE</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Define hierarchical progression</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">EXP</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFDF</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Expand reference image(s) </P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">APPn</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFE0~0xFFEF</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Reserved for application use</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">JPGn</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFF0~0xFFFD</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Reserved for JPEG extension</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">COM</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFFE</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Comment</P></TD></TR>
<TR>
<TD vAlign=top colSpan=3>
<P></P>
<P style="TEXT-INDENT: 2em">Reserved markers</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">TEM</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFF01</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">For temporary use in arithmetic
coding</P></TD></TR>
<TR>
<TD vAlign=top width="28%">
<P></P>
<P style="TEXT-INDENT: 2em">RES</P></TD>
<TD vAlign=top width="30%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFF02~0xFFBF</P></TD>
<TD vAlign=top width="42%">
<P></P>
<P style="TEXT-INDENT: 2em">Reserved</P></TD></TR></TBODY></TABLE></P>
<P style="TEXT-INDENT: 2em">JPEG文件由下面的8个部分组成:</P>
<P style="TEXT-INDENT: 2em"> (1) 图像开始SOI(Start of Image)标记</P>
<P style="TEXT-INDENT: 2em"> (2) APP0标记(Marker)</P>
<P style="TEXT-INDENT: 2em"> ①
APP0长度(length)</P>
<P style="TEXT-INDENT: 2em"> ②
标识符(identifier)</P>
<P style="TEXT-INDENT: 2em"> ③
版本号(version)</P>
<P style="TEXT-INDENT: 2em"> ④
X和Y的密度单位(units=0:无单位;units=1:点数/英寸;units=2:点数/厘米)</P>
<P style="TEXT-INDENT: 2em"> ⑤
X方向像素密度(X density)</P>
<P style="TEXT-INDENT: 2em"> ⑥
Y方向像素密度(Y density)</P>
<P style="TEXT-INDENT: 2em"> ⑦
缩略图水平像素数目(thumbnail horizontal pixels)</P>
<P style="TEXT-INDENT: 2em"> ⑧
缩略图垂直像素数目(thumbnail vertical pixels)</P>
<P style="TEXT-INDENT: 2em"> ⑨
缩略图RGB位图(thumbnail RGB bitmap)</P>
<P style="TEXT-INDENT: 2em"> (3)
APPn标记(Markers),其中n=1~15(任选)</P>
<P style="TEXT-INDENT: 2em"> ①
APPn长度(length)</P>
<P style="TEXT-INDENT: 2em"> ②
由于详细信息(application specific information)</P>
<P style="TEXT-INDENT: 2em"> (4) 一个或者多个量化表DQT(difine
quantization table)</P>
<P style="TEXT-INDENT: 2em"> ①
量化表长度(quantization table length)</P>
<P style="TEXT-INDENT: 2em"> ②
量化表数目(quantization table number)</P>
<P style="TEXT-INDENT: 2em"> ③
量化表(quantization table)</P>
<P style="TEXT-INDENT: 2em"> (5) 帧图像开始SOF0(Start of
Frame)</P>
<P style="TEXT-INDENT: 2em"> ①
帧开始长度(start of frame length)</P>
<P style="TEXT-INDENT: 2em"> ②
精度(precision),每个颜色分量每个像素的位数(bits per pixel per color component)</P>
<P style="TEXT-INDENT: 2em"> ③
图像高度(image height)</P>
<P style="TEXT-INDENT: 2em"> ④
图像宽度(image width)</P>
<P style="TEXT-INDENT: 2em"> ⑤
颜色分量数(number of color components)</P>
<P style="TEXT-INDENT: 2em"> ⑥
对每个颜色分量(for each component) </P>
<UL>
<UL>
<LI>ID
<LI>垂直方向的样本因子(vertical sample factor)
<LI>水平方向的样本因子(horizontal sample factor)
<LI>量化表号(quantization table#) </LI></UL></UL>
<P></P>
<P style="TEXT-INDENT: 2em"> (6) 一个或者多个霍夫曼表DHT(Difine
Huffman Table)</P>
<P style="TEXT-INDENT: 2em"> ①
霍夫曼表的长度(Huffman table length)</P>
<P style="TEXT-INDENT: 2em"> ②
类型、AC或者DC(Type, AC or DC)</P>
<P style="TEXT-INDENT: 2em"> ③
索引(Index)</P>
<P style="TEXT-INDENT: 2em"> ④ 位表(bits
table)</P>
<P style="TEXT-INDENT: 2em"> ⑤
值表(value table)</P>
<P style="TEXT-INDENT: 2em"> (7) 扫描开始SOS(Start of
Scan)</P>
<P style="TEXT-INDENT: 2em"> ①
扫描开始长度(start of scan length)</P>
<P style="TEXT-INDENT: 2em"> ②
颜色分量数(number of color components)</P>
<P style="TEXT-INDENT: 2em"> ③ 每个颜色分量
</P>
<UL>
<UL>
<LI>ID
<LI>交流系数表号(AC table #)
<LI>直流系数表号(DC table #) </LI></UL></UL>
<P></P>
<P style="TEXT-INDENT: 2em"> ④
压缩图像数据(compressed image data)</P>
<P style="TEXT-INDENT: 2em"> (8) 图像结束EOI(End of
Image)</P>
<P style="TEXT-INDENT: 2em">下表表示了APP0域的详细结构。有兴趣可通过UltraEdit或者PC
TOOLS等工具软件打开一个JPG图像文件,对APP0的结构进行分析和验证。 </P>
<DIR>
<P></P>
<P style="TEXT-INDENT: 2em">JFIF格式中APP0域的详细结构</P></DIR>
<P></P>
<P style="TEXT-INDENT: 2em">
<TABLE borderColor=#000000 cellSpacing=2 cellPadding=1 width=558 border=1>
<TBODY>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">偏移</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">长度</P></TD>
<TD vAlign=top width="10%">
<P></P>
<P style="TEXT-INDENT: 2em">内容</P></TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em">块的名称</P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">说明</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">0</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">2 byte</P></TD>
<TD vAlign=top width="10%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFD8</P></TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em">(Start of Image,SOI)</P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">图像开始</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">2</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">2 byte</P></TD>
<TD vAlign=top width="10%">
<P></P>
<P style="TEXT-INDENT: 2em">0xFFE0</P></TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em">APP0(JFIF application segment)</P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">JFIF应用数据块</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">4</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">2 bytes</P></TD>
<TD vAlign=top width="10%"> </TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em">length of APP0 block</P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">APP0块的长度</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">6</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">5 bytes</P></TD>
<TD vAlign=top width="10%"> </TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em">"JFIF"+"0"</P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">识别APP0标记</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">11</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">1 byte</P></TD>
<TD vAlign=top width="10%"> </TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em"><Major version></P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">主要版本号(如版本1.02中的1)</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">12</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">1 byte</P></TD>
<TD vAlign=top width="10%"> </TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em"><Minor version></P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">次要版本号(如版本1.02中的02)</P></TD></TR>
<TR>
<TD vAlign=top width="7%">
<P></P>
<P style="TEXT-INDENT: 2em">13</P></TD>
<TD vAlign=top width="8%">
<P></P>
<P style="TEXT-INDENT: 2em">1 byte</P></TD>
<TD vAlign=top width="10%"> </TD>
<TD vAlign=top width="36%">
<P></P>
<P style="TEXT-INDENT: 2em"><Units for the X</P>
<P style="TEXT-INDENT: 2em">and Y densities></P></TD>
<TD vAlign=top width="39%">
<P></P>
<P style="TEXT-INDENT: 2em">X和Y的密度单位</P>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?