文章目录

  • 一、信息论中的知识点
  • 二、统计编码
    • 香农-凡诺编码
    • 霍夫曼编码
  • 三、关于RGB

一、信息论中的知识点

决策量(decision content)

定义:在有限数目的互斥事件集合中,决策量是事件数的绝对值。
在数学上表示为
H0=log(n),其中,n是事件数H_0 = log(n)\ ,其中,n是事件数H0​=log(n) ,其中,n是事件数


决策量的单位由对数的底数决定

Sh(Shannon):用于以2为底的对数
Nat(natural unit):用于以e为底的对数
Hart(hartley):用于以10为底的对数


信息量(information content)

定义:具有确定概率事件的信息的定量度量
在数学上定义为
I(x)=log2[1/p(x)]=−log2p(x)I(x) = log_2[1/p(x)]=-log_2p(x)I(x)=log2​[1/p(x)]=−log2​p(x)
其中,p(x)是事件出现的概率


举例:假设X={a,b,c}是由三个事件构成的合集,p(a)=0.5,p(b)=0.25,p©=0.25分别为事件a,b,c的概率,则信息量分别为

I(a)=log2[1/0.5]=1ShI(a) = log_2[1/0.5]=1 ShI(a)=log2​[1/0.5]=1Sh
I(b)=log2[1/0.25]=2ShI(b) = log_2[1/0.25]=2 ShI(b)=log2​[1/0.25]=2Sh
I(c)=log2[1/0.25]=2ShI(c) = log_2[1/0.25]=2 ShI(c)=log2​[1/0.25]=2Sh


信息熵(entropy)

定义:按照香农的理论,在有限的互斥和联合穷举事件合集中,熵为事件的信息量的平均值,也称事件的平均信息量。
在数学上表示为
H(X)=∑i=1nh(xi)=∑i=1np(xi)I(xi)=−∑i=1np(xi)log2p(xi)H(X) = \sum_{i=1}^nh(x_i)=\sum_{i=1}^np(x_i)I(x_i)=-\sum_{i=1}^np(x_i)log_2p(x_i)H(X)=i=1∑n​h(xi​)=i=1∑n​p(xi​)I(xi​)=−i=1∑n​p(xi​)log2​p(xi​)
其中,1、X={x1,...,xnx_1,...,x_nx1​,...,xn​}是事件xi(i=1,2,...,n)x_i(i=1,2,...,n)xi​(i=1,2,...,n)的集合,并满足∑i=1np(xi)=1\sum_{i=1}^np(x_i)=1∑i=1n​p(xi​)=1
2、I(xi)=−log2p(xi)I(x_i)=-log_2p(x_i)I(xi​)=−log2​p(xi​)表示莫格事件xix_ixi​的信息量,其中p(xi)p(x_i)p(xi​)在事件xix_ixi​出现的概率,0<p(xi)≤−p(xi)log2p(xi)0<p(x_i)\le -p(x_i)log_2p(x_i)0<p(xi​)≤−p(xi​)log2​p(xi​)表示事件xix_ixi​的熵。


举例:假设X={a,b,c}是由三个事件构成的合集,p(a)=0.5,p(b)=0.25,p©=0.25分别为事件a,b,c的概率,则a,b,c的熵分别为0.5,0.5和0.5。这个集合的熵为
H(X)=p(a)I(a)+p(b)I(b)+p(c)I(c)=1.5ShH(X)=p(a)I(a)+p(b)I(b)+p(c)I(c)=1.5 Sh H(X)=p(a)I(a)+p(b)I(b)+p(c)I(c)=1.5Sh

数据的冗余量

定义:在信息论中,数据的冗余量®定义为决策量 $(H_0) $超过熵(H)的量,数学上表示为 R=H0−HR=H_0-H R=H0​−H


举例:假设X={a,b,c}是由三个事件构成的合集,p(a)=0.5,p(b)=0.25,p©=0.25分别为事件a,b,c的概率,则这个数据集的冗余量则为,
R=H0−H=log23−[−sumi=1nlog2p(xi)]=1.58−1.5=0.08ShR=H_0-H=log_2 3-[-sum_{i=1}^{n}log_2p(x_i)]=1.58-1.5=0.08 Sh R=H0​−H=log2​3−[−sumi=1n​log2​p(xi​)]=1.58−1.5=0.08Sh

