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

JPEG简介

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



JPEG文件的存储方式

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

主要的JPEG段

> 1. SOI

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



> 2.APP0(应用程序标记)

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



> 3.SOF

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

4SOS

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

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

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

原文地址:http://blog.51cto.com/7335580/2088356

时间: 2024-11-13 05:04:56

常见图片格式详解(三)---JPEG的相关文章

常见图片格式详解

标明原作者信息 http://www.cnblogs.com/xiangism 做了几年有关图形.图像的工作,对图片格式算是小有经验,在此写成一文章总结下.虽然一开始并不想讲很理论的东西,但写完后发现几乎全是理论,细想一下关于图片格式的知识本身就是理论的东西,囧~~ 那就力求用最简单的方式将这些"理论"讲清楚吧. 常见的图片格式有bmp, jpg(jpeg), png, gif, webp等. 图像基本数据结构 要讲图片格式还先得从图像的基本数据结构说起.在计算机中, 图像是由一个个像

常见图片格式详解系列(一) ----简介

常见图片格式介绍 信息时代,丰富多彩的世界,我们用图片来感知,来记忆,来存储.多姿多彩的图片格式,你是否了解其中奥妙呢.接下来的系列文章就要带大家详细解析常见图片格式. (一) BMP BMP格式,是windows的一种位图格式,同时也是一种未经过压缩的格式,所以占用的存储空间比较大,而且对于浏览器等网络应用并不支持,不过对于windows而言,可以搞一张bmp的图像来充当背景,相对比较清晰. (二)JPG jpeg格式是一种比较常见的图像格式,是一种经过JPEG算法压缩的图形格式,其占用存储空

常见图片格式详解(五)-----GIF

前几篇梳理了常见的几种图片格式,想必大家已经稍微摸出了一些门道.图片的组织格式一般都是分为多个数据段,每一个数据段代表着不同的信息,可能是图像宽高等信息,也可能是开始或结束的标识符,亦或是压缩的数据段.GIF格式也不例外,同样也是按照类似的方式组织,本篇简单梳理梳理. 01 文件头 GIF图片格式的文件头类似于其他的图片格式,同样也有文件标识符,"GIF",在文件中以ASCII码值表示,其后跟着版本号,表示不同的GIF标准版本号.如下图: 02 逻辑屏幕标识符紧跟文件头的是逻辑屏幕标识

常见图片格式详解系列(二)---BMP位图--

BMP BMP是windows的一种图片格式,其组织方式相对简单,一个简单表示bmp文件的头结构 (BITMAPFILEHEAER)+ 一个表示图片信息的结构(BITMAPINFOHEADER)+ 一个表示调色板的结构(可选).剩下的便是存储的每一个像素点对应的R,G,B值. BITMAPFILEHEADER WORD bfType:表示文件类型,该值必须是0x424D,即字符'BM',否则便不是BMP图片.DWORD bfSize:以字节为单位,表示整个图像文件的大小.如需要添加列表可继续从左

常见图片格式详解(四)---png

本篇简单梳理一下关于png格式图片的那些事. 一.简介 PNG图片是由很多个数据块组成的,每一个数据块代表不同的有关于图片的信息.除png头以外,每一个数据块都是按照数据长度+数据标识符+CRC校验码的结构来组织.如下图: 二.主要的PNG数据块 PNG图片的头信息用8个字节来唯一标识图像的类型. "89 50 4E 47 00 DA 1A 0A" 为png文件的标识符 2 在头标识之后,紧跟着的是叫做IHDR的数据段,包含了图像的高度,宽度,位深等相关信息. 3 IDAT是PNG中主

BMP格式详解

BMP格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广泛使用的图像文件格式.由于它可以不作任何变换地保存图像像素域的数据,因此成为我们取得RAW数据的重要来源.Windows的图形用户界面(graphical user interfaces)也在它的内建图像子系统GDI中对BMP格式提供了支持. 下面以Notepad++为分析工具,结合

多媒体封装格式详解---MP4

MP4文件格式详解--结构概述 http://blog.csdn.net/pirateleo/article/details/7061452 一.基本概念 1. 文件,由许多Box和FullBox组成. 2. Box,每个Box由Header和Data组成. 3. FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags. 4. Header,包含了整个Box的长度size和类型type.当size==0时,代表这是文件中最后一个

logback -- 配置详解 -- 三 -- <encoder>

附: logback.xml实例 logback -- 配置详解 -- 一 -- <configuration>及子节点 logback -- 配置详解 -- 二 -- <appender> logback -- 配置详解 -- 三 -- <encoder> logback -- 配置详解 -- 四 -- <filter> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Linux下可执行文件格式详解

Linux下面,目标文件.共享对象文件.可执行文件都是使用ELF文件格式来存储的.程序经过编译之后会输出目标文件,然后经过链接可以产生可执行文件或者共享对象文件.Linux下面使用的ELF文件和Windows操作系统使用的PE文件都是从Unix系统的COFF文件格式演化来的. 我们先来了解一些基本的想法. 首先,最重要的思路是一个程序从人能读懂的格式转换为供操作系统执行的二进制格式之后,代码和数据是分开存放的,之所以这样设计有这么几个原因: 1.程序执行之后,代码和数据可以被映射到不同属性的虚拟