图片压缩算法_有损图像压缩算法_anghlq的博客-程序员秘密

技术标签: 程序设计  

有损算法:

JPEG,我们最为常用的算法。他是通过离散余弦变换,对图片质量尽量小的时候进行有损压缩,改算法对高中波特率下效果很好,但是对低波特率下,就会出现方格之类的,比如100多MB的MPEG电影,会发现稍微一暗就很多格子。为了解决这个问题,提出了JPEG2000标准。

JPEG2000使用了小波变换算法,自称压缩率比JPEG高30%,同时对局部支持不压缩。同时支持先轮廓、模糊逐步清晰的编码(PNG,GIF和JPEG均支持interlace编码),但是目前推广比较差,还没看到支持的浏览器。该算法压缩速度比较慢也是限制其发展的原因。

混合:

Webp,google在推的一种压缩算法,初衷是用于视频压缩。算法原理是预测编码,只有在发生变化(转折)时插入新的数据。同时支持有损和无损压缩。压缩率号称比JPEG高40%但是计算开销也达到8倍。

TIFF,标记型,支持多个图层,每个图层可以是JPEG有损的也可以是PNG等无损的。

无损压缩:

仅仅是对数据进行重复数据的短码方式的压缩。PNG和GIF本质没啥区别,GIF早期本分算法被专利了,所以发展了PNG,但是PNG支持更多的颜色,如果是PNG8基本跟GIF一样了。透明度的支持,PNG8和GIF只支持布尔透明度,PNG16,32支持8位也就是256级的透明程度。理论上PNG24不支持透明,但是目前还是发现有些库支持部分不支持。PNG24,24位色彩,也成为真色彩,相当1600W颜色,已经是人眼能分辨的最高级了。

不压缩:

矢量图,缩放或者放大都不会影响其平滑度,不是所有的字体都是TrueType之类的矢量图的。

BMP,bitmap,每个像素8bit,从下往上扫描。


另外,视频编码,有时间和空间(图像)方面的压缩:

解码流程主要包括5个部分:帧间和帧内预测(Estimation)、变换(Transform)和反变换、量化(Quantization)和反量化、环路滤波(Loop Filter)、熵编码(Entropy Coding)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/anghlq/article/details/18443753

智能推荐

css样式中 border的应用_yhbsww0523的博客-程序员秘密

