[筆記] 視訊壓縮技術
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
- 淺談視訊壓縮技術
資料來源:視訊通訊實驗室 vclab
JPEG 壓縮的流程

原始影像 -> 切成很多 8x8 窗格
- 做Transform Coding 就是做DCT轉換 從 spatial domain 轉到 frequency domain (不失真),得到 DCT Coefficients
- 做 Quantization -> 讓轉換後的 coefficients 每個值都除一個數值,這是造成壓縮失真的最主要步驟!
- 除完後的結果,會有很多不重要的高頻資訊全部變成0 -> 再將這個二維資料使用zig-zag順序轉一維



Video 壓縮
Video 可以視為很多image frame
每張 frame 獨立壓縮:Quality 最好 效率差
參考前一張 frame 做壓縮,最有效率!
整個 video sequence 包含的 frame 可以分成兩種
intra frame (I-frame) 可以獨立壓縮的 frame
P-frame 這種要參考前一張 frame 去做壓縮,所以他不可以獨立壓縮
用 Motion Estimation 方法尋找 Motion Vector

例如我們要找右圖的frame藍色框框的Motion vector
我們跳到前一張 frame (左圖) 去找藍色框框附近的 Search Area 區域,pixel-by-pixel 比對,找出最match藍色框框的區塊
找到紅色框框! 找到了以後,紅色框框到藍色框框之間的差距就是 Motion Vector
目前有了前一張圖加上 Motion Vector 會得到類似下圖左下那格的樣子

最後一步驟,還需要跟原圖做 residual 壓縮 (Motion Completion)

所以
我們把前一張 frame 加上 motion vector 全部傳給 decoder 看,decoder 就會依據這些資訊,加上residual就可以解出下一張frame該有的樣子!
影片壓縮編碼流程圖

影片解碼流程圖

影像一開始一定是一張 I frame 然後接一串 P frame 但是因為 P frame 失真較多,不可能一直連續下去,所以又會再穿插一個 I frame 然後再接一串 P frame 如次一串一串連貫下去
每一串稱為 Group of Pictures 簡稱 GoP ,一部影片就是由很多很多 GoP 所組成!
[整理]
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
解碼到播放之間會有 latency 需要有 buffer
所以做直播用途的話,比較不會使用 B frame 下去做(會延遲)
- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
留言
張貼留言