專利名稱:視頻編碼器的快速內(nèi)模式預(yù)測(cè)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總的涉及視頻編碼,具體涉及一種用于視頻編碼器的快速內(nèi)模式預(yù)測(cè)的方法和裝置。
背景技術(shù):
內(nèi)模式預(yù)測(cè)用于內(nèi)幀和間幀。在內(nèi)幀中,所有的宏塊以內(nèi)模式編碼。對(duì)于間幀(P和B幀),在H.264標(biāo)準(zhǔn)中(又稱為JVT和MPEG-4AVC)使用間和內(nèi)預(yù)測(cè)這兩者。每個(gè)單獨(dú)的宏塊要么被編碼為內(nèi),即,僅使用空間相關(guān)性,要么被編碼為間,即,使用來(lái)自之前編碼的幀的時(shí)間相關(guān)性。通常,編碼器基于編碼效率和主觀質(zhì)量考慮,可以對(duì)每個(gè)宏塊作出間/內(nèi)編碼判決。間編碼典型地用于從之前畫面良好預(yù)測(cè)的宏塊,而內(nèi)編碼典型地用于從之前畫面未良好預(yù)測(cè)的宏塊、和/或具有低空間活動(dòng)性的宏塊。
在H.264標(biāo)準(zhǔn)中,間編碼允許使用各種塊劃分(例如,對(duì)于宏塊16×16、16×8、8×16和8×8,以及對(duì)于8×8子宏塊劃分8×8、8×4、4×8、4×4)以及多個(gè)參考畫面來(lái)預(yù)測(cè)16×16宏塊。此外,JVT還支持SKIP和DIRECT模式。
對(duì)于內(nèi)預(yù)測(cè),支持下面兩種塊類型INTRA 4×4;以及INTRA 16×16。
轉(zhuǎn)到圖1A,INTRA 4×4預(yù)測(cè)模式用附圖標(biāo)記100總的表示。INTRA 4×4預(yù)測(cè)模式100包括垂直模式0、水平模式1、DC模式2、對(duì)角-下/左模式3、對(duì)角-下/右模式4、垂直-右模式5、水平-下模式6、垂直-左模式7和水平-上模式8。
轉(zhuǎn)到圖7B,INTRA 16×16預(yù)測(cè)模式用附圖標(biāo)記150總的表示。INTRA 16×16預(yù)測(cè)模式150包括垂直模式0、水平模式1、DC模式2和PLANE模式3。
在現(xiàn)有技術(shù)中,率失真優(yōu)化(rate distortion optimization,RDO)框架用于模式判決。對(duì)于內(nèi)模式,將運(yùn)動(dòng)估計(jì)與模式判決分開考慮。首先對(duì)內(nèi)模式的所有塊類型執(zhí)行運(yùn)動(dòng)估計(jì),然后通過比較每個(gè)間模式與內(nèi)模式的成本來(lái)作出模式判決。選擇具有最小成本的模式作為最佳模式。
在內(nèi)編碼的(I)畫面中編碼一個(gè)宏塊s的傳統(tǒng)過程總結(jié)如下。該過程下面稱為“傳統(tǒng)宏塊編碼過程”。
在傳統(tǒng)宏塊編碼過程的第一步驟中,提供以下最后解碼的畫面、拉格朗日乘子λMODE、λMOTION以及宏塊量化器QP。
在傳統(tǒng)宏塊編碼過程的第二步驟中,通過當(dāng)變化MODE時(shí)給定QP和λMODE最小化J(s,c,MODE|QP,λMODE)=SSD(s,c,MODE|QP)+λMODE·R(s,c,MODE|QP)來(lái)選擇宏塊內(nèi)預(yù)測(cè)模式。符號(hào)c代表重構(gòu)的宏塊。符號(hào)SSD代表原始信號(hào)與重構(gòu)的信號(hào)之間的平方差之和。符號(hào)R(s,c,MODE)代表與選擇MODE相關(guān)的位數(shù),包括宏塊頭和所有DCT系數(shù)的位。符號(hào)MODE代表可能的宏塊模式集合當(dāng)中的模式MODE∈{INTRA4×4,INTRA16×16}INTRA 4×4模式包括 INTRA 16×16模式包括MODE∈{垂直,水平,DC,平面}為了在間編碼的(P或B)畫面中編碼一個(gè)宏塊s,采用下面兩個(gè)額外步驟。
第一額外步驟包括通過對(duì)每個(gè)參考畫面和可能的宏塊模式的運(yùn)動(dòng)向量最小化J(REF,m(REF)|λMOTION)=SAD(s,c(REF,m(REF)))+λMOTION·(R(m(REF)-p(REF))+R(REF))來(lái)執(zhí)行運(yùn)動(dòng)估計(jì)和參考畫面選擇。在該等式中,m代表正考慮的當(dāng)前運(yùn)動(dòng)向量,REF代表參考畫面,p代表在運(yùn)動(dòng)向量編碼期間用于預(yù)測(cè)的運(yùn)動(dòng)向量,R(m-p)代表用于編碼該運(yùn)動(dòng)向量的位,并且R(REF)代表用于編碼參考畫面的位。SAD代表原始信號(hào)與通過運(yùn)動(dòng)向量預(yù)測(cè)的參考信號(hào)之間的絕對(duì)差之和。
第二額外步驟包括通過當(dāng)變化MODE時(shí)給定QP和λMODE最小化J(s,c,MODE|QP,λMODE)=SSD(s,c,MODE|QP)+λMODE·R(s,c,MODE|QP)來(lái)選擇宏塊預(yù)測(cè)模式。R(s,c,MODE)包括用于宏塊頭、運(yùn)動(dòng)和所有DCT系數(shù)的位。MODE代表可能的宏塊模式的集合當(dāng)中的模式P-幀MODE∈INTRA4x4,INTRA16x16,SKIP,16x16,16x8,8x16,8x8,8x4,4x8,4x4,]]>B-幀:MODE∈INTRA4x4,INTRA16x16,BIDIRECT,DIRECT,FWD16x16,FWD16x8,FWD8x16,FWD8x8,FWD8x4,FWD4x8,FWD4x4,BAK16x16,BAK16x8,BAK8x16,BAK8x8,BAK8x4,BAK4x8,BAK4x4]]>應(yīng)當(dāng)理解,對(duì)于I畫面,采用傳統(tǒng)宏塊編碼過程的第二步驟代替前面第二額外步驟。
在現(xiàn)有技術(shù)中,特別是,對(duì)于上述的傳統(tǒng)宏塊編碼過程,首先使用圖2A和圖2B中的邊緣檢測(cè)來(lái)分析畫面。只檢查取向與主要邊緣方向較近的模式。
轉(zhuǎn)到圖2A,用于使用邊緣信息對(duì)INTRA 16×16亮度(luma)采樣執(zhí)行模式判決的方法用附圖標(biāo)記200總的表示。方法200包括開始方框202,將控制轉(zhuǎn)交給功能方框205。功能方框205獲得邊緣方向直方圖,并且將控制轉(zhuǎn)交給功能方框210。功能方框210檢查邊緣方向直方圖中具有最大幅度的模式以及兩個(gè)相鄰模式,并且將控制轉(zhuǎn)交給判決方框215。判決方框215確定是否(具有最大幅度的模式和兩個(gè)相鄰模式的)所有幅度是相似的。如果所有的幅度不是相似的,則控制轉(zhuǎn)交給功能方框220。否則,如果所有的幅度是相似的,則控制轉(zhuǎn)交給功能方框230。
功能方框220選擇所測(cè)試模式中的最佳INTRA 16×16(亮度)預(yù)測(cè)模式,并且將控制轉(zhuǎn)交給結(jié)束方框225。
判決方框230檢查DC模式,并且將控制轉(zhuǎn)交給功能方框220。
轉(zhuǎn)到圖2B,用于使用邊緣信息對(duì)INTRA 4×4采樣執(zhí)行模式判決的方法用附圖標(biāo)記250總的表示。
方法250包括開始方框252,將控制轉(zhuǎn)交給功能方框255。功能方框255獲得邊緣方向直方圖,并且將控制轉(zhuǎn)交給功能方框260。功能方框260檢查邊緣方向直方圖中具有最大幅度的模式,并且將控制轉(zhuǎn)交給判決方框265。即,功能方框260檢查在一個(gè)方向上的最大幅度,然后檢查其他方向上的幅度,以結(jié)合判決方框265確定我們是否想要檢查DC模式。判決方框265確定是否所有幅度是相似的。如果所有的幅度不是相似的,則控制轉(zhuǎn)交給功能方框270。否則,如果所有的幅度是相似的,則控制轉(zhuǎn)交給功能方框280。
功能方框270選擇所測(cè)試模式中的最佳INTRA 4×4預(yù)測(cè)模式,并且將控制轉(zhuǎn)交給結(jié)束方框275。
判決方框280檢查DC模式,并且將控制轉(zhuǎn)交給功能方框270。
關(guān)于另一種現(xiàn)有技術(shù)途徑,對(duì)于間幀,首先檢查SKIP模式和16×16模式。如果失真足夠小(SKIP模式或16×16模式對(duì)于該宏塊已經(jīng)是好的模式),則不需要測(cè)試INTRA 4×4的所有子模式。因此,在對(duì)質(zhì)量沒有多大影響的情況下可以更快地終止搜索。因此,該途徑通過使用來(lái)自間編碼的信息降低了內(nèi)模式判決的復(fù)雜度。參照?qǐng)D3示出和描述了該途徑。
轉(zhuǎn)到圖3,混合內(nèi)-間模式判決的方法用附圖標(biāo)記300總的表示。方法300包括開始模塊302,將控制轉(zhuǎn)交給功能方框304。功能方框304檢查SKIP模式和16×16模式,并且將控制轉(zhuǎn)交給判決方框306。判決方框306確定是否MC2>T1,其中MC2=min(J(SKIP),J(16×16)),SKIP模式與16×16模式之間的最小失真,并且T1是第一閾值。如果MC2<=T1,則控制轉(zhuǎn)交給判決方框308。否則,如果MC2=min(J(SKIP),J(16×16)>T1,則控制轉(zhuǎn)交給功能方框310和功能方框312。
判決方框308確定MC2是否大于T2(第二閾值)。如果MC2不大于T2,則控制轉(zhuǎn)交給功能方框310和功能方框312。否則,如果MC2大于T2,則控制轉(zhuǎn)交給功能方框318。
功能方框310檢查其他間模式,并且將控制轉(zhuǎn)交給功能方框312。功能方框312檢查其他未測(cè)試的內(nèi)模式,并且將控制轉(zhuǎn)交給功能方框314。功能方框314從評(píng)估的模式當(dāng)中選擇最佳模式,并且將控制轉(zhuǎn)交給結(jié)束方框316。結(jié)束方框316結(jié)束宏塊編碼。
功能方框318檢查INTRA 4×4DC,并且將控制轉(zhuǎn)交給判決方框320。判決方框320確定J(INTRA 4×4DC)是否小于a*MC2+b,其中a和b是常數(shù)。如果J(INTRA 4×4DC)不小于a*MC2+b,則控制轉(zhuǎn)交給功能方框310和功能方框312。否則,如果J(INTRA 4×4DC)小于a*MC2+b,則控制轉(zhuǎn)交給功能方框312。
因此,希望能有一種克服現(xiàn)有技術(shù)的上述問題的、用于視頻編碼器的快速內(nèi)模式預(yù)測(cè)的方法和裝置,這將是非常有益的。
發(fā)明內(nèi)容
本發(fā)明解決現(xiàn)有技術(shù)的這些和其他不足和缺點(diǎn),它指向一種用于視頻編碼器的快速內(nèi)模式預(yù)測(cè)的方法和裝置。
根據(jù)本發(fā)明的一個(gè)方面,提供一種用于編碼可分成宏塊的圖像的視頻數(shù)據(jù)的視頻編碼器。該視頻編碼器包括編碼器,當(dāng)編碼當(dāng)前宏塊時(shí),通過測(cè)試內(nèi)模式的子集S1計(jì)算率失真(RD)成本,并且利用RD成本來(lái)確定對(duì)于當(dāng)前宏塊是否終止內(nèi)模式選擇以及要檢查哪些額外的內(nèi)模式(如果有的話),從而執(zhí)行內(nèi)模式選擇。
根據(jù)本發(fā)明的另一方面,提供一種用于編碼圖像的視頻數(shù)據(jù)的視頻編碼器。該視頻編碼器包括編碼器,基于最佳間模式的塊類型劃分來(lái)執(zhí)行內(nèi)預(yù)測(cè)方向。
根據(jù)本發(fā)明的再一方面,提供一種用于編碼圖像的視頻數(shù)據(jù)的視頻編碼器。該視頻編碼器包括編碼器,基于INTRA 16×16的最佳子模式來(lái)執(zhí)行INTRA 4×4預(yù)測(cè)方向。
根據(jù)本發(fā)明的再一方面,提供一種用于編碼可分成宏塊的圖像的視頻數(shù)據(jù)的方法。該方法包括步驟當(dāng)編碼當(dāng)前宏塊時(shí)執(zhí)行內(nèi)模式選擇。所述執(zhí)行步驟包括步驟測(cè)試內(nèi)模式的子集S1來(lái)計(jì)算率失真(RD)成本。所述執(zhí)行步驟還包括步驟利用所述率失真成本來(lái)確定對(duì)于當(dāng)前宏塊是否終止內(nèi)模式選擇以及要檢查哪些額外的內(nèi)模式(如果有的話)。
根據(jù)本發(fā)明的再一方面,提供一種用于編碼圖像的視頻數(shù)據(jù)的方法。該方法包括步驟基于最佳間模式的塊類型劃分來(lái)執(zhí)行內(nèi)預(yù)測(cè)方向。
根據(jù)本發(fā)明的再一方面,提供一種用于編碼圖像的視頻數(shù)據(jù)的方法。該方法包括步驟基于INTRA 16×16的最佳子模式來(lái)執(zhí)行INTRA 4×4預(yù)測(cè)方向。
通過下面結(jié)合附圖對(duì)示例性實(shí)施例的詳細(xì)描述,本發(fā)明的這些和其他方面、特征和優(yōu)點(diǎn)將變得清楚。
根據(jù)下面示例性附圖可以更好地理解本發(fā)明,其中圖1A示出可以應(yīng)用本發(fā)明的INTRA 4×4預(yù)測(cè)模式;圖1B示出可以應(yīng)用本發(fā)明的INTRA 16×16預(yù)測(cè)模式;圖2A示出根據(jù)現(xiàn)有技術(shù)、使用邊緣信息對(duì)INTRA 16×16亮度采樣執(zhí)行模式判決的方法的流程圖;圖2B示出根據(jù)現(xiàn)有技術(shù)、使用邊緣信息對(duì)INTRA 4×4采樣執(zhí)行模式判決的方法的流程圖;圖3示出根據(jù)現(xiàn)有技術(shù)、混合間-內(nèi)模式判決的方法的流程圖;圖4示出根據(jù)本發(fā)明原理的視頻編碼器的流程圖;圖5示出根據(jù)本發(fā)明原理、對(duì)INTRA 16×16模式判決的方法的流程圖;圖6示出根據(jù)本發(fā)明原理、使用從INTRA 16×16模式判決獲得的信息對(duì)INTRA 4×4模式判決的方法的流程圖;圖7示出根據(jù)本發(fā)明原理、對(duì)INTRA 4×4模式判決的另一方法的流程圖;圖8示出根據(jù)本發(fā)明原理、基于內(nèi)模式劃分的快速內(nèi)模式判決方法的流程圖;以及圖9示出根據(jù)本發(fā)明原理、基于INTRA 16×16模式的快速INTRA 4×4模式判決方法的流程圖。
具體實(shí)施例方式
本發(fā)明指向一種用于視頻編碼器的快速內(nèi)模式預(yù)測(cè)的方法和裝置。與現(xiàn)有技術(shù)的快速內(nèi)模式預(yù)測(cè)方法相比,本發(fā)明的有益之處是,降低內(nèi)模式預(yù)測(cè)的復(fù)雜度,同時(shí)保持編碼效率。
本描述說(shuō)明本發(fā)明的原理。因此應(yīng)當(dāng)理解,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)能夠設(shè)計(jì)出盡管這里沒有明確描述或顯示、但卻實(shí)現(xiàn)本發(fā)明原理且包含在其宗旨和范圍內(nèi)的各種配置。
這里陳述的所有示例和條件性語(yǔ)言都是出于教學(xué)目的,以幫助讀者理解發(fā)明者為了改進(jìn)現(xiàn)有技術(shù)而貢獻(xiàn)的本發(fā)明的原理和概念,因此應(yīng)當(dāng)被認(rèn)為并非是對(duì)這些專門陳述的示例和條件的限制。
此外,這里陳述本發(fā)明原理、方面和實(shí)施例以及其特定示例的所有語(yǔ)句都意圖包含其結(jié)構(gòu)和功能等效物。此外,這些等效物意圖包括當(dāng)前已知的等效物以及將來(lái)開發(fā)的等效物,即,開發(fā)來(lái)執(zhí)行相同功能的任何元件,而不管結(jié)構(gòu)如何。
因此,例如,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,這里顯示的框圖表示實(shí)現(xiàn)本發(fā)明原理的說(shuō)明性電路的概念圖。類似地,應(yīng)當(dāng)理解,任何程序圖、流程圖、狀態(tài)轉(zhuǎn)移圖、偽代碼等表示實(shí)質(zhì)上可以在計(jì)算機(jī)可讀介質(zhì)中表示并由計(jì)算機(jī)或處理器執(zhí)行的各種處理,而不管是否明確顯示了這些計(jì)算機(jī)或處理器。
附圖中所示的功能和各個(gè)元件可以通過使用專用硬件以及與適當(dāng)軟件相關(guān)的、能夠執(zhí)行軟件的硬件來(lái)提供。當(dāng)通過處理器提供時(shí),這些功能可以通過單個(gè)專用處理器、通過單個(gè)共享處理器或者多個(gè)單獨(dú)處理器(其中一些可以共享)來(lái)提供。此外,顯式使用術(shù)語(yǔ)“處理器”或者“控制器”應(yīng)當(dāng)認(rèn)為是專指能夠執(zhí)行軟件的硬件,并且可以隱式地包括而不限于數(shù)字信號(hào)處理器(“DSP”)硬件、用于存儲(chǔ)軟件的只讀存儲(chǔ)器(“ROM”)、隨機(jī)存取存儲(chǔ)器(“RAM”)和非易失性存儲(chǔ)設(shè)備。
也可以包括其他常規(guī)和/或定制的硬件。類似地,附圖中所示的任何開關(guān)僅僅是概念上的。它們的功能可以通過編程邏輯、通過專用邏輯、通過編程控制和專用邏輯的交互或者甚至通過手動(dòng)來(lái)實(shí)現(xiàn),從上下文中可以具體理解,實(shí)施者可選擇的具體技術(shù)。
在權(quán)利要求書中,表示為用于執(zhí)行指定功能的部件的任何元件意圖包括任何執(zhí)行該功能的方式,包括例如,a)執(zhí)行該功能的電路元件的組合或者b)任何形式的軟件,包括固件、微代碼等,與執(zhí)行該軟件的適當(dāng)電路組合來(lái)執(zhí)行該功能。由該權(quán)利要求書限定的本發(fā)明在于,各種所述部件所提供的功能被按照權(quán)利要求書所要求的方式組合和集合。因此認(rèn)為可以提供這些功能的任何部件等效于這里所示的這些。
本發(fā)明提供一種快速內(nèi)模式預(yù)測(cè)的方法和裝置。本發(fā)明有益之處在于降低了模式判決的復(fù)雜度。與圖3的通過使用來(lái)自間編碼的信息降低內(nèi)模式判決的復(fù)雜度的方法相比,本發(fā)明可以與圖3的方法組合來(lái)有益地使用來(lái)自內(nèi)編碼的信息降低內(nèi)模式判決的復(fù)雜度。即,使用來(lái)自INTRA 16×16和INTRA4×4預(yù)測(cè)的信息來(lái)降低復(fù)雜度。因此,利用在內(nèi)編碼期間的中間信息來(lái)代替增加計(jì)算開銷的內(nèi)容分析,來(lái)降低模式判決的復(fù)雜度。在本發(fā)明的示例性實(shí)施例中,在INTRA 4×4之前檢查INTRA 16×16模式。當(dāng)然,給出了這里提供的本發(fā)明的教學(xué),本領(lǐng)域和相關(guān)領(lǐng)域普通技術(shù)人員將在保持本發(fā)明范圍的同時(shí),構(gòu)思出根據(jù)本發(fā)明原理使用的其他檢查順序和相應(yīng)模式。
轉(zhuǎn)到圖4,視頻編碼器用附圖標(biāo)記400總的表示。
到視頻編碼器400的輸入以信號(hào)通信與編碼器控制器404的輸入、求和節(jié)點(diǎn)402的非反相輸入、和運(yùn)動(dòng)估計(jì)器414的第一輸入相連。編碼器控制器404的第一輸出以信號(hào)通信與熵編碼器408的第一輸入相連。編碼器控制器404的第二輸出以信號(hào)通信與幀內(nèi)預(yù)測(cè)器418的第一輸入相連。編碼器控制器404的第三輸出以信號(hào)通信與運(yùn)動(dòng)補(bǔ)償器416的第一輸入相連。編碼器控制器404的第四輸出以信號(hào)通信與運(yùn)動(dòng)估計(jì)器414的第一輸入相連。編碼器控制器404的第五輸出以信號(hào)通信與縮放器/反變換器410的第一輸入相連。編碼器控制器404的第六輸出以信號(hào)通信與去塊濾波器412的第一輸入相連。
求和節(jié)點(diǎn)402的輸出以信號(hào)通信與整數(shù)變換器/縮放器/量化器406的輸入相連。整數(shù)變換器/縮放器/量化器406的輸出以信號(hào)通信與熵編碼器408的第二輸入以及縮放器/反變換器410的第二輸入相連??s放器/反變換器410的輸出以信號(hào)通信與求和節(jié)點(diǎn)420的第一輸入相連。求和節(jié)點(diǎn)420的輸出以信號(hào)通信與去塊濾波器412的第二輸入以及幀內(nèi)預(yù)測(cè)器418的第二輸入相連。去塊濾波器412的輸出以信號(hào)通信與運(yùn)動(dòng)補(bǔ)償器416的第二輸入以及運(yùn)動(dòng)估計(jì)器414的第二輸入相連,還可用作編碼器400的視頻輸出。熵編碼器408的輸出可用作編碼器400的輸出,用于輸出一輸出比特流。運(yùn)動(dòng)估計(jì)器414的輸出以信號(hào)通信與熵編碼器408的第三輸入以及運(yùn)動(dòng)補(bǔ)償器416的第三輸入相連。運(yùn)動(dòng)補(bǔ)償器416的輸出或幀內(nèi)預(yù)測(cè)器418的輸出以信號(hào)通信與求和節(jié)點(diǎn)402的反相輸入以及求和節(jié)點(diǎn)420的第二輸入相連。
編碼器400包括解碼器450,后者進(jìn)而由縮放器/反變換器410、求和節(jié)點(diǎn)420、去塊濾波器412、運(yùn)動(dòng)補(bǔ)償器416和幀內(nèi)預(yù)測(cè)器418組成。
轉(zhuǎn)到圖5,INTRA 16×16的模式判決方法用附圖標(biāo)記500總的表示。方法500包括開始方框505,將控制轉(zhuǎn)交給功能方框510。功能方框510檢查DC預(yù)測(cè)模式(DC_PRED),并且將控制轉(zhuǎn)交給判決方框515。判決方框515確定DC預(yù)測(cè)模式的率失真成本rdcost(DC_PRED)是否小于閾值TDC16。如果rdcost(DC_PRED)不小于閾值TDC16,則控制轉(zhuǎn)交給功能方框520。否則,如果rdcost(DC_PRED)小于閾值TDC16,則控制轉(zhuǎn)交給結(jié)束方框525。
功能方框520檢查HOR_PRED和VERT_PRED,并且將控制轉(zhuǎn)交給結(jié)束方框525。
如圖5所示,在1NTRA 16×16模式內(nèi),在垂直和水平模式之前測(cè)試DC模式。當(dāng)J(s,c,MODE|QP,λI16×16,DC_PRED)小于閾值TDC16時(shí),終止模式判決處理,并且對(duì)INTRA 16×16使用DC模式。否則,將測(cè)試垂直和水平模式。
轉(zhuǎn)到圖6,使用從INTRA 16×16模式判決獲得的信息對(duì)INTRA 4×4模式判決的方法用附圖標(biāo)記600總的表示。方法600包括開始方框605,將控制轉(zhuǎn)交給功能方框610。功能方框610檢查INTRA 16×16模式,并且將控制轉(zhuǎn)交給判決方框615。判決方框615確定INTRA 16×16模式的率失真成本rdcost(I16×16)是否小于閾值T1。如果rdcost(I16×16)不小于閾值T1,則控制轉(zhuǎn)交給功能方框620。否則,如果rdcost(I16×16)小于閾值T1,則控制轉(zhuǎn)交給功能方框635。
功能方框620檢查所有其他模式,并且將控制轉(zhuǎn)交給功能方框625。功能方框625在測(cè)試的模式當(dāng)中選擇最佳INTRA 16×16模式,并且將控制轉(zhuǎn)交給結(jié)束模塊630。
功能方框635檢查DC模式、水平預(yù)測(cè)模式(HOR_PRED)和垂直預(yù)測(cè)模式(VERT_PRED),并且將控制轉(zhuǎn)交給結(jié)束模塊630。
如圖6所示,在檢查了INTRA 16×16之后,如果從傳統(tǒng)宏塊編碼過程的(對(duì)于I-畫面的)步驟2的J(s,c,MODE|QP,λ16×16)小于閾值T1,則將對(duì)INTRA4×4僅測(cè)試3個(gè)模式(DC、垂直和水平)。否則,將對(duì)INTRA 4×4測(cè)試所有9個(gè)可能的模式。
在INTRA 4×4模式內(nèi),檢查9個(gè)模式的順序從{垂直、水平、DC、對(duì)角-下/左、對(duì)角-下/右、垂直-右、水平-下、垂直-左、水平-上}改變到{DC、垂直、水平、對(duì)角-下/左、對(duì)角-下/右、垂直-右、水平-下、垂直-左、水平-上}。為了本發(fā)明的目的,將{垂直、對(duì)角-下/右、垂直-右、垂直-左}定義為垂直取向的模式,并且將{水平、水平-上、水平-下、對(duì)角-下/右}定義為水平取向的模式。要注意,對(duì)角-下/右被兩個(gè)集合所覆蓋。在檢查DC模式之后,如果J(s,c,MODE|QP,λI4×4,DC_PRED)小于閾值TDC4,則可以終止搜索,并且選擇DC作為INTRA 4×4的最佳子模式。否則,檢查垂直和水平模式,并且如果垂直模式在這三個(gè)子模式中具有最小的J(s,c,MODE|QP,λI4×4)(即,該塊趨于垂直取向),則將測(cè)試其他三個(gè)垂直取向的子模式{對(duì)角-下/右、垂直-右、垂直-左}。類似地,如果水平模式在這三個(gè)子模式中具有最小的J(s,c,MODE|QP,λI4×4)(即,該塊趨于水平取向),則將測(cè)試其他三個(gè)水平取向的子模式{水平-上、水平-下、對(duì)角-下/右}。這也在圖7中進(jìn)行說(shuō)明。
轉(zhuǎn)到圖7,對(duì)INTRA 4×4模式判決的方法用附圖標(biāo)記700總的表示。方法700包括開始方框705,將控制轉(zhuǎn)交給功能方框710。功能方框710檢查DC預(yù)測(cè)模式(DC_PRED),并且將控制轉(zhuǎn)交給判決方框715。判決方框715確定DC預(yù)測(cè)模式的率失真成本rdcost(DC_PRED)是否小于閾值TDC4。如果rdcost(DC_PRED)不小于閾值TDC4,則控制轉(zhuǎn)交給功能方框720。否則,如果rdcost(DC_PRED)小于閾值TDC4,則控制轉(zhuǎn)交給結(jié)束方框760。
功能方框720檢查水平預(yù)測(cè)模式(HOR_PRED)和垂直預(yù)測(cè)模式(VERT_PRED),并且將控制轉(zhuǎn)交給功能方框725、功能方框730和功能方框735。功能方框725確定DC預(yù)測(cè)模式的率失真成本rdcost(DC_PRED)是否最小,并且將控制轉(zhuǎn)交給功能方框740。功能方框730確定水平預(yù)測(cè)模式的率失真成本rdcost(HOR_PRED)是否最小,并且將控制轉(zhuǎn)交給功能方框745。功能方框735確定垂直預(yù)測(cè)模式的率失真成本rdcost(VER_PRED)是否最小,并且將控制轉(zhuǎn)交給功能方框750。
功能方框740檢查所有其他模式,并且將控制轉(zhuǎn)交給功能方框755。
功能方框745檢查水平-上預(yù)測(cè)模式(HOR_UP_PRED)、水平-下預(yù)測(cè)模式(HOR_DOWN_PRED)和對(duì)角-下/右預(yù)測(cè)模式(DIAG_DOWN_RIGHT),并且將控制轉(zhuǎn)交給功能方框755。
功能方框750檢查對(duì)角-下/右預(yù)測(cè)模式(DIAG_DOWN_RIGHT)、垂直-右預(yù)測(cè)模式(VERT_RIGHT)和垂直-左預(yù)測(cè)模式(VERT_LEFT_PRED),并且將控制轉(zhuǎn)交給功能方框755。
功能方框755從測(cè)試的模式當(dāng)中選擇最佳I4×4模式,并且將控制轉(zhuǎn)交給結(jié)束方框760。
應(yīng)當(dāng)理解,在內(nèi)模式判決處理中可以考慮其他信息,如最佳內(nèi)模式。例如,如果最佳模式是16×8或8×4,則宏塊更可能水平取向,因此僅僅測(cè)試水平取向的那些內(nèi)模式和DC模式。然而,如果最佳模式是8×16或4×8,則宏塊更可能垂直取向,因此僅僅測(cè)試垂直取向的那些內(nèi)模式和DC模式。此外,對(duì)于INTRA 4×4,可以使用來(lái)自INTRA 16×16的最佳子模式來(lái)確定要測(cè)試哪個(gè)子集。例如,如果來(lái)自INTRA 16×16的最佳模式是垂直模式,則對(duì)INTRA 4×4僅僅測(cè)試垂直取向的子模式和DC模式。然而,如果來(lái)自INTRA 16×16的最佳模式是水平模式,則對(duì)INTRA 4×4僅僅測(cè)試水平取向的子模式和DC模式。
根據(jù)統(tǒng)計(jì),對(duì)色度INTRA 8×8僅考慮DC模式并且從INTRA 16×16預(yù)測(cè)中去掉平面模式,這可以大大節(jié)省計(jì)算,而不損失多少編碼效率。因此,對(duì)色度INTRA 8×8僅考慮DC模式并且從INTRA 16×16中去掉平面模式。
轉(zhuǎn)到圖8,基于間模式劃分的快速內(nèi)模式判決的示例性方法用附圖標(biāo)記800總的表示。
開始方框802將控制轉(zhuǎn)交給功能方框805。功能方框805檢查間模式,并且將控制轉(zhuǎn)交給判決方框810。判決方框810確定最佳間模式是否為16×8或8×4。如果最佳間模式不是16×8或8×4,則控制轉(zhuǎn)交給判決方框820。否則,如果最佳間模式是16×8或8×4,則控制轉(zhuǎn)交給判決方框815。
判決方框820確定最佳間模式是否為8×16或4×8。如果最佳間模式不是8×16或4×8,則控制轉(zhuǎn)交給功能方框830。否則,如果最佳間模式是8×16或4×8,則控制轉(zhuǎn)交給功能方框825。
功能方框815檢查水平取向的內(nèi)模式和DC內(nèi)模式,并且將控制轉(zhuǎn)交給功能方框835。功能方框825檢查垂直取向的內(nèi)模式和DC內(nèi)模式,并將控制轉(zhuǎn)交給功能方框835。
功能方框830檢查所有的內(nèi)模式,并且將控制轉(zhuǎn)交給功能方框835。功能方框835從測(cè)試的模式當(dāng)中選擇最佳模式,并且將控制轉(zhuǎn)交給結(jié)束方框840。
轉(zhuǎn)到圖9,基于INTRA 16×16模式的快速INTRA 4×4模式判決的示例性方法用附圖標(biāo)記900總的表示。開始方框905將控制轉(zhuǎn)交給功能方框810。功能方框810檢查INTRA 16×16,并且將控制轉(zhuǎn)交給功能方框915、功能方框925和功能方框935。
判決方框915確定最佳INTRA 16×16模式是否為DC或PLANE,并且將控制轉(zhuǎn)交給功能方框920。功能方框920檢查所有其他模式,并且將控制轉(zhuǎn)交給功能方框945。
功能方框925確定最佳INTRA 16×16模式是否為HOR_PRED,并且將控制轉(zhuǎn)交給功能方框930。功能方框930檢查DC、HOR_UP_PRED、HOR_DOWN_PRED和DIAG_DOWN_RIGHT模式,并且將控制轉(zhuǎn)交給功能方框945。
功能方框935確定最佳INTRA 16×16模式是否為VERT_PRED,并且將控制轉(zhuǎn)交給功能方框940。功能方框940檢查DC、DIAG_DOWN_RIGHT、VERT_RIGHT和VERT_LEFT_PRED模式,并且將控制轉(zhuǎn)交給功能方框945。
功能方框945從測(cè)試的模式當(dāng)中選擇最佳INTRA 4×4模式,并且將控制轉(zhuǎn)交給功能方框950。功能方框950從測(cè)試的模式當(dāng)中選擇最佳內(nèi)模式,并且將控制轉(zhuǎn)交給結(jié)束方框955。
現(xiàn)在將給出對(duì)本發(fā)明的許多附帶優(yōu)點(diǎn)/特征中的一些的描述。例如,一個(gè)優(yōu)點(diǎn)/特征是一種執(zhí)行內(nèi)模式選擇的視頻編碼器,當(dāng)編碼宏塊時(shí),通過測(cè)試內(nèi)模式的子集S1來(lái)計(jì)算率失真(RD)成本、并且利用RD成本來(lái)判斷是早期終止還是測(cè)試額外的模式。另一優(yōu)點(diǎn)/特征是一種如上所述的視頻編碼器,其中內(nèi)模式的子集包括{DC、垂直、水平}。再一個(gè)優(yōu)點(diǎn)/特征是一種如上所述的視頻編碼器,其中基于S1的內(nèi)模式中具有最低成本的模式,選擇其余內(nèi)模式的另一子集S2來(lái)測(cè)試。此外,另一優(yōu)點(diǎn)/特征是一種具有上述其余內(nèi)模式的另一子集S2的視頻編碼器,其中,成本可以是平方差值之和。此外,另一優(yōu)點(diǎn)/特征是一種具有上述其余內(nèi)模式的另一子集S2的視頻編碼器,其中當(dāng)垂直模式在子集S1中具有最小RD成本時(shí),其余內(nèi)模式的另一子集S2包括{對(duì)角-下/右、垂直-右、垂直-左}模式,當(dāng)水平模式在子集S1中具有最小RD成本時(shí),其余內(nèi)模式的另一子集S2包括{水平-上、水平-下、對(duì)角-下/右}模式。此外,另一優(yōu)點(diǎn)/特征是一種視頻編碼器,其中內(nèi)預(yù)測(cè)模式是基于最佳間模式的塊類型劃分。此外,另一優(yōu)點(diǎn)/特征是一種具有上述內(nèi)預(yù)測(cè)方向的視頻編碼器,其中當(dāng)最佳間模式是16×8或8×4時(shí),內(nèi)預(yù)測(cè)僅測(cè)試水平取向模式和DC模式,并且當(dāng)最佳間模式是8×16或4×8時(shí),內(nèi)預(yù)測(cè)僅測(cè)試垂直取向模式和DC模式。此外,另一優(yōu)點(diǎn)/特征是一種視頻編碼器,其中INTRA 4×4預(yù)測(cè)方向是基于INTRA 16×16的最佳子模式。此外,另一優(yōu)點(diǎn)/特征是一種具有上述INTRA4×4預(yù)測(cè)方向的視頻編碼器,其中當(dāng)最佳INTRA 16×16子模式是水平時(shí),INTRA 4×4預(yù)測(cè)僅測(cè)試水平取向模式和DC模式,并且當(dāng)最佳INTRA 16×16子模式是垂直時(shí),INTRA 4×4預(yù)測(cè)僅測(cè)試垂直取向模式和DC模式。
基于這里的教學(xué),相關(guān)領(lǐng)域普通技術(shù)人員可以容易地確定本發(fā)明的這些和其他特征和優(yōu)點(diǎn)。應(yīng)當(dāng)理解,本發(fā)明的教學(xué)可以以硬件、軟件、固件、專用處理器或者其組合的各種形式實(shí)現(xiàn)。
最好,本發(fā)明的教學(xué)實(shí)現(xiàn)為硬件和軟件的組合。此外,該軟件最好實(shí)現(xiàn)為程序存儲(chǔ)單元上有形具體化的應(yīng)用程序。應(yīng)用程序可以被上載到包括任何適合架構(gòu)的機(jī)器上并執(zhí)行。最好,該機(jī)器在具有諸如一個(gè)或多個(gè)中央處理單元(“CPU”)、隨機(jī)存取存儲(chǔ)器(“RAM”)和輸入/輸出(“I/O”)接口之類的硬件的計(jì)算機(jī)平臺(tái)上實(shí)現(xiàn)。該計(jì)算機(jī)平臺(tái)還可以包括操作系統(tǒng)和微指令代碼。這里所述的各種處理和功能可以是可由CPU執(zhí)行的微指令代碼的一部分或者應(yīng)用程序的一部分或者其任何組合。此外,各個(gè)其他外圍單元可以連接到計(jì)算機(jī)平臺(tái),如額外的數(shù)據(jù)存儲(chǔ)單元和打印單元。
還應(yīng)當(dāng)理解,因?yàn)楦綀D中繪出的一些構(gòu)成系統(tǒng)組件和方法最好以軟件實(shí)現(xiàn),所以系統(tǒng)組件或處理功能方框之間的實(shí)際連接可能根據(jù)本發(fā)明被編程的方式而不同。這里給出了教學(xué),相關(guān)領(lǐng)域普通技術(shù)人員將能夠構(gòu)思本發(fā)明的這些和類似的實(shí)現(xiàn)或配置。
盡管這里結(jié)合附圖描述了說(shuō)明性實(shí)施例,但應(yīng)當(dāng)理解,本發(fā)明不限于這些具體實(shí)施例,并且相關(guān)領(lǐng)域普通技術(shù)人員在不背離本發(fā)明宗旨和范圍的前提下可以進(jìn)行各種改變和修改。所有這些改變和修改都意圖被包括在權(quán)利要求書所闡述的本發(fā)明范圍以內(nèi)。
權(quán)利要求
1.一種用于編碼可分成宏塊的圖像的視頻數(shù)據(jù)的裝置,包括編碼器(400),通過測(cè)試內(nèi)模式的第一子集計(jì)算率失真成本,來(lái)執(zhí)行內(nèi)模式選擇,其中,率失真成本用于確定是否終止內(nèi)模式選擇。
2.如權(quán)利要求1所述的裝置,其中率失真成本還用于確定要檢查哪些額外的內(nèi)模式,如果有的話。
3.如權(quán)利要求1所述的裝置,其中,內(nèi)模式的第一子集包括{DC,垂直,和水平}模式。
4.如權(quán)利要求1所述的裝置,其中,基于第一子集的內(nèi)模式中具有最低成本的模式,選擇其余內(nèi)模式的第二子集來(lái)測(cè)試。
5.如權(quán)利要求4所述的裝置,其中,最低成本是平方差值之和。
6.如權(quán)利要求4所述的裝置,其中,基于第一子集的內(nèi)模式中具有最低成本的模式,選擇其余內(nèi)模式的第二子集來(lái)測(cè)試,并且當(dāng)垂直模式在第一子集中具有最小率失真成本時(shí),第二子集包括{對(duì)角-下/右、垂直-右、和垂直-左}模式,當(dāng)水平模式在第一子集中具有最小率失真成本時(shí),第二子集包括{水平-上、水平-下、和對(duì)角-下/右}模式。
7.一種用于編碼圖像的視頻數(shù)據(jù)的裝置,包括編碼器(400),基于最佳間模式的塊類型劃分來(lái)執(zhí)行內(nèi)預(yù)測(cè)方向。
8.如權(quán)利要求7所述的裝置,其中,當(dāng)最佳間模式是16×8或8×4時(shí),內(nèi)預(yù)測(cè)僅測(cè)試水平取向模式和DC模式,并且當(dāng)最佳間模式是8×16或4×8時(shí),內(nèi)預(yù)測(cè)僅測(cè)試垂直取向模式和DC模式。
9.一種用于編碼圖像的視頻數(shù)據(jù)的裝置,包括編碼器(400),通過基于INTRA 16×16的最佳子模式確定INTRA 4×4預(yù)測(cè)方向,來(lái)執(zhí)行INTRA 4×4預(yù)測(cè)。
10.如權(quán)利要求9所述的裝置,其中,當(dāng)最佳INTRA 16×16子模式是水平時(shí),INTRA 4×4預(yù)測(cè)僅測(cè)試水平取向模式和DC模式,并且當(dāng)最佳INTRA16×16子模式是垂直時(shí),INTRA 4×4預(yù)測(cè)僅測(cè)試垂直取向模式和DC模式。
11.一種用于編碼可分成宏塊的圖像的視頻數(shù)據(jù)的方法,包括步驟當(dāng)編碼當(dāng)前宏塊時(shí)執(zhí)行內(nèi)模式選擇,其中所述執(zhí)行步驟包括步驟測(cè)試(715)內(nèi)模式的第一子集來(lái)計(jì)算率失真成本;和響應(yīng)于所述率失真成本,確定(730、735)是否終止內(nèi)模式選擇。
12.如權(quán)利要求11所述的方法,其中,內(nèi)模式的第一子集包括{DC、垂直、和水平}模式。
13.如權(quán)利要求11所述的方法,還包括步驟基于第一子集的內(nèi)模式中具有最低成本的模式,選擇(740、745、750)其余內(nèi)模式的另一第二子集來(lái)測(cè)試。
14.如權(quán)利要求13所述的方法,其中,基于第一子集的內(nèi)模式中具有最低成本的模式,選擇其余內(nèi)模式的第二子集來(lái)測(cè)試。
15.如權(quán)利要求14所述的方法,其中最低成本是平方差值之和。
16.如權(quán)利要求13所述的方法,其中,基于第一子集的內(nèi)模式中具有最低成本的模式,選擇其余內(nèi)模式的第二子集來(lái)測(cè)試,并且當(dāng)垂直模式在第一子集中具有最小率失真成本時(shí),第二子集包括{對(duì)角-下/右、垂直-右、和垂直-左}模式,當(dāng)水平模式在第一子集中具有最小率失真成本時(shí),第二子集包括{水平-上、水平-下、和對(duì)角-下/右}模式。
17.如權(quán)利要求11所述的方法,其中率失真成本還用于確定要檢查哪些額外的內(nèi)模式,如果有的話。
18.一種用于編碼圖像的視頻數(shù)據(jù)的方法,包括步驟基于最佳間模式的塊類型劃分來(lái)執(zhí)行(800)內(nèi)預(yù)測(cè)方向。
19.如權(quán)利要求18所述的方法,其中,當(dāng)最佳間模式是16×8或8×4時(shí),內(nèi)預(yù)測(cè)僅測(cè)試水平取向模式和DC模式,并且當(dāng)最佳間模式是8×16或4×8時(shí),內(nèi)預(yù)測(cè)僅測(cè)試垂直取向模式和DC模式。
20.一種用于編碼圖像的視頻數(shù)據(jù)的方法,包括步驟通過基于INTRA16×16的最佳子模式確定INTRA 4×4預(yù)測(cè)方向,來(lái)執(zhí)行(900)INTRA 4×4預(yù)測(cè)。
21.如權(quán)利要求20所述的方法,其中,當(dāng)最佳INTRA 16×16子模式是水平時(shí),INTRA 4×4預(yù)測(cè)僅測(cè)試水平取向模式和DC模式,并且當(dāng)最佳INTRA16×16子模式是垂直時(shí),INTRA 4×4預(yù)測(cè)僅測(cè)試垂直取向模式和DC模式。
全文摘要
提供用于編碼可分成宏塊的圖像的視頻數(shù)據(jù)的視頻編碼器和相應(yīng)的方法。視頻編碼器包括編碼器(400),當(dāng)編碼當(dāng)前宏塊時(shí),通過測(cè)試內(nèi)模式的第一子集計(jì)算率失真成本,并且利用率失真成本來(lái)確定對(duì)于當(dāng)前宏塊是否終止內(nèi)模式選擇以及要檢查哪些額外的內(nèi)模式(如果有的話),從而執(zhí)行內(nèi)模式選擇。最佳間模式也可以用于執(zhí)行內(nèi)預(yù)測(cè)。
文檔編號(hào)H04N7/36GK101053259SQ200580037721
公開日2007年10月10日 申請(qǐng)日期2005年10月19日 優(yōu)先權(quán)日2004年11月4日
發(fā)明者陸曉安, 尹澎, 吉爾·M·博伊斯 申請(qǐng)人:湯姆森特許公司