本發(fā)明涉及視頻譯碼和壓縮的領(lǐng)域,且特定來(lái)說(shuō)涉及用于非自然視頻內(nèi)容的運(yùn)動(dòng)估計(jì)的方法。
背景技術(shù):
數(shù)字視頻能力可并入到廣泛范圍的裝置中,包含數(shù)字電視、數(shù)字直播系統(tǒng)、無(wú)線廣播系統(tǒng)、個(gè)人數(shù)字助理(PDA)、膝上型或桌上型計(jì)算機(jī)、數(shù)碼相機(jī)、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲控制臺(tái)、蜂窩式或衛(wèi)星無(wú)線電電話、視頻電話會(huì)議裝置及其類(lèi)似物。數(shù)字視頻裝置實(shí)施視頻壓縮技術(shù),例如在由移動(dòng)圖片專(zhuān)家組-2(MPEG-2)、MPEG-4、國(guó)際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門(mén)(ITU-T)H.263、ITU-T H.264/MPEG-4、第10部分定義的標(biāo)準(zhǔn)、高級(jí)視頻譯碼(AVC)、高效視頻譯碼(HEVC)標(biāo)準(zhǔn)和此些標(biāo)準(zhǔn)的擴(kuò)展中描述的視頻壓縮技術(shù)。視頻裝置可通過(guò)實(shí)施這些視頻譯碼技術(shù)而更有效率地發(fā)射、接收、編碼、解碼和/或存儲(chǔ)數(shù)字視頻信息。
視頻譯碼中使用的資源的大部分分配到運(yùn)動(dòng)估計(jì)。運(yùn)動(dòng)估計(jì)通常包含指派運(yùn)動(dòng)向量以指示視頻數(shù)據(jù)中的兩個(gè)圖像之間的像素或塊的移動(dòng)。運(yùn)動(dòng)估計(jì)可包含確定圖像的兩個(gè)相應(yīng)塊之間的誤差或差異,以及在所述塊具有兩個(gè)相應(yīng)塊之間的最小誤差或最小差異時(shí)將所述塊選擇為彼此匹配??梢虼送ㄟ^(guò)減小運(yùn)動(dòng)估計(jì)的計(jì)算復(fù)雜性來(lái)改進(jìn)視頻譯碼算法的效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的系統(tǒng)、方法及裝置各自具有若干創(chuàng)新方面,其中沒(méi)有單個(gè)方面單獨(dú)負(fù)責(zé)本文所揭示的合乎需要的屬性。
在一個(gè)方面中,一種用于非自然視頻數(shù)據(jù)的運(yùn)動(dòng)估計(jì)的方法包括:選擇視頻數(shù)據(jù)的第一幀的候選塊用于與視頻數(shù)據(jù)的第二幀的當(dāng)前塊匹配;計(jì)算用于使候選塊的樣本的第一子集與當(dāng)前塊匹配的第一部分匹配成本;以及至少部分地基于第一部分匹配成本確定候選塊是否具有與當(dāng)前塊的最低匹配成本。
在另一方面中,一種用于非自然視頻數(shù)據(jù)的運(yùn)動(dòng)估計(jì)的裝置包括經(jīng)配置以存儲(chǔ)視頻數(shù)據(jù)的存儲(chǔ)器;以及與存儲(chǔ)器通信的處理器,所述處理器經(jīng)配置以:選擇視頻數(shù)據(jù)的第一幀的候選塊用于與視頻數(shù)據(jù)的第二幀的當(dāng)前塊匹配;計(jì)算用于使候選塊的樣本的第一子集與當(dāng)前塊匹配的第一部分匹配成本;以及至少部分地基于第一部分匹配成本確定候選塊是否具有與當(dāng)前塊的最低匹配成本。
在另一方面中,提供一種設(shè)備,其包括:用于選擇視頻數(shù)據(jù)的第一幀的候選塊用于與視頻數(shù)據(jù)的第二幀的當(dāng)前塊匹配的裝置;用于計(jì)算用于使候選塊的樣本的第一子集與當(dāng)前塊匹配的第一部分匹配成本的裝置;以及用于至少部分地基于第一部分匹配成本確定候選塊是否具有與當(dāng)前塊的最低匹配成本的裝置。
在又一方面中,提供一種非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)媒體,其具有存儲(chǔ)于其上的指令,所述指令在執(zhí)行時(shí)致使裝置的處理器:選擇視頻數(shù)據(jù)的第一幀的候選塊用于與視頻數(shù)據(jù)的第二幀的當(dāng)前塊匹配;計(jì)算用于使候選塊的樣本的第一子集與當(dāng)前塊匹配的第一部分匹配成本;以及至少部分地基于第一部分匹配成本確定候選塊是否具有與當(dāng)前塊的最低匹配成本。
附圖說(shuō)明
圖1A是說(shuō)明可利用根據(jù)本發(fā)明中描述的方面的技術(shù)的實(shí)例視頻編碼及解碼系統(tǒng)的框圖。
圖1B是說(shuō)明可執(zhí)行根據(jù)本發(fā)明中描述的方面的技術(shù)的另一實(shí)例視頻編碼和解碼系統(tǒng)的框圖。
圖2是說(shuō)明可實(shí)施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻編碼器的實(shí)例的框圖。
圖3是說(shuō)明可實(shí)施本發(fā)明中描述的方面的技術(shù)的視頻解碼器的實(shí)例的框圖。
圖4為說(shuō)明根據(jù)本發(fā)明中描述的方面用于加速運(yùn)動(dòng)估計(jì)的方法的流程圖。
圖5為說(shuō)明根據(jù)本發(fā)明中描述的方面用于加速運(yùn)動(dòng)估計(jì)的另一方法的流程圖。
圖6為說(shuō)明根據(jù)本發(fā)明的各方面分級(jí)匹配到當(dāng)前塊的候選塊的部分樣本的框圖。
圖7為說(shuō)明根據(jù)本發(fā)明的各方面的經(jīng)修改初始搜索的圖。
圖8為說(shuō)明根據(jù)本發(fā)明的各方面用于運(yùn)動(dòng)估計(jì)的方法的流程圖。
具體實(shí)施方式
大體來(lái)說(shuō),本發(fā)明涉及用于非自然視頻數(shù)據(jù)的運(yùn)動(dòng)估計(jì)的方法。運(yùn)動(dòng)估計(jì)通常包含指派運(yùn)動(dòng)向量以指示視頻數(shù)據(jù)中的兩個(gè)圖像之間的像素或塊的移動(dòng)。運(yùn)動(dòng)估計(jì)可包含確定圖像的兩個(gè)相應(yīng)塊之間的誤差或差異,以及在所述塊具有兩個(gè)相應(yīng)塊之間的最小誤差或最小差異時(shí)將所述塊選擇為彼此匹配。常規(guī)運(yùn)動(dòng)估計(jì)可基于與視頻數(shù)據(jù)的內(nèi)容的類(lèi)型相關(guān)聯(lián)的特定假設(shè)。舉例來(lái)說(shuō),“自然”視頻數(shù)據(jù)(例如經(jīng)由具有光學(xué)系統(tǒng)的相機(jī)俘獲的視頻數(shù)據(jù))可歸因于所俘獲的視頻數(shù)據(jù)的主體的性質(zhì)和光學(xué)系統(tǒng)引入的噪聲而相對(duì)平滑。如本文所使用,術(shù)語(yǔ)“平滑”通常指代并不具有像素之間的尖銳轉(zhuǎn)變的圖像,即像素之間顏色的改變相對(duì)漸進(jìn)。因此,常規(guī)運(yùn)動(dòng)估計(jì)可假定與候選塊相關(guān)聯(lián)的誤差隨著接近具有最低誤差的候選塊(即,最佳匹配候選塊)而減小。如本文所使用,候選塊通常指代視頻數(shù)據(jù)的第一幀的塊,其與視頻數(shù)據(jù)的第二幀的當(dāng)前塊進(jìn)行比較以確定候選塊是否與當(dāng)前塊匹配。通常,檢索一組候選塊以確定所述組候選塊中的最佳匹配候選塊。然而,這些假設(shè)不一定對(duì)于“非自然”視頻數(shù)據(jù)保持成立。非自然視頻數(shù)據(jù)可通常指代計(jì)算機(jī)產(chǎn)生的視頻數(shù)據(jù),例如(但不限于)屏幕內(nèi)容和/或文本為主的視頻數(shù)據(jù)。在非自然視頻數(shù)據(jù)中,與候選塊相關(guān)聯(lián)的誤差可不隨著接近最佳匹配候選塊而減小。由此,針對(duì)自然視頻數(shù)據(jù)設(shè)計(jì)的運(yùn)動(dòng)估計(jì)技術(shù)可對(duì)于非自然視頻數(shù)據(jù)的運(yùn)動(dòng)估計(jì)并不有效。
本發(fā)明的某些實(shí)施例解決在應(yīng)用到非自然視頻數(shù)據(jù)時(shí)常規(guī)運(yùn)動(dòng)估計(jì)可引入的以上指示的問(wèn)題。舉例來(lái)說(shuō),在非自然視頻數(shù)據(jù)中,用于使候選塊匹配到當(dāng)前塊的誤差的大部分可集中在候選塊的幾個(gè)樣本上。因此,在至少一個(gè)實(shí)施例中,通過(guò)僅基于候選塊的幾個(gè)樣本近似所述誤差來(lái)實(shí)施利用提早退出機(jī)制的多級(jí)近似誤差成本計(jì)算。在另一實(shí)施例中,在移動(dòng)菱形樣式中執(zhí)行經(jīng)修改初始搜索,因?yàn)樵诜亲匀灰曨l數(shù)據(jù)中,與候選塊相關(guān)聯(lián)的誤差可不隨著接近最佳匹配候選塊而減小。在又一實(shí)施例中,執(zhí)行經(jīng)修改提早跳過(guò)檢測(cè),因?yàn)槌R?guī)測(cè)試可能對(duì)于非自然視頻數(shù)據(jù)太具侵略性。因此,根據(jù)至少一個(gè)實(shí)施例,可針對(duì)非自然視頻實(shí)施快速運(yùn)動(dòng)估計(jì),與常規(guī)方法相比具有改進(jìn)的速度和效率。
在以下描述中,描述與某些實(shí)施例相關(guān)的H.264/高級(jí)視頻譯碼(AVC)技術(shù);也論述了HEVC標(biāo)準(zhǔn)和相關(guān)技術(shù)。雖然本文中在HEVC和/或H.264標(biāo)準(zhǔn)的上下文中描述某些實(shí)施例,但所屬領(lǐng)域的一般技術(shù)人員可了解,本文中揭示的系統(tǒng)和方法可適用于任何合適的視頻譯碼標(biāo)準(zhǔn)。舉例來(lái)說(shuō),本文中所揭示的實(shí)施例可適用于以下標(biāo)準(zhǔn)中的一或多者:國(guó)際電信聯(lián)盟(ITU)電信標(biāo)準(zhǔn)化部門(mén)(ITU-T)H.261、國(guó)際標(biāo)準(zhǔn)化組織/國(guó)際電工委員會(huì)(ISO/IEC)MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也稱(chēng)為ISO/IEC MPEG-4AVC),包含范圍擴(kuò)展。
在許多方面,HEVC通常遵循先前視頻譯碼標(biāo)準(zhǔn)的框架。HEVC中的預(yù)測(cè)的單位不同于特定先前視頻譯碼標(biāo)準(zhǔn)中的預(yù)測(cè)的單位(例如,宏塊)。實(shí)際上,在HEVC中不存在如在某些先前視頻譯碼標(biāo)準(zhǔn)中所理解的宏塊的概念。宏塊由基于四叉樹(shù)方案的分層結(jié)構(gòu)替換,所述分層結(jié)構(gòu)可提供高靈活性和其它可能益處。舉例來(lái)說(shuō),在HEVC方案內(nèi),定義三個(gè)類(lèi)型的塊,例如譯碼單元(CU)、預(yù)測(cè)單元(PU)和變換單元(TU)。CU可指區(qū)分裂的基本單元。可將CU視為類(lèi)似于宏塊的概念,但HEVC不限制CU的最大大小,且可允許遞歸分裂成四個(gè)大小相等的CU以改進(jìn)內(nèi)容適應(yīng)性。PU可被認(rèn)為是幀間/幀內(nèi)預(yù)測(cè)的基本單元,且單個(gè)PU可含有多個(gè)任意形狀分區(qū)以有效地對(duì)不規(guī)則圖像樣式進(jìn)行譯碼。TU可認(rèn)為是變換的基本單元??瑟?dú)立于PU界定TU;然而,TU的大小可限于TU所屬的CU的大小。此塊結(jié)構(gòu)分離為三個(gè)不同概念可允許根據(jù)單元的相應(yīng)作用來(lái)優(yōu)化每一單元,這可得到改進(jìn)的譯碼效率。
視頻譯碼標(biāo)準(zhǔn)
例如視頻圖像、TV圖像、靜態(tài)圖像或由錄像機(jī)或計(jì)算機(jī)產(chǎn)生的圖像等數(shù)字圖像可包含布置成水平和垂直線的像素或樣本。單個(gè)圖像中的像素的數(shù)目通常有數(shù)萬(wàn)個(gè)。每一像素通常含有明度和色度信息。在無(wú)壓縮的情況下,將從圖像編碼器傳達(dá)到圖像解碼器的信息的絕對(duì)量將使實(shí)時(shí)圖像發(fā)射變得不可行。為了減少待發(fā)射的信息的量,已開(kāi)發(fā)出例如JPEG、MPEG及H.263標(biāo)準(zhǔn)等數(shù)個(gè)不同壓縮方法。
視頻譯碼標(biāo)準(zhǔn)包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也被稱(chēng)作ISO/IEC MPEG-4AVC),以及包含范圍擴(kuò)展的HEVC。
另外,ITU-T視頻譯碼專(zhuān)家組(VCEG)和ISO/IEC MPEG的視頻譯碼聯(lián)合協(xié)作小組(JCT-VC)已經(jīng)開(kāi)發(fā)視頻譯碼標(biāo)準(zhǔn)(即,HEVC)。對(duì)HEVC草案10的完全引用為Bross等人的文獻(xiàn)JCTVC-L1003,“高效率視頻譯碼(HEVC)文本說(shuō)明書(shū)草案10”,ITU-T SG16WP3與ISO/IEC JTC1/SC29/WG11的關(guān)于視頻譯碼的聯(lián)合合作小組(JCT-VC),第12次會(huì)議:瑞士日內(nèi)瓦,2013年1月14日至2013年1月23日。到HEVC的范圍擴(kuò)展也正由JCT-VC開(kāi)發(fā)。
視頻譯碼系統(tǒng)
下文參考附圖更充分地描述新穎系統(tǒng)、設(shè)備及方法的各個(gè)方面。然而,本發(fā)明可以許多不同形式來(lái)體現(xiàn),且不應(yīng)將其解釋為限于貫穿本發(fā)明所呈現(xiàn)的任何特定結(jié)構(gòu)或功能。相反地,提供這些方面以使得本發(fā)明將透徹且完整,并且將向所屬領(lǐng)域的技術(shù)人員充分傳達(dá)本發(fā)明的范圍?;诒疚闹械慕淌荆鶎兕I(lǐng)域的技術(shù)人員應(yīng)了解,本發(fā)明的范圍既定涵蓋無(wú)論是獨(dú)立于本發(fā)明的任何其它方面而實(shí)施還是與之組合而實(shí)施的本文中所揭示的新穎系統(tǒng)、設(shè)備及方法的任何方面。舉例來(lái)說(shuō),可以使用本文中所闡述的任何數(shù)目個(gè)方面來(lái)實(shí)施設(shè)備或?qū)嵺`方法。另外,本發(fā)明的范圍既定涵蓋使用除本文中所闡述的本發(fā)明的各種方面之外的或不同于本文中所闡述的本發(fā)明的各種方面的其它結(jié)構(gòu)、功能性或結(jié)構(gòu)與功能性來(lái)實(shí)踐的此設(shè)備或方法。應(yīng)理解,可通過(guò)權(quán)利要求的一或多個(gè)要素來(lái)體現(xiàn)本文中所揭示的任何方面。
盡管本文描述了特定方面,但這些方面的許多變化及排列落在本發(fā)明的范圍內(nèi)。盡管提及了優(yōu)選方面的一些益處及優(yōu)點(diǎn),但本發(fā)明的范圍不希望限于特定益處、用途或目標(biāo)。而是,本發(fā)明的方面既定廣泛地適用于不同無(wú)線技術(shù)、系統(tǒng)配置、網(wǎng)絡(luò)及發(fā)射協(xié)議,其中的一些是借助于實(shí)例而在圖中以及在優(yōu)選方面的以下描述中說(shuō)明。具體實(shí)施方式和圖式僅說(shuō)明本發(fā)明,而不是限制由所附權(quán)利要求書(shū)及其等效物界定的本發(fā)明的范圍。
附圖說(shuō)明實(shí)例。由附圖中的參考標(biāo)號(hào)指示的元件對(duì)應(yīng)于在以下描述中由相同參考標(biāo)號(hào)指示的元件。在本發(fā)明中,具有以序數(shù)詞(例如,“第一”、“第二”、“第三”等)開(kāi)始的名稱(chēng)的元件不一定暗示所述元件具有特定次序。而是,此些序數(shù)詞僅用于指代相同或類(lèi)似類(lèi)型的不同元件。
圖1A為說(shuō)明可利用根據(jù)本發(fā)明中所描述的方面的技術(shù)的實(shí)例視頻譯碼系統(tǒng)10的框圖。如本文中所描述地使用,術(shù)語(yǔ)“視頻譯碼器”或“譯碼器”一般指視頻編碼器及視頻解碼器兩者。在本發(fā)明中,術(shù)語(yǔ)“視頻譯碼”或“譯碼”可一般地指代視頻編碼和視頻解碼。除了視頻編碼器和視頻解碼器外,本申請(qǐng)案中描述的方面可擴(kuò)展到其它相關(guān)裝置,例如,轉(zhuǎn)碼器(例如,可解碼位流且重新編碼另一位流的裝置)及中間框(例如,可修改、變換及/或另外操縱位流的裝置)。
如圖1A中所示,視頻譯碼系統(tǒng)10包含源裝置12,其產(chǎn)生將在稍后時(shí)間由目的地裝置14解碼的經(jīng)編碼視頻數(shù)據(jù)。在圖1A的實(shí)例中,源裝置12和目的地裝置14構(gòu)成單獨(dú)裝置。然而,應(yīng)注意,源裝置12和目的地模塊14可在同一裝置上或?yàn)橥谎b置的一部分,如在圖1B的實(shí)例中所展示。
再次參考圖1A,源裝置12和目的地裝置14可分別包括廣泛范圍的裝置中的任一者,包含臺(tái)式計(jì)算機(jī)、筆記本(例如,膝上型)計(jì)算機(jī)、平板計(jì)算機(jī)、機(jī)頂盒、電話手持機(jī)(例如,所謂的“智能”電話)、所謂的“智能”板、電視機(jī)、相機(jī)、顯示裝置、數(shù)字媒體播放器、視頻游戲控制臺(tái)、視頻串流裝置等等。在各種實(shí)施例中,源裝置12和目的地裝置14可經(jīng)裝備以用于無(wú)線通信。
目的地裝置14可經(jīng)由鏈路16接收待解碼的經(jīng)編碼視頻數(shù)據(jù)。鏈路16可包括能夠?qū)⒔?jīng)編碼視頻數(shù)據(jù)從源裝置12移動(dòng)到目的地裝置14的任何類(lèi)型的媒體或裝置。在圖1A的實(shí)例中,鏈路16可包括使得源裝置12能夠?qū)崟r(shí)將經(jīng)編碼視頻數(shù)據(jù)發(fā)射到目的地裝置14的通信媒體??筛鶕?jù)通信標(biāo)準(zhǔn)(例如,無(wú)線通信協(xié)議)調(diào)制經(jīng)編碼的視頻數(shù)據(jù),并將其發(fā)射到目的地裝置14。通信媒體可包括任何無(wú)線或有線通信媒體,例如射頻(RF)頻譜或一或多個(gè)物理發(fā)射線。通信媒體可形成基于包的網(wǎng)絡(luò)(例如,局域網(wǎng)、廣域網(wǎng)或全球網(wǎng)絡(luò),例如因特網(wǎng))的部分。通信媒體可包含路由器、交換機(jī)、基站或可用于促進(jìn)從源裝置12到目的地裝置14的通信的任一其它設(shè)備。
或者,經(jīng)編碼數(shù)據(jù)可從輸出接口22輸出到存儲(chǔ)裝置31(可選地存在)。類(lèi)似地,可由(例如)目的地裝置14的輸入接口28從存儲(chǔ)裝置31存取經(jīng)編碼數(shù)據(jù)。存儲(chǔ)裝置31可包含多種分布式或本地存取數(shù)據(jù)存儲(chǔ)媒體中的任一者,例如硬盤(pán)驅(qū)動(dòng)器、快閃存儲(chǔ)器、易失性或非易失性存儲(chǔ)器,或用于存儲(chǔ)經(jīng)編碼視頻數(shù)據(jù)的任何其它合適的數(shù)字存儲(chǔ)媒體。在另一實(shí)例中,存儲(chǔ)裝置31可對(duì)應(yīng)于文件服務(wù)器或可保持源裝置12產(chǎn)生的經(jīng)編碼視頻的另一中間存儲(chǔ)裝置。目的地裝置14可經(jīng)由串流或下載從存儲(chǔ)裝置31存取所存儲(chǔ)的視頻數(shù)據(jù)。文件服務(wù)器可以為能夠存儲(chǔ)經(jīng)編碼視頻數(shù)據(jù)并將經(jīng)編碼視頻數(shù)據(jù)發(fā)射到目的地裝置14的任何類(lèi)型的服務(wù)器。實(shí)例文件服務(wù)器包含網(wǎng)絡(luò)服務(wù)器(例如,用于網(wǎng)站)、文件傳輸協(xié)議(FTP)服務(wù)器、網(wǎng)絡(luò)附接存儲(chǔ)(NAS)裝置,或本地磁盤(pán)驅(qū)動(dòng)器。目的地裝置14可通過(guò)任何標(biāo)準(zhǔn)數(shù)據(jù)連接(包含因特網(wǎng)連接)來(lái)存取經(jīng)編碼的視頻數(shù)據(jù)。此可包含無(wú)線信道(例如無(wú)線局域網(wǎng)(WLAN)連接)、有線連接(例如數(shù)字訂戶線(DSL)、電纜調(diào)制解調(diào)器等),或適合于存取存儲(chǔ)在文件服務(wù)器上的經(jīng)編碼視頻數(shù)據(jù)的兩者的組合。經(jīng)編碼視頻數(shù)據(jù)從存儲(chǔ)裝置31的發(fā)射可為串流發(fā)射、下載發(fā)射或兩者的組合。
本發(fā)明的技術(shù)不限于無(wú)線應(yīng)用或設(shè)置。所述技術(shù)可應(yīng)用于支持多種多媒體應(yīng)用中的任一者的視頻譯碼,所述多媒體應(yīng)用例如空中電視廣播、有線電視發(fā)射、衛(wèi)星電視發(fā)射、(例如)經(jīng)由因特網(wǎng)的串流視頻發(fā)射(例如,根據(jù)超文本傳送協(xié)議(HTTP)的動(dòng)態(tài)自適應(yīng)串流等)、用于存儲(chǔ)在數(shù)據(jù)存儲(chǔ)媒體上的數(shù)字視頻的編碼、存儲(chǔ)在數(shù)據(jù)存儲(chǔ)媒體上的數(shù)字視頻的解碼,或其它應(yīng)用。在一些實(shí)例中,視頻譯碼系統(tǒng)10可經(jīng)配置以支持單向或雙向視頻發(fā)射以支持例如視頻串流、視頻重放、視頻廣播及/或視頻電話等應(yīng)用。
在圖1A的實(shí)例中,源裝置12包含視頻源18、視頻編碼器20和輸出接口22。在一些情況下,輸出接口22可包含調(diào)制器/解調(diào)器(調(diào)制解調(diào)器)和/或發(fā)射器。在源裝置12中,視頻源18可包含例如視頻俘獲裝置(例如,攝像機(jī))、含有先前所俘獲的視頻的視頻存檔、用于從視頻內(nèi)容提供者接收視頻的視頻饋入接口和/或用于產(chǎn)生計(jì)算機(jī)圖形數(shù)據(jù)以作為源視頻的計(jì)算機(jī)圖形系統(tǒng),或此類(lèi)源的組合等源。作為一個(gè)實(shí)例,如果視頻源18是攝像機(jī),那么源裝置12和目的地裝置14可形成所謂的“相機(jī)電話”或“視頻電話”,如圖1B的實(shí)例中所說(shuō)明。然而,本發(fā)明中所描述的技術(shù)一般來(lái)說(shuō)可適用于視頻譯碼,且可應(yīng)用于無(wú)線和/或有線應(yīng)用。
可由視頻編碼器20對(duì)所俘獲、預(yù)俘獲或計(jì)算機(jī)產(chǎn)生的視頻進(jìn)行編碼??山?jīng)由源裝置12的輸出接口22將經(jīng)編碼視頻數(shù)據(jù)發(fā)射到目的地裝置14。還可(或替代地)將經(jīng)編碼視頻數(shù)據(jù)存儲(chǔ)到存儲(chǔ)裝置31上以用于稍后由目的地裝置14或其它裝置存取以用于解碼和/或重放。圖1A和1B中說(shuō)明的視頻編碼器20可包括圖2中說(shuō)明的視頻編碼器20或本文中所描述的任何其它視頻編碼器。
在圖1A的實(shí)例中,目的地裝置14包含輸入接口28、視頻解碼器30和顯示裝置32。在一些情況下,輸入接口28可包含接收器和/或調(diào)制解調(diào)器。目的地裝置14的輸入接口28可經(jīng)由鏈路16和/或從存儲(chǔ)裝置31接收經(jīng)編碼視頻數(shù)據(jù)。經(jīng)由鏈路16傳送或在存儲(chǔ)裝置31上提供的經(jīng)編碼視頻數(shù)據(jù)可包含由視頻編碼器20所產(chǎn)生的多種語(yǔ)法元素以供由例如視頻解碼器30等視頻解碼器用于解碼視頻數(shù)據(jù)。此類(lèi)語(yǔ)法元素可與在通信媒體上發(fā)射、存儲(chǔ)于存儲(chǔ)媒體上或存儲(chǔ)文件服務(wù)器的經(jīng)編碼視頻數(shù)據(jù)包含在一起。圖1A和1B中說(shuō)明的視頻解碼器30可包括圖3中說(shuō)明的視頻解碼器30或本文中所描述的任何其它視頻解碼器。
顯示裝置32可與目的地裝置14集成或在目的地裝置14外部。在一些實(shí)例中,目的地裝置14可包含集成顯示裝置,并且還經(jīng)配置以與外部顯示裝置介接。在其它實(shí)例中,目的地裝置14可為顯示裝置。一般來(lái)說(shuō),顯示裝置32將經(jīng)解碼視頻數(shù)據(jù)顯示給用戶,且可包括多種顯示裝置中的任一者,例如液晶顯示器(LCD)、等離子體顯示器、有機(jī)發(fā)光二極管(OLED)顯示器或另一類(lèi)型的顯示裝置。
在相關(guān)方面中,圖1B展示實(shí)例視頻譯碼系統(tǒng)10′,其中源裝置12和目的地裝置14在裝置11上或?yàn)檠b置11的一部分。裝置11可為電話手持機(jī),例如“智能”電話或類(lèi)似物。裝置11可包含與源裝置12和目的地裝置14可操作通信的控制器/處理器裝置13(可選地存在)。圖1B的視頻譯碼系統(tǒng)10′及其組件在其它方面類(lèi)似于圖1A的視頻譯碼系統(tǒng)10及其組件。
視頻編碼器20和視頻解碼器30可根據(jù)例如HEVC等視頻壓縮標(biāo)準(zhǔn)操作,且可符合HEVC測(cè)試模型(HM)?;蛘?,視頻編碼器20和視頻解碼器30可以根據(jù)其它專(zhuān)有或業(yè)界標(biāo)準(zhǔn)操作,所述標(biāo)準(zhǔn)例如ITU-T H.264標(biāo)準(zhǔn)(或者被稱(chēng)作MPEG-4第10部分AVC),或此類(lèi)標(biāo)準(zhǔn)的擴(kuò)展。但是,本發(fā)明的技術(shù)不限于任何特定譯碼標(biāo)準(zhǔn)。視頻壓縮標(biāo)準(zhǔn)的其它實(shí)例包含MPEG-2和ITU-T H.263。
盡管圖1A和1B的實(shí)例中未展示,但視頻編碼器20和視頻解碼器30可各自與音頻編碼器和解碼器集成,且可包含適當(dāng)?shù)腗UX-DEMUX單元或其它硬件和軟件以處理共同數(shù)據(jù)流或單獨(dú)數(shù)據(jù)流中的音頻和視頻兩者的編碼。在一些實(shí)例中,如果適用的話,那么MUX-DEMUX單元可以符合ITU H.223多路復(fù)用器協(xié)議,或例如用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等其它協(xié)議。
視頻編碼器20和視頻解碼器30各自可實(shí)施為多種合適的編碼器電路中的任一者,例如一或多個(gè)微處理器、數(shù)字信號(hào)處理器(DSP)、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、離散邏輯、軟件、硬件、固件或其任何組合。當(dāng)部分地用軟件實(shí)施所述技術(shù)時(shí),裝置可將用于軟件的指令存儲(chǔ)在合適的非暫時(shí)性計(jì)算機(jī)可讀媒體中且在硬件中使用一或多個(gè)處理器執(zhí)行所述指令以執(zhí)行本發(fā)明的技術(shù)。視頻編碼器20和視頻解碼器30中的每一者可包含在一或多個(gè)編碼器或解碼器中,所述編碼器或解碼器中的任一者可集成為相應(yīng)裝置中的組合式編碼器/解碼器的部分。
視頻譯碼過(guò)程
如上文簡(jiǎn)要提及,視頻編碼器20編碼視頻數(shù)據(jù)。視頻數(shù)據(jù)可包括一或多個(gè)圖片。圖片中的每一者為形成視頻的部分的靜態(tài)圖像。在一些情況下,圖片可被稱(chēng)作視頻“幀”。當(dāng)視頻編碼器20對(duì)視頻數(shù)據(jù)進(jìn)行編碼時(shí),視頻編碼器20可產(chǎn)生位流。位流可包含形成視頻數(shù)據(jù)的經(jīng)譯碼表示的一連串位。位流可包含經(jīng)譯碼圖片和相關(guān)聯(lián)的數(shù)據(jù)。經(jīng)譯碼的圖片是圖片的經(jīng)譯碼的表示。
為了產(chǎn)生位流,視頻編碼器20可對(duì)視頻數(shù)據(jù)中的每一圖片執(zhí)行編碼操作。當(dāng)視頻編碼器20對(duì)圖片執(zhí)行編碼操作時(shí),視頻編碼器20可產(chǎn)生一系列經(jīng)譯碼圖片和相關(guān)聯(lián)數(shù)據(jù)。相關(guān)聯(lián)數(shù)據(jù)可包含視頻參數(shù)集(VPS)、序列參數(shù)集(SPS)、圖片參數(shù)集(PPS)、自適應(yīng)參數(shù)集(APS)和其它語(yǔ)法結(jié)構(gòu)。SPS可以含有適用于零個(gè)或多于零個(gè)的圖片序列的參數(shù)。PPS可含有適用于零或更多圖片的參數(shù)。APS可含有適用于零個(gè)或更多圖片的參數(shù)。APS中的參數(shù)可為比PPS中的參數(shù)更可能改變的參數(shù)。
為了產(chǎn)生經(jīng)譯碼圖片,視頻編碼器20可將圖片分割成大小相等的視頻塊。視頻塊可為樣本的二維陣列。視頻塊中的每一者與樹(shù)塊相關(guān)聯(lián)。在一些情況下,樹(shù)塊可被稱(chēng)作最大譯碼單元(LCU)。HEVC的樹(shù)塊可廣泛類(lèi)似于例如H.264/AVC等先前標(biāo)準(zhǔn)的宏塊。然而,樹(shù)塊不必限于特定大小,且可包含一或多個(gè)譯碼單元(CU)。視頻編碼器20可使用四叉樹(shù)分割來(lái)將樹(shù)塊的視頻塊分割成與CU相關(guān)聯(lián)的視頻塊(因此名稱(chēng)為“樹(shù)塊”)。
在一些實(shí)例中,視頻編碼器20可將圖片分割成多個(gè)切片。切片中的每一者可包含整數(shù)數(shù)目個(gè)CU。在一些情況下,一個(gè)切片包括整數(shù)數(shù)目個(gè)樹(shù)塊。在其它情況下,切片的邊界可在樹(shù)塊內(nèi)。
作為對(duì)圖片執(zhí)行編碼操作的部分,視頻編碼器20可對(duì)圖片的每一切片執(zhí)行編碼操作。當(dāng)視頻編碼器20對(duì)切片執(zhí)行編碼操作時(shí),視頻編碼器20可產(chǎn)生與切片相關(guān)聯(lián)的經(jīng)編碼數(shù)據(jù)。與切片相關(guān)聯(lián)的經(jīng)編碼數(shù)據(jù)可被稱(chēng)為“經(jīng)譯碼切片”。
為產(chǎn)生經(jīng)譯碼切片,視頻編碼器20可對(duì)切片中的每一樹(shù)塊執(zhí)行編碼操作。當(dāng)視頻編碼器20對(duì)樹(shù)塊執(zhí)行編碼操作時(shí),視頻編碼器20可產(chǎn)生經(jīng)譯碼樹(shù)塊。經(jīng)譯碼樹(shù)塊可包括表示樹(shù)塊的經(jīng)編碼型式的數(shù)據(jù)。
當(dāng)視頻編碼器20產(chǎn)生經(jīng)譯碼切片時(shí),視頻編碼器20可根據(jù)光柵掃描次序?qū)η衅械臉?shù)塊執(zhí)行編碼操作(例如,編碼)。舉例來(lái)說(shuō),視頻編碼器20可按如下次序來(lái)對(duì)切片的樹(shù)塊進(jìn)行編碼:跨越切片中的樹(shù)塊的最頂行從左到右進(jìn)行,接著跨越樹(shù)塊的下一較低行從左到右進(jìn)行,以此類(lèi)推,直到視頻編碼器20已對(duì)切片中的樹(shù)塊的每一者進(jìn)行了編碼為止。
作為根據(jù)光柵掃描次序編碼樹(shù)塊的結(jié)果,可已編碼在給定樹(shù)塊的上方和左邊的樹(shù)塊,但尚未編碼在給定樹(shù)塊的下方和右邊的樹(shù)塊。因此,當(dāng)對(duì)給定樹(shù)塊進(jìn)行編碼時(shí),視頻編碼器20可能能夠存取通過(guò)對(duì)給定樹(shù)塊的上方和左邊的樹(shù)塊進(jìn)行編碼而產(chǎn)生的信息。然而,當(dāng)編碼給定樹(shù)塊時(shí),視頻編碼器20可能不能夠存取通過(guò)編碼在給定樹(shù)塊的下方和右邊的樹(shù)塊而產(chǎn)生的信息。
為了產(chǎn)生經(jīng)譯碼樹(shù)塊,視頻編碼器20可對(duì)樹(shù)塊的視頻塊遞歸地執(zhí)行四叉樹(shù)分割以將視頻塊劃分為逐漸變小的視頻塊。較小視頻塊中的每一者可與不同CU相關(guān)聯(lián)。舉例來(lái)說(shuō),視頻編碼器20可將樹(shù)塊的視頻塊分割成四個(gè)大小相等的子塊、將所述子塊中的一或多者分割成四個(gè)大小相等的子子塊(sub-sub-block),以此類(lèi)推。經(jīng)分割的CU可為其視頻塊被分割成與其它CU相關(guān)聯(lián)的視頻塊的CU。未分割CU可為其視頻塊未被分割成與其它CU相關(guān)聯(lián)的視頻塊的CU。
位流中的一或多個(gè)語(yǔ)法元素可指示視頻編碼器20可分割樹(shù)塊的視頻塊的最大次數(shù)。CU的視頻塊在形狀上可為正方形。CU的視頻塊的大小(例如,CU的大小)范圍可從8x8像素直到具有最大64x64個(gè)像素或更大的樹(shù)塊的視頻塊的大小(例如,樹(shù)塊的大小)。
視頻編碼器20可根據(jù)z掃描次序?qū)?shù)塊的每一CU執(zhí)行編碼操作(例如,編碼)。換句話說(shuō),視頻編碼器20可將左上CU、右上CU、左下CU和接著右下CU按此次序編碼。當(dāng)視頻編碼器20對(duì)經(jīng)分割的CU執(zhí)行編碼操作時(shí),視頻編碼器20可根據(jù)z掃描次序?qū)εc經(jīng)分割的CU的視頻塊的子塊相關(guān)聯(lián)的CU進(jìn)行編碼。換句話說(shuō),視頻編碼器20可對(duì)與左上子塊相關(guān)聯(lián)的CU、與右上子塊相關(guān)聯(lián)的CU、與左下子塊相關(guān)聯(lián)的CU,且接著是與右下子塊相關(guān)聯(lián)的CU按所述次序進(jìn)行編碼。
作為根據(jù)z掃描次序編碼樹(shù)塊的CU的結(jié)果,可已編碼在給定CU的上方、左上方、右上方、左邊和左下方的CU。尚未對(duì)給定CU的右下方的CU進(jìn)行編碼。因此,當(dāng)對(duì)給定CU進(jìn)行編碼時(shí),視頻編碼器20可能能夠存取通過(guò)對(duì)與給定CU相鄰的一些CU進(jìn)行編碼而產(chǎn)生的信息。然而,當(dāng)對(duì)給定CU進(jìn)行編碼時(shí),視頻編碼器20可能不能夠存取通過(guò)對(duì)與給定CU相鄰的其它CU進(jìn)行編碼而產(chǎn)生的信息。
當(dāng)視頻編碼器20編碼未經(jīng)分割CU時(shí),視頻編碼器20可產(chǎn)生所述CU的一或多個(gè)預(yù)測(cè)單元(PU)。CU的PU中的每一者可與CU的視頻塊內(nèi)的不同視頻塊相關(guān)聯(lián)。視頻編碼器20可產(chǎn)生用于CU的每一PU的經(jīng)預(yù)測(cè)視頻塊。PU的經(jīng)預(yù)測(cè)視頻塊可為樣本塊。視頻編碼器20可使用幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)來(lái)產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。
當(dāng)視頻編碼器20使用幀內(nèi)預(yù)測(cè)來(lái)產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊時(shí),視頻編碼器20可基于與PU相關(guān)聯(lián)的圖片的經(jīng)解碼樣本來(lái)產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。如果視頻編碼器20使用幀內(nèi)預(yù)測(cè)來(lái)產(chǎn)生CU的PU的經(jīng)預(yù)測(cè)視頻塊,那么CU為經(jīng)幀內(nèi)預(yù)測(cè)的CU。當(dāng)視頻編碼器20使用幀間預(yù)測(cè)來(lái)產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊時(shí),視頻編碼器20可基于不同于與PU相關(guān)聯(lián)的圖片的一或多個(gè)圖片的經(jīng)解碼樣本而產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。如果視頻編碼器20使用幀間預(yù)測(cè)來(lái)產(chǎn)生CU的PU的經(jīng)預(yù)測(cè)視頻塊,那么所述CU為經(jīng)幀間預(yù)測(cè)CU。
此外,當(dāng)視頻編碼器20使用幀間預(yù)測(cè)來(lái)產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊時(shí),視頻編碼器20可產(chǎn)生PU的運(yùn)動(dòng)信息。PU的運(yùn)動(dòng)信息可指示PU的一或多個(gè)參考?jí)K。PU的每一參考?jí)K可為參考圖片內(nèi)的視頻塊。參考圖片可為除與PU相關(guān)聯(lián)的圖片以外的圖片。在一些情況下,PU的參考?jí)K也可被稱(chēng)作PU的“參考樣本”。視頻編碼器20可基于PU的參考?jí)K產(chǎn)生所述PU的經(jīng)預(yù)測(cè)視頻塊。
在視頻編碼器20產(chǎn)生用于CU的一或多個(gè)PU的經(jīng)預(yù)測(cè)視頻塊之后,視頻編碼器20可基于用于CU的所述PU的經(jīng)預(yù)測(cè)視頻塊產(chǎn)生所述CU的殘余數(shù)據(jù)。CU的殘余數(shù)據(jù)可指示用于CU的PU的經(jīng)預(yù)測(cè)視頻塊中的樣本與CU的原始視頻塊之間的差異。
此外,作為對(duì)未分割的CU執(zhí)行編碼操作的部分,視頻編碼器20可對(duì)CU的殘余數(shù)據(jù)執(zhí)行遞歸四叉樹(shù)分割以將CU的殘余數(shù)據(jù)分割成與CU的變換單元(TU)相關(guān)聯(lián)的一或多個(gè)殘余數(shù)據(jù)塊(例如,殘余視頻塊)。CU的每一TU可與不同殘余視頻塊相關(guān)聯(lián)。
視頻編碼器20可將一或多個(gè)變換應(yīng)用到與TU相關(guān)聯(lián)的殘余視頻塊以產(chǎn)生與TU相關(guān)聯(lián)的變換系數(shù)塊(例如,變換系數(shù)塊)。在概念上,變換系數(shù)塊可為變換系數(shù)的二維(2D)矩陣。
在產(chǎn)生變換系數(shù)塊之后,視頻編碼器20可對(duì)所述變換系數(shù)塊執(zhí)行量化過(guò)程。量化總體上是指對(duì)變換系數(shù)進(jìn)行量化以可能減少用以表示變換系數(shù)的數(shù)據(jù)的量從而提供進(jìn)一步壓縮的過(guò)程。量化過(guò)程可減少與變換系數(shù)中的一些或全部相關(guān)聯(lián)的位深度。例如,可在量化期間將n位變換系數(shù)向下舍入到m位變換系數(shù),其中n大于m。
視頻編碼器20可使每一CU與量化參數(shù)(QP)值相關(guān)聯(lián)。與CU相關(guān)聯(lián)的QP值可確定視頻編碼器20如何對(duì)與CU相關(guān)聯(lián)的變換系數(shù)塊進(jìn)行量化。視頻編碼器20可通過(guò)調(diào)整與CU相關(guān)聯(lián)的QP值來(lái)調(diào)整應(yīng)用于與CU相關(guān)聯(lián)的變換系數(shù)塊的量化的程度。
在視頻編碼器20量化變換系數(shù)塊之后,視頻編碼器20可產(chǎn)生表示經(jīng)量化變換系數(shù)塊中的變換系數(shù)的語(yǔ)法元素集。視頻編碼器20可將例如上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(CABAC)操作等熵編碼操作應(yīng)用于這些語(yǔ)法元素中的一些。還可使用例如上下文自適應(yīng)可變長(zhǎng)度譯碼(CAVLC)、概率區(qū)間分割熵(PIPE)譯碼或其它二進(jìn)制算術(shù)譯碼等其它熵譯碼技術(shù)。
由視頻編碼器20產(chǎn)生的位流可包含一系列網(wǎng)絡(luò)抽象層(NAL)單元。所述NAL單元中的每一者可為含有NAL單元中的數(shù)據(jù)類(lèi)型的指示及含有數(shù)據(jù)的字節(jié)的語(yǔ)法結(jié)構(gòu)。舉例來(lái)說(shuō),NAL單元可含有表示視頻參數(shù)集、序列參數(shù)集、圖片參數(shù)集、經(jīng)譯碼切片、SEI、存取單元定界符、填充符數(shù)據(jù),或另一類(lèi)型的數(shù)據(jù)的數(shù)據(jù)。NAL單元中的數(shù)據(jù)可包含各種語(yǔ)法結(jié)構(gòu)。
視頻解碼器30可接收由視頻編碼器20產(chǎn)生的位流。位流可包含由視頻編碼器20編碼的視頻數(shù)據(jù)的經(jīng)譯碼表示。當(dāng)視頻解碼器30接收到位流時(shí),視頻解碼器30可對(duì)位流執(zhí)行解析操作。當(dāng)視頻解碼器30執(zhí)行解析操作時(shí),視頻解碼器30可從位流提取語(yǔ)法元素。視頻解碼器30可基于從位流提取的語(yǔ)法元素而重建視頻數(shù)據(jù)的圖片?;谡Z(yǔ)法元素而重建視頻數(shù)據(jù)的過(guò)程一般可與由視頻編碼器20執(zhí)行以產(chǎn)生語(yǔ)法元素的過(guò)程互逆。
在視頻解碼器30提取與CU相關(guān)聯(lián)的語(yǔ)法元素之后,視頻解碼器30可基于所述語(yǔ)法元素產(chǎn)生用于CU的PU的經(jīng)預(yù)測(cè)視頻塊。另外,視頻解碼器30可對(duì)與CU的TU相關(guān)聯(lián)的變換系數(shù)塊進(jìn)行逆量化。視頻解碼器30可對(duì)變換系數(shù)塊執(zhí)行逆變換以重建與CU的TU相關(guān)聯(lián)的殘余視頻塊。在產(chǎn)生經(jīng)預(yù)測(cè)視頻塊且重建殘余視頻塊之后,視頻解碼器30可基于經(jīng)預(yù)測(cè)視頻塊及殘余視頻塊重建CU的視頻塊。以此方式,視頻解碼器30可基于位流中的語(yǔ)法元素重建CU的視頻塊。
視頻編碼器
圖2為說(shuō)明可實(shí)施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻編碼器20的實(shí)例的框圖。視頻編碼器20可經(jīng)配置以處理視頻幀的單層(例如,針對(duì)HEVC)。此外,視頻編碼器20可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的任一者或全部。在一些實(shí)例中,本發(fā)明中描述的技術(shù)可在視頻編碼器20的各種組件之間共享。在一些實(shí)例中,另外或替代地,處理器(未圖示)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的任一者或全部。
出于解釋的目的,本發(fā)明在HEVC譯碼的上下文中描述視頻編碼器20。然而,本發(fā)明的技術(shù)可以適用于其它譯碼標(biāo)準(zhǔn)或方法。圖2中所描繪的實(shí)例是針對(duì)單層編解碼器。然而,在某些實(shí)施例中,視頻編碼器20中的一些或全部可經(jīng)復(fù)制用于處理多層編解碼器。
視頻編碼器20可對(duì)視頻切片內(nèi)的視頻塊執(zhí)行幀內(nèi)譯碼及幀間譯碼。幀內(nèi)譯碼依賴(lài)于空間預(yù)測(cè)來(lái)減小或移除給定視頻幀或圖片內(nèi)的視頻中的空間冗余。幀間譯碼依靠時(shí)間預(yù)測(cè)來(lái)減少或移除視頻序列的鄰近幀或圖片內(nèi)的視頻中的時(shí)間冗余。幀內(nèi)模式(I模式)可指代若干基于空間的譯碼模式中的任一者。例如單向預(yù)測(cè)(P模式)或雙向預(yù)測(cè)(B模式)等幀間模式可指代若干基于時(shí)間的譯碼模式中的任一者。
在圖2的實(shí)例中,視頻編碼器20包含多個(gè)功能組件。視頻編碼器20的功能組件包含預(yù)測(cè)處理單元100、殘余產(chǎn)生單元102、變換處理單元104、量化單元106、逆量化單元108、逆變換單元110、重建單元112、濾波器單元113、經(jīng)解碼圖片緩沖器114和熵編碼單元116。預(yù)測(cè)處理單元100包含幀間預(yù)測(cè)單元121、運(yùn)動(dòng)估計(jì)單元122、運(yùn)動(dòng)補(bǔ)償單元124、幀內(nèi)預(yù)測(cè)單元126和層間預(yù)測(cè)單元128。在其它實(shí)例中,視頻編碼器20可包含更多、更少或不同功能組件。此外,運(yùn)動(dòng)估計(jì)單元122與運(yùn)動(dòng)補(bǔ)償單元124可高度集成,但出于解釋的目的而在圖2的實(shí)例中單獨(dú)地表示。
視頻編碼器20可接收視頻數(shù)據(jù)。視頻編碼器20可從各種源接收視頻數(shù)據(jù)。舉例來(lái)說(shuō),視頻編碼器20可從視頻源18(例如,圖1A或1B中所展示)或另一源接收視頻數(shù)據(jù)。視頻數(shù)據(jù)可表示一系列圖片。為編碼視頻數(shù)據(jù),視頻編碼器20可對(duì)圖片中的每一者執(zhí)行編碼操作。作為對(duì)圖片執(zhí)行編碼操作的部分,視頻編碼器20可對(duì)圖片的每一切片執(zhí)行編碼操作。作為對(duì)切片執(zhí)行編碼操作的部分,視頻編碼器20可對(duì)切片中的樹(shù)塊執(zhí)行編碼操作。
作為對(duì)樹(shù)塊執(zhí)行編碼操作的部分,預(yù)測(cè)處理單元100可對(duì)樹(shù)塊的視頻塊執(zhí)行四叉樹(shù)分割以將所述視頻塊劃分成逐漸變小的視頻塊。較小視頻塊中的每一者可與不同CU相關(guān)聯(lián)。舉例來(lái)說(shuō),預(yù)測(cè)處理單元100可將樹(shù)塊的視頻塊分割成四個(gè)相等大小的子塊,將所述子塊中的一或多者分割成四個(gè)相等大小的子子塊,等等。
與CU相關(guān)聯(lián)的視頻塊的大小范圍可從8x8樣本高達(dá)最大64x64像素或更大的樹(shù)塊大小。在本發(fā)明中,“NxN”和“N乘N”可互換使用來(lái)指代在垂直和水平尺寸方面的視頻塊的樣本尺寸,例如,16x16樣本或16乘16樣本。一般來(lái)說(shuō),16x16視頻塊在垂直方向上具有16個(gè)樣本(y=16),且在水平方向上具有16個(gè)樣本(x=16)。同樣,NxN塊一般在垂直方向上具有N個(gè)樣本,且在水平方向上具有N個(gè)樣本,其中N表示非負(fù)整數(shù)值。
另外,作為對(duì)樹(shù)塊執(zhí)行編碼操作的部分,預(yù)測(cè)處理單元100可產(chǎn)生用于所述樹(shù)塊的階層式四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)。例如,樹(shù)塊可對(duì)應(yīng)于四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)的根節(jié)點(diǎn)。如果預(yù)測(cè)處理單元100將樹(shù)塊的視頻塊分割成四個(gè)子塊,那么根節(jié)點(diǎn)在四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)中具有四個(gè)子節(jié)點(diǎn)。所述子節(jié)點(diǎn)中的每一者對(duì)應(yīng)于與子塊中的一者相關(guān)聯(lián)的CU。如果預(yù)測(cè)處理單元100將子塊中的一者分割成四個(gè)子子塊,那么對(duì)應(yīng)于與子塊相關(guān)聯(lián)的CU的節(jié)點(diǎn)可具有四個(gè)子級(jí)節(jié)點(diǎn),其中的每一者對(duì)應(yīng)于與子子塊中的一者相關(guān)聯(lián)的CU。
四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)的每一節(jié)點(diǎn)可含有對(duì)應(yīng)樹(shù)塊或CU的語(yǔ)法數(shù)據(jù)(例如,語(yǔ)法元素)。舉例來(lái)說(shuō),四叉樹(shù)中的節(jié)點(diǎn)可包含分裂旗標(biāo),其指示對(duì)應(yīng)于所述節(jié)點(diǎn)的CU的視頻塊是否被分割(例如,分裂)成四個(gè)子塊。用于CU的語(yǔ)法元素可遞歸地界定,且可取決于所述CU的視頻塊是否分裂成子塊。視頻塊未被分割的CU可對(duì)應(yīng)于四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)中的葉節(jié)點(diǎn)。經(jīng)譯碼樹(shù)塊可包含基于對(duì)應(yīng)樹(shù)塊的四叉樹(shù)數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)。
視頻編碼器20可對(duì)樹(shù)塊的每一未經(jīng)分割的CU執(zhí)行編碼操作。當(dāng)視頻編碼器20對(duì)未經(jīng)分割的CU執(zhí)行編碼操作時(shí),視頻編碼器20產(chǎn)生表示未經(jīng)分割的CU的經(jīng)編碼表示的數(shù)據(jù)。
作為對(duì)CU執(zhí)行編碼操作的部分,預(yù)測(cè)處理單元100可在CU的一或多個(gè)PU間分割CU的視頻塊。視頻編碼器20和視頻解碼器30可支持各種PU大小。假定特定CU的大小為2Nx2N,視頻編碼器20及視頻解碼器30可支持2Nx2N或NxN的PU大小,及2Nx2N、2NxN、Nx2N、NxN、2NxnU、nLx2N、nRx2N或類(lèi)似的對(duì)稱(chēng)PU大小的幀間預(yù)測(cè)。視頻編碼器20和視頻解碼器30還可支持用于2NxnU、2NxnD、nLx2N和nRx2N的PU大小的不對(duì)稱(chēng)分割。在一些實(shí)例中,預(yù)測(cè)處理單元100可執(zhí)行幾何分割以沿并不按直角與CU的視頻塊的側(cè)會(huì)合的邊界來(lái)在CU的PU間分割CU的視頻塊。
幀間預(yù)測(cè)單元121可對(duì)CU的每一PU執(zhí)行幀間預(yù)測(cè)。幀間預(yù)測(cè)可提供時(shí)間壓縮。為了對(duì)PU執(zhí)行幀間預(yù)測(cè),運(yùn)動(dòng)估計(jì)單元122可產(chǎn)生PU的運(yùn)動(dòng)信息。運(yùn)動(dòng)補(bǔ)償單元124可基于運(yùn)動(dòng)信息和除與CU相關(guān)聯(lián)的圖片(例如,參考圖片)之外的圖片的經(jīng)解碼樣本產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。在本發(fā)明中,由運(yùn)動(dòng)補(bǔ)償單元124產(chǎn)生的經(jīng)預(yù)測(cè)視頻塊可稱(chēng)作經(jīng)幀間預(yù)測(cè)視頻塊。
切片可為I切片、P切片,或B切片。運(yùn)動(dòng)估計(jì)單元122和運(yùn)動(dòng)補(bǔ)償單元124可取決于PU處于I切片、P切片還是B切片中而對(duì)CU的PU執(zhí)行不同操作。在I切片中,所有PU都是經(jīng)幀內(nèi)預(yù)測(cè)。因此,如果PU在I切片中,那么運(yùn)動(dòng)估計(jì)單元122及運(yùn)動(dòng)補(bǔ)償單元124不對(duì)PU執(zhí)行幀間預(yù)測(cè)。
如果PU在P切片中,那么含有所述PU的圖片與被稱(chēng)作“列表0”的參考圖片列表相關(guān)聯(lián)。列表0中的參考圖片中的每一者含有可用于其它圖片的幀間預(yù)測(cè)的樣本。當(dāng)運(yùn)動(dòng)估計(jì)單元122關(guān)于P切片中的PU執(zhí)行運(yùn)動(dòng)估計(jì)操作時(shí),運(yùn)動(dòng)估計(jì)單元122可搜索列表0中的參考圖片以找出PU的參考?jí)K。PU的參考?jí)K可為最緊密對(duì)應(yīng)于PU的視頻塊中的樣本的一組樣本,例如,樣本塊。運(yùn)動(dòng)估計(jì)單元122可使用多種度量來(lái)確定參考圖片中的一組樣本對(duì)應(yīng)于PU的視頻塊中的樣本的緊密程度。例如,運(yùn)動(dòng)估計(jì)單元122可通過(guò)絕對(duì)差總和(SAD)、平方差總和(SSD)或其它差異度量來(lái)確定參考圖片中的一組樣本對(duì)應(yīng)于PU的視頻塊中的樣本的緊密程度。
在識(shí)別出P切片中的PU的參考?jí)K之后,運(yùn)動(dòng)估計(jì)單元122可產(chǎn)生指示列表0中含有參考?jí)K的參考圖片的參考索引,以及指示PU與參考?jí)K之間的空間位移的運(yùn)動(dòng)向量。在各種實(shí)例中,運(yùn)動(dòng)估計(jì)單元122可以不同精確度產(chǎn)生運(yùn)動(dòng)向量。舉例來(lái)說(shuō),運(yùn)動(dòng)估計(jì)單元122可以四分之一樣本精確度、八分之一樣本精確度或其它分?jǐn)?shù)樣本精確度產(chǎn)生運(yùn)動(dòng)向量。在分?jǐn)?shù)樣本精確度的情況下,參考?jí)K值可從參考圖片中的整數(shù)位置樣本值內(nèi)插。運(yùn)動(dòng)估計(jì)單元122可將參考索引及運(yùn)動(dòng)向量輸出為PU的運(yùn)動(dòng)信息。運(yùn)動(dòng)補(bǔ)償單元124可基于由PU的運(yùn)動(dòng)信息識(shí)別的參考?jí)K而產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。
如果PU處于B切片中,那么含有PU的圖片可與被稱(chēng)作“列表0”和“列表1”的兩個(gè)參考圖片列表相關(guān)聯(lián)。在一些實(shí)例中,含有B切片的圖片可與為列表0與列表1的組合的列表組合相關(guān)聯(lián)。
此外,如果PU在B切片中,那么運(yùn)動(dòng)估計(jì)單元122可對(duì)PU執(zhí)行單向預(yù)測(cè)或雙向預(yù)測(cè)。當(dāng)運(yùn)動(dòng)估計(jì)單元122對(duì)PU執(zhí)行單向預(yù)測(cè)時(shí),運(yùn)動(dòng)估計(jì)單元122可搜索列表0或列表1中的參考圖片以找出用于所述PU的參考?jí)K。運(yùn)動(dòng)估計(jì)單元122可隨后產(chǎn)生指示列表0或列表1中的含有參考?jí)K的參考圖片的參考索引和指示PU與參考?jí)K之間的空間位移的運(yùn)動(dòng)向量。運(yùn)動(dòng)估計(jì)單元122可輸出參考索引、預(yù)測(cè)方向指示符和運(yùn)動(dòng)向量作為所述PU的運(yùn)動(dòng)信息。預(yù)測(cè)方向指示符可指示參考索引指示列表0還是列表1中的參考圖片。運(yùn)動(dòng)補(bǔ)償單元124可基于由PU的運(yùn)動(dòng)信息指示的參考?jí)K來(lái)產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。
當(dāng)運(yùn)動(dòng)估計(jì)單元122針對(duì)PU執(zhí)行雙向預(yù)測(cè)時(shí),運(yùn)動(dòng)估計(jì)單元122可搜索列表0中的參考圖片以找到用于所述PU的參考?jí)K,且還可搜索列表1中的參考圖片以找到用于所述PU的另一參考?jí)K。運(yùn)動(dòng)估計(jì)單元122可隨后產(chǎn)生指示列表0和列表1中的含有參考?jí)K的參考圖片的參考索引和指示參考?jí)K與PU之間的空間位移的運(yùn)動(dòng)向量。運(yùn)動(dòng)估計(jì)單元122可輸出PU的參考索引及運(yùn)動(dòng)向量作為PU的運(yùn)動(dòng)信息。運(yùn)動(dòng)補(bǔ)償單元124可基于由PU的運(yùn)動(dòng)信息指示的參考?jí)K而產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊。
在一些情況下,運(yùn)動(dòng)估計(jì)單元122不將PU的運(yùn)動(dòng)信息的完整集合輸出到熵編碼單元116。實(shí)際上,運(yùn)動(dòng)估計(jì)單元122可參考另一PU的運(yùn)動(dòng)信息信令PU的運(yùn)動(dòng)信息。舉例來(lái)說(shuō),運(yùn)動(dòng)估計(jì)單元122可確定PU的運(yùn)動(dòng)信息足夠類(lèi)似于相鄰PU的運(yùn)動(dòng)信息。在此實(shí)例中,運(yùn)動(dòng)估計(jì)單元122可在與PU相關(guān)聯(lián)的語(yǔ)法結(jié)構(gòu)中指示一值,所述值向視頻解碼器30指示PU具有與相鄰PU相同的運(yùn)動(dòng)信息。在另一實(shí)例中,運(yùn)動(dòng)估計(jì)單元122可在與PU相關(guān)聯(lián)的語(yǔ)法結(jié)構(gòu)中識(shí)別相鄰PU和運(yùn)動(dòng)向量差(MVD)。運(yùn)動(dòng)向量差指示PU的運(yùn)動(dòng)向量與所指示的相鄰PU的運(yùn)動(dòng)向量之間的差。視頻解碼器30可使用所指示的相鄰PU的運(yùn)動(dòng)向量和運(yùn)動(dòng)向量差來(lái)確定PU的運(yùn)動(dòng)向量。通過(guò)在信令第二PU的運(yùn)動(dòng)信息時(shí)參考第一PU的運(yùn)動(dòng)信息,視頻編碼器20可能能夠使用較少位信令第二PU的運(yùn)動(dòng)信息。
作為對(duì)CU執(zhí)行編碼操作的部分,幀內(nèi)預(yù)測(cè)單元126可對(duì)CU的PU執(zhí)行幀內(nèi)預(yù)測(cè)。幀內(nèi)預(yù)測(cè)可提供空間壓縮。當(dāng)幀內(nèi)預(yù)測(cè)單元126對(duì)PU執(zhí)行幀內(nèi)預(yù)測(cè)時(shí),幀內(nèi)預(yù)測(cè)單元126可基于同一圖片中的其它PU的經(jīng)解碼樣本來(lái)產(chǎn)生用于PU的預(yù)測(cè)數(shù)據(jù)。用于PU的預(yù)測(cè)數(shù)據(jù)可包含經(jīng)預(yù)測(cè)視頻塊和各種語(yǔ)法元素。幀內(nèi)預(yù)測(cè)單元126可對(duì)I切片、P切片和B切片中的PU執(zhí)行幀內(nèi)預(yù)測(cè)。
為了對(duì)PU執(zhí)行幀內(nèi)預(yù)測(cè),幀內(nèi)預(yù)測(cè)單元126可使用多個(gè)幀內(nèi)預(yù)測(cè)模式以產(chǎn)生用于PU的預(yù)測(cè)數(shù)據(jù)的多個(gè)集合。當(dāng)幀內(nèi)預(yù)測(cè)單元126使用幀內(nèi)預(yù)測(cè)模式來(lái)產(chǎn)生PU的預(yù)測(cè)數(shù)據(jù)的集合時(shí),幀內(nèi)預(yù)測(cè)單元126可在與幀內(nèi)預(yù)測(cè)模式相關(guān)聯(lián)的方向和/或梯度上跨越PU的視頻塊從相鄰PU的視頻塊擴(kuò)展樣本。相鄰PU可在所述PU的上方、右上方、左上方或左側(cè),假定對(duì)于PU、CU和樹(shù)塊采用從左到右、從上到下的編碼次序。幀內(nèi)預(yù)測(cè)單元126可取決于PU的大小而使用各種數(shù)目個(gè)幀內(nèi)預(yù)測(cè)模式,例如33個(gè)方向性幀內(nèi)預(yù)測(cè)模式。
預(yù)測(cè)處理單元100可從由運(yùn)動(dòng)補(bǔ)償單元124針對(duì)PU產(chǎn)生的預(yù)測(cè)數(shù)據(jù)或由幀內(nèi)預(yù)測(cè)單元126針對(duì)PU產(chǎn)生的預(yù)測(cè)數(shù)據(jù)當(dāng)中選擇用于PU的預(yù)測(cè)數(shù)據(jù)。在一些實(shí)例中,預(yù)測(cè)處理單元100基于預(yù)測(cè)數(shù)據(jù)集合的速率/失真度量而選擇PU的預(yù)測(cè)數(shù)據(jù)。
如果預(yù)測(cè)處理單元100選擇由幀內(nèi)預(yù)測(cè)單元126產(chǎn)生的預(yù)測(cè)數(shù)據(jù),那么預(yù)測(cè)處理單元100可信令用以產(chǎn)生用于PU的預(yù)測(cè)數(shù)據(jù)的幀內(nèi)預(yù)測(cè)模式,即,選定幀內(nèi)預(yù)測(cè)模式。預(yù)測(cè)處理單元100可以各種方式信令所選幀內(nèi)預(yù)測(cè)模式。舉例來(lái)說(shuō),有可能所選幀內(nèi)預(yù)測(cè)模式與相鄰PU的幀內(nèi)預(yù)測(cè)模式相同。換句話說(shuō),相鄰PU的幀內(nèi)預(yù)測(cè)模式可為用于當(dāng)前PU的最可能模式。因此,預(yù)測(cè)處理單元100可產(chǎn)生用以指示選定幀內(nèi)預(yù)測(cè)模式與相鄰PU的幀內(nèi)預(yù)測(cè)模式相同的語(yǔ)法元素。
如上文所論述,視頻編碼器20可包含層間預(yù)測(cè)單元128。層間預(yù)測(cè)單元128經(jīng)配置以使用SHVC中可用的一或多個(gè)不同層(例如,基礎(chǔ)或參考層)預(yù)測(cè)當(dāng)前塊(例如,EL中的當(dāng)前塊)。此預(yù)測(cè)可稱(chēng)作層間預(yù)測(cè)。層間預(yù)測(cè)單元128利用預(yù)測(cè)方法來(lái)減少層間冗余,借此改進(jìn)譯碼效率且減少計(jì)算資源要求。層間預(yù)測(cè)的一些實(shí)例可包含層間幀內(nèi)預(yù)測(cè)、層間運(yùn)動(dòng)預(yù)測(cè)及層間殘余預(yù)測(cè)。層間幀內(nèi)預(yù)測(cè)使用基礎(chǔ)層中的協(xié)同定位塊的重建來(lái)預(yù)測(cè)增強(qiáng)層中的當(dāng)前塊。層間運(yùn)動(dòng)預(yù)測(cè)使用基礎(chǔ)層的運(yùn)動(dòng)信息來(lái)預(yù)測(cè)增強(qiáng)層中的運(yùn)動(dòng)信息。層間殘余預(yù)測(cè)使用基礎(chǔ)層的殘余來(lái)預(yù)測(cè)增強(qiáng)層的殘余。
在預(yù)測(cè)處理單元100選擇用于CU的PU的預(yù)測(cè)數(shù)據(jù)之后,殘余產(chǎn)生單元102可通過(guò)從CU的視頻塊減去(例如,由減號(hào)指示)CU的PU的經(jīng)預(yù)測(cè)視頻塊而產(chǎn)生用于CU的殘余數(shù)據(jù)。CU的殘余數(shù)據(jù)可包含對(duì)應(yīng)于CU的視頻塊中的樣本的不同樣本分量的2D殘余視頻塊。舉例來(lái)說(shuō),殘余數(shù)據(jù)可包含對(duì)應(yīng)于CU的PU的經(jīng)預(yù)測(cè)視頻塊中的樣本的明度分量與CU的原始視頻塊中的樣本的明度分量之間的差的殘余視頻塊。另外,CU的殘余數(shù)據(jù)可包含對(duì)應(yīng)于CU的PU的經(jīng)預(yù)測(cè)視頻塊中的樣本的色度分量與CU的原始視頻塊中的樣本的色度分量之間的差的殘余視頻塊。
預(yù)測(cè)處理單元100可執(zhí)行四叉樹(shù)分割以將CU的殘余視頻塊分割成子塊。每一未經(jīng)劃分的殘余視頻塊可與CU的不同TU相關(guān)聯(lián)。與CU的TU相關(guān)聯(lián)的殘余視頻塊的大小及位置可基于或可不基于與CU的PU相關(guān)聯(lián)的視頻塊的大小及位置。被稱(chēng)為“殘余四叉樹(shù)”(RQT)的四叉樹(shù)結(jié)構(gòu)可包含與殘余視頻塊中的每一者相關(guān)聯(lián)的節(jié)點(diǎn)。CU的TU可以對(duì)應(yīng)于RQT的葉節(jié)點(diǎn)。
變換處理單元104可通過(guò)將一或多個(gè)變換應(yīng)用于與CU的每一TU相關(guān)聯(lián)的殘余視頻塊而產(chǎn)生用于所述TU的一或多個(gè)變換系數(shù)塊。變換系數(shù)塊中的每一者可為變換系數(shù)的2D矩陣。變換處理單元104可將各種變換應(yīng)用于與TU相關(guān)聯(lián)的殘余視頻塊。舉例來(lái)說(shuō),變換處理單元104可將離散余弦變換(DCT)、定向變換或概念上類(lèi)似的變換應(yīng)用到與TU相關(guān)聯(lián)的殘余視頻塊。
在變換處理單元104產(chǎn)生與TU相關(guān)聯(lián)的變換系數(shù)塊之后,量化單元106可量化所述變換系數(shù)塊中的變換系數(shù)。量化單元106可基于與CU相關(guān)聯(lián)的QP值而對(duì)與CU的TU相關(guān)聯(lián)的變換系數(shù)塊進(jìn)行量化。
視頻編碼器20可以各種方式使QP值與CU相關(guān)聯(lián)。例如,視頻編碼器20可對(duì)與CU相關(guān)聯(lián)的樹(shù)塊執(zhí)行速率-失真分析。在速率-失真分析中,視頻編碼器20可通過(guò)對(duì)樹(shù)塊執(zhí)行多次編碼操作而產(chǎn)生樹(shù)塊的多個(gè)經(jīng)譯碼表示。當(dāng)視頻編碼器20產(chǎn)生樹(shù)塊的不同經(jīng)編碼表示時(shí),視頻編碼器20可使不同QP值與CU相關(guān)聯(lián)。當(dāng)給定QP值與具有最低位速率和失真度量的樹(shù)塊的經(jīng)譯碼表示中的CU相關(guān)聯(lián)時(shí),視頻編碼器20可信令給定QP值與CU相關(guān)聯(lián)。
逆量化單元108和逆變換單元110可分別將逆量化及逆變換應(yīng)用于變換系數(shù)塊以從變換系數(shù)塊重建殘余視頻塊。重建單元112可將經(jīng)重建的殘余視頻塊添加到來(lái)自由預(yù)測(cè)處理單元100產(chǎn)生的一或多個(gè)經(jīng)預(yù)測(cè)視頻塊的對(duì)應(yīng)樣本,以產(chǎn)生與TU相關(guān)聯(lián)的經(jīng)重建視頻塊。通過(guò)以此方式重建CU的每一TU的視頻塊,視頻編碼器20可重建CU的視頻塊。
在重建單元112重建CU的視頻塊之后,濾波器單元113可執(zhí)行解塊操作以減小與所述CU相關(guān)聯(lián)的視頻塊中的成塊假影。在執(zhí)行一或多個(gè)解塊操作之后,濾波器單元113可將CU的經(jīng)重建視頻塊存儲(chǔ)在經(jīng)解碼圖片緩沖器114中。運(yùn)動(dòng)估計(jì)單元122和運(yùn)動(dòng)補(bǔ)償單元124可使用含有經(jīng)重建視頻塊的參考圖片來(lái)對(duì)后續(xù)圖片的PU執(zhí)行幀間預(yù)測(cè)。另外,幀內(nèi)預(yù)測(cè)單元126可使用經(jīng)解碼圖片緩沖器114中的經(jīng)重建視頻塊對(duì)處于與CU相同圖片中的其它PU執(zhí)行幀內(nèi)預(yù)測(cè)。
熵編碼單元116可從視頻編碼器20的其它功能組件接收數(shù)據(jù)。舉例來(lái)說(shuō),熵編碼單元116可從量化單元106接收變換系數(shù)塊,且可從預(yù)測(cè)處理單元100接收語(yǔ)法元素。當(dāng)熵編碼單元116接收到數(shù)據(jù)時(shí),熵編碼單元116可執(zhí)行一或多個(gè)熵編碼操作以產(chǎn)生經(jīng)熵編碼數(shù)據(jù)。舉例來(lái)說(shuō),視頻編碼器20可對(duì)所述數(shù)據(jù)執(zhí)行CAVLC操作、CABAC操作、可變到可變(V2V)長(zhǎng)度譯碼操作、基于語(yǔ)法的上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(SBAC)操作、概率區(qū)間分割熵(PIPE)譯碼操作,或另一類(lèi)型的熵編碼操作。熵編碼單元116可輸出包含經(jīng)熵編碼數(shù)據(jù)的位流。
作為對(duì)數(shù)據(jù)執(zhí)行熵編碼操作的一部分,熵編碼單元116可選擇上下文模型。如果熵編碼單元116正執(zhí)行CABAC操作,那么上下文模型可指示特定二進(jìn)制數(shù)具有特定值的概率的估計(jì)。在CABAC的情況下,術(shù)語(yǔ)“二進(jìn)位”用以指語(yǔ)法元素的二進(jìn)制化版本的位。
視頻解碼器
圖3是說(shuō)明可實(shí)施根據(jù)本發(fā)明中描述的方面的技術(shù)的視頻解碼器30的實(shí)例的框圖。視頻解碼器30可經(jīng)配置以處理視頻幀的單層(例如針對(duì)HEVC)。此外,視頻解碼器30可經(jīng)配置以執(zhí)行本發(fā)明的技術(shù)中的任一者或全部。在一些實(shí)例中,本發(fā)明中描述的技術(shù)可在視頻解碼器30的各種組件之間共享。在一些實(shí)例中,另外或替代地,處理器(未圖示)可經(jīng)配置以執(zhí)行本發(fā)明中描述的技術(shù)中的任一者或全部。
出于解釋的目的,本發(fā)明描述在HEVC譯碼的上下文中的視頻解碼器30。然而,本發(fā)明的技術(shù)可以適用于其它譯碼標(biāo)準(zhǔn)或方法。圖3中所描繪的實(shí)例是針對(duì)單層編解碼器。然而,在某些實(shí)施方案中,視頻解碼器30中的一些或全部可復(fù)制以用于多層編解碼器的處理。
在圖3的實(shí)例中,視頻解碼器30包含多個(gè)功能組件。視頻解碼器30的功能組件包含熵解碼單元150、預(yù)測(cè)處理單元152、逆量化單元154、逆變換單元156、重建單元158、濾波器單元159和經(jīng)解碼圖片緩沖器160。預(yù)測(cè)處理單元152包含運(yùn)動(dòng)補(bǔ)償單元162、幀內(nèi)預(yù)測(cè)單元164和層間預(yù)測(cè)單元166。在一些實(shí)例中,視頻解碼器30可執(zhí)行一般與關(guān)于圖2的視頻編碼器20描述的編碼遍次互逆的解碼遍次。在其它實(shí)例中,視頻解碼器30可包含較多、較少或不同的功能組件。
視頻解碼器30可接收包括經(jīng)編碼視頻數(shù)據(jù)的位流。所述位流可包含多個(gè)語(yǔ)法元素。當(dāng)視頻解碼器30接收到位流時(shí),熵解碼單元150可對(duì)所述位流執(zhí)行解析操作。對(duì)位流執(zhí)行解析操作的結(jié)果是,熵解碼單元150可從所述位流提取語(yǔ)法元素。作為執(zhí)行解析操作的一部分,熵解碼單元150可對(duì)位流中的經(jīng)熵編碼語(yǔ)法元素進(jìn)行熵解碼。預(yù)測(cè)處理單元152、逆量化單元154、逆變換單元156、重建單元158及濾波器單元159可執(zhí)行重建操作,重建操作基于從位流提取的語(yǔ)法元素產(chǎn)生經(jīng)解碼視頻數(shù)據(jù)。
如上文所論述,位流可包括一系列NAL單元。位流的NAL單元可包含視頻參數(shù)集NAL單元、序列參數(shù)集NAL單元、圖片參數(shù)集NAL單元、SEI NAL單元等等。作為對(duì)位流執(zhí)行解析操作的一部分,熵解碼單元150可執(zhí)行解析操作,所述解析操作從序列參數(shù)集NAL單元提取序列參數(shù)集且對(duì)其進(jìn)行熵解碼、從圖片參數(shù)集NAL單元提取圖片參數(shù)集且對(duì)其進(jìn)行熵解碼、從SEI NAL單元提取SEI數(shù)據(jù)且對(duì)其進(jìn)行熵解碼等等。
此外,位流的NAL單元可包含經(jīng)譯碼切片NAL單元。作為對(duì)位流執(zhí)行解析操作的部分,熵解碼單元150可執(zhí)行解析操作,所述解析操作從經(jīng)譯碼切片NAL單元提取經(jīng)譯碼切片且對(duì)其進(jìn)行熵解碼。經(jīng)譯碼切片中的每一者可包含切片標(biāo)頭以及切片數(shù)據(jù)。切片標(biāo)頭可以含有關(guān)于切片的語(yǔ)法元素。切片標(biāo)頭中的語(yǔ)法元素可包含識(shí)別與含有所述切片的圖片相關(guān)聯(lián)的圖片參數(shù)集的語(yǔ)法元素。熵解碼單元150可對(duì)經(jīng)譯碼切片標(biāo)頭中的語(yǔ)法元素執(zhí)行熵解碼操作(例如,CABAC解碼操作),以恢復(fù)切片標(biāo)頭。
作為從經(jīng)譯碼切片NAL單元提取切片數(shù)據(jù)的部分,熵解碼單元150可執(zhí)行從切片數(shù)據(jù)中的經(jīng)譯碼CU提取語(yǔ)法元素的解析操作。所提取的語(yǔ)法元素可包含與變換系數(shù)塊相關(guān)聯(lián)的語(yǔ)法元素。熵解碼單元150可接著對(duì)語(yǔ)法元素中的一些執(zhí)行CABAC解碼操作。
在熵解碼單元150對(duì)未分割的CU執(zhí)行解析操作之后,視頻解碼器30可對(duì)未分割的CU執(zhí)行重建操作。為了對(duì)未經(jīng)分割的CU執(zhí)行重建操作,視頻解碼器30可對(duì)CU的每一TU執(zhí)行重建操作。通過(guò)對(duì)CU的每一TU執(zhí)行重建操作,視頻解碼器30可重建與CU相關(guān)聯(lián)的殘余視頻塊。
作為對(duì)TU執(zhí)行重建操作的一部分,逆量化單元154可對(duì)與TU相關(guān)聯(lián)的變換系數(shù)塊進(jìn)行逆量化(例如,解量化)。逆量化單元154可以類(lèi)似于針對(duì)HEVC所提議或由H.264解碼標(biāo)準(zhǔn)定義的逆量化過(guò)程的方式來(lái)逆量化變換系數(shù)塊。逆量化單元154可使用由視頻編碼器20針對(duì)變換系數(shù)塊的CU計(jì)算的量化參數(shù)QP來(lái)確定量化程度,且同樣地,確定逆量化單元154應(yīng)用的逆量化的程度。
在逆量化單元154對(duì)變換系數(shù)塊進(jìn)行逆量化之后,逆變換單元156可產(chǎn)生與變換系數(shù)塊相關(guān)聯(lián)的TU的殘余視頻塊。逆變換單元156可將逆變換應(yīng)用到變換系數(shù)塊以便產(chǎn)生所述TU的殘余視頻塊。舉例來(lái)說(shuō),逆變換單元156可將逆DCT、逆整數(shù)變換、逆卡忽南-拉維(Karhunen-Loeve)變換(KLT)、逆旋轉(zhuǎn)變換、逆定向變換或另一逆變換應(yīng)用于變換系數(shù)塊。在一些實(shí)例中,逆變換單元156可基于來(lái)自視頻編碼器20的信令而確定適用于變換系數(shù)塊的逆變換。在這些實(shí)例中,逆變換單元156可基于在用于與變換系數(shù)塊相關(guān)聯(lián)的樹(shù)塊的四叉樹(shù)的根節(jié)點(diǎn)處的經(jīng)信令的變換來(lái)確定逆變換。在其它實(shí)例中,逆變換單元156可從例如塊大小、譯碼模式或類(lèi)似者等一或多個(gè)譯碼特性推斷逆變換。在一些實(shí)例中,逆變換單元156可應(yīng)用級(jí)聯(lián)的逆變換。
在一些實(shí)例中,運(yùn)動(dòng)補(bǔ)償單元162可通過(guò)基于內(nèi)插濾波器執(zhí)行內(nèi)插而精煉PU的經(jīng)預(yù)測(cè)視頻塊。用于將用于以子樣本精確度進(jìn)行運(yùn)動(dòng)補(bǔ)償?shù)膬?nèi)插濾波器的識(shí)別符可包含在語(yǔ)法元素中。運(yùn)動(dòng)補(bǔ)償單元162可使用由視頻編碼器20在產(chǎn)生PU的經(jīng)預(yù)測(cè)視頻塊期間使用的相同內(nèi)插濾波器來(lái)計(jì)算參考?jí)K的子整數(shù)樣本的內(nèi)插值。運(yùn)動(dòng)補(bǔ)償單元162可根據(jù)接收到的語(yǔ)法信息確定由視頻編碼器20使用的內(nèi)插濾波器且使用所述內(nèi)插濾波器來(lái)產(chǎn)生經(jīng)預(yù)測(cè)視頻塊。
如果PU是使用幀內(nèi)預(yù)測(cè)編碼,那么幀內(nèi)預(yù)測(cè)單元164可執(zhí)行幀內(nèi)預(yù)測(cè)以產(chǎn)生用于PU的經(jīng)預(yù)測(cè)視頻塊。舉例來(lái)說(shuō),幀內(nèi)預(yù)測(cè)單元164可基于位流中的語(yǔ)法元素確定用于PU的幀內(nèi)預(yù)測(cè)模式。位流可包含幀內(nèi)預(yù)測(cè)模塊164可用以確定PU的幀內(nèi)預(yù)測(cè)模式的語(yǔ)法元素。
在一些情況下,語(yǔ)法元素可指示幀內(nèi)預(yù)測(cè)單元164將使用另一PU的幀內(nèi)預(yù)測(cè)模式來(lái)確定當(dāng)前PU的幀內(nèi)預(yù)測(cè)模式。舉例來(lái)說(shuō),可能有可能當(dāng)前PU的幀內(nèi)預(yù)測(cè)模式與相鄰PU的幀內(nèi)預(yù)測(cè)模式相同。換句話說(shuō),相鄰PU的幀內(nèi)預(yù)測(cè)模式可為用于當(dāng)前PU的最可能模式。因此,在此實(shí)例中,位流可包含小語(yǔ)法元素,所述小語(yǔ)法元素指示PU的幀內(nèi)預(yù)測(cè)模式與相鄰PU的幀內(nèi)預(yù)測(cè)模式相同。幀內(nèi)預(yù)測(cè)單元164可隨后使用幀內(nèi)預(yù)測(cè)模式基于在空間上相鄰的PU的視頻塊而產(chǎn)生用于PU的預(yù)測(cè)數(shù)據(jù)(例如,經(jīng)預(yù)測(cè)樣本)。
如上文所論述,視頻解碼器30還可包含層間預(yù)測(cè)單元166。層間預(yù)測(cè)單元166經(jīng)配置以使用在SHVC中可用的一或多個(gè)不同層(例如,基礎(chǔ)或參考層)預(yù)測(cè)當(dāng)前塊(例如,增強(qiáng)層中的當(dāng)前塊)。此預(yù)測(cè)可稱(chēng)作層間預(yù)測(cè)。層間預(yù)測(cè)單元166利用預(yù)測(cè)方法來(lái)減少層間冗余,借此改進(jìn)譯碼效率且減少計(jì)算資源要求。層間預(yù)測(cè)的一些實(shí)例包含層間幀內(nèi)預(yù)測(cè)、層間運(yùn)動(dòng)預(yù)測(cè)及層間殘余預(yù)測(cè)。層間幀內(nèi)預(yù)測(cè)使用基礎(chǔ)層中的協(xié)同定位塊的重建來(lái)預(yù)測(cè)增強(qiáng)層中的當(dāng)前塊。層間運(yùn)動(dòng)預(yù)測(cè)使用基礎(chǔ)層的運(yùn)動(dòng)信息來(lái)預(yù)測(cè)增強(qiáng)層中的運(yùn)動(dòng)。層間殘余預(yù)測(cè)使用基礎(chǔ)層的殘余來(lái)預(yù)測(cè)增強(qiáng)層的殘余。下文更詳細(xì)地論述層間預(yù)測(cè)方案中的每一者。
重建單元158可使用與CU的TU相關(guān)聯(lián)的殘余視頻塊和CU的PU的經(jīng)預(yù)測(cè)視頻塊(例如,幀內(nèi)預(yù)測(cè)數(shù)據(jù)或幀間預(yù)測(cè)數(shù)據(jù),如果適用)來(lái)重建CU的視頻塊。因此,視頻解碼器30可基于位流中的語(yǔ)法元素而產(chǎn)生經(jīng)預(yù)測(cè)視頻塊及殘余視頻塊,且可基于經(jīng)預(yù)測(cè)視頻塊及殘余視頻塊而產(chǎn)生視頻塊。
在重建單元158重建CU的視頻塊之后,濾波器單元159可執(zhí)行解塊操作以減少與CU相關(guān)聯(lián)的成塊假影。在濾波器單元159執(zhí)行解塊操作以減少與CU相關(guān)聯(lián)的成塊假影之后,視頻解碼器30可將所述CU的視頻塊存儲(chǔ)在經(jīng)解碼圖片緩沖器160中。經(jīng)解碼圖片緩沖器160可提供參考圖片以用于后續(xù)運(yùn)動(dòng)補(bǔ)償、幀內(nèi)預(yù)測(cè)和在例如圖1A或1B的顯示裝置32等顯示裝置上的呈現(xiàn)。舉例來(lái)說(shuō),視頻解碼器30可基于經(jīng)解碼圖片緩沖器160中的視頻塊對(duì)其它CU的PU執(zhí)行幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)操作。
運(yùn)動(dòng)估計(jì)
運(yùn)動(dòng)估計(jì)是確定描述從一個(gè)2D圖像到另一2D圖像(通常來(lái)自視頻序列中時(shí)間上前一幀)的變換的運(yùn)動(dòng)向量的過(guò)程。運(yùn)動(dòng)向量可涉及整個(gè)圖像(被稱(chēng)作全局運(yùn)動(dòng)估計(jì))或可涉及圖像的特定部分,例如矩形塊、任意形狀補(bǔ)丁乃至每像素。在示范性實(shí)施例中,運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)向量基于兩個(gè)圖像的塊(通常也被稱(chēng)作塊匹配)。然而,所描述的技術(shù)可擴(kuò)展(即,應(yīng)用)到圖像內(nèi)的任何任意形狀。運(yùn)動(dòng)補(bǔ)償可基于所確定的運(yùn)動(dòng)向量對(duì)兩個(gè)圖像執(zhí)行。運(yùn)動(dòng)補(bǔ)償可通過(guò)將運(yùn)動(dòng)向量應(yīng)用到先前圖像以合成到下一圖像的變換來(lái)執(zhí)行。運(yùn)動(dòng)估計(jì)與運(yùn)動(dòng)補(bǔ)償?shù)慕M合是如MPEG-1、MPEG-2、MPEG-4、H.264/AVC、HEVC以及許多其它視頻編解碼器所使用的視頻壓縮的關(guān)鍵部分。
計(jì)算運(yùn)動(dòng)向量的過(guò)程中使用的基于塊的運(yùn)動(dòng)估計(jì)可通過(guò)使用塊匹配來(lái)估計(jì),塊匹配使匹配誤差的量度最小化。當(dāng)前圖像中的第一位置(x,y)處的塊(也稱(chēng)為當(dāng)前塊)It與參考圖像中的位置(x+u,y+v)處的候選塊It-1之間的匹配誤差可被計(jì)算為當(dāng)前塊與候選塊之間的絕對(duì)差總和(SAD)。
在某些實(shí)施方案中,當(dāng)前塊和候選塊具有BxB像素的塊大小。對(duì)于BxB的塊大小,SAD可被計(jì)算為如下:
其中B為塊大小,It為當(dāng)前塊,且It-1為候選塊。
可考慮將運(yùn)動(dòng)向量譯碼到位流中所需的成本來(lái)計(jì)算總成本。舉例來(lái)說(shuō),可通過(guò)將對(duì)運(yùn)動(dòng)向量進(jìn)行譯碼所需的位成本相加到SAD來(lái)計(jì)算候選塊與當(dāng)前塊匹配的總成本,如下:
在以上總成本計(jì)算中,λ可為恒定值(基于塊的量化參數(shù)),且mvbits可為表示經(jīng)編碼位流中的運(yùn)動(dòng)向量所需的位數(shù)。
運(yùn)動(dòng)估計(jì)是典型視頻編碼器中的最昂貴工具之一,且可消耗超過(guò)視頻編碼器的資源的70-80%。因此,運(yùn)動(dòng)估計(jì)中的加速度可具有視頻編碼器的總體效率的可觀的影響。用于加速運(yùn)動(dòng)估計(jì)的技術(shù)可通常分類(lèi)為三個(gè)類(lèi)別:a)減小搜索空間,b)減少針對(duì)每一搜索位置的匹配誤差的計(jì)算成本,和c)組合前兩個(gè)技術(shù)。在減小搜索空間的過(guò)程中,匹配誤差的所獲得的最小值(例如,減小的搜索空間中的候選塊當(dāng)中的最小SAD)可僅為搜索空間內(nèi)的局部最小值。在減少針對(duì)每一搜索位置的匹配誤差的計(jì)算成本的過(guò)程中,所使用的計(jì)算和比較的類(lèi)型可確定是否可識(shí)別候選塊的全局最小值。
存在上文提及的技術(shù)相比于全量搜索(即所有可能候選者的強(qiáng)力搜索)之間的折衷。通過(guò)實(shí)施運(yùn)動(dòng)加速技術(shù)獲得的特定折衷取決于視頻數(shù)據(jù)的特性、視頻數(shù)據(jù)內(nèi)的運(yùn)動(dòng)分布,以及如何設(shè)計(jì)所述技術(shù)。在設(shè)計(jì)運(yùn)動(dòng)估計(jì)加速技術(shù)時(shí)應(yīng)考慮的一個(gè)因素是,執(zhí)行所述技術(shù)的復(fù)雜性與通過(guò)執(zhí)行所述技術(shù)獲得的譯碼效率之間的折衷。
圖4為說(shuō)明用于經(jīng)加速運(yùn)動(dòng)估計(jì)的常規(guī)方法的流程圖。圖4的方法400可通過(guò)HM范圍擴(kuò)展實(shí)施以用于運(yùn)動(dòng)估計(jì)。此外,圖4的方法400是基于對(duì)自然視頻數(shù)據(jù)執(zhí)行運(yùn)動(dòng)估計(jì)的假設(shè)而開(kāi)發(fā)。因此,方法400是基于視頻數(shù)據(jù)為平滑且與候選塊相關(guān)聯(lián)的誤差隨著接近具有最低誤差的候選塊而減小的假設(shè)而開(kāi)發(fā)。圖4中說(shuō)明的步驟可由視頻編碼器(例如,視頻編碼器20)或任何其它組件執(zhí)行。為方便起見(jiàn),方法400描述為由視頻譯碼器(也簡(jiǎn)稱(chēng)為譯碼器)執(zhí)行,所述視頻譯碼器可為視頻編碼器20、視頻解碼器30或另一組件。
方法400開(kāi)始于決策框405處,其中譯碼器確定是否跳過(guò)運(yùn)動(dòng)向量估計(jì)。當(dāng)譯碼器在步驟405中確定跳過(guò)運(yùn)動(dòng)估計(jì)時(shí),方法400在框435處繼續(xù),其中譯碼器跳過(guò)運(yùn)動(dòng)估計(jì)。方法在框450處結(jié)束。當(dāng)譯碼器在決策框405處確定執(zhí)行運(yùn)動(dòng)估計(jì)時(shí),方法繼續(xù)到?jīng)Q策框410。在決策框410處,譯碼器確定是否執(zhí)行合并運(yùn)動(dòng)向量估計(jì)。當(dāng)譯碼器確定執(zhí)行合并向量估計(jì)時(shí),方法進(jìn)行到框445。在框445處,譯碼器執(zhí)行合并運(yùn)動(dòng)向量估計(jì)。當(dāng)譯碼器在框410處確定不執(zhí)行合并運(yùn)動(dòng)向量估計(jì)時(shí),方法400在框415處繼續(xù)。
在框415處,譯碼器執(zhí)行圍繞預(yù)測(cè)符的初始搜索。預(yù)測(cè)符可為經(jīng)預(yù)測(cè)為與當(dāng)前塊的具有最低匹配成本或最低總匹配成本的匹配的候選塊。在由預(yù)測(cè)符上居中的按指數(shù)規(guī)律增長(zhǎng)的菱形覆蓋的樣本上圍繞預(yù)測(cè)符執(zhí)行初始搜索。當(dāng)存在一個(gè)以上預(yù)測(cè)符時(shí),可針對(duì)每一預(yù)測(cè)符執(zhí)行初始搜索。譯碼器隨后確定最佳匹配(即,具有與當(dāng)前塊的最低匹配成本或最低總匹配成本的候選塊)與當(dāng)前塊之間的距離是否大于預(yù)測(cè)符到當(dāng)前塊的距離。在決策框418處,將最佳匹配到當(dāng)前塊與預(yù)測(cè)符到當(dāng)前塊之間的距離的差異與閾值進(jìn)行比較。當(dāng)最佳匹配到當(dāng)前塊與預(yù)測(cè)符到當(dāng)前塊之間的距離的差異大于閾值時(shí),方法400在框425處繼續(xù)。當(dāng)最佳匹配到當(dāng)前塊與預(yù)測(cè)符到當(dāng)前塊之間的距離的差異小于或等于閾值時(shí),方法400在框420處繼續(xù)。
在框420處,譯碼器執(zhí)行精煉搜索。在精煉搜索之后,方法進(jìn)行到框440,其中譯碼器執(zhí)行高級(jí)運(yùn)動(dòng)向量預(yù)測(cè)(AMVP)。在框425處,譯碼器執(zhí)行整個(gè)搜索區(qū)上的子取樣搜索。在框430處,譯碼器執(zhí)行精煉搜索。在精煉搜索之后,方法在框440處結(jié)束,其中譯碼器執(zhí)行AMVP。方法在框450處結(jié)束。
若干快速運(yùn)動(dòng)估計(jì)方法針對(duì)自然相機(jī)俘獲的序列設(shè)計(jì)。自然視頻數(shù)據(jù)可歸因于使較高頻率衰減的攝像機(jī)中包含的光學(xué)系統(tǒng)而比非自然視頻數(shù)據(jù)更平滑,且還可歸因于由光學(xué)系統(tǒng)的透鏡失真引入的噪聲而具有更大噪聲。針對(duì)自然視頻數(shù)據(jù)設(shè)計(jì)的快速運(yùn)動(dòng)估計(jì)方法可能對(duì)于非自然內(nèi)容或非自然視頻數(shù)據(jù)(例如,屏幕內(nèi)容、復(fù)合圖像等)并不良好地工作。如本文所使用的非自然視頻通常指代尚未經(jīng)由光學(xué)系統(tǒng)俘獲但實(shí)際上已例如由計(jì)算機(jī)產(chǎn)生的視頻數(shù)據(jù)。非自然視頻數(shù)據(jù)的實(shí)例包含(但不限于)屏幕內(nèi)容、經(jīng)產(chǎn)生以經(jīng)由監(jiān)視器(例如,圖形用戶接口(GUI))與計(jì)算機(jī)介接的視頻數(shù)據(jù),或其它計(jì)算機(jī)產(chǎn)生的圖像。非自然視頻數(shù)據(jù)可通過(guò)俘獲計(jì)算機(jī)桌面屏幕來(lái)創(chuàng)建,且因此可具有銳邊緣、零噪聲、不同頻譜活動(dòng)和空間頻率(例如,文本和圖形)。用于快速運(yùn)動(dòng)估計(jì)的方法在考慮非自然視頻數(shù)據(jù)的特性時(shí)可具有改進(jìn)的效率和較低計(jì)算復(fù)雜性。此外,全量搜索在計(jì)算上昂貴且在某些應(yīng)用中可能不可行。
圖5為說(shuō)明根據(jù)本發(fā)明中描述的方面用于經(jīng)加速運(yùn)動(dòng)估計(jì)的方法的流程圖。圖5的方法500可具有用于非自然視頻的快速運(yùn)動(dòng)估計(jì)的改進(jìn)的性能。具體來(lái)說(shuō),運(yùn)動(dòng)估計(jì)方法500可更適于俘獲非自然視頻數(shù)據(jù)的空間和時(shí)間特性。非自然視頻數(shù)據(jù)可展現(xiàn)非單調(diào)誤差表面和高空間頻率特性,其與針對(duì)自然視頻數(shù)據(jù)設(shè)計(jì)的快速運(yùn)動(dòng)估計(jì)算法的典型假設(shè)相反。
圖5中說(shuō)明的步驟可由視頻編碼器(例如,視頻編碼器20)或任何其它組件執(zhí)行。為方便起見(jiàn),方法500描述為由視頻譯碼器(也簡(jiǎn)稱(chēng)為譯碼器)執(zhí)行,所述視頻譯碼器可為視頻編碼器20、視頻解碼器30或另一組件。
方法500開(kāi)始于決策框505處,其中譯碼器執(zhí)行是否跳過(guò)運(yùn)動(dòng)向量估計(jì)的經(jīng)修改確定???05的是否跳過(guò)運(yùn)動(dòng)向量估計(jì)的所述經(jīng)修改確定相對(duì)于圖4的常規(guī)方法400的框405而修改。當(dāng)決策框505處譯碼器確定跳過(guò)運(yùn)動(dòng)估計(jì)時(shí),方法500進(jìn)行到框530,其中譯碼器跳過(guò)運(yùn)動(dòng)估計(jì)。在框545處,方法500結(jié)束。是否跳過(guò)運(yùn)動(dòng)向量估計(jì)的經(jīng)修改確定將在下文更詳細(xì)地描述。
當(dāng)決策框505處譯碼器確定執(zhí)行運(yùn)動(dòng)估計(jì)時(shí),方法繼續(xù)到?jīng)Q策框510。在決策框510處,譯碼器確定是否執(zhí)行合并運(yùn)動(dòng)向量估計(jì)。當(dāng)譯碼器確定執(zhí)行合并向量估計(jì)時(shí),方法500進(jìn)行到框540。在框540處,譯碼器執(zhí)行合并運(yùn)動(dòng)向量估計(jì)。所述方法隨后在框545處結(jié)束。當(dāng)決策框510處譯碼器確定不執(zhí)行合并運(yùn)動(dòng)向量估計(jì)時(shí),方法500在框515處繼續(xù)。
在框515處,譯碼器執(zhí)行利用誤差近似的經(jīng)修改初始搜索???15的利用誤差近似的經(jīng)修改初始搜索相對(duì)于圖4的方法400的框415而修改。在框515處,可基于預(yù)測(cè)符執(zhí)行經(jīng)修改初始搜索,且所述經(jīng)修改初始搜索將把候選塊識(shí)別為最佳匹配,即具有與當(dāng)前塊的最低匹配成本或最低總匹配成本的候選塊。譯碼器隨后確定最佳匹配到當(dāng)前塊之間的距離是否大于預(yù)測(cè)符到當(dāng)前塊的距離。下文將更詳細(xì)地描述經(jīng)修改初始搜索的更詳細(xì)闡釋。在決策框518處,將最佳匹配和預(yù)測(cè)符到當(dāng)前塊之間的距離的差異與閾值進(jìn)行比較。當(dāng)最佳匹配和預(yù)測(cè)符到當(dāng)前塊之間的距離的差異大于閾值時(shí),方法500在框525處繼續(xù)。當(dāng)最佳匹配和預(yù)測(cè)符到當(dāng)前塊之間的距離的差異小于或等于閾值時(shí),方法500在框520處繼續(xù)。
在框520處,譯碼器執(zhí)行精煉搜索。在精煉搜索之后,方法500進(jìn)行到框535,其中譯碼器執(zhí)行AMVP。在框525處,譯碼器執(zhí)行利用誤差近似的全量搜索。下文將更詳細(xì)地描述利用誤差近似的全量搜索的更詳細(xì)闡釋。在全量搜索之后,方法在框535處結(jié)束,其中譯碼器執(zhí)行AMVP。在框535之后,方法500在框545處結(jié)束。
具有每一級(jí)處的提早退出的多級(jí)近似成本計(jì)算
如先前論述,非自然視頻數(shù)據(jù)與自然視頻數(shù)據(jù)相比具有銳邊緣和高空間頻率。由此,用于塊匹配的成本計(jì)算中的誤差的大部分很可能集中在很少樣本上。因此,可基于從部分樣本計(jì)算的候選塊與當(dāng)前塊之間的匹配的近似誤差而拒絕候選塊作為用于當(dāng)前塊的最佳匹配。
圖6為說(shuō)明根據(jù)本發(fā)明的各方面分級(jí)匹配到當(dāng)前塊的候選塊的部分樣本的框圖。多級(jí)近似成本計(jì)算的不同級(jí)處候選塊610A、610B、610C和610D的部分樣本由圖6中的影線說(shuō)明。候選塊610A說(shuō)明在近似成本計(jì)算的第一級(jí)中已經(jīng)采取的候選塊610A的部分樣本。在圖6實(shí)施例中,候選塊610A的部分樣本說(shuō)明為候選塊610A的兩條線,然而在其它實(shí)施例中,部分樣本可為單一線、多條線,或比候選塊610A的一條線更精細(xì)的粒度。類(lèi)似地,候選塊610B、610C和610D說(shuō)明近似成本計(jì)算的第二、第三和第四級(jí)中采取的候選塊610A的部分樣本。盡管圖6的候選塊610A到610D中已經(jīng)說(shuō)明八條線,但可采納本文中所描述的近似成本計(jì)算方法來(lái)匹配各種大小的塊。此外,結(jié)合圖6揭示的方法在本文中被稱(chēng)作近似成本計(jì)算,然而,可計(jì)算包含用于使候選塊610A到610D與當(dāng)前塊匹配的誤差的近似值以及用于在位流中信令候選塊的運(yùn)動(dòng)向量的相關(guān)聯(lián)成本兩者的總成本。
在一些實(shí)施例中,基于候選塊605的部分樣本近似候選塊605與當(dāng)前塊匹配的總成本,且此近似成本用于決定最佳候選者。用于近似塊的總成本的部分樣本的數(shù)目可根據(jù)應(yīng)用和實(shí)施預(yù)算而變化。在一個(gè)實(shí)施方案中使用圖6中由交叉影線展示的候選塊605的兩條線的部分樣本。將使候選塊605與當(dāng)前塊匹配的成本的估計(jì)值相加到部分樣本以產(chǎn)生用于使候選塊605與當(dāng)前塊匹配的總成本。
在其它實(shí)施方案中,在多個(gè)級(jí)中計(jì)算總成本,其中每一級(jí)精煉所使用的部分樣本的數(shù)目。舉例來(lái)說(shuō),第一級(jí)可包含候選塊605中由影線展示的兩條線的樣本。在第二級(jí)中,用于另外兩條線的樣本相加到如候選塊610中所展示的第一級(jí)中使用的樣本??稍诤蜻x塊615和620所說(shuō)明的第三和第四級(jí)中執(zhí)行進(jìn)一步精煉。如每一級(jí)處計(jì)算的中間成本可用于決定是否通過(guò)執(zhí)行下一級(jí)計(jì)算而執(zhí)行用于使候選塊605到620與當(dāng)前塊匹配的近似成本的另一精煉,借此提供提早退出機(jī)制。在一些實(shí)施方案中,當(dāng)近似成本計(jì)算的任何級(jí)處的近似成本大于先前識(shí)別的最佳成本的總成本時(shí),拒絕候選塊605到620。
舉例來(lái)說(shuō),可以16個(gè)樣本計(jì)算第一近似總成本,且如果第一所計(jì)算成本小于先前識(shí)別的最佳成本,那么可基于32個(gè)樣本在下一級(jí)中計(jì)算所述成本。隨著計(jì)算近似成本的過(guò)程中使用的部分樣本的數(shù)目增加,近似的精度同樣增加。
在另外的實(shí)施例中,運(yùn)動(dòng)向量位成本(例如,λ*mvbits)相加到近似成本以獲得總成本。此是可能的,因?yàn)榕c基于部分樣本計(jì)算成本且并不表示候選塊的總成本的傳統(tǒng)方法相比,近似總成本表示候選塊的總成本。
對(duì)于BxB的塊大小,基于塊的‘l’像素的近似總成本可由下方等式表示:
其中i(m),j(m)|m=0,1,…B2-1為候選塊中的所有像素的索引集。
以下偽碼說(shuō)明具有提早退出的部分誤差近似的示范性實(shí)施方案:
begin
for each(u,v)in the search range do
begin(initialization)
calculate ECost(u,v)
l:=L
end
whiledo
begin
calculate
end
output
end
經(jīng)修改初始搜索
如先前論述,非自然視頻數(shù)據(jù)可包含非單調(diào)誤差樣式。因此,如傳統(tǒng)運(yùn)動(dòng)估計(jì)技術(shù)中常用的按指數(shù)規(guī)律擴(kuò)展的菱形可能并不有效,因?yàn)槠淇赡苠e(cuò)過(guò)最佳候選者中的一者或錯(cuò)誤地推斷最佳候選者在最佳預(yù)測(cè)符附近。根據(jù)至少一個(gè)實(shí)施例,采用具有較小搜索區(qū)域的均勻移動(dòng)菱形樣式。
圖7為說(shuō)明根據(jù)本發(fā)明的各方面的經(jīng)修改初始搜索的圖。如圖7中所示,實(shí)例全量搜索空間705可為64x64大小搜索空間。在經(jīng)修改初始搜索中,在具有約16x16的大小的初始搜索空間710內(nèi)執(zhí)行搜索。菱形715可具有水平地和/或垂直地穿越初始空間710的固定大小。此可較好地俘獲非自然視頻數(shù)據(jù)的局部最小值。結(jié)合圖7描述的搜索空間的大小僅為實(shí)例,且所描述的技術(shù)不限于此。
在某些實(shí)施方案中,固定菱形715穿越的初始搜索空間710小于全量搜索空間705的一部分。在圖7實(shí)施例中,固定菱形715以固定步長(zhǎng)4穿越初始搜索空間710。由此,初始搜索空間710的僅一部分包含在經(jīng)修改初始搜索內(nèi)。在一些實(shí)施例中,來(lái)自初始搜索的最佳候選者與最佳預(yù)測(cè)符之間的距離用于確定執(zhí)行精煉搜索還是如上文結(jié)合圖5所論述的具有誤差近似的全量搜索。
經(jīng)修改提早跳過(guò)檢測(cè)
在某些實(shí)施例中,例如HM范圍擴(kuò)展中,跳過(guò)檢測(cè)是基于何時(shí)合并運(yùn)動(dòng)向量的殘余信號(hào)或何時(shí)水平和垂直運(yùn)動(dòng)向量的絕對(duì)總和為0。然而,基于何時(shí)水平和垂直運(yùn)動(dòng)向量的絕對(duì)總和為0而跳過(guò)運(yùn)動(dòng)向量估計(jì)的決策可能對(duì)于非自然視頻數(shù)據(jù)太具侵略性,且可能對(duì)于較靠近自然視頻數(shù)據(jù)的非自然視頻數(shù)據(jù)內(nèi)包含的動(dòng)畫(huà)圖像來(lái)說(shuō)并不有效。
由此,在某些實(shí)施方案中,提早跳過(guò)檢測(cè)(例如是否跳過(guò)運(yùn)動(dòng)向量估計(jì)的確定)僅基于合并運(yùn)動(dòng)向量的殘余信號(hào)執(zhí)行。當(dāng)合并運(yùn)動(dòng)向量的殘余信號(hào)為0時(shí),極有可能候選塊可不具有高頻率且因此可適合于被跳過(guò)。
用于非自然視頻數(shù)據(jù)的運(yùn)動(dòng)估計(jì)的實(shí)例流程圖
參看圖8,將描述用于非自然視頻數(shù)據(jù)的運(yùn)動(dòng)估計(jì)的實(shí)例程序。圖8為說(shuō)明根據(jù)本發(fā)明的各方面用于運(yùn)動(dòng)估計(jì)的方法800的流程圖。圖8中說(shuō)明的步驟可由視頻編碼器(例如,視頻編碼器20)或任何其它組件執(zhí)行。為方便起見(jiàn),方法800描述為由視頻譯碼器(也簡(jiǎn)稱(chēng)為譯碼器)執(zhí)行,所述視頻譯碼器可為視頻編碼器20或另一組件。
方法800開(kāi)始于框801。在框805處,譯碼器選擇用于與視頻數(shù)據(jù)的第二幀的當(dāng)前塊匹配的視頻數(shù)據(jù)的第一幀的候選塊。所述候選塊可根據(jù)初始搜索區(qū)域的經(jīng)修改初始搜索來(lái)選擇。
在框810處,譯碼器計(jì)算用于使候選塊的樣本的第一子集與當(dāng)前塊匹配的第一部分匹配成本。所述第一部分匹配成本可為用于使候選塊的樣本的子集與當(dāng)前塊匹配的匹配成本。所述第一匹配部分成本可用于通過(guò)將第一部分匹配成本還與用于使候選塊的剩余樣本與當(dāng)前塊匹配的成本的估計(jì)值求和來(lái)計(jì)算總匹配成本。
在框815處,譯碼器至少部分地基于第一部分匹配成本確定候選塊是否具有與當(dāng)前塊的最低匹配成本。舉例來(lái)說(shuō),譯碼器可維持最佳匹配候選塊,例如具有與當(dāng)前塊的最低匹配成本的候選塊。在一些實(shí)施方案中,當(dāng)候選塊具有比最佳匹配候選塊低的與當(dāng)前塊的第一部分匹配成本或總匹配成本時(shí),譯碼器將最佳匹配候選塊更新到所述候選塊。所述方法在框820處結(jié)束。
在方法800中,可移除(例如,不執(zhí)行)圖8中所展示的框中的一或多者,且/或可交換執(zhí)行所述方法的次序。在一些實(shí)施例中,可將額外框添加到方法800。本發(fā)明的實(shí)施例不限于圖8中展示的實(shí)例或不受圖8中展示的實(shí)例限制,且可在不脫離本發(fā)明的精神的情況下實(shí)施其它變化。
其它考慮因素
可使用多種不同技術(shù)和技藝中的任一者來(lái)表示本文中所揭示的信息和信號(hào)。舉例來(lái)說(shuō),可通過(guò)電壓、電流、電磁波、磁場(chǎng)或磁粒子、光場(chǎng)或光粒子或其任何組合來(lái)表示在整個(gè)上文描述中可能參考的數(shù)據(jù)、指令、命令、信息、信號(hào)、位、符號(hào)和碼片。
結(jié)合本文揭示的實(shí)施例所描述的各種說(shuō)明性邏輯塊、電路及算法步驟可實(shí)施為電子硬件、計(jì)算機(jī)軟件,或兩者的組合。為清楚地說(shuō)明硬件與軟件的此可互換性,上文已大體上關(guān)于其功能性而描述了各種說(shuō)明性組件、塊和步驟。此功能性是實(shí)施為硬件還是軟件取決于特定應(yīng)用及施加于整個(gè)系統(tǒng)的設(shè)計(jì)約束。熟練的技術(shù)人員可針對(duì)每一特定應(yīng)用以不同方式實(shí)施所描述的功能性,但此類(lèi)實(shí)施決策不應(yīng)被解釋為引起偏離本發(fā)明的范圍。
本文中所描述的技術(shù)可在硬件、軟件、固件或其任一組合中實(shí)施。所述技術(shù)可實(shí)施于多種裝置中的任一者中,例如通用計(jì)算機(jī)、無(wú)線通信裝置手持機(jī)或集成電路裝置,其具有包含在無(wú)線通信裝置手持機(jī)及其它裝置中的應(yīng)用的多種用途。被描述為裝置或組件的任何特征可一起實(shí)施于集成邏輯裝置中或分開(kāi)實(shí)施為離散但可互操作的邏輯裝置。如果在軟件中實(shí)施,那么所述技術(shù)可至少部分地由包括程序代碼的計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)媒體來(lái)實(shí)現(xiàn),所述程序代碼包含在被執(zhí)行時(shí)執(zhí)行上文所描述的方法中的一或多者的指令。計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)媒體可形成計(jì)算機(jī)程序產(chǎn)品的一部分,所述計(jì)算機(jī)程序產(chǎn)品可包含封裝材料。計(jì)算機(jī)可讀媒體可包括存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)媒體,例如,隨機(jī)存取存儲(chǔ)器(RAM)(例如,同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM))、只讀存儲(chǔ)器(ROM)、非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、閃存器、磁性或光學(xué)數(shù)據(jù)存儲(chǔ)媒體等等。另外或作為替代,所述技術(shù)可至少部分地由計(jì)算機(jī)可讀通信媒體來(lái)實(shí)現(xiàn),所述計(jì)算機(jī)可讀通信媒體以指令或數(shù)據(jù)結(jié)構(gòu)的形式載運(yùn)或傳送程序代碼且可由計(jì)算機(jī)存取、讀取和/或執(zhí)行(例如,傳播的信號(hào)或波)。
程序代碼可由處理器執(zhí)行,所述處理器可包含一或多個(gè)處理器,例如,一或多個(gè)數(shù)字信號(hào)處理器(DSP)、通用微處理器、專(zhuān)用集成電路(ASIC)、現(xiàn)場(chǎng)可編程邏輯陣列(FPGA)或其它等效集成或離散邏輯電路。此處理器可經(jīng)配置以執(zhí)行本發(fā)明中所描述的技術(shù)中的任一者。通用處理器可為微處理器;但在替代方案中,處理器可為任何常規(guī)處理器、控制器、微控制器或狀態(tài)機(jī)。處理器還可實(shí)施為計(jì)算裝置的組合,例如,DSP與微處理器的組合、多個(gè)微處理器、一或多個(gè)微處理器結(jié)合DSP核心,或任何其它此類(lèi)配置。因此,如本文中所使用的術(shù)語(yǔ)“處理器”可指前述結(jié)構(gòu)中的任一者、前述結(jié)構(gòu)的任何組合,或適合于實(shí)施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)或設(shè)備。另外,在某些方面中,可將本文中所描述的功能性提供于經(jīng)配置以用于編碼和解碼的專(zhuān)用軟件模塊或硬件模塊內(nèi)或并入組合式視頻編碼器-解碼器(CODEC)中。而且,所述技術(shù)可完全實(shí)施于一或多個(gè)電路或邏輯元件中。
本發(fā)明的技術(shù)可在廣泛多種的裝置或設(shè)備中實(shí)施,包含無(wú)線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件或單元是為了強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示技術(shù)的裝置的功能方面,但未必需要通過(guò)不同硬件單元實(shí)現(xiàn)。實(shí)際上,如上文所描述,各種單元可以結(jié)合合適的軟件和/或固件組合在編解碼器硬件單元中,或者通過(guò)互操作硬件單元的集合來(lái)提供,所述硬件單元包含如上文所描述的一或多個(gè)處理器。
雖然已經(jīng)結(jié)合各種不同實(shí)施例描述了前文,但可在不脫離本發(fā)明的教示的情況下將來(lái)自一個(gè)實(shí)施例的特征或元件與其它實(shí)施例組合。然而,相應(yīng)實(shí)施例之間的特征的組合不必限于此。已經(jīng)描述本發(fā)明的各種實(shí)施例。這些和其它實(shí)施例在所附權(quán)利要求書(shū)的范圍內(nèi)。