專利名稱:視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字視頻的編解碼中存儲(chǔ)器資源的組織技術(shù)和芯上系統(tǒng)(SOC,System on Chip)技術(shù)領(lǐng)域,尤其是一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置及方法。
背景技術(shù):
視頻編碼技術(shù)主要試圖解決用盡量少的信息位來(lái)表示一段視頻,并且完全由這些信息位能恢復(fù)出或大致恢復(fù)出原始圖像,這些信息位又可分為邊信息和系數(shù)信息。邊信息可以是運(yùn)動(dòng)向量、編碼模式等;系數(shù)信息是指變換編碼后的殘差值。在最新的視頻標(biāo)準(zhǔn)H.264(國(guó)際電信聯(lián)盟最新視頻編解碼標(biāo)準(zhǔn))和AVS(中國(guó)音視頻編解碼國(guó)家標(biāo)準(zhǔn))中,無(wú)論是對(duì)于邊信息還是在像素信息,預(yù)測(cè)技術(shù)均被廣泛使用。特別是對(duì)于空間預(yù)測(cè),即利用一幀圖像中周圍的編碼元素比如運(yùn)動(dòng)矢量、編碼模式等信息來(lái)預(yù)測(cè)當(dāng)前編碼元素來(lái)說(shuō),這些用于預(yù)測(cè)參考的編碼元素值的存儲(chǔ)是一個(gè)需要解決的問(wèn)題。
新的視頻編碼標(biāo)準(zhǔn)中,大多是使用左邊和上邊的相鄰編碼元素來(lái)預(yù)測(cè)當(dāng)前的編碼元素。比如運(yùn)動(dòng)矢量預(yù)測(cè)是適用當(dāng)前塊的左邊、上邊、右上和左上的相鄰塊運(yùn)動(dòng)矢量進(jìn)行中值預(yù)測(cè);幀內(nèi)預(yù)測(cè)模式預(yù)測(cè)是取左邊和上邊塊的預(yù)測(cè)模式的較小值進(jìn)行預(yù)測(cè);幀內(nèi)預(yù)測(cè)是利用塊周圍的上邊一行和左邊一列最靠近的解碼像素值進(jìn)行的方向預(yù)測(cè)。
對(duì)于這些預(yù)測(cè)所需要的參考值,如果把他們都存儲(chǔ)在外存儲(chǔ)器中,會(huì)大大增加視頻解碼芯片中外存儲(chǔ)器的負(fù)荷,導(dǎo)致整個(gè)解碼芯片系統(tǒng)性能的降低。另一種解決方案是將參考值全部存于片內(nèi),但這些整幀的數(shù)據(jù)量極大,片內(nèi)很難滿足這些數(shù)據(jù)對(duì)片內(nèi)資源的需求。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)方法及裝置,在保證芯片性能的前提下,有效減小芯片的成本。
為了完成上述發(fā)明任務(wù),本發(fā)明采用的總體技術(shù)方案是一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置,其技術(shù)要點(diǎn)是,在視頻解碼芯片中有先進(jìn)先出的行緩沖隊(duì)列。
所述的行緩沖隊(duì)列按照塊的方式更新;所述的行緩沖隊(duì)列更新的塊的大小為8×8,它存儲(chǔ)上一個(gè)整圖像行的解碼值。
一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)方法,包括以下步驟步驟1、處理器從行緩沖隊(duì)列中取出預(yù)測(cè)當(dāng)前編碼元素所需的已保存在隊(duì)列的相鄰元素值;步驟2、進(jìn)行空間預(yù)測(cè),并得到新的元素解碼值;步驟3、將當(dāng)前位置的元素值解碼更新到行緩沖隊(duì)列中。
上述所述步驟1中的當(dāng)前編碼元素是指運(yùn)動(dòng)向量、編碼模式或像素。
上述所述步驟2中的空間預(yù)測(cè)是指運(yùn)動(dòng)矢量預(yù)測(cè),具體包括下述步驟步驟211、將當(dāng)前塊的左邊、上邊、右上、左上的塊的運(yùn)動(dòng)向量值存儲(chǔ)在行緩沖中;步驟212、從行緩沖中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè),否則結(jié)束;步驟213、預(yù)測(cè)結(jié)束后將運(yùn)動(dòng)矢量的解碼值存放到隊(duì)列尾。
上述所述步驟2中空間預(yù)測(cè)是指幀內(nèi)模式預(yù)測(cè),具體包括下述步驟步驟221、將當(dāng)前塊的左邊、上邊塊的解碼值存儲(chǔ)在行緩沖中;步驟222、從行緩沖中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的解碼值進(jìn)行預(yù)測(cè),否則結(jié)束;步驟223、預(yù)測(cè)結(jié)束后將解碼值的解碼值存放到隊(duì)列尾。
上述所述步驟2中空間預(yù)測(cè)是指幀內(nèi)預(yù)測(cè),具體包括下述步驟步驟231、將當(dāng)前塊最近鄰的左邊一塊和上邊一塊相鄰像素點(diǎn)的解碼像素值存儲(chǔ)在行緩沖中;步驟232、從行緩沖中取出左邊一塊和上邊一塊相鄰像素點(diǎn)的解碼像素值存于內(nèi)部寄存器中進(jìn)行預(yù)測(cè);步驟233、預(yù)測(cè)結(jié)束時(shí),將該塊中最下面的一行解碼像素值存于行緩沖中相應(yīng)位置。
本發(fā)明具有明顯的優(yōu)點(diǎn)和積極效果。本發(fā)明針對(duì)新的視頻編碼的標(biāo)準(zhǔn),提出一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置及方法。由于空間預(yù)測(cè)的特點(diǎn),用于參考的元素一般是當(dāng)前元素左邊和上邊的元素,所以本發(fā)明在解碼完一個(gè)元素后能將它保持住,直到下一行的相同位置處理完,該元素不再做參考為止,此時(shí)再對(duì)緩沖區(qū)中該位置的元素值進(jìn)行更新,以備其后面行所用。克服了把元素值都存儲(chǔ)在外存儲(chǔ)器中大大增加視頻解碼芯片外存儲(chǔ)器的負(fù)荷,提高了整個(gè)解碼芯片的系統(tǒng)性能。本發(fā)明將參考值全部存于片內(nèi),這些整幀的數(shù)據(jù)量可以很大,有效滿足了這些數(shù)據(jù)對(duì)片內(nèi)資源的需求。同時(shí),本發(fā)明只需存儲(chǔ)一個(gè)圖像行的數(shù)據(jù)在片內(nèi),也有效節(jié)省了片內(nèi)資源的消耗。
圖1是本發(fā)明的主流程圖;圖2是本發(fā)明實(shí)施例1中行緩沖更新示意圖;圖3時(shí)本發(fā)明一個(gè)實(shí)施例1中運(yùn)動(dòng)矢量預(yù)測(cè)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
數(shù)字電視圖像分為16×16的宏塊(macroblock),每一個(gè)宏塊又分為8×8或更小的塊。解碼按照宏塊的順序一個(gè)一個(gè)從左向后進(jìn)行,在有些情況下如像素預(yù)測(cè),行緩沖的更新則按照塊的方式更新,即每預(yù)測(cè)一個(gè)塊更新一次行緩沖。
請(qǐng)參與圖1本發(fā)明的主流程圖,首先,芯片處理器從行緩沖隊(duì)列中取出預(yù)測(cè)當(dāng)前編碼元素所需的已保存在隊(duì)列的相鄰元素值;之后,進(jìn)行空間預(yù)測(cè),并得到新的元素解碼值;然后,將當(dāng)前位置的元素值解碼更新到行緩沖隊(duì)列中。
實(shí)施例1幀內(nèi)預(yù)測(cè)幀內(nèi)預(yù)測(cè)是一種利用空間相鄰像素點(diǎn)進(jìn)行方向預(yù)測(cè)的圖像編碼技術(shù),預(yù)測(cè)所取得參考點(diǎn)是當(dāng)前塊最緊鄰的左邊一列和上邊一行的解碼像素值。
幀內(nèi)預(yù)測(cè)具體包括下述步驟將當(dāng)前塊最近鄰的左邊一塊和上邊一塊相鄰像素點(diǎn)的解碼像素值存儲(chǔ)在行緩沖中;從行緩沖中取出左邊一塊和上邊一塊相鄰像素點(diǎn)的解碼像素值存于內(nèi)部寄存器中進(jìn)行預(yù)測(cè);預(yù)測(cè)結(jié)束時(shí),將該塊中最下面的一行解碼像素值存于行緩沖中相應(yīng)位置。
如圖2本發(fā)明行緩沖更新示意圖所示,從(a)到(e)完成了一個(gè)宏塊中四個(gè)塊的預(yù)測(cè)和更新的過(guò)程,其中陰影部分表示行緩沖中存儲(chǔ)的像素值。宏塊中第一個(gè)塊用到其上邊的像素進(jìn)行參考,當(dāng)該塊完成預(yù)測(cè)以后,行緩沖的相應(yīng)位置的元素更新成當(dāng)前塊的最后一行,左邊像素寄存器中的值同時(shí)由當(dāng)前塊的最右邊一列更新。此時(shí),行緩沖中存儲(chǔ)的像素值如(b)所示。此時(shí)預(yù)測(cè)第二個(gè)塊所需要的數(shù)據(jù)都在行緩沖和左邊像素寄存器中,處理完第二個(gè)塊后,與第一個(gè)塊類似,由當(dāng)前塊最下邊一行更新行緩沖器,當(dāng)前塊的最右邊一行更新左邊像素寄存器,行緩沖中存儲(chǔ)的像素值如(c)所示;然后做宏塊第三個(gè)塊,采用同樣的方法更新,如(d)所示,處理完最后一個(gè)塊,如(e)所示。然后開(kāi)始下一個(gè)宏塊的第一個(gè)塊,如(f)所示。
實(shí)施例2運(yùn)動(dòng)向量預(yù)測(cè)運(yùn)動(dòng)向量預(yù)測(cè)是通過(guò)當(dāng)前塊的左邊、上邊、右上、左上的塊的運(yùn)動(dòng)向量值來(lái)預(yù)測(cè)當(dāng)前塊的運(yùn)動(dòng)向量值,運(yùn)動(dòng)向量預(yù)測(cè)包括下列步驟將當(dāng)前塊的左邊、上邊、右上、左上的塊的運(yùn)動(dòng)向量值存儲(chǔ)在行緩沖中;從行緩沖中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè),否則結(jié)束;預(yù)測(cè)結(jié)束后將運(yùn)動(dòng)矢量的解碼值存放到隊(duì)列尾。
如圖3所示,E為當(dāng)前塊運(yùn)動(dòng)矢量,它由A、B、C、D預(yù)測(cè)得到。行緩沖中存儲(chǔ)上一個(gè)整圖像行的運(yùn)動(dòng)矢量信息,行緩沖可以由一個(gè)先進(jìn)先出隊(duì)列(FIFO)來(lái)實(shí)現(xiàn),每預(yù)測(cè)一個(gè)宏塊時(shí)從隊(duì)列頭中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)束后將運(yùn)動(dòng)矢量的解碼值存放到隊(duì)列尾。
實(shí)施例3幀內(nèi)預(yù)測(cè)模式預(yù)測(cè)請(qǐng)參看圖3,幀內(nèi)預(yù)測(cè)模式預(yù)測(cè)與運(yùn)動(dòng)矢量預(yù)測(cè)類似,當(dāng)前塊E的幀內(nèi)預(yù)測(cè)模式預(yù)測(cè)值由其左邊塊和上邊塊的幀內(nèi)預(yù)測(cè)模式預(yù)測(cè)得到。預(yù)測(cè)和更新過(guò)程與運(yùn)動(dòng)矢量預(yù)測(cè)類似。幀內(nèi)模式預(yù)測(cè)具體包括下述步驟將當(dāng)前塊的左邊、上邊塊的解碼值存儲(chǔ)在行緩沖中;從行緩沖中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的解碼值進(jìn)行預(yù)測(cè),否則結(jié)束;預(yù)測(cè)結(jié)束后將解碼值的解碼值存放到隊(duì)列尾。
以上實(shí)施例僅用以說(shuō)明而非限制本發(fā)明的技術(shù)方案,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解可以對(duì)本發(fā)明進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍的任何修改或局部替換,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
1.一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置,其特征在于,在視頻解碼芯片中有先進(jìn)先出的行緩沖隊(duì)列。
2.根據(jù)權(quán)利要求1所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置,其特征在于,所述行緩沖隊(duì)列按照塊的方式更新。
3.根據(jù)權(quán)利要求2所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置,其特征在于,所述行緩沖隊(duì)列更新的塊的大小為8×8,它存儲(chǔ)上一個(gè)整圖像行的解碼值。
4.一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)方法,其特征在于,該方法包括以下必不可少的步驟步驟1、處理單元從行緩沖隊(duì)列中取出預(yù)測(cè)當(dāng)前編碼元素所需的已保存在隊(duì)列的相鄰元素值;步驟2、進(jìn)行空間預(yù)測(cè),并得到新的元素解碼值;步驟3、將當(dāng)前位置的元素值解碼更新到行緩沖隊(duì)列中。
5.根據(jù)權(quán)利要求4所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)的方法,其特征在于,所述步驟1中的當(dāng)前編碼元素是指運(yùn)動(dòng)向量。
6.根據(jù)權(quán)利要求4所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)的方法,其特征在于,所述步驟1中的當(dāng)前編碼元素是指編碼模式。
7.根據(jù)權(quán)利要求4所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)的方法,其特征在于,所述步驟1中的當(dāng)前編碼元素是指像素。
8.根據(jù)權(quán)利要求4所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)的方法,其特征在于,所述步驟2中的空間預(yù)測(cè)是指運(yùn)動(dòng)矢量預(yù)測(cè),具體包括下述步驟步驟211、將當(dāng)前塊的左邊、上邊、右上、左上的塊的運(yùn)動(dòng)向量值存儲(chǔ)在行緩沖中;步驟212、從行緩沖中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的運(yùn)動(dòng)向量進(jìn)行預(yù)測(cè),否則結(jié)束;步驟213、預(yù)測(cè)結(jié)束后將運(yùn)動(dòng)矢量的解碼值存放到隊(duì)列尾。
9.根據(jù)權(quán)利要求4所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)的方法,其特征在于,所述步驟2中空間預(yù)測(cè)是指幀內(nèi)模式預(yù)測(cè),具體包括下述步驟步驟221、將當(dāng)前塊的左邊、上邊塊的解碼值存儲(chǔ)在行緩沖中;步驟222、從行緩沖中取出兩個(gè)運(yùn)動(dòng)矢量用于對(duì)該宏塊的解碼值進(jìn)行預(yù)測(cè),否則結(jié)束;步驟223、預(yù)測(cè)結(jié)束后將解碼值的解碼值存放到隊(duì)列尾。
10.根據(jù)權(quán)利要求4所述的視頻解碼芯片中基于行緩沖的參考存儲(chǔ)的方法,其特征在于,所述步驟2中空間預(yù)測(cè)是指幀內(nèi)預(yù)測(cè),具體包括下述步驟步驟231、將當(dāng)前塊最近鄰的左邊一塊和上邊一塊相鄰像素點(diǎn)的解碼像素值存儲(chǔ)在行緩沖中;步驟232、從行緩沖中取出左邊一塊和上邊一塊相鄰像素點(diǎn)的解碼像素值存于內(nèi)部寄存器中進(jìn)行預(yù)測(cè);步驟233、預(yù)測(cè)結(jié)束時(shí),將該塊中最下面的一行解碼像素值存于行緩沖中相應(yīng)位置。
全文摘要
本發(fā)明涉及一種視頻解碼芯片中基于行緩沖的參考存儲(chǔ)裝置及方法。視頻解碼芯片中有先進(jìn)先出的行緩沖隊(duì)列。參考存儲(chǔ)方法包括處理器從行緩沖隊(duì)列中取出預(yù)測(cè)當(dāng)前編碼元素所需的已保存在隊(duì)列的相鄰元素值,進(jìn)行空間預(yù)測(cè),并得到新的元素解碼值,將當(dāng)前位置的元素值解碼更新到行緩沖隊(duì)列中步驟。本發(fā)明提高了整個(gè)解碼芯片的系統(tǒng)性能,有效滿足了數(shù)據(jù)對(duì)片內(nèi)資源的需求。適用于視頻解碼芯片的空間預(yù)測(cè)。
文檔編號(hào)H04N7/32GK1589029SQ20041007036
公開(kāi)日2005年3月2日 申請(qǐng)日期2004年7月29日 優(yōu)先權(quán)日2004年7月29日
發(fā)明者解曉東, 吳迪, 賈惠柱, 生濱, 鄭俊浩, 張鵬, 鄧?yán)? 張力, 張幀睿, 王忠立, 朱勝利, 王曉輝, 顏偉成, 高文 申請(qǐng)人:聯(lián)合信源數(shù)字音視頻技術(shù)(北京)有限公司