前文參考之適應性二元算術編碼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

Homebrew

engineers use the software you wrote (Homebrew), but you can't invert a binary tree on a whiteboard so f*** off.(Google:我们90%的工程师都在用你的软件(Homebrew),但是你不会在白板上翻转二叉树,所以滚出去。)

Cell (微處理器)

Cell微處理器架構(Cell Broadband Engine Architecture,通常簡稱Cell BE或CBEA)由索尼、索尼電腦娛樂、东芝、國際商業機器(IBM)公司联合开发。它是以RISC指令体系的Power架构为基础来设计的,并具有高時脈頻率、高执行效率等特点。主要应用于PlayStation

Python

Python运行时服务 定制Python解释器 导入模块 Python语言服务 文本处理(英语:Text processing)服务 二进制数据(英语:Binary data)服务 数据类型 数值和数学模块 函数式编程模块 文件和目录访问 数据持久化 数据压缩和存档 文件格式 加密服务 通用操作系统服务 MS

Android

droid作業系統中的stock應用程式,以替換Android中某些stock應用程式。對於設備中的某些硬件組件,這裡可能還需要二進制點(英语:Binary blob)的驅動程式的使用。 Google僅將其流動服務軟件以及Android的商標授權予符合Android兼容性計劃中指定的Google的兼

2i

1988, 95 (3): 247–249.  Blest, David C and Jamil, Tariq. Division in a binary representation for complex numbers. International Journal of Mathematical

法布里斯·贝拉

2024年,他编写了新的音频编解码器TSAC,旨在寻求压缩率更高但音质影响不大的新编解码方式。 A new formula to compute the n'th binary digit of pi January 21, 1997 TCCBOOT Compiles And Boots Linux In 15 Seconds

Microsoft Office 2008 for Mac

Mac原定於2007年下半年釋放,但被推遲到2008年1月。據稱,原因是因為有很多使固定揮之不去的錯誤。它是首款使用通用二進位(universal binary)的Office套裝軟件。這意味着它可以原生支援Intel和Power PC兩者之上的Mac。與Microsoft Office 2007一樣,兩者都沒有公開測試版。

BlackArch Linux

blackarch-automobile: 3 個工具軟體 4) blackarch-backdoor: 47 個工具軟體 5) blackarch-binary: 71 個工具軟體 6) blackarch-bluetooth: 25 個工具軟體 7) blackarch-code-audit: 34 個工具軟體