<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>

視頻譯碼中的語法元素的值范圍的制作方法

文檔序號:11162275閱讀:937來源:國知局
視頻譯碼中的語法元素的值范圍的制造方法與工藝

本申請涉及視頻譯碼和壓縮的領域,例如,在視頻編碼器和視頻解碼器中。具體而言,本申請涉及可縮放視頻譯碼(SVC),包含用于高級視頻譯碼(AVC)的SVC,以及用于高效視頻譯碼(HEVC)的SVC,除了HEVC的3D和多視圖擴展之外,其也被稱作可縮放HEVC(SHVC)。



背景技術:

數字視頻能力可以并入到多種多樣的裝置中,包含數字電視、數字直播系統、無線廣播系統、個人數字助理(PDA)、膝上型或桌上型計算機、平板計算機、電子圖書閱讀器、數碼相機、數字記錄裝置、數字媒體播放器、視頻游戲裝置、視頻游戲控制臺、蜂窩式或衛星無線電電話(所謂的“智能電話”)、視頻電話會議裝置、視頻串流裝置及其類似者。數字視頻裝置實施視頻譯碼過程,例如描述于以下各者中的那些技術:由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高級視頻譯碼(AVC)定義的標準、目前在發展中的HEVC標準及此類標準的擴展。視頻裝置可通過實施此類視頻譯碼技術而更有效地發射、接收、編碼、解碼和/或存儲數字視頻信息。

視頻譯碼方法包含空間(圖片內)預測和/或時間(圖片間)預測來減少或移除視頻序列中固有的冗余。對于基于塊的視頻譯碼,視頻切片(例如,視頻幀或視頻幀的一部分)可分割成視頻塊,所述視頻塊也可被稱作樹塊、譯碼單元(CU)和/或譯碼節點。使用關于同一圖片中的相鄰塊中的參考樣本的空間預測對圖片的經幀內譯碼(I)切片中的視頻塊進行編碼。圖片的經幀間編碼(P或B)切片中的視頻塊可使用相對于同一圖片中的相鄰塊中的參考樣本的空間預測或相對于其它參考圖片中的參考樣本的時間預測。圖片可被稱為幀,且參考圖片可被稱為參考幀。

空間或時間預測產生待譯碼塊的預測塊。殘余數據表示待譯碼原始塊與預測塊之間的像素差。經幀間譯碼塊是根據指向形成預測塊的參考樣本塊的運動向量和指示經譯碼塊與預測塊之間的差的殘余數據編碼的。根據幀內譯碼模式和殘余數據來編碼經幀內譯碼塊。為了進一步壓縮,可將殘余數據從像素域變換到變換域,從而產生殘余變換系數,可接著量化所述殘余變換系數。可掃描一開始按二維陣列排列的經量化變換系數,以便產生變換系數的一維向量,且可應用熵譯碼以實現更多壓縮。

可通過例如從多個視角編碼視圖來產生多視圖譯碼位流。已經開發利用多視圖譯碼方面的一些三維(3D)視頻標準。舉例來說,不同視圖可發射左眼和右眼視圖以支持3D視頻。替代地,一些3D視頻譯碼過程可應用所謂的多視圖加深度譯碼。在多視圖加深度譯碼中,3D視頻位流可不僅含有紋理視圖分量而且還含有深度視圖分量。舉例來說,每一視圖可包括一個紋理視圖分量和一個深度視圖分量。



技術實現要素:

一般來說,本發明描述涉及HEVC的方法及系統,包含HEVC的多視圖擴展(MV-HEVC)及可縮放擴展(SHVC)。在用于管理參考圖片集(reference picture sets;RPS)中的某些變量的指定范圍中,HEVC當前使用如由偽代碼指定的復雜導出過程。然而,導出過程的一部分是不正確的,且總的來說,此偏差過程會給編碼器及解碼器帶來不必要的復雜度。本發明向一些變量的范圍確定提供某些改進以促進視頻編碼器與視頻解碼器之間的適當信號發送。具體來說,變量“num_negative_pics”、“num_positive_pics”及“num_long_term_pics”的值范圍可得到改進。

本發明的系統、方法及裝置各自具有若干創新方面,其中沒有單個方面單獨負責本文中所揭示的合乎需要的屬性。

本發明的一個方面提供一種用于對視頻數據進行編碼的方法。所述方法可包含接收多個圖片,所述多個圖片包含一當前圖片及一或多個參考圖片。所述方法還可包含至少部分地基于所述一或多個參考圖片而確定所述當前圖片的參考圖片集(RPS)。所述方法還可包含確定所述RPS中的所述一或多個參考圖片中的每一參考圖片的圖片次序計數(picture order count;POC)值。所述方法還可包含識別所述RPS內的多個長期參考圖片及多個短期參考圖片中的至少一者。所述方法還可包含在視頻參數集(video parameter set;VPS)擴展處于使用中的情況下對所述RPS中的長期圖片的數目及短期圖片的數目施加約束,所述約束是基于所述POC值及最大經解碼圖片緩沖器大小減去一。所述方法還可包含基于所述約束而產生識別所述RPS的至少一個語法元素。所述方法還可包含基于所述RPS及所述至少一個語法元素而對所述當前圖片進行編碼。

本發明的另一方面提供一種用于對視頻數據進行編碼的裝置。所述裝置可具有經配置以存儲多個圖片的存儲器。所述多個圖片可具有一當前圖片及一或多個參考圖片。所述裝置還可具有可操作地耦合到所述存儲器的至少一個處理器。所述至少一個處理器可至少部分地基于所述一或多個參考圖片而確定所述當前圖片的參考圖片集(RPS)。所述至少一個處理器還可確定所述RPS中的每一參考圖片的圖片次序計數(POC)值。所述至少一個處理器還可識別所述RPS內的多個長期參考圖片及多個短期參考圖片中的至少一者。所述至少一個處理器還可對所述RPS中的長期圖片的所述數目及短期圖片的所述數目施加約束。在視頻序列參數(VPS)擴展處于使用中的情況下,所述約束可基于所述POC值及最大經解碼圖片緩沖器大小減去一。所述至少一個處理器還可基于所述約束而產生識別所述RPS的至少一個語法元素。所述至少一個處理器還可基于所述RPS及所述至少一個語法元素而對所述當前圖片進行編碼。

本發明的另一方面提供一種用于解碼視頻數據的方法。所述方法可包含從位流獲得當前圖片的圖片次序計數(POC)及一或多個參考圖片的POC值。所述方法還可包含基于所述當前圖片的所述POC值及所述一或多個參考圖片的所述POC值而確定具有所述一或多個參考圖片的參考圖片集(RPS)。所述方法還可包含在視頻參數集(VPS)擴展處于使用中的情況下,將所述RPS中的所述一或多個參考圖片識別為多個長期圖片及多個短期圖片中的至少一者,長期圖片的所述數目及短期圖片的所述數目是基于約束,所述約束是基于所述POC值及最大經解碼圖片緩沖器大小減去一。所述方法還可包含基于所述RPS而解碼所述當前圖片。

本發明的另一方面提供一種用于解碼視頻數據的裝置。所述裝置可包含經配置以存儲來自位流的當前圖片、當前圖片的圖片次序計數(POC)及一或多個參考圖片的POC值的存儲器,所述POC值及所述當前圖片是從位流獲得。所述裝置還可具有可操作地耦合到所述存儲器的處理器。所述處理器可基于所述當前圖片的所述POC值及所述一或多個參考圖片的所述POC值而確定具有所述一或多個參考圖片的參考圖片集(RPS)。所述處理器還可在視頻參數集(VPS)擴展處于使用中的情況下將所述RPS中的所述一或多個參考圖片識別為多個長期圖片及多個短期圖片中的至少一者,長期圖片的所述數目及短期圖片的所述數目是基于約束,所述約束是基于所述POC值及最大經解碼圖片緩沖器大小減去一。所述處理器還可基于所述RPS而解碼所述當前圖片。

通過借助于實例說明本發明的諸方面的以下描述,本發明的其它特征及優點應變得顯而易見。

附圖說明

本發明的實施例的關于其結構及操作兩者的細節可通過研究附圖而被部分地搜集,其中相同參考標號指代相同部分,且其中:

圖1是視頻譯碼系統的功能框圖;

圖2是圖1的視頻編碼器的功能框圖;

