1. 程式人生 > >H.264---CABAC---基礎---二進位制算術編碼

H.264---CABAC---基礎---二進位制算術編碼

轉自:https://www.cnblogs.com/TaigaCon/p/5304563.html

二進位制算術編碼的編碼方法跟算術編碼是一樣的,但是輸入只有兩個符號:“0”,“1”,也就是說輸入的是二進位制串。

除了是對二進位制串進行編碼這個特徵外,二進位制算術編碼跟普通的算術編碼還有一些區別,總體上可以按照如下進行描述:

  1. 設輸入符號串為ss,ss中的符號分為兩種:MPS(Most Probability Symbol),LPS(Low Probality Symbol),分別代表出現概率大小的符號,需要根據實際情況進行調整。如果輸入的二進位制串中的“0”較多,“1”較少,那麼MPS = “0”,LPS =“1”
  2. LPS出現的概率為pLPS,MPS出現的概率為pMPS=1pLPS
  3. 在編碼中進行區間選擇時,MPS在前,LPS在後,因此

MPS的累計概率為PMPS=0PMPS=0

LPS的累計概率為PLPS=1−pMPS =1

  1. 區間大小的更新為
    • 如果當前編碼的是LPS:Ri+1=Ri⋅pLPS
    • 如果當前編碼的是MPS:
RLPS=Ri–(Ri⋅pLPS)">Ri+1=Ri(RipLPS)
  • 區間的起點更新為
  • 如果當前編碼的是LPS:Li+1=Li+RMPS

    如果當前編碼的是MPS:Li+1=Li