麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

用以減少譯碼參數的HEVC預測的可用性檢查的填補技術的制作方法

文檔序號:11209010閱讀:557來源:國知局
用以減少譯碼參數的HEVC預測的可用性檢查的填補技術的制造方法與工藝

本發明涉及視頻譯碼及壓縮的領域。特定來說,其涉及高效視頻譯碼(hevc)的自適應圖像塊大小設置。其還涉及3d視頻譯碼,例如hevc的多視圖擴展(被稱作mv-hevc)。



背景技術:

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

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

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



技術實現要素:

一般來說,本發明描述與視頻譯碼相關的系統及方法。本發明的系統、方法及裝置各自具有若干創新方面,其中沒有單個方面單獨負責本文中所公開的合乎需要的屬性。

本發明的一個方面提供一種對視頻數據進行編碼的方法。所述方法可包含將數據結構存儲在存儲器中。所述數據結構可具有布置為對應于圖片的第一部分的第二多個數據元素且界定外圍的第一多個數據元素,所述數據結構進一步包含與圖片的所述第一部分的所有最小預測單元(pu)相關的數據。所述方法可進一步包含增加所述存儲器中的所述數據結構的大小,其包括沿著所述第一多個數據元素的所述外圍添加多個擴展單元,所述多個擴展單元中的每一擴展單元具有與圖片的所述第一部分的最小數據元素相關的數據。所述方法可進一步包含將所述多個擴展單元中的每一擴展單元及所述第一多個數據元素設置為默認值。所述方法可進一步包含基于所述數據結構對圖片的所述第一部分進行編碼。

本發明的另一方面提供一種用于對視頻數據進行編碼的裝置。所述裝置可具有經配置以存儲數據結構的存儲器,所述數據結構具有布置為對應于圖片的第一部分的第二多個數據元素且界定外圍的第一多個數據元素,所述數據結構進一步包含與圖片的所述第一部分的所有最小預測單元(pu)相關的數據。所述裝置還可具有可操作地耦合到所述存儲器的處理器。所述處理器可增加所述存儲器中的所述數據結構的大小,其包括沿著所述第一多個數據元素的所述外圍添加多個擴展單元,所述多個擴展單元中的每一擴展單元具有與圖片的所述第一部分的最小數據元素相關的數據。所述處理器還可將所述多個擴展單元中的每一擴展單元及所述第一多個數據元素設置為默認值。所述處理器還可基于所述數據結構對圖片的所述第一部分進行編碼。

本發明的另一方面提供一種對視頻數據塊中的視頻數據進行編碼的方法。所述方法可包含存儲與數據結構中的第一多個預測單元的每一預測單元相關的數據,所述數據結構具有譯碼樹單元(ctu)的大小。所述方法還可包含存儲沿著所述數據結構中的所述多個預測單元的外圍安置的多個擴展單元中的每一擴展單元的擴展數據。所述方法還可包含基于所述數據結構對第一ctu進行編碼。所述方法還可包含用與所述第一ctu的最右列預測單元相關的數據來更新所述數據結構中的所述多個擴展單元的最左列,以形成第一經更新數據結構。所述方法還可包含基于所述第一經更新數據結構對第二ctu進行編碼。

本發明的另一方面提供一種用于對視頻數據進行編碼的裝置。所述裝置可具有存儲器。所述存儲器可存儲數據結構,所述數據結構具有與第一多個預測單元中的每一預測單元相關的數據,所述數據結構進一步具有譯碼樹單元(ctu)的大小。所述存儲器還可存儲沿著所述數據結構中的所述多個預測單元的外圍安置的多個擴展單元中的每一擴展單元的擴展數據。所述裝置還可具有可操作地耦合到所述存儲器的處理器。所述處理器可基于所述數據結構對第一ctu進行編碼。所述處理器還可用與所述第一ctu的最右列預測單元相關的數據來更新所述數據結構中的所述多個擴展單元的最左列,以形成第一經更新數據結構。所述處理器還可基于所述第一經更新數據結構對第二ctu進行編碼。

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

附圖說明

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

圖1為視頻譯碼系統的框圖;

圖2為圖1的視頻編碼器的框圖;

圖3為圖1的視頻解碼器的框圖;

圖4為視頻數據塊的圖形表示;

圖5為使用擴展單元的默認數據塊的圖形表示;

圖6a為用于對視頻數據進行譯碼的數據結構的圖形表示;

圖6b為正使用圖6a的數據結構進行視頻數據編碼時的多個譯碼樹單元(ctu)的圖形表示;

圖7為用于使用圖5的數據結構編碼視頻數據的方法的流程圖;及

圖8為用于使用圖6a的數據結構編碼視頻數據的方法的流程圖。

具體實施方式

本申請涉及視頻譯碼中的空間預測。在對視頻數據的連續塊或幀進行譯碼時,視頻編碼器可利用相鄰像素信息以(例如)在向量方面描述像素運動。此可顯著地減少描述一系列視頻幀或塊中的像素運動所要求的信息量。在一些情況下,此原理可應用于像素傳信及預測模式傳信。然而,并非所有像素始終可用于在譯碼期間用作參考。因此,舉例來說,關于像素或塊作為此空間參考的可用性存在多個限制。在進行編碼時,必須檢查這些限制以便驗證相鄰視頻數據的可用性(或不可用性)。為了減少此類“不可用性”檢查所要求的處理開銷,可實施某些默認數據以為譯碼過程提供參考,借此避開檢查的至少一部分。這些默認數據可被實施為暫時存儲且連續或周期性更新的數據結構,貫穿編碼過程參考所述數據結構以緩解進行不可用性檢查的需要。此可導致譯碼效率增加。

