音視訊格式區分
1. 視訊播放器原理
視訊播放器播放一個網際網路上的視訊檔案,需要經過以下幾個步驟:解協議,解封裝,解碼視音訊,視音訊同步。如果播放本地檔案則不需要解協議,為以下幾個步驟:解封裝,解碼視音訊,視音訊同步。他們的過程如圖所示。
解協議的作用,就是將流媒體協議的資料,解析為標準的相應的封裝格式資料。視音訊在網路上傳播的時候,常常採用各種流媒體協議,例如HTTP,RTMP,或是MMS等等。這些協議在傳輸視音訊資料的同時,也會傳輸一些信令資料。這些信令資料包括對播放的控制(播放,暫停,停止),或者對網路狀態的描述等。解協議的過程中會去除掉信令資料而只保留視音訊資料。例如,採用RTMP協議傳輸的資料,經過解協議操作後,輸出FLV格式的資料。
解封裝的作用,就是將輸入的封裝格式的資料,分離成為音訊流壓縮編碼資料和視訊流壓縮編碼資料。封裝格式種類很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是將已經壓縮編碼的視訊資料和音訊資料按照一定的格式放到一起。例如,FLV格式的資料,經過解封裝操作後,輸出H.264編碼的視訊碼流和AAC編碼的音訊碼流。
解碼的作用,就是將視訊/音訊壓縮編碼資料,解碼成為非壓縮的視訊/音訊原始資料。音訊的壓縮編碼標準包含AAC,MP3,AC-3等等,視訊的壓縮編碼標準則包含H.264,MPEG2,VC-1等等。解碼是整個系統中最重要也是最複雜的一個環節。通過解碼,壓縮編碼的視訊資料輸出成為非壓縮的顏色資料,例如YUV420P,RGB等等;壓縮編碼的音訊資料輸出成為非壓縮的音訊抽樣資料,例如PCM資料。
視音訊同步的作用,就是根據解封裝模組處理過程中獲取到的引數資訊,同步解碼出來的視訊和音訊資料,並將視訊音訊資料送至系統的顯示卡和音效卡播放出來。
2. 流媒體協議
流媒體協議是伺服器與客戶端之間通訊遵循的規定。當前網路上主要的流媒體協議如表所示。
主要流媒體協議一覽
名稱 |
推出機構 |
傳輸層協議 |
客戶端 |
目前使用領域 |
RTSP+RTP |
IETF |
TCP+UDP |
VLC, WMP |
IPTV |
RTMP |
Adobe Inc. |
TCP |
Flash |
網際網路直播 |
RTMFP |
Adobe Inc. |
UDP |
Flash |
網際網路直播 |
MMS |
Microsoft Inc. |
TCP/UDP |
WMP |
網際網路直播+點播 |
HTTP |
WWW+IETF |
TCP |
Flash |
網際網路點播 |
RTSP+RTP經常用於IPTV領域。因為其採用UDP傳輸視音訊,支援組播,效率較高。但其缺點是網路不好的情況下可能會丟包,影響視訊觀看質量。因而圍繞IPTV的視訊質量的研究還是挺多的。因為網際網路網路環境的不穩定性,RTSP+RTP較少用於網際網路視音訊傳輸。網際網路視訊服務通常採用TCP作為其流媒體的傳輸層協議,因而像RTMP,MMS,HTTP這類的協議廣泛用於網際網路視音訊服務之中。這類協議不會發生丟包,因而保證了視訊的質量,但是傳輸的效率會相對低一些。
3. 封裝格式
封裝格式的主要作用是把視訊碼流和音訊碼流按照一定的格式儲存在一個檔案中。現如今流行的封裝格式如下表所示:
主要封裝格式一覽
名稱 |
推出機構 |
流媒體 |
支援的視訊編碼 |
支援的音訊編碼 |
目前使用領域 |
AVI |
Microsoft Inc. |
不支援 |
幾乎所有格式 |
幾乎所有格式 |
BT下載影視 |
MP4 |
MPEG |
支援 |
MPEG-2, MPEG-4, H.264, H.263等 |
AAC, MPEG-1 Layers I, II, III, AC-3等 |
網際網路視訊網站 |
TS |
MPEG |
支援 |
MPEG-1, MPEG-2, MPEG-4, H.264 |
MPEG-1 Layers I, II, III, AAC, |
IPTV,數字電視 |
FLV |
Adobe Inc. |
支援 |
Sorenson, VP6, H.264 |
MP3, ADPCM, Linear PCM, AAC等 |
網際網路視訊網站 |
MKV |
CoreCodec Inc. |
支援 |
幾乎所有格式 |
幾乎所有格式 |
網際網路視訊網站 |
RMVB |
Real Networks Inc. |
支援 |
RealVideo 8, 9, 10 |
AAC, Cook Codec, RealAudio Lossless |
BT下載影視 |
由表可見,除了AVI之外,其他封裝格式都支援流媒體,即可以“邊下邊播”。有些格式更“萬能”一些,支援的視音訊編碼標準多一些,比如MKV。而有些格式則支援的相對比較少,比如說RMVB。
4. 視訊編碼
視訊編碼的主要作用是將視訊畫素資料(RGB,YUV等)壓縮成為視訊碼流,從而降低視訊的資料量。如果視訊不經過壓縮編碼的話,體積通常是非常大的,一部電影可能就要上百G的空間。視訊編碼是視音訊技術中最重要的技術之一。視訊碼流的資料量佔了視音訊總資料量的絕大部分。高效率的視訊編碼在同等的位元速率下,可以獲得更高的視訊質量。
主要視訊編碼一覽
名稱 |
推出機構 |
推出時間 |
目前使用領域 |
HEVC(H.265) |
MPEG/ITU-T |
2013 |
研發中 |
H.264 |
MPEG/ITU-T |
2003 |
各個領域 |
MPEG4 |
MPEG |
2001 |
不溫不火 |
MPEG2 |
MPEG |
1994 |
數字電視 |
VP9 |
|
2013 |
研發中 |
VP8 |
|
2008 |
不普及 |
VC-1 |
Microsoft Inc. |
2006 |
微軟平臺 |
由表可見,有兩種視訊編碼方案是最新推出的:VP9和HEVC。目前這兩種方案都處於研發階段,還沒有到達實用的程度。當前使用最多的視訊編碼方案就是H.264。
在位元速率一定的情況下,結果大致是這樣的:
HEVC > VP9 > H.264> VP8 > MPEG4 > H.263 > MPEG2。
5. 音訊編碼
音訊編碼的主要作用是將音訊取樣資料(PCM等)壓縮成為音訊碼流,從而降低音訊的資料量。音訊編碼也是網際網路視音訊技術中一個重要的技術。但是一般情況下音訊的資料量要遠小於視訊的資料量,因而即使使用稍微落後的音訊編碼標準,而導致音訊資料量有所增加,也不會對視音訊的總資料量產生太大的影響。高效率的音訊編碼在同等的位元速率下,可以獲得更高的音質。
主要音訊編碼一覽
名稱 |
推出機構 |
推出時間 |
目前使用領域 |
AAC |
MPEG |
1997 |
各個領域(新) |
AC-3 |
Dolby Inc. |
1992 |
電影 |
MP3 |
MPEG |
1993 |
各個領域(舊) |
WMA |
Microsoft Inc. |
1999 |
微軟平臺 |
由表可見,近年來並未推出全新的音訊編碼方案,可見音訊編碼技術已經基本可以滿足人們的需要。音訊編碼技術近期絕大部分的改動都是在MP3的繼任者——AAC的基礎上完成的。
結果大致是這樣的:
AAC+ > MP3PRO > AAC> RealAudio > WMA > MP3