圖3是說明圖1的視頻解碼器的功能框圖;

圖4是說明經譯碼視頻圖片的序列的概念圖;

圖5是用于對視頻數據進行編碼的方法的流程圖;且

圖6是用于解碼視頻數據的方法的流程圖。

具體實施方式

本發明提供可包含在多層視頻譯碼方面的若干改進中的一或多者的譯碼的系統及方法,其包含用于改進某些語法元素的值范圍的規范以用于對視頻數據進行編碼的方法。具體來說,在本文中建議對語法元素num_negative_pics、num_positive_pics及num_long_term_pics的值范圍的某些改進。在HEVC中,基于根據如由偽代碼指定的復雜過程導出的變量“maxNumPics”而指定語法元素“num_negative_pics”、“num_positive_pics”及“num_long_term_pics”的值范圍。然而,如果短期參考圖片集包含于序列參數集(sequence parameter set;SPS)中,那么用于偽代碼中以導出maxNumPics的nuh_layer_id是不正確的,此是因為應該是參考SPS的層的nuh_layer_id而非SPS的nuh_layer_id。此外,甚至在此問題解決之后,如由偽代碼指定的導出過程會給編碼器或解碼器的符合性檢查強加不必要的復雜度。

下文參考附圖更充分地描述新穎系統、設備及方法的各個方面。然而,本發明可以許多不同形式來體現,且不應將其解釋為限于貫穿本發明所呈現的任何特定結構或功能。相反地,提供這些方面以使得本發明將透徹且完整,并且將向所屬領域的技術人員充分傳達本發明的范圍。基于本文中的教示,所屬領域的技術人員應了解,本發明的范圍既定涵蓋本文中所公開的無論是獨立于本發明的任一其它方面還是與之組合而實施的新穎系統、設備和方法的任何方面。舉例來說,可以使用本文中所闡述的任何數目個方面來實施設備或實踐方法。另外,本發明的范圍意圖涵蓋使用除本文中所闡述的本發明的各種方面之外的或不同于本文中所闡述的本發明的各種方面的其它結構、功能性或結構與功能性來實踐的此設備或方法。應理解,可通過權利要求的一或多個要素來體現本文中所公開的任何方面。

盡管本文描述了特定方面,但這些方面的許多變化及排列落入本發明的范圍內。盡管提及了優選方面的一些益處及優點,但本發明的范圍并非意圖限于特定益處、用途或目標。而是,本發明的方面意圖廣泛地適用于不同無線技術、系統配置、網絡及發射協議,其中的一些是借助于實例而在圖中以及在優選方面的以下描述中說明。具體實施方式和圖式僅說明本發明,而不是限制由所附權利要求書和其等效物界定的本發明的范圍。

視頻譯碼系統

圖1是視頻譯碼系統的功能框圖。視頻譯碼系統(“系統”)10可以利用根據本發明中描述的方面的方法。如本文中所描述地使用,術語“視頻譯碼器”一般指代視頻編碼器和視頻解碼器兩者。在本發明中,術語“視頻譯碼”或“譯碼”可一般地指代視頻編碼和視頻解碼。

如圖1所示,系統10包含源裝置12,該源裝置可以產生待稍后通過目的地裝置14解碼的經編碼的視頻數據。源裝置12和目的地裝置14可包括各種各樣裝置中的任一者,包含桌上型計算機、筆記本型(即,膝上型)計算機、平板計算機、機頂盒、電話手持機(例如,所謂的“智能”電話,所謂的“智能”平板)、電視機、相機、顯示裝置、數字媒體播放器、視頻游戲控制臺、視頻流式傳輸裝置或類似者。在一些情況下,源裝置12和目的地裝置14可以用于無線通信。

目的地裝置14可通過鏈路16接收待解碼的經編碼視頻數據。鏈路16可包括能夠將經編碼視頻數據從源裝置12移動到目的地裝置14的任何類型的媒體或裝置。在一個實例中,鏈路16可包括使得源裝置12能夠實時地將經編碼視頻數據直接發射到目的地裝置14的通信媒體。源裝置12可以根據例如無線通信協議的通信標準調制經編碼的視頻數據,且發射到目的地裝置14。通信媒體可以包括任何無線或有線通信媒體,例如射頻(RF)或一或多個物理傳輸線。通信媒體可形成基于數據包的網絡(例如,局域網、廣域網或例如因特網的全球網絡)的部分。通信媒體可包含路由器、交換器、基站或可用于促進從源裝置12到目的地裝置14的通信的任何其它設備。

經編碼數據可從輸出接口22輸出到存儲裝置34。類似地,可通過輸入接口從存儲裝置34訪問經編碼數據。存儲裝置可包含多種分布式或本地存取的數據存儲媒體中的任一者,例如硬盤驅動器、藍光光盤、DVD、CD-ROM、快閃存儲器、易失性或非易失性存儲器或任何其它用于存儲經編碼的視頻數據的合適的數字存儲媒體。在另一實例中,存儲裝置34可對應于文件服務器或可保存源裝置12產生的經編碼視頻的另一中間存儲裝置。目的地裝置14可經由流式傳輸或下載從存儲裝置34存取所存儲的視頻數據。文件服務器可為任何類型的能夠存儲經編碼的視頻數據且將經編碼的視頻數據發射到目的地裝置14的服務器。實例文件服務器包含網絡服務器(例如,用于網站)、FTP服務器、網絡附接式存儲(NAS)裝置或本地磁盤驅動器。目的地裝置14可以通過任何標準數據連接(包含因特網連接)來存取經編碼視頻數據。這可包含無線信道(例如,Wi-Fi連接)、有線連接(例如,DSL、電纜調制解調器等),或適合于存取存儲在文件服務器上的經編碼視頻數據的兩者的組合。經編碼視頻數據從存儲裝置34的傳輸可為流式傳輸、下載傳輸或兩者的組合。

本發明的方法不一定限于無線應用或設置。所述方法可應用于視頻譯碼以支持多種多媒體應用中的任一種,例如,空中電視廣播、有線電視傳輸、衛星電視傳輸、流式視頻傳輸(例如,經由因特網)、對視頻數據進行編碼以存儲于數據存儲媒體上、對存儲在數據存儲媒體上的數字視頻進行解碼,或其它應用。在一些實例中,系統10可經配置以支持單向或雙向視頻傳輸,以支持例如視頻流式傳輸、視頻重放、視頻廣播和/或視頻電話等應用。

在圖1的實例中,源裝置12包含視頻源18、視頻編碼器20和輸出接口22。在一些情況下,輸出接口22可包含調制器/解調器(調制解調器)及/或發射器。在源裝置12中,視頻源18可包含例如視頻捕獲裝置(例如,攝像機)、含有先前所捕獲視頻的視頻存檔、用以從視頻內容提供者接收視頻的視頻饋入接口和/或用于產生計算機圖形數據以作為源視頻的計算機圖形系統等源,或此類源的組合。作為一個實例,如果視頻源18是攝像機,那么源裝置12及目的地裝置14可以形成所謂的攝像機電話或視頻電話。然而,本發明中描述的方法一般可適用于視頻譯碼,且可應用于無線和/或有線應用。

視頻編碼器20可以對捕獲、預捕獲或計算機產生的視頻進行編碼。另外,在一些實施例中,視頻解碼器30可以基于第一位流的參數集ID和唯一參數集ID區分第一位流與第二位流。在其它實例中,源裝置12的輸出接口22可以經由鏈路16將經編碼的視頻數據直接地傳輸到目的地裝置14。經編碼視頻數據也可以(或替代地)存儲到存儲裝置34上以供稍后由目的地裝置14或其它裝置存取以用于解碼和/或播放。

目的地裝置14包含輸入接口28、視頻解碼器30和顯示裝置32。在一些情況下,輸入接口28可包含接收器及/或調制解調器。目的地裝置14的輸入接口28經由鏈路16接收經編碼視頻數據。經由鏈路16傳送或在存儲裝置34上提供的經編碼視頻數據可包含由視頻編碼器20所產生的多種語法元素以供由例如視頻解碼器30的視頻解碼器用于解碼視頻數據。此類語法元素可與在通信媒體上發射、存儲于存儲媒體上或存儲于文件服務器上的經編碼視頻數據包含在一起。