下文結合附圖闡述的詳細描述預期作為各種實施例的描述,且無意表示可實踐本發明的僅有實施例。所述詳細描述為了提供對實施例的透徹理解而包含特定細節。然而,所屬領域的技術人員將在無這些具體細節的情況下明白本發明。在一些情況下,為簡潔描述起見,以簡化形式展示眾所周知的結構及組件。

視頻譯碼

視頻譯碼標準包含itu-th.261、iso/iecmpeg-1視覺、itu-th.262或iso/iecmpeg-2視覺、itu-th.263、iso/iecmpeg-4視覺及itu-th.264(還被稱為iso/iecmpeg-4avc),包含其可縮放視頻譯碼(svc)及多視圖視頻譯碼(mvc)擴展。前述標準中的一或多個可與本文中所描述的實施例一起使用。

另外,itu-t視頻譯碼專家組(vceg)及iso/iec動畫專家組(mpeg)的視頻譯碼聯合合作小組(jct-vc)已開發了新的視頻譯碼標準,即高效視頻譯碼(hevc)。最新的hevc草案規范(且在下文中被稱作“hevcwd”)可從http://phenix.int-evry.fr/jct/doc_end_user/documents/15_geneva/wg11/jctvc-o1003-v1.zip獲得。hevc的多視圖擴展(即mv-hevc)及更高級3d視頻譯碼的另一hevc擴展(3d-hevc)正由jct-3v開發,且同時hevc的可縮放視頻譯碼擴展(即shvc)正由jct-vc開發。mv-hevc的最近工作草案(wd)(在下文中被稱作mv-hevcwd5)可從http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_geneva/wg11/jct3v-f1004-v6.zip獲得。3d-hevc的最近wd(在下文中被稱作3d-hevcwd1)可從http://phenix.it-sudparis.eu/jct2/doc_end_user/documents/6_geneva/wg11/jct3v-f1001-v3.zip獲得。shvc的最近工作草案(wd)(且在下文中被稱作shvcwd3)可從http://phenix.it-sudparis.eu/jct/doc_end_user/documents/15_geneva/wg11/jctvc-o1008-v3.zip獲得。

hevc通常可依靠增加計算復雜度而在具有類似圖像質量的情況下將位速率要求減少一半。在一些實施例中,hevc編碼器可權衡計算復雜度、壓縮率、誤差穩定性及編碼延遲時間。因此,hevc可通常支持較高分辨率的視頻及經改進并行處理方法。

hevc視頻譯碼層使用“混合式”方法,從而實施圖片間及圖片內預測與二維(2d)變換譯碼。對于第一圖片或使用圖片內預測的隨機接入點的第一圖片,hevc編碼器可首先將圖片分裂成塊狀區域。如本文中所使用的圖片內預測可通常指僅基于所述圖片中的信息來預測圖片中的塊。對于所有其它圖片,則使用圖片間預測。圖片間預測可通常指使用來自其它圖片的預測信息以產生當前圖片的情況。在預測方法結束且圖片經過環路濾波器之后,將最后圖片表示存儲在經解碼圖片緩沖器中。存儲在經解碼圖片緩沖器中的圖片可用于預測其它圖片。

hevc還可實施若干并行處理工具。在一些實施例中,圖像塊可用于將圖片劃分成可獨立地經編碼及解碼的矩形區域網格。

hevc標準利用參數集概念。hevc中的序列參數集(sps)、圖片參數集(pps)及視頻參數集(vps)機制可將偶爾改變信息的發射與經譯碼視頻塊數據的發射解耦。

在hevc中,使用名稱為‘ue(v)’的可變長度編碼譯碼方法來對sps圖片、pps或vps的識別符進行譯碼。hevc工作草案將經‘ue(v)’譯碼的語法元素界定為其中左位第一的無符號整數經指數-哥倫布譯碼的語法元素。每一sps包含sps識別符(id),每一pps包含ppsid及spsid,且每一切片標頭包含ppsid。每一緩沖周期補充增強信息(sei)消息也包含spsid。一般來說,視頻譯碼裝置或視頻處理裝置可將位流的數據囊封在網絡抽象層(nal)單元內。nal單元包含視頻譯碼層(vcl)nal單元及非vclnal單元。vclnal單元通常包含由視頻譯碼器使用的信息,例如經譯碼視頻數據及參數集(例如,sps、pps及vps)。非vclnal單元包含界定sei消息的信息,其可含有非必要用于解碼來自vclnal單元的經譯碼圖片樣本,但可輔助與解碼、顯示、抗丟包及抗誤碼及其它目的相關的過程的信息。

視頻譯碼系統

圖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。類似地,輸入接口28可存取存儲在存儲裝置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可對所俘獲、預俘獲或計算機產生的視頻進行編碼。在一些實例中,源裝置12的輸出接口22可經由將經編碼視頻數據直接發射到目的地裝置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-th.264/avc相對于現有裝置的若干額外能力。舉例來說,盡管h.264提供了九個幀內預測編碼模式,但hm可提供多達三十三個幀內預測編碼模式。

一般來說,hm的工作模型描述視頻幀或圖片可劃分成包含明度及色度樣本兩者的一連串樹塊或最大譯碼單元(lcu)。lcu在本文中還可被稱作譯碼樹單元(ctu)。ctu是hevc的基本單元。樹塊在概念上類似于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而有所不同。tu的大小通常是基于針對經分割lcu界定的給定cu內的pu的大小而設置,但是情況可能并不總是如此。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的樹塊,即ctu、lcu或cu。

視頻序列可包含一系列視頻幀或圖片。圖片群組(gop)通常包括一系列一或多個視頻圖片。gop可包含在gop的標頭、在圖片中的一或多個的標頭或在別處中的語法數據,所述語法數據描述gop中包含的數個圖片。圖片的每一切片可包含描述用于相應切片的編碼模式的切片語法數據。視頻編碼器20通常對個別視頻切片內的視頻塊進行操作以便對視頻數據進行編碼。視頻塊可對應于cu內的譯碼節點。視頻塊可具有固定或變化的大小,且根據指定譯碼標準可在大小上有所不同。

