視頻編碼幀內重繪Intra refresh
為了防止視頻傳輸錯誤導致的視頻無法解碼問題,傳統的視頻碼流通常是IPPPIPPP碼流結構,即每個GOP的第一幀為全Intra predicted(I 幀),這樣即使該GOP中某一幀丟失,最壞的情況下也只影響一個GOP內的幀,等到下一個GOP視頻即可恢復正常,但是這種GOP結構碼率不夠平穩,在I幀的時候導致碼率突然變高,非常不利于網路傳輸,幀內重繪技術可以使碼率平穩,降低碼流傳輸時延,并且仍然可以在傳輸出錯的情況下快速恢復,
幀內重繪原理
幀內重繪的結構為IPPPPPP…,除了第一幀為I幀,后面全部是P幀,選擇一組幀作為重繪周期,這組幀里面的所有P幀中都有一條,強制其在編碼的時候使用幀內預測,其他部分使用率失真優化進行預測模式選擇即可,

如圖所示,假設重繪周期為4,第一幀的第一個豎條強制使用幀內預測,第二幀的第二條強制使用幀內預測,直到第四幀的第四條,此時完成一輪重繪,當然這些幀都是P幀,
幀內重繪的優點
1、碼率穩定,所有的P幀由于都有一條區域使用幀內預測模式,其他區域運行率失真優化選擇最優模式,因此每個P幀的大小波動不會太大,
2、降低時延,時延降低主要體現在沒有I幀上,I幀通常較大,在網路傳輸的時候需要將一幀分成很多個包來傳輸,而在解碼端必須等所有的包都到達后才能開始解碼,所以I幀是造成視頻碼流傳輸時延大的主要原因,也就是說瓶頸在I幀這里,在幀內重繪技術上,雖然P幀比傳統GOP結構的P幀要大一些,但總體趨于平穩,并且比I幀要小很多,因此可以快速傳完一幀并解碼,根本上來講其實就是類似傳輸一個大檔案耗時較長,而小檔案較快,
3、關于錯誤恢復,這一點想了很久才明白,我們先考慮一種恢復較快的情況,即運動向量是0的情況,每一幀中的區塊都是參考其前一幀的相應位置的塊,假設第一幀丟失,那么第二幀只有第二條區域可以正常解碼,第三幀的第二條參考第二幀的第二條,那么第三幀的第二條和第三條可以正常解碼,同理,第四幀的二、三、四條可以正常解碼,到第五幀時,整個幀都可以正常解碼,至此視頻恢復正常播放,只需要一個重繪周期就恢復了,再來考慮極端情況,還是從第二幀開始,第二幀只有第二條正常解碼,加入第三幀的除第三條外的其他區域都是參考的第二幀的非第二條區域,那么第三幀就只有第三條可以正常解碼,同理第四幀只有第四條正常,這樣是永遠也無法恢復的,但是現實是不可能這樣的,總有參考到前一幀的幀內重繪條上的塊,這樣正常的塊就會越來越多,從而慢慢恢復正常,
參考文獻
【1】Motion Adaptive Intra Refresh for the H.264 Video Coding Standard
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/261465.html
標籤:其他
上一篇:演算法題庫學習-回文數
下一篇:什么是MVP?
