H.264中的SP幀的實現

從前作H264解碼器時,對SP和SI幀都自動忽略,當作一般的P幀與I幀。可是最近看了一下相關的論文,覺得很有意思。也重新認識了這種新的幀類型。

SP幀要解決的問題之一就是兩個碼流的切換。這兩個碼流可以是相同內容的不同質量的,也可以是不同內容的。這種切換有兩個基本要求:

第一、碼率要平穩;

第二、碼率要小。

SP就是針對這個要求來實現的。IDR幀是天然的切換點。可是,IDR幀的引入不僅會造成碼率的波動,一般也會同時加大碼率。所以引入SP幀來完成類似的任務。假設當前傳輸的節目編號爲1,現在要轉爲播放編號爲2的節目。如果切換點是IDR幀,那這種切換的正確性沒有問題,但是碼率會波動。現在我們設計SP幀來完成相同的功能。在切換點,原始的節目1或2對應的SP幀一般稱爲主SP幀,記作SP1和SP2。現在我們只需傳輸一個輔助SP幀(記作SP1-2,意爲從內容1轉入內容2的SP幀),然後節目2就可以用SP1-2來作爲參考幀,繼續傳輸了。

SP幀作爲切換點,必須保證其重建幀(SP1-2)與切換目標的對應幀(SP2)完全一樣。SP幀的編、解碼的設計也正是針對這一點進行的。換句話說,SP幀的設計目標就是針對不同SP幀的解碼,必須保證其解碼結果一致,即使第個SP幀的參考幀是不同的。

P幀的重建結果是由預測結果加殘差的和決定的(暫不考慮環路濾波)。由於兩個SP幀的參考幀不同,其預測結果也會大相徑庭。而殘差因爲是經過反DCT變換和非線性的反量化而得的,其結果不易控制。所以SP幀的實現採用了不同的解碼流程。其重點就是將預測結果變換、量化爲頻域值。這樣與殘差的相加是在頻域完成的。這樣,在保證了預測的有效性的前提下,較易獲得頻域的相同重建圖像。而相同的頻域圖像變換扣的空域圖像也就相同了。具體實現可參考論文【1】。

由此可見,SP幀的編碼過程與解碼過程與P幀完全不同。要實現SP幀,必須對編碼器與解碼器作相應的改變。


參考文獻:

【1】The SP- and SI-Frames Design for H.264/AVC,by Marta Karczewicz, Ragip Kurceren, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL. 13, NO. 7, JULY 2003


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章