作為實例,hm支持各種pu大小的預測。假定特定cu的大小是2n×2n,hm支持2n×2n或n×n的pu大小的幀內預測,及2n×2n、2n×n、n×2n或n×n的對稱pu大小的幀間預測。hm還支持針對2n×nu、2n×nd、nl×2n及nr×2n的pu大小的幀間預測的不對稱分割。在不對稱分割中,不分割cu的一個方向,而是將另一方向分割成25%及75%。cu的對應于25%分區的部分由“n”后面接著“上”、“下”、“左”或“右”的指示來指示。因此,舉例來說,“2n×nu”指代經水平分割的2n×2ncu,其中頂部是2n×0.5npu,且底部是2n×1.5npu。

在本發明中,“n×n”與“n乘n”可互換使用來指視頻塊在垂直及水平尺寸方面的像素尺寸,例如,16×16個像素或16乘16個像素。一般來說,16×16塊在垂直方向上將具有16個像素(y=16),且在水平方向上將具有16個像素(x=16)。同樣,n×n塊通常在垂直方向上具有n個像素,且在水平方向上具有n個像素,其中n表示非負整數值。塊中的像素可布置成行及列。此外,塊未必需要在水平方向上與豎直方向上具有相同數目個像素。舉例來說,塊可包括n×m個像素,其中m未必等于n。

在使用cu的pu進行幀內預測性或幀間預測性譯碼之后,視頻編碼器20可計算用于cu的tu的殘余數據。pu可包含空間域(還被稱作像素域)中的像素數據,且tu在將變換應用到殘余視頻數據之后可包括變換域中的系數,所述變換例如離散余弦變換(dct)、整數變換、小波變換或概念上類似變換。殘余數據可對應于未經編碼圖片的像素與對應于pu的預測值之間的像素差。視頻編碼器20可形成包含用于cu的殘余數據的tu,且接著變換所述tu以產生用于cu的變換系數。

在用以產生變換系數的任何變換之后,視頻編碼器20可執行變換系數的量化。量化通常指代對變換系數進行量化以可能減少用以表示系數的數據量從而提供進一步壓縮的過程。量化過程可減少與系數中的一些或全部相關聯的位深度。

在一些實例中,視頻編碼器20可利用預定義掃描次序來掃描經量化變換系數,以產生可經熵編碼的串行化向量。在其它實例中,視頻編碼器20可執行自適應掃描。在掃描經量化變換系數以形成一維向量之后,視頻編碼器20可(例如)根據上下文自適應可變長度譯碼(cavlc)、上下文自適應二進制算術譯碼(cabac)、基于語法的上下文自適應二進制算術譯碼(sbac)、概率區間分割熵(pipe)譯碼或另一熵編碼方法對一維向量進行熵編碼。視頻編碼器20還可對與經編碼視頻數據相關聯的語法元素進行熵編碼,以供視頻解碼器30在對視頻數據進行解碼時使用。

為執行cabac,視頻編碼器20可將上下文模型內的上下文指派給待發射的符號。上下文可涉及(例如)符號的相鄰值是否為非零。為執行cavlc,視頻編碼器20可選擇用于待發射符號的可變長度碼。vlc中的碼字可經建構使得相對較短碼對應于更有可能符號,而較長碼對應于不太可能符號。以此方式,使用vlc可實現優于(例如)針對待發射的每一符號使用等長度碼字的位節省。概率確定可基于指派給符號的上下文而進行。

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

視頻編碼器20還可具有預測模塊41,其可操作地耦合到分割模塊35且經配置以接收經分割視頻數據。預測模塊41可基于誤差結果(例如,譯碼速率及失真電平)而針對當前視頻塊選擇多個可能譯碼模式中的一個,例如多個幀內譯碼模式中的一個或多個幀間譯碼模式中的一個。預測模塊41可使得視頻編碼器20能夠對視頻切片內的視頻塊執行幀內及幀間譯碼。幀內譯碼依賴于空間預測來減少或移除給定視頻幀或圖片內的視頻中的空間冗余。幀間譯碼依賴于時間預測來減少或移除視頻序列的鄰近幀或圖片內的視頻中的時間冗余。幀內模式(i模式)可指若干基于空間的壓縮模式中的任一個。例如單向預測(p模式)或雙向預測(b模式)的幀間模式可指若干基于時間的壓縮模式中的任一個。預測模塊41可在某些限制內執行幀間預測及幀內預測,如下文所描述。

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

運動估計模塊42可經配置以根據視頻序列的預定模式而確定用于視頻切片的幀間預測模式。當前視頻塊相對于一或多個參考圖片中的一或多個預測性塊的此幀間預測或幀間預測性譯碼可提供時間壓縮。預定模式可將序列中的視頻切片標明為p切片、b切片或gpb切片。如本文中所使用,運動估計通常可指產生運動向量的過程,所述過程估計視頻塊的運動。舉例來說,運動向量可指示當前視頻幀或圖片內的視頻塊的pu相對于參考幀或參考圖片內的預測性塊的移位。參考幀可存儲在可操作地耦合到預測模塊41的參考圖片存儲器64中。

在一些實施例中,運動向量可具有子整數像素(“子像素”)精度。舉例來說,運動向量的水平分量及垂直分量兩者都可具有相應全整數或全像素分量及子像素分量。可從參考幀內的全像素位置內插此子像素精度。因而,術語分數像素(pixel/pel)、子整數及子像素運動估計可互換使用。在一些實施例中,內插濾波器可提供內插位置。作為運動估計及/或運動補償的部分,內插濾波器可由運動估計模塊42及運動補償模塊44中的一個或兩個調用來執行內插。

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

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

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

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

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

