專(zhuān)利名稱(chēng):用于圖像編碼和解碼的設(shè)備和方法
技術(shù)領(lǐng)域:
根據(jù)本發(fā)明的設(shè)備和方法涉及一種用于視頻編碼和解碼的設(shè)備和方法,特別涉及一種用于視頻編碼和解碼的設(shè)備和方法,其中使用增加用于幀內(nèi)預(yù)測(cè)(intraprediction)的相鄰塊數(shù)目的預(yù)定形狀的宏塊和預(yù)定掃描次序,執(zhí)行視頻編碼和解碼。
背景技術(shù):
公知的視頻壓縮標(biāo)準(zhǔn),例如運(yùn)動(dòng)圖像專(zhuān)家組(MPEG)-1、MPEG-2、MPEG-4視覺(jué)(Visual)、H.261、H.263、以及H.264,使用M×N矩形塊作為編碼單元。
圖1是示出在傳統(tǒng)的H.264視頻壓縮標(biāo)準(zhǔn)中用作參考畫(huà)面確定及其運(yùn)動(dòng)補(bǔ)償?shù)膯卧膲K的參考圖。
如圖1所示,根據(jù)傳統(tǒng)的H.264視頻壓縮標(biāo)準(zhǔn),以16×16宏決為單元執(zhí)行編碼或解碼,其中在畫(huà)面中包括多個(gè)宏塊,或者以通過(guò)將宏塊劃分成2或4個(gè)子塊而獲得的子塊為單元?;陬A(yù)測(cè)而執(zhí)行編碼和解碼。這種使用M×N個(gè)塊的編碼不僅需要易于計(jì)算的簡(jiǎn)單的運(yùn)動(dòng)補(bǔ)償,而且適于基于矩形視頻幀和塊的圖像變換,例如離散余弦變換(DCT),并且提供了一種對(duì)于各種類(lèi)型的視頻圖像有效的模型。
然而,在視頻幀中要被編碼的像素?cái)?shù)據(jù)不一定與正方形的子塊或宏塊相符。換句話說(shuō),實(shí)際對(duì)象很少與正方形邊界相符,并且運(yùn)動(dòng)對(duì)象可能位于像素之間,而不是幀間的某個(gè)像素位置中。此外,如果發(fā)生各種類(lèi)型的對(duì)象運(yùn)動(dòng),例如變換、旋轉(zhuǎn)、扭轉(zhuǎn)、以及濃霧化(dense fog),則當(dāng)使用基于正方形塊的編碼時(shí),編碼效率就不夠高。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于圖像編碼和解碼的設(shè)備和方法,其中,通過(guò)使用增加可用于幀內(nèi)預(yù)測(cè)的相鄰塊的數(shù)目的預(yù)定形狀的塊,而非通過(guò)使用傳統(tǒng)的基于正方形塊的編碼,高效率地使用參考畫(huà)面的相鄰像素或塊。
本發(fā)明還提供了一種用于圖像編碼和解碼的設(shè)備和方法,其中基于人類(lèi)視覺(jué)特性而改善主觀的圖像質(zhì)量。
根據(jù)本發(fā)明的一方面,提供了一種圖像編碼器,包括畫(huà)面劃分單元和編碼單元。畫(huà)面劃分單元將要被編碼的畫(huà)面劃分成多個(gè)塊,每個(gè)塊包括允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀。編碼單元以允許在所劃分塊的幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定掃描次序執(zhí)行編碼。
畫(huà)面劃分單元可以包括外插(extrapolation)單元和劃分單元。外插單元擴(kuò)展畫(huà)面,以便將畫(huà)面與多個(gè)塊匹配。劃分單元將所擴(kuò)展的畫(huà)面劃分成多個(gè)塊。
外插單元可以通過(guò)對(duì)畫(huà)面邊界周?chē)南袼剡M(jìn)行外插來(lái)擴(kuò)展畫(huà)面。
編碼單元可以包括預(yù)測(cè)單元、變換單元、量化單元、以及熵編碼單元。預(yù)測(cè)單元以所劃分的塊為單元執(zhí)行幀內(nèi)預(yù)測(cè)(intraprediction)和幀間預(yù)測(cè)(interprediction)中的至少一個(gè)。變換單元變換由預(yù)測(cè)單元預(yù)測(cè)的數(shù)據(jù)與畫(huà)面之間的差值。量化單元量化由變換單元變換的數(shù)據(jù)。熵編碼單元通過(guò)壓縮由量化單元量化的數(shù)據(jù)而創(chuàng)建位流。
預(yù)定形狀可以是六邊形。
預(yù)定掃描可以在水平和垂直方向中的至少一個(gè)上執(zhí)行。
根據(jù)本發(fā)明的另一方面,提供了一種用于圖像編碼的方法。該方法包括將要被編碼的畫(huà)面劃分成多個(gè)塊,每個(gè)塊包括允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀,以允許在所劃分塊的幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定掃描次序,執(zhí)行幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)中的至少一個(gè),以及計(jì)算幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)中的至少一個(gè)的結(jié)果與畫(huà)面之間的差值,并且對(duì)通過(guò)該計(jì)算而得到的剩余值(residue)進(jìn)行編碼。
預(yù)定形狀可以是六邊形。
預(yù)定掃描可以在水平和垂直方向中的至少一個(gè)上執(zhí)行。
該方法還可以包括擴(kuò)展畫(huà)面,以便將畫(huà)面與多個(gè)塊匹配。
可以通過(guò)對(duì)畫(huà)面邊界周?chē)南袼剡M(jìn)行外插來(lái)執(zhí)行畫(huà)面的擴(kuò)展。
根據(jù)本發(fā)明的另一方面,提供了一種圖像解碼器,包括熵解碼器、逆量化單元、逆變換單元、參考畫(huà)面外插單元、運(yùn)動(dòng)補(bǔ)償單元、以及幀內(nèi)預(yù)測(cè)單元。熵解碼器從以塊為單元編碼的位流中提取紋理信息和運(yùn)動(dòng)信息,其中每個(gè)塊包括允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀。逆量化單元逆量化紋理信息。逆變換單元根據(jù)逆量化的紋理信息重建剩余值。參考畫(huà)面外插單元擴(kuò)展用于運(yùn)動(dòng)補(bǔ)償?shù)膮⒖籍?huà)面。運(yùn)動(dòng)補(bǔ)償單元使用運(yùn)動(dòng)信息,根據(jù)所擴(kuò)展的參考畫(huà)面預(yù)測(cè)要被解碼的預(yù)定形狀的塊。幀內(nèi)預(yù)測(cè)單元根據(jù)所解碼的相鄰塊的像素預(yù)測(cè)要被解碼的預(yù)定形狀的塊。
預(yù)定形狀可以是六邊形。
紋理信息可以包括預(yù)定形狀的幀內(nèi)編碼塊和預(yù)定形狀的幀間編碼塊的運(yùn)動(dòng)補(bǔ)償誤差中的至少一個(gè)的像素值。
運(yùn)動(dòng)信息可以包括運(yùn)動(dòng)向量信息和參考畫(huà)面信息。
根據(jù)本發(fā)明的另一方面,提供了一種用于圖像解碼的方法。該方法包括從壓縮位流中提取紋理信息和運(yùn)動(dòng)信息,通過(guò)逆量化并逆變換紋理信息而重建剩余值,對(duì)預(yù)定形狀的塊執(zhí)行幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)中的至少一個(gè),其中該預(yù)定形狀的塊被編碼使得在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊,并且通過(guò)將剩余值和已經(jīng)從幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)的至少一個(gè)中輸出的塊相加來(lái)重建畫(huà)面。
預(yù)定形狀可以是六邊形。
該方法可以包括擴(kuò)展用于預(yù)定形狀的塊的幀間預(yù)測(cè)的參考畫(huà)面。
參考畫(huà)面的擴(kuò)展可以通過(guò)對(duì)畫(huà)面邊界周?chē)南袼剡M(jìn)行外插來(lái)執(zhí)行。
通過(guò)參考附圖對(duì)本發(fā)明的示例性實(shí)施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其它特征以及優(yōu)點(diǎn)將變得更加清楚,其中圖1是示出在傳統(tǒng)的H.264視頻壓縮標(biāo)準(zhǔn)中用作參考畫(huà)面確定及其運(yùn)動(dòng)補(bǔ)償?shù)膯卧膲K的參考圖;圖2是根據(jù)本發(fā)明的示例性實(shí)施例的視頻編碼器的方框圖;圖3示出根據(jù)本發(fā)明的示例性實(shí)施例的例子,其中在視頻編碼器中使用六邊形宏塊劃分要被編碼的畫(huà)面;圖4示出六邊形宏塊和子塊的例子;圖5是根據(jù)本發(fā)明的示例性實(shí)施例的畫(huà)面劃分單元的詳細(xì)方框圖;圖6是用于說(shuō)明根據(jù)本發(fā)明的示例性實(shí)施例、在視頻編碼器的外插單元中擴(kuò)展輸入畫(huà)面的處理的視圖;圖7是用于說(shuō)明根據(jù)本發(fā)明的示例性實(shí)施例的通過(guò)視頻編碼器的畫(huà)面劃分單元?jiǎng)澐滞獠瀹?huà)面的處理的視圖;圖8是用于說(shuō)明根據(jù)本發(fā)明的示例性實(shí)施例的由視頻編碼器的運(yùn)動(dòng)估算單元執(zhí)行的運(yùn)動(dòng)估算處理的視圖;圖9A至9C示出根據(jù)本發(fā)明的示例性實(shí)施例的在視頻編碼器中被劃分成六邊形宏塊的塊的編碼次序的例子;圖10是用于說(shuō)明根據(jù)本發(fā)明的示例性實(shí)施例的由視頻編碼器的幀內(nèi)預(yù)測(cè)單元執(zhí)行的幀內(nèi)預(yù)測(cè)處理的視圖;圖11示出根據(jù)本發(fā)明的示例性實(shí)施例的在視頻編碼器中可用的宏塊的另一例子;圖12是用于說(shuō)明使用如圖11所示的宏塊的畫(huà)面劃分的視圖;圖13是示出根據(jù)本發(fā)明的另一示例性實(shí)施例的用于視頻編碼的方法的流程圖;圖14是根據(jù)本發(fā)明的示例性實(shí)施例的視頻解碼器的方框圖;圖15是示出根據(jù)本發(fā)明的另一示例性實(shí)施例的用于視頻解碼的方法的流程圖;以及圖16是用于針對(duì)具有特定形狀的顯示設(shè)備比較本發(fā)明的示例性實(shí)施例與現(xiàn)有技術(shù)的顯示效率的視圖。
具體實(shí)施例方式
圖2是根據(jù)本發(fā)明的示例性實(shí)施例的視頻編碼器的方框圖。
根據(jù)本發(fā)明的示例性實(shí)施例的視頻編碼器將輸入畫(huà)面劃分成允許至少三個(gè)相鄰塊用于幀內(nèi)預(yù)測(cè)的預(yù)定形狀的塊,而不是傳統(tǒng)的宏塊,并且以允許在每個(gè)所劃分塊的幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定掃描次序,執(zhí)行編碼。在下面的描述中,將注重于基于人類(lèi)視覺(jué)特性的六邊形塊被用作預(yù)定形狀的塊的情況。然而,可以容易地理解,預(yù)定形狀可以是除六邊形之外的其它多邊形。
參考圖2,視頻編碼器100包括畫(huà)面劃分單元101、時(shí)間/空間預(yù)測(cè)單元110、變換單元120、量化單元122、重排單元124、熵編碼單元126、逆量化單元128、逆變換單元130、濾波器132、以及幀存儲(chǔ)器134。
畫(huà)面劃分單元101將當(dāng)前輸入畫(huà)面Fn劃分成預(yù)定形狀的塊。在此,用作視頻編碼器100中的編碼單元的塊采用允許至少三個(gè)相鄰塊用于幀內(nèi)預(yù)測(cè)的預(yù)定形狀。例如,畫(huà)面劃分單元101可以使用六邊形宏塊作為編碼單元,而不是傳統(tǒng)的正方形或矩形塊。
圖3示出在視頻編碼器100中將要被編碼的當(dāng)前畫(huà)面Fn劃分成六邊形宏塊的例子。
參考圖3,畫(huà)面劃分單元101將當(dāng)前畫(huà)面Fn劃分成多個(gè)六邊形宏塊。在此,六邊形宏塊是視頻編碼器100中的編碼單元。公知的是,六邊形比正方形更適于人類(lèi)視覺(jué)特性。因此,與傳統(tǒng)的正方形塊相比較,通過(guò)使用六邊形塊不僅可能降低視覺(jué)分塊(blocking)效應(yīng),而且可能增加在幀內(nèi)預(yù)測(cè)中使用的相鄰塊的數(shù)目??梢詮南惹熬幋a的數(shù)據(jù)預(yù)測(cè)六邊形宏塊。換句話說(shuō),類(lèi)似于傳統(tǒng)視頻壓縮標(biāo)準(zhǔn)中的基于塊的編碼,從已經(jīng)被編碼、解碼和重建的樣本預(yù)測(cè)本發(fā)明中使用的六邊形宏塊之中的幀內(nèi)宏塊(intra macroblocks),并且從先前編碼的樣本預(yù)測(cè)六邊形宏塊之中的幀間宏塊(inter macroblocks)內(nèi)的樣本。
從當(dāng)前六邊形宏塊提取要被編碼的當(dāng)前六邊形宏塊的預(yù)測(cè)數(shù)據(jù),并且壓縮通過(guò)該提取而得到的剩余值,并且將其傳送到視頻解碼器。
圖4示出六邊形宏塊和子塊的例子。如圖4所示,6個(gè)三角形子塊A構(gòu)成一個(gè)宏塊B,其中每個(gè)子塊A具有11像素的底寬和6像素的高度。類(lèi)似于傳統(tǒng)H.264標(biāo)準(zhǔn)中的樹(shù)結(jié)構(gòu)的運(yùn)動(dòng)補(bǔ)償,其中16×16宏塊被劃分成預(yù)定大小的子塊并且執(zhí)行運(yùn)動(dòng)補(bǔ)償和預(yù)測(cè),根據(jù)本發(fā)明的視頻編碼器100可以將六邊形宏塊B劃分成三角形子塊A并且執(zhí)行運(yùn)動(dòng)補(bǔ)償和預(yù)測(cè)??梢砸圆煌姆绞脚渲酶鶕?jù)本發(fā)明的六邊形宏塊和子塊,而不限于圖4所示的配置。
圖5是根據(jù)本發(fā)明的示例性實(shí)施例的畫(huà)面劃分單元101的詳細(xì)方框圖。
參考圖5,畫(huà)面劃分單元101包括外插單元101a和劃分單元101b。
外插單元101a將輸入畫(huà)面擴(kuò)展到能夠?qū)⒃撦斎氘?huà)面劃分成預(yù)定大小的塊的程度,從而創(chuàng)建外插畫(huà)面。劃分單元101b將該外插輸入畫(huà)面劃分成六邊形宏塊。一般而言,由于要被編碼的畫(huà)面通常為矩形形狀,因此其不能被劃分成整數(shù)個(gè)六邊形宏塊。結(jié)果,為了將輸入畫(huà)面的所有像素包括在六邊形宏塊中,需要擴(kuò)展輸入畫(huà)面。在下文中,將參考圖6和7詳細(xì)地描述由外插單元101a執(zhí)行的外插和由劃分單元101b執(zhí)行的劃分。
圖6是用于說(shuō)明在外插單元101a中擴(kuò)展輸入畫(huà)面的處理的視圖,并且圖7是用于說(shuō)明在畫(huà)面劃分單元101b中劃分外插畫(huà)面的處理的視圖。
外插單元101a基于原始畫(huà)面F1被劃分成的六邊形宏塊的大小和形狀,確定將要以什么程度擴(kuò)展要被編碼的畫(huà)面F1。如果使用六邊形宏塊而不擴(kuò)展原始畫(huà)面F1,則原始畫(huà)面F1的邊界周?chē)南袼乜赡懿槐话ㄔ谌魏我粋€(gè)六邊形宏塊中。因此,外插單元101a確定原始畫(huà)面F1的擴(kuò)展范圍M,如圖7的陰影區(qū)域所示,使得原始畫(huà)面F1的邊界周?chē)南袼乇话ㄔ诹呅魏陦K中。
在確定原始畫(huà)面F1的擴(kuò)展范圍M之后,外插單元101a通過(guò)水平或豎直地對(duì)原始畫(huà)面F1的邊界周?chē)南袼剡M(jìn)行外插,創(chuàng)建外插畫(huà)面F1’。
劃分單元101b劃分外插畫(huà)面F1’,使得原始畫(huà)面F1的所有像素被包括在六邊形宏塊中。
回到圖2,視頻編碼器100以從畫(huà)面劃分單元101獲得的六邊形宏塊為單元執(zhí)行編碼。
更具體地說(shuō),視頻編碼器100的時(shí)間/空間預(yù)測(cè)單元110以與用于傳統(tǒng)的視頻壓縮標(biāo)準(zhǔn)的方法類(lèi)似的方式,執(zhí)行時(shí)間/空間預(yù)測(cè)。換句話說(shuō),時(shí)間/空間預(yù)測(cè)單元110執(zhí)行這樣的時(shí)間預(yù)測(cè)和空間預(yù)測(cè),其中,在時(shí)間預(yù)測(cè)中通過(guò)參考過(guò)去和未來(lái)幀中的至少一個(gè),使用相鄰畫(huà)面之間的相似性來(lái)執(zhí)行當(dāng)前幀的預(yù)測(cè),在空間預(yù)測(cè)中使用相鄰樣本之間的相似性而消除空間冗余。
視頻編碼器100使用從多個(gè)編碼模式中選擇的編碼模式,對(duì)當(dāng)前畫(huà)面的六邊形宏塊進(jìn)行編碼。為此,通過(guò)使用幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)的所有可能模式執(zhí)行編碼,計(jì)算速率-失真(RD)成本。結(jié)果,選擇具有最小RD成本的模式作為最優(yōu)編碼模式,并且使用所選的最優(yōu)編碼模式執(zhí)行編碼。
對(duì)于幀間預(yù)測(cè),運(yùn)動(dòng)估算單元112在參考畫(huà)面中搜索當(dāng)前畫(huà)面的六邊形宏塊的預(yù)測(cè)值。
如果運(yùn)動(dòng)估算單元112以1/2像素或1/4像素為單元找到參考?jí)K,則運(yùn)動(dòng)補(bǔ)償單元114計(jì)算中間像素并且確定參考?jí)K的數(shù)據(jù)。這樣,由運(yùn)動(dòng)估算單元112和運(yùn)動(dòng)補(bǔ)償單元114執(zhí)行幀間預(yù)測(cè)。
圖8是用于說(shuō)明根據(jù)本發(fā)明的示例性實(shí)施例的由視頻編碼器100的運(yùn)動(dòng)估算單元112執(zhí)行的運(yùn)動(dòng)估算處理的視圖。
參考圖8,當(dāng)運(yùn)動(dòng)估算單元112在參考畫(huà)面F2中搜索與要被編碼的六邊形宏塊1相匹配的參考?jí)K時(shí),在參考畫(huà)面F2的邊界之外的外插參考畫(huà)面F2’中的六邊形宏塊2可能與六邊形宏塊1最匹配。這樣,運(yùn)動(dòng)估算單元112允許使用MPEG-4視覺(jué)中所使用的無(wú)約束運(yùn)動(dòng)向量(UMV)來(lái)表示參考畫(huà)面F2的邊界的外部。當(dāng)要被編碼的對(duì)象移入或移出幀時(shí),UMV可以改善運(yùn)動(dòng)補(bǔ)償效率。
圖9A、9B和9C示出根據(jù)本發(fā)明在視頻編碼器100中被劃分成六邊形宏塊的塊的編碼次序的例子。六邊形宏塊在圖9A中垂直地被編碼,在圖9B中水平地被編碼,并且在圖9C中沿Z字形方向被編碼。
參考圖9A,當(dāng)以垂直地首先對(duì)六邊形宏塊a1的左列像素進(jìn)行幀內(nèi)預(yù)測(cè)的次序?qū)α呅魏陦Ka1執(zhí)行幀內(nèi)預(yù)測(cè)時(shí),可以使用已經(jīng)被編碼的三個(gè)相鄰的六邊形宏塊a2、a3和a4。這樣,當(dāng)與傳統(tǒng)的處理次序相比較時(shí),可以使用更多相鄰塊,并且可以使用相鄰塊之間的相關(guān)性而高效地執(zhí)行編碼,其中,在傳統(tǒng)的處理次序中使用位于當(dāng)前塊之上和左邊的相鄰塊的像素信息對(duì)傳統(tǒng)矩形塊執(zhí)行幀內(nèi)預(yù)測(cè)。
類(lèi)似地,參考圖9B,當(dāng)以水平地首先對(duì)六邊形宏塊b1的頂行像素進(jìn)行幀內(nèi)預(yù)測(cè)的次序?qū)α呅魏陦Kb1執(zhí)行幀內(nèi)預(yù)測(cè)時(shí),可以使用已經(jīng)被編碼的三個(gè)相鄰的六邊形宏塊b2、b3和b4。
如圖9C所示,當(dāng)沿Z字形方向執(zhí)行幀內(nèi)預(yù)測(cè)時(shí),當(dāng)與圖9A和9B相比較時(shí),可用于幀內(nèi)預(yù)測(cè)的相鄰像素的數(shù)目減少了,但是當(dāng)與使用傳統(tǒng)矩形宏塊的處理相比較時(shí)增加了。
回到圖2,幀內(nèi)預(yù)測(cè)單元116通過(guò)搜索當(dāng)前畫(huà)面的六邊形宏塊的預(yù)測(cè)值而執(zhí)行幀內(nèi)預(yù)測(cè)。
圖10是用于說(shuō)明根據(jù)本發(fā)明由視頻編碼器100的幀內(nèi)預(yù)測(cè)單元116執(zhí)行的幀內(nèi)預(yù)測(cè)處理的視圖。
參考圖10,使用以虛線表示的相鄰塊的像素預(yù)測(cè)要被編碼的六邊形宏塊a1中的像素。類(lèi)似于H.264中的幀內(nèi)預(yù)測(cè),幀內(nèi)預(yù)測(cè)單元116可以在各種模式下使用相鄰決的像素,執(zhí)行幀內(nèi)預(yù)測(cè)。
為了確定用于當(dāng)前六邊形宏塊的最佳編碼模式,在所有可能的編碼模式中計(jì)算RD成本。將具有最小RD成本的模式確定為用于當(dāng)前宏塊的編碼模式,并且使用所確定的編碼模式對(duì)當(dāng)前宏塊執(zhí)行編碼。
一旦通過(guò)幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè)找到了要由當(dāng)前六邊形宏塊使用的預(yù)測(cè)數(shù)據(jù),就從當(dāng)前六邊形宏塊中提取它,并且在變換單元120中對(duì)其進(jìn)行變換,然后在量化單元122對(duì)其進(jìn)行量化。為了減少編碼中的數(shù)據(jù)量,對(duì)通過(guò)從當(dāng)前六邊形宏塊提取運(yùn)動(dòng)估算參考?jí)K而得到的剩余值進(jìn)行編碼。量化后的剩余值通過(guò)重排單元124,以便由熵編碼單元126進(jìn)行熵編碼。為了獲得用于幀間預(yù)測(cè)的參考畫(huà)面,量化后的畫(huà)面通過(guò)逆量化單元128和逆變換單元130,從而重建當(dāng)前畫(huà)面。在通過(guò)濾波器132之后,重建的當(dāng)前畫(huà)面被存儲(chǔ)在幀存儲(chǔ)器134中,并且以后用于后繼畫(huà)面的幀間預(yù)測(cè)。
圖11示出根據(jù)本發(fā)明的示例性實(shí)施例在視頻編碼器100中可用的宏塊的另一例子,并且圖12是用于說(shuō)明使用如圖11所示的宏塊的畫(huà)面劃分的視圖。
參考圖11,通過(guò)將圖4所示的兩個(gè)子塊連接在一起而形成的菱形宏塊可以用作編碼/解碼單元。菱形宏塊在視覺(jué)上類(lèi)似于六邊形宏塊,并且可以通過(guò)簡(jiǎn)單的坐標(biāo)變換使用傳統(tǒng)的宏塊處理裝置對(duì)其進(jìn)行編碼。如圖12所示,使用以類(lèi)似于六邊形宏塊的方式被編碼的菱形宏塊,劃分要被編碼的原始畫(huà)面F3。當(dāng)使用菱形宏塊時(shí),使用外插畫(huà)面F3’執(zhí)行編碼,使得原始畫(huà)面F3的邊界周?chē)南袼乇话ㄔ诹庑魏陦K中??梢圆捎貌煌姆绞脚渲酶鶕?jù)本發(fā)明的菱形宏塊,而不限于圖11所示的宏塊。
圖13是示出根據(jù)本發(fā)明的另一示例性實(shí)施例的用于視頻編碼的方法的流程圖。
參考圖13,在操作201中,基于宏塊的預(yù)定大小和形狀,確定將要以什么程度擴(kuò)展要被編碼的當(dāng)前畫(huà)面,并且擴(kuò)展當(dāng)前畫(huà)面,使得當(dāng)前畫(huà)面中的所有像素都被包括在預(yù)定形狀的宏塊中。如上所述,通過(guò)水平地或垂直地對(duì)原始畫(huà)面的邊界周?chē)南袼剡M(jìn)行外插,執(zhí)行當(dāng)前畫(huà)面的擴(kuò)展。
在操作203中,將外插畫(huà)面劃分成預(yù)定形狀的宏塊,例如六邊形宏塊。
下一步,在操作205中,以宏塊為單元執(zhí)行編碼。換句話說(shuō),執(zhí)行時(shí)間預(yù)測(cè)和空間預(yù)測(cè),其中,在時(shí)間預(yù)測(cè)中使用相鄰畫(huà)面之間的相似性,通過(guò)使用過(guò)去和未來(lái)幀中的至少一個(gè)執(zhí)行當(dāng)前幀的預(yù)測(cè),在空間預(yù)測(cè)中使用相鄰樣本之間的相似性消除空間冗余。
在操作207,一旦通過(guò)幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè)找到了要由當(dāng)前六邊形宏塊使用的預(yù)測(cè)數(shù)據(jù),就從當(dāng)前六邊形宏塊提取它,并且對(duì)其進(jìn)行變換,然后對(duì)其進(jìn)行量化。如在本技術(shù)領(lǐng)域內(nèi)公知的,可以使用離散余弦變換(DCT)算法執(zhí)行該變換。
在操作209中,將經(jīng)過(guò)變換和量化的數(shù)據(jù)熵編碼成壓縮位流??梢允褂每勺冮L(zhǎng)度編碼或算術(shù)編碼算法執(zhí)行熵編碼。
在操作211中,重復(fù)上述編碼處理,直至完成當(dāng)前畫(huà)面的最后一個(gè)塊的處理。
圖14是根據(jù)本發(fā)明實(shí)施例的視頻解碼器的方框圖。
參考圖14,視頻解碼器300包括熵解碼器302、重排單元304、逆量化單元306、逆變換單元308、運(yùn)動(dòng)補(bǔ)償單元310、幀內(nèi)預(yù)測(cè)單元312、濾波器314、以及參考畫(huà)面外插單元316。熵解碼器302和重排單元304接收并且熵解碼壓縮位流,以生成量化系數(shù)X。逆量化單元306和逆變換單元308對(duì)量化系數(shù)X執(zhí)行逆量化和逆變換,以提取變換編碼系數(shù),即,運(yùn)動(dòng)向量信息和首標(biāo)信息。運(yùn)動(dòng)補(bǔ)償單元310和幀內(nèi)預(yù)測(cè)單元312根據(jù)編碼畫(huà)面類(lèi)型,使用解碼的首標(biāo)信息來(lái)生成預(yù)測(cè)塊。將誤差值D’n加到預(yù)測(cè)塊,以生成uF’n。換句話說(shuō),運(yùn)動(dòng)補(bǔ)償單元310執(zhí)行幀間預(yù)測(cè),其中使用運(yùn)動(dòng)信息從外插參考畫(huà)面預(yù)測(cè)六邊形宏塊,并且?guī)瑑?nèi)預(yù)測(cè)單元312從外插參考畫(huà)面中的相鄰塊的像素預(yù)測(cè)六邊形宏塊。uF’n通過(guò)濾波器314,從而生成重建畫(huà)面F’n。同樣地,視頻解碼器300使用預(yù)定形狀的宏塊,例如六邊形宏塊,重建畫(huà)面。
運(yùn)動(dòng)補(bǔ)償單元310根據(jù)運(yùn)動(dòng)向量從參考畫(huà)面中提取參考六邊形宏塊。運(yùn)動(dòng)向量可以在參考畫(huà)面的邊界之外。這樣,參考畫(huà)面外插單元316通過(guò)對(duì)參考畫(huà)面的邊界周?chē)南袼剡M(jìn)行外插來(lái)擴(kuò)展參考畫(huà)面,從而允許在參考畫(huà)面的邊界之外使用UMV。
圖15是示出根據(jù)本發(fā)明的另一示例性實(shí)施例的用于視頻解碼的方法的流程圖。
參考圖15,在操作401中,熵解碼器302從壓縮位流中提取紋理信息和運(yùn)動(dòng)信息。在本發(fā)明的當(dāng)前示例性實(shí)施例中,紋理信息由幀內(nèi)編碼的六邊形宏塊的像素值或幀間編碼的六邊形宏塊的運(yùn)動(dòng)補(bǔ)償誤差表示。
在操作403中對(duì)紋理信息進(jìn)行逆量化,并且在操作405中對(duì)其進(jìn)行逆變換,以便重建剩余值(residue)。
從壓縮位流提取的運(yùn)動(dòng)信息經(jīng)歷運(yùn)動(dòng)補(bǔ)償。在此,用于運(yùn)動(dòng)補(bǔ)償?shù)慕獯a單元是預(yù)定形狀的塊,例如,六邊形宏塊。由于需要基于用于運(yùn)動(dòng)補(bǔ)償?shù)腢MV擴(kuò)展運(yùn)動(dòng)向量的搜索區(qū)域,因此在操作407中使用參考畫(huà)面的邊界周?chē)南袼貙?duì)該邊界進(jìn)行外插。
在操作409中,使用所提取的運(yùn)動(dòng)信息,例如運(yùn)動(dòng)向量信息和參考畫(huà)面信息,執(zhí)行幀內(nèi)預(yù)測(cè)和運(yùn)動(dòng)補(bǔ)償(幀間預(yù)測(cè)),以便形成經(jīng)過(guò)運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)的六邊形宏塊,其與視頻編碼器100中相同。在操作411中,通過(guò)將在操作405中獲得的剩余值和在操作409中獲得的六邊形宏塊的預(yù)測(cè)值相加來(lái)重建畫(huà)面。在此,重建畫(huà)面被存儲(chǔ)在存儲(chǔ)器中,以便用作后繼畫(huà)面的參考畫(huà)面。
在操作413中,重復(fù)上述解碼處理,直至完成畫(huà)面的最后一個(gè)六邊形宏塊的解碼。
圖16是用于針對(duì)具有特定形狀的顯示設(shè)備而比較本發(fā)明和現(xiàn)有技術(shù)的顯示效率的視圖。
參考圖16,當(dāng)用于顯示重建畫(huà)面的顯示設(shè)備D具有不同于傳統(tǒng)使用的正方形的形狀時(shí),通過(guò)根據(jù)本發(fā)明使用六邊形宏塊的畫(huà)面處理,不需要對(duì)非顯示的區(qū)域進(jìn)行編碼,這不同于傳統(tǒng)的使用正方形宏塊的畫(huà)面處理。類(lèi)似地,與使用傳統(tǒng)宏塊相比,通過(guò)使用根據(jù)本發(fā)明用于視頻編碼和解碼的方法,可以更高效地對(duì)不具有正方形形狀的畫(huà)面對(duì)象進(jìn)行編碼。
如上所述,根據(jù)本發(fā)明的示例性實(shí)施例,與使用傳統(tǒng)宏塊的編碼相比,可以更高效地使用參考畫(huà)面的相鄰像素或塊。
此外,根據(jù)本發(fā)明的示例性實(shí)施例,通過(guò)使用基于人類(lèi)視覺(jué)特性的六邊形宏塊的編碼而改善了主觀視頻質(zhì)量。
本發(fā)明還可以被實(shí)現(xiàn)為計(jì)算機(jī)可讀記錄介質(zhì)上的計(jì)算機(jī)可讀代碼。計(jì)算機(jī)可讀記錄介質(zhì)是可存儲(chǔ)以后可由計(jì)算機(jī)系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲(chǔ)裝置。計(jì)算機(jī)可讀記錄介質(zhì)的例子包括只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、CD-ROM、磁帶、軟盤(pán)、光學(xué)數(shù)據(jù)存儲(chǔ)裝置、以及載波。還可以在耦接的計(jì)算機(jī)系統(tǒng)的網(wǎng)絡(luò)上分發(fā)該計(jì)算機(jī)可讀記錄介質(zhì),從而以分散的方式存儲(chǔ)并執(zhí)行該計(jì)算機(jī)可讀代碼。
盡管參考本發(fā)明的示例性實(shí)施例具體地示出和描述了本發(fā)明,但本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,在不背離由所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)上的各種修改。例如,本發(fā)明還可以應(yīng)用于靜止圖像、視頻、以及靜止圖像和視頻的組合的編碼和解碼。
權(quán)利要求
1.一種圖像編碼器,包括畫(huà)面劃分單元,將要被編碼的畫(huà)面劃分成多個(gè)塊,每個(gè)塊包括允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀;以及編碼單元,以允許在所劃分塊的幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定掃描次序執(zhí)行編碼。
2.如權(quán)利要求1所述的圖像編碼器,其中畫(huà)面劃分單元包括外插單元,擴(kuò)展畫(huà)面以便將畫(huà)面與多個(gè)塊相匹配;以及劃分單元,將所擴(kuò)展的畫(huà)面劃分成多個(gè)塊。
3.如權(quán)利要求2所述的圖像編碼器,其中外插單元通過(guò)對(duì)畫(huà)面邊界周?chē)南袼剡M(jìn)行外插來(lái)擴(kuò)展畫(huà)面。
4.如權(quán)利要求1所述的圖像編碼器,其中編碼單元包括預(yù)測(cè)單元,以所劃分的塊為單元執(zhí)行幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)中的至少一個(gè);變換單元,變換由預(yù)測(cè)單元預(yù)測(cè)的數(shù)據(jù)與畫(huà)面之間的差值;量化單元,量化由變換單元變換的數(shù)據(jù);以及熵編碼單元,通過(guò)壓縮由量化單元量化的數(shù)據(jù)而創(chuàng)建位流。
5.如權(quán)利要求1所述的圖像編碼器,其中,預(yù)定形狀是六邊形。
6.如權(quán)利要求1所述的圖像編碼器,其中,預(yù)定掃描可以在水平和垂直方向中的至少一個(gè)上執(zhí)行。
7.一種用于圖像編碼的方法,該方法包括將要被編碼的畫(huà)面劃分成多個(gè)塊,每個(gè)塊包括允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀;以允許在多個(gè)塊的幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定掃描次序,執(zhí)行幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)中的至少一個(gè);以及計(jì)算幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)中的至少一個(gè)的結(jié)果與畫(huà)面之間的差值,并且對(duì)通過(guò)該計(jì)算而得到的剩余值進(jìn)行編碼。
8.如權(quán)利要求7所述的方法,其中所述預(yù)定形狀是六邊形。
9.如權(quán)利要求7所述的方法,其中在水平和垂直方向中的至少一個(gè)上執(zhí)行所述預(yù)定掃描。
10.如權(quán)利要求7所述的方法,還包括擴(kuò)展畫(huà)面,以便使畫(huà)面與多個(gè)塊相匹配。
11.如權(quán)利要求10所述的方法,其中通過(guò)對(duì)畫(huà)面邊界周?chē)南袼剡M(jìn)行外插來(lái)執(zhí)行畫(huà)面的擴(kuò)展。
12.一種圖像解碼器,包括熵解碼器,從以塊為單元編碼的位流中提取紋理信息和運(yùn)動(dòng)信息中的至少一個(gè),每個(gè)塊包括允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀;逆量化單元,逆量化紋理信息;逆變換單元,從逆量化的紋理信息重建剩余值;參考畫(huà)面外插單元,擴(kuò)展用于運(yùn)動(dòng)補(bǔ)償?shù)膮⒖籍?huà)面;運(yùn)動(dòng)補(bǔ)償單元,使用運(yùn)動(dòng)信息從所擴(kuò)展的參考畫(huà)面預(yù)測(cè)要被解碼的預(yù)定形狀的塊;以及幀內(nèi)預(yù)測(cè)單元,從所解碼的相鄰塊的像素預(yù)測(cè)要被解碼的預(yù)定形狀的塊。
13.如權(quán)利要求12所述的圖像解碼器,其中預(yù)定形狀是六邊形。
14.如權(quán)利要求12所述的圖像解碼器,其中紋理信息包括預(yù)定形狀的幀內(nèi)編碼塊的像素值和預(yù)定形狀的幀間編碼塊的運(yùn)動(dòng)補(bǔ)償誤差中的至少一個(gè)。
15.如權(quán)利要求12所述的圖像解碼器,其中運(yùn)動(dòng)信息包括運(yùn)動(dòng)向量信息和參考畫(huà)面信息。
16.一種用于圖像解碼的方法,該方法包括從壓縮位流中提取紋理信息和運(yùn)動(dòng)信息;通過(guò)逆量化并逆變換紋理信息而重建剩余值;對(duì)預(yù)定形狀的塊執(zhí)行幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)中的至少一個(gè),該預(yù)定形狀的塊被編碼使得在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊;以及通過(guò)將剩余值和已經(jīng)從幀間預(yù)測(cè)和幀內(nèi)預(yù)測(cè)的至少一個(gè)中輸出的塊相加來(lái)重建畫(huà)面。
17.如權(quán)利要求16所述的方法,其中預(yù)定形狀是六邊形。
18.如權(quán)利要求16所述的方法,還包括擴(kuò)展用于預(yù)定形狀的塊的幀間預(yù)測(cè)的參考畫(huà)面。
19.如權(quán)利要求18所述的方法,其中通過(guò)對(duì)畫(huà)面邊界周?chē)南袼剡M(jìn)行外插來(lái)執(zhí)行參考畫(huà)面的擴(kuò)展。
全文摘要
提供了一種用于視頻編碼和解碼的設(shè)備和方法,其中,使用增加可用于幀內(nèi)預(yù)測(cè)的相鄰塊數(shù)目的預(yù)定形狀的塊,執(zhí)行視頻編碼和解碼。視頻編碼器包括畫(huà)面劃分單元和編碼單元。畫(huà)面劃分單元將要被編碼的畫(huà)面劃分成允許在幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定形狀的塊。編碼單元以允許在所劃分塊的幀內(nèi)預(yù)測(cè)中使用至少三個(gè)相鄰塊的預(yù)定掃描次序執(zhí)行編碼。
文檔編號(hào)H04N7/50GK1874521SQ20051013625
公開(kāi)日2006年12月6日 申請(qǐng)日期2005年12月26日 優(yōu)先權(quán)日2005年5月30日
發(fā)明者李相來(lái), 金昭營(yíng), 樸正煇, 孫有美 申請(qǐng)人:三星電子株式會(huì)社