1. 程式人生 > >各種音視訊編解碼學習詳解之 編解碼學習筆記(七):微軟Windows Media系列

各種音視訊編解碼學習詳解之 編解碼學習筆記(七):微軟Windows Media系列

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651270.html。若讀過@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,就不用向後看啦

資料來源於wiki與 http://chaoqunz.blog.163.com/blog/static/6154877720084493941186/

Microsoft 公司主導的音訊視訊編碼系列,它的出現主要是為了進行網路視訊傳輸,現在已經向HDTV 方面進軍,開發了 WMV HD 應用。WMV(Windows Media Video)是微軟公司開發的一組數字視訊編 解碼格式的通稱,它是Windows Media架構下的一部分。它最初是為低速率流媒體應用作為專有編解碼開發出來的,但是2003年微軟公司基於Windows Media Video第9版編解碼起草了視訊編解碼規範並且提交給SMPTE申請作為標準。這個標準在2006年3月作為SMPTE 421M被正式批准,這樣Windows Media Video 9編解碼就不再是一個專有的技術。早期的變解碼版本(7和8)仍然被認為是專有技術,因為它們不在SMPTE 421M標準的涵蓋範圍內。

微軟媒體系列分為WMV(Windows Media Video)和WMA(Windows Media Audio),說白了就是微軟的視訊和音訊。

容器

視訊流通常與Windows Media Audio音訊流組合在一起並且使用副檔名為.wmv或者.asf的Advanced Streaming Format的檔案進行封裝。WMV通常使用Advanced StreamingFormat(ASF) 封裝,它也可以使用AVI或者Matroska格 式封裝。如果是AVI封裝的檔案結果檔案可以是.avi,如果是ASF封裝的話則是.wmv或者.asf, 如果是MKV封裝的話則是.mkv。當使用VirtualDub編 碼器編碼和WMV9 VCM編解碼實現的時候WMV可以儲存在AVI檔案中。用於Mac的微軟公司媒體播放器不支援所有的WMV編碼的文 件,因為它只支援ASF檔案 封裝,Flip4Mac和QuickTime或 者用於MacOSX的MPlayer可 以播放更多的檔案。

WMV

副檔名: .wmv 
網際網路媒體型別: video/x-ms-wmv 
統一型別標識: com.microsoft.windows-?media-wmv 
開發者: 微軟公司 
格式: 數字視訊

WMV(Windows Media Video)是微軟公司開發的一組數字視訊編解碼格式的通稱,它是Windows Media架構下的一部分。它最初是為低速率流媒體應用作為專有編解碼開發出來的,但是2003年微軟公司基於Windows Media Video第9版編解碼起草了視訊編解碼規範並且提交給SMPTE申請作為標準。這個標準在2006年3月作為SMPTE 421M被正式批准,這樣Windows Media Video 9編解碼就不再是一個專有的技術。早期的變解碼版本(7和8)仍然被認為是專有技術,因為它們不在SMPTE 421M標準的涵蓋範圍內。

WMV不是僅僅基於微軟公司的自有技術開發的。從第七版(WMV1)開始,微軟公司開始使用它自己非標準MPEG- 4 Part 2。但是,由於WMV第九版已經是SMPTE的一個獨立標準(421M,也稱為VC- 1),有理由相信WMV的發展已經不像之前那樣是一個它自己專有的編解碼技術。現在VC-1專利共享的企業有16家(2006年4月),微軟公司也是 MPEG-4 AVC/H.264專利共享企業中的一家。

正式名稱

FourCC

Codec版本

描述

Windows Media Video v7

WMV1

0

 

Microsoft MPEG-4 Video Codec v3

MP43

1

 

Windows Media Video v8

WMV2

2

 

Microsoft MPEG-4 Video Codec v2

MP42

3

 

Microsoft ISO MPEG-4 Video Codec v1

MP4S

4

 

Windows Media Video v9

WMV3

5

 

Windows Media Video v9 Advanced Profile

WMVA

6

deprecated as not VC-1 不完全相容。

Windows Media Video v9 Advanced Profile

WVC1

7

VC-1完整支援

FourCC全稱Four-Character Codes,是由4個字元(4 bytes)組成,是一種獨立標示視訊資料流格式的四位元組,在wav、avi檔案之中會有一段FourCC來描述這個AVI檔案,是利用何種codec來 編碼的。因此wav、avi大量存在等於“IDP3”的FourCC。

Microsoft MPEG-4 v1/v2/v3

