亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

宏塊信息存儲(chǔ)方法及裝置的制作方法

文檔序號(hào):7750310閱讀:315來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):宏塊信息存儲(chǔ)方法及裝置的制作方法
技術(shù)領(lǐng)域
本申請(qǐng)涉及視頻編解碼技術(shù)領(lǐng)域,尤其涉及一種宏塊信息存儲(chǔ)方法及裝置。
背景技術(shù)
在視頻編解碼系統(tǒng)中,一個(gè)視頻序列由多個(gè)幀構(gòu)成,一個(gè)幀又分為一個(gè)或多個(gè)條帶,每個(gè)條帶由多個(gè)宏塊組成。在一個(gè)圖像幀中,屬于同一個(gè)條帶的宏塊是相關(guān)的,相 關(guān)的宏塊之間可以用來(lái)做參考,而位于不同條帶上的宏塊是不相關(guān)的,不相關(guān)的宏塊之 間不能做參考。在對(duì)每個(gè)宏塊進(jìn)行處理時(shí),需要獲取該宏塊的NMA(Neibour Macroblock Available,鄰近宏塊相關(guān)性),以確定與該宏塊鄰近的其它宏塊是否可以作為該宏塊的參 考,從而對(duì)該宏塊進(jìn)行下一步操作。現(xiàn)有技術(shù)中為每個(gè)宏塊分配一個(gè)存儲(chǔ)單元,記錄該宏塊 對(duì)應(yīng)的條帶號(hào),一個(gè)宏塊的NMA是通過(guò)該宏塊的條帶號(hào)與鄰近宏塊的條帶號(hào)之間的比較來(lái) 獲取,如果條帶號(hào)相同表示兩個(gè)宏塊屬于同一個(gè)條帶,是相關(guān)的,如果條帶號(hào)不同表示兩個(gè) 宏塊屬于不同的條帶,是不相關(guān)的。發(fā)明人在對(duì)現(xiàn)有技術(shù)的研究過(guò)程中發(fā)現(xiàn),現(xiàn)有技術(shù)中需要為整幀的每個(gè)宏塊分配 一個(gè)存儲(chǔ)單元來(lái)記錄相應(yīng)的條帶號(hào),也就是需要為整幀宏塊分配與其宏塊數(shù)據(jù)相等的存儲(chǔ) 單元,當(dāng)宏塊數(shù)目巨大時(shí),需要消耗較多的存儲(chǔ)空間。

