淺談視訊壓縮技術 陳宏昇 楊凱超
Introduction 為何要壓縮? 720*480 pixel color image * 24bits/pixel(RGB) * 30 images/second = 249M bps(bits per second) 超長片(800MB),只能存25秒的短片 魔戒,片長3小時,要336GB的硬碟 宿網100Mb/s,要抓7.5小時 ADSL 1.5Mb/s,要抓500小時
Introduction 壓縮方式有哪些? 無失真壓縮(lossless compression) 壓縮過的資料可以100%的還原 應用目的:1.讓檔案大小變小 2.讓檔案數量變少 適用範圍:報告,程式,軟體……(zip,rar) 破壞性的壓縮(lossy compression) 壓縮過的資料無法100%的還原 應用目的:得到更高的壓縮率 適用範圍:聲音,圖片,影片(mp3,jpg,mpg)
色域轉換與取樣 每個點RGB各8bits,0~255之間 人類視覺,對亮度變化比色彩變化敏感 RGB -> YCbCr Y = 0.257 R + 0.504 G + 0.098 B + 16, Cb = -0.148 R - 0.291 G + 0.439 B + 128, Cr = 0.439 R - 0.368 G - 0.071 B + 128,
Lossy Coding of Still Image (JPEG) 8×8 Compressed Entropy image data DCT Q encoder Source image 8×8 Compressed Entropy image data IDCT IQ decoder Reconstructed image
Transform Coding X0 68 75 60 53 81 65 45 34 61 57 67 50 X1 169 188 150 171 131 203 162 112 84 151 142 168 125
Transform Coding 目標:1.減少原始訊號的相關性 2.集中大部分訊號能量 Transform本身並沒有任何壓縮的效果 Transform的目的是為了作Quantization 常見的transform方式:linear transform,fourier transform,cosine transform,wavelet transform,KLT……。
Transform Coding A sample of discrete cosine transform
Quantization
Zig-zag scan
Video Sequence Motion vector Frame i Frame i+1 每張frame獨立壓縮 : Quality最好 壓縮效率最差 有效率的壓縮法:參考前一張frame壓縮 能獨立壓縮的frame稱為Intra frame (I-frame) 參考前一張壓縮的frame稱為 P-frame
Motion Estimation 如何找出motion vector? Finding minimum SAD (Sum of absolute difference)
Motion Estimation
Motion Compensation 依據找到的motion vector,將找到的block拿來與原本的block比較,再把它們有差異的地方(residual)拿來壓縮。
Video Encoder - P-frame I-frame Frame input VLC DCT Q residual Bitstream Motion Compensation IDCT Previous frame MV Motion Estmation Frame memory MV Clipping
Video Decoder … I-frame P-frame IDCT VLC |←Group of Pictures→| Reconstructed frame VLC Coded Bitstream Motion Compensation Previous Frame memory I P P P P P I P P P P P P P … |←Group of Pictures→| |←Group of Pictures→| |← Movie →|
影像種類 I frame:自己獨立壓縮,沒有參考其它的影像。 P frame:參考前一張I或P frame。 B frame:參考前後兩張I或P frame,並沒有給其他frame作為參考 解碼順序: I P B B P B B P B B 撥放順序: I B B P B B P B B P