專利名稱:提高視頻解碼器中sdram總線效率的方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字多媒體信號(hào)處理領(lǐng)域,特別涉及一種視頻解碼器中提高SDRAM總線效率的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)和多媒體技術(shù)的飛速發(fā)展,數(shù)字視頻的應(yīng)用越來(lái)越廣泛。由于視頻數(shù)據(jù)量太大,為了能夠在現(xiàn)有介質(zhì)中傳輸或者存儲(chǔ),通常需要先通過(guò)編碼器將視頻數(shù)據(jù)壓縮,傳輸或者存儲(chǔ)壓縮后的數(shù)據(jù),而在接收端通過(guò)解碼器進(jìn)行解碼后再在顯示設(shè)備上顯示。視頻數(shù)據(jù)流的數(shù)據(jù)量大,播放實(shí)時(shí)性要求高,解碼器中需要高速大容量的存儲(chǔ)器作為圖像數(shù)據(jù)的緩存。由于SDRAM比SRAM等存儲(chǔ)器具有容量大,成本便宜等優(yōu)點(diǎn),成為視頻解碼器中常用的數(shù)據(jù)存儲(chǔ)器??墒荢DRAM的控制比較復(fù)雜,需要進(jìn)行定時(shí)刷新以保持?jǐn)?shù)據(jù),因此需要專門的SDRAM控制器來(lái)實(shí)現(xiàn)和SDRAM的接口。
圖1為典型的SDRAM結(jié)構(gòu)圖。圖中108為SDRAM的存儲(chǔ)單元陣列。它可以有多個(gè)組,每個(gè)組都是由存儲(chǔ)單元組成的陣列,根據(jù)行地址和列地址來(lái)定位。SDRAM的訪問(wèn)方式有突發(fā)和全頁(yè)兩種。突發(fā)方式下,一次操作訪問(wèn)SDRAM一個(gè)組中同一行的連續(xù)幾個(gè)數(shù)據(jù)。全頁(yè)方式下,一次操作訪問(wèn)SDRAM一個(gè)組中一行的所有數(shù)據(jù)。以上兩種方式下,SDRAM的操作都可以被預(yù)充電命令打斷。一次典型的SDRAM的讀寫(xiě)方式如下,控制器先發(fā)送激活命令,SDRAM接收到該命令時(shí),鎖定要操作的行地址。等待兩到三個(gè)時(shí)鐘周期后,發(fā)送讀或者寫(xiě)命令。SDRAM接收到該命令時(shí),鎖定要操作的列地址。這樣便確定了要操作的數(shù)據(jù)的地址。對(duì)讀操作,控制器發(fā)送讀命令后等待兩到三個(gè)時(shí)鐘周期便可在總線上采樣讀出的數(shù)據(jù)。對(duì)寫(xiě)操作,控制器發(fā)送寫(xiě)命令的同時(shí)開(kāi)始在總線上給出數(shù)據(jù)。數(shù)據(jù)讀寫(xiě)完畢要發(fā)送預(yù)充電命令結(jié)束該次操作。這樣,一次操作過(guò)程中,總線上有6到7個(gè)節(jié)拍沒(méi)有數(shù)據(jù)。當(dāng)一次讀寫(xiě)的數(shù)據(jù)量比較小時(shí),總線的效率非常低。
為了提高總線的效率,對(duì)SDRAM的操作可以采用乒乓操作的方式。所謂乒乓操作,指的是,在操作一個(gè)組的過(guò)程中,可以不等該組被釋放掉,就可以操作另外一個(gè)組。只要操作這兩個(gè)組的命令和數(shù)據(jù)總線上的數(shù)據(jù)不沖突并滿足一定的時(shí)序約束條件。這樣變有效利用了上面讀寫(xiě)操作過(guò)程中的空節(jié)拍,大大提高了數(shù)據(jù)總線的效率。
多媒體解碼系統(tǒng)中,視頻數(shù)據(jù)的數(shù)據(jù)量最大,占了絕大部分的SDRAM總線。解碼過(guò)程中需要將SDRAM中存儲(chǔ)的參考數(shù)據(jù)讀入解碼器,將解碼的數(shù)據(jù)寫(xiě)入解碼器。解碼后的數(shù)據(jù)要在顯示設(shè)備上顯示,需要將數(shù)據(jù)讀入解碼系統(tǒng)中的顯示模塊。因而視頻數(shù)據(jù)多次進(jìn)出SDRAM。SDRAM總線的負(fù)荷很高。在傳統(tǒng)的實(shí)現(xiàn)方法中視頻數(shù)據(jù)按行或者按宏塊存儲(chǔ),(逐行存或者隔行存),不能保證一次讀或者寫(xiě)的數(shù)據(jù)分布在SDRAM的不同組(bank)中,因此不能采用乒乓操作,總線的效率很低。
所以在傳統(tǒng)的實(shí)現(xiàn)方法中,為了保證解碼器的正常工作需要更高的SDRAM總線頻率或者更大的SDRAM數(shù)據(jù)位寬,但這勢(shì)必造成成本的增加。因此,有必要尋找一種視頻解碼器中提高SDRAM總線效率的方法,在保證解碼器正常工作的前提下盡量降低SDRAM總線頻率和數(shù)據(jù)位寬,從而降低系統(tǒng)成本。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對(duì)現(xiàn)有技術(shù)的不足,提供一種提高視頻解碼器中SDRAM總線效率的方法。
為了實(shí)現(xiàn)上述目的,本發(fā)明的視頻解碼器中提高SDRAM總線效率的方法包括兩個(gè)部分,首先采用一種新的存儲(chǔ)結(jié)構(gòu)把視頻數(shù)據(jù)以行為單位交替存儲(chǔ)在SDRAM不同的組中,然后按照一種新的訪問(wèn)順序交替訪問(wèn)圖像各行來(lái)讀取參考數(shù)據(jù)和回寫(xiě)解碼數(shù)據(jù),實(shí)現(xiàn)乒乓操作提高總線效率。
所述的新的存儲(chǔ)結(jié)構(gòu)具體為圖像的第4*N(N為整數(shù),下同)行和第4*N+3行存在一個(gè)組中,第4*N+1行和第4*N+2行存在另一個(gè)組中。
所述的新的訪問(wèn)順序根據(jù)請(qǐng)求數(shù)據(jù)的格式和訪問(wèn)起始行i(i為整數(shù),下同)分為三種情況具體為情況1請(qǐng)求的圖像數(shù)據(jù)為逐行且i為偶數(shù)訪問(wèn)順序如下i,i+1,i+3,i+2,i+4,i+5,i+7,i+6,i+8…情況2請(qǐng)求的圖像數(shù)據(jù)為逐行且i為奇數(shù)訪問(wèn)順序如下i,i+2,i+1,i+3,i+4,i+6,i+5,i+7,i+8…情況3請(qǐng)求的圖像數(shù)據(jù)為隔行訪問(wèn)順序如下i,i+2,i+4,i+6,i+8…所述的視頻解碼器包括任何采用運(yùn)動(dòng)補(bǔ)償技術(shù)進(jìn)行解碼的解碼系統(tǒng)。
所述的新的訪問(wèn)順序應(yīng)用于兩種情況讀取參考數(shù)據(jù)和回寫(xiě)解碼數(shù)據(jù)。該訪問(wèn)順序根據(jù)需要讀取和回寫(xiě)的數(shù)據(jù)行數(shù)取所述序列的前若干個(gè)數(shù)字作為實(shí)際使用的訪問(wèn)順序。數(shù)據(jù)行數(shù)在讀取參考數(shù)據(jù)時(shí)至少包括4,5,8,9四種情況,在回寫(xiě)解碼數(shù)據(jù)時(shí)至少包括4,8兩種情況。
所述的乒乓操作是標(biāo)準(zhǔn)SDRAM芯片都支持的一種連續(xù)交替訪問(wèn)SDRAM中不同組的操作模式。
讀取參考數(shù)據(jù)時(shí),考慮到運(yùn)動(dòng)補(bǔ)償?shù)陌胂笏仡A(yù)測(cè),一次訪問(wèn)SDRAM讀取的圖像行數(shù)可能為4,5,8,9,這時(shí)按照上述順序讀取4,5,8或9行即可。回寫(xiě)解碼數(shù)據(jù)時(shí),一次訪問(wèn)SDRAM回寫(xiě)的圖像行數(shù)可能為4或者8,這時(shí)按照上述順序?qū)懭?或8行即可。
本發(fā)明中無(wú)論解碼器向SDRAM請(qǐng)求讀取參考數(shù)據(jù)還是解碼后的數(shù)據(jù)寫(xiě)回SDRAM,無(wú)論一次訪問(wèn)幾行數(shù)據(jù),無(wú)論請(qǐng)求的數(shù)據(jù)格式是逐行還是隔行,訪問(wèn)SDRAM的順序都是不同的組交替進(jìn)行,都可以實(shí)現(xiàn)SDRAM的乒乓操作,因此大大提高了總線的效率。
圖1是SDRAM存儲(chǔ)器的典型結(jié)構(gòu)圖;圖2是本發(fā)明一實(shí)施例的一個(gè)宏塊的圖像數(shù)據(jù)構(gòu)成示意圖;圖3是本實(shí)施例中視頻數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
以下結(jié)合一個(gè)具體實(shí)施例詳細(xì)說(shuō)明本發(fā)明的視頻解碼器中提高SDRAM總線效率的方法。
本例中,圖像數(shù)據(jù)的掃描格式為4:2:0,一個(gè)象素的Y、Cr、Cb數(shù)據(jù)各用8bit表示,SDRAM數(shù)據(jù)位寬為16bit,SDRAM的一個(gè)存儲(chǔ)單元可以存儲(chǔ)2個(gè)象素的亮度或者色差數(shù)據(jù)。根據(jù)圖2,4:2:0模式下一個(gè)宏塊的圖像數(shù)據(jù)構(gòu)成示意圖,其中0,1,2,3表示四個(gè)8×8象素的亮度塊,4表示一個(gè)8×8象素的Cr塊,5表示一個(gè)8×8象素的Cb塊。解碼器讀取參考數(shù)據(jù)時(shí),分別將0和1兩個(gè)亮度塊,2和3兩個(gè)亮度塊,4和5兩個(gè)色差塊合并在一起從SDRAM中讀取,寫(xiě)入解碼數(shù)據(jù)時(shí)也是分別將0和1兩個(gè)亮度塊,2和3兩個(gè)亮度塊,4和5兩個(gè)色差塊合并在一起向SDRAM中寫(xiě)入。
圖3是本發(fā)明的一個(gè)實(shí)施例中視頻數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)示意圖。該SDRAM存儲(chǔ)器中包含兩個(gè)組,分別稱為組0和組1。圖像的第0,4,8…4*N行和第3,7,11…4*N+3行圖像數(shù)據(jù)存放在組0中,圖像的第1,5,9…4*N+1行和第2,6,10…4*N+2行圖像數(shù)據(jù)存放在組1中。
下面對(duì)本發(fā)明的訪問(wèn)順序根據(jù)請(qǐng)求數(shù)據(jù)的格式和訪問(wèn)起始行i分為三種情況舉例說(shuō)明,假設(shè)每次訪問(wèn)的圖像數(shù)據(jù)為9行情況1請(qǐng)求的圖像數(shù)據(jù)為逐行且i為偶數(shù)訪問(wèn)順序如下i,i+1,i+3,i+2,i+4,i+5,i+7,i+6,i+8…以i=4為例,實(shí)際的訪問(wèn)順序?yàn)?,5,7,6,8,9,11,10,12。根據(jù)圖3所示,滿足乒乓操作的要求。
情況2請(qǐng)求的圖像數(shù)據(jù)為逐行且i為奇數(shù)訪問(wèn)順序如下i,i+2,i+1,i+3,i+4,i+6,i+5,i+7,i+8…以i=5為例,實(shí)際訪問(wèn)順序?yàn)?,7,6,8,9,11,10,12,13。根據(jù)圖3所示,滿足乒乓操作的要求。
情況3請(qǐng)求的圖像數(shù)據(jù)為隔行訪問(wèn)順序如下i,i+2,i+4,i+6,i+8…
以i=1為例,實(shí)際訪問(wèn)順序?yàn)?,3,5,7,9,11,13,15,17。根據(jù)圖3所示,滿足乒乓操作的要求。
只要進(jìn)行簡(jiǎn)單的分析便可以證明,無(wú)論解碼器向SDRAM請(qǐng)求讀取參考數(shù)據(jù)還是解碼后的數(shù)據(jù)寫(xiě)回SDRAM,無(wú)論一次訪問(wèn)幾行數(shù)據(jù),無(wú)論請(qǐng)求的數(shù)據(jù)格式是逐行還是隔行,訪問(wèn)SDRAM的順序都是不同的組交替進(jìn)行,都滿足乒乓操作的要求。
在不使用乒乓操作時(shí),本例中一次讀寫(xiě)SDRAM有效數(shù)據(jù)占用的時(shí)鐘周期數(shù)為8個(gè),空節(jié)拍占用的時(shí)鐘周期數(shù)為6或7(這里按7計(jì)算),因此SDRAM總線效率約為8/(8+7)≈53.3%。在使用乒乓操作時(shí),本例中一次讀寫(xiě)SDRAM有效數(shù)據(jù)占用的時(shí)鐘周期數(shù)擴(kuò)大為72個(gè)(9行圖像數(shù)據(jù)串聯(lián)在一起一次訪問(wèn)),因此SDRAM總線效率約為72/(72+7)≈91.1%。
實(shí)際的SDRAM總線效率與一次訪問(wèn)的象素?cái)?shù)和行數(shù)已經(jīng)SDRAM芯片的性能參數(shù)有關(guān),但是只要進(jìn)行簡(jiǎn)單的分析即可證明,通過(guò)采用本發(fā)明的方法可以使視頻解碼器中SDRAM總線效率得到明顯提高。
如上所述,本發(fā)明首先采用一種新的存儲(chǔ)結(jié)構(gòu)把視頻數(shù)據(jù)以行為單位交替存儲(chǔ)在SDRAM不同的組中,然后按照一種新的訪問(wèn)順序交替訪問(wèn)圖像各行來(lái)讀取參考數(shù)據(jù)和回寫(xiě)解碼數(shù)據(jù),實(shí)現(xiàn)乒乓操作,在不增加解碼器資源的條件下,明顯提高了視頻解碼器中SDRAM總線效率。
盡管本發(fā)明是參照其優(yōu)選實(shí)施例來(lái)具體描述的,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離有所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)的各種修改。
權(quán)利要求
1.提高視頻解碼器中SDRAM總線效率的方法,其特征在于該方法采用一種新的存儲(chǔ)結(jié)構(gòu)把視頻數(shù)據(jù)以行為單位交替存儲(chǔ)在SDRAM不同的組中,按照一種新的訪問(wèn)順序交替訪問(wèn)圖像各行來(lái)讀取參考數(shù)據(jù)和回寫(xiě)解碼數(shù)據(jù),實(shí)現(xiàn)乒乓操作提高總線效率;所述的新的存儲(chǔ)結(jié)構(gòu)具體為圖像的第4*N(N為整數(shù),下同)行和第4*N+3行存在一個(gè)組中,第4*N+1行和第4*N+2行存在另一個(gè)組中;所述的新的訪問(wèn)順序根據(jù)請(qǐng)求數(shù)據(jù)的格式和訪問(wèn)起始行i(i為整數(shù),下同)分為三種情況具體為情況1請(qǐng)求的圖像數(shù)據(jù)為逐行且i為偶數(shù)訪問(wèn)順序如下i,i+1,i+3,i+2,i+4,i+5,i+7,i+6,i+8…情況2請(qǐng)求的圖像數(shù)據(jù)為逐行且i為奇數(shù)訪問(wèn)順序如下i,i+2,i+1,i+3,i+4,i+6,i+5,i+7,i+8…情況3請(qǐng)求的圖像數(shù)據(jù)為隔行訪問(wèn)順序如下i,i+2,i+4,i+6,i+8…。
2.如權(quán)利要求1所述的提高視頻解碼器中SDRAM總線效率的方法,其特征在于所述的視頻解碼器包括任何采用運(yùn)動(dòng)補(bǔ)償技術(shù)進(jìn)行解碼的解碼系統(tǒng)。
3.如權(quán)利要求1所述的提高視頻解碼器中SDRAM總線效率的方法,其特征在于所述的新的訪問(wèn)順序應(yīng)用于兩種情況讀取參考數(shù)據(jù)和回寫(xiě)解碼數(shù)據(jù);該訪問(wèn)順序根據(jù)需要讀取和回寫(xiě)的數(shù)據(jù)行數(shù)取所述序列的前若干個(gè)數(shù)字作為實(shí)際使用的訪問(wèn)順序;數(shù)據(jù)行數(shù)在讀取參考數(shù)據(jù)時(shí)至少包括4,5,8,9四種情況,在回寫(xiě)解碼數(shù)據(jù)時(shí)至少包括4,8兩種情況。
全文摘要
本發(fā)明涉及一種視頻解碼器中提高SDRAM總線效率的方法。本發(fā)明首先采用一種新的存儲(chǔ)結(jié)構(gòu)把視頻數(shù)據(jù)以行為單位交替存儲(chǔ)在SDRAM不同的組中,然后按照一種新的訪問(wèn)順序交替訪問(wèn)圖像各行,這樣無(wú)論解碼器向SDRAM請(qǐng)求讀取參考數(shù)據(jù)還是解碼后的數(shù)據(jù)寫(xiě)回SDRAM,無(wú)論一次訪問(wèn)幾行數(shù)據(jù),無(wú)論逐行還是隔行,訪問(wèn)SDRAM的順序都是不同的組交替,可以實(shí)現(xiàn)SDRAM的乒乓操作,大大提高了總線的效率。
文檔編號(hào)G06T9/00GK1878307SQ20061009890
公開(kāi)日2006年12月13日 申請(qǐng)日期2006年7月14日 優(yōu)先權(quán)日2006年7月14日
發(fā)明者龐智博, 李炳博, 黃曉偉 申請(qǐng)人:杭州國(guó)芯科技有限公司