在預測模塊41(及其其它構成模塊)執行上文所描述的各種操作時,視頻編碼器20可受到某些限制的束縛。預測模塊41在使用空間上相關視頻數據產生預測性塊時能觀察到所述限制。舉例來說,用于空間或時間預測的相鄰cu在其處于另一切片中、另一圖像塊中、正經編碼視頻幀外部或尚未經編碼pu中的情況下時可能是不可用的。能通過實施某些不可用性檢查來避免所述限制。下文結合圖4描述所述限制及相關聯不可用性檢查。

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

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

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

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

在量化之后,熵編碼模塊56可對經量化變換系數進行熵編碼。舉例來說,熵編碼模塊56可執行cavlc、cabac、sbac及/或pipe譯碼或另一熵編碼方法。在由熵編碼模塊56進行熵編碼之后,經編碼位流可被發射到視頻解碼器30。位流也可經存檔以供稍后進行發射或由視頻解碼器30檢索。熵編碼模塊56還可對正經譯碼的當前視頻切片的運動向量及其它語法元素進行熵編碼。

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

圖3為圖1的視頻解碼器的功能框圖。視頻解碼器30可包含熵解碼模塊80、預測模塊81、逆量化模塊86、逆變換模塊88、求和器90、濾波器模塊91及參考圖片存儲器92。預測模塊81包含運動補償模塊82及幀內預測模塊84。在一些實例中,視頻解碼器30可執行通常與關于來自圖2的視頻編碼器20所描述的編碼遍次互逆的解碼遍次。

在解碼過程期間,視頻解碼器30從視頻編碼器20接收表示經編碼視頻切片的視頻塊的經編碼視頻位流及相關聯的語法元素。視頻解碼器30可從網絡實體29接收經編碼視頻位流。網絡實體29可為(例如)服務器、視頻編輯器/剪接器,或經配置以實施上文所描述方法中的一或多個的其它此裝置。如上文所描述,本發明中所描述的方法中的一些可在網絡實體29將經編碼視頻位流發射到視頻解碼器30之前由網絡實體29實施。在一些視頻解碼系統中,網絡實體29及視頻解碼器30可為單獨裝置的部分,而在其它情況下,關于網絡實體29所描述的功能性可由包括視頻解碼器30的同一裝置執行。

視頻解碼器30的熵解碼模塊80對位流進行熵解碼以產生經量化系數、運動向量及其它語法元素。熵解碼模塊80將運動向量及其它語法元素轉發到預測模塊81。視頻解碼器30可接收視頻切片層級及/或視頻塊層級處的語法元素。

當視頻切片經譯碼為經幀內譯碼(i)切片時,預測模塊81的幀內預測模塊84可基于來自當前幀或圖片的先前經解碼塊的所傳信幀內預測模式及數據來產生用于當前視頻切片的視頻塊的預測數據。當視頻幀經譯碼為經幀間譯碼(即,b、p或gpb)切片時,預測模塊81的運動補償模塊82基于從熵解碼模塊80接收的運動向量及其它語法元素來產生當前視頻切片的視頻塊的預測性塊。可從參考圖片列表中的一個內的參考圖片中的一個產生預測性塊。視頻解碼器30可基于存儲在參考圖片存儲器92中的參考圖片來使用默認建構方法建構參考幀列表:列表0及列表1。

運動補償模塊82通過解析運動向量及其它語法元素來確定用于當前視頻切片的視頻塊的預測信息,并使用所述預測信息產生正經解碼的當前視頻塊的預測性塊。

運動補償模塊82還可基于內插濾波器執行內插。運動補償模塊82可使用如由視頻編碼器20在對視頻塊進行編碼期間所使用的內插濾波器,以計算參考塊的子整數像素的內插值。在此情況下,運動補償模塊82可從所接收的語法元素確定由視頻編碼器20使用的內插濾波器,并使用所述內插濾波器來產生預測性塊。

逆量化模塊86將在位流中提供且由熵解碼模塊80解碼的經量化變換系數逆量化,即解量化。逆量化過程可包含使用由視頻編碼器20針對視頻切片中的每一視頻塊所計算的量化參數來確定量化程度,并同樣地確定應該應用的逆量化程度。逆變換模塊88將逆變換(例如,逆dct、逆整數變換或概念上類似的逆變換過程)應用于變換系數以便產生像素域中的殘余塊。

在運動補償模塊82基于運動向量及其它語法元素產生當前視頻塊的預測性塊之后,視頻解碼器30通過將來自逆變換模塊88的殘余塊與由運動補償模塊82產生的對應預測性塊求和來形成經解碼視頻塊。求和器90表示執行此求和運算的一或多個組件。在需要時,還可使用環路濾波器(在譯碼環路中或在譯碼環路之后)來使像素轉變變平滑或以其它方式改進視頻質量。濾波器模塊91意圖表示一或多個環路濾波器,例如解塊濾波器、自適應環路濾波器(alf)及樣本自適應偏移(sao)濾波器。盡管濾波器模塊91在圖3中展示為環路內濾波器,但在其它配置中,濾波器模塊91可被實施為環路后濾波器。接著將給定幀或圖片中的經解碼視頻塊存儲在參考圖片存儲器92中,所述存儲器存儲用于后續運動補償的參考圖片。參考圖片存儲器92還存儲供稍后在顯示裝置(例如圖3的顯示裝置32)上呈現的經解碼視頻。

