編碼 | 解碼 | 壓縮

> elias | omega | asymptotic <

// Elias Omega —— 面向任意大整數的漸近最優編碼

0 字元數
0 字元數

>> 功能亮點

[OPTIMAL]

漸近最優

在大整數上逼近資訊理論的最小位數。

[RECURSIVE]

遞迴結構

透過遞迴編碼長度,結構優雅且易於推導。

[UNIVERSAL]

通用整數碼

不需額外參數即可編碼任何正整數。

>> 技術細節

Elias Omega 的運作方式

Elias Omega 會不斷遞迴地編碼數字長度,直到得到 1。以 n 為起點,先編碼 log₂(n),再編碼 log₂(log₂(n)),如此反覆直到 1。最終的碼字由這些值依反向順序串接,並在末尾加入 0,得到 log(n) + log(log(n)) + log(log(log(n))) + ... 位元。

Omega 編碼範例

n=16:
16 → 二進位:10000(長度 5)
5 → 二進位:101(長度 3)
3 → 二進位:11(長度 2)
2 → 二進位:10(長度 2)
1 → 停止

從後往前構造碼字:
從 0 開始(終止符)
前置 10(編碼 2)
前置 11(編碼 3)
前置 101(編碼 5)
前置 10000(編碼 16)
結果:10 11 101 10000 0

效率比較:
n=100:Gamma=13,Delta=12,Omega=10 位元
n=1000:Gamma=19,Delta=16,Omega=14 位元

為什麼選擇 Elias Omega

  • 非常適合極大整數的編碼
  • 具備理論上的漸近最優性
  • 在整數編碼理論中扮演關鍵角色
  • 在極限情況幾乎沒有多餘位元
  • 遞迴結構優雅、實作有趣

>> 常見問題

什麼是 Elias Omega 編碼?

Elias Omega 是 Elias 系列中最進階的編碼方式,透過遞迴地編碼長度來達成漸近最優的碼長。它會先對表示的長度編碼,再對該長度的長度編碼,如此反覆直到 1,因此在面對極大整數時非常高效。

Omega 與 Gamma、Delta 有何差異?

對於很小的整數(< 10),Gamma 通常比較合適;在中等範圍(10–1000)時,Delta 通常更好;當整數非常大(> 1000)時,Omega 的優勢會愈來愈明顯。Omega 使用 log*(n) 等級的迭代,在理論上達成漸近最優表現。

「漸近最優」是什麼意思?

若編碼長度與資訊理論最小長度 log₂(n) 的比值在 n 趨近無窮大時收斂到 1,則稱該編碼為漸近最優。對 Omega 來說,有 length(n)/log₂(n) → 1(n → ∞)。

既然 Omega 理論上較佳,為什麼不是到處都在用?

雖然在理論上最優,Omega 的實作與解碼相對複雜。對實際資料而言,當整數範圍有限時,Exp-Golomb 或 Rice 等更簡單的編碼常常更實用。Omega 更適合用於理論研究以及整數上界未知或極大的情境。