常見的有1.0、2.0、3.0三種版本,是基於MPEG-4技術的,其中3.0並不能用於AVI的編碼,只能用於生成支援“視訊流”技術的ASF檔案。

Microsoft MPEG-4 version 1 
是微軟基礎的視訊編碼,是非標準的MPEG-4,與MPEG-4 Part2不相容。FourCC:MPG4

Microsoft MPEG-4 version 2 
VFW的基礎編解碼。與V與MPEG-4Part2不相容。VFW(Video for Windows),是微軟推出的關於數字視訊的一個軟體開發包,VFW的核心是AVI檔案標準。AVI(AudioVideo Interleave)檔案中的音、視訊資料幀交錯存放。圍繞AVI檔案,VFW推出了一整套完整的視訊採集、壓縮、解壓縮、回放和編輯的應用程式介面 (API)。由於AVI檔案格式推出較早且在數字視訊技術中有廣泛的應用,所以VFW仍然有很大的實用價值,而且進一步發展的趨勢。在VC++開發環境中 呼叫VFW和使用其它開發包沒有什麼不同,只是需要將VFW32.lib 檔案加入工程中,但在開放視訊捕捉與壓縮管理程式時需要其它軟體硬體設定。VFW為AVI檔案提供了豐富的處理函式和巨集定義,AVI檔案的特點在於它是典 型的資料流檔案,它由視訊流、音訊流、文字流組成。所以對AVI檔案的處理主要是處理檔案流。FourCC:MP42

Microsoft MPEG-4 version 3 
VFW的基礎編解碼。與V與MPEG-4Part2不相容。最終只用於ASF檔案。FourCC:MP43

除此之外: 
Microsoft ISO MPEG-4 version 1 
基於DirectX Media Objects (DMO)-based編解碼,與MPEG-4 SP(Simple Profile)相容 。FourCC:MP4S。

Microsoft ISO MPEG-4 version 1.1 
與MPEG-4 ASP(AdvancedSimple Profile)相容。FourCC:M4S2

目前在Windows平臺上比較實用的MPEG-4視訊編解碼器主要有:由微軟公司開發的Microsoft MPEG-4 Codec v1/v2 /v3,主要是配合微軟公司的流媒體技術使用;在Microsoft MPEG-4 v3的基礎上,由DivXNetworks公司開發的 DivX Codec;在OpenDivX的基礎,遵循GPL開發的開源XviD Codec。
這些codec在windows中以dll方式呈現。

Windows Media Video 7

是DirectXMedia Objects (DMO)-based codec。Microsoft 正式開發的 第一個 Windows Media Video,開始脫離了MPEG-4,和MPEG-4 不相容,從這一點上可見微軟的野心(微軟公司開始使用它自己非標準MPEG-4Part 2)。可惜這個版本壓縮效果非常爛,打破了微軟一飛沖天的美夢,不過它在壓縮速度上非常快,現在網路上有很多采用這種格式壓縮的 WMV。FourCC:WMV1

Windows Media Video 8

在WMV7 基 礎上改進的版本,質量上面進不了不少。是DMO-based codec。FourCC:WMV2.

Windows Media Video 9

微軟的重頭戲,不光是這一個編碼,V9 系列更是一個平臺,讓微軟有足夠的能力挑戰 MPEG,ITU 等標準化組織。雖然這個版本並沒有微軟吹得那麼厲害,特別 是低位元速率下比較差,不過跟以前版本相比進步還是非常多的。特別是 WMV HD 的應用,讓微軟也躋身視訊標準領域。
DMO-based codec. Video for Windows (VfW/VCM) version also available. FourCC:WMV3

Windows Media Video 9 Advanced Profile

在WMV4的Simple和Main profile levels與VC-1標準中的是相同的。VC-1中的AdvancedProfile採用一個新的WMV編解碼,稱為WindowsMedia Video 9 Advanced Profile。它提高隔行掃描的內容壓縮,並與傳輸無關,使得他可以封裝在MPEG的傳輸流(TS)中或者採用RTP傳輸。它與之前的WMV9的 codec是不相容的。

隨著 Windows Media Player 10 推出的編碼器,能夠更進一步控制WMV9 的質量。但是不能在老版本的 WMP9 上播放,也就是不相容老版本的 WMP9,真不知微軟在搞什麼?

FourCC:WVC1,VC-1相容。FourCC:WMVA,不推薦使用非VC-1相容方式。我們可以認為WMV9與VC-1相容。

Windows Media Video 9 Screen

