導讀:隨着移動互聯網技術的蓬勃發展,視頻已無處不在。視頻直播、視頻點播、短視頻、視頻聊天,已經徹底融入了每一個人的生活。Cisco 發佈的最新報告中寫道,到 2022 年,在移動互聯網流量中,視頻數據佔比將高達 82% 。視頻爲什麼如此普及呢?是由於經過視頻能方便快捷地獲取到大量信息。但與此同時,由於視頻數據量很是巨大,視頻的傳輸、存儲也面臨着巨大的挑戰。從 20 世紀 90 年代以來,數字視頻編解碼技術迅速發展,一直是國內外研究的熱點領域。視頻編解碼,將是保證用戶高品質視頻體驗的重要技術。算法
視頻編解碼技術及標準windows
視頻編解碼技術的主要做用,是在可用的計算資源內,追求儘量高的視頻重建質量和儘量高的壓縮比,以達到帶寬和存儲容量的要求。爲什麼突出「重建質量」?由於視頻編碼是個有損的過程,用戶只能從收到的視頻流中解析出「重建」畫面,它與原始的畫面已經不一樣,例如觀看低質量視頻時常常會碰到的「塊」效應。如何在必定的帶寬佔用下,儘量地保持視頻的質量,或者在保持質量狀況下,儘量地減小帶寬利用率,是視頻編碼的基本目標。用專業術語來講,即視頻編解碼標準的「率失真」性能。「率」是指碼率或者帶寬佔用;「失真」是用來描述重建視頻的質量。與編碼相對應的是解碼或者解壓縮過程,是將接收到的或者已經存儲在介質上的壓縮碼流重建成視頻信號,而後在各類設備上進行顯示。網絡
視頻編解碼標準,一般只定義上述的解碼過程。例如 H.264 / AVC 標準,它定義了什麼是符合標準的視頻流,對每個比特的順序和意義都進行了嚴格地定義,對如何使用每一個比特或者幾個比特表達的信息也有精確的定義。正是這樣的嚴格和精確,保證了不一樣廠商的視頻相關服務,能夠很方便地兼容在一塊兒,例如用 iPhone、Android Phone 或者 windows PC 均可以觀看同一在線視頻網站的同一視頻。世界上有多個組織進行視頻編碼標準的制定工做,國際標準組織 ISO 的 MPEG 小組、國際電信聯盟 ITU-T 的 VCEG 小組、中國的 AVS 工做組、Google 及各大廠商組成的開放媒體聯盟等。框架
(圖1 視頻編碼標準及發展歷史)性能
自 VCEG 制定 H.120標準開始,視頻編碼技術不斷髮展,前後成功地制定了一系列知足不一樣應用場景的視頻編碼標準,如圖1所示。VCEG 組織前後制定了H.120、H.26一、H.262(MPEG-2 Part 2)、H.26三、H.263+、H.263++。MPEG也前後制定了MPEG-一、MPEG-二、MPEG-4 Part 2。以及兩個國際組織合做制定的H.264/AVC、H.265/HEVC、H.266/VVC;中國自主知識產權的 AVS、AVS二、AVS3 視頻編碼標準;Google 制定的 VP八、VP9;Google、思科、微軟、蘋果等公司組成的開放媒體聯盟(AOM)制定的 AV1。這裏特別要提一下H.264/AVC。H.264/AVC雖有近20年曆史,但它優秀的壓縮性能、適當的運算複雜度、優秀的開源社區支持、友好的專利政策、強大的生態圈等多個方面的因素,依舊讓它保持着強大的生命力,特別是在實時通訊領域。像 ZOOM、思科 Webex 等視頻會議產品和基於 WebRTC SDK 的視頻服務,大多數主流場景都採用 H.264/AVC。學習
混和編碼框架優化
縱觀視頻標準歷史,每一代視頻標準都在率失真性能上有着顯著的提高,他們都有一個核心的框架,就是基於塊的混合編碼框架,如圖2所示。它是由J. R. Jain 和A. K. Jain在1979年的國際圖像編碼學會(PCS 1979)上提出了基於塊運動補償和變換編碼的混合編碼框架。網站
(圖2 混和編碼框架)編碼
咱們一塊兒來對該框架進行拆解和分析。從攝像頭採集到的一幀視頻,一般是 YUV 格式的原始數據,咱們將它劃分紅多個方形的像素塊依次進行處理(例如 H.264/AVC 中以16x16像素爲基本單元),進行幀內/幀間預測、正變換、量化、反量化、反變換、環路濾波、熵編碼,最後獲得視頻碼流。從視頻第一幀的第一個塊開始進行空間預測,因當前正在進行編碼處理的圖像塊和其周圍的圖像塊有類似性,咱們能夠用周圍的像素來預測當前的像素。咱們將原始像素減去預測像素獲得預測殘差,再將預測殘差進行變換、量化,獲得變換系數,而後將其進行熵編碼後獲得視頻碼流。人工智能
接下來,爲了可使後續的圖像塊可使用已經編碼過的塊進行預測,咱們還要對變換系統進行反量化、反變換,獲得重建殘差,再與預測值進行求合,獲得重建圖像。最後咱們對重建圖像進行環路濾波、去除塊效應等,這樣獲得的重建圖像,就能夠用來對後續圖像塊進行預測了。按照以上步驟,咱們依次對後續圖像塊進行處理。
對於視頻而言,視頻幀與幀的間隔大約只有十到幾十毫秒,一般拍攝的內容不會發生劇烈變化,它們之間存在很是強的相關性。如圖3所示,將視頻圖像分割成塊,在時間相鄰的圖像之間進行匹配,而後將匹配以後的殘差部分進行編碼,這樣能夠較好地去除視頻信號中的視頻幀與幀之間的冗餘,達到視頻壓縮的目的。這就是運動補償技術,直到今天它仍然是視頻編解碼的核心技術之一。
(圖3 運動估計和運動補償)
變換編碼的核心思想是把視頻數據分割成塊,利用正交變換將數據的能量集中到較少幾個變換系數上。結合量化和熵編碼,咱們能夠得到更有效的壓縮。視頻編碼中信息的損失和壓縮比的得到,很大程度上來源於量化模塊,就是將源信號中的單同樣本映射到某一固定值,造成多到少的映射,從而達到壓縮的目的,固然在壓縮的過程當中就引入了損失。量化後的信號再進行無損的熵編碼,消除信號中的統計冗餘。熵編碼的研究最先能夠追溯到 20 世紀 50 年代,通過幾十年的發展,熵編碼在視頻編碼中的應用更加成熟、更加精巧,充分利用視頻數據中的上下文信息,將機率模型估計得更加準確,從而提升了熵編碼的效率。例如H.264/AVC中的Cavlc(基於上下文的變長編碼)、Cabac(基於上下文的二進制算術編碼)。算術編碼技術在後續的視頻編碼標準,如AV一、HEVC/H.26五、VVC/H.266 中也有應用。
視頻編碼發展至今,VVC/H.266 做爲最新制定的標準,採納了一系列先進的技術,對混合編碼框架的各個部分都進行了優化和改進,使得其率失真性能相比前一代標準,又提升了一倍。例如,VVC/H.266 採用了128x128大小的基本編碼單元,而且能夠繼續進行四叉樹劃分,支持對一個劃分進行二分、三分;色度份量獨立於亮度份量,支持單獨進行劃分;更多更精細的幀內預測方向、幀間預測模式;支持多種尺寸和形式的變換、環內濾波等。VVC/H.266 的制定,目標是對多種視頻內容有更好支持,例如屏幕共享內容、遊戲、動漫、虛擬現實內容(VR、AR)等。其中也有特定的技術被採納進標準,例如調色板模式、幀內運動補償、仿射變換、跳過變換、自適應顏色變換等。
提高質量的更多手段
視頻編解碼標準保證了視頻的互通性,視頻質量的提高仍然有不少能夠深刻研究的熱點問題。如,基於人眼的主觀質量的編碼優化、基於AI的編碼優化、內容自適應編碼等。基於人眼的主觀質量優化,主要利用人眼的視覺特性,將掩蔽效應、對比度靈敏度、注意力模型等與編碼相結合,合理分配碼率、減小編碼損失引發的視覺不適。AI在視頻編解碼領域的應用,包括將多種人工智能算法,如分類器、支持向量機、CNN等對編碼參數進行快速選擇,也可使用深度學習對視頻進行編碼環外與編碼環內的處理,如視頻超分辨率、去噪、去霧、自適應動態範圍調整等編碼環外處理,達到提高視頻質量的目的;CNN網絡取代編碼器中的環路濾波、CNN進行幀內預測等編碼環內處理,下降編碼產生的損失以外,能夠進一步提高預測準確度,達到更好的編碼效果;此外還有打破傳統混合編碼框架的深度神經網絡編碼,如Nvidia的Maxine視頻會議服務,利用深度學習來提取特徵,而後對特徵進行傳輸以節省帶寬。內容自適應技術,也可分紅兩類,一是編碼環內根據編碼內容調整編碼器的參數,二是編碼環外根據要編碼的內容進行碼率、幀率、分辨率等調整。
結束語
拍樂雲Pano 團隊在視頻編解碼領域有着豐富的經驗積累和深刻的技術理解,採用獨有的視頻編解碼算法,在保證視頻質量的同時,高效利用帶寬,讓用戶體驗面對面通常的順暢溝通和超清畫質。接入Pano SDK,企業開發者就能夠在本身的應用裏輕鬆實現優異的視頻通話能力,不再必爲視頻編解碼技術的複雜而傷神了。