DVR 壓縮格式之前世今生

small2324 發表於 2009-6-20 17:42:17 [顯示全部樓層] 回覆獎勵 閱讀模式 4 4712
本帖最後由 0935097120 於 2009-6-22 18:14 編輯

軟壓與硬壓對決裡有說明到視訊的資料量有多大, 也提到影像壓縮是目前DVR產業的最重要核心, 那面對眾多的格式, 有MJPEG, MPEG2 , MPEG4,
到最近很常聽見的H.264, 到底這些格式到底有什麼差別, 是新的比較好舊的
比較差, 難到新舊決定好壞嗎?而其原理又是如何呢?


影像壓縮原理


視訊是由一連串的影像所組成, 所以我們先從影像壓縮原理講起好了.!


壓縮原理 - 尋找重覆資料

電腦資料是由一堆0與1 所組成, 所以一堆資料中, 壓縮的原理就是找出重覆的
地方把它省略, 舉例來說


    CCDDDDAAABBBBBBB
   
    16 個字元,
   
    C2D4A3B7
   
    C2 就是有兩個C, 這樣沒有省到, 但至少持平, 台語叫"沒來", 就是沒輸贏
    D4 有4 個D, ㄟ.. 這就有省到了, A3 是3個A, B7 就7 個B, 7 個字元只用兩
    個字元就搞定了整個16 字元的資料當場剩 8 個, 壓縮率一半, 只要解碼時
    知道公式, 可以回復就搞定了..!
   
    我再舉個例
   
    this is a book
   
    如果我們建個表, this為1, is 為2,a不動,book為4, 那我是不是變成
    1 2 a 4
   
    這就是查表法, 比較有名像是huffman's encoder ,就是利用統計所欲壓縮
    的資料, 再建成表,而資料以查表方式儲存, 當然傳輸需要附上這張表, 而解
    壓縮時再經由這張表回復, 這就成了壓縮的基本核心
   
    而這樣的壓縮, 回復回來的資料, 完全與原來的資料一模一樣, 一字不差,這
    就是所謂的無失真壓縮, 依照統計, 最高壓縮率大概會接近3 倍, 也就是最
    多大概能壓成原來的1/3, 這是最多, 一搬來說大概一半就很不錯了..
   
無失真壓縮:   
     
    以這樣的精神來看影像, 想像一張圖, 是一隻蒼蠅停在一面白色的牆,這樣一
    來, 整張圖都是白色, 就只有蒼蠅是畫面上比較複雜的資料, 所以第二個例子
    來思考就可以知道要怎麼處理了, 如果我們把連續100個連續白色點設為1,
    整個畫面立即被簡化成一堆1, 只有蒼蠅周遭需要比較多的資料, 知名的GIF
    專利爭議的LZW演算公式, 基本精神就是這樣,而這樣的壓縮法, 因為沒有任
   何資料失去, 這就是所謂的無失真影像壓縮
   
   
失真壓縮 :

   失真影像壓縮, 是利用人眼對於高頻影像敏感度較差, 對於低頻比較敏感的原
   理, 濾除高頻所造成的資料量, 讀者可以想像一下, 一個畫面照在洋基球場照
   著王建明而背景是觀眾席, 這時你會去特別注意觀眾席上的某位觀眾的眉毛嗎?
    但你確會清楚注意王建明微微皺的眉頭 , 以影像來看, 背景萬頭鑽洞中是高頻,
    而王建平白白的臉則是低頻
   
    不過壓縮演算法並不會知道王建明, 也不會故意刪除拿著加油棒在觀眾席上加
    油民眾的眉毛, 它是利用一種空間域轉頻域的公式, 將影像訊號轉成頻率, 較知
    名的就是DCT, 與wavelet 然後將高頻刪除後, 再尋找資料上的重覆性, 然後進
     行儲存
  
    所以影像失真壓縮運用了兩種技術, 一種是去除頻率較高的畫面資料, 一種利
    用無失真壓縮的方式尋找所剩下資料的重覆性, 知名的JPEG 就是這樣的技術,
    所以JPEG 可以存成這麼小就是這樣原因
  
    那高頻被濾掉真的沒關係嗎? 其實當然一定會關係,只是不好看出來而已,讀
    者可以注意一下所照的照片所存下來的JPEG檔, 你可以看到物體邊緣會有一點
    透明抖痕, 那就是高頻被濾除後所造成的高頻響應不足所造成的結果, 稱為ringing,
    意思是像你敲了鐘,鐘正在響的時後邊緣會抖動的效果
  
  
壓縮率 :

   那到底怎麼決定要刪除多高的頻率, 其實這是可以設定的, 將要率除的頻率設低
   一點, 就會有較多頻率被刪除, 當然刪除越多, 資料量越少,在JPEG 檔中靠QP執
   來決定,0-100 中設為高, 被濾除的資料就越少, 設越低被濾除越多, 而設而資料
   量當然以此為基準
   
   