靜態螢幕無失真壓縮編碼,質量非常好,壓縮率高,只針對如螢幕等變化非常小的環境。WMV Screen是一個screencast編解碼器,它可以捕抓動態的螢幕內容,將第三方抓屏程式轉換到WMV9 Screen檔案中。用於之一是計算機的step-by*step演示視訊,第一版本是WMV7 Screen,第二個版本也就是當前的版本是WMV9 Screen,支援CBR和VBR。

Windows Media Video 9 Image

靜態影象壓縮編碼。WMV Image是一個視訊幻燈片的編碼器,播放多個畫面時可根據時間進行平移和過度效果展現。與WMV9相比,具有高壓縮率和高態影象質量。由於編解碼依賴解 碼器(播放器)生成實施視訊幀,播放WMV Image檔案(即使在普通的1024×768,30fps)要求很高的處理能力。在最新的版本,WMV9.1 Image,使用Photo Story3提高轉換效果,耽於原來的WMV9 Image不相容。

視訊質量

微軟宣稱WMV9提供的壓縮率為MPEG-4的2倍,MPEG-2的3倍。微軟還宣稱WMV9的壓縮效率筆WMV8高15%~50%。但是在2005年的一個測試報告中,顯示WMV9的壓縮效率比WMV8要差。

Windows Media Player 10 Mobile

在wiki上,我們注意到“Windows Media Player 10 Mobile”,顯示WMV10將用於移動,可能是Windows Mobile。但是我們沒有查到進一步的資料。

WMA

副檔名 .wma 
網際網路媒體型別 audio/x-ms-wma 
統一型別標識 com.microsoft.windows-?media-wma 
開發者 微軟 
格式 數字音訊

WMA(Windows Media Audio)是微軟公司開發的一種數字音訊壓縮格式。一些使用Windows Media Audio編碼格式編碼其所有內容的純音訊ASF檔案也使用WMA作為副檔名。WMA格式為微軟公司私有,但是隨著蘋果公司的iTunes對它的支援,這 個格式正在成為MP3格式的競爭對手。它相容MP3的ID3元資料標籤,同時支援額外的標籤。

WMA可以用於多種格式的編碼檔案中。應用程式可以使用Windows MediaFormat SDK進行WMA格式的編碼和解碼。一些常見的支援WMA的應用程式包括Windows Media Player、Windows Media Encoder、RealPlayer、Winamp等等。其它一些平臺,例如Linux和移動裝置中的軟硬體也支援此格式。

WMA 7之後的WMA支援證書加密,未經許可(即未獲得許可證書),即使是非法拷貝到本地,也是無法收聽的。同時,微軟公司開始時宣稱的:同文件比MP3體積小 一倍而音質不變,這也得到了兌現。另外,微軟公司在WMA 9大幅改進了其引擎,實際上幾乎可以在同文件同音質下比MP3體積少1/3左右,因此非常適合用於網路流媒體。

跟MP3相比,WMA在高位的音質渲染力明顯不足,甚至還比MP3更差;與MP3相同,通常的WMA也是有損資料壓縮的檔案格式,對於有更高要求的使用者來說WMA並不是一個適合的格式。但在WMA9版本開始支援無失真壓縮——Windows Media Audio 9 Lossless(在安裝WMP11或Windows Media Format 11之後升級至9.1,無失真壓縮版本最高支援5.1聲道編碼)。此外WMA也與MP3一樣同為有專利版權的檔案格式。支援的裝置需要購買使用版權。

Windows Media Audio v1/v2

微軟最早的音訊編碼技術,用於 ASF 中,後來被破解也用在 DivX Audio 中,質量比較差。

Windows Media Audio 7/8/9

隨著各種不同的 WMV 而推出的相應的音訊編碼,質量節節提升,不過還沒有達到 64kbps CD音質的神化。

Windows Media Audio 9 Professional

WMA9 中 出現的新編碼,主要用於多聲道編碼和高取樣率音訊的編碼,質量不錯。

Windows Media Audio 9 Voice

針對語音的編碼,最高 20kbps ,不過和 AMR 相比,效果就太差了。

Windows Media Audio 9 Lossless

無損音訊編碼,可以完美保留CD原質量,是CD備份的不錯選擇,不過代價是體積過大。

VC-1

