前文參考之適應性二元算術編碼Context-based Adaptive Binary Arithmetic Coding,簡稱CABAC)是視訊壓縮標準H.264采用的演算法。

原理

编辑

CABAC分為三個部份,Binarizer, Context Modeler和Arithmetic Coding Engine。CABAC的設計概念,對於發生機率P(x)>0.5的事件有效地編碼,改進了傳統算術編碼(Arithmetic coding)需要大量的乘法運算的問題,而在效能與壓縮效率上取得相當大的改善空間。CABAC的生命週期是slice,CABAC與UVLC最大的不同點在於其編碼方式具有適應性(adaptive),對於編碼過程中各個符號(symbol)出現的機率會一直動態地去統計並更新。

Arithmetic Coding中以Low及Range表示壓縮過程的範圍。Binarizer可將Codec分析後的句法元素(Syntax Element),轉化成為位元字串(bin string),每個位元稱為一個bin,而bin即為傳給Arithmetic Coder的Symbol。CABAC的符號(symbol)只有0或1兩種,所以bin就是0或1。如果原本就是binary value,就不需要binarization。此一步驟的輸出稱為bin string。接下來要把這些bin sting做arithmetic coding,每個bin可能會有某種機率分佈,如果不具有分佈(regular),即是bin value,就進行Bypass Coding Engine,如果是regular,就前往Context Modeler選擇目前這個bin的model。

Context Modeler再針對所要壓縮的bin去作機率的估測(Probability Estimation)和更新(Binary Arithmetic Coding)。Regular Coding Engine利用bin的model和Context Index查表,並透過Markov Chain Model建表,隨時更新Low與Range的數值,更可得出MPS(Most Probable Symbol)與Probability State。MPS表示機率大於0.5,另一個LPS(Least Probable Symbol)是機率小於0.5。

Bypass Coding Engine和Regular Coding Engine都是Binary Arithmetic coder,均會產生coded bits,形成bitstream,最後輸出。

CABAC不同於Various Length Coding,因此更能夠接近資料的熵編碼(Entropy)。CABAC每個symbol和bitstream不再有一對一的絕對關係,N個symbol有可能使用小於N個bit.在機率估計準確的前提下,CABAC的算術編碼(Arithmetic Coding)的壓縮率可以大於Huffman Coding,也就是說CABAC善用了統計學的期望值,壓縮的bin機率相當接近0.5,表示預測的效率相當低,可直接進行Bypass,直接輸出,以降低memory access與計算。

目前CABAC不支援Baseline以及Extended profiles.另外,CABAC面臨的問題是在於由於循序處理造成資料依存性(Data Dependency)偏高。

參考書目

编辑
  • H.264/MPEG-4 Part 10 White Paper, two page summary of MPEG CABAC, October 2002 [1]
  • E. G. Richardson, Iain. H.264 and MPEG-4 Video Compression: Video Coding for Next-generation Multimedia. Chichester: John Wiley & Sons Ltd. 2003. 

外部連結

编辑

參見

编辑

📚 Artikel Terkait di Wikipedia

分布式信源编码

分布式信源编码(Distributed Source Coding,DSC)是对信息互相关联但不互相通信的信源的一种信息压缩方式. 它和其他信源编码不同的是,在这里使用的是信道码。 分布式信源编码的主要应用领域有传感器网络(sensor network)和图像,视频,多媒体压缩).

百萬位元組

2011-01-07. Atwood, Jeff. (2007-09-10) Gigabyte: Decimal vs. Binary (页面存档备份,存于互联网档案馆). Coding Horror. Retrieved on 2011-01-07. How Mac OS X reports drive

编码理论

编码理论(英語:Coding theory)是研究编码的性质以及它们在具体应用中的性能的理论。编码用于数据压缩、加密、纠错(英语:error-correction),最近也用于网络编码中。不同学科(如信息论、電機工程學、数学、语言学以及计算机科学)都研究编码是为了设计出高效、可靠的数据传输方法。这通

译码方法

binary symmetric channel))传输后恢复消息。 C ⊂ F 2 n {\displaystyle C\subset \mathbb {F} _{2}^{n}} 是指长度为 n {\displaystyle n} 的二元码(英语:binary code); x

二分搜尋

二分查找(英語:binary search)是用于查找有序数组中目标值位置的搜索算法。二分查找比较目标值与数组中间元素的大小,如果两者不相等,则会舍弃不可能包含目标值的那一半区间,然后在剩余区间重复此过程:每次选取新的中间元素并与目标值比较,直至找到目标或区间为空。若区间为空,则说明目标值不存在。 二分查找在最坏情况(英语:Best

奇偶檢驗矩陣

Roman, Steven, Coding and Information Theory, GTM 134, Springer-Verlag, 1992, ISBN 0-387-97812-7  J.H. van Lint. Introduction to Coding Theory. GTM 86

奇普

JSTOR 483319. doi:10.2307/483319.  Urton, Gary. Signs of the Inka Khipu: Binary Coding in the Andean Knotted-String Records. Austin: University of Texas Press

Amaya

Amaya Binary Releases. [2025年1月8日].  Internet Browsers. 24 March 2009 [10 July 2010].  Dubie, Bill; Sciuto, Dave. Amaya a win for Web coding. Seacoast