相關申請的交叉引用
本中請要求2010年12月28日提交的、標題為“PICTURE SEGMENTATION USING GENERALIZED SLICES”的美國臨時專利申請No.61/427,569和2011年12月23日提交的、標題為“METHOD AND SYSTEM FOR SELECTIVELY BREAKING PREDICTION IN VIDEO CODING”的美國專利申請No.13/336,475的優先權,通過引用方式將以上每個申請的全部內容并入本文中。
技術領域
本發明的實施例涉及視頻壓縮,并且更具體而言,涉及在視頻圖像的圖像段邊界處選擇性地使用預測和環內濾波器機制。
背景技術:
可以將數字視頻能力并入到范圍廣義的設備中,包括數字電視、數字直接廣播系統、無線廣播系統、個人數字助理(PDA)、膝上型計算機或者桌上型計算機、攝像機、數字記錄設備、視頻游戲設備、視頻游戲控制器、蜂窩或衛星無線電話等等。數字視頻設備可以實現視頻壓縮技術,例如在類似MPEG-2、MPEG-4的標準中所描述的那些視頻壓縮技術,其中,可以從位于瑞士CH-1211日內瓦20,郵政信箱56,Voie-Creuse第一大道的國際標準組織(“ISO”)或www.iso.org或ITU-T H.264/MPEG-4第十部分,高級視頻編碼(“AVC”)獲得,從位于瑞士CH-1211日內瓦20萬國宮廣場的國際電信聯盟(“ITU”)或www.itu.int獲得MPEG-2、MPEG-4標準,通過引用方式將以上每個標準的全部內容并入本文中,或者根據其它標準或非標準規范實現視頻壓縮技術,從而有效地編碼和/或解碼數字視頻信息。其它的壓縮技術仍然可能在將來被開發或者目前正處于開發中。例如,被稱為HEVC/H.265的新視頻壓縮標準正處于JCT-VC委員會的開發中。在由Wiegand等人于2011年3月所著的“WD3:Working Draft 3 of High-Efficiency Video Coding,JCTVC-E603”中闡釋了HEVC/H.265的工作草案被提出,“WD3:Working Draft 3 of High-Efficiency Video Coding,JCTVC-E603”在后文中稱為“WD3”并且通過引用方式被整體并入到本文中。
視頻編碼器可以接收未編碼的視頻信息,以便于處理成任何合適的格式,該格式可以是符合(可從位于瑞士CH-1211日內瓦20萬國宮廣場的國際電信聯盟(“ITU”)或www.itu.int獲得的并且以引用的方式將其全部內容并入本申請的)ITU-R BT601的數字格式或一些其它數字格式??梢詫⑽淳幋a視頻在空間上組織成布置在一個或多個二維矩陣中的像素值并且在時間上組織成一系列未編碼圖像,每個未編碼圖像包括一個或多個上述提到的二維像素值矩陣。此外,每個像素可以包括用于以數字格式表示色彩的大量獨立的分量。用于被輸入到視頻編碼器的未編碼視頻的一個通用格式針對具有四個像素的每個分組來說具有四個輝度樣本(其包括有關像素的亮度/光亮度或暗度的信息)和兩個色度樣本(其包括顏色信息(例如,YCrCb 4:2:0))。
視頻編碼器的一個功能是將未編碼圖像轉譯(更通?!稗D換”)為比特流、分組流、NAL單元流或其它合適的傳輸格式(在后文都被稱為“比特流”),其目的在于例如減少編碼到比特流中的冗余的數量,以因此增加傳輸速率,增加比特流的恢復,從而抑制在傳輸期間可能發生的比特錯誤或分組擦除(統稱為差錯恢復),或其它專用的目標。本發明的實施例提供冗余的去除或減少、差錯恢復的增加以及并行處理架構中的視頻編碼器和/或相關聯的解碼器的實現中的至少一個。
視頻解碼器的一個功能在于接收由符合相同的視頻壓縮標準的視頻編碼器產生的比特流形式的編碼視頻作為它的輸入。視頻編碼器然后將接收到的編碼比特流轉譯(更通?!稗D換”)為可以被顯示、存儲或以其它方式處理的未編碼視頻信息。
可以使用硬件和/或軟件配置(包括硬件和軟件二者的組合)實現視頻編碼器和視頻解碼器。視頻編碼器和視頻解碼器中的任何一個或兩個的實現可以包括可編程的硬件組件例如(例如,個人計算機(PC)中找到的那些)通用中央處理器(CPU)、嵌入式處理器、圖形卡處理器、數字信號處理器(DSP)、現場可編程門陣列(FPGA)等等的使用。為了實現視頻編碼或解碼的至少一部分,可能需要指令,并且可以使用一個或多個非瞬態的計算機可讀介質來存儲和分配那些指令。計算機可讀介質選擇包括壓縮盤只讀存儲器(CD-ROM)、數字視頻盤只讀存儲器(DVD-ROM)、記憶棒、嵌入式ROM等等。
視頻壓縮和解壓縮指的是視頻編碼器和/或解碼器申執行的特定操作。視頻解碼器可以執行編碼操作的反向操作的全部或子集。除非另有說明,本文所描述的視頻編碼技術還旨在包括所描述的視頻編碼技術的反向操作(即相關的視頻解碼技術)。
可以把未壓縮、數字表示的視頻看作樣本流,其中可以由視頻顯示器按掃描次序處理該樣本。在該樣本流中通常出現的一種類型的邊界是樣本流中的圖像之間的邊界。許多視頻壓縮標準識別該邊界,并且一般例如通過在每個未編碼圖像的開始處插入圖像報頭或其它的元數據,在這些邊界處分割編碼比特流。在樣本流中可能出現的其它邊界包括片邊界和瓦片邊界,其可以出現在未編碼圖像內,如下所述。
視頻編碼中的預測可以發生在多個等級上。
一個等級在后文被稱作“熵編碼等級”,并且在該等級上的預測被稱作“編碼預測”。在該等級中,熵編碼符號的解碼可能需要成功地解碼先前的熵編碼符號。所有或幾乎所有的當前壓縮標準都破壞圖像和片等級處的編碼預測。即,在檢測到比特流(或等同物)中的圖像或片報頭之后,熵編碼中使用的與熵編碼相關狀態被復位為初始化狀態。熵編碼預測的一個實例是ITU-T Rec.H.264中的CABAC狀態的復位。
此外,可能存在這樣一種編碼機制,其中該解碼機制未落入如上所述的與熵編碼相關的預測的普通理解內,但是其仍然涉及與比特流相關聯的重構控制信息而不是像素值。作為一個實例,即使一些較舊的標準(例如,ITU-T Rec.H.261標準)也允許相對于一個或多個先前編碼的運動向量編碼運動向量。塊組(GOB)、片或圖像報頭的檢測將該預測向量復位為(0,0)。
還存在跨越多幅圖像的預測機制。例如,運動補償可以將來自一幅或多幅參考圖像的(有可能已被運動補償的)像素值用于預測。通過宏塊類型(或等同物)破壞該類型的預測。例如,幀內宏塊通常不使用來自參考圖像的預測,然而幀間宏塊可能使用來自參考圖像的預測。在這個意義上說,幀內片和幀間片僅僅是屬于那些不同宏塊類型的宏塊的累積。
還存在這樣一種預測等級,其中該預測等級包括基于在正在被編碼的圖像的重構過程期間已經被重構的像素值的預測。一個實例是幀內預測機制,例如,ITU-T Rec.H.263的附件I中描述的那個(類似的機制在其它視頻編碼標準中也是可用的)。
除了預測機制之外,幾個視頻編碼標準指定了用于執行環內濾波的濾波器。一個實例是ITU-T Rec.H.263的附件J中指定的環內濾波器。
針對一些應用,將正在被編碼的圖像分割成較小的數據塊可能是有利的,其中,該分割可以發生在編碼之前或編碼期間。下面描述可以受益于圖像分割的兩種使用情況。
第一種該使用情況涉及并行處理。在以前,標清視頻(例如720x480或720x576個像素)是廣義的商業使用中的最大格式。最近,出現并且在各種各樣的應用空間使用(高達1920x1080個像素的)HD格式以及4k(4096x2048個像素)、8k(8192x4096個像素)以及更大的格式。盡管近些年來可負擔的計算能力增加,但是由于與這些更新的或更大的格式中的一些格式相關聯的圖像尺寸非常大,所以調節并行處理的效率以編碼并且解碼過程通常是有利的。并行編碼和解碼可以例如發生在指令等級(例如使用SIMD)、在可以在不同階段上同時處理多個視頻編碼單元的流水線中或者在由獨立的計算引擎作為獨立的實體(例如多核通用處理器)來處理視頻編碼子單元的集合的大型結構基礎上。并行處理的最后一個格式可能需要圖像分割。
第二種該使用情況涉及圖像分割以便創建適用于在分組網絡上的有效傳輸的比特流。基于IP或其他分組網絡協議來傳輸編碼視頻的編解碼器可能受到最大傳輸單元(“MTU”)尺寸約束的限制。對于編碼片尺寸而言,有時候包括編碼片的結果分組盡可能地接近MTU尺寸而不超過該尺寸是有利的,以便保持高的有效載荷/分組化開銷比率,同時避免被網絡分段(以及結果導致的更高的損失概率)。
MTU尺寸從一個網絡到另一個網絡網絡變化很大。可以例如由通常用于因特網的網絡基礎設施的最小MTU尺寸設置許多因特網連接的MTU尺寸,其中,該最小MTU尺寸通常對應于以太網中的極限并且可以大致為1500個字節。
編碼圖像中的比特的數量依賴于許多因素如源圖像的尺寸、希望的質量、就預測適宜性而言的內容復雜度、視頻編碼標準的編碼效率以及其他因素。然而,即使在適中的設置質量和內容復雜度上,對于HD分辨率以及更高分辨率的序列,平均編碼圖像的尺寸輕易地超過MTU尺寸。視頻會議編碼器可能例如需要大約2Mbit/sec,以編碼720p60視頻序列。這導致大致33000比特或4215字節的平均編碼圖像尺寸,這比因特網的MTU尺寸的1500個字節多相當多。在更高的分辨率上,平均圖像尺寸增加到顯著高于因特網的MTU尺寸的值。假設與以上720p60中類似的壓縮比,60fps上的4096x2048(4k)視頻(4kp60)可能對于每個編碼視頻圖像需要大于300000個比特或25個MUT大小的分組。
在許多以前的視頻編碼標準(例如,直到和包括WD3)中,圖像段(或至少一種形式的圖像段)被稱作“片”。在下面的描述中,可以將用于破壞至少一種形式的圖像內預測、環內濾波或其它編碼機制的任何種類的(例如基于視頻編碼的)圖像分段可以通常稱作“片”。同樣地,諸如(從見以上用于H.264的ITU可得的)ITU.T Rec.H.261或ITU Rec.H.263中的塊組(“GOB”)、H.264或MPEG標準族中的片之類的結構中的每一個結構可以構成遍及本文所使用的術語“片”。然而,RFC3984的分段單元或H.264的數據部分不能構成遍及本文所使用的術語“片”,因為他們沒有破壞圖像內的預測、環內濾波或另一種編碼機制。
參考圖1,圖1示出了使用片的圖像分割的實例100。把圖像101分成兩個掃描次序片102、103。把片邊界示出為粗線104。第二片103的第一個宏塊105具有地址11。例如,當使用H.264標準生成用于傳輸圖像101的對應的比特流106時,比特流106可以包括一個或多個參數集107緊接著兩個片102、103的片報頭108、110和片數據109、111,其中該一個或多個參數集107不包括有關片邊界的信息,報頭。放大示出了第二片103的片報頭110。例如,由解碼器通過至少兩個因素的組合確定未編碼片103的尺寸。首先,片報頭110包括片103的第一宏塊105的地址。其次,例如通過檢測比特流中的新的片報頭來確定片的結尾,或在所述實例中,通過比特流112中的編碼圖像的結束(即,在宏塊24之后)來確定片的結束。第一宏塊和該片的結尾之間的所有宏塊構成了該片。應當注意的是,掃描次序修改(例如,H.264的靈活的宏塊排序)可以通過創建間隙來改變片中的宏塊的數量。
在媒介未感知分割機制例如由路由層的IP提供的那些分割機制上使用片的一個優點在于片通過破壞片之間的邊界處的特定類型的預測從而可至少在一定程度上獨立地解碼片(如下面更詳細地討論的)。因此一個片的丟失不必然地致使編碼圖像的其它片不可用或者不可解碼。根據分段機制的實現,分段的丟失可能相反地致使許多其它分段不可用,因為貫穿本文使用的術語分段沒有破壞任何形式的預測。
WD4(從http://wftp3.itu.int/av-arch/jctvc-sit/2011_07_f_Forino/可獲得的、由B.Bross等人所著的“WD4:Working Draft 4 of High-Efficiency Video Coding”)是與開發中的與數字視頻編碼標準相關的草案規范,其可以被稱作高效視頻編碼(HEVC)或H.265。除了片之外,WD4還包括被稱作“瓦片(title)”的圖像分割機制。根據WD4,可以把源圖像分成被稱為瓦片的矩形單元,使得源圖像的每個像素是瓦片的一部分(其它約束條件還可以適用)。因此,瓦片是圖像的矩形部分。瓦片由高級語法結構中可用的坐標系確定瓦片邊界,該高級語法結構在WD4中被稱作參數集。下面更詳細地描述瓦片。
在除了圖像間的預測的可能的之外,上述的圖像間的預測機制或編碼機制中的每一個可能被圖像報頭的解碼(或等同物,例如具有幀數與先前的片不同的片的解碼)破壞。是跨片邊界還是跨瓦片邊界破壞那些預測機制取決于視頻壓縮標準和使用的片類型。
在H.264中,可以相對于運動向量預測、幀內預測、CA-VLC和CABAC狀態和H.264標準的其它方面,獨立地解碼片。僅允許圖像間的預測(包括通過運動補償的片邊界之外的像素數據的輸入)。雖然該解碼獨立性增加差錯恢復,但是不允許前述跨片邊界的預測降低編碼效率。
在H.263中,視頻編碼器在選擇通過使用片或具有非空GOB報頭的GOB來破壞哪些預測機制時具有較多的靈活性。例如,存在包括在圖像報頭中的比特,當使用附件R時可選擇該比特,該比特向解碼器發信號通知跨片/GOB(具有非空報頭)邊界沒有發生任何預測。跨具有非空報頭的GOB并且跨片邊界破壞特定(例如,運動向量機制),而不管附件R的狀態。由附件R控制其它預測機制。例如,如果未被設置該比特,則運動向量可以指向到與當前參考圖像中的片/具有非空報頭的GOB共同位于的空間區域的外部,因此潛在地將用于運動補償的樣本值從不處于參考圖像中的片/GOB的幾何區域內的區域“輸入”到當前片。此外,除非附件R是活動的,否則環路濾波可以包括片/GOB外部的樣本值。類似地,圖像報頭中存在另一個啟用或禁用幀內預測圖像報頭。
然而,在多數標準中,以至少一個圖像粒度上并且在一些情況中在序列粒度上做出破壞圖像預測的決定。換言之,使用H.263作為一個實例,在給定圖像中不能混合(分別)啟用或禁用去塊濾波器的片,也不可能在片等級是啟用/禁用幀內預測。
如已經描述的,圖像分割允許把圖像分成小于整幅圖像的空間區域。雖然用于圖像分割的大多數常用的應用看起來與MTU尺寸匹配并且被并行化,但是圖像分割還可以用于許多其它的目的,包括使段的尺寸和形狀與內容適應的那些目的。感興趣區域的編碼是幾個實例中的一個。在該情況,當應用不同編碼工具(包括不同預測機制)時,圖像的特定部分可能比其它部分(在花費較低數量比特進行編碼而產生相似的視覺體驗的意義上)被更有效地編碼。例如,一些內容可能受益于去塊濾波,并且不可能很好地響應幀內預測,然而相同圖像中的其它內容無需去塊濾波可能被更好地編碼,但是能夠受益于幀內預測。通過啟用去塊濾波和幀內預測,可以最好地編碼第三內容。當圖像被分成瓦片時,所有這些內容可以位于相同的圖像中,者例如發生在采訪情形或視頻會議中。
段邊界處的預測破壞的現存機制的一個缺點是預測破壞的啟用和/或禁用一般被硬編碼成現存的視頻編碼標準,因此難以或不能例如基于編碼內容的特性在段邊界處選擇性地破壞預測機制。
因此,需要一種基于每片單獨地或整體地啟用或禁用預測和環內濾波機制的改進的方法和系統。因此,期望一種至少部分地解決以上或其它缺點的方案。
此外,需要基于每幅圖像(或圖像組、序列組等)單獨地或整體地啟用或禁用跨無報頭(或等同物)圖像段邊界(例如瓦片邊界)的預測機制和/或環內濾波機制。因此,期望一種至少部分地解決以上或其它缺點的方案。
技術實現要素:
本發明的實施例提供用于編碼和/或解碼這樣一種視頻圖像的方法和系統,其中在該視頻圖像中可以選擇性地啟用或禁用圖像段的多個預測和環內濾波工具。
根據本發明的一個方案,編碼器可以對于一個或多個預測工具指示該工具可以取得來自當前正在被處理的圖像段的外部的信息作為用于該圖像段中的處理的參考信息。編碼器可以提供用于單個預測工具(例如,熵預測、幀內預測、運動補償預測、運動向量預測,在后文作預測工具)和/或單個濾波工具(例如,自適應內插濾波、自適應環路濾波、去塊、濾波、樣本自適應偏移,在后文作環路濾波工具)以及其它的該指示??商鎿Q地,編碼器可以提供提供用于多個預定義工具或可以包括任何上述預測和環路濾波工具的預定義工具組以及其它的該指示。這樣做可以用于支持編碼器和解碼器的并行化以及特定應用情況,例如軟持續呈現(在壓縮域中將編碼圖像拼接在一起)。
根據本發明的一個方案,當使用無報頭圖像段(例如,瓦片)時,編碼器可以指示預測工具、環路濾波工具或多個預先定義的工具組,而不管該工具可能把跨水平的、垂直的或水平和垂直二者的瓦片邊界的信息用作參考信息。
作為一個實例,在H.264或HEVC的特定情況中,編碼器可以設置用于預測和環內濾波工具的“編碼中斷指示”標志的值,例如:片/瓦片邊界外部的幀內預測參考樣本值;片/瓦片邊界外部(即,通過運動補償)的向量參考樣本值;片/瓦片邊界外部的CABAC狀態的使用;片/瓦片邊界外部的CA-VLC狀態的使用;片/瓦片邊界外部的PIPE或類似的V2V熵編碼狀態的使用(僅HEVC);以及環內濾波器(如自適應內插濾波器、自適應環路濾波器、去塊環路濾波器或樣本自適應偏移)的片/瓦片邊界外部的狀態和樣本值的使用。
根據本發明的一個方案,不以標志的形式而是通過其它數據結構的操作指示編碼工具使用或其它啟用,例如在一些情況中“編碼中斷指示”整數可以將多個前述標志或那些標志的優選的置換組合成單個符號。
根據本發明的一個方案,指向片邊界外部的運動向量的最大長度可以被編碼成整型的合適的熵編碼表示,因此不僅指示在長達由所使用的等級所允許的距離上不使用運動補償,而且指示所允許的最大值,這可以例如助于解碼器實現中的資源分配。
根據本發明的一個方案,可以將前述編碼中斷指示標志或其它數據編碼中斷指示結構中的至少一個存儲在片報頭、圖像報頭、參數集或等同物中。
根據本發明的一個方案,解碼器可以通過跨片/瓦片邊界而不是其它可能合適的邊界地破壞所指示的預測工具,對標志或其它數據結構的出現做出反應。
在一個廣義的方案中,提供了一種用于解碼包括多個段的編碼視頻圖像的方法。對于編碼視頻圖像的不具有相關聯的段報頭的至少一個段,該方法可以包括:從編碼視頻圖像獲得將要被應用于編碼視頻圖像的至少一個預測或環內濾波操作的至少一個指示,并且響應于該至少一個指示,控制至少一個預測或環內濾波操作。在一些情況中,編碼視頻圖像可以包括至少兩個沒有相關聯的段報頭的兩段。
在另一個廣泛的方面中,提供了一種用于編碼包括多個段的視頻圖像的方法。該方法包括:對于視頻圖像的不具有相關聯的段報頭的至少一個段,獲得將要被應用于不具有相關聯的段報頭的至少一段的至少一個預測或環內濾波操作的至少一個指示;并且響應于至少一個指示,在編碼視頻圖像期間控制至少一個預測或環內濾波操作。在一些情況中,視頻圖像可以包括至少兩個沒有相關聯的段報頭的段。
在又另一個廣泛的方面中,提供了一種非瞬態的計算機可讀介質,其上存儲有計算機可執行的指令,該指令用于規劃一個或多個處理器以執行編碼包括多個段的視頻圖像的方法。該方法可以包括:對于編碼視頻圖像的不具有相關聯的段報頭的至少一個段,從編碼視頻圖像獲取將要被應用于編碼視頻圖像的至少一個預測或環內濾波操作的至少一個指示,且響應于至少一個指示,控制至少一個預測或環內濾波操作。在一些情況中,編碼視頻圖像可以包括至少兩個沒有相關聯的段報頭的段。
在又另一個廣泛的方面中,提供了一種非瞬態的計算機可讀介質,其上存儲有計算機可執行的指令,該指令用于規劃一個或多個處理器以執行編碼包括多個段的視頻圖像的方法。該方法可以包括:對于視頻圖像的不具有相關聯的段報頭的至少一個段,獲得將要被應用于不具有相關聯的段報頭的至少一段的至少一個預測或環內濾波操作的至少一個指示,且響應于至少一個指示,在編碼視頻圖像期間控制至少一個預測或環內濾波操作。在一些情況中,視頻圖像可以包括至少兩個沒有相關聯的段報頭的段。
在又另一個廣義的方案中,提供數據處理系統,該數據處理系統包括被配置為執行用于編碼包括多個段的視頻圖像的方法的處理器和加速器硬件中的至少一個。該方法可以包括:對于編碼視頻圖像的不具有相關聯的段報頭的至少一個段,從編碼視頻圖像獲得將要被應用于編碼視頻圖像的至少一個預測或環內濾波操作的至少一個指示,并且響應于至少一個指示,從而控制至少一個預測或環內濾波操作。在一些情況中,編碼視頻圖像可以包括至少兩個沒有相關聯的段報頭的段。
在又另一個廣義的方案中,提供數據處理系統,該數據處理系統包括被配置為執行用于編碼包括多個段的視頻圖像的方法的處理器和加速器硬件中的至少一個。該方法可以包括:對于視頻圖像的不具有相關聯的段報頭的至少一個段,獲得將要被應用于不具有相關聯的段報頭的至少一段的至少一個預測或環內濾波操作的至少一個指示,并且響應于至少一個指示,從而在編碼視頻圖像期間控制至少一個預測或環內濾波操作。在一些情況中,視頻圖像可以包括至少兩個沒有相關聯的段報頭的段。
在一些實施例中,根據以上方案中的任何一個方案,至少一個預測或環內濾波操作可以包括熵預測、幀內預測、運動向量預測、運動補償預測、自適應環路濾波、自適應內插濾波、去塊濾波或樣本自適應偏移中的至少一個。
在一些實施例中,根據以上方案中的任何一個方案,可以從至少一個組合指示獲得多個指示中的至少一個方案。
在一些實施例中,根據以上方案中的任何一個方案,至少一個指示可以被編碼為用于指示運動向量的最大長度的向量。
在一些實施例中,根據以上方案中的任何一個方案,可以將至少一個指示編碼到參數集中。
根據本發明的進一步方案,提供了一種裝置(例如,數據處理系統)、一種用于改變該裝置的方法以及制品(例如,其上記錄和/或存儲有用于執行本文描述的任何方法的程序指令的非瞬態的計算機可讀介質或產品)。
附圖說明
本發明的實施例的各種特征和優點將從結合附圖所進行的下文的詳細描述變得顯而易見,其中:
圖1是示出了根據本發明的一個實施例的具有掃描次序片的示例性圖像和表示編碼圖像的比特流的圖示;
圖2是示出了根據本發明的一個實施例的瓦片和片的圖示;
圖3是示出了根據本發明的一個實施例的編碼比特流的框圖;
圖4是示出了根據本發明的一個實施例的編碼比特流的框圖;
圖5是示出了根據本發明的一個實施例的編碼比特流的框圖;
圖6是示出了根據本發明的一個實施例的示例性解碼器的操作的流程圖;
圖7是示出了根據本發明的一個實施例當解碼片時示例性解碼器的操作的流程圖;
圖8是示出了根據本發明的實施例的基于數據處理系統(例如,個人計算機(“PC”))實現的框圖;
應當注意的是,在整個附圖中,由相同的附圖標記識別相同的特征。
具體實施方式
在下文中,闡述了細節以提供本發明的理解。在一些實例中,未詳細地描述或顯示特定的軟件、電路、結構和方法,以免模糊本發明。在本文中使用術語“數據處理系統”來指代用于處理數據的任意機器,包括本文所述的計算機系統、無線設備和網絡配置??梢杂萌我庥嬎銠C編程語言來實現本發明的實施方式,只要數據處理系統的操作系統提供可以支持這些實施方式的要求的設施。也可以用硬件或用硬件和軟件的組合實現本發明的實施方式。
本發明的至少一些實施例涉及結合同視頻壓縮中的圖像分割,選擇性地破壞預測機制并且/或者選擇性地禁用環內濾波機制。
下文使用術語如“段”或“圖像段”來指代比整個圖像更小的任何一個或多個宏塊或等同物(例如,WD4中的樹塊),并且在“段”或“圖像段”邊界處,破壞至少一種形式的預測并且/或者禁用至少一種形式的環內濾波。如下所述的類H.264的片以及類WD4的瓦片)(其中tile_boundary_independence_idc等于1)是段的非限制性實例。
圖2示出了實例200,其中,圖像201被描繪為黑體實線的垂直分割的瓦片邊界204分成兩個瓦片202、203。瓦片可以在圖像201內與片共存。例如,圖像201如同被瓦片邊界204分割成瓦片202、203一樣,同時被片邊界205分割成兩個片。如WD4中所述的瓦片(tile_boundary_independence_idc等于1)可以在一個或多個方案中概括另一種類型的被稱為列的圖像段,其中在于2011年12月23日提交的、題目為“METHOD AND SYSTEM FOR SELECTIVELY BREAKING PREDICTION IN VIDEO CODING”的美國專利申請NO.13/336,675中進一步描述了列,通過引用方式將其全部內容并入本文中。
對應于圖像201中的傳輸的比特流206可以包括例如包括用于識別瓦片邊界204的瓦片邊界信息208的參數集207或其它高級語法元素。然而,比特流的除了參數集207之外的部分不包括關于瓦片邊界的任何信息。解碼器可以通過關聯當前正在處理的宏塊的內部狀態信息和從參數集207知道的瓦片尺寸的信息,識別編碼宏塊(還稱為最大編碼單元(LCU)或(WD4申的)樹塊)所屬于的瓦片。
瓦片和其它矩形圖像分割機制(例如,矩形片(ITU-T Rec.H.263的附件K的子模式))之間的一個區別在于瓦片(與矩形片不同)不需要報頭。在不包括報頭的情況下,可以改為在參數集中定義瓦片的物理尺寸。在一些情況(tile_boundary_independence_idc等于1)下,根據WD4的瓦片邊界中斷所有圖像內的預測機制,但是允許參考參考圖像中的這樣一種樣本,其中該樣本跟與正在被執行運動補償的瓦片相關聯的樣本處于不同位置。此外,瓦片邊界不中斷包括去塊濾波器、樣本自適應偏移濾波器和自適應環路濾波器的環內濾波。
然而,編碼器或解碼器使用瓦片破壞不同的預測機制集合也可能是方便的或期望的。例如,在極高分辨率的情況下,將視頻圖像分為受制于這樣一種要求的瓦片是有利的,其中在該要求中不允許運動向量指向瓦片邊界外部,并且/或者編碼器和解碼器將瓦片邊界視為圖像邊界(類似于H.263的附件R)或類似地,因此,例如,避免不僅跨瓦片邊界的運動補償而且避免環內濾波。
在其它情況下,編碼器或解碼器能夠處理除了符號的熵編碼之外的全分辨率視頻編碼可能是方便的或期望的。該編碼器或解碼器可能例如包括基于樣本處理的專用信號處理硬件,但是在單核不能夠處理負載(已知在HEVC中特別是CABAC熵編碼的計算要求高)的情況下可以將通用多核CPU用于熵編碼和/或解碼。因此,為了支持該使用情況,可能需要在瓦片邊界處破壞熵編碼,然而其它圖像內或圖像間的預測機制可能能夠跨片和/或瓦片邊界。
在其它情況中,編碼器或解碼器允許跨瓦片邊界的有限的處理器間協調可能是方便的或期望的。在該情況中,對像素值的參考是不可能的,然而在處理器之間的通信信道可獲得對控制信息(例如運動向量預測所必須的信息)的參考。在該情況中,幀內預測是不可能的,但是可以使用運動向量預測。
可能存在這樣一種編碼工具,其中該編碼工具不直接地與預測相關但是仍然可以有利地跨片或瓦片邊界地中斷該編碼工具。例如,于2011年11月1日提交的、題目為“ADAPTIVE INTERPOLATION IN DIGITAL VIDEO CODING”的共同未決的美國專利申請No.13/286,828公開了自適應內插濾波器,其中編碼器可選擇該自適應內插濾波器屬性和系數,其中通過引用方式將該申請的全部內容并入本文中。限制將片外部的樣本用于內插濾波是有利的。同樣地,WD4包括自適應內插濾波器,其中至少部分地從特定像素獲得該自適應內插濾波器的控制。限于僅在片或瓦片邊界內的獲得像素是有利的。(與濾波器控制信息的獲得相反)將濾波本身僅限于片或瓦片邊界內的像素也是有利的。WD4還包括其它環路濾波器,例如自適應環路濾波器(與濾波所有樣本有關)、去塊濾波器(與濾波塊邊界有關)和被稱作自適應樣本偏移的濾波機制。所有這些濾波器均可以共享與AIF相同的性能。例如,在如WD4中指定的自適應環路濾波器的情況下,(可能獨立地)禁用到用于跨瓦片邊界地獲得濾波器抽頭的信息的通路并且禁用跨瓦片邊界自身的過濾是有利的。
可以由圖像(或更高)等級語法結構(例如,當使用WD4瓦片時的參數集)、由段報頭信息(例如,H.263附件K的矩形片)、由比特流中的段報頭的布置和編碼器/解碼器狀態的組合(例如,當未使用靈活的宏塊排序時的H.264片)或兩個或更多個前述機制的組合(即,FMO定義片組,并且在片組內通過比特流中片報頭布置(通過其地址識別片的第一宏塊)和片組內的宏塊地址隱含的優勢的組合定義圖像段,直到通過比特流解析或其它手段檢測到片的結尾為止)對段邊界進行定義。
現在描述允許預測工具選擇瓦片邊界的第一機制,緊接著是允許預測工具選擇片邊界的機制。最后,描述了兩個機制的互作用。
參考圖3中的實例300,圖3示出了包括參數集302和兩個編碼片304、305的編碼比特流301。編碼片304、305可以屬于一個或兩個編碼圖像。在WD4中,可以由具有LCU地址0的片報頭識別圖像邊界。參數集302可以包括瓦片控制信息303(例如瓦片邊界),并且在該實例中假設參數集302中的信息涉及兩個編碼片(即,片報頭中的參數集參考包括相同的索引)。在許多基于WD4和H.264系統中,參數集涉及數十、數百或更多片。
根據一個實施例,參數集302可以包括多個預測工具指示標志(PTI)。例如,當設置(即啟用)PTI時,可以允許跨段邊界的預測而不管哪個編碼或解碼工具與標志相關聯;否則當PTI未被設置(即禁用)時,該預測可能被禁止??梢岳鐚τ陟鼐幋a預測306、幀內預測307、運動向量預測308、運動補償預測309、自適應環路濾波310、自適應內插濾波311、去塊濾波312、樣本自適應偏移313以及有可能視頻編碼機制中定義的其它預測和環內濾波工具,定義標志。
對于涉及對該參數集進行參考的所有片和圖像的單獨的預測和環內濾波機制包括PTI可能有助于使比特流適合于編碼和/或解碼環境如編碼器或解碼器的硬件架構。由于標志可能是可以應用于許多片或圖像的參數集的一部分,所以與參數集中PTI的提供的利益相比,參數集中PTI的開銷可以忽略不計。
參考圖4中描繪的實例400,圖4示出了編碼比特流401,編碼比特流401包括參數集402和包括兩個片403、404的編碼圖像。每個片從報頭405、406開始。片報頭405被放大以示出其信息的部分。
根據實施例,片報頭405可以包括多個預測工具指示標志(PTI)。例如,當設置一個或多個PTI時,可以允許跨段邊界的預測和/或環內濾波,而不管哪個編碼或解碼工具與標志相關聯;否則當被設置(即禁用)PTI時,可以禁止該預測。可以對于例如熵預測407、幀內預測408、運動向量預測409、運動補償預測410、自適應環路濾波411、自適應內插濾波412、去塊濾波413、樣本自適應偏移414以及有可能視頻編碼機制中定義的的其它預測和環內濾波工具定義標志。
對于涉及給定片的單獨的預測和環內濾波機制包括PTI,可以有助于使比特流適應內容,因此提高編碼效率。
現在描述上述的兩個機制可以如何交互。
參考圖5中示出的實例500,圖5示出了包括參數集502和兩個片503、504的編碼比特流501,兩個片503、504中的每個片從對應的片報頭505、506開始。
在507處被放大示出的參數集502包括例如瓦片控制信息508或與無報頭段邊界相關的其它信息,例如,該邊界能夠指示如圖2所示的垂直瓦片邊界204。此外,參數集502可能包括一個或多個PTI。這里示出了三個PTI,一個PTI與熵預測509相關聯,一個PTI與幀內預測510相關聯并且一個PTI與運動補償511相關聯。這些標志可以控制瓦片邊界204處的解碼器預測??梢岳缬赏咂刂菩畔?08設置瓦片邊界204,使得圖像201被垂直分成兩個瓦片202、203。這里描述的機制還可以用于瓦片邊界的其它配置(包括垂直和水平邊界的組合)。
編碼圖像還可以例如包括兩個編碼片503、504,每個編碼片從對應的片報頭505、506開始。如圖2所示,對應于編碼片503、504的(未編碼)片可能例如分別包括宏塊地址1到14和15到24的空間區域。片報頭506被放大示出在512處,并且可能包括多個PTI。示出了兩個PTI,一個PTI與幀內預測513相關聯,另一個PTI與自適應環路濾波(ALF)514相關聯。然而,應當注意的是,可能存在但不要求的參數集502或片報頭506的PTI之間的重疊。
根據實施例,參數集502的PTI 509、510、511控制由瓦片控制信息508定義的跨瓦片邊界204的預測和環內濾波。
根據一個實施例,片報頭512的PTI 513、514控制跨片503、504之間的邊界的預測和環內濾波。例如,片504的片邊界具有除了由虛線粗體片邊界線205標記的圖像邊界之外的一個邊界。
因此,在實例200中,瓦片邊界中斷一些預測和環內濾波機制(以便于允許圖像編碼分布在幾個處理器之間),同時在片報頭506的控制下在片邊界處選擇性地中斷其它預測和環內濾波機制(因此通過破壞預測和環內濾波機制來給出編碼器全控制,以便于針對編碼的內容能夠選擇任何特定的預測和環內濾波機制的組合,包括對給定的應用或用途是期望的或方便的組合)。
如果涉及相同預測或環內濾波機制的PTI出現在參數集502和片報頭506中,并且在對應的瓦片和片邊界是對齊的情況下,則至少兩個解碼器反應是可能的??梢酝ㄟ^配置文件/等級選擇,使得該選擇在標志中被靜態地指定,或者基于基于參數集中的控制信息或其它高級語法內容使得該選擇在標志中被動態地指定。
一個選擇是參數集502中的PTI覆蓋片報頭506中抵觸的信息。該選擇可以具有使解碼器確定能夠向各個處理器或內核分配段而無需實現用于允許在這些段之間共享信息的機制。
另一個選擇是片報頭508中的PTI覆蓋參數集502中抵觸的信息。該選擇可以在它的工具的選擇中允許更大的編碼器靈活性。其它的反應也是可能的。
(如果優化編碼標志位于片報頭508或參數集502中,則)為了優化編碼標志,在一些情況中,指定下面的任何標準是有利的:
(1)如果指示了特定類和/或等級,則一些PTI可能不是參數集或片報頭的一部分,因為在該類和/或等級中,預測或環內濾波工具是不可用的。
(2)如果例如在特定配置文件中確定無需或者甚至不希望用于獨立地接通/斷開這些單獨的PTI的靈活性,則將兩個或多個PTI“捆綁”成單個組合PTI。[93](3)在一些情況中,PTI可能最好不被編碼成布爾型(即,二進制)參數。例如,可以至少部分地由這樣一種運動向量的長度確定運動補償的情況中對處理器間協調的需求,其中該運動向量指向由片或瓦片覆蓋的共置的空間區域外部。因此,在一個實施例中,PTI信息還可能被編碼成整數或其它非布爾型參數,因此指示適當預測值范圍,例如指向段邊界外部的運動向量的最大長度。
(4)在一些情況中,PTI值可能不需要在物理意義上出現在比特流中,因為可以從比特流的其它特性獲得它們的值。例如,片內可能不需要包括與運動補償相關的PTI,因為根據由標準進行的設計,運動補償不可能發生在片內。
現在描述根據實施例可能適用于PTI信息的前述任何配置的編碼器的操作。
參考圖6,在一個實施例中,編碼器可能根據流程圖600進行操作。在編碼視頻序列的第一片之前,編碼器可能確定(601)用于PTI的與序列相關的設置以及圖像序列中的視頻圖像的瓦片布局。該確定可以考慮編碼器的硬件架構、解碼器的硬件架構、由硬件架構建議或指示的可能的瓦片布局、關于傳輸網絡(如果有的話)的知識,例如MTU的尺寸等等。在一些情況下,可能由編碼器在該確定中可以考慮的系統等級標準批準PTI值。例如,未來的數字TV標準可設想需要將控制跨瓦片邊界的預測和環內濾波的特定瓦片布局和特定PTI設置用于特定(更高)分辨率,以使得成本有效的多處理器/多內核實現成為可能。可能僅需要在序列等級上確定所有PTI的子集。
之前已經描述了那些設置的幾個選擇。
在確定之后,編碼器可以(602)將與序列相關的PTI編碼到合適的高級語法結構例如序列或圖像參數集、序列、GOP或圖像報頭中。編碼器還可以(通過視頻編碼標準的語法結構)選擇在該編碼期間不定義PTI。
與序列相關的PTI可以對于至少一個完整視頻圖像保持恒定(除非被基于片報頭的PTI被覆蓋,如稍后描述的),但是在許多情況下可以對于至少一個“序列”(視頻流中的兩個IDR圖像和領先的IDR圖像之間的所有圖像)并且可能在全視頻編碼會話期間保持恒定。例如,可以至少部分地由在會話期間不可能改變硬件限制來驅動與序列相關的PTI。自此以后為了方便起見假設該后一種的情況。
編碼器通過對片進行編碼來繼續。為了這樣做,編碼器可以確定(603)片等級PTI,其可以跟如已經描述的與序列相關的PTI交互。片等級PTI可以被編碼成(604)片報頭的編碼的一部分。
然后可以根據正在應用哪個編碼標準(例如,WD4或H.264),同時考慮跨如由PTI指示的片和瓦片邊界的預測和/或環內濾波機制的破壞,編碼(605)該片。
對下一個片繼續(606)編碼。
現在描述根據實施例可適用于前述任何的PTI信息配置的解碼器的操作。
圖7是可用于本發明的一個實施例的解碼器的流程圖700。解碼器可能接收(701)來自比特流的NAL單元,并且確定NAL單元的類型。如果NAL單元類型用于指示參數集(702),則解碼器可能根據所采用的視頻編碼標準來執行參數集解析和存儲(703)(其它高級語法結構(例如,序列、GOP或圖像報頭)還可以用于該目的)。
如果NAL單元類型用于指示片數據(704)(未描述其它情況),則解碼器可能解析片報頭(705)并且然后根據其中編碼的信息如PTI信息進行響應。例如,片報頭可能包括參數集參考,并且該參數可能被“激活”(706),如視頻編碼標準中所描述的,即指示了參考的參數集的值變得有效。由于PTI可能是參數集的一部分,通過該激活(706),PTI的值也可能變得有效。
片報頭還可能包括其本身的PTI,如已經描述的,該PTI可能不同于參數集中包括的PTI。已經描述了在編碼中片報頭中的PTI信息和編碼在參數集中的PTI信息之間如何進行裁決的選擇。例如,通過將基于片報頭的PTI(如果存在)與參數集報頭PTI(如果存在)關聯,并且考慮在視頻編碼標準的其它部分中可能存在的任何限制條件(例如通過配置文件和等級做出的的PTI的限制和/或默認設置),解碼器可能確定(707)將要用于解碼主題片的最終PTI設置。應當注意的是,取決于參數集的PTI設置和片報頭的PTI設置(包括片邊界與瓦片邊界是對齊的特定情況),針對片的不同邊緣,PTI可能不同。
考慮最終PTI設置,解碼器可能使用跨如由被編碼到PTI中的信息指示的片或瓦片邊界的預測和/或環內濾波技術來解碼(708)片。
對下一個NAL單元繼續(709)該過程。
圖7未示出除了片或參數集NAL單元之外的NAL單元的處理。
圖8是示出了根據本發明的實施方式基于數據處理系統(例如個人計算機(“PC”))800的實現的方框圖。到此時為止,為了方便起見,未詳細地將描述明確地與編碼器和/或解碼器的可能的物理實現相關?;谲浖?或組件的組合的許多不同的物理實現是可能的。在一些實現中,在許多情況中由于與成本效率和/或功耗效率相關的原因,可以例如使用定制或門陣列集成電路實現視頻編碼器和/或解碼器。
另外,使用通用處理架構(它的一個實例是數據處理系統800)的基于軟件的實現是可能的。例如通過使用個人計算機或類似的設備(例如機頂盒、膝上電腦、移動設備),如下所述該實現策略可以是可能的。如圖8申所示的,根據所述實施方式,可以用包括這樣一種指令的計算機可讀介質801(例如CD-ROM、半導體ROM、記憶棒)的形式提供用于PC或類似的設備的編碼器和/或解碼器,其中,該指令被配置為允許處理器802單獨地或與加速器硬件(例如圖形處理器)803組合地結合耦合度處理器802和/或加速器硬件803的存儲器804來執行編碼或解碼??梢詫⑻幚砥?02、存儲器804和加速器硬件803耦合到可用于向/從前述設備傳遞比特流和未壓縮視頻的總線805。依賴于實現,可以將用于比特流和未壓縮視頻的輸入/輸出的外圍設備耦合到總線805。可以例如經過合適的接口如幀接收器807或USB鏈路808將照相機806依附到總線805以便未壓縮視頻的實時輸入。類似的接口可用于未壓縮視頻存儲設備如VTR??梢越涍^顯示器設備如計算機監視器或TV屏幕809輸出未壓縮視頻。DVD RW驅動器或等效物(例如CD-ROM、CD-RW藍光光盤、記憶棒)810可用于實現比特流的輸入和/或輸出。最后,為了在網絡812上的實時傳輸,網絡接口811可用于依賴于到網絡812的接入鏈路的容量以及網絡812自身來傳遞比特流和/或未壓縮視頻。
根據各種各樣的實施方式,可以由各自的軟件模塊實現上述方法。根據其他實施方式,可以由各自的硬件模塊實現上述方法。根據其他實施方式,可以軟件模塊與硬件模塊的組合實現上述方法。
雖然為了方便起見主要參考一種示例性方法來描述實施方式,但是上文參考數據處理系統800所討論的裝置可以根據所述實施方式被編程為使得所述方法能夠實施。此外,用于數據處理系統800的制品如包括記錄在其上的程序指令的預記錄存儲介質或其他類似的計算機可讀介質或產品可以指導數據處理系統800助于所述方法的實現。將要理解,除了所述方法之外,該裝置和制品也全部落入所述實施方式的范圍之中。
具體而言,根據本發明的一個實施方式,可以將當被執行時導致由數據處理系統800執行本文所述的方法的指令序列包括在數據載體產品中。該數據載體產品可以被加載到數據處理系統800中并且被數據處理系統800運行。另外,根據本發明的一個實施方式,可以將該當被執行時導致由數據處理系統800執行本文所述的方法的指令序列包括在計算機程序或軟件產品中。該計算機程序或軟件產品可以被加載到數據處理系統800中并且被數據處理系統800運行。此外,根據本發明的一個實施方式,可以將當被執行時導致由數據處理系統800執行本文所述的方法的指令序列包括在可以包括協處理器或存儲器的集成電路產品(例如硬件模塊或多個模塊)中。該集成電路產品可以被安裝到數據處理系統800中。
以上的實施例可以有助于一種用于選擇性地破壞視頻編碼中的預測和/或環內濾波的改進的系統和方法,并且可以提供一個或多個優點。例如,對于單獨的預測和環內濾波機制包括這樣一種PTI可能有助于使比特流適合于編碼和/或解碼環境如編碼器或解碼器的硬件架構,其中該PTI涉及對該參數集進行參考的所有片和圖像。此外,對于單獨的預測和環內濾波機包括涉及給定片的PTI可以有助于使比特流適應內容,因此提高編碼效率。
本文所述的發明的實施方式僅適用于示例。因此,可以對于這些實施方式做出對細節的各種各樣的變化和/或修改,全部該變化和/或修改都落入本發明的范圍中。