本發(fā)明大體上涉及高效率視頻編碼技術(shù),尤其涉及一種用于提供高效率視頻編碼(High Efficiency Video Coding,HEVC)中基于深度的塊劃分的方法和設(shè)備。
背景技術(shù):
在當(dāng)前3D HEVC標(biāo)準(zhǔn)的基于深度的塊劃分(Depth Based Block Partitioning,DBBP)中,并列紋理塊的任意形狀的塊劃分是從通過相應(yīng)的深度塊計算的二值分割掩碼中獲得的。兩個分區(qū)均為運動補償分區(qū),然后可根據(jù)基于深度的二值分割掩碼通過將這兩個分區(qū)平均來進(jìn)行合并。然后應(yīng)用過濾過程。當(dāng)前,對合并后的分區(qū)應(yīng)用了不必要的過濾過程。
技術(shù)實現(xiàn)要素:
根據(jù)上文所述,本領(lǐng)域技術(shù)人員可以了解的是,有必要簡化由三維視頻編碼器和解碼器中的幀間預(yù)測單元執(zhí)行的像素過濾。根據(jù)本發(fā)明,提供了一種用于提供高效率視頻編碼中基于深度的塊劃分的方法和設(shè)備,從而大幅減少并基本上消除與傳統(tǒng)編碼器和解碼器處理實現(xiàn)相關(guān)的問題。
根據(jù)實施例,通過基于與當(dāng)前紋理塊對應(yīng)的深度塊獲得二值掩碼來提供一種用于提供高效率視頻編碼中基于深度的塊劃分的方法,其中二值掩碼用于紋理塊劃分。當(dāng)前紋理塊根據(jù)二值掩碼劃分。檢查與位于所述當(dāng)前紋理塊中不同分區(qū)之間的塊分區(qū)邊界的特定像素有關(guān)的垂直和水平面中的二值掩碼的鄰近像素的值。根據(jù)鄰近像素的值執(zhí)行像素處理以過濾所述特定像素。當(dāng)與所述特定像素有關(guān)的垂直和水平面中的每個相鄰像素具有相同值時,不過濾所述特定像素。當(dāng)與所述特定像素有關(guān)的垂直和水平面中的任何相鄰像素的值不同于與所述特定像素有關(guān)的垂直面和水平面中的任何其它相鄰像素的值時,過濾所述特定像素。。根據(jù)過濾過程過濾所述特定像素,以響應(yīng)過濾確定。
本發(fā)明通過傳統(tǒng)視頻編碼技術(shù)描述了許多技術(shù)優(yōu)點。例如,一個技術(shù)優(yōu)點是簡化了在執(zhí)行基于深度的塊劃分之后過濾邊界像素的條件數(shù)量。另一個技術(shù)優(yōu)點是對滿足過濾條件的那些像素實施特定過濾過程。對本領(lǐng)域技術(shù)人員而言,通過下面的附圖說明、具體實施方式和權(quán)利要求書,其它技術(shù)優(yōu)點將是顯而易見和容易識別的。
附圖說明
為了更完整地理解本發(fā)明及其優(yōu)點,現(xiàn)在參考下文結(jié)合附圖進(jìn)行的描述,相同的數(shù)字表示相同的對象,其中:
圖1示出了高效率視頻編碼(High Efficiency Video Coding,HEVC)中實現(xiàn)的四叉樹編碼結(jié)構(gòu);
圖2示出了一個圖示可實現(xiàn)深度數(shù)據(jù)編碼技術(shù)的視頻編碼器的示例的方框圖;
圖3示出了一個圖示可實現(xiàn)深度數(shù)據(jù)編碼技術(shù)的視頻解碼器的示例的方框圖;
圖4示出了具有描繪二值分割掩碼的生成的編碼單元的放大組件塊的測試序列;
圖5示出了由二值分割掩碼創(chuàng)建的兩個分區(qū)的合并功能;
圖6示出了用于分區(qū)邊界處的特定像素的平均過濾技術(shù);
圖7示出了對兩個分區(qū)的邊界像素執(zhí)行的簡單過濾技術(shù);
圖8A至圖8D示出了可能對邊界像素上的過濾過程的應(yīng)用檢查的四個過濾條件;
圖9A至圖9B示出了圖8A至圖8D的檢查條件的進(jìn)一步簡化;
圖10示出了圖9A至圖9B的檢查條件簡化技術(shù)的替代;
圖11示出了執(zhí)行基于深度的塊劃分的過程;
圖12所示為與二值分割掩碼有關(guān)的疊加的預(yù)測單元形狀;以及
圖13示出了適用于執(zhí)行基于深度的塊劃分的簡化的通用計算組件。
具體實施方式
以下列出的圖1至圖13和說明以及該專利文檔中的各種實施例僅通過舉例說明的方式描述本發(fā)明的原理,而不應(yīng)以任何方式理解為對本發(fā)明范圍的限制。本領(lǐng)域技術(shù)人員將理解的是,本發(fā)明的原理可通過任何一種設(shè)置合理的設(shè)備和系統(tǒng)實現(xiàn)。一個圖中顯示和論述的特點可適當(dāng)?shù)卦谝粋€或多個其它圖中實現(xiàn)。
一般情況下,本發(fā)明涉及依據(jù)HEVC標(biāo)準(zhǔn)使用各種深度編碼模式對三維(three-dimensional,3D)視頻數(shù)據(jù)的深度數(shù)據(jù)進(jìn)行編碼和解碼的技術(shù)。3D視頻數(shù)據(jù)的捕捉視圖(例如紋理)與描述紋理數(shù)據(jù)的深度數(shù)據(jù)的對應(yīng)深度圖相關(guān)。根據(jù)3D視頻編碼過程,諸如3D-HEVC過程,紋理視圖和深度圖可編碼和多路復(fù)用為3D視頻比特流。
圖1所示為在高效率視頻編碼(High Efficiency Video Coding,HEVC)中實現(xiàn)的四叉樹編碼結(jié)構(gòu)。HEVC標(biāo)準(zhǔn)使用高度靈活的四叉樹編碼結(jié)構(gòu),在該結(jié)構(gòu)中,視頻圖像或幀可分為一系列包括亮度(Y)和色度(Cb、Cr)樣本的編碼樹單元(Coding Tree Units,CTU)。CTU大小可從編碼器中的64x64、32x32和16x16選擇,并在序列參數(shù)集(sequence parameter set,SPS)中指定。CTU用作編碼樹的根,四叉樹的每片葉子稱為編碼單元(Coding Unit,CU)。因此,一個CTU可分為多個CU,且每個CU指定一個編碼類別:幀內(nèi)編碼或幀間編碼。CU還可進(jìn)一步分為一個、兩個或四個預(yù)測單元(Prediction Units,PU),他們攜帶供預(yù)測的基本信息。為了有效的預(yù)測,HEVC定義了兩個幀內(nèi)PU和八個幀間PU形狀,以支持可變大小PU。幀內(nèi)PU可能具有2Nx2N和NxN形狀。幀間PU形狀包括兩個正方形形狀2Nx2N和NxN,兩個矩形形狀2NxN和Nx2N,以及分別位于上、下、左、右位置的四個不對稱形狀2NxnU、2NxnD、nLx2N和nRx2N。每個CU的殘差塊可使用四叉樹結(jié)構(gòu)進(jìn)行變換,該四叉樹結(jié)構(gòu)通常稱為殘差四叉樹(residual quadtree,RQT),由轉(zhuǎn)換單元(Transfer Units,TU)組成,尺寸范圍從4×4高達(dá)32×32。TU包含用于空間塊變換和量化的系數(shù),從而對預(yù)測畫面和實際畫面之間的殘差進(jìn)行編碼。
編碼器通過詳盡計算選擇最佳編碼樹結(jié)構(gòu)、PU分幅和RQT配置。為了評估每個候選配置的壓縮效率,編碼器通常使用拉格朗日乘數(shù)優(yōu)化技術(shù),該技術(shù)以J=D+λR表示,其中,J為拉格朗日率失真(rate distortion,RD)成本函數(shù),D為用針對原始樣本的重構(gòu)樣本的平方誤差的和表示的失真增益,R為熵編碼的比特率,λ為拉格朗日公式中連接R和D的拉格朗日乘數(shù)。RD成本的最小化過程稱為率失真優(yōu)化(rate-distortion optimization,RDO),通過該優(yōu)化,將比特率與失真進(jìn)行平衡,從而達(dá)到壓縮效率與圖像質(zhì)量之間的權(quán)衡。
編碼效率是以最低可能的比特率對視頻進(jìn)行編碼同時保持某種水平的視頻質(zhì)量的能力。所述編碼器使用RDO處理來選擇具有最小值的幀內(nèi)編碼模式。RDO處理非常省時,主要有兩個原因。第一個原因是有許多CU/PU/TU組合。例如,僅在幀內(nèi)預(yù)測模式編碼時,要執(zhí)行35次RD成本計算過程才能判定某個PU的模式,因為一個PU可使用包括DC(平面)模式、二維(曲面擬合)模式以及33個角度模式的35個幀內(nèi)預(yù)測模式之一進(jìn)行編碼。第二個原因是RD成本計算的計算量非常驚人。為了獲得精確的D和R,對于每個候選模式,由所述編碼器執(zhí)行的所述RD成本計算包含幀內(nèi)預(yù)測、殘差計算、變換、量化、熵編碼、反變換、反量化、像素重構(gòu)以及最終的RD成本計算。
一般情況下,HEVC編碼器將幀壓縮成可進(jìn)行存儲或傳輸?shù)膲嚎s視頻比特流。編碼過程以將單個圖像或幀劃分成多個CTU開始,CTU可進(jìn)一步劃分為多個CU。在將幀內(nèi)的圖像劃分之后,預(yù)測過程就開始,其中CU在該過程中進(jìn)一步劃分為PU。所述HEVC編碼器使用兩種類型的預(yù)測,即幀內(nèi)預(yù)測和幀間預(yù)測。幀內(nèi)預(yù)測從相鄰圖像數(shù)據(jù)中,即從相同的圖像幀中對PU進(jìn)行預(yù)測。幀間預(yù)測使用運動補償預(yù)測對從在當(dāng)前顯示,即流中的其它圖像幀之前或之后發(fā)現(xiàn)的圖像中的畫面數(shù)據(jù)中引用的PU進(jìn)行預(yù)測。預(yù)測后剩余的任何數(shù)據(jù)使用離散余弦變換(Discrete Cosine Transform,DCT)放入塊中。原始塊與其預(yù)測之間的差通過線性空間變換進(jìn)行變換。所述HEVC編碼器將這些塊應(yīng)用到每個CU中的剩余數(shù)據(jù)。最后,編碼比特流通過一個稱為熵編碼的過程使用基于上下文的自適應(yīng)二進(jìn)制算數(shù)編碼(Context Adaptive Binary Arithmetic Coding,CABAC)進(jìn)行進(jìn)一步編碼。這是最后一步,在該步驟中,所述HEVC編碼器排列變換數(shù)據(jù)并將變換數(shù)據(jù)壓縮到其單獨組件,即運動向量、預(yù)測模式、劃分信息以及其它頭數(shù)據(jù)。在進(jìn)行縮放、量化和熵編碼之后,變換系數(shù)同預(yù)測信息一起傳輸。此時,視頻已壓縮,并可存儲。
在視頻傳輸之后,HEVC解碼器對數(shù)據(jù)進(jìn)行解碼,以查看視頻源中的圖像。通過熵解碼,所述HEVC解碼器抽取編碼后序列的元素。重新縮放和逆轉(zhuǎn)編碼過程的變換階段,圖像的單元將恢復(fù)到其原始形式,即預(yù)測單元,然后預(yù)測將添加到逆變換的輸出。
最后一步是查看運動圖像,這是解碼后視頻的重構(gòu)過程,以便于查看。編碼器復(fù)制解碼器處理環(huán)路,以便所述編碼器和解碼器都對后續(xù)數(shù)據(jù)生成一致預(yù)測。量化變換系數(shù)通過逆縮放進(jìn)行構(gòu)建,然后進(jìn)行逆變換,以復(fù)制殘差信號的解碼后近似值。然后,將殘差添加到預(yù)測,然后可將添加的結(jié)果發(fā)送到一個或兩個環(huán)路濾波器中,從而消除由分塊處理和量化所引起的效應(yīng)。最后的圖像表征(即解碼器的輸出的副本)存儲到解碼圖像緩沖區(qū)中,以用于對后續(xù)圖像進(jìn)行預(yù)測。
圖2為圖示可實現(xiàn)深度數(shù)據(jù)編碼技術(shù)的視頻編碼器200的示例的方框圖。正如本文所披露的,視頻編碼器200代表可用于執(zhí)行3D-HEVC中深度圖的簡化編碼模式傳送的技術(shù)的設(shè)備。視頻編碼器200可執(zhí)行視頻片內(nèi)的視頻塊的幀內(nèi)和幀間編碼。幀內(nèi)編碼依賴于空間預(yù)測,以減少或除去給定視頻幀或圖像內(nèi)的視頻中的空間冗余。幀間編碼依賴于時間預(yù)測,以減少或除去視頻序列的相鄰幀或圖像內(nèi)的視頻中的時間冗余。幀內(nèi)預(yù)測模式(I模式)可指幾種基于空間的編碼模式的任何一種。幀間預(yù)測模式,諸如單向預(yù)測(P模式)或雙向預(yù)測(B模式),可指幾種基于時間的編碼模式的任何一種。除對每個視圖的紋理圖(即亮度值和色度值)進(jìn)行編碼外,視頻編碼器200還可對每個視圖的深度圖進(jìn)行進(jìn)一步編碼。
視頻編碼器200可包括視頻數(shù)據(jù)存儲器202、模式選擇單元204、解碼圖像緩沖器(decoded picture buffer、DPB)206、加法器208、變換處理單元210、量化單元212以及熵編碼單元214。依次地,模式選擇單元204包括運動補償單元220、運動估計單元222、幀內(nèi)預(yù)測單元224和分區(qū)單元226。對于視頻塊的重構(gòu),視頻編碼器200還包括逆量化單元230、逆變換單元232和加法器234。還可包含去塊濾波器240,以過濾塊邊界和除去重構(gòu)后視頻中的方塊效應(yīng)。如果需要,去塊濾波器240通常過濾加法器234的輸出。除去塊濾波器之外,還可使用其它濾波器(內(nèi)環(huán)路或后環(huán)路)。此類濾波器還濾波加法器208(如內(nèi)環(huán)路濾波器)的輸出。示例濾波器可包括自適應(yīng)環(huán)路濾波器、樣本自適應(yīng)偏移(sample adaptive offset,SAO)濾波器或其它類型的濾波器。
視頻編碼器200接收待編碼的視頻幀內(nèi)的當(dāng)前視頻塊。視頻數(shù)據(jù)存儲器202可存儲待由視頻編碼器200的組件進(jìn)行編碼的視頻數(shù)據(jù)。例如,可從視頻源中獲得視頻數(shù)據(jù)存儲器202中存儲的視頻數(shù)據(jù)。解碼圖像緩沖區(qū)206可以是存儲參考視頻數(shù)據(jù)的參考圖像存儲器,以便視頻編碼器200對視頻數(shù)據(jù)進(jìn)行編碼時使用,例如在幀內(nèi)編碼模式或幀間編碼模式下。視頻數(shù)據(jù)存儲器202和解碼圖像緩沖區(qū)206可由各種存儲器設(shè)備,如動態(tài)隨機存取存儲器(dynamic random access memory,DRAM),包括同步DRAM(synchronous DRAM,SDRAM)、磁阻RAM(magnetoresistive RAM,MRAM)或其它類型的存儲器設(shè)備的任何一種構(gòu)成。視頻數(shù)據(jù)存儲器202和解碼圖像緩沖區(qū)206可由相同的存儲器設(shè)備或單獨的存儲器設(shè)備提供。在各種示例中,視頻數(shù)據(jù)存儲器202可與視頻編碼器200的其它組件一樣位于芯片上,或位于相對于這些組件的芯片外。
在編碼過程中,視頻編碼器200接收待編碼的視頻幀或視頻片。幀或片可分為多個視頻塊。運動估計單元222和運動補償單元220對相對于一個或多個參考幀中的一個或多個塊的接收到的視頻塊執(zhí)行幀間預(yù)測編碼,從而提供時間預(yù)測。或者,幀內(nèi)預(yù)測單元224可對相對于與待編碼的塊相同的幀或片內(nèi)的一個或多個相鄰塊的接收到的視頻塊執(zhí)行幀內(nèi)預(yù)測編碼,從而提供空間預(yù)測。視頻編碼器200可執(zhí)行多個編碼通道,從而為視頻數(shù)據(jù)的每個塊選擇適當(dāng)?shù)木幋a模式。
此外,分區(qū)單元226可基于在前一個編碼通道中對前一個劃分方案進(jìn)行的評估,將視頻數(shù)據(jù)的塊劃分成子塊。例如,分區(qū)單元226最初可將幀或片劃分成LCU,然后基于率失真(例如率失真優(yōu)化)將每個LCU劃分成子CU。模式選擇單元204還可生成一個四叉樹數(shù)據(jù)結(jié)構(gòu),指示將LCU劃分成子CU。四叉樹的葉節(jié)點CU可包括一個或多個PU以及一個或多個TU。模式選擇單元204可根據(jù)錯誤結(jié)果選擇幀內(nèi)或幀間編碼模式之一,將得到的幀內(nèi)或幀間編碼塊提供給加法器208,以生成殘差塊數(shù)據(jù),并提供給加法器234,以重構(gòu)用作參考幀的編碼后塊。模式選擇單元204還為熵編碼單元214提供語法元素,諸如運動向量、幀內(nèi)編碼模式指示符、分區(qū)信息和其它此等語法信息。
運動估計單元222和運動補償單元220可高度集成,但是出于概念目的分別說明。運動估計單元222所執(zhí)行的運動估計是生成運動向量的過程,所述運動向量估計視頻塊的運動。例如,運動向量可指示相對于參考幀(或其它編碼單元)內(nèi)的預(yù)測塊的當(dāng)前視頻幀或圖像內(nèi)的視頻塊的PU的位移,其中所述參考幀內(nèi)的預(yù)測塊相對于當(dāng)前幀(或其它編碼單元)內(nèi)正在編碼的當(dāng)前塊。
預(yù)測塊是根據(jù)像素差發(fā)現(xiàn)與待編碼的塊緊密匹配的塊,該像素差可通過絕對差值和(sum of absolute difference,SAD)、方差值和(sum of square difference,SSD)或其它不同度量進(jìn)行確定。在某些示例中,視頻編碼器200可計算解碼圖像緩沖區(qū)206內(nèi)存儲的參考圖像的分段整數(shù)像素位置的值。例如,視頻編碼器200可內(nèi)插參考圖像的四分之一像素位置、八分之一像素位置或其它分?jǐn)?shù)像素位置的值。因此,運動估計單元222可執(zhí)行有關(guān)全像素位置和分?jǐn)?shù)像素位置的運動搜索,并輸出具有分?jǐn)?shù)像素精度的運動向量。
運動估計單元222通過將PU的位置與參考圖像的預(yù)測塊的位置進(jìn)行比較,來計算幀間編碼片內(nèi)視頻塊的PU的運動向量。可從多個參考圖像列表的一個列表中選擇參考圖像,每個列表確認(rèn)在解碼圖像緩沖區(qū)206中存儲的一個或多個參考圖像。運動估計單元222為熵編碼單元214和運動補償單元220生成計算的運動向量。
運動補償單元220所執(zhí)行的運動補償可包含基于運動估計單元222所確定的運動向量獲取或生成預(yù)測塊。在接收當(dāng)前視頻塊的PU的運動向量之后,運動補償單元220可將預(yù)測塊定位到運動向量在任一參考圖像列表中指向的位置。加法器208通過從當(dāng)前正在編碼的視頻塊的像素值中減去預(yù)測塊的像素值來形成殘差視頻塊,從而形成像素差值。一般情況下,運動估計單元222執(zhí)行相對于亮度組件的運動估計,運動補償單元220將基于亮度組件計算得到的運動向量用于色度組件和亮度組件。模式選擇單元204還可生成與視頻塊和視頻片相關(guān)的語法元素以供解碼視頻片的視頻塊時使用。
幀內(nèi)預(yù)測單元224可對當(dāng)前塊進(jìn)行幀內(nèi)預(yù)測,作為運動估計單元222和運動補償單元220所執(zhí)行的幀間預(yù)測的替代。具體而言,幀內(nèi)預(yù)測單元224可確定幀內(nèi)編碼模式以用來對當(dāng)前塊進(jìn)行編碼。在某些示例中,幀內(nèi)預(yù)測單元224可在單獨的編碼通道過程中等使用各種幀內(nèi)預(yù)測模式對當(dāng)前塊進(jìn)行編碼,而幀內(nèi)預(yù)測單元224(或模式選擇單元204,在某些示例中)可從測試模式中選擇要使用的適當(dāng)?shù)膸瑑?nèi)編碼模式。
例如,幀內(nèi)預(yù)測單元224可使用率失真分析對各種測試幀內(nèi)編碼模式計算率失真值,并從測試模式中選擇具有最佳率失真特點的幀內(nèi)編碼模式。率失真分析一般確定編碼后塊和原始未編碼塊之間的失真(或誤差)量,對原始未編碼塊進(jìn)行編碼可生成編碼后塊,同時比特率或位數(shù)用于生成編碼后塊。幀內(nèi)預(yù)測單元224可計算各種編碼后塊的失真比率和速率,以確定哪個幀內(nèi)編碼模式顯示塊的最佳率失真值。
此外,幀內(nèi)預(yù)測單元224可用于對深度圖的深度塊進(jìn)行編碼。例如,幀內(nèi)預(yù)測單元224可使用基礎(chǔ)(2D)HEVC標(biāo)準(zhǔn)中的幀內(nèi)預(yù)測模式、區(qū)域邊界鏈編碼模式(chain coding mode,CCM)、簡化或分段深度編碼模式(segment-wise depth coding mode,SDC)或者深度模型模式(depth modeling mode,DMM)對深度片的幀內(nèi)預(yù)測PU進(jìn)行編碼。在某些示例中,運動估計單元222和運動補償單元220還可用于對深度圖的深度塊進(jìn)行編碼。運動估計單元222和運動補償單元220可根據(jù)基礎(chǔ)(2D)HEVC標(biāo)準(zhǔn)或幀間SDC模式執(zhí)行幀間預(yù)測,從而對深度片的幀間預(yù)測PU進(jìn)行編碼。
變換處理單元210將變換應(yīng)用于殘差塊,生成殘差變換系數(shù)的塊。變換可將殘差信息從像素值域轉(zhuǎn)換到變換域,諸如頻域。變換處理單元210可執(zhí)行變換,如離散余弦變換(discrete cosine transforms,DCT)或概念上類似于DCT的其它變換。還可使用小波變換、整數(shù)變換、子帶變換或其它類型的變換。變換處理單元210可將得出的變換系數(shù)發(fā)送到量化單元212。在某些示例中,可跳過變換過程。
量化單元212量化變換系數(shù),以進(jìn)一步降低比特率。量化過程可降低與部分或全部系數(shù)相關(guān)的位深度。量化的度可通過調(diào)整量化參數(shù)進(jìn)行修改。在某些示例中,量化單元212然后可執(zhí)行包括量化變換系數(shù)的矩陣的掃描?;蛘?,熵編碼單元214可執(zhí)行掃描。
量化后,熵編碼單元214對量化變換系數(shù)進(jìn)行熵編碼。例如,熵編碼單元214可執(zhí)行基于上下文的自適應(yīng)二進(jìn)制算數(shù)編碼(context adaptive binary arithmetic coding,CABAC)或其它熵編碼過程,如基于上下文的自適應(yīng)變長編碼(context adaptive variable length coding,CAVLC)、基于語法的上下文自適應(yīng)二進(jìn)制算數(shù)編碼(syntax-based context-adaptive binary arithmetic coding,SBAC)或概率區(qū)間劃分熵(probability interval partitioning entropy,PIPE)編碼。在基于上下文的熵編碼中,上下文可基于相鄰塊。在熵編碼單元214進(jìn)行熵編碼后,可將編碼后比特流發(fā)送給另一臺設(shè)備(例如視頻解碼器300)或進(jìn)行歸檔以作稍后傳輸或檢索。
逆量化單元230和逆變換單元232分別應(yīng)用逆量化和逆變換在像素域中重構(gòu)殘差塊,以稍后用作參考快。運動補償單元220可通過將殘差塊添加到解碼圖像緩沖區(qū)206的其中一個幀的預(yù)測塊來計算參考塊。運動補償單元220還可將一個或多個內(nèi)插濾波器應(yīng)用到重構(gòu)后的殘差塊中來計算分段整數(shù)像素值,以便在運動估計中使用。
加法器234將重構(gòu)后的殘差塊添加到由運動補償單元220生成的運動補償預(yù)測塊中來生成重構(gòu)后的視頻塊,以便在編碼圖像緩沖區(qū)206中存儲。重構(gòu)后的視頻塊可由運動估計單元222和運動補償單元220用作參考塊,以在后續(xù)視頻幀中對塊進(jìn)行幀間編碼。
根據(jù)本發(fā)明描述的技術(shù),視頻編碼器200可用于使用3D視頻編碼過程中可用的深度幀內(nèi)編碼模式對3D視頻數(shù)據(jù)的深度數(shù)據(jù)進(jìn)行編碼。在一個示例中,視頻編碼器200傳送用于對深度模型表中的3D視頻數(shù)據(jù)的深度數(shù)據(jù)進(jìn)行編碼的深度幀內(nèi)編碼模式。深度模型表為與HEVC幀內(nèi)編碼模式的語法分離的附加深度幀內(nèi)編碼模式傳送語法。此外,視頻編碼器200傳送語法元素,如標(biāo)志,以指示是否對3D視頻數(shù)據(jù)啟用不同于HEVC幀內(nèi)編碼模式的任一深度幀內(nèi)編碼模式。在某些示例中,語法元素可指示是否對3D視頻數(shù)據(jù)啟用所有深度幀內(nèi)編碼模式。語法元素可包括在視頻參數(shù)集(video parameter set,VPS)、序列參數(shù)集(sequence parameter set,SPS)或視頻數(shù)據(jù)的圖像參數(shù)集(picture parameter set,PPS)中的一個。當(dāng)啟用深度幀內(nèi)編碼模式時,由視頻編碼器200傳送的標(biāo)志指示視頻解碼器300對深度模型表進(jìn)行解碼,從而確定用于對深度數(shù)據(jù)進(jìn)行編碼的任一深度幀內(nèi)編碼模式。深度模型表可在視頻數(shù)據(jù)的編碼單元(coding unit,CU)級別或預(yù)測單元(prediction unit,PU)級別之一進(jìn)行編碼。根據(jù)本發(fā)明的技術(shù),視頻編碼器200的傳送可通過傳送與HEVC幀內(nèi)編碼模式分離的深度模型表中的深度幀內(nèi)編碼模式以及指示何時啟用深度幀內(nèi)編碼模式和何時對深度模型表進(jìn)行解碼來減輕解碼器解析負(fù)擔(dān)。
在另一示例中,視頻編碼器200可用于使用跨兩個或多個深度編碼模式統(tǒng)一的語法元素集,傳送3D視頻數(shù)據(jù)的深度數(shù)據(jù)的殘差信息。深度編碼模式可包括深度幀內(nèi)編碼模式和深度幀間編碼模式。語法元素集可包括指示是否對任一深度編碼模式編碼殘差值的語法元素。語法元素集還可包括指示絕對值和任一深度編碼模式的殘差值的語法元素。通過共享相同的語法元素集來指示兩個或多個深度編碼模式的殘差信息,視頻編碼器200還可統(tǒng)一每個共享的語法元素的上下文模型選擇和二進(jìn)制化方法。此外,對于深度幀內(nèi)編碼模式,視頻編碼器200可確定在深度數(shù)據(jù)的殘差值生成期間不過濾相鄰參考樣本。根據(jù)本發(fā)明的技術(shù),視頻編碼器200的編碼機制和傳送可通過統(tǒng)一深度編碼模式的殘差信息語法,減輕解碼器解析負(fù)擔(dān)并減少所需上下文模型和二進(jìn)制化方法的數(shù)量。
圖3為圖示可能實現(xiàn)深度數(shù)據(jù)編碼技術(shù)的視頻解碼器300的示例的方框圖。視頻解碼器300包括視頻數(shù)據(jù)存儲器302、熵解碼單元304、運動補償單元306、幀內(nèi)預(yù)測單元308、逆量化單元310、逆變換單元312、解碼圖像緩沖區(qū)(decoded picture buffer,DPB)314和加法器316。視頻解碼器300表示可用于執(zhí)行如本文所提供的3D-HEVC中深度圖的簡化編碼模式傳送的技術(shù)的設(shè)備。
視頻數(shù)據(jù)存儲器302可存儲待由視頻解碼器300的組件解碼的視頻數(shù)據(jù),諸如編碼視頻比特流。例如,視頻數(shù)據(jù)存儲器302中存儲的視頻數(shù)據(jù)可從計算機可讀介質(zhì),例如從本地視頻源,諸如照相機,通過視頻數(shù)據(jù)的有線或無線網(wǎng)絡(luò)通信或者通過訪問物理數(shù)據(jù)存儲介質(zhì)獲取。視頻數(shù)據(jù)存儲器302可形成一個存儲編碼視頻比特流中的編碼視頻數(shù)據(jù)的編碼圖像緩沖區(qū)(coded picture buffer,CPB)。解碼圖像緩沖區(qū)314可以是存儲參考視頻數(shù)據(jù)的參考圖像存儲器,以便在視頻編碼器300按幀內(nèi)或幀間編碼模式對視頻數(shù)據(jù)進(jìn)行解碼時使用。視頻數(shù)據(jù)存儲器302和解碼圖像緩沖區(qū)314可由各種存儲器設(shè)備,如動態(tài)隨機存取存儲器(dynamic random access memory,DRAM),包括同步DRAM(synchronous DRAM,SDRAM)、磁阻RAM(magnetoresistive RAM,MRAM)或其它類型的存儲器設(shè)備的任何一種構(gòu)成。視頻數(shù)據(jù)存儲器302和解碼圖像緩沖區(qū)314可由相同的存儲器設(shè)備或單獨的存儲器設(shè)備提供。在各種示例中,視頻數(shù)據(jù)存儲器302可與視頻解碼器300的其它組件一樣位于芯片上,或位于相對于這些組件的芯片外。
在解碼過程中,視頻解碼器300從視頻編碼器200接收表示編碼視頻片的視頻塊的編碼視頻比特流和相關(guān)語法元素。熵解碼單元304對比特流進(jìn)行熵解碼,以生成量化系數(shù)、運動向量、幀內(nèi)編碼模式指標(biāo)和其它語法元素。視頻解碼器300可接收視頻片級別和/或視頻塊級別的語法元素。除對每個視圖的紋理圖(即亮度值和色度值)進(jìn)行解碼外,視頻解碼器300還可對每個視圖的深度圖進(jìn)行解碼。
當(dāng)視頻片編碼為幀內(nèi)編碼(I)片時,幀內(nèi)預(yù)測單元308可基于傳送幀內(nèi)編碼模式和當(dāng)前幀或圖像的先前解碼后塊的數(shù)據(jù),生成當(dāng)前視頻片的視頻塊的預(yù)測數(shù)據(jù)。幀內(nèi)預(yù)測單元308還可對深度數(shù)據(jù)進(jìn)行幀內(nèi)編碼。例如,幀內(nèi)預(yù)測單元308可使用基礎(chǔ)(2D)HEVC標(biāo)準(zhǔn)中的幀內(nèi)預(yù)測模式、區(qū)域邊界鏈編碼模式(chain coding mode,CCM)、簡化深度編碼或分段深度編碼模式(segment-wise depth coding mode,SDC)或者深度模型模式(depth modeling mode,DMM)對深度片的幀內(nèi)預(yù)測PU進(jìn)行編碼。
在視頻幀編碼為幀間編碼(即B或P)片時,運動補償單元306基于運動向量和從熵解碼單元304中接收到的其它語法元素,為當(dāng)前視頻片的視頻塊生成預(yù)測塊。預(yù)測塊可由其中一個參考圖像列表內(nèi)的其中一個參考圖像生成。視頻解碼器300可基于解碼圖像緩沖器314中存儲的參考圖像,使用默認(rèn)的構(gòu)建技術(shù)構(gòu)建參考幀列表。
運動補償單元306通過解析運動向量和其它語法元素對當(dāng)前視頻片的視頻塊確定預(yù)測信息,并使用該預(yù)測信息為正在解碼的當(dāng)前視頻塊生成預(yù)測塊。例如,運動補償單元306使用部分接收到的語法元素來確定用于對視頻片的視頻塊進(jìn)行編碼的預(yù)測模式(例如幀內(nèi)預(yù)測或幀間預(yù)測)、幀間預(yù)測片類型(例如B片或P片)、視頻片的一個或多個參考圖像列表的構(gòu)建信息、視頻片的每個幀間編碼視頻塊的運動向量、視頻片的每個幀間編碼視頻塊的幀間預(yù)測狀態(tài)以及其它信息,以對當(dāng)前視頻片中的視頻塊進(jìn)行解碼。
運動補償單元306還可基于內(nèi)插濾波器執(zhí)行內(nèi)插。運動補償單元306可使用在視頻塊的編碼期間視頻編碼器200所用的內(nèi)插濾波器來計算參考塊的分段整數(shù)像素的內(nèi)插值。在這種情況下,運動補償單元306可確定接收到的語法元素中視頻編碼器200所用的內(nèi)插濾波器,并使用該內(nèi)插濾波器生成預(yù)測塊。運動補償單元306還可對深度數(shù)據(jù)進(jìn)行幀間編碼。例如,運動補償單元306可根據(jù)基礎(chǔ)(2D)HEVC標(biāo)準(zhǔn)或幀間SDC模式執(zhí)行幀間預(yù)測,從而對深度片的幀內(nèi)預(yù)測PU進(jìn)行編碼。
逆量化單元310對比特流中提供的并由熵解碼單元304解碼的量化變換系數(shù)進(jìn)行逆量化,即解量化。逆量化過程可包括由視頻解碼器300對視頻片中每個視頻塊計算的量化參數(shù)QPY的使用,從而確定量化度,否則應(yīng)用逆量化度。逆變換單元312應(yīng)用逆變換,例如逆DCT、逆整數(shù)變換或概念上類似地逆變換過程來變換系數(shù),以在像素域中生成殘差塊。
在運動補償單元306或幀內(nèi)預(yù)測單元308基于運動向量或其它語法元素為當(dāng)前視頻塊(例如紋理塊或深度塊)生成預(yù)測塊之后,視頻解碼器300通過將逆變換單元312中的殘差塊與由運動補償單元306或幀內(nèi)預(yù)測單元308生成的對應(yīng)預(yù)測塊相加形成解碼視頻塊。加法器316表示執(zhí)行此等加法操作的組件。
如果需要,去塊效應(yīng)濾波器還可用于過濾解碼后塊,以消除方塊效應(yīng)。其它環(huán)路濾波器(或者在編碼環(huán)路中,或者在編碼環(huán)路后)還可用于對像素過渡進(jìn)行平滑處理,或者改進(jìn)視頻質(zhì)量。然后,給定幀或圖像中的解碼視頻塊存儲在解碼圖像緩沖區(qū)314中,所述解碼圖像緩沖區(qū)存儲用于后續(xù)運動補償?shù)膮⒖紙D像。解碼圖像緩沖區(qū)314還存儲視頻,以便在顯示設(shè)備上作后期演示。
運動補償單元220和運動補償單元306可執(zhí)行基于深度的塊劃分(Depth Based Block Partitioning,DBBP),所述基于深度的塊劃分將塊分成不同的分區(qū)。并列紋理塊的任意形狀的塊劃分基于并列(虛擬)深度圖中計算的二值分割掩碼獲得。兩個分區(qū)的每一個分區(qū)都可進(jìn)行運動補償,隨后可根據(jù)基于深度的分割掩碼進(jìn)行合并。DBBP過程中的最后一步是過濾位于所述分區(qū)邊界的像素。如本文所述,盡管劃分為前景和后景目標(biāo)區(qū)域,但是紋理塊可以通過二值分割掩碼所指定的任何需要的方式進(jìn)行劃分。
在初始步驟中,紋理組件的當(dāng)前編碼樹塊(coded tree block,CTB)的并列深度塊分割成兩個任意形狀的分段。由于深度組件在當(dāng)前常見測試配置(Common Test Configuration,CTC)中的相應(yīng)紋理視圖后進(jìn)行編碼,因此虛擬深度圖從基準(zhǔn)視圖的重構(gòu)深度中獲得,并按視差向量進(jìn)行移位。視差向量用于定位相同時間點的已編碼圖像中的當(dāng)前CU/PU的相應(yīng)塊。視差向量最初從CU的時間和空間視差補償預(yù)測編碼鄰近塊的運動向量獲得,或者從與CU的運動補償預(yù)測編碼相鄰塊相關(guān)的視差向量獲得。然后,視差向量從基準(zhǔn)視圖的深度圖獲得。視差向量用于確認(rèn)已編碼的深度視圖中的深度塊和執(zhí)行反向扭曲,以進(jìn)一步改進(jìn)獲得的視差向量的精確度。所獲得的視差向量稱為面向深度的基于相鄰塊的視差向量(depth oriented neighboring block based disparity vector,DoNBDV)。
在獲得視差向量和確認(rèn)參考視圖中的相應(yīng)深度塊之后,基于所述相應(yīng)深度塊內(nèi)的全部深度樣本的平均值計算閾值。(虛擬)深度圖的分割基于一個非常簡單的閾值機制來執(zhí)行,在該機制中,閾值根據(jù)平均深度值進(jìn)行計算。
這里,2N定義了當(dāng)前紋理塊的寬度/高度,d(x,y)近似已編碼的、參考視圖的紋理幀的相應(yīng)深度圖。隨后,基于深度值和閾值d生成二值分割掩碼mD(x,y),如下所示。
圖4示出了具有描繪二值分割掩碼的生成的編碼單元的放大組件塊的測試序列。并列深度塊將塊劃分為前景和后景區(qū)域,從而獲得二值分割掩碼mD(x,y)。所得的二值分割掩碼的平均值定義了紋理塊的劃分的形狀。當(dāng)位于相關(guān)坐標(biāo)(x,y)的深度值大于閾值時,二值掩碼mD(x,y)設(shè)為1。當(dāng)位于相關(guān)坐標(biāo)(x,y)的深度值小于閾值時,二值掩碼mD(x,y)設(shè)為0。
在DBBP模式中,實際的運動或視差補償基于2Nx2N劃分執(zhí)行,這意味著全部CTB按編碼的向量信息進(jìn)行移位。此全尺寸運動/視差補償執(zhí)行兩次,一次是針對每個分段執(zhí)行,從而獲得兩個預(yù)測信號pT0(x,y)和pT1(x,y)。因此,兩組向量信息需要對DBBP塊進(jìn)行編碼。這種方法的背后有一種假設(shè),即紋理塊通?;诓⒘猩疃葔K分成前景和后景。然后,這兩個深度層可通過其自身的運動向量組或視差向量組進(jìn)行獨立補償。
在對DBBP編碼的塊生成兩個全尺寸預(yù)測信號pT0(x,y)和pT1(x,y)后,分割掩碼mD(x,y)用于將這兩個信號合并成當(dāng)前紋理CTB的最終預(yù)測信號pT(x,y),如下所示:
圖5所示為合并功能。對于兩個解碼后運動參數(shù)的每一個參數(shù),執(zhí)行2Nx2N運動補償。所得的預(yù)測信號pT0(x,y)和pT1(x,y)使用DBBP掩碼mD(x,y)進(jìn)行合并。通過將兩個預(yù)測信號合并,來自深度圖的形狀信息允許對相同紋理塊中的前景和后景目標(biāo)進(jìn)行獨立補償。同時,DBBP不需要逐像素運動/視差補償。對于DBBP編碼的塊而言,存儲器訪問參考緩沖區(qū)總是定期的(基于塊)。此外,DBBP總是使用全尺寸的塊進(jìn)行補償。這對復(fù)雜度更可取,因為查找內(nèi)存緩存中的數(shù)據(jù)的概率更高。
在上述描述中,DBBP將塊劃分為前景和后景目標(biāo)區(qū)域。在生成每個分區(qū)的預(yù)測信號之后,邊界樣本過濾用于更改邊界樣本的強度值。在邊界樣本過濾方法中,基于當(dāng)前邊界樣本的相鄰樣本的檢查條件用于確定邊界樣本過濾是否用于更改當(dāng)前邊界樣本的強度值。如果滿足檢查條件,過濾技術(shù)則應(yīng)用于當(dāng)前邊界樣本。過濾技術(shù)可基于使用多個位置樣本生成當(dāng)前位置的更新值,作為過濾的樣本值。所述多個位置樣本包括當(dāng)前邊界樣本的相鄰位置樣本,也包括或不包括當(dāng)前邊界樣本。
圖6所示為在分區(qū)邊界適用于特定像素的平均過濾技術(shù)。在基于塊執(zhí)行現(xiàn)代視頻編碼器(例如在HEVC中)中的運動或視差補償時,任意形狀的塊劃分通常需要基于像素的補償。在根據(jù)合并過程生成上述預(yù)測信號之后,在由分割掩碼定義的邊界分區(qū)對像素執(zhí)行水平或垂直過濾過程。就分區(qū)附近的前景或后景像素而言,在過濾時已嘗試平均兩個分區(qū)的像素的值。然而,并列像素不歸類為前景或后景像素。因此,在邊界附近可能造成失真。
圖7所示為對邊界像素p和q執(zhí)行的簡單過濾技術(shù),而不是圖6的平均技術(shù)。過濾方向基于PU尺寸。對Nx2N執(zhí)行水平過濾,對2NxN執(zhí)行垂直過濾。如圖所示,一個分區(qū)中的一個邊界樣本具有位置p,另一個分區(qū)中的邊界樣本具有位置q。相鄰位置為p-1和q-1。對于每個顏色組件I,位置p和位置q的強度值可進(jìn)行如下更改:
I’p=((Ip-1)+(Ip)<<1+(Iq))>>2
I’q=((Ip)+(Iq)<<1+(Iq+1))>>2
其中,p-1、p、q和q+1均為同一行的連續(xù)樣本,I’p和I’q為過濾后位置p和位置q的新強度值。符號>>表示右位移操作符(或兩個乘法的冪),符號<<表示左位移操作符(或兩個乘法的冪),伴隨確認(rèn)兩個乘法因數(shù)的冪的整數(shù)值。對于每個當(dāng)前樣本位置,沿水平過濾方向或垂直過濾方向的兩個最近的相鄰樣本位置用于判定當(dāng)前樣本位置是否為邊界樣本。如果根據(jù)二值分割掩碼為兩個相鄰樣本分配了相同的值,則當(dāng)前樣本位置確認(rèn)為邊界樣本位置。本過濾過程以更高效的方式平滑處理任意分區(qū)周圍的區(qū)域。
圖8A至圖8D所示為可檢查像素過濾過程的四個過濾條件??蛇M(jìn)一步簡化邊界過濾過程,在該過程中不需要對每個像素位置執(zhí)行過濾。可基于相鄰像素位置的掩碼值建立過濾條件。過濾掩碼應(yīng)用于每個像素位置。過濾掩碼適用于左、右、上、下、和中央位置,其中當(dāng)前像素位置位于掩碼的中心。在圖8A至8D中,哈希表示具有相同值的位置。圖8A所示為左和右像素位置與水平行中的當(dāng)前中央像素位置共享相同的掩碼值,而上和下像素位置與垂直列中的當(dāng)前中央像素位置不共享相同的掩碼值。圖8B所示為上和下像素位置與垂直列中的當(dāng)前中央像素位置共享相同的掩碼值,而左和右像素位置與水平行中的當(dāng)前中央像素位置不共享相同的掩碼值的情況。圖8C所示為左、右、上、下像素位置與當(dāng)前中央像素位置全部共享相同的掩碼值的情況。圖8D所示為左和右像素位置與水平行中的當(dāng)前中央像素位置不共享相同的掩碼值,而上和下像素位置與垂直列中的當(dāng)前中央像素位置不共享相同的掩碼值的情況。
對于在二值分割掩碼的邊界的每個像素位置,將左、右、上、下像素位置的值與當(dāng)前中央像素位置的值進(jìn)行比較,從而確定應(yīng)用哪種過濾過程。
對于圖8A中顯示的情況,過濾過程可以是
I’c=((It)+(Ic)<<1+(Ib))>>2。
對于圖8B中顯示的情況,過濾過程可以是
I’c=((Il)+(Ic)<<1+(Ir))>>2。
對于圖8C中顯示的情況,不執(zhí)行過濾,而且
I’c=(Ic)。
對于圖8D中顯示的情況,過濾過程可以是
I’c=((Il)+(Ir)+(Ic)<<2+(It)+(Ib))>>3。
圖9A至圖9B所示為過濾過程的進(jìn)一步簡化。掩碼檢查過程可減少到四個位置和兩種過濾情況,而不是檢查五個位置和四種過濾情況。在圖9A至圖9B中,僅檢查與當(dāng)前像素位置(即有關(guān)當(dāng)前中央像素位置的左、右、上、下像素位置)有關(guān)的垂直面和水平面中的與當(dāng)前像素位置相鄰的像素的值。當(dāng)前中央像素位置不包含在檢查條件之內(nèi)。圖9A所示為左、右、上、下像素位置共享相同掩碼值的情況。圖9B所示為左、右、上、下像素位置不共享相同掩碼值的情況。
對于圖9A中顯示的情況,不執(zhí)行過濾,而且
I’c=(Ic)。
對于圖9B中顯示的情況,過濾過程可以是
I’c=((Il)+(Ir)+(Ic)<<2+(It)+(Ib))>>3。
盡管已顯示了具體的過濾過程,但是過濾過程可能存在差異,包括使用某些系數(shù)和/或使用某些強度值作為過濾過程的一部分。過濾過程可包括任何其它所需計算中的計算,如平均、加權(quán)平均和中值過濾。
表1所示為使用HEVC的常見測試配置(Common Test Configuration,CTC)的測試結(jié)果。如表1所示,使用圖9A至圖9B的過濾條件未引起B(yǎng)D比特率損失。
表1
圖10所示為檢查條件和過濾過程的替代技術(shù)。用于過濾條件檢查的掩碼不限于左、右、上、下和中央位置。與其(即當(dāng)前像素的左上、右上、左下和右下位置)有關(guān)的垂直面中的左和右位置相鄰的位置的掩碼還可用于檢查條件和過濾過程。一個示例過濾過程可如下所示:
I’c=(Il+Ir+It+Ib+Itl+Itr+Ibl+Ibr+(Ic<<3))>>4。
每個位置或特定位置組合的值可確定是否執(zhí)行過濾以及應(yīng)用哪個過濾過程。
在另一實施例中,可根據(jù)過濾過程中的需要應(yīng)用過濾系數(shù)。一個使用過濾系數(shù)的示例過濾過程可如下所示:如:
I’c=a1(Il)+a2(Ir)+a3(Ic)+a4(It)+a5(Ib)。
如果a1=a2=a3=a4=a5=1/5,則過濾像素值I’c將為像素Il、Ir、Ic、It、和Ib的平均值。任何實數(shù)都可用作過濾系數(shù)。
在另一實施例中,選擇邊界樣本(例如左和下、上和右、上和左或者右和下)的定向位置來確定邊界樣本的檢查條件。然而,由于當(dāng)前中央像素位置不適于在一個分區(qū)區(qū)域中進(jìn)行劃分,所以當(dāng)前中央像素位置不包含在確定檢查條件中。
在另一實施例中,兩個分區(qū)均為運動補償分區(qū),然后可根據(jù)基于深度的分割掩碼通過將這兩個分區(qū)平均進(jìn)行合并。在平均后,這兩個分區(qū)的邊界以上述描述的任何方式進(jìn)行過濾,以獲得更好的重構(gòu)質(zhì)量。
在另一實施例中,用于邊界過濾的濾波器不限于平滑濾波器/低通濾波器。在其他濾波器,如中值濾波器和高斯濾波器中可使用其它過濾技術(shù)。
上述描述的各種實施例僅為可應(yīng)用于DBBP的檢查條件和過濾過程的示例。此外,這些實施例不互相排斥,因為在對像素位置執(zhí)行檢查條件和過濾過程時可應(yīng)用兩個或多個實施例的特點。
如上段所述,DBBP要求對兩組運動信息進(jìn)行編碼,一組運動信息對應(yīng)每個分區(qū)段?,F(xiàn)代視頻編碼器,如HEVC,允許在編碼樹單元(coding tree unit,CTU)內(nèi)使用矩形、非方形劃分模式,以執(zhí)行細(xì)粒度運動補償。對于CTU中的每個分區(qū),對一組單獨的運動信息進(jìn)行編碼。此編碼方式在基于深度的塊劃分中重復(fù)使用。
圖11所示為根據(jù)本發(fā)明執(zhí)行基于深度的塊劃分的過程1100。過程1100在步驟1102處開始,在該步驟中視頻畫面塊劃分為前景和后景目標(biāo)區(qū)域。在步驟1104中,對前景和后景目標(biāo)區(qū)域執(zhí)行運動補償。在步驟1106處,前景和后景目標(biāo)區(qū)域進(jìn)行合并。在合并過程中,可選擇對邊界像素的強度值求平均值。在步驟1108處,對前景和后景目標(biāo)區(qū)域的邊界上的每個像素進(jìn)行確定:是否執(zhí)行過濾過程來調(diào)整特定像素的強度值。上述描述的一個或多個檢查條件可應(yīng)用于確定是否應(yīng)用濾波過程。如果不應(yīng)用過濾過程,則在步驟1110處保持像素的強度值。如果要執(zhí)行過濾,則在步驟1112處選擇過濾參數(shù)和過濾過程。然后在步驟1114處對特定像素應(yīng)用所述過濾過程來獲得強度值。
圖12所示為關(guān)于二值分割掩碼疊加的PU形狀。在獲得每個DBBP分段的最優(yōu)運動/視差信息之后,此信息映射到上述HEVC的可用矩形、非方形劃分模式之一。二值分割掩碼到六個可用二分段劃分模式之一的映射可通過關(guān)聯(lián)分析來執(zhí)行。對于每個可用劃分模式i∈[0,5],生成2個二值掩碼m2i(x,y)和mT2i+1(x,y),其中m2i+1(x,y)是m2i(x,y)的求反。為了查找當(dāng)前基于深度的分割掩碼MD(x,y)的最佳匹配分割模式iopt,執(zhí)行下述算法:
Boolean變量binv定義了獲得的分割掩碼mD(x,y)是否需要進(jìn)行求逆。這在傳統(tǒng)劃分模式的標(biāo)引是對分割掩碼中的標(biāo)引的互補的某些案例中可能是必要的。在傳統(tǒng)劃分模式中,索引0定義了當(dāng)前塊的左上角中的分區(qū),而分割掩碼中的相同索引定義了具有較低深度值(后景目標(biāo))的分段。為了調(diào)整mD(x,y)和iopt之間相應(yīng)組運動信息的定位,如果設(shè)置了binv,則反轉(zhuǎn)mD(x,y)中的標(biāo)引。
在找到最佳匹配的現(xiàn)有劃分模式后,根據(jù)此最優(yōu)模式iopt存儲和編碼運動信息。在獲得運動向量候選以進(jìn)行先進(jìn)運動向量預(yù)測(advanced motion vector prediction,AMVP)或運動向量合并時,傳統(tǒng)上后繼編碼單元(coding unit,CU)可訪問已編碼的運動信息。
將單個標(biāo)志添加到編碼語法中,從而傳送到解碼器,通知塊使用DBBP進(jìn)行預(yù)測。顯而易見的選擇是對全部傳統(tǒng)劃分模式發(fā)送此標(biāo)志。但是此方法會對不使用DBBP的塊產(chǎn)生不必要的編碼開銷。因此,DBBP編碼塊的劃分模式在對劃分模式進(jìn)行編碼之前設(shè)為2NxN。然后,僅對2NxN劃分后的塊,在比特流中對DBBP標(biāo)志進(jìn)行編碼。對于全部其它劃分模式,未對DBBP標(biāo)志進(jìn)行編碼。在解碼器側(cè),真實的(傳統(tǒng))劃分在已對DBBP標(biāo)志進(jìn)行解碼后獲得。解碼器處的全部進(jìn)一步處理步驟保持與HEVC基礎(chǔ)規(guī)范中的步驟一致。
圖13示出了簡化的通用計算組件1300,其適用于實施本文本所揭示的一項或多項實施例。上文所描述的視頻編碼器200和視頻解碼器300的組件可以在任何通用計算組件上實施,例如,具有足夠處理能力、存儲器資源以及用于處理放置在其上的必需的工作負(fù)荷的網(wǎng)絡(luò)吞吐能力的計算機或網(wǎng)絡(luò)組件。計算組件1300包括處理器1302(可稱為中央處理器單元或CPU),所述處理器與包含以下項的存儲器裝置進(jìn)行通信:輔助存儲裝置1304、只讀存儲器(read only memory,ROM)1306、隨機存取存儲器(random access memory信RAM)1308、輸入/輸出(input/output,I/O)裝置1310,以及網(wǎng)絡(luò)/組件連接裝置1312。處理器1302可作為一個或多個CPU芯片實施,或者可為一個或多個專用集成電路(application specific integrated circuits,ASIC)的一部分。
輔助存儲器1304通常包括一個或多個磁盤驅(qū)動器或磁帶驅(qū)動器,用于數(shù)據(jù)的非易失性存儲,而且如果RAM 1308的容量不足以存儲所有工作數(shù)據(jù),輔助存儲器則用作溢流數(shù)據(jù)存儲設(shè)備。輔助存儲器1304可以用于存儲程序,當(dāng)選擇執(zhí)行這些程序時,所述程序?qū)⒓虞d到RAM 1308中。ROM 1306可用于存儲在程序執(zhí)行期間讀取的指令以及可能讀取的數(shù)據(jù)。ROM 1306為非易失性存儲設(shè)備,其存儲容量相對于輔助存儲器1304的較大存儲容量而言通常較小。RAM 1308用于存儲易失性數(shù)據(jù),還可能用于存儲指令。通常情況下,同時訪問ROM1306和RAM1308比訪問輔助存儲器1304更快??苫谝曨l編碼器200和視頻解碼器300內(nèi)的每個組件的功能包含附加處理器和存儲器設(shè)備。
在某些實施例中,一個或多個所述設(shè)備的部分或全部功能或流程由計算機可讀程序代碼構(gòu)成的且內(nèi)嵌于計算機可讀介質(zhì)中的計算機程序來實現(xiàn)或提供支持。術(shù)語“代碼”包括任意類型的計算機代碼,包括源代碼、目標(biāo)代碼以及可執(zhí)行代碼。術(shù)語“計算機可讀介質(zhì)”包括任何類型的可以被計算機訪問的非易失性介質(zhì),比如,只讀存儲器(read only memory,ROM)、隨機存取存儲器(random access memory,RAM)、硬盤驅(qū)動器、光盤(compact disc,CD)、數(shù)字化視頻光盤(digital video disc,DVD)或者任何其他類型的存儲器。
為本專利文檔中使用的特定術(shù)語和短語進(jìn)行定義是有幫助的。術(shù)語“包括”和“包含”以及它們的派生詞表示沒有限制的包括。術(shù)語“或者”是包容性的,意為和/或。短語“與……關(guān)聯(lián)”和“與其關(guān)聯(lián)”以及其派生的短語意味著包括,被包括在內(nèi)、與……互連、包含、被包含在內(nèi)、連接到或與……連接、耦合到或與……耦合、可與……通信、與……配合、交織、并列、接近、被綁定到或與……綁定、具有、具有……屬性,等等。
雖然本發(fā)明就某些實施例和一般相關(guān)方法方面進(jìn)行了描述,但是對本領(lǐng)域技術(shù)人員而言,對實施例和方法的各種更改和變更將是顯而易見和容易識別的。因此,示例實施例的上述描述不限定或約束本發(fā)明。正如以下權(quán)利要求定義,其它修改、替代以及變更也是可能的,而不偏離本發(fā)明的范圍。