元宵節將近,意味著「年」就要過完了。趁春晚的餘溫未過,我們再來回味下支撐這場「文化年夜飯」現場直播的技術:超高畫質淺壓縮。
這技術一看就是處理視訊的,那麼它到底有何神奇之處呢?
「超高畫質」好理解,無非就是說視訊畫面的清晰度高,解析度達到4K乃至8K。
那這裡的「淺壓縮」又是什麼意思呢?我們先從視訊的一些基礎概念說起。
視訊的一些基本概念
視訊在本質上將一幅一幅獨立的畫面快速地連續播放,利用眼睛的視覺暫留效應讓人產生「動」的感覺。
視訊中每一幅畫面稱作一「幀(frame)」,每秒鐘播放的畫面數量被稱作「幀率」,單位為FPS,即Frame Per Second。一般來說,如果眼睛所看到的畫面幀率高於每秒約10至12張的時候,就會認為是連貫的。
為得到更為細膩的效果,電影製作常用24FPS、25FPS、30FPS等幀率。更高的幀率,比如60FPS 和 120FPS 用於錄製視訊以慢動作播放。
每一秒都要連續播放這麼多畫面,視訊的大小一般來說都遠大於圖片,線上流暢播放佔用的頻寬也要大得多。
如果不做任何處理,理論上要線上播放解析度為4K,幀率為30FPS的視訊,需要佔用的頻寬接近6Gbps。
這簡直就是流量饕餮。採用有線還能近距離傳輸還能扛住,用無線的方式就可太難了,即使強如5G也捉襟見肘。
因此,我們需要對視訊進行壓縮。
視訊的深度壓縮
為什麼視訊可以被壓縮呢?是因為每一幀的內部,以及多個幀間存在著大量的冗餘資訊。
首先,在每一幀畫面內,一幅圖像之內相鄰像素的顏色相關性很強,紋理大概率是連續變化的,背景還可能有大量重複的顏色。如果採用適當的演算法,就可以去除冗餘,使資料量得以壓縮。
然後,在多幀的畫面之間,如果沒有場景切換,相鄰幀之間絕大部分畫面是一樣的:比如一隻蝴蝶在花叢中飛行,多幀畫面之間除了蝴蝶的姿態變化,其餘都是不變的,資料自然就可以被壓縮。
因此,視訊的壓縮有「幀內預測壓縮」和「幀間預測壓縮」兩種方式,將視訊分解為多個像素塊,再結合當前幀和前後幀的內容進行壓縮。
幀內預測的主要思想是:畫面紋理是連續的,存在大量的「空間冗餘」,因此可以使用相鄰的已解碼的像素預測未知像素。實際編碼時只需對原始塊減去預測塊之後剩下的殘差塊進行操作,這樣資料量可以有效減少。
幀間預測的主要思想是:既然相鄰幀之間存在極強的相關性,存在大量的「時間冗餘」,那麼就只要找到當前塊在參考幀中的位置,計算對應的位移並得出兩幀之間的殘差,然後只發送這個資料量很小的殘差幀就可以了。
這樣一來,壓縮演算法就把視訊內容編碼為I幀以及P幀。其中I幀作為關鍵幀,必須能夠完全獨立解碼,因此只能使用幀內預測;P幀作為預測幀,僅反映上一個I幀變化的部分,既可以使用幀內預測,也可以使用幀間預測,但離開了I幀就無法解碼。
除了I幀和P幀之外,還有一種B幀(雙向幀)。B幀的編解碼可同時參考左右的幀,需要傳輸的資料量更小。
由於視訊內容是連續的,往往時域的相關性更大,所以一般而言幀間預測的壓縮效率更高,因此P/B幀一般都遠小於I幀。
這種幀內預測壓縮和幀間預測壓縮雙管齊下的效果非常好,可以在畫質基本沒有損耗的前提下將原視訊壓縮得非常小,因此也叫做「深度壓縮」。
以目前主流的壓縮編碼標準H.264 舉例,1080P解析度,60FPS的視訊,經過壓縮編碼,僅需4Mbps的網路頻寬,在手機上就有不錯體驗。
深度壓縮的不足
然而,萬事萬物都有兩面性。深度壓縮的代價是什麼呢?
最容易想到的就是:直播的播放延時。
前面已經說過,P幀和B幀的解碼需要依賴其他幀,當終端觀看直播時,極有可能接入的時間點是不能獨立解碼的預測幀,那麼播放程序必須要等到關鍵幀後,才能正常解碼播放,這就不可避免地導致了時延。
想象一下,如果兩個I幀之間的間隔被設置為2秒,那麼如果運氣不好,接入直播後就有可能要等2秒後才能看到畫面。
上述播放的接入時延其實還算小問題,深度壓縮對視訊製播的影響才是不可接受的。
眾所周知,在視訊製播時,導播臺的作用十分關鍵。導播臺主要作用是將多機位的視訊信號整合到一起,根據現場需求,由導播人員進行實時切換。
讓我們把視線聚焦到上圖的左側。假設在春晚舞臺上,藝術家正引亢高歌,多個機位拍攝不同角度的畫面傳回導播臺進行製播處理,進行切換、分屏、疊加元素等。
但由於這些視訊流採用了深度壓縮,極有可能導播員在將直播畫面由機位1切換到機位2時,剛好趕上了不可解碼的非關鍵幀,這下可好,所有觀眾的螢幕都卡住了。
因此,在這種場景下,使用深度壓縮是不合適的。再說了,從機位到導播臺的距離一般都不遠,用超大頻寬的有線傳輸就行,也不需要節省頻寬,自然也沒必要那麼極致的壓縮,採用「淺壓縮」技術就夠了。
為什麼需要淺壓縮
所謂淺壓縮,其實就是捨棄掉會產生P幀或者B幀的幀間預測編碼,全部採用幀內預測編碼,這樣生成的視訊就全部都是I幀,每一幀都可以完全獨立解碼,雖然視訊的資料量大幅增加,但也消除了深度壓縮的不足之處。
既然淺壓縮技術如此順理成章,為什麼還是在春晚直播時產生了轟動呢?
這是因為5G的引入。
傳統的拍攝,要麼使用固定拍攝機位,要麼使用拖著線纜的可移動拍攝機位。這是因為傳輸淺壓縮視訊需要的頻寬大,如果壓縮率為1/8,每路4K視訊也需要1Gbps的頻寬,同時時延還要低,普通的無線方式難以滿足。
但5G可以。5G-A搭建的視訊製播專網可實現10Gbps以上的頻寬,自然可以實現「5G超高畫質淺壓縮製播」了。由於時延低,無線機位和有線機位所拍攝的畫面還可以實現絲滑混切。
最後我們來總結一下。
淺壓縮的主要用於場景是顯示接口和專業的視訊製播,頻道的頻寬非常充裕,要求的是無損的畫質和低時延,壓縮率一般就是1/8。普通使用者一般情況下接觸不到淺壓縮,因此叫做ToB壓縮。
深度壓縮主要是面向使用者的,因此也叫做ToC壓縮。視訊從導播臺製播完成之後,即採用深度壓縮之後進行分發,壓縮率能達到1/200甚至1/500。這樣一來,不但可以最大化節省傳輸頻寬,觀眾看起來也流暢。
非常感謝能看到最後。