專利名稱:用于h.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及H.264視頻標準解碼系統(tǒng)領(lǐng)域,尤其是一種對于H.264解碼系統(tǒng)中, 在幀間預(yù)測部分的參考圖像管理方法。
背景技術(shù):
目前,H.264視頻壓縮標準由于其優(yōu)良性能,已經(jīng)成為諸多視頻應(yīng)用領(lǐng)域的主流 標準。然而,其高效的壓縮策略給解碼系統(tǒng)的實現(xiàn)也帶來了一定的難度,尤其在實時應(yīng) 用領(lǐng)域,對解碼系統(tǒng)提出了更高的要求。由于H.264支持多達16個參考圖像,多個參考圖像的管理具有一定的復(fù)雜性, 這造成了基于參考圖像管理機制的運動矢量生成過程和運動補償過程成為了解碼系統(tǒng)中 最復(fù)雜和最耗時的兩個環(huán)節(jié)。運動矢量生成過程為當前解碼分割塊得到指向其參考像素 塊的運動矢量,其中這個參考像素塊位于16個參考圖像之一。在運動補償過程中,根據(jù) 產(chǎn)生的運動矢量和參考圖像索引,從參考圖像中讀取出正確的參考像素以產(chǎn)生當前塊的 像素值。圖1所示是傳統(tǒng)的定位參考像素塊的方法。當前解碼圖像首先被保存進當前圖 像緩存區(qū)。解碼完畢之后,它被轉(zhuǎn)移到解碼圖像緩存中以便后面的幀間運動補償過程使 用。一個包含16個條目的DPB_RP結(jié)構(gòu)用來登記DPB的使用狀態(tài)。在新一幅圖像解 碼開始前,通過對當前DPB的圖像進行參考圖像初始化和重排序過程產(chǎn)生參考圖像列表
(reference picture list,簡稱RefPicList)以便當前圖像的幀間預(yù)測過程使用。參考圖像的 定位是通過refidx來得到的。在傳統(tǒng)的方法里,refidx首先被映射到指向登記在DPB_RP 結(jié)構(gòu)里索引值(簡稱rpidx),然后rpidx再被映射到dpbidx。至此,參考圖像被定位。 具體的參考像素塊的位置通過當前解碼像素塊的運動矢量值進一步定位。很明顯,只是 一個兩步映射的策略。并且在解碼圖像的存儲過程中包含一步耗時耗能的整幅圖像搬移 過程。幀間預(yù)測過程基于大小從16x16到4x4分布的樹形宏塊分割塊結(jié)構(gòu),其運動矢量 生成過程包含空間相關(guān)預(yù)測和直接預(yù)測兩種模式,其中直接預(yù)測模式又包含空間直接預(yù) 測和時間直接預(yù)測兩種模式。時間直接預(yù)測模式的復(fù)雜度最高,在碼流中不包含任何運 動矢量相關(guān)的數(shù)據(jù),其運動矢量(包括前向和后向)的得到是通過當前解碼分割塊和存 在于后向參考圖像里的共享參考塊的時間關(guān)系計算得出。其具體過程如下所述
步驟一得到共享塊的運動信息。共享參考圖像位于后向參考中。對于只支持幀或場的圖像組的簡單情形,當前 解碼塊在當前解碼圖像中的位置就是共享塊在共享參考圖像中的位置。對于支持宏塊級 幀場自適應(yīng)和圖像級幀場自適應(yīng)的視頻流,共享塊位置的得到變得復(fù)雜起來,根據(jù)當前 解碼圖像的編碼結(jié)構(gòu)和共享參考圖像的編碼結(jié)構(gòu)可以分成三種情形單對單,幀對場, 場對幀。然后共享參考塊的運動信息(包括共享運動矢量,簡稱mvCol,和共享圖像參考索引,簡稱refidxCol)就很容易得到了。步驟二 得到當前解碼塊的參考圖像索引
后向圖像參考索引(簡稱refidxLl)指向后向參考圖像列表中的第一個索引。前向 的參考圖像索引(簡稱refidxLO)通過映射共享參考塊的refidx來得到。由于共享參考塊 的解碼參考圖像在共享參考塊解碼時的參考圖像列表中的索引值不同與在當前參考圖像 列表中的索引值,因此兩個不同圖像參考列表需要建立一種映射關(guān)系。如前所述,這種映射關(guān)系分為三類單對單,幀對場,場對幀,如圖像2所 示。圖2 (a)表示了單對單的映射關(guān)系,這時共享參考塊和當前解碼塊屬于同一種解 碼結(jié)構(gòu)。圖2 (b)表示了幀對場的映射關(guān)系,這時共享參考塊被解碼為幀塊,當前分 割塊被解碼為場塊。場對幀的映射關(guān)系與幀對場的映射關(guān)系相反,如圖2 (c)所示。傳統(tǒng)的映射機制是對于上述每一種映射關(guān)系都要進行從refidxCol到dpbidx的 映射,然后再映射到refidxLO的過程。如前所述,每一次的refidx到dpbidx的映射或者 從dpbidx到refidx的映射都要經(jīng)過2個步驟。所以,從refidxCol到dpbidx的映射過程 包含4個步驟。效率無疑是很低的。另外,在這種傳統(tǒng)的映射機制下,4個映射表 refidx-rpidx, rpidx-refidx, rpidx-dpbidx, dpbidx-rpidx 對于每一幅解碼圖像者β要進行保存 了,這無疑增加不少硬件開銷。步驟三得到當前解碼塊的運動矢量
當前解碼塊的運動矢量(包括兩個方向)是通過對mvCol值進行比例劃分得到的。 比例劃分因子通過參考圖像和當前解碼圖像的圖像序號(picture order count,簡稱POC) 進行計算得到。
發(fā)明內(nèi)容
為了克服已有H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的效率較低、硬件開銷和功 耗較大、整體性能較低的不足,本發(fā)明提供一種大大提高效率、有效節(jié)省硬件開銷和功 耗、提升整體性能的用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是
一種用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方法,對解碼圖像緩存 (decoded picture buffer,簡稱DPB)中的參考圖像進行初始化和重排序操作,并建立參考 圖像索引(reference index,簡稱refidx)和參考圖像在解碼圖像緩存的索引值(dpb index, 簡稱dpbidx)的直接映射關(guān)系,在解碼過程開始時,解碼圖像緩存中的第一個索引被分 配給第一幅解碼的圖像,然后索引1-16依次分配給后續(xù)的解碼圖像;當解碼第17幅圖像 時,這幅圖像被存儲進解碼圖像緩存的第17個索引,然后對解碼圖像緩存中的參考圖像 進行標記操作,從解碼圖像緩存中排出一幅圖像;空出來的解碼圖像緩存位置留作存儲 下一幅待解碼圖像;后續(xù)的解碼過程,每一幅新解碼的圖像都被存入由上次圖像標記過 程排出的圖像的位置。進一步,所述幀間預(yù)測過程采用直接預(yù)測模式,建立共享參考塊的解碼圖像緩 存索引值(簡稱為dpbidxCol)和當前分割塊的解碼圖像緩存索引值的直接關(guān)系,將解碼 圖像緩存索 引值和共享運動矢量進行統(tǒng)一存儲;采用共享參考塊的解碼圖像緩存索引, 在解碼共享參考塊時,存儲解碼圖像緩存的索引信息到存儲器中,解碼當前分割塊時,根據(jù)共享分割塊位置從存儲器中直接讀取相應(yīng)的解碼圖像緩存索引信息進行調(diào)整,每個 分割塊的存取操作縮減為一次,得到當前解碼分割塊的參考圖像在解碼圖像緩存中的索 引。再進一步,在視頻源具有圖像級或宏塊級幀場自適應(yīng)的情況下,共享參考塊所 依賴的參考塊位于頂場,底場還是幀中在解碼圖像緩存索引中進行標記;同時,共享參 考塊是采用幀內(nèi)預(yù)測還是幀間預(yù)測也需要在解碼圖像緩存索引標記,解碼圖像緩存索引 采用7比特來標記所有的內(nèi)容。更進一步,在對解碼圖像緩存的索引信息進行存儲時,將所需的7比特縮減為 6比特的標記調(diào)整方式,所需的標記包括對參考索引號的標記,對頂場、底場和幀的標 記,以及對幀內(nèi)預(yù)測和幀間預(yù)測的標記。本發(fā)明的技術(shù)構(gòu)思為通過在參考圖像管理過程中采用兩種有效的調(diào)度策略提 高以下兩個過程的效率和節(jié)省其帶來的硬件開銷和功耗
A.運動補償中參考像素定位過程
B、直接預(yù)測模式中共享參考塊解碼時的參考圖像列表和當前參考圖像列表的關(guān)系映 射過程
首先通過建立refidx和dpbidx的直接映射關(guān)系的策略提高了運動補償過程參考像素定 位的效率。該策略的特征在于
1、在對DPB中的參考圖像進行初始化和重排序操作之后建立起refidx與dpbidx的直 接映射關(guān)系,代替?zhèn)鹘y(tǒng)的refidx-rpidx-dpbidx的兩層映射。2、將DPB的條目增加到17個,取消了傳統(tǒng)的從當前圖像緩存中整體搬移圖像 都DPB中的這個耗時耗能過程,改為解碼圖像直接被存儲進DPB,然后再進行圖像標記。其次,本發(fā)明通過在直接預(yù)測中用共享參考塊的解碼圖像緩存索引代替 refidxCol的策略簡化了不同參考列表的關(guān)系映射過程。傳統(tǒng)的從refidxCol到refidxLO的映射過程包含了 4個步驟。而當前解碼分割塊 通過refidx定位參考像素時,refidx需要重新映射回dpbidx。所以,在直接預(yù)測過程中為 了定位當前分割塊的參考像素,傳統(tǒng)方法需要6次映射過程。而根據(jù)直接預(yù)測的特征, dpbidxCol和當前分割塊的dpbidx肯定是指向DPB中的同一個索引,所以用dpbidxCol代
替refidxCol的策略將會建立從共享參考塊的參考像素位置到當前分割塊的參考像素位置 的直接映射。具體步驟包括
1、在解碼共享參考塊時存儲dpbidx信息到存儲器中,不同傳統(tǒng)的存儲refidx信息的 方法。2、解碼當前分割塊時,根據(jù)共享分割塊位置從存儲器中直接讀取相應(yīng)的 dpbidxCol信息,根據(jù)共享參考塊的映射方式對dpbidxCol進行適當調(diào)整就可直接得到當 前解碼分割塊的參考圖像在DPB中的索引。 本發(fā)明的有益效果主要表現(xiàn)在
1、將傳統(tǒng)的兩步參考像素定位過程縮減為一步,提高了系統(tǒng)性能的同時,減少了映 射表的存儲和讀取操作??紤]到存儲器的存取操作占用了較大比例的系統(tǒng)功耗,本發(fā)明 在減小系統(tǒng)功耗和硬件 開銷方面都具有較大的作用。
2、將直接預(yù)測模式中參考圖像定位的六步映射過程縮減為一步,大大縮減了直 接預(yù)測模式的硬件設(shè)計復(fù)雜度,減小了硬件開銷,提高了系統(tǒng)性能。3、避免了解碼圖像從當前解碼圖像緩存區(qū)到DPB的整幀搬移過程,這大大提高 了系統(tǒng)的顯示效率,同時避免了大量的存儲器存取操作。4、本發(fā)明對于傳統(tǒng)的refidx-rpidx和rpidx-dpbidx的映射關(guān)系的簡化縮減了 RISC
的工作負載,大大提高了 RISC工作效率。5、對于片上存儲器的硬件開銷方面,傳統(tǒng)的方法需要存儲refidx-rpidx和 rpidx-dpbidx兩個映射表,需要1728比特的存儲單元。本發(fā)明提出的參考像素的直接定 位過程只需要864比特的存儲單元,減小了 50%的存儲單元的消耗。
圖1為傳統(tǒng)的定位參考像素塊的方法的示意圖; 圖2為不同圖像參考列表三種映射關(guān)系的示意圖; 圖3為refidx和dpbidx的直接映射示意圖4為直接映射的具體系統(tǒng)實現(xiàn)的結(jié)構(gòu)圖5為將解碼圖像保存進DPB的存儲-標記過程的示意圖6為根據(jù)共享參考塊位置的映射方式對dpbidxCol進行調(diào)整策略的示意圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明作進一步描述。參照圖3 圖6,一種用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管 理方法,對解碼圖像緩存中的參考圖像進行初始化和重排序操作,并建立參考圖像索引 和參考圖像在解碼圖像緩存的索引值的直接映射關(guān)系,在解碼過程開始時,解碼圖像緩 存中的第一個索引被分配給第一幅解碼的圖像,然后索引1-16依次分配給后續(xù)的解碼圖 像;當解碼第17幅圖像時,這幅圖像被存儲進解碼圖像緩存的第17個索引,然后對解碼 圖像緩存中的參考圖像進行標記操作,從解碼圖像緩存中排出一幅圖像;空出來的解碼 圖像緩存位置留作存儲下一幅待解碼圖像;后續(xù)的解碼過程,每一幅新解碼的圖像都被 存入由上次圖像標記過程排出的圖像的位置。所述幀間預(yù)測過程采用直接預(yù)測模式,建立共享參考塊的解碼圖像緩存索引值 和當前分割塊的解碼圖像緩存索引值的直接關(guān)系,將解碼圖像緩存索引值和共享運動矢 量進行統(tǒng)一存儲;采用共享參考塊的解碼圖像緩存索引,在解碼共享參考塊時,存儲 解碼圖像緩存的索引信息到存儲器中,解碼當前分割塊時,根據(jù)共享分割塊位置從存儲 器中直接讀取相應(yīng)的解碼圖像緩存索引信息進行調(diào)整,每個分割塊的存取操作縮減為一 次,得到當前解碼分割塊的參考圖像在解碼圖像緩存中的索引。在視頻源具有圖像級或宏塊級幀場自適應(yīng)的情況下,共享參考塊所依賴的參考 塊位于頂場,底場還是幀中在解碼圖像緩存索引中進行標記;同時,共享參考塊是采用 幀內(nèi)預(yù)測還是幀間預(yù)測也 需要在解碼圖像緩存索引標記,解碼圖像緩存索引采用7比特 來標記所有的內(nèi)容。在對解碼圖像緩存的索引信息進行存儲時,將所需的7比特縮減為6比特的標記調(diào)整方式,所需的標記包括對參考索引號的標記,對頂場、底場和幀的標記,以及對幀 內(nèi)預(yù)測和幀間預(yù)測的標記。圖3所示為refidx和dpbidx的直接映射示意圖。不同于圖1所示的傳統(tǒng)方法, DPB_RP結(jié)構(gòu)在本發(fā)明中被省略。本發(fā)明中,這種直接映射關(guān)系通過CPU建立,DPB_RP 結(jié)構(gòu)硬件不可見。具體實現(xiàn)如圖4所示,一個通常的網(wǎng)絡(luò)抽象層單元(network abstraction unit,簡稱為NALU)包含一個序列參數(shù)集(sequence parameter set,簡稱為SPS),一 個圖像參數(shù)集(picture parameter set,簡稱為PPS)和編碼的各條帶(slice)。PPS,SPS 和NALU的頭信息由CPU主系統(tǒng)進行解碼處理,同時CPU對DPB中的參考圖像進行初 始化和 重排序操作。然后CPU將存儲序列參數(shù)信息,圖像參數(shù)信息,條帶參數(shù)信息以及 生成的refidx-dpbidx, dpbidx-refidx兩個映射表寫進特定的寄存器或者存儲器,以便后續(xù) 的硬件加速器解碼工作時進行讀取使用。然后CPU配置并啟動硬件解碼器進行條帶數(shù)據(jù) 的解碼。當一個NALU的條帶數(shù)據(jù)解碼完畢,硬件解碼器產(chǎn)生一個中斷給CPU用來請求 解碼下一個NALU的條帶數(shù)據(jù)。同時,傳統(tǒng)的解碼-轉(zhuǎn)移-標記過程被存儲-標記過程所代替。具體步驟是如圖 5所示。在解碼過程開始時,第DPB中的第一個索引被分配給第一幅解碼的圖像。然后 索引1-16依次分配給后續(xù)的解碼圖像。當解碼第17幅圖像時,這幅圖像被存儲進DPB 的第17個索引,然后對DPB中的參考圖像進行標記操作,從DPB中排出一幅圖像。空 出來的DPB位置留作存儲下一幅待解碼圖像。后續(xù)的解碼過程,每一幅新解碼的圖像都 被存入由上次圖像標記過程排出的圖像的位置。其次,本發(fā)明在直接預(yù)測模式中建立共享參考塊的dpbidxCol和當前分割塊的 dpbidx的直接關(guān)系時,將dpbidxCol和mvCol進行統(tǒng)一存儲。在視頻源具有圖像級或 宏塊級幀場自適應(yīng)的情況下,共享參考塊所依賴的參考塊位于頂場,底場還是幀中需要 在dpbidxCol中進行標記。同時,共享參考塊是采用幀內(nèi)預(yù)測還是幀間預(yù)測也需要在 dpbidxCol標記。由于DPB中有17個條目,所以,dpbidxCol需要7比特來標記所有的 內(nèi)容。而在支持4.1級別的視頻流里,mvCol的水平和垂直運動范圍分別需要14比特和 12比特來標記,所以每一個分割塊需要存儲33比特。這對于字長度存取的操作來說,每 一個分割塊需要2次存取操作。本發(fā)明對dpbidxCol的標記方式進行了調(diào)整,通過6比特 來標記上述所有信息,從而將每個分割塊的存取操作縮減為一次。如表1所示,本發(fā)明 針對三種不同情形對dpbidxCol的標記方式進行了比特縮減的調(diào)整。1. dpbidxCol比共享圖像在DPB中存儲的索引值(簡稱為dpbidxCurr)小的情 形下。2. dpbidxCol與共享圖像在DPB中存儲的索引值相同的情形下,這意味著共享 塊將其對立場的某個分割塊作為其參考塊。3. dpbidxCol比共享圖像在DPB中存儲的索引值大的情形下。表1為對dpbidxCol標記方式的調(diào)整方式
權(quán)利要求
1.一種用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方法,其特征在于 對解碼圖像緩存中的參考圖像進行初始化和重排序操作,并建立參考圖像索引和參考圖 像在解碼圖像緩存的索引值的直接映射關(guān)系,在解碼過程開始時,解碼圖像緩存中的第 一個索引被分配給第一幅解碼的圖像,然后索引1-16依次分配給后續(xù)的解碼圖像;當解 碼第17幅圖像時,這幅圖像被存儲進解碼圖像緩存的第17個索引,然后對解碼圖像緩存 中的參考圖像進行標記操作,從解碼圖像緩存中排出一幅圖像;空出來的解碼圖像緩存 位置留作存儲下一幅待解碼圖像;后續(xù)的解碼過程,每一幅新解碼的圖像都被存入由上 次圖像標記過程排出的圖像的位置。
2.如權(quán)利要求1所述的用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方 法,其特征在于所述幀間預(yù)測過程采用直接預(yù)測模式,建立共享參考塊的解碼圖像緩 存索引值和當前分割塊的解碼圖像緩存索引值的直接關(guān)系,將解碼圖像緩存索引值和共 享運動矢量進行統(tǒng)一存儲;采用共享參考塊的解碼圖像緩存索引,在解碼共享參考塊 時,存儲解碼圖像緩存的索引信息到存儲器中,解碼當前分割塊時,根據(jù)共享分割塊位 置從存儲器中直接讀取相應(yīng)的解碼圖像緩存索引信息進行調(diào)整,每個分割塊的存取操作 縮減為一次,得到當前解碼分割塊的參考圖像在解碼圖像緩存中的索引。
3.如權(quán)利要求2所述的用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方 法,其特征在于在視頻源具有圖像級或宏塊級幀場自適應(yīng)的情況下,共享參考塊所依 賴的參考塊位于頂場,底場還是幀中在解碼圖像緩存索引中進行標記;同時,共享參考 塊是采用幀內(nèi)預(yù)測還是幀間預(yù)測也需要在解碼圖像緩存索引標記,解碼圖像緩存索引采 用7比特來標記所有的內(nèi)容。
4.如權(quán)利要求2所述的用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方 法,其特征在于在對解碼圖像緩存的索引信息進行存儲時,將所需的7比特縮減為6比 特的標記調(diào)整方式,所需的標記包括對參考索引號的標記,對頂場、底場和幀的標記, 以及對幀內(nèi)預(yù)測和幀間預(yù)測的標記。
全文摘要
一種用于H.264視頻解碼系統(tǒng)中幀間預(yù)測過程的參考圖像管理方法,對解碼圖像緩存中的參考圖像進行初始化和重排序操作,并建立參考圖像索引和參考圖像在解碼圖像緩存的索引值的直接映射關(guān)系,在解碼過程開始時,解碼圖像緩存中的第一個索引被分配給第一幅解碼的圖像,然后索引1-16依次分配給后續(xù)的解碼圖像;當解碼第17幅圖像時,這幅圖像被存儲進解碼圖像緩存的第17個索引,然后對解碼圖像緩存中的參考圖像進行標記操作,從解碼圖像緩存中排出一幅圖像;空出來的解碼圖像緩存位置留作存儲下一幅待解碼圖像。本發(fā)明能大大提高效率、有效節(jié)省硬件開銷和功耗、提升整體性能。
文檔編號H04N7/32GK102025992SQ20101055480
公開日2011年4月20日 申請日期2010年11月23日 優(yōu)先權(quán)日2010年11月23日
發(fā)明者嚴曉浪, 李春澍, 葛海通, 馬德, 黃凱 申請人:浙江大學