数字图像处理与应用——图像和视频压缩技术
圖像壓縮JPEG標準
JPEG是應用最廣泛的靜態(tài)圖像壓縮標準。
- JPEG是針對標準彩色圖像和灰度圖像壓縮的程序;
- JPEG針對真實環(huán)境中的壓縮效果較好,對工程圖、卡通圖、其他非真實感的圖像壓縮效果較差(原因在于其中利用到DCT線性變換,而DCT變換主要針對自然圖像);
- JPEG即可以是有損壓縮,也可以是無損壓縮;
有損壓縮:實際上是基于DCT變換的方法(與原始圖像相比,在像素級別是不同的,但人眼的視覺系統(tǒng)看不出差異);
無損壓縮:基于預測方法,不能使用DCT變換(DCT變換的數(shù)學公式中有些無理數(shù),一般計算機計算位數(shù)有限,在一定的位數(shù)上面會做截斷,必然會導致像素級別上的差異)。
壓縮與解壓縮
以上為壓縮的大致流程。
以上為解壓縮的大致流程。
前處理
Color sub-sampling
- 彩色圖像:RGB空間 ==> YUV空間(Y表示亮度分量,U與V是兩個色差的分量);
- 之后對U、V進行采樣(該步實際已經(jīng)在做壓縮。Why 只對色差分量做采樣?人眼的視覺系統(tǒng)對亮度分量比較敏感,對兩個色差分量并不敏感 ==> 盡量保持亮度分量不變,色差分量砍數(shù)據(jù));
- 對于16x16的圖像塊,經(jīng)過操作之后,會包含6個8x8的塊(1個16x16的亮度分量塊,2個8x8的色差分量塊,亮度分量是U、V的兩倍大小 ==> 共形成4個8x8的亮度塊,因此共組成6個8x8的塊)。
Level shifting:
- 每個像素減去128,將(0, 255) ==> (-128, 127)(Why?自然灰度圖中間的灰度值出現(xiàn)概率大,即靠近128的值非常多,減去128之后,圖像中的大多數(shù)值會接近0,而在壓縮的過程中,最希望看到的就是0,0可以采用巧妙的方式去處理,不會占用存儲空間)。
2D DCT
圖像塊的尺寸是8x8,做8x8的DCT變換;
- 經(jīng)過8x8DCT變換之后,8x8的圖像塊(共64個數(shù)字)?==> 得到的仍是64個數(shù)字,但空間已經(jīng)發(fā)送了變化,前者表示像素點的灰度值,變換后表示該圖像塊在不同空間頻率上的投影值,得到64個空間頻率值,即在兩個不同的domain當中,前者空間域,后者頻率域,通常稱為輸入8x8圖像塊的“頻譜”。
輸入的8x8圖像塊,與上圖中每一個子圖像塊做內(nèi)積(點對點相乘再相加,最終得到標量),最終得到64個系數(shù),表示該圖像塊在不同空間頻率域上的投影,即頻譜。
DCT變換在壓縮中起什么作用?
- 自然圖像中,圖像塊中的點與點之間的灰度變化不是那么劇烈,變換相對光滑、緩慢,DCT變換剛好可以把這種光滑、緩慢的變換趨勢,可以將該信號的能量集中在少數(shù)幾個所謂的低頻率的成分上。
- 理論上,DCT變化是一種無損變換,但實際上由于DCT變換包含一個“cosine”,是一個無理數(shù),計算機只能計算有限位的數(shù),但這一階段不會有任何的信息丟失,信息丟失主要是在量化階段。
量化:將視覺上不重要的信息丟失掉。
- 從數(shù)學角度:多對一的映射(0-1之間,0.9經(jīng)過量化為0.5,0.1經(jīng)過量化為0.5,即一個線段變成了一個點,自然信息必然丟失 ==> 引入量化誤差(量化噪聲))
對于8x8的圖像塊,除第一個系數(shù)之外,將其他的系數(shù)按照第一個系數(shù)做變換,也進行了一定程度的壓縮。
其他63個系數(shù)稱為交流分量(AC Coefficients)
人眼視覺系統(tǒng)對低頻信號更敏感。
- (a)灰度值變換平滑,需要減去128(在空間域當中);
- (b)做DCT變換,變?yōu)?4個系數(shù)(在頻域當中,直流分量占絕大部分235.6,右下角數(shù)值都很小);
- (c)量化表:右下角的值比左上方的值更大
(用(b)中的每個元素除以(c)中的每個元素); - (d)量化之后絕大多數(shù)數(shù)值都變成了0(類似于稀疏矩陣),直流分量單獨處理;
- (e)去量化:(d)與量化表相乘,非零時才會有數(shù)值;
- (f)DCT的逆變換,像素級的灰度值會有細微的變化,人眼視覺系統(tǒng)無法感知差異,即在壓縮后節(jié)省了很多存儲空間,但圖像視覺質(zhì)量不變。
視頻壓縮MPEG標準
靜態(tài)圖像壓縮 vs 視頻序列壓縮
- ?從一幀的角度看,兩者相同;
- 視頻幀與幀之間時域的相關性大,利用時域的冗余性做更大強度的壓縮;
不考慮時域的冗余性(AVI格式實際上為幀內(nèi)編碼),即每一幀獨立地按照圖像JPEG標準進行編碼。?
相鄰兩幀相減,大部分像素值為0。
運動補償
- 為基于前一幀的預測幀。
- 注意,參考幀是解碼后的前一幀,并非原始幀。
?不做運動補償與做運動補償?shù)牟町?/p>
運動補償后的殘差量相比直接相減更小,更有利于做壓縮,原因在于0出現(xiàn)更多。?
MPEG編碼的大致流程
- 對于第一幀,沒有參考幀,直接按照JPEG的方法進行壓縮(流程中上半部藍色支路);
- 黃色支路:去量化 ==> DCT逆變換 ==> 得到;
Why 不與前一幀的raw對比?解碼端接收到的是第二幀的壓縮幀,而不是第二幀的原始幀,若接收端已有第二幀的原始幀,就無需壓縮了。
MPEG解碼的大致流程
幀分三類:
- 幀內(nèi)編碼;
- 預測幀;
- 雙向預測幀。
一種典型的幀安排:
- 、是來自于的前向預測的幀,、可以雙向的進行估計,即其來自和的插值;
- 每隔一段時間會插入一個幀,阻斷誤差的彌漫,幀類似基石,后續(xù)的幀均要以其為標準來進行編碼。
?幀即為JEPG編碼。
幀的每一塊都要在前一幀參考幀中尋找匹配塊,二者相減獲得殘差,對殘差進行編碼。
幀的參考幀有兩個,最后編碼的也是殘差。
Reference
中國大學MOOC 數(shù)字圖像處理與應用? 浙江大學? 陸系群
數(shù)字圖像處理與應用_浙江大學_中國大學MOOC(慕課)數(shù)字圖像處理與應用,spContent=深刻理解圖像處理原理,生動展現(xiàn)圖像處理過程,靈活應用圖像處理方法,中國大學MOOC(慕課)https://www.icourse163.org/course/ZJU-1206408807?from=searchPage
總結
以上是生活随笔為你收集整理的数字图像处理与应用——图像和视频压缩技术的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光刻技术L1
- 下一篇: 电驴诞生10周年eD2k老而弥坚