專利名稱:一種匹配塊高效取數(shù)的視頻解碼的方法及電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于視頻解碼技術(shù)領(lǐng)域,具體是指一種匹配塊高效取數(shù)的視頻解碼的方法 及電路。
背景技術(shù):
在視頻解碼過(guò)程中,使用幀間預(yù)測(cè)(inter)模式的宏塊(macroblock)在運(yùn)動(dòng)補(bǔ) 償(motion compensation)過(guò)程中,需要從已經(jīng)解碼好的圖像中取出匹配塊,作為預(yù)測(cè) 結(jié)果,然后在預(yù)測(cè)結(jié)果的基礎(chǔ)上,疊加從碼流中解析出的殘差數(shù)據(jù),得到還原的重構(gòu)宏塊 (macroblock) 0近年來(lái)視頻的圖像尺寸在飛速增大,幾年間從174x144的QCIF,增加到了 1920x1080的1080p,不斷增加的圖像尺寸,使得解碼器從外存中讀取數(shù)據(jù)會(huì)產(chǎn)生巨大訪問(wèn) 帶寬,以及為解決訪問(wèn)帶寬問(wèn)題而使用的高延遲DDR內(nèi)存帶來(lái)的高訪問(wèn)延遲,成為了很多 解碼器的性能瓶頸。同時(shí)伴隨著視頻協(xié)議的不斷發(fā)展,在H. 264協(xié)議中,為了提高壓縮率,出現(xiàn)了一個(gè) 宏塊使用不同參考幀的不同位置取出的不同形狀匹配塊進(jìn)行預(yù)測(cè)的技術(shù),加上不同位置 分?jǐn)?shù)像素插值擴(kuò)邊所需的不同像素情況,這使得取數(shù)過(guò)程變得異常復(fù)雜,很容易產(chǎn)生極端 不規(guī)則訪問(wèn)外存的特性,加之目前芯片總線的位寬在不斷提高,已經(jīng)從16bit已經(jīng)提高到 64bit甚至128bit,大量零散的Sbit級(jí)非對(duì)齊小數(shù)據(jù)量訪問(wèn),會(huì)極大地浪費(fèi)總線的寬帶,導(dǎo) 致取數(shù)效率極其低下,也使得高性能解碼器取數(shù)過(guò)程需要有完全不同的框架來(lái)解決這些問(wèn) 題?;镜囊曨l解碼的流程,包括如下步驟解析宏塊類型相關(guān)的語(yǔ)法元素;解析運(yùn) 動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到取數(shù)過(guò)程相關(guān)信息;解析殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃 描(Inverse Scan),反變換(Inverse Transform),反量化(Inverse Quantization),得到 殘差像素?cái)?shù)據(jù);取數(shù)模塊根據(jù)取數(shù)過(guò)程相關(guān)信息從外存取數(shù);運(yùn)動(dòng)補(bǔ)償模塊根據(jù)取到的參 考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),得到預(yù)測(cè)像素;疊加預(yù)測(cè)像素和殘差像素得到重構(gòu)像素,對(duì) 重構(gòu)像素做去塊濾波并輸出。在一般的宏塊硬件解碼的流程中,如圖1所示,會(huì)在type模 塊解碼宏塊類型以及子塊類型,判斷為是幀間類型后,在Get_MV模塊獲取refjdx和mv, 得到取數(shù)的地址和大小,送給fetch模塊進(jìn)行取數(shù),剩下的系數(shù)碼流送入Get_ReSidUal模 塊,解析出殘差系數(shù),進(jìn)行反掃描(Inverse Scan),反變換(Inverse Transform),反量化 (Inverse Quantization),得到殘差像素。與些同時(shí),fetch模塊從外存中取數(shù),把取到的 數(shù)送入運(yùn)動(dòng)補(bǔ)償(Motion Compensation)模塊進(jìn)行插值和加權(quán),得到預(yù)測(cè)像素。殘差像素 與預(yù)測(cè)像素疊加之后,得到重構(gòu)像素,再送入最后的去塊濾波(deblock)模塊濾波并輸出。在普通的解碼流程中,從fetch模塊開(kāi)始的MC路徑,由于存在低效率不規(guī)則的外 存訪問(wèn),MC路徑在速度上是遠(yuǎn)遠(yuǎn)慢于硬件內(nèi)部高速的殘差路徑的,所以整個(gè)硬件的速度會(huì) 被訪問(wèn)外存的帶寬給限制住。中國(guó)發(fā)明專利第20041009125. 4號(hào)公開(kāi)了一種視頻圖像運(yùn)動(dòng)補(bǔ)償裝置,該方案在外存取數(shù)之后到存儲(chǔ)的過(guò)程間加入插值計(jì)算,但是對(duì)取數(shù)過(guò)程的效率沒(méi)有提高。中國(guó)發(fā)明專利第20051000487. 2號(hào)公開(kāi)了一種用于壓縮視頻信號(hào)解碼的圖像存 儲(chǔ)方法,該方案在外存中的參考圖像使用特殊格式存儲(chǔ),存取過(guò)程復(fù)雜,在某些特殊情況下 還可能降低效率。中國(guó)發(fā)明專利第20051009873. 7號(hào)公開(kāi)了一種運(yùn)動(dòng)補(bǔ)償數(shù)據(jù)載入裝置及方法,該 方案把二維取數(shù)歸并為一維取數(shù),部分提高了取數(shù)的效率,但是只針對(duì)單個(gè)宏塊進(jìn)行使用。中國(guó)發(fā)明專利第20071004671號(hào)公開(kāi)了一種解碼裝置中控制片內(nèi)存儲(chǔ)器的數(shù)據(jù) 并行讀寫(xiě)的方法及裝置,該方案在宏塊之下的分塊尺度下進(jìn)行取數(shù)并行,在DDR等高訪問(wèn) 延遲內(nèi)存的場(chǎng)景下無(wú)法達(dá)到預(yù)期效果。中國(guó)發(fā)明專利第20071004692. 9號(hào)公開(kāi)了一種視頻處理中數(shù)據(jù)預(yù)取系統(tǒng),該方案 適用于CPU或DSP等處理器類的非cache機(jī)制數(shù)據(jù)預(yù)取指令。中國(guó)發(fā)明專利第20081030211. 6號(hào)公開(kāi)了一種基于H. 264標(biāo)準(zhǔn)運(yùn)動(dòng)補(bǔ)償?shù)臄?shù)據(jù)快 速讀取方法,該方案以9x9的細(xì)碎分塊讀取數(shù)據(jù),在實(shí)際上會(huì)大大增加系數(shù)總線上額外的 換行和猝發(fā)間開(kāi)銷。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種匹配塊高效取數(shù)的視頻解碼的方法及 電路,該方法優(yōu)化總線上取數(shù)效率,提高外存訪問(wèn)速度的效果,整體提高了視頻解碼的效率。本發(fā)明采用以下技術(shù)方案解決上述技術(shù)問(wèn)題提供一種匹配塊高效取數(shù)的視頻解碼的方法,包括如下步驟步驟10 把數(shù)個(gè)宏塊合并成一個(gè)宏塊組;步驟20 解析宏塊組中第一宏塊宏塊類型相關(guān)的語(yǔ)法元素;步驟30 解析第一宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第一宏塊取數(shù)過(guò)程相關(guān)信 息;步驟40 解析第一宏塊殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描,反變換,反量化, 得到第一宏塊殘差像素?cái)?shù)據(jù);步驟50 解析宏塊組中第二宏塊宏塊類型相關(guān)的語(yǔ)法元素;步驟60 解析第二宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第二宏塊取數(shù)過(guò)程相關(guān)信 息;之后,同時(shí)進(jìn)行步驟70、80、90 ;然后轉(zhuǎn)入步驟100 ;步驟70 解析第二宏塊殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描,反變換,反量化, 得到第二宏塊殘差像素?cái)?shù)據(jù);步驟80 取數(shù)模塊對(duì)第一宏塊和第二宏塊的取數(shù)過(guò)程相關(guān)信息進(jìn)行合并優(yōu)化,使 用優(yōu)化過(guò)的取數(shù)信息從外存取數(shù),所述步驟20、30、40、50、60不分先后;步驟90 運(yùn)動(dòng)補(bǔ)償模塊根據(jù)取到的參考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),分別得到第 一宏塊和第二宏塊的預(yù)測(cè)像素,所述步驟80和本步驟不分先后;步驟100 分別疊加第一宏塊和第二宏塊的預(yù)測(cè)像素和殘差像素得到重構(gòu)像素, 對(duì)重構(gòu)像素做去塊濾波并輸出。提供一種視頻解碼電路,包括
宏塊合并單元,用于把數(shù)個(gè)宏塊合并成一個(gè)宏塊組;第一解析單元,用于解析宏塊組中第一宏塊宏塊類型相關(guān)的語(yǔ)法元素;解析第一 宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第一宏塊取數(shù)過(guò)程相關(guān)信息;解析第一宏塊殘差系數(shù) 相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第一宏塊殘差像素?cái)?shù)據(jù);第二解析單元,用于解析宏塊組中第二宏塊宏塊類型相關(guān)的語(yǔ)法元素;解析第二 宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第二宏塊取數(shù)過(guò)程相關(guān)信息;解析第二宏塊殘差系數(shù) 相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第二宏塊殘差像素?cái)?shù)據(jù);取數(shù)單元,用于對(duì)第一宏塊和第二宏塊的取數(shù)過(guò)程相關(guān)信息進(jìn)行合并優(yōu)化,使用 優(yōu)化過(guò)的取數(shù)信息從外存取數(shù);運(yùn)動(dòng)補(bǔ)償單元,用于根據(jù)取到的參考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),分別得到第一 宏塊和第二宏塊的預(yù)測(cè)像素;重構(gòu)單元,用于分別疊加第一宏塊和第二宏塊的預(yù)測(cè)像素和殘差像素得到重構(gòu)像 素,對(duì)重構(gòu)像素做去塊濾波并輸出。本發(fā)明的優(yōu)點(diǎn)在于把數(shù)個(gè)宏塊合并成一個(gè)宏塊組,以一個(gè)宏塊組為單位進(jìn)行取 數(shù),最大程度利用參考數(shù)據(jù)的空間局部性,優(yōu)化合并一個(gè)宏塊組內(nèi)的訪問(wèn),利用高位寬總線 的長(zhǎng)猝發(fā)傳輸,提高總線利用率。
下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。圖1是現(xiàn)有技術(shù)幀間宏塊基本解碼流程圖。圖2是本發(fā)明合并優(yōu)化取數(shù)過(guò)程的一個(gè)宏塊組的基本解碼流程圖。圖3是本發(fā)明宏塊組級(jí)并行過(guò)程示意圖。
具體實(shí)施例方式在高性能解碼器解碼過(guò)程中,內(nèi)存訪問(wèn)的延遲往往是遠(yuǎn)大于一個(gè)宏塊碼流的解析 時(shí)間的,而且高性能解碼器設(shè)計(jì)中,性能是第一關(guān)注對(duì)象,資源使用不是首要問(wèn)題,同時(shí),外 存訪問(wèn)和碼流解碼過(guò)程是可以分離的,也就是說(shuō),可以提前很多時(shí)間解析得到當(dāng)前要訪問(wèn) 的內(nèi)存的位置。所以本發(fā)明提出,把數(shù)個(gè)宏塊合并成一個(gè)宏塊組,以一個(gè)宏塊組為單位進(jìn)行取數(shù), 最大程度利用參考數(shù)據(jù)的空間局部性,優(yōu)化合并一個(gè)宏塊組內(nèi)的訪問(wèn),利用高位寬總線的 長(zhǎng)猝發(fā)傳輸,提高總線利用率。本發(fā)明具體步驟詳述如下步驟10 把數(shù)個(gè)宏塊合并成一個(gè)宏塊組;步驟20 解析宏塊組中第一宏塊宏塊類型相關(guān)的語(yǔ)法元素;步驟30 解析第一宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第一宏塊取數(shù)過(guò)程相關(guān)信 息;步驟40 解析第一宏塊殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描,反變換,反量化, 得到第一宏塊殘差像素?cái)?shù)據(jù);步驟50 解析宏塊組中第二宏塊宏塊類型相關(guān)的語(yǔ)法元素;
步驟60 解析第二宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第二宏塊取數(shù)過(guò)程相關(guān)信 息;之后,同時(shí)進(jìn)行步驟70、80、90 ;然后轉(zhuǎn)入步驟100 ;步驟70 解析第二宏塊殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描,反變換,反量化, 得到第二宏塊殘差像素?cái)?shù)據(jù);步驟80 取數(shù)模塊對(duì)第一宏塊和第二宏塊的取數(shù)過(guò)程相關(guān)信息進(jìn)行合并優(yōu)化,使 用優(yōu)化過(guò)的取數(shù)信息從外存取數(shù)。步驟90 運(yùn)動(dòng)補(bǔ)償模塊根據(jù)取到的參考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),分別得到兩 個(gè)宏塊的預(yù)測(cè)像素;步驟100 分別疊加兩個(gè)宏塊的預(yù)測(cè)像素和殘差像素得到重構(gòu)像素,對(duì)重構(gòu)像素 做去塊濾波并輸出。其中步驟80同時(shí)與下一次循環(huán)的第20至70步驟并行進(jìn)行。請(qǐng)參閱圖2和圖3所示,本發(fā)明核心思路是取得多個(gè)宏塊的取數(shù)信息之后,把這些 取數(shù)信息進(jìn)行合并優(yōu)化,達(dá)到優(yōu)化總線上取數(shù)效率,提高外存訪問(wèn)速度的效果。同時(shí),由于 使用兩級(jí)宏塊解碼,在后一個(gè)宏塊開(kāi)始合并取數(shù)時(shí),前一級(jí)宏塊解碼硬件可以為下一個(gè)宏 塊解碼進(jìn)行服務(wù),達(dá)到了更大程度上的宏塊級(jí)并行效果。以靜止場(chǎng)景情況下經(jīng)常連續(xù)出現(xiàn)的P_skip宏塊為例,如果是四分之一像素情況 下,正常情況的16x16宏塊下,每個(gè)宏塊需要取數(shù)23x23個(gè)點(diǎn),每行取數(shù)23個(gè)像素,取23行, 在32位總線下,使用32位burst4傳輸兩個(gè)宏塊,需要每行使用兩個(gè)burst4傳輸,共計(jì)92 次傳輸,總傳輸有效數(shù)據(jù)率為(2*23*23)/((4*4) *2*23*2) = 71. 9%。如果使用本發(fā)明多宏 塊合并優(yōu)化取數(shù),就同樣使用32位burst4傳輸,(2*23*23)/((4*4*3) *23) = 95. 8%,對(duì)總 線寬帶的利用率大大提高。本發(fā)明還提供一種視頻解碼電路實(shí)施例,包括宏塊合并單元,用于把數(shù)個(gè)宏塊合并成一個(gè)宏塊組;第一解析單元,用于解析宏塊組中第一宏塊宏塊類型相關(guān)的語(yǔ)法元素;解析第一 宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第一宏塊取數(shù)過(guò)程相關(guān)信息;解析第一宏塊殘差系數(shù) 相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第一宏塊殘差像素?cái)?shù)據(jù);第二解析單元,用于解析宏塊組中第二宏塊宏塊類型相關(guān)的語(yǔ)法元素;解析第二 宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第二宏塊取數(shù)過(guò)程相關(guān)信息;解析第二宏塊殘差系數(shù) 相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第二宏塊殘差像素?cái)?shù)據(jù);取數(shù)單元,用于對(duì)第一宏塊和第二宏塊的取數(shù)過(guò)程相關(guān)信息進(jìn)行合并優(yōu)化,使用 優(yōu)化過(guò)的取數(shù)信息從外存取數(shù);運(yùn)動(dòng)補(bǔ)償單元,用于根據(jù)取到的參考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),分別得到第一 宏塊和第二宏塊的預(yù)測(cè)像素;重構(gòu)單元,用于分別疊加第一宏塊和第二宏塊的預(yù)測(cè)像素和殘差像素得到重構(gòu)像 素,對(duì)重構(gòu)像素做去塊濾波并輸出。使用兩宏塊一組作為宏塊組最小單元,使用上述框架進(jìn)行解碼,在不同片源情況 下,外存訪問(wèn)帶寬比原解碼器減少20 40%,整體解碼速度平均提高了 10%以上。
權(quán)利要求
一種匹配塊高效取數(shù)的視頻解碼的方法,其特征在于包括如下步驟步驟10把數(shù)個(gè)宏塊合并成一個(gè)宏塊組;步驟20解析宏塊組中第一宏塊宏塊類型相關(guān)的語(yǔ)法元素;步驟30解析第一宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第一宏塊取數(shù)過(guò)程相關(guān)信息;步驟40解析第一宏塊殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第一宏塊殘差像素?cái)?shù)據(jù);步驟50解析宏塊組中第二宏塊宏塊類型相關(guān)的語(yǔ)法元素;步驟60解析第二宏塊運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第二宏塊取數(shù)過(guò)程相關(guān)信息;之后,同時(shí)進(jìn)行步驟70、80、90;然后轉(zhuǎn)入步驟100;步驟70解析第二宏塊殘差系數(shù)相關(guān)的語(yǔ)法元素,經(jīng)過(guò)反掃描,反變換,反量化,得到第二宏塊殘差像素?cái)?shù)據(jù);步驟80取數(shù)模塊對(duì)第一宏塊和第二宏塊的取數(shù)過(guò)程相關(guān)信息進(jìn)行合并優(yōu)化,使用優(yōu)化過(guò)的取數(shù)信息從外存取數(shù),所述步驟20、30、40、50、60不分先后;步驟90運(yùn)動(dòng)補(bǔ)償模塊根據(jù)取到的參考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),分別得到第一宏塊和第二宏塊的預(yù)測(cè)像素,所述步驟80和本步驟不分先后;步驟100分別疊加第一宏塊和第二宏塊的預(yù)測(cè)像素和殘差像素得到重構(gòu)像素,對(duì)重構(gòu)像素做去塊濾波并輸出。
2.一種視頻解碼電路,其特征在于,包括宏塊合并單元,用于把數(shù)個(gè)宏塊合并成一個(gè)宏塊組;第一解析單元,用于解析宏塊組中第一宏塊宏塊類型相關(guān)的語(yǔ)法元素;解析第一宏塊 運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第一宏塊取數(shù)過(guò)程相關(guān)信息;解析第一宏塊殘差系數(shù)相關(guān) 的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第一宏塊殘差像素?cái)?shù)據(jù);第二解析單元,用于解析宏塊組中第二宏塊宏塊類型相關(guān)的語(yǔ)法元素;解析第二宏塊 運(yùn)動(dòng)補(bǔ)償相關(guān)的語(yǔ)法元素,得到第二宏塊取數(shù)過(guò)程相關(guān)信息;解析第二宏塊殘差系數(shù)相關(guān) 的語(yǔ)法元素,經(jīng)過(guò)反掃描、反變換、反量化,得到第二宏塊殘差像素?cái)?shù)據(jù);取數(shù)單元,用于對(duì)第一宏塊和第二宏塊的取數(shù)過(guò)程相關(guān)信息進(jìn)行合并優(yōu)化,使用優(yōu)化 過(guò)的取數(shù)信息從外存取數(shù);運(yùn)動(dòng)補(bǔ)償單元,用于根據(jù)取到的參考?jí)K數(shù)據(jù)進(jìn)行插值和加權(quán)預(yù)測(cè),分別得到第一宏塊 和第二宏塊的預(yù)測(cè)像素;重構(gòu)單元,用于分別疊加第一宏塊和第二宏塊的預(yù)測(cè)像素和殘差像素得到重構(gòu)像素, 對(duì)重構(gòu)像素做去塊濾波并輸出。
全文摘要
本發(fā)明公開(kāi)一種匹配塊高效取數(shù)的視頻解碼的方法及電路,所述方法把數(shù)個(gè)宏塊合并成一個(gè)宏塊組,以一個(gè)宏塊組為單位進(jìn)行取數(shù),取得多個(gè)宏塊的取數(shù)信息之后,把這些取數(shù)信息進(jìn)行合并優(yōu)化。同時(shí),由于使用兩級(jí)宏塊解碼,在后一個(gè)宏塊開(kāi)始合并取數(shù)時(shí),前一級(jí)宏塊解碼硬件可以為下一個(gè)宏塊解碼進(jìn)行服務(wù),達(dá)到了更大程度上的宏塊級(jí)并行效果。最大程度利用參考數(shù)據(jù)的空間局部性,優(yōu)化合并一個(gè)宏塊組內(nèi)的訪問(wèn),利用高位寬總線的長(zhǎng)猝發(fā)傳輸,提高總線利用率。
文檔編號(hào)H04N5/14GK101986709SQ201010534938
公開(kāi)日2011年3月16日 申請(qǐng)日期2010年11月8日 優(yōu)先權(quán)日2010年11月8日
發(fā)明者陳恒明 申請(qǐng)人:福州瑞芯微電子有限公司