<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

對包括參考圖片集的視頻序列進行編碼和解碼的制作方法

文檔序號:7793862閱讀:329來源:國知局
對包括參考圖片集的視頻序列進行編碼和解碼的制作方法
【專利摘要】提供了對包括參考圖片集(RPS)的視頻序列進行編碼的方法(1000)。所述方法包括:將RPS按照傳輸順序布置(1001)在諸如序列參數集(SPS)之類的數據結構中,確定(1003)顯式RPS傳輸是否被用于視頻序列的當前圖片的RPS,以及僅當使用RPS傳輸時,編碼(1004)對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息,例如delta_idx_minusl。通過僅當使用顯式RPS傳輸時才發送delta_idx_minusl,且否則將delta_idx_minusl解譯為等于0,獲得降低的比特速率。此外,提供了一種對包括RPS的視頻序列進行解碼的方法,對應的計算機程序和計算機程序產品,以及對應的編碼器和解碼器。
【專利說明】對包括參考圖片集的視頻序列進行編碼和解碼

【技術領域】
[0001]本發明涉及一種對包括參考圖片集(RPS)的視頻序列進行編碼的方法,一種對包括RPS的視頻序列進行解碼的方法,對應的計算機程序和計算機程序產品,對應的編碼器和對應的解碼器。

【背景技術】
[0002]高效率視頻編碼(HEVC)是聯合協作團隊-視頻編碼(JCT-VC)中當前正在開發的新的視頻編碼標準。JCT-VC是運動圖片專家組(MEPG)和國際電信聯盟的電信標準分會(ITU-T)之間的協作項目。當前,已經定義了委員會草案,其包括使得HEVC與現有技術的視頻編碼標準(具體地H.264/AVC)相比相當大程度上更加有效的多個新工具。
[0003]HEVC是一種對幀間預測使用多張參考圖片的混合編解碼器。它包括圖片標記過程,在該圖片標記過程中,參考圖片可以被標記為“用于短期參考”、“用于長期參考”或“不用于參考”。如果被標記“不用于參考”,則該參考圖片變成非參考圖片,并且不能再用于幀間預測。被標記為“不用于參考”的圖片不能在后來被重新標記來用于短期或長期參考。
[0004]HEVC中的標記過程由RPS控制。RPS是標識參考圖片的圖片圖片標識符的集合。在每個片中發送RPS,并且RPS中指示的參考圖片將被在解碼器圖片緩沖器(DPB)中保存并被標記為“用于短期參考”或“用于長期參考”。
[0005]作為示例,RPS信息可以包含值“_4,_6,4”。這意味著:可根據(按照顯示順序)從數字-4出現起4幀后的圖片來預測當前圖片(即,從中復制像素)。還將能夠根據6幀后的圖像以及甚至是根據將來四幀的圖像進行預測。因此,除上述三種情況外,解碼器可丟棄其緩沖器中的全部圖片。這對于解碼器而言是一種丟棄圖片的魯棒的方式。實踐中,解碼器可能必須保持這些圖片直至顯示這些圖片,但是這些圖片不能再次用于幀間預測。為了簡化起見,在本公開的剩余部分,該情況將被認為如同是解碼器可丟棄這些圖像。
[0006]有時,包括在RPS中的信息可以非常長。作為示例,以下RPS在HEVC標準化期間用于測試的目:“_3,_2,1,2,5,6”。對該示例RPS進行編碼可能要求高達33比特,其是值得注意的量,特別是在非常低的比特速率以及小的圖像尺寸時。
[0007]一個關鍵的觀察在于:RPS通常不是完全隨機的。相反,RPS能夠被反復地重復使用。作為示例,考慮來自在用于HEVC標準化中的測試目的的配置文件的18張圖像的序列。
[0008]HEVC中的圖片是通過它們的圖片順序計數(POC)值(PicOrderCntVal)(也稱為全POC值)來識別的。這些數字表示圖片的輸出順序,也稱為顯示順序。即,POC = 57的圖片將直接在POC = 56的圖片之后顯示。然而,圖像不總是按照它們所顯示的順序來發送。例如,編碼器可以首先發送POC = O的圖片,接下來POC = 8,接下來POC = 4等。解碼器必須跟蹤圖片并按照正確的順序來顯示圖片。在根據HEVC標準化的示例中,將按照圖1中指示的順序來發送18張圖片。
[0009]如圖1中可以看出,一些RPS被發送若干次。例如,針對POC = 6(2,-4,-6,2)發送的RPS與針對POC = 14發送的RPS相同。因此,除了在片頭中發送RPS之外,標準允許RPS在序列參數集(SPS)中發送。SPS包括不需要針對每片發送的數據。通常,SPS每序列僅發送一次,或每當需要隨機訪問時發送。例如,如果廣播比特流,則每秒發送SPS便可能足夠,由于這將使得每秒對信道進行切換成為可能。應該注意:由于可以每秒對信道進行切換,還需要每秒發送瘦隨機存取(CRA)圖片或即時解碼刷新(IDR)圖片。CRA圖片是不根據任何之前的圖片預測的圖片,并且按照輸出順序在CRA圖片之后沒有圖片根據按照輸出順序在CRA圖片之前的任何圖片進行預測。IDR圖片是如下的CRA:針對該CRA,按照解碼順序在IDR之后沒有圖片可參考(refer to)按照解碼順序在IDR之前的任何圖片。
[0010]如圖2所示,在SPS中可以指定圖1中所示的示例的8個重復RPS,并向它們分配索引。如圖3所示,片頭中發送的信息現在僅能參考SPS中的RPS索引。使用RPS索引與發送RPS自身相比需要更少的比特。
[0011]為此,如圖3所示,使用RPS索引極大地降低了發送RPS所需比特量,由于作為替代用SPS來發送數據塊,其不那么頻繁地發送。此外,結果是有可能甚至進一步壓縮RPS信息。通過比較圖1中的兩行,可以注意到它們之間的相似性。例如,POC = I的RPS中的每個數字等于POC = 6的RPS中的對應數據(如果將其加“5”)。S卩,對于POC = 1,RPS中的第一值“-1等于-6+5。第二值“I”等于-4+5。第三值“3”等于-2+5。該規則的唯一例外是POC= I的RPS中的倒數第二個數字“5”。在POC = 6的RPS中,其將需要“0”,但是圖像不能根據其自身進行預測。
[0012]結果,可根據另一 RPS來預測圖1中的每個RPS。這導致了以下描述SPS中的RPS數據(例如,圖1中的RPS數據)的方法:
[0013]-對于每一行(即,RPS),指定應當根據哪些其他RPS進行幀間預測。例如,通過在delta_idx_minusl中發送值“_1 ”來指示根據之前的RPS進行預測,delta_idx_minusl是SPS中的參數(參見短期RPS語法,圖4)。
[0014]-接著,使用SPS 中的參數值 delta_rps_sign 和 abs_delta_rps_minusl 來發送要添加的值,在本示例中是“5” (參見短期RPS語法,圖4)。
[0015]通過用這種方式來發送RPS信息能夠節省許多比特。所節省比特的量是用于發送SPS中的RPS的比特的大約50%,這是針對用于對HEVC參考圖片結構進行測試的配置文件的較早版本測量到的。由于SPS數據是總視頻比特流數據的非常小的一部分,總效果小于50 %,但是高效地壓縮數據仍然是重要的。
[0016]通常,一旦在SPS中發送RPS,則在后的片通過使用RPS索引來簡單地指示應當使用哪個RPS。然而,在一些情況中,編碼器可能想要使用不在SPS中的RPS。如上述,編碼器于是選擇顯式地發送RPS (即,在片中)。使用參數inter_ref_pic_set_predict1n_flag針對每個RPS發信號通知是使用巾貞間預測還是逐值地對RPS進行編碼,inter_ref_pic_set_predict1n_flag 是圖 4 中所不的短期 RPS 的一部分。如果 inter_ref_pic_set_predict1n_flag等于O,則使用逐值發送RPS的方法,否則將巾貞間預測用于發信號通知RPS。


