图像压缩方法:
- 冗余度压缩方法:也称无损压缩,压缩比较低
- 信息量压缩方法:有损压缩,多用在数字电视技术与静止图像通信,压缩编码中丢弃了一些没有作用的信息
压缩种类 | 压缩方法 |
---|---|
无损压缩 | 哈夫曼编码,算术编码,行程编码 |
有损压缩 | 预测编码,DPCM、运动补偿;频率域方法,正交变换编码(如离散余弦DCT),子带编码;空间域方法;模型方法;基于重要性编码 |
混合编码 | MPEG,JPEG等 |
常见编码举例:
- 熵编码:用消息出现的概率来描述事件出现的不确定性,实现对信息的度量
在熵编码中有一个很重要的概念叫做压缩比,其具体计算方法如下:
数据压缩比记为CR=logm/LCR=logm/LCR=logm/L(L是平均码长)
m为信源符号的总数
符号携带的信息量与它所出现的概率的关系
I(a)=log1P(ai)=−logP(ai)I(a)=log\frac{1}{P(a_i)}=-logP(a_i)I(a)=logP(ai)1=−logP(ai)
所有可能的事件自信息量平均之后得到信源的熵
H(x)=−∑i=1NP(ai)logP(ai)H(x)=-\sum_{i=1}^{N}P(a_{i})logP(a_i)H(x)=−∑i=1NP(ai)logP(ai)
压缩比具有上界:
CRmax=logm/H(x)CR_{max}=logm/H(x)CRmax=logm/H(x)
要想提高压缩比,就得尽可能的降低H(x)H(x)H(x),要想尽可能的降低H(x)H(x)H(x),就要使得无记忆信源的概率分布尽可能非平均,然后再使用最佳编码方法使得平均码长L逼近信源的熵
Huffman编码方法
它是一种比较优秀的编码方法,优秀之处在于该方法码字的平均码长比其他任何方法编出的码字都要短,它的原理就是对出现概率大的信息符号编短码字,对概率小的符号编长码字,它的编码步骤如下:
- 先将所有符号按照出现概率的大小以依次递减的顺序排列
- 给出现概率最小的两个分别编上0与1
- 然后两个概率合并,与上面的作比较,箭头网上移动两格,以此类推
这玩意这么说肯定太抽象了,看看下面这张图:
注意它的码字排布是00,10,11,010,011
接下来教你如何找信源符号的编码,以S5S_5S5为例,你从最右边按照箭头的反方向来找就好了,结果是011,(从右向左)。
游程编码
行程编码(Run Length Encoding,RLE), 又称游程编码、行程长度编码、变动长度编码 等,是一种统计编码。主要技术是检测重复的比特或字符序列,并用它们的出现次数取而代之。比较适合于二值图像的编码,但是不适用于连续色调阁像的压缩,例如日常生活中的照 片。为了达到较好的压缩效果,有时行程编码和其他一些编码方法混合使用
该压缩编码技术相当直观和经济,运算也相当简单,因此解压缩速度很快。RLE压缩编码尤其适用于计算机生成的图形图像,对减少存储容量很有效果。
算术编码
算术编码是图像压缩的主要算法之一。 是一种无损数据压缩方法,也是一种熵编码的方法。和其它熵编码方法不同的地方在于,其他的熵编码方法通常是把输入的消息分割为符号,然后对每个符号进行编码,而算术编码是直接把整个输入的消息编码为一个数,一个满足(0.0 ≤ n < 1.0)的小数n
视频中所包含的信息量的计算
比如说一个视频它的比例是4:1:1YCBCRYC_BC_RYCBCR格式,指的是每条扫描线上每四个连续的取样点上取4个亮度分量,一个蓝色分量与一个红色差分量
计算信息量的时候不要忘记有一个帧率,它信息量指的是1秒以内的,以单位时间作为单位来计算的,比如说一个分辨率为1024X768的图像,帧率为60FPS,那么计算的时候就要:
1024∗768∗(1+14+14)∗601024*768*(1+\frac{1}{4}+\frac{1}{4})*601024∗768∗(1+41+41)∗60
不要忘记帧率!!!