圖4為視頻數據塊的圖形表示。視頻數據塊400可表示用于對視頻數據進行編碼的ctu、cu或pu數據結構。在一些實施例中,視頻數據塊400可為圖片的一部分、視頻切片或圖像塊、樹塊或較大視頻數據塊的另一部分。視頻數據塊400展示為表示ctu及/或pu的一系列正方形。經灰色著色正方形表示經譯碼ctu402a到402e(在下文中統稱為經譯碼ctu402)。為簡潔起見,本文中并未標記所有經譯碼ctu402。ctu402f當前正經編碼,但其未經完全編碼,如由部分灰色色彩所展示。因此,ctu402f在本文中也可被稱作“當前ctu402f”,從而指示其為正經編碼的ctu。如本文中所使用,ctu、cu及/或pu一般可被稱為數據元素。

白色正方形表示未經譯碼ctu404a到404c(統稱為未經譯碼ctu404)。在一些實施例中,白色塊亦可取決于譯碼標準(例如,hevc)、預測模式及視頻數據塊400內的視頻數據來表示ctu。如本文中所描述,其可通常被稱作未經譯碼ctu404。在視頻編碼器20對未經譯碼ctu404中的每一個中所含有的視頻數據進行編碼時,譯碼從左到右、從上到下進行,直至整個視頻數據塊400已經編碼為止。如所展示,視頻編碼器20已處理了表示經譯碼ctu402的灰色正方形。白色正方形表示尚未經編碼的未經譯碼ctu404。

視頻編碼器20可利用相鄰視頻信息來對當前視頻數據進行譯碼。舉例來說,在視頻編碼器20對當前ctu402f進行編碼時,視頻編碼器20可參考針對經譯碼ctu402b、402c、402d及402e所編碼的數據,這是因為空間上連接的信息常常是相關的。在進行了一些空間預測的情況下,用于視頻數據塊400的當前數據可被表示為與參考圖片不同,例如具有向量。預測越精確,所得熵可減少得越多。

在參考當前ctu402f時,經譯碼ctu402b、402c、402d及402e在本文中通常可被稱作相鄰ctu。在一些實施例中,僅在當前ctu402f為正經編碼的ctu402(或待編碼的下一ctu402)且其參考相鄰ctu時,每一未經譯碼ctu404對于每一構成pu或cu可具有類似編碼過程。圖4的插圖展示參考相鄰cu(cua及cub)的當前cu406(當前ctu402f內)。應注意,圖4中的當前ctu402f未著色為與圖4的插圖中的ctu402f相同。ctu402f的部分灰色色彩指示其經部分編碼。出于描述及說明下文所描述的各種限制的目的,并不著色插圖中的當前ctu402f以指示編碼過程期間對相鄰cu作出的某些參考。

在一些實施例中,視頻編碼器20并不能夠參考ctu402f下方及/或右側的未經譯碼cu/pu(例如,未經譯碼ctu404中的未經譯碼cu),及ctu402f中的尚未經譯碼cu/pu中的任一個,這是因為其尚未經譯碼及在其它方面“不可用”。

舉例來說,在hevc中,對空間預測的使用存在某些限制,如上文所提到。舉例來說,無法跨越切片邊界或圖像塊邊界完成空間預測。另外,視頻編碼器20無法在預測中使用經幀間譯碼cu來進行幀內模式譯碼。

在一些實施例中,此類譯碼限制可帶來低效編碼,這是因為視頻編碼器20在對cu(例如,ctu402f中的cu)進行譯碼之前檢查每一限制。歸因于所述限制的多個或連續不可用性檢查可添加延遲并使編碼過程減慢。此類延遲可尤其不利于(例如)超快編碼器,例如4k超高清(uhd)實時編碼器。

相鄰cu(例如,經譯碼cu402或未經譯碼cu404)在多種情形下可能不可用于視頻編碼器20。舉例來說,如果相鄰cua、cub是1)在另一切片中,2)在另一圖像塊中,3)在當前幀外部,4)在不同ctu行(例如,未經譯碼ctu402c)中,或5)在(例如,當前ctu402f的)尚未經編碼cu/pu中,則此視頻數據可能不可用作視頻編碼器20對cu(例如,當前ctu402f中)進行譯碼的參考。

舉例來說,某些限制可能要求以下動作并呈現相關聯默認設置:

針對分裂旗標的cabac上下文導出。視頻編碼器20可確定兩個相鄰cu(例如,cua及cub)是否可用。在相對于對ctu402f內的當前cu406進行編碼描述時,cua及cub可為(例如)ctu402e及ctu402c內的相鄰cu。如果相鄰cua(或cub)不可用,則視頻編碼器20可將cu深度a(或b)設置為零。接著從當前cu的cu深度以及cua及cub的cu深度導出cabac上下文。

針對跳過旗標的cabac上下文導出。視頻編碼器20可確定兩個相鄰cu(cua及cub)是否可用。如果相鄰cua(或cub)中的一個不可用,則視頻編碼器20可將cu深度a(或b)設置為不跳過。可基于cua及cub是否設置成跳過模式來導出cabac上下文。

合并候選者導出。合并功能指示當前pu具有相同于其相鄰pu中的一個的運動向量,且可因此合并在一起。視頻編碼器20可檢查相鄰pu是否可用。如果相鄰pu不可用,則將不能發現合并候選者。如果相鄰pu可用,則視頻編碼器20可確定相鄰pu是否處于幀間模式預測。如果相鄰pu不處于幀間模式預測,則無合并候選者可用。如果相鄰pu處于幀間模式預測,則視頻編碼器20可從相鄰pu導出合并候選者。

運動向量預測符導出。視頻編碼器20可確定相鄰pu是否可用。如果相鄰pu不可用,則將不能發現合并候選者。如果相鄰pu可用,則視頻編碼器20可確定相鄰pu是否處于幀間模式預測。如果相鄰pu不處于幀間模式預測,則將不能發現運動預測符。如果相鄰pu處于幀間模式預測,則可從相鄰pu導出運動預測符。