【發明內容】

[0017]本發明的目的是提供以上技術和現有技術的改進備選。
[0018]更具體地,本發明的目的是提供發信號通知RPS的改進方法。
[0019]如通過獨立權利要求定義的,通過發明的不同方案實現本發明的這些和其它目的。本發明的實施例由從屬權利要求進行表征。
[0020]根據本發明的第一方案,提供了一種對視頻序列進行編碼的方法。所述視頻序列包括RPS,具體地,短期RPS。所述方法包括:按照傳輸順序將所述RPS布置在數據結構中,確定是否針對所述視頻序列的當前圖片的RPS使用顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,編碼對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
[0021]根據本發明的第二方案,提供了一種計算機程序。所述計算機程序包括計算機程序代碼。如果在處理器上執行所述計算機程序代碼,則所述計算機程序代碼適于實現根據本發明第一方案中的方法。
[0022]根據本發明的第三方案,提供了一種計算機程序產品。計算機程序產品包括計算機可讀存儲介質。計算機可讀存儲介質具有根據本發明的第二方案的計算機程序。
[0023]根據本發明的第四方案,提供了一種對視頻序列進行解碼的方法。所述視頻序列包括在RPS,具體地,短期RPS。所述方法包括:接收包括按照傳輸順序布置的RPS的數據結構,確定是否針對所述視頻序列的當前圖片的RPS使用了顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,接收對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
[0024]根據本發明的第五方案,提供了一種計算機程序。計算機程序包括計算機程序代碼。如果在處理器上執行所述計算機程序代碼,則所述計算機程序代碼適于實現根據本發明第四方案中的方法。
[0025]根據本發明的第六方案,提供了一種計算機程序產品。計算機程序產品包括計算機可讀存儲介質。計算機可讀存儲介質具有根據本發明第五方案的計算機程序。
[0026]根據本發明的第七方案,提供了一種用于對視頻序列進行編碼的編碼器。視頻序列包括RPS,具體地,短期RPS。編碼器包括處理器和存儲器。存儲器包括可以由處理器執行的指令,其中解碼器用于:按照傳輸順序將所述RPS布置在數據結構中,確定是否針對所述視頻序列的當前圖片的RPS使用顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,編碼對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
[0027]根據本發明的第八方案,提供了一種用于對視頻序列進行解碼的解碼器。視頻序列包括RPS,具體地,短期RPS。解碼器包括處理器和存儲器。存儲器包括可由處理器執行的指令,由此解碼器用于:接收包括按照傳輸順序布置的RPS的數據結構,確定是否針對所述視頻序列的當前圖片的RPS使用了顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,接收對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
[0028]本發明利用以下理解:通過使用RPS的幀間預測,可以更有效率地執行對RPS (具體地短期RPS)的編碼和發信號通知。為此,在數據結構(例如SPS)中按照傳輸順序來布置RPS。僅當對于當前圖片的RPS使用顯式傳輸時,從編碼器向解碼器發信號通知對數據結構中包括的哪個RPS被用于預測當前圖片的RPS進行指示的信息,該發信號通知是通過編碼該信息來進行的。換言之,如果要求對視頻序列進行解碼,僅發信號通知對按照傳輸順序布置的RPS中哪個RPS應當用于預測進行描述的信息。該信息可以被編碼到當前圖片的RPS(具體地短期RPS)中。本發明的實施例是有益的,因為能夠根據在SPS中發信號通知的RPS來預測當前圖片的RPS,由此減少發信號通知RPS所需的比特數,因此降低編碼后的視頻序列的比特速率。此外,所提出的對RPS進行編碼和發信號通知RPS的方法與現有技術中已知的方法相比較不復雜。
[0029]貫穿本公開,應該理解:被編碼并通過通信網絡從編碼器向解碼器發信號通知或者發送的信息(例如信元、參數、值等)。因此在解碼器處接收這種信息,并且可以對這種信息進行解碼并且后續用于解碼過程中。
[0030]根據本發明的實施例,方法還包括確定幀間預測是否用于當前圖片的RPS,并且僅當使用RPS顯式傳輸和幀間預測時,才編碼對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息。即,僅當將幀間預測用于顯式傳輸的RPS時,才向解碼器發信號通知對數據結構中包括的哪個RPS被用于幀間預測進行指示的信息。在顯式傳輸的RPS被逐值進行編碼(S卩,不使用幀間預測)的情況下,不對該信息進行編碼和發信號通知。例如可以利用參數從編碼器向解碼器發信號通知是否使用幀間預測。這是有益的,因為考慮到了發信號通知RPS的全部備選方式,并降低了發信號通知RPS所需要的比特數。
[0031]根據本發明的實施例,對數據結構進行編碼包括:根據按照傳輸順序直接在至少一個RPS之前的RPS,預測該至少一個RPS。具體地,如果沒有使用顯示RPS傳輸,則應用這一點。根據包括在數據結構中的另一 RPS(例如,按照傳輸順序在該RPS之前的RPS)來預測包括在數據結構中的RPS是有益的,因為降低了發信號通知RPS所需比特數。將理解:幀間預測不能用于按照傳輸順序的第一個RPS。作為使用幀間預測的備選方式,可以逐值對RPS進行編碼。
[0032]根據本發明的實施例,所述方法還包括:向數據結構中包括的每個RPS分配索引,以及其中,對要被用于預測當前圖片的RPS的RPS進行指示的信息指定當前圖片的RPS的索引與用于預測的RPS的索引之間的差。這種編碼對要將哪個RPS用于幀間預測進行指示的信息的方式是有益的,因為降低了傳送該信息所需的比特數,特別是在采用了可變長度編碼(VLC)的情況下。例如,可以使用HEVC參數delta/_idx_minusl對該信息進行編碼,HEVC參數delta/_idx_minusl是圖4中所示的短期RPS語法的一部分。
[0033]根據本發明的實施例,數據結構為SPS。
[0034]根據本發明的實施例,確定是否使用顯式RPS傳輸包括:確定當前圖片的RPS的索引是否等于SPS中包括的RPS的數量。這是確定是否使用顯式傳輸的高效方式,因為包括在SPS中的RPS (具體地短期RPS)的數目被在SPS中發信號通知,并且因此在編碼器和解碼器二者處均知曉。
[0035]根據本發明的實施例,確定是否使用顯式RPS傳輸包括:確定是否將當前圖片的RPS編碼在當前圖片的片頭中。這是確定是否使用顯式RPS傳輸的備選方式。為此,檢視片頭以檢查RPS是否被編碼進片頭中。
[0036]盡管已經在一些情況下參照本發明的第一或第四方面描述了本發明的益處,對應的理由適用于本發明的其他方面的實施例。
[0037]當研讀以下詳細公開、附圖和所附的權利要求時,本發明的其他目的、特征和益處將變得明顯。本領域技術人員意識到可以組合本發明的不同特征,來創建除以下描述的實施例以外的實施例。

