專利名稱:用于處理視頻信號的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理視頻信號的設(shè)備及其方法,該設(shè)備和方法使用畫面間預(yù)測。
背景技術(shù):
通常,在將編碼視頻信號傳送到解碼器時,執(zhí)行移除空間冗余和時間冗余的方法 (即,畫面內(nèi)預(yù)測或者畫面間預(yù)測的方法)以增強視頻信號的壓縮比。
發(fā)明內(nèi)容
技術(shù)問題因此,本發(fā)明針對一種用于處理視頻信號的設(shè)備及其方法,該設(shè)備和方法基本上避免了由于現(xiàn)有技術(shù)的局限和缺點而導(dǎo)致的一個或多個問題。本發(fā)明的目的在于提供一種用于處理視頻信號的設(shè)備及其方法,通過該設(shè)備和方法能夠使用畫面間預(yù)測來高效地處理視頻信號。本發(fā)明的另一目的在于提供一種用于處理視頻信號的設(shè)備及其方法,通過該設(shè)備和方法能夠以使用跳過模式來執(zhí)行畫面間預(yù)測的方式高效地處理視頻信號。本發(fā)明的又另一目的在于提供一種用于處理視頻信號的設(shè)備及其方法,通過該設(shè)備和方法能夠使用直接模式來高效地處理視頻信號。技術(shù)解決方案為了實現(xiàn)這些及其它優(yōu)點,本發(fā)明提出了一種視頻信號處理方法,其特征在于,在執(zhí)行畫面間預(yù)測中配置各種運動矢量候選,并且從該各種運動矢量候選獲得精確的運動矢量。本發(fā)明提出了一種視頻信號處理方法,其特征在于,指示宏塊內(nèi)具有預(yù)定大小的區(qū)域是否以跳過模式被編碼。本發(fā)明提出了一種視頻信號處理方法,其特征在于,指示根據(jù)宏塊類型信息的宏塊的分割是否以跳過模式被編碼。本發(fā)明提出了一種視頻信號處理方法,其特征在于,提出了用于指示在一個宏塊內(nèi)部分地直接模式或者跳過模式的宏塊類型,并且基于該宏塊類型使用跳過模式或者直接模式來執(zhí)行畫面間預(yù)測。本發(fā)明提出了一種視頻信號處理方法,其特征在于,如果宏塊以跳過模式被編碼, 則按小于宏塊大小的塊單元來導(dǎo)出運動矢量。而且,本發(fā)明提出了一種視頻信號處理方法,其特征在于,定義跳過模式指示信息或者直接模式指示信息,指示宏塊是否以跳過模式被編碼;并且使用CBP (編碼塊模式)信息來確定是跳過模式還是直接模式。有益效果因此,本發(fā)明提供了以下效果和/或優(yōu)點。首先,從用于畫面間預(yù)測的運動矢量候選獲得精確的運動矢量。因此,能夠減少要編碼的運動矢量差值的比特大小,并且能夠增強重建原始視頻的準(zhǔn)確度。在對于大于16x16 的宏塊使用直接模式或者跳過模式的情況下,通過按小于宏塊的大小的塊單元使用直接模式或者跳過模式,能夠減少使用跳過模式或者直接模式的畫面間預(yù)測的誤差,并且能夠增強編碼效率。通過使用用于指示一個宏塊中的部分地跳過模式或者直接模式的宏塊類型, 不需要針對該宏塊內(nèi)的預(yù)定大小的區(qū)域來對指示跳過模式或者直接模式的信息進行編碼, 并且能夠減少要通過僅對宏塊類型信息進行編碼來編碼的比特大小。在以跳過模式編碼宏塊的情況下,通過按小于宏塊的大小的宏塊單元來導(dǎo)出運動矢量,能夠使用該運動矢量獲得接近原始視頻的參考塊的像素值。因此,能夠提高宏塊的重建比率。當(dāng)宏塊使用跳過模式或者直接模式時,沒有必要對針宏塊分開地對跳過模式指示信息和直接模式指示信息分開地進行編碼。由于使用已經(jīng)編碼的CBP信息來確定跳過模式或者直接模式,因此能夠減少要編碼的信息大小。因此,能夠提高視頻信號處理的效率。
附圖被包括進來以提供對本發(fā)明的進一步理解,并且被并入和構(gòu)成本說明書的一部分,附示了本發(fā)明的實施例并且與描述一起用于解釋本發(fā)明的原理。在附圖中圖1是根據(jù)本發(fā)明的視頻信號解碼設(shè)備的示意性框圖;圖2是根據(jù)本發(fā)明的一個實施例的按小于宏塊大小的塊單元應(yīng)用跳過模式的方法的示圖;圖3是基于宏塊類型信息指示在宏塊內(nèi)使用跳過模式的部分的方法的框圖;圖4是根據(jù)本發(fā)明的一個實施例的在子宏塊級指示當(dāng)前宏塊是否部分地以跳過模式被編碼的方法的圖;圖5是根據(jù)本發(fā)明的另一實施例的指示當(dāng)前宏塊是否部分地以跳過模式被編碼的方法的圖;圖6和圖7是根據(jù)本發(fā)明的一個實施例的指示部分跳過模式的宏塊類型的示圖;圖8是根據(jù)本發(fā)明的一個實施例的在宏塊類型是P跳過宏塊的情況下導(dǎo)出運動矢量的方法的示圖;圖9是應(yīng)用了空間方向預(yù)測模式的幀間預(yù)測單元700的示意性內(nèi)部框圖;以及圖10是使用跳過模式指示信息或者直接模式指示信息來解碼條帶數(shù)據(jù)的過程的框圖。最佳模式在隨后的描述中將闡述本發(fā)明的其它優(yōu)點和特征,并且部分地將從描述中變得明顯,或者可以通過本發(fā)明的實踐來習(xí)得。通過在撰寫的描述及其權(quán)利要求以及附圖中所具體指出的結(jié)構(gòu)可以實現(xiàn)并且獲得本發(fā)明的目的和其它優(yōu)點。為了實現(xiàn)這些和其它優(yōu)點并且根據(jù)本發(fā)明的目的,如實現(xiàn)并且廣泛描述的,一種處理視頻信號的方法,包括下述步驟獲得當(dāng)前宏塊類型;根據(jù)當(dāng)前宏塊類型獲得關(guān)于當(dāng)前宏塊的分割的跳過或直接模式指示信息;根據(jù)跳過或直接模式指示信息導(dǎo)出該分割的運動矢量;以及使用該導(dǎo)出的運動矢量來預(yù)測分割的像素值。優(yōu)選地,本發(fā)明的特征在于,跳過或直接模式指示信息包括指示分割以跳過模式還是以直接模式編碼的信息。優(yōu)選地,本發(fā)明的特征在于,導(dǎo)出分割的運動矢量的步驟進一步包括下述步驟獲得當(dāng)前宏塊的CBP (編碼塊樣式)信息;以及基于CBP信息來確定分割是以跳過模式還是直接模式編碼的。更優(yōu)選地,本發(fā)明的特征在于,該方法進一步包括下述步驟如果分割是以直接模式編碼的,則獲得分割的殘差數(shù)據(jù)。在該情況下,本發(fā)明的特征在于,分割的殘差數(shù)據(jù)是指分割的原始像素值和預(yù)測像素值之間的差值。而且,本發(fā)明的特征在于,基于根據(jù)當(dāng)前宏塊類型的預(yù)測塊的大小信息來獲得當(dāng)前宏塊的分割。此外,本發(fā)明的特征在于,跳過模式指示信息包括指示當(dāng)前宏塊的分割是否以跳過模式被編碼。優(yōu)選地,本發(fā)明的特征在于,從與當(dāng)前宏塊的分割鄰近的塊的運動矢量的中間值導(dǎo)出分割的運動矢量。更優(yōu)選地,本發(fā)明的特征在于,與當(dāng)前宏塊的分割鄰近的塊包括分割的左塊、上塊和右上塊。優(yōu)選地,本發(fā)明的特征在于,分割的像素值包括由分割的運動矢量指示的基準(zhǔn)塊的像素值。應(yīng)當(dāng)理解,前述一般性描述和接下來的詳細(xì)描述都是示例性和說明性的,并且意在提供如本要求保護的本發(fā)明的進一步的說明。
具體實施例方式現(xiàn)在將詳細(xì)參考本發(fā)明的優(yōu)選實施例,其示例在附圖中被示出。首先,在該說明書和權(quán)利要求中使用的術(shù)語或者詞語不應(yīng)該被理解為局限為一般性或者字典中的含義,并且應(yīng)該基于發(fā)明人能夠適當(dāng)?shù)囟x該術(shù)語的概念來以最佳的方式描述發(fā)明人的發(fā)明的原理來理解為匹配本發(fā)明的技術(shù)原理的含義和概念。在本公開中公開的實施例和附圖中示出的配置僅是一個優(yōu)選實施例,并且不表示本發(fā)明的所有技術(shù)原理。因此,應(yīng)當(dāng)理解,在本發(fā)明的修改和變化落入在提交本申請時所附權(quán)利要求及其等價物的范圍內(nèi)的情況下,本發(fā)明涵蓋這些修改和變化。首先,宏塊是用于處理視頻幀的基本單元,并且能夠被定義為由16x16個像素構(gòu)建的區(qū)域。大于16x16的宏塊能夠成為用于處理具有大于現(xiàn)有技術(shù)的分辨率的視頻幀的基本單元。例如,該宏塊能夠被定義為例如用3h32個像素或者64x64個像素構(gòu)建的區(qū)域。能夠根據(jù)視頻圖像的分辨率適配地使用大于16x16的宏塊。例如,如果視頻圖像的分辨率等于或者小于VGA,則能夠?qū)⒑陦K的大小設(shè)置為16x16。因此,可以使用16x8、 8x16,4x8,8x4以及4x4塊中的一個作為對宏塊的分割。如果視頻圖像的分辨率等于或者大于VGA并且等于或者小于1080P,則能夠?qū)⒑陦K的大小設(shè)置為32x32。因此,可以使用32x16、 16x32,16x16,16x8,8x16和8x8塊中的一個作為宏塊的分割。如果視頻圖像的分辨率等于或者大于IOSOp并且等于或者小于4k x2k,則能夠?qū)⒑陦K的大小設(shè)置為64x64。類似的,能夠使用6^32、3h64、3hl6、16x32和16x16來作為對宏塊的分割。然而,編碼器能夠根據(jù)視頻圖像的分辨率來確定16x16宏塊和大于16x16的其它宏塊中的一個的最佳大小。所確定的宏塊大小信息能夠在條帶或者序列級被傳送到解碼器。能夠根據(jù)宏塊的預(yù)測模式,即根據(jù)畫面內(nèi)預(yù)測模式或者畫面間預(yù)測模式來定義宏塊類型。這能夠包括預(yù)測塊的大小信息。而且,用于執(zhí)行畫面間預(yù)測的宏塊類型還能夠包括關(guān)于預(yù)測方向的信息。以畫面內(nèi)預(yù)測模式編碼的預(yù)測塊的大小能夠被設(shè)置為16x16像素、8x8像素和4x4 像素中的一個。該預(yù)測塊是用于在畫面內(nèi)執(zhí)行畫面內(nèi)預(yù)測或者畫面間預(yù)測的塊的單元。對于以畫面間預(yù)測模式編碼的預(yù)測塊的運動補償,可以使用16x16像素、16x8像素、8x16像素和8x8像素中的一個作為預(yù)測塊的大小。在使用8x8像素作為預(yù)測塊的大小的情況下,能夠以8x8像素預(yù)測塊的分割(例如,8x4像素、4x8像素和4x4像素)的單元來執(zhí)行畫面間預(yù)測。在分辨率等于或者大于VGA并且等于或者小于1080P的情況下,以畫面內(nèi)預(yù)測模式編碼的預(yù)測塊的大小能夠被設(shè)置為16x16像素或者8x8像素。而且,以畫面間預(yù)測模式編碼的預(yù)測塊的大小能夠被設(shè)置為16x16像素、16x8像素、8x16像素和8x8像素中的一個。 在該情況下,可以不以8x8像素預(yù)測塊的分割(例如,8x4像素、4x8像素和4x4像素)的單元來執(zhí)行畫面間預(yù)測。在分辨率等于或者大于1080P并且等于或者小于4kx2k的情況下, 以畫面內(nèi)預(yù)測模式或者畫面間預(yù)測模式編碼的預(yù)測塊的大小能夠被設(shè)置為16x16像素。類似地,編碼器能夠根據(jù)視頻圖像的分辨率來確定最佳宏塊類型。該確定的宏塊類型信息能夠在條帶級或者序列級被發(fā)送到解碼器。因此,能夠適配地使用確定的宏塊類型。圖1是根據(jù)本發(fā)明的視頻信號解碼設(shè)備的示意性框圖。參考圖1,解碼設(shè)備主要包括解析單元100、熵解碼單元200、去量化/反變換單元 300、幀內(nèi)預(yù)測單元400、去塊化濾波單元500、解碼畫面緩沖單元600、幀間預(yù)測單元700等。解析單元100以NAL單元來執(zhí)行解析以解碼接收到的視頻圖像。通常,在解碼條帶頭和數(shù)據(jù)之前將至少一個或多個序列參數(shù)集和畫面參數(shù)集發(fā)送到解碼器。在該情況下, 各種屬性信息可以被包括在NAL頭區(qū)域或者NAL頭的擴展區(qū)域中。經(jīng)由熵解碼單元200對解析的比特流進行熵解碼,并且然后提取每個宏塊的系數(shù)、運動矢量等。反量化/反變換單元300通過使接收到的量化值乘以預(yù)定的常數(shù)來獲得系數(shù)值,并且然后通過反變換系數(shù)值來重建像素值。幀內(nèi)預(yù)測單元400使用重建的像素值在當(dāng)前畫面內(nèi)根據(jù)解碼的采樣來執(zhí)行畫面內(nèi)預(yù)測。同時,去塊化濾波單元500被應(yīng)用于每個編碼的宏塊以減少塊失真。濾波器通過對塊的邊緣進行平滑來增強幀的圖像質(zhì)量。對于濾波處理的選擇取決于圖像采樣的變化。濾波的畫面被輸出或者存儲在解碼畫面緩沖單元600中以用作基準(zhǔn)畫面。解碼畫面緩沖單元600在存儲或者打開先前編碼的畫面中起作用以執(zhí)行畫面間預(yù)測。在該情況下,為了存儲或者打開它們,使用每個畫面的frame_nUm以及P0C(畫面順序計數(shù))。幀間預(yù)測單元700使用存儲在解碼畫面緩沖單元600中的基準(zhǔn)畫面來執(zhí)行畫面間預(yù)測。以幀間模式編碼的宏塊能夠被分城宏塊分割。而且能夠根據(jù)一個或兩個基準(zhǔn)畫面來預(yù)測宏塊分割中的每一個。幀間預(yù)測單元700使用從熵解碼單元200傳送的信息來補償當(dāng)前塊的運動。在下面的描述中,應(yīng)當(dāng)理解,塊包括宏塊或者宏塊的分割。從視頻信號中提取與當(dāng)前塊相鄰的塊的運動矢量。然后,能夠從相鄰塊獲得當(dāng)前塊的運動矢量預(yù)測值。相鄰塊能夠包括當(dāng)前塊的左側(cè)、上側(cè)或者右上側(cè)的塊。例如,能夠?qū)?dāng)前塊的運動矢量的預(yù)測值設(shè)置為使用相鄰塊的運動矢量的水平分量和垂直分量的中間值來獲得。替代地,在當(dāng)前塊的左側(cè)塊具有以畫面間預(yù)測模式編碼的至少一個預(yù)測塊的情況下,能夠?qū)?dāng)前塊的運動矢量的預(yù)測值設(shè)置為使用位于上側(cè)的預(yù)測塊的運動矢量來獲得。在當(dāng)前塊的上側(cè)塊具有以畫面間預(yù)測模式編碼的至少一個預(yù)測塊的情況下,能夠?qū)?dāng)前塊的運動矢量的預(yù)測值設(shè)置為使用位于最左側(cè)的預(yù)測塊的運動矢量來獲得。在相鄰塊中位于當(dāng)前塊的上側(cè)和右側(cè)的塊位于畫面或者條帶的邊界外,則能夠?qū)?dāng)前塊的運動矢量的預(yù)測值設(shè)置為左側(cè)塊的運動矢量。如果在相鄰塊中存在具有當(dāng)前塊的相同基準(zhǔn)畫面所以的一個塊,則能夠?qū)?yīng)塊的運動矢量設(shè)置為用于預(yù)測。基于根據(jù)宏塊類型的宏塊的分割,能夠獲得運動矢量的預(yù)測值。例如,當(dāng)根據(jù)當(dāng)前宏塊類型的當(dāng)前宏塊的分割是8x16時,如果宏塊的分割的索引被設(shè)置為0,則能夠?qū)?dāng)前塊的上側(cè)塊設(shè)置為用于預(yù)測。如果宏塊的分割的索引被設(shè)置為1,則能夠?qū)?dāng)前塊的左側(cè)塊設(shè)置為用于預(yù)測。在獲得當(dāng)前塊的運動矢量預(yù)測值時,能夠?qū)⒖蓮南噜弶K提取的各種運動矢量定義為運動矢量預(yù)測值的候選。如前面的描述中所提到的,運動矢量預(yù)測值的候選能夠包括相鄰塊中的一個的運動矢量、相鄰塊的運動矢量的中間值等,候選不限于此。因此,編碼器從運動矢量預(yù)測值中選擇具有最佳效率的運動矢量作為運動矢量預(yù)測值,并且然后能夠?qū)⑦x擇的運動矢量信息發(fā)送到解碼器。能夠從宏塊級的條帶級獲得選擇的運動矢量信息。能夠使用索引來定義運動矢量預(yù)測值的候選。而且,選擇的運動矢量信息能夠包括該索引。通過對當(dāng)前塊的運動矢量和運動矢量的預(yù)測值之間的差矢量進行編碼,能夠減少要編碼的比特大小。使用獲得的運動矢量預(yù)測值和從視頻信號提取的差矢量來補償當(dāng)前塊的運動。此外,能夠使用一個基準(zhǔn)畫面或者多個畫面來執(zhí)行該運動補償。在宏塊的大小是16x16的情況下,包括16x16、16x8、8xl6、8x8、8x43x8和乜4的總共7種塊大小可用于畫面間預(yù)測。它們能夠被分級地表示為宏塊或者子宏塊類型。具體地,預(yù)測塊的大小能夠被表示為宏塊類型,并且能夠選擇16χ16、16χ8、8χ16和8x8中的一個。能夠針對每個預(yù)測塊對基準(zhǔn)畫面索引和運動矢量進行編碼。替代地,能夠針對每個預(yù)測塊來對運動矢量進行編碼。當(dāng)然,能夠以與宏塊相同的方式來確定用于子宏塊的編碼方案。在重建當(dāng)前宏塊時,跳過宏塊可以被定義為使用在前一編碼基準(zhǔn)畫面中完整的宏塊的像素值來替代具有關(guān)于當(dāng)前宏塊的信息,即,運動矢量、基準(zhǔn)畫面索引以及殘差數(shù)據(jù)。 在對跳過宏塊進行編碼時,能夠伴隨著使用運動矢量的運動補償。能夠使用相鄰塊導(dǎo)出該運動矢量。先前的運動矢量導(dǎo)出方法相同地適用于導(dǎo)出該運動矢量的方法。如下解釋用于使用跳過模式對條帶數(shù)據(jù)進行編碼的過程。首先,能夠獲得指示條帶內(nèi)的當(dāng)前宏塊是否是跳過宏塊的標(biāo)志信息。在宏塊大于16x16的情況下,能夠通過指示使用跳過模式的宏塊的分割以小于該宏塊大小的塊單元應(yīng)用跳過模式。因此,能夠增強編碼的效率。圖2是根據(jù)本發(fā)明的一個實施例的以小于宏塊的大小的塊單元應(yīng)用跳過模式的方法的圖。參考圖2,在宏塊的大小是32x32的情況下,能夠使用指示其是否是以16x16塊為單位的跳過宏塊的標(biāo)志信息。如果指示其是否是跳過宏塊的標(biāo)志被設(shè)置為1,則能夠定義該宏塊處于跳過模式。在宏塊內(nèi)位于上側(cè)的宏塊的分割僅以跳過模式進行編碼的情況下, 能夠傳送四個比特“1000”。如果宏塊內(nèi)的16x16宏塊的所有分割都以跳過模式進行編碼, 則不解析諸如運動矢量等的其它信息。然而,如果宏塊部分地包括以跳過模式編碼的宏塊的分割,則將解析宏塊類型。在該情況下,能夠?qū)⑵浔硎緸榫哂?6x16宏塊的分割的宏塊類型。圖3是基于宏塊類型信息指示宏塊內(nèi)使用跳過模式的部分的方法的框圖。參考圖3,解析在條帶級指示當(dāng)前塊是否是跳過宏塊的標(biāo)志信息[S300]。作為解析的結(jié)果,如果當(dāng)前宏塊不是跳過宏塊[‘否1’ ],則將在宏塊級解析當(dāng)前宏塊類型信息 [S310],如果當(dāng)前宏塊不是跳過宏塊,則可以以跳過模式對當(dāng)前宏塊的一些分割進行編碼。 因此,如果當(dāng)前宏塊是跳過宏塊[‘是1’ ],則能夠在不對當(dāng)前宏塊的運動信息等進行解析的情況下執(zhí)行解碼[S340]。如果當(dāng)前宏塊不是跳過宏塊,則解析當(dāng)前宏塊類型,并且然后能夠從當(dāng)前宏塊類型獲得當(dāng)前宏塊的分割信息。能夠解析指示當(dāng)前宏塊的分割是否以跳過模塊進行編碼的標(biāo)志信息[S320]。當(dāng)當(dāng)前宏塊的大小是32x32時,作為在宏塊級解析當(dāng)前宏塊類型的結(jié)果,如果當(dāng)前宏塊類型被表示為16x16,則能夠解析指示16x16宏塊的分割是否以跳過模式進行編碼的標(biāo)志信息。根據(jù)該標(biāo)志信息,將在不對運動信息等進行解析的情況下對跳過模式編碼的分割執(zhí)行解碼[‘是2’]。而且對于沒有以跳過模式進行編碼的分割 [‘否2’ ],將解析運動信息和殘差數(shù)據(jù)[S330]。這能夠等同地適用于子宏塊級。圖4是根據(jù)本發(fā)明的一個實施例的指示在子宏塊級是否部分地以跳過模式編碼當(dāng)前宏塊的方法的示圖。參考圖4,如果當(dāng)前宏塊的大小是32x32,則能夠?qū)⒆雍陦K的大小設(shè)置為16x16。作為解析當(dāng)前宏塊類型信息的結(jié)果,如果根據(jù)當(dāng)前宏塊類型的宏塊的分割是16x16,則能夠解析指示是否以跳過模式編碼四個16x16子宏塊的標(biāo)志信息[S400]。作為該解析的結(jié)果,能夠在不解析單獨的信息的情況下對跳過模式編碼的子宏塊執(zhí)行解碼 [S410]。因此,能夠解析該子宏塊的基準(zhǔn)畫面索引和運動矢量[S420]。然而,能夠基于根據(jù)子宏塊類型的子宏塊的分割解析該子宏塊的運動矢量。圖5是根據(jù)本發(fā)明的另一實施例的指示是否部分地以跳過模式編碼當(dāng)前宏塊的方法的示圖。參考圖5,能夠解析指示條帶內(nèi)的當(dāng)前宏塊是否是跳過宏塊的標(biāo)志信息[S500]。 如果根據(jù)標(biāo)志信息當(dāng)前宏塊是跳過宏塊[‘是1’],則能夠在不解析運動信息等的情況下執(zhí)行解碼[S550]。然而,如果當(dāng)前宏塊不是跳過宏塊[‘否1’],則能夠解析指示當(dāng)前宏塊的分割是否存在和分割的跳過模式編碼是否存在的標(biāo)志信息[S510]。例如,在宏塊的大小是32x32的情況下,如果標(biāo)志被設(shè)置為1,則能夠定義該宏塊的分割是16x16。而且還能夠定義該宏塊的分割中的至少一個以跳過模式進行編碼。另一方面,如果該標(biāo)志被設(shè)置為0,則能夠定義該宏塊的分割不是16x16或者定義即使分割為 16x16,該宏塊的所有分割也不以跳過模式進行編碼。在下面的描述中,假定以上述方式定義標(biāo)志。因此,作為解析標(biāo)志信息的結(jié)果,如果獲得了‘1’[ ‘是2’],則當(dāng)宏塊的分割被設(shè)置為16x16時,不需要解析宏塊類型信息。而且,能夠針對四個16x16宏塊分割解析指示該16x16宏塊的分割是否以跳過模式被編碼的標(biāo)志信息[S560]。因此,如果該16x16宏塊的分割以跳過模式進行編碼[‘是3’],則能夠在不解析運動信息等的情況下執(zhí)行解碼[S550]。此外,如果以跳過模式編碼分割,則可以不
8解析CBP。因此,通過減少傳送的信息的大小,則能夠增強信號處理的效率。然而,如果沒有以跳過模式進行編碼[‘否3’],則解析運動信息和殘差[S540],并且能夠使用解析結(jié)果來進行解碼[S550]。作為解析標(biāo)志信息的結(jié)果,如果獲得了 0[ ‘否2’ ],則能夠解析當(dāng)前宏塊類型信息[S520]。如果根據(jù)當(dāng)前宏塊類型的當(dāng)前宏塊的分割不是16x16,則能夠解析指示其是否以跳過模式被編碼的標(biāo)志信息[S530]。然而,如果根據(jù)當(dāng)前宏塊類型的當(dāng)前宏塊的分割是 16x16,則當(dāng)所有四個分割沒有以跳過模式被編碼,則可以不解析指示分割是否以跳過模式被編碼的標(biāo)志信息。而且,能夠?qū)⒅甘痉指钍欠褚蕴^模式被編碼的信息設(shè)置為被導(dǎo)出為 O0如果根據(jù)指示獲得的宏塊的分割中的每一個是否以跳過模式被編碼的標(biāo)志信息, 以跳過模式編碼分割[‘是3’ ],則能夠在不解析運動信息等的情況下執(zhí)行解碼。如果沒有以跳過模式編碼分割[‘否3’],則能夠通過解析運動信息和殘差來執(zhí)行解碼[S540] [S550]。以另一種方式,能夠新定義用于跳過模式指示的宏塊類型。圖6和圖7是根據(jù)本發(fā)明的一個實施例的用于指示部分跳過模式的宏塊類型的圖。在宏塊的大小大于16x16的情況下,能夠定義指示宏塊的分割單元是否使用跳過模式的宏塊類型。參考圖6,下面的描述中所解釋的是下述情況假定宏塊的大小是32x32,宏塊的分割單元使用跳過模式。如前面的描述中所提到的,在當(dāng)前宏塊內(nèi)的16x16宏塊的所有分割都以跳過模式被編碼的情況下,能夠獲得在條帶級指示當(dāng)前宏塊是跳過宏塊的標(biāo)志信息。相反地,在16x16宏塊的所有分割沒有被以跳過模式編碼的情況下,然后能夠解析指示當(dāng)前宏塊不是跳過宏塊的標(biāo)志信息和當(dāng)前宏塊類型。在該情況下,如果該16x16宏塊的分割中的一些被部分地以跳過模式編碼,則當(dāng)前宏塊類型可以被表示為圖7中所示的宏塊類型。具體地,該16x16宏塊的分割(宏塊的分割索引0和2)以跳過模式進行編碼并且該16x16宏塊的分割(宏塊的分割索引1和3) 沒有被以跳過模式編碼,則當(dāng)前宏塊類型將變?yōu)?[S600]。在該情況下,能夠在不解析諸如運動信息等的其它信息的情況下解碼該16x16宏塊的分割(宏塊的分割索引0和2)。然而,對于該16x16宏塊的分割(宏塊的分割索引1和3)將解析運動信息、基準(zhǔn)畫面索引等。 該16x16宏塊的分割(宏塊的分割索引0和2)中的每一個能夠被設(shè)置為16x32預(yù)測宏塊的大小或者16x16預(yù)測宏塊的大小。如下解釋導(dǎo)出跳過宏塊的運動矢量的方法。而且能夠以相同方式導(dǎo)出子宏塊的運
動矢量。首先,如果當(dāng)前宏塊是跳過宏塊,則能夠使用當(dāng)前塊的相鄰塊來導(dǎo)出運動矢量。例如,假定當(dāng)前塊的左側(cè)的塊、上側(cè)的塊以及右上側(cè)的塊分別被稱名為相鄰塊A、 相鄰塊B以及相鄰塊C。而且假定它們的運動矢量分別被設(shè)置為mvA、mvB以及mvC。當(dāng)前塊的運動矢量能夠被導(dǎo)出為mvA、mvB以及mvC的水平和垂直分量的中間值或者mvA、mvB、 mvC的平均值。能夠?qū)С鰹槿齻€運動矢量中的一個,并且這能夠基于基準(zhǔn)畫面索引來確定。 此外,在宏塊大于16x16的情況下,能夠按小于宏塊或者子宏塊的大小的塊單元導(dǎo)出運動矢量來獲得宏塊的準(zhǔn)確運動矢量。圖8是根據(jù)本發(fā)明的一個實施例的在宏塊類型是P跳過宏塊的情況下導(dǎo)出運動矢量的方法的示圖。參考圖8,在宏塊的大小是32x32的情況下,能夠按小于宏塊大小的塊單元,即以 8x8塊單元來導(dǎo)出運動矢量。具體地,能夠?qū)K0的運動矢量導(dǎo)出為mvAO、mvBO以及mvCO 的水平分量和垂直分量的中間值、mvAO、mvBO以及mBl的平均值、或者mVAO、mVBO以及mvBl 中的一個運動矢量。類似地,塊1的運動矢量能夠被導(dǎo)出為mVB0、mVBl和mvB2的水平分量和垂直分量的中間值。塊的索引可以表示解碼順序。在下面解釋使用直接模式的畫面間預(yù)測。首先,直接模式指示從重建塊的運動信息預(yù)測當(dāng)前塊的運動信息的模式。運動信息可以包括運動矢量和基準(zhǔn)畫面索引。例如,能夠?qū)⒘斜?基準(zhǔn)畫面中具有最小參考索引的畫面定義為直接模式下的錨畫面。而且,當(dāng)前塊的共同位于同一空間位置的錨畫面的塊能夠被定義為錨塊。例如,在時間預(yù)測模式中,能夠使用錨塊的運動信息來預(yù)測當(dāng)前塊的運動信息。能夠?qū)㈠^塊的列表O方向上的運動矢量定義為mvCol。在該情況下,如果錨塊的列表0方向上的運動矢量不存在但是列表1方向上的運動矢量存在,則能夠?qū)⒘斜?方向上的運動矢量設(shè)置為mvCol。在該情況下,在畫面B的情況下,能夠使用兩個隨機畫面作為基準(zhǔn)畫面,而與時間或者空間序列無關(guān)。在這樣做時,使用的預(yù)測被稱為列表0預(yù)測或者列表1預(yù)測。例如,列表0預(yù)測指對于向前方向的預(yù)測,而列表1預(yù)測指對于向后方向的預(yù)測。在時間直接模式中,當(dāng)前塊的列表0基準(zhǔn)畫面變?yōu)閙vCol參考的畫面,并且列表1 基準(zhǔn)畫面變?yōu)殄^畫面。如果錨塊不具有運動信息,則運動矢量變?yōu)?,并且時間直接模式中的列表0基準(zhǔn)畫面的基準(zhǔn)畫面索引變?yōu)?。此外,能夠從運動矢量mvCol找到列表0的運動矢量mvLO和列表1的運動矢量 mvLl。假定基準(zhǔn)畫面內(nèi)的運動的速度、當(dāng)前畫面和錨畫面是恒定的,則在基準(zhǔn)畫面、當(dāng)前畫面和錨畫面中,mvLO和mvLl中的每一個的大小變?yōu)榕c時間間隔成正比。因此,使用基準(zhǔn)畫面和當(dāng)前畫面之間的間隔以及基準(zhǔn)畫面和錨畫面之間的間隔,能夠找到mvLO和mvLl。具體地,在錨塊的列表0參考索引指長時期基準(zhǔn)畫面的情況下,其能夠通過公式1來獲得。[公式1]mvLO = mvColmvLl = 0在錨塊的列表0參考索引不指長時期基準(zhǔn)畫面的情況下,能夠通過公式2來獲得[公式2]mvLO = mvCol* (tb/td)mvLl = -mvCol* (td_tb)/td = mvLO-mvCol對于直接模式的另一示例,空間直接模式使用空間方向的運動信息相關(guān)性來預(yù)測當(dāng)前塊的運動信息。與時間直接模式類似,在尋找運動信息中使用錨畫面和錨塊。圖9是對其應(yīng)用了空間方向預(yù)測模式的幀間預(yù)測單元700的示意性內(nèi)部框圖。參考圖9,幀間預(yù)測單元700主要包括直接模式識別單元710、空間方向預(yù)測執(zhí)行單元720等。而且,空間直接預(yù)測執(zhí)行單元720包括第一變量導(dǎo)出單元721、第二變量導(dǎo)出單元722以及運動信息預(yù)測單元723。直接模式識別單元710識別當(dāng)前條帶的預(yù)測模式。例如,如果當(dāng)前條帶的條帶類型是P條帶或者B條帶,則可以使用直接模式。在該情況下,能夠使用指示將使用直接模式中的時間直接模式還是空間直接模式的直接模式標(biāo)記。直接模式標(biāo)記能夠從條帶報頭獲得。在根據(jù)直接模式標(biāo)記應(yīng)用空間直接模式的情況下,能夠優(yōu)選地獲得與當(dāng)前塊相鄰的塊的運動信息。例如,假定當(dāng)前塊的左側(cè)的塊、上側(cè)的塊以及右上側(cè)的塊被分別稱為相鄰塊A、 相鄰塊B以及相鄰塊C,則能夠獲得相鄰塊A、B和C的運動信息。第一變量導(dǎo)出單元721 能夠使用相鄰塊的運動信息導(dǎo)出當(dāng)前塊的列表0或者列表1方向的基準(zhǔn)畫面索引。而且, 然后能夠基于當(dāng)前塊的基準(zhǔn)畫面索引導(dǎo)出第一變量。在該情況下,第一變量能夠表示作為隨機值的在預(yù)測當(dāng)前塊的運動矢量中使用的變量(directZeroPredictionFlag)。例如,當(dāng)前塊的列表0或者列表1方向的基準(zhǔn)畫面索引能夠被導(dǎo)出為相鄰塊的基準(zhǔn)畫面索引的最小值。對此,可以使用下面的公式(公式3)。[公式3]refldxLO = MinPositive (refldxLOA, MinPositive (refldxLOB, refldxLOC))refldxLl = MinPositive(refldxLlA, MinPositive(refldxLIB, refldxLIC))其中,MinPositive (χ, y) = Min (χ, y) (χ > O 并且 y > 0)Max (χ,y)(其它情況)例如,詳細(xì)地,其變?yōu)椤癕inPOSitiVe(0,l) =0”。具體地,在存在兩個有效的索引的情況下,能夠獲得較小的值。替代地,變?yōu)椤癕inPOSitiVe(-l,0) =0”。S卩,在存在一個有效索引的情況下,能夠獲得作為有效索引值的大的值。替代地,變?yōu)椤癕inP0SitiVe(-l,-l) =-1”。即,在兩個索引都不是有效索引情況下,例如,如果兩個相鄰塊都是以畫面內(nèi)預(yù)測模式編碼的塊或者兩個相鄰塊不可用,則獲得大的值“_1”。因此,為了獲得無效的結(jié)果值,應(yīng)該不存在至少一個有效值。首先,對于第一變量的初始值,能夠?qū)⒌谝蛔兞吭O(shè)置為O。此外,在導(dǎo)出的列表O和列表1方向的每個基準(zhǔn)畫面索引小于O的情況下,能夠?qū)?dāng)前塊的列表O或者列表1方向的基準(zhǔn)畫面索引設(shè)置為O。而且,第一變量能夠被設(shè)置為指示當(dāng)前塊的基準(zhǔn)畫面不存在的值。在該情況下,導(dǎo)出的列表O和列表1方向的每個基準(zhǔn)畫面索引小于O的情況指例如相鄰塊是以畫面內(nèi)預(yù)測模式編碼的塊的情況或者是相鄰塊不可用的情況。在該情況下,通過將第一變量設(shè)置為1,能夠?qū)?dāng)前塊的運動矢量設(shè)置為O。由于對于本實施例使用了三個相鄰塊,因此在全部三個相鄰塊以畫面內(nèi)預(yù)測模式編碼或者不可用的情況下,則當(dāng)前塊的基準(zhǔn)畫面索引可以具有“-1”的無效值。因此,如果當(dāng)前塊的所有基準(zhǔn)畫面索引不可用,則能夠?qū)⒌谝蛔兞吭O(shè)置為1。具體地,如果當(dāng)前塊將使用的基準(zhǔn)畫面不存在,則能夠?qū)⒌谝蛔兞吭O(shè)置為1。第二變量導(dǎo)出單元722能夠使用錨畫面內(nèi)的錨塊的運動信息導(dǎo)出第二變量。在該情況下,第二變量可以指作為隨機值的用于預(yù)測當(dāng)前塊的運動矢量的變量。例如,在錨塊的運動信息滿足預(yù)定條件的情況下,能夠?qū)⒌诙兞吭O(shè)置為1。如果第二變量被設(shè)置為1,則能夠?qū)?dāng)前塊的列表O或者列表1方向的運動矢量設(shè)置為O。預(yù)定條件能夠包括下面所述。 首先,列表1方向的基準(zhǔn)畫面中具有最小基準(zhǔn)畫面索引的畫面應(yīng)該是短時期基準(zhǔn)畫面。其次,錨塊的基準(zhǔn)畫面的參考索引應(yīng)該被設(shè)置為O。第三,錨塊的運動矢量的水平分量和垂直分量中的每一個應(yīng)該等于或者小于士 1。因此,如果滿足所有預(yù)定條件,則確定其接近幾乎不具有運動的視頻。而且,當(dāng)前塊的運動矢量然后被設(shè)置為O。運動信息預(yù)測單元723能夠基于導(dǎo)出的第一和第二變量來預(yù)測當(dāng)前塊的運動信息。例如,如果第一變量被設(shè)置為1,則能夠?qū)?dāng)前塊的列表0或者列表1的運動矢量設(shè)置為0。如果第二變量被設(shè)置為1,則能夠?qū)?dāng)前塊的列表0或者列表1的運動矢量設(shè)置為0。 在該情況下,設(shè)置為0或者1僅是示例性的。而且,能夠?qū)⒌谝缓偷诙兞吭O(shè)置為另一預(yù)定值來使用。如果不滿足預(yù)定條件,則能夠從當(dāng)前畫面內(nèi)的相鄰塊的運動信息導(dǎo)出當(dāng)前塊的運動信息。例如,在運動矢量的情況下,可以等同地應(yīng)用跳過宏塊的運動矢量導(dǎo)出方法。能夠以下述方式找到當(dāng)前塊的基準(zhǔn)畫面索引計算位于左、上和右上側(cè)的運動矢量的基準(zhǔn)畫面索引中的最小值,并且然后將最小值設(shè)置給當(dāng)前塊的基準(zhǔn)畫面。如下地解釋指示是否以直接模式編碼當(dāng)前宏塊的方法。為此,應(yīng)當(dāng)理解,相同方法也可應(yīng)用于子宏塊。圖10是用于使用跳過模式或者直接模式指示信息解碼條帶數(shù)據(jù)的過程的框圖。參考圖10,能夠解析指示條帶內(nèi)的當(dāng)前宏塊是否是跳過宏塊的標(biāo)志信息 [S1000]。能夠從條帶層獲得該標(biāo)志信息。作為解析該標(biāo)志信息的結(jié)果,如果當(dāng)前宏塊是跳過宏塊[“是1”],則能夠在不解析運動信息和殘差數(shù)據(jù)的情況下執(zhí)行解碼[S1050]。然而, 如果當(dāng)前宏塊不是跳過宏塊[“否1”],則能夠解析當(dāng)前宏塊的塊類型[S1010]。能夠根據(jù)當(dāng)前宏塊的塊類型來針對當(dāng)前宏塊的每個分割解析跳過或者直接模式指示信息[S1020]。 在該情況下,跳過或者直接模式指示信息可以表示指示宏塊的分割是以跳過模式還是以直接模式編碼的信息。以下描述是基于當(dāng)前宏塊的大小為3h32的假設(shè)進行的。首先,作為解析當(dāng)前宏塊類型信息的結(jié)果,如果當(dāng)前宏塊以畫面間預(yù)測模式被編碼并且當(dāng)前宏塊的分割為16x32,則將使用2比特作為跳過或者直接模式指示信息。如果宏塊的分割索引0以跳過或者直接模式被編碼,但是該宏塊的分割索引1沒有以跳過或者直接模式被編碼,則能夠獲得“10”作為跳過或者直接模式指示信息。在已經(jīng)解析了跳過或者直接模式指示信息之后,能夠解析CBP編碼塊樣式信息[S1030]。在該情況下,CBP信息能夠表示指示當(dāng)前塊是否包括殘差數(shù)據(jù)的信息。因此,通過解析CBP信息,能夠了解當(dāng)前塊的分割是以跳過模式編碼還是直接模式編碼。例如,作為解析關(guān)于當(dāng)前宏塊的分割的CBP信息的結(jié)果,如果獲得 “1”,則能夠認(rèn)為該分割以直接模式被編碼?;谠撎^或者直接模式指示信息,確定當(dāng)前宏塊的每個分割是以跳過模式編碼還是直接模式編碼。在該分割沒有被以跳過模式或者直接模式編碼[“否2”],則能夠通過解析運動信息和殘差數(shù)據(jù)來執(zhí)行解碼[S1040] [S1050]。 然而,在分割以跳過模式或者直接模式編碼的情況下[“是2”],將基于解析的CBP信息確定該分割是以跳過模式編碼還是直接模式編碼[S1060]。因此,在以跳過模式編碼的情況下 [“是3”],能夠在不解析運動信息等的情況下執(zhí)行解碼[S1040]。在以直接模式編碼的情況下[“否3”],在已經(jīng)解析了殘差數(shù)據(jù)[S1070]之后,能夠使用殘差數(shù)據(jù)執(zhí)行解碼[S1050]。 在以直接模式編碼的情況下,能夠以與以跳過模式編碼的情況相同的方式導(dǎo)出運動矢量。 如果條帶類型是P條帶以及B條帶,則能夠使用直接模式。如果條帶類型是B條帶,則宏塊類型信息能夠包括預(yù)測塊的大小信息、預(yù)測方向信息等。然而,如果指示了根據(jù)跳過或者直接模式指示信息來以跳過或直接模式來編碼當(dāng)前宏塊的分割,則導(dǎo)出該分割的運動矢量。因此,能夠?qū)С龇指畹念A(yù)測方向信息。在該情況下,能夠認(rèn)為宏塊類型信息包括不需要的預(yù)測方向信息。因此,通過新定義宏塊類型,希望使用上述跳過或者直接模式指示信息來高效地執(zhí)行條帶數(shù)據(jù)的解碼。
12
例如,能夠?qū)條帶的宏塊類型設(shè)置為B_direct_32x32, B_32x32、B_32xl6、 B_16x32以及B_16xl6中的一個。然而,在宏塊類型被重置的情況下,確定圖10中的當(dāng)前宏塊的分割以跳過模式還是以直接模式編碼。如果以跳過模式或者直接模式編碼,則將以與上述相同的過程來執(zhí)行解碼。如果沒有以跳過模式或者直接模式編碼,則將從接收到的比特流以及運動信息和殘差數(shù)據(jù)解析關(guān)于宏塊的預(yù)測方向的信息。工業(yè)實用件因此,本發(fā)明適用于視頻信號編碼/解碼。雖然已經(jīng)參考優(yōu)選示例性實施例在這里描述并且圖示了本發(fā)明,但是對于本領(lǐng)域技術(shù)人員來說明顯的是,能夠在不偏離本發(fā)明的精神和范圍的情況下在其中進行各種修改和變化。因此,本發(fā)明意在涵蓋落入所附權(quán)利要求及其等價物的范圍內(nèi)的本發(fā)明的修改和變化。
權(quán)利要求
1.一種處理視頻信號的方法,包括下述步驟 獲得當(dāng)前宏塊類型;根據(jù)所述當(dāng)前宏塊類型獲得關(guān)于所述當(dāng)前宏塊的分割的跳過或者直接模式指示信息;根據(jù)所述跳過或者直接模式指示信息導(dǎo)出所述分割的運動矢量;以及使用所述運動矢量來預(yù)測所述分割的像素值。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述跳過或者直接模式指示信息包括指示所述分割是以跳過模式還是直接模式編碼的信息。
3.根據(jù)權(quán)利要求1所述的方法,所述導(dǎo)出分割的運動矢量的步驟進一步包括下述步驟獲得所述當(dāng)前宏塊的CBP (塊編碼模式)信息;以及基于所述CBP信息來確定所述分割是以跳過模式編碼還是直接模式編碼。
4.根據(jù)權(quán)利要求3所述的方法,進一步包括下述步驟如果所述分割以直接模式編碼, 則獲得所述分割的殘差數(shù)據(jù)。
5.根據(jù)權(quán)利要求4所述的方法,其中,所述分割的殘差數(shù)據(jù)是指所述分割的原始像素值與所述預(yù)測的像素值之間的差值。
6.根據(jù)權(quán)利要求1所述的方法,其中,從與所述分割相鄰的塊的運動矢量的中間值導(dǎo)出所述分割的運動矢量。
7.根據(jù)權(quán)利要求6所述的方法,其中,與所述分割相鄰的塊包括所述分割的左塊、上塊和右上塊。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述分割的像素值包括由所述分割的運動矢量指示的基準(zhǔn)塊的像素值。
全文摘要
公開了一種處理視頻信號的方法。本發(fā)明包括獲得當(dāng)前宏塊類型;根據(jù)當(dāng)前宏塊類型獲得關(guān)于當(dāng)前宏塊的分割的跳過或直接模式指示信息;根據(jù)跳過或直接模式指示信息導(dǎo)出該分割的運動矢量;以及使用該導(dǎo)出的運動矢量來預(yù)測分割的像素值。因此,本發(fā)明使用運動矢量獲得接近原始視頻的基準(zhǔn)塊的像素值,從而增強宏塊的重建比率。由于宏塊使用跳過或者直接預(yù)測指示信息,因此不需要分立地編碼關(guān)于宏塊的跳過模式指示信息和直接模式指示信息,從而能夠減少要被編碼的信息大小。
文檔編號H04N7/36GK102210152SQ200980144468
公開日2011年10月5日 申請日期2009年10月6日 優(yōu)先權(quán)日2008年10月6日
發(fā)明者全柄文, 崔瑛喜, 樸俊永, 樸勝煜, 金鄭善 申請人:Lg電子株式會社