顯示裝置32可以與目的地裝置14集成或者在目的地裝置14外部。在一些實例中,目的地裝置14可包含集成顯示裝置,并且還經配置以與外部顯示裝置介接。在其它實例中,目的地裝置14可以是顯示裝置。一般來說,顯示裝置32將經解碼視頻數據顯示給用戶,且可包括多種顯示裝置中的任一者,例如液晶顯示器(LCD)、等離子顯示器、有機發光二極管(OLED)顯示器或另一類型的顯示裝置。

視頻編碼器20和視頻解碼器30各自可實施為多種合適的編碼器電路中的任一者,例如一或多個微處理器、數字信號處理器(DSP)、專用集成電路(ASIC)、現場可編程門陣列(FPGA)、離散邏輯、軟件、硬件、固件或其任何組合。在于軟件中部分地實施方法的情況下,裝置可以存儲指令以用于合適的非暫時性計算機可讀媒體中的軟件并且使用一或多個處理器執行硬件中的指令以執行本發明的方法。視頻編碼器20和視頻解碼器30中的每一者可包含在一或多個編碼器或解碼器中,所述編碼器或解碼器中的任一者可以集成為相應裝置中的組合式編碼器/解碼器(編解碼器)的一部分。

HEVC標準化努力是基于被稱作HEVC測試模型(HM)的視頻譯碼裝置的進化的模型。HM假設視頻譯碼裝置根據例如ITU-T H.264/AVC相對于現有裝置的若干額外容量。舉例來說,雖然H.264提供了九種幀內預測編碼模式,但是HM可提供多達三十三種幀內預測編碼模式。

一般來說,HM的工作模型描述視頻幀或圖片可以分成包含明度及色度樣本兩者的一連串樹塊或最大譯碼單元(LCU)。樹塊具有與H.264標準的宏塊類似的目的。切片包含按譯碼順序的若干連續樹塊。視頻幀或圖片可以被分割成一或多個切片。每一樹塊可以根據四叉樹分裂成譯碼單元(CU)。舉例來說,作為四叉樹的根節點的樹塊可分裂成四個子節點,且每一子節點又可為父代節點且可分裂成另外四個子節點。最后的未經分裂的子節點(作為四叉樹的葉節點)包括譯碼節點,即,經譯碼視頻塊。與經譯碼位流相關聯的語法數據可限定樹塊可分裂的最大次數,且還可限定譯碼節點的最小大小。

CU包含譯碼節點和與所述譯碼節點相關聯的預測單元(PU)和變換單元(TU)。CU的大小對應于譯碼節點的大小并且形狀必須是正方形。CU的大小可從8×8像素到具有64×64像素或更大像素的最大值的樹塊的大小變化。每一CU可以含有一或多個PU和一或多個TU。舉例來說,與CU相關聯的語法數據可描述CU分割成一或多個PU。分割模式可在CU被跳過還是經直接模式編碼、幀內預測模式編碼或幀間預測模式編碼之間不同。PU可以分割成非正方形形狀。舉例來說,與CU相關聯的語法數據還可描述根據四叉樹將CU分割成一或多個TU。TU可為正方形或非正方形形狀。

HEVC標準允許根據TU的變換,TU可針對不同CU而有所不同。可基于針對經分割LCU定義的給定CU內的PU的大小而對TU進行大小設定,但是情況可能并不總是如此。TU可與PU大小相同或小于PU。在一些實例中,可以使用被稱為“殘余四分樹”(RQT)的四分樹結構將對應于CU的殘余樣本細分成較小單元。RQT的葉節點可被稱為變換單元(TU)。可以變換與TU相關聯的像素差值以產生變換系數,所述變換系數可經量化。

一般來說,PU包含與預測過程有關的數據。舉例來說,當PU經幀內模式編碼時,PU可以包含描述PU的幀內預測模式的數據。作為另一實例,當PU經幀間模式編碼時,PU可包含定義PU的運動向量的數據。舉例來說,定義PU的運動向量的數據可以描述運動向量的水平分量、運動向量的垂直分量、運動向量的分辨率(例如,四分之一像素精度或八分之一像素精度)、運動向量指向的參考圖片及/或運動向量的參考圖片列表(例如,列表0、列表1或列表C)。

一般來說,TU用于變換及量化過程。具有一或多個PU的給定CU還可以包含一或多個變換單元(TU)。在預測之后,視頻編碼器20可計算對應于PU的殘余值。殘余值包括像素差值,所述像素差值可變換成變換系數、經量化且使用TU進行掃描以產生串行化變換系數以用于熵譯碼。如本文所使用,術語“視頻塊”可通常指代CU的譯碼節點。在一些特定情況下,本發明還可使用術語“視頻塊”指代包含譯碼節點以及PU及TU的樹塊,即,LCU或CU。

視頻編碼器20可產生包括經編碼視頻數據的位流。位流可包含一系列網絡抽象層(NAL)單元。NAL單元中的每一者可包含NAL單元標頭,且可囊封原始字節序列有效負載(RBSP)。NAL單元標頭可包含指示NAL單元類型代碼的語法元素。由NAL單元的NAL單元標頭規定的NAL單元類型代碼指示NAL單元的類型。位流的NAL單元可包含視頻譯碼層(VCL)NAL單元和非VCL NAL單元。VCL NAL單元可包含圖片的經譯碼切片。

非VCL NAL單元可包含VPS、序列參數集(SPS)、圖片參數集(PPS)、SEI或其它類型的數據。VPS是可含有適用于0或大于0個完整經譯碼視頻序列的語法元素的語法結構。SPS是可含有適用于0或大于0個完整經譯碼視頻序列的語法元素的語法結構。單個VPS可適用于多個SPS。PPS為可含有適用于0或大于0個完整經譯碼圖片的語法元素的語法結構。單個SPS可適用于多個PPS。VPS、SPS和PPS的各個方面可一般而言如HEVC標準所限定的形成。視頻編碼器20可使用SEI消息以在位流中包含正確解碼圖片的樣本值所不需要的元數據。然而,視頻解碼器30或其它裝置可使用包含于SEI消息中的元數據用于各種其它目的。舉例來說,視頻解碼器30可使用SEI消息中的元數據用于圖片輸出計時、圖片顯示、丟失檢測及錯誤隱藏。

圖2是圖1的視頻編碼器的功能框圖。視頻編碼器20可以包含分割模塊35,該分割模塊經配置以接收所捕獲的視頻數據并且將視頻數據分割成視頻塊。分割模塊35可以將視頻數據分割成切片、單元片或其它較大單元。分割模塊35也可以例如根據LCU和CU的四分樹結構來分割視頻塊。視頻編碼器20可以將切片劃分成多個視頻塊(并且可能劃分成被稱作單元片的視頻塊的集合)。

視頻編碼器20也可以具有可操作地耦合到分割模塊35且經配置以接收分割的視頻數據的預測模塊41。預測模塊41可以基于錯誤結果(例如,譯碼速率和失真的水平)選擇多個可能的譯碼模式中的一個,例如,多個幀內譯碼模式中的一或多個幀間譯碼模式中的一個用于當前視頻塊。預測模塊41可以允許視頻編碼器20執行視頻切片內的視頻塊的幀內和幀間譯碼。幀內譯碼依賴于空間預測來減少或移除給定視頻幀或圖片內的視頻中的空間冗余。幀間譯碼依靠時間預測來減少或移除視頻序列的鄰近幀或圖片內的視頻中的時間冗余。幀內模式(I模式)可指代若干基于空間壓縮模式中的任一者。例如單向預測(P模式)或雙向預測(B模式)的幀間模式可指代若干基于時間的壓縮模式中的任一者。

預測模塊41可以包含運動估計模塊42、運動補償模塊44及幀內預測模塊46。這些組件中的每一個可以可操作地連接或集成在視頻編碼器20內的一或多個處理器中。雖然出于概念性目的單獨地論述,但是運動估計模塊42、運動補償模塊44和幀內預測模塊46可以高度集成。

