直播技術——視訊編解碼(理論基礎)
摘自:https://www.cnblogs.com/xkfz007/archive/2012/08/12/2613690.html
第1章介紹
1. 為什麼要進行視訊壓縮?
- 未經壓縮的數字視訊的資料量巨大
-
儲存困難
- 一張DVD只能儲存幾秒鐘的未壓縮數字視訊。
-
傳輸困難
- 1兆的頻寬傳輸一秒的數字電視視訊需要大約4分鐘。
2. 為什麼可以壓縮
-
去除冗餘資訊
- 空間冗餘:影象相鄰畫素之間有較強的相關性
- 時間冗餘:視訊序列的相鄰影象之間內容相似
- 編碼冗餘:不同畫素值出現的概率不同
- 視覺冗餘:人的視覺系統對某些細節不敏感
- 知識冗餘:規律性的結構可由先驗知識和背景知識得到
3. 資料壓縮分類
-
無失真壓縮(Lossless)
- 壓縮前解壓縮後圖像完全一致X=X'
- 壓縮比低(2:1~3:1)
- 例如:Winzip,JPEG-LS
-
有失真壓縮(Lossy)
- 壓縮前解壓縮後圖像不一致X≠X'
- 壓縮比高(10:1~20:1)
- 利用人的視覺系統的特性
- 例如:MPEG-2,H.264/AVC,AVS
4. 編解碼器
-
編碼器(Encoder)
- 壓縮訊號的裝置或程式
-
解碼器(Decoder)
- 解壓縮訊號的裝置或程式
-
編解碼器(Codec)
- 編解碼器對
5. 壓縮系統的組成
(1) 編碼器中的關鍵技術
(2) 編解碼中的關鍵技術
6. 編解碼器實現
-
編解碼器的實現平臺:
-
超大規模積體電路VLSI
- ASIC, FPGA
- 數字訊號處理器DSP
- 軟體
-
超大規模積體電路VLSI
-
編解碼器產品:
- 機頂盒
- 數字電視
- 攝像機
- 監控器
7. 視訊編碼標準
編碼標準作用:
-
相容:
- 不同廠家生產的編碼器壓縮的碼流能夠被不同廠家的解碼器解碼
-
高效:
- 標準編解碼器可以進行批量生產,節約成本。
主流的視訊編碼標準:
- MPEG-2
- MPEG-4 Simple Profile
- H.264/AVC
- AVS
- VC-1
標準化組織:
-
ITU:International Telecommunications Union
- VECG:Video Coding Experts Group
-
ISO:International Standards Organization
- MPEG:Motion Picture Experts Group
8. 視訊傳輸
- 視訊傳輸:通過傳輸系統將壓縮的視訊碼流從編碼端傳輸到解碼端
- 傳輸系統:網際網路,地面無線廣播,衛星
9. 視訊傳輸面臨的問題
-
傳輸系統不可靠
- 頻寬限制
- 訊號衰減
- 噪聲干擾
- 傳輸延遲
-
視訊傳輸出現的問題
- 不能解碼出正確的視訊
- 視訊播放延遲
10. 視訊傳輸差錯控制
- 差錯控制(Error Control)解決視訊傳輸過程中由於資料丟失或延遲導致的問題
-
差錯控制技術:
- 通道編碼差錯控制技術
- 編碼器差錯恢復
- 解碼器差錯隱藏
11. 視訊傳輸的QoS引數
- 資料包的端到端的延遲
- 頻寬:位元/秒
- 資料包的流失率
- 資料包的延遲時間的波動
第2章 數字視訊
1.影象與視訊
- 影象:是人對視覺感知的物質再現。
- 三維自然場景的物件包括:深度,紋理和亮度資訊
- 二維影象:紋理和亮度資訊
- 視訊:連續的影象。
- 視訊由多幅影象構成,包含物件的運動資訊,又稱為運動影象。
2. 數字視訊
-
數字視訊:自然場景空間和時間的數字取樣表示。
-
空間取樣
- 解析度(Resolution)
-
時間取樣
- 幀率:幀/秒
-
空間取樣
3. 空間取樣
- 二維數字視訊影象空間取樣
4. 數字視訊系統
-
採集
- 照相機,攝像機
-
處理
- 編解碼器,傳輸裝置
-
顯示
- 顯示器
5. 人類視覺系統HVS
-
HVS
- 眼睛
- 神經
- 大腦
-
HVS特點:
- 對高頻資訊不敏感
- 對高對比度更敏感
- 對亮度資訊比色度資訊更敏感
- 對運動的資訊更敏感
6. 數字視訊系統的設計應該考慮HVS的特點:
- 丟棄高頻資訊,只編碼低頻資訊
- 提高邊緣資訊的主觀質量
- 降低色度的解析度
- 對感興趣區域(Region of Interesting,ROI)進行特殊處理
7. RGB色彩空間
- 三原色:紅(R),綠(G),藍(B)。
- 任何顏色都可以通過按一定比例混合三原色產生。
-
RGB色度空間
- 由RGB三原色組成
- 廣泛用於BMP,TIFF,PPM等
- 每個色度成分通常用8bit表示[0,255]
8. YUV色彩空間
-
YUV色彩空間:
- Y:亮度分量
- UV:兩個色度分量
- YUV更好的反映HVS特點
9. RGB轉化到YUV空間
亮度分量Y與三原色有如下關係:
經過大量實驗後ITU-R給出了, , ,
主流的編解碼標準的壓縮物件都是YUV影象
10. YUV影象分量取樣
- YUV影象可以根據HVS的特點,對色度分量下采樣,可以降低視訊資料量。
- 根據亮度和色度分量的取樣比率,YUV影象通常有以下幾種格式:
11. 通用 的YUV影象格式
- 根據YUV影象的亮度解析度定義影象格式
12. 幀和場影象
- 一幀影象包括兩場——頂場,底場
13. 逐行與隔行影象
- 逐行影象:一幀影象的兩場在同一時間得到,ttop=tbot。
- 隔行影象:一幀影象的兩場在不同時間得到,ttop≠tbot。
14. 視訊質量評價
- 有損視訊壓縮使編解碼影象不同,需要一種手段來評價解碼影象的質量。
-
質量評價:
- 客觀質量評價
- 主觀質量評價
- 基於視覺的視訊質量客觀評價
- 客觀質量評價:通過數學方法測量影象質量評價的方式。
-
優點:
- 可量化
- 測量結果可重複
- 測量簡單
-
缺點:
- 不完全符合人的主觀感知
15. 客觀評價的方法
常用的客觀評價方法:
16. 主觀評價方法
- 主觀質量評價:用人的主觀感知直接測量的方式。
-
優點:
- 符合人的主觀感知
-
缺點:
- 不容易量化
- 受不確定因素影響,測量結果一般不可重複
- 測量代價高
常用主觀評價方法
17. 基於視覺的視訊質量客觀評價方法
- 基於視覺的視訊質量客觀評價:將人的視覺特性用數學方法描述並用於視訊質量評價的方式。
- 結合了主觀質量評價和客觀質量評價兩方面優點。
- 常用方法:結構相似度(Structural SIMilarity,SSIM)方法。
- 將HVS的特徵用數學模型表達出來。
- 未來重要的研究方向
第3章 資訊理論基礎(注:終於遇到一個我學過的,叉會兒腰)
1. 通訊系統的組成
- 信源:產生訊息
- 通道:傳輸訊息
- 信宿:接收訊息
2. 基本概念
-
通訊中對資訊的表達分為三個層次:訊號,訊息,資訊。
- 訊號:是資訊的物理層表達,可測量,可描述,可顯示。如電訊號,光訊號。
- 訊息:是資訊的載體,以文字,語言,影象等人類可以認知的形式表示。
- 資訊:不確定的內容。
3. 資訊熵
資訊的特點
資訊的測量
自資訊量
條件資訊量
4. 資訊熵
5. 條件熵和聯合熵
6. 熵的性質
- 非負性:信源熵是非負值,即 H(X) >=0;
- 擴充套件性:信源熵X有M個符號,如果其中一個符號出現的概率趨於零,信源熵就等於剩餘M-1個符號的信源熵;
- 極值性(最大資訊熵):對於具有M個符號的信源,只有在所有符號等概率出現的情況下,信源熵達到最大值,即
- 可加性:
- 熵不增:條件熵不大於資訊熵 H(X|Y) <= H(X);
- 聯合熵不大於各資訊熵的和,即H(XY) <= H(X) + H(Y)。
7. 互資訊量
8. 互資訊
- 物理意義:H(X)是X所含的資訊,H(X|Y)是已知Y的條件下X還能帶來的資訊量。那麼兩者之差就是由於知道Y使得X減少的資訊量,也即由Y可以得到的關於X的資訊量。
9. 各種熵的關係
11. 信源編碼
- 信源編碼:將訊息符號轉變成通道可傳輸的資訊。
-
兩個基本問題:
- 用盡可能少的通道傳輸符號來傳遞信源訊息,提高傳輸效率;
- 減少由於通道傳輸符號的減少導致的失真。
12. 離散信源統計特性
13. 離散信源型別:簡單無記憶信源和馬爾可夫信源
14. 編碼分類
- 等長碼:在一組碼字集合C中的所有碼字cm (m = 1,2, …,M),其碼長都相同,則稱這組碼C為等長碼。
- 變長碼:若碼字集合C中的所有碼字cm (m = 1,2, …,M),其碼長不都相同,稱碼C為變長碼。
15. 平均碼長
16. 等長碼與變長碼比較
- 等長編碼將信源輸出符號序列的任意一種取值(概率可能不同)都編碼成相同長度的輸出碼字,沒有利用信源的統計特性;
- 變長編碼可以根據信源輸出符號序列各種取值的概率大小不同,將他們編碼成不同長度的輸出碼字,利用了信源的統計特性。因此又稱其為熵編碼。
17. Huffman編碼
- Huffman編碼:典型的變長編碼。
-
步驟:
- 將信源符號按概率從大到小的順序排列,假定p(x1)≥ p(x2)… ≥ p(xn)
- 給兩個概率最小的信源符號p(xn-1), p(xn)各分配一個碼位"0"和"1",將這兩個信源符號合併成一個新符號,並用這兩個最小的概率之和作為新符號的概率,結果得到一個只包含(n-1)個信源符號的新信源。稱為信源的第一次縮減信源,用S1表表示。
- 將縮減信源S1的符號仍按概率從大到小的順序排列,重複步驟2,得到只含(n-2)個符號的縮減信源S2。
- 重複上述步驟,直至縮減信源只剩下兩個符號為止,此時所剩兩個符號的概率之和必為1。然後從最後一級縮減信源開始,依編碼路徑向前返回,就得到各信源符號所對應的碼字。
18. 通道編碼
- 通道編碼主要考慮如何增加訊號的抗干擾能力,提高傳輸的可靠性,並且提高傳輸效率。
- 一般是採用冗餘編碼法,賦予信碼自身一定的糾錯和檢錯能力,使通道傳輸的差錯概率降到允許的範圍之內。
19. 通道型別
-
根據通道連續與否分類
- 離散通道
- 連續通道
- 半連續通道
-
根據通道是否有干擾分類
- 無干擾通道
- 有干擾通道
-
根據通道的統計特性分類
- 無記憶通道
- 有記憶通道
- 恆參通道
- 變參通道
- 對稱通道
- 非對稱通道
20. 通道容量
- 在資訊理論中,稱通道無差錯傳輸的最大資訊速率為通道容量。
-
仙農通道容量公式:
- 假設連續通道的加性高斯白噪聲功率為N,通道頻寬為B,訊號功率為S,則該通道的容量為
- 由於噪聲功率N與通道頻寬B有關,則噪聲功率N=n0B 。因此,仙農公式還可以表示為
21. 夏農通道容量公式的意義
- 在給定B和S/N的情況下,通道的極限傳輸能力為C,而且此時能夠做到無差錯傳輸。如果通道的實際傳輸速率大於C 值,則無差錯傳輸在理論上就已不可能。因此,實際傳輸速率一般不能大於通道容量C ,除非允許存在一定的差錯率。
- 提高信噪比S/N(通過減小n0或增大S),可提高通道容量C。特別是,若n0->0,則C->∞ ,這意味著無干擾通道容量為無窮大;
- 增加通道頻寬B,也可增加通道容量C,但做不到無限制地增加。這是因為,如果 S、n0一定,有
- 維持同樣大小的通道容量,可以通過調整通道的B及S/N來達到,即通道容量可以通過系統頻寬與信噪比的互換而保持不變。
22. 失真
- 失真:信源的訊息經過編解碼後不能完全復原
-
在實際的信源和通道編碼中,訊息的傳輸並不總是無失真的。
- 由於儲存和傳輸資源的限制
- 噪聲等因素的干擾
23. 率失真理論
-
仙農定義了資訊率失真函式R(D)
- D是訊息失真
- R是位元速率
- 率失真定理:在允許一定失真度D的情況下,信源輸出的資訊率可壓縮到R(D)。
24. 失真函式
- 失真函式:信源符號X={x1, x2, …..xn},經通道傳輸接收端符號Y={y1, y2….yn},對於每一對(xi, yj)指定一個非負函式 d(xi, yj),稱d(xi, yj)為單個符號的失真度或失真函式。對於連續信源連續通道的情況,常用d(x, y)表示。
- 常用失真函式:
- 平均失真度:
相關推薦
直播技術——視訊編解碼(理論基礎)
摘自:https://www.cnblogs.com/xkfz007/archive/2012/08/12/2613690.html 第1章介紹 1. 為什麼要進行視訊壓縮? 未經壓縮的數字視訊的資料量巨大 儲存困難 一張DVD只能儲存幾秒鐘的未壓縮數字視訊。 傳輸困
即時通訊音視訊開發(三):視訊編解碼之編碼基礎
前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(一):視訊編解碼之理論概述》 《即時通訊音視訊
即時通訊音視訊開發(一):視訊編解碼之理論概述
前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(二):視訊編解碼之數字視訊介紹》 《即時通訊音
視訊編解碼的理論和實踐1:基礎知識介紹
近幾年,視訊編解碼技術在理論及應用方面都取得了重大的進展,越來越多的人想要了解編解碼技術。因此,網易雲信研發工程師為大家進行了歸納梳理,從理論及實踐兩個方面簡單介紹視訊編解碼技術。 相關閱讀推薦 1、視訊介紹 視訊的本質是影象序列,根據視覺暫留的原理
視訊編解碼的理論和實踐2:Ffmpeg視訊編解碼
近幾年,視訊編解碼技術在理論及應用方面都取得了重大的進展,越來越多的人想要了解編解碼技術。因此,網易雲信研發工程師為大家進行了歸納梳理,從理論及實踐兩個方面簡單介紹視訊編解碼技術。 相關閱讀推薦 《視訊直播關鍵技術:流暢、擁塞和延時追趕》 《視訊直播技術詳解:直播的推流
iOS學習-即時通訊音視訊(一)之視訊編解碼之理論
參考大神:http://www.52im.net/thread-228-1-1.html 實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體。 視訊為何需要壓縮? 1.未經壓縮的數字視訊的資料量巨大 2. 儲存困難,一張DVD只能儲存幾秒鐘的未壓縮數字視訊 3. 傳輸困難 1
FPGA設計之迴圈編解碼(行動通訊)
1,迴圈碼編碼部分 module cyc_code(rst,clk,data,code); input rst,clk;input [3:0]data; output reg [7:0]code; begin code[7]=1'b0; code[6]=data[2]
java架構之路-(netty專題)netty的編解碼(出入戰)與粘包拆包
上次迴歸: 上次部落格我們主要說了netty的基本使用,都是一些固定的模式去寫的,我們只需要關注我們的攔截器怎麼去寫就可以了,然後我們用我們的基礎示例,改造了一個簡單的聊天室程式,可以看到內部加了一個StringEncoder和StringDecoder,這個就是用來編解碼我們字串的,這次我們就來說說這個
【H.264/AVC視訊編解碼技術詳解】七、 熵編碼演算法(1):基礎知識
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
即時通訊音視訊開發(四):視訊編解碼之預測技術介紹
前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(二):視訊編解碼之數字視訊介紹》 《即時通訊音
虎牙直播視訊編解碼崗面試(偏工程)
一面 1、自我介紹 2、介紹專案,問的非常具體。網路結構、實驗環境、引數各種 3、具體講講變換是怎麼回事 4、具體講講Deblocking 5、量化之後進行熵編碼的掃描方式 6、ME的具體過程 7、變換、量化先後順序 8、塊效應、振鈴效應 9、AMVP與Merge的區別 10、GOP
SoaringLee_fighting的技術專欄(專注於音視訊編解碼和AI技術領域,開源分享,不忘初心,追求卓越!)
【關於博主】 目前就職於國內知名安防企業,從事於編解碼演算法開發和優化工作,對音視訊編解碼、機器視覺和深度學習有很大興趣,期待與有識之士共同交流學習! 座標: 浙江杭州 Email: [email protected] 【推薦部落格】 編解碼: h
【H.264/AVC視訊編解碼技術詳解】十二、解析H.264碼流的巨集塊結構(上)
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
【H.264/AVC視訊編解碼技術詳解】十五、H.264的變換編碼(二):H.264整數變換和量化的實現
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
【H.264/AVC視訊編解碼技術詳解】十三、熵編碼演算法(4):H.264使用CAVLC解析巨集塊的殘差資料
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
【H.264/AVC視訊編解碼技術詳解】十三、熵編碼演算法(3):CAVLC原理
《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼
音視訊編解碼基礎知識(1)- 音視訊編解碼過程
在學習音視訊編解碼知識時,首先要對整個過程有一個直觀的認識,對一些知識點也要有明確的認識。 知識點: 1. YUV/RGB/RAW,這是三種視訊採集的資料格式 2. 視訊編碼格式:H.264(在M
即時通訊音視訊開發(二):視訊編解碼之數字視訊介紹
前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 本文是系列文章中的第2篇,本系列文章的大綱如下: 《即時
Java 使用 OpenCV (二)之 視訊編解碼器
學習了OpenCV,當然少不了會用來處理視訊,這就需要用到視訊編解碼器。 配置環境 編解碼器在解壓的OpenCV 目錄下就有。在opencv\build\bin 下 同樣的,將這個檔案放到 C:\W
各種音視訊編解碼學習詳解之 編解碼學習筆記(一):基本概念
最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbit/p/3651270.htm