專利名稱:多核處理器中并行解碼的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種在多核處理器中并行解碼的方法和 裝置。
背景技術(shù):
H.264協(xié)議是一種高復(fù)雜度的視頻算法協(xié)議,其高質(zhì)量的圖像效果是以 加大運(yùn)算復(fù)雜度來(lái)?yè)Q取的,數(shù)字信號(hào)處理器(Digital Signal Processing, DSP)
芯片的計(jì)算能力與要求越來(lái)越高的固像效果之間產(chǎn)生了激烈矛盾。目前,視 頻應(yīng)用已經(jīng)進(jìn)入了高清時(shí)代,以視頻會(huì)議為例,當(dāng)前720P已經(jīng)是標(biāo)準(zhǔn)配置, 1080I60\1080P30也在大力推廣中,以后還有1080P60,從而實(shí)現(xiàn)全高清。 這些高清標(biāo)準(zhǔn)的數(shù)據(jù)處理量是驚人的,以市場(chǎng)上DSP芯片單核處理能力來(lái) 說(shuō),沒(méi)有哪款芯片能獨(dú)立完成1080P25的解碼,對(duì)于1080P30/60就更是望 塵莫及。雖然,芯片廠商不斷提高芯片處理能力,但其速度遠(yuǎn)遠(yuǎn)跟不上市場(chǎng) 的步伐。而芯片處理能力提高帶來(lái)的功耗、成本的急劇上升也是對(duì)產(chǎn)業(yè)的嚴(yán) 重打擊。
為了解決這個(gè)問(wèn)題,多核芯片是最好的辦法,多核通過(guò)共享資源的方式 可以在功耗、成本增加不大的情況下極大提升效率。而對(duì)于軟件來(lái)說(shuō),如何 協(xié)調(diào)好這些處理器內(nèi)核,使之有序高效獨(dú)立工作是個(gè)難題。
多核芯片由于采用了多處理核之間共享內(nèi)存、總線、緩存、增強(qiáng)型直接 內(nèi)存存取(EDMA, Enhanced Direct Memory Access)等資源,所以其單核 平均成本、功耗等要比單核芯片低。由于單核芯片對(duì)于這些資源是獨(dú)占的, 利用這些資源不存在竟?fàn)庩P(guān)系,所以軟件無(wú)需考慮臨界資源問(wèn)題。但對(duì)于多 核芯片,核與核之間的同步、臨界資源訪問(wèn),是必須考慮的,如果核間交互 過(guò)于頻繁,對(duì)于整體性能來(lái)說(shuō),是個(gè)很大的打擊。另外,多負(fù)載均衡問(wèn)題也 是需要充分考慮的,要避免大部分工作分配到一個(gè)核處理,這實(shí)際上沒(méi)有充 分發(fā)揮多核的優(yōu)勢(shì)。
5具體到R264解碼來(lái)說(shuō),解碼一幀的具體過(guò)程如圖l所示其中熵解碼 可以用單獨(dú)一個(gè)核完成,熵解碼由于上下文相關(guān),其處理必須串行,所以熵 解碼要用多核并行處理比較困難。熵解碼必須由一個(gè)核單獨(dú)完成,可以并行 處理的部分主要是運(yùn)動(dòng)補(bǔ)償和幀間預(yù)測(cè)部分,這兩部分是解碼器的重要部 分,如何將這兩部分工作平均分配到不同處理器內(nèi)核上,最大程度上減少核 間數(shù)據(jù)依賴,不是件容易的事。如果核間通訊頻繁,造成額外開(kāi)銷太大,對(duì) 于處理器資源來(lái)說(shuō)是個(gè)嚴(yán)峻的考驗(yàn),因而,要盡可能讓各個(gè)核獨(dú)立工作,相 互間不關(guān)心或少關(guān)心其它核的運(yùn)行狀態(tài)。只有這樣才能真正達(dá)到并行處理的 目的,充分發(fā)揮多核的優(yōu)勢(shì),如果,核間頻繁倒換數(shù)據(jù),頻繁通訊同步,這 樣使得多核之間互相制掣,不停等待其它核的消息,這樣實(shí)際上并不能充分 發(fā)揮多核的優(yōu)勢(shì),會(huì)使得單核的平均性能大大降低,使單位成本上升。
關(guān)于多核解碼方案,目前有一種比較簡(jiǎn)單易行的方案是按片(slice) 級(jí)分配,即每個(gè)核獨(dú)立解一個(gè)slice,為了提高網(wǎng)路健壯性,根據(jù)視頻算法 協(xié)議R264將視頻分割成一個(gè)個(gè)子圖像獨(dú)立編碼,這些子圖像即為slice, 每個(gè)slice可以被獨(dú)立解碼,不需要依賴其它slice的數(shù)據(jù)。這種分配方法, 在多核芯片上能獲得極高的并行度,因?yàn)槊總€(gè)核都可以獨(dú)立運(yùn)行,不需要 相互關(guān)心對(duì)方的運(yùn)行狀態(tài)。但這個(gè)方案的不足之處在于,有些圖像編碼是 整幀為一個(gè)slice,也即圖像只分成了一個(gè)子圖像,而不是分成若干個(gè)子圖 像。這種情況下,采用slice級(jí)分配方法,多核芯片退化成了單核芯片,這 是很難被接受的。另夕卜,slice的數(shù)據(jù)量大小不同,差異性也較大,造成slice 級(jí)分配容易導(dǎo)致各個(gè)處理核負(fù)載不均衡,從而導(dǎo)致處理資源浪費(fèi)的問(wèn)題。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例要解決的問(wèn)題是提供一種在多核處理器中并行解碼的方 法和裝置,以解決現(xiàn)有技術(shù)中多核進(jìn)行并行解碼時(shí)多核之間負(fù)載不均衡所導(dǎo) 致的資源浪費(fèi)的問(wèn)題。
為了解決上述問(wèn)題,本發(fā)明實(shí)施例提供了一種在多核處理器中并行解碼 的方法和裝置,具體技術(shù)方案如下
一種在多核處理器中并行解碼的方法,所述多核處理器的核個(gè)數(shù)為N個(gè),其中,N為大于2的自然數(shù),所述方法包括
所述多核處理器的第一核接收slice碼流,所述slice包括m行宏塊,其 中,m為大于2的自然數(shù);對(duì)當(dāng)前所述slice進(jìn)行熵解碼,得到宏塊信息, 所述宏塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;
所述多核處理器的第2到第j核根據(jù)所述宏塊信息對(duì)所述m行宏塊進(jìn)行 幀間模式解碼,并在進(jìn)行所述幀間模式解碼過(guò)程中,#4居第一可獨(dú)立解碼的 幀內(nèi)宏塊的判斷條件,獲取并保存第一可獨(dú)立解碼的幀內(nèi)宏塊,其中, l<j<=N;
在完成所述幀間^^莫式解碼后,根據(jù)所述宏塊信息對(duì)所述保存的第一可獨(dú) 立解碼的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼,并在進(jìn)行所述幀內(nèi)模式解碼過(guò)程中, 根據(jù)第二可獨(dú)立解碼的宏塊的判斷條件,獲取并保存所述第二可獨(dú)立解碼的
幀內(nèi)宏塊;
根據(jù)所述宏塊信息對(duì)所述保存的第二可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行所述 幀內(nèi)模式解碼;
當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前所述slice的宏塊數(shù)時(shí),得到經(jīng)解碼處理 的slice;
對(duì)所述slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice。 一種多核處理器,包括
N個(gè)處理內(nèi)核、獲取模塊和環(huán)路濾波模塊,其中,N為大于2的自然數(shù);
所述多核處理器的第一核,用于接收slice碼流,所述slice包括m行宏 塊,其中,m為大于2的自然數(shù);對(duì)當(dāng)前所述slice進(jìn)行熵解碼,得到宏塊 信息,所述宏塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;
所述多核處理器的第2到第j核,用于根據(jù)所述宏塊信息對(duì)所述m行宏 塊進(jìn)行幀間模式解碼,并在進(jìn)行所述幀間模式解碼過(guò)程中,根據(jù)第一可獨(dú)立 解碼的幀內(nèi)宏塊的判斷條件,獲取并保存第 一可獨(dú)立解碼的幀內(nèi)宏塊,其中, l<j<=N;
在完成所述幀間模式解碼后,根據(jù)所述宏塊信息對(duì)所述保存的第一可獨(dú) 立解碼的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼,并在進(jìn)行所述幀內(nèi)模式解碼過(guò)程中, 根據(jù)第二可獨(dú)立解碼的宏塊的判斷條件,獲取并保存所述第二可獨(dú)立解碼的
幀內(nèi)宏塊;根據(jù)所述宏塊信息對(duì)所述保存的第二可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行所述
幀內(nèi)模式解碼;
所述獲取才莫塊,用于當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前所述slice的宏塊數(shù) 時(shí),得到經(jīng)解碼處理的slice;
所述環(huán)路濾波模塊,用于對(duì)所述slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路 濾波處理的slice。
在本發(fā)明實(shí)施例中,通過(guò)多核處理器的第一核對(duì)接收的碼流進(jìn)行熵解 碼,得到宏塊信息;多核處理器的第2到第j核根據(jù)宏塊信息進(jìn)行幀間模式 解碼,獲取并保存可獨(dú)立解碼的幀內(nèi)宏塊;多核處理器的第2到第j核進(jìn)行 幀內(nèi)模式解碼,當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前slice的宏塊數(shù)時(shí),得到經(jīng)解 碼處理的slice;對(duì)slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice, 可以使多核處理器中各核獨(dú)立處理數(shù)據(jù),并保持負(fù)栽均衡,有利于提高資源 利用率。
圖1是現(xiàn)有技術(shù)提供的H.264解碼的示意圖; 圖2是本發(fā)明實(shí)施例提供的多核并行解碼的方法的流程圖; 圖3是本發(fā)明實(shí)施例提供的多核處理器的第2到第j核進(jìn)行幀間模式解 碼的示意圖4是本發(fā)明實(shí)施例提供的讀寫(xiě)公共表的示意圖; 圖5是本發(fā)明實(shí)施例提供的查看的相鄰宏塊的示意圖; 圖6是本發(fā)明實(shí)施例提供的多核處理器的示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想在于通過(guò)多核處理器的第一核對(duì)接收的碼流進(jìn)行熵 解碼,得到宏塊信息;多核處理器的第2到第j核根據(jù)宏塊信息進(jìn)行幀間模 式解碼,獲取并保存可獨(dú)立解碼的幀內(nèi)宏塊;多核處理器的第2到第j核進(jìn) 行幀內(nèi)模式解碼,當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前slice的宏塊數(shù)時(shí),得到經(jīng) 解碼處理的slice;對(duì)slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)if各濾波處理的slice,
8可以是多核處理器中各核獨(dú)立處理數(shù)據(jù),并保持負(fù)載均衡,有利于提高資源 利用率。
下面結(jié)合附圖及優(yōu)選實(shí)施方式對(duì)本發(fā)明技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。 本發(fā)明實(shí)施例提供了 一種在多核處理器中并行解碼的方法,該多核處理
器的核個(gè)數(shù)為N個(gè),其中,N為大于2的自然數(shù),如圖2所示,該方法包 括
201;多核處理器的第一核接收slice碼流,該slice包括m行宏塊,其 中,m為大于2的自然數(shù);對(duì)當(dāng)前slice進(jìn)行熵解碼,得到宏塊信息,該宏 塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;
202,多核處理器的第2到第j核根據(jù)宏塊信息對(duì)m行宏塊進(jìn)行幀間模 式解碼,并在進(jìn)行幀間模式解碼過(guò)程中,根據(jù)第一可獨(dú)立解碼的幀內(nèi)宏塊的 判斷條件,獲取并保存第一可獨(dú)立解碼的幀內(nèi)宏塊,其中,l<j<=N;
具體地,如圖3所示,多核處理器的第2到第j核根據(jù)宏塊信息對(duì)m/(N-1) x (J-2) ~m/(N-l) x (J-l)-l行的宏塊中的幀間宏塊進(jìn)行幀間模式解碼,具體 地,多核處理器的第2到第j核根據(jù)運(yùn)動(dòng)矢量和宏塊模式得到預(yù)測(cè)宏塊,根 據(jù)預(yù)測(cè)宏塊和殘差宏塊得到重建圖像。
在幀間模式解碼過(guò)程中,每解碼一個(gè)幀間宏塊需要根據(jù)第一可獨(dú)立解碼 的幀內(nèi)宏塊的判斷條件,判斷右相鄰宏塊的相鄰宏塊是否為可獨(dú)立解碼的幀 內(nèi)模式宏塊,如果是,將可以獨(dú)立解碼的幀內(nèi)模式宏塊的地址存放在公共表 中的末尾。公共表是臨界資源,需要互斥訪問(wèn)。其中,需要查看的右相鄰宏 塊的相鄰宏塊為左相鄰宏塊、上相鄰宏塊、上左相鄰宏塊、上右相鄰宏塊, 第一可獨(dú)立解碼的幀內(nèi)宏塊的判斷條件為右相鄰宏塊的左相鄰宏塊、上相鄰 宏塊、上左相鄰宏塊、上右相鄰宏塊均為幀間^t式。其中,m行宏塊中第1 行宏塊所有幀內(nèi)模式宏塊全部為可以獨(dú)立解碼的幀內(nèi)宏塊。其中,黑色標(biāo)注 部分為可獨(dú)立解碼的幀內(nèi)宏塊
203,在完成幀間模式解碼后,根據(jù)宏塊信息對(duì)保存的第一可獨(dú)立解碼 的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼,并在進(jìn)行幀內(nèi)模式解碼過(guò)程中,根據(jù)第二可 獨(dú)立解碼的幀內(nèi)宏塊的判斷條件,獲取并保存第二可獨(dú)立解碼的幀內(nèi)宏塊; 根據(jù)宏塊信息對(duì)保存第二可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼;在進(jìn)行幀內(nèi)模式解碼時(shí),第2到第j核在獨(dú)立完成幀間模式宏塊解碼 后,從公共表中獲取可以解碼的幀內(nèi)模式宏塊的地址,對(duì)公共表進(jìn)行互斥訪 問(wèn),而且維持讀寫(xiě)指針,每次將1個(gè)宏塊地址寫(xiě)入公共表中時(shí),寫(xiě)指針增加 l個(gè)單位,每次從公共表中讀取一個(gè)宏塊地址,讀指針增加l個(gè)單位。當(dāng)讀 寫(xiě)指針相同,表明公共表為空,這時(shí),進(jìn)來(lái)讀取宏塊地址的內(nèi)核需要釋放臨 界資源,等待公共表不為空,公共表讀寫(xiě)如圖4所示。
在幀內(nèi)模式解碼時(shí),需要更新公共表。當(dāng)解完一個(gè)幀內(nèi)宏塊時(shí),需要根 據(jù)第二可獨(dú)立解碼的幀內(nèi)宏塊的判斷條件查看其相鄰宏塊是否可以獨(dú)立解
碼,如果能獨(dú)立解碼,則將其宏塊地址寫(xiě)入公共表中。其中,需要查看的相 鄰宏塊是右相鄰宏塊、下相鄰宏塊、下左相鄰宏塊、下右相鄰宏塊,如圖5 所示。該相連宏塊可以獨(dú)立解碼的條件是該相鄰宏塊的左相鄰宏塊、上相 鄰宏塊、上左相鄰宏塊、上右相鄰宏塊已經(jīng)執(zhí)行解碼。
204,當(dāng)已經(jīng)解碼的宏塊等于當(dāng)前slice的宏塊數(shù)時(shí),得到經(jīng)解碼處理 的slice;
205,對(duì)slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice。
基于與方法相同的發(fā)明構(gòu)思,本發(fā)明實(shí)施例提供了 一種多核處理器, 如圖6所示,包括N個(gè)處理內(nèi)核、獲取模塊和環(huán)路濾波模塊,其中,N為 大于2的自然數(shù);
該多核處理器的第一核,用于接收slice碼流,該slice包括m行宏塊, 其中,m為大于2的自然數(shù);對(duì)當(dāng)前該slice進(jìn)行熵解碼,得到宏塊信息, 該宏塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;
該多核處理器的第2到第j核,用于根據(jù)該宏塊信息對(duì)該m行宏塊進(jìn)行 幀間模式解碼,并在進(jìn)行該幀間模式解碼過(guò)程中,根據(jù)第一可獨(dú)立解碼的幀 內(nèi)宏塊的判斷條件,獲取并保存第一可獨(dú)立解碼的幀內(nèi)宏塊,其中,l<j<=N;
在完成該幀間模式解碼后,根據(jù)該宏塊信息對(duì)該保存的第一可獨(dú)立解碼 的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼,并在進(jìn)行該幀內(nèi)模式解碼過(guò)程中,根據(jù)第二 可獨(dú)立解碼的宏塊的判斷條件,獲取并保存該第二可獨(dú)立解碼的幀內(nèi)宏塊;
根據(jù)宏塊信息對(duì)保存第二可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼;
獲取模塊,用于當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前該slice的宏塊數(shù)時(shí),得到經(jīng)解碼處理的slice;
環(huán)路濾波模塊,用于對(duì)該slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處 理的slice 。
進(jìn)一步,多核處理器的第2到第j核根據(jù)第一可獨(dú)立解碼的幀內(nèi)宏塊的 判斷條件,獲取并保存第一可獨(dú)立解碼的幀內(nèi)宏塊,包括
多核處理器的第2到第j核,用于判斷當(dāng)前解碼的幀間宏塊的右相鄰宏 塊的左相鄰宏塊、上相鄰宏塊、上左相鄰宏塊、上右相鄰宏塊是否均為幀間 宏塊;
如果是,則獲取并保存該右相鄰宏塊,該右相鄰宏塊作為第一可獨(dú)立解 碼的幀內(nèi)宏塊。
進(jìn)一步地,多核處理器的第2到第j核根據(jù)第二可獨(dú)立解碼的宏塊的判 斷條件,獲取并保存該第二可獨(dú)立解碼的宏塊,包括
多核處理器的第2到第j核,用于判斷當(dāng)前解碼的幀內(nèi)宏塊的相鄰宏塊 的左相鄰宏塊、上相鄰宏塊、上左相鄰宏塊、上右相鄰宏塊是否已經(jīng)執(zhí)行解 碼;如果是,則將該當(dāng)前解碼的幀內(nèi)宏塊的相鄰宏塊作為該第二可獨(dú)立解碼 的幀內(nèi)宏塊,該當(dāng)前解碼的幀內(nèi)宏塊的相鄰宏塊為右相鄰宏塊、下相鄰宏塊、 下左相鄰宏塊和下右相鄰宏塊。
進(jìn)一步地,多核處理器的第2到第j核根據(jù)該宏塊信息對(duì)該m行宏塊進(jìn) 行幀間模式解碼,包括
多核處理器的第2到第j核,用于根據(jù)該宏塊信息對(duì)m/(N-l) x (j_2) ~ m/(N-l) x (J-l)-1行的宏塊中的幀間宏塊進(jìn)行幀間模式解碼。
在本發(fā)明實(shí)施例中,通過(guò)多核處理器的第一核對(duì)接收的slice碼流進(jìn)行 熵解碼,得到宏塊信息;多核處理器的第2到第j核根據(jù)宏塊信息進(jìn)行幀間 模式解碼,獲取并保存可獨(dú)立解碼的幀內(nèi)宏塊;多核處理器的第2到第j核 進(jìn)行幀內(nèi)模式解碼,當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前slice的宏塊數(shù)時(shí),得到 經(jīng)解碼處理的slice;對(duì)slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice, 可以使多核處理器中各核獨(dú)立處理數(shù)據(jù),并保持負(fù)載均衡,有利于提高資源 利用率。
ii上述說(shuō)明示出并描述了本發(fā)明的一個(gè)優(yōu)選實(shí)施例,^f旦如前所述,應(yīng)當(dāng)理 解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對(duì)其他實(shí)施例的排除, 而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi), 通過(guò)上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識(shí)進(jìn)行改動(dòng)。而本領(lǐng)域人員所進(jìn)行的改 動(dòng)和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)力要求的保護(hù) 范圍內(nèi)。
權(quán)利要求
1、一種在多核處理器中并行解碼的方法,其特征在于,所述多核處理器的核個(gè)數(shù)為N個(gè),其中,N為大于2的自然數(shù),所述方法包括所述多核處理器的第一核接收slice碼流,所述slice包括m行宏塊,其中,m為大于2的自然數(shù);對(duì)當(dāng)前所述slice進(jìn)行熵解碼,得到宏塊信息,所述宏塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;所述多核處理器的第2到第j核根據(jù)所述宏塊信息對(duì)所述m行宏塊進(jìn)行幀間模式解碼,并在進(jìn)行所述幀間模式解碼過(guò)程中,根據(jù)第一可獨(dú)立解碼的幀內(nèi)宏塊的判斷條件,獲取并保存第一可獨(dú)立解碼的幀內(nèi)宏塊,其中,1<j<=N;在完成所述幀間模式解碼后,根據(jù)所述宏塊信息對(duì)所述保存的第一可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼,并在進(jìn)行所述幀內(nèi)模式解碼過(guò)程中,根據(jù)第二可獨(dú)立解碼的宏塊的判斷條件,獲取并保存所述第二可獨(dú)立解碼的幀內(nèi)宏塊;根據(jù)所述宏塊信息對(duì)所述保存的第二可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行所述幀內(nèi)模式解碼;當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前所述slice的宏塊數(shù)時(shí),得到經(jīng)解碼處理的slice;對(duì)所述slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice。
2、 如權(quán)利要求1所述的方法,其特征在于,^4居第一可獨(dú)立解碼的幀 內(nèi)宏塊的判斷條件,獲取并保存第一可獨(dú)立解碼的幀內(nèi)宏塊,包括判斷當(dāng)前解碼的幀間宏塊的右相鄰宏塊的左相鄰宏塊、上相鄰宏塊、上 左相鄰宏塊、上右相鄰宏塊是否均為幀間宏塊;如果是,則獲取并保存所述右相鄰宏塊,所述右相鄰宏塊作為第一可獨(dú) 立解碼的幀內(nèi)宏塊。
3、 如權(quán)利要求1所述的方法,其特征在于,根據(jù)第二可獨(dú)立解碼的幀 內(nèi)宏塊的判斷條件,獲取并保存所述第二可獨(dú)立解碼的幀內(nèi)宏塊,包括判斷當(dāng)前解碼的幀內(nèi)宏塊的相鄰宏塊的左相鄰宏塊、上相鄰宏塊、上左相鄰宏塊、上右相鄰宏塊是否已經(jīng)執(zhí)行解碼;如果是,則將所述當(dāng)前解碼的 幀內(nèi)宏塊的相鄰宏塊作為所述第二可獨(dú)立解碼的幀內(nèi)宏塊,所述當(dāng)前解碼的 幀內(nèi)宏塊的相鄰宏塊為右相鄰宏塊、下相鄰宏塊、下左相鄰宏塊和下右相鄰 宏塊。
4、 如權(quán)利要求l-3任意一項(xiàng)權(quán)利要求所述的方法,其特征在于,所述 多核處理器的第2到第j核根據(jù)所述宏塊信息對(duì)所述m行宏塊進(jìn)行幀間模式 解碼,包括多核處理器的第2到第j核根據(jù)所述宏塊信息對(duì)m/(N-l) x (j_2) ~ m/(N-l) x (J-l)-l行的宏塊中的幀間宏塊進(jìn)行幀間模式解碼。
5、 一種多核處理器,其特征在于,包括N個(gè)處理內(nèi)核、獲取模塊和環(huán)路濾波模塊,其中,N為大于2的自然數(shù); 所述多核處理器的第一核,用于接收slice碼流,所述slice包括m行宏 塊,其中,m為大于2的自然數(shù);對(duì)當(dāng)前所述slice進(jìn)行熵解碼,得到宏塊 信息,所述宏塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;所述多核處理器的第2到第j核,用于才艮據(jù)所述宏塊信息對(duì)所述m行宏 塊進(jìn)行幀間模式解碼,并在進(jìn)行所述幀間模式解碼過(guò)程中,根據(jù)第一可獨(dú)立 解碼的幀內(nèi)宏塊的判斷條件,獲取并保存第 一可獨(dú)立解碼的幀內(nèi)宏塊,其中, l<j<=N;在完成所述幀間^t式解碼后,才艮據(jù)所述宏塊信息對(duì)所述保存的第一可獨(dú) 立解碼的幀內(nèi)宏塊進(jìn)行幀內(nèi)模式解碼,并在進(jìn)行所述幀內(nèi)模式解碼過(guò)程中, 根據(jù)第二可獨(dú)立解碼的宏塊的判斷條件,獲取并保存所述第二可獨(dú)立解碼的幀內(nèi)宏塊;根據(jù)所述宏塊信息對(duì)所述保存的第二可獨(dú)立解碼的幀內(nèi)宏塊進(jìn)行所述 幀內(nèi)模式解碼;所述獲取模塊,用于當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前所述slice的宏塊數(shù) 時(shí),得到經(jīng)解碼處理的slice;所述環(huán)路濾波模塊,用于對(duì)所述slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice。
6、 如權(quán)利要求5所述的多核處理器,其特征在于,所述多核處理器的 第2到第j核根據(jù)第一可獨(dú)立解碼的幀內(nèi)宏塊的判斷條件,獲取并保存第一 可獨(dú)立解碼的幀內(nèi)宏塊,包括所述多核處理器的第2到第j核,用于判斷當(dāng)前解碼的幀間宏塊的右相 鄰宏塊的左相鄰宏塊、上相鄰宏塊、上左相鄰宏塊、上右相鄰宏塊是否均為 幀間宏塊;如果是,則獲取并保存所述右相鄰宏塊,所述右相鄰宏塊作為第 一可獨(dú)立解碼的幀內(nèi)宏塊。
7、 如權(quán)利要求5所述的多核處理器,其特征在于,所述多核處理器的 第2到第j核根據(jù)第二可獨(dú)立解碼的宏塊的判斷條件,獲取并保存所述第二 可獨(dú)立解碼的幀內(nèi)宏塊,包括所述多核處理器的第2到第j核,用于判斷當(dāng)前解碼的幀內(nèi)宏塊的相鄰 宏塊的左相鄰宏塊、上相鄰宏塊、上左相鄰宏塊、上右相鄰宏塊是否已經(jīng)執(zhí) 行解碼;如果是,則將所述當(dāng)前解碼的幀內(nèi)宏塊的相鄰宏塊作為所述第二可 獨(dú)立解碼的幀內(nèi)宏塊,所述當(dāng)前解碼的幀內(nèi)宏塊的相鄰宏塊為右相鄰宏塊、 下相鄰宏塊、下左相鄰宏塊和下右相鄰宏塊。
8、 如權(quán)利要求5-7任意一項(xiàng)權(quán)利要求所述的多核處理器,其特征在于, 所述多核處理器的第2到第j核根據(jù)所述宏塊信息對(duì)所述m行宏塊進(jìn)行幀間模式解碼,包括多核處理器的第2到第j核,用于根據(jù)所述宏塊信息對(duì)m/(N-l) x (j_2) ~ m/(N-l) x (J-l)-l行的宏塊中的幀間宏塊進(jìn)行幀間模式解碼。
全文摘要
本發(fā)明公開(kāi)了一種在多核處理器中并行解碼的方法和裝置,屬于通信領(lǐng)域。該方法包括多核處理器的第一核接收slice碼流,所述slice包括m行宏塊,其中,m為大于2的自然數(shù);對(duì)該slice進(jìn)行熵解碼,得到宏塊信息,所述宏塊信息包括宏塊模式、運(yùn)動(dòng)矢量和殘差宏塊;多核處理器的第2到第j核根據(jù)所述宏塊信息對(duì)所述m行宏塊進(jìn)行幀間模式解碼;在完成所述幀間模式解碼后,根據(jù)所述宏塊信息進(jìn)行幀內(nèi)模式解碼;當(dāng)已經(jīng)解碼的宏塊數(shù)等于當(dāng)前所述slice的宏塊數(shù)時(shí),得到經(jīng)解碼處理的slice;對(duì)所述slice進(jìn)行環(huán)路濾波處理,得到經(jīng)環(huán)路濾波處理的slice。本發(fā)明的技術(shù)方案可以保持負(fù)載均衡,有利于提高資源利用率。
文檔編號(hào)H04N7/26GK101656885SQ200910169058
公開(kāi)日2010年2月24日 申請(qǐng)日期2009年9月17日 優(yōu)先權(quán)日2009年9月17日
發(fā)明者鑫 佟, 劉軍莉, 張良平, 輝 管, 軍 陳 申請(qǐng)人:中興通訊股份有限公司