運動估計模塊42可經配置以根據用于視頻序列的預定模式為視頻切片確定幀間預測模式。當前視頻塊的此類幀間預測或幀間預測譯碼相對于一或多個參考圖片中的一或多個預測塊可以提供時間壓縮。預定模式可將序列中的視頻切片標明為P切片、B切片或GPB切片。如本文所使用,運動估計可以通常指代產生運動向量的過程,該過程估計視頻塊的運動。舉例來說,運動向量可指示當前視頻幀或圖片內的視頻塊的PU相對于參考幀或參考圖片內的預測塊的移位。參考幀可以存儲在可操作地耦合到預測模塊41的參考圖片存儲器64中。參考幀存儲器64可以在濾波器模塊63對經重建的譯碼塊執行解塊操作之后存儲經重建的譯碼塊。參考幀存儲器64可以因此也操作為經解碼圖片緩沖器(DPB)。

預測塊是被發現在像素差方面與待譯碼視頻塊的PU密切匹配的塊,所述像素差可通過絕對差總和(SAD)、平方差總和(SSD)或其它差異度量來確定。在一些實例中,運動預測模塊(“預測模塊”)41可以計算存儲在參考圖片存儲器64中的參考圖片的子整數像素位置的值。舉例來說,預測模塊41可以內插參考圖片的四分之一像素位置、八分之一像素位置或其它分數像素位置的值。因此,運動估計模塊42可以相對于整數像素位置和分數像素位置執行運動搜索并且輸出具有分數像素精確度的運動向量。

運動估計模塊42可通過比較PU的位置與參考圖片的預測塊的位置來計算用于經幀間譯碼切片中的視頻塊的PU的運動向量。參考圖片可選自第一參考圖片列表(列表0)或第二參考圖片列表(列表1),其中的每一者識別存儲在參考圖片存儲器64中的一或多個參考圖片。運動估計模塊42可以發送計算的運動向量到運動補償模塊44和熵編碼模塊56。

運動補償可涉及基于通過運動估計確定的運動向量提取或產生預測塊。這可以包含到子像素精度的內插。在接收到當前視頻塊的PU的運動向量后,運動補償模塊44可在參考圖片列表中的一者中定位運動向量指向的預測塊。運動補償模塊44還可產生與視頻塊和視頻切片相關聯的供視頻解碼器30在對視頻切片的視頻塊進行解碼時使用的語法元素。

預測模塊41的幀內預測模塊46可以相對于相同幀或切片中的一或多個相鄰塊執行當前視頻塊的幀內預測譯碼以提供空間壓縮。幀內預測模塊46可以幀內預測當前塊,作為對通過運動估計模塊42和運動補償模塊44執行的幀間預測的替代方案,如上文所述。具體而言,幀內預測模塊46可以確定用來對當前塊進行編碼的幀內預測模式。在一些實例中,幀內預測模塊46可以使用各種幀內預測模式對當前塊進行編碼,例如,在單獨編碼通過期間。舉例來說,幀內預測模塊46可以使用速率失真分析計算用于各種經測試幀內預測模式的速率失真值,并且從所述經測試模式當中選擇具有最佳速率失真特性的幀內預測模式。速率-失真分析可以確定經編碼塊與經編碼以產生所述經編碼塊的原始未編碼塊之間的失真(或誤差)的量,以及用于產生經編碼塊的位速率(即,位數目)。幀內預測模塊46可以根據用于各種經編碼塊的失真和速率計算比率,以確定哪個幀內預測模式對于所述塊呈現最佳速率失真值。

幀內預測模塊46可以提供指示塊的選定幀內預測模式信息以對模塊56進行熵編碼。熵編碼模塊56可對指示選定幀內預測模式的信息進行編碼。視頻編碼器20在傳輸的位流中可包含配置數據,所述配置數據可包含多個幀內預測模式索引表及多個經修改的幀內預測模式索引表(也被稱作碼字映射表),對用于各種塊的編碼上下文的定義,及對將用于所述上下文中的每一者中的最可能幀內預測模式、幀內預測模式索引表及經修改的幀內預測模式索引表的指示。

在預測模塊41經由幀間預測或幀內預測產生用于當前視頻塊的預測性塊之后,視頻編碼器20通過從當前視頻塊減去所述預測性塊而形成殘余視頻塊。此過程可以引起像素差值。像素差值形成用于所述塊的殘余數據,并且可包含明度及色度差分量這兩者。可操作地耦合到預測模塊41和分割模塊35的求和器50表示可以被配置成執行此減法運算的組件。

殘余塊中的殘余視頻數據可包含在一或多個TU中且應用到可操作地耦合到求和器50的變換模塊52。變換模塊52可使用例如離散余弦變換(DCT)或概念上類似的變換的變換將殘余視頻數據變換成殘余變換系數。變換模塊52可將殘余視頻數據從像素域轉換到變換域,例如,頻域。預測模塊41可以提供所得的幀內或幀間譯碼塊到求和器50以產生殘余塊數據。所得的幀內或幀間譯碼塊可以進一步提供求和器62以重建經編碼塊用作參考圖片。

視頻編碼器20也可以包含可操作地耦合到求和器62的濾波器模塊63。濾波器模塊63可以表示一或多個環路濾波器,例如,解塊濾波器、自適應環路濾波器(ALF)和樣本自適應偏移(SAO)濾波器。盡管濾波器模塊63在圖2中示出為環內濾波器,但在其它配置中,濾波器模塊63可實施為環路后濾波器(post loop filter)。濾波器模塊63可以提供參考圖片到參考圖片存儲器64。

變換模塊52可以將所得變換系數發送到量化模塊54。量化模塊54可以對變換系數進行量化以進一步降低位速率。量化過程可以減少與系數中的一些或全部相關聯的位深度。可通過調整量化參數來修改量化的程度。在一些實例中,量化模塊54可以隨后執行對包含經量化變換系數的矩陣的掃描。在一些實施例中,熵編碼模塊56可以執行所述掃描。

在量化之后,熵編碼模塊56可以對經量化的變換系數進行熵編碼。舉例來說,熵編碼模塊56可執行上下文自適應可變長度譯碼(CAVLC)、上下文自適應二進制算術譯碼(CABAC)、基于語法的上下文自適應二進制算術譯碼(SBAC)、概率區間分割熵(PIPE)譯碼或另一熵編碼方法。視頻編碼器20還可以對與經編碼視頻數據相關聯的語法元素進行熵編碼以供視頻解碼器30在解碼視頻數據時使用。

在通過熵編碼模塊56進行熵編碼之后,經編碼位流可以傳輸到視頻解碼器30。位流也可以存檔用于稍后的傳輸或通過視頻解碼器30取回。熵編碼模塊56還可對正被譯碼的當前視頻切片的運動向量和其它語法元素進行熵編碼。

視頻編碼器20也可以包含可操作地耦合到熵編碼模塊56的逆量化模塊58。逆變換模塊60也可以可操作地耦合到逆量化模塊58和求和器62。逆量化模塊58和逆變換模塊60可以分別應用逆量化和逆變換以在像素域中重建殘余塊,以供稍后用作參考圖片的參考塊。運動補償模塊44可以通過將殘余塊添加到參考圖片列表中的一者內的參考圖片中的一者的預測塊中來計算參考塊。求和器62可以將經重建的殘余塊添加到由運動補償模塊44產生的運動補償預測塊以產生參考塊用于存儲在參考圖片存儲器64中。參考塊可由運動估計模塊42和運動補償模塊44用作參考塊以對后續視頻幀或圖片中的塊進行幀間預測。

在一些實例中,視頻編碼器20產生位流。由視頻編碼器20產生的位流可包含可以作為子位流從位流中提取的多個操作點。操作點可例如包含多層和/或視圖以及多個幀率。視頻編碼器20可以對指示VPS中的輸出操作點的信息進行編碼。在一些實例中,對于與位流相關聯的VPS中的視頻編碼器20信號的每個操作點,操作點語法結構規定用于識別屬于給定操作點的子位流的位流中的NAL單元的層識別符(ID)的集合。以此方式,組成給定操作點的子位流的NAL單元可基于NAL單元的層識別符從原始位流中提取出。

圖3是說明圖1的視頻解碼器的框圖。出于解釋的目的,本發明描述在HEVC譯碼的背景下的視頻解碼器30。然而,本發明可適用于其它譯碼標準或方法。

視頻解碼器30可以包含熵解碼模塊70、預測模塊71、逆量化模塊76、逆變換模塊78、求和器80、濾波器模塊84和經解碼圖片緩沖器(DPB)82。預測模塊71可以包含運動補償模塊72和幀內預測模塊74。在其它實例中,視頻解碼器30可包含更多、更少或不同功能組件。

