图像的常用压缩技术以及视频码率的计算
圖像壓縮方法:
| 無損壓縮 | 哈夫曼編碼,算術編碼,行程編碼 |
| 有損壓縮 | 預測編碼,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=1N?P(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編碼方法
它是一種比較優秀的編碼方法,優秀之處在于該方法碼字的平均碼長比其他任何方法編出的碼字都要短,它的原理就是對出現概率大的信息符號編短碼字,對概率小的符號編長碼字,它的編碼步驟如下:
這玩意這么說肯定太抽象了,看看下面這張圖:
注意它的碼字排布是00,10,11,010,011
接下來教你如何找信源符號的編碼,以S5S_5S5?為例,你從最右邊按照箭頭的反方向來找就好了,結果是011,(從右向左)。
游程編碼
行程編碼(Run Length Encoding,RLE), 又稱游程編碼、行程長度編碼、變動長度編碼 等,是一種統計編碼。主要技術是檢測重復的比特或字符序列,并用它們的出現次數取而代之。比較適合于二值圖像的編碼,但是不適用于連續色調閣像的壓縮,例如日常生活中的照 片。為了達到較好的壓縮效果,有時行程編碼和其他一些編碼方法混合使用
該壓縮編碼技術相當直觀和經濟,運算也相當簡單,因此解壓縮速度很快。RLE壓縮編碼尤其適用于計算機生成的圖形圖像,對減少存儲容量很有效果。
算術編碼
算術編碼是圖像壓縮的主要算法之一。 是一種無損數據壓縮方法,也是一種熵編碼的方法。和其它熵編碼方法不同的地方在于,其他的熵編碼方法通常是把輸入的消息分割為符號,然后對每個符號進行編碼,而算術編碼是直接把整個輸入的消息編碼為一個數,一個滿足(0.0 ≤ n < 1.0)的小數n
視頻中所包含的信息量的計算
比如說一個視頻它的比例是4:1:1YCBCRYC_BC_RYCB?CR?格式,指的是每條掃描線上每四個連續的取樣點上取4個亮度分量,一個藍色分量與一個紅色差分量
計算信息量的時候不要忘記有一個幀率,它信息量指的是1秒以內的,以單位時間作為單位來計算的,比如說一個分辨率為1024X768的圖像,幀率為60FPS,那么計算的時候就要:
1024?768?(1+14+14)?601024*768*(1+\frac{1}{4}+\frac{1}{4})*601024?768?(1+41?+41?)?60
不要忘記幀率!!!
總結
以上是生活随笔為你收集整理的图像的常用压缩技术以及视频码率的计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓绘图软件排行榜(安卓绘图软件)
- 下一篇: Linux内存映射文件(linux内存映