技術(shù)領(lǐng)域
本發(fā)明涉及視頻譯碼,并且更確切地說,涉及用于對視頻數(shù)據(jù)進(jìn)行預(yù)測的技術(shù)。
背景技術(shù):
數(shù)字視頻能力可并入到廣泛范圍的裝置中,包含數(shù)字電視、數(shù)字直播系統(tǒng)、無線廣播系統(tǒng)、個人數(shù)字助理(PDA)、膝上型或臺式計算機(jī)、數(shù)碼相機(jī)、數(shù)字記錄裝置、數(shù)字媒體播放器、視頻游戲裝置、視頻游戲控制臺、蜂窩式或衛(wèi)星無線電電話、視頻電話會議裝置以及其類似者。數(shù)字視頻裝置實施視頻壓縮技術(shù),例如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高級視頻譯碼(AVC)定義的標(biāo)準(zhǔn)、最近開發(fā)的高效視頻譯碼(HEVC)標(biāo)準(zhǔn)以及此類標(biāo)準(zhǔn)的擴(kuò)展中描述的那些技術(shù),以便更高效地發(fā)射、接收和存儲數(shù)字視頻信息。
視頻壓縮技術(shù)包含空間預(yù)測和/或時間預(yù)測,以減少或去除視頻序列中所固有的冗余。對于基于塊的視頻譯碼,視頻圖片或切片可以分割成多個塊。每一塊可被進(jìn)一步分割。使用相對于同一圖片或切片中的相鄰塊中的參考樣本的空間預(yù)測來對經(jīng)幀內(nèi)譯碼(I)的圖片或切片中的塊進(jìn)行編碼。經(jīng)幀間譯碼(P或B)圖片或切片中的塊可以使用相對于同一圖片或切片中的相鄰塊中的參考樣本的空間預(yù)測或相對于其它參考圖片中的參考樣本的時間預(yù)測??臻g或時間預(yù)測產(chǎn)生待譯碼的塊的預(yù)測性塊。殘余數(shù)據(jù)表示待譯碼的原始塊與預(yù)測性塊之間的像素差。
經(jīng)幀間譯碼塊是根據(jù)指向形成預(yù)測性塊的參考樣本塊的運動向量和指示經(jīng)譯碼塊與預(yù)測性塊之間的差的殘余數(shù)據(jù)來編碼。經(jīng)幀內(nèi)譯碼塊是根據(jù)幀內(nèi)譯碼模式和殘余數(shù)據(jù)編碼。為了進(jìn)一步壓縮,可將殘余數(shù)據(jù)從像素域變換到變換域,從而產(chǎn)生殘余變換系數(shù),接著可以對殘余變換系數(shù)進(jìn)行量化。
技術(shù)實現(xiàn)要素:
本發(fā)明描述與確定用于幀內(nèi)塊復(fù)制(幀內(nèi)BC)的搜索區(qū)域相關(guān)的實例技術(shù)。幀內(nèi)BC為譯碼模式,其中基于同一圖片內(nèi)的預(yù)測性視頻數(shù)據(jù)塊來預(yù)測當(dāng)前圖片中的當(dāng)前視頻數(shù)據(jù)塊。搜索區(qū)域包含根據(jù)當(dāng)前圖片的先前經(jīng)重構(gòu)的視頻數(shù)據(jù)塊,且塊向量識別搜索區(qū)域內(nèi)的預(yù)測性塊。
在根據(jù)本發(fā)明的技術(shù)的一些實例中,視頻譯碼器(例如,視頻編碼器和/或視頻解碼器)確定搜索區(qū)域的中心點,且基于搜索區(qū)域的中心點和經(jīng)界定的大小和/或形狀而確定當(dāng)前塊的搜索區(qū)域。如果所確定的搜索區(qū)域的一部分不可用,那么視頻譯碼器可修改搜索區(qū)域。對搜索區(qū)域的修改可包含(作為實例)填充、移位或限制搜索區(qū)域。本發(fā)明的搜索區(qū)域確定技術(shù)在界定搜索區(qū)域時可提供更大靈活性,此在一些狀況下可支持較大搜索區(qū)域,且可產(chǎn)生更高譯碼效率。
在一個實例中,譯碼視頻數(shù)據(jù)的方法包括確定對當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點;基于搜索區(qū)域的中心點和經(jīng)界定的大小確定對所述當(dāng)前塊的搜索區(qū)域;以及基于所確定的搜索區(qū)域而將來自包含所述當(dāng)前塊的當(dāng)前圖片的經(jīng)重構(gòu)的視頻數(shù)據(jù)塊存儲在存儲器中。所述方法進(jìn)一步包括譯碼用以識別搜索區(qū)域內(nèi)經(jīng)重構(gòu)塊中的一個的信息;且基于經(jīng)重構(gòu)塊中所識別的一個而譯碼所述當(dāng)前塊。所述方法可由視頻編碼器或視頻解碼器執(zhí)行。
在另一實例中,裝置包括視頻譯碼器,且視頻譯碼器包括經(jīng)配置以存儲視頻數(shù)據(jù)的存儲器和一或多個處理器。一或多個處理器經(jīng)配置以確定對于當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點;基于搜索區(qū)域的中心點和經(jīng)界定的大小確定對于所述當(dāng)前塊的搜索區(qū)域;以及基于所確定的搜索區(qū)域而將來自包含所述當(dāng)前塊的當(dāng)前圖片的經(jīng)重構(gòu)的視頻數(shù)據(jù)塊存儲在存儲器中。所述一或多個處理器進(jìn)一步經(jīng)配置以譯碼用以識別搜索區(qū)域內(nèi)經(jīng)重構(gòu)塊中的一個的信息,且基于經(jīng)重構(gòu)塊中所識別的一個而譯碼所述當(dāng)前塊。視頻譯碼器可為視頻編碼器或視頻解碼器。
在另一實例中,用于譯碼視頻數(shù)據(jù)的裝置包括用于確定對當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點的裝置;用于基于搜索區(qū)域的中心點和經(jīng)界定的大小確定對所述當(dāng)前塊的搜索區(qū)域的裝置;以及用于基于所確定的搜索區(qū)域而將來自包含所述當(dāng)前塊的當(dāng)前圖片的經(jīng)重構(gòu)的視頻數(shù)據(jù)塊存儲在存儲器中的裝置。所述裝置進(jìn)一步包括用于譯碼用以識別搜索區(qū)域內(nèi)經(jīng)重構(gòu)塊中的一個的信息的裝置,和用于基于經(jīng)重構(gòu)塊中所識別的一個譯碼所述當(dāng)前塊的裝置。
在另一實例中,計算機(jī)可讀存儲媒體具有存儲于其上的指令,所述指令在執(zhí)行時使得視頻譯碼器的一或多個處理器確定對于當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點;基于搜索區(qū)域的中心點和經(jīng)界定的大小確定對于所述當(dāng)前塊的搜索區(qū)域;以及基于所確定的搜索區(qū)域而將來自包含所述當(dāng)前塊的當(dāng)前圖片的經(jīng)重構(gòu)的視頻數(shù)據(jù)塊存儲在存儲器中。所述指令進(jìn)一步使得一或多個處理器譯碼用以識別搜索區(qū)域內(nèi)經(jīng)重構(gòu)塊中的一個的信息,且基于經(jīng)重構(gòu)塊中所識別的一個譯碼所述當(dāng)前塊。
在附圖和以下描述中闡述本發(fā)明的一或多個方面的細(xì)節(jié)。本發(fā)明中所描述的技術(shù)的其它特征、目標(biāo)和優(yōu)點將根據(jù)描述和圖式且根據(jù)權(quán)利要求書而顯而易見。
附圖說明
圖1是說明可以實施本發(fā)明的技術(shù)的實例視頻編碼和解碼系統(tǒng)的框圖。
圖2為說明用于根據(jù)幀內(nèi)塊復(fù)制(BC)模式譯碼當(dāng)前視頻數(shù)據(jù)塊的實例搜索區(qū)域的概念圖。
圖3A和3B是說明當(dāng)搜索區(qū)域的一部分跨越邊界時幀內(nèi)BC模式的搜索區(qū)域的移位的概念圖。
圖4是說明當(dāng)波前并行處理(WPP)用于譯碼當(dāng)前圖片時對搜索區(qū)域的限制的概念圖。
圖5是說明可實施本發(fā)明的技術(shù)的實例視頻編碼器的框圖。
圖6是說明可實施本發(fā)明的技術(shù)的實例視頻解碼器的框圖。
圖7是說明用于根據(jù)本發(fā)明的技術(shù)確定用于根據(jù)幀內(nèi)BC模式編碼當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的實例方法的流程圖。
圖8是說明用于根據(jù)本發(fā)明的技術(shù)確定用于根據(jù)幀內(nèi)BC模式解碼當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的實例方法的流程圖。
具體實施方式
視頻序列一般表示為圖片序列。通常,使用基于塊的譯碼技術(shù)譯碼個別圖片中的每一者。也就是說,將每一圖片劃分成塊,且個別地譯碼所述塊中的每一者。在本發(fā)明中,術(shù)語譯碼(code)、譯碼器和譯碼(coding)分別用于大體上指代以下各者中的任一者或兩者:(1)編碼(encode)、編碼器和編碼(encoding);以及(2)解碼(decode)、解碼器和解碼(decoding)。
譯碼視頻數(shù)據(jù)塊一般涉及形成塊的預(yù)測值及譯碼殘余值,殘余值為原始塊與預(yù)測值之間的差。具體來說,原始視頻數(shù)據(jù)塊包含像素值矩陣,且預(yù)測值包含經(jīng)預(yù)測像素值矩陣。殘余值對應(yīng)于原始塊的像素值與經(jīng)預(yù)測像素值之間的逐像素差。
用于視頻數(shù)據(jù)塊的預(yù)測技術(shù)一般分類為幀內(nèi)預(yù)測或幀間預(yù)測。幀內(nèi)預(yù)測或空間預(yù)測一般涉及根據(jù)同一圖片中的相鄰像素值預(yù)測塊。幀間預(yù)測或時間預(yù)測一般涉及根據(jù)不同的、經(jīng)先前譯碼圖片的經(jīng)先前譯碼塊預(yù)測塊。
例如遠(yuǎn)程桌面、遠(yuǎn)程游戲、無線顯示器、汽車信息娛樂、云計算及其它等許多應(yīng)用的視頻內(nèi)容通常包含自然內(nèi)容、文字和人造圖形的組合。在文字和人造圖形區(qū)域中,常常存在重復(fù)圖案,例如字符、圖標(biāo)、符號或其類似者。因此,可基于同一圖片或幀內(nèi)的像素值(但未必是通常用于幀內(nèi)預(yù)測的相鄰像素值)高效預(yù)測這些區(qū)域中的塊。
幀內(nèi)塊復(fù)制(幀內(nèi)BC)為用于根據(jù)同一圖片內(nèi)的未必與當(dāng)前塊相鄰的預(yù)測性視頻數(shù)據(jù)塊來預(yù)測當(dāng)前視頻數(shù)據(jù)塊的技術(shù)。幀內(nèi)BC可使得視頻譯碼器能夠改進(jìn)例如圖片的文字和人造圖形區(qū)域的圖片內(nèi)譯碼效率。對于幀內(nèi)BC,預(yù)測性視頻數(shù)據(jù)塊是與當(dāng)前視頻數(shù)據(jù)塊在同一圖片內(nèi)的經(jīng)重構(gòu)視頻數(shù)據(jù)塊。預(yù)測性視頻數(shù)據(jù)塊在當(dāng)前圖片內(nèi)的搜索區(qū)域內(nèi)。通過塊向量(其可為二維向量)識別預(yù)測性視頻數(shù)據(jù)塊相對于當(dāng)前塊的位置。
在根據(jù)本發(fā)明的技術(shù)的一些實例中,視頻譯碼器(例如,視頻編碼器和/或視頻解碼器)確定搜索區(qū)域的中心點,且基于搜索區(qū)域的中心點和經(jīng)界定的大小和/或形狀來確定對于所述當(dāng)前塊的搜索區(qū)域。在一些實例中,視頻譯碼器基于先前使用幀內(nèi)BC譯碼的塊的塊向量確定對于所述當(dāng)前塊的搜索區(qū)域的中心點。搜索區(qū)域的大小和/或形狀可經(jīng)預(yù)先界定且為靜態(tài)的,或可改變且在塊、切片、圖片、序列或其它層級處用信號發(fā)送。
如果所確定的搜索區(qū)域的一部分不可用,那么視頻譯碼器可修改搜索區(qū)域。如果搜索區(qū)域的一部分尚未經(jīng)重構(gòu)、經(jīng)幀間預(yù)測或跨越邊界(例如,切片邊界、圖塊邊界或圖片邊界),那么搜索區(qū)域的一部分可為不可用的。在一些實例中,視頻譯碼器通過使用經(jīng)復(fù)制或固定像素值填充搜索區(qū)域而修改搜索區(qū)域。在具有經(jīng)界定大小和形狀的搜索區(qū)域的一部分跨越邊界的一些實例中,視頻譯碼器例如在不改變搜索區(qū)域的大小和形狀的情況下移位搜索區(qū)域,使得整個搜索區(qū)域在邊界的一側(cè)上。在使用波前并行處理(WPP)并行地處理當(dāng)前圖片的各行的一些實例中,視頻譯碼器通過將搜索區(qū)域限制于將根據(jù)WPP重構(gòu)的區(qū)域而修改所確定的搜索區(qū)域。本發(fā)明的搜索區(qū)域確定技術(shù)在界定搜索區(qū)域時可提供更大靈活性,此在一些狀況下可支持較大搜索區(qū)域,且可產(chǎn)生幀內(nèi)BC的更高譯碼效率。本發(fā)明的搜索區(qū)域確定技術(shù)還可克服當(dāng)較大搜索區(qū)域用于幀內(nèi)BC時可產(chǎn)生的低效率。
視頻譯碼標(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(也被稱為ISO/IEC MPEG-4AVC),包含其可縮放視頻譯碼(SVC)和多視圖視頻譯碼(MVC)擴(kuò)展。最近,已由ITU-T視頻譯碼專家組(VCEG)和ISO/IEC動畫專家組(MPEG)的視頻譯碼聯(lián)合合作小組(JCT-VC)完成新的視頻譯碼標(biāo)準(zhǔn)(即,高效率視頻譯碼(HEVC))的設(shè)計。最新HEVC草案規(guī)范(且在下文中被稱作HEVC WD)從2014年3月21日起可從http://phenix.int-evry.fr/jct/doc_end_user/documents/15_Geneva/wg11/JCTVC-O1003-v2.zip獲得。最終標(biāo)準(zhǔn)可作為2014年10月的建議ITU-T H.265而經(jīng)參考。
對HEVC的范圍擴(kuò)展(即RExt)也正由JCT-VC開發(fā)。HEVC范圍擴(kuò)展的最新工作草案(WD)(在下文中被稱作“RExt WD6”或僅“RExt”)從2014年3月21日起可從http://phenix.int-evry.fr/jct/doc_end_user/documents/16_San%20Jose/wg11/JCTVC-P1005-v1.zip獲得。一般來說,對HEVC的范圍擴(kuò)展可支持并不專門由基礎(chǔ)HEVC規(guī)范支持的視頻格式,例如高位深度,例如大于8位;和高色度取樣格式,例如4:4:4和4:2:2。對HEVC的范圍擴(kuò)展包含各種視頻譯碼過程,包含幀內(nèi)BC。本發(fā)明的技術(shù)可適用于根據(jù)對HEVC的范圍擴(kuò)展的譯碼,且還可適用于屏幕內(nèi)容譯碼。然而,應(yīng)理解,本發(fā)明的技術(shù)不限于這些情形,且一般可適用于包含基于標(biāo)準(zhǔn)或并非基于標(biāo)準(zhǔn)的視頻譯碼的視頻譯碼技術(shù)。
圖1是說明可實施本發(fā)明的技術(shù)的實例視頻編碼和解碼系統(tǒng)10的框圖。如圖1中所展示,系統(tǒng)10包含源裝置12,其提供稍后待由目的地裝置14解碼的經(jīng)編碼視頻數(shù)據(jù)。具體來說,源裝置12經(jīng)由計算機(jī)可讀媒體16將視頻數(shù)據(jù)提供到目的地裝置14。源裝置12和目的地裝置14可包括廣泛范圍的裝置中的任一者,包含臺式計算機(jī)、筆記型(即,膝上型)計算機(jī)、平板計算機(jī)、機(jī)頂盒、例如所謂的“智能”電話的電話手持機(jī)、所謂的“智能”板、電視、相機(jī)、顯示裝置、數(shù)字媒體播放器、視頻游戲控制臺、視頻流式傳輸裝置或其類似者。在一些狀況下,源裝置12和目的地裝置14可以經(jīng)裝備以用于無線通信。
目的地裝置14可經(jīng)由計算機(jī)可讀媒體16接收待解碼的經(jīng)編碼視頻數(shù)據(jù)。計算機(jī)可讀媒體16可包括能夠?qū)⒔?jīng)編碼視頻數(shù)據(jù)從源裝置12移動到目的地裝置14的任一類型的媒體或裝置。在一個實例中,計算機(jī)可讀媒體16可包括通信媒體以使源裝置12能夠?qū)崟r地將經(jīng)編碼視頻數(shù)據(jù)直接傳輸?shù)侥康牡匮b置14。經(jīng)編碼視頻數(shù)據(jù)可根據(jù)例如無線通信協(xié)議等通信標(biāo)準(zhǔn)加以調(diào)制,且傳輸?shù)侥康牡匮b置14。通信媒體可包括任何無線或有線通信媒體,例如射頻(RF)頻譜或一或多個物理傳輸線。通信媒體可形成分組網(wǎng)絡(luò)(例如,局域網(wǎng)、廣域網(wǎng)或全球網(wǎng)絡(luò),例如,因特網(wǎng))的部分。通信媒體可包含路由器、交換器、基站或可用于促進(jìn)從源裝置12到目的地裝置14的通信的任何其它設(shè)備。
在一些實例中,可將經(jīng)編碼數(shù)據(jù)從源裝置12的輸出接口22輸出到存儲裝置32。類似地,可通過目的地裝置14的輸入接口28從存儲裝置32存取經(jīng)編碼數(shù)據(jù)。存儲裝置32可包含各種分布式或本地存取的數(shù)據(jù)存儲媒體中的任一者,例如硬盤驅(qū)動器、藍(lán)光光盤、DVD、CD-ROM、快閃存儲器、易失性或非易失性存儲器或用于存儲經(jīng)編碼視頻數(shù)據(jù)的任何其它合適的數(shù)字存儲媒體。在另一實例中,存儲裝置32可對應(yīng)于文件服務(wù)器或可存儲由源裝置12產(chǎn)生的經(jīng)編碼視頻的另一中間存儲裝置。
目的地裝置14可經(jīng)由流式傳輸或下載從存儲裝置32存取所存儲的視頻數(shù)據(jù)。文件服務(wù)器可為能夠存儲經(jīng)編碼視頻數(shù)據(jù)且將經(jīng)編碼視頻數(shù)據(jù)傳輸?shù)侥康牡匮b置14的任何類型的服務(wù)器。實例文件服務(wù)器包含萬維網(wǎng)服務(wù)器(例如,用于網(wǎng)站)、FTP服務(wù)器、網(wǎng)絡(luò)連接存儲(NAS)裝置或本地磁盤驅(qū)動器。目的地裝置14可經(jīng)由任何標(biāo)準(zhǔn)數(shù)據(jù)連接(包含因特網(wǎng)連接)來存取經(jīng)編碼視頻數(shù)據(jù)。此可包含適合于存取存儲于文件服務(wù)器上的經(jīng)編碼的視頻數(shù)據(jù)的無線信道(例如,Wi-Fi連接)、有線連接(例如,DSL、電纜調(diào)制解調(diào)器等)或兩者的組合。經(jīng)編碼視頻數(shù)據(jù)從存儲裝置的傳輸可能是流式傳輸、下載傳輸或兩者的組合。
本發(fā)明的技術(shù)不一定限于無線應(yīng)用或環(huán)境。所述技術(shù)可以應(yīng)用于支持各種多媒體應(yīng)用中的任一者的視頻譯碼,例如空中電視廣播、有線電視傳輸、衛(wèi)星電視傳輸、因特網(wǎng)流視頻傳輸(例如,HTTP動態(tài)自適應(yīng)流式傳輸(DASH))、被編碼到數(shù)據(jù)存儲媒體上的數(shù)字視頻,對存儲在數(shù)據(jù)存儲媒體上的數(shù)字視頻的解碼,或其它應(yīng)用。在一些實例中,系統(tǒng)10可經(jīng)配置以支持單向或雙向視頻傳輸,以支持例如視頻流式傳輸、視頻回放、視頻廣播和/或視頻電話等應(yīng)用。
在圖1的實例中,源裝置12包含視頻源18、視頻編碼器20和輸出接口22。目的地裝置14包含輸入接口28、視頻解碼器30和顯示裝置31。根據(jù)本發(fā)明,源裝置12的視頻編碼器20和目的地裝置14的視頻解碼器30可經(jīng)配置以應(yīng)用用于確定用于根據(jù)幀內(nèi)BC編碼或解碼視頻塊的搜索區(qū)域的技術(shù)。在其它實例中,源裝置和目的地裝置可包含其它組件或布置。舉例來說,源裝置12可以從外部視頻源18(例如,外部相機(jī))接收視頻數(shù)據(jù)。同樣地,目的地裝置14可以與外部顯示裝置接口連接,而不是包含集成顯示裝置。
圖1的所說明的系統(tǒng)10只是一個實例??赏ㄟ^任何數(shù)字視頻編碼和/或解碼裝置來執(zhí)行用于確定用于根據(jù)幀內(nèi)BC編碼或解碼視頻塊的搜索區(qū)域的技術(shù)。雖然大體上本發(fā)明的技術(shù)是通過視頻編碼或解碼裝置執(zhí)行,但是所述技術(shù)還可以通過視頻編解碼器執(zhí)行。此外,本發(fā)明的技術(shù)還可通過視頻預(yù)處理器執(zhí)行。源裝置12和目的地裝置14僅為此類譯碼裝置的實例,其中源裝置12產(chǎn)生經(jīng)譯碼視頻數(shù)據(jù)以供傳輸?shù)侥康牡匮b置14。在一些實例中,裝置12、14可以實質(zhì)上對稱的方式操作,使得裝置12、14中的每一者包含視頻編碼和解碼組件。因此,系統(tǒng)10可支持視頻裝置12、14之間的單向或雙向視頻傳輸以例如用于視頻流式傳輸、視頻回放、視頻廣播或視頻電話。
源裝置12的視頻源18可包含視頻捕獲裝置,例如攝像機(jī)、含有先前所捕獲視頻的視頻存檔和/或用于從視頻內(nèi)容提供者接收視頻的視頻饋送接口。作為另一替代方案,視頻源18可產(chǎn)生基于計算機(jī)圖形的數(shù)據(jù)作為源視頻,或?qū)崨r視頻、存檔視頻與計算機(jī)產(chǎn)生的視頻的組合。在一些狀況下,如果視頻源18是攝像機(jī),那么源裝置12和目的地裝置14可形成所謂的相機(jī)電話或視頻電話。然而,如上文所提到,本發(fā)明中所描述的技術(shù)一般可適用于視頻譯碼,且可應(yīng)用于無線和/或有線應(yīng)用。在每一狀況下,可由視頻編碼器20編碼所捕獲的、預(yù)捕獲的或計算機(jī)產(chǎn)生的視頻。經(jīng)編碼視頻信息可接著通過輸出接口22輸出到計算機(jī)可讀媒體16和/或存儲裝置32上。
目的地裝置14的輸入接口28從計算機(jī)可讀媒體16或存儲裝置32接收信息。計算機(jī)可讀媒體16或存儲裝置32的信息可包含由視頻編碼器20界定的語法信息(其還由視頻解碼器30使用),所述語法信息包含描述塊和其它經(jīng)譯碼單元的特性和/或處理的語法元素。顯示裝置31將經(jīng)解碼視頻數(shù)據(jù)顯示給用戶,且可包括各種顯示裝置中的任一者,例如陰極射線管(CRT)、液晶顯示器(LCD)、等離子顯示器、有機(jī)發(fā)光二極管(OLED)顯示器或另一類型的顯示裝置。
視頻編碼器20和視頻解碼器30各自可以經(jīng)實施為可適用的各種合適的編碼器或解碼器電路中的任一者,例如一或多個微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、離散邏輯電路、軟件、硬件、固件或其任何組合。當(dāng)所述技術(shù)部分用軟件實施時,裝置可將用于所述軟件的指令存儲在合適的非暫時性計算機(jī)可讀媒體中,并使用一或多個處理器用硬件執(zhí)行所述指令以執(zhí)行本發(fā)明的技術(shù)。視頻編碼器20和視頻解碼器30中的每一者可以包含在一或多個編碼器或解碼器中,所述編碼器或解碼器中的任一者可以集成為組合視頻編碼器/解碼器(編解碼器)的部分。包含視頻編碼器20和/或視頻解碼器30的裝置可包括集成電路、微處理器和/或無線通信裝置,例如蜂窩式電話。
雖然圖1中未展示,但在一些方面中,視頻編碼器20和視頻解碼器30可各自與音頻編碼器和解碼器集成,且可包含適當(dāng)多路復(fù)用器-多路分用器單元或其它硬件和軟件,以處置對共同數(shù)據(jù)流或單獨數(shù)據(jù)流中的音頻和視頻兩者的編碼。如果適用的話,多路復(fù)用器-多路分用器單元可符合ITU H.223多路復(fù)用器協(xié)議,或例如用戶數(shù)據(jù)報協(xié)議(UDP)等其它協(xié)議。
本發(fā)明可大體上涉及視頻編碼器20,其將某些信息“用信號發(fā)送”到例如視頻解碼器30的另一裝置。然而,應(yīng)理解,視頻編碼器20可通過使某些語法元素與視頻數(shù)據(jù)的各種經(jīng)編碼部分相關(guān)聯(lián)來用信號發(fā)送信息。也就是說,視頻編碼器20可以通過將某些語法元素存儲到視頻數(shù)據(jù)的各種經(jīng)編碼部分的標(biāo)頭來“用信號發(fā)送”數(shù)據(jù)。在一些狀況下,這些語法元素可在由視頻解碼器30接收和解碼之前進(jìn)行編碼和存儲(例如,存儲到存儲裝置32)。因此,術(shù)語“用信號發(fā)送”可大體指語法或用于解碼經(jīng)壓縮的視頻數(shù)據(jù)的其它數(shù)據(jù)的通信,不管此通信實時還是幾乎實時或是在一段時間內(nèi)發(fā)生,例如,可當(dāng)在編碼時將語法元素存儲到媒體時發(fā)生,接著所述語法元素可在被存儲到此媒體之后的任何時間由解碼裝置檢索。
視頻編碼器20和視頻解碼器30可根據(jù)視頻壓縮標(biāo)準(zhǔn)(例如,HEVC標(biāo)準(zhǔn))操作。雖然本發(fā)明的技術(shù)不限于任何特定譯碼標(biāo)準(zhǔn),但所述技術(shù)可與HEVC標(biāo)準(zhǔn)相關(guān),并且尤其與HEVC標(biāo)準(zhǔn)的擴(kuò)展(例如,RExt擴(kuò)展或屏幕內(nèi)容譯碼)相關(guān)。HEVC標(biāo)準(zhǔn)化努力是基于被稱作HEVC測試模型(HM)的視頻譯碼裝置的模型。
一般來說,HM的工作模型描述可將視頻圖片劃分成包含亮度和色度樣本兩者的譯碼樹單元(CTU)序列。位流內(nèi)的語法數(shù)據(jù)可界定最大譯碼單元(LCU)大小,其為就像素數(shù)目來說CTU可具有的最大大小,例如64×64。CTU的大小可介于HEVC主層次中的16×16到64×64的范圍(盡管技術(shù)上可支持8×8CTU大小)。可將視頻圖片分割成一或多個切片,其中的每一者可包含多個連續(xù)CTU。CTU中的每一者可包括亮度樣本的CTB、色度樣本的兩個對應(yīng)CTB,和用以譯碼CTB的樣本的語法結(jié)構(gòu)。在單色圖片或具有三個單獨色彩平面的圖片中,CTU可包括單一CTB和用以譯碼CTB的樣本的語法結(jié)構(gòu)。
每一CTU可根據(jù)四叉樹而分裂成譯碼單元(CU)。一般來說,四叉樹數(shù)據(jù)結(jié)構(gòu)包含每個CU一個節(jié)點,其中根節(jié)點對應(yīng)于CTB。如果CU分裂成四個子CU,那么對應(yīng)于CU的節(jié)點包含四個葉節(jié)點,其中葉節(jié)點中的每一者對應(yīng)于所述子CU中的一者。CU可包括具有亮度樣本陣列、Cb樣本陣列和Cr樣本陣列的圖片的亮度樣本的譯碼塊和色度樣本的兩個對應(yīng)譯碼塊,以及用于對譯碼塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。在單色圖片或具有三個單獨色彩平面的圖片中,CU可包括單個譯碼塊和用于對所述譯碼塊的樣本進(jìn)行譯碼的語法結(jié)構(gòu)。譯碼塊為CTB的樣本的N×N塊。每一CU以一個模式譯碼,例如幀內(nèi)預(yù)測、幀間預(yù)測或幀內(nèi)BC中的一者。
四叉樹數(shù)據(jù)結(jié)構(gòu)的每一節(jié)點可提供用于對應(yīng)CU的語法數(shù)據(jù)。舉例來說,四叉樹中的節(jié)點可包含分裂旗標(biāo),從而指示對應(yīng)于所述節(jié)點的CU是否分裂成子CU。用于CU的語法元素可以遞歸式定義,且可取決于CU是否分裂成子CU。如果CU未經(jīng)進(jìn)一步分裂,那么將其稱作葉CU。在本發(fā)明中,葉CU的四個子CU也將被稱作葉CU,即使不存在原始葉CU的明確分裂時也是如此。舉例來說,如果16x16大小的CU不進(jìn)一步分裂,那么所述四個8x8子CU將也被稱作葉CU,盡管16x16CU從未分裂。
CU具有與H.264標(biāo)準(zhǔn)的宏塊類似的目的,但CU不具有大小區(qū)別。舉例來說,CU可分裂成四個子節(jié)點(還被稱作子CU),且每一子節(jié)點又可為父節(jié)點,且分裂成另外四個子節(jié)點。最終的未經(jīng)分裂子節(jié)點(被稱作四叉樹的葉節(jié)點)包括譯碼節(jié)點,也被稱作葉CU。與經(jīng)譯碼位流相關(guān)聯(lián)的語法數(shù)據(jù)可界定CTB可分裂的最大次數(shù)(被稱作最大CU深度),且還可界定譯碼節(jié)點的最小大小。因此,位流還可界定最小譯碼單元(SCU)。本發(fā)明使用術(shù)語“塊”、“視頻塊”、“視頻數(shù)據(jù)塊”或其類似者以指代在HEVC的情形下的CTU、CTB、CU、譯碼塊、預(yù)測單元(PU)或變換單元(TU)中的任一者或在其它標(biāo)準(zhǔn)的情形下的類似數(shù)據(jù)結(jié)構(gòu)(例如,H.264/AVC中的宏塊和其子塊)。
CU包含譯碼節(jié)點和與譯碼節(jié)點相關(guān)聯(lián)的PU和TU。CU的大小對應(yīng)于譯碼節(jié)點的大小并且形狀必須是正方形。CU的大小范圍可從8×8像素直到具有最大64×64個像素或更大的CTB的大小。每一CU可以含有一或多個PU和一或多個TU。每一CU以一個模式譯碼,例如幀內(nèi)預(yù)測、幀間預(yù)測或幀內(nèi)BC中的一者。
一般來說,PU表示對應(yīng)于對應(yīng)的CU的全部或一部分的空間區(qū),且可包含用于檢索PU的預(yù)測性樣本的數(shù)據(jù)。此外,PU包含與預(yù)測有關(guān)的數(shù)據(jù)。舉例來說,當(dāng)CU經(jīng)幀內(nèi)模式編碼時,一或多個PU的數(shù)據(jù)可包含于殘余四叉樹(RQT)中,所述殘余四叉樹可包含描述對應(yīng)于PU的TU的幀內(nèi)預(yù)測模式的數(shù)據(jù)。作為另一實例,當(dāng)CU經(jīng)幀間模式編碼時,一或多個PU可包含界定PU的一或多個運動向量的數(shù)據(jù)。作為另一實例,當(dāng)根據(jù)幀內(nèi)BC編碼CU時,一或多個PU可包含界定PU的一或多個塊向量的數(shù)據(jù)。
預(yù)測塊可為應(yīng)用相同預(yù)測的樣本的矩形(即,正方形或非正方形)塊。CU的PU可包括圖片的亮度樣本的預(yù)測塊、圖片的色度樣本的兩個對應(yīng)的預(yù)測塊,以及用以對預(yù)測塊樣本進(jìn)行預(yù)測的語法結(jié)構(gòu)。在單色圖片或具有三個單獨色彩平面的圖片中,PU可包括單個預(yù)測塊,和用以對預(yù)測塊樣本進(jìn)行預(yù)測的語法結(jié)構(gòu)。當(dāng)兩個PU存在于一個CU中時,其可為一半大小的矩形或具有CU的1/4或3/4大小的兩個矩形大小。
在將變換(例如,離散余弦變換(DCT)、整數(shù)變換、小波變換或概念上類似的變換)應(yīng)用于殘余視頻數(shù)據(jù)之后,TU可包含變換域中的系數(shù)。殘余數(shù)據(jù)可對應(yīng)于未經(jīng)編碼圖片的像素與對應(yīng)于PU的預(yù)測值之間的像素差。視頻編碼器20可形成包含CU的殘余數(shù)據(jù)的TU,并且接著變換TU以產(chǎn)生用于CU的變換系數(shù)。變換塊可為應(yīng)用相同變換的樣本的矩形塊。CU的變換單元(TU)可包括亮度樣本的變換塊、色度樣本的兩個對應(yīng)變換塊和用于對變換塊樣本進(jìn)行變換的語法結(jié)構(gòu)。在單色圖片或具有三個單獨色彩平面的圖片中,TU可包括單個變換塊,和用以對變換塊樣本進(jìn)行變換的語法結(jié)構(gòu)。
在變換之后,視頻編碼器20可以執(zhí)行變換系數(shù)的量化。量化一般指代量化變換系數(shù)以可能減少用于表示系數(shù)的數(shù)據(jù)量從而提供進(jìn)一步壓縮的過程。量化過程可減小與系數(shù)中的一些或全部相關(guān)聯(lián)的位深度。舉例來說,n位值可在量化期間被向下舍入到m位值,其中n大于m。
視頻編碼器20可以掃描變換系數(shù),從而從包含經(jīng)量化變換系數(shù)的二維矩陣產(chǎn)生一維向量。掃描可經(jīng)設(shè)計以將較高能量(且因此較低頻率)系數(shù)放置在陣列的前面,且將較低能量(且因此較高頻率)系數(shù)放置在陣列的后面。在一些實例中,視頻編碼器20可利用預(yù)先界定的掃描次序來掃描經(jīng)量化變換系數(shù)以產(chǎn)生可被熵編碼的串行化向量。在其它實例中,視頻編碼器20可以執(zhí)行自適應(yīng)掃描。
在掃描經(jīng)量化變換系數(shù)以形成一維向量之后,視頻編碼器20可(例如)根據(jù)上下文自適應(yīng)可變長度譯碼(CAVLC)、上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(CABAC)、基于語法的上下文自適應(yīng)二進(jìn)制算術(shù)譯碼(SBAC)、概率間隔分割熵(PIPE)譯碼或另一熵編碼方法來熵編碼一維向量。視頻編碼器20還可對與經(jīng)編碼視頻數(shù)據(jù)相關(guān)聯(lián)的語法元素進(jìn)行熵編碼,以供視頻解碼器30在解碼視頻數(shù)據(jù)時使用。
另外,視頻編碼器20可例如通過對殘余數(shù)據(jù)進(jìn)行反量化和反變換,且將殘余數(shù)據(jù)與預(yù)測數(shù)據(jù)進(jìn)行組合而重構(gòu)經(jīng)預(yù)測圖片。以此方式,視頻編碼器20可模擬由視頻解碼器30執(zhí)行的重構(gòu)過程。因此,視頻編碼器20和視頻解碼器30兩者將可存取實質(zhì)上相同的經(jīng)重構(gòu)視頻數(shù)據(jù)(例如,圖片或來自圖片的塊)以供用于圖片內(nèi)、圖片間或幀內(nèi)BC預(yù)測中。
除經(jīng)編碼視頻數(shù)據(jù)之外,視頻編碼器20可在經(jīng)編碼視頻位流中包含告知視頻解碼器如何對特定視頻數(shù)據(jù)塊或其分組進(jìn)行解碼的語法元素。視頻編碼器20可包含各種語法結(jié)構(gòu)中的語法元素,例如取決于其涉及的視頻結(jié)構(gòu)的類型(例如,序列、圖片、切片、塊)以及其值可改變的頻繁程度。舉例來說,視頻編碼器20可在參數(shù)集,例如視頻參數(shù)集(VPS)、序列參數(shù)集(SPS)或圖片參數(shù)集(PPS)中包含語法元素。作為其它實例,視頻編碼器20可在SEI消息和切片標(biāo)頭中包含語法元素。
一般來說,視頻解碼器30可執(zhí)行解碼過程,其為與由視頻編碼器執(zhí)行的編碼過程相反的過程。舉例來說,視頻解碼器30可使用由視頻編碼器用于對經(jīng)量化視頻數(shù)據(jù)進(jìn)行熵編碼的熵編碼技術(shù)的相反過程來執(zhí)行熵解碼。視頻解碼器30可進(jìn)一步使用由視頻編碼器20使用的量化技術(shù)的相反過程來反量化所述視頻數(shù)據(jù),且可執(zhí)行由視頻編碼器20用于產(chǎn)生經(jīng)量化的變換系數(shù)的變換的相反過程。視頻解碼器30可接著將所得殘余塊應(yīng)用于鄰近參考視頻數(shù)據(jù)(幀內(nèi)預(yù)測)、來自另一圖片的預(yù)測性塊(幀間預(yù)測)或來自同一圖片的預(yù)測性塊(幀內(nèi)BC)以產(chǎn)生用于最終顯示的視頻塊。視頻解碼器30可經(jīng)配置、經(jīng)指令、經(jīng)控制或經(jīng)引導(dǎo)以基于由視頻解碼器30接收的位流中的由視頻編碼器20與經(jīng)編碼視頻數(shù)據(jù)一起提供的語法元素執(zhí)行由視頻編碼器20執(zhí)行的各種過程的相反過程。
每一圖片可包括亮度分量和一或多個色度分量。因此,本文中所描述的基于塊的編碼和解碼操作可同樣適用于包含亮度或色度像素值或與其相關(guān)聯(lián)的塊。
圖2是說明用于根據(jù)幀內(nèi)BC模式譯碼當(dāng)前視頻數(shù)據(jù)塊40的實例搜索區(qū)域48的概念圖。如由圖2所說明,對于當(dāng)前塊40的搜索區(qū)域48與當(dāng)前塊40在同一圖片42(即,當(dāng)前圖片42)內(nèi)。搜索區(qū)域48包含當(dāng)前圖片42內(nèi)的多個先前經(jīng)重構(gòu)視頻數(shù)據(jù)塊,包含預(yù)測性塊46。視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)可根據(jù)幀內(nèi)BC模式使用預(yù)測性塊46預(yù)測或重構(gòu)當(dāng)前塊40。
視頻編碼器20選擇預(yù)測性塊46以用于根據(jù)當(dāng)前圖片42中的先前經(jīng)重構(gòu)視頻數(shù)據(jù)塊的集合預(yù)測當(dāng)前塊40。視頻編碼器20通過反量化和反變換也包含于經(jīng)編碼視頻位流中的視頻數(shù)據(jù),且求和所得殘余塊與用于預(yù)測經(jīng)重構(gòu)視頻數(shù)據(jù)塊的預(yù)測性塊來重構(gòu)視頻數(shù)據(jù)塊。視頻編碼器20可以多種方式界定圖片42內(nèi)的搜索區(qū)域48,如下文更詳細(xì)描述。視頻編碼器20可基于對基于搜索區(qū)域48內(nèi)的各種視頻塊預(yù)測和譯碼當(dāng)前視頻塊40的相對效率和準(zhǔn)確度的分析而從搜索區(qū)域48中的多個視頻塊之中選擇預(yù)測性塊46以預(yù)測當(dāng)前視頻塊40。視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)可在環(huán)路內(nèi)濾波(例如,解塊和樣本自適應(yīng)偏移(SAO)濾波)之前將搜索區(qū)域48內(nèi)的經(jīng)重構(gòu)塊存儲在緩沖器或存儲器中,使得預(yù)測信號尚未經(jīng)受環(huán)路內(nèi)濾波。使用尚未經(jīng)環(huán)路內(nèi)濾波的預(yù)測性塊可提高幀內(nèi)BC的預(yù)測準(zhǔn)確度和譯碼效率。
視頻編碼器20確定塊向量50,其也可被稱作偏移向量、位移向量或運動向量,且其表示預(yù)測性視頻塊46相對于當(dāng)前視頻塊40的位置或位移。視頻編碼器20可包含識別或界定經(jīng)編碼視頻位流中的塊向量50的一或多個語法元素。視頻解碼器30可解碼一或多個語法元素以確定塊向量50,且使用所確定的向量以識別當(dāng)前視頻塊40的預(yù)測性視頻塊46。視頻編碼器還可對經(jīng)編碼視頻位流中預(yù)測性塊46與當(dāng)前塊40之間的殘余差進(jìn)行編碼。視頻解碼器30可解碼來自位流的殘余差以及信息以識別預(yù)測性塊46,且對殘余與預(yù)測性塊進(jìn)行求和以重構(gòu)當(dāng)前塊40。
在一些實例中,塊向量50的分辨率可為整數(shù)像素,例如經(jīng)約束以具有整數(shù)像素分辨率。在這些實例中,視頻編碼器20和視頻解碼器30無需內(nèi)插預(yù)測性視頻塊46的像素值以確定當(dāng)前視頻塊40的預(yù)測值。在其它實例中,塊向量50的水平位移分量和垂直位移分量中的一者或兩者的分辨率可為子像素,例如提供分?jǐn)?shù)像素精確度。
在一些實例中,為了進(jìn)一步提高譯碼效率,視頻編碼器20和視頻解碼器30可預(yù)測塊向量50。在一些實例中,視頻譯碼器在每一CTB的開始處將塊向量預(yù)測值設(shè)置為(-w,0),其中w為當(dāng)前視頻數(shù)據(jù)塊的寬度。視頻譯碼器將塊向量預(yù)測值更新為以幀內(nèi)BC模式譯碼的最新CU的塊向量。如果并未以幀內(nèi)BC譯碼CU,那么塊向量預(yù)測值保持不變。在塊向量預(yù)測之后,使用運動向量差譯碼方法(例如,HEVC規(guī)范中所指定)譯碼塊向量差。
當(dāng)前視頻塊40可為CU或CU的PU,且更確切地說,可為對應(yīng)于CU或PU的亮度或色度樣本塊。在一些實例中,視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)可將根據(jù)幀內(nèi)BC經(jīng)預(yù)測的CU分裂成多個PU。在這些實例中,視頻譯碼器可確定CU的PU中的每一者的相應(yīng)(例如,不同)塊向量50。舉例來說,視頻譯碼器可將2Nx2N CU分裂為兩個2NxN PU、兩個Nx2N PU,或四個NxN PU。
視頻編碼器20和視頻解碼器30根據(jù)本發(fā)明的技術(shù)確定當(dāng)前塊40的搜索區(qū)域48,例如搜索區(qū)域的位置、大小和形狀。本發(fā)明的技術(shù)可為視頻編碼器20提供在界定搜索區(qū)域48時的更大靈活性,此可提高譯碼效率,同時尤其在視頻解碼器30處限制實施和處理復(fù)雜度的提高。在一些狀況下,當(dāng)放大用于幀內(nèi)BC的搜索區(qū)域時,視頻譯碼器可應(yīng)用本文中所描述的限制或其它技術(shù)以限制實施和處理復(fù)雜度的提高。
如圖2中所說明,當(dāng)前塊40在當(dāng)前CTU 44內(nèi)。雖然為了易于說明未展示于圖2中,但搜索區(qū)域48可包含當(dāng)前CTU 44的任何經(jīng)重構(gòu)部分。另外或替代地,搜索區(qū)域48可包含一或多個相鄰經(jīng)重構(gòu)CTU和/或一或多個相鄰CTU的經(jīng)重構(gòu)部分。
在一些實例中,如圖2中所說明,視頻譯碼器基于搜索區(qū)域的經(jīng)界定的大小(其可為當(dāng)前CTU 44的相鄰W x H矩形區(qū)域的經(jīng)界定大小)確定搜索區(qū)域48。舉例來說,視頻譯碼器可確定搜索區(qū)域48包含W x H矩形區(qū)域的經(jīng)重構(gòu)部分。如圖2中所說明,由于CTU高度×當(dāng)前CTU 44左邊的寬度WL的區(qū)域已經(jīng)重構(gòu),因此視頻譯碼器在搜索區(qū)域48中包含那個區(qū)域。另一方面,由于CTU高度×當(dāng)前CTU 44右邊的寬度WR的區(qū)域52尚未經(jīng)重構(gòu),因此視頻譯碼器并不在搜索區(qū)域48中包含區(qū)域52。視頻譯碼器還可在搜索區(qū)域48中包含當(dāng)前CTU 44上方的W×HT區(qū)域內(nèi)的任何部分。
在一些實例中,搜索區(qū)域48的大小和/或形狀(例如,區(qū)域的大小和/或形狀,所述區(qū)域中的經(jīng)重構(gòu)部分為搜索區(qū)域48,例如圖2中所說明的W×H矩形區(qū)域)經(jīng)預(yù)先界定、固定且對于視頻編碼器20和視頻解碼器30兩者來說已知。在其它實例中,視頻編碼器20可改變區(qū)域的大小和/或形狀,且將信息用信號發(fā)送到視頻解碼器30以使得視頻解碼器30能夠確定搜索區(qū)域的大小和/或形狀。在這些實例中,視頻編碼器20可在每個塊、每個切片、每個圖片或每個序列基礎(chǔ)上改變區(qū)域的大小和/或形狀,且在對應(yīng)語法結(jié)構(gòu)(例如,切片標(biāo)頭、PPS、VPS、SEI消息或視頻可用信息(VUI)語法結(jié)構(gòu))中用信號發(fā)送大小和/或形狀。在一些實例中,以對于視頻編碼器20和視頻解碼器30兩者已知的方式基于圖片42內(nèi)當(dāng)前CTU 44的位置而改變搜索區(qū)域48的大小和/或形狀,且視頻譯碼器基于CTU位置確定搜索區(qū)域48的大小和/或形狀。
在任何狀況下,可依據(jù)CTU或LCU大小或像素單元來界定大小。舉例來說,W×H矩形區(qū)域的大小可經(jīng)界定為CTU或LCU寬度的倍數(shù),例如5*LCUWidth,且矩形區(qū)域的高度可經(jīng)界定為CTB或LCU高度的倍數(shù),例如4*LCUHeight。作為另一實例,W×H矩形區(qū)域的大小可經(jīng)界定為320×256個像素單元。在一些實例中,可由視頻編碼器20用信號發(fā)送大小(例如,CTU或LCU高度和/或?qū)挾鹊谋稊?shù))以用于視頻解碼器30。
如圖2中所說明,W×H矩形區(qū)域包含中心點54。在一些實例中,視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)確定中心點54,且基于搜索區(qū)域48的中心點54和經(jīng)界定的大小和/或形狀確定當(dāng)前塊40的搜索區(qū)域48。雖然在圖2中經(jīng)說明為相對于當(dāng)前CTU 44水平地居中且延伸到包含當(dāng)前CTU 44的CTU行的底部,但在這些實例中,搜索區(qū)域可取決于中心點54的所確定的位置而在任一方向上水平地移位和/或垂直地在包含當(dāng)前CTU 44的CTU行的底部上方移位。改變中心點54相對于當(dāng)前CTU 44或當(dāng)前塊40的位置可允許識別更準(zhǔn)確的預(yù)測性塊46,此可提高譯碼效率。
在一些實例中,視頻譯碼器基于經(jīng)先前譯碼視頻塊的前一塊向量確定中心點54。舉例來說,視頻譯碼器可識別當(dāng)前CTU 44的第一塊向量,且基于所述第一塊向量指向的位置確定中心點54。當(dāng)前CTU 44的第一塊向量可為使用幀內(nèi)BC模式經(jīng)譯碼的當(dāng)前CTU44的第一CU的塊向量。
作為另一實例,視頻譯碼器可識別相鄰塊的塊向量,且基于相鄰塊的塊向量指向的位置確定中心點54。相鄰塊可為當(dāng)前塊40或當(dāng)前CTU 44的空間或時間相鄰塊。在一些實例中,哪一相鄰塊用于確定當(dāng)前塊40的搜索區(qū)域48的中心點54為固定的且對于視頻編碼器20和視頻解碼器30兩者已知。在其它實例中,視頻編碼器20和視頻解碼器30可使用經(jīng)界定過程構(gòu)建候選相鄰塊列表,且視頻編碼器20可在經(jīng)編碼視頻位流中將候選相鄰塊(其塊向量用于確定中心點54)用信號發(fā)送到視頻解碼器。
在一些實例中,視頻編碼器20將中心點54在當(dāng)前圖片42內(nèi)的位置在經(jīng)編碼視頻位流內(nèi)用信號發(fā)送到視頻解碼器30。在這些實例中,視頻編碼器20可在每個塊或每個切片的基礎(chǔ)上改變中心點54的位置,且在語法結(jié)構(gòu)(例如,切片標(biāo)頭)中用信號發(fā)送所述位置。視頻譯碼器基于所確定的搜索區(qū)域48而將經(jīng)重構(gòu)視頻塊(例如,尚未經(jīng)環(huán)路內(nèi)濾波)存儲在緩沖器或另一存儲器內(nèi)。在搜索區(qū)域48的中心位置54和/或大小或形狀在每個塊或每個切片的基礎(chǔ)上改變的實例中,視頻譯碼器可需要存儲并不是一個塊的搜索區(qū)域的一部分的經(jīng)重構(gòu)視頻塊,以使得所述經(jīng)重構(gòu)視頻塊仍然可供用于隨后經(jīng)譯碼塊的搜索區(qū)域。
在一些狀況下,有可能搜索區(qū)域的一部分(例如,根據(jù)關(guān)于圖2所描述的技術(shù)而確定)不可用于幀內(nèi)BC預(yù)測。舉例來說,搜索區(qū)域的跨越切片、圖塊或包含當(dāng)前塊的圖片的邊界的一部分可能不可用。作為另一實例,當(dāng)WPP用于并行地譯碼圖片中的CTU行時,根據(jù)WPP的CTU延遲而尚未經(jīng)處理的較高CTU行中的CTU可能不可用。作為另一實例,搜索區(qū)域的尚未經(jīng)重構(gòu)的任何部分不可用;或當(dāng)啟用經(jīng)約束的幀內(nèi)預(yù)測時,搜索區(qū)域的經(jīng)幀間預(yù)測的任何部分不可用。
在一些實例中,當(dāng)視頻譯碼器確定搜索區(qū)域的一部分不可用于對當(dāng)前視頻塊的幀內(nèi)BC譯碼時,視頻譯碼器可應(yīng)用本文中所描述的技術(shù)中的一或多者中的任一者以修改所確定的搜索區(qū)域。在一些實例中,視頻譯碼器通過將所確定的搜索區(qū)域限制于可用區(qū)域而修改所確定的搜索區(qū)域。在一些實例中,視頻譯碼器通過填充搜索區(qū)域的不可用部分而修改所確定的搜索區(qū)域。
視頻譯碼器可通過例如將HEVC規(guī)范中所描述的填充技術(shù)用于幀間參考幀來填充不可用部分。在一些實例中,視頻譯碼器可通過對樣本的水平和/或垂直復(fù)制(例如,復(fù)制接近(例如,最近)的可用樣本)來填充不可用部分。在一些實例中,視頻譯碼器可通過使用固定樣本值(例如,根據(jù)0,1<<(B-1),例如來自此集合的樣本,其中B為樣本位深度)填滿不可用部分來填充不可用部分。在一些實例中,視頻譯碼器可共同使用復(fù)制和填滿以填充當(dāng)前塊的搜索區(qū)域,例如視頻譯碼器可在接近樣本不可用于復(fù)制時使用通過固定值來填滿。
圖3A和3B是說明當(dāng)搜索區(qū)域的一部分跨越邊界時用于幀內(nèi)BC的搜索區(qū)域的移位的概念圖。在一些實例中,搜索區(qū)域的一部分可由于其在例如切片邊界、圖塊邊界或圖片邊界等邊界的不同于當(dāng)前視頻塊的側(cè)上而不可用。搜索區(qū)域的跨越切片和圖塊邊界的各部分可歸因于對不同切片或圖塊的單獨和/或并行處理或由于不同切片或圖塊的視頻數(shù)據(jù)可在不同網(wǎng)絡(luò)抽象層單元中傳輸,從而增大另一切片或圖塊的數(shù)據(jù)可丟失(作為實例)的可能性而被視為不可用的。
在一些實例中,當(dāng)視頻譯碼器確定搜索區(qū)域的一部分(例如,根據(jù)關(guān)于圖2所描述的技術(shù)而確定)在邊界的不同于當(dāng)前塊的側(cè)上時,視頻譯碼器可移位搜索區(qū)域使得整個搜索區(qū)域在邊界的與當(dāng)前塊相同的側(cè)上。在一些實例中,視頻譯碼器可移位搜索區(qū)域而不會更改搜索區(qū)域的大小和/或形狀,例如不會更改W×H矩形區(qū)域的大小和形狀。一般來說,移位搜索區(qū)域并不指代移位圖片內(nèi)的像素值,而是可包含在移位之后根據(jù)搜索區(qū)域的新位置而將不同塊存儲在當(dāng)前圖片的經(jīng)重構(gòu)塊的緩沖器中或從所述緩沖器檢索不同的所存儲塊。
圖3A的實例說明當(dāng)前CTU 64內(nèi)的對當(dāng)前視頻塊的搜索區(qū)域68。與圖2的搜索區(qū)域48相同,視頻譯碼器可基于以關(guān)于圖2的當(dāng)前CTU 44所說明的方式相對于當(dāng)前CTU 64居中的W×H矩形而確定搜索區(qū)域68。然而,以關(guān)于圖2的當(dāng)前CTU 44所說明的方式使搜索區(qū)域68居中將搜索區(qū)域68的一部分放置越過邊界60,其可為切片邊界、圖塊邊界或圖片邊界。
在這些實例中,如圖3A所說明,視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)可向右移位搜索區(qū)域68使得整個搜索區(qū)域68位于邊界60的右側(cè)。如圖3A中所說明,由于當(dāng)前CTU 64右邊的CTU高度×(WR+WL)寬度的區(qū)域72尚未經(jīng)重構(gòu),因此視頻譯碼器并不在搜索區(qū)域68中包含區(qū)域72。視頻譯碼器還可在搜索區(qū)域68中包含當(dāng)前CTU 64上方的具有W×HT區(qū)域的任何部分。
圖3B的實例說明當(dāng)前CTU 84內(nèi)的對當(dāng)前視頻塊的搜索區(qū)域88。與圖2的搜索區(qū)域48相同,視頻譯碼器可基于以關(guān)于圖2的當(dāng)前CTU 44所說明的方式相對于當(dāng)前CTU 84居中的W×H矩形而確定搜索區(qū)域88。然而,以關(guān)于圖2的當(dāng)前CTU 44所說明的方式使搜索區(qū)域88居中將搜索區(qū)域88的一部分放置越過邊界80,其可為切片邊界、圖塊邊界或圖片邊界。在這些實例中,如圖3B所說明,視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)可向左移位搜索區(qū)域88使得整個搜索區(qū)域88位于邊界80左側(cè)。
如上文所描述,當(dāng)WPP用于并行地譯碼圖片中的CTU行時,尚未根據(jù)WPP的CTU延遲而經(jīng)處理的較高CTU行中的CTU可能不可用。一般來說,當(dāng)啟用WPP時,視頻譯碼器將切片劃分成CTU行,且在垂直方向上逐行滯后的情況下并行地處理所述行。舉例來說,視頻譯碼器可處理第一或頂行,且僅在延遲之后(例如,在已經(jīng)處理第一行中的兩個CTU之后)開始處理第二行。視頻譯碼器可僅在延遲之后(例如,在已經(jīng)處理第二行中的兩個CTU之后)處理第三行,以此類推。每一行中的熵譯碼器的上下文模型根據(jù)具有兩個CTU處理滯后的前一行中的那些模型推斷。WPP提供在相當(dāng)精細(xì)粒度層級下(例如,在切片內(nèi))的處理并行性形式。WPP常??商峁┍葓D塊更好的壓縮性能,且避免可由于使用圖塊引起的一些視覺假象。
圖4是說明當(dāng)波前并行處理(WPP)用于譯碼當(dāng)前圖片92時將對當(dāng)前視頻塊的搜索區(qū)域98限制在當(dāng)前CTU 94L內(nèi)的概念圖。圖4說明布置成行96A到96C(統(tǒng)稱為“行96”)的CTU 94A到94L(統(tǒng)稱為“CTU 94”)。行96中的每一者中所說明的CTU 94的數(shù)目還說明對于圖片92的WPP從行96A直到行96C的垂直逐行的兩個CTU滯后。當(dāng)使用WPP時,歸因于滯后或歸因于不同行的不同處理速度,可存在可或不可用于預(yù)測的搜索區(qū)域(例如,根據(jù)圖2的技術(shù)基于矩形區(qū)域而確定)的區(qū)。
在一些實例中,視頻譯碼器(例如,視頻編碼器20和/或視頻解碼器30)可確定WPP被用于譯碼當(dāng)前圖片92,且基于WPP被用于譯碼當(dāng)前圖片的確定將對當(dāng)前塊的搜索區(qū)域98限制在當(dāng)前CTU 94L中。舉例來說,視頻譯碼器可將搜索區(qū)域98限制于在包含當(dāng)前塊的當(dāng)前CTU 94L左邊和在所述CTU 94L的當(dāng)前行96C中的CTU,即CTU 94K。作為另一實例,視頻譯碼器可將搜索區(qū)域98限制于相對于當(dāng)前CTU 94L在左邊、對角左上方或上方的CTU,例如CTU 94A、94B、94G、94H和94K。作為另一實例,如圖4中所說明,視頻譯碼器可將搜索區(qū)域98限制于相對于當(dāng)前CTU在左邊、對角左上方或上方的CTU;和對于當(dāng)前行上方的行,根據(jù)WPP的譯碼延遲在當(dāng)前行上方的每行的額外兩個右方CTU,即CTU 94A到94K。
在根據(jù)本發(fā)明的技術(shù)的一些實例中,用于幀內(nèi)BC譯碼當(dāng)前圖片中的任何塊的搜索區(qū)域為所述圖片的整個經(jīng)重構(gòu)部分,其實質(zhì)上可為整個經(jīng)重構(gòu)圖片。如果以此方式放大搜索區(qū)域,那么可需要另一存儲器以提供足以存儲圖片的經(jīng)重構(gòu)塊的緩沖區(qū)。存儲整個經(jīng)重構(gòu)圖片以供幀內(nèi)BC的另一存儲器對于視頻譯碼器(例如,視頻編碼器20,且尤其視頻解碼器30)可為繁重的。
圖片或幀緩沖器已經(jīng)用于幀間預(yù)測。為了避免用于幀內(nèi)BC的另一幀緩沖器,視頻譯碼器可重新運用用于存儲幀間幀的一個參考幀的一個緩沖器以替代地存儲用于幀內(nèi)BC預(yù)測的經(jīng)重構(gòu)圖片。視頻譯碼器可以各種方式中的任一者來處置此幀緩沖器的相沖突的用途。
舉例來說,視頻譯碼器可禁用也執(zhí)行幀間預(yù)測的幀的幀內(nèi)BC。然而,禁用幀間幀的幀內(nèi)BC就性能來說可具有一些損失。在另一實例中,為了減小此些損失,視頻譯碼器可對于并未執(zhí)行幀間預(yù)測的幀,將全幀用作幀內(nèi)BC的搜索區(qū)域,且對于執(zhí)行幀間預(yù)測的幀,使用較小搜索區(qū)域,例如根據(jù)參考圖2到4在上文中所描述的技術(shù)而確定。在其它實例中,對于所有幀(包含執(zhí)行幀間預(yù)測的那些幀),參考幀的數(shù)目減小1,且視頻譯碼器可僅使用剩余參考幀以供幀間預(yù)測。
圖5是說明可使用本發(fā)明中所描述的用于確定幀內(nèi)BC的搜索區(qū)域的技術(shù)的視頻編碼器20的實例的框圖。出于說明的目的將在HEVC譯碼的情形下描述視頻編碼器20,但關(guān)于其它譯碼標(biāo)準(zhǔn)并不限制本發(fā)明。此外,視頻編碼器20可經(jīng)配置以實施根據(jù)對HEVC的范圍擴(kuò)展(RExt)或屏幕內(nèi)容譯碼(SCC)擴(kuò)展的技術(shù)。
視頻編碼器20可執(zhí)行視頻切片內(nèi)的視頻塊的幀內(nèi)和幀間譯碼。幀內(nèi)譯碼依賴于空間預(yù)測來減少或去除給定視頻圖片內(nèi)的視頻中的空間冗余。幀間譯碼依賴于時間預(yù)測或視圖間預(yù)測以減少或去除視頻序列的鄰近圖片內(nèi)的視頻中的時間冗余或減少或去除其它視圖中的視頻冗余。幀內(nèi)模式(I模式)可以指若干基于空間的壓縮模式中的任一者。幀間模式(例如,單向預(yù)測(P模式)或雙向預(yù)測(B模式))可指若干基于時間的壓縮模式中的任一者。視頻編碼器20還可以被配置成幀內(nèi)BC模式以基于來自同一圖片的視頻數(shù)據(jù)的其它經(jīng)重構(gòu)塊而預(yù)測視頻數(shù)據(jù)塊,如本文中所描述。
在圖5的實例中,視頻編碼器20可包含視頻數(shù)據(jù)存儲器140、預(yù)測處理單元142、搜索區(qū)域存儲器164、濾波器處理單元166、參考圖片存儲器168、求和器150、變換處理單元152、量化處理單元154和熵編碼單元156。預(yù)測處理單元142又包含運動估計單元144、運動補(bǔ)償單元146、幀內(nèi)預(yù)測處理單元148和幀內(nèi)BC處理單元149。為了視頻塊重構(gòu),視頻編碼器20還包含反量化處理單元158,反變換處理單元160和求和器162。
在各種實例中,可給視頻編碼器20的單元分派任務(wù)以執(zhí)行本發(fā)明的技術(shù)。并且,在一些實例中,本發(fā)明的技術(shù)可被劃分在視頻編碼器20的單元中的一或多者當(dāng)中。舉例來說,幀內(nèi)BC處理單元149可單獨執(zhí)行或與視頻編碼器20的其它單元(例如,運動估計單元144、運動補(bǔ)償單元146、幀內(nèi)預(yù)測處理單元148、搜索區(qū)域存儲器164和熵編碼單元156)組合執(zhí)行本發(fā)明的技術(shù)。
視頻數(shù)據(jù)存儲器140可存儲待由視頻編碼器20的組件編碼的視頻數(shù)據(jù)。可例如從視頻源18獲得存儲于視頻數(shù)據(jù)存儲器140中的視頻數(shù)據(jù)。搜索區(qū)域存儲器164和參考圖片存儲器168為存儲供用于通過視頻編碼器20編碼視頻數(shù)據(jù)(例如,在幀內(nèi)或幀間譯碼模式下,還被稱作幀內(nèi)或幀間預(yù)測譯碼模式以及幀內(nèi)BC模式)中的參考視頻數(shù)據(jù)的緩沖器的實例。視頻數(shù)據(jù)存儲器140、搜索區(qū)域存儲器164和參考圖片存儲器168可由各種存儲器裝置中的任一者形成,例如動態(tài)隨機(jī)存取存儲器(DRAM)(包含同步DRAM(SDRAM))、磁阻式RAM(MRAM)、電阻式RAM(RRAM)或其它類型的存儲器裝置。視頻數(shù)據(jù)存儲器140、搜索區(qū)域存儲器164和參考圖片存儲器168可由同一存儲器裝置或獨立存儲器裝置提供。在各種實例中,視頻數(shù)據(jù)存儲器140可與視頻編碼器20的其它組件一起在芯片上,或相對于所述組件在芯片外。
在編碼過程期間,視頻編碼器20接收待譯碼的視頻圖片或切片。所述圖片或切片可被劃分成多個視頻塊。雖然并未在圖5中說明,但視頻編碼器20可包含將數(shù)據(jù)分割成視頻塊的分割單元。此分割還可包含分割成切片、圖塊或其它較大單元,以及例如根據(jù)CTU和CU的四叉樹結(jié)構(gòu)的視頻塊分割。
運動估計單元144和運動補(bǔ)償單元146相對于一或多個參考圖片中的一或多個塊執(zhí)行所接收到的視頻塊的幀間預(yù)測性譯碼以提供時間壓縮或提供視圖間壓縮。幀內(nèi)預(yù)測處理單元148可替代地相對于與待譯碼的塊在同一圖片或切片中的一或多個相鄰塊執(zhí)行所接收到的視頻塊的幀內(nèi)預(yù)測性譯碼以提供空間壓縮。視頻編碼器20可執(zhí)行多個譯碼遍次(例如,以為每一視頻數(shù)據(jù)塊選擇適當(dāng)?shù)淖g碼模式)。
預(yù)測處理單元142可基于誤差結(jié)果選擇例如幀內(nèi)、幀間或幀內(nèi)BC的譯碼模式中的一個,以及將所得經(jīng)譯碼塊提供到求和器150以產(chǎn)生殘余塊數(shù)據(jù)且提供到求和器162以重構(gòu)經(jīng)編碼塊以供用于搜索區(qū)域內(nèi)和/或用作參考圖片。預(yù)測處理單元142還將語法信息(例如,運動向量、幀內(nèi)模式指示符、分區(qū)信息、塊向量和任何其它語法信息)提供到熵編碼單元156。
運動估計單元144與運動補(bǔ)償單元146可高度集成,但出于概念目的分開加以說明。運動估計單元144所執(zhí)行的運動估計是產(chǎn)生運動向量的過程,所述運動向量估計視頻塊的運動。舉例來說,運動向量可指示當(dāng)前視頻圖片內(nèi)的視頻塊的PU相對于參考圖片(或其它經(jīng)譯碼單元)內(nèi)的與當(dāng)前圖片(或其它經(jīng)譯碼單元)內(nèi)正被譯碼的當(dāng)前塊有關(guān)的預(yù)測性塊的位移。預(yù)測性塊是被發(fā)現(xiàn)就像素差來說與待譯碼的塊緊密匹配的塊,其可通過絕對差總和(SAD)、平方差總和(SSD)或其它差度量來確定。在一些實例中,視頻編碼器20可計算存儲于參考圖片存儲器168中的參考圖片的子整數(shù)像素位置的值。舉例來說,視頻編碼器20可內(nèi)插參考圖片的四分之一像素位置、八分之一像素位置或其它分?jǐn)?shù)像素位置的值。因此,運動估計單元144可執(zhí)行相對于全像素位置和分?jǐn)?shù)像素位置的運動搜索且輸出具有分?jǐn)?shù)像素精確度的運動向量。
運動估計單元144通過比較經(jīng)幀間譯碼切片中的視頻塊的PU的位置與參考圖片的預(yù)測性塊的位置來計算所述PU的運動向量。參考圖片可從第一參考圖片列表(列表0)或第二參考圖片列表(列表1)中選出,所述列表中的每一者識別存儲在參考圖片存儲器168中的一或多個參考圖片。運動估計單元144向熵編碼單元156和運動補(bǔ)償單元146發(fā)送計算出的運動向量。
由運動補(bǔ)償單元146執(zhí)行的運動補(bǔ)償可涉及基于由運動估計單元144確定的運動向量來獲取或產(chǎn)生預(yù)測性塊。同樣,在一些實例中,運動估計單元144與運動補(bǔ)償單元146可在功能上集成。在接收到當(dāng)前視頻塊的PU的運動向量后,運動補(bǔ)償單元146可即刻在參考圖片列表中的一者中定位所述運動向量指向的預(yù)測性塊。求和器150通過從正被譯碼的當(dāng)前視頻塊的像素值減去預(yù)測性塊的像素值從而形成像素差值來形成殘余視頻塊,如下文所論述。一般來說,運動估計單元144相對于亮度分量執(zhí)行運動估計,且運動補(bǔ)償單元146將基于亮度分量計算出的運動向量用于色度分量和亮度分量兩者。預(yù)測處理單元142還可產(chǎn)生供視頻解碼器30在解碼視頻切片的視頻塊時使用的與視頻塊和視頻切片相關(guān)聯(lián)的語法元素。
作為如上文所描述由運動估計單元144和運動補(bǔ)償單元146執(zhí)行的幀間預(yù)測的替代方案,幀內(nèi)預(yù)測處理單元148可以對當(dāng)前塊進(jìn)行幀內(nèi)預(yù)測。具體來說,幀內(nèi)預(yù)測處理單元148可確定用以對當(dāng)前塊進(jìn)行編碼的幀內(nèi)預(yù)測模式。在一些實例中,幀內(nèi)預(yù)測處理單元148可(例如)在單獨編碼遍次期間使用各種幀內(nèi)預(yù)測模式編碼當(dāng)前塊,且?guī)瑑?nèi)預(yù)測單元148可從經(jīng)測試模式中選擇適當(dāng)幀內(nèi)預(yù)測模式來使用。
舉例來說,幀內(nèi)預(yù)測處理單元148可以使用速率失真分析計算各種經(jīng)測試幀內(nèi)預(yù)測模式的速率失真值,并且從所述經(jīng)測試模式當(dāng)中選擇具有最佳速率失真特性的幀內(nèi)預(yù)測模式。速率失真分析一般確定經(jīng)編碼塊與經(jīng)編碼以產(chǎn)生所述經(jīng)編碼塊的原始的未經(jīng)編碼塊之間的失真(或誤差)的量,以及用以產(chǎn)生經(jīng)編碼塊的位速率(即,位數(shù)目)。幀內(nèi)預(yù)測處理單元148可以根據(jù)各種經(jīng)編碼塊的失真和速率計算比率,以確定哪種幀內(nèi)預(yù)測模式展現(xiàn)所述塊的最佳速率失真值。
在一些實例中,幀內(nèi)BC處理單元149可以類似于上文關(guān)于運動向量、運動估計單元144和運動補(bǔ)償單元146所描述的方式產(chǎn)生塊向量且獲取預(yù)測性塊,但其中預(yù)測性塊與當(dāng)前塊處于同一圖片或幀中,且更確切地說,在當(dāng)前圖片內(nèi)的搜索區(qū)域內(nèi)。類似于幀間和幀內(nèi)預(yù)測,對于幀內(nèi)BC,預(yù)測性塊可為被發(fā)現(xiàn)就像素差來說與待譯碼的塊緊密匹配的塊,其可通過SAD、SSD或其它差度量確定,且對所述塊的識別可包含對子整數(shù)像素位置的值的計算。在一些實例中,視頻編碼器20的預(yù)測處理單元142可基于每一模式的結(jié)果(例如如由SAD、SSD或其它差異或譯碼效率度量值所反映)選擇使用幀間、幀內(nèi)或幀內(nèi)BC預(yù)測中的哪一者預(yù)測給定塊。在預(yù)測處理單元142經(jīng)由幀間預(yù)測、幀內(nèi)預(yù)測或幀內(nèi)BC預(yù)測產(chǎn)生當(dāng)前視頻塊的預(yù)測性塊之后,視頻編碼器20例如經(jīng)由求和器150通過從當(dāng)前視頻塊減去預(yù)測性塊而形成殘余視頻塊。
殘余塊中的殘余視頻數(shù)據(jù)可包含于一或多個TU中且應(yīng)用于變換處理單元152。變換處理單元152將例如離散余弦變換(DCT)或在概念上類似的變換等變換應(yīng)用于殘余塊,從而產(chǎn)生包括殘余變換系數(shù)值的視頻塊。變換處理單元152可執(zhí)行概念上類似于DCT的其它變換。還可使用小波變換、整數(shù)變換、子帶變換或其它類型的變換。在任何狀況下,變換處理單元152將變換應(yīng)用于殘余塊,從而產(chǎn)生殘余變換系數(shù)塊。所述變換可將殘余信息從像素值域轉(zhuǎn)換到變換域(例如,頻域)。
變換處理單元152可將所得變換系數(shù)發(fā)送到量化處理單元154。量化處理單元154量化所述變換系數(shù)以進(jìn)一步減小位速率。量化過程可減小與系數(shù)中的一些或全部相關(guān)聯(lián)的位深度。可通過調(diào)節(jié)量化參數(shù)來修改量化的程度。在一些實例中,量化處理單元154可接著執(zhí)行對包含經(jīng)量化變換系數(shù)的矩陣的掃描。替代地,熵編碼單元156可執(zhí)行所述掃描。
在量化之后,熵編碼單元156對經(jīng)量化變換系數(shù)進(jìn)行熵編碼。舉例來說,熵編碼單元156可執(zhí)行CAVLC、CABAC、SBAC、PIPE譯碼或另一熵譯碼技術(shù)。在基于上下文的熵譯碼的狀況下,上下文可基于相鄰塊。在由熵編碼單元156進(jìn)行熵譯碼之后,可以將經(jīng)編碼位流傳輸?shù)搅硪谎b置(例如,視頻解碼器30),或者將所述經(jīng)編碼位流存檔以用于稍后傳輸或檢索。
反量化處理單元158和反變換處理單元160分別應(yīng)用反量化和反變換以重構(gòu)像素域中的殘余塊。求和器162將經(jīng)重構(gòu)殘余塊添加到預(yù)測性塊以產(chǎn)生經(jīng)重構(gòu)視頻塊以供存儲在搜索區(qū)域存儲器164和參考圖片存儲器168中的一者或兩者中。經(jīng)重構(gòu)視頻塊可被運動估計單元144和運動補(bǔ)償單元146用作預(yù)測性塊以對后續(xù)視頻圖片中的塊進(jìn)行幀間譯碼;或被幀內(nèi)BC處理單元149用作預(yù)測性塊以供對當(dāng)前圖片中的后續(xù)塊的幀內(nèi)BC譯碼。
搜索區(qū)域存儲器164根據(jù)由視頻編碼器20(例如,幀內(nèi)BC處理單元149)使用本文中所描述的技術(shù)中的任一者對用于當(dāng)前視頻塊的幀內(nèi)BC的搜索區(qū)域的界定或確定而存儲經(jīng)重構(gòu)視頻塊。搜索區(qū)域存儲器164可存儲尚未被濾波器處理單元166環(huán)路內(nèi)濾波的經(jīng)重構(gòu)視頻塊。求和器162可將經(jīng)重構(gòu)視頻塊并行地提供到濾波器處理單元166與搜索區(qū)域存儲器164。幀內(nèi)BC處理單元149可搜索搜索區(qū)域存儲器164中的經(jīng)重構(gòu)視頻塊以尋找與當(dāng)前視頻塊在同一圖片內(nèi)的預(yù)測性視頻塊,從而根據(jù)幀內(nèi)BC預(yù)測模式預(yù)測當(dāng)前視頻塊。在一些實例中,如上文所論述,可將足以緩沖實質(zhì)上整個圖片或幀的經(jīng)重構(gòu)視頻數(shù)據(jù)的存儲器從參考圖片存儲器168分配為搜索區(qū)域存儲器164。
濾波器處理單元166可對經(jīng)重構(gòu)視頻塊執(zhí)行環(huán)路內(nèi)濾波。環(huán)路內(nèi)濾波可包含解塊濾波以對塊邊界進(jìn)行濾波以從經(jīng)重構(gòu)視頻去除成塊假象。環(huán)路內(nèi)濾波還可包含SAO濾波以改進(jìn)經(jīng)重構(gòu)視頻。其中一些可經(jīng)環(huán)路內(nèi)濾波的經(jīng)重構(gòu)塊可作為參考圖片存儲在參考圖片存儲器168中。參考圖片可包含可由運動估計單元144和運動補(bǔ)償單元144用作預(yù)測性塊以幀間預(yù)測后續(xù)視頻幀或圖片中的塊的經(jīng)重構(gòu)塊。雖然濾波器處理單元166在圖7中說明為從搜索區(qū)域存儲器164接收信息,但濾波器處理單元166不一定從搜索區(qū)域存儲器接收經(jīng)重構(gòu)視頻塊,且可接收不同于搜索區(qū)域存儲器的塊或不同于搜索區(qū)域存儲器的日期,例如從未包含于搜索區(qū)域存儲器164中的塊。
以此方式,視頻編碼器20可經(jīng)配置以實施本發(fā)明中所描述的一或多個實例技術(shù)。舉例來說,視頻編碼器20(例如,幀內(nèi)BC處理單元149)可經(jīng)配置以確定用于幀內(nèi)塊復(fù)制譯碼當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點;基于搜索區(qū)域的中心點和經(jīng)界定大小確定當(dāng)前塊的搜索區(qū)域;以及基于所確定的搜索區(qū)域?qū)碜园?dāng)前塊的當(dāng)前圖片的視頻數(shù)據(jù)的經(jīng)重構(gòu)塊存儲在存儲器中,例如存儲在搜索區(qū)域存儲器164內(nèi)。視頻編碼器20可經(jīng)配置以在包含視頻數(shù)據(jù)的經(jīng)編碼視頻位流中編碼用以識別搜索區(qū)域內(nèi)的經(jīng)重構(gòu)塊中的一個的信息;且根據(jù)幀內(nèi)塊復(fù)制基于經(jīng)重構(gòu)塊中所識別的一個對當(dāng)前塊進(jìn)行編碼。
圖6是說明可實施本發(fā)明中描述的技術(shù)的視頻解碼器30的實例的框圖。同樣,出于說明的目的將在HEVC譯碼的情形下描述視頻編碼器30,但關(guān)于其它譯碼標(biāo)準(zhǔn)并不限制本發(fā)明。此外,視頻解碼器30可經(jīng)配置以實施根據(jù)范圍擴(kuò)展(RExt)或屏幕內(nèi)容譯碼(SCC)擴(kuò)展的技術(shù)。
在圖6的實例中,視頻解碼器30可包含視頻數(shù)據(jù)存儲器169、熵解碼單元170、預(yù)測處理單元171、反量化處理單元176、反變換處理單元178、求和器180、搜索區(qū)域存儲器182、濾波器處理單元184和參考圖片存儲器186。預(yù)測處理單元171包含運動補(bǔ)償單元172、幀內(nèi)預(yù)測單元174和幀內(nèi)BC處理單元175。在一些實例中,視頻解碼器30可執(zhí)行一般與根據(jù)圖5關(guān)于視頻編碼器20所描述的編碼遍次互反的解碼遍次。
在各種實例中,可給視頻解碼器30的單元分派任務(wù)以執(zhí)行本發(fā)明的技術(shù)。并且,在一些實例中,本發(fā)明的技術(shù)可被劃分在視頻解碼器30的單元中的一或多者當(dāng)中。舉例來說,幀內(nèi)BC處理單元175可單獨執(zhí)行或與視頻解碼器30的其它單元(例如,運動補(bǔ)償單元172、幀內(nèi)預(yù)測處理單元174、搜索區(qū)域存儲器182和熵解碼單元170)組合執(zhí)行本發(fā)明的技術(shù)。
視頻數(shù)據(jù)存儲器169可以存儲待通過視頻解碼器30的組件進(jìn)行解碼的視頻數(shù)據(jù),例如經(jīng)編碼視頻位流。存儲在視頻數(shù)據(jù)存儲器169中的視頻數(shù)據(jù)可以例如從存儲裝置32獲得;經(jīng)由視頻數(shù)據(jù)的有線或無線網(wǎng)絡(luò)通信從本地視頻源(例如,相機(jī))獲得;或通過存取物理數(shù)據(jù)存儲媒體來獲得。視頻數(shù)據(jù)存儲器169可形成存儲來自經(jīng)編碼視頻位流的經(jīng)編碼視頻數(shù)據(jù)的經(jīng)譯碼圖片緩沖器(CPB)。
搜索區(qū)域存儲器182和參考圖片存儲器186為存儲供視頻解碼器30用于解碼視頻數(shù)據(jù)(例如,在幀內(nèi)譯碼、幀間譯碼或幀內(nèi)BC模式下)的參考視頻數(shù)據(jù)的經(jīng)解碼圖片緩沖器(DPB)的實例。視頻數(shù)據(jù)存儲器169、搜索區(qū)域存儲器182和參考圖片存儲器186可由各種存儲器裝置中的任一者形成,例如動態(tài)隨機(jī)存儲器(DRAM)(包含同步DRAM(SDRAM))、磁阻式RAM(MRAM)、電阻式RAM(RRAM)或其它類型的存儲器裝置。視頻數(shù)據(jù)存儲器169、搜索區(qū)域存儲器182和參考圖片存儲器186可由同一存儲器裝置或獨立存儲器裝置提供。在各種實例中,視頻數(shù)據(jù)存儲器169可與視頻解碼器30的其它組件一起在芯片上,或相對于那些組件在芯片外。
在解碼過程期間,視頻解碼器30從視頻編碼器20接收表示經(jīng)編碼視頻切片的視頻塊和相關(guān)聯(lián)的語法元素的經(jīng)編碼視頻位流。視頻解碼器30的熵解碼單元170對位流進(jìn)行熵解碼以產(chǎn)生經(jīng)量化系數(shù)、運動向量、塊向量或幀內(nèi)預(yù)測模式指示符和在本文中關(guān)于本發(fā)明的技術(shù)所描述的任何其它語法元素。熵解碼單元170將語法元素轉(zhuǎn)發(fā)到預(yù)測處理單元171。視頻解碼器30可接收在視頻切片層級、視頻塊層級或更高層級(例如,圖片或序列層級)處的語法元素。
當(dāng)將視頻切片譯碼為經(jīng)幀內(nèi)譯碼(I)切片時,幀內(nèi)預(yù)測處理單元174可基于用信號發(fā)送的幀內(nèi)預(yù)測模式和來自當(dāng)前圖片的先前經(jīng)解碼塊的數(shù)據(jù)產(chǎn)生用于當(dāng)前視頻切片的視頻塊的預(yù)測數(shù)據(jù)。當(dāng)將視頻圖片譯碼為經(jīng)幀間譯碼(即,B或P)切片時,運動補(bǔ)償單元172基于從熵解碼單元170接收的運動向量和其它語法元素產(chǎn)生當(dāng)前視頻切片的視頻塊的預(yù)測性塊。所述預(yù)測性塊可由參考圖片列表中的一者內(nèi)的參考圖片中的一者產(chǎn)生。視頻解碼器30可基于存儲在參考圖片存儲器186中的參考圖片使用默認(rèn)構(gòu)建技術(shù)構(gòu)建參考圖片列表(列表0和列表1)。
運動補(bǔ)償單元172通過剖析運動向量和其它語法元素確定用于當(dāng)前視頻切片的視頻塊的預(yù)測信息,并且使用所述預(yù)測信息產(chǎn)生用于經(jīng)解碼當(dāng)前視頻塊的預(yù)測性塊。舉例來說,運動補(bǔ)償單元172使用所接收到的語法元素中的一些語法元素確定用于對視頻切片的視頻塊進(jìn)行譯碼的預(yù)測模式(例如,幀內(nèi)預(yù)測或幀間預(yù)測)、幀間預(yù)測切片類型(例如,B切片或P切片)、切片的參考圖片列表中的一或多者的構(gòu)建信息、切片的每一經(jīng)幀間編碼的視頻塊的運動向量、切片的每一經(jīng)幀間譯碼的視頻塊的幀間預(yù)測狀態(tài),和用以解碼當(dāng)前視頻切片中的視頻塊的其它信息。
運動補(bǔ)償單元172還可基于內(nèi)插濾波器執(zhí)行內(nèi)插。運動補(bǔ)償單元172可使用由視頻編碼器20在視頻塊的編碼期間使用的內(nèi)插濾波器來計算參考塊的子整數(shù)像素的內(nèi)插值。在此狀況下,運動補(bǔ)償單元172可根據(jù)所接收到的語法元素確定由視頻編碼器20使用的內(nèi)插濾波器,且使用內(nèi)插濾波器產(chǎn)生預(yù)測性塊。
當(dāng)根據(jù)本文中所描述的幀內(nèi)BC模式譯碼視頻塊時,預(yù)測處理單元171的幀內(nèi)BC處理單元175基于從熵解碼單元170接收的塊向量和其它語法元素而產(chǎn)生當(dāng)前視頻塊的預(yù)測性塊。所述預(yù)測性塊可在與當(dāng)前視頻塊相同的圖片內(nèi)的搜索區(qū)域內(nèi),且可被從搜索區(qū)域存儲器182檢索。幀內(nèi)BC處理單元175可使用本文中所描述的技術(shù)中的任一者確定搜索區(qū)域。
反量化處理單元176對在位流中提供且通過熵解碼單元170解碼的經(jīng)量化變換系數(shù)進(jìn)行反量化,即解量化。反量化過程可包含將通過視頻解碼器30計算出的量化參數(shù)QPY用于視頻切片中的每一視頻塊以確定量化的程度,以及同樣地,應(yīng)該應(yīng)用的反量化的程度。
反變換處理單元178對變換系數(shù)應(yīng)用反變換,例如反DCT、反整數(shù)變換或概念上類似的反變換過程,以便產(chǎn)生像素域中的殘余塊。視頻解碼器30通過求和來自反變換處理單元178的殘余塊與由預(yù)測處理單元171產(chǎn)生的對應(yīng)預(yù)測性塊而形成經(jīng)解碼視頻塊。求和器180表示執(zhí)行此求和操作的一或多個組件。
搜索區(qū)域存儲器182根據(jù)使用本文中所描述的技術(shù)確定用于由幀內(nèi)BC處理單元175進(jìn)行的當(dāng)前視頻塊的幀內(nèi)BC譯碼的搜索區(qū)域而存儲經(jīng)重構(gòu)視頻塊。舉例來說,幀內(nèi)BC處理單元175可確定當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點,且基于搜索區(qū)域的中心點和經(jīng)界定大小確定當(dāng)前塊的搜索區(qū)域。搜索區(qū)域存儲器182可基于所確定的搜索區(qū)域存儲來自包含當(dāng)前塊的當(dāng)前圖片的視頻數(shù)據(jù)的經(jīng)重構(gòu)塊。搜索區(qū)域存儲器182可存儲尚未被濾波器處理單元184環(huán)路內(nèi)濾波的經(jīng)重構(gòu)視頻塊。求和器180可將經(jīng)重構(gòu)視頻塊并行地提供到濾波器處理單元184與搜索區(qū)域存儲器182。幀內(nèi)BC處理單元175從搜索區(qū)域存儲器182檢索當(dāng)前視頻塊的預(yù)測性視頻塊。
濾波器處理單元184可對經(jīng)重構(gòu)視頻塊執(zhí)行環(huán)路內(nèi)濾波。環(huán)路內(nèi)濾波可包含解塊濾波以對塊邊界進(jìn)行濾波以從經(jīng)重構(gòu)視頻去除成塊假象。環(huán)路內(nèi)濾波還可包含SAO濾波以改進(jìn)經(jīng)重構(gòu)視頻。其中一些可經(jīng)環(huán)路內(nèi)濾波的經(jīng)重構(gòu)塊可作為參考圖片存儲在參考圖片存儲器186中。參考圖片可包含可由運動補(bǔ)償單元172用作預(yù)測性塊以幀間預(yù)測后續(xù)視頻幀或圖片中的塊的經(jīng)重構(gòu)塊。參考圖片存儲器186還存儲經(jīng)解碼視頻以供稍后呈現(xiàn)在顯示裝置(例如,圖1的顯示裝置31)上。
以此方式,視頻解碼器30可經(jīng)配置以實施本發(fā)明中所描述的一或多個實例技術(shù)。舉例來說,視頻解碼器30(例如,幀內(nèi)BC處理單元175)可經(jīng)配置以確定用于幀內(nèi)塊復(fù)制譯碼當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的中心點;基于搜索區(qū)域的中心點和經(jīng)界定大小確定當(dāng)前塊的搜索區(qū)域;以及基于所確定的搜索區(qū)域?qū)碜园?dāng)前塊的當(dāng)前圖片的視頻數(shù)據(jù)的經(jīng)重構(gòu)塊存儲在存儲器(例如,搜索區(qū)域存儲器182)中。視頻解碼器30還可經(jīng)配置以從包含視頻數(shù)據(jù)的經(jīng)編碼視頻位流解碼用以識別搜索區(qū)域內(nèi)的經(jīng)重構(gòu)塊中的一個的信息;且根據(jù)幀內(nèi)塊復(fù)制基于經(jīng)重構(gòu)塊中所識別的一個重構(gòu)當(dāng)前塊。
圖7是說明用于根據(jù)本發(fā)明的技術(shù)確定用于根據(jù)幀內(nèi)BC模式編碼當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的實例方法的流程圖。圖7的實例技術(shù)可通過視頻編碼器實施,例如包含幀內(nèi)BC處理單元149的視頻編碼器20。
根據(jù)圖7的實例,視頻編碼器20確定用于使用幀內(nèi)BC編碼當(dāng)前視頻塊的搜索區(qū)域的中心點54(200)。舉例來說,視頻編碼器20可基于先前使用幀內(nèi)BC譯碼的視頻塊(例如,使用幀內(nèi)BC經(jīng)譯碼的當(dāng)前CTU的第一塊)的塊向量50或當(dāng)前CTU或當(dāng)前視頻塊的空間或時間相鄰塊的塊向量50而確定中心點。視頻編碼器20基于搜索區(qū)域的中心點以及經(jīng)界定的大小和/或形狀確定當(dāng)前塊的搜索區(qū)域(202)。在一些實例中,視頻編碼器20可確定所要搜索區(qū)域;確定所要搜索區(qū)域的中心點;以及在經(jīng)編碼視頻位流中用信號發(fā)送信息,例如位置或相鄰塊,由此視頻解碼器30可確定中心點。
根據(jù)圖7的實例,視頻編碼器20確定所確定的搜索區(qū)域的一部分是否不可用于根據(jù)幀內(nèi)BC對當(dāng)前視頻塊的預(yù)測(204)。如果搜索區(qū)域的一部分不可用,那么視頻編碼器20可例如通過根據(jù)本文中所描述的技術(shù)中的任一者限制、填充或移位搜索區(qū)域而修改搜索區(qū)域(206)。如本文中所描述,限制可包含將搜索區(qū)域限制于確定已根據(jù)WPP處理的塊;移位可包含移位到邊界的一側(cè)而不改變搜索區(qū)域的大小或形狀;以及填充可包含使用經(jīng)復(fù)制的值或固定值填充。無論搜索區(qū)域是否經(jīng)修改,視頻編碼器20基于所確定的(和在一些狀況下,經(jīng)修改的)搜索區(qū)域而將經(jīng)重構(gòu)塊存儲在例如搜索區(qū)域存儲器164內(nèi)(208)。
視頻編碼器20從搜索區(qū)域選擇預(yù)測性塊46(210)。視頻編碼器20確定所述預(yù)測性塊的塊向量50,且基于當(dāng)前塊和預(yù)測性塊確定殘余塊。視頻編碼器20在經(jīng)編碼視頻位流中編碼語法信息(根據(jù)所述語法信息,視頻解碼器30可確定塊向量和殘余塊)和與本發(fā)明的技術(shù)相關(guān)的任何其它語法信息,例如視頻解碼器可由此確定搜索區(qū)域的語法信息(例如,中心點的位置、根據(jù)其塊向量可確定中心點的相鄰塊,或搜索區(qū)域的大小和/或形狀)(212)。
圖8是說明用于根據(jù)本發(fā)明的技術(shù)確定用于根據(jù)幀內(nèi)BC模式解碼當(dāng)前視頻數(shù)據(jù)塊的搜索區(qū)域的實例方法的流程圖。圖8的實例技術(shù)可通過視頻解碼器實施,例如包含幀內(nèi)BC處理單元175的視頻解碼器30。
根據(jù)圖8的實例,視頻解碼器30確定用于使用幀內(nèi)BC編碼當(dāng)前視頻塊的搜索區(qū)域的中心點54(220)。舉例來說,視頻解碼器30可基于先前使用幀內(nèi)BC譯碼的視頻塊(例如,使用幀內(nèi)BC經(jīng)譯碼的當(dāng)前CTU的第一塊)的塊向量50或當(dāng)前CTU或當(dāng)前視頻塊的空間或時間相鄰塊的塊向量50而確定中心點。視頻解碼器30基于搜索區(qū)域的中心點以及經(jīng)界定的大小和/或形狀確定當(dāng)前塊的搜索區(qū)域(222)。在一些實例中,視頻解碼器30可從經(jīng)編碼視頻位流解碼指定搜索區(qū)域的中心點(例如,坐標(biāo)或向量)和/或大小或形狀的語法信息,例如用信號發(fā)送像素值或已知值,例如LCU大小的倍數(shù)。
根據(jù)圖8的實例,視頻解碼器30確定所確定的搜索區(qū)域的一部分是否不可用于根據(jù)幀內(nèi)BC對當(dāng)前視頻塊的預(yù)測(224)。如果搜索區(qū)域的一部分不可用,那么視頻解碼器30可例如通過根據(jù)本文中所描述的技術(shù)中的任一者限制、填充或移位搜索區(qū)域而修改搜索區(qū)域(226)。無論搜索區(qū)域是否經(jīng)修改,視頻解碼器30基于所確定的(和在一些狀況下,經(jīng)修改的)搜索區(qū)域而將經(jīng)重構(gòu)塊存儲在例如搜索區(qū)域存儲器182內(nèi)(228)。
視頻解碼器30例如基于經(jīng)編碼視頻位流中的識別當(dāng)前視頻塊的塊向量50的語法信息而從搜索區(qū)域識別預(yù)測性塊46(230)。塊向量指向當(dāng)前圖片中的與當(dāng)前塊有關(guān)的預(yù)測性塊的位置,例如所述預(yù)測性塊的左上方、右上方、左下方、右下方或中心像素。視頻解碼器30還基于經(jīng)編碼視頻位流確定殘余塊,且求和預(yù)測性塊與殘余塊以重構(gòu)當(dāng)前視頻塊(232)。
出于說明的目的,已相對于HEVC標(biāo)準(zhǔn)和其擴(kuò)展而描述了本發(fā)明的某些方面。然而,本發(fā)明中描述的技術(shù)可適用于其它視頻譯碼過程,包含尚未開發(fā)的其它標(biāo)準(zhǔn)或?qū)S幸曨l譯碼過程。
如本發(fā)明中所描述,視頻譯碼器可以指視頻編碼器或視頻解碼器。類似地,視頻譯碼單元可以指視頻編碼器或視頻解碼器。同樣地,在適用時,視頻譯碼可指代視頻編碼或視頻解碼。
應(yīng)認(rèn)識到,取決于實例,本文中所描述的技術(shù)中的任一者的某些動作或事件可用不同序列來執(zhí)行,可添加、合并或全部省略所述動作或事件(例如,實踐所述技術(shù)未必需要所有所描述動作或事件)。此外,在某些實例中,可同時(例如,經(jīng)由多線程處理、中斷處理或多個處理器)而非依序地執(zhí)行動作或事件。
在一或多個實例中,描述的功能可用硬件、軟件、固件或其任何組合來實施。如果用軟件實施,那么所述功能可以作為一或多個指令或代碼存儲在計算機(jī)可讀媒體上或經(jīng)由計算機(jī)可讀媒體傳輸,并且由基于硬件的處理單元執(zhí)行。計算機(jī)可讀媒體可包含計算機(jī)可讀存儲媒體,其對應(yīng)于有形媒體,例如數(shù)據(jù)存儲媒體;或包含任何促進(jìn)將計算機(jī)程序從一處傳送到另一處的媒體(例如,根據(jù)通信協(xié)議)的通信媒體。
以此方式,計算機(jī)可讀媒體一般可對應(yīng)于(1)有形計算機(jī)可讀存儲媒體,其為非暫時性的,或(2)通信媒體,例如信號或載波。數(shù)據(jù)存儲媒體可以是可由一或多個計算機(jī)或一或多個處理器存取以檢索用于實施本發(fā)明中描述的技術(shù)的指令、代碼和/或數(shù)據(jù)結(jié)構(gòu)的任何可用的媒體。計算機(jī)程序產(chǎn)品可包含計算機(jī)可讀媒體。
借助于實例而非限制,此類計算機(jī)可讀存儲媒體可包括RAM、ROM、EEPROM、CD-ROM或其它光盤存儲裝置、磁盤存儲裝置或其它磁性存儲裝置、快閃存儲器或可用于存儲呈指令或數(shù)據(jù)結(jié)構(gòu)形式的所要程序代碼并且可由計算機(jī)存取的任何其它媒體。并且,可恰當(dāng)?shù)貙⑷魏芜B接稱作計算機(jī)可讀媒體。舉例來說,如果使用同軸電纜、光纖纜線、雙絞線、數(shù)字訂戶線(DSL)或例如紅外線、無線電和微波等無線技術(shù)從網(wǎng)站、服務(wù)器或其它遠(yuǎn)程源傳輸指令,那么同軸電纜、光纖纜線、雙絞線、DSL或例如紅外線、無線電和微波等無線技術(shù)包含在媒體的定義中。
然而,應(yīng)理解,計算機(jī)可讀存儲媒體和數(shù)據(jù)存儲媒體并不包含連接、載波、信號或其它暫時性媒體,而是實際上針對于非暫時性有形存儲媒體。如本文中所使用的磁盤和光盤包含壓縮光盤(CD)、激光光盤、光學(xué)光盤、數(shù)字多功能光盤(DVD)、軟磁盤和藍(lán)光光盤,其中磁盤通常是以磁性方式再現(xiàn)數(shù)據(jù),而光盤是用激光以光學(xué)方式再現(xiàn)數(shù)據(jù)。以上各者的組合也應(yīng)該包含在計算機(jī)可讀媒體的范圍內(nèi)。
指令可以由一或多個處理器執(zhí)行,所述一或多個處理器例如一或多個數(shù)字信號處理器(DSP)、通用微處理器、專用集成電路(ASIC)、現(xiàn)場可編程邏輯陣列(FPGA)、或其它等效的集成或離散邏輯電路。因此,如本文中所使用的術(shù)語“處理器”可指代前述結(jié)構(gòu)或適合于實施本文中所描述的技術(shù)的任何其它結(jié)構(gòu)中的任一者。另外,在一些方面中,本文中所描述的功能性可提供于經(jīng)配置以用于編碼和解碼的專用硬件和/或軟件模塊內(nèi),或者并入于組合式編解碼器中。并且,可以將所述技術(shù)完全實施于一或多個電路或邏輯元件中。
本發(fā)明的技術(shù)可以在廣泛多種裝置或設(shè)備中實施,包含無線手持機(jī)、集成電路(IC)或一組IC(例如,芯片組)。本發(fā)明中描述各種組件、模塊或單元以強(qiáng)調(diào)經(jīng)配置以執(zhí)行所揭示的技術(shù)的裝置的功能方面,但未必需要通過不同硬件單元實現(xiàn)。相反地,如上文所描述,各種單元可以組合在編解碼器硬件單元中,或者通過結(jié)合合適的軟件和/或固件的互操作硬件單元的集合來提供,所述硬件單元包含如上文所描述的一或多個處理器。
已描述各種實例。這些和其它實例在所附權(quán)利要求書的范圍內(nèi)。