日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

被压缩的视觉:视频编解码技术

發布時間:2025/3/8 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 被压缩的视觉:视频编解码技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

視覺是人類獲得信息的主要方式,每天有大量的視頻信息被生產并傳輸。未經壓縮的視頻內容占用的存儲空間和傳輸帶寬十分巨大,以常見的30fps高清視頻為例,采用avi格式存儲的YUV420視頻流一分鐘就有2GB大小,傳輸帶寬需要40MB/s。所以我們日常從手機和電腦等電子設備上獲得的視頻信息都是被壓縮后再傳輸和存儲的,壓縮這些視頻信息的技術便稱為視頻編解碼技術。

文|何鳴 網易云信音視頻算法工程師

?

顏色空間

我們人眼的視覺信息是由視桿細胞和視錐細胞獲得的。視桿細胞主要感受光線的明暗變化,獲取視覺的亮度信息,而視錐細胞可以感受到顏色。根據仿生的原理,計算機采集視頻信號也采用亮度信息和速度信息分別采集的方式。由于人眼的視桿細胞數量比視錐細胞的數量多很多,所以人眼對于亮度信息更加敏感,所以在采集視頻信息時,常采用YUV420的格式采集。具體操作如圖1中所示,四個亮度像素Y共用一組紅色和藍色的色度像素。

圖1 YUV420顏色空間

采集來的像素在計算機內部都采用2進制的形式存儲,為了表示人眼視覺的顏色空間,在計算機內部一般采用256色存儲,即亮度信息和色度信息的取值范圍都是0到255。通過不同的數值組合可以表示出不同的顏色,例如,YUV都是255時是粉色,YUV都是0時是深綠色。這樣為了表示一個像素需要1.5字節的數據,而一幅圖像中有成千上萬個像素。一幅720p分辨率的視頻包含92萬個像素,一幅1080p分辨率的視頻包含207萬個像素,而一秒鐘的視頻包含30幀圖像。對于數據量巨大的YUV視頻數據,需要壓縮后才能存儲與傳輸。

?

壓縮原理

壓縮視頻信息與壓縮文件信息不同,在視頻中存在著大量的冗余信息。如圖2所示,相鄰幀之間的相似性會有時間上的冗余,同一幀的相鄰塊之間存在著空間上的冗余,由于人眼感知對于低頻信息更敏感,所以存在著感知上的冗余。

圖2 視頻中的冗余信息

視頻壓縮的基本原理就是去除這些冗余信息,將視頻壓縮300到500倍,常見的壓縮方法有預測編碼、變換編碼和熵編碼技術。如圖3所示,將輸入的視頻信息按照各個編碼模塊進行處理,輸出碼流的過程稱為視頻編碼過程,再通過對應的熵解碼、變換解碼和預測解碼過程,將碼流還原成YUV420視頻流的過程稱為視頻解碼過程。可以將視頻編解碼的過程看作是壓縮和解壓縮的過程,但在該過程中,由于壓縮的算法有所差異,所以解碼的算法必須對應著編碼的算法,不同的編解碼算法稱為視頻標準。

圖3 視頻編碼技術

現在常用的視頻標準,例如H.26x系列標準,其中最常用的是H.264標準,由于開源編碼器x264的普及,也將這代標準稱為x264標準。H.26x系列標準的研發與進展一直是行業的標桿,最新的H.266/VVC標準加入許多新技術,而這些技術可以簡單概括為以下幾個方面:

塊劃分技術:除深度學習技術外,傳統的視頻編解碼技術都是按塊去處理視頻,而且趨勢是最大塊越來越大,最小塊越來越小,塊的類型越來越多。對于相對靜止的區域,采用大塊可以提高壓縮效率,使用一兩個標志位或者很少的殘差數據就可以表示一個大塊,可以極大的壓縮視頻畫面。對于運動比較多的區域,采用小塊可以提高畫質質量,將運動的細節更完整的表示出來。為了更精細的劃分運動和靜止的區域,塊劃分技術采用各種形狀的矩形塊代替原有的方形塊劃分。在工程落地方面,越來越復雜的塊劃分技術浪費大量的計算資源,所以很多快速算法都是針對塊劃分模式進行預測,將機器學習算法和深度學習算法應用到塊劃分預測過程中,可以在質量損失微乎其微的情況下,快速得出塊劃分模式。

圖4 H.265的塊劃分示意圖

