H.264的壓縮方法:
1.分組:把幾幀圖像分為一組(GOP,也就是一個序列),為防止運動變化,幀數不宜取多仁烹。
2.定義幀:將每組內各幀圖像定義為三種類型,即I幀、B幀和P幀;
3.預測幀:以I幀做為基礎幀,以I幀預測P幀,再由I幀和P幀預測B幀;
4.數據傳輸:最后將I幀數據與預測的差值信息進行存儲和傳輸。
幀內(Intraframe)壓縮也稱為空間壓縮(Spatial compression)咬腋。當壓縮一幀圖像時,僅考慮本幀的數據而不考慮相鄰幀之間的冗余信息向瓷,這實際上與靜態(tài)圖像壓縮類似肠套。幀內一般采用有損壓縮算法,由于幀內壓縮是編碼一個完整的圖像猖任,所以可以獨立的解碼你稚、顯示。幀內壓縮一般達不到很高的壓縮朱躺,跟編碼jpeg差不多刁赖。
幀間(Interframe)壓縮的原理是:相鄰幾幀的數據有很大的相關性,或者說前后兩幀信息變化很小的特點长搀。也即連續(xù)的視頻其相鄰幀之間具有冗余信息,根據這一特性宇弛,壓縮相鄰幀之間的冗余量就可以進一步提高壓縮量,減小壓縮比盈滴。幀間壓縮也稱為時間壓縮(Temporal compression)涯肩,它通過比較時間軸上不同幀之間的數據進行壓縮。幀間壓縮一般是無損的巢钓。幀差值(Frame differencing)算法是一種典型的時間壓縮法病苗,它通過比較本幀與相鄰幀之間的差異,僅記錄本幀與其相鄰幀的差值症汹,這樣可以大大減少數據量硫朦。
有損(Lossy )壓縮和無損(Lossy less)壓縮。無損壓縮也即壓縮前和解壓縮后的數據完全一致背镇。多數的無損壓縮都采用RLE行程編碼算法咬展。有損壓縮意味著解壓縮后的數據與壓縮前的數據不一致。在壓縮的過程中要丟失一些人眼和人耳所不敏感的圖像或音頻信息,而且丟失的信息不可恢復瞒斩。幾乎所有高壓縮的算法都采用有損壓縮,這樣才能達到低數據率的目標破婆。丟失的數據率與壓縮比有關,壓縮比越小,丟失的數據越多,解壓縮后的效果一般越差胸囱。此外,某些有損壓縮算法采用多次重復壓縮的方式,這樣還會引起額外的數據丟失祷舀。