VC-1,全名VC-1視訊編解碼器(Video Codec 1),是基於微軟WMV9,並推廣為工業標準。2003年提出標準化申請,最早名字是VC-9。2006年4月正式通過成為標準。VC-1是SMPTE 421M視訊編解碼標準的正式名稱。HD DVD 和藍光光碟(Blu-ray Disc)都支援VC-1。微軟表示Windows Vista將支援VC-1影像壓縮技術的HD DVD規格。電影及電視學會(SMPTE)已採用VC-1為視訊壓縮標準。

VC-1是基於Windows Media Video 9壓縮技術的影像壓縮標準,由三大編解碼元件所組成,每一個編解碼元件都具有其獨自的FourCC編碼。

WMV3 :

即WMV9。VC-1的Simple和Main這兩種Profile就是WMV3應用,使得與WMV 9相容,支援逐行掃描編解碼。隔行掃描的編解碼也提供,但在很快地,在微軟推出WMVAdvanced profile後,不推薦採用。逐行掃描編解碼用於YUV4:2:0,隔行的(不推薦)用於YUV4:1:1。

WMV3用於高質量的視訊和流媒體。同樣的質量,它只是MPEG-2的頻寬的1/2~1/3。在商業上用於高清電影和視訊的WMV HD,編碼為WMV3 Main Profile @ High Level([email protected])。

WMVA :

它是在WMV Advanced Profile被SMPTE吸收為作為VC-1草案之間出現的。它與WVC1之間細微的差役,因此解碼器也不一樣,2006年起,WMVA被認為是個過時的編碼,因為與VC-1不完全相容。

WVC1 :

也就是WMV 9 Advanced Profile,實現了個更新的,完全符合的AdvancedProfile的VC-1編碼標準。它支援隔行掃描內容,與底層傳輸無關。

壓縮技術整合了MPEG及H.264之優點,採用Biliner和Bicubic方式,次畫素(Sub- Pixel)最小可達4分之1畫素。VC-1只有4種動作補償(motion composition),壓縮比無法勝過H.264。VC-1在壓縮時間上,明顯比H.264短了許多,複雜度約只有H.264的50%,對特效電影有 很傑出的效能表現。由於H.264 使用較小尺寸的轉換公式與無法調整的量化矩陣,造成不能完整保留影像的高頻細節資訊。

wiki上有一篇 VC-1和H.264比較 的文章,很值得看一看。我看到這樣的一個段:

VC-1:需付費。Reference decoder 並非免費,不過附贈外部檔案

H.264:免費.Reference encoder 和 decoder 也是免費。此外,核查小組及M4IF郵寄名單可在一個可能會收到回答了AVC的有關問題。

除此之外,我們在Google上search H.264 license中也看到了說free的字樣。但是,果真如此嗎?

版權問題

我一直認為H.264是需要付費的,因此我對上面的表述不確定是否正確。我上網查了一下:也看到“H.264的基本系統無需使用版權 ,具有開放的性質,能很好地適應IP和無線網路的使用,”的字樣。基於這些疑問,我上網查了一下。IP總是個麻煩的問題,最好向Andriod那樣,提供平臺,版權,產品維護都是手機生產廠家的事情。

MPEG LA公司是世界領先的替代技術特許服務提供商,它使使用者能夠通過單筆交易從多個專利持有人那裡購買某項技術標準或平臺所必須的全球專利權,而不必分別洽談各項特許權。只要獨立管理的一站式專利特許權能夠開啟方便之門、幫助使用者推廣某項技術, MPEG LA公司率先採用的特許模式就能提供解決方案。MPEG LA公司的特許權之一就是MPEG-2數字視訊壓縮,這一技術幫助產生了消費電子歷史上應用最為廣泛的標準。包括57個國家逾870個MPEG-2基本專利的MPEG-2專利組合特許權擁有至少1500家被許可人,覆蓋目前全球市場上的大多數MPEG-2產品,包括機頂盒、DVD播放器、數字電視機、個人 電腦和DVD視訊光碟。作為獨立特許經營管理人,MPEG LA公司不與任何標準管理機構相關聯,也不是任何專利權持有人的關聯人。欲瞭解更多資訊,請登入http://www.mpegla.com。 (http://www.dvbcn.com/2010-01/28-44547.html

我去MEPG-LA網上查閱,發現有AVC/H.264,也就是說這個是需要付費的。在資料中有下面的一張PPT。:

我不是很看得的懂,比如一個H.264的片子,是提供下載片子的內容供應商付錢,還是提供解碼器的終端裝置商需要付費?又例如使用H.264進行視訊電話,小於12分鐘不收費,大於12分鐘收費?混亂啊。因此智慧財產權這攤事,還是留個專業的法律人士來負責。