基本信息
XviD是目前世界上最常用的視頻編碼解碼器(codec),而且是第一個真正開放原始碼的,通過GPL協 議發布。在很多次的codec比較中,XviD的表現令人驚奇的好,總體來說是目前最優秀、最全能的codec之一。
重要性
近五年來,XviD一直是世界上最流行的視頻編碼器。估計在BT(BitTorrent)和eMule上至少90%的電影、電視劇是用XviD壓制的。但是在中國的情況有些特殊,因為中國的影視發布者喜歡用real9.0編碼的RMVB。
擴展名
XviD的檔案擴展名可以是AVI、MKV、MP4等。需要說明的是,僅從擴展名並不能看出這個視頻的編碼格式。比如說一部電影是.avi格式,但是實際上的視頻編碼格式可以是DV Code,也可以是XviD或者其他的;音頻編碼格式可以是PCM、AC3或者MP3。
MP4和MKV格式比AVI更先進,支持更多的功能,比如字幕。AVI視頻的字幕需要另外的SRT檔案。目前國外絕大多數的影視資源都是AVI格式。
檔案大小
網上的視頻資源大都採用固定碼率(CBR),所以檔案大小很穩定,並不會因為資源發布者的不同而改變。
1. 一集43分鐘的劇集,檔案大小為350MB左右。按照每季22集計算,一季美劇需要7.5 GB的硬碟空間。
2. 一集22分鐘的劇集,檔案大小為175MB左右。
3. 電影檔案的大小由電影的長度決定。
影視資源
國外電視劇製作組發布的歐美電視劇,其檔案名稱的具體含義
劇名.S季數E集數.集名(有的沒有標).信號採集源.音頻編碼(默認的MP3可以不標).視頻編碼-製作組
例如:
Prison.Break.S02E01.Manhunt.HR.HDTV.AC3.5.1.XviD-DiMENSION
劇名 - Prison Break
S季數 - S02
E集數 - E01
集名 - Manhunt
信號採集源 - HDTV
音頻編碼 - AC3.5.1
視頻編碼 - XviD
製作組 - DiMENSION
誕生歷程
在1998年以前,PC 上唯一能用的 MPEG-4 編碼器是由微軟所開發的,包括 MS MPEG4 V1、MS MPEG4 V2、MS MPEG4 V3 的系列編碼核心。其中前面兩種都可以用來製作 AVI 檔案,至今都作為 Windows 的默認組件。不過 V1 和 V2 的編碼質量都還不太好,直到 MS MPEG4 V3 開始,畫面質量有了顯著的進步。不過微軟卻決定將這個 MS MPEG4 V3 的視頻編碼核心封閉在 Windows Media 流媒體技術——也就是我們熟知的 ASF 格式之中,不再能用於 AVI 格式。ASF 格式當然有一些好處,但是過於封閉甚至不能被編輯,惹惱了天不怕地不怕的電影駭客。很快便有小組修改了微軟的 MS MPEG4 V3,解除了不能用於 AVI 格式的限制,並開放了其中一些壓縮參數,由此,也就誕生了我們今天所熟悉的 MPEG4 編碼器 DivX;-)3.11。
DivX廣泛流行,成為 DVDRip 的標準,問題是,它的基礎技術是非法盜用微軟的,只能在地下里流傳卻上不了台面,無法進行更廣泛的產品化,更無法生產硬體播放機。在這種情況下,一些精通視頻編碼的工程師 (包括原 DivX 3.11 的開發者) 成立了一家名為 DivX Networks Inc. 的公司,簡稱 DXN。DXN 發起一個開放原始碼項目 Project Mayo,目標是開發一套全新的、開放原始碼的 MPEG4 編碼軟體。特別是完全符合 ISO MPEG4 標準的 Open DivX CODEC 吸引了許多軟體高手參與,並很快開發出Open DivX 編碼器和解碼器原型,之後又開發出更高性能的編碼器 Encore 2 等等。這一時期,主要編碼工作是 DXN 的人在做,而許多技術難關的解決得力於來自開放原始碼社會的幫助。
就在一切都看]起來進展順利的時候,好戲上演了。Project Mayo 當然是開放原始碼,但不是依據 GPL (通用公共許可證,一種開放原始碼項目中常用的保障自由使用和自由修改軟體權利的協定)而是LGPL協定(LGPL協定:次級GPL(Lesser GPL),與GPL一樣,是一種公共許可證。與GPL的最大不同是它允許私有。)。DXN 在設計授權協定時留了一手,2001 年 7 月,就在 Encore 2 基本成型,差不多可以產品化的時候,DXN 另搞了一個 DIVX 網站,封閉了原始代碼,發布了他們自己的 DivX 4。DivX 4 的基礎就是 Open DivX中的 Encore 2,但利用了 DivX 的牌號,出乎意料的擺了所有人預料。由於DXN 不再參與,Project Mayo 陷於停頓,Encore 2 的原始代碼也被 DXN 從伺服器上撤下。經過激烈的爭論,DXN 當然承認 Encore 2 在法律上是開放的,但仍然拒絕把它放回伺服器。開源社區就這樣被狠狠地涮了一回。
Open DivX 尚不能實際使用,而 DivX 4 (以及後續的收費版本DivX 5) 等成了私有財產,許多人為打破微軟壟斷而無償付出的智慧型和勞動僅僅是幫助了 DXN 公司發財。這種結果當然是不能被接受的,因此,整個 0dayz 組織永遠的拒絕了 DXN 公司的 DivX4/5,而原 Open DivX 開發組中的倖存者,逐漸重新聚攏開發力量,在最後一個 Open DivX 版本的基礎上,發展出了 XviD。
劫後餘生的 XviD 到現在又度過了近 1 年時間,它繼承並發展了 Open DivX Encore 2,性能得到極大提高,被認為目前世界上速度最快的 MPEG4 CODEC。XviD重寫了所有代碼,並吸取前車之鑑依照 GPL 發布 (注意不再是 LGPL,所以誰要是想用它做成產品而不開放原始碼是非法的)。不過,因為 MPEG4 還存在專利權的問題,所以 XviD 只能仿照 LAME 的做法,僅僅作為對如何實現 ISO MPEG-4 標準的一種研究交流,網站上只提供原始碼,如果要使用就要自己編譯原始碼或者到第三方網站下載編譯好的可運行版本。
想當初Gaj 之流的幾個傢伙搞 Open DivX 的時候,一開始是很像一個像模像樣的開放原始碼項目,很多人都被吸引過去一起開發,測試。直到後來,那幾個傢伙一夜之間露出騙子的本來面目了,把 Open DivX 的成果一股腦帶走,變成了封閉原始碼的 DivX4,而後進一步變成現在的收費的 DivX 5 了。本來很好的 Open DivX 被逼流產,不過也就促成了今天 XviD 的誕生、發展和壯大。現在的 XviD 更可以說超越了 DivX 5,以更好的質量,更強的功能挑戰著新一代的 MPEG4 套用戰場。
歷史
1.0 2002年2月17日 第一版 ,首次發布
1.0 2002年2月28日 大量的修正和更準確地解釋
1.1 2002年3月2日 分析澄清了很多概念
1.2 2002年3月4日 加入量化矩陣(quantization matrix),移去量(removed quant). 柔和(smoothing) 技術
1.3 2002年3月8日 關於 Nic's XviD Directshow Filter 的詳釋
1.3+ 2002年7月23日 按照Nic's XVID Codec校正補充部分內容
技術特性
DivX 跟 XviD 採用不定時設立關鍵畫面來改善原先固定時間關鍵畫面所造成的動態畫面畫質不佳的情形,而 2 PASS 的壓縮模式使畫質更加滑順,基本上兩種編碼的效果差別不大,不過就同畫質的檔案大小來說 XviD 更省容量,一部1.5小時的電影,DivX 編碼的大多為兩片 CD,而 XviD 編碼的大多僅需一片 CD 容量即可!
DivX 的版本從 2,3,4 一直跳到 5,本來是非盈利提供網友使用,後來自 DivX 後開始當成商業軟體,其中有一部份就離開再行開發出非盈利的解碼程式,那就是XViD。(大概這也就是為何要把 DivX 倒過來寫的原因!)
不僅 XviD 的出現本身就是開放原始碼社會中典型的一部教科書,它在技術上的各種新特性也都是貨真價實、童叟無欺的。對於一個第二代的 MPEG4 視頻編碼核心來說,XviD 的各種算法設計都有代表性的先進意義。
多種編碼模式
除了最原始單重估定碼流壓縮 (1-pass CBR) 之外,XviD 提供了包括 : 單重質量模式動態碼流壓縮、單重量化 (Quantization) 模式動態碼流壓縮、和包括外部控制和內部控制的兩種雙重 (2-pass) 動態碼流壓縮模式。XviD 顯然是目前 PC 上的MPEG4 編碼核心中,可選模式最多的視頻編碼。
其中特別是雙重 (2-pass) 動態碼流壓縮模式,通過檢測畫面運動幅度以最最佳化的方式曲線分配畫面量化幅度,使充滿活性元素的視頻影片可以在占用空間和畫面質量之間獲得最佳的平衡。而單重量化Quantization) 模式動態碼流壓縮,可以高速地一次性生成可控畫面細節的動態碼流視頻檔案,在較少的壓縮時間代價之下,可以獲得較穩定的畫面細節質量,這都是單純的 DivX 3.11 所不具有的優秀功能。
量化 方式和範圍控制
量化 (Quantization),簡單的說就是在編碼時通過對時間或空間上相鄰的畫面單元進行同化、模糊細節的程度,是對畫面質量最基本的控制因素。XviD 不僅提供了標準的 MPEG 量化方式,還特地提供了更適合低碼流壓縮的 .h263 量化方式。並且XviD 還可以在雙重 (2-pass) 運算時,根據對畫面信息的綜合分析,動態的決定某段場景的畫面量化方式,真可以說是為網路媒體檔案傳播中,空間與畫質的平衡而考慮,設計貼心得到家了。
除了量化方式選擇,XviD 還提供了強大的對壓縮過程中的量化幅度的範圍控制。用戶可以選定壓縮時允許使用的量化幅度範圍。例如設定一個量化的上限,就可以避免可能出線的畫質大幅下降的情況。
運動偵測和曲線平衡
對畫面逐幀進行運動偵測,以及對全片段的運動偵測結果進行分析後,重新以曲線平衡分配每一幀的量化幅度,以做到 : 需要高碼流的運動畫面可以分配更多空間、更高的碼流、更低的量化幅度來保持畫面的細節; 而對於不包含太多運動信息的靜態畫面,則消減分配預算。這種把好鋼用在刀刃上的做法,是 XviD 做為第二代MPEG4 編碼的核心內容。
XviD提供了多極運動偵測精度,包括半像素插值 (half pixel interpolation) 的技術以 16x16 像素的微區塊為單元標示上運動向量; 以及 4 分運動向量 (inter4v motion vectors) 的方式,以 8x8 的像素區塊為單元更細緻的紀錄運動向量以供二重分析。
動態關鍵幀距
動態關鍵幀距是另一個 XviD 所具有的,在空間和畫面之間獲得最大平衡的技術。我們知道在視頻壓縮中不是每一幀都記錄著全部的畫面信息,事實上只有關鍵幀記錄著完整的畫面信息,而後續的 P 幀 (P-Frame) 僅僅是紀錄下與之前一幀的差值。如果關鍵幀之間的畫面變化很大,則會浪費寶貴的空間在 P-Frame 上; 而加入把變化很大的那一幀記錄在關鍵幀里,那么由於後續的幀不再有更大的變化,就可以節省P 幀所需的空間。因此,根據畫面鏡頭切換和運動幅度來變換關鍵幀的位置,對於視頻壓縮下的畫面質量提高,就有著事半功倍的效果。
心理視覺亮度修正
除了基本的 MPEG4 編碼外,XviD 還提供了不少附加功能。其中典型的就是心理視覺亮度修正。這個功能可能通過去除肉眼不能分辨的亮度信號和亮度差異,來提高壓縮效率。遺憾的儘管這個設計非常的有創意,但是目前的實際套用中卻會導致肉眼可見的畫面質量下降,還期待在日後的版本中可以有所改進。
演職員表選項
另外一個貼心的設計是電影專用的"演職員表選項"。這個功能可以在用戶指定的某些不必要保留細節的段落處 (例如電影的演職員表),設定下極低的碼流。甚至壓縮到正片碼流的10%以下,可以節省不少空間,設計的也非常的貼心。
外部自定義控制
除了 XivD 自己的內部曲線分配控制方式外,XviD 也提供了外部的開放接口。允許使用者略過 XviD 本身的編碼分析核心,利用第三方提供的外部分析工具,例如Gordian Knot,生成的分配好的控制檔案,再交還 XviD 做最終的二重運算壓縮。這種方式擴展了 XviD 的可用性和用戶控制程度,因為像 Gordian Knot 這種軟體甚至可以做到由用戶控制每一幀的量化幅度和碼流分配額度,可以為高級套用提供更多的可能性。
運動向量加速編碼
XviD 還有專為提高編碼效率而開發的設計,就是紀錄下畫面的運動向量信息至一個 Log 檔案中。再在二重運算壓縮時通過直接讀取該檔案中的信息,節省下對運動向量信息的重複運算,大幅提高編碼速度。
畫面最佳化解碼
不僅在編碼上 XivD 擁有強大的功能,在解碼時的畫面最佳化方面,XviD 也有很多新的建樹。例如 "Horizontal deblock (Y)" 可以柔化水平方向的亮度馬賽克; "Horizontal deblock (C)" 可以柔化水平相的色度馬賽克; "Deringing(Y)" 可以柔化環狀亮度色斑; "Deinging (C)" 可以柔化環狀色度色斑; "mosquito" 可以減少畫面中的蚊狀噪斑。並且,這些 XviD 的畫面最佳化手段都是可選的,因此只要關閉幾個不是那么必要的選項,就可以在低配置的PC機上播放。
正在開發的 B 幀
另一個 XviD 中引人注目的技術發展,就是 B 幀。我們知道 I 幀就是關鍵幀,P 幀在關鍵幀之間,只儲存與之前一幅已解壓畫面的差值。B 幀與 P 幀的原理一樣,但除了三者之前解壓了的畫面外,亦會參考後面一幀中的畫面信息。因此 B 幀解壓出來的畫面比P幀就要來的好。
之前的 MPEG4 編碼核心都僅僅使用了 I 幀和 P 幀存儲畫面。如果能在此基礎上使用 B 幀技術,自然可以在畫質和壓縮比上更上一層樓。目前 XviD 已經為開發人員提供了測試性質 B 幀體驗版的 XviD 編碼核心,相信不久的將來,XviD 就可以把 MPEG4 編碼的優勢發揮到極致,成為網上視頻記錄格式的盟主。
關於DivX起源的小知識
這種名為DivX 的技術,由一個27歲的法籍影音發燒友羅達(Rota)及電腦黑客基爾(Gej)創造出來得。
原來DivX所采的技術並非這兩位仁兄發明的,他們只不過是個盜版天才。隨著Windows的大行其道,微軟開發了MPEG-4技術,能夠將視頻影像檔案容量壓縮到很小。羅達與基爾將程式重寫一遍,但將其改名為DivX,且放在網上隨意任人下載。
微軟聲稱將對所有推動DivX發展的人、企業作出追究。可是羅達正全面申請將他們的DivX合法化。由於DivX雖然是從Windows的發明出來的,但卻沒有用過任何微軟的技術。而且,他更與美國一些技術人士及財經人員開會,和組新公司 ProjectMayo全力推廣DivX。
其實,DivX是視頻DVD的另一種保存方式,要靠DeCSS程式(注)才能做到。因為DVD本身有防複製的標記,讓DVD不能隨便複製到電腦里,但DeCSS能將它解碼,令其可以複製,壓縮成DivX電影。針對這一做法,各大電影商立即採取行動,防止DeCSS外流及散播,但為時已晚,DeCSS在Yahoo!、Google上都能找到。
如何播放
對於大多數用戶來說,只要安裝暴風影音或者K-Lite Codec Pack就可以順利地播放XviD視頻了。其實這些播放軟體大都是用ffdshow來解碼的,所以在播放視頻的時候,Windows系統列會出現ffdshow的圖示。