在以往的工作中,border多数情况下是用来给盒模型加描边。而如今,可以用border制作各种小形状。1、三角形html代码: css代码:.box{width: 400px; height: 300px; background: #F3961C; position: relative; margin: 50px auto;}.in-box{position: absol

vue使用rem来实现移动端自适应布局_asteriaV的博客-程序员秘密

现在手机屏幕分辨率越来越多,为了适应屏幕不同大小,我们首先要做到的便是页面布局自适应。当然解决方案很多,比如:百分比布局,弹性布局flex,也都能获得不错的效果,这里主要介绍的是本人在实践中用的最高效的布局方案——rem布局一,设置初始的rem值用js计算来实现rem,只需要全局引入下面这段原生js代码即可 <script> (function (d...

php里清除浮动代码,浮动以及清除浮动_东京客的博客-程序员秘密

摘要:Document*{margin:0;padding:0;}ul li{list-style: none;width:150px;float:left;tDocument*{margin:0;padding:0;}ul li{list-style: none;width:150px;float:left;text-align: center;background: #ccc;color:#f...

kaililinux实现下wifi密码破解(wpa/wpa2)_huihui985211的博客-程序员秘密

1.排除相关干扰并结束线程[email protected]:~# service network-manager stop [email protected]:~# airmon-ng check kill2.启动网卡的监听模式[email protected]:~# airmon-ng start wlan03.确定启动监听[email protected]:~# iwconfig4.显示监听的wifi相关信息,ctrl+c停止[email protected]:~# a...

Hibernate4实战之Hibernate4注解零配置<转>_weixin_30843605的博客-程序员秘密

@Entity,注册在类头上,将一个类声明为一个实体bean(即一个持久化POJO类) 。@Table,注册在类头上,注解声明了该实体bean映射指定的表(table)。@Id用来注册主属性,@GeneratedValue用来注册主属性的生成策略,@Column用来注册属性,@Version用来注册乐观锁,@Transient用来注册不是属性。以上的@Id、@Generated...

数据库中数据长度到底代表什么呢?_莲绛(君卿舞)的博客-程序员秘密

即使已经参加工作快满一年了,但是却连数据库里面数据的长度都一直没搞清楚到底代表什么意思。类型是指数据存储类型,这个大家都知道,比如int类型代表4字节(Byte),1字节=8bit,即1B=8b.子节是计算机文件大小的基本计算单位,主要用于应用层,用于客户来识别文件大小的。而bit是用于物理层,数据链路层的传输的,是基于二进制的传输。所以这里int类型可以存储4*8=32位。可以存储十进制-...

随便推点

【Android开发经验】来来来,同学,咱们讨论一下“只能在UI主线程更新View”这件小事_安卓开发为什么只能由ui线程修改activity里ui组件_赵凯强的博客-程序员秘密

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992    ”只能在UI主线程中更新View“。    这句话很熟悉吧?    来来,哥们,看一下下面的例子@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

杰理之在线EQ调试_Rambo-Lamborghini的博客-程序员秘密

杰理公版的音质对于一些音质要求高的客户肯定是不接受的,所以通常会搭建一个在线EQ平台方便与实时调试不同的音质。通常接串口工具三条线RX TX GND 到主控这边对于DM DP GND,软件要下载可以实时调节的EQ软件可以调试。工具界面:选择IC类型 端口 波特率 选择发送给下位机,注意要连接手机蓝牙在播歌状态下调试音质,通常有对应的文档,在界面帮助菜单栏下边就有对应的文档介绍。频点一般调试硬...

【web前端HTML5+CSS3】03CSS--layout(布局)之盒模型_根据盒子模型,如何将三个盒子改为两个盒子_西西歪歪西歪的博客-程序员秘密

目录1.文档流2.盒模型3.盒模型--边框4.盒模型--内边距5.盒模型--外边距6.盒子的水平布局7.盒子的垂直布局8.外边框的折叠9.行内元素的盒模型10.默认样式11.盒子的尺寸12.轮廓和圆角1.文档流&lt;!DOCTYPE html&gt;&lt;html lang="en"&gt;&lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="vie.

OpenFOAM-v2006重叠网格挖洞问题研究以及overset代码解析(一)整体函数框架结构_openfoam植入浸没边界法_Kino Chan的博客-程序员秘密

前言使用OpenFOAM-v2006版本的重叠网格时,其挖洞只能挖出壁面以及壁面附近区域的网格,而离重叠区边缘(fringe)还有一定距离,如下图所示:经研究,其和挖洞策略有关系,修改需要动源代码,十分费工夫。foam-extend-4.1版本有比较好的重叠网格功能,挖洞也很完善,能挖到边缘,是比较标准的,但extend比较大杂烩,也没有其他一些我需要的功能,所以只好作罢。我只好以extend版本为参考,修改2006版本的挖洞相关的代码来修正这一问题。这个过程需要深入地读取源码,特此记录。

Kerberos5身份验证协议详解_kerberos5和kerberos5i_gameboyx的博客-程序员秘密

<br /> Kerberos这一名词来源于希腊神话“三个头的狗——地狱之门守护者”<br />    Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。<br />    认

sql读写图片时Image.FromStream 参数错误的问题解决_img_sql_zystory的博客-程序员秘密

昨天遇到sql读写图片时Image.FromStream方法老提示参数错误,搞了好久,今天终于找到原因,解决了。 #region 图片Image与byte[]数组互转        ///         /// ImageToBytes,默认为Jpeg格式        ///         ///         ///         public static byte[] Im