專利名稱:一種視頻編解碼中去塊濾波方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻處理領(lǐng)域,更具體地,涉及視頻編解碼領(lǐng)域。
背景技術(shù):
H. 264是ITU-T/IS0在2003年公布的最新的國(guó)際視頻壓縮編碼標(biāo)準(zhǔn),它大大提高 了編碼效率,其中一個(gè)重要原因是在編解碼環(huán)路中引入了去塊濾波。去塊濾波也給視頻壓 縮編碼帶來了很大的計(jì)算量,對(duì)于高清視頻,去塊濾波占用了大約38%的計(jì)算時(shí)間。在多核 /眾核處理器上,對(duì)去塊濾波任務(wù)并行化,成為性能提高的重要途徑。目前存在的并行方法,一般是在處理單元比較少的多核處理器上進(jìn)行宏塊級(jí)并 行,即利用處理器提供的指令,直接將不相關(guān)的宏塊分配給不同的處理單元。每個(gè)宏塊在處 理之前,需要等待其相關(guān)宏塊處理完畢,這樣就需要一些額外的同步耗費(fèi)。當(dāng)在處理單元比 較多的眾核處理器上采用該并行方案時(shí),并行度比較小,不能充分利用那么多的處理單元, 導(dǎo)致多個(gè)處理單元空閑,同時(shí)宏塊之間的同步耗費(fèi)也大大降低了去塊濾波的速度。為了保證編碼和解碼中的去塊濾波過程完全一致,編解碼圖像的去塊濾波運(yùn)算必 須按照一定順序進(jìn)行。首先,對(duì)于宏塊內(nèi)部,在分別對(duì)每個(gè)宏塊的亮度邊界和色度邊界進(jìn)行 處理的過程中,根據(jù)現(xiàn)有技術(shù)邊界處理順序?yàn)橛勺笙蛴?,由上向下,并且先處理豎直邊界。 圖Ia示出了 16*16亮度數(shù)據(jù),如圖所示,圖中黑色線條所示的亮度邊界處理先后順序依次 為左邊第1條、第2條、第3條、第4條、上邊第1條、第2條、第3條、第4條;圖Ib示出了 8*8色度數(shù)據(jù),類似地,圖中黑色線條所示的色度邊界的處理先后順序依次為左邊第1條、 第2條、上邊第1條、第2條。其次,每幀圖像中的宏塊按照光柵掃描順序進(jìn)行處理,編碼和 解碼過程都需要按照這個(gè)順序。由于如上所述的宏塊內(nèi)部邊界的濾波順序以及整個(gè)圖像的宏塊處理順序,當(dāng)前的 宏塊和臨近的左宏塊、上宏塊和右上宏塊三個(gè)臨近宏塊相關(guān),如圖2所示。由此在對(duì)當(dāng)前宏 塊濾波前,需要對(duì)這三個(gè)相關(guān)宏塊濾波。在去塊濾波的宏塊級(jí)并行方案中,直接將不相關(guān)的宏塊分配給不同的處理單元進(jìn) 行同時(shí)濾波。圖3示出了現(xiàn)有技術(shù)中宏塊處理時(shí)間順序,其中每個(gè)方塊代表幀圖像中的一 個(gè)宏塊,數(shù)字代表該宏塊的時(shí)間戳,具有相同數(shù)字的宏塊可以并行處理。如圖3所示,在開 始濾波時(shí),每過兩個(gè)時(shí)間戳,并行度加一。如果處理單元數(shù)目足夠多,幀圖像高度和寬度上 的宏塊數(shù)分別為H和W,則最大并行度為min(Ceil (ff/2),H),其中min表示取最小值,ceil 表示返回大于或者等于指定表達(dá)式的最小整數(shù)。如果對(duì)于當(dāng)前宏塊,其一個(gè)相關(guān)宏塊所造 成的同步耗費(fèi)為C,那么整個(gè)幀圖像的同步耗費(fèi)近似于3*W*H*C。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述現(xiàn)有技術(shù)中的并行度小、同步耗費(fèi)大以及濾波速度慢 的問題。根據(jù)本發(fā)明的一個(gè)方面,提供了一種視頻編解碼中去塊濾波方法,在對(duì)宏塊進(jìn)行濾波時(shí),亮度邊界處理順序?yàn)橛疫叺?條、右邊第3條、右邊第2條、上邊第1條、上邊第2 條、上邊第3條、上邊第4條、右邊第1條;色度邊界處理順序?yàn)橛疫叺?條、上邊第1條、上 邊第2條、右邊第1條。在上述方法中,處理器可以動(dòng)態(tài)獲取待濾波的宏塊,也可以靜態(tài)獲取待濾波的宏 塊。根據(jù)本發(fā)明的另一方面,還提供一種視頻編解碼中去塊濾波方法,所述方法包括 下列步驟1)將每個(gè)宏塊的未處理的相關(guān)宏塊的數(shù)量存儲(chǔ)到條件矩陣;2)將所述條件矩陣中數(shù)字“0”的對(duì)應(yīng)宏塊的坐標(biāo)放入等待隊(duì)列,同時(shí)將該數(shù)字更 改為負(fù),其中所述等待隊(duì)列用于存儲(chǔ)待濾波宏塊的坐標(biāo);3)空閑的處理單元從所述等待隊(duì)列獲得待濾波宏塊的坐標(biāo),對(duì)待濾波宏塊進(jìn)行濾 波,并更新所述條件矩陣,所述濾波時(shí),亮度邊界處理順序?yàn)橛疫叺?條、右邊第3條、右邊 第2條、上邊第1條、上邊第2條、上邊第3條、上邊第4條、右邊第1條;色度邊界處理順序 為右邊第2條、上邊第1條、上邊第2條、右邊第1條;4)判斷條件矩陣中是否還有數(shù)字“0”,如果還有,則轉(zhuǎn)到步驟3,否則結(jié)束。本發(fā)明可以利用更多的空閑處理單元,使得同步耗費(fèi)相比于現(xiàn)有技術(shù)明顯減少; 另外,各個(gè)宏塊在濾波前,只需要和更少的宏塊進(jìn)行同步通信,減少了額外操作,進(jìn)一步加 快了整體濾波速度。
圖Ia和圖Ib分別是現(xiàn)有技術(shù)中亮度邊界和色度邊界的處理順序示意圖;圖2是現(xiàn)有技術(shù)中相關(guān)宏塊示意圖;圖3是現(xiàn)有技術(shù)中宏塊處理時(shí)間順序示意圖;圖4是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的亮度邊界和色度邊界的處理順序示意圖;圖5是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的相關(guān)宏塊示意圖;圖6是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的宏塊處理時(shí)間順序示意圖;圖7是根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的去塊濾波過程示意圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)根據(jù)本發(fā) 明一個(gè)優(yōu)選實(shí)施例的視頻編解碼中去塊濾波方法進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述 的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。在本發(fā)明中,通過更改宏塊內(nèi)部邊界的濾波順序,來改變宏塊之間的相關(guān)性,但這 樣并沒有更改整個(gè)幀圖像中的邊界濾波順序,并且不影響視頻的質(zhì)量。如圖如所示,根據(jù) 本發(fā)明的優(yōu)選實(shí)施例,在對(duì)每個(gè)宏塊的亮度邊界進(jìn)行處理的過程中,邊界處理順序?yàn)橛疫?第4條、右邊第3條、右邊第2條、上邊第1條、上邊第2條、上邊第3條、上邊第4條、右邊 第1條;如圖4b所示,在對(duì)每個(gè)宏塊的色度邊界進(jìn)行處理的過程中,邊界處理順序?yàn)橛疫叺?2條、上邊第1條、上邊第2條、右邊第1條。由于宏塊內(nèi)部邊界的濾波順序的修改,宏塊之間的相關(guān)性下降,如圖5所示,當(dāng)前宏塊只和臨近的左宏塊和上宏塊相關(guān)。在對(duì)當(dāng)前宏塊濾波前,需要對(duì)這兩個(gè)相關(guān)宏塊進(jìn)行 濾波。圖6示出了根據(jù)本發(fā)明的一個(gè)優(yōu)選實(shí)施例減少了宏塊之間的相關(guān)性之后的宏塊 處理時(shí)間順序。與圖3類似地,每個(gè)方塊代表幀圖像中的宏塊,數(shù)字代表時(shí)間戳,具有相同 數(shù)字的宏塊可以并行處理。如圖6所示,在開始濾波時(shí),每過一個(gè)時(shí)間戳,并行度加一,比現(xiàn) 有方法中并行度增加得更快。如果處理單元數(shù)目足夠多,幀圖像高度和寬度上的宏塊數(shù)分 別為H和W,最大并行度為min (W,H),其大于等于現(xiàn)有技術(shù)的最大并行度。如果對(duì)于當(dāng)前宏 塊,其一個(gè)相關(guān)宏塊所造成的同步耗費(fèi)為C,那么整個(gè)幀圖像的同步耗費(fèi)近似于2*W*H*C。由此,本發(fā)明可以允許更多的非相關(guān)宏塊在處理器上并行濾波,較好地利用空閑 處理單元,使得同步耗費(fèi)相比于現(xiàn)有技術(shù)明顯減少;另外,各個(gè)宏塊在濾波前,只需要和更 少的宏塊進(jìn)行同步通信,減少了額外操作,加快了整體濾波速度。下面結(jié)合圖7詳細(xì)描述根據(jù)本發(fā)明優(yōu)選實(shí)施例的視頻編解碼中去塊濾波方法,該 方法具體包括如下步驟1)初始化條件矩陣,條件矩陣用于記錄每個(gè)宏塊的狀態(tài),該矩陣中的每個(gè)數(shù)字表 示其對(duì)應(yīng)的宏塊還需要等待多少個(gè)宏塊處理之后才能進(jìn)行處理,也就是表示其對(duì)應(yīng)的宏塊 的未處理的相關(guān)宏塊數(shù)量。條件矩陣可存儲(chǔ)在多核/眾核處理器中各個(gè)處理單元的共享內(nèi) 存中。2)初始化等待隊(duì)列為空,其中等待隊(duì)列用于存儲(chǔ)待濾波宏塊的坐標(biāo)。等待隊(duì)列可 存儲(chǔ)在多核/眾核處理器中各個(gè)處理單元的共享內(nèi)存中。3)檢測(cè)條件矩陣,將條件矩陣中數(shù)字“0”的對(duì)應(yīng)宏塊的坐標(biāo)放入等待隊(duì)列,同時(shí) 數(shù)字更改為負(fù),例如將該數(shù)字更改為“-1”。4)空閑的處理單元從等待隊(duì)列獲得待濾波宏塊的坐標(biāo),根據(jù)上述宏塊中亮度邊界 和色度邊界處理順序?qū)陦K進(jìn)行濾波,并更新條件矩陣。具體地,當(dāng)坐標(biāo)為(i,j)的宏塊被 濾波之后,將條件矩陣中坐標(biāo)為(i+1,j)和(i,j+1)的宏塊所對(duì)應(yīng)的數(shù)字減1。5)判斷條件矩陣中是否還有數(shù)字“0”,如果還有“0”存在,則跳轉(zhuǎn)到步驟3),否則結(jié)束。在上述優(yōu)選實(shí)施例中,提供了一種多核/眾核處理器采用動(dòng)態(tài)方式獲取待濾波的 宏塊的去塊濾波方法,本領(lǐng)域普通技術(shù)人員可以理解,多核/眾核處理器也可以采用靜態(tài) 方式獲取待濾波的宏塊,例如對(duì)宏塊進(jìn)行逐行濾波。利用本發(fā)明的上述方法和現(xiàn)有方法,分別在Tile64平臺(tái)上對(duì)濾波進(jìn)行實(shí)驗(yàn)。Tile64是Tilera公司推出的一款眾核處理器。它的64個(gè)處理單元由一個(gè)高速 2D網(wǎng)絡(luò)相連,形成一個(gè)8x8陣列。每個(gè)處理單元單個(gè)時(shí)鐘周期運(yùn)行三條指令,且具有一個(gè) 16KB的Ll緩存,其中包括8KB的指令緩存和8KB的數(shù)據(jù)緩存,同時(shí)每個(gè)處理單元具有自 己的存儲(chǔ)器直接訪問(DMA)系統(tǒng)。在Tile64平臺(tái)上可以運(yùn)行Tilera多核組件庫(kù)(TMC) 庫(kù)中所包含的各種線程和處理單元綁定、處理單元之間通信等指令。濾波測(cè)試軟件取自 H. 264參考軟件JM15. 1,測(cè)試的視頻有“藍(lán)天”、“行人”、“河床”等等,視頻的格式包括四種 1280x720(HD),720x576(SD),352x288(CIF)和 176x144 (QCIF)。測(cè)試結(jié)果如表1和表2所示,其中表1是對(duì)每個(gè)視頻的測(cè)試結(jié)果,表2是對(duì)每種格 式視頻的測(cè)試結(jié)果的平均統(tǒng)計(jì),在表1和表2中的“JM15. 1”列表示串行執(zhí)行去塊濾波所需的時(shí)間,“加速比”表示現(xiàn)有方法所需時(shí)間除以本發(fā)明方法所需的時(shí)間得到的比例。從表中 可見,本發(fā)明的方法有效提高了去塊濾波的速度。表1多個(gè)視頻的去塊濾波測(cè)試結(jié)果
權(quán)利要求
1.一種視頻編解碼中去塊濾波方法,在對(duì)宏塊進(jìn)行濾波時(shí),亮度邊界處理順序?yàn)橛疫?第4條、右邊第3條、右邊第2條、上邊第1條、上邊第2條、上邊第3條、上邊第4條、右邊 第1條;色度邊界處理順序?yàn)橛疫叺?條、上邊第1條、上邊第2條、右邊第1條。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,處理器動(dòng)態(tài)獲取待濾波的宏塊。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,處理器靜態(tài)獲取待濾波的宏塊。
4.一種視頻編解碼中去塊濾波方法,所述方法包括下列步驟1)將每個(gè)宏塊的未處理的相關(guān)宏塊的數(shù)量存儲(chǔ)到條件矩陣;2)將所述條件矩陣中數(shù)字“0”的對(duì)應(yīng)宏塊的坐標(biāo)放入等待隊(duì)列,同時(shí)將該數(shù)字更改為 負(fù),其中所述等待隊(duì)列用于存儲(chǔ)待濾波宏塊的坐標(biāo);3)空閑的處理單元從所述等待隊(duì)列獲得待濾波宏塊的坐標(biāo),對(duì)待濾波宏塊進(jìn)行濾波, 并更新所述條件矩陣,所述濾波時(shí),亮度邊界處理順序?yàn)橛疫叺?條、右邊第3條、右邊第2 條、上邊第1條、上邊第2條、上邊第3條、上邊第4條、右邊第1條;色度邊界處理順序?yàn)橛?邊第2條、上邊第1條、上邊第2條、右邊第1條;4)判斷條件矩陣中是否還有數(shù)字“0”,如果還有,則轉(zhuǎn)到步驟3,否則結(jié)束。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述等待隊(duì)列存儲(chǔ)在多核/眾核處理器中 處理單元的共享內(nèi)存中。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述條件矩陣存儲(chǔ)在多核/眾核處理器中 處理單元的共享內(nèi)存中。
全文摘要
本發(fā)明提供一種視頻編解碼中去塊濾波方法,在對(duì)宏塊進(jìn)行濾波時(shí),亮度邊界處理順序?yàn)橛疫叺?條、右邊第3條、右邊第2條、上邊第1條、上邊第2條、上邊第3條、上邊第4條、右邊第1條;色度邊界處理順序?yàn)橛疫叺?條、上邊第1條、上邊第2條、右邊第1條。本發(fā)明的方法可以利用更多的空閑處理單元,使得同步耗費(fèi)相比于現(xiàn)有技術(shù)明顯減少;另外,各個(gè)宏塊在濾波前,只需要和更少的宏塊進(jìn)行同步通信,減少了額外操作,進(jìn)一步加快了整體濾波速度。
文檔編號(hào)H04N7/26GK102075753SQ20111000713
公開日2011年5月25日 申請(qǐng)日期2011年1月13日 優(yōu)先權(quán)日2011年1月13日
發(fā)明者代鋒, 張勇東, 顏成鋼 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所