二、统计编码

香农-凡诺编码

在香农的源编码理论中,熵的大小表示非冗余的不可压缩的信息量。
在计算熵时,如果对数的底数用2,熵的单位就用"Sh"。


编码:对每个符号进行编码时采用“从上到下”的方法。首先先按照符号出现的频度或概率排序,然后用递归方法分成两个部分,每个部分具有近似相同的次数。

霍夫曼编码

与香农不同的是,霍夫曼提出和描述的“从下到上”熵编码方式。


编码:根据给定数据集中各元素所出现的频率来压缩数据的一种统计压缩编码方式。这些元素出现的次数越多,其编码的额位数就越少。

·还有其他编码方式如算数编码、RLE编码等不在此次讨论

例题:一串消息包含A,B,C,D,E共5类符号,其内容是AABBBBAAAACCCCCCCCCEEEEEEDDDDEEEEEEEEEEEEE, 请问其信息熵是多少?如果分别采用香农-凡诺编码,霍夫曼编码,压缩率分别是多少?

符号 次数 log(1/p(x))
A 6 2.827
B 4 3.392
C 9 2.222
D 4 3.392
E 19 1.144
共计 42 -----

答:字符串的熵H(x)=∑i=1np(xi)log2p(1/xi)=6/42log(42/6)+4/42log(42/4)+9/42log(42/9)+4/42log(42/4)+19/42log(42/19)=2.043ShH(x)=\sum_{i=1}^np(x_i)log_2p(1/x_i)=6/42log(42/6)+4/42log(42/4)+9/42log(42/9)+4/42log(42/4)+19/42log(42/19)=2.043 ShH(x)=∑i=1n​p(xi​)log2​p(1/xi​)=6/42log(42/6)+4/42log(42/4)+9/42log(42/9)+4/42log(42/4)+19/42log(42/19)=2.043Sh


采用香农-凡诺编码
按照概率大小排序,再分割E,C分为19和23,再从C,A,B,D中分割C,A分为了9,14,再从A,B,D中分割为A,B分为6和8,再将B和D分割。

符号 次数 编码 位数
E 19 1 19
C 9 00 18
A 6 000 18
B 4 0111 16
D 4 0110 16
共计 42 ----- 87

编码前:5个符号需要三位,42个字符共126。
编码后:共87位
压缩比:126:87=1.45:1


采用霍夫曼编码
根据符号的次数,E>C>A>B,D,B=D。
先将B,D组成节点共8,再与A组成节点共14,再与C组成节点共23,再与E组成节点。

符号 次数 编码 位数
E 19 1 19
C 9 00 18
A 6 000 18
B 4 0111 16
D 4 0110 16
共计 42 ----- 87

编码前:5个符号需要三位,42个字符共126。
编码后:共87位
压缩比:126:87=1.45:1

感觉和香农-凡诺编码结果一样了

三、关于RGB

参考:BMP格式.
一幅1024768的24位RGB彩色图像一共在内存中占有多少字节? 如果将其保存为非压缩格式的BMP文件,文件有多少字节?
答:RGB占3字节的话,文件共1024
768*3=2_359_296字节。

BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。
对于24-位真彩色图像就不使用彩色板,因为位图中的RGB值就代表了每个象素的颜色。
故文件头+位图信息头+颜色信息为55字节

保存为非压缩格式的BMP文件,文件共有2_359_351字节。

