各種音視訊編解碼學習詳解之 編解碼學習筆記(三):Mpeg系列——Mpeg 1和Mpeg 2
最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651270.html。若讀過@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,就不用向後看啦
MPEG是Moving Picture Experts Group的簡稱。這個名字本來的含義是指一個研究視訊和音訊編碼標準的小組。現在我們所說的MPEG泛指又該小組制定的一系列視訊編碼標準。該小組於 1988年組成,至今已經制定了MPEG-1、MPEG-2、MPEG-3、MPEG-4、MPEG-7等多個標準,MPEG-21正在制定中。
MPEG到目前為止已經制定並正在制定以下和視訊相關的標準:
- MPEG-1: 第一個官方的視訊音訊壓縮標準,隨後在Video CD中被採用,其中的音訊壓縮的第三級(MPEG-1 Layer 3)簡稱MP3, 成為比較流行的音訊壓縮格式。
- MPEG-2: 廣播質量的視訊、音訊和傳輸協議。被用於無線數位電視-ATSC、DVB以及ISDB、數字衛星電視(例如DirecTV)、 數字有線電視訊號,以及DVD視訊光碟技術中。
- MPEG-3: 原本目標是為高解析度電視(HDTV)設計,隨後發現MPEG-2已足夠HDTV應用,故 MPEG-3的研發便中止。
- MPEG- 4:2003 年釋出的視訊壓縮標準,主要是擴充套件MPEG-1、MPEG-2等標準以支援視訊/音訊物件(video/audio "objects")的編碼、3D內容、低位元率編碼(low bitrate encoding)和數位版權管理(Digital Rights Management),其中第10部分由ISO/IEC和ITU-T聯合釋出,稱為H.264/MPEG-4 Part 10。參見H.264。
- MPEG-7:MPEG-7並不是一個視訊壓縮標準,它是一個多媒體內容的描述標準。
- MPEG-21:MPEG-21是一個正在制定中的標準,它的目標是為未來多媒體的應用提供一個完整的平臺。
媒體codec在於MPEG-1,MPEG-2,MPEG-4,如上圖所示。
圖中名稱解釋:在圖中DVD地球人都知道,何為DVB?
DVB:數字視訊廣播(DVB, Digital VideoBroadcasting),是由“DVB Project”維護的一系列為國際所承認的數字電視公開標準。DVB系統傳輸方式有如下幾種:
· 衛星電視(DVB-S 及 DVB-S2)
· 有線電視(DVB-C)
· 無線電視(DVB-T)
· 手持地面無線(DVB-H)
這些標準定義了傳輸系統的物理層與資料鏈路層。裝置通過同步並行介面(synchronous parallel interface, SPI),同步序列介面(synchronous serial interface, SSI),或非同步序列介面(asynchronousserial interface, ASI)與物理層互動。資料以MPEG-2傳輸流的方式傳輸,並要求符合更嚴格的限制(DVB-MPEG)。對移動終端即時壓縮傳輸資料的標準(DVB- H)目前正處於測試之中。
這些傳輸方式的主要區別在於使用的調製方式,因為不同它們應用的頻率頻寬的要求不同。利用高頻載波的DVB-S使用QPSK調製方式,利用低頻載波的DVB-C使用QAM-64 調製方式,而利用VHF 及 UHF載波的DVB-T使用COFDM調製方式。
除音訊與視訊傳輸外,DVB也定義了帶回傳通道(DVB-RC)的資料通訊標準(DVB-DATA)。
DVB的codec,視訊為:MPEG-2,MPEG-4 AVC;音訊為:MP3,AC-3,AAC,HE-AAC。
MPEG-1
MPEG-1作為ISO/IEC11172正式釋出。
MPEG-1較早的視訊編碼,質量比較差,主要用於 CD-ROM 儲存視訊,國內最為大家熟悉的就是 VCD(Video CD),他的視訊編碼就是採用 MPEG-1。它是為CD光碟介質定製的視訊和音訊壓縮格式。一張70分鐘的CD光碟傳輸速率大約在1.4Mbps。而 MPEG-1採用了塊方式的運動補償、離散餘弦變換(DCT)、量化等技術,併為1.2Mbps傳輸速率進行了優化。MPEG-1 隨後被Video CD採用作為核心技術。MPEG-1的輸出質量大約和傳統錄影機VCR,訊號質量相當,這也許是Video CD在發達國家未獲成功的原因。
MPEG-1音訊分三層,就是MPEG-1 Layer I, II, III,其中第三層協議也就是MPEG- 1 Layer 3,簡稱MP3。MP3目前已經成為廣泛流傳的音訊壓縮技術。
MPEG-1有下面幾個部分:
- 第一部分(Part 1):系統;
- 第二部分(Part 2):視訊;
- 第三部分(Part 3):音訊;定義level1,level2,level3,並在MPEG-2中定義了擴充套件。
- 第四部分(Part 4):一次性測試;
- 第五部分(Part 5):參考軟體;
MPEG-1的缺點:
- 1個音訊壓縮系統限於兩個通道(立體聲)
- 沒有為隔行掃描視訊提供標準化支援,且壓縮率差
- 只有一個標準化的“profile” (約束引數位元流), 不適應 更高解析度的視訊。MPEG - 1可以支援4k的視訊,但難以提供更高解析度的視訊編碼並且標識硬體的支援能力。
- 支援只有一個顏色空間,4:2:0。
MPEG-2
MPEG-2內容介紹
MPEG-2作為ISO/IEC 13818正式釋出,通常用來為廣播訊號提供視訊和音訊編碼,包括衛星電視、有線電視等。MPEG-2經過少量修改後,也成為DVD產品的核心技術。
MPEG-2有11部分,具體如下:
第一部(Part 1):系統-描述視訊和音訊的同步和多路技術
正式名稱是 ISO/IEC 13818-1或 ITU-T中的H.222.0
MPEG-2的系統描述部分(第1部分)定義了傳輸流,它用來一套在非可靠介質上傳輸數字視訊訊號和音訊訊號的機制,主要用在廣播電視領域。
定義了兩個不同但相關的容器格式,MPEG transport stream和MPEG program stream,也就是圖中的TS和PS。MPEG傳輸流(TS)為攜帶可損數字視訊和音訊,媒體流的開始和結束可以不標識出來,就像廣播或者磁帶,其中的 例子包括ATSC,DVB,SBTVD 和HDV。MPEG-2系統還定義了MPEG節目流(PS),它為以檔案為基礎的媒體設計一個容器格式,用於 硬碟驅動器,光碟 和快閃記憶體。
MPEG-2 PS(節目流)是為在儲存介質儲存視訊資訊而開發的。 MPEG-2 TS(傳輸流)是為在網路傳輸視訊資訊而開發的。目前,MPEG-2 TS最廣泛地應用是DVB系統。TS流與PS流的區別在於TS流的包結構是固定度的,而PS流的包結構是可變長度。 PS包與TS包在結構上的這種差異,導致了它們對傳輸誤碼具有不同的抵抗能力,因而應用的環境也有所不同。TS碼流由於採用了固定長度的包結構,當傳輸誤 碼破壞了某一TS包的同步資訊時,接收機可在固定的位置檢測它後面包中的同步資訊,從而恢復同步,避免了資訊丟失。而PS包由於長度是變化的,一旦某一 PS包的同步資訊丟失,接收機無法確定下一包的同步位置,就會造 成失步,導致嚴重的資訊丟失。因此,在通道環境較為惡劣,傳輸誤碼較高時,一般採用TS碼流;而在通道環境較好,傳輸誤碼較低時,一般採用PS碼流由於 TS碼流具有較強的抵抗傳輸誤碼的能力,因此目前在傳輸媒體中進行傳輸的MPEG-2碼流基本上都採用了TS碼流的包格。
第二部(Part 2):視訊-視訊壓縮
正式名稱是 ISO/IEC 13818-2或 ITU-T H.262。
提供隔行掃描和非隔行掃描視訊訊號的壓縮編解碼器。
MPEG-2的第二部分即視訊部分和MPEG-1類似,但是它提供對隔行掃描視訊顯示模式的支援(隔行掃描廣泛應用在廣播電視領域)。MPEG-2視訊並沒有對低位速率(小於1Mbps)進行優化,在 3Mbit/s及以上位速率情況下,MPEG-2明顯優於MPEG-1。 MPEG-2向後相容,也即是說,所有符合標準的MPEG-2解碼器也能夠正常播放MPEG-1視訊流。
MPEG-2技術也應用在了HDTV傳輸系統中。MPEG-2 不光運用於 DVD-Video ,現在大部 分 HDTV(高清電視)也採用 MPEG-2 編碼,解析度達到了 1920x1080。由於 MPEG-2 的普及,本來為 HDTV 準備 的 MPEG-3 最終宣告放棄。
MPEG-2視訊通常包含多個GOP(GroupOf Pictures),每一個GOP包含多個幀(frame)。幀的幀類(frame type)通常包括I-幀(I-frame)、P-幀(P-frame)和B-幀(B-frame)。其中I-幀採用幀內編碼,P-幀採用前向估計,B- 幀採用雙向估計。一般來說輸入視訊格式是25(CCIR標準)或者29.97(FCC)幀/秒。
MPEG-2支援隔行掃描和逐行掃描。在逐行掃描模式下,編碼的基本單元是幀。在隔行掃描模式下,基本編碼可以是幀,也可以是場(field)。
原始輸入影象首先被轉換到YCbCr顏色空間。其中Y是亮度,Cb和Cr是兩個色度通道。 Cb指藍色色 度,Cr指紅色色度。對於每一通道,首先採用塊分割槽,然後形成“巨集塊”(macroblocks),巨集塊構成了編碼的基本單元。每一個巨集塊再分 區成8x8的小塊。色度通道分割槽成小塊的數目取決於初始引數設定。例如,在常用的4:2:0格式下,每個色度巨集塊只採樣出一個小塊,所以三個通道巨集塊能夠 分割槽成的小塊數目是4+1+1=6個。
對於I-幀,整幅影象直接進入編碼過程。對於P-幀和B-幀,首先做運動補償。通常來說,由於相鄰幀之間的相關 性很強,巨集塊可以在前幀和後幀中對應相近的位置找到相似的區域匹配的比較好,這個偏移量作為運動向量被記錄下來,運動估計重構的區域的誤差被送到編碼器中編碼。
對於每一個8×8小塊,離散餘弦變換把影象從空間域轉換到頻域。得到的變換系數被量化並重新組織排列順序,從而增加長零的可能性。之後做遊程編碼(run-length code)。最後作哈夫曼編碼(Huffman Encoding)。
I幀編碼是為了減少空間域冗餘,P幀和B幀是為了減少時間域冗餘。
GOP是由固定模式的一系列I幀、P幀、B幀組成。常用的結構由15個幀組成,具有以下形式 IBBPBBPBBPBBPBB。GOP中各個幀的比例的選取和頻寬、影象的質量要求有一定關係。例如因為B幀的壓縮時間可能是I幀的三倍,所以對於計算 能力不強的某些實時系統,可能需要減少B幀的比例。
MPEG-2輸出的位元流可以是勻速或者變速的。最大位元率,例如在DVD應用上,可達10.4 Mbit/s。如果要使用固定位元率,量化尺度就需要不斷的調節以產生勻速的位元流。但是,提高量化尺度可能帶來可視的失真效果。比如馬賽克現象。
第三部(Part 3):音訊-音訊壓縮
MPEG-2的第三部分定義了音訊壓縮標準。MPEG-2 BC(Backwards compatible),後向相容MPEG-1音訊。該部分改進了MPEG-1的音訊壓縮,支援兩通道以上的音訊,可高達5.1多聲道。MPEG-2音訊 壓縮部分也保持了向後相容的特點(也稱為MPEG - 2 BC),允許的MPEG - 1音訊解碼器解碼兩個主立體聲元件。還定義音訊MPEG-1 Layer I,II ,III額外的位元率和取樣頻率。
例如mp2,是MPEG-1 Audio level 2,標準有:ISO/IEC 11172-3, ISO/IEC 13818-3。MPEG-1Layer II 定義在 ISO/IEC 11172-3,也就是MPEG-1的第三部分,在 ISO/IEC 13818-3,也就是MPEG-2的第3部分定義擴充套件。
第四部(Part 4):測試規範
描述測試程式。
第五部(Part 5):模擬軟體
描述軟體模擬系統。
第六部(Part 6):DSM-CC(Digital Storage Media Commandand Control)擴充套件
描述DSM-CC(數字儲存媒體命令及控制)擴充套件。
第七部(Part 7):Advanced Audio Coding (AAC)
MPEG-2的第七部分定義了不能向後相容的音訊壓縮(也成為MPEG-2 NBC)。也成為MPEG-2 NBC(not-backwards compatible MPEG-1Audio)。該部分提供了更強的音訊功能。通常我們所說的MPEG-2 AAC指的就是這一部分。AAC即Advanced Audio Coding。 AAC是比以前的MPEG音訊標準的效率,並在某個程度上沒有它的前任MPEG-1 Layer3(MP3)複雜,它沒有複雜的混合濾波器(hybrid filter bank)。它支援從1到48個通道,取樣率從8-96千赫,多渠道,多語種和多節目(multiprogram)能力。AAC也在MPEG-4標準的第 3部分描述。
第八 部(Part 8):
已取消。
第九部(Part 9):實時介面擴充套件
實時介面擴充套件。
第十部(Part 10):DSM-CC一致性擴充套件
DSM-CC一致性擴充套件。
第十一部(Part 11) :IP
智慧財產權管理(IPMP)。XML定義在ISO/IEC23001-3。MPEG-2核心技術大約涉及640個專利,這些專利主要集中在20間公司和一間大學。
MPEG- 2音訊
MPEG- 2提供新的音訊編碼方式。在第3部分和第7部分介紹。
第三部分
MPEG-2 BC (backward compatible with MPEG-1 audio formats),使用一半的取樣速率處理低位速率的音訊,(MPEG-1 Layer 1/2/3 LSF),多通道編碼達到5.1個通道。
第七部分
MPEG-2 NBC (Non-Backward Compatible),提供MPEG-2AAC,且不能向後相容, 多通道編碼達到 48個通道。
MPEG- 2 profile和level
MPEG-2提供廣泛的應用, 對於大部分的應用,即不現實的也過於昂貴,去支援整個標準,通常只支援子集,因此標準定義了profile和level來表示這些子集。profile定 義特性相關,例如壓縮演算法,色度格式等。level定義效能相關,例如最大位元率,最大幀大小等。一個應用程式應當通過profile和level來表示 他的能力。profile和level的組合構成MPEG-2視訊編碼標準在某種特定應用下的子集。對某一輸入格式的影象,採用特定集合的壓縮編碼工具,產生規定速率範圍內的編碼碼流 。 例如一臺DVD播放機可以說,它支援最多的主要profile和主要level(通常寫為[email protected])。
MPEG-2主要的profile:
名稱 |
英文 |
中文 |
影象編碼型別 |
色度格式 YCbCr |
長寬比 |
伸縮模式 |
SP |
Simple Profile |
簡單類 |
I幀、P幀 |
4:2:0 |
4:3或16:9 |
|
MP |
Main Profile |
主類 |
I幀、P幀、B幀 |
4:2:0 |
4:3 或16:9 |
|
SNR |
SNR Scalable profile |
信噪比分層類 |
I幀、P幀、B幀 |
4:2:0 |
4:3 或16:9 |
信噪比可伸縮 |
Spatial |
Spatially scalable profile |
空間可分層類 |
I幀、P幀、B幀 |
4:2:0 |
4:3 或16:9 |
信噪比或空間可伸縮 |
442P |
4:2:2 Profile |
I幀、P幀、B幀 |
4:2:2 |
|||
HP |
High profile |
高類 |
I幀、P幀、B幀 |
4:2:0或 4:2:2 |
4:3 或16:9 |
信噪比或空間可伸縮 |
MPEG-2主要的level:
名稱 |
英文 |
幀頻 |
最大長×最大寬 |
每秒最大亮度樣本 (約為高×寬×幀頻率) |
最大位元率 (Mbit/s) |
LL |
Low Level |
23.976, 24, 25, 29.97, 30 |
352×288 |
3,041,280 |
4 |
ML |
Main Level |
23.976, 24, 25, 29.97, 30 |
720×576 |
10,368,000,例外為:HP中4:2:0為14,475,600,4:2:2為11,059,200 |
15 |
H-14 |
High-1440 level |
23.976, 24, 25, 29.97, 30, 50, 59.94, 60 |
1440×1152 |
47,001,600,例外為:HP中4:2:0為62,668,800 |
60 |
HL |
High level |
23.976, 24, 25, 29.97, 30, 50, 59.94, 60 |
1920×1152 |
62,668,800,例外為:HP中4:2:0為83,558,400 |
80 |
組合例子
Profile @ Level |
Resolution (px) |
Framerate max. (Hz) |
Sampling |
Bitrate (Mbit/s) |
Example Application |
176 × 144 |
15 |
4:2:0 |
0.096 |
Wireless handsets |
|
352 × 288 |
15 |
4:2:0 |
0.384 |
PDAs |
|
320 × 240 |
24 |
||||
352 × 288 |
30 |
4:2:0 |
4 |
Set-top boxes (STB) |
|
720 × 480 |
30 |
4:2:0 |
15 (DVD: 9.8) |
DVD, SD-DVB |
|
720 × 576 |
25 |
||||
1440 × 1080 |
30 |
4:2:0 |
60 (HDV: 25) |
HDV |
|
1280 × 720 |
30 |
||||
1920 × 1080 |
30 |
4:2:0 |
80 |
ATSC 1080i, 720p60, HD-DVB (HDTV). (Bitrate for terrestrial transmission is limited to 19.39Mbit/s) |
|
1280 × 720 |
60 |
||||
4:2:2 |
|||||
720 × 480 |
30 |
4:2:2 |
50 |
Sony IMX using I-frame only, Broadcast "contribution" video (I&P only) |
|
720 × 576 |
25 |
||||
1440 × 1080 |
30 |
4:2:2 |
80 |
Potential future MPEG-2-based HD products from Sony and Panasonic |
|
1280 × 720 |
60 |
||||
1920 × 1080 |
30 |
4:2:2 |
300 |
Potential future MPEG-2-based HD products from Panasonic |
|
1280 × 720 |
60 |
MPEG- 2在DVD上的應用
DVD中採用了 MPEG-2標準並引入如下技術引數限制:
* 解析度
o 720 x 480, 704 x 480, 352 x 480, 352 x 240 畫素(NTSC制式)
o 720 x 576, 704 x 576, 352 x 576, 352 x 288 畫素(PAL制式)
* 縱橫比
o 4:3
o 16:9
* 幀率(幀播放速度)
o 59.94 場/秒,23.976幀/秒,29.97幀/秒(NTSC)
o 50 場/秒,25幀/秒(PAL)
* 視訊+音訊 位元率
o 平均最大緩衝區 9.8 Mbit/s
o 峰值 15 Mbit/s
o 最小值 300 Kbit/s
* YUV 4:2:0
* 字幕支援
* 內嵌字幕支援(NTSC only)
* 音訊
o LPCM編碼:48kHz或96kHz;16或24-bit;最多可達6聲道
o MPEG Layer 2 (MP2):48 kHz,可達5.1聲道
o 杜比數字-Dolby Digital(DD,也稱為AC-3):48 kHz,32-448kbit/s,可達5.1聲道
o 數字家庭影院系統-Digital Theater Systems (DTS):754 kbit/s或1510 kbit/s
o NTSC制式DVD必須包含至少一道LPCM或Dolby Digital
o PAL制式DVD必須包含至少一道MPEG Layer 2、LPCM或者Dolby Digital
* GOP結構
o 必須為GOP提供序列的頭資訊
o GOP最大可含幀數目:18 (NTSC) / 15 (PAL)
MPEG- 2在DVB上的應用
DVB-MPEG相關技術引數:
* 必須符合以下一種解析度:
o 720 × 480 畫素,24/1.001,24,30/1.001或30幀/秒
o 640 × 480 畫素,24/1.001,24,30/1.001或30幀/秒
o 544 × 480 畫素,24/1.001,24,30/1.001或30幀/秒
o 480 × 480 畫素,24/1.001,24,30/1.001或30幀/秒
o 352 × 480 畫素,24/1.001,24,30/1.001或30幀/秒
o 352 × 240 畫素,24/1.001,24,30/1.001或30幀/秒
o 720 × 576 畫素,25幀/秒
o 544 × 576 畫素,25幀/秒
o 480 × 576 畫素,25幀/秒
o 352 × 576 畫素,25幀/秒
o 352 × 288 畫素,25幀/秒
MPEG- 2和NTSC
必須符合以下一種解析度:
o 1920 × 1080 畫素,最多60幀/秒(1080i)
o 1280 × 720 畫素,最多60幀/秒(720p)
o 720 × 576 畫素,最多50幀/秒,25幀/秒(576i,576p)
o 720 × 480 畫素,最多60幀/秒,30幀/秒(480i,480p)
o 640 × 480 畫素,最多60幀/秒
注:1080i按 1920×1088畫素編碼,但是最後8行在顯示時拋棄。
對YCbCr的補充資料
YCbCr不是一種絕對色彩空間,是YUV壓縮和偏移的版本。右圖為UV色版。
Y(Luma,Luminance)視訊,也就是灰階值。UV 視作表示彩度的 C(Chrominance或Chroma)。主要的取樣(subsample)格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和 YCbCr 4:4:4。YUV的表示法稱為 A:B:C 表示法:
* 4:4:4 表示完全取樣。
* 4:2:2 表示 2:1 的水平取樣,沒有垂直下采樣。
* 4:2:0 表示 2:1 的水平取樣,2:1 的垂直下采樣。
* 4:1:1 表示 4:1 的水平取樣,沒有垂直下采樣。
最常用Y:UV記錄的比重通常 1:1 或2:1,DVD-Video 是以 YUV 4:2:0 的方式記錄,也就是我們俗稱的I420,YUV4:2:0 並不是說只有U(即 Cb), V(即 Cr)一定為 0,而是指U:V互相援引,時見時隱,也就是說對於每一個行,只有一個U或者V份量,如果一行是4:2:0的話,下一行就是4:0:2,再下一行是 4:2:0...以此類推。
以上來自wiki資料的整理。