專利名稱:用于視頻序列中錯(cuò)誤隱藏的方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及視頻編碼,并且尤其涉及隱藏由錯(cuò)誤引入的人為圖像失真。
背景技術(shù):
視頻序列由一系列靜止圖象或幀組成。視頻壓縮方法是基于減少視頻序列中冗余和與知覺無關(guān)的部分。視頻序列中的冗余可以分為光譜、空間和時(shí)間冗余。光譜冗余指同一幅圖象的不同顏色成分之間的相似性。空間冗余源于一幅圖象中相鄰象素之間的相似性。時(shí)間冗余的存在是因?yàn)槌霈F(xiàn)在以前圖象幀中的物體還可能出現(xiàn)在當(dāng)前的圖象幀中。可以通過利用這種時(shí)間冗余并從被稱為參考圖象的別的圖象預(yù)測當(dāng)前圖象來實(shí)現(xiàn)壓縮。通過生成描述當(dāng)前圖象和參考圖象之間運(yùn)動(dòng)的運(yùn)動(dòng)補(bǔ)償數(shù)據(jù)實(shí)現(xiàn)了進(jìn)一步的壓縮。
視頻壓縮方法典型地區(qū)分利用時(shí)間冗余減少的圖像和不利用時(shí)間冗余減少的圖象。不利用時(shí)間冗余減少的方法的壓縮圖象通常被稱為INTRA-(或者I-)幀或者圖象。時(shí)域預(yù)測圖象通常由出現(xiàn)在當(dāng)前圖象之前的圖象來前向預(yù)測,并被稱為INTER-或者P-幀。典型地,壓縮的視頻片段由圖象序列組成,其能被粗略的分為時(shí)域無關(guān)的INTRA圖象和時(shí)域差分編碼的INTER圖象。典型地,INTRA圖象被用來在重建的視頻信號中阻止傳輸錯(cuò)誤的時(shí)域傳播,以及提供進(jìn)入視頻比特流的隨機(jī)存取點(diǎn)。因?yàn)镮NTRA圖象提供的壓縮效率通常比INTER圖象提供的低,因此通常很少用它,特別是在低比特率的應(yīng)用中。
視頻序列可以由許多攝影機(jī)場景(scene)或者鏡頭(shot)組成。鏡頭被定義為使用一個(gè)攝影機(jī)拍攝的一組連續(xù)的幀或者圖象。通常而言,一個(gè)鏡頭中的幀是高度相關(guān)的。但是,在一個(gè)典型的視頻序列中,圖象內(nèi)容從一個(gè)場景到另一個(gè)場景是顯著不同的,因此一個(gè)場景的第一個(gè)圖象通常是INTRA編碼的。視頻序列中不同鏡頭之間的變化被稱為“場景過渡”。場景過渡可以采取許多不同的形式。比如,一個(gè)鏡頭結(jié)束,而另一個(gè)以“場景剪輯”突然開始。在其他情形,場景過渡是漸變的,并發(fā)生在多于一個(gè)的幀中。漸變的場景過渡的例子是“消隱”、“淡變”(淡入、淡出)和“劃變(wipe)”。
壓縮視頻很容易被傳輸錯(cuò)誤損壞,主要有兩個(gè)原因。首先,由于利用了時(shí)域預(yù)測差分編碼(INTER幀),所以錯(cuò)誤會(huì)在空間和時(shí)間上傳播。其次,使用變長編碼使得視頻比特流更容易出錯(cuò)。接收器(視頻解碼器)有許多方法來尋址在傳輸路徑中引入的損壞。通常而言,當(dāng)接收到信號時(shí),傳輸錯(cuò)誤首先被檢測,并且然后被解碼器校正或者隱藏。術(shù)語“錯(cuò)誤校正”指完全地恢復(fù)錯(cuò)誤數(shù)據(jù)的過程,如同本來就沒有引入錯(cuò)誤,而“錯(cuò)誤隱藏”指隱藏傳輸錯(cuò)誤的影響的過程,使之在重建的視頻序列中幾乎不可見。
目前,由ISO/IEC運(yùn)動(dòng)圖象專家組和ITU-T視頻編碼專家組組成的聯(lián)合視頻組(JVT)為ITU-T H.264/MPEG-4第10部分AVC視頻編解碼器開發(fā)的視頻解碼器缺乏一種用于決定如何隱藏INTRA編碼幀和場景過渡幀中的傳輸錯(cuò)誤的方法,并且正是在這種情況下,開發(fā)了本發(fā)明。
發(fā)明概要本發(fā)明的目的是提供一種為屬于視頻序列中場景過渡的幀選擇合適的錯(cuò)誤隱藏形式的方法。該方法同樣適用于突變的場景過渡(即場景剪輯)和漸變的場景過渡,比如淡變、劃變和消隱等。
為了對屬于場景過渡的幀進(jìn)行有效的錯(cuò)誤隱藏,需要兩種信息1)鏡頭變化開始和結(jié)束所在幀的信息;以及2)涉及的場景過渡的類型(剪輯、消隱、淡變、劃變等)。因?yàn)檎_解碼視頻編碼層(VCL)數(shù)據(jù)時(shí)不需要?jiǎng)偛潘龅膬煞N類型的信息,所以本發(fā)明建議與場景過渡相關(guān)的信息以附加增強(qiáng)信息(SEI)來提供,并被包括在作為附加增強(qiáng)信息(SEI)消息的已編碼的視頻比特流中。于是隱藏發(fā)生在屬于場景過渡的幀中的錯(cuò)誤所需要的所有必需信息可以從SEI消息中推出。
依照本發(fā)明,視頻序列中每一個(gè)場景與場景標(biāo)識符值相關(guān)。連續(xù)場景的場景標(biāo)識符值彼此不同,這樣,當(dāng)視頻解碼器接收的場景標(biāo)識符和先前接收的不同時(shí),它就可以斷定已經(jīng)發(fā)生了場景變化。在一個(gè)場景過渡周期中的幀與兩個(gè)場景標(biāo)識符值相關(guān),兩個(gè)過渡場景每個(gè)都有一個(gè)。此外,漸變場景過渡與特定的過渡類型相關(guān),其可以是消隱、淡入、淡出、劃變或者以上都不是(即某種其它類型的過渡)。這個(gè)粗略的分類為解碼器提供了足夠的指導(dǎo),允許其在場景過渡時(shí)對數(shù)據(jù)丟失或者損壞選擇合適的錯(cuò)誤隱藏算法。
這樣,依照本發(fā)明的第一個(gè)方面,提供了一種用于隱藏視頻序列的幀中錯(cuò)誤的方法,該視頻序列至少包含第一個(gè)場景和第二個(gè)場景,第二個(gè)場景具有源于第一個(gè)場景的場景過渡,其中,場景過渡包含多個(gè)幀,并且場景過渡是多種類型中的一種。該方法包括識別場景過渡的類型;以及基于識別的場景過渡類型,應(yīng)用錯(cuò)誤隱藏過程來隱藏屬于該過渡的幀中的錯(cuò)誤。
所識別的場景過渡的類型可以是場景剪輯或者是漸變場景過渡。
優(yōu)選地,如果屬于場景剪輯的整幅圖象丟失,則不隱藏丟失的圖象。
優(yōu)選地,如果屬于場景剪輯的部分圖象丟失或者損壞,則應(yīng)用空間錯(cuò)誤隱藏算法來隱藏該圖象丟失或者損壞的部分。
優(yōu)選地,如果屬于漸變過渡的整幅圖象丟失或者損壞,則應(yīng)用空間-時(shí)間錯(cuò)誤隱藏算法來隱藏該圖象丟失或者損壞的部分。
優(yōu)選地,如果屬于漸變過渡的部分圖象丟失或者損壞,則應(yīng)用空間-時(shí)間錯(cuò)誤隱藏算法來隱藏該圖象丟失或者損壞的部分。
優(yōu)選地,在附加增強(qiáng)信息消息中向解碼器提供所識別的場景過渡的指示信息,使得解碼器能基于所述信息來隱藏錯(cuò)誤。
有利地,所識別的場景過渡的指示信息包括場景過渡類型的指示,并向?qū)儆谠撨^渡的每個(gè)幀提供所確定的場景過渡的指示信息。
依照本發(fā)明的第二個(gè)方面,提供了一種用來將視頻序列編碼為數(shù)據(jù)流的視頻編碼設(shè)備,該視頻序列至少包含一個(gè)第一場景和一個(gè)第二場景以及具有源于第一場景的場景過渡,其中,場景過渡包含多個(gè)幀,并且場景過渡是多種類型中的一種。該視頻編碼設(shè)備包括用來識別與過渡相關(guān)的幀的裝置;用來提供關(guān)于過渡類型的信息的裝置。
依照本發(fā)明的第三個(gè)方面,提供了一種用來從數(shù)據(jù)流中解碼視頻序列的視頻解碼設(shè)備,該視頻序列至少包含一個(gè)第一場景和一個(gè)第二場景以及具有源自第一場景的場景過渡,其中,場景過渡包含多個(gè)幀,并且場景過渡是多種類型中的一種。該視頻編碼設(shè)備包括用來接收數(shù)據(jù)流的裝置;以及基于場景過渡的類型,用來隱藏屬于該過渡的幀中的錯(cuò)誤的錯(cuò)誤隱藏算法。在結(jié)合
圖1至3閱讀描述時(shí),本發(fā)明將是顯而易見的。
附圖簡述圖1是依照本發(fā)明說明錯(cuò)誤隱藏方法的流程圖,顯示了如何依照場景過渡的類型來為場景過渡中的圖象選擇合適的錯(cuò)誤隱藏方法。
圖2是說明依照本發(fā)明實(shí)現(xiàn)的用于提供編碼數(shù)據(jù)流的視頻編碼器的框圖,該編碼數(shù)據(jù)流為了錯(cuò)誤隱藏的目的而包括場景過渡指示信息。
圖3是說明依照本發(fā)明及對應(yīng)于圖2圖示的視頻編碼器實(shí)現(xiàn)的視頻解碼器的框圖。
實(shí)現(xiàn)本發(fā)明的最佳方式如上所述,包括在已編碼的視頻比特流中的附加增強(qiáng)信息(SEI)包含對正確地解碼已編碼的視頻數(shù)據(jù)非必需的信息,但是,它在用于解碼或者顯示的目的時(shí)仍然有用。這樣,SEI信息是用于攜帶關(guān)于視頻序列中特定幀屬于的場景的信息和用于提供關(guān)于場景過渡的信息的理想載體。
依照ITU-T H.264/MPEG-4第10部分AVC視頻編碼標(biāo)準(zhǔn),SEI元素包含一個(gè)或者多個(gè)SEI消息。每個(gè)SEI消息由一個(gè)SEI報(bào)頭和一個(gè)SEI有效載荷組成。SEI有效載荷的類型和大小使用可擴(kuò)展的語法編碼。SEI有效載荷的大小用字節(jié)表示。有效的SEI有效載荷類型列在JVT委員會(huì)草案的附件C中(參見文件JVT_D015d5)。
SEI有效載荷可以是SEI有效載荷報(bào)頭。比如,有效載荷報(bào)頭可以表示特定數(shù)據(jù)屬于的圖象。每種有效載荷類型分別定義有效載荷報(bào)頭。SEI有效載荷的定義在JVT委員會(huì)草案的附件C中被詳細(xì)說明(再次參見文件JVT_D015d5)。
SEI單元的傳輸相對于其它的NAL(網(wǎng)絡(luò)抽象層)單元是同步的。SEI消息可以涉及片段、圖象的部分、圖象、任意的圖象組、過去的序列、正在被解碼的序列、或者將在未來被解碼的序列。SEI消息也可以涉及傳輸順序上排在前邊或后邊的一個(gè)或者多個(gè)NAL單元。
下面的表1定義了如在ITU-T H.264/MPEG-4第10部分AVC視頻編碼標(biāo)準(zhǔn)中使用的SEI有效載荷的語法,而表2呈現(xiàn)了如依照本發(fā)明建議的用在與場景信息發(fā)信相關(guān)的特定語法。
表1SEI有效載荷語法
表2SEI場景信息語法表2中給出的場景信息參數(shù)涉及包括按傳輸順序的已編碼的宏塊數(shù)據(jù)的下一個(gè)NAL單元。
scene_identifier場景被定義為一個(gè)攝影機(jī)拍攝的一組連續(xù)幀。通常而言,一個(gè)場景中的幀是高度相關(guān)的。依照本發(fā)明,給定的場景中的幀共用同樣的scene_identifier參數(shù)值,并且編碼順序上連續(xù)的場景不應(yīng)該具有同樣的scene_identifier參數(shù)值。
second_scene_identifier如果存在,則second_scene_identifier參數(shù)表示下一個(gè)包含已編碼宏塊數(shù)據(jù)的NAL單元屬于包含來自兩個(gè)場景的圖象數(shù)據(jù)的幀。換言之,該幀屬于漸變場景過渡。second_scene_identifier參數(shù)按編碼順序是后面場景的場景標(biāo)識符。
scene_transition_type如果在SEI場景信息中不存在scene_transition_type參數(shù),則這表示該場景過渡類型未知、未定義或者無關(guān)。如果存在,則以下表3中給出的值是有效的。
表3依照本發(fā)明的一個(gè)優(yōu)選實(shí)施例的場景過渡類型現(xiàn)在將描述上述場景信息用在解碼過程中處理數(shù)據(jù)丟失或者損壞的方法。
如果整幅圖象正好在當(dāng)前圖象之前丟失并且自先前接收的圖象起場景已發(fā)生變化,則不應(yīng)該隱藏丟失的圖象,因?yàn)樗_始了新的場景。如果整幅圖象正好在當(dāng)前圖象之前丟失并且自先前接收的圖象起沒有場景變化發(fā)生,則解碼器隱藏丟失的圖象。如果在過渡周期中丟失整幅圖象,則解碼器在隱藏丟失圖象時(shí)利用指示的場景過渡類型。
如果當(dāng)前圖象的部分丟失或者損壞,且如果場景信息SEI消息與該圖象相關(guān),則解碼器進(jìn)行如下操作1).如果自先前的圖象被接收以來場景已發(fā)生變化,則解碼器應(yīng)用空間錯(cuò)誤隱藏算法來隱藏當(dāng)前圖象丟失或者損壞的部分。
2).如果自先前接收的圖象起場景還未發(fā)生變化,則解碼器使用空間-時(shí)間錯(cuò)誤隱藏算法。
3).如果當(dāng)前圖象屬于場景過渡,則解碼器在隱藏丟失圖象時(shí)利用指示的場景過渡類型。
依照本發(fā)明,如果編碼器工作在易于發(fā)生錯(cuò)誤的傳輸環(huán)境或者需要基于已編碼的視頻信號生成視頻內(nèi)容描述,則編碼器應(yīng)該生成場景信息SEI消息。即使不立即需要內(nèi)容描述,也會(huì)對一些類型的視頻內(nèi)容在后來出現(xiàn)需要,比如娛樂節(jié)目視頻。因此,依照本發(fā)明,如果可能,優(yōu)選的是編碼器總是生成場景信息SEI消息。
因此,編碼器為每個(gè)場景剪輯和漸變過渡都生成場景信息SEI消息。對每一個(gè)場景剪輯圖象,有以后可以被重復(fù)以用于容錯(cuò)彈性的相關(guān)的場景信息SEI消息。對每個(gè)漸變場景過渡,有與第一幅過渡圖象(即由過渡起始和過渡結(jié)束場景組成的第一幅圖象)相關(guān)的(優(yōu)選是重復(fù)的)場景信息SEI消息。對每個(gè)漸變場景過渡,也有和最后一幅過渡圖象(最后一幅過渡圖象指由過渡起始和過渡接收場景組成的最后一幅圖象)之后的第一幅圖象相關(guān)聯(lián)的(優(yōu)選是重復(fù)的)場景信息SEI消息。如上所述,scene_identifier參數(shù)的值在連續(xù)場景中是不同的。
在面向分組的傳輸環(huán)境中,如果可能,傳輸分組器將每個(gè)場景信息SEI消息至少復(fù)制到兩個(gè)分組中,以便保證正確接收至少一個(gè)出現(xiàn)的消息。在RTP傳輸中,分組器使用復(fù)合分組來將場景信息SEI消息與已編碼的圖象內(nèi)容相關(guān)聯(lián)。在面向字節(jié)流的傳輸環(huán)境中,每個(gè)場景信息SEI消息至少被復(fù)制。
依照本發(fā)明的通過發(fā)信號來指明鏡頭變化以在視頻序列進(jìn)行錯(cuò)誤隱藏的方法在圖1的流程圖100中進(jìn)行了說明。
當(dāng)解碼器在解碼過程中遇到數(shù)據(jù)丟失或者損壞時(shí),解碼器在步驟110中判定該丟失或者損壞的圖象是整幅圖象還是圖象的一部分。如果整幅圖象已丟失,則解碼器確定發(fā)生了何種類型的丟失情形(步驟120)。如果整幅圖象正好在當(dāng)前圖象之前丟失并且自先前接收的圖象起場景已發(fā)生變化(比如,如在接收的SEI信息中的scene_identifier參數(shù)值指示的),則不應(yīng)該隱藏丟失的圖象,因?yàn)檫@種情況下,如上所述,丟失的圖象表示了新場景的開始(步驟124)。如果整幅圖象正好在當(dāng)前圖象之前丟失并且自先前接收的圖象起沒有場景變化發(fā)生,則解碼器隱藏丟失的圖象,如步驟122所示。如果在過渡周期中丟失了整幅圖象,則解碼器在隱藏丟失圖象時(shí)利用指示的場景過渡類型(從接收的SEI信息中獲得),如步驟126所示。
如果已丟失了部分圖象,則解碼器確定發(fā)生了何種類型的丟失情形(步驟130)。如果部分當(dāng)前圖象被丟失或者損壞,且如果場景信息SEI消息與該圖象相關(guān)聯(lián),則解碼器進(jìn)行如下操作如果自先前接收的圖象起場景已發(fā)生了變化,則解碼器應(yīng)用空間錯(cuò)誤隱藏算法來隱藏當(dāng)前圖象丟失或者損壞的部分,如步驟134所示。如果自先前接收的圖象起場景還沒有發(fā)生變化,則解碼器應(yīng)用空間-時(shí)間錯(cuò)誤隱藏算法,如步驟132所示。如果當(dāng)前圖象屬于場景過渡,則解碼器在隱藏丟失圖象時(shí)使用指示的場景過渡類型,如步驟136所示。
為了執(zhí)行如圖1的流程圖100所示的錯(cuò)誤隱藏方法,依照本發(fā)明實(shí)現(xiàn)的視頻編碼器應(yīng)該能夠監(jiān)控場景改變并在編碼器生成的比特流中傳送指示場景改變的信息。這種視頻編碼器200的框圖如圖2所示。如圖所示,依照本發(fā)明實(shí)現(xiàn)的視頻編碼器包括場景過渡監(jiān)控器210、編碼引擎220、控制單元230和多路復(fù)用器/分組器單元240。表示視頻序列的視頻輸入信號被施加至視頻編碼器的輸入端,并經(jīng)場景過渡監(jiān)控器210饋送至視頻編碼引擎220,視頻序列的各個(gè)幀在此處被編碼,比如以INTRA或者INTER格式。場景過渡監(jiān)控器檢查幀,比如通過計(jì)算序列的連續(xù)幀中的象素間的絕對差別的累積總數(shù),或者通過應(yīng)用現(xiàn)有技術(shù)中已知的任何其它場景檢測方法,以便識別組成該視頻序列的不同場景。場景過渡監(jiān)控器210向控制單元230提供每一幀所屬場景的指示。當(dāng)檢測到場景間的過渡(比如場景剪輯、淡變、消隱、劃變等)時(shí),場景過渡監(jiān)控器210還會(huì)向控制單元230提供過渡類型指示??刂茊卧o由場景過渡監(jiān)控器確定的每一個(gè)場景分配標(biāo)識符(例如一個(gè)數(shù)),并將該標(biāo)識符與確定屬于所考慮場景的每個(gè)幀相關(guān)聯(lián)。此外,當(dāng)檢測到場景過渡時(shí),控制單元230指導(dǎo)視頻編碼引擎220以INTRA編碼格式來對新場景的第一個(gè)幀進(jìn)行編碼。有利地,所有屬于新場景的后續(xù)幀然后以INTER編碼格式編碼,除非出于某種原因必須用另外的格式來對給定幀編碼。在本發(fā)明優(yōu)選實(shí)施例中,控制單元230將附加增強(qiáng)信息(SEI信息)與屬于場景過渡的每一幀都關(guān)聯(lián),并將SEI信息傳給多路復(fù)用器/分組器單元240。有利地,如在本文早前提出的、先前在用于實(shí)現(xiàn)本發(fā)明的最佳方式中所描述的那樣形成用于組成場景過渡的部分的幀的SEI信息。多路復(fù)用器/分組器還從視頻編碼引擎220接收編碼的視頻數(shù)據(jù),并由已編碼的視頻數(shù)據(jù)和SEI信息形成單個(gè)比特流。然后傳輸比特流,比如通過傳輸信道傳輸至相應(yīng)的視頻解碼器(見圖3)或者傳輸?shù)酱鎯?chǔ)設(shè)備(未示出)用于以后的檢索和觀看。
圖3是依照本發(fā)明實(shí)現(xiàn)的且與結(jié)合圖2描述的視頻編碼器相對應(yīng)的視頻解碼器300的框圖。由圖3可知,依照本發(fā)明的視頻解碼器包括去分組器/分離器310、控制單元320、錯(cuò)誤隱藏單元330和視頻解碼引擎340。去分組器/分離器以數(shù)據(jù)分組的形式從傳輸信道接收表示視頻序列的已編碼比特流。它從接收的數(shù)據(jù)分組重建已編碼的視頻比特流,并將視頻比特流分成其組成部分(即分成與該序列的已編碼視頻幀相關(guān)的不同類型的信息)。依照本發(fā)明,去分組器/分離器從已編碼的視頻比特流中提取出包含其中與場景過渡有關(guān)的信息的附加增強(qiáng)信息,并將SEI信息傳送至控制單元320。用來解碼已編碼視頻幀必需的數(shù)據(jù)從去分組器/分離器310被傳送至解碼引擎340,視頻序列的各個(gè)幀在此處被重建,比如使用INTRA和INTER解碼技術(shù)。當(dāng)每一幀被解碼時(shí),視頻解碼引擎340檢查接收的視頻數(shù)據(jù)來尋找來自編碼器的已編碼視頻比特流在傳輸信道上傳輸時(shí)引入的錯(cuò)誤。如果視頻解碼引擎檢測到特定幀包含這種錯(cuò)誤或者該幀被嚴(yán)重?fù)p壞以至其根本不能被解碼(即該幀實(shí)際上被丟失),則它試圖使用合適的錯(cuò)誤隱藏算法來隱藏該錯(cuò)誤或者整個(gè)幀。依照本發(fā)明,由錯(cuò)誤隱藏單元330來選擇合適的錯(cuò)誤隱藏方法。錯(cuò)誤隱藏單元從控制單元320接收關(guān)于每一幀所屬場景的信息。在幀是場景過渡的部分的情況下,控制單元320還會(huì)向錯(cuò)誤隱藏單元傳送有關(guān)場景過渡類型的信息。這樣,當(dāng)解碼引擎340檢測到影響場景過渡的部分的幀的錯(cuò)誤時(shí),錯(cuò)誤隱藏單元330能夠通過考慮該幀所屬的場景以及考慮場景過渡類型來選擇合適的隱藏錯(cuò)誤的方法。優(yōu)選地,在做出這種選擇時(shí),錯(cuò)誤隱藏單元330應(yīng)用上面提出的實(shí)現(xiàn)本發(fā)明的最佳方式中描述的選擇方法。視頻解碼引擎340然后利用選擇的錯(cuò)誤隱藏算法來在該幀中隱藏錯(cuò)誤,并輸出該已解碼的幀,比如用于在顯示設(shè)備上顯示(未示出)。
為了驗(yàn)證依照本發(fā)明的用于場景剪輯和場景過渡幀的錯(cuò)誤隱藏方法的有效性,使用依照ITU-T H.264/MPEG-4第10部分AVC視頻編碼標(biāo)準(zhǔn)實(shí)現(xiàn)的視頻編碼器和解碼器來完成了一系列模擬實(shí)驗(yàn),修改使之能依照本發(fā)明的方法來工作。這些模擬實(shí)驗(yàn)將在下面詳細(xì)介紹。
A 隨機(jī)存取幀和場景剪輯中錯(cuò)誤隱藏的模擬在此模擬中,使用文件VCEG-N79rl中建議的序列和比特率,而且應(yīng)用用于丟失分組環(huán)境的通常情形(如VCEG-N79rl所定義)。此外,為了模擬場景剪輯幀中錯(cuò)誤隱藏的效果,由著名的序列″News″、″Foreman″、″Coastguard″、″Carphone″和″Silent″來構(gòu)造具有常規(guī)場景剪輯的30幀的人造序列。下面,這個(gè)人造序列被稱為“MixedSeq”。在所有的情況下,使用大約1秒的INTRA幀周期來允許頻繁的隨機(jī)存取。對于MixedSeq,這樣一個(gè)INTRA周期使得所有的場景剪輯都被INTRA編碼。還使用了發(fā)覺丟失的R/D優(yōu)化(LA-RDO)。用來編碼該序列的其它編碼參數(shù)如以下表4所示
表4模擬隨機(jī)存取幀和場景剪輯中的錯(cuò)誤隱藏使用的編碼器參數(shù)錯(cuò)誤隱藏依照上述的實(shí)現(xiàn)本發(fā)明的最佳方式中提出的準(zhǔn)則模擬依照本發(fā)明的方法在編碼器中生成場景信息SEI消息,并比較兩個(gè)解碼器過程1.標(biāo)準(zhǔn)的聯(lián)合模型解碼器,包括在JVT工作草案附錄D(參見文件JVT-C039)中描述的錯(cuò)誤隱藏方法。
2.依照本發(fā)明利用解碼器過程增強(qiáng)的聯(lián)合模型解碼器。
比特率和PSNR計(jì)算如在文件VCEG-N79rl中指定的通常條件下所述的,選擇諸如量化參數(shù)之類的編碼參數(shù)以使所得的比特率盡可能地接近信道比特率,考慮了每個(gè)分組中40字節(jié)的IP/UDP/RTP報(bào)頭。使用包括跳幀和丟失幀的源序列中每一幀來計(jì)算PSNR值。為了減少第一幀(第一編碼幀的平均大小大于整個(gè)序列的平均大小)施加在整體結(jié)果上的影響,從第六編碼幀來計(jì)算比特率和平均PSNR值。此方法使得短序列的編碼有公平的結(jié)果。不是對4000幀編碼,而是使用每個(gè)指定序列的300-400幀,以確保至少100幀被編碼,而且至少300幀被使用。
丟失分組模擬在本模擬中,假定包含參數(shù)組(表4)的分組被可靠地傳送(比如通過在對話建立期間帶外的方法),因此,不從錯(cuò)誤模式文件為其讀出錯(cuò)誤模式。第一幀中的至少一個(gè)分組應(yīng)該被接收以避免解碼器崩潰。為了滿足這個(gè)條件,不管相應(yīng)的錯(cuò)誤模式,第一個(gè)幀的第一個(gè)分組總是被接收。
典型的解碼運(yùn)行已編碼的數(shù)據(jù)流被多次解碼(每次被稱作解碼運(yùn)行)。第n+1次運(yùn)行的開始丟失位置連續(xù)跟隨在第n次運(yùn)行的結(jié)束丟失位置。選擇解碼運(yùn)行的數(shù)量以便總共至少有8000個(gè)分組??偟钠骄鵓SNR通過平均所有解碼運(yùn)行的平均PSNR值來獲得。選擇典型的解碼運(yùn)行以使其平均PSNR最接近總的平均PSNR。該典型運(yùn)行的瞬時(shí)PSNR值和解碼序列被存儲(chǔ)來繪制瞬時(shí)PSNR圖和用于主觀質(zhì)量評價(jià)。
結(jié)果如MixedSeq@144kbps的模擬結(jié)果所示,在以下表11中給出的,在客觀和主觀質(zhì)量方面,在場景剪輯中使用INTRA錯(cuò)誤隱藏要比使用INTER錯(cuò)誤隱藏性能更好。相反,對那些非場景剪輯的幀而言,使用INTER錯(cuò)誤隱藏算法總是優(yōu)于使用INTRA錯(cuò)誤隱藏,正如可以從表5至10給出的其它6個(gè)編碼例子看出的。這顯示了本發(fā)明的有用性。
表5以64kbps、7.5幀/s編碼的“Foreman”序列
表6以144kbps、7.5幀/s編碼的“Foreman”序列
表7以32kbps、10幀/s編碼的“Hall”序列
表8以384kbps、30幀/s編碼的“Irene”序列
表9以144kbps、15幀/s編碼的“Paris”序列
表10以384kbps、15幀/s編碼的“Paris”序列
表11以144kbps、15幀/s編碼的“MixedSeq”序列B.淡變的錯(cuò)誤隱藏的模擬為了模擬用于淡出和淡入幀的錯(cuò)誤隱藏的效果,生成兩個(gè)具有10個(gè)淡出幀、10個(gè)淡入幀和10個(gè)正常幀的人造序列。其一由″News″和″Akiyo″(具有低速運(yùn)動(dòng))的結(jié)合構(gòu)成,另一個(gè)由″Carphone″和″Foreman″(具有減速運(yùn)動(dòng))構(gòu)成。在使用JVT聯(lián)合模型編碼器和I-P-P-P編碼模式編碼以后,一些淡變幀的丟失被模擬,而丟失的比特流被饋送至解碼器。應(yīng)用兩種不同的錯(cuò)誤隱藏方法來隱藏由淡變幀的丟失引起的錯(cuò)誤1.在JVT編解碼器中的常規(guī)的錯(cuò)誤隱藏方法(如JVT工作草案(JVT-C039)的附錄D中所述的);以及2.如下描述的依照本發(fā)明用于淡變的特定的錯(cuò)誤隱藏方法。
錯(cuò)誤隱藏算法通過復(fù)制和按比例計(jì)算先前幀的象素值來隱藏淡變中丟失的幀。但是,如果在該場景過渡周期中只有一個(gè)先前幀,則不進(jìn)行按比例計(jì)算。如果Mn’是先前幀的平均Y(亮度)象素值,而Mn”是先前幀之前的幀的平均Y象素值,則比例因子f如下計(jì)算f=2*Mn’-Mn”)/Mn’用于象素的隱藏的Y、U和V值(Ys,Us,Vs)由先前圖象相應(yīng)的空間值(Y,U,V)以如下方式計(jì)算Ys=f*YUs=f*(U-128)+128Vs=f*(V-128)+128如模擬結(jié)果所示,依照本發(fā)明為淡變使用的特定的錯(cuò)誤隱藏方法,在客觀和主觀質(zhì)量上比常規(guī)JVT視頻編碼建議的附錄D中定義的錯(cuò)誤隱藏方法的性能好得多。會(huì)有異議認(rèn)為漸變場景過渡的視覺質(zhì)量并不重要。但是,場景過渡中的不佳的錯(cuò)誤隱藏不僅會(huì)導(dǎo)致質(zhì)量不佳的過渡幀,而且由于時(shí)域的錯(cuò)誤傳播,還會(huì)導(dǎo)致場景過渡后質(zhì)量不佳的正常幀。
消隱的錯(cuò)誤隱藏下面給出兩種用于在消隱期間丟失幀的錯(cuò)誤隱藏的方法。如果解碼器能夠在解碼前緩沖足夠數(shù)量的幀,則應(yīng)該使用算法A。否則,應(yīng)該使用算法B。
算法A如果解碼器前的緩沖器包含第二個(gè)場景的任一INTRA編碼幀(過渡周期后的一個(gè)幀),則該INTRA幀被用作錯(cuò)誤隱藏中的第二個(gè)錨幀。如果不能得到這樣的INTRA幀,則必須應(yīng)用算法B。第一個(gè)錨幀是最后重建的幀。如果dt1和dt2分別是顯示時(shí)間中第一個(gè)錨幀和丟失幀的時(shí)域距離和相對于第二個(gè)錨幀的相同的測量,(y1,u1,v1)是第一個(gè)錨幀中的一個(gè)象素,以及(y2,u2,v2)是第二個(gè)錨幀中空間對應(yīng)的象素,那么通過下式給出隱藏的象素(y,u,v)
y=clip1(y1*dt2+y2*dt1)/(dt2+dt1))其中,u和v用相似的方法計(jì)算,但是要考慮它們的符號u=clip1((u1-128)*dt2+(u2-128)*dt1)/dt2+dt1)+128)其中,數(shù)學(xué)函數(shù)“clip1”定義如下clip1(c)=clip3(0,255,c)clip3(a,b,c)=aifc<a=bifc>b,或者=c,在其他情況下。
算法B正常的空間-時(shí)間錯(cuò)誤隱藏。
劃變的錯(cuò)誤隱藏解碼器必須檢測1.劃變中涉及的兩個(gè)場景之間邊界的形狀;以及2.定義結(jié)束場景被開始場景覆蓋有多快的速率可以通過例如比較重建的圖象和逐塊計(jì)算相關(guān)性來進(jìn)行檢測。如果兩個(gè)來自時(shí)間上連續(xù)的圖象的空間上對應(yīng)的塊是相關(guān)的,則它們來自同一場景。否則,它們來自不同場景。
基于估計(jì)的形狀和速率,解碼器可以計(jì)算丟失的圖象或者區(qū)域的邊界的位置和形狀的預(yù)測值。屬于先前圖象上結(jié)束場景的以及被估計(jì)屬于丟失的圖象/區(qū)域上結(jié)束場景的丟失區(qū)域可以通過從先前圖象復(fù)制該區(qū)域來隱藏。同樣的,屬于先前圖象上開始場景的以及被估計(jì)屬于丟失的圖象/區(qū)域上開始場景的丟失區(qū)域可以通過從先前圖片復(fù)制該區(qū)域來隱藏。屬于先前圖象上結(jié)束場景的以及被估計(jì)屬于丟失的圖象/區(qū)域上開始場景的丟失區(qū)域可以從起始場景的鄰近內(nèi)容來空間地隱藏。當(dāng)隱藏丟失區(qū)域時(shí),可以如錯(cuò)誤隱藏中經(jīng)常做的那樣使用與鄰近的正確重建的塊匹配的邊界。
其他過渡類型的錯(cuò)誤隱藏應(yīng)該應(yīng)用正常的空間-時(shí)間錯(cuò)誤隱藏方法。
雖然已經(jīng)用其的優(yōu)選實(shí)施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員將會(huì)理解,在不背離本發(fā)明范圍的情況下,可以對其在形式和細(xì)節(jié)上進(jìn)行前述的和各種其它的變化、省略和偏離。
權(quán)利要求
1.一種隱藏視頻序列的幀中錯(cuò)誤的方法,該視頻序列至少包括一個(gè)第一場景和一個(gè)第二場景,第二場景具有來自第一場景的場景過渡,其中,場景過渡包含許多幀,并且場景過渡是多種類型中的一種,所述方法包括識別場景過渡的類型;以及基于識別的場景過渡類型,應(yīng)用錯(cuò)誤隱藏過程來隱藏屬于該過渡的幀中的錯(cuò)誤。
2.如權(quán)利要求1所述的方法,其中所識別的場景過渡類型是場景剪輯。
3.如權(quán)利要求2所述的方法,其中,如果屬于場景剪輯的整幅圖象丟失,則不隱藏丟失的圖象。
4.如權(quán)利要求2所述的方法,其中,如果屬于場景剪輯的圖象的部分被丟失或者損壞,則應(yīng)用空間錯(cuò)誤隱藏算法來隱藏圖象丟失或者損壞的部分。
5.如權(quán)利要求1所述的方法,其中所識別的場景過渡類型是漸變場景過渡。
6.如權(quán)利要求5所述的方法,其中場景過渡是淡變。
7.如權(quán)利要求5所述的方法,其中場景過渡是消隱。
8.如權(quán)利要求5所述的方法,其中場景過渡是劃變。
9.如權(quán)利要求5所述的方法,其中,如果屬于漸變過渡的整幅圖象丟失或者損壞,則應(yīng)用空間-時(shí)間錯(cuò)誤隱藏算法來隱藏該圖象丟失或者損壞的部分。
10.如權(quán)利要求5所述的方法,其中,如果屬于漸變過渡的圖象的部分被丟失或者損壞,則應(yīng)用空間-時(shí)間錯(cuò)誤隱藏算法來隱藏圖象丟失或者損壞的部分。
11.如權(quán)利要求1所述的方法,其中,在附加增強(qiáng)信息消息中向解碼器提供指示所識別的場景過渡的信息以便允許解碼器基于所述信息來隱藏錯(cuò)誤。
12.如權(quán)利要求11所述的方法,其中,所述指示所識別的場景過渡的信息包括場景過渡類型的指示。
13.如權(quán)利要求11所述的方法,其中,為屬于該過渡的每個(gè)幀提供所述指示所識別場景過渡的信息。
14.用來將視頻序列編碼為數(shù)據(jù)流的視頻編碼設(shè)備,該視頻序列包括至少包括一個(gè)第一場景和一個(gè)第二場景,以及具有來自第一場景的場景過渡,其中,場景過渡包含許多幀,并且場景過渡是多種類型中的一種,所述視頻編碼設(shè)備包括用來識別與過渡相關(guān)的幀的裝置;用來提供關(guān)于過渡類型的信息的裝置。
15.如權(quán)利要求14所述的視頻編碼設(shè)備,其中,所述信息在附加增強(qiáng)信息消息中提供。
16.如權(quán)利要求15所述的視頻編碼設(shè)備,其中,向?qū)儆谠撨^渡的每一幀提供所述信息。
17.用來從數(shù)據(jù)流解碼視頻序列的視頻解碼設(shè)備,該視頻序列包括至少一個(gè)第一場景和一個(gè)第二場景以及具有來自第一場景的場景過渡,其中,場景過渡包含許多幀,并且場景過渡是多種類型中的一種,所述視頻編碼設(shè)備包括用來接收數(shù)據(jù)流的裝置;以及基于場景過渡類型來隱藏屬于該過渡的幀中的錯(cuò)誤的錯(cuò)誤隱藏算法。
18.如權(quán)利要求17所述的視頻解碼設(shè)備,其中,在提供給視頻編碼設(shè)備的附加增強(qiáng)信息中指示場景過渡的類型。
19.如權(quán)利要求17所述的視頻解碼設(shè)備,其中,場景過渡的類型是漸變場景過渡,并且屬于該漸變場景過渡的整幅圖象被丟失或者損壞,所述錯(cuò)誤隱藏算法包括用來隱藏丟失或者損壞的圖象的空間-時(shí)間錯(cuò)誤隱藏算法。
20.如權(quán)利要求17所述的視頻解碼設(shè)備,其中,場景過渡的類型是漸變場景過渡,并且屬于該漸變場景過渡的圖象的部分被丟失或者損壞,所述錯(cuò)誤隱藏算法包括用來隱藏圖象丟失或者損壞的部分的空間-時(shí)間錯(cuò)誤隱藏算法。
21.如權(quán)利要求17所述的視頻解碼設(shè)備,其中,場景過渡的類型是場景剪輯,并且屬于場景剪輯的圖象的部分被丟失或者損壞,所述錯(cuò)誤隱藏算法包括用來隱藏圖象中錯(cuò)誤的空間錯(cuò)誤隱藏算法。
22.如權(quán)利要求17所述的視頻解碼設(shè)備,其中,場景過渡的類型是場景剪輯,并且屬于該場景剪輯的整幅圖象被丟失或者損壞,所述錯(cuò)誤隱藏算法適于忽略丟失或者損壞的圖象。
全文摘要
一種用于視頻序列中錯(cuò)誤隱藏的方法和設(shè)備。當(dāng)視頻序列中有場景過渡且屬于該場景過渡的圖象有錯(cuò)誤時(shí),使用基于場景過渡類型的錯(cuò)誤隱藏過程來隱藏錯(cuò)誤。在附加增強(qiáng)信息消息中向視頻解碼器提供場景過渡以及關(guān)于其場景過渡類型的信息。如果場景過渡是漸變場景過渡,則使用空間-時(shí)間錯(cuò)誤隱藏算法來隱藏圖象。如果場景過渡是場景剪輯且只有部分圖象被丟失或者損壞,則應(yīng)用空間錯(cuò)誤隱藏來隱藏圖象丟失或者損壞的部分。如果屬于場景剪輯的整幅圖象丟失或者損壞,且該圖象開始新的場景,則不隱藏之。
文檔編號H04N7/26GK1669322SQ03816728
公開日2005年9月14日 申請日期2003年7月15日 優(yōu)先權(quán)日2002年7月15日
發(fā)明者M·漢努克塞拉, 王業(yè)奎 申請人:諾基亞有限公司