視訊壓縮 :

  空間域壓縮格式:

  一開始說到, 視訊是由一連串的影像所組成, 所以我們將壓縮後的當張影像一張
  一張接起來, 這樣不就是視訊壓縮了, Motion JPEG(MJPEG) 就是這樣而來,視訊
  一張一張以JPEG方式壓縮, 在組合成一個檔案, 而常見對MJPEG的誤解有兩項
  
     1. MJPEG 是無失真壓縮:剛解釋了JPEG的QP 可以決定壓縮率, 所以MJPEG
         是可以設成無失真, 但基本是不會有人這樣設定的, 但何以會被認為無失真
         壓縮, 主要是它的壓縮量較大, 因為視訊壓縮還有一個最重要的技術, MJPEG
         並無使用, 所以資料量較大, 但並非無失真
        
     2. MJPEG 的畫質最好:  一般而言, 因為MJPEG的資料量較大, 所以畫質通常是
         比較好沒錯, 但此也非絕對, 主要是JPEG 的畫質控制在QP值, 如果QP值設
         太低, 畫面當然差, 已經這麼差了,怎麼會比其它格式好呢?!
        
        
     但MJPEG 可以確定的是,他是運算量最低的視訊格式   
        
  時間域壓縮格式 :
  
       空間域的意思是靠一張圖中尋找重覆性, 與高頻資料, 來做為壓縮依據, 但時間
       域的格式不止針對單張影像的資料壓縮, 而是經由多張連續影像來尋找, 我再
       把蒼蠅的例子拿出來說
      
       如果一段影片, 是一隻蒼蠅在一面白牆上飛來飛去, 那最省的壓縮是不是就將
       第一張圖存起來, 而第二張圖開始, 就把第一張蒼蠅的剪起來, 貼在白牆上, 第
       三張依續隨著蒼蠅的路徑貼上去, 這樣一連續起來不就是蒼蠅到處飛了嗎.!!
      
       有這麼簡單嗎? 基本上時間域的壓縮就是如此原理, 在壓縮時透過Motion
       Estimation (移動估算), 計算影像前後張所變動的資料量, 然後只儲存變量,
       而解碼時利用Motion Compesation(移動補償), 將前一張的資料, 經由補償
       方式將變量補上去, 就成了視訊壓縮的核心功能
      
      
   
MPEG I

       此為VCD 的核心技術, 此規格其實與MPEG II 同時發展, 只是考量到電腦運
       算能力(此運算是指IC的能力,當然也包含CPU), 所以將解析度降低,讓運算量
       降低, 而成了MPEG I
      
MPEG II :

       此為DVD的核心技術, 不過其當初考量是以電影等內容所為設定, 所以其資料
       量雖人比MJPEG 小, 但確因為畫質較好, 所以資料量也很驚人, 可以想一下,
       一張2個小時的電影, 需要4G-7G 的大小, 其壓縮效率還是無法與MPEG 4 比
      
MPEG4 :

       這是目前DVR的主流格式, 他透過較佳的ME/MC(Motion Estimation/Motion Compesation)
       核心, 與更多樣的參數設定, 來達到畫質與資料量的較佳比值, 但因為其此, 其
       運算量當然也高於MPEG II 與MJPEG, 而MPEG 4 也正是我上一篇硬壓與軟壓
       中的主角
      
      
H.264 :

       其實H.264 很早就被定義, 它之前的名字是H26L, L 是指long term 長期的意思,
       是ITU 協會(MPEG 是另一個標準制定機構)所設定長期發展的格式, 與其相對的
       是H.263與MPEG4 相當的一種格式, 然而隨著時間的增加,長程目標也有到的一
       天, H.26L 在長期的制定中, 最候底定發版定名為H.264, 而MPEG 協會後來也將
       此標準收進MPEG 4 裡,定為MPEG 4 part 10
      
       我們知道H.264 應該會比MPEG 4 畫質好,理論上是如此沒錯, 他透過更小範圍的
       頻域轉換演算法, 更精確的ME, 也因此更耗運算能力, 如果以MPEG4 的資料量來
       比, 相同品質的畫質, H.264 可以得到比較小的資料量,如果H.264設定成資料量與
       MPEG 4 相當, 那畫質通常會MPEG 4 還好,但為了達到這樣的運算, H.264 需要的
       運算量通常大於MPEG 4 很多, 常態來看大致為4倍, 但已有2倍以下的DVR 廠商出現
      
       H.264 也因其資料量比較小的特性, 被大力用於IP Camera 裡, 因為IP Camera 最
       大頻頸就在網路的頻寬穩定度, 既然資料量越小, 受限的機會也變小

       不過一切的好處都是用取捨而來的, 要比較小的資料量, 當然就無法很好的畫質或是
       很少的運算量, 所以, "資料量","運算量","畫質好壞", 將是一個取捨的比例, 但大致上
       其會比MPEG4 優良
      
      
      其實每種格式都是一本厚厚的標準,其背後更是一堆論文所產生的理論背景, 我這樣簡
      略的說明, 主要是不想變得太枯噪, 希望各位先進不吝指教

曾經發表文章:

DVR之軟壓與硬壓對決
Bt878傳奇

已有(4)人回文

切換到指定樓層
polooooo 發表於 2009-6-20 22:30
好專業的大大,請問你也在跑監視器業務嗎?還是在做研發
small2324 發表於 2009-6-21 14:44
小弟只是個小小工程人員, 只是在DVR這個算新的行業裡, 還算待的久了點, 有點小小想法

如果有版友有什麼議題想透過小弟的主觀意見了解, 可以給點建議, 小弟有時間會慢慢寫下來
aaabank 發表於 2009-7-1 23:35
收益良多
這些資料很值得參考
wolfjay 發表於 2009-7-2 20:58
謝謝分享
這個看的比較懂
你需要登入後才可以回覆 登入 | 註冊會員

本版積分規則