【專利附圖】

【附圖說明】
[0038]參照附圖,將通過本發明的以下說明性和實施例的非限制性詳細描述來更好地理解,本發明的以上和附加目的、特征和益處,,其中:
[0039]圖1是RPS的示例。
[0040]圖2示出了對SPS中的示例RPS進行編碼。
[0041]圖3示出了對片頭中的示例RPS進行編碼。
[0042]圖4是示出了短期RPS的已知語法。
[0043]圖5示出了根據本發明的實施例,按照嚴格的傳輸順序的示例圖片序列。
[0044]圖6示出了根據本發明的實施例,按照較不嚴格的傳輸順序的示例圖片序列。
[0045]圖7示出了根據本發明的實施例,按照傳輸順序對SPS中的示例RPS進行編碼。
[0046]圖8示出了根據本發明的實施例,提出的短期RPS語法。
[0047]圖9示出了根據本發明的實施例的比特流。
[0048]圖10示出了根據本發明的實施例對RPS進行編碼的方法。
[0049]圖11示出了根據本發明的實施例對RPS進行解碼的方法。
[0050]圖12示出了根據本發明的實施例的編碼器和解碼器。
[0051]全部附圖是示意性的,不必縮放,并且通常僅示出必要部分以便對發明進行解釋,其中可以忽略其他部分或只是建議性的。

