專利名稱:視頻解碼方法與解碼裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種電信技術(shù)領(lǐng)域的方法與裝置,具體是一種視頻解碼方法與解 碼裝置。
背景技術(shù):
目前主流的視頻編解碼技術(shù),例如MPEG-x系列、H.26x系列和中國(guó)的AVS 標(biāo)準(zhǔn)等,都是基于變換/預(yù)測(cè)混合編碼框架的,其核心解碼流程是首先對(duì)輸入
的視頻碼流做解析與熵解碼,然后分兩路 一路經(jīng)過逆量化和逆變換后得到圖像 殘差數(shù)據(jù);另一路通過時(shí)域預(yù)測(cè)或空域預(yù)測(cè)后得到圖像預(yù)測(cè)數(shù)據(jù)。兩路數(shù)據(jù)相加 后經(jīng)過環(huán)路濾波輸出,并作為下一幀時(shí)域預(yù)測(cè)的參考。在設(shè)計(jì)視頻解碼器時(shí),首 先要對(duì)解碼器的結(jié)構(gòu)進(jìn)行模塊劃分。
經(jīng)過現(xiàn)有技術(shù)的文獻(xiàn)檢索發(fā)現(xiàn),中國(guó)專利(申請(qǐng))號(hào)為CN200410070208.7, 名稱為"一種基于軟硬件協(xié)同控制的視頻解碼器",采用了基于功能的劃分方法, 把功能上接近的運(yùn)算歸類在同一個(gè)模塊中。例如,視頻解碼器中的時(shí)域預(yù)測(cè)參數(shù) (運(yùn)動(dòng)矢量等)的計(jì)算部分和時(shí)域分?jǐn)?shù)樣本插值部分被劃分到時(shí)域預(yù)測(cè)模塊;空 域預(yù)測(cè)參數(shù)(幀內(nèi)預(yù)測(cè)模式等)的計(jì)算部分和空域樣本的計(jì)算部分被劃分到空域 預(yù)測(cè)模塊;環(huán)路濾波參數(shù)(邊界濾波強(qiáng)度等)的計(jì)算部分和環(huán)路濾波樣本計(jì)算部 分被劃分到環(huán)路濾波模塊等等。這種方法的局限在于,不能有效利用各種參數(shù)運(yùn) 算之間的數(shù)據(jù)相關(guān)性。例如,邊界強(qiáng)度的計(jì)算直接依賴于運(yùn)動(dòng)矢量,多種參數(shù)的 計(jì)算中都需要使用到鄰近塊的判別算法。如果把各種參數(shù)運(yùn)算劃分到不同的模
塊,則數(shù)據(jù)相關(guān)性不僅不能被有效利用,反而會(huì)造成模塊間接口的復(fù)雜化。 發(fā)明內(nèi)容基于預(yù)測(cè)點(diǎn)間相關(guān)性的幀內(nèi)預(yù)測(cè)實(shí)現(xiàn)的方法及裝置 本發(fā)明針對(duì)上述現(xiàn)有技術(shù)的不足,提供一種視頻解碼方法和解碼裝置,使其 將視頻解碼過程經(jīng)過解析與熵解碼、參數(shù)解碼和像素解碼三個(gè)步驟完成,每個(gè)步 驟中的處理具有相似的性質(zhì)和數(shù)據(jù)局部特性,并結(jié)合三個(gè)步驟提供相應(yīng)的解碼裝
置,從而有利于合理地分配資源,提高視頻解碼的效率。 本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的-本發(fā)明涉及的視頻解碼方法,包括如下步驟-
步驟一,輸入已壓縮的視頻比特流,根據(jù)該比特流遵循的視頻壓縮標(biāo)準(zhǔn),對(duì) 其進(jìn)行解析與熵解碼,得到各級(jí)語(yǔ)法元素信息;
所述的語(yǔ)法元素信息,是指與比特流中的碼字對(duì)應(yīng)的,能夠通過變長(zhǎng)解碼和 基于上下文解碼等熵解碼方法得到的信息。
步驟二,根據(jù)步驟一中所得到的語(yǔ)法元素信息進(jìn)行視頻參數(shù)解碼,得到新的 參數(shù)信息,從第二次循環(huán)開始,則使用步驟一中所得到的語(yǔ)法元素信息和前一次 循環(huán)執(zhí)行步驟二時(shí)所獲得的參數(shù)信息,進(jìn)行視頻參數(shù)解碼,得到新的參數(shù)信息;
所述的參數(shù)信息,是指直接以參數(shù)形式描述圖像,但并不直接與比特流中的 碼字相對(duì)應(yīng)的信息,它們由語(yǔ)法元素信息和已有的參數(shù)信息運(yùn)算得到。
步驟三,根據(jù)步驟一中所得到的語(yǔ)法元素信息、步驟二中所得到的參數(shù)信息 進(jìn)行像素解碼,得到還原后的視頻圖像信息并輸出;從第二次循環(huán)開始,則使用 步驟一中得到的語(yǔ)法元素信息、步驟二中所得到的參數(shù)信息和前一次執(zhí)行步驟三 時(shí)所獲得的視頻圖像信息進(jìn)行像素解碼,得到還原后的新的視頻圖像信息并輸 出;
步驟四,循環(huán)以上步驟一到步驟三,直到解碼完成所有的輸入比特流。
本發(fā)明涉及的視頻解碼裝置,包括解析與熵解碼模塊、參數(shù)解碼模塊、主 解碼模塊、第一緩沖器、第二緩沖器和第三緩沖器。
所述解析與熵解碼模塊,對(duì)輸入的比特流進(jìn)行解析與熵解碼,得到各級(jí)語(yǔ)法 元素信息,并存入第一緩沖器。
所述解析與熵解碼模塊,包括嵌入式CPU (中央處理器)和熵解碼加速器, 所述的嵌入式CPU負(fù)責(zé)控制熵解碼加速器、參數(shù)解碼模塊和主解碼模塊的運(yùn)行, 在每一個(gè)片的初始化完成后,向熵解碼加速器、參數(shù)解碼模塊和主解碼模塊發(fā)出 啟動(dòng)信號(hào),在一個(gè)片的解碼完成后,嵌入式CPU接受熵解碼加速器、參數(shù)解碼 模塊和主解碼模塊的結(jié)束信號(hào);所述的熵解碼加速器,負(fù)責(zé)宏塊級(jí)別以及宏塊以 下級(jí)別的語(yǔ)法元素解析/熵解碼工作。
所述的嵌入式CPU還負(fù)責(zé)宏塊以上級(jí)別語(yǔ)法元素的解析/熵解碼工作,嵌入 式CPU使用基于軟件的指數(shù)哥倫布解碼方法和定長(zhǎng)解碼方法,將輸入的視頻比特 流解碼成序列頭信息、圖像頭信息以及片的頭信息,所得到的序列頭信息、圖像 頭信息、片的頭信息輸出到片上第一緩沖器,嵌入式CPU的工作周期以片為單
位,每次完成對(duì)一個(gè)片的宏塊以上級(jí)別語(yǔ)法元素的解碼后,啟動(dòng)熵解碼加速器, 直到熵解碼加速器也完成對(duì)該片的處理,然后開始下一個(gè)片的工作。
所述的熵解碼加速器,負(fù)責(zé)宏塊級(jí)別以及宏塊以下級(jí)別的語(yǔ)法元素解析/熵
解碼工作,熵解碼加速器在得到來自嵌入式CPU的啟動(dòng)信號(hào)后,分別從第一緩
沖器中讀取對(duì)應(yīng)本片的已解碼序列頭信息、圖像頭信息語(yǔ)法元素并存儲(chǔ)到第一緩 沖器中,第一緩沖器已經(jīng)有片內(nèi)已解碼的片的頭信息語(yǔ)法元素,熵解碼加速器根 據(jù)第一緩沖器中的所有己解碼語(yǔ)法元素,使用基于硬件的指數(shù)哥倫布和上下文自 適應(yīng)變長(zhǎng)解碼方法對(duì)輸入比特流進(jìn)行解析/熵解碼,并將解碼結(jié)果按順序依次存 儲(chǔ)到第一緩沖器中,并維護(hù)成語(yǔ)法元素先進(jìn)先出隊(duì)列的形式,當(dāng)熵解碼加速器完
成一個(gè)片的解碼后,發(fā)給嵌入式CPU—個(gè)結(jié)束信號(hào),并進(jìn)入等待狀態(tài),直到嵌 入式CPU下一次發(fā)送啟動(dòng)信號(hào)為止。
所述參數(shù)解碼模塊,從第一緩沖器中獲得由解析與熵解碼模塊存入的語(yǔ)法元 素信息,計(jì)算出新的參數(shù)信息,并存入第二緩沖器。
所述的參數(shù)解碼模塊,負(fù)責(zé)將已解碼的語(yǔ)法元素轉(zhuǎn)換為參數(shù)信息,只要語(yǔ)法 元素中有數(shù)據(jù)可用,參數(shù)解碼模塊即開始工作,參數(shù)解碼模塊的工作周期以片為 單位,在每一個(gè)片開始時(shí),參數(shù)解碼模塊從第一緩沖器中讀取與本片對(duì)應(yīng)的宏塊 以上級(jí)別語(yǔ)法元素,并存儲(chǔ)到第二緩沖器,參數(shù)解碼模塊根據(jù)存儲(chǔ)在第二緩沖器 中的宏塊以上級(jí)語(yǔ)法元素,對(duì)宏塊級(jí)別'以及宏塊以下級(jí)別語(yǔ)法元素進(jìn)行參數(shù)解
碼,其結(jié)果包括運(yùn)動(dòng)矢量、幀內(nèi)預(yù)測(cè)模式、邊界濾波強(qiáng)度和量化系數(shù),參數(shù)解
碼的結(jié)果被存入到第二緩沖器,語(yǔ)法元素中游程幅值信息和參考索引無需參數(shù)解 碼能直接被用作參數(shù),這類語(yǔ)法元素被直接傳輸?shù)降诙彌_器中。
所述主解碼模塊,從第一緩沖器中獲得由解析與熵解碼模塊存入的語(yǔ)法元素 信息,從第二緩沖器中獲得由參數(shù)解碼模塊存入的參數(shù)信息,計(jì)算出新的視頻圖 像信息,存入第三緩沖器并輸出。
所述主解碼模塊包括以下子模塊逆量化子模塊、逆變換子模塊、幀內(nèi)預(yù)測(cè) 子模塊、參考像素獲取子模塊、分?jǐn)?shù)樣本插值子模塊、補(bǔ)償重構(gòu)子模塊和環(huán)路濾 波子模塊。
所述逆量化子模塊從第二緩沖器中讀取宏塊類型、量化系數(shù)和游程幅值信息 等,依據(jù)R264標(biāo)準(zhǔn)所規(guī)定的逆掃描、哈達(dá)馬變換和逆量化方法,以4x4塊為單 位,得到變換系數(shù)矩陣,并將該矩陣傳送到逆變換子模塊。
所述逆變換子模塊負(fù)責(zé)對(duì)得到的變換系數(shù)矩陣進(jìn)行4x4整數(shù)逆變換從而得 到殘差樣本矩陣,并將該矩陣傳送到補(bǔ)償重構(gòu)子模塊。
所述幀內(nèi)預(yù)測(cè)子模塊從第二緩沖器中讀取宏塊類型和幀內(nèi)預(yù)測(cè)模式等,依據(jù) 從補(bǔ)償重構(gòu)模塊反饋的未經(jīng)環(huán)路濾波的參考樣本,進(jìn)行幀內(nèi)預(yù)測(cè)并將預(yù)測(cè)結(jié)果傳 送到補(bǔ)償重構(gòu)模塊。
所述參考像素獲取子模塊根據(jù)從第二緩沖器中讀取的宏塊類型、參考索引和 運(yùn)動(dòng)矢量等,從第三緩沖器中讀取進(jìn)行相應(yīng)的分?jǐn)?shù)樣本插值所需要參考的視頻圖 像信息,并將結(jié)果和分?jǐn)?shù)樣本插值所需的參數(shù)信息傳送至分?jǐn)?shù)樣本插值子模塊。 所述分?jǐn)?shù)樣本插值所需要參考的視頻圖像信息,是指此前主解碼模塊運(yùn)行過程中 已解碼的視頻圖像信息。
所述分?jǐn)?shù)樣本插值子模塊依據(jù)所獲得的參數(shù)信息和參考像素進(jìn)行濾波插值, 并將結(jié)果傳送至補(bǔ)償重構(gòu)子模塊。
所述補(bǔ)償重構(gòu)子模塊以宏塊(MB)為工作周期,在每個(gè)宏塊開始時(shí),首先 從第二緩沖器中讀取宏塊類型。如果當(dāng)前宏塊是I一PCM (幀內(nèi)型脈沖編碼調(diào)制) 類型,則從第二緩沖器中依次讀取PCM (脈沖編碼調(diào)制)值,直接輸出到環(huán)路 濾波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子模塊;如果當(dāng)前宏塊是除了 I一PCM (幀內(nèi)型 脈沖編碼調(diào)制)以外的I (幀內(nèi))類型宏塊,則從逆變換子模塊獲取殘差樣本矩 陣,從幀內(nèi)預(yù)測(cè)子模塊獲取幀內(nèi)預(yù)測(cè)結(jié)果,然后將兩者進(jìn)行補(bǔ)償后輸出到環(huán)路濾 波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子模塊;如果當(dāng)前宏塊是P (單向預(yù)測(cè))類型或B (雙向預(yù)測(cè))類型宏塊,則從逆變換子模塊獲取差樣本矩陣,從分?jǐn)?shù)樣本插值子 模塊獲取插值結(jié)果,然后將兩者進(jìn)行補(bǔ)償后輸出到環(huán)路濾波子模塊,并反饋給幀 內(nèi)預(yù)測(cè)子模塊。
所述環(huán)路濾波子模塊從第三緩沖器中讀取當(dāng)前片中的已解碼圖像信息,從補(bǔ) 償重構(gòu)子構(gòu)塊讀取當(dāng)前宏塊補(bǔ)償后的圖像樣本,根據(jù)從第二緩沖器中讀取的宏塊 類型和邊界濾波強(qiáng)度等參數(shù),進(jìn)行去塊效應(yīng)濾波,并將濾波結(jié)果寫入第三緩沖器 作為視頻圖像信息,并輸出圖像信息。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果本發(fā)明方法根據(jù)視頻解碼過程 中各個(gè)部分之間的關(guān)系,包括先后順序、運(yùn)算量、數(shù)據(jù)依賴性和數(shù)據(jù)局部特性, 將視頻解碼過程經(jīng)過解析與熵解碼、參數(shù)解碼和像素解碼三個(gè)步驟完成。本發(fā)明 還提供了一種視頻解碼裝置,包括解析與熵解碼器、參數(shù)解碼器、主解碼模塊, 分別用來完成解析與熵解碼、參數(shù)解碼和像素解碼三個(gè)步驟,以及第一緩沖器、 第二緩沖器和第三緩沖器用來存儲(chǔ)中間數(shù)據(jù)。在每個(gè)步驟內(nèi)的處理內(nèi)容具有相似 的運(yùn)算粒度和數(shù)據(jù)局部特性,從而有利于合理地分配資源,簡(jiǎn)化視頻解碼的內(nèi)部 接口。
圖1是本發(fā)明所提出的方法流程示意,;
圖2是本發(fā)明所提出的裝置結(jié)構(gòu)示意框圖3是本發(fā)明所提供的裝置實(shí)施例的總體示意框圖4是本發(fā)明所提供的實(shí)施例中主解碼模塊的示意框圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施例作詳細(xì)說明本實(shí)施例在以本發(fā)明技術(shù)方案 為前提下進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù) 范圍不限于下述的實(shí)施例。
本實(shí)施例基于H.264標(biāo)準(zhǔn)基準(zhǔn)規(guī)格(BASELINE PROFILE)。
本實(shí)施例是通過如下技術(shù)方案實(shí)現(xiàn)的。
如圖2所示,本實(shí)施例所提供的解碼裝置包括解析與熵解碼模塊、參數(shù)解 碼模塊、主解碼模塊、第一緩沖器、第二緩沖器和第三緩沖器。
所述解析與熵解碼模塊,對(duì)輸入的比特流進(jìn)行解析與熵解碼,得到各級(jí)語(yǔ)法 元素信息,并存入第一緩沖器。
所述參數(shù)解碼模塊,從第一緩沖器中獲得由解析與熵解碼模塊存入的語(yǔ)法元
素信息,計(jì)算出新的參數(shù)信息,并存入第二緩沖器。
所述主解碼模塊,從第一緩沖器中獲得由解析與熵解碼模塊存入的語(yǔ)法元素
信息,從第二緩沖器中獲得由參數(shù)解碼模塊存入的參數(shù)信息,計(jì)算出新的視頻圖
像信息,存入第三緩沖器并輸出。
所述第一緩沖器,負(fù)責(zé)存儲(chǔ)由解析與熵解碼模塊存入的語(yǔ)法元素信息。 所述第二緩沖器,負(fù)責(zé)存儲(chǔ)由參數(shù)解碼模塊存入的參數(shù)信息。 所述第三緩沖器,負(fù)責(zé)存儲(chǔ)主解碼模塊計(jì)算出的視頻圖像信息。 如圖3所示,是本實(shí)施例裝置的總體框圖,其中實(shí)線條箭頭是數(shù)據(jù)傳輸方向,
虛線條箭頭是控制傳輸方向。
所述解析與熵解碼模塊,包括嵌入式CPU (中央處理器)和熵解碼加速器,
所述的嵌入式CPU負(fù)責(zé)控制熵解碼加速器、參數(shù)解碼模塊和主解碼模塊的運(yùn)行,
在每一個(gè)片的初始化完成后,向熵解碼加速器、參數(shù)解碼模塊和主解碼模塊發(fā)出
啟動(dòng)信號(hào),在一個(gè)片的解碼完成后,嵌入式CPU接受熵解碼加速器、參數(shù)解碼 模塊和主解碼模塊的結(jié)束信號(hào);所述的熵解碼加速器,負(fù)責(zé)宏塊級(jí)別以及宏塊以 下級(jí)別的語(yǔ)法元素解析/熵解碼工作。所述的第一緩沖器,包括第一存儲(chǔ)器和同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器(SDRAM)中 用于解析和熵解碼的部分。
所述的第二緩沖器,包括片上第二存儲(chǔ)器和同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器中用于參數(shù) 解碼的部分。
所述第三緩沖器,包括同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器中用于存儲(chǔ)輸出圖像數(shù)據(jù)和參考 圖像數(shù)據(jù)的部分。
所述第一存儲(chǔ)器,負(fù)責(zé)存儲(chǔ)經(jīng)嵌入式CPU解碼的片的頭信息語(yǔ)法元素;所 述第一存儲(chǔ)器,還負(fù)責(zé)在熵解碼加速器進(jìn)行解析/熵解碼過程中臨時(shí)存儲(chǔ)從同步 動(dòng)態(tài)隨機(jī)存儲(chǔ)器中讀取的已解碼序列頭信息、圖像頭信息語(yǔ)法元素。
所述第二存儲(chǔ)器,負(fù)責(zé)在參數(shù)解碼模塊參數(shù)解碼過程中臨時(shí)存儲(chǔ)從同步動(dòng)態(tài)
隨機(jī)存儲(chǔ)器中讀取的宏塊以上級(jí)別語(yǔ)法元素;所述第二存儲(chǔ)器,還負(fù)責(zé)存儲(chǔ)參數(shù) 解碼的參數(shù)信息。
所述同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,負(fù)責(zé)存儲(chǔ)經(jīng)嵌入式CPU解碼的序列頭信息和圖
像頭信息輸出到同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器;所述同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,還負(fù)責(zé)存儲(chǔ)經(jīng) 熵解碼加速器解碼得到的宏塊級(jí)別以及宏塊以下級(jí)別的語(yǔ)法元素;所述同步動(dòng)態(tài) 隨機(jī)存儲(chǔ)器,還負(fù)責(zé)存儲(chǔ)由主解碼模塊解碼得到的視頻圖像信息。 本實(shí)施例的圖像通過顯示接口輸出到顯示設(shè)備。
所述的嵌入式CPU還負(fù)責(zé)宏塊以上級(jí)別語(yǔ)法元素的解析/熵解碼工作,嵌入 式CPU使用基于軟件的指數(shù)哥倫布解碼方法和定長(zhǎng)解碼方法,將輸入的視頻比 特流解碼成序列頭信息、圖像頭信息以及片的頭信息,所得到的序列頭信息和圖 像頭信息輸出到同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,所得到的片的頭信息輸出到片上第一存儲(chǔ) 器,嵌入式CPU的工作周期以片為單位,每次完成對(duì)一個(gè)片的宏塊以上級(jí)別語(yǔ) 法元素的解碼后,啟動(dòng)熵解碼加速器、參數(shù)解碼模塊和主解碼模塊,直到熵解碼 加速器、參數(shù)解碼模塊和主解碼模塊也完成對(duì)該片的處理,然后開始下一個(gè)片的 工作。
所述的熵解碼加速器,負(fù)責(zé)宏塊級(jí)別以及宏塊以下級(jí)別的語(yǔ)法元素解析/熵 解碼工作,熵解碼加速器在得到來自嵌入式CPU的啟動(dòng)信號(hào)后,分別從同步動(dòng) 態(tài)隨機(jī)存儲(chǔ)器中讀取對(duì)應(yīng)本片的己解碼序列頭信息、圖像頭信息語(yǔ)法元素并存儲(chǔ) 到第一存儲(chǔ)器中,第一存儲(chǔ)器已經(jīng)有片內(nèi)已解碼的片的頭信息語(yǔ)法元素,熵解碼 加速器根據(jù)第一存儲(chǔ)器中的所有已解碼語(yǔ)法元素,使用基于硬件的指數(shù)哥倫布和 上下文自適應(yīng)變長(zhǎng)解碼方法對(duì)輸入比特流進(jìn)行解析/熵解碼,并將解碼結(jié)果按順 序依次存儲(chǔ)到同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器中,并維護(hù)成語(yǔ)法元素先進(jìn)先出隊(duì)列的形式, 當(dāng)熵解碼加速器完成一個(gè)片的解碼后,發(fā)給嵌入式CPU—個(gè)結(jié)束信號(hào),并進(jìn)入 等待狀態(tài),直到嵌入式CPU下一次發(fā)送啟動(dòng)信號(hào)為止。
所述嵌入式CPU與熵解碼加速器,完成了本實(shí)施例中解碼方法的步驟一,
如圖1所示,即輸入已壓縮的視頻比特流,根據(jù)該比特流遵循的視頻壓縮標(biāo)準(zhǔn), 對(duì)其進(jìn)行解析與熵解碼,得到各級(jí)語(yǔ)法元素信息;
所述的語(yǔ)法元素信息,是指與比特流中的碼字對(duì)應(yīng)的,能夠通過變長(zhǎng)解碼和 基于上下文解碼等熵解碼方法得到的信息。在本實(shí)施例中,語(yǔ)法元素包括宏塊類 型(MB TYPE)、游程幅值信息(RUN-LEVEL)、運(yùn)動(dòng)矢量殘差(MVD)以及 參考索引(REF INDEX)等宏塊級(jí)別以及宏塊以下級(jí)別語(yǔ)法元素,還包括序列
頭信息(SEQUENCE HEADER)、圖像頭信息(PICTURE HEADER)以及片的 頭信息(SLICEHEADER)等宏塊以上級(jí)別語(yǔ)法元素。
所述的參數(shù)解碼模塊,負(fù)責(zé)將已解碼的語(yǔ)法元素轉(zhuǎn)換為參數(shù)信息,只要語(yǔ)法 元素先進(jìn)先出隊(duì)列中有數(shù)據(jù)可用,參數(shù)解碼模塊即開始工作,參數(shù)解碼模塊的工 作周期以片為單位,在每一個(gè)片開始時(shí),參數(shù)解碼模塊從同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器中 讀取與本片對(duì)應(yīng)的宏塊以上級(jí)別語(yǔ)法元素,并存儲(chǔ)到第二存儲(chǔ)器,參數(shù)解碼模塊 根據(jù)存儲(chǔ)在第二存儲(chǔ)器中的宏塊以上級(jí)語(yǔ)法元素,對(duì)依次獲取的宏塊級(jí)別以及宏 塊以下級(jí)別語(yǔ)法元素進(jìn)行參數(shù)解碼,其參數(shù)信息包括運(yùn)動(dòng)矢量(MV)、幀內(nèi)預(yù) 測(cè)模式(INTRAMODE)、邊界濾波強(qiáng)度(BS)和量化系數(shù)(QP),參數(shù)解碼的 參數(shù)信息被存入到第二存儲(chǔ)器。語(yǔ)法元素中游程幅值信息和參考索引無需參數(shù)解 碼即可直接被用作參數(shù),并被直接傳輸?shù)降诙鎯?chǔ)器中。
所述參數(shù)解碼模塊,完成了本實(shí)施例所提供的解碼方法的步驟二,如圖l所 示,S卩根據(jù)步驟一中所得到的語(yǔ)法元素信息進(jìn)行視頻參數(shù)解碼,得到新的參數(shù) 信息。從第二次循環(huán)開始,則使用步驟一中所得到的語(yǔ)法元素信息和前一次循環(huán) 執(zhí)行步驟二時(shí)所獲得的參數(shù)信息,進(jìn)行視頻參數(shù)解碼,得到新的參數(shù)信息。
所述的參數(shù)信息,是指直接以參數(shù)形式描述圖像,但并不直接與比特流中的 碼字相對(duì)應(yīng)的信息,它們由語(yǔ)法元素信息和已有的參數(shù)信息運(yùn)算得到。在本實(shí)施 例中,參數(shù)信息包括運(yùn)動(dòng)矢量、邊界濾波強(qiáng)度、量化系數(shù)以及幀內(nèi)預(yù)測(cè)模式。
如圖4所示,所述主解碼模塊包括以下子模塊逆量化子模塊、逆變換子模 塊、幀內(nèi)預(yù)測(cè)子模塊、參考像素獲取子模塊、分?jǐn)?shù)樣本插值子模塊、補(bǔ)償重構(gòu)子 模塊和環(huán)路濾波子模塊。圖中,實(shí)線條箭頭是參數(shù)信息傳輸方向,空心線條箭頭 是數(shù)據(jù)信息傳輸方向。
所述逆量化子模塊從第二存儲(chǔ)器中讀取宏塊類型、量化系數(shù)和游程幅值信 息,依據(jù)R264標(biāo)準(zhǔn)所規(guī)定的逆掃描、哈達(dá)馬變換和逆量化方法,以4x4塊為單 位,得到變換系數(shù)矩陣,并將該矩陣傳送到逆變換子模塊。
所述逆變換子模塊負(fù)責(zé)對(duì)得到的變換系數(shù)矩陣進(jìn)行4x4整數(shù)逆變換從而得 到殘差樣本矩陣,并將該矩陣傳送到補(bǔ)償重構(gòu)子模塊。
所述幀內(nèi)預(yù)測(cè)子模塊從第二存儲(chǔ)器中讀取宏塊類型和幀內(nèi)預(yù)測(cè)模式等,依據(jù)
從補(bǔ)償重構(gòu)模塊反饋的未經(jīng)環(huán)路濾波的參考樣本,進(jìn)行幀內(nèi)預(yù)測(cè)并將預(yù)測(cè)結(jié)果傳 送到補(bǔ)償重構(gòu)模塊。
所述參考像素獲取子模塊根據(jù)從第二存儲(chǔ)器中讀取的宏塊類型、參考索引和 運(yùn)動(dòng)矢量等,從同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器中讀取進(jìn)行相應(yīng)的分?jǐn)?shù)樣本插值所需要參考 的視頻圖像信息,并將結(jié)果和分?jǐn)?shù)樣本插值所需的參數(shù)信息傳送至分?jǐn)?shù)樣本插值 子模塊。所述分?jǐn)?shù)樣本插值所需要參考的視頻圖像信息,是指在當(dāng)前片之前的主 解碼模塊運(yùn)行過程中已解碼的視頻圖像信息。
所述分?jǐn)?shù)樣本插值子模塊依據(jù)所獲得的參數(shù)信息和參考像素進(jìn)行濾波插值, 并將結(jié)果傳送至補(bǔ)償重構(gòu)子模塊。
所述補(bǔ)償重構(gòu)子模塊以宏塊(MB)為工作周期,在每個(gè)宏塊開始時(shí),首先 從第二存儲(chǔ)器中讀取宏塊類型。如果當(dāng)前宏塊是I一PCM (幀內(nèi)型脈沖編碼調(diào)制) 類型,則從第二存儲(chǔ)器中依次讀取PCM (脈沖編碼調(diào)制)值,直接輸出到環(huán)路 濾波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子模塊;如果當(dāng)前宏塊是除了 I一PCM (幀內(nèi)型 脈沖編碼調(diào)制)以外的I (幀內(nèi))類型宏塊,則從逆變換子模塊獲取殘差樣本矩 陣,從幀內(nèi)預(yù)測(cè)子模塊獲取幀內(nèi)預(yù)測(cè)結(jié)果,然后將兩者進(jìn)行補(bǔ)償后輸出到環(huán)路濾 波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子模塊;如果當(dāng)前宏塊是P (單向預(yù)測(cè))類型或B (雙向預(yù)測(cè))類型宏塊,則從逆變換子模塊獲取差樣本矩陣,從分?jǐn)?shù)樣本插值子 模塊獲取插值結(jié)果,然后將兩者進(jìn)行補(bǔ)償后輸出到環(huán)路濾波子模塊,并反饋給幀 內(nèi)預(yù)測(cè)子模塊。
所述環(huán)路濾波子模塊在從同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器中讀取當(dāng)前片中已解碼的視 頻圖像信息,從補(bǔ)償重構(gòu)子模塊讀取當(dāng)前宏塊補(bǔ)償后的圖像樣本,根據(jù)從第二存 儲(chǔ)器中讀取的宏塊類型和邊界濾波強(qiáng)度參數(shù),進(jìn)行去塊效應(yīng)濾波,并將濾波結(jié)果 寫入同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器作為視頻圖像信息,并輸出圖像信息。
所述主解碼模塊,完成了本實(shí)施例所提供方法的步驟三,如圖1所示,艮P-根據(jù)步驟一中所得到的語(yǔ)法元素信息、步驟二中所得到的參數(shù)信息,進(jìn)行像素解 碼,得到還原后的視頻圖像信息并輸出;從第二次循環(huán)開始,則使用步驟一中得 到的語(yǔ)法元素信息和步驟二中所得到的參數(shù)信息進(jìn)行解碼和前一次執(zhí)行步驟三 時(shí)所獲得的視頻圖像信息,進(jìn)行像素解碼,得到還原后的新的視頻圖像信息并輸出。
本實(shí)施例所提供方法的步驟四是,循環(huán)步驟一到步驟三,直到解碼完成所有 的輸入比特流。
本實(shí)施例裝置的總體工作過程如下輸入的視頻比特流首先在嵌入式CPU 中進(jìn)行宏塊以上級(jí)別語(yǔ)法元素的解析/熵解碼工作,所得到的序列頭信息和圖像 頭信息輸出到同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器,所得到的片的頭信息輸出到片上第一存儲(chǔ) 器,嵌入式CPU的工作周期以片為單位,每次完成對(duì)一個(gè)片的宏塊以上級(jí)別語(yǔ) 法元素的解碼后,啟動(dòng)熵解碼加速器、參數(shù)解碼模塊和主解碼模塊。熵解碼加速 器在得到來自嵌入式CPU的啟動(dòng)信號(hào)后,進(jìn)行宏塊級(jí)別以及宏塊以下級(jí)別的語(yǔ) 法元素解析/熵解碼工作,并將解碼結(jié)果按順序依次存儲(chǔ)到同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器 中,并維護(hù)成語(yǔ)法元素先進(jìn)先出隊(duì)列的形式,當(dāng)熵解碼加速器完成一個(gè)片的解碼 后,發(fā)給嵌入式CPU—個(gè)結(jié)束信號(hào);所述的參數(shù)解碼模塊,在得到來自CPU的 啟動(dòng)信號(hào)并檢測(cè)到語(yǔ)法元素先進(jìn)先出隊(duì)列中有可用數(shù)據(jù)后,就通過參數(shù)解碼,將 隊(duì)列中的語(yǔ)法元素轉(zhuǎn)換為參數(shù)信息,并存入第二存儲(chǔ)器中,當(dāng)參數(shù)解碼模塊完成 一個(gè)片的解碼后,發(fā)給嵌入式CPU—個(gè)結(jié)束信號(hào);所述的主解碼模塊,在得到 來自CPU的啟動(dòng)信號(hào)并檢測(cè)到第二存儲(chǔ)器中有可用數(shù)據(jù)后,就通過像素解碼, 計(jì)算得到當(dāng)前片的圖像信息,當(dāng)主解碼模塊完成一個(gè)片的解碼后,發(fā)給嵌入式 CPU —個(gè)結(jié)束信號(hào),主解碼模塊解碼所得的圖像信息存入同步動(dòng)態(tài)存儲(chǔ)器供顯 示接口輸出顯示。
本實(shí)施例在FPGA (現(xiàn)場(chǎng)可編程門陣列)上實(shí)現(xiàn),具體芯片型號(hào)為XILINX VIRTEX-4;嵌入式CPU采用了 IBM (國(guó)際商用機(jī)器公司)的PowerPC 405處理 器;同步動(dòng)態(tài)存儲(chǔ)器(SDRAM)采用了二代雙倍速率(DDR-2)芯片。嵌入式 CPU的工作頻率為200兆赫茲(MHZ), FPGA和SDRAM的工作頻率為50兆
赫茲o
本實(shí)施例在每個(gè)步驟內(nèi)的處理內(nèi)容具有相似的運(yùn)算粒度和數(shù)據(jù)局部特性,從 而有利于合理地分配資源,簡(jiǎn)化視頻解碼的內(nèi)部接口,通過本實(shí)施例裝置解碼出
符合H.264 HIGH PROFILE (高端規(guī)范)的標(biāo)清尺寸(720x576像素)視頻,幀 率為每秒30幀。
權(quán)利要求
1.一種視頻解碼方法,其特征在于,包括以下步驟步驟一,輸入已壓縮的視頻比特流,根據(jù)該比特流遵循的視頻壓縮標(biāo)準(zhǔn),對(duì)其進(jìn)行解析與熵解碼,得到各級(jí)語(yǔ)法元素信息;步驟二,根據(jù)步驟一中所得到的語(yǔ)法元素信息進(jìn)行視頻參數(shù)解碼,得到新的參數(shù)信息,從第二次循環(huán)開始,則使用步驟一中所得到的語(yǔ)法元素信息和前一次循環(huán)執(zhí)行步驟二時(shí)所獲得的參數(shù)信息進(jìn)行視頻參數(shù)解碼,得到新的參數(shù)信息;步驟三,根據(jù)步驟一中所得到的語(yǔ)法元素信息、步驟二中所得到的參數(shù)信息,進(jìn)行像素解碼,得到還原后的視頻圖像信息并輸出,從第二次循環(huán)開始,則使用步驟一中得到的語(yǔ)法元素信息、步驟二中所得到的參數(shù)信息和前一次執(zhí)行步驟三時(shí)所獲得的視頻圖像信息進(jìn)行像素解碼,得到還原后的新的視頻圖像信息并輸出;步驟四,循環(huán)以上步驟一到步驟三,直到解碼完成所有的輸入比特流。
2. 根據(jù)權(quán)利要求1所述的視頻解碼方法,其特征是,步驟一中,所述的語(yǔ) 法元素信息,是指與比特流中的碼字對(duì)應(yīng)的,能夠通過變長(zhǎng)解碼和基于上下文解 碼熵解碼方法得到的信息。
3. 根據(jù)權(quán)利要求1所述的視頻解碼方法,其特征是,步驟二中,所述的參 數(shù)信息,是指直接以參數(shù)形式描述圖像,但并不直接與比特流中的碼字相對(duì)應(yīng)的 信息,它們由語(yǔ)法元素信息和已有的參數(shù)信息運(yùn)算得到。
4. 一種視頻解碼裝置,其特征在于,包括解析與熵解碼模塊、參數(shù)解碼 模塊、主解碼模塊、第一緩沖器、第二緩沖器和第三緩沖器,所述解析與熵解碼模塊,對(duì)輸入的比特流進(jìn)行解析與熵解碼,得到各級(jí)語(yǔ)法 元素信息,并存入第一緩沖器;所述參數(shù)解碼模塊,從第一緩沖器中獲得由解析與熵解碼模塊存入的語(yǔ)法元 素信息,計(jì)算出新的參數(shù)信息,并存入第二緩沖器;所述主解碼模塊,從第一緩沖器中獲得由解析與熵解碼模塊存入的語(yǔ)法元素 信息,從第二緩沖器中獲得由參數(shù)解碼模塊存入的參數(shù)信息,計(jì)算出新的視頻圖 像信息,存入第三緩沖器并輸出。
5. 根據(jù)權(quán)利要求4所述的視頻解碼裝置,其特征是,所述解析與熵解碼模 塊,包括嵌入式CPU和熵解碼加速器,所述嵌入式CPU負(fù)責(zé)控制熵解碼加速器、 參數(shù)解碼模塊和主解碼模塊的運(yùn)行,在每一個(gè)片的初始化完成后,向熵解碼加速 器、參數(shù)解碼模塊和主解碼模塊發(fā)出啟動(dòng)信號(hào),在一個(gè)片的解碼完成后,嵌入式 CPU接受熵解碼加速器、參數(shù)解碼模塊和主解碼模塊的結(jié)束信號(hào);所述的熵解碼加速器,負(fù)責(zé)宏塊級(jí)別以及宏塊以下級(jí)別的語(yǔ)法元素解析/熵解碼工作。
6. 根據(jù)權(quán)利要求4或5所述的視頻解碼裝置,其特征是,所述的嵌入式CPU 還負(fù)責(zé)宏塊以上級(jí)別語(yǔ)法元素的解析/熵解碼工作,嵌入式CPU使用基于軟件的 指數(shù)哥倫布解碼方法和定長(zhǎng)解碼方法,將輸入的視頻比特流解碼成序列頭信息、 圖像頭信息以及片的頭信息,所得到的序列頭信息、圖像頭信息、片的頭信息輸 出到片上第一緩沖器,嵌入式CPU的工作周期以片為單位,每次完成對(duì)一個(gè)片 的宏塊以上級(jí)別語(yǔ)法元素的解碼后,啟動(dòng)熵解碼加速器,直到熵解碼加速器也完 成對(duì)該片的處理,然后開始下一個(gè)片的工作。
7. 根據(jù)權(quán)利要求4或5所述的視頻解碼裝置,其特征是,所述熵解碼加速 器,在得到來自嵌入式CPU的啟動(dòng)信號(hào)后,分別從第一緩沖器中讀取對(duì)應(yīng)本片 的已解碼序列頭信息、圖像頭信息語(yǔ)法元素并存儲(chǔ)到第一緩沖器中,第一緩沖器 已經(jīng)有片內(nèi)已解碼的片的頭信息語(yǔ)法元素,熵解碼加速器根據(jù)第一緩沖器中的所 有己解碼語(yǔ)法元素,使用基于硬件的指數(shù)哥倫布和上下文自適應(yīng)變長(zhǎng)解碼方法對(duì) 輸入比特流進(jìn)行解析/熵解碼,并將解碼,結(jié)果按順序依次存儲(chǔ)到第一緩沖器中, 并維護(hù)成語(yǔ)法元素先進(jìn)先出隊(duì)列的形式,當(dāng)熵解碼加速器完成一個(gè)片的解碼后, 發(fā)給嵌入式CPU—個(gè)結(jié)束信號(hào),并進(jìn)入等待狀態(tài),直到嵌入式CPU下一次發(fā)送 啟動(dòng)信號(hào)為止。
8. 根據(jù)權(quán)利要求4或5所述的視頻解碼裝置,其特征是,所述的參數(shù)解碼 模塊,負(fù)責(zé)將已解碼的語(yǔ)法元素轉(zhuǎn)舉為參數(shù)信息,只要語(yǔ)法元素中有數(shù)據(jù)可用, 參數(shù)解碼模塊即開始工作,參數(shù)解碼模塊的工作周期以片為單位,在每一個(gè)片開 始時(shí),參數(shù)解碼模塊從第一緩沖器中讀取與本片對(duì)應(yīng)的宏塊以上級(jí)別語(yǔ)法元素, 并存儲(chǔ)到第二緩沖器,參數(shù)解碼模塊根據(jù)存儲(chǔ)在第二緩沖器中的宏塊以上級(jí)語(yǔ)法元素,對(duì)宏塊級(jí)別以及宏塊以下級(jí)別語(yǔ)法元素進(jìn)行參數(shù)解碼,其結(jié)果包括運(yùn)動(dòng) 矢量、幀內(nèi)預(yù)測(cè)模式、邊界濾波強(qiáng)度和量化系數(shù),參數(shù)解碼的結(jié)果被存入到第二 緩沖器,語(yǔ)法元素中游程幅值信息和參考索引無需參數(shù)解碼能直接被用作參數(shù), 這類語(yǔ)法元素被直接傳輸?shù)降诙彌_器中。
9.根據(jù)權(quán)利要求4或5所述的視頻解碼裝置,其特征是,所述主解碼模塊 包括以下子模塊逆量化子模塊、逆變換子模塊、幀內(nèi)預(yù)測(cè)子模塊、參考像素獲 取子模塊、分?jǐn)?shù)樣本插值子模塊、補(bǔ)償重構(gòu)子模塊和環(huán)路濾波子模塊,所述逆量化子模塊從第二緩沖器中讀取宏塊類型、量化系數(shù)和游程幅值信 息,依據(jù)逆掃描、哈達(dá)馬變換和逆量化方法,以4x4塊為單位,得到變換系數(shù)矩 陣,并將該矩陣傳送到逆變換子模塊;所述逆變換子模塊負(fù)責(zé)對(duì)得到的變換系數(shù)矩陣進(jìn)行4x4整數(shù)逆變換從而得 到殘差樣本矩陣,并將該矩陣傳送到補(bǔ)償重構(gòu)子模塊;所述幀內(nèi)預(yù)測(cè)子模塊從第二緩沖器中讀取宏塊類型和幀內(nèi)預(yù)測(cè)模式,依據(jù)從補(bǔ)償重構(gòu)模塊反饋的未經(jīng)環(huán)路濾波的參考樣本,進(jìn)行幀內(nèi)預(yù)測(cè)并將預(yù)測(cè)結(jié)果傳送 到補(bǔ)償重構(gòu)模塊;所述參考像素獲取子模塊根據(jù)從第二緩沖器中讀取的宏塊類型、參考索引和 運(yùn)動(dòng)矢量,從第三緩沖器中讀取進(jìn)行相應(yīng)的分?jǐn)?shù)樣本插值所需要參考的視頻圖像 信息,并將結(jié)果和分?jǐn)?shù)樣本插值所需的參數(shù)信息傳送至分?jǐn)?shù)樣本插值子模塊,所 述分?jǐn)?shù)樣本插值所需要參考的視頻圖像信息,是指此前主解碼模塊運(yùn)行過程中已 解碼的視頻圖像信息;所述分?jǐn)?shù)樣本插值子模塊依據(jù)所獲得的參數(shù)信息和參考像素進(jìn)行濾波插值, 并將結(jié)果傳送至補(bǔ)償重構(gòu)子模塊;所述補(bǔ)償重構(gòu)子模塊,以宏塊為工作周期,在每個(gè)宏塊開始時(shí),首先從第二 緩沖器中讀取宏塊類型,根據(jù)宏塊類型,執(zhí)行不同的操作,并將操作結(jié)果反饋給 幀內(nèi)預(yù)測(cè)子模塊;所述環(huán)路濾波子模塊從第三緩沖器中讀取當(dāng)前片中的已解碼圖像信息,從補(bǔ) 償重構(gòu)子模塊讀取當(dāng)前宏塊補(bǔ)償后的圖像樣本,根據(jù)從第二緩沖器中讀取的宏塊 類型和邊界濾波強(qiáng)度參數(shù),進(jìn)行去塊效應(yīng)濾波,并將濾波結(jié)果寫入第三緩沖器作 為視頻圖像信息,并輸出圖像信息。
10、根據(jù)權(quán)利要求9所述的視頻解碼裝置,其特征是,所述補(bǔ)償重構(gòu)子模塊,如果當(dāng)前宏塊是幀內(nèi)型脈沖編碼調(diào)制類型,則從第二緩沖器中依次讀取脈沖編碼調(diào)制值,直接輸出到環(huán)路濾波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子模塊;如果當(dāng)前宏塊 是除了幀內(nèi)型脈沖編碼調(diào)制以外的幀內(nèi)類型宏塊,則從逆變換子模塊獲取殘差樣 本矩陣,從幀內(nèi)預(yù)測(cè)子模塊獲取幀內(nèi)預(yù)測(cè)結(jié)果,然后將兩者進(jìn)行補(bǔ)償后輸出到環(huán) 路濾波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子模塊;如果當(dāng)前宏塊是單向預(yù)測(cè)類型或雙向 預(yù)測(cè)類型宏塊,則從逆變換子模塊獲取差樣本矩陣,從分?jǐn)?shù)樣本插值子模塊獲取 插值結(jié)果,然后將兩者進(jìn)行補(bǔ)償后輸出到環(huán)路濾波子模塊,并反饋給幀內(nèi)預(yù)測(cè)子 模塊。
全文摘要
一種多媒體數(shù)字信號(hào)處理技術(shù)領(lǐng)域的視頻解碼方法和解碼裝置,本發(fā)明的方法將視頻解碼過程分為解析與熵解碼、參數(shù)解碼和像素解碼三個(gè)步驟完成;本發(fā)明的視頻解碼裝置,包括解析與熵解碼模塊、參數(shù)解碼模塊和主解碼模塊分別用來完成解析與熵解碼、參數(shù)解碼和像素解碼三個(gè)步驟,以及第一緩沖器、第二緩沖器和第三緩沖器用來緩存語(yǔ)法元素、參數(shù)信息、視頻圖像信息。本發(fā)明在每個(gè)步驟內(nèi)的處理內(nèi)容具有相似的運(yùn)算粒度和數(shù)據(jù)局部特性,從而有利于合理地分配資源,簡(jiǎn)化視頻解碼的內(nèi)部接口,提高視頻解碼的效率。
文檔編號(hào)H04N7/32GK101115201SQ20071004545
公開日2008年1月30日 申請(qǐng)日期2007年8月30日 優(yōu)先權(quán)日2007年8月30日
發(fā)明者劉佩林, 周大江 申請(qǐng)人:上海交通大學(xué)