經譯碼圖片緩沖器(CPB)90可接收且存儲位流的經編碼視頻數據(例如,NAL單元)。熵解碼模塊70可從CPB 90接收NAL單元,且解析NAL單元以解碼語法元素。熵解碼模塊70可對NAL單元中的經熵編碼語法元素進行熵解碼。預測模塊71、逆量化模塊76、逆變換模塊78、求和器80和濾波器模塊84可以基于從位流中提取出的語法元素產生經解碼視頻數據。

位流的NAL單元可包含經譯碼切片的NAL單元。作為對位流進行解碼的部分,熵解碼模塊70可從經譯碼的切片NAL單元中提取語法元素并且對所述語法元素進行熵解碼。經譯碼的切片中的每一者可以包含切片標頭以及切片數據。切片標頭可以含有關于切片的語法元素。切片標頭中的語法元素可包含識別與含有切片的圖片相關聯的PPS的語法元素。

除了對來自位流的語法元素進行解碼之外,視頻解碼器30還可對未經分割的CU執行重建操作。為了在未分割的CU上執行重建操作,視頻解碼器30可以在CU的每個TU上執行重建操作。通過對CU的每個TU執行重建操作,視頻解碼器30可重建CU的殘余塊。

作為對CU的TU執行重建操作的部分,逆量化模塊76可逆量化(即,解量化)與TU相關聯的系數塊。逆量化模塊76可使用與TU的CU相關聯的量化參數(QP)值以確定量化的程度,并且類似地確定逆量化單元模塊76將應用的逆量化的程度。也就是說,可通過調整在量化變換系數時所使用的QP的值來控制壓縮比,即用于表示原始序列與經壓縮序列的位的數目的比率。壓縮比還可取決于所采用的熵譯碼的方法。

在逆量化模塊76逆量化系數塊之后,逆變換模塊78可將一或多個逆變換應用于系數塊以便產生與TU相關聯的殘余塊。舉例來說,逆變換模塊78可以將逆DCT、逆整數變換、逆定向變換或另一逆變換應用到系數塊。

如果使用幀內預測對PU進行編碼,那么幀內預測模塊74可執行幀內預測以產生用于PU的預測塊。幀內預測模塊74可使用幀內預測模式,以基于空間上相鄰的PU的預測塊產生PU的預測性亮度、Cb和Cr塊。幀內預測模塊74可以基于從位流中解碼的一或多個語法元素確定用于PU的幀內預測模式。

預測模塊71可以基于自位流提取的語法元素構建第一參考圖片列表(RefPicList0)和第二參考圖片列表(RefPicList1)。此外,如果使用幀間預測對PU進行編碼,那么熵解碼模塊70可以提取用于PU的運動信息。運動補償模塊72可基于PU的運動信息確定用于PU的一或多個參考區。運動補償模塊72可以基于PU的一或多個參考塊處的樣本塊產生用于PU的預測亮度、Cb和Cr塊。

求和器80可以在適當時使用與CU的TU相關聯的亮度、Cb和Cr變換塊以及CU的PU的預測亮度、Cb和Cr塊(即,幀內預測數據或幀間預測數據)來重建CU的亮度、Cb和Cr譯碼塊。舉例來說,求和器80可以將亮度、Cb和Cr變換塊的樣本添加到預測亮度、Cb和Cr塊的對應的樣本以重建CU的亮度、Cb和Cr譯碼塊。

濾波器模塊84可以例如是解塊濾波器,并且執行解塊操作以減小與CU的亮度、Cb和Cr譯碼塊相關聯的成塊假象。視頻解碼器30可隨后將CU的亮度、Cb和Cr譯碼塊存儲在經解碼圖片緩沖器82中。經解碼圖片緩沖器82可提供參考圖片以用于后續運動補償、幀內預測和呈現在顯示裝置(例如圖1的顯示裝置32)上。舉例來說,視頻解碼器30可以基于經解碼圖片緩沖器82中的亮度、Cb和Cr塊在其它CU的PU上執行幀內預測或幀間預測操作。因此,視頻解碼器30可從位流中解碼顯著亮度系數塊的變換系數水平,逆量化變換系數水平,對變換系數水平應用變換以產生變換塊、至少部分基于變換塊而產生譯碼塊,且輸出譯碼塊以用于顯示。

參考圖片集

HEVC指定參數集中的某些變量以供用于對經譯碼視頻數據進行解碼。參考圖片集(RPS)是與包括按解碼次序在相關聯圖片之前的所有參考圖片的圖片相關聯的參考圖片的集合,所述集合可用于對相關聯圖片或按解碼次序在相關聯圖片之后的任何圖片進行幀間預測。參考圖片含有可用于對按解碼次序的后續圖片的解碼過程進行幀間預測的樣本。

在HEVC中,直接用信號發送每一經譯碼圖片的RPS。用于RPS的信號發送的語法元素包含于序列參數集(SPS)及切片標頭兩者中。對于特定經譯碼圖片,RPS可為包含于SPS中的替代集合中的一者,如由切片標頭中的旗標所指示或直接用信號發送于切片標頭中。

每一圖片的參考圖片集可包含參考圖片的五個不同列表,其還被稱作五個RPS子集:RefPicSetStCurrBefore、RefPicSetStCurrAfter、RefPicSetStFoll、RefPicSetLtCurr及RefPicSetLtFoll。RefPicSetStCurrBefore包含在解碼次序及輸出次序兩者中在當前圖片之前且可用于當前圖片的幀間預測中的短期參考圖片(STRP)。RefPicSetStCurrAfter包含在解碼次序中在當前圖片之前、在輸出次序中在當前圖片之后且以用于當前圖片的幀間預測中的短期參考圖片。RefPicSetStFoll包含可用于在解碼次序中在當前圖片之后的圖片中的一或多者的幀間預測中且不用于當前圖片的幀間預測中的短期參考圖片。RefPicSetLtCurr包含可用于當前圖片的幀間預測中的長期參考圖片。RefPicSetLtFoll包含可以用于在解碼次序中在當前圖片之后的圖片中的一或多者的幀間預測中且不用于當前圖片的幀間預測中的長期參考圖片(LTRP)。

HEVC中的參考圖片管理的RPS概念基本上不同于先前視頻譯碼標準的參考圖片管理。代替用信號將相對變化發送到DPB 82(圖3),用信號將DPB 82的狀態發送于每一切片中。此過程可將誤差穩固性的基本水平提供于所有符合標準(例如,HEVC)的比特流及解碼器中。

HEVC定義假想參考解碼器(HRD),假想參考解碼器模型化視頻解碼器30且描述CPB 90及DPB 82(圖3)的使用情況。CPB 90及DPB 82可進一步是相似于參考幀存儲器64(圖2)的參考幀存儲器的組件。經譯碼圖片的解碼次序與經譯碼圖片在位流中出現的次序相同。HEVC進一步支持經解碼圖片的輸出次序,其不同于所述圖片的解碼次序。每一圖片與表示輸出次序的圖片次序計數(POC)值相關聯。POC是與每一圖片相關聯的變量、從CVS中的所有圖片當中唯一地識別相關聯圖片,且當相關聯圖片將從經解碼圖片緩沖器輸出時,POC指示相對于將從DPB 82輸出的同一CVS中的其它圖片的輸出次序位置,相關聯圖片在輸出次序中的位置。

存在兩種類型的參考圖片:短期及長期。當參考圖片變得不再為預測參考所需要時,參考圖片還可被標記為“不用于參考”。在適用時,將這些標記中的一者指派給圖片會隱式地移除這些標記中的另一者。當圖片被提及為被標記為“用于參考”時,此總起來說是指所述圖片被標記為“用于短期參考”或“用于長期參考”(而并非兩者)。在這些三種狀態(短期、長期及不用于參考)當中進行轉換受經解碼參考圖片標記過程控制。在HEVC中,首先從當前圖片的切片標頭解碼RPS,接著在解碼當前圖片之前應用圖片標記及緩沖操作。

高級語法

NAL單元可含有由視頻編碼器20編碼且發射到視頻解碼器30的語法元素。描述位流的結構或提供應用于多個圖片或應用于圖片內的多個經譯碼塊區域的信息的語法元素(諸如參數集(例如,SPS、VPS、PPS等等))、參考圖片管理語法及SEI消息被稱為HEVC的“高級語法”(HLS)部分。