关于信息墒与压缩编码基础的学习相关推荐

  1. 信息墒与压缩编码基础

    信息墒与压缩编码基础 一. 信息墒 1.定义 2.性质 二. 两个例子 香农-凡诺编码 霍夫曼编码 一. 信息墒 1.定义 信息熵是香农于1948年提出的概念,用来描述信源的不确定度,是从热力学中借用 ...

  2. 零基础怎么学习web前端开发

    零基础怎么学习web前端开发?web前端在移动互联网行业的运用是非常广泛的,而且web前端开发技术所涵盖的知识有很多,具体要怎么学习,来看看小编下面的详细介绍吧. 零基础怎么学习web前端开发?对零基 ...

  3. 零基础入门学习Python(33)-图形用户界面编程(GUI编程)EasyGui

    用户界面编程,即平时说的GUI(Graphical User Interface)编程,那些带有按钮.文本.输入框的窗口的编程 EasyGui是一个非常简单的GUI模块,一旦导入EasyGui模块,P ...

  4. Python基础语法学习笔记

    Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...

  5. FreeMarker中文帮助手册API文档,基础入门学习文档

    FreeMarker中文帮助手册API文档,基础入门学习文档 分类: 编程技术 发布: bywei 浏览: 7 日期: 2011年5月28日 分享到: QQ空间 新浪微博 腾讯微博 人人网 什么是Fr ...

  6. 20135203齐岳 信息安全系统设计基础第十三周学习总结

    20135203齐岳 信息安全系统设计基础第十三周学习总结 学习计时:8/9共小时(计划/实际) 读书:4/5 代码:1/1 作业:1/1 博客:2/2 第十二章 并发编程 一.学习目标 掌握三种并发 ...

  7. 《爬虫与网络编程基础》学习

    <爬虫与网络编程基础>学习 任务1:计算机网络基础 Step1-2 Step 3:关于XML格式的学习 XML文件格式 XML文件的常见操作 1.构建xml格式文件 2. 保存XML文件 ...

  8. 零基础如何学习Java?你要注意的8件事

    随着社会信息的发展,Java技术已经无处不在,无论是手机软件.手机Java游戏还是电脑软件等,只要你使用到电子产品就会碰到和Java有关的东西,更多的企业正采用Java语言开发网站.那零基础如何学习J ...

  9. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...

    (六)树与二叉树 1.树的基本概念 树是一种简单的非线性结构.在树结构中,数据元素之间有着明显的层次结构.在树的图形表示中,用直线连接两端的结点,上端点为前件,下端点为后件. 在树结构中,每一个结点只 ...

  10. 20145227《信息安全系统设计基础》第一周学习总结

    20145227<信息安全系统设计基础>第一周学习总结 学习内容总结 Linux是一个操作系统.如果使用GUI,Linux和Windows没有什么区别.Linux学习应用的一个特点是通过命 ...

最新文章

  1. C语言学习之输入任意年份,判断是否为闰年
  2. 如何备份服务器日志到其他服务器_KIWI Syslog日志服务器搭建及配置
  3. java 线程安全性_Java线程安全性问题摘要_Power Node Java Academy的组织
  4. MSSQL差异备份拿shell(转)
  5. OPPO Reno6系列和Reno5系列有啥区别?价格差不多?
  6. Tomcat配置HTTPS
  7. pythonQQ机器人系列:使用requests实现QQ机器人聊天(0-2)
  8. 移动边缘计算——MEC
  9. 微信中调用扫一扫最简便的方法 5行代码实现H5扫一扫 HTML5扫二维码最简便的办法
  10. VirtualBox安装增强功能实现全屏
  11. 阿里云DMS添加ECS自建数据库
  12. 程序员也要学英语——英语构词法
  13. 我的世界服务器启动txt文件,我的世界服务器开启设置全攻略 我的世界开服图文详细教程...
  14. 指向 类成员函数 的 函数指针
  15. FIR滤波器与IIR滤波器
  16. 华为手机百度云息屏后停止下载_华为智选车载智慧屏评测:像手机一般好用,行车体验更便捷...
  17. 达人评测 酷睿i9 12950hx和i9 12900hx区别哪个强
  18. 数据库系统原理与应用教程(037)—— MySQL 的索引(三):删除索引
  19. 软件工程-团队项目-班级网站软件需求规格说明书
  20. 运维之道 | Linux rsync 文件同步、Inotify远程实时同步

热门文章

  1. 163邮箱格式 ,个人邮箱的正确格式
  2. 计算机老掉线 路由器网络,路由器经常掉线怎么办 路由器WIFI信号不稳定解决方法...
  3. 身份证读取设备开发解决方案:1、Windows下开发Qt程序demo读取身份证信息
  4. jeeplus-一款款可一键生成前后端代码的开发平台
  5. CLIENT_PLUGIN_AUTH is required 解决办法
  6. 记一次CAD二次开发 (C#) -导出
  7. 计算机网络中数据传输速率的单位是什么,计算机网络中传输介质传输速率的单位是用什么表示...
  8. linux运维经验总结
  9. C++ 批量图片拼接
  10. 我的网关、子网掩码、DNS1、DNS2是什么