1.1 LTR
長參考幀Long-Term Reference (LTR) frames
短參考幀short-term Reference (LTR) frames
在視頻壓縮編碼中為了提高編碼能力,我們面臨的挑戰是如何在保持視頻質量的同時提高編碼壓縮效率。H264標准提供了運動補償預測算法來實現這一目標。該算法采用預測模型,通過宏塊或子塊從其他幀移動的矢量來生成新幀。這些幀稱為參考幀。H264標准定義了短參考幀和長參考幀。解碼器可以保存和使用LTR幀,直到應用程序顯式地刪除它們。
LTR對編解碼器有兩個作用。
- 提高圖像質量
- 抗網損。
1.2 LTR提高圖像質量
在一個穩定的視頻場景中,高質量的參考幀可以提高后續幀的圖像質量。在解碼內容相似幀時,可以使參考幀保持更長時間,這樣避免在場景穩定的情況下傳輸另一個參考幀,從而節省傳輸帶寬。
根據視頻內容來動態的使用LTR功能,這叫做自適應性LTP。當檢測到靜態場景時采用LTP, 動態場景關閉LTP。
在視頻監控的場景中,穩定的視頻占多數,使用LTP會很好的提高視頻質量。編碼誤差不容易擴散。
1.3 LTR抗網損
LTR幀的優點是在應用程序級別控制編碼內部過程,增加了編碼靈活性,提高編碼效率,結合其他編碼工具,可以實現一個更好的參考幀決策。在這個理論基礎上,可實現多種基於LTR的算法。例如,思科公司長期以來一直將LTR作為其視頻會議應用的糾錯算法(網絡適應性算法)。
LTRP(Long-Term Reference Picture)幀屬於編解碼器的彈性編碼的一部分。在網損和解碼錯誤會導致解碼器的視覺錯誤。這些誤差會擴散到后續的P幀。解決這個問題的常規作法是讓解碼器向編碼器請求一個I-frame來清除錯誤(后向糾錯)。然而,還有一個好的方法是使用LRTP幀。反饋機制與LTRP幀相結合,有助於修復丟失的視頻數據並逐步淘汰錯誤的LTRP幀。在支持LRTP的編解碼器中,LTRP幀是到達編解碼器的最后一個i幀(IDR或GDR),然后接收編解碼器將該幀存儲為LTRP幀。當新的I-frame到達時,它被提升到LTRP。如果視頻幀在傳輸過程中丟失,接收編解碼器將嘗試使用LTRP幀進行恢復。
1.4 思科設備的LTR
思科SX SX80終端設備,支持LTR。
當一個視頻設備(不管是終端還是MCU)在頻繁向SX80發送I幀請求后會觸發SX80的抗網損機制。
如下圖,在前6幀里有2次I幀請求。
前6幀的碼流里沒有LTR
無長參考幀。
但第3次I幀請求后。
開始出現LTR幀
后續再向SX80申請關鍵幀,SX80不再響應I幀請求,而是加多LTR幀。
需要視頻解碼緩存了多達7個long term reference幀。
通過上面的分析,為適應科思的SX80的這個機制。視頻解碼器需要加大解碼緩沖內存,開啟LTR機制。