發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例的目的是提供一種宏塊信息存儲(chǔ)方法及裝置,以解決現(xiàn)有技術(shù)中需 要為每個(gè)宏塊分配存儲(chǔ)單元導(dǎo)致占用大量存儲(chǔ)空間的問(wèn)題。為解決上述技術(shù)問(wèn)題,本申請(qǐng)實(shí)施例提供如下技術(shù)方案一種宏塊信息存儲(chǔ)方法,包括設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的數(shù)目是圖像幀中每行宏 塊數(shù)目N的兩倍,所述N為自然數(shù);通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記,通過(guò)剩余 N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。所述NMA標(biāo)記包括每個(gè)宏塊與其左側(cè)相鄰宏塊,左上相鄰宏塊,正上相鄰宏塊和 右上相鄰宏塊的相關(guān)性的集合。所述設(shè)置NMA存儲(chǔ)單元具體為定義存儲(chǔ)空間為2N個(gè)字節(jié)的數(shù)組,將所述數(shù)組中的每個(gè)字節(jié)空間作為一個(gè)NMA存 儲(chǔ)單元,每個(gè)所述NMA存儲(chǔ)單元用于通過(guò)四個(gè)比特信息存儲(chǔ)所述相關(guān)性的集合。所述通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記包括當(dāng)解碼所述圖像幀的第一個(gè)條帶時(shí),初始化所述N個(gè)NMA存儲(chǔ)單元,將所述第一個(gè) 條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。所述通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記包括當(dāng)解碼所述圖像幀的非第一個(gè)條帶時(shí),更新所述N個(gè)NMA存儲(chǔ)單元,將所述非第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。所述通過(guò)剩余N個(gè)NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記包 括為圖像幀的每個(gè)條帶中位于同一水平位置的非頂行宏塊分配一個(gè)NMA存儲(chǔ)單元;在每個(gè)所述NMA存儲(chǔ) 單元中寫(xiě)入所述同一水平位置的非頂行宏塊的相同NMA標(biāo)記。還包括當(dāng)從NMA存儲(chǔ)單元中讀取第一個(gè)非頂行宏塊的NMA標(biāo)記時(shí),將所述NMA標(biāo)記中用 于標(biāo)記左上宏塊的相關(guān)性的值置為不相關(guān)。一種宏塊信息存儲(chǔ)裝置,包括設(shè)置單元,用于設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的數(shù)目是圖 像幀中每行宏塊數(shù)目N的兩倍,所述N為自然數(shù);存儲(chǔ)單元,用于通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA 標(biāo)記,通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。所述NMA標(biāo)記包括每個(gè)宏塊與其左側(cè)相鄰宏塊,左上相鄰宏塊,正上相鄰宏塊和 右上相鄰宏塊的相關(guān)性的集合;所述設(shè)置單元具體用于,定義存儲(chǔ)空間為2N個(gè)字節(jié)的數(shù)組,將所述數(shù)組中的每個(gè) 字節(jié)空間作為一個(gè)NMA存儲(chǔ)單元,每個(gè)所述NMA存儲(chǔ)單元用于通過(guò)四個(gè)比特信息存儲(chǔ)所述 相關(guān)性的集合。所述存儲(chǔ)單元包括初始化存儲(chǔ)子單元,用于當(dāng)解碼所述圖像幀的第一個(gè)條帶時(shí),初始化所述N個(gè)NMA 存儲(chǔ)單元,將所述第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單 元;更新存儲(chǔ)子單元,用于當(dāng)解碼所述圖像幀的非第一個(gè)條帶時(shí),更新所述N個(gè)NMA存 儲(chǔ)單元,將所述非第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。所述存儲(chǔ)單元包括分配子單元,用于為圖像幀的每個(gè)條帶中位于同一水平位置的非頂行宏塊分配一 個(gè)NMA存儲(chǔ)單元;寫(xiě)入子單元,用于在每個(gè)所述NMA存儲(chǔ)單元中寫(xiě)入所述同一水平位置的非頂行宏 塊的相同NMA標(biāo)記。所述存儲(chǔ)單元還包括標(biāo)記重置子單元,用于當(dāng)從NMA存儲(chǔ)單元中讀取第一個(gè)非頂行宏塊的NMA標(biāo)記時(shí), 將所述NMA標(biāo)記中用于標(biāo)記左上宏塊的相關(guān)性的值置為不相關(guān)??梢?jiàn),本申請(qǐng)實(shí)施例中設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的數(shù) 目是圖像幀中每行宏塊數(shù)目N的兩倍,通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂 行宏塊的NMA標(biāo)記,通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA 標(biāo)記。應(yīng)用本申請(qǐng)實(shí)施例對(duì)宏塊信息進(jìn)行存儲(chǔ)時(shí),無(wú)需為每個(gè)宏塊分配存儲(chǔ)單元,而是根據(jù) 宏塊所在位置的不同,只需要為每個(gè)條帶的每個(gè)頂行宏塊分別分配一個(gè)存儲(chǔ)單元,對(duì)于位 于同一水平位置的非頂行宏塊,可以通過(guò)一個(gè)存儲(chǔ)單元存儲(chǔ)其N(xiāo)MA標(biāo)記,由此減少了存儲(chǔ)單元的數(shù)量,特別當(dāng)圖像幀中包含大量宏塊時(shí),可以減少宏塊信息的存儲(chǔ)空間。