幀內模式預測符導出。視頻編碼器20可確定兩個相鄰pu(pua及pub)是否可用。如果相鄰pua(或b)不可用,則視頻編碼器20可將相鄰cua(或b)的幀內預測模式設置為幀內dc預測。視頻編碼器20可進一步確定相鄰pua(或pub)是否經幀內預測。如果相鄰pua(或b)未經幀內預測,則視頻編碼器20可將相鄰pua(或pub)的幀內預測模式設置為幀內dc預測。視頻編碼器20還可使用相鄰pua及pub的幀內預測模式來預測當前pu的幀內預測模式。

不可用性檢查的數目及頻率可使視頻編碼器20的系統資源負擔較重,從而增加處理開銷并降低編碼效率。因此,在一些實施例中,期望避免前述檢查以便減少開銷及處理時間。因此,可將某些默認數據插入視頻數據塊400中或在譯碼期間參考所述默認數據來避免此類限制及重復檢查。

圖5為使用擴展默認數據的數據結構的圖形表示。數據結構500可表示用于對視頻數據進行編碼的ctu、cu或pu數據結構。舉例來說,視頻編碼器20可使用數據結構500對視頻數據塊400進行編碼。數據結構500可包含圖片的一部分、視頻切片或圖像塊,或待編碼的較大視頻數據塊的一部分,其描繪為表示待編碼的視頻數據或數據元素的展示為白色正方形的多個ctu502。在與hevc相關聯的實施例中,白色正方形也可表示cu或pu。此為類似于視頻數據塊400的數據。ctu502可使用字母識別符個別地標記及描述(例如,502a、502b等)。在一些實施例中,ctu502可對應于ctu402及ctu404(圖4)。在一些其它實施例中,ctu502的數目及布置可由視頻數據塊400的ctu(例如,經譯碼ctu402及未經譯碼ctu404)的數目及布置界定。舉例來說,在hevc中,ctu502也可為cu或pu。舉例來說,ctu可包含多個cu。對應地,cu可含有多個pu。

數據結構500也可具有在所有方向上將數據結構500的大小增加至少一個pu的擴展單元510。在概念上,擴展單元510表示可沿著待編碼視頻數據的外圍安置的數據。因此,擴展單元510以及其與界定待編碼的視頻數據塊(例如,視頻數據塊400)的外圍的ctu502的空間關聯可存儲在存儲器中。擴展單元510可使用字母識別符個別地標記及描述(例如,510a、510b等)。擴展單元510由圖5中的暗灰色正方形表示。

可將整個數據結構500緩沖或存儲到存儲器(例如,存儲裝置34中),并在對第一視頻塊(例如,視頻數據塊400)進行編碼期間參考所述數據結構。可在切片或圖像塊(例如,視頻數據塊400)編碼開始時參考擴展單元510中的所存儲默認數據。在一些實施例中,存儲裝置34能夠存儲給定數據結構500的所有最小pu信息。在另一實施例中,編碼器20可僅在存儲器中緩沖擴展單元510中的默認數據。舉例來說,在hevc中,可將與每一4×4像素塊(例如,最小pu)相關的數據存儲或緩沖到存儲器中并在編碼期間進行參考。在一些實施例中,當存儲在存儲器中時,存儲在數據結構500中的所有pu信息在幾何學上保持與正經編碼的相關聯切片或圖像塊(例如,視頻數據塊400)中的對應數據對準。舉例來說,數據結構500可具有與視頻數據塊400相同的元素數目及布置,使得視頻數據塊中正經譯碼的每一元素在數據結構500中具有對應元素。因此,在使用數據結構500對視頻數據塊400進行編碼時,當對ctu402a(圖4)進行編碼時,視頻編碼器20可將擴展單元510a、510b、510c(以及其它相鄰pu、cu及擴展單元510)用作空間參考。此可導致對(例如)ctu404進行編碼所需要的不可用性檢查的數目減少。

在一些實施例中,編碼器20可因此使用擴展單元510以避免或最小化不可用性檢查,上文所論述。視頻編碼器20可在切片或圖像塊(例如,數據結構500)譯碼開始之前,將來自擴展單元510的數據應用到數據結構500的邊界上的每一pu。舉例來說,在視頻編碼器20開始對ctu502a(例如,切片的第一數據塊)進行編碼時,編碼器20可能需要參考值。因此,視頻編碼器20可將與擴展單元510a、510b及510c相關的數據用作參考值來對ctu502a進行編碼,而無需執行上文所描述的所有檢查。

在視頻編碼器20準備對數據塊400進行編碼時,視頻編碼器20可應用擴展單元510中的默認數據,從而搶占不可用性檢查的至少一部分。在一些實施例中,視頻編碼器20可針對擴展單元510設置以下默認值:

1)cu深度等于零

2)預測模式設置成幀內預測

3)幀內預測模式設置成dc預測

前述默認值指示與擴展單元510相關的默認數據的hevc實施方案。然而,應注意,要求類似檢查的編解碼器可不僅實施來自擴展單元510的數據,且還實施如所提到的默認值。

在一些實施例中,當已決定了當前pu的預測模式時,視頻編碼器20可相應地更新默認值。然而,僅能在當前pu處于幀內預測模式時更新幀內預測模式;否則,幀內預測模式保持為dc預測。

使用擴展單元510中的此類默認數據可導致簡化檢查,這是由于視頻編碼器20可基于默認值假定某些數據,從而最小化不可用性檢查。結果,由視頻編碼器20執行的檢查可如下簡化:

針對分裂旗標的cabac上下文導出。從當前cu的cu深度以及cua及cub的cu深度導出cabac上下文。

針對跳過旗標的cabac上下文導出。基于cua及cub是否設置成跳過模式來導出cabac上下文。

合并候選者導出。視頻編碼器20可檢查相鄰pu是否處于幀間模式預測。如果相鄰pu不處于幀間模式預測,則未發現合并候選者。如果相鄰pu處于幀間模式預測,則可從相鄰pu導出合并候選者。

