用于多媒體數(shù)據(jù)處理的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域。
【背景技術(shù)】
[0002]在示例情形中,與多媒體數(shù)據(jù)處理相關(guān)的技術(shù)的高速發(fā)展會對各種多媒體處理器的相應(yīng)的計算能力提出更高的要求。多媒體數(shù)據(jù)處理可以包括出于壓縮目的而對多媒體數(shù)據(jù)進(jìn)行編碼。執(zhí)行對多媒體數(shù)據(jù)的壓縮可能是為了在存儲期間節(jié)省內(nèi)存,或者在傳輸期間有效地使用可用的帶寬??梢允褂米阋詫崿F(xiàn)多媒體數(shù)據(jù)壓縮的編碼機(jī)制來對多媒體數(shù)據(jù)進(jìn)行編碼。接著,可以出于顯示/觀察的目的而對多媒體數(shù)據(jù)進(jìn)行解壓縮(例如,解碼)。
[0003]此外,在示例情形中,各種視頻編碼格式(paradigms)可以包括基于參考幀對與多媒體數(shù)據(jù)對應(yīng)的幀進(jìn)行編碼,由此優(yōu)化存儲容量并且還增強(qiáng)多媒體處理器的性能。在示例情形中,多媒體數(shù)據(jù)處理可以包括執(zhí)行運(yùn)動補(bǔ)償,其中從內(nèi)存中提取(fetch)與參考幀(例如,先前已解碼的幀且存儲在內(nèi)存中)關(guān)聯(lián)的參考像素,并且進(jìn)行插值以形成預(yù)測幀。可以從當(dāng)前幀中減去該預(yù)測幀,以獲得與當(dāng)前幀對應(yīng)的殘差樣本。這些殘差樣本接著可以被編碼,以便對當(dāng)前幀進(jìn)行編碼。在示例情形中,當(dāng)執(zhí)行運(yùn)動補(bǔ)償時,從內(nèi)存中隨機(jī)地提取參考像素(以便對幀的各種部分進(jìn)行編碼),并且在提取的參考像素之間可以存在顯著程度的重疊。根據(jù)示例情形,由于提取參考像素的隨機(jī)特性,內(nèi)存帶寬消耗以及功率耗散會增加。
【發(fā)明內(nèi)容】
[0004]公開了一種用于多媒體數(shù)據(jù)處理的方法和系統(tǒng)。在一個實施例中,為了處理多媒體幀,將多媒體幀劃分為多個塊分區(qū),其中每個分區(qū)包括多個像素塊。在一個實施例中,針對與多媒體幀的第一塊分區(qū)關(guān)聯(lián)的多個像素塊確定第一參考區(qū)域。在一個實施例中,在從內(nèi)存中提取第一參考區(qū)域之前,在第一緩存中確定第一參考區(qū)域的存在。如果第一參考區(qū)域被確定為在第一緩存中不可用,則在第二緩存中檢查第一參考區(qū)域的存在。如果第一參考區(qū)域被確定為在第二緩存中不可用,則從內(nèi)存中提取第一參考區(qū)域。
[0005]在一個實施例中,方法包括在第一緩存中定義一個或多個像素塊區(qū)域,以便緩存與參考數(shù)據(jù)對應(yīng)的多個參考像素塊。基于預(yù)定標(biāo)準(zhǔn),將多個參考像素塊中的參考像素塊分配給一個或多個像素塊區(qū)域中的像素塊區(qū)域?;谙袼貕K區(qū)域,將參考像素塊與標(biāo)簽關(guān)聯(lián),從而有助于搜索參考數(shù)據(jù),以便處理與多媒體數(shù)據(jù)的多媒體幀關(guān)聯(lián)的多個像素塊。
[0006]在一實施例中,搜索參考數(shù)據(jù)包括,通過將與第一參考區(qū)域關(guān)聯(lián)的標(biāo)簽信息和與一個或多個像素塊區(qū)域關(guān)聯(lián)的跨度信息進(jìn)行比較,以此識別一個或多個像素塊區(qū)域中有可能包括第一參考區(qū)域的像素塊區(qū)域。進(jìn)一步地,在所識別的一個或多個像素塊區(qū)域中確定與第一參考區(qū)域關(guān)聯(lián)的一個或多個參考像素塊的存在。在一實施例中,確定一個或多個參考像素塊的存在包括,基于跨度信息以及第一參考區(qū)域在與參考數(shù)據(jù)關(guān)聯(lián)的參考巾貞內(nèi)的位置來確定所識別的一個或多個像素塊區(qū)域中的每一個像素塊區(qū)域內(nèi)的第一參考區(qū)域的可能偏移。通過檢查在所確定的可能偏移處與每個參考像素塊關(guān)聯(lián)的多個可用性標(biāo)簽,可以確定在所識別的一個或多個像素塊區(qū)域中在所確定的可能偏移處的第一參考區(qū)域的存在。
[0007]在一實施例中,用于從內(nèi)存中提取與第一參考區(qū)域關(guān)聯(lián)的一個或多個參考像素塊中的參考像素塊的最小粒度和在與內(nèi)存關(guān)聯(lián)的預(yù)取緩沖器中進(jìn)行緩存的最小粒度相匹配。在一實施例中,與參考幀內(nèi)的第一參考區(qū)域關(guān)聯(lián)的一個或多個參考像素塊相鄰且在參考幀內(nèi)形成矩形區(qū)域的一個或多個額外的參考像素塊一起被提取。在一實施例中,一個或多個額外的參考像素塊以及第一參考區(qū)域?qū)?yīng)于參考幀內(nèi)的多個塊分區(qū)中的一個塊分區(qū)。在一實施例中,一個或多個額外的參考像素塊以及第一參考區(qū)域?qū)?yīng)于參考幀內(nèi)的相鄰塊分區(qū)。
[0008]在一個實施例中,公開了一種被配置為處理多媒體數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括內(nèi)存、緩存單元以及處理單元。內(nèi)存被配置為存儲與參考數(shù)據(jù)對應(yīng)的一個或多個參考幀。緩存單元與內(nèi)存通信地關(guān)聯(lián)并且包括第一緩存和第二緩存。處理單元與內(nèi)存和緩存通信地關(guān)聯(lián),并且被配置為在第一緩存中定義一個或多個像素塊區(qū)域,以便緩存與參考數(shù)據(jù)對應(yīng)的多個參考像素塊。處理單元被進(jìn)一步配置為:(I)基于預(yù)定標(biāo)準(zhǔn),將多個參考像素塊中的參考像素塊分配給一個或多個像素塊區(qū)域中的像素塊區(qū)域;以及(2)基于像素塊區(qū)域,將參考像素塊與標(biāo)簽關(guān)聯(lián),從而有助于搜索參考數(shù)據(jù),以便處理與多媒體幀關(guān)聯(lián)的多個像素塊。
[0009]在一個實施例中,公開了一種計算機(jī)可讀介質(zhì),其存儲一組指令,當(dāng)該組指令被執(zhí)行時,使計算機(jī)執(zhí)行多媒體數(shù)據(jù)處理的方法。該方法包括在第一緩存中定義一個或多個像素塊區(qū)域,以便緩存與參考數(shù)據(jù)對應(yīng)的多個參考像素塊。參考數(shù)據(jù)可以與參考幀關(guān)聯(lián)。該方法還包括基于預(yù)定標(biāo)準(zhǔn),將多個參考像素塊中的參考像素塊分配給一個或多個像素塊區(qū)域中的像素塊區(qū)域。此外,該方法包括基于像素塊區(qū)域,將參考像素塊與標(biāo)簽關(guān)聯(lián),從而有助于搜索參考數(shù)據(jù),以便處理與多媒體幀關(guān)聯(lián)的多個像素塊。
【附圖說明】
[0010]圖1是根據(jù)實施例的、被配置為處理多媒體數(shù)據(jù)的示例系統(tǒng)的框圖。
[0011]圖2示出根據(jù)實施例的、在第一緩存中定義的多個示例像素塊區(qū)域。
[0012]圖3A-3C示出根據(jù)實施例的、在多個參考數(shù)據(jù)提取之間的重疊的示例利用(例如,通過使用圖1中的系統(tǒng))。
[0013]圖4A描繪根據(jù)實施例的示例處理流程的簡化概述,該示例處理流程示出對與多媒體數(shù)據(jù)關(guān)聯(lián)的多媒體幀的處理。
[0014]圖4B示出根據(jù)實施例的、在多媒體幀的處理期間與第一緩存關(guān)聯(lián)的讀/寫操作的示例調(diào)度。
[0015]圖5示出根據(jù)實施例的、搜索參考數(shù)據(jù)以便處理與多媒體幀關(guān)聯(lián)的多個像素塊的示例過程。
[0016]圖6A-6C示出根據(jù)實施例的示例提取在與參考數(shù)據(jù)關(guān)聯(lián)的參考幀內(nèi)彼此相鄰的參考像素塊。
[0017]圖7是根據(jù)實施例的示出多媒體數(shù)據(jù)處理的示例方法的流程圖。
[0018]圖8A-8B共同示出根據(jù)實施例的流程圖,該流程圖示出參考數(shù)據(jù)搜索以便執(zhí)行對多媒體幀的處理的示例方法。
【具體實施方式】
[0019]在示例情形中,多媒體數(shù)據(jù)處理可以包括針對與多媒體數(shù)據(jù)對應(yīng)的幀執(zhí)行運(yùn)動補(bǔ)償。在示例情形中,當(dāng)執(zhí)行運(yùn)動補(bǔ)償時,從內(nèi)存中隨機(jī)地提取參考像素(以便對幀的各個部分進(jìn)行編碼),并且在提取的參考像素之間存在顯著程度的重疊。根據(jù)示例情形,由于提取參考像素的隨機(jī)特性,可能增加內(nèi)存帶寬消耗以及功耗。
[0020]圖1是根據(jù)實施例的被配置為處理多媒體數(shù)據(jù)的示例系統(tǒng)100的框圖。在一實施例中,系統(tǒng)100被配置為視像編解碼器(例如,視頻編碼器/解碼器),以便處理多媒體數(shù)據(jù)。在一實施例中,系統(tǒng)100被配置為被包含在多媒體系統(tǒng)內(nèi)。在一實施例中,系統(tǒng)100被配置為在多媒體系統(tǒng)的外部并且與多媒體系統(tǒng)通信地關(guān)聯(lián)。多媒體系統(tǒng)的示例可以包括但不限于:(1)多媒體設(shè)備,例如蜂窩電話、數(shù)字視頻攝像機(jī)以及數(shù)字?jǐn)z像錄像機(jī);(2)數(shù)據(jù)處理設(shè)備,例如個人計算機(jī)、便攜式計算機(jī)以及個人數(shù)字助理(PDA);和(3)消費(fèi)電子產(chǎn)品,例如機(jī)頂盒,數(shù)字視頻光盤(DVD)播放器和視頻網(wǎng)絡(luò)服務(wù)器。根據(jù)示例情形,系統(tǒng)100可以是能夠執(zhí)行一組指令(順序和/或以其他方式)以便執(zhí)行多媒體數(shù)據(jù)的處理的任何機(jī)器。
[0021]多媒體數(shù)據(jù)可以通過系統(tǒng)100從媒體捕獲設(shè)備接收。媒體捕獲設(shè)備的示例可以包括視頻照相機(jī)或攝像錄像機(jī)。媒體捕獲設(shè)備可以是,例如,獨立的設(shè)備、或者移動設(shè)備(例如,智能手機(jī))的一部分、或者數(shù)據(jù)處理裝置(例如,個人計算機(jī)、筆記本電腦裝置或個人數(shù)字助理(PDA)。多媒體數(shù)據(jù)還可以通過系統(tǒng)100從轉(zhuǎn)碼系統(tǒng)(其可以以例如硬件、軟件和/或固件中的任何一種實施)接收,轉(zhuǎn)碼系統(tǒng)可以是獨立的設(shè)備,或者媒體捕獲設(shè)備的一部分。
[0022]根據(jù)示例情形,多媒體數(shù)據(jù)可以包括多媒體幀序列(在下文中可替換地被稱為“幀”),并且?guī)蛄兄械拿總€幀可以包括多媒體數(shù)據(jù)的多個塊(例如,宏塊)。多媒體數(shù)據(jù)的示例可以包括但不限于,音頻數(shù)據(jù)、視頻數(shù)據(jù)、音頻視頻(A/V)數(shù)據(jù)、圖像數(shù)據(jù)、文本數(shù)據(jù)和它們的組合。對多媒體數(shù)據(jù)的處理的一個示例可以包括出于編碼/解碼目的,針對與多媒體數(shù)據(jù)對應(yīng)的幀執(zhí)行運(yùn)動補(bǔ)償。針對多媒體數(shù)據(jù)的幀執(zhí)行運(yùn)動補(bǔ)償包括相對于參考幀(例如,先前已解碼的幀)對幀進(jìn)行編碼/解碼。在一實施例中,與參考幀關(guān)聯(lián)的一個或多個參考像素可以被插值以配置預(yù)測幀,以便對幀進(jìn)行編碼。可以從幀中減去該預(yù)測幀,以獲得與該幀對應(yīng)的殘差樣本。這些殘差樣本接著可以被編碼,以便對幀進(jìn)行編碼。
[0023]系統(tǒng)100包括處理單元102、內(nèi)存104、緩存單元106和總線108。在一實施例中,處理單元102可以被體現(xiàn)為多核心處理器、單核心處理器、或者一個或多個多核心處理器和一個或多個單核心處理器的組合。例如,處理單元102可以被體現(xiàn)為各種處理設(shè)備中的一種或多種,例如協(xié)處理器、微處理器、控制器、數(shù)字信號處理器(DSP)、具有或不具有附帶的DSP的處理電路、或者包括集成電路(例如專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、微控制器單元(MCU)、硬件加速器、專用計算機(jī)芯片等)的各種其他處理設(shè)備。在一實施例中,處理單元102可以被配置為執(zhí)行硬編碼功能。在一實施例中,處理單元102被體現(xiàn)為軟件指令的執(zhí)行器,其中當(dāng)指令被執(zhí)行時,這些指令可以將處理單元102具體配置為執(zhí)行本文所述的算法和/或操作。處理單元102還可以包括時鐘、算術(shù)邏輯單元(ALU)以及被配置為支持處理單元102的操作的邏輯門等。在一實施例中,內(nèi)存104被配置為存儲多媒體數(shù)據(jù)。在一實施例中,內(nèi)存104被配置為存儲參考數(shù)據(jù)(例如,以多個參考幀的形式),以便處理與多媒體數(shù)據(jù)關(guān)聯(lián)的多媒體幀。
[0024]在一實施例中,多媒體數(shù)據(jù)的解碼幀可以被存儲在內(nèi)存104中,作為與參考數(shù)據(jù)對應(yīng)的參考幀。內(nèi)存104的示例包括但不限于,隨機(jī)存取存儲器(RAM)、雙端口 RAM、同步動態(tài)RAM(SDRAM)、雙倍數(shù)據(jù)速率SDRAM (DDR SDRAM)等。在一實施例中,緩存單元106被配置為對存儲在內(nèi)存104中的頻繁使用的參考數(shù)據(jù)進(jìn)行緩存。由于與內(nèi)存104關(guān)聯(lián)的有限帶寬以及高流量狀況,將參考數(shù)據(jù)存儲在緩存單元106中提高了與系統(tǒng)100關(guān)聯(lián)的處理性能。緩存單元106包括第一緩存106a和第二緩存106b。在一實施例中,第一緩存106a可以包括一個或多個緩存體(bank),它們可以被實施為緩存參考數(shù)據(jù)。更具體地,可以認(rèn)為與第一緩存106a關(guān)聯(lián)的存儲空間被分區(qū)(例如,被分為物理分區(qū)或虛擬分區(qū)),并且每個這樣的分區(qū)可以被稱為緩存體,其可以用于緩存參考數(shù)據(jù)。緩存體在本文中將參考圖4進(jìn)一步解釋。在一實施例中,第二緩存106b可以包括一個或多個緩存體,它們可以被實施為緩存參考數(shù)據(jù)。在一實施例中,處理單元102、內(nèi)存104和緩存單元106被配置為經(jīng)由或通過總線108互相通信地關(guān)聯(lián)、耦合或連接??偩€108的示例可以包括但不限于,數(shù)據(jù)總線、地址總線、控制總線等。
[0025]總線108可以是例如串行總線、雙向總線或單向總線。對于多媒體數(shù)據(jù)處理,與多媒體數(shù)據(jù)對應(yīng)的每個幀可以被劃分為多個像素塊。例如,該幀可以被劃分為多個16X16的像素塊,其可以被稱為例如宏塊。每個這樣的宏塊可以進(jìn)一步被劃分為(多個)部分,例如,劃分為4個分區(qū),其中每個分區(qū)可以包括4個4X4的像素塊。像素塊的每個這樣的分區(qū)在本文中可以被稱為塊分區(qū)。如上所述,為了處理幀,可以針對幀的各個部分,例如針對與幀的塊分區(qū)關(guān)聯(lián)的多個像素塊,提取參考數(shù)據(jù)。在一實施例中,處理單元102被配置為確定要被實施以處理與多媒體數(shù)據(jù)的幀的塊分區(qū)關(guān)聯(lián)的多個像素塊的參考數(shù)據(jù)。
[0026]如所解釋的,參考數(shù)據(jù)以一個或多個參考幀的形式被存儲在內(nèi)存104中。一個或多個參考幀中的每個參考幀包括一個或多個參考像素塊。應(yīng)注意,術(shù)語“參考像素塊”可以被解釋為指代,例如與多媒體數(shù)據(jù)的幀關(guān)聯(lián)的參考幀內(nèi)的“mXn”的像素塊,其中m和η是正整數(shù)。確定要被實施以處理與多媒體數(shù)據(jù)的幀的每個塊分區(qū)關(guān)聯(lián)的多個像素塊的參考數(shù)據(jù)可以包括,確定參考幀中可能被用于處理目的的參考像素塊。在一實施例中,從內(nèi)存104中提取的參考像素塊被存儲在緩