H.264可伸缩编码SVC
第十章??H.264可伸縮編碼SVC
10.1??概述
(1)自適應編碼(Adaptive?Coding)
?根據網絡狀況,編碼器可以使用碼率控制技術,改變量化參數或編碼幀率來生成所需速率的碼流。
(2)轉碼技術(Transcoding)
?根據網絡狀況和用戶端情況,丟棄壓縮數據中不會嚴重影響視頻質量的部分,以獲得較低碼率/分辨率/幀率的視頻流。
(3)聯播(Simulcast),也就是多碼流切換。
(4)多描述編碼(Multiple?Description?Coding)。
(5)可伸縮編碼(Scalable?Video?Coding)。
?實質是按照重要性分解視頻信息,對分解的各個部分按照其統計特性進行編碼??缮炜s編碼允許一次壓縮后視頻能以不同的碼率、幀率、空間分辨率和視頻質量解碼。
?
10.2??SVC的基本原理
視頻編碼的可伸縮性包括時域可伸縮性、空域可伸縮性、質量可伸縮性等。時域可伸縮性是指將視頻流分解成表示不同幀率的信息;空域可伸縮性是指將視頻流分解成表示不同分辨率的信息;質量可伸縮性是指將像素值分解成不同級別。
根據可伸縮編碼的壓縮編碼架構的不同,可以分為基于DCT變換的視頻編碼和基于小波變換的可伸縮視頻編碼。
可伸縮編碼的基本類型:
(1)傳統的可伸縮編碼:時域、空域、質量的可伸縮編碼。
(2)精細粒度可伸縮性編碼
(3)漸進精細粒度可伸縮性編碼
10.2.1??傳統可伸縮性編碼
?
10.3??H.264的SVC
10.3.1??空域可伸縮性
為了支持空域可伸縮編碼,SVC沿用了傳統的多層編碼方案。每一個空間層對應一個空間分辨率,在每一個空間層,跟非伸縮編碼一樣,使用幀間預測和幀內預測。此時為了改善編碼效率引入層間預測。
1、層間預測
在分層編碼的概念下,不同層間的預測算法是改善編碼效率的關鍵。層間預測算法的設計原則是盡量多地利用基礎層的信息來改善增強層的率失真性能。層間預測機制只能在訪問單元(Access?Unit)內部進行,且被預測的幀,其空間層級應該高于參考幀。
(1)層間運動預測
?????增強層待編碼宏塊的分割模式、運動矢量和參考幀序號都將直接繼承其對應的基本層宏塊的值或尺度伸縮之后的值,所以實際上只需要傳遞殘差信息,從而節省了編碼比特數。
(2)層間殘差預測
?????層間殘差預測可以用到所有的幀間預測編碼的宏塊,相應的8x8的基礎層子宏塊的殘差信號,在經過雙線性濾波器上采樣后,可以用來作為增強層宏塊的預測殘差信號。
(3)層間幀內預測
?????當一個增強層采用BlSkip預測編碼模式時,其對應的基本層的8x8子宏塊采用幀內編碼模式時,就必須采用層間幀內預測模式。
?
2、空間可伸縮擴展
H.264支持任意分辨率的空間可伸縮編碼。唯一的限制是水平和垂直的分辨率從基本層到增強層不能減小。
?
10.3.2??時域可伸縮性
運動補償時域濾波器技術(MCTF,Motion?Compensated?Temporal?Filter)在SVC標準初期被認為是一種有效的提供時間可分級功能的工具。但MCTF的開環結構在實際應用中很容易造成編解碼兩端的匹配錯誤,跟新算子也大大增加了算法和內存的開銷。隨著層次B幀預測技術的提出,大多數情況下性能要超出MCTF,JVT最終確定采用B幀哥預測技術作為實現時域可伸縮的標準方式。
在分層預測結構下,可以使用一下幾點來改善編碼效率。
(1)多分級量化
?????在分層預測結構的編碼過程中,一個重要的問題是如何針對不同的時間層來選擇量化參數?;緦颖仨氂凶罡叩谋U娑?#xff0c;它是其他層級圖像運動補償的參考。為了降低計算復雜度,可充分利用不同層次視頻碼流之間的相關性,假設基本層的量化參數是QP0,對于時間層級為K>0的增強層量化參數可以選擇為QPk=QP0+3+k;
?????(2)時間直接模式
?????對于層次B幀預測通常使用時間直接模式。
?????(3)運動搜索
??????JM模型指出雙預測塊的運動向量是由兩個參考列表的獨立運動搜索決定的。
10.3.3??質量可伸縮性
質量可伸縮是空間可伸縮的一個特例,此時基本層和增強層的空間尺寸時相同的。
因此可以使用一種顯而易見的方案來實現質量分級,這就是粗粒度質量可伸縮編碼(CGS)。為了增加比特流碼率自適應的靈活性,增加可支持的碼率點個數,SVC的設計中包括了精細粒度質量可伸縮編碼的技術(FGS)。但由于FGS實現復雜度過高,JVT提出了一種替代方案:中等粒度質量可伸縮方案(MGS)。
1、漂移控制
編碼端和解碼端必須是的運動補償預測操作所需的參考圖像信息一致,否則解碼端的重建圖像與編碼端的圖像就會出現差異,這就是漂移。
2、漸進精細片
質量可伸縮性通過反復的降低量化步長,從最小質量層開始通過逐步增加圖像細節,這稱為漸進精細(Progressive?Refinement)。
3、比特流提取
比特流提取的主要任務是對編碼碼流進行分析,并根據解碼端用戶的需求對原始碼流進行切割。
?
10.3.4??H.264的擴展
1、NAL擴展
新的結構在原NALU的頭部增加了3個字節專門用于表示可伸縮級。
2、Slice擴展
????H.264SVC標準擴展了幾種Slice類型。
轉載于:https://www.cnblogs.com/lufei-dynasty/p/3210671.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的H.264可伸缩编码SVC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hibernate上路_16-继承关系映
- 下一篇: 大话Fragment管理