運動向量預測符導出。視頻編碼器20可檢查相鄰pu是否處于幀間模式預測。如果相鄰pu不處于幀間模式預測,則未發現運動預測符。如果相鄰pu處于幀間模式預測,則將從相鄰pu導出運動預測符。

幀內模式預測符導出。編碼器可使用相鄰pua及pub的幀內預測模式來預測當前pu的幀內預測模式。

在一些實施例中,緩沖器或存儲器大小(例如,存儲裝置34)可是受限的。因此,可實施較小默認數據塊以節省存儲器使用。在一些實施例中,視頻編碼器20可通過不在存儲器中存儲整個切片或圖像塊(例如,視頻數據結構500)而是存儲較小數據結構(例如單一ctu)來減少存儲器使用。可接著在編碼期間重復ctu,從而實現存儲整個數據結構500的相同目的。

圖6a為用于對視頻數據進行編碼的數據結構的圖形表示。數據結構600具有描繪為多個白色正方形的圖5中所展示的pu的一部分,其在本文中被稱作pu602。在一些實施例中,數據結構600具有界定為(m/n)×(m/n)個元素的大小,其中數據結構600可用于對具有m×m大小及最小pu大小n×n的ctu進行編碼。舉例來說,數據結構600是在m=32且n=4的情況下展示。視頻編碼器20可在每一方向上將數據結構擴展一個元素或擴展單元510(經灰色著色)。因此,在存儲器中,數據結構600可表示為10×10個元素。除展示為灰色正方形的擴展單元510之外,此可包含對應于(例如)ctu的8×8個元素或pu602。在一些實施例中,pu602的8×8個塊可對應于圖4或圖5的單一白色塊(例如,未經譯碼ctu404、502)。

擴展單元510可描述為定位在8×8個pu602的外部上。替代地,擴展單元510可描述為沿著8×8個pu602的外圍安置。接著可按照行及列參考10×10數據結構600,其中行水平地布置且列豎直地布置。因此,數據結構600具有10行及10列。

在一些實施例中,視頻編碼器20可將數據結構600保存在存儲器(例如,存儲裝置34)中,且隨后在進行編碼時更新及參考數據結構600以設置用于未經譯碼pu(例如,pu602或相鄰pu)的默認值。在一些實施例中,在對后續ctu進行編碼時,僅緩沖并更新擴展單元510。

在一些實施例中,數據結構600可表示視頻編碼器20在對新的視頻塊(例如,ctu)進行編碼時可參考的默認數據結構。視頻編碼器20可緩沖占據10×10個元素的小得多的結構的數據結構600,而非緩沖如數據結構500中的整個切片。如所提到,數據結構600含有來自經相等大小設置ctu的數據,ctu為hevc中的切片或圖像塊的基本數據單元。

在視頻編碼器20對切片或圖像塊(例如,視頻數據塊400)進行編碼之前,可將未經譯碼pu(例如,白色正方形或pu602)中的所有數據設置成由數據結構600指示的默認值。沿著數據結構600的頂部的標記有小寫字母a到h的塊及沿著左側的標記有大寫字母a到h的塊可表示來自擴展單元510的數據(例如,列及行),在對切片或圖像塊(例如,數據結構500)進行編碼時,在數據結構600中周期性地更新所述擴展單元。在一些實施例中,僅緩沖數據結構600的一部分。舉例來說,可緩沖擴展單元510、多個最右pu604(著色為淺灰色)及多個最低pu608(對角線條紋)以供稍后編碼時使用,而可丟棄來自剩余白色塊(例如,pu602)的數據。最右pu604及最低pu608分別表示在經譯碼ctu的右側及底部遠處的pu602或經譯碼元素。

如所展示,ctu609由指示經譯碼切片(例如,數據塊400)中的連續ctu之間的關聯的虛線表示。在用來自隨后經編碼ctu(例如,ctu609)的數據更新數據結構600時,最右pu604存儲在數據結構600中,且變成數據結構600中用于對ctu609進行編碼時參考的最左擴展單元510(標記為a到h)。下文較詳細地描述此情況。

圖6b為正使用圖6a的數據結構進行視頻數據編碼時的多個ctu的圖形表示。三個ctu610、620、630展示為由實線環繞,從而指示待編碼的數據。虛線及點虛線指示在ctu610、620、630中的每一個經編碼時,數據結構600中的數據的相對位置。因此,ctu610、620、630內含有的空白區域可對應于數據結構600的8×8個pu,或在一些實施例中對應于圖4及圖5的單一塊。一般來說,用于對ctu610、620、630中的每一個進行編碼時參考的數據結構600各自在水平方向上重疊兩列。所述重疊表示視頻編碼器20可如何參考緩沖到數據結構600的數據以用于對連續ctu進行編碼。ctu610、620、630中的每一個由10×10個元素的虛線或點虛線框環繞,從而涵蓋包含擴展單元510的區域。右側的淺灰色元素及沿著ctu610、620、630中的每一個的底部的條紋元素分別表示用于在連續ctu經編碼時更新其擴展單元(例如,a到h、a到j)的最右pu604及最低pu608(圖6)。為圖式清晰,并未標記圖6b內的所有元素。

ctu610鄰近于ctu620,其中相應虛線及點虛線框重疊數據結構600中用于ctu610的最右列pu604,及數據結構600內用于對ctu620進行編碼的最左列擴展單元510。ctu620與ctu630同樣如此。另外,ctu的第二行(包含數據結構600中供三個更多ctu640、650、660參考的部分)與ctu610、620、620重疊兩行。特定來說,用于對ctu640、650、660進行編碼的數據結構600展示為具有由最低pu608(對角線條紋)及擴展單元的底部行豎直地重疊的交替虛線及點虛線。

