2009-10-05

Dirac

Dirac 是 BBC Research 開發的一種視訊編碼格式,不僅免費開放使用,還開放原始碼。以 Dirac 作為格式名稱是為了紀念一位英國理論物理學家、同時是諾貝爾獎得主的 Paul Dirac。Dirac 計劃負責人是 Tim Borer,原始的演算法是由 Thomas Davies 所開發,Dirac 與 VC-2 規格中的許多部分都是他寫的。

Dirac 可以壓縮任何尺寸的圖片,不論是低解析度的 QCIF (176x144 pixels),還是高解析度的 HDTV (1920x1080),或甚至更高的解析度都可以。Dirac 希望能比一些現存格式 (eg. MPEG-4 Part 2, MPEG-2 Part 2, Theora, WMV) 更省流量、品質更好,網站上甚至宣稱 "a two-fold reduction in bit rate over MPEG-2 for high definition video",這已經算是與 H.264、VC-1 同等級的 codec 了。

BBC 在開發 Dirac 之初,就已經設定要 Open source,希望能讓開放原始碼社群、學術界與其他人共同參與,因此,它的設計哲學就是 "keep it simple",讓人容易理解它的理論、設計,以便豐富它的文件。別以為「簡單」就代表容易,在視訊壓縮界,這可是一項很有野心的企圖,一種編碼要壓縮率高、壓出好品質、壓縮速度快、又要維持簡單,其實是很困難的,如目前最紅的 H.264,就比先前的 MPEG-2、H.263、MPEG-4 Part 2 要複雜。除此之外,Dirac 的開發者也很注重專利問題,據開發者表示,他們沒有請律師團研究,所以無法確知,但他們相當確定 (pretty sure) 他們應該沒有侵犯到別人的專利。就算很不幸真的踩中地雷,他們也會重寫 code 避開,Dirac 有模組化的設計,所以他們認為遇到問題時相對比較容易解決。

Dirac 採用 wavelet compression (即 JPEG 2000 採用的壓縮方式),與大部分舊格式 (H.264、VC-1) 所採用的 discrete cosine transforms 不同。Dirac 並非唯一嚐試採用 wavelet compression 的 codec,其他使用 wavelet compression 的還有 Rududu、Snow、RedCode、與 Tarkin。

Dirac 可以放在容器格式內,如 avi、ogg、mkv 都可以。事實上,只要是依據 ISO base media format (MPEG-4 Part 12, e.g., MP4, 3GP) 的容器格式,或者 MPEG-2 transport stream,應該都可以置入 Dirac,因為 BBC 已向 MP4 Registration AuthoritySMPTE Registration Authority 註冊 Dirac。

Dirac 是視訊編碼的格式,目前實作出 Dirac codec 的軟體,最早的是 BBC 的 reference implementation - dirac-research (原先叫作 "Dirac",沒錯,真的很令人錯亂,後來改名 dirac-research,還是一樣令人錯亂),用 C++ 寫的,2008 年 9 月 17 日以 MPL、GNU GPL、GNU LGPL 釋出 Ver 1.0.0。dirac-research 實作了 intra-frame only subset 的部分,這個 subset 稱為 Dirac Pro,它已經被提到 SMPTE 作為 VC-2 標準的候選者之一。Dirac Pro 在 2008 北京奧運期間,被 BBC 內部用來傳輸 HDTV 圖片。

Dirac 的另一個實作是 Schrödinger,也是由 BBC 所贊助,著重在效能、可攜性,而且仍維持 100% 的 bitstream 相容性。Schrödinger 也提供了 GStreamer plugin。目前 Schrödinger 可以在一台普通的 CoreDuo 筆電上即時解碼 720/25p 的影片。Schrödinger 是用 ANSI C 所寫,授權與 dirac-research 相同,並多加了一個 MIT License。

Schrödinger 與 dirac-research 的差別在於,前者比較快、品質比較低,後者比較慢,但品質比較好。

Dirac 開發大事記

2008 年 1 月 21 日,完成了 Dirac 格式的規格書,之後的開發,只修正錯誤、或限制功能。

2008 年 2 月 22 日,釋出 Schrödinger 1.0.0。

2008 年 9 月 17 日,BBC 釋出 dirac-research 1.0.0 的 reference implementation。

2008 年 9 月 23 日,釋出了包含 motion compensation 與 inter-frame coding 的完整的 Dirac 規格書 2.2.3 版。

進一步資訊請看:

Dirac 官方網站
Dirac_(codec) (Wikipedia 上的說明)

沒有留言:

張貼留言