具體來說,HEVC使用與本發明相關的參數集結構。參數集含有可被共享以用于對經解碼視頻的若干區域進行解碼的信息。參數集結構提供用于傳達解碼過程所必需的數據的穩固機制。

切片片段標頭語義

HEVC中的每一切片標頭包含用于用信號發送含有切片的圖片的RPS的參數。RPS的短期部分(其在本文中還被稱作短期RPS)可直接包含于切片標頭中,或切片標頭可僅含有表示參考發送于活動SPS中的RPS的預定列表的索引的語法元素。

在一些實例中,HEVC基于變量maxNumPics(其是根據如由偽代碼指定的復雜過程進行導出)而指定語法元素num_negative_pics、num_positive_pics及num_long_term_pics的某些值范圍。舉例來說,以下偽代碼可用以導出maxNumpics:

然而,當短期參考圖片集包含于SPS中時,用于偽代碼中以導出maxNumPics的nuh_layer_id是不正確的。實情為,用于偽代碼中以導出maxNumPics的nuh_layer_id應該是參考SPS的層的nuh_layer_id而非SPS的nuh_layer_id。

接著在一些實施例中,可需要參考SPS的所有層的nuh_layer_id值的再一個環路以正確地參考nuh_layer_id。舉例來說,除了用nuhLayerId[i](其中“i”是計數,相似于上述偽代碼中的“j”)替換所述代碼中的“nuh_layer_id”以外,可能還需要諸如(i=0;i<所有層的數目;i++)的額外線以正確地定義maxNumpics變量。此外,甚至在上述問題解決之后,由偽代碼指定的導出過程會給編碼器或解碼器的符合性檢查強加不必要的復雜度,從而負面地影響符合性測試。

長期參考圖片

當存儲于DPB 82中時,長期參考圖片被標記為用于長期參考。在解碼次序中的后續圖片的解碼過程中存在含有可用于幀間預測的樣本的參考圖片。直接用指定當前圖片的RPS中的條目數目的變量num_long_term_pics來將長期參考圖片用信號發送于切片標頭中。如果在切片標頭中未發現值,那么假定值為零。

RPS依賴于在HEVC標準的語義中所界定的變量的數目。舉例來說,變量num_negative_pics(即,負片的數目)指代具有小于當前圖片的POC計數的POC的POC的短期RPS中的條目數目。變量num_positive_pics(即,正片的數目)指代具有大于當前圖片的POC值的POC的短期RPS中的條目數目。變量num_long_term_sps(即,長期SPS的數目)指代基于在活動SPS中指定的候選長期參考圖片而導出的當前圖片的長期RPS中的條目數目。變量num_long_term_pics指代直接用信號發送于切片標頭中的當前圖片的長期RPS中的條目數目。

在一些實施例中,為了解決上文提及的擔憂,可改進這些語法元素的某些值范圍以更準確地反映RPS及HRD的要求。可如下文所提及來改進通用切片片段標頭語義。橢圓形指示為了簡潔起見已移除而不影響本發明的部分。舉例來說:

num_long_term_pics指定直接用信號發送于切片標頭中的當前圖片的長期RPS中的條目數目。當不存在時,推斷num_long_term_pics的值等于0。

當nuh_layer_id等于0時,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。當vps_extension_flag等于1時,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于MaxDpbSize-1。

在一些實施例中,此改進將對變量“maxNumPics”的使用從num_long_term_pics的語義消除。因此,還可消除用于導出“maxNumPics”的過程。實情為,所述過程依賴于經解碼圖片緩沖器(例如,DPB 82)的最大大小或變量MaxDpbSize-1。如本文中所使用,MaxDpbSize是最大經解碼圖片緩沖器大小。

短期參考圖片

短期參考圖片集可具有語法結構st_ref_pic_set(stRpsIdx)。st_ref_pic_set(stRpsIdx)語法結構可存在于SPS或切片標頭中。如果存在于切片標頭中,那么st_ref_pic_set(stRpsIdx)語法結構指定當前圖片(例如,含有切片的圖片)的短期RPS。另外,以下內容也是需要的:1)在當前圖片的所有切片標頭中,st_ref_pic_set(stRpsIdx)語法結構的內容將是相同的;2)stRpsIdx的值將等于活動SPS中的語法元素num_short_term_ref_pic_sets;且3)當前圖片的短期RPS還被稱作在此條項的剩余部分中所指定的語義中的num_short_term_ref_pic_sets-th候選短期RPS。

在一些實例中,上文描述的許多變量也同樣適用于短期RPS。

如果不存在于切片標頭中而以其它方式存在于SPS中,那么st_ref_pic_set(stRpsIdx)語法結構指定候選短期(例如,ST)RPS。此外,如用于語義中的術語“當前圖片”指代具有等于CVS(其具有SPS以作為活動SPS)中的stRpsIdx的short_term_ref_pic_set_idx(即,短期RPS索引)的每一圖片。

可如下改進短期參考圖片集語義:

num_negative_pics指定具有小于當前圖片的圖片次序計數值的圖片次序計數值的stRpsIdx-th候選短期RPS中的條目數目。當nuh_layer_id等于0時,num_negative_pics的值將介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范圍內且包含端值。當vps_extension_flag等于1時,num_negative_pics的值將介于0到MaxDpbSize-1的范圍內且包含端值。

num_positive_pics指定具有大于當前圖片的圖片次序計數值的圖片次序計數值的stRpsIdx-th候選短期RPS中的條目數目。當nuh_layer_id等于0時,num_positive_pics的值將介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范圍內且包含端值。當vps_extension_flag等于1時,num_positive_pics的值將介于0到MaxDpbSize-1-num_negative_pics的范圍內且包含端值。

以與上文相似的方式,此改進移除先前用于導出變量maxNumPics的過程,且依賴于最大DPB大小(MaxDpbSize)減去一以得出值范圍。

圖4是說明經譯碼視頻圖片的序列的概念圖。以不同方式給圖片加陰影以指示階層式預測結構內的位置。舉例來說,圖片100、116及132是暗灰色陰影以表示圖片100、116、132是在階層式預測結構的頂部。舉例來說,圖片100、116、132可包括根據單個方向上的其它圖片(例如,P圖片)預測的經幀內譯碼圖片或經幀間譯碼圖片。當經幀內譯碼時,圖片100、116、132是僅根據同一圖片內的數據進行預測的。當經幀間譯碼時,圖片116(例如)可相對于圖片100的數據進行譯碼,如由從圖片116到圖片100的虛線箭頭指示。圖片116、132分別形成圖片群組(GOP)134、136的關鍵圖片。

圖片108、124是中等灰色陰影以指示其是在圖片100、116及132之后的下一編碼階層。圖片108、124可包括雙向的經幀間模式預測編碼的圖片。舉例來說,可根據圖片100及116的數據預測圖片108,但是可根據圖片116及132預測圖片124。圖片104、112、120及128是淺灰色陰影以指示其是在圖片108及124之后的下一編碼階層。圖片104、112、120及128也可包括雙向的經幀間模式預測編碼的圖片。舉例來說,可根據圖片100及108預測圖片104,可根據圖片108及116預測圖片112,可根據圖片116及124預測圖片120,且可根據圖片124及132預測圖片128。一般來說,假定參考圖片仍然在經解碼圖片緩沖器中緩沖且假定參考圖片比當前正被譯碼的圖片較早地進行譯碼,可根據在階層上部的任何參考圖片來對在階層下部的圖片進行編碼。

圖片102、106、110、114、118、122、126及130是白色以指示這些圖片是最后一個編碼階層。圖片102、106、110、114、118、122、126及130可為雙向的經幀間模式預測編碼的圖片。可根據圖片100及104預測圖片102,可根據圖片104及108預測圖片106,可根據圖片108及112預測圖片110,可根據圖片112及116預測圖片114,可根據圖片116及120預測圖片118,可根據圖片120及124預測圖片122,可根據圖片124及128預測圖片126,且可根據圖片128及132預測圖片130。應理解,可根據在譯碼階層上部的其它圖片來對在譯碼階層下部的圖片進行譯碼。舉例來說,另外或在替代方案中,可相對于圖片100、116或108中的任一者來預測圖片102、106、110或114中的任一者或全部。

