專利名稱:用于h.264的改進(jìn)的幀內(nèi)塊游蕩刷新的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及視頻通信,并且尤其涉及提供一種更新數(shù)字傳輸?shù)囊曨l圖像、同時(shí)高效地使用給定位預(yù)算(budget)的高效方法。
背景技術(shù):
視頻圖像的數(shù)字化已變得越來越重要。除了視頻圖像數(shù)字化在全球通信(例如視頻會(huì)議)中的應(yīng)用,用于數(shù)字視頻記錄的視頻圖像數(shù)字化也已變得越來越常見。在這些應(yīng)用的每一種中,視頻和伴隨的音頻信息通過包括電話線、綜合服務(wù)數(shù)字網(wǎng)(ISDN)、數(shù)字用戶線(DSL)和射頻的電信鏈路被傳輸,或者記錄在諸如數(shù)字視頻光盤(DVD)和超級視頻光盤(SVCD)的各種媒體裝置上。
目前,視頻數(shù)據(jù)的高效傳輸和接收、以及高效存儲(chǔ)可能需要對視頻和伴隨的音頻數(shù)據(jù)進(jìn)行編碼和壓縮。視頻壓縮編碼是對數(shù)字視頻數(shù)據(jù)進(jìn)行編碼,以致需要較少的存儲(chǔ)器來存儲(chǔ)視頻數(shù)據(jù)、并且減小所需的傳輸帶寬的一種方法。某些壓縮/解壓縮(CODEC)方案經(jīng)常用于壓縮視頻幀,以減小所需的傳輸比特率。因而,CODEC硬件和軟件允許將數(shù)字視頻數(shù)據(jù)壓縮成比原始(即未壓縮的)數(shù)字視頻格式所需的更緊湊的二進(jìn)制格式。
存在幾種對源視頻信號進(jìn)行編碼和壓縮的方法和標(biāo)準(zhǔn)。一些標(biāo)準(zhǔn)是為諸如國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門(ITU-T)建議案H.261、H.263和H.264的特殊應(yīng)用而設(shè)計(jì)的,這些ITU-T建議案H.261、H.263和H.264廣泛地用于視頻會(huì)議應(yīng)用中。另外,運(yùn)動(dòng)圖像專家組頒布的標(biāo)準(zhǔn)(MPEG-2,MPEG-4)已在消費(fèi)者電子設(shè)備和其它應(yīng)用中得到普遍應(yīng)用。這些標(biāo)準(zhǔn)的每一個(gè)在此都被整體引入作為參考。
數(shù)字圖像由單個(gè)象素的網(wǎng)格組成。典型地,整個(gè)圖像不是同時(shí)被處理,而是被分成單獨(dú)處理的塊。每一塊包括預(yù)定數(shù)量的亮度象素(它通常指定象素的亮度)和預(yù)定數(shù)量的色度象素(它通常指定象素的顏色)的矩形網(wǎng)格。預(yù)定數(shù)量的塊組成宏塊,宏塊形成了例如H.264標(biāo)準(zhǔn)中的基本處理單元。另外,在H.264標(biāo)準(zhǔn)中,一組宏塊可以組成被稱為片的更大處理單元。雖然以下描述該處理單元層次的某些方面,但是一般來說,用于對要處理的圖像進(jìn)行基于塊的處理的方法和技術(shù)對于本領(lǐng)域技術(shù)人員是周知的,因此在此不再詳細(xì)地重述。
可以利用兩種基本技術(shù)之一的變型,對圖像數(shù)據(jù)塊進(jìn)行編碼。例如,可以使用“幀內(nèi)”編碼,其中在不參考?xì)v史數(shù)據(jù)、例如來自前一幀的相應(yīng)塊的情況下,對原始塊進(jìn)行編碼。作為替換,可以使用“幀間”編碼,其中根據(jù)圖像數(shù)據(jù)塊與參考數(shù)據(jù)塊、例如來自前一幀的相應(yīng)塊之間的差,來對圖像數(shù)據(jù)塊進(jìn)行編碼。這兩種基本方案的許多變型對于本領(lǐng)域技術(shù)人員都是周知的,因此在此不再詳細(xì)地討論。一般,希望選擇需要最少位數(shù)來描述數(shù)據(jù)塊的編碼技術(shù)。
幀內(nèi)編碼通常需要更多位來表示塊。因此,一般幀間編碼是優(yōu)選的。然而,有這樣一些情況,其中接收器保持的參考圖像塊與發(fā)送器存儲(chǔ)的相應(yīng)參考塊有差異,例如當(dāng)逆離散余弦變換(IDCT)的實(shí)施存在算法差異時(shí),或者當(dāng)出現(xiàn)傳輸錯(cuò)誤時(shí)。因此,當(dāng)發(fā)送器相對于給定參考對塊進(jìn)行編碼時(shí),由接收器重構(gòu)的塊將與發(fā)送器預(yù)期的塊不同。因此,所希望的是,對于以幀間方式對數(shù)據(jù)塊編碼給定次數(shù),至少以幀內(nèi)方式對每一數(shù)據(jù)塊編碼一次。在Bruder的美國專利No.5,644,660中公開了一種用于H.261標(biāo)準(zhǔn)環(huán)境下的這種編碼的技術(shù)的細(xì)節(jié),其在此整體被引入作為參考。
然而,這些先有技術(shù)不適用于更新的編碼標(biāo)準(zhǔn),例如H.264。尤其是,在H.264視頻編解碼器中,除非為幀設(shè)置了“強(qiáng)迫幀內(nèi)(constrained intra)”標(biāo)志,否則總是從相鄰象素來預(yù)測幀內(nèi)塊。如果設(shè)置了“強(qiáng)迫幀內(nèi)”標(biāo)志,則幀中的所有幀內(nèi)塊都只從其它幀內(nèi)塊來預(yù)測,而不必從周圍象素來預(yù)測。因此,如果某人想要通過每一幀發(fā)送一個(gè)或兩個(gè)幀內(nèi)塊,來逐漸地刷新圖像,則他有以下不合乎需要的選擇(1)如果“強(qiáng)迫幀內(nèi)”標(biāo)志被清除了,則由于幀內(nèi)預(yù)測而使得圖像缺陷錯(cuò)誤傳播到幀內(nèi)區(qū)域中,或者(2)如果“強(qiáng)迫幀內(nèi)”標(biāo)志被設(shè)置了,則通過包含幀中的所有幀內(nèi)塊,失掉了H.264視頻編解碼器的重大優(yōu)勢,而不管它們是刷新塊、還是作為幀內(nèi)塊最有效發(fā)送的塊,都被強(qiáng)迫只使用相鄰幀內(nèi)編碼的象素。
因此,需要一種提供改進(jìn)的幀內(nèi)刷新、同時(shí)保持視頻編解碼器的效率、由此提高視頻質(zhì)量的系統(tǒng)和方法。
發(fā)明內(nèi)容
本發(fā)明涉及以下方法視頻編碼器利用分類映射,來發(fā)送用于刷新編碼器的參考幀與解碼器的參考幀之間的差異的象素組。因?yàn)檫@些象素組本質(zhì)上用于糾錯(cuò)任務(wù),因此它們不能基于來自其它象素的信息,這與使用圖像冗余來提高編碼效率的象素組相反。H.264標(biāo)準(zhǔn)明確表示,只有相同片組內(nèi)的宏塊才可以在空間上相互被預(yù)測。H.264也允許發(fā)送用于描述幀中的各個(gè)宏塊被分配給了哪一片組的映射。通過發(fā)送這樣的映射,該映射將小的宏塊子集放入一個(gè)片組中、并將剩余宏塊放入一個(gè)或多個(gè)其它片組中,某人能夠產(chǎn)生使圖像的刷新塊與利用圖像冗余的塊分開的期望效果。進(jìn)一步,通過為每一個(gè)已發(fā)送的幀發(fā)送不同的映射,每個(gè)映射與要在那一幀中被幀內(nèi)刷新的宏塊相一致,則可以實(shí)現(xiàn)逐漸地刷新圖像的所有部分的效果。最后,通過將不同的幀索引分配給每一已發(fā)送的映射,只需要在通信的開始,發(fā)送一次映射描述。使用相同的刷新塊模式(pattern)的所有隨后幀都能夠參考先前發(fā)送的映射索引。其結(jié)果是,僅僅利用在通信開始時(shí)發(fā)送多個(gè)刷新映射的附加信道開銷,來有效地發(fā)送自糾正視頻序列。
本發(fā)明維持最高水平的視頻質(zhì)量和壓縮率,同時(shí)仍然能夠清除H.264會(huì)議中的偶然線路錯(cuò)誤。雖然參考視頻會(huì)議應(yīng)用描述了本發(fā)明,但是可以預(yù)見,本發(fā)明也可有益地應(yīng)用于涉及視頻數(shù)據(jù)數(shù)字化、例如DVD記錄等的其它應(yīng)用中。
圖1所示為,示例性視頻會(huì)議系統(tǒng)的框圖;圖2所示為,圖1的視頻會(huì)議系統(tǒng)的示例性視頻會(huì)議站的框圖;以及圖3所示為,圖2的圖像處理引擎的示例性實(shí)施例的框圖。
具體實(shí)施例方式
圖1顯示了示例性視頻會(huì)議系統(tǒng)100。視頻會(huì)議系統(tǒng)100包括本地視頻會(huì)議站102和通過網(wǎng)絡(luò)106連接的遠(yuǎn)程視頻會(huì)議站104。雖然圖2只顯示了兩個(gè)視頻會(huì)議站102和104,但是本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,更多的視頻會(huì)議站可以連接到視頻會(huì)議系統(tǒng)100。應(yīng)該注意,本系統(tǒng)和方法可以用于通過網(wǎng)絡(luò)來傳輸視頻數(shù)據(jù)的任何通信系統(tǒng)中。網(wǎng)絡(luò)106可以是任何類型的電子傳輸媒介,諸如、但不限于,普通老式電話服務(wù)(POTS),電纜,光纖和無線電傳輸媒介。
圖2所示為,示例性視頻會(huì)議站200的框圖。為簡便起見,將視頻會(huì)議站200描述為本地視頻會(huì)議站102(圖1),雖然遠(yuǎn)程視頻會(huì)議站104(圖1)可以包含類似的配置。在一個(gè)實(shí)施例中,視頻會(huì)議站200包括顯示裝置202、中央處理器(CPU)204、存儲(chǔ)器206、至少一個(gè)視頻捕獲裝置208、圖像處理引擎210和通信接口212。作為替換,也可以將其它裝置提供在視頻會(huì)議站200中,或者并不將所有以上指定的裝置都提供在視頻會(huì)議站200中。
至少一個(gè)視頻捕獲裝置208可以被實(shí)施為電容耦合裝置(CCD)照相機(jī),互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)照相機(jī),或任何其它類型的圖像捕獲裝置。至少一個(gè)視頻捕獲裝置208捕獲用戶、會(huì)議室或其它場景的圖像,并將圖像發(fā)送給圖像處理引擎210。將連同圖3來更詳細(xì)地討論圖像處理引擎210。相反,圖像處理引擎210也將從遠(yuǎn)程視頻會(huì)議站104收到的數(shù)據(jù)分組,變換為供顯示裝置202上顯示用的視頻信號。
圖3是圖2的圖像處理引擎210的示例性實(shí)施例。圖像處理引擎210包括編碼引擎302;傳輸引擎304,其被配置成將每一個(gè)編碼的宏塊放入特殊的格式中,以便通過網(wǎng)絡(luò)傳輸;以及通信緩沖器306。在本發(fā)明的其它實(shí)施例中,傳輸引擎可以是宏塊分組引擎,或者可以不存在,或者可以被結(jié)合到編碼引擎中。另外,圖像處理引擎210可以包括或多或少的元件。
最初,來自視頻捕獲裝置208(圖2)的視頻信號進(jìn)入編碼引擎302,編碼引擎302將每一幀視頻轉(zhuǎn)換成期望的格式,并將每一幀視頻信號變換成一組宏塊。宏塊是這樣的數(shù)據(jù)單元,該數(shù)據(jù)單元包括包含與像元(也稱為象素)相聯(lián)系的亮度分量和色度分量的數(shù)據(jù)塊。例如,在H.264標(biāo)準(zhǔn)中,圖像被分成片。片是一序列宏塊(或者,如果宏塊自適應(yīng)幀/場解碼正在使用中,則是宏塊對)。H.264塊大小不同于H.261和H.263,雖然宏塊仍然相同。僅供參考,H.264允許將宏塊分解為用于幀間塊的不同大小分量,甚至幀內(nèi)塊也允許16象素×16象素模式和4象素×4象素模式。對4×4塊執(zhí)行DCT(離散余弦變換)/量化/IDCT(逆離散余弦變換),而不是象在H.261和H.263中那樣對8×8塊執(zhí)行DCT/量化/IDCT。每個(gè)宏塊都包括一個(gè)16×16亮度和兩個(gè)8×8色度樣本陣列。在4:2:0的色度采樣格式下,宏塊包括4個(gè)8×8亮度數(shù)據(jù)塊和2個(gè)相應(yīng)的8×8色度數(shù)據(jù)塊。8×8數(shù)據(jù)塊是8列乘8行的數(shù)據(jù)矩陣,其中每個(gè)數(shù)據(jù)都對應(yīng)于視頻幀的象素。
然而,應(yīng)該注意,本發(fā)明不限于如同按照慣例定義的宏塊,而可以被延伸到包括亮度和/或色度數(shù)據(jù)的任何數(shù)據(jù)單元。另外,本發(fā)明的范圍覆蓋了其它采樣格式,例如,包括4個(gè)8×8亮度數(shù)據(jù)塊和4個(gè)相應(yīng)的8×8色度數(shù)據(jù)塊的4:2:2色度采樣格式,或者包括4個(gè)8×8亮度數(shù)據(jù)塊和8個(gè)相應(yīng)的8×8色度數(shù)據(jù)塊的4:4:4色度采樣格式。
另外,編碼引擎302對每一個(gè)塊都進(jìn)行編碼,以減少用于代表圖像內(nèi)容的位數(shù)。每個(gè)宏塊可以是“幀內(nèi)編碼的”或“幀間編碼的”,并且視頻幀可以包括幀內(nèi)編碼宏塊和幀間編碼宏塊的組合。在不使用來自其它視頻幀的信息的情況下,對幀內(nèi)編碼宏塊進(jìn)行編碼,即僅僅參考幀內(nèi)編碼幀自己來對幀內(nèi)編碼幀進(jìn)行編碼。作為替換,利用時(shí)間相似性(即,在來自一幀的宏塊與來自先前已編碼幀的緊密匹配宏塊之間存在的相似性),對幀間編碼宏塊進(jìn)行編碼。來自前一參考視頻幀的相應(yīng)宏塊不必位于該前一幀內(nèi)的相同空間位置,而是可以包括與以下象素相聯(lián)系的數(shù)據(jù)這些象素在空間上偏離于與給定宏塊相聯(lián)系的象素。這是使用運(yùn)動(dòng)補(bǔ)償技術(shù)的結(jié)果,運(yùn)動(dòng)補(bǔ)償技術(shù)是本領(lǐng)域技術(shù)人員所周知的,因此在此不重述其細(xì)節(jié)。
優(yōu)選地,編碼引擎302利用刷新機(jī)制對幀的宏塊進(jìn)行幀內(nèi)編碼。刷新機(jī)制是通過對每一幀的特定模式(pattern)的宏塊進(jìn)行幀內(nèi)編碼、來消除編碼器與解碼器參考幀之間不匹配的決定性機(jī)制。供將來參考,通過刷新機(jī)制被幀內(nèi)編碼的宏塊將被稱為刷新幀內(nèi)編碼宏塊。在2002年12月23日提交的、題為“用于視頻錯(cuò)誤隱蔽的動(dòng)態(tài)幀內(nèi)編碼宏塊刷新間隔(Dynamic Intra-coded Macroblock Refresh Interval for Video ErrorConcealment)”的美國專利申請序號no.10/328,513中,討論了刷新機(jī)制的細(xì)節(jié),該專利申請no.10/328,513與本申請一起共同被擁有,并在此被引入作為參考。
編碼引擎302優(yōu)選地產(chǎn)生幀內(nèi)宏塊映射,該映射識別已編碼視頻幀中的哪些宏塊是幀內(nèi)編碼的。在產(chǎn)生幀內(nèi)宏塊映射之后,圖像處理引擎210將該映射發(fā)送給遠(yuǎn)程視頻會(huì)議站104(圖1)。例如,可以將該映射作為與已編碼視頻幀相聯(lián)系的圖像頭數(shù)據(jù)的一部分來發(fā)送,雖然可以使用其它的數(shù)據(jù)字段。
如上所述,視頻序列的每個(gè)圖像都被分成一片或多片。每一片包括一些宏塊。宏塊至片組映射是將圖像的宏塊映射到片組中的一種方法。宏塊至片組映射由一列數(shù)組成,每個(gè)已編碼宏塊一個(gè)數(shù),用于指定每個(gè)已編碼宏塊所屬的片組。
H.264允許靈活宏塊排序,靈活宏塊排序是通過在宏塊至片組映射中指定幀中的各個(gè)宏塊被分配給什么片組而得以實(shí)現(xiàn)的。在編碼處理期間,只能夠?qū)ν黄M中的宏塊進(jìn)行相互預(yù)測。通過發(fā)送多個(gè)映射,每個(gè)映射都將一個(gè)或兩個(gè)不同宏塊放入一個(gè)片組中、并將幀中的剩余宏塊放入另一片組中,然后索引(index)適當(dāng)?shù)挠成洹⒁员愫鸵趲斜粠瑑?nèi)刷新的宏塊相一致,設(shè)計(jì)者能夠在不冒著將錯(cuò)誤傳播到被刷新區(qū)中的風(fēng)險(xiǎn)的情況下,實(shí)現(xiàn)刷新圖像一部分的期望效果。同時(shí),在圖像的剩余部分中保持了編碼效率,這是因?yàn)樗衅渌暮陦K都屬于同一片組。
重要的是,注意在視頻序列/視頻會(huì)議/電影期間,幀內(nèi)宏塊映射只需要發(fā)送一次。H.264標(biāo)準(zhǔn)要求解碼器能夠同時(shí)保留直到256個(gè)宏塊映射。在映射已被發(fā)送之后,編碼器只需通過解碼器用的數(shù)字來訪問那個(gè)映射,以便回憶哪個(gè)映射正用于那個(gè)幀,由此保持了最高水平的編碼效率。
以上已經(jīng)參考示例性實(shí)施例說明了本發(fā)明。顯然,對于本領(lǐng)域技術(shù)人員,在不背離本發(fā)明的更廣精神和范圍的情況下,可以對本發(fā)明進(jìn)行各種更改。進(jìn)一步,雖然在特殊環(huán)境下及用于特殊應(yīng)用的本發(fā)明實(shí)施的情況下描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員應(yīng)該認(rèn)識到,本發(fā)明的有用性不限于此,以及本發(fā)明可以有益地用于許多環(huán)境和實(shí)施中。因此,上述說明和附圖被認(rèn)為是說明性的,而非限制性的。
權(quán)利要求
1.一種對視頻數(shù)據(jù)進(jìn)行編碼的方法,包括以下步驟將每一幀視頻信號都分成多個(gè)宏塊;對于每一幀,將多個(gè)宏塊中要被幀內(nèi)刷新的一個(gè)或多個(gè)宏塊分配給第一片組;對于每一幀,將多個(gè)宏塊中的剩余宏塊分配給一個(gè)或多個(gè)其它片組;產(chǎn)生映射,該映射指示什么宏塊被分配給了第一片組;以及索引用于每一個(gè)隨后幀的映射,以便與要在隨后幀中被幀內(nèi)刷新的宏塊相對應(yīng)。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括步驟將包括多個(gè)宏塊和映射的視頻數(shù)據(jù)發(fā)送給另一個(gè)裝置。
3.一種對視頻信號進(jìn)行解碼的方法,包括以下步驟接收信號,該信號包括多個(gè)宏塊,其中該多個(gè)宏塊中的一個(gè)或多個(gè)被分配給了第一片組,以及剩余宏塊被分配給了一個(gè)或多個(gè)其它片組;以及映射,該映射指示什么宏塊被分配給了第一片組;在不參考未被分配給第一片組的宏塊的情況下,對作為幀內(nèi)編碼宏塊被分配給第一片組的一個(gè)或多個(gè)宏塊進(jìn)行解碼;對被分配給一個(gè)或多個(gè)其它片組的剩余宏塊進(jìn)行解碼;以及從已解碼的宏塊產(chǎn)生視頻幀。
4.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括以下步驟索引用于隨后幀的映射;在不參考未被分配給隨后幀中第一片組的宏塊的情況下,對與隨后幀相對應(yīng)的、且被分配給隨后幀中第一片組的一個(gè)或多個(gè)宏塊進(jìn)行解碼;對與隨后幀相對應(yīng)的剩余宏塊進(jìn)行解碼;以及從已解碼的宏塊產(chǎn)生隨后的視頻幀。
5.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括顯示所產(chǎn)生的幀的步驟。
6.一種存儲(chǔ)器存儲(chǔ)介質(zhì),該存儲(chǔ)器存儲(chǔ)介質(zhì)在其上面存儲(chǔ)了視頻數(shù)據(jù),其中該視頻數(shù)據(jù)被分成一序列幀,每一幀被細(xì)分為多個(gè)宏塊,其中該多個(gè)宏塊中的一個(gè)或多個(gè)被分配給第一片組,并且該多個(gè)宏塊中的剩余宏塊被分配給一個(gè)或多個(gè)其它片組,該視頻數(shù)據(jù)進(jìn)一步包括映射,該映射指示什么宏塊被分配給了第一片組,其中被分配給第一片組的宏塊被編碼為幀內(nèi)塊,以及其中剩余宏塊被編碼為幀內(nèi)或幀間編碼塊。
7.一種對視頻信號進(jìn)行編碼的設(shè)備,該設(shè)備包括中央處理器和圖像處理引擎,其中該設(shè)備被編程,以便將每一幀視頻信號都分成多個(gè)宏塊;將每一幀的多個(gè)宏塊中的要被幀內(nèi)刷新的一個(gè)或多個(gè)宏塊分配給第一片組;將每一幀的多個(gè)宏塊中的剩余宏塊分配給一個(gè)或多個(gè)其它片組;產(chǎn)生映射,該映射指示什么宏塊被分配給了第一片組;以及索引用于每一個(gè)隨后幀的映射,以便與要在隨后幀中被幀內(nèi)刷新的宏塊相對應(yīng)。
8.根據(jù)權(quán)利要求7所述的設(shè)備,進(jìn)一步包括視頻捕獲裝置。
9.一種對視頻數(shù)據(jù)進(jìn)行解碼的設(shè)備,該設(shè)備包括中央處理器,且該設(shè)備被編程,以便接收信號,該信號包括多個(gè)宏塊,其中該多個(gè)宏塊中的一個(gè)或多個(gè)被分配給了第一片組,以及剩余宏塊被分配給了一個(gè)或多個(gè)其它片組;以及映射,該映射指示什么宏塊被分配給了第一片組;在不參考第一片組之外的宏塊的情況下,對作為幀內(nèi)編碼宏塊被分配給第一片組的一個(gè)或多個(gè)宏塊進(jìn)行解碼;對作為幀內(nèi)或幀間編碼宏塊被分配給一個(gè)或多個(gè)其它片組的剩余宏塊進(jìn)行解碼;以及從已解碼的宏塊產(chǎn)生視頻幀。
10.根據(jù)權(quán)利要求9所述的設(shè)備,進(jìn)一步包括顯示裝置,其中中央處理器被編程,以便實(shí)現(xiàn)所產(chǎn)生的視頻幀在該顯示裝置上的顯示。
全文摘要
一種用于數(shù)字視頻編碼的設(shè)備和方法。所公開的系統(tǒng)提供了一種校正解碼器中參考塊的偏差、同時(shí)使更新參考塊所需的系統(tǒng)開銷最小化的改進(jìn)方法。
文檔編號H04N7/50GK1668112SQ200510054148
公開日2005年9月14日 申請日期2005年3月9日 優(yōu)先權(quán)日2004年3月12日
發(fā)明者約翰·塞維爾斯 申請人:寶利通公司