幀內預測:幀內預測屬于預測編碼的范疇,在視頻序列中,有一些幀和塊的預測信息無法從參考幀中獲得,這樣的幀被稱為I幀或幀內預測塊。在I幀中所有的塊都是幀內預測塊,而幀內預測塊可以存在于I幀或P幀和B幀中。具體怎么實現幀內預測呢,對于一個幀內預測塊,首先在該塊周圍補償出一圈像素(對于邊緣部分,可以采用擴邊的方式),根據這圈像素值,采用角度預測或者平面預測的方式補償出當前塊,再通過與原圖比較,選擇損失最小的預測模式。由于幀內預測補償時采用的像素值都來自于當前幀,不需要參考幀信息,所以幀內預測常用于序列首幀或者視頻信息變化比較大的區域。

圖5 幀內預測示意圖

幀間預測:與幀內預測相對應的是幀間預測技術,他們同屬于預測編碼技術。幀間預測的參考圖像信息來自于參考幀,所以在視頻首幀或者參考幀缺失的情況下不能使用幀間預測技術。幀間預測的關鍵過程便是運動搜索與運動補償過程。運動搜索過程負責搜索出參考幀上最接近當前塊的圖像塊,并生成運動矢量,運動補償則根據參考幀信息生成當前幀信息。根據最新的幀間預測技術,運動信息可以包含平移、縮放和旋轉。由于運動矢量指向的位置未必是整數像素的位置,所以在運動補償過程中還涉及到亞像素補償技術。通過幀間預測可以極大提高視頻的壓縮率,例如在參考幀中有著相似度很高的塊,則可以對當前塊采用skip的模式編碼,僅需一個標志位即可編碼原有塊內所有的YUV信息。

圖6 幀間預測示意圖

變換量化:變換與量化技術是配套使用的,在剛剛的分析中,由于人眼對于高頻信息的不敏感,需要對高頻信息進行壓縮,在頻域更容易對其進行操作,所以需要對圖像進行變換。常用的變換方式有哈達瑪、整數DCT和整數DST,由于有預測編碼技術的存在,所以變換通常在殘差信息上操作,根據不同的壓縮率要求,可以對變換后的系數進行量化,僅保留人眼更敏感的低頻信息。在解碼過程中,需要配套的反量化和反變換技術,將壓縮后的殘差系數還原出來。

圖7 16x16DCT變換核

熵編碼:對于標志位和殘差系數,還需要一套編碼技術進一步壓縮這些信息,對于一些關鍵信息,可以采用指數哥倫布,游程編碼等方式壓縮,對于大量的殘差系數和圖像幀內的編碼信息,現在常用基于上下文模型的熵編碼技術進行壓縮。熵編碼的基本原理是對小概率符號使用更多比特編碼,而大概率符號則采用較少的比特編碼,通過上下文模型,大部分的大概率符號都可以被壓縮。區別于預測編碼和變換量化過程,熵編碼過程是無損的。

圖8 CABAC編碼器框架

環路濾波:對于參考幀來說,由于后續的視頻都是依據前面視頻幀的信息補償出來,所以參考幀中出現的損失和錯誤,會延續到整個序列,隨著運動補償的過程,或擴散到整個視頻幀當中。為了降低視頻的損失,在每一幀編碼完之后,都會對其進行后處理,處理這些視頻幀的濾波器被稱為環路濾波器,使其更加接近于原始視頻序列。現階段,許多基于深度學習的后處理技術被應用到環路濾波器當中,在編解碼過程中起到很好的效果。

圖9 環路濾波器SAO的4種邊界補償模式

除了以上技術,在工程化落地過程中,碼控技術、并行技術、指令集技術同樣影響編碼器效果。視頻編解碼技術包含著一系列算法的技術集成,將這些技術組合使用,形成各類視頻編解碼標準。除H.26x視頻標準之外,還存在著開放視頻標準聯盟的AV1標準,國產的AVS標準等。

圖10 WPP并行技術示意圖

?

?

視頻編碼技術的挑戰與發展

根據現在的技術需求,未來的視頻編碼技術需要面對更高分辨率、更高幀率、更廣色域及HDR視頻的挑戰。同時,面對更多形式的視頻內容,例如全景視頻、點云、深度學習特征圖等,視頻編碼技術需要與時俱進,不斷發展。現有技術方興未艾,未來技術仍然可期。

?

?

直播預告

視頻編解碼技術一直是視頻內容應用中的核心業務,基于各個平臺和各個渠道的視頻內容采集與分發都涉及到視頻編解碼技術的介入。在RTC業務場景下,如何構建高效快速的視頻編解碼引擎,如何對現有的編解碼技術進行優化改進,如何在公有協議基礎上實現私有協議,如何重寫編解碼框架等問題都值得關注。

1月14日19:30,網易云信音視頻算法工程師何鳴將為大家詳細介紹網易云信RTC業務場景下的編解碼技術優化與實踐,以及未來的發展方向。

總結

以上是生活随笔為你收集整理的被压缩的视觉:视频编解码技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。