專利名稱:離散余弦系數(shù)預(yù)測(cè)方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種視頻編碼的方法與裝置,且特別是有關(guān)于一種離散余弦系數(shù)預(yù)測(cè)的方法與裝置。
背景技術(shù):
一段數(shù)字視頻(digital video)可以看成是一連串的靜止數(shù)字影像,在連續(xù)播放的情形下,由于視覺(jué)暫留,從而可視為連續(xù)的視頻。但在不壓縮的情形下,其儲(chǔ)存空間、頻寬的要求都是非常高的。若以640×480,每秒15張,90分鐘的一段全彩數(shù)字視頻而言,其需要的頻寬為640*480(pixels/frame)*3(bytes/pixel)*15(frames/sec)=13824000bytes/sec=13.18MB/sec則所需的儲(chǔ)存空間為13.18*90*60=69.50GB。
這顯然不是我們所樂(lè)見(jiàn)的,因此各種數(shù)字視頻壓縮技術(shù)也應(yīng)運(yùn)而生。
早先有人提出,利用離散余弦轉(zhuǎn)換(Discrete Cosine Transform,DCT)來(lái)將畫(huà)面從空間領(lǐng)域(spatial domain)轉(zhuǎn)移到頻率領(lǐng)域(frequency domain),進(jìn)而消去高頻信號(hào)來(lái)達(dá)到數(shù)據(jù)壓縮的目地。
而一般視頻在做處理時(shí),通常會(huì)把每一個(gè)圖框分割成許多16*16的宏塊(Macro-Block),如圖1A所示。而其中,每一個(gè)宏塊又由數(shù)個(gè)方塊組成,例如圖1C所示,此圖來(lái)自MPEG4 spec.ISO/IEC 14496-2。在此MPEG4的規(guī)格書(shū)中制定,一個(gè)16*16的宏塊被分為4個(gè)8*8的方塊(Block)。之后依照順序?qū)γ總€(gè)宏塊內(nèi)部的8*8的方塊作離散余弦轉(zhuǎn)換,如圖1B。轉(zhuǎn)換后的空間能量會(huì)集中在幾個(gè)低頻的數(shù)值上(左上角),而高頻的系數(shù)則會(huì)趨近于零(右下角)。之后再以量化(Quantization)的手段使得這些高頻系數(shù)盡量變?yōu)榱?。圖1B中M(0,0)稱為DC項(xiàng),其它63個(gè)稱之為AC項(xiàng)。DC項(xiàng)代表了方塊整體平均亮度,其它AC項(xiàng)代表了方塊細(xì)微的變化。
由于相鄰的點(diǎn)顏色通常相當(dāng)接近。后來(lái)有人提出,當(dāng)方塊的DC項(xiàng)與鄰近的方塊DC項(xiàng)很接近的時(shí)候,便可以將鄰近的方塊AC項(xiàng)直接套用,稱之為AC預(yù)測(cè)模式(AC prediction)如圖2所示。方塊B1的DC項(xiàng)與鄰近的方塊B2的DC項(xiàng)、B3的DC項(xiàng)來(lái)做比對(duì)。當(dāng)方塊B3的DC項(xiàng)的值較B2近似于方塊B1的DC項(xiàng)的值,便可以將方塊B3整行AC值當(dāng)作方塊B1的預(yù)測(cè)值,直接套用在方塊B1。然而,對(duì)于同一張影像變化過(guò)大,失去了空間的關(guān)聯(lián)相似,如此特性的影像若采用AC預(yù)測(cè)模式,反而會(huì)使壓縮效能下降。
圖3為已知視頻壓縮技術(shù)的實(shí)際應(yīng)用,請(qǐng)參考圖3。首先對(duì)方塊作離散余弦轉(zhuǎn)換301。下一步對(duì)轉(zhuǎn)換后的方塊作量化303。接下來(lái)將方塊同時(shí)用AC預(yù)測(cè)模式305以及非AC預(yù)測(cè)模式307作變化長(zhǎng)度編碼(Variable Length Coding,VLC),并將所有結(jié)果儲(chǔ)存于內(nèi)存。做完之后選擇位數(shù)較少的模式309。這樣便可以達(dá)到有效視頻壓縮。然而,此方法必須使用極大的內(nèi)存。任何模式的判斷必須等待方塊完全編碼之后,才可以判斷。
發(fā)明內(nèi)容
本發(fā)明的目的就是提供一種離散余弦系數(shù)預(yù)測(cè)法,使用較小的內(nèi)存編碼。
本發(fā)明的另一目的是提供一種離散余弦系數(shù)預(yù)測(cè)裝置,可節(jié)省內(nèi)存。
本發(fā)明的又一目的是提供一種離散余弦系數(shù)預(yù)測(cè)方法,達(dá)到高效能編碼。
本發(fā)明提出一種低內(nèi)存高效能的離散余弦系數(shù)預(yù)測(cè)法,此方法包括下列動(dòng)作提供一經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊,同時(shí)對(duì)此方塊作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。提供內(nèi)存儲(chǔ)存兩種編碼的位串。在編碼未完成之前,比對(duì)內(nèi)存中兩種編碼的兩者位數(shù)目,以決定采用何種編碼。
依照本發(fā)明的優(yōu)選實(shí)施例所述的離散余弦系數(shù)預(yù)測(cè)法,上述編碼未完成之前,比對(duì)內(nèi)存中兩種編碼的兩者位數(shù)目,以決定采用何種編碼,步驟包括下列動(dòng)作實(shí)時(shí)比較兩種編碼產(chǎn)生位數(shù)大小,決定采用位數(shù)較少的編碼。當(dāng)任一模式所產(chǎn)生的位數(shù)達(dá)到內(nèi)存容量上限時(shí),決定采用位數(shù)較少的編碼。若內(nèi)存容量達(dá)到上限,且兩編碼的位數(shù)相同,決定采用非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。
本發(fā)明提出一種離散余弦系數(shù)預(yù)測(cè)裝置,用于輸入已經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊,將此方塊編碼為編碼位串,此裝置包括第一內(nèi)存區(qū)塊、第二內(nèi)存區(qū)塊、AC預(yù)測(cè)模式變化長(zhǎng)度編碼器、非AC預(yù)測(cè)模式變化長(zhǎng)度編碼器以及編碼決策器。編碼決策器又包括模式選擇器以及輸出選擇器。AC預(yù)測(cè)模式變化長(zhǎng)度編碼器接收方塊,對(duì)方塊作AC預(yù)測(cè)后再做變化長(zhǎng)度編碼,并將編碼后的第一位串儲(chǔ)存至第一內(nèi)存區(qū)塊。非AC預(yù)測(cè)模式變化長(zhǎng)度編碼器接收方塊,對(duì)方塊做變化長(zhǎng)度編碼,并將編碼后的第二位串儲(chǔ)存至第二內(nèi)存區(qū)塊。模式選擇器用以比較兩種編碼產(chǎn)生位數(shù)大小,當(dāng)?shù)谝晃淮粩?shù)較少時(shí),輸出第一訊號(hào),當(dāng)?shù)诙淮粩?shù)較少時(shí),輸出第二訊號(hào),當(dāng)?shù)谝晃淮粩?shù)達(dá)到第一內(nèi)存區(qū)塊容量上限時(shí),輸出第二訊號(hào),當(dāng)?shù)诙淮粩?shù)達(dá)到第二內(nèi)存區(qū)塊容量上限時(shí),輸出第一訊號(hào),當(dāng)兩內(nèi)存區(qū)塊容量皆達(dá)上限時(shí),輸出該第二訊號(hào)。輸出選擇器接收到第一訊號(hào),輸出第一位串作為編碼位串,接收到第二訊號(hào),輸出第二位串作為編碼位串。
本發(fā)明提出一種離散余弦系數(shù)預(yù)測(cè)法,此方法包括下列動(dòng)作提供一經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊。同時(shí)對(duì)該方塊作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。提供一第一內(nèi)存區(qū)塊以及一第二內(nèi)存區(qū)塊儲(chǔ)存兩種編碼的位串。當(dāng)任一內(nèi)存區(qū)塊容量達(dá)到上限時(shí),決定采用另一編碼。
依照本發(fā)明的優(yōu)選實(shí)施例所述的離散余弦系數(shù)預(yù)測(cè)法,上述方法進(jìn)一步包括當(dāng)兩個(gè)內(nèi)存區(qū)塊皆未達(dá)容量上限時(shí),比較兩種編碼結(jié)果所產(chǎn)生位數(shù)大小,決定采用位數(shù)較少的編碼。若內(nèi)存容量達(dá)到上限,且兩編碼的位數(shù)相同,決定采用非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。
本發(fā)明因采用實(shí)時(shí)比較兩種編碼產(chǎn)生位數(shù)大小的方式,因此在編碼未完成之前便可以判斷用何種模式編碼,可以更快決定編碼模式,并且節(jié)省內(nèi)存。
為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉出優(yōu)選實(shí)施例,并結(jié)合附圖,作出如下詳細(xì)說(shuō)明。
圖1A為說(shuō)明已知視頻在做處理時(shí)把每一個(gè)圖框分割成許多宏塊的示意圖。
圖1B為說(shuō)明已知對(duì)方塊作離散余弦轉(zhuǎn)換的圖。
圖1C說(shuō)明了宏塊內(nèi)部的方塊的組成。
圖2為說(shuō)明已知AC預(yù)測(cè)的示意圖。
圖3為說(shuō)明已知視頻壓縮應(yīng)用AC預(yù)測(cè)的圖。
圖4為說(shuō)明本發(fā)明一實(shí)施例離散余弦系數(shù)預(yù)測(cè)裝置的圖。
圖5為說(shuō)明本發(fā)明一實(shí)施例離散余弦系數(shù)預(yù)測(cè)方法的流程圖。
圖6為說(shuō)明本發(fā)明一實(shí)施例離散余弦系數(shù)預(yù)測(cè)方法的流程圖。
具體實(shí)施例方式
本發(fā)明的實(shí)施例提出一種離散余弦系數(shù)預(yù)測(cè)方法與裝置,用以節(jié)省內(nèi)存。圖4為本發(fā)明實(shí)施例的利用離散余弦系數(shù)預(yù)測(cè)裝置的裝置,此裝置包括離散余弦轉(zhuǎn)換器400、量化器402以及離散余弦系數(shù)預(yù)測(cè)裝置40,離散余弦系數(shù)預(yù)測(cè)裝置40包括內(nèi)存區(qū)塊404、內(nèi)存區(qū)塊405、AC預(yù)測(cè)模式變化長(zhǎng)度編碼器406、非AC預(yù)測(cè)模式變化長(zhǎng)度編碼器408以及編碼決策器410。編碼決策器410包括模式選擇器412以及輸出選擇器414。熟知此技術(shù)者,應(yīng)當(dāng)知道,內(nèi)存區(qū)塊404以及405可以是相同的內(nèi)存,也可以是不同的內(nèi)存。
其中,離散余弦轉(zhuǎn)換器400用于將輸出的方塊B作離散余弦轉(zhuǎn)換,將方塊從空間領(lǐng)域(spatial domain)轉(zhuǎn)移到頻率領(lǐng)域(frequency domain),以得到余弦轉(zhuǎn)換方塊CB送至量化器402。量化器402接收到余弦轉(zhuǎn)換方塊CB將其量化,使得高頻系數(shù)盡量變?yōu)榱愫筝敵隽炕綁KQCB。AC預(yù)測(cè)模式變化長(zhǎng)度編碼器406與非AC預(yù)測(cè)模式變化長(zhǎng)度編碼器408同時(shí)接收量化方塊QCB,AC預(yù)測(cè)模式變化長(zhǎng)度編碼器406將量化方塊QCB作AC預(yù)測(cè)之后再對(duì)其作變化長(zhǎng)度編碼(Variable LengthCoding,VLC)的動(dòng)作,得到位串BS1,并儲(chǔ)存至內(nèi)存區(qū)塊404;而非AC預(yù)測(cè)模式變化長(zhǎng)度編碼器408則是直接將量化方塊QCB作變化長(zhǎng)度編碼(Variable Length Coding,VLC)的動(dòng)作,得到位串BS2并儲(chǔ)存至內(nèi)存區(qū)塊405。
編碼決策器410用于比對(duì)內(nèi)存中位串BS1以及位串BS2,以決定位串BS1以及位串BS2兩者位數(shù)目較少者輸出為編碼位串Encoded-BS。而此功能透過(guò)內(nèi)部模式選擇器412以及輸出選擇器414達(dá)成。其中,模式選擇器用以實(shí)時(shí)比較兩種編碼產(chǎn)生位數(shù)大小,當(dāng)兩內(nèi)存區(qū)塊404以及405皆未達(dá)容量上限(此時(shí)可能編碼完成,亦或是編碼未完成),而位串BS1位數(shù)較少時(shí),輸出訊號(hào)S1。當(dāng)兩內(nèi)存區(qū)塊404以及405皆未達(dá)容量上限,而位串BS2位數(shù)較少時(shí),輸出訊號(hào)S2。當(dāng)位串BS1位數(shù)達(dá)到內(nèi)存區(qū)塊404容量上限時(shí),輸出訊號(hào)S2。當(dāng)位串BS2位數(shù)達(dá)到內(nèi)存區(qū)塊405容量上限時(shí),輸出訊號(hào)S1。當(dāng)內(nèi)存區(qū)塊404以及405容量皆達(dá)上限,輸出訊號(hào)S2。當(dāng)輸出選擇器接收到訊號(hào)S1,輸出位串BS1作為編碼位串Encoded-BS,當(dāng)接收到訊號(hào)S2,輸出位串BS2作為編碼位串Encoded-BS。
熟知此技術(shù)者,不難發(fā)現(xiàn),本發(fā)明可以利用較小的內(nèi)存。由于本發(fā)明裝置可以在編碼未完成之前便已經(jīng)決定是否要使用AC預(yù)測(cè)模式作編碼或者不用AC預(yù)測(cè)模式作編碼,比起已知圖3需要的內(nèi)存較小,如此便可以達(dá)到節(jié)省內(nèi)存的功效。
上述的本發(fā)明裝置實(shí)施例,可以歸納為幾個(gè)方法步驟。圖5為本發(fā)明一實(shí)施例離散余弦系數(shù)預(yù)測(cè)方法的流程圖,請(qǐng)同時(shí)參考圖4以及圖5。首先,提供經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊QCB(步驟501)。同時(shí)對(duì)方塊QCB作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼(步驟503)。提供內(nèi)存區(qū)塊404以及內(nèi)存區(qū)塊405儲(chǔ)存兩種編碼的位串BS1以及BS2(步驟505)。在編碼未完成之前,比對(duì)內(nèi)存404以及405中兩種編碼的位串BS1以及BS2的位數(shù)目,以決定采用何種編碼作為編碼位串Encoded-BS(步驟507)。
其中,步驟507包括下列子步驟。首先,判斷內(nèi)存是否已滿(步驟517)。當(dāng)判斷為否的時(shí)候,實(shí)時(shí)比較兩種編碼產(chǎn)生位數(shù)大小,決定采用位數(shù)較少(BS1<BS2則取BS1,BS2<BS1則取BS2)的編碼位串Encoded-BS(步驟527)。當(dāng)判斷為是,決定采用位數(shù)較少(BS1<BS2則取BS1,BS2<BS1則取BS2)的編碼位串Encoded-BS(步驟537)。若兩編碼BS1以及BS2的位數(shù)相同,決定采用非AC預(yù)測(cè)模式變化長(zhǎng)度編碼BS2作為編碼位串Encoded-BS(步驟547)。
另外,上面的圖4的實(shí)施例,也可以歸納為幾個(gè)方法步驟。圖6即為本發(fā)明一個(gè)離散余弦系數(shù)預(yù)測(cè)方法的實(shí)施例的流程圖,請(qǐng)參考圖6。首先,提供經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊QCB(步驟601)。同時(shí)對(duì)方塊QCB作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼(步驟603)。提供內(nèi)存區(qū)塊404以及內(nèi)存區(qū)塊405儲(chǔ)存兩種編碼的位串BS1以及BS2(步驟605)。判斷兩內(nèi)存區(qū)塊其中一個(gè)是否達(dá)到容量上限(步驟607)。當(dāng)判斷為否,則取位串BS1以及BS2兩者長(zhǎng)度較小者作為編碼位串Encoded-BS(步驟609)。若判斷為是,則進(jìn)入下一判斷單元,判斷兩內(nèi)存區(qū)塊404以及405是否皆達(dá)到容量上限(步驟611)。若判斷為否,則取容量未達(dá)到上限的內(nèi)存區(qū)塊所存的編碼結(jié)果,作為編碼位串Encoded-BS(步驟613)。若判斷為是,則取非AC預(yù)測(cè)模式變化長(zhǎng)度編碼作為編碼位串Encoded-BS(步驟615)。
綜上所述,在本發(fā)明因采用實(shí)時(shí)比較兩種編碼產(chǎn)生位數(shù)大小的方式,因此可以于編碼完成之前便可以判斷用何種模式編碼,可以更快決定編碼模式,并且節(jié)省內(nèi)存。
雖然本發(fā)明已將優(yōu)選實(shí)施例公開(kāi)如上,然而其并非用于限定本發(fā)明,任何熟知此技術(shù)者,在不脫離本發(fā)明之精神和范圍內(nèi),應(yīng)當(dāng)可以作出些許更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍應(yīng)以后面的權(quán)利要求限定的范圍為準(zhǔn)。
權(quán)利要求
1.一種離散余弦系數(shù)預(yù)測(cè)法,包括提供一經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊;同時(shí)對(duì)該方塊作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼;提供一內(nèi)存儲(chǔ)存兩種編碼的位串;以及在編碼完成之前,比對(duì)該內(nèi)存中兩種編碼的兩者位數(shù)目,決定采用位數(shù)較少的編碼。
2.如權(quán)利要求1所述的離散余弦系數(shù)預(yù)測(cè)法,其中在編碼完成之前,比對(duì)該內(nèi)存中兩種編碼的兩者位數(shù)目,決定采用位數(shù)較少的編碼步驟包括實(shí)時(shí)比較兩種編碼產(chǎn)生位數(shù)大小,決定采用位數(shù)較少的編碼。
3.如權(quán)利要求1所述的離散余弦系數(shù)預(yù)測(cè)法,更包括任一模式所產(chǎn)生的位數(shù)達(dá)到內(nèi)存容量上限時(shí),決定采用位數(shù)較少的編碼。
4.如權(quán)利要求1所述的離散余弦系數(shù)預(yù)測(cè)法,更包括若內(nèi)存容量達(dá)到上限,且兩編碼的位數(shù)相同,決定采用非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。
5.一種離散余弦系數(shù)預(yù)測(cè)裝置,用于利用一第一內(nèi)存區(qū)塊及一第二內(nèi)存區(qū)塊,并輸入已經(jīng)由離散余弦轉(zhuǎn)換的一方塊,將該方塊編碼為一編碼位串,該裝置包括一AC預(yù)測(cè)模式變化長(zhǎng)度編碼器,接收該方塊,對(duì)該方塊作AC預(yù)測(cè)后再做變化長(zhǎng)度編碼,并將編碼后的一第一位串儲(chǔ)存至該第一內(nèi)存區(qū)塊;一非AC預(yù)測(cè)模式變化長(zhǎng)度編碼器,接收該方塊,對(duì)該方塊做變化長(zhǎng)度編碼,并將編碼后的一第二位串儲(chǔ)存至該第二內(nèi)存區(qū)塊;以及一編碼決策器,包括一模式選擇器,用以比較兩種編碼產(chǎn)生位數(shù)大小,當(dāng)該第一位串位數(shù)較少時(shí),輸出一第一訊號(hào),當(dāng)該第二位串位數(shù)較少時(shí),輸出一第二訊號(hào),當(dāng)該第一位串位數(shù)達(dá)到該第一內(nèi)存區(qū)塊容量上限時(shí),輸出該第二訊號(hào),當(dāng)該第二位串位數(shù)達(dá)到該第二內(nèi)存區(qū)塊容量上限時(shí),輸出該第一訊號(hào),當(dāng)兩內(nèi)存區(qū)塊容量皆達(dá)上限,輸出該第二訊號(hào);以及一輸出選擇器,當(dāng)接收到該第一訊號(hào),輸出該第一位串作為該編碼位串,當(dāng)接收到該第二訊號(hào),輸出該第二位串作為該編碼位串。
6.一種離散余弦系數(shù)預(yù)測(cè)法,包括提供一經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊;同時(shí)對(duì)該方塊作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼;提供一第一內(nèi)存區(qū)塊以及一第二內(nèi)存區(qū)塊儲(chǔ)存兩種編碼的位串;以及當(dāng)任一內(nèi)存區(qū)塊容量達(dá)到上限時(shí),決定采用另一編碼。
7.如權(quán)利要求6所述的離散余弦系數(shù)預(yù)測(cè)法,更包括當(dāng)兩內(nèi)存區(qū)塊皆未達(dá)容量上限時(shí),比較兩種編碼結(jié)果所產(chǎn)生位數(shù)大小,決定采用位數(shù)較少的編碼。
8.如權(quán)利要求7所述的離散余弦系數(shù)預(yù)測(cè)法,更包括若內(nèi)存容量達(dá)到上限,且兩編碼的位數(shù)相同,決定采用非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。
全文摘要
一種離散余弦系數(shù)預(yù)測(cè)方法與裝置,此方法包括下列動(dòng)作提供一經(jīng)過(guò)離散余弦轉(zhuǎn)換的方塊。同時(shí)對(duì)該方塊作AC預(yù)測(cè)模式變化長(zhǎng)度編碼以及非AC預(yù)測(cè)模式變化長(zhǎng)度編碼。提供一第一內(nèi)存區(qū)塊以及一第二內(nèi)存區(qū)塊儲(chǔ)存兩種編碼的位串。當(dāng)任一內(nèi)存區(qū)塊容量達(dá)到上限時(shí),決定采用另一編碼。
文檔編號(hào)H04N7/32GK1901680SQ20051008508
公開(kāi)日2007年1月24日 申請(qǐng)日期2005年7月20日 優(yōu)先權(quán)日2005年7月20日
發(fā)明者林建佑, 王子欣, 謝百舉 申請(qǐng)人:凌陽(yáng)科技股份有限公司