8] 第一階段B10的目的在于對(duì)輸出可分級(jí)流的H. 264/AVC或HEVC兼容的基本層進(jìn) 行編碼。向該非可分級(jí)編碼器的輸入包括通過向圖像1. 1應(yīng)用下采樣1. 17所獲得的原始 幀圖像序列。該編碼器順次進(jìn)行以下步驟以對(duì)標(biāo)準(zhǔn)視頻位流進(jìn)行編碼。在步驟1.2中,將 要編碼(壓縮)的圖片或幀分割成像素塊(在HEVC標(biāo)準(zhǔn)中被稱為編碼單位(CU))。各塊首 先經(jīng)過運(yùn)動(dòng)估計(jì)操作1. 3,其中該運(yùn)動(dòng)估計(jì)操作1. 3包括:在專用存儲(chǔ)器緩沖器1. 4內(nèi)所存 儲(chǔ)的參考圖片中搜索將提供塊的良好預(yù)測的參考?jí)K。該運(yùn)動(dòng)估計(jì)步驟提供了包含所找到的 參考?jí)K的一個(gè)或多個(gè)參考圖片索引、以及相應(yīng)的運(yùn)動(dòng)矢量。然后,運(yùn)動(dòng)補(bǔ)償步驟1. 5將所估 計(jì)出的運(yùn)動(dòng)矢量應(yīng)用于所找到的參考?jí)K以獲得時(shí)間殘差塊,其中該時(shí)間殘差塊是運(yùn)動(dòng)補(bǔ)償 后的預(yù)測塊和要預(yù)測的原始?jí)K之間的差。此外,幀內(nèi)預(yù)測步驟1.6確定將提供用以預(yù)測當(dāng) 前塊的最佳性能的空間預(yù)測模式。再次地,計(jì)算空間殘差塊,但該空間殘差塊在這里作為空 間預(yù)測結(jié)果和要預(yù)測的原始?jí)K之間的差。
[0049] 之后,編碼模式選擇機(jī)構(gòu)1. 7從空間預(yù)測和時(shí)間預(yù)測中選擇在當(dāng)前塊的編碼中提 供最佳率失真權(quán)衡的編碼模式。根據(jù)所選擇的預(yù)測模式,殘差預(yù)測塊隨后經(jīng)過變換(DCT) 和量化1.8。對(duì)如此量化后的系數(shù)QTC(和關(guān)聯(lián)的運(yùn)動(dòng)數(shù)據(jù)MD)進(jìn)行熵編碼1.10。發(fā)送與 編碼后的當(dāng)前塊1. 2相關(guān)聯(lián)的壓縮紋理數(shù)據(jù)1. 13以供輸出。
[0050] 為了進(jìn)一步提高編碼效率,使用相鄰塊運(yùn)動(dòng)信息來對(duì)與正進(jìn)行運(yùn)動(dòng)補(bǔ)償步驟的 INTER(幀間)塊相關(guān)聯(lián)的運(yùn)動(dòng)信息進(jìn)行預(yù)測編碼。在這種情況下,相鄰塊包括空間相鄰塊 以及可選的時(shí)間相鄰塊。結(jié)果,如果使用時(shí)間相鄰塊,則需要存儲(chǔ)先前編碼圖像的運(yùn)動(dòng)信息 以使得能夠進(jìn)行預(yù)測。在標(biāo)準(zhǔn)的當(dāng)前版本中,該信息由編碼器和解碼器以壓縮形式進(jìn)行存 儲(chǔ)以限制編碼和解碼處理的存儲(chǔ)器使用量。然而,如上所述,在運(yùn)動(dòng)信息預(yù)測時(shí)不使用時(shí)間 預(yù)測結(jié)果的情況下,不必存儲(chǔ)先前圖像的運(yùn)動(dòng)場。
[0051] 然后,利用逆量化(還稱為縮放)和逆變換1. 11對(duì)當(dāng)前塊進(jìn)行重建。在需要的情 況下,在該步驟之后對(duì)逆變換殘差和當(dāng)前塊的預(yù)測塊進(jìn)行求和以形成重建塊。將這些重建 塊添加至緩沖器以形成重建幀。然后,在1. 12中對(duì)該重建幀進(jìn)行后置濾波。將該后置濾波 之后的重建幀存儲(chǔ)在被稱為DPB(代表解碼圖片緩沖器(DecodedPictureBuffer))的存 儲(chǔ)器緩沖器1. 4中,以使得該重建幀可用作參考圖片以預(yù)測任何后續(xù)要編碼的圖片。
[0052] 最后,向最后的熵編碼步驟提供編碼模式,并且在幀間塊的情況下,提供運(yùn)動(dòng)數(shù)據(jù) 以及先前計(jì)算出的量化DCT系數(shù)。該熵編碼器將這些數(shù)據(jù)各自編碼成二值形式,并且將如 此編碼后的塊封裝在被稱為NAL(代表網(wǎng)絡(luò)抽象層(NetworkAbstractLayer))單位的容 器中。NAL單位包含來自給定片的所有編碼后的編碼單位。編碼HEVC位流包括一系列NAL 單位。
[0053] 接著,第二階段A10示出使用基本層作為參考層來對(duì)增強(qiáng)層進(jìn)行編碼。這里,該 增強(qiáng)層為上采樣后的基本層帶來空間分辨率的細(xì)化。如圖1所示,除針對(duì)來自壓縮中的流 1. 10的當(dāng)前圖片的各編碼單位、考慮基于層間預(yù)測的附加模式以外,該增強(qiáng)層的編碼方案 與基本層的編碼方案相同。
[0054] 將被稱為IntraBL1. 90的附加模式添加至針對(duì)增強(qiáng)層塊所考慮的模式的列表, 其中該附加模式包括:使用參考層的上采樣后的同位置塊來預(yù)測增強(qiáng)層的塊。
[0055] 可以修改INTER模式中所使用的運(yùn)動(dòng)信息預(yù)測以考慮來自于參考層的運(yùn)動(dòng)信息。 另外,可以在熵編碼步驟1. 20中應(yīng)用運(yùn)動(dòng)信息的特定熵編碼。
[0056] 對(duì)于這些新工具,中間層間模塊1. 18可以將來自參考層的可以根據(jù)空間分辨率 變化進(jìn)行上采樣后的信息(運(yùn)動(dòng)信息、樣本)提供至增強(qiáng)層編碼的諸如運(yùn)動(dòng)估計(jì)模塊1. 23、 IntraBL模式1. 90或幀內(nèi)預(yù)測模塊1. 26等的不同模塊。特別地,在參考幀方法中,模塊 1. 18將對(duì)DPB1.4中的如此得到的幀的樣本數(shù)據(jù)和運(yùn)動(dòng)數(shù)據(jù)這兩者進(jìn)行上采樣以匹配增 強(qiáng)層尺寸,并且將如此得到的數(shù)據(jù)(圖像及其運(yùn)動(dòng))插入到DPB1.24中,而該DPB1.24影 響1. 25和1. 23的操作。
[0057] 圖10呈現(xiàn)將應(yīng)用于由兩個(gè)可分級(jí)性層(例如,包括基本層和增強(qiáng)層)構(gòu)成的可分 級(jí)位流的可分級(jí)解碼器的框圖。因而,該解碼處理是圖1的可分級(jí)編碼處理的逆處理。解 碼中的可分級(jí)流10. 10由一個(gè)基本層和位于該基本層上方的一個(gè)空間增強(qiáng)層構(gòu)成,其中這 些流在步驟10. 20中被解多路復(fù)用到各自的層中。
[0058] 圖10的第一階段涉及基本層解碼處理B12。該解碼處理通過對(duì)基本層中的各編碼 圖片的各編碼單位或塊進(jìn)行熵解碼10. 30而開始。該熵解碼10. 30提供編碼模式、運(yùn)動(dòng)信 息(INTER編碼塊的參考圖片索引和運(yùn)動(dòng)矢量)、幀內(nèi)預(yù)測所用的預(yù)測方向和殘差數(shù)據(jù)。該 殘差數(shù)據(jù)包括量化和變換后的DCT系數(shù)。接著,這些量化后的DCT系數(shù)經(jīng)過逆量化和逆變 換操作10. 31。可以通過操作10. 34將運(yùn)動(dòng)補(bǔ)償10. 32或幀內(nèi)預(yù)測10. 33后的數(shù)據(jù)與該殘 差相加。
[0059] 然后,應(yīng)用去塊濾波步驟10. 35。然后,將如此重建的圖像存儲(chǔ)在幀緩沖器10. 40 中。
[0060] 接著,將INTER塊的解碼運(yùn)動(dòng)信息以及重建塊存儲(chǔ)在圖10的可分級(jí)解碼器中的第 一個(gè)幀緩沖器中(B12)。這些幀包含可用作用以預(yù)測上側(cè)可分級(jí)性層的參考數(shù)據(jù)的數(shù)據(jù)。
[0061] 接著,圖10的第二階段對(duì)位于第一階段解碼后的基本層的上方的空間增強(qiáng)層A12 進(jìn)行解碼。該空間增強(qiáng)層解碼涉及對(duì)第二層進(jìn)行熵解碼,從而提供第二層的塊的編碼模式、 運(yùn)動(dòng)信息和幀內(nèi)預(yù)測信息以及變換和量化后的殘差信息。
[0062] 下一步驟在于預(yù)測增強(qiáng)圖片中的塊。不同類型的塊預(yù)測(INTRA、INTER、或者在 TextureRL方法的情況下為層間)之間的選擇10. 51依賴于從熵解碼步驟10. 50所獲得的 預(yù)測模式。
[0063] 關(guān)于INTRA塊,針對(duì)這些塊的處理依賴于INTRA編碼單位的類型。在層間預(yù)測 INTRA塊(IntraBL編碼模式)10. 57的情況下,如果針對(duì)該塊已對(duì)殘差數(shù)據(jù)進(jìn)行了編碼,則 熵解碼10. 50的結(jié)果經(jīng)過逆量化和逆變換10. 52,然后通過操作10. 53,采用該殘差數(shù)據(jù)的 解碼、后置濾波和上采樣(在空間可分級(jí)性的情況下)版本將該結(jié)果與基本圖片中的當(dāng)前 塊的同位置塊相加。在INTRA塊的情況下,完全重建這種塊,經(jīng)過逆量化、逆變換以獲得空 間域中的殘差數(shù)據(jù),然后經(jīng)過INTRA預(yù)測10. 54以獲得完全重建塊。
[0064] 關(guān)于INTER塊,這些塊的重建涉及根據(jù)幀存儲(chǔ)器10. 60所計(jì)算出的這些塊的運(yùn)動(dòng) 補(bǔ)償10. 55、殘差數(shù)據(jù)解碼、然后將這些塊的解碼后的殘差信息與這些塊的時(shí)間預(yù)測結(jié)果塊 相加。在該INTER塊解碼處理中,可以以預(yù)測方式將與所考慮的塊相關(guān)聯(lián)的運(yùn)動(dòng)信息解碼 作為基本圖片中的同位置塊的運(yùn)動(dòng)信息的細(xì)化。以下將說明該方面。
[0065] 與基本層相同,可以將去塊濾波步驟10. 56應(yīng)用于從10. 53輸出的圖像,并且將這 些圖像在通過解碼返回為完全解碼幀10. 70之前,存儲(chǔ)在幀存儲(chǔ)器10. 60中。注意,在本發(fā) 明的實(shí)施例中,運(yùn)動(dòng)補(bǔ)償10. 55實(shí)際使用來自增強(qiáng)層圖像緩沖器10. 60和基本層圖像緩沖 器10. 40的數(shù)據(jù)。連同樣本數(shù)據(jù)一起,模塊10. 80可以負(fù)責(zé)通過對(duì)該數(shù)據(jù)進(jìn)行上采樣來從 參考層提供該數(shù)據(jù)。
[0066] 可以考慮圖像預(yù)測所用的兩個(gè)方法。更特別地,圖像預(yù)測包括運(yùn)動(dòng)信息預(yù)測。在這 兩個(gè)方法中,運(yùn)動(dòng)信息預(yù)測以不同的方式受到影響。以下說明圖像預(yù)測的這兩個(gè)方法。這 些方法的特征是使得能夠使用參考層的運(yùn)動(dòng)信息來預(yù)測增強(qiáng)層的運(yùn)動(dòng)信息。將與圖3相關(guān) 地更詳細(xì)說明該特征,并且該特征影響如何訪問參考層的圖1上的幀存儲(chǔ)器1. 4。
[0067] 然后,針對(duì)這兩個(gè)方法詳細(xì)說明作為本發(fā)明的關(guān)鍵點(diǎn)的運(yùn)動(dòng)信息預(yù)測的情況。
[0068] 由于允許使用IntraBL模式,因此第一個(gè)方法通常被稱為TextureRL。該方法在 塊等級(jí)使用低等級(jí)句法以用信號(hào)通知IntraBL模式的使用。該方法有時(shí)被一些專家稱為 "IntraBL方法"。
[0069] 被稱為參考幀插入的第二個(gè)方法大多使用高等級(jí)變化。特別地,不在塊等級(jí)進(jìn)行 句法變化。參考幀索引方法的主要特征在于:將被稱為ILR圖像(代表層間參考圖像)的 參考層的(在分辨率不同的情況下有可能被放大的)圖像引入到增強(qiáng)層的解碼圖像的緩沖 器中。然后,將這些圖像插入用作DPB(解碼圖片緩沖器)中的參考圖像的特定參考圖像列 表(L0和L1列表)的末尾。該插入依賴于增強(qiáng)層的當(dāng)前片的類型。在P片中,將ILR圖像 插入L0列表的末尾。在B片中,將ILR圖像插入L0列表和L1列表這兩者的末尾。該方法 有時(shí)被一些專家稱為"ref_idx方法"。利用該方法,可以使用參考層中位于同位置的參考 層時(shí)間運(yùn)動(dòng)信息預(yù)測結(jié)果來對(duì)給定塊的運(yùn)動(dòng)信息進(jìn)行預(yù)測編碼。
[0070] 值得注意的是,TextureRL方法中的IntraBL和參考幀索引方法中的插入?yún)⒖紟?的使用是用以使用基本層信息來預(yù)測增強(qiáng)層的兩個(gè)方式。在本發(fā)明的說明書中,為了簡便, 一次考慮這些方法其中之一而不是一起考慮這兩者。
[0071] 現(xiàn)在將說明與對(duì)于這兩個(gè)方法均有效的運(yùn)動(dòng)信息有關(guān)的一般信息。
[0072] 典型的視頻編解碼器在各個(gè)幀內(nèi)模式和幀間模式中利用像素之間的空間相關(guān)和 時(shí)間相關(guān)這兩者。這里關(guān)注幀間模式,其中幀間模式利用當(dāng)前幀和先前編碼/解碼幀的像 素之間的時(shí)間相關(guān)。
[0073] 在HEVC(和經(jīng)擴(kuò)展的SHVC)中,"幀間"模式是定義時(shí)間預(yù)測方向的預(yù)測模式。根 據(jù)該時(shí)間方向來定義運(yùn)動(dòng)信息的〇~2個(gè)集合。如果"幀間"預(yù)測方向等于0,則利用幀內(nèi) 模式對(duì)塊進(jìn)行編碼,并且該塊不包含運(yùn)動(dòng)信息。如果"幀間"預(yù)測方向等于1,則塊包含來自 被稱為L0的參考幀的列表的運(yùn)動(dòng)信息。如果"幀間"預(yù)測方向等于2,則塊包含來自被稱為 L1的參考幀的另一列表的運(yùn)動(dòng)信息。如果"幀間"預(yù)測方向等于3,則塊包含來自這兩個(gè)列 表L0和L1的運(yùn)動(dòng)信息。
[0074] 運(yùn)動(dòng)信息包含以下信息:參考幀的列表中的索引(ref_idX)、以及具有水平運(yùn)動(dòng) 值和垂直運(yùn)動(dòng)值這兩個(gè)分量的運(yùn)動(dòng)矢量。這些值與參考幀中的當(dāng)前塊和時(shí)間預(yù)測結(jié)果塊的 位置在像素方面的空間位移相對(duì)應(yīng)。該位移可以具有子像素精度(像素的〇、1、2或3個(gè)四 分之一)。
[0075] 上述的"幀間"預(yù)測方向1和2與單向預(yù)測相對(duì)應(yīng),并且不能用在1(=幀內(nèi)編碼 片)片中,而可以用在P(預(yù)測片)和B(雙預(yù)測)片中。特定類型(I、P或B)的圖像由相 同類型的至少一個(gè)片構(gòu)成。"幀間"預(yù)測方向3被稱為雙向預(yù)測,并且可以僅用在B片中。 在這種情況下,考慮兩個(gè)塊預(yù)測結(jié)果(針對(duì)各列表L0和L1為一個(gè)塊預(yù)測結(jié)果)。結(jié)果,考 慮兩個(gè)參考幀索引以及兩個(gè)運(yùn)動(dòng)矢量。雙預(yù)測所用的幀間塊預(yù)測結(jié)果是這兩個(gè)運(yùn)動(dòng)矢量所 指向的這兩個(gè)塊的針對(duì)各像素的平均值。這里,塊預(yù)測結(jié)果與HEVC或SHVC中的預(yù)測單位 或預(yù)測塊的概念相對(duì)應(yīng)。
[0076] 如上所述,通過預(yù)測編碼來使用包括在時(shí)間上同位置的運(yùn)動(dòng)信息的多個(gè)運(yùn)動(dòng)信息 預(yù)測結(jié)果對(duì)HEVC中的運(yùn)動(dòng)信息進(jìn)行編碼。因此,針對(duì)用作參考幀的各幀,需要在編碼器側(cè) 和解碼器側(cè)存儲(chǔ)其相關(guān)運(yùn)動(dòng)信息。對(duì)該運(yùn)動(dòng)信息進(jìn)行壓縮,以減小其在運(yùn)動(dòng)信息的專用存 儲(chǔ)器中的大小。
[0077] 因此,HEVC使用特定粒度來表示運(yùn)動(dòng)。在圖5中示出該情況。對(duì)于16X16個(gè)像 素的每個(gè)塊5. 0,HEVC所使用的最小粒度為4X4個(gè)像素,這樣得到16個(gè)潛在的運(yùn)動(dòng)信息 (針對(duì)每4X4塊為一個(gè)運(yùn)動(dòng)信息)。運(yùn)動(dòng)信息的壓縮在于:僅保持與給定塊5. 0的左上方 的