【具體實施方式】
[0052]以下,現在將參照附圖更全面地描述本發明,其中示出了本發明的特定實施例。然而,本發明可以用多種不同形式來體現,并且不應當被解釋為限制這里所闡述的實施例。然而,通過示例給出這些實施例,使得本公開將透徹和完整,并且向本領域技術人員充分地傳達本發明的范圍。
[0053]所提出的發信號通知RPS的方式是基于將RPS按照傳輸順序布置到數據結構中(例如SPS)。存在不同類型的傳輸順序,具體地:嚴格的傳輸順序,基于圖片組(GOP)的傳輸順序以及一般性的傳輸順序。以下,參照附圖5描述了嚴格的傳輸順序,其示出了 16張圖片的序列。
[0054]按照嚴格的發送順序,將RPS按照與使用它們的順序完全相同的順序(S卩,按照圖5中示出的順序)進行編碼(該順序是用來對圖像進行解碼的順序(即,解碼順序)),直至不再有要發送的RPS為止(P0C = 17的圖片將重復使用第12行中的RPS,P0C = 18將重復使用第13行中的RPS,POC = 19將重復使用第14行中的RPS,POC = 20將重復使用第15行中的RPS,POC = 21將重復使用第12行中的RPS,依此類推)。在這種情況下,我們保證根據之前的行(即RPS)進行預測將起作用。
[0055]然而,這是充分而非必要條件。存在其他的不那么嚴格的傳輸順序,其也允許根據之前的RPS行進行預測。一種方式是改變GOP的順序。由于可用于預測的圖片主要是通過GOP內的位置來確定的,有時可以根據之前的GOP的最后RPS來預測某個GOP的第一個RPS。例如,可能是圖6中所示的順序。在圖6中,SPS中的第二 GOP組比之前的(第一)GOP組具有更低的GOP編號,并且可以因此根據具有索引3的行來預測具有索引4(G0P = O)的行。
[0056]按照傳輸順序的傳輸的備選定義如下:如果RPS B在RPS A后面下一個發送,并且存在使用RPS A的圖片X和使用RPS B的圖片Y,并且圖片Y是按照解碼順序在圖片X之后的圖片,則認為按照相對于RPS B的傳輸順序來發送RPS A0
[0057]類似的,但是關于按照傳輸順序的存儲的定義如下:如果RPS B的索引等于RPS A的索引加1,并且存在使用RPS A的圖片X和使用RPS B的圖片Y,并且圖片Y是按照解碼順序在圖片X之后的圖片,則認為按照相對于RPS B的傳輸順序來存儲RPS A0
[0058]此外,對RPS進行編碼和發信號通知的過程依賴RPS是顯式發送還是隱式發送。如果RPS在數據結構中(例如SPS)是每個序列發送一次或每秒發送一次,則每個片(在多數情況下指的是幀)在SPS中可以參考RPS(即RPS索引)。這被稱為隱式RPS傳輸。
[0059]備選方案是在片頭中直接發送RPS。這被稱為顯式RPS傳輸,并且能夠用于以下情況:解碼器不能使用SPS中的RPS,或想要使用沒有包括在激活的SPS中的RPS。
[0060]如上文描述的,如果使用顯式RPS傳輸,存在兩種用于編碼RPS的備選方式,使用幀間預測或逐值逼近來進行編碼。如果使用幀間預測,則指定根據哪個RPS (或數據結構中的RPS列表的哪一排)來預測是重要的。由于編碼器可以針對任何幀選擇對RPS進行顯式編碼,解碼器不能知曉哪一行更有可能。因此,如果將幀間預測用于顯式RPS傳輸,則要求對數據結構(即SPS)中包括的RPS之一進行標識的信息。可以在參數delta_idx_minusl發信號通知該信息。
[0061]然而,不明顯的觀察是:這不是對SPS中的RPS進行編碼的情況。在按照傳輸順序來發送RPS的情況下,對于除了 SPS中的第一 RPS之外的每個RPS,直接在該RPS之前的RPS必須包括可以用于該RPS的全部圖像(除了該之前的幀自身之外)。因此,當對SPS中的RPS進行編碼時,變量delta_idx_minusl等于O并且不必發送。
[0062]為了進一步說明本觀察,在圖7中再次示出圖2中的RPS,但寫出了 POC號以及增量P0C(即之前的POC號與當前POC號之間的差)。
[0063]參照附圖7,編碼器首先將必須發送POC = O的第一圖片,不能根據任何之前的圖片預測的內部圖片(intra-1mage)。第二圖片(即圖7中的第一行),將具有POC = 8和增量POC = 0-8 = -8。由于不存在POC = O以外的其他發送的圖片,POC = 8圖片可以參考的唯一圖片是POC = O。因此,-8是RPS中的僅有可能值。
[0064]現在,考慮具有POC = 4的第二發送的圖片。可用的僅有的兩張圖片是由增量POC=4表示的前一圖像POC = 8,和POC = O的第一圖像。如果其不是之前的圖片,其必須在之前的RPS中可用,否則解碼器可能已經將其丟棄。第二圖片因此必須具有可以根據之前的的RPS (其僅包含-8)推導出的POC值。將增量POC = 4添加至該值得到_4,其是RPS中的第二值。
[0065]因此,應該清楚:如果按照傳輸順序來存儲RPS,則全部RPS必須a)向該之前的RPS中的值添加AP0C,根據之前的RPS是可重建或可預測的,或b)其必須是增量POC本身。
[0066]如果不是這樣,即,如果值既不是a)也不是b),則值不能根據之前的RPS中的任何值來預測,并且解碼器已經丟棄圖片并且不能參考該圖片。僅有的例外是不在之前的RPS中的之前的圖片,由于圖片不根據其自身來預測,并且這就是b)。
[0067]基于該原因,應當清楚,如果將RPS按照傳輸順序布置在SPS中并對RPS進行編碼,則可以忽略參數delta_idx_minusl,以節省復雜度和比特。然而,當顯式地發送RPS時,為了將該RPS用于幀間預測,訪問SPS中的任何RPS是所希望的。在這種情況下,使用delta_idx_minusl來發信號通知要根據其來進行預測的RPS。因此,提出檢查是否結合幀間預測使用顯式RPS傳輸。如果使用顯式RPS傳輸,則執行幀間預測,將傳輸delta_idx_minusl,否則將其忽略。
[0068]應注意,如可以從圖4示出的的短期RPS語法看出,僅當使用幀間預測時,才出現是否發信號通知delta_idx_minusl的問題。條件語句在第3行,
[0069]if(inter_ref_pic_set_predict1n_flag)
[0070]檢查是否使用了幀間預測。為此,僅當條件語句取值為真時(即僅當使用幀間預測時),才發信號通知delta_idx_minusl。
[0071]在圖8中示出的所提出的短期RPS語法來反映所提出的對RPS進行編碼和解碼的方式,具體地,關于顯式或隱式傳輸來進行。
[0072]在圖8中示出的短期RPS語法中,引入新的條件語句:
[0073]if (idx == num_short_term_ref_pic_sets)
[0074]如果該語句取值為“真”,則顯式RPS傳輸被用于當前圖片,并且解碼器需要對delta_idx_minusl進行解碼。否則,條件語句取值為假,則RPS是在SPS中發信號通知的RPS之一,并且delta_idx_minusl被推斷為等于O,即執行根據直接在之前的RPS的巾貞間預測。Ui圖4中示出的已知短期RPS—致,僅當使用幀間預測時,才出現是否發信號通知delta_idx_minusl的問題。這可以從圖8中示出的所提出的短期RPS的第三行中的條件語句中看出,其與圖4中示出的已知短期RPS的條件語句是一致的。
[0075]更具體地,根據圖8中示出的語法的處理在創建SPS時(即,每個序列一次或每秒一次)執行,以及可選地針對當前圖片的片頭,在編碼器采用顯式RPS傳輸的情況下執行。在第一種情況下,idx的值將從O到值num_short_term_ref_pic_sets_l (即在SPS中發信號通知的短期RPS的數量減I)變化。在第二種情況中,當使用顯式RPS傳輸時,idx的值將等于 num_short_term_ref_pic_set0 由此,可以通過將 idx 與 num_short_term_ref_pic_set進行比較來確定是否使用顯式RPS傳輸,如同由條件語句中所做的那樣。
[0076]作為備選,可以設想本發明的基于另一參數other_parameter的實施例,該另一參數other_parameter當在SPS創建期間被調用時(即以上描述的第一種情況)等于O,以及當在片頭的創建期間被調用時等于I。在這種情況下,對應的條件語句為
[0077]if(other_parameter)?
[0078]作為又一一備選,當創建SPS時可以執行用于創建短期RPS的一個功能,以及可執行當創建片頭時的另一功能。為此,第一功能將不發送/接收參數delta_idx_minusl,但是第二功能將發送/接收參數delta_idx_minusl。
[0079]初看,圖8中示出的所提出的短期RPS語法看起來與圖4中示出的當前標準相比已經增加了復雜度,部分地由于第4行上的額外的條件語句。然而,應該注意:與僅對條件語句進行取值相比,對值delta_idx_minusl進行解碼更為復雜。此外,由于非顯式RPS傳輸被用于大多數圖片,幾乎不執行附加的條件語句。
[0080]為了進一步闡明本發明,現在參照附圖9描述本發明的實施例的說明性示例,圖9示出了包括SPS 901和三個片(“片2”902、“片3”903和“片4”904)的比特流900。比特流900可以包括附加的元素,其在圖9中忽略。
[0081]除其他數據,SPS 901包括5個RPS 905。可以通過逐值編碼的方式來在SPS中發送RPS,如果RPS中值的數量較小,在許多情況下這是最高效的方式。例如,RPS列表905 ({-8})中的第一 RPS可被如下逐值發送:
[0082]inter_ref_set_predict1n_flag = O
[0083]num_negative_pics = I
[0084]num_positive_pics = 0
[0085]delta_poc_sO_minusl [0] =8
[0086]used_by_cur_flag[0] = I
[0087]作為備選,也可以使用幀間預測來發送包括在SPS中的RPS,例如RPS列表905 ({-4,4})的中第二 RPS。由于在SPS 901中發信號通知RPS,即非顯式的,因為幀間預測是根據之前的行(該之前的行在當前示例中僅包括單值{-8})來執行的,不需要發信號通知描述根據哪一 RPS進行預測的信息。因此,第二 RPS被如下發送:
[0088]inter_ref_set_predict1n_flag = I
[0089]delta_rps_sign = O
[0090]abs_delta_rps_minusl = 3
[0091]解碼器將能夠如下重建第二 RPS。首先,計算deltaRps = (l_2*delta_rps_sign)*(abs_delta_rps_minusl+l) = 4 并與將其與值{-8}(第一 RPS)相加,得到作為第二 RPS 的第一值的 _4。第二 RPS 的第二值是 delta_rps_value 本身(delta_rps = 4)。因此,第二 RPS被重建為{-4,4}。這里強調,不針對第二 RPS發送delta_idx_minusl,因為推斷該 delta_idx_minusl 等于 O。
[0092]因此,如上文描述的,可以逐值地或使用幀間預測來發送SPS 901中的RPS列表905的剩余RPS。例如,可以使用幀間預測來發信號通知第三RPS{-2,-4,_6,2},而可以逐值地發信號通知第四RPS{-1,1,3,5,7}。
[0093]進一步參照圖9中示出的比特流900,片2 902示出了 RPS的隱式傳輸。為此,片2 902包括指示909要使用RPS列表905中的哪種RPS的信息,例如RPS索弓丨“#1”。因此,對于片2 902,編碼器發送:
[0094]short_term_ref_pic_set_sps_f lag = I
[0095]以指示應當使用來自SPS 901中的RPS列表905的RPS,并且之后發送:
[0096]short_term_ref_pic_set_idx = I
[0097]以指示應當使用列表905中具有索引“#1”的第二 RPS。
[0098]作為另一示例,假設在比特流900中發送的片3 903不能使用在SPS 901中發信號通知的RPS列表905的任何RPS,而是代之以顯式發信號通知RPS 907。存在兩種顯式發信號通知的方式,并且在本示例中片3 903使用逐值編碼的方法。因此,編碼器發送:
[0099]inter_ref_set_predict1n_flag = O
[0100]num_negative_pics = I
[0101]num_positive_pics = 2
[0102]delta_poc_sO_minusl[0] = I
[0103]used_by_cur_flag[0] = I
[0104]delta_poc_sl_minusl[0] = I
[0105]used_by_cur_flag[0] = I
[0106]delta_poc_sl_minusl[I] =3
[0107]used_by_cur_flag[l] = I
[0108]以發信號通知RPS 907 ({-2,2,6})。在該集合中負的圖片的數量是I個(_2),并且正的圖片的數量是2個(2和6)。負值被相對于O進行編碼(delta_pOC_s0[0] = 2),并且類似地對第一正值進行編碼。最后,對兩個正值之間的差值出-2 = 4)進行編碼(delta_poc_sl[I] = 4)ο
[0109]參照比特流900的片4 904說明其他顯式編碼的方式。片4 904使用幀間預測,但是由于RPS被顯式發送,必須提供指示910根據RPS列表905中的哪個RPS來進行預測的信息908。在本示例中,這是通過RPS索引“#2”908來指示的。因此,在片4 904中發送以下內容:
[0110]inter_ref_set_predict1n_flag = I
[0111]delta_idx_minusl = 2
[0112]num_negative_pics = I
[0113]num_positive_pics = 0
[0114]delta_poc_sO_minusl [0] =8
[0115]used_by_cur_flag[0] = I
[0116]解碼器現在根據下式來計算RefRpsIdx:
[0117]RefRpsIdx = stRpsIdx-(delta_idx_minusl+l)
[0118]在本示例中,SPS 901中的RPS列表905包括5個RPS。因此,stRpsIdx將等于5,并且RefRPSIdx被取值為5-(2+1) = 2,其是第三RPS ({-2,-4,-6,2})的索引。在片4904的情況下,必須發送delta_idx_minusl以指示根據哪個RPS來進行預測。除了 RPS索引908,發信號通知對如何進行預測進行描述的信息(“預測數據”908)。
[0119]以下,針對解碼器描述圖9中示出的示例。解碼器首先接收包括RPS列表905的SPS 901。包括在列表905中的RPS可以被逐值接收或使用幀間預測接收。例如,通過接收以下內容來逐值接收第一 RPS ({-8}):
[0120]inter_ref_set_predict1n_flag = O
[0121]num_negative_pics = I
[0122]num_positive_pics = 0
[0123]delta_poc_sO_minusl [0] =8
[0124]used_by_cur_flag[0] = I
[0125]另一方面,可以使用幀間預測來接收第二 RPS ({-4,4})。然而,由于RPS被包括在SPS 901中,該RPS不被顯式接收,并且因此不接收delta_idx_minusl。因此,對于第二 RPS,由解碼器接收以下內容:
[0126]inter_ref_set_predict1n_flag = I
[0127]delta_rps_sign = 0
[0128]abs_delta_rps_minusl = 3
[0129]解碼器將能夠重建deltaRps = (l_2*delta_rps_sign) * (abs_delta_rps_minusl+1) =4。于是,將deltaRps添加至值{-8}(來自第一 SPS)得到第二 RPS的第一值-4。第二 RPS的第二值是delta_rps-value本身(4),并且RPS因此被預測為{_4,4}。如上所述,在SPS 901中發信號通知的其他RPS可被逐值接收或使用幀間預測接收。
[0130]對于片2 902,通過接收RPS索引906 ( “#1”)來隱式接收RPS,RPS索引906指向909SPS 901中的RPS列表905中的第二 RPS。片3903顯式發送其被逐值進行編碼的RPS907。
[0131]使用幀間預測來顯式接收片4 904的RPS。因此,除了描述如何預測的信息(“預測數據”908)之外,接收對RPS列表905中要被用于幀間預測的RPS進行指示的信息908 (RPS索引“#2”)。在這種情況下,接收deltajdxjninusl是必要的,并且由解碼器來接收以下信息:
[0132]inter_ref_set_predict1n_flag = I
[0133]delta_idx_minusl = 2
[0134]num_negative_pics = I
[0135]num_positive_pics = 0
[0136]delta_poc_sO_minusl [0] =8
[0137]used_by_cur_flag[0] = I
[0138]這里強調:為了使用幀間預測來顯式地接收片4 904的RPS,接收delta_idx_minusl是必要的。
[0139]圖10中示出了對包括RPS的視頻序列進行編碼的方法的實施例。方法1000開始于按照傳輸順序將RPS布置1001在數據結構(例如SPS)中,并發送1001該數據結構。后續地,確定1002是否使用幀間預測。如上文所描述的,并且是本領域公知的,例如,這可以通過使用inter_ref_set_predict1n_flag來實現。如果使用巾貞間預測(圖10中的“是”),確定1002對于視頻序列的當前圖片的RPS是否使用顯式RPS傳輸,即,是否在當前圖片的片頭中發信號通知RPS。如果使用顯式傳輸,即,如果在當前圖片的片頭中發信號通知RPS,編碼并發送1004對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息(例如delta_idx_minusl)。僅當使用顯式RPS傳輸的時才發送1004該信息,否則不發送1005該信息。同樣,如果不使用1002幀間預測(圖10中的“否”),不發信號通知對要用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息(例如delta_idx_minusl)。應該理解,本發明的實施例不限于圖10中示出的嚴格的步驟順序。例如,可以設想本發明的實施例首先確定顯式RPS傳輸是否用于視頻序列的當前圖片的RPS,即是否在當前圖片的片頭中發信號通知RPS,以及后續確定是否使用幀間預測。
[0140]圖11中示出了對包括RPS的視頻序列進行解碼的方法。方法1100包括接收1101包括按照傳輸順序進行布置的RPS的數據結構,以及確定1102是否使用幀間預測。如上文描述的,例如,這可以通過檢查inter_ref_set_predict1n_flag來實現。如果使用巾貞間預測(圖11中的“是”),確定1103顯式RPS傳輸是否被用于視頻序列的當前圖片的RPS,即,是否在當前圖片的片頭中發信號通知RPS。如果使用顯式傳輸,即,如果在當前圖片的片頭中發信號通知RPS,則接收1104對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息,例如delta_idx_minusl。僅當使用顯式RPS傳輸時才接收1104該信息,否則不接收1105該信息。如果信息是delta_idx_minusl, delta_idx_minusl指定當前圖片的RPS的索引與用于預測的RPS的索引之間的差,則delta_idx_minusl代之以被解譯1105為等于0,即,之前的RPS被用于幀間預測。如果不使用幀間預測1102(圖10中的“否”),則不接收對用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息,例如delta_idx_minusl。應該理解,本發明的實施例不限于圖11中示出的嚴格的步驟順序。。例如,可以設想本發明的實施例首先確定顯式RPS傳輸是否用于視頻序列的當前圖片的RPS,即是否在當前圖片的片頭中發信號通知RPS,以及后續確定是否使用幀間預測。
[0141]在圖12中,示出了用于對包括RPS的視頻序列進行編碼的編碼器的實施例和用于對包括RPS的視頻序列進行解碼的解碼器的實施例。
[0142]編碼器1200包括處理器1201和包括可以由處理器1201執行的指令1203的存儲器,由此編碼器1200可用于按照傳輸順序將RPS布置在數據結構中,確定是否針對視頻序列的當前圖片的RPS使用顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,編碼對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息1220,例如delta_idx_minusl。
[0143]解碼器1210包括處理器1211和包括可由處理器1211執行的指令1213的存儲器1212,由此解碼器1210可用于接收包括按照傳輸順序布置的RPS的數據結構,確定是否針對視頻序列的當前圖片的RPS使用了顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,接收對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息1220,例如delta—idx—minuslο
[0144]應該注意,這里描述的實施例涉及視頻編碼器和解碼器,以及比特流解析器、編碼轉換器、網絡節點等。編碼器和解碼器的實施例可以在諸如攝像機、顯示器、平板設備、數字電視接收機、網絡節點等的設備中實現。盡管圖12中示出了發送參數delta_idx_minusl,應理解,根據本發明的實施例,僅當使用顯式RPS傳輸時才發送delta_idx_minusl。
[0145]還應該理解:貫穿該文檔對deltajdxjninusl的使用僅是針對于如何指示應該將哪一個RPS用于幀間預測的示例,并且顯然讀者可以使用其他發信號通知的方案。在這一方面,對delta_idx_minusl的任何參考應當被理解為對要根據哪一 RPS來進行預測的指示符。
[0146]還應該注意:盡管本文中的實施例將RPS描述為是SPS的一部分,RPS也可以包括在其他數據結構中,例如,PPS或任何其他參數集。
[0147]作為參照附圖12描述的編碼器1200的備選,編碼器的實施例還可以包括被配置為執行以下操作的裝置:將RPS按照傳輸順序布置在數據結構中,確定是否針對視頻序列的當前圖片的RPS使用顯式傳輸,以及僅當使用顯式RPS傳輸時,編碼對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息,例如delta_idx_minusl。
[0148]作為另一備選,編碼器的實施例還可以包括用于將RPS按照傳輸順序布置在數據結構中的裝置,用于確定是否針對視頻序列的當前圖片的RPS使用顯式傳輸的裝置,以及用于僅當使用顯式RPS傳輸時,編碼對要被用于預測當前圖片的RPS的、包括在數據結構中的RPS進行指示的信息(例如delta_idx_minusl)的裝置。
[0149]作為參照圖12描述的解碼器1210的備選,解碼器的實施例還可以包括執行以下操作的裝置:接收包括按照傳輸順序布置的RPS的數據結構,確定是否針對所述視頻序列的當前圖片的RPS使用了顯式RPS傳輸,以及僅當使用顯式RPS傳輸時,接收對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息,例如delta_idx_minusl。
[0150]作為另一備選,解碼器的實施例還可以包括用于接收包括按照傳輸順序布置的RPS的數據結構的裝置,用于確定是否針對所述視頻序列的當前圖片的RPS使用了顯式RPS傳輸的裝置,以及用于僅當使用顯式RPS傳輸時,接收對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息(例如delta_idx_minusl)的裝置。
[0151]本領域技術人員將認識到:本發明絕不局限于以上描述的實施例。相反,可以在所附的權利要求的范圍內做出許多修改和變型。
【權利要求】
1.一種對包括參考圖片集“RPS”的視頻序列進行編碼的方法(1000),所述方法包括: 按照傳輸順序將所述RPS布置(1001)在數據結構中, 確定(1003)是否針對所述視頻序列的當前圖片的RPS使用顯式RPS傳輸,以及 僅當使用顯式RPS傳輸時,編碼(1004)對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息(1220)。
2.根據權利要求1所述的方法,還包括: 確定(1002)是否將幀間預測用于所述當前圖片的RPS,以及其中,僅當使用顯示RPS傳輸和幀間預測時,才編碼(1004)對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
3.根據權利要求1或2所述的方法,其中,根據按照傳輸順序直接在所述數據結構中布置的RPS中的至少一個RPS之前的RPS,預測所述至少一個RPS。
4.根據權利要求1至3中任一項所述的方法,還包括:向所述數據結構中包括的每個RPS分配索引,以及其中,對要被用于預測所述當前圖片的RPS的RPS進行指示的信息指定所述當前圖片的RPS的索引與用于預測的RPS的索引之間的差。
5.根據權利要求1至4中任一項所述的方法,其中,所述數據結構是序列參數集“SPS”。
6.根據權利要求5所述的方法,其中,確定(1003)是否使用顯式RPS傳輸包括:確定所述當前圖片的RPS的索引是否等于所述SPS中包括的RPS的數量。
7.根據權利要求1至5中任一項所述的方法,其中,確定(1003)是否使用顯式RPS傳輸包括:確定是否將所述當前圖片的RPS編碼在所述當前圖片的片頭中。
8.一種包括計算機程序代碼的計算機程序(1203),如果在處理器(1201)上執行所述計算機程序代碼,所述計算機程序代碼適于實現根據權利要求1至7中任一項所述的方法。
9.一種包括計算機可讀存儲介質(1202)的計算機程序產品,所述計算機可讀存儲介質具有根據權利要求8所述的計算機程序(1203)。
10.一種對包括參考圖片集“RPS”的視頻序列進行解碼的方法(1100),所述方法包括: 接收(1101)包括按照傳輸順序布置的RPS的數據結構, 確定(1103)是否針對所述視頻序列的當前圖片的RPS使用了顯式RPS傳輸,以及 僅當使用顯式RPS傳輸時,接收(1104)對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
11.根據權利要求10所述的方法,還包括: 確定(1102)幀間預測是否被用于所述當前圖片的RPS,以及其中,僅當使用顯示RPS傳輸和幀間預測時,才接收(1104)對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息(1220)。
12.根據權利要求10或11所述的方法,還包括:根據按照傳輸順序直接在所述RPS之前的RPS,預測至少一個RPS。
13.根據權利要求10至12中任一項所述的方法,其中,索引被分配給所述數據結構中包括的每個RPS,以及,對要被用于預測所述當前圖片的RPS的RPS進行指示的信息指定所述當前圖片的RPS的索引與用于預測的RPS的索引之間的差。
14.根據權利要求10至13中任一項所述的方法,其中,所述數據結構是序列參數集“SPS”。
15.根據權利要求14所述的方法,其中,確定(1103)是否使用顯式RPS傳輸包括:確定所述當前圖片的RPS的索引是否等于所述SPS中包括的RPS的數量。
16.根據權利要求10至14中任一項所述的方法,其中,確定(1103)是否使用顯式RPS傳輸包括:確定所述當前圖片的RPS是否被編碼在所述當前圖片的片頭中。
17.—種包括計算機程序代碼的計算機程序(1213),如果在處理器(1211)上執行所述計算機程序代碼,所述計算機程序代碼適于實現根據權利要求10至16中任一項所述的方法。
18.—種包括計算機可讀存儲介質(1212)的計算機程序產品,所述計算機可讀存儲介質具有根據權利要求17所述的計算機程序(1213)。
19.一種對包括參考圖片集“RPS”的視頻序列進行編碼的編碼器(1200),所述編碼器包括處理器(1201)和存儲器(1202),所述存儲器(1202)包括能夠由所述處理器執行的指令,由此,所述編碼器用于: 按照傳輸順序將所述RPS布置在數據結構中, 確定是否針對所述視頻序列的當前圖片的RPS使用顯式RPS傳輸,以及 僅當使用顯式RPS傳輸時,編碼對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息(1220)。
20.根據權利要求19所述的編碼器,還用于: 確定是否將幀間預測用于所述當前圖片的RPS,以及其中,僅當使用顯示RPS傳輸和幀間預測時,才編碼對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
21.根據權利要求19或20所述的編碼器,其中,根據按照傳輸順序直接在所述數據結構中布置的RPS中的至少一個RPS之前的RPS,預測所述至少一個RPS。
22.根據權利要求19至21中任一項所述的編碼器,還用于:向所述數據結構中包括的每個RPS分配索引,以及其中,對要被用于預測所述當前圖片的RPS的RPS進行指示的信息指定所述當前圖片的RPS的索引與用于預測的RPS的索引之間的差。
23.根據權利要求19至22中任一項所述的編碼器,其中,所述數據結構是序列參數集“SPS”。
24.根據權利要求23所述的編碼器,還用于:通過確定所述當前圖片的RPS的索引是否等于所述SPS中包括的RPS的數量來確定是否使用顯式RPS傳輸。
25.根據權利要求19至24中任一項所述的編碼器,還用于:通過確定是否將所述當前圖片的RPS編碼在所述當前圖片的片頭中來確定是否使用顯式RPS傳輸。
26.—種對包括參考圖片集“RPS”的視頻序列進行解碼的解碼器(1210),所述解碼器包括處理器(1211)和存儲器(1212),所述存儲器包括能夠由所述處理器執行的指令,由此,所述解碼器用于: 接收包括按照傳輸順序布置的RPS的數據結構, 確定是否針對所述視頻序列的當前圖片的RPS使用了顯式RPS傳輸,以及 僅當使用顯式RPS傳輸時,接收對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息(1220)。
27.根據權利要求26所述的解碼器,還用于: 確定幀間預測是否被用于所述當前圖片的RPS,以及其中,僅當使用顯示RPS傳輸和幀間預測時,才接收對要被用于預測所述當前圖片的RPS的、包括在所述數據結構中的RPS進行指示的信息。
28.根據權利要求26或27所述的解碼器,還用于:根據按照傳輸順序直接在所述RPS之前的RPS,預測至少一個RPS。
29.根據權利要求26至28中任一項所述的解碼器,其中:索引被分配給所述數據結構中包括的每個RPS,以及,對要被用于預測所述當前圖片的RPS的RPS進行指示的信息指定所述當前圖片的RPS的索引與用于預測的RPS的索引之間的差。
30.根據權利要求26至29中任一項所述的解碼器,其中,所述數據結構是序列參數集“SPS”。
31.根據權利要求30所述的解碼器,還用于:通過確定所述當前圖片的RPS的索引是否等于所述SPS中包括的RPS的數量來確定是否使用顯式RPS傳輸。
32.根據權利要求26至30中任一項所述的解碼器,還用于:確定所述當前圖片的RPS是否被編碼在所述當前圖片的片頭中來確定是否使用顯式RPS傳輸。
【文檔編號】H04N19/70GK104396242SQ201380034621
【公開日】2015年3月4日 申請日期:2013年7月1日 優先權日:2012年6月29日
【發明者】雅各布·斯特羅姆, 喬納坦·薩繆爾森, 理卡爾德·肖伯格 申請人:瑞典愛立信有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影