為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提 下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本申請(qǐng)宏塊信息存儲(chǔ)方法的第一實(shí)施例流程圖;圖2為本申請(qǐng)宏塊信息存儲(chǔ)方法的第二實(shí)施例流程圖;圖3A為包含三個(gè)條帶的圖像幀的結(jié)構(gòu)示意圖;圖3B為圖3A圖像幀中宏塊的NMA標(biāo)記示意圖;圖4為本申請(qǐng)宏塊信息存儲(chǔ)裝置的實(shí)施例框圖;圖5為圖4所示裝置中存儲(chǔ)單元的實(shí)施例框圖。
具體實(shí)施例方式本申請(qǐng)實(shí)施例提供一種宏塊信息存儲(chǔ)方法及裝置。NMA(Neighbour Macroblock Available,鄰近宏塊相關(guān)性)是指一個(gè)宏塊與其相 鄰的左邊、左上、正上、右上宏塊是否存在關(guān)聯(lián),相關(guān)的宏塊表示位于同一個(gè)條帶上,且可以 用來(lái)作為當(dāng)前宏塊的參考,不相關(guān)的宏塊表示位于不同條帶上,不能用作當(dāng)前宏塊的參考。 在一個(gè)視頻編解碼系統(tǒng)中,一個(gè)圖像幀分為一個(gè)或多個(gè)條帶,每個(gè)條帶由若干宏塊組成。在 對(duì)每個(gè)宏塊進(jìn)行處理時(shí),首先需要獲取該宏塊的NMA,才能確定該宏塊的鄰近宏塊是否可以 用來(lái)作為該宏塊的參考,以確定對(duì)該宏塊的下一步的操作。本申請(qǐng)實(shí)施例的核心在于,假設(shè)定義圖像幀中每行的宏塊數(shù)為N,則可以使用 NX2個(gè)(即兩個(gè)宏塊行數(shù)目)存儲(chǔ)單元來(lái)實(shí)現(xiàn)對(duì)所有宏塊的NMA的存儲(chǔ)。其中,每個(gè)存儲(chǔ) 單元存儲(chǔ)的是一個(gè)宏塊與其鄰近宏塊的相關(guān)性標(biāo)記,即NMA標(biāo)記,NMA標(biāo)記有4個(gè)比特位, 每個(gè)比特位分別標(biāo)記當(dāng)前宏塊與鄰近的左邊、左上、正上、右上宏塊是否相關(guān)。在一個(gè)條帶 中,使用N個(gè)存儲(chǔ)單元對(duì)非頂行宏塊的NMA標(biāo)記值進(jìn)行存儲(chǔ),對(duì)于剩余的N個(gè)存儲(chǔ)單元,則 為每個(gè)頂行宏塊的NMA標(biāo)記各分配1個(gè)存儲(chǔ)單元。在對(duì)條帶進(jìn)行編解碼的過(guò)程中,如果掃 描到頂行宏塊,則根據(jù)該頂行宏塊所在的水平位置,從存儲(chǔ)頂行宏塊NMA標(biāo)記的N個(gè)存儲(chǔ)單 元中獲取其N(xiāo)MA標(biāo)記;如果掃描到非頂行宏塊,則根據(jù)該非頂行宏塊的水平位置,從存儲(chǔ)非 頂行宏塊NMA的N個(gè)存儲(chǔ)單元中獲取NMA標(biāo)記。按照這樣的存儲(chǔ)結(jié)構(gòu)方式,每個(gè)條帶的頂行宏塊NMA標(biāo)記值不僅與其水平位置相 關(guān),而且與條帶首宏塊的水平位置相關(guān),因?yàn)槭缀陦K水平位置的變化會(huì)帶來(lái)頂行宏塊之間 相對(duì)位置的改變;而每個(gè)條帶的非頂行宏塊NMA標(biāo)記值只與其水平位置相關(guān)。在編解碼過(guò) 程中,每個(gè)條帶首宏塊的水平位置是不斷變化的,因此在每個(gè)條帶解碼之前,都需要根據(jù)條 帶首宏塊水平位置來(lái)動(dòng)態(tài)更新頂行宏塊的NMA值,而非頂行宏塊的NMA值不用更新。為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)實(shí)施例中的技術(shù)方案,并使本申請(qǐng)實(shí) 施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對(duì)本申請(qǐng)實(shí)施例中技術(shù)方 案作進(jìn)一步詳細(xì)的說(shuō)明。
參見(jiàn)圖1,為本申請(qǐng)宏塊信息存儲(chǔ)方法的第一實(shí)施例流程圖
步驟101 設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,該NMA存儲(chǔ)單元的數(shù)目是圖像幀中 每行宏塊數(shù)目N的兩倍。本實(shí)施例中,NMA標(biāo)記包括每個(gè)宏塊與其左側(cè)相鄰宏塊,左上相鄰宏塊,正上相鄰 宏塊和右上相鄰宏塊的相關(guān)性的集合。在設(shè)置NMA存儲(chǔ)單元時(shí),可以預(yù)先定義存儲(chǔ)空間為 2N個(gè)字節(jié)的數(shù)組,將數(shù)組中的每個(gè)字節(jié)空間作為一個(gè)NMA存儲(chǔ)單元,每個(gè)NMA存儲(chǔ)單元用于 通過(guò)四個(gè)比特信息存儲(chǔ)每個(gè)宏塊與其相鄰宏塊的相關(guān)性的集合,其中,N為自然數(shù)。步驟102 通過(guò)N個(gè)NMA存儲(chǔ)單元存儲(chǔ)每個(gè)條帶中頂行宏塊的NMA標(biāo)記,通過(guò)剩余 N個(gè)NMA存儲(chǔ)單元存儲(chǔ)每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。具體的,對(duì)于頂行宏塊,當(dāng)解碼圖像幀的第一個(gè)條帶時(shí),初始化N個(gè)NMA存儲(chǔ)單元, 將第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元,當(dāng)解碼圖像幀 的非第一個(gè)條帶時(shí),更新N個(gè)NMA存儲(chǔ)單元,將非第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記 順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元;對(duì)于非頂行宏塊,為圖像幀的每個(gè)條帶中位于同一水平位 置的非頂行宏塊分配一個(gè)NMA存儲(chǔ)單元,在每個(gè)所述NMA存儲(chǔ)單元中寫(xiě)入同一水平位置的 非頂行宏塊的相同NMA標(biāo)記。參見(jiàn)圖2,為本申請(qǐng)宏塊信息存儲(chǔ)方法的第二實(shí)施例流程圖,該實(shí)施例詳細(xì)示出了 宏塊信息的存儲(chǔ)過(guò)程步驟201 定義存儲(chǔ)空間為2N個(gè)字節(jié)的數(shù)組,將該數(shù)組中的每個(gè)字節(jié)空間作為一 個(gè)NMA存儲(chǔ)單元。步驟202 為圖像幀的每個(gè)條帶中位于同一水平位置的非頂行宏塊分配一個(gè)NMA
存儲(chǔ)單元。步驟203 在分配的每個(gè)NMA存儲(chǔ)單元中寫(xiě)入同一水平位置的非頂行宏塊的相同 NMA標(biāo)記。步驟204 解碼圖像幀的第一個(gè)條帶,初始化用于存儲(chǔ)頂行宏塊NMA標(biāo)記的N個(gè) NMA存儲(chǔ)單元,將第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。步驟205 判斷是否解碼完圖像幀的所有條帶,若是,則結(jié)束流程;否則,執(zhí)行步驟 206。步驟206 更新用于存儲(chǔ)頂行宏塊NMA標(biāo)記的N個(gè)NMA存儲(chǔ)單元,將非第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元,返回 步驟205。需要說(shuō)明的是,對(duì)于非頂行的第一個(gè)宏塊,在存儲(chǔ)時(shí)與其位于同一水平位置的宏 塊均存儲(chǔ)了同一個(gè)NMA值,但是由于非頂行的第一個(gè)宏塊具有特殊性,因此當(dāng)從NMA存儲(chǔ)單 元中讀取第一個(gè)非頂行宏塊的NMA標(biāo)記時(shí),將該NMA標(biāo)記中用于標(biāo)記左上宏塊的相關(guān)性的 值置為不相關(guān)即可。下面結(jié)合一個(gè)應(yīng)用實(shí)例對(duì)本申請(qǐng)實(shí)施例中的宏塊信息存儲(chǔ)過(guò)程進(jìn)行描述,參見(jiàn)圖 3A,為包含三個(gè)條帶的圖像幀的結(jié)構(gòu)示意圖本申請(qǐng)實(shí)施例中,每個(gè)存儲(chǔ)單元存放的不是條帶號(hào),而是宏塊的NMA標(biāo)記,對(duì)于一 個(gè)宏塊的NMA標(biāo)記,參見(jiàn)圖3B中的定義,假設(shè)當(dāng)前宏塊為E,相鄰的左邊宏塊為A,左上宏塊 為D,正上宏塊為B,右上宏塊為C,則使用4個(gè)比特信息來(lái)定義一個(gè)NMA標(biāo)記,如果宏塊A與宏塊E相關(guān)則NMA標(biāo)記的第O比特置1,如果宏塊B與宏塊E相關(guān)則第2比特置1,如果宏 塊C與宏塊E相關(guān)則第2比特置1,如果宏塊D與宏塊E相關(guān)則第3比特置1,如果與宏塊 E不相關(guān)則相應(yīng)比特置O。由此可知,本申請(qǐng)實(shí)施例中一個(gè)NMA標(biāo)記中的四個(gè)比特信息按照 “DCBA”的順序進(jìn)行排列。 圖3A中圖像幀的水平位置包含11個(gè)宏塊,垂直位置包含9個(gè)宏塊,則總共包含99 個(gè)宏塊。其中,根據(jù)宏塊的水平排列順序,宏塊MOO至宏塊M21屬于第一個(gè)條帶,宏塊M22 至宏塊M57屬于第二個(gè)條帶,宏塊M58至宏塊M8A屬于第三個(gè)條帶。假設(shè)使用一個(gè)字節(jié)來(lái) 定義一個(gè)存儲(chǔ)單元,則對(duì)于圖3A所示的圖像幀,需要使用一個(gè)大小為22個(gè)字節(jié)的數(shù)組NMA ARRAY來(lái)實(shí)現(xiàn)對(duì)宏塊NMA的存取。其中,將條帶頂行宏塊的NMA標(biāo)記存儲(chǔ)在數(shù)組NMA_ARRAY 的前11個(gè)單元中,非頂行宏塊的NMA標(biāo)記存儲(chǔ)在數(shù)組NMA_ARRAY的后11個(gè)單元中。由于 每個(gè)條帶頂行宏塊的NMA標(biāo)記與該條帶首宏塊的水平位置相關(guān),即條帶頂行宏塊的首宏塊 的水平位置發(fā)生變化時(shí)會(huì)使得頂行宏塊之間的相對(duì)位置發(fā)生改變,因此為條帶的每個(gè)頂行 宏塊分配一個(gè)存儲(chǔ)單元;對(duì)于一個(gè)條帶內(nèi),位于同一水平位置的非頂行宏塊,其具有相同的 NMA標(biāo)記值,因此同一水平位置的若干非頂行宏塊可以共用一個(gè)存儲(chǔ)單元,例如Mll與M21, 其具有相同的NMA標(biāo)記。下面結(jié)合圖3A,順序描述對(duì)三個(gè)條帶的NMA標(biāo)記進(jìn)行存儲(chǔ)解碼的過(guò)程對(duì)于非頂行宏塊來(lái)說(shuō),存儲(chǔ)非頂行宏塊的NMA標(biāo)記的數(shù)組單元值是不變的,不需 要根據(jù)當(dāng)前條帶首宏塊位置進(jìn)行動(dòng)態(tài)更新,因此可以設(shè)置其對(duì)應(yīng)的值如下位于同一水平 位置為0的非頂行宏塊其N(xiāo)MA標(biāo)記用NMA_ARRAY[11] = 0x06表示,以宏塊MlO為例,其左 邊、左上、正上、右上的相關(guān)性值分別為“0011”,對(duì)應(yīng)到圖3B中的定義,按照“DCBA”順序排 列時(shí),該值對(duì)應(yīng)為“0110”,換算為16進(jìn)制即為6,則NMA_ARRAY[11] = 0x06 ;位于同一水平 位置為1至9的非頂行宏塊其N(xiāo)MA標(biāo)記用NMA_ARRAY[12 20] = OxOF表示,以宏塊M42為 例,其左邊、左上、正上、右上的相關(guān)性值分別為“1111”,對(duì)應(yīng)到圖3B中的定義,按照“DCBA” 順序排列時(shí),該值對(duì)應(yīng)為“1111”,換算為16進(jìn)制即為F,則NMA_ARRAY[11] = OxOF ;位于同 一水平位置為10的非頂行宏塊其N(xiāo)MA標(biāo)記用NMA_ARRAY[21] = OxOB表示,以宏塊MlA為 例,其左邊、左上、正上、右上的相關(guān)性值分別為“1110”,對(duì)應(yīng)到圖3B中的定義,按照“DCBA” 順序排列時(shí),該值對(duì)應(yīng)為“1011,換算為16進(jìn)制即為B,則NMA_ARRAY[11] = OxOB。特別的, 在非首行宏塊中,除第1個(gè)非頂行宏塊外,其余水平位置相同的宏塊具有相同的NMA標(biāo)記, 但是對(duì)于第1個(gè)非頂行宏塊,需要將所存儲(chǔ)的NMA標(biāo)記的左上相關(guān)性值置0,就可以得到第 1個(gè)非首行宏塊的NMA標(biāo)記,例如,對(duì)于第二個(gè)條帶中的第一個(gè)非頂行宏塊M32來(lái)說(shuō),宏塊 M32與宏塊M42和M52位于同一水平位置“2”,但是宏塊M32與左上宏塊的相關(guān)性為“0”,因 此在根據(jù)非頂行宏塊水平位置獲取到宏塊M32的NMA標(biāo)記時(shí),需要將該標(biāo)記中表示左上相 關(guān)性的值置為0,即將NMA相關(guān)性NMA_ARRAY[ll+2] = OxOF修改為“0x07”。對(duì)于頂行宏塊來(lái)說(shuō),首先,在對(duì)第1個(gè)條帶進(jìn)行解碼時(shí),對(duì)存儲(chǔ)頂行宏塊NMA標(biāo)記 的數(shù)組單元進(jìn)行初始化,即對(duì)NMA_ARRAY的前11個(gè)單元進(jìn)行初始化,第一個(gè)條帶的首宏塊 MOO 水平位置為 0,其頂行宏塊分別為 M00、M01、M02、M03、M04、M05、M06、M07、M08、M09、M0A, 在初始化過(guò)程中,NMA_ARRAY
= 0x00,即宏塊MOO與其左側(cè)、左上、正上、右上宏塊的相關(guān) 性值均為0,NMA_ARRAY[1 10] = 0x01,即宏塊MOl至MOA與其左側(cè)宏塊的相關(guān)性為1,與 左上、正上、右上宏塊的相關(guān)性均為0。由此可知,對(duì)于當(dāng)前第一個(gè)條帶中水平位置為MB_X的頂行宏塊來(lái)說(shuō),其對(duì)應(yīng)的NMA標(biāo)記為NMA_ARRAY[MB_X];對(duì)于水平位置為MB_X的非頂行 宏塊來(lái)說(shuō),其對(duì)應(yīng)NMA標(biāo)記值為NMA_ARRAY [ 11+MB_X];其次,對(duì)第2個(gè)條帶進(jìn)行解碼時(shí),該條帶首宏塊M22水平位置為2,頂行宏塊分別為 M30、M31、M22、M23、M24、M25、M26、M27、M28、M29、M2A,對(duì)存儲(chǔ)頂行宏塊的 NMA 標(biāo)記存儲(chǔ)單元 進(jìn)行更新,其中,宏塊 M30 的 NMA_ARRAY
= 0x00,宏塊 M31 的 NMA_ARRAY[1] = 0x05,宏 塊M22 的 NMA_ARRAY[2] = 0x00,宏塊M23 至宏塊M2A 的 NMA_ARRAY[3 10] = 0x01 ;在獲 取NMA標(biāo)記時(shí),比如解碼宏塊M31,判斷宏塊M31為頂行宏塊,則其N(xiāo)MA標(biāo)記值是放在NMA_ ARRAY的前11個(gè)單元中,又判斷宏塊M31水平位置為1,那么對(duì)應(yīng)的NMA標(biāo)記存儲(chǔ)在NMA_ ARRAY[1]中,讀取該NMA_ARRAY[1] = 0x05,表示宏塊M31只有左邊、右上宏塊可作參考;最后,對(duì)第3個(gè)條帶進(jìn)行解碼時(shí),該條帶首宏塊M58水平位置為8,頂行宏塊分別為 M60、M61、M62、M63、M64、M65、M66、M67、M58、M59、M5A,對(duì)頂行宏塊 NMA 標(biāo)記存儲(chǔ)單元進(jìn)行 更新,其中,宏塊M60的NMA_ARRAY
= 0x00,宏塊M61至宏塊M66的NMA_ARRAY[1 6] =0x01,宏塊 M67 的 NMA_ARRAY[7] = 0x05,宏塊 M58 的 NMA_ARRAY[8] = 0x00,宏塊 M59 至 M5A的NMA_ARRAY[9 10] = 0x01 ;在獲取對(duì)于當(dāng)前水平位置為MB_X的頂行宏塊來(lái)說(shuō),其 對(duì)應(yīng)的NMA標(biāo)記值就是NMA_ARRAY[MB_X]。通過(guò)上述應(yīng)用實(shí)例的描述可知,現(xiàn)有技術(shù)中在存儲(chǔ)圖3A所示圖像幀的宏塊信息 時(shí),需要預(yù)先設(shè)置99個(gè)存儲(chǔ)單元,即為每個(gè)宏塊分配一個(gè)存儲(chǔ)單元,而本申請(qǐng)實(shí)施例中至 需要預(yù)先設(shè)置22個(gè)存儲(chǔ)單元,就可以實(shí)現(xiàn)對(duì)每個(gè)宏塊的NMA標(biāo)記的存儲(chǔ),從而降低了解碼 過(guò)程中所需要的存儲(chǔ)空間。與本申請(qǐng)宏塊信息存儲(chǔ)方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了宏塊信息存儲(chǔ)裝置 的實(shí)施例。參見(jiàn)圖4,為本申請(qǐng)宏塊信息存儲(chǔ)裝置的實(shí)施例框圖。該裝置包括設(shè)置單元410和存儲(chǔ)單元420。其中,設(shè)置單元410,用于設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的 數(shù)目是圖像幀中每行宏塊數(shù)目N的兩倍,所述N為自然數(shù);存儲(chǔ)單元420,用于通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的 NMA標(biāo)記,通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。其中,NMA標(biāo)記包括每個(gè)宏塊與其左側(cè)相鄰宏塊,左上相鄰宏塊,正上相鄰宏塊 和右上相鄰宏塊的相關(guān)性的集合;所述設(shè)置單元410具體用于,定義存儲(chǔ)空間為2N個(gè)字節(jié) 的數(shù)組,將所述數(shù)組中的每個(gè)字節(jié)空間作為一個(gè)NMA存儲(chǔ)單元,每個(gè)所述NMA存儲(chǔ)單元用于 通過(guò)四個(gè)比特信息存儲(chǔ)所述相關(guān)性的集合。參見(jiàn)圖5,為圖4所示裝置中存儲(chǔ)單元420的實(shí)施例框圖。
該存儲(chǔ)單元420包括初始化存儲(chǔ)子單元421、更新存儲(chǔ)子單元422、分配子單元 423、寫(xiě)入子單元424和標(biāo)記重置子單元425。初始化存儲(chǔ)子單元421,用于當(dāng)解碼所述圖像幀的第一個(gè)條帶時(shí),初始化所述N個(gè) NMA存儲(chǔ)單元,將所述第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單 元;更新存儲(chǔ)子單元422,用于當(dāng)解碼所述圖像幀的非第一個(gè)條帶時(shí),更新所述N個(gè) NMA存儲(chǔ)單元,將所述非第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。分配子單元423,用于為圖像幀的每個(gè)條帶中位于同一水平位置的非頂行宏塊分配一個(gè)NMA存儲(chǔ)單元;寫(xiě)入子單元424,用于在每個(gè)所述NMA存儲(chǔ)單元中寫(xiě)入所述同一水平位置的非頂 行宏塊的相同NMA標(biāo)記;標(biāo)記重置子單元425,用于當(dāng)從NMA存儲(chǔ)單元中讀取第一個(gè)非頂行宏塊的NMA標(biāo)記 時(shí),將所述NMA標(biāo)記中用于標(biāo)記左上宏塊的相關(guān)性的值置為不相關(guān)。通過(guò)以上的實(shí)施方式的描述可知,本申請(qǐng)實(shí)施例中設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ) 單元,所述NMA存儲(chǔ)單元的數(shù)目是圖像幀中每行宏塊數(shù)目N的兩倍,通過(guò)N個(gè)所述NMA存儲(chǔ) 單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記,通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述 每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。應(yīng)用本申請(qǐng)實(shí)施例對(duì)宏塊信息進(jìn)行存儲(chǔ)時(shí),無(wú)需為每 個(gè)宏塊分配存儲(chǔ)單元,而是根據(jù)宏塊所在位置的不同,只需要為每個(gè)條帶的每個(gè)頂行宏塊 分別分配一個(gè)存儲(chǔ)單元,對(duì)于位于同一水平位置的非頂行宏塊,可以通過(guò)一個(gè)存儲(chǔ)單元存 儲(chǔ)其N(xiāo)MA標(biāo)記,由此減少了存儲(chǔ)單元的數(shù)量,特別當(dāng)圖像幀中包含大量宏塊時(shí),可以減少宏 塊信息的存儲(chǔ)空間。通過(guò)以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可 借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì) 上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品 可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備 (可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些 部分所述的方法。本說(shuō)明書(shū)中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部 分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。尤其,對(duì)于系統(tǒng)實(shí) 施例而言,由于其基本相似于方法實(shí)施例,所以描述的比較簡(jiǎn)單,相關(guān)之處參見(jiàn)方法實(shí)施例 的部分說(shuō)明即可。本申請(qǐng)可用于眾多通用或?qū)S玫挠?jì)算系統(tǒng)環(huán)境或配置中。例如個(gè)人計(jì)算機(jī)、服務(wù) 器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、置頂 盒、可編程的消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的 分布式計(jì)算環(huán)境等等。本申請(qǐng)可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序 模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的例程、程序、對(duì)象、組 件、數(shù)據(jù)結(jié)構(gòu)等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由 通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以 位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。雖然通過(guò)實(shí)施例描繪了本申請(qǐng),本領(lǐng)域普通技術(shù)人員知道,本申請(qǐng)有許多變形和 變化而不脫離本申請(qǐng)的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請(qǐng)的 精神。
權(quán)利要求
一種宏塊信息存儲(chǔ)方法,其特征在于,包括設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的數(shù)目是圖像幀中每行宏塊數(shù)目N的兩倍,所述N為自然數(shù);通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記,通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述NMA標(biāo)記包括每個(gè)宏塊與其左側(cè)相 鄰宏塊,左上相鄰宏塊,正上相鄰宏塊和右上相鄰宏塊的相關(guān)性的集合。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述設(shè)置NMA存儲(chǔ)單元具體為定義存儲(chǔ)空間為2N個(gè)字節(jié)的數(shù)組,將所述數(shù)組中的每個(gè)字節(jié)空間作為一個(gè)NMA存儲(chǔ)單 元,每個(gè)所述NMA存儲(chǔ)單元用于通過(guò)四個(gè)比特信息存儲(chǔ)所述相關(guān)性的集合。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述 每個(gè)條帶中頂行宏塊的NMA標(biāo)記包括當(dāng)解碼所述圖像幀的第一個(gè)條帶時(shí),初始化所述N個(gè)NMA存儲(chǔ)單元,將所述第一個(gè)條帶 中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述 每個(gè)條帶中頂行宏塊的NMA標(biāo)記包括當(dāng)解碼所述圖像幀的非第一個(gè)條帶時(shí),更新所述N個(gè)NMA存儲(chǔ)單元,將所述非第一個(gè)條 帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述通過(guò)剩余N個(gè)NMA存儲(chǔ)單元存儲(chǔ)所述 每個(gè)條帶中非頂行宏塊的NMA標(biāo)記包括為圖像幀的每個(gè)條帶中位于同一水平位置的非頂行宏塊分配一個(gè)NMA存儲(chǔ)單元;在每個(gè)所述NMA存儲(chǔ)單元中寫(xiě)入所述同一水平位置的非頂行宏塊的相同NMA標(biāo)記。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,還包括當(dāng)從NMA存儲(chǔ)單元中讀取第一個(gè)非頂行宏塊的NMA標(biāo)記時(shí),將所述NMA標(biāo)記中用于標(biāo) 記左上宏塊的相關(guān)性的值置為不相關(guān)。
8.一種宏塊信息存儲(chǔ)裝置,其特征在于,包括設(shè)置單元,用于設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的數(shù)目是圖像幀 中每行宏塊數(shù)目N的兩倍,所述N為自然數(shù);存儲(chǔ)單元,用于通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記, 通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述NMA標(biāo)記包括每個(gè)宏塊與其左側(cè)相 鄰宏塊,左上相鄰宏塊,正上相鄰宏塊和右上相鄰宏塊的相關(guān)性的集合;所述設(shè)置單元具體用于,定義存儲(chǔ)空間為2N個(gè)字節(jié)的數(shù)組,將所述數(shù)組中的每個(gè)字節(jié) 空間作為一個(gè)NMA存儲(chǔ)單元,每個(gè)所述NMA存儲(chǔ)單元用于通過(guò)四個(gè)比特信息存儲(chǔ)所述相關(guān) 性的集合。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述存儲(chǔ)單元包括初始化存儲(chǔ)子單元,用于當(dāng)解碼所述圖像幀的第一個(gè)條帶時(shí),初始化所述N個(gè)NMA存儲(chǔ) 單元,將所述第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元;更新存儲(chǔ)子單元,用于當(dāng)解碼所述圖像幀的非第一個(gè)條帶時(shí),更新所述N個(gè)NMA存儲(chǔ)單元,將所述非第一個(gè)條帶中的每個(gè)頂行宏塊的NMA標(biāo)記順序?qū)懭雽?duì)應(yīng)的NMA存儲(chǔ)單元。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述存儲(chǔ)單元包括分配子單元,用于為圖像幀的每個(gè)條帶中位于同一水平位置的非頂行宏塊分配一個(gè) NMA存儲(chǔ)單元;寫(xiě)入子單元,用于在每個(gè)所述NMA存儲(chǔ)單元中寫(xiě)入所述同一水平位置的非頂行宏塊的 相同NMA標(biāo)記。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述存儲(chǔ)單元還包括標(biāo)記重置子單元,用于當(dāng)從NMA存儲(chǔ)單元中讀取第一個(gè)非頂行宏塊的NMA標(biāo)記時(shí),將所 述NMA標(biāo)記中用于標(biāo)記左上宏塊的相關(guān)性的值置為不相關(guān)。
全文摘要
本發(fā)明公開(kāi)了一種宏塊信息存儲(chǔ)方法及裝置,所述方法包括設(shè)置臨近宏塊相關(guān)性NMA存儲(chǔ)單元,所述NMA存儲(chǔ)單元的數(shù)目是圖像幀中每行宏塊數(shù)目N的兩倍,所述N為自然數(shù);通過(guò)N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中頂行宏塊的NMA標(biāo)記,通過(guò)剩余N個(gè)所述NMA存儲(chǔ)單元存儲(chǔ)所述每個(gè)條帶中非頂行宏塊的NMA標(biāo)記。應(yīng)用本發(fā)明實(shí)施例對(duì)宏塊信息進(jìn)行存儲(chǔ)時(shí),無(wú)需為每個(gè)宏塊分配存儲(chǔ)單元,而是根據(jù)宏塊所在位置的不同,只需要為每個(gè)條帶的每個(gè)頂行宏塊分別分配一個(gè)存儲(chǔ)單元,對(duì)于位于同一水平位置的非頂行宏塊,可以通過(guò)一個(gè)存儲(chǔ)單元存儲(chǔ)其N(xiāo)MA標(biāo)記,由此減少了存儲(chǔ)單元的數(shù)量,特別當(dāng)圖像幀中包含大量宏塊時(shí),可以減少宏塊信息的存儲(chǔ)空間。
文檔編號(hào)H04N7/26GK101873497SQ20101018802
公開(kāi)日2010年10月27日 申請(qǐng)日期2010年5月26日 優(yōu)先權(quán)日2010年5月26日
發(fā)明者俞海, 戚紅命, 胡揚(yáng)忠, 賈永華, 鄔偉琪 申請(qǐng)人:杭州海康威視軟件有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1