按顯示次序說明圖片100到132。也就是說,在解碼之后,圖片100在圖片102之前顯示,圖片102在圖片104之前顯示等等。如上文所論述,POC值一般描述圖片的顯示次序,所述顯示次序還與原始圖片在被編碼之前被捕獲或產生的次序大體上相同。然而,歸因于編碼階層,可按不同次序對圖片100到132進行解碼。此外,在被編碼時,可按解碼次序將圖片100到132布置于包含圖片100到132的經編碼數據的位流中。舉例來說,圖片116可顯示為是GOP 134的圖片當中的最后一個。然而,歸因于編碼階層,圖片116可以是GOP 134中首先解碼的。也就是說,舉例來說,為了恰當地解碼圖片108,圖片116可需要被首先解碼以便充當圖片108的參考圖片。類似地,圖片108可充當圖片104、106、110及112的參考圖片,且因此可需要在圖片104、106、110及112之前被解碼。

此外,某些圖片可被處理成長期參考圖片,而其它圖片可被處理成短期參考圖片。舉例來說,圖片100及116可表示長期參考圖片,而圖片108、104及112表示短期參考圖片。情況可以如下:在此實例中,可相對于圖片100、116、108或104中的任一者來預測圖片102及106,但可相對于圖片100、116、108或112中的任一者來預測圖片110及114。換句話說,當對圖片110及114進行譯碼時,圖片104可能不可用于參考。作為另一實例,假定圖片100及116表示長期參考圖片且圖片108、104及112表示短期參考圖片,當對圖片118、122、126及130進行譯碼時,圖片108、104及112可能不可用于參考。

在一些實例中,可約束RPS中的長期參考圖片的數目以便符合譯碼標準(例如,HEVC)。舉例來說,可將圖片的數目約束在值的有限集合內。這些值或值范圍可通常在本文中被稱作約束。在一些實施例中,值的此有限集合或約束可為整數值。在一些其它實施例中,值的有限集合可基于緩沖器大小或最大存儲器大小,如下文所描述。在一些實例中,可約束值范圍以使得編碼器及解碼器能夠向用以表示語法元素的變量分配有限數目個位。一旦值范圍經指定,即遵循約束以作為符合性測試的一部分在一些其它實例中,直接通過其它方法限制RPS的最大大小,然而,還可間接通過相關語法元素的值范圍來限制RPS的最大大小。

如上文所提及,變量num_long_term_pics指定直接用信號發送于切片標頭中的當前圖片的長期RPS中的條目數目。當不存在于切片標頭中時,推斷num_long_term_pics的值等于0。另外,在基礎層(nuh_layer_id等于零)中,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。當vps_extension_flag等于1時,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于MaxDpbSize-1。在一些實例中,“vps_extension_flag等于1”術語可指示VPS擴展處于使用中且存在并非基礎層的至少一個層。

還可約束RPS中的短期圖片的數目。短期圖片(例如,st_ref_pic_set()語法結構)可包含語法元素或變量num_negative_pics及num_positive_pics。為了符合譯碼標準(例如,HEVC),還可將這些變量約束在某些限值內。舉例來說,如上文所提及,num_negative_pics指定具有小于當前圖片的圖片次序計數值的圖片次序計數值的stRpsIdx-th候選短期RPS中的條目數目。當nuh_layer_id等于0時(如在基礎層中),num_negative_pics的值將介于零到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范圍內且包含端值。當vps_extension_flag等于1時,num_negative_pics的值將介于0到MaxDpbSize-1的范圍內。在一些實例中,“sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]加1”的值可指定需要進行緩沖的基礎層的經解碼圖片的最大數目。

使用這些約束時,可導出語法元素num_long_term_pics、num_negative_pics及num_positive_pics的值范圍。結果,視頻編碼器20、視頻解碼器30及其它位流符合性檢查實體可檢查這些語法元素的值是否在指定的值范圍內。此外,視頻編碼器20可用信號將適當的RPS及參考圖片列表發送到視頻解碼器30。隨后,可接收到符合的經譯碼視頻且在視頻解碼器30處解碼所述視頻。

視頻編碼器20及視頻解碼器30可經配置以使用參考圖片集來對圖片102到114、118到130及潛在地圖片116及/或圖片132中的全部或部分進行幀間譯碼。舉例來說,在對圖片100、116及132進行譯碼之后,視頻編碼器20及視頻解碼器30可對圖片108進行譯碼。因此,圖片100、116及/或132可包含于圖片108的參考圖片集中。在對圖片108進行譯碼之后,視頻編碼器20及視頻解碼器30可繼續對圖片104進行譯碼。因此,圖片100、116、132及/或108可包含于圖片104的參考圖片集中。

圖5是用于對視頻數據進行編碼的方法的流程圖。方法500指示用于基于參考圖片集變量的某些約束而形成當前圖片的參考圖片集的方法。在框510處,視頻編碼器20可接收多個圖片。多個圖片可為由(例如)視頻源18捕獲的一系列圖片。多個圖片可為GOP(例如,GOP 134及GOP 136)中的一者,其中一個圖片是待編碼的當前圖片。

在框520處,視頻編碼器20(或更確切地說,預測模塊41),可確定當前圖片的當前RPS。當前RPS可具有當前圖片的一或多個參考圖片(來自多個圖片)。在一些實例中,在多個譯碼遍次期間(例如,根據多種不同的潛在參考圖片),形成當前RPS可被執行多次。視頻編碼器20可基于速率失真優化(RDO)技術、特定譯碼標準(例如,HEVC)的簡檔及/或水平(其可指定在任何給定時間待存儲于經解碼圖片緩沖器中的參考圖片的最大數目)或其它此類特性來確定是否將特定參考圖片包含于最終參考圖片集中。

視頻編碼器20可根據當前RPS形成參考圖片列表。在一些實例中,視頻編碼器20可形成兩種參考圖片列表:RefPicList0,其包含具有比當前圖片早的顯示次序的參考圖片;及RefPicList1,其包含具有比當前圖片晚的顯示次序的參考圖片。

在框530處,舉例來說,視頻編碼器20可確定GOP 134、136中的每一圖片的POC值。GOP 134、136中的每一圖片可具有POC,所述POC識別GOP 134、136中(或例如,CVS中)的其它圖片當中的相關聯圖片,且指示相對于待從DPB 82輸出的同一CVS中的所有其它圖片的輸出次序,相關聯圖片在輸出次序中的位置。舉例來說,如果當前圖片是圖片116(圖4),那么左側的圖片(例如,100到114)可具有小于圖片116的POC的POC,而右側的圖片(例如,118到132)可具有高于圖片116的POC。每一圖片的POC可基于本文中所描述的約束來確定其作為參考圖片的狀態(例如,長期、短期)及其存儲于RPS中的能力。

在框540處,視頻編碼器可對由RPS提供且被編碼的圖片的數目施加某些約束。舉例來說,所述約束可影響用于當前圖片的在RPS中識別的長期參考圖片的數目。在一些實施例中,當nuh_layer_id等于0時(例如,基礎層),NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。當vps_extension_flag等于1時,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于MaxDpbSize-1。這些值可因而受限制,這是因為包含當前圖片(正被編碼或解碼)的所有經解碼圖片存儲于DPB 82中。因此,RPS中的所有參考圖片的數目不能大于DPB 82的大小減去一。

在一些實施例中,還可約束短期RPS。舉例來說,當nuh_layer_id等于0時(對于基礎層),num_negative_pics的值將介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范圍內且包含端值。當vps_extension_flag等于1時,num_negative_pics的值將介于0到MaxDpbSize-1的范圍內且包含端值。

在一些實施例中,還可約束正片的數目(num_positive_pics)。舉例來說,當nuh_layer_id等于0時(對于基礎層),num_positive_pics的值將介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范圍內且包含端值。在另一實施例中,當vps_extension_flag等于1時,num_positive_pics的值將介于0到maxNumPics MaxDpbSize-1-num_negative_pics的范圍內且包含端值。

在框550處,視頻編碼器20可基于所述約束而產生用于當前圖片的識別RPS的至少一個語法元素。所述約束可進一步受RPS及GOP 134、136中的圖片的數目以及DPB82的大小影響。

在框560處,視頻編碼器20可基于RPS及至少一個語法元素而對當前圖片進行編碼。

因此,方法500可用以在選擇RPS中的參考圖片時簡化這些變量的約束。

