前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见图片格式详解(三)----JPEG

常见图片格式详解(三)----JPEG

作者头像
视界音你而不同
发布2020-04-10 16:43:45
1.8K0
发布2020-04-10 16:43:45
举报

JPEG简介

JPEG是一种比较成熟的图像有损压缩格式,经过JPEG压缩,图像质量会有所损失,但是,人眼是很不容易分辨出来这种差别的。jpeg图像在质量和存储空间得到了一个相对平衡的状态。不过jpeg文件在组织方式上略显复杂,详细请向下看。

JPEG文件的存储方式

jpeg文件是按照段的格式来组织存储的,每一个文件由多个段组成,每个段代表不同的信息。同时,每个段也有自己唯一的标识符。标识符是由两个字节所组成,格式如0x FF XX,其中XX代表的是不同的类型。例如,SOI(start of image),表示图像的开始,其段头的标识符为 0X FF D8。而整个jpeg图片的组织便是由诸多这些不同类型的段和经过JPEG压缩后的数据而组成。如果解析,同样也就需要根据这些段不同的头类型来做相应的处理。

主要的JPEG段

1SOI

SOI(start of image):值 0xFF D8,标记图像的开始。

2APP0(应用程序标记)

APP0:值 0x FF E0,应用程序标记。组织结构如下:

3SOF

SOF(start of frame):值0x FF C0,图像帧开始标记。

字段及名称

字节长度

说明

数据段标志位

2 bytes

固定值: 0x FF C0

数据段长度

2 bytes

不包含标志位长度

精度(每像素比特数)

1 bytes

一般为8

图像高度

2 bytes

以像素为单位

图像宽度

2 bytes

以像素为单位

颜色分量数

1 bytes

灰度:1 YCbCr:3 CMYK:4

颜色分量信息

颜色分量数 * 3

每个颜色分量:1bytes: 分量ID1bytes: 水平垂直采样因子1bytes:当前分量使用的量化表ID

4SOS

字段及名称

字节数

说明

数据段标志位

2 bytes

值: 0x FF DA, 表示图

数据长度

2 bytes

不包含标志位长度

颜色分量数

1 bytes

灰度图:1YCbCr : 3CMYK: 4

颜色分量信息

2 * 颜色分量数

1bytes: id1bytes: DC/AC系数表id

谱选择开始

1 bytes

0x 00

谱选择结束

1 bytes

0x 3F

谱选择

1 bytes

0x 00

在SOS之后,便是具体的按照jpeg编码的压缩数据。该部分内容需要使用jpeg相应的解码库去实现解码。

在jpeg文件中,如果遇到了0xFF D9 , 那就表明整个文件读取结束了。该字段也有个名称叫做EOI(end of image),占用两个字节。

当然了,整个jpeg文件还有其他的段,仿照上述便同样可以分析,剩下的学习敬请诸君发挥您的主观能动性喽。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 视界音你而不同 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档