專利名稱::對視頻數(shù)據(jù)進(jìn)行內(nèi)編碼的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及對傳輸或存儲(chǔ)的視頻數(shù)據(jù)進(jìn)行壓縮和對顯示的視頻數(shù)據(jù)進(jìn)行解壓的視頻系統(tǒng)。更具體地說,本發(fā)明涉及對視頻凌t據(jù)進(jìn)行內(nèi)編石馬的^L頻系統(tǒng)和方法。
背景技術(shù):
:-現(xiàn)頻系統(tǒng)傳輸、處理和存儲(chǔ)大量^L頻數(shù)據(jù)。為創(chuàng)建視頻顯示,如視頻電影,渲染視頻系統(tǒng)將視頻數(shù)據(jù)顯示為多個(gè)數(shù)字圖像,也稱為"幀,,,由此模擬運(yùn)動(dòng)。為實(shí)現(xiàn)具有可接受的視頻質(zhì)量的視頻顯示,或使能夠完全傳輸和存儲(chǔ),常規(guī)的視頻系統(tǒng)在傳輸或存儲(chǔ)之前修改視頻數(shù)據(jù)。例如,視頻系統(tǒng)對視頻數(shù)據(jù)進(jìn)行壓縮和編碼,以減少用于存儲(chǔ)和傳輸?shù)谋忍芈省T诔R?guī)的^L頻系統(tǒng)中,使用視頻編碼器對視頻數(shù)據(jù)進(jìn)行壓縮和編碼,并使用視頻解碼器對視頻數(shù)據(jù)進(jìn)行解壓和解碼。視頻編碼器輸出比特率降低和冗余減少的視頻數(shù)據(jù)。也就是說,視頻壓縮技術(shù)可以去除視頻幀內(nèi)的空間冗余或連續(xù)視頻幀之間的時(shí)間冗余。視頻編碼器和視頻解碼器可以配置為應(yīng)用兩類編碼之一壓縮視頻流,即內(nèi)編碼和間編碼(intercoding)。這兩類編碼以視頻幀的統(tǒng)計(jì)特性為基礎(chǔ)。當(dāng)使用內(nèi)編碼對視頻幀進(jìn)行編碼時(shí),壓縮基于通過使用幀內(nèi)的空間冗余而包含在單個(gè)幀(要壓縮的幀)中的信息。因此,內(nèi)編碼與任何其它幀無關(guān)。相反,間編碼使用至少一個(gè)其它幀作為參考,并對要壓縮的幀和參考幀之間的差異進(jìn)行編碼。因此,間編碼基于視頻數(shù)據(jù)中連續(xù)幀之間的時(shí)間冗余。視頻壓縮領(lǐng)域受國際標(biāo)準(zhǔn)的限制,如定義視頻編碼和解碼統(tǒng)一要求的各種國際電信同盟(ITU)標(biāo)準(zhǔn)。通常,這些標(biāo)準(zhǔn)的發(fā)展基于來自行業(yè)的影響。此外,視頻編碼器和解碼器的制造商也會(huì)根據(jù)國際標(biāo)準(zhǔn)修改或建立,并實(shí)現(xiàn)視頻壓縮的附加專有技術(shù)。盡管存在著國際標(biāo)準(zhǔn)和專有技術(shù),但是仍然有改進(jìn)視頻壓縮技術(shù)的需要。例如,由于顯示的視頻電影的質(zhì)量直接取決于所用的視頻壓縮技術(shù),所以視頻壓縮技術(shù)的任何改進(jìn)均可使視頻電影的觀眾更為滿意。通過閱讀以下的詳細(xì)說明并參考附圖,本發(fā)明的這些和其它方面、優(yōu)點(diǎn)和新穎特點(diǎn)將變得非常明顯。圖1是具有編碼端和解碼端的視頻應(yīng)用系統(tǒng)的高級框圖。圖2是一個(gè)幀及其在宏塊和子塊中分割的高級說明。圖3是一個(gè)說明方向的子塊,根據(jù)該方向可以對子塊進(jìn)^f亍編碼,其中每個(gè)方向表示根據(jù)本發(fā)明的八種預(yù)測模式之一。圖4是根據(jù)本發(fā)明的一個(gè)選擇預(yù)測模式的實(shí)施例的流程圖。圖5顯示三個(gè)相鄰的子塊,其中兩個(gè)子塊用于對第三個(gè)子塊進(jìn)行編碼。圖6顯示一個(gè)具有編碼器和解碼器的4見頻裝置,根據(jù)一個(gè)實(shí)施例結(jié)合了本發(fā)明的編碼/解碼理論。圖7顯示一個(gè)具有可記錄媒體的制造產(chǎn)品,包含本發(fā)明的編碼器/解碼器的軟件實(shí)現(xiàn),設(shè)計(jì)用于根據(jù)一個(gè)實(shí)施例對裝置進(jìn)行編程以使其配備有本發(fā)明的編碼/解碼能力。圖8顯示一個(gè)具有視頻發(fā)送裝置和視頻接收裝置的系統(tǒng),根據(jù)一個(gè)實(shí)施例結(jié)合本發(fā)明的編碼/解碼理論。圖9a-9c顯示4艮據(jù)三個(gè)備選實(shí)施例用于分別預(yù)測8x8、8x4和4x8子塊的周圍像素。具體實(shí)施例方式在以下說明中,參照構(gòu)成其部分的附圖,附圖中通過舉例說明的方式給出一些可實(shí)施本發(fā)明的具體實(shí)施例。應(yīng)當(dāng)理解,可采用其它實(shí)施例并可在不脫離本發(fā)明的范圍的情況下啦支出結(jié)構(gòu)上的更改。如有可能,在所有附圖中將使用相同的標(biāo)號表示相同或相似的元件。闡明了大量具體的詳細(xì)資料,以便透徹地理解本發(fā)明。但是,本領(lǐng)域的技術(shù)人員將十分清楚,本發(fā)明可以無需這些具體詳細(xì)資料或使用某些與此處說明同等的備選裝置和方法實(shí)現(xiàn)。在其它情況下,對眾所周知的方法、過程、元件和裝置不作詳細(xì)說明,以免不必要地混淆本發(fā)明的各個(gè)方面。各種操作將以一種有助于理解本發(fā)明的方式依次被描述為多個(gè)分立步驟,但是,描述的順序不應(yīng)被理解為意味著這些操作一定是順序相關(guān)的。具體地說,這些操作不需要按介紹的順序執(zhí)行。短語"在一個(gè)實(shí)施例中"被反復(fù)使用。但是,該短語一般不表示同一個(gè)實(shí)施例,但它也可能表示同一個(gè)實(shí)施例。術(shù)語"包含"、"具有"和"包括"是同義詞,除非在上下文中另有說明。圖1是^L頻壓縮和解壓系統(tǒng)1(以下稱作'4見頻系統(tǒng)1")的高級框圖,具有編碼設(shè)備3以及通過介質(zhì)9連接到編碼設(shè)備3的解碼設(shè)備5。編碼設(shè)備3包含視頻編碼器2、模式選擇器14和緩沖器8。解碼設(shè)備5包含緩沖器10、視頻解碼器12和模式選擇器16。編碼設(shè)備3接收視頻序列20(一見頻輸入),并對碎見頻序列20進(jìn)行編碼以許多可能格式之一產(chǎn)生編碼并由此壓縮的顯示。格式可以是適合于編碼顯示的"現(xiàn)場"流的隔行掃描格式。格式也可以是單個(gè)文件格式,其中每個(gè)編碼顯示存儲(chǔ)在一個(gè)文件內(nèi)的毗連塊中。輸入到編碼設(shè)備3的^L頻序列20可以是現(xiàn)場信號,例如由攝像機(jī)提供的,或以預(yù)定格式預(yù)先錄制的序列。視頻序列20包括數(shù)字視頻的幀、由數(shù)字音頻組成的音頻片斷、視頻、圖形、文本和/或音頻(多媒體應(yīng)用程序)的組合,或上述的模擬形式。如有必要,可以轉(zhuǎn)換各種類型的輸入信號,如模擬視頻或先前壓縮和編碼的視頻,以產(chǎn)生到編碼設(shè)備3的適當(dāng)輸入。在一個(gè)實(shí)施例中,編碼設(shè)備3可以接收RGB或YUV格式的視頻。但是,只要提供適當(dāng)?shù)霓D(zhuǎn)換機(jī)制,編碼設(shè)備3可以適合接收任何輸入格式。用于將一種格式的信號轉(zhuǎn)換為另一種格式的信號的轉(zhuǎn)換機(jī)制在本領(lǐng)域是眾所周知的。介質(zhì)9可以是存儲(chǔ)裝置或傳輸介質(zhì)。在一個(gè)實(shí)施例中,視頻系統(tǒng)1可以在計(jì)算機(jī)上實(shí)現(xiàn)。編碼設(shè)備3將編碼的視頻流(顯示)發(fā)送到實(shí)現(xiàn)為存儲(chǔ)裝置的介質(zhì)9。存儲(chǔ)裝置可以是視頻服務(wù)器、硬盤驅(qū)動(dòng)器、CD刻錄機(jī)、讀/寫DVD驅(qū)動(dòng)或任何其它能存儲(chǔ)并允許檢索編碼的視頻數(shù)據(jù)的裝置。存儲(chǔ)裝置連接到可以選擇性地從存儲(chǔ)裝置讀取并對編碼的視頻序列解碼的解碼設(shè)備5。在解碼設(shè)備5對選定的一個(gè)編碼視頻序列進(jìn)行解碼時(shí),它會(huì)生成視頻序列20的再現(xiàn),例如用于在計(jì)算在另一個(gè)實(shí)施例中,介質(zhì)9提供到另一臺(tái)計(jì)算機(jī)的連接,該計(jì)算機(jī)可以是接收編碼:,見頻序列的遠(yuǎn)程計(jì)算才幾。介質(zhì)9可以是網(wǎng)纟各連接,如LAN、WAN、因特網(wǎng)等等。遠(yuǎn)程計(jì)算機(jī)內(nèi)的解碼設(shè)備5對其中包含的編碼顯示進(jìn)行解碼,并可以在遠(yuǎn)程計(jì)算機(jī)屏幕或監(jiān)視器上生成視頻序列20的再現(xiàn)。可以結(jié)合和補(bǔ)充圖1所示和上述的一見頻系統(tǒng)1的方面,以實(shí)現(xiàn)其它實(shí)施例。有許多其它實(shí)現(xiàn)符合本發(fā)明的范圍。此類其它實(shí)現(xiàn)無需限制于視頻,而可以包括音頻或其它媒體形式。先有的視頻編碼技術(shù)通常將一幀(畫面)分解成稱為宏塊的較小像素塊。每個(gè)宏塊可以由一個(gè)像素矩陣組成,通常是16x16的矩陣,定義進(jìn)行編碼的信息單元。因此,像素矩陣;故稱為16x16的宏塊。這些視頻編碼技術(shù)通常將每個(gè)16x16宏塊進(jìn)一步分解為更小的像素矩陣,例如8x8^f象素矩陣或4x4像素矩陣。以下將此類矩陣稱為子塊。在本發(fā)明的一個(gè)實(shí)施例中,一個(gè)16x16宏塊^皮分為16個(gè)4x4子塊。在另一個(gè)實(shí)施例中,一個(gè)16x16宏塊浮皮分為8x8子塊、8x4子塊或4x8子塊。本領(lǐng)域的技術(shù)人員將理解到,本發(fā)明同樣適用于或輕易適合于使用其它子塊或僅使用16x16宏塊而無需將其分解為子塊的系統(tǒng)。此外,先有的編碼技術(shù)利用運(yùn)動(dòng)矢量提供運(yùn)動(dòng)補(bǔ)償和運(yùn)動(dòng)估計(jì)。動(dòng)作矢量描述通過x分量和y分量表示的方向以及16x16宏塊或其各自子塊的運(yùn)動(dòng)量,并作為比特流的一部分發(fā)送到解碼器。如本領(lǐng)域已知,運(yùn)動(dòng)矢量用于雙向編碼的畫面(B畫面)和預(yù)測的畫面(P畫面)。視頻編碼器2進(jìn)行離散余弦變換(DCT)對視頻序列20進(jìn)行編碼和壓縮。簡言之,視頻編碼器2將視頻序列20從空間、時(shí)間域轉(zhuǎn)換為頻域。視頻編碼器2的輸出是被稱為"DCT系數(shù)"的一組信號幅度。量化器接收DCT系數(shù),并在編碼期間為每個(gè)DCT系數(shù)值范圍(或步長)分配一個(gè)值,如小的整數(shù)。量化允許更緊密地表示數(shù)據(jù),但是導(dǎo)致了某些數(shù)據(jù)的丟失。在較精密標(biāo)度上的量化導(dǎo)致較不緊密的表示(較高比特率),但丟失的數(shù)據(jù)也較少。在較粗略標(biāo)度上的量化導(dǎo)致較緊密的表示(較低比特率),但丟失的數(shù)據(jù)也較多。模式選擇器14與視頻編碼器2通信,并監(jiān)視和控制視頻序列20的編碼。模式選擇器14依照本發(fā)明確定預(yù)測模式,根據(jù)該預(yù)測模式視頻編碼器2對視頻序列20進(jìn)行編碼。模式選擇器14可以是處理器或一個(gè)或多個(gè)配置為依照本發(fā)明的方法操作的軟件模塊。為便于說明,圖l將模式選擇器14顯示為與視頻編碼器2分離的組件。本領(lǐng)域的技術(shù)人員將理解到,模式選擇器14的功能性可以和視頻編碼器2的功能性相結(jié)合。編碼設(shè)備3的緩沖器8從視頻編碼器2接收編碼和壓縮的視頻序列(以下稱作"編碼的視頻序列"),并在將編碼的視頻序列發(fā)送到介質(zhì)9之前調(diào)整其比特率??赡苄枰彌_,因?yàn)楦鱾€(gè)視頻圖像可能包含不同數(shù)量的信息,導(dǎo)致從圖像到圖像的編碼效率有所不同。由于緩沖器8的大小有限,所以可以使用到量化器的反饋環(huán)路以避免緩沖器8的溢出或下溢。表示的比特率是為了提供實(shí)時(shí)表示所必需處理的表示數(shù)據(jù)的比率。解碼設(shè)備5執(zhí)行編碼設(shè)備3的相反功能。緩沖器10還用于調(diào)整輸入的編碼視頻序列的比特率。視頻解碼器12結(jié)合模式選擇器16對輸入的視頻序列進(jìn)行解碼和解壓,重建視頻序列。模式選擇器16確定預(yù)測模式,根據(jù)該預(yù)測模式視頻編碼器2對輸入的視頻序列進(jìn)行編碼。解碼設(shè)備5輸出解碼和解壓的視頻序列24,表示為"視頻輸出"(以下稱作"解碼的視頻序列24")。視頻解碼器12從緩沖器10接收表示編碼的視頻序列的比特流(圖1)。在一個(gè)實(shí)施例中,視頻解碼器是包含解碼器控制器、VLC解碼器(可變長編碼,VLC)和重建模塊的常規(guī)視頻解碼器,如MEPG-x解碼器。本領(lǐng)域的技術(shù)人員了解這些元件的操作和功能。本領(lǐng)域的技術(shù)人員了解這些元件,并且這些元件在通常可得到的MPEG文檔和出版物中描述了。圖2是說明視頻序列20的一部分視頻幀30的圖表。如上所述,已知的視頻編碼技術(shù)通常將視頻幀30分解為宏塊36、36a、36b、36c、36d。例如,視頻幀30被分為16x16宏塊36、36a、36b、36c、36d的矩陣。視頻系統(tǒng)1從上到下從左到右對宏塊36、36a、36b、36c、36d逐行進(jìn)行編碼,如通過虛線34所示,說明了例如內(nèi)編碼的次序。在所示的實(shí)施例中,虛線34在宏塊36a即下一個(gè)要編碼的宏塊處結(jié)束。所有之前的宏塊36、36b、36c、36d均已編碼。宏塊36a,作為所有宏塊36、36a、36b、36c、36d的代表,在視頻幀30下面更詳細(xì)地示出了。視頻系統(tǒng)1的視頻編碼技術(shù)將每個(gè)宏塊36、36a、36b、36c、36d進(jìn)一步分解為像素矩陣38,以下稱作子塊38。在一個(gè)實(shí)施例中,子塊38是一個(gè)4x4的像素矩陣,其中16個(gè)像素標(biāo)記為a、b、c.....p(以"行先"的方式)。位于宏塊36a的子塊38正上方的鄰近宏塊36b的相鄰子塊的邊界像素,被標(biāo)記為A、B、C、D。此外,位于子塊38右上方的宏塊36b的子塊的邊界像素,被標(biāo)記為E、F、G、H。同樣,位于宏塊36a的子塊38正左側(cè)的鄰近宏塊36c的相鄰子塊的邊界^f象素,被標(biāo)記為I、J、K、L。位于子塊38左下方的宏塊36c的子塊的邊界像素,被標(biāo)記為M、N、O、P。位于宏塊36a的子塊38左上方的宏塊36d的子塊的邊界像素,^^史標(biāo)記為Q。本發(fā)明的視頻系統(tǒng)1將每個(gè)宏塊36編碼為內(nèi)宏塊。內(nèi)宏塊在沒有運(yùn)動(dòng)補(bǔ)償預(yù)測的情況下被轉(zhuǎn)換編碼。因此,內(nèi)宏塊不涉及之前或之后幀的解碼數(shù)據(jù)。I幀是指完全由內(nèi)宏塊組成的幀。因此,I幀在不涉及之前或之后幀的情況下編碼。I幀也稱為"幀內(nèi)"。圖3是說明可能方向的子塊38,根據(jù)該可能方向可以對子塊38進(jìn)4亍編碼。才艮據(jù)本發(fā)明,可以對宏塊36、36a、36b、36c、36d的子塊以下面列出的九種模式(模式O、模式l.....模式9)之一進(jìn)行內(nèi)編碼。也就是說,特定子塊38可以從當(dāng)前解碼的當(dāng)前子塊上方的子塊預(yù)測("垂直預(yù)測")、從當(dāng)前子塊的左側(cè)子塊預(yù)測("水平預(yù)測,,)或同時(shí)從左側(cè)和上方子塊預(yù)測("對角線預(yù)測,,)。模式l-8按預(yù)定的方向預(yù)測子塊,并且模式0使用統(tǒng)一的平均,不按預(yù)定的方向預(yù)測。在圖3中,每個(gè)方向表示根據(jù)本發(fā)明的八種預(yù)測模式之一。模式0:在此模式中,每個(gè)像素a-p通過下面的公式預(yù)測LjX+5+C+_D+/+1/+ii:+^+48。預(yù)期在此模式及以下模式中,"除法,,表示將結(jié)果向"負(fù)無窮大,,(-oo)舍入。例如,在模式0中,"+4"確保除法產(chǎn)生最接近整數(shù)的舍入。這也適用于其它模式。如果像素a-p的四個(gè)在當(dāng)前編碼的當(dāng)前畫面(幀)之外,則使用其余四個(gè)像素的平均進(jìn)行預(yù)測。如果所有八個(gè)像素均在畫面之外,則這個(gè)子塊中所有像素的預(yù)測是128。因此在模式0中總是可以對子塊進(jìn)行預(yù)測。模式l.-如果像素A、B、C、D在當(dāng)前畫面之內(nèi),則以垂直方向預(yù)測像素a-p,如圖3所示。也就是說,按以下方式預(yù)測像素a-p:<table>tableseeoriginaldocumentpage14</column></row><table>模式2:如杲^f象素I、J、K、L在當(dāng)前畫面之內(nèi),則以水平方向預(yù)測4象素a-p。也就是說,按以下方式預(yù)測像素a-p:<table>tableseeoriginaldocumentpage14</column></row><table>模式3:如果所有像素a-p均在當(dāng)前畫面之內(nèi),則使用此模式。此模式對應(yīng)于以對角線方向預(yù)測,如圖3所示。按以下方式預(yù)測像素a-p:<table>tableseeoriginaldocumentpage15</column></row><table>模式4:如果所有像素a-p均在當(dāng)前畫面之內(nèi),則使用此模式。這也是對角線預(yù)測。<table>tableseeoriginaldocumentpage15</column></row><table>模式5:如杲所有像素a-p均在當(dāng)前畫面之內(nèi),則使用此模式。這也是對角線預(yù)測。<table>tableseeoriginaldocumentpage16</column></row><table>模式6:如杲所有像素a—p均在當(dāng)前畫面之內(nèi),則使用此模式。這是對角線預(yù)測。<table>tableseeoriginaldocumentpage16</column></row><table>模式7:如果所有像素a-p均在當(dāng)前畫面之內(nèi),則使用此模式。這是對角線預(yù)測。<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>模式&如果所有像素a-p均在當(dāng)前畫面之內(nèi),則使用此模式。這是對角線預(yù)測。<table>tableseeoriginaldocumentpage17</column></row><table>在本發(fā)明的一個(gè)實(shí)施例中,模式選擇算法確定選擇九種^^莫式之一的標(biāo)準(zhǔn)。然后按照所選的模式對子塊38進(jìn)行編碼。下面詳細(xì)說明模式選擇算法。圖4是一個(gè)說明根據(jù)本發(fā)明的方法的過程流程圖,其對包含視頻幀流的視頻數(shù)據(jù)進(jìn)行編碼,并選擇一種預(yù)測模式(模式0-8)。在一個(gè)實(shí)施例中,該方法對視頻幀的亮度部分(Y)進(jìn)行編碼。在步驟28中,例如當(dāng)用戶啟動(dòng)視頻系統(tǒng)1時(shí),該過程初始化視頻系統(tǒng)1。初始化過程包括例如確定編碼設(shè)備3是否運(yùn)行以及是否正確連接以接收視頻幀流。在步驟30中,該過程接收視頻幀流,并將每個(gè)視頻幀分為多個(gè)子塊的矩陣,其中每個(gè)子塊包含多個(gè)像素。如上所述,多個(gè)子塊的矩陣可以包括宏塊的一部分的4x4子塊38。在步驟32中,該過程定義九種預(yù)測模式(模式0-8),其中每種預(yù)測模式確定對目前的子塊進(jìn)行編碼的模式。例如,該過程可以執(zhí)行子程序以計(jì)算并定義模式(模式0-8)。在步驟34中,該過程選擇九種預(yù)測模式(模式0-8)之一以對目前的子塊38進(jìn)行編碼。在一個(gè)實(shí)施例中,該過程為每種模式計(jì)算誤差值,確定提供最小誤差值的模式并選擇該模式對目前的子塊38進(jìn)行編碼。一旦該過程選擇了"最好的"預(yù)測模式對目前的子塊38的像素進(jìn)行編碼,該過程就對最小誤差值進(jìn)行編碼,并將壓縮的比特流內(nèi)的編碼的最小誤差值發(fā)送到解碼器。最小誤差值表示目前子塊的預(yù)測像素與子塊的原始像素之間的差異。差異可以使用如本領(lǐng)域已知的DCT、系數(shù)量化和可變長編碼進(jìn)行編碼。解碼器使用預(yù)測的像素和與原始像素的差異來準(zhǔn)確地重建視頻幀。該過程在步驟36結(jié)束。該過程提供了依照九種預(yù)測模式(模式0-8)之一對每個(gè)4x4子塊38進(jìn)行編碼。由于如果直接編碼這可能需要相當(dāng)數(shù)量的比特,所以沖艮據(jù)本發(fā)明的視頻系統(tǒng)1可以應(yīng)用更有效的方式對模式信息進(jìn)行編碼。子塊的預(yù)測模式與相鄰子塊的預(yù)測模式相關(guān)。圖5通過三個(gè)示范子塊A、B、C說明這一點(diǎn)。子塊C是要在預(yù)測模式已知的子塊A、B的幫助下進(jìn)行編碼(預(yù)測)的子塊。子塊A位于子塊C上方,而子塊B位于子塊C左側(cè)。在這種情況下,給出了子塊C的最可能、次最可能等的預(yù)測模式的排序。下面列出了這種排序表的一個(gè)示例。該表分為十個(gè)分組(分組1-分組10)。在每個(gè)分組中,子塊A的各自預(yù)測模式是恒定的(如在分組2中子塊A的模式0是恒定的),而子塊B的預(yù)測模式改變。也就是說,一個(gè)分組內(nèi)子塊A的(恒定的)預(yù)測模式可以與該分組內(nèi)子塊B的九種預(yù)測模式之一相結(jié)合。對于子塊A和B的每個(gè)預(yù)測模式組合,給出了一個(gè)九個(gè)數(shù)字的序列,一個(gè)數(shù)字對應(yīng)于九種才莫式0-9中的一種。例如在分組3中,如果子塊A和子塊B的預(yù)測模式都是模式1,則字符串"l62530487"指示模式1即字符串中的第一數(shù)字是子塊C的最可能的模式。模式6即字符串中的第二數(shù)字是下一個(gè)最可能的模式。在示范字符串中,模式7是最不可能的,因?yàn)閿?shù)字7是字符串中的最后一個(gè)數(shù)字。該字符串將是表示編碼的視頻序列的比特流的一部分。因此,比特流包含表示子塊C所用的模式的信息(ProbO-1)(見表l)。例如,該信息可能指出下一個(gè)最可能的內(nèi)預(yù)測模式是模式6。注意,表中的"-"表示這種情況不會(huì)出現(xiàn)。表l中使用的術(shù)語"外部"指"幀外"。如果子塊A或B在幀內(nèi),但不是內(nèi)編碼(如在P幀中,子塊C可能是內(nèi)編碼,但子塊A或子塊B可以不是內(nèi)編碼),則沒有預(yù)測模式。本發(fā)明過程假定對此類子塊使用模式O。<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table><table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>表1.關(guān)于預(yù)測模式的信息可通過將兩個(gè)子塊38的預(yù)測模式信息結(jié)合在一個(gè)碼字中,進(jìn)行有效地編碼。然后,比特流包含結(jié)果碼字,其中每個(gè)碼字表示兩個(gè)子塊的預(yù)測模式。表2列出了0和80之間的編碼號(CodeNo.)的示范二進(jìn)制碼字。第一子塊的模式的可能性表示為ProbO,而第二子塊的模式的可能性表示為Probl。<table>tableseeoriginaldocumentpage24</column></row><table><table>tableseeoriginaldocumentpage25</column></row><table><table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage27</column></row><table>表2在九種預(yù)測模式(表1)和模式可能性(表1、表2)中,模式選擇算法確定預(yù)測特定子塊所根據(jù)的模式。在本發(fā)明的一個(gè)實(shí)施例中,該算法使用像素a-p和原始幀中的相應(yīng)像素之間的絕對差之和(SAD)和上述模式可能性,來選擇模式。SAD和可能性表用于為特定子塊38選擇模式。該算法對九種可能模式(模式0-8)的每一種計(jì)算參數(shù)uError。提供最小uError的模式即為子塊38選擇的模式。按照如下方式計(jì)算uError:uError=SAD((a,…,p),(原始幀〉)+rd—quant[uMBQP]*uProb,其中SAD((a,…,p),(原始幀))是像素a-p和原始幀中的相應(yīng)像素之間的絕對差之和,其中rd—quant[uMBQP]是由量化參數(shù)uMBQP索引的恒值表。uMBQP由下式主合出constU8rd一quarzt[32]=(U,1,1,U,2,2,2,2,3,3,3,4,4,5,5,6,7,7,8,9,1U2,13,15,17,19,21,24,27,30};以及其中uProb是模式出現(xiàn)的可能性,由在模式可能性表(表1)中的位置而定。例如,子塊A的預(yù)測模式是模式1,且子塊B的預(yù)測模式是模式1。字符串"162530487"表示模式1也是子塊C的最可能模式。模式6是第二最可能的模式等等。這樣,在該算法計(jì)算模式O的uError時(shí),可能性uProb為5。此外,對于模式l,可能性uProb為0,對于模式2,可能性uProb為2,對于模式3,可能性uProb為4,以此類除對視頻幀的亮度部分(Y)進(jìn)行編碼之外,本發(fā)明的視頻系統(tǒng)1還可以預(yù)測視頻幀的色度部分(U、V)。色度部分可以視為色度平面(u面和v面)。通常,色度平面(u面和v面)是亮度平面的四分之一大小。因此,在16xl6宏塊中,相應(yīng)的8x8像素塊同時(shí)存在于U面和V面中。這些8x8的塊被分成4x4的塊。一4殳來講,對色度塊不傳送單獨(dú)的預(yù)測模式。而是將為Y面塊傳送的模式用作為U面和V面塊的預(yù)測模式。圖6示出了根據(jù)一個(gè)實(shí)施例結(jié)合本發(fā)明的理論的視頻裝置。如圖所示,視頻裝置600包含編碼器610和解碼器620,分別連接到裝置的輸入和輸出。如之前所述,編碼器610設(shè)計(jì)用于4矣收視頻幀數(shù)據(jù),將各自的幀數(shù)據(jù)分為宏塊和子塊,并如上所述對子塊進(jìn)行選擇性地內(nèi)編碼。解碼器620設(shè)計(jì)用于接收內(nèi)編碼的子塊,并還原視頻幀數(shù)據(jù),如上所述。編碼器610和解碼器620與如上所述的編碼i殳備1和解碼設(shè)備5的構(gòu)成相似。在各種實(shí)施例中,編碼器610和解碼器620可以共享至少部分其構(gòu)成表和編碼/解碼邏輯(如編碼器610和解碼器620的交叉塊所示的)。在各種實(shí)施例中,視頻裝置600可以是無線移動(dòng)電話、手掌大小的計(jì)算裝置如個(gè)人數(shù)字助理、膝上型計(jì)算裝置、臺(tái)式計(jì)算裝置、服務(wù)器以及其它類似的計(jì)算裝置。在其它實(shí)施例中,視頻裝置600可以是電路板元件,如視頻"附力。,,電路板(也稱為子電路板)、母板以及其它類似的電路板。在另一些其它實(shí)施例中,而不是同時(shí)具有編碼器610和解碼器620,視頻裝置600可以只包含編碼器610,如在視頻攝像機(jī)的情況下,或只包含解碼器620,如在DVD播放機(jī)、電3見機(jī)、顯示監(jiān)視器或機(jī)頂盒的情況下。圖7顯示了包含可記錄々某體700的制造產(chǎn)品,該可記錄々某體700具有實(shí)現(xiàn)上述編碼設(shè)備1和/或解碼設(shè)備5的軟件實(shí)施例的編程指令。編程指令設(shè)計(jì)用于對視頻裝置710進(jìn)行編程,以使^L頻裝置710配備有本發(fā)明的編碼和解碼能力。對于該實(shí)施例,視頻裝置710包含存儲(chǔ)媒體712以存儲(chǔ)至少部分實(shí)現(xiàn)編碼設(shè)備1和/或解碼設(shè)備5的軟件實(shí)施例的工作備份,以及至少一個(gè)連接到存儲(chǔ)媒體712的處理器714以執(zhí)行編程指令。視頻裝置712可以是任何一個(gè)之前列舉的示范裝置或其它類似的寺見頻裝置。產(chǎn)品710可以是例如磁盤、光盤(CD)、DVD或其它類似的計(jì)算機(jī)可讀媒體。在其它實(shí)施例中,產(chǎn)品710可以是分發(fā)服務(wù)器,通過專用和/或公共網(wǎng)絡(luò)如因特網(wǎng)在線分發(fā)編碼設(shè)備1和/或解碼設(shè)備5。在一個(gè)實(shí)施例中,產(chǎn)品710是網(wǎng)頁服務(wù)器。圖8顯示具有相互通信連接的視頻發(fā)送器802和碎見頻接收器804的示范系統(tǒng),視頻發(fā)送器802依照本發(fā)明的理論對視頻進(jìn)行編碼,并將編碼的視頻提供給視頻接收器802,而視頻接收器802又對編碼的-現(xiàn)頻進(jìn)行解碼以再現(xiàn)3見頻。-見頻發(fā)送器802和一見頻4婁收器804分別配備有上述編碼設(shè)備1和解碼設(shè)備5。視頻發(fā)送器802的一個(gè)實(shí)例是視頻服務(wù)器,而視頻接收器的實(shí)例是連接到視頻發(fā)送器802的客戶裝置。在各種備選實(shí)施例中,模式4和6的編碼被簡化,在預(yù)測要編碼的子塊的像素值中只使用要編碼的子塊上方的相鄰子塊的像素。更確切地說,在模式4和6下,要編碼的子塊的像素值按以下方式預(yù)測簡化的模式43=(A+2*B+C+2)/4b,e=(B+2*C+D+2)/4c,f,i=(c+2*DE+2)/4d,g,j,m=(D+2*E+F+2)/4h,k,n-(E+2*F+G+2)/41,o=(F+2*G+H+2)/4P=(G+3*H+2)/4簡化的模式63=(A+B+1)/2;b,i=(B+C+1)/2;c,j=(c+D+1)/2;d,k=(D+E+1)/2;1=(E+F+1)/2,=(A2*B+C+2〉/4f,m-(B+2*C+D+2)/4g,n-(c2*D+E+2)/4h,o-(D+2*E+F+2)/4P=(E+2*F+G+2)/4此外,模式7的編碼被簡化,在預(yù)測要編碼的子塊的像素值中只使用要編碼的子塊左側(cè)的相鄰子塊的像素。更確切地說,要編碼的子塊的像素值按以下方式預(yù)測簡化的模式73=(工+J"+1)/2;b=(工++K+2)/c,s=(J+K+1)/2;d,f=(J+2*K+L+2)/g.i=(K+Ij+1)/2;.h,j=(K+2化+Li+2)/4'.m,o,p=L;在另一些其它實(shí)施例中,宏塊可以分為MxN子塊,其中MxN可以是8x8、8x4或4x8代替。為了便于這部分的說明,如圖9a-9c所示,MxN子塊的像素將被稱為Pij,其中下標(biāo)i表示子塊的行位置,并且在8x8和8x4子塊的情況下可以假定為1到8的值,或在4x8子塊的情況下假定為1到4的值,而下標(biāo)j表示子塊的列位置,并且同樣在8x8和4x8子塊的情況下可以々i定為1到8的值,或在8x4子塊的情況下假定為1到4的值。如圖所示,要編碼的子塊上方的相鄰子塊的預(yù)測器像素被稱為to到t15,而要編碼的子塊左側(cè)的相鄰子塊的預(yù)測器像素被稱為1。到115。對于才莫式0-2,MxN子塊的l象素值,無論MxN是8x8、8x4還是4x8,均按以下方式預(yù)測模式0如VtN和1o-1m可用,Pij=(to+…+tN+10+."+1M+N/2+M/2)/(M+N);否則,如只有t。-tN可用,py=(t0+…+tN+N/2)/N;否則,如只有1。-1m可用,Pij=(l0++lM+M/2)/M;否則Pij=128;i=0-(N-l),j-O-(M-l)。模式l如to-tfj可用i=0-(N-l),j=0-(M-l)。模式2如V1n可用p『ii;i=0-(N-l),j=0-(M-l)。對于模式3-8,MxN子塊的像素值按以下方式預(yù)測模式3如所有t(rtN和1()-1M均可用于預(yù)測<table>tableseeoriginaldocumentpage32</column></row><table>模式4如所有t(rtN和1Q-1M均可用于預(yù)測<table>tableseeoriginaldocumentpage32</column></row><table><table>tableseeoriginaldocumentpage33</column></row><table>模式5如所有t。-tN和1。-1M均可用于預(yù)測,則<table>tableseeoriginaldocumentpage33</column></row><table><table>tableseeoriginaldocumentpage34</column></row><table><table>tableseeoriginaldocumentpage35</column></row><table>模式7如所有to-tw和1o-1m均可用于預(yù)測<table>tableseeoriginaldocumentpage35</column></row><table>模式8如所有to-tN和10-1M均可用于預(yù)測,則<table>tableseeoriginaldocumentpage36</column></row><table>總結(jié)和后記因此,從上述說明中可以看出,已經(jīng)描述了一種對一見頻幀數(shù)據(jù)進(jìn)行內(nèi)編碼和解碼的新穎方法,包括編碼器、解碼器以及結(jié)合該方法的裝置和系統(tǒng)。雖然根據(jù)以上實(shí)施例和應(yīng)用實(shí)例對本發(fā)明進(jìn)行了描述,但本領(lǐng)域的技術(shù)人員必須認(rèn)識(shí)到,本發(fā)明并不限于所述實(shí)施例和應(yīng)用實(shí)例。在所附權(quán)利要求的思想和范圍之內(nèi),可以對本發(fā)明進(jìn)行修改和變更。具體地說,本發(fā)明的部分或全部(如各種操作邏輯)可以在專用集成電路(ASIC)中實(shí)現(xiàn)。因此,描述應(yīng)被-現(xiàn)為說明性的而不是對本發(fā)明的限制。權(quán)利要求1.一種設(shè)備,包括存儲(chǔ)媒體;以及存儲(chǔ)在所述存儲(chǔ)媒體中的多個(gè)指令,所述指令設(shè)計(jì)為至少執(zhí)行(a)對視頻數(shù)據(jù)宏塊進(jìn)行內(nèi)編碼和(b)對內(nèi)編碼的視頻數(shù)據(jù)宏塊進(jìn)行解碼中選擇的一項(xiàng),其中內(nèi)編碼的宏塊包含在第一預(yù)測模式下預(yù)測的像素值的4×4子塊,其中像素值對角線依照以下中選擇的一項(xiàng)進(jìn)行預(yù)測a=(A+2*B+C+2)/4;b,e=(B+2*C+D+2)/4;c,f,i=(C+2*D+E+2)/4;d,g,j,m=(D+2*E+F+2)/4;h,k,n=(E+2*F+G+2)/4;1,o=(F+2*G+H+2)/4;以及p=(G+3*H+2)/4;其中a-d是4×4子塊第一行的預(yù)測像素值,e-h是4×4子塊第二行的預(yù)測像素值,i-1是4×4子塊第三行的預(yù)測像素值,m-p是4×4子塊第四行的預(yù)測像素值,以及A-H是4×4子塊上相鄰子塊的像素的像素值。2.如權(quán)利要求1所述的設(shè)備,其中,所述指令還設(shè)計(jì)為執(zhí)行對宏塊進(jìn)行內(nèi)編碼和對內(nèi)編碼的宏塊進(jìn)行解碼中選擇的一項(xiàng),其中內(nèi)編碼的宏塊包含在第二預(yù)測模式下預(yù)測的像素值的4x4子塊,其中像素對角線依照以下中選擇的一項(xiàng)進(jìn)行預(yù)測<formula>formulaseeoriginaldocumentpage3</formula>3.如權(quán)利要求2所述的設(shè)備,其中,所述指令還設(shè)計(jì)為執(zhí)行對宏塊進(jìn)行內(nèi)編碼和對內(nèi)編碼的宏塊進(jìn)行解碼中選^^的一項(xiàng),其中內(nèi)編碼的宏塊包含在第二預(yù)測模式下預(yù)測的像素值的4x4子塊,其中像素對角線依照以下中選擇的一項(xiàng)進(jìn)行預(yù)測<formula>formulaseeoriginaldocumentpage3</formula>其中I-L是4x4子塊左側(cè)的相鄰子塊的像素的像素值。4.如權(quán)利要求1所述的設(shè)備,其中,所述指令還設(shè)計(jì)為執(zhí)行對宏塊進(jìn)行內(nèi)編碼和對內(nèi)編碼的宏塊進(jìn)行解碼中選擇的一項(xiàng),其中內(nèi)編碼的宏塊包含在第二預(yù)測模式下預(yù)測的像素值的4x4子塊,其中像素對角線依照以下中選擇的一項(xiàng)進(jìn)行預(yù)測a=(工+J+1〉/2;b=(I+2*J+K+2)/4;c,e=(J+K+1)/2;d,f=(J+2*K+L+2)/4;g,i=(K+L+1)/2;h,j=(K+2化+L+2)/4;l,n,k,m,o,p=其中I-L是4x4子塊左側(cè)的相鄰子塊的像素的像素值。5.如權(quán)利要求1所述的設(shè)備,其中,所述設(shè)備還包括連接到所述存儲(chǔ)媒體的處理器以執(zhí)行所述指令。6.如權(quán)利要求1所述的設(shè)備,其中,所述設(shè)備至少包括具有所述存儲(chǔ)媒體和所述指令的編碼器和解碼器中選擇的一項(xiàng)。7.如權(quán)利要求6所述的設(shè)備,其中,所述設(shè)備包括手掌大小的計(jì)算裝置、無線移動(dòng)電話、個(gè)人數(shù)字助理、膝上型計(jì)算裝置、臺(tái)式計(jì)算裝置、機(jī)頂盒、服務(wù)器、光盤播放器、數(shù)字通用盤播放器、電視機(jī)和顯示監(jiān)視器中選擇的一項(xiàng)。8.如權(quán)利要求6所述的設(shè)備,其中,所述設(shè)備包括具有集成視頻能力的母板和視頻子卡。9.一種設(shè)備,包括存儲(chǔ)媒體;以及存儲(chǔ)在所述存儲(chǔ)媒體中的多個(gè)指令,所述指令設(shè)計(jì)為執(zhí)行對視的一項(xiàng),其中內(nèi)編碼的宏塊包含在第一預(yù)測模式下預(yù)測的像素值的4x4子塊,其中像素對角線依照以下中選擇的一項(xiàng)進(jìn)行預(yù)測3=(A+B+1)/2;b,i=(B+C+1)/2;c,j=(c+D+1)/2;d,k=(D+E+1)/2;1=(E+F+1)/2;s=(A+2*B+C+2)/4f,m=(B+2*C+D+2)/4g,n=(c+2*D+E+2)/4h,o=(D+2*E+F+2)/4P=(E+2*F+G+2)/4其中a-d是4x4子塊第一行的預(yù)測像素值,e-h是4x4子塊第二行的預(yù)測像素值,i_l是4x4子塊第三行的預(yù)測像素值,m-p是4x4子塊第四行的預(yù)測像素值,以及A-H是4x4子塊上方的相鄰子塊的像素的像素值。10.如權(quán)利要求8所述的設(shè)備,其中,所述指令還設(shè)計(jì)為執(zhí)行對宏塊進(jìn)行內(nèi)編碼和對內(nèi)編碼的宏塊進(jìn)行解碼中選擇的一項(xiàng),其中內(nèi)編碼的宏塊包含在第二預(yù)測模式下預(yù)測的像素值的4x4子塊,其中像素對角線依照以下中選擇的一項(xiàng)進(jìn)行預(yù)測a=(I+0"+l)/2;b=(I+2*J+K+2)/4;c,e=(J+K+1)/2;d,f=(J+2*K+L+2)/4;g,i=(K+Ii+1)/2;h,j=(K+2*L+Ij+2)/4,.l,m,k,m,o,p=Ij;其中I-L是4x4子塊左側(cè)的相鄰子塊的像素的像素值。11.如權(quán)利要求9所述的設(shè)備,其中,所述設(shè)備還包括連接到所述存儲(chǔ)々某體的處理器以執(zhí)行所述指令。12.如權(quán)利要求9所述的設(shè)備,其中,所述設(shè)備至少包括具有所述存儲(chǔ)媒體和所述指令的編碼器和解碼器中選擇的一項(xiàng)。13.—種設(shè)備,包括存儲(chǔ)媒體;以及存儲(chǔ)在所述存儲(chǔ)媒體中的多個(gè)指令,所述指令設(shè)計(jì)為執(zhí)行對視頻數(shù)據(jù)宏塊進(jìn)行內(nèi)編碼和對內(nèi)編碼的視頻數(shù)據(jù)宏塊進(jìn)行解碼中選擇的一項(xiàng),其中內(nèi)編碼的宏塊包含在預(yù)測模式下預(yù)測的像素值的4x4子塊,其中像素對角線依照以下中選擇的一項(xiàng)進(jìn)4亍預(yù)測a=(I+vJ+l)/2;b=(I+2*J+K+2)/4;c,e=(J+K+1)/2;d,f=(J+2*K+L+2)/4/g,i=(K+Ij+1)/2;h,j=(K+2*Li+Ij+2)/4;l,n,k,m,o,p=其中a-d是4x4子塊第一行的預(yù)測像素值,e-h是4x4子塊第二行的預(yù)測像素值,i-l是4x4子塊第三行的預(yù)測像素值,m-p是4x4子塊第四行的預(yù)測像素值,以及I-L是4x4子塊左側(cè)的相鄰子塊的像素的像素值。14.如權(quán)利要求13所述的設(shè)備,其中,所述設(shè)備還包含連接到所述存儲(chǔ)i某體的處理器以執(zhí)行所述指令。15.如權(quán)利要求13所述的設(shè)備,其中,所述設(shè)備至少包括具有所述存儲(chǔ)媒體和所述指令的編碼器和解碼器中選擇的一項(xiàng)。全文摘要提供簡化的預(yù)測方法,以在多種預(yù)測模式下,對要編碼的視頻數(shù)據(jù)宏塊的4×4子塊的像素值進(jìn)行預(yù)測。此外,提供預(yù)測方法,以在多種預(yù)測模式下,對要編碼的視頻數(shù)據(jù)宏塊的非4×4M×N子塊的像素值進(jìn)行預(yù)測,包括8×8、8×4和4×8子塊。本發(fā)明可以在視頻設(shè)備的編碼器和/或解碼器中實(shí)現(xiàn)。對視頻數(shù)據(jù)進(jìn)行內(nèi)編碼的方法和設(shè)備。文檔編號H04N7/34GK101505429SQ200910128919公開日2009年8月12日申請日期2003年6月12日優(yōu)先權(quán)日2000年12月6日發(fā)明者G·J·孔林申請人:真實(shí)網(wǎng)絡(luò)公司