`
suflow
  • 浏览: 169804 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

图片编码介绍

阅读更多

一.几个概念

1. 光栅图像

Raster Image。光栅图像指的是图像由点阵组成.就是最小单位由像素构成的图,只有点的信息.缩放时会失真,相对的是失量图像而言。也叫做位图、点阵图、像素图。

常见的光栅图像格式有:JPG、PNG、GIF、BMP、TIFF等


 

2. 矢量图

矢量图是根据几何特性来绘制图形, 位图与矢量图矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的

它的特点是放大后图像不会失真,和分辨率无关,文件占用空间较小,如:CAD、Flash


 

3.256色、24位色、32位色

256色:可理解为256色调色板(总共可选的颜色是256种),每个像素点由8bit色彩组成(B(lue)2G(reen)3R(ed)3)

24位色:也叫真彩色(True color),R8G8B8,总共可选颜色有2^24

32位色:由24位真彩色加上8位的alpha(透明度)通道组成

 

 

4.透明度(alpha)

象素的透明色也就是所谓的Alpha值,可以理解当一个象素A盖在象素B上,如果象素A有透明色Alpha值,就可以利用Alpha对A象素和B象素的RGB色进行混合运算出一个新的RGB色,这个只是一个模拟表现过程

 

 

5.YUV( YCrCb )颜色模式

“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度、浓度(Chrominance、Chroma)

YUV与RGB相互转换公式:

 

 

Y= 0.299*R + 0.587*G + 0.114*B
U= -0.147*R - 0.289*G + 0.436*B = 0.492*(B- Y)
V= 0.615*R - 0.515*G - 0.100*B = 0.877*(R- Y)
R = Y + 1.140*V
G = Y - 0.394*U - 0.581*V
B = Y + 2.032*U

 

6.索引图像

索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像可把像素值“直接映射”为调色板数值。

调色板通常与索引图像存储在一起,装载图像时,调色板将和图像一同自动装载。

索引的图像只支持一个图层,并且只有一个索引彩色通道。




7.无损图像压缩

信息不受损失,还能完全恢复到压缩前的原样。如:GIF、JPEG 2000、PNG、TIFF等

8.有损图像压缩

经过压缩,数据有所损失,不能完全恢复原有数据,如: JPEG 、JPEG 2000、WebP等

二. jpg图像

 

1.介绍

全名JPEG。JPEG 图片以 24 位颜色存储单个光栅图像

 

点优

摄影作品或写实作品支持高级压缩

利用可变的压缩比可以控制文件大小

支持交错(对于渐近式 JPEG 文件)

广泛支持 Internet 标准

 

缺点

有损耗压

缩会使原始图片数据质量下降

不适用于所含颜色很少、具有大块颜色相近的区域或亮度差异十分明显的较简单的图片

 

 

2.压缩模式

顺序式编码(Sequential Encoding)——一次将图像由左到右、由上到下顺序处理。

递增式编码(Progressive Encoding)——当图像传输的时间较长时,可将图像分数次处理,以从模糊到清晰的方式来传送图像

无失真编码(Lossless Encoding)

阶梯式编码(Hierarchical Encoding)——图像以数种分辨率来压缩,其目的是为了让具有高分辨率的图像也可以在较低分辨率的设备上显示

 

 

3.编码步骤

1.颜色转换——图像由RGB(红绿蓝)转换为一种称为YUV的不同色彩空间。人类的眼睛对于亮度差异的敏感度高于色彩变化

2.缩减取样(Downsampling)——4:4:4(无缩减取样),4:2:2(在水平方向2的倍数中取一个),以及最普遍的4:2:0

3.离散余弦变换(DCT)——转换到频率空间

4.量化——把频率领域上每个成份,除以一个对于该成份的常数就可完成,且接着舍位取最接近的整数。这是整个过程中的主要有损运算

5.编码——将图像成份以Z字体(zigzag)排列+霍夫曼编码


 

4.文件格式( 0xFF*)

SOI(0xFFD8)——Start of Image,图像开始

APP0(0xFFE0)——Application,应用程序保留标记0

APPn(0xFFE1~0xFFF)——Application,应用程序保留标记n,其中n=1~15(任选)

DQT(0xFFDB)——Define Quantization Table,定义量化表

SOF0(0xFFC0)——Start of Frame,帧图像开始

DHT(0xFFC4)——Difine Huffman Table,定义哈夫曼表

DRI(0xFFDD)——Define Restart Interval,定义差分编码累计复位的间隔

SOS(0xFFDA)——Start of Scan,扫描开始 12字节

EOI(0xFFD9)——End of Image,图像结束 2字节

 

 

5.JPEG 2000

JPEG 2000文件的副档名通常为.jp2,MIME类型是image/jp2。

同时支持有损数据压缩和无损数据压缩

在有损压缩下,JPEG 2000一个比较明显的优点就是没有JPEG压缩中的马赛克失真效果

在高压缩比情况下,较JPEG优势明显

专利困局

 

三.gif图像

 

1.介绍

Graphics Interchange Format。以8位色(即256种颜色)重现真彩色的图像

 

优点

优秀的压缩算法使其在一定程度上保证图像质量的同时将体积变得很小。

可插入多帧,从而实现动画效果。

可设置透明色以产生对象浮现于背景之上的效果。

 

缺点

由于采用了8位压缩,最多只能处理256种颜色,故不宜应用于真彩色图片。

除了动态动态图像,其他方面基本已经被png替代。

 

 

2.LZW算法

算法的关键是,它会在将要压缩的文本中,自动地建立一个先前见过字串的字典

例如:

"I am dumb and because I am dumb, I can't even tell you that I am dumb.“

"$1 and because $1, I can't even tell you that $1. $1=[I am dumb]"

 

3.文件结构

1. GIF文件头(Header)

0x474946383761——GIF87a

0x474946383961——GIF89a

2. 逻辑屏幕描述块(Logical Screen Descriptor)

包含定义图像显示区域的参数,包括背景颜色信息

3. 全局彩色表(Global Color Table)

全局定义的一个默认调色板

4. 图像描述块(Image Descriptor)

5. 局部彩色表(Local Color Table)

6. 表基图像数据

7.图像控制扩充块(Graphic Control Extension)

包含处理图形描绘块时要使用的参数

8.无格式文本扩展块(Plain Text Extension)

9.注释扩展块(Comment Extension)

10.应用扩展块(Application Extension)

11.结束块(GIF Trailer)


四.png图像

1.介绍

便携式网络图形(Portable Network Graphics,PNG)是一种无损压缩的位图图形格式,支持索引、灰度、RGB[A]三种颜色方案以及Alpha通道等特性
采用LZ77派生出来的无损压缩算法。
特性:
支持256色调色板技术以产生小体积文件
最高支持48位真彩色图像以及16位灰度图像。
支持Alpha通道的透明/半透明特性。
支持图像亮度的Gamma校准信息。
支持存储附加文本信息,以保留图像名称、作者、版权、创作时间、注释等信息
使用无损压缩。
渐近显示和流式读写,适合在网络传输中快速显示预览效果后再展示全貌。

使用CRC防止文件出错。

 

 

2.文件结构

PNG图像格式文件由一个8字节的PNG文件标识(file signature)域和3个以上的后续数据块(chunk)组成。


PNG文件包括8字节文件署名(89 50 4E 47 0D 0A 1A 0A,十六进制),用来识别PNG格式。


3.数据块



 1. 关键块(critical chunk)

文件头数据块IHDR(header chunk):包含有图像基本信息,作为第一个数据块出现并只出现一次。

调色板数据块PLTE(palette chunk):必须放在图像数据块之前,与索引彩色图像((indexed-color image))相关。

图像数据块IDAT(image data chunk):存储实际图像数据。PNG数据允许包含多个连续的图像数据块。

图像结束数据IEND(image trailer chunk):放在文件尾部,表示PNG数据流结束。

2.另一种叫做辅助块(ancillary chunks),PNG允许软件忽略它不认识的附加块


4.IHDR数据块


 

 

参考:

http://zh.wikipedia.org/wiki/Wikipedia:%E9%A6%96%E9%A1%B5

http://www.google.com

  • 大小: 246.5 KB
  • 大小: 115.5 KB
  • 大小: 70 KB
  • 大小: 40 KB
  • 大小: 1.4 KB
  • 大小: 16 KB
  • 大小: 13.8 KB
  • 大小: 32.3 KB
分享到:
评论

相关推荐

    Android Base64对图片进行编码和解码.zip

    总结来说,Android中利用`Base64`进行图片编码和解码是一种常见的处理方式,主要适用于在网络传输和数据库存储等场景。通过以上步骤,开发者可以轻松地将图片转换为字符串形式,并在需要时恢复原状。在处理过程中,...

    pytorch构建卷积自编码器实现图片的压缩的功能,图片检索(以图搜图)功能

    本文将介绍如何使用PyTorch构建卷积自编码器,实现图片的压缩功能和图片检索(以图搜图)功能。 卷积自编码器 卷积自编码器是一种深度学习模型,主要由编码器和解码器组成。编码器将输入图像转换为低维表示,解码...

    JAVA将图片转换为Base64编码

    在本文中,我们介绍了如何使用Java将图片转换为Base64编码,并将Base64编码字符串解码成图片。使用Base64编码可以将图片数据转换为文本数据,使得数据传输和存储更加安全和可靠。同时,我们也学习了如何使用Apache ...

    小波图像编码的精细介绍

    小波图像编码是一种高效的数据压缩方法,尤其在图像处理领域有着广泛应用。该技术结合了小波分析和子带编码的概念,能有效地捕获图像的细节信息并进行优化存储。以下是对小波图像编码的详细解释。 子带编码是小波...

    10,图片编解码_好用的图片编码器用于像素显示_

    在这个主题中,“好用的图片编码器用于像素显示”特别强调了编码器在显示像素方面的效率和实用性。 描述中的“通过加载图片然后在通过进制输出该图对应的编码助手”表明我们讨论的是如何读取图片文件,并将其转化为...

    jpg图片编码算法代码示例(bmp转jpg)

    学习流媒体技术需要熟悉各种文件格式,了解一些编解码的算法,此程序演示了jpg图片的编码算法,算法流程相对简单,希望能对初学者一些启示和帮助。对各种图片和音视频文件格式感兴趣的朋友,请进群:417099529,一起...

    matlab图像压缩编码.rar

    本文将详细介绍压缩包"matlab图像压缩编码.rar"中涉及的几种图像压缩技术,包括DM编码、变换编码(FFT和DCT)、算术编码、行程编码、Huffman编码以及线性预测编码,以及一个近似的JPEG编码过程。 1. DM编码...

    Base64 and Base32Hex Encoding Using LabVIEW_labview_base32编码互转_b

    本篇将详细介绍这两种编码方法以及如何在LabVIEW中进行转换。 **Base64编码** Base64是一种基于ASCII字符集的编码方式,它将任意的三个字节(24位)的数据转换为4个Base64字符(6位)。Base64字符集包含大小写字母...

    图像编码算法

    此外,还有关于JPEG图像压缩算法的基本介绍,以及基于哈夫曼算法的文件压缩实现和JPEG算法概要,这些资料提供了深入理解这些编码方法的理论基础和实际应用。 总的来说,图像编码算法结合了DCT变换、哈夫曼编码等...

    基于信源模型图像编码的数据压缩算法的研究与实现

    我们首先介绍了基于信源模型的图像压缩算法的设计原则,然后对基于信源模型的图像压缩算法的实现进行了详细的描述。最后,我们对基于信源模型图像压缩算法的实验结果进行了讨论和分析。 本论文对基于信源模型图像...

    多媒体数据压缩编码介绍.pptx

    接下来,我们将介绍几种常见的数据压缩编码方法: 1. **统计编码**:这种方法基于数据的统计特性,如出现频率,通过更短的编码表示更频繁出现的符号。例如,霍夫曼编码就是一种典型的统计编码方式,它为频繁出现的...

    条形码原理介绍,各种编码形式

    2. 二维条形码:如QR码(二维码)和Data Matrix,它们能存储更多的信息,包括网址、电子邮箱、文字、图片等。二维条形码不仅包含水平的信息,还有垂直的信息,因此信息密度更高。 三、条形码编码规则 每个条形码都...

    开源项目图片浏览查看wpf编码

    本开源项目"图片浏览查看wpf编码"正是利用了WPF的特性来实现一个高效且用户体验良好的图片浏览器。 首先,我们要了解WPF中的图像处理。在WPF中,Image控件是用于显示图像的基本元素,它支持多种图像格式,如JPEG、...

    视音频编码国际标准介绍

    JPEG标准则专注于静止图像的压缩,广泛应用于卫星图片传输、图像文献存储等领域。JPEG通过有损压缩方法减少文件大小,但可能牺牲部分图像质量。 MPEG(活动图像专家组)系列标准是视频和音频压缩的重要里程碑,包括...

    施耐德 OsiSense旋转编码器产品手册.pdf

    施耐德OsiSense旋转编码器产品手册涵盖了施耐德电气公司生产的各类旋转编码器的详细介绍。编码器主要分为增量型编码器、单转绝对型编码器、多转绝对型编码器和总线多转绝对型编码器。手册中详细介绍了各种编码器的...

    huffman编码应用(压缩,解压)

    本课程设计报告将对霍夫曼编码的应用进行详细的介绍,并对其压缩和解压的原理进行解释。 霍夫曼编码的基本原理是基于变长前缀编码,将每个字符的出现频率作为权值,构建霍夫曼树,然后根据霍夫曼树生成霍夫曼编码。...

    gif图片文件编解码

    编码用gdi解析常用图片格式,然后组装成gif 解码吧gif的每一帧转换成dib gif文件格式网上有很多介绍 gif用的变长lzw压缩算法: 没弄懂原理,只知道过程。压缩取一个字符作为后缀,看看字符串是否存在。存在,用...

    易语言新BASE64编码转换模块源码

    资源介绍:。易语言新BASE64编码转换模块源码例程程序使用字节集数据内部字节的左移位与,实现BASE64编码的快速转换。本易语言模块源码是易语言论坛用户近在眼前编写的。资源作者:。易语言学习网。资源下载:。

    android项目编码转换

    本主题将详细介绍如何将一个使用其他编码方式的Android项目转换为UTF-8编码,以确保代码的正确显示和处理。 首先,我们看到压缩包中包含了一个名为"Android项目编码的批量修改.docx"的文档。这个文档很可能是详细的...

Global site tag (gtag.js) - Google Analytics