專利名稱:用于avs視頻解碼器的高效流水線系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種數(shù)字視頻編解碼技術(shù)領(lǐng)域的方法,具體是一種用于AVS視頻解碼器的高效流水線系統(tǒng)。
背景技術(shù):
數(shù)字音視頻編解碼技術(shù)標準工作組(AVS工作組)制定的AVS音視頻編解碼技術(shù)標準的視頻部分于2006年2月22日被頒布為中華人民共和國國家標準,標準號GB/T 20090.2-2006,于2006年3月1日起實施。
視頻解碼系統(tǒng)需要處理的數(shù)據(jù)量非常大,其巨大的計算量給系統(tǒng)的VLSI實現(xiàn)帶來了挑戰(zhàn)。在一定的頻率要求下,如何保證視頻解碼的實時性,成為了設計過程中一個值得關(guān)注的問題。
流水線是一種能夠使多個任務重疊操作的技術(shù)。在解碼系統(tǒng)中,流水線的應用就體現(xiàn)在將整個系統(tǒng)劃分為相互獨立的幾個任務,然后根據(jù)數(shù)據(jù)的依賴關(guān)系把任務合理分配到流水線的某一階段,從整體來看,數(shù)據(jù)等待時間減少,整體效率大大提高,系統(tǒng)的性能也隨之得到改善。具體來講,合理劃分處理模塊和流水線層次,是AVS視頻解碼器流水線結(jié)構(gòu)設計中的關(guān)鍵。合理的設計將有效減少每級流水線的時間冗余,達到高速視頻解碼的目標。
AVS視頻解碼器主要的數(shù)據(jù)處理模塊包括變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、去塊效應濾波模塊,其中部分模塊間存在數(shù)據(jù)相關(guān)問題,而且各模塊處理時間并不一致。合理劃分處理模塊和流水線層次,是AVS視頻解碼器流水線設計的關(guān)鍵步驟。
經(jīng)對現(xiàn)有技術(shù)文獻的檢索發(fā)現(xiàn)To-Wei等人在2005.ISCAS 2005.IEEEInternational Symposium on Circuits and Systems(2005年IEEE電路與系統(tǒng)國際研討會)上所發(fā)表的“Architecture design of H.264/AVC decoder withhybrid task pipelining for high definition videos”中(采用混合流水線的高清晰度H.264/AVC視頻解碼器架構(gòu)設計)提到一種用于H.264/AVC視頻解碼器的流水線機制(由于H.264/AVC和AVS在硬件實現(xiàn)上具有很強的相似性,故有比對的價值),該方法考慮到每個模塊處理數(shù)據(jù)的粒度不同,采取了分級流水線的思想,但其缺點在于其宏塊級流水線僅分為兩級,第一級包括變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊,第二級由去塊效應濾波模塊組成。第一級劃分過于粗糙,導致存在嚴重的數(shù)據(jù)等待現(xiàn)象。幀內(nèi)預測模塊和幀間預測模塊要等變長碼解碼模塊解好了本宏塊的頭信息才能開始進行本宏塊的預測;反量化/反變換模塊要等變長碼解碼模塊解好了本宏塊的頭信息以及一個塊的殘差系數(shù)才能對本宏塊中各塊進行反量化和反變換。使用該流水線機制實現(xiàn)的視頻解碼器,宏塊級流水第一級過于龐大,存在較大的時間冗余,制約了整體解碼速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種用于AVS視頻解碼器的高效流水線系統(tǒng)。本發(fā)明采用混合流水線機制,根據(jù)各模塊處理數(shù)據(jù)的粒度以及數(shù)據(jù)依賴關(guān)系,將不同模塊分配到不同的流水線級別中,并采用適當?shù)目刂茩C制以協(xié)調(diào)各模塊工作。變長碼解碼模塊在其他模塊工作前已將相應的頭信息或殘差系數(shù)準備好,避免模塊間的數(shù)據(jù)等待現(xiàn)象,減小時間冗余,在不顯著增大存儲器開銷的前提下,達到了解碼器高速解碼的目的。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的,本發(fā)明包括變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、去塊效應濾波模塊等重要的數(shù)據(jù)處理模塊,以及用于控制和協(xié)調(diào)流水線操作的控制模塊、重構(gòu)模塊,其中所述變長碼解碼模塊主要用于解析宏塊頭信息和殘差系數(shù)。宏塊頭信息輸出到反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、去塊效應濾波模塊;殘差系數(shù)以塊為單位輸出給反量化/反變換模塊。
所述反量化/反變換模塊,以塊為單位對殘差系數(shù)進行反量化和反變換,處理結(jié)果輸出至重構(gòu)模塊。
所述幀內(nèi)預測模塊,以塊為單位進行幀內(nèi)預測處理,其輸入數(shù)據(jù)為上一塊的重構(gòu)值,輸出數(shù)據(jù)至重構(gòu)模塊。
所述幀間預測模塊,用于進行幀間預測處理,其輸入數(shù)據(jù)來自前一幀或兩幀經(jīng)去塊效應濾波后的解碼圖像,輸出幀間預測結(jié)果到重構(gòu)模塊。雖然以塊為單位處理數(shù)據(jù),但是由于相鄰塊的參考數(shù)據(jù)具有很強的可重用性,故視為宏塊級的模塊。
所述去塊效應濾波模塊,用于對重構(gòu)值進行去塊效應濾波,然后將結(jié)果輸出到外部解碼緩沖區(qū),由于以宏塊為單位處理數(shù)據(jù),故視為宏塊級模塊。
所述控制模塊,控制變長碼解碼流程并對宏塊級流水線進行協(xié)調(diào),輸入來自變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊的狀態(tài)信號,輸出相應的使能和有效信號。
所述重構(gòu)模塊主要功能是根據(jù)宏塊類型選通幀內(nèi)預測模塊或者幀間預測模塊的結(jié)果與反量化/反變換模塊的結(jié)果相加得重構(gòu)值,然后輸出給去塊效應濾波模塊和幀內(nèi)預測模塊。
為保證流水線正常工作,各模塊間存在數(shù)據(jù)緩沖區(qū),用以緩存數(shù)據(jù)。數(shù)據(jù)緩沖區(qū)包括數(shù)據(jù)乒乓RAM和頭信息存儲FIFO兩種,其中,數(shù)據(jù)乒乓RAM主要用于存儲數(shù)據(jù),保證數(shù)據(jù)的流水線式處理,而頭信息存儲FIFO用于存儲宏塊頭信息。本發(fā)明變長碼解碼模塊和反量化/反變換模塊之間存在以塊為單位的數(shù)據(jù)乒乓RAM;重構(gòu)模塊和反量化/反變換模塊之間存在以塊為單位數(shù)據(jù)乒乓RAM;重構(gòu)模塊和幀間預測模塊之間存在以宏塊為單位數(shù)據(jù)乒乓RAM;重構(gòu)模塊和去塊效應濾波模塊之間存在以宏塊為單位的數(shù)據(jù)乒乓RAM;變長碼解碼模塊和去塊效應濾波模塊之間存在頭信息存儲FIFO。所述數(shù)據(jù)乒乓RAM通過設置兩塊RAM,交替進行讀寫操作,實現(xiàn)了數(shù)據(jù)無縫緩沖與處理。
本發(fā)明針對各模塊處理數(shù)據(jù)的粒度以及數(shù)據(jù)依賴關(guān)系,采用三級宏塊級流水線和兩級塊級流水線。從宏觀上,三級宏塊級流水線第一級由變長碼解碼模塊組成;第二級級由反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊組成;第三級由去塊效應濾波模塊組成。從微觀上,兩級塊級流水線第一級由變長碼解碼模塊組成;第二級由反量化/反變換模塊、幀內(nèi)預測模塊組成。
從宏觀上,宏塊級流水線作為整個解碼器的核心流水線,將主要數(shù)據(jù)處理模塊都囊括在內(nèi)。雖然變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊以塊為單位處理數(shù)據(jù),但在處理每個宏塊內(nèi)各個塊的數(shù)據(jù)之前,變長碼解碼模塊需要解析宏塊頭信息,反量化/反變換模塊、幀內(nèi)預測模塊需要讀取宏塊頭信息。故從總體控制的角度,變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊必然處于宏塊級流水線中??刂颇K對宏塊級流水線的第一級和第二級的模塊進行協(xié)調(diào)控制;第二級和第三級模塊根據(jù)數(shù)據(jù)乒乓RAM的空滿協(xié)調(diào)工作。
從微觀上看,在宏塊內(nèi)部,變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊以塊為單位處理數(shù)據(jù),進行塊級流水。各模塊根據(jù)數(shù)據(jù)乒乓RAM的空滿協(xié)調(diào)工作。
在控制模塊和數(shù)據(jù)乒乓RAM的協(xié)調(diào)控制下,本系統(tǒng)通過宏塊級流水線和塊級流水線相互配合,實現(xiàn)高效運轉(zhuǎn)。具體來講,本發(fā)明中各模塊的工作原理如下控制模塊根據(jù)宏塊類型和來自變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊的狀態(tài)信號,經(jīng)過判斷輸出相應的使能和有效信號,對宏塊級流水進行控制。對于幀內(nèi)預測類型宏塊,在變長碼解碼模塊解好宏塊頭信息后,控制模塊將頭信息有效信號以及幀內(nèi)預測使能信號拉高,直至反量化/反變換模塊和幀內(nèi)預測模塊分別反饋了頭信息讀取信號,控制模塊才將上述兩個信號拉低,同時將變長碼解碼使能信號拉高;對于幀間預測類型宏塊,在變長碼解碼模塊解好宏塊頭信息后,控制模塊將頭信息有效信號以及幀間預測使能信號拉高,直至反量化/反變換模塊和幀間預測模塊分別反饋了頭信息讀取信號,控制模塊才將上述兩個信號拉低,同時將變長碼解碼使能信號拉高。
變長碼解碼模塊在開始解碼一個新的宏塊前,查詢控制模塊送出的使能信號,若有效,則開始解析宏塊頭信息,否則,繼續(xù)查詢;解完宏塊頭信息后,查詢與反量化/反變換模塊間的數(shù)據(jù)乒乓RAM的空滿,若至少有一塊空,則以塊為單位解碼殘差系數(shù),否則繼續(xù)查詢。
反量化/反變換模塊在開始處理一個新的宏塊前,查詢控制模塊送出的頭信息有效信號,若有效,讀走頭信息同時反饋給控制模塊一個頭信息讀取信號,否則,繼續(xù)查詢;讀走頭信息后,查詢與變長碼解碼模塊和與重構(gòu)模塊間的數(shù)據(jù)乒乓RAM的空滿,若前者至少有一塊滿且后者至少有一塊空,則以塊為單位對殘差系數(shù)進行反量化/反變換,否則繼續(xù)查詢。
幀內(nèi)預測模塊在開始處理一個新的宏塊前,查詢控制模塊送出的頭信息有效信號和幀內(nèi)預測使能信號,若同時有效,讀走頭信息同時反饋給控制模塊一個頭信息讀取信號,否則,繼續(xù)查詢;讀走頭信息后開始進行宏塊內(nèi)各塊的幀內(nèi)預測。
幀間預測模塊在開始處理一個新的宏塊前,查詢控制模塊送出的頭信息有效信號和幀間預測使能信號,若同時有效,讀走頭信息同時反饋給控制模塊一個頭信息讀取信號,否則,繼續(xù)查詢;讀走頭信息后,查詢與重構(gòu)模塊間的數(shù)據(jù)乒乓RAM的空滿,若至少有一塊空,則開始計算運動矢量,至相應位置取參考值進行運動補償;否則繼續(xù)查詢。
重構(gòu)模塊對幀內(nèi)預測類型宏塊,選通幀內(nèi)預測的結(jié)果與反量化/反變換后的殘差數(shù)據(jù)相加得到重構(gòu)值;對幀間預測類型宏塊,選通幀間預測的結(jié)果與反量化/反變換后的殘差數(shù)據(jù)相加得到重構(gòu)值。
去塊效應濾波模塊在開始處理一個新的宏塊前,查詢與重構(gòu)模塊間的數(shù)據(jù)乒乓RAM的空滿,若至少有一塊滿,則從與變長碼解碼模塊間的頭信息存儲FIFO內(nèi)讀取對應的宏塊頭信息,開始對本宏塊的重構(gòu)值進行去塊效應濾波,否則繼續(xù)查詢。
上述系統(tǒng)主要面向高清晰度視頻解碼,但又不局限于解碼高清晰度視頻,在低分辨率的應用中,本發(fā)明所需頻率相應減小,能極大得降低系統(tǒng)功耗;上述系統(tǒng)具有很強的適應性和靈活性,針對不同需求可應用于軟硬件協(xié)同的AVS視頻解碼器中,也可應用于全硬件實現(xiàn)的AVS視頻解碼器。
本發(fā)明實現(xiàn)一種用于AVS視頻解碼器的高效流水線系統(tǒng)。本發(fā)明針對模塊處理數(shù)據(jù)的粒度,采用三級宏塊級流水線和兩級塊級流水線,通過控制模塊、重構(gòu)模塊、數(shù)據(jù)乒乓RAM和頭信息存儲FIFO的相互配合,保證了兩個級別的流水線高效的工作。總體來看,變長碼解碼模塊比反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊提前處理一個宏塊、比去塊效應濾波模塊提前處理兩個宏塊。后級模塊處理新的宏塊時不必等待該宏塊的頭信息和殘差系數(shù),系統(tǒng)處理每個宏塊的平均時間顯著縮短。通過有效的控制機制,減少了存儲頭信息的開銷,在提高系統(tǒng)解碼速度的同時并未顯著增加硬件資源的占用。
特別地,本發(fā)明與前文中所提到的To-Wei等人提出的方法相比,宏塊級流水線被進一步細分,變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊根據(jù)數(shù)據(jù)依賴關(guān)系被分為兩級。反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊在處理完第n-1個宏塊的數(shù)據(jù)后,變長碼解碼模塊已解好第n個宏塊的頭信息和至少一個塊殘差系數(shù)。反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊無需等待頭信息和殘差系數(shù)。各模塊更有效得流水起來,極大縮短了解碼時間。根據(jù)驗證,解一個宏塊的平均時間縮短了27%至33%。
綜上所述,本發(fā)明使得解碼速度大大提高,且并無顯著增加存儲器,因此,在速度和硬件資源方面都具有極大優(yōu)勢。
圖1是本發(fā)明的系統(tǒng)框圖;圖2本發(fā)明中模塊間數(shù)據(jù)緩沖區(qū)示意圖;圖3是三級宏塊級流水線示意圖;圖4是兩級塊級流水線示意圖;圖5是To-Wei等人提出的混合流水線示意圖。
具體實現(xiàn)方式結(jié)合本發(fā)明技術(shù)方案以及附圖提供以下實施例圖1給出了本發(fā)明的系統(tǒng)框圖。本發(fā)明包括變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、去塊效應濾波模塊等重要的數(shù)據(jù)處理模塊,以及用于控制和協(xié)調(diào)流水線操作的控制模塊和重構(gòu)模塊。
變長碼解碼模塊輸出宏塊頭信息到反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、去塊效應濾波模塊;以塊為單位將殘差系數(shù)輸出給反量化/反變換模塊。反量化/反變換模塊將反變換后的數(shù)據(jù)以塊為單位輸出至重構(gòu)模塊。幀內(nèi)預測模塊輸入上一塊重構(gòu)值,輸出幀內(nèi)預測的結(jié)果至重構(gòu)模塊。幀間預測模根據(jù)宏塊頭信息算得運動矢量到解碼緩沖區(qū)獲取參考數(shù)據(jù),然后進行運動補償,并將運動補償后的數(shù)據(jù)輸出到重構(gòu)模塊。去塊效應濾波模塊輸入重構(gòu)后的宏塊數(shù)據(jù),然后將結(jié)果輸出到外部解碼緩沖區(qū)。
控制模塊控制變長碼解碼流程并對宏塊級的流水線進行有效協(xié)調(diào)。重構(gòu)模塊選通幀內(nèi)預測模塊或者幀間預測模塊的輸出數(shù)據(jù)與反量化/反變換模塊的結(jié)果相加得重構(gòu)值,輸出給去塊效應濾波模塊和幀內(nèi)預測模塊。
如圖2,為了保證流水操作的正常進行,相關(guān)模塊之間都存在數(shù)據(jù)緩沖區(qū),包括數(shù)據(jù)乒乓RAM和頭信息存儲FIFO。數(shù)據(jù)乒乓RAM主要用于存儲數(shù)據(jù),保證數(shù)據(jù)的流水線式處理,而頭信息存儲FIFO用于存儲宏塊頭信息。
數(shù)據(jù)乒乓RAM在流水線中的作用上級模塊數(shù)據(jù)處理前都要檢查其下級乒乓RAM的空滿,若至少一塊為空則可以正常工作,若全滿則需等待;同時下級模塊數(shù)據(jù)處理前都要檢查其上級乒乓RAM的空滿,若至少一塊滿則可以正常工作,若為空則需等待。各模塊根據(jù)數(shù)據(jù)緩沖區(qū)的空滿彼此配合,協(xié)調(diào)工作,進而實現(xiàn)流水操作。
例如圖2中,變長碼解碼模塊解好宏塊頭信息后,查詢數(shù)據(jù)乒乓RAM1,若至少有一塊為空,則可以開始解碼殘差系數(shù),否則需要等待。對于反量化/反變換模塊而言,在得到宏塊頭信息后,查詢數(shù)據(jù)乒乓RAM1和RAM2,若RAM1中至少有一塊滿且RAM2中至少有一塊空,則開始對RAM1中的殘差系數(shù)進行處理,否則需要等待。
頭信息存儲FIFO在流水線中的作用由上級模塊將當前模塊解碼所需要的頭信息存入FIFO,并及時更新,只有當數(shù)據(jù)和解碼頭信息的嚴格同步時,當前模塊才從FIFO中讀入頭信息。
例如圖2中,變長碼解碼模塊每解好一個宏塊的頭信息就存入頭信息存儲FIFO。當去塊效應濾波模塊處理完一個宏塊后,查詢數(shù)據(jù)乒乓RAM4,若至少有一塊滿,則從頭信息存儲FIFO中取出下一個宏塊的頭信息,然后開始對下一宏塊進行處理。
下面結(jié)合附圖2、附圖3和附圖4,以本發(fā)明的系統(tǒng)在先進音視頻編碼標準AVS中的應用為例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。其中圖中黑色的宏塊表明此宏塊為幀內(nèi)預測類型的宏塊,白色的宏塊為幀間預測宏塊。
對幀間預測宏塊的處理,以宏塊級流水線中各模塊處理宏塊3的流程為例進行說明。具體流程如下如圖3,變長碼解碼模塊解好宏塊3的頭信息后,控制模塊將頭信息有效信號和幀間預測使能信號拉高。之后,控制模塊查詢此宏塊頭信息是否被幀間預測模塊和反量化/反變換模塊分別讀走。當頭信息已經(jīng)被兩個模塊讀走時,控制模塊才將上述兩個信號拉低,同時將變長碼解碼使能信號拉高,示意變長碼解碼模塊可以解析宏塊4的數(shù)據(jù)。
如圖3,幀間預測模塊處理宏塊3的數(shù)據(jù)之前,查詢控制模塊輸出的頭信息有效信號以及幀間預測使能信號。當這兩個信號同時有效時,幀間預測模塊讀走頭信息并反饋給控制模塊一個頭信息讀取信號。反饋信號表明幀間預測模塊已讀走宏塊3的頭信息,變長碼解碼模塊解析宏塊4的頭信息不會對本模塊產(chǎn)生影響。幀間預測模塊讀走頭信息后,查詢數(shù)據(jù)乒乓RAM3的空滿,若至少有一塊空,則開始計算運動矢量,至相應位置取參考值進行運動補償;否則繼續(xù)查詢。
如圖3,反量化/反變換模塊對宏塊3的數(shù)據(jù)進行反量化/反變換之前,查詢控制模塊輸出的頭信息有效信號。當此信號有效時,反量化/反變換模塊讀走頭信息同時反饋給控制模塊一個頭信息讀取信號。然后查詢數(shù)據(jù)乒乓RAM1和RAM2的空滿,若數(shù)據(jù)乒乓RAM1至少有一塊滿且數(shù)據(jù)乒乓RAM2至少有一塊空,則開始對宏塊3內(nèi)以塊為單位的殘差系數(shù)進行反量化和反變換。
如圖3,去塊效應濾波模塊以宏塊為單位處理數(shù)據(jù)。當宏塊2的數(shù)據(jù)已經(jīng)重構(gòu)完畢(數(shù)據(jù)乒乓RAM4中至少有一塊滿)且去塊效應濾波模塊對宏塊1的數(shù)據(jù)已經(jīng)濾波完畢,去塊效應濾波模塊就從頭信息存儲FIFO中讀取宏塊2的頭信息,開始對宏塊2的數(shù)據(jù)進行處理。去塊效應濾波模塊做完一幀,反饋一個幀結(jié)束的信號給控制模塊,以便進行幀同步。
如圖3,幀內(nèi)預測模塊處理宏塊3的數(shù)據(jù)之前,查詢控制模塊輸出的頭信息有效信號以及幀內(nèi)預測使能信號。由于宏塊3為幀間預測宏塊,幀內(nèi)預測使能信號一直為低,故幀內(nèi)預測模塊不對宏塊3進行處理,一直處于查詢狀態(tài)。
對幀內(nèi)預測宏塊的處理,以塊級流水線中各模塊處理宏塊4的流程為例進行說明。由圖4可見,宏塊4中前3個塊為非零塊,后3個塊為全零塊。具體流程如下如圖4,變長碼解碼模塊解析完宏塊4的頭信息后,如果數(shù)據(jù)乒乓RAM1有一塊為空,則開始解析宏塊4內(nèi)以塊為單位的殘差系數(shù);否則,等待。變長碼解碼模塊只解碼非零殘差數(shù)據(jù),解碼順序為塊1、塊2、塊3;不處理后三個全零塊,以節(jié)省處理時間和功耗。
如圖4,反量化/反變換模塊得到宏塊4的頭信息后,得知宏塊4前3個塊為非零塊,后3個塊為全零塊。若數(shù)據(jù)乒乓RAM1至少有一塊滿且數(shù)據(jù)乒乓RAM2至少有一塊空,則開始對宏塊4內(nèi)以塊為單位的殘差系數(shù)進行反量化/反變換。反量化/反變換模塊依次處理完塊1、塊2、塊3的非零數(shù)據(jù)后,直接輸出3個全零塊給重構(gòu)模塊。
由于反量化/反變換模塊和變長碼解碼模塊、重構(gòu)模塊間都存在數(shù)據(jù)乒乓RAM,所以在塊級流水線中,變長碼解碼模塊比反量化/反變換模塊提前不止一個塊。因而對于反量化/反變換模塊而言,可以馬上得到所需的殘差系數(shù)而無需等待。
如圖4,幀內(nèi)預測模塊處理的數(shù)據(jù)也是以塊為單位。其輸入數(shù)據(jù)為上一個塊的重構(gòu)值,即上一個塊反量化及反變換后的結(jié)果和幀內(nèi)預測結(jié)果(或幀間預測結(jié)果)之和。幀內(nèi)預測處理宏塊4的第一個塊時,其輸入數(shù)據(jù)為宏塊3的最后一個塊重構(gòu)值;處理宏塊4的第二個塊時,輸入數(shù)據(jù)為宏塊4的第一個塊重構(gòu)值。
至此,實現(xiàn)了用于AVS視頻解碼器的高效流水線系統(tǒng)。通過控制模塊、重構(gòu)模塊、數(shù)據(jù)乒乓RAM和頭信息存儲FIFO的相互配合,保證了兩個級別的流水線高效的工作。將圖3、圖4中本發(fā)明的流水線與圖5中To-Wei等人提出的混合流水線比較,可見本發(fā)明中宏塊級流水線被進一步細分。總體來看,變長碼解碼模塊提前反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊一級,有效避免模塊間的數(shù)據(jù)等待現(xiàn)象,減小時間冗余;各模塊更有效得流水起來,極大縮短了解碼時間。根據(jù)實驗,解一個宏塊的平均時間縮短了27%至33%。
權(quán)利要求
1.一種用于AVS視頻解碼器的高效流水線系統(tǒng),包括變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、重構(gòu)模塊、去塊效應濾波模塊和控制模塊,其特征在于所述變長碼解碼模塊,用于解析宏塊頭信息和解碼殘差系數(shù),輸出宏塊頭信息到反量化/反變換模塊、幀內(nèi)預測模塊、幀間預測模塊、去塊效應濾波模塊;輸出殘差系數(shù)給反量化/反變換模塊;所述反量化/反變換模塊,用于對殘差系數(shù)進行反量化和反變換,處理結(jié)果輸出至重構(gòu)模塊;所述幀內(nèi)預測模塊,用于進行幀內(nèi)預測處理,其輸入數(shù)據(jù)為上一塊的重構(gòu)值,輸出數(shù)據(jù)至重構(gòu)模塊;所述幀間預測模塊,用于進行幀間預測處理,其輸入數(shù)據(jù)來自前一幀或兩幀經(jīng)去塊效應濾波后的解碼圖像,輸出幀間預測結(jié)果到重構(gòu)模塊;所述重構(gòu)模塊,用于將反量化/反變換后的殘差系數(shù)和預測值相加得到重構(gòu)值,輸出重構(gòu)值給幀內(nèi)預測模塊和去塊效應濾波模塊;所述去塊效應濾波模塊,用于進行去塊效應濾波,輸入重構(gòu)值,將去塊效應濾波結(jié)果輸出到外部解碼緩沖區(qū);所述控制模塊,用于控制變長碼解碼流程并對宏塊級的流水線進行協(xié)調(diào),輸入來自變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊的狀態(tài)信號,輸出相應的使能和有效信號。
2.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于各模塊間存在數(shù)據(jù)緩沖區(qū),用以緩存數(shù)據(jù),數(shù)據(jù)緩沖區(qū)包括數(shù)據(jù)乒乓RAM和頭信息存儲FIFO兩種,其中,數(shù)據(jù)乒乓RAM用于存儲數(shù)據(jù),保證數(shù)據(jù)的流水線式處理,而頭信息存儲FIFO用于存儲宏塊頭信息。
3.如權(quán)利要求2所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于變長碼解碼模塊和反量化/反變換模塊之間存在以塊為單位的數(shù)據(jù)乒乓RAM;重構(gòu)模塊和反量化/反變換模塊之間存在以塊為單位數(shù)據(jù)乒乓RAM;重構(gòu)模塊和幀間預測模塊之間存在以宏塊為單位數(shù)據(jù)乒乓RAM;重構(gòu)模塊和去塊效應濾波模塊之間存在以宏塊為單位的數(shù)據(jù)乒乓RAM;變長碼解碼模塊和去塊效應濾波模塊之間存在頭信息存儲FIFO。
4.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述控制模塊,根據(jù)宏塊類型和來自變長碼解碼模塊、反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊的狀態(tài)信號,經(jīng)過判斷輸出相應的使能和有效信號,對宏塊級流水進行控制;對于幀內(nèi)預測類型宏塊,在變長碼解碼模塊解好宏塊頭信息后,控制模塊將頭信息有效信號以及幀內(nèi)預測使能信號拉高,直至反量化/反變換模塊和幀內(nèi)預測模塊分別反饋了頭信息讀取信號,控制模塊才將上述兩個信號拉低,同時將變長碼解碼使能信號拉高;對于幀間預測類型宏塊,在變長碼解碼模塊解好宏塊頭信息后,控制模塊將頭信息有效信號以及幀間預測使能信號拉高,直至反量化/反變換模塊和幀間預測模塊分別反饋了頭信息讀取信號,控制模塊才將上述兩個信號拉低,同時將變長碼解碼使能信號拉高。
5.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述變長碼解碼模塊,在開始解碼一個新的宏塊前,查詢控制模塊送出的使能信號,若有效,則開始解析宏塊頭信息,否則,繼續(xù)查詢;解完宏塊頭信息后,查詢與反量化/反變換模塊間的數(shù)據(jù)乒乓RAM的空滿,若至少有一塊空,則以塊為單位解碼殘差系數(shù),否則繼續(xù)查詢。
6.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述反量化/反變換模塊,在開始處理一個新的宏塊前,查詢控制模塊送出的頭信息有效信號,若有效,讀走頭信息同時反饋給控制模塊一個頭信息讀取信號,否則,繼續(xù)查詢;讀走頭信息后,查詢與變長碼解碼模塊和與重構(gòu)模塊間的數(shù)據(jù)乒乓RAM的空滿,若前者至少有一塊滿且后者至少有一塊空,則以塊為單位對殘差系數(shù)進行反量化/反變換,否則繼續(xù)查詢。
7.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述幀內(nèi)預測模塊,在開始處理一個新的宏塊前,查詢控制模塊送出的頭信息有效信號和幀內(nèi)預測使能信號,若同時有效,讀走頭信息同時反饋給控制模塊一個頭信息讀取信號,否則,繼續(xù)查詢;讀走頭信息后開始進行宏塊內(nèi)各塊的幀內(nèi)預測。
8.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述幀間預測模塊,在開始處理一個新的宏塊前,查詢控制模塊送出的頭信息有效信號和幀間預測使能信號,若同時有效,讀走頭信息同時反饋給控制模塊一個頭信息讀取信號,否則,繼續(xù)查詢;讀走頭信息后,查詢與重構(gòu)模塊間的數(shù)據(jù)乒乓RAM的空滿,若至少有一塊空,則開始計算運動矢量,至相應位置取參考值進行運動補償;否則繼續(xù)查詢。
9.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述重構(gòu)模塊,對幀內(nèi)預測類型宏塊,選通幀內(nèi)預測的結(jié)果與反量化/反變換后的殘差數(shù)據(jù)相加得到重構(gòu)值;對幀間預測類型宏塊,選通幀間預測的結(jié)果與反量化/反變換后的殘差數(shù)據(jù)相加得到重構(gòu)值。
10.如權(quán)利要求1所述的用于AVS視頻解碼器的高效流水線系統(tǒng),其特征在于所述去塊效應濾波模塊,在開始處理一個新的宏塊前,查詢與重構(gòu)模塊間的數(shù)據(jù)乒乓RAM的空滿,若至少有一塊滿,則從與變長碼解碼模塊間的頭信息存儲FIFO內(nèi)讀取對應的宏塊頭信息,開始對本宏塊的重構(gòu)值進行去塊效應濾波,否則繼續(xù)查詢。
全文摘要
一種用于AVS視頻解碼器的高效流水線系統(tǒng),屬于數(shù)字視頻編解碼技術(shù)領(lǐng)域。本發(fā)明根據(jù)各模塊處理數(shù)據(jù)的粒度以及數(shù)據(jù)依賴關(guān)系,采用三級宏塊級流水線和兩級塊級流水線。從宏觀上,三級宏塊級流水線第一級由變長碼解碼模塊組成;第二級級由反量化/反變換模塊、幀內(nèi)預測模塊和幀間預測模塊組成;第三級由去塊效應濾波模塊組成。從微觀上,兩級塊級流水線第一級由變長碼解碼模塊組成;第二級由反量化/反變換模塊、幀內(nèi)預測模塊組成??刂颇K、重構(gòu)模塊、數(shù)據(jù)乒乓RAM和頭信息存儲FIFO相互配合,保證了兩級流水線的高效工作。本發(fā)明有效避免模塊間的數(shù)據(jù)等待現(xiàn)象,減小時間冗余,在不顯著增大存儲器開銷的前提下,達到高清晰度視頻實時解碼的目標。
文檔編號H04N7/50GK1874512SQ20061002832
公開日2006年12月6日 申請日期2006年6月29日 優(yōu)先權(quán)日2006年6月29日
發(fā)明者孫楠, 趙策, 劉佩林 申請人:上海交通大學