H.264---CABAC---基础---二进制算术编码
转自:https://www.cnblogs.com/TaigaCon/p/5304563.html
二进制算术编码的编码方法跟算术编码是一样的,但是输入只有两个符号:“0”,“1”,也就是说输入的是二进制串。
除了是对二进制串进行编码这个特征外,二进制算术编码跟普通的算术编码还有一些区别,总体上可以按照如下进行描述:
- 设输入符号串为ss,ss中的符号分为两种:MPS(Most Probability Symbol),LPS(Low Probality Symbol),分别代表出现概率大小的符号,需要根据实际情况进行调整。如果输入的二进制串中的“0”较多,“1”较少,那么MPS = “0”,LPS =“1”
- LPS出现的概率为pLPS,MPS出现的概率为pMPS=1−pLPS
- 在编码中进行区间选择时,MPS在前,LPS在后,因此
MPS的累计概率为PMPS=0PMPS=0
LPS的累计概率为PLPS=1−pMPS =1
- 区间大小的更新为
- 如果当前编码的是LPS:Ri+1=Ri⋅pLPS
- 如果当前编码的是MPS:Ri+1=Ri–(Ri⋅pLPS)
- 区间的起点更新为
如果当前编码的是LPS:Li+1=Li+RMPS
如果当前编码的是MPS:Li+1=Li