一旦視頻編碼器20根據數據結構600對ctu610進行編碼,可在緩沖器中將最右pu604(展示為淺灰色)復制到數據結構600的正方形a到h并將其用于對ctu620進行編碼。此替換a2到h2的值(例如,數據結構600中的擴展單元510),其現在經更新用于對下一ctu620進行編碼。擴展單元a2到h2及a3到h3著色為淺灰色,以指示來自最右cu604(圖6a)的數據用于更新數據結構600以用于對后續ctu620、630進行譯碼。可接著將最低cu608(展示為對角線條紋正方形)復制到可存儲具有等于切片或圖像塊寬度的大小的數個元素的存儲器(例如,存儲裝置34)中的線元素緩沖區。

可逐ctu連續更新數據結構600,直至切片或圖像塊(例如,視頻數據塊400)的第一ctu行中的最后ctu為止。在開始(例如)ctu640的第二ctu行之前,可將數據結構600的a到h、a的值及用于ctu640內部的pu602的全部數據初始化為基于數據結構600的默認值。另外,在對ctu640進行編碼之前,可將h1的數據設置成默認值,且可用存儲在線緩沖區中的來自底部塊608的數據更新塊bx到hx、h2、by(對應于圖6a的a到j)的值。在一些實施例中,對于垂直方向上的參考ctu不可用的情況,在使用數據結構600更新數據之前,可將相關數據元素初始化為默認值。舉例來說,如果pudx為經幀內譯碼pu,則在更新之前將幀內模式重置為dc模式。接著,視頻編碼器20可對ctu640、ctu650及ctu660等等的第二ctu行重復所述過程。

圖7為用于使用圖5的數據結構對視頻數據進行編碼的方法的流程圖。方法700可使用如本文中所描述的視頻數據塊400、數據結構500及數據結構600來實施。

在塊710處,編碼器可將數據結構存儲在存儲器中。數據結構(例如,數據結構500)可具有在幾何學上經布置以匹配例如視頻數據塊400的第一視頻數據塊的大小的多個數據元素。數據結構500可進一步包含與第一視頻數據塊400的所有最小預測單元(pu)相關的數據。所述數據可包含視頻數據塊的最小預測單元,且涉及譯碼單元深度、預測模式及幀間預測模式的默認值以及其它特性。

在塊720處,編碼器20可通過沿著多個數據元素(例如,視頻數據塊400)的外圍添加多個擴展單元510來增加存儲裝置34中的數據結構的大小。擴展單元510中的每一個可具有與第一視頻數據塊400的最小數據元素相關的數據。舉例來說,視頻編碼器20可將擴展單元510添加到視頻數據塊400的每一側,從而形成數據結構500。

在塊730處,視頻編碼器20可將每一擴展單元510及多個數據元素設置為默認值。擴展單元510可具有針對待編碼的視頻數據設置成第一數據結構500(例如,切片或圖像塊)的默認值的數據或值。

在塊740處,視頻編碼器20可使用數據結構500對視頻數據塊400進行編碼。擴展單元510可充當用于對cu404進行編碼的默認參考。接著,使用數據結構500可減少不可用性檢查。

因此,方法700可由視頻編碼器20實施以減少對連續視頻數據塊400進行編碼所要求的緩沖存儲器(例如,存儲裝置34)的量。另外,方法700可減少與視頻編碼器20的所要求不可用性檢查相關的開銷。

圖8為用于使用圖6a的數據結構對視頻數據進行編碼的方法的流程圖。方法800可使用如本文中所描述的視頻數據塊400及數據結構600來實施。

在塊810處,視頻編碼器20可存儲與數據結構(例如,數據結構600)中的第一多個預測單元的每一預測單元相關的數據。數據結構600可具有譯碼樹單元(ctu)的大小。

在塊820處,視頻編碼器20可存儲沿著數據結構中的多個預測單元的外圍安置的多個擴展單元510中的每一擴展單元510的擴展數據。

在塊830處,視頻編碼器20可基于數據結構600對第一ctu(例如,ctu610)進行編碼。

在塊840處,視頻編碼器20可用與第一ctu的最右列譯碼單元或預測單元(例如,最右cu604)相關的數據來更新數據結構中的多個擴展單元510的最左列(例如,標記為a、a到h的擴展單元510),以形成第一經更新數據結構600。

在塊850處,視頻編碼器20可基于第一經更新數據結構600對第二ctu(例如,ctu620)進行編碼。

因此,方法800可減少對連續ctu620、630、640、650、660或視頻數據塊400中的一或多個進行編碼所要求的緩沖存儲器(例如,存儲裝置34)的量。另外,方法800可減少與視頻編碼器20的所要求不可用性檢查相關的開銷。

可使用多種不同技術及方法中的任一種來表示本文中所公開的信息及信號。舉例來說,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合來表示可在整個上文描述中參考的數據、指令、命令、信息、信號、位、符號及碼片。

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

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

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

盡管本發明的實施例是在上文中針對特定實施例描述的,但本發明的許多變化是可能的。舉例來說,各種組件的數目可增加或降低,確定供應電壓的模塊及步驟可經修改以確定頻率、另一系統參數或參數的組合。另外,可以不同于上文所描述的組合的組合對各種實施例的特征進行組合。

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

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

當前第1頁1 2 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 翁牛特旗| 安龙县| 金川县| 桃园县| 胶州市| 太仓市| 邳州市| 尤溪县| 米林县| 富川| 旬邑县| 舞钢市| 罗平县| 扎兰屯市| 文安县| 邮箱| 武隆县| 休宁县| 三都| 韶关市| 宁武县| 溧水县| 建水县| 辽中县| 霍林郭勒市| 太湖县| 元氏县| 科技| 开平市| 昌吉市| 荥阳市| 盱眙县| 海安县| 江津市| 吉首市| 元阳县| 张掖市| 门源| 丰镇市| 德清县| 蓝田县|