圖6是用于解碼視頻數據的方法的流程圖。方法600可用于解碼視頻數據(例如,在方法500中經編碼的視頻數據)中。在框610處,視頻解碼器可接收位流且從位流獲得當前圖片及RPS。當前圖片可在被解碼之前存儲為視頻解碼器30處的CPB 90中的經譯碼圖片。RPS可含有用以解碼當前圖片的一或多個參考圖片。

在框610處,視頻解碼器30可(例如)從切片標頭獲得當前圖片的POC值。在一些實例中,僅可在當前圖片的第一切片片段中需要此操作。位流中的每一經譯碼圖片可具有POC值。經解碼圖片可用作當前圖片的參考圖片。因此,視頻解碼器30可獲得一或多個參考圖片的POC值。如上文所描述,POC可用以識別圖片以用于導出合并模式及運動向量預測中的運動參數以及用于進行解碼器符合性檢查。

在框620處,視頻解碼器30可基于POC值而獲得當前圖片的RPS。可在解碼切片標頭之后而在解碼譯碼單元之前及在解碼參考圖片列表之前,每個圖片一次獲得RPS。RPS可具有多個參考圖片列表,所述參考圖片列表是基于當前圖片及參考圖片(圖4)的POC值構建。解碼圖像可存儲于DPB 82中且被標記為“不用于參考”、“用于短期參考”或“用于長期參考”,但在解碼過程期間的任何給定時刻僅被標記為三者中的一者。

在框630處,視頻解碼器可將RPS(及參考圖片列表)中的一或多個參考圖片識別為多個長期圖片及多個短期圖片中的至少一者,長期圖片的數目及短期圖片的數目是基于約束。在VPS擴展處于使用中的情況下,此類約束可基于POC值及最大經解碼圖片緩沖器大小減去一。在語法元素“vps_extension_flag”等于1的情況下可指示此情形。當位流中存在至少一個非基礎層時,VPS擴展可處于使用中。

舉例來說,在一些實施例中,在當前圖片位于基礎層中時(例如,nuh_layer_id等于0),NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]。當vps_extension_flag等于1時,NumNegativePics[CurrRpsIdx]、NumPositivePics[CurrRpsIdx]、num_long_term_sps及num_long_term_pics的總和將小于或等于MaxDpbSize-1。這些值可因而受限制,這是因為包含當前圖片(正被編碼或解碼)的所有經解碼圖片存儲于DPB 82中。因此,RPS中的所有參考圖片的數目不能大于DPB 82的大小減去一。

在一些實施例中,還可約束短期RPS。舉例來說,當nuh_layer_id等于0時(對于基礎層),num_negative_pics的值將介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]的范圍內且包含端值。當vps_extension_flag等于1時,num_negative_pics的值將介于0到MaxDpbSize-1的范圍內且包含端值。

在一些實施例中,還可約束正片的數目(num_positive_pics)。舉例來說,當nuh_layer_id等于0時(對于基礎層),num_positive_pics的值將介于0到sps_max_dec_pic_buffering_minus1[sps_max_sub_layers_minus1]-num_negative_pics的范圍內且包含端值。在另一實施例中,當vps_extension_flag等于1時,num_positive_pics的值將介于0到maxNumPics MaxDpbSize-1-num_negative_pics的范圍內且包含端值。

在框640處,視頻解碼器30可接著基于RPS而對當前圖片進行解碼。以此方式,視頻解碼器30可接著使用如結合圖5所描述的短期圖片及長期圖片的約束值。

結合本文揭示的實施例所描述的各種說明性邏輯塊、模塊、電路及算法步驟可實施為電子硬件、計算機軟件,或兩者的組合。為清晰地說明硬件與軟件的此可互換性,以上已大體就其功能性來描述了各種說明性組件、塊、模塊、電路和步驟。此功能性是實施為硬件還是軟件取決于特定應用及施加于整個系統的設計約束。熟練的技術人員可針對每一特定應用以不同方式實施所描述的功能性,但此類實施決策不應被解釋為引起偏離本發明的范圍。

本文中所描述的方法可以在硬件、軟件、固件或其任何組合中實施。此類方法可以在多種裝置中的任何一個中實施,例如,通用計算機、無線通信裝置手機或具有包含無線通信裝置手機和其它裝置中的應用的多個用途的集成電路裝置。被描述為模塊或組件的任何特征可一起實施于集成邏輯裝置中或分開來實施為離散但可互操作的邏輯裝置。如果以軟件實施,那么所述方法可至少部分地由包括程序代碼的計算機可讀數據存儲媒體來實現,所述程序代碼包含在執行時執行上文所描述的方法中的一或多個的指令。計算機可讀數據存儲媒體可形成計算機程序產品的一部分,所述計算機程序產品可包含封裝材料。計算機可讀媒體可包括存儲器或數據存儲媒體,例如,隨機存取存儲器(RAM)(例如,同步動態隨機存取存儲器(SDRAM))、只讀存儲器(ROM)、非易失性隨機存取存儲器(NVRAM)、電可擦除可編程只讀存儲器(EEPROM)、快閃存儲器、磁性或光學數據存儲媒體等等。另外或替代地,所述方法可至少部分地由計算機可讀通信媒體來實現,所述計算機可讀通信媒體以指令或數據結構的形式載運或傳送程序代碼且可由計算機存取、讀取和/或執行,例如,傳播的信號或波。

程序代碼可由處理器執行,所述處理器可包含一或多個處理器,例如,一或多個數字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現場可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。此類處理器可以經配置以執行本發明中所描述的任何方法。通用處理器可為微處理器;但在替代方案中,處理器可為任何常規處理器、控制器、微控制器或狀態機。處理器還可實施為計算裝置的組合,例如,DSP與微處理器的組合、多個微處理器、一或多個微處理器結合DSP核心,或任何其它此類配置。相應地,如本文所使用術語“處理器”可以指上述結構中的任何一個、上述結構的任何組合或適用于本文中所描述的方法的實施的任何其它結構或設備。另外,在一些方面中,可將本文中所描述的功能性提供于經配置以用于編碼和解碼的專用軟件模塊或硬件模塊內或并入組合式視頻編碼器-解碼器(CODEC)中。

本文中論述的譯碼方法可為實例視頻編碼和解碼系統中的實施例。系統包含提供待在稍后時間由目的地裝置解碼的經編碼視頻數據的源裝置。確切地說,源裝置經由計算機可讀媒體將視頻數據提供到目的地裝置。源裝置和目的地裝置可包括廣泛范圍的裝置中的任一者,包含臺式計算機、筆記本(即,膝上型)計算機、平板計算機、機頂盒、例如所謂的“智能”電話等電話手持機、所謂的“智能”板、電視機、相機、顯示裝置、數字媒體播放器、視頻游戲控制臺、視頻串流裝置或類似者。在一些情況下,源裝置和目的地裝置可經裝備以用于無線通信。

雖然本發明的實施例是在上文中針對具體實施例描述的,但是本發明的許多變化是可能的。舉例來說,各種組件的數目可以增大或減小,確定電源電壓的模塊和步驟可以經修改以確定頻率、另一系統參數或參數的組合。另外,可以不同于上文所描述的那些的組合對各種實施例的特征進行組合。

所屬領域的技術人員將理解結合本文中所公開的實施例描述的各種說明性塊和模塊可以各種形式實施。上文已經大體上就其功能而言描述了一些塊和模塊。如何實施此類功能取決于施加于整個系統的設計約束。所屬領域的技術人員可以針對每一特定應用以不同方式實施所描述的功能性,但此類實施決策不應被解釋為引起對本發明的范圍的偏離。另外,模塊、塊或步驟內的功能的分組是為了易于描述。特定的功能或步驟可以從一個模塊或塊中移動或跨越模塊或塊分布而不會脫離本發明。

提供對所公開的實施例的先前描述以使得所屬領域的技術人員能夠制作或使用本發明的標的物。所屬領域的技術人員將容易了解對這些實施例的各種修改,且可在不脫離本發明的精神或范圍的情況下將本文中描述的一般原理應用到其它實施例。因此,應理解,本文中呈現的描述和圖式表示本發明的當前優選的實施例,且因此表示廣泛地由本發明涵蓋的標的物。進一步理解,本本發明的范圍充分涵蓋對所屬領域的技術人員而言可能顯而易見的其它實施例,且本發明的范圍因此僅受到所附權利要求書的限制。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影