用于對運動矢量進行解碼的設(shè)備的制作方法
【專利摘要】提供了用于對運動矢量進行解碼的設(shè)備。對運動矢量進行編碼的方法包括:選擇第一模式或第二模式作為對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼的模式,在所述第一模式中,指示至少一個運動矢量預(yù)測因子之中的運動矢量預(yù)測因子的信息被編碼,在所述第二模式中,指示基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測因子的信息被編碼;根據(jù)選擇的模式確定當(dāng)前塊的運動矢量預(yù)測因子,并對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼;對當(dāng)前塊的運動矢量與當(dāng)前塊的運動矢量預(yù)測因子之間的差矢量進行編碼。
【專利說明】用于對運動矢量進行解碼的設(shè)備
[0001]本申請是申請日為2010年08月13日,申請?zhí)枮椤?01080036026.1”,標(biāo)題為“用于對運動矢量進行編碼/解碼的方法和設(shè)備”的發(fā)明專利申請的分案申請。
【技術(shù)領(lǐng)域】
[0002]與示例性實施例一致的設(shè)備和方法涉及一種用于對運動矢量進行編碼的方法和設(shè)備,更具體地講,涉及一種用于對當(dāng)前塊的運動矢量預(yù)測因子進行編碼的方法和設(shè)備。
【背景技術(shù)】
[0003]編解碼器(諸如運動圖像專家組(MPEG) -4H.264/MPEG-4、先進視頻編碼(AVC))使用與當(dāng)前塊鄰近的先前編碼的塊的運動矢量來預(yù)測當(dāng)前塊的運動矢量。也就是說,與當(dāng)前塊的左側(cè)、上側(cè)、右上側(cè)鄰近的先前編碼的塊的運動矢量的中值被用作當(dāng)前塊的運動矢量預(yù)測因子(mot1n vector predictor)。
【發(fā)明內(nèi)容】
[0004]技術(shù)方案
[0005]示例性實施例提供了一種用于對運動矢量進行編碼和解碼的方法和設(shè)備,以及存儲用于執(zhí)行所述的方法的計算機可讀程序的計算機可讀記錄介質(zhì)。
[0006]有益效果
[0007]根據(jù)本發(fā)明,基于更精確的運動矢量預(yù)測因子來對運動矢量進行有效編碼。
【專利附圖】
【附圖說明】
[0008]通過參考附圖對示例性實施例進行的詳細描述,上述和/或其他方面將會變得更加清楚,其中:
[0009]圖1是根據(jù)示例性實施例的用于對圖像進行編碼的設(shè)備的框圖;
[0010]圖2是根據(jù)示例性實施例的用于對圖像進行解碼的設(shè)備的框圖;
[0011]圖3示出根據(jù)示例性實施例的分層編碼單位;
[0012]圖4是根據(jù)示例性實施例的基于編碼單位的圖像編碼器的框圖;
[0013]圖5是根據(jù)示例性實施例的基于編碼單位的圖像解碼器的框圖;
[0014]圖6示出根據(jù)示例性實施例的最大編碼單位、子編碼單位和預(yù)測單位;
[0015]圖7示出根據(jù)示例性實施例的編碼單位和變換單位;
[0016]圖8A和圖8B示出根據(jù)示例性實施例的編碼單位、預(yù)測單位和變換單位的劃分形狀;
[0017]圖9是根據(jù)示例性實施例的用于對運動矢量進行編碼的設(shè)備的框圖;
[0018]圖1OA和圖1OB示出根據(jù)示例性實施例的顯式模式(explicit mode)的運動矢量預(yù)測因子候選;
[0019]圖1lA至圖1lC示出根據(jù)另一示例性實施例的顯式模式的運動矢量預(yù)測因子候選;
[0020]圖12示出根據(jù)示例性實施例的在隱含模式中產(chǎn)生運動矢量預(yù)測因子的方法;
[0021]圖13是根據(jù)示例性實施例的用于對運動矢量進行解碼的設(shè)備的框圖;
[0022]圖14是根據(jù)示例性實施例的對運動矢量進行編碼的方法的流程圖;
[0023]圖15是根據(jù)示例性實施例的對運動矢量進行解碼的方法的流程圖。
[0024]最優(yōu)實施方式
[0025]根據(jù)示例性實施例的一方面,提供了一種對當(dāng)前塊的運動矢量進行編碼的方法,所述方法包括:選擇第一模式或第二模式作為對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼的模式,其中,在所述第一模式中,指示至少一個運動矢量預(yù)測因子之中的運動矢量預(yù)測因子的信息被編碼,在所述第二模式中,指示基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測因子的信息被編碼;根據(jù)選擇的模式確定當(dāng)前塊的運動矢量預(yù)測因子,并對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼;對當(dāng)前塊的運動矢量與當(dāng)前塊的運動矢量預(yù)測因子之間的差矢量進行編碼。
[0026]選擇第一模式或第二模式的步驟可包括:基于指示從當(dāng)前畫面或像條的最大編碼單位的大小減少到當(dāng)前塊的大小的程度的深度來選擇第一模式或第二模式。
[0027]選擇第一模式或第二模式的步驟可包括:以包括當(dāng)前塊的當(dāng)前畫面或像條為單位來選擇第一模式或第二模式。
[0028]選擇第一模式或第二模式的步驟可包括:基于當(dāng)前塊是否以跳過模式被編碼來選擇第一模式或第二模式。
[0029]所述至少一個運動矢量預(yù)測因子可包括:與當(dāng)前塊的左側(cè)鄰近的塊的第一運動矢量、與當(dāng)前塊的上側(cè)鄰近的塊的第二運動矢量以及與當(dāng)前塊的右上側(cè)鄰近的塊的第三運動矢量。
[0030]所述至少一個運動矢量預(yù)測因子還可包括:第一運動矢量、第二運動矢量和第三運動矢量的中值。
[0031]所述至少一個運動矢量預(yù)測因子還可包括:基于參考畫面中與當(dāng)前塊協(xié)同定位的塊的運動矢量以及所述參考畫面與當(dāng)前畫面之間的時間距離而產(chǎn)生的運動矢量預(yù)測因子。
[0032]指示基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測因子的信息可以是這樣的信息,所述信息指示基于與當(dāng)前塊的左側(cè)鄰近的塊的第一運動矢量、與當(dāng)前塊的上側(cè)鄰近的塊的第二運動矢量和與當(dāng)前塊的右上側(cè)鄰近的塊的第三運動矢量的中值,來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。
[0033]指示基于與當(dāng)前塊鄰近的先前解碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測因子的信息可以是這樣的信息,所述信息指示基于通過使用與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的像素來搜索參考畫面而產(chǎn)生的運動矢量來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。
[0034]根據(jù)另一示例性實施例的一方面,提供了一種用于對當(dāng)前塊的運動矢量進行編碼的設(shè)備,所述設(shè)備包括:預(yù)測器,選擇第一模式或第二模式作為對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼的模式,并基于選擇的模式確定當(dāng)前塊的運動矢量預(yù)測因子,其中,在所述第一模式中,指示至少一個運動矢量預(yù)測因子之中的運動矢量預(yù)測因子的信息被編碼,在所述第二模式中,指示基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測器的信息被編碼;第一編碼器,對關(guān)于基于選擇的模式而確定的當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼;第二編碼器,對當(dāng)前塊的運動矢量與當(dāng)前塊的運動矢量預(yù)測因子之間的差矢量進行編碼。
[0035]根據(jù)另一示例性實施例的一方面,提供了一種對當(dāng)前塊的運動矢量進行解碼的方法,所述方法包括:對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行解碼,所述信息根據(jù)從第一模式和第二模式之中選擇的模式被編碼;對當(dāng)前塊的運動矢量與當(dāng)前塊的運動矢量預(yù)測因子之間的差矢量進行解碼;基于解碼的關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子;基于所述運動矢量預(yù)測因子和差矢量來恢復(fù)當(dāng)前塊的運動矢量,其中,第一模式是在其中指示至少一個運動矢量預(yù)測因子之中的運動矢量預(yù)測因子的信息被編碼的模式,第二模式是在其中指示基于與當(dāng)前塊鄰近的先前解碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測因子的信息被編碼的模式。
[0036]根據(jù)另一示例性實施例的一方面,提供了一種對當(dāng)前塊的運動矢量進行解碼的設(shè)備,所述設(shè)備包括:第一解碼器,對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行解碼,所述信息根據(jù)從第一模式和第二模式之中選擇的模式被編碼;第二解碼器,對當(dāng)前塊的運動矢量與當(dāng)前塊的運動矢量預(yù)測因子之間的差矢量進行解碼;預(yù)測器,基于解碼的關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子;運動矢量恢復(fù)單元,基于運動矢量預(yù)測因子和差矢量來恢復(fù)當(dāng)前塊的運動矢量,其中,第一模式是在其中指示至少一個運動矢量預(yù)測因子之中的運動矢量預(yù)測因子的信息被編碼的模式,第二模式是在其中指示基于與當(dāng)前塊鄰近的先前解碼的區(qū)域中包括的塊或像素來產(chǎn)生運動矢量預(yù)測因子的信息被編碼的模式。
[0037]根據(jù)另一示例性實施例的一方面,提供了一種存儲用于執(zhí)行對運動矢量進行編碼的方法和對運動矢量進行解碼的方法的計算機可讀程序的計算機可讀記錄介質(zhì)。
【具體實施方式】
[0038]將參照附圖更充分地描述示例性實施例,其中,相同的標(biāo)號始終表示相同的元件。當(dāng)在元件的列表之前時,諸如“至少一個”的表述修飾元件的整個列表而不修飾列表的單個元件。在本說明書中,“圖像”可表示用于視頻的靜止圖像或運動圖像(即,視頻本身)。
[0039]圖1是根據(jù)示例性實施例的用于對圖像進行編碼的設(shè)備100的框圖。參照圖1,設(shè)備100包括最大編碼單位劃分器110、編碼深度確定器120、圖像數(shù)據(jù)編碼器130和編碼信息編碼器140。
[0040]最大編碼單位劃分器110可基于作為最大大小的編碼單位的最大編碼單位對當(dāng)前畫面(picture)或當(dāng)前像條(slice)進行劃分。也就是說,最大編碼單位劃分器110可對當(dāng)前畫面或像條進行劃分,以獲得至少一個最大編碼單位。
[0041]根據(jù)示例性實施例,可使用最大編碼單位和深度來表示編碼單位。如上所述,最大編碼單位表示當(dāng)前畫面的編碼單位中具有最大大小的編碼單位,所述深度表示通過分層減小編碼單位而獲得的子編碼單位的大小。隨著深度加深,編碼單位可從最大編碼單位減小到最小編碼單位,其中,最大編碼單位的深度被定義為最小深度,最小編碼單位的深度被定義為最大深度。由于編碼單位的大小隨著深度增加而從最大編碼單位減小,因此第k深度的子編碼單位可包括第k+n(其中,k和η是等于或大于I的整數(shù))深度的多個子編碼單位。
[0042]根據(jù)將被編碼的畫面的大小的增加,以較大編碼單位對圖像進行編碼會導(dǎo)致更高的圖像壓縮率。然而,如果較大的編碼單位固定,則可能不能通過反映連續(xù)改變的圖像特征來對圖像進行有效編碼。
[0043]例如,當(dāng)平滑區(qū)域(諸如大?;蛱炜?被編碼時,編碼單位越大,壓縮率可增加越多。然而,當(dāng)復(fù)雜區(qū)域(諸如人或建筑)被編碼時,編碼單位越小,壓縮率可增加越多。
[0044]因此,根據(jù)實施例,不同的最大編碼單位和不同的最大深度被設(shè)置用于每個畫面或像條。由于最大深度表示編碼單位可被減小的最大次數(shù),因此最大圖像編碼單位中包括的每個最小編碼單位的大小可根據(jù)最大深度來不同地設(shè)置。
[0045]編碼單位確定器120確定最大深度。例如,可基于率失真(R-D)成本的計算來確定最大深度。此外,可針對每個畫面或像條或者針對每個最大編碼單位來不同地確定最大深度。確定的最大深度被提供給編碼信息編碼器140,并且根據(jù)最大編碼單位的圖像數(shù)據(jù)被提供給圖像數(shù)據(jù)編碼器130。
[0046]最大株度表不最大編碼單位中可包括的具有最小大小的編碼單位(即,最小編碼單位)。換句話說,最大編碼單位可被劃分為根據(jù)不同深度而具有不同大小的子編碼單位。稍后將參照圖8A和圖SB來對此進行詳細描述。另外,可基于具有不同大小的處理單位對最大編碼單位中包括的具有不同大小的子編碼單位進行預(yù)測或變換。換句話說,設(shè)備100可基于具有各種大小和各種形狀的處理單位來執(zhí)行用于圖像編碼的多個處理操作。為了對圖像數(shù)據(jù)進行編碼,執(zhí)行諸如預(yù)測、變換和熵編碼的處理操作,其中,具有相同大小的處理單位可被用于每個操作,或者具有不同大小的處理單位可被用于每個操作。
[0047]例如,設(shè)備100可選擇與編碼單位不同的處理單位來預(yù)測編碼單位。當(dāng)編碼單位的大小是2NX2N(其中N是正整數(shù))時,用于預(yù)測的處理單位可以是2NX2N、2NXN、NX2N或NXN。換句話說,可基于具有這樣的形狀的處理單位來執(zhí)行運動預(yù)測,按所述形狀,編碼單位的高度和寬度中的至少一個被二等分。在下文中,作為預(yù)測基礎(chǔ)的處理單位被稱為預(yù)測單位。
[0048]預(yù)測模式可以是幀內(nèi)模式、幀間模式和跳過模式中的至少一個,并且可僅針對具有特定大小或形狀的預(yù)測單位來執(zhí)行特定預(yù)測模式。例如,可僅針對形狀為正方形的具有2NX2N和NXN的大小的預(yù)測單位執(zhí)行幀內(nèi)模式。另外,可僅對具有2NX2N的大小的預(yù)測單位執(zhí)行跳過模式。如果編碼單位存在多個預(yù)測單位,則可針對每個預(yù)測單位執(zhí)行預(yù)測之后選擇具有最小編碼誤差的預(yù)測模式。
[0049]可選擇地,設(shè)備100可基于具有與編碼單位不同大小的處理單位來對圖像數(shù)據(jù)執(zhí)行頻率變換。對于編碼單位中的頻率變換,可基于具有與編碼單位的大小相等的大小或更小的大小的處理單位來執(zhí)行所述頻率變換。在下文中,作為頻率變換的基礎(chǔ)的處理單位被稱為變換單位。所述頻率變換可以是離散余弦變換(DTC)或Karhunen-Loeve變換(KLT)。
[0050]編碼深度確定器120可使用基于拉格朗日乘子的R-D最優(yōu)化來確定最大編碼單位中包括的子編碼單位。換句話說,編碼深度確定器120可確定從最大編碼單位劃分的多個子編碼單位具有哪種形狀,其中,所述多個子編碼單位根據(jù)它們的深度而具有不同大小。圖像數(shù)據(jù)編碼器130通過基于由編碼深度確定器120確定的劃分形狀來對最大編碼單位進行編碼。
[0051]編碼信息編碼器140對關(guān)于由編碼深度確定器120確定的最大編碼單位的編碼模式的信息進行編碼。換句話說,編碼信息編碼器140通過對以下信息進行編碼來輸出比特流:關(guān)于最大編碼單位的劃分形狀的信息、關(guān)于最大深度的信息以及關(guān)于針對每個深度的子編碼單位的編碼模式的信息。關(guān)于子編碼單位的編碼模式的信息可包括以下信息中的至少一個:關(guān)于子編碼單位的預(yù)測單位的信息、關(guān)于用于每個預(yù)測單位的預(yù)測模式的信息以及關(guān)于子編碼單位的變換單位的信息。
[0052]由于對于每個最大編碼單位存在具有不同大小的子編碼單位,并且針對每個子編碼單位確定關(guān)于編碼模式的信息,因次可針對一個最大編碼單位確定關(guān)于至少一個編碼模式的信息。
[0053]設(shè)備100可根據(jù)深度的增加,通過將最大編碼單位的高度和深度兩者二等分來產(chǎn)生子編碼單位。也就是說,當(dāng)?shù)趉深度的編碼單位的大小為2NX2N時,第k+Ι深度的編碼單位的大小可以是NX N。
[0054]因此,根據(jù)示例性實施例的設(shè)備100可考慮圖像特征而基于最大編碼單位的大小和最大深度來確定用于每個最大編碼單位的最優(yōu)劃分形狀。通過考慮圖像特征來可變地調(diào)整最大編碼單位的大小并通過將最大編碼單位劃分為不同深度的子編碼單位來對圖像進行編碼,具有各種分辨率的圖像可被有效編碼。
[0055]圖2是根據(jù)示例性實施例的用于對圖像進行解碼的設(shè)備200的框圖。參照圖2,設(shè)備200包括圖像數(shù)據(jù)獲取單元210、編碼信息提取器220以及圖像數(shù)據(jù)解碼器230。
[0056]圖像數(shù)據(jù)獲取單元210通過對設(shè)備200接收的比特流進行解析來根據(jù)最大編碼單位獲取圖像數(shù)據(jù),并將所述圖像數(shù)據(jù)輸出到圖像數(shù)據(jù)解碼器230。圖像數(shù)據(jù)獲取單元210可從當(dāng)前畫面或像條的頭提取關(guān)于當(dāng)前畫面或像條的最大編碼單位的信息。換句話說,圖像數(shù)據(jù)獲取單元210以最大編碼單位對比特流進行劃分,從而圖像數(shù)據(jù)解碼器230可根據(jù)最大編碼單位對圖像數(shù)據(jù)進行解碼。
[0057]編碼信息提取器220通過對由設(shè)備200接收的比特流進行解析來提取關(guān)于最大編碼單位、最大深度、最大編碼單位的劃分形狀以及子編碼單位的編碼模式的信息。例如,編碼信息提取器220可從當(dāng)前畫面的頭提取上述信息。關(guān)于劃分形狀的信息和關(guān)于編碼模式的信息被提供給圖像數(shù)據(jù)解碼器230。
[0058]關(guān)于最大編碼單位的劃分形狀的信息可包括關(guān)于最大編碼單位中所包括的根據(jù)深度具有不同大小的子編碼單位的信息,并且關(guān)于編碼模式的信息可包括關(guān)于根據(jù)子編碼單位的預(yù)測單位的信息、關(guān)于預(yù)測模式的信息以及關(guān)于變換單位的信息中的至少一個。
[0059]圖像數(shù)據(jù)解碼器230通過基于由編碼信息取器220提取的信息對每個最大編碼單位的圖像數(shù)據(jù)進行解碼,來恢復(fù)當(dāng)前畫面。圖像數(shù)據(jù)解碼器230可基于關(guān)于最大編碼單位的劃分形狀的信息來對最大編碼單位中包括的子編碼單位進行解碼。解碼處理可包括預(yù)測處理和反變換處理中的至少一個,其中,所述預(yù)測處理包括幀內(nèi)預(yù)測和運動補償。
[0060]另外,圖像數(shù)據(jù)解碼器230可基于關(guān)于預(yù)測單位的信息以及關(guān)于預(yù)測模式的信息來執(zhí)行幀內(nèi)預(yù)測或幀間預(yù)測,以對預(yù)測單位進行預(yù)測。圖像數(shù)據(jù)解碼器230還可基于關(guān)于子編碼單位的變換單位的信息來對每個子編碼單位執(zhí)行反變換。
[0061]圖3示出根據(jù)示例性實施例的分層編碼單位。參照圖3,示例性分層編碼單位包括大小為64X64、32X 32、16X 16、8X8和4X4的編碼單位。此外,還存在大小為64X 32、32X64、32X16、16X32、16X8、8X16、8X4 和 4X8 的編碼單位。
[0062]在圖3中示出的示例性實施例中,對于分辨率為1920X1080的第一圖像數(shù)據(jù)310,最大編碼單位的大小被設(shè)置為64X64,并且最大深度被設(shè)置為2。對于分辨率為1920X1080的第二圖像數(shù)據(jù)320,最大編碼單位的大小被設(shè)置為64X64,并且最大深度被設(shè)置為3。對于分辨率為352X288的第三圖像數(shù)據(jù)330,最大編碼單位的大小被設(shè)置為16X 16,并且最大深度被設(shè)置為I。
[0063]當(dāng)分辨率高或者數(shù)據(jù)量大時,編碼單位的最大大小可以相對大,以提高壓縮率并準(zhǔn)確地反映圖像特征。因此,對于具有比第三數(shù)據(jù)圖像330更高的分辨率的第一圖像數(shù)據(jù)310和第二圖像數(shù)據(jù)320,64X64可被選擇作為最大編碼單位的大小。
[0064]最大深度指示在分層編碼單位中的層的總數(shù)。由于第一圖像數(shù)據(jù)310的最大深度是2,因此第一圖像數(shù)據(jù)310的編碼單位315可包括較長軸大小為64的最大編碼單位,以及根據(jù)深度的增加,較長軸大小為32和16的子編碼單位。
[0065]另一方面,由于第三圖像數(shù)據(jù)330的最大深度是1,因此第三圖像數(shù)據(jù)330的編碼單位335可包括較長軸大小為16的最大編碼單位,以及根據(jù)深度的增加,較長軸大小為8的編碼單位。
[0066]然而,由于第二圖像數(shù)據(jù)320的最大深度是3,因此第二圖像數(shù)據(jù)320的編碼單位325可包括較長軸大小為64的最大編碼單位,以及根據(jù)深度的增加,較長軸大小為32、16和8的子編碼單位。由于隨著深度增加,基于更小的子編碼單位來對圖像進行編碼,因此示例性實施例適合于對包括更多微場景的圖像進行編碼。
[0067]圖4是示出根據(jù)示例性實施例的基于編碼單位的圖像編碼器400的框圖。參照圖4,幀內(nèi)預(yù)測器410在當(dāng)前幀405中對幀內(nèi)模式的預(yù)測單位執(zhí)行幀內(nèi)預(yù)測,運動估計器420和運動補償器425使用當(dāng)前幀405和參考幀495對幀間模式的預(yù)測單位執(zhí)行幀間預(yù)測和運動補償。
[0068]基于從幀內(nèi)預(yù)測器410、運動估計器420和運動補償器425輸出的預(yù)測單位來產(chǎn)生殘差值。產(chǎn)生的殘差值通過經(jīng)過變換器430和量化器440而被輸出作為量化的變換系數(shù)。
[0069]量化的變換系數(shù)通過經(jīng)過反量化器460和反變換器470而被恢復(fù)為殘差值?;謴?fù)的殘差值通過經(jīng)過去塊單元480和環(huán)路濾波單元490而被后處理,并且恢復(fù)的殘差值被輸出為參考幀495。量化的變換系數(shù)可通過經(jīng)過熵編碼器450被輸出為比特流455。
[0070]為了基于根據(jù)示例性實施例的編碼方法執(zhí)行編碼,圖像編碼器400的組件(S卩,幀內(nèi)預(yù)測器410、運動估計器420、運動補償器425、變換器430、量化器440、熵編碼器450、反量化器460、反變換器470、去塊單元480和環(huán)路濾波單元490)基于最大編碼單位、根據(jù)深度的子編碼單位、預(yù)測單位和變換單位執(zhí)行圖像編碼處理。
[0071]圖5是示出根據(jù)示例性實施例的基于編碼單位的圖像解碼器500的框圖。參照圖5,比特流505經(jīng)過解析器510,從而將被解碼的已編碼的圖像以及用于進行解碼的編碼信息被解析。已編碼的圖像數(shù)據(jù)通過經(jīng)過熵解碼器520和反量化器530而被輸出為反量化的數(shù)據(jù),并通過經(jīng)過反變換器540而被恢復(fù)為殘差值。殘差值通過被添加到幀內(nèi)預(yù)測器550的幀內(nèi)預(yù)測結(jié)果或運動補償器560的運動補償結(jié)果而根據(jù)編碼單位被恢復(fù)?;謴?fù)的編碼單位通過經(jīng)過去塊單元570和環(huán)路濾波單元580而被用于預(yù)測下一編碼單位或下一畫面。
[0072]為了基于根據(jù)示例性實施例的解碼方法來執(zhí)行解碼,圖像解碼器500的組件(即,解析器510、熵解碼器520、反量化器530、反變換器540、幀內(nèi)預(yù)測器550、運動補償器560、去塊單元570和環(huán)路濾波單元580)基于最大編碼單位、根據(jù)深度的子編碼單位、預(yù)測單位和變換單位來執(zhí)行圖像解碼處理。
[0073]具體地,幀內(nèi)預(yù)測器550和運動補償器560通過考慮最大編碼單位和深度來確定子編碼單位中的預(yù)測單位和預(yù)測模式,反變換器540通過考慮變換單位的大小來執(zhí)行反變換。
[0074]圖6示出根據(jù)示例性實施例的最大編碼單位、子編碼單位和預(yù)測單位。
[0075]如上所述,根據(jù)一個或多個示例性實施例的編碼設(shè)備100和解碼設(shè)備200考慮圖像特征而使用分層編碼單位來執(zhí)行編碼和解碼。可根據(jù)圖像特征來自適應(yīng)地設(shè)置最大編碼單位和最大深度,或者根據(jù)用戶的需求來不同地設(shè)置最大編碼單位和最大深度。
[0076]參照圖6,根據(jù)示例性實施例的分層編碼單位結(jié)構(gòu)600示出高度和寬度為64并且最大深度為4的最大編碼單位610。深度沿分層編碼單位結(jié)構(gòu)600的縱軸增加,并且隨著深度增加,子編碼單位620至650的高度和寬度減小。最大編碼單位610和子編碼單位620至650的預(yù)測單位沿分層編碼單位結(jié)構(gòu)600的橫軸被示出。
[0077]最大編碼單位610具有深度O和64X64的大小(即,高度和寬度)。深度沿縱軸增加,從而存在大小為32X32且深度為I的子編碼單位620、大小為16 X 16且深度為2的子編碼單位630、大小為8 X 8且深度為3的子編碼單位640以及大小為4X4且深度為4的子編碼單位650。大小為4X4且深度為4的子編碼單位650是最小編碼單位。最小編碼單位650可被劃分為預(yù)測單位,每個預(yù)測單位小于最小編碼單位。
[0078]在圖6中示出的示例性實施例中,根據(jù)每個深度沿橫軸示出預(yù)測單位的示例。也就是說,深度為O的最大編碼單位610的預(yù)測單位可以是大小等于編碼單位610 (即,64X64)的預(yù)測單位、或者是具有小于編碼單位610 (編碼單位610的大小為64X64)的大小的預(yù)測單位612 (預(yù)測單位612的大小為64X 32)、預(yù)測單位614 (預(yù)測單位614的大小為32X64)或預(yù)測單位616 (預(yù)測單位616的大小為32X32)。
[0079]深度為I且大小為32X32的編碼單位620的預(yù)測單位可以是大小等于編碼單位620 (即,32X32)的預(yù)測單位、或者是具有小于編碼單位620 (編碼單位620的大小為32 X 32)的大小的預(yù)測單位622 (預(yù)測單位622的大小為32 X 16)、預(yù)測單位624 (預(yù)測單位624的大小為16 X 32)或預(yù)測單位626 (預(yù)測單位626的大小為16 X 16)。
[0080]深度為2且大小為16X16的編碼單位630的預(yù)測單位可以是大小等于編碼單位630(即,16X 16)的預(yù)測單位、或者是具有小于編碼單位630(編碼單位630的大小為16X16)的大小的預(yù)測單位632 (預(yù)測單位632的大小為16X8)、預(yù)測單位634 (預(yù)測單位634的大小為8 X 16)或預(yù)測單位636 (預(yù)測單位636的大小為8X8)。
[0081]深度為3且大小為8X8的編碼單位640的預(yù)測單位可以是大小等于編碼單位640(即,8X8)的預(yù)測單位、或具有小于編碼單位640(編碼單位640的大小為8X8)的大小的預(yù)測單位642(預(yù)測單位642的大小為8X4)、預(yù)測單位644(預(yù)測單位644的大小為4X8)或預(yù)測單位646 (預(yù)測單位646的大小為4X4)。
[0082]株度為4且大小為4X4的編碼單位650的預(yù)測單位可以是最小編碼單位和最大深度的編碼單位。編碼單位650的預(yù)測單位可以是大小為4X4的預(yù)測單位650、具有4X2的大小的預(yù)測單位652、具有2X4的大小的預(yù)測單位654或具有2X2的大小的預(yù)測單位656。
[0083]圖7示出根據(jù)示例性實施例的編碼單位和變換單位。根據(jù)一個或多個示例性實施例的編碼設(shè)備100和解碼設(shè)備200以最大編碼單位本身執(zhí)行編碼,或以等于或小于最大編碼單位并從最大編碼單位劃分的子編碼單位執(zhí)行編碼。
[0084]在編碼處理中,用于頻率變換的變換單位的大小被選擇為不大于相應(yīng)的編碼單位的大小。例如,在當(dāng)前編碼單位710具有64X64的大小時,可使用具有32X32的大小的變換單位720執(zhí)行頻率變換。
[0085]圖8A和圖8B示出根據(jù)示例性實施例的編碼單位、預(yù)測單位和變換單位的劃分形狀。圖8A示出根據(jù)示例性實施例的編碼單位和預(yù)測單位。
[0086]圖8A的左側(cè)示出由根據(jù)示例性實施例的編碼設(shè)備100選擇的劃分形狀,以對最大編碼單位810進行編碼。設(shè)備100將最大編碼單位810劃分為各種形狀,執(zhí)行編碼,并通過基于R-D成本來將各種劃分形狀的編碼結(jié)果彼此進行比較,來選擇最優(yōu)劃分形狀。當(dāng)按現(xiàn)狀對最大編碼單位810進彳丁編碼最優(yōu)時,可在不按照圖8A和圖8B中所不對最大編碼單位810進行劃分的情況下對最大編碼單位810進行編碼。
[0087]參照圖8A的左側(cè),通過將深度為O的最大編碼單位810劃分為深度等于或大于I的子編碼單位來對最大編碼單位進行編碼。也就是說,最大編碼單位810被劃分為深度為I的4個子編碼單位,并且深度為I的子編碼單位中的全部或一些被劃分為深度為2的子編碼單位。
[0088]深度為I的子編碼單位中的位于右上側(cè)的子編碼單位和位于左下側(cè)的子編碼單位被劃分為深度等于或大于2的子編碼單位。深度等于或大于2的子編碼單位中的一些可被劃分為深度等于或大于3的子編碼單位。
[0089]圖8A的右側(cè)示出用于最大編碼單位810的預(yù)測單位的劃分形狀。參照圖8A的右偵牝可從最大編碼單位810不同地劃分用于最大編碼單位810的預(yù)測單位860。換句話說,用于子編碼單位中的每一個的預(yù)測單位可小于相應(yīng)的子編碼單位。
[0090]例如,用于深度為I的子編碼單位中的位于右下側(cè)的子編碼單位854的預(yù)測單位可小于子編碼單位854。另外,用于深度為2的子編碼單位814、816、818、828、850和852中的一些子編碼單位814、816、850和852的預(yù)測單位可分別小于子編碼單位814、816、850和852。另外,用于深度為3的子編碼單位822、832和848的預(yù)測單位可分別小于子編碼單位822、832和848。預(yù)測單位可具有各子編碼單位沿高度或?qū)挾鹊姆较虮欢确值男螤睿蚓哂懈髯泳幋a單位沿高度和寬度的方向被四等分的形狀。
[0091]圖8B示出根據(jù)示例性實施例的預(yù)測單位和變換單位。圖8B的左側(cè)示出用于圖8A的右側(cè)中示出的最大編碼單位810的預(yù)測單位的劃分形狀,并且圖SB的右側(cè)示出最大編碼單位810的變換單位的劃分形狀。
[0092]參照圖8B的右側(cè),可與預(yù)測單位860不同地設(shè)置變換單位870的劃分形狀。例如,即使用于深度為I的編碼單位854的預(yù)測單位被選擇具有編碼單位854的高度被二等分的形狀,但是變換單位可被選擇具有與編碼單位854相同的大小。同樣,即使用于深度為2的編碼單位814和850的預(yù)測單位被選擇具有編碼單位814和850中的每一個的高度被二等分的形狀,但是變換單位可被選擇具有與編碼單位814和850中的每一個的原始大小相同的大小。
[0093]變換單位可被選擇具有比預(yù)測單位的更小的大小。例如,當(dāng)用于深度為2的編碼單位852的預(yù)測單位被選擇具有編碼單位852的寬度被二等分的形狀時,變換單位可被選擇具有編碼單位852沿高度和寬度的方向被四等分的形狀,所述形狀具有比所述預(yù)測單位的形狀更小的大小。
[0094]圖9是根據(jù)示例性實施例的用于對運動矢量進行編碼的設(shè)備900的框圖。用于對運動矢量進行編碼的設(shè)備900可包括在以上參照圖1描述的設(shè)備100或參照圖4描述的圖像編碼器400中。參照圖9,運動矢量編碼設(shè)備900包括預(yù)測器910、第一編碼器920和第二編碼器930。
[0095]為了對使用幀間預(yù)測(即,畫面間預(yù)測)編碼的塊進行解碼,關(guān)于指示當(dāng)前塊與參考畫面中的相似塊之間的位置差的運動矢量的信息被使用。因此,關(guān)于運動矢量的信息在圖像編碼處理中被編碼并被插入到比特流。然而,如果關(guān)于運動矢量的信息按照現(xiàn)狀被編碼并被插入,則用于對關(guān)于運動矢量的信息進行編碼的開銷增加,從而降低圖像數(shù)據(jù)的壓縮率。
[0096]因此,在圖像編碼處理中,通過預(yù)測當(dāng)前塊的運動矢量,僅對作為預(yù)測的結(jié)果而產(chǎn)生的運動矢量預(yù)測因子與原始運動矢量之間的差分矢量進行編碼,并將編碼的差分矢量插入到比特流,來對關(guān)于運動矢量的信息進行壓縮。圖9示出使用這樣的運動矢量預(yù)測因子來對運動矢量進行編碼的設(shè)備900。
[0097]參照圖9,預(yù)測器910確定當(dāng)前塊的運動矢量是基于顯示模式還是基于隱含模式被預(yù)測編碼。
[0098]如上所述,諸如MPEG-4H.264、MPEG-4AVC的編解碼器使用與當(dāng)前塊鄰近的先前編碼的塊的運動矢量來預(yù)測當(dāng)前塊的運動矢量。也就是說,與當(dāng)前塊的左側(cè)、上側(cè)、右上側(cè)鄰近的先前編碼的塊的運動矢量的中值被用作當(dāng)前塊的運動矢量預(yù)測因子。由于使用相同的方法來預(yù)測使用幀間預(yù)測編碼的所有塊的運動矢量,因此關(guān)于運動矢量預(yù)測因子的信息不必要被單獨編碼。然而,根據(jù)一個或多個示例性實施例的設(shè)備100或圖像解碼器400使用關(guān)于運動矢量預(yù)測因子的信息不被單獨編碼的模式和關(guān)于運動矢量預(yù)測因子的信息被編碼以更準(zhǔn)確地預(yù)測運動矢量的模式兩者,這將在下面被詳細描述。
[0099](I)顯不模式(Explicit mode)
[0100]可由預(yù)測器910選擇的對運動矢量預(yù)測因子進行編碼的方法之一可執(zhí)行對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行顯示編碼的模式。該顯示模式是計算至少一個運動矢量預(yù)測因子候選并對指示哪個運動矢量預(yù)測因子被用于預(yù)測當(dāng)前塊的運動矢量的信息進行單獨編碼的模式?,F(xiàn)在將參照圖10A、圖1OB以及圖1lA至圖1lC對根據(jù)一個或多個示例性實施例的運動矢量預(yù)測因子候選進行描述。
[0101]圖1OA和圖1OB示出根據(jù)一個或多個示例性實施例的顯式模式的運動矢量預(yù)測因子候選。參照圖10A,根據(jù)示例性實施例的運動矢量預(yù)測方法可將與當(dāng)前塊鄰近的先前編碼的塊的運動矢量之一用作當(dāng)前塊的運動矢量預(yù)測因子。與當(dāng)前塊的上側(cè)鄰近的塊中最左邊的塊a0、與當(dāng)前塊的左側(cè)鄰近的塊中最上邊的塊b0、與當(dāng)前塊的右上側(cè)鄰近的塊C、與當(dāng)前塊的左上側(cè)鄰近的塊d、以及與當(dāng)前塊的右下側(cè)鄰近的塊e可被用于當(dāng)前塊的運動矢量預(yù)測因子。
[0102]參照圖10B,與當(dāng)前塊鄰近的所有塊的運動矢量可被用作當(dāng)前塊的運動矢量預(yù)測因子。換句話說,不僅與當(dāng)前塊的上側(cè)鄰近的塊中最左邊的塊a0的運動矢量,而且與當(dāng)前塊的上側(cè)鄰近的所有塊的運動矢量可被用作當(dāng)前塊的運動矢量預(yù)測因子。另外,不僅與當(dāng)前塊的左側(cè)鄰近的塊中最上邊的塊bO的運動矢量,而且與當(dāng)前塊的左側(cè)鄰近的所有塊的運動矢量可被用作當(dāng)前塊的運動矢量預(yù)測因子。
[0103]可選擇地,鄰近塊的運動矢量的中值可被用作運動矢量預(yù)測因子。例如,median (mv_a0, mv_b0,mv_c)可被用作當(dāng)前塊的運動矢量預(yù)測因子,其中,mv_a0表示塊a0的運動矢量,mv_b0表示塊bO的運動矢量,mv_c表示塊c的運動矢量。
[0104]圖1lA至圖1lC示出根據(jù)另一示例性實施例的顯式模式的運動矢量預(yù)測因子候選。圖1lA示出根據(jù)示例性實施例的計算雙向預(yù)測畫面(被稱為B畫面)的運動矢量預(yù)測因子的方法。當(dāng)包括當(dāng)前塊的當(dāng)前畫面是被執(zhí)行了雙向預(yù)測的B畫面時,基于時間距離產(chǎn)生的運動矢量可以是運動矢量預(yù)測因子。
[0105]參照圖11A,可使用時間在前的畫面1112的協(xié)同定位(co_located)的位置中的塊1120的運動矢量來產(chǎn)生當(dāng)前畫面1110的當(dāng)前塊1100的運動矢量預(yù)測因子。例如,如果針對當(dāng)前畫面1110的時間在后的畫面1114的搜索的塊1122來產(chǎn)生處于與當(dāng)前塊1100協(xié)同定位的位置中的塊1120的運動矢量mv_colA,則當(dāng)前塊1100的運動矢量預(yù)測因子候選mv_LOA和mv_LlA可根據(jù)以下等式來產(chǎn)生:
[0106]mv_LlA = (tl/t2) Xmv_colA
[0107]mv_L0A = mv_L I A-mv_c o IA
[0108]其中,mv_L0A表示針對時間在前的畫面1112的當(dāng)前塊1100的運動矢量預(yù)測因子,mv_LlA表示針對時間在后的畫面1114的當(dāng)前塊1100的運動矢量預(yù)測因子。
[0109]圖1lB示出根據(jù)另一示例性實施例的產(chǎn)生B畫面的運動矢量預(yù)測因子的方法。與圖1lA中示出的方法相比,在圖1lB中,處于與當(dāng)前塊1100協(xié)同定位的位置中的塊1130存在于時間在后的畫面1114中。
[0110]參照圖11B,可使用時間在后的畫面1114的協(xié)同定位的位置中的塊1130的運動矢量來產(chǎn)生當(dāng)前畫面1110的當(dāng)前塊1100的運動矢量預(yù)測因子。例如,如果針對當(dāng)前畫面Il1的時間在前的畫面1112的搜索的塊1132來產(chǎn)生處于與當(dāng)前塊1110協(xié)同定位的位置中的塊1130的運動矢量mv_ColB,則當(dāng)前塊1100的運動矢量預(yù)測因子候選mv_L0B和mv_LlB可根據(jù)以下等式來產(chǎn)生:
[0111]mv_L0B = (t3/t4) Xmv_colB
[0112]mv_LlB = mv_L0B-mv_colB
[0113]其中,mv_L0B表示針對時間在前的畫面1112的當(dāng)前塊1100的運動矢量預(yù)測因子,mv_LlB表示針對時間在后的畫面1114的當(dāng)前塊1100的運動矢量預(yù)測因子。
[0114]在產(chǎn)生B畫面的當(dāng)前塊1100的運動矢量的過程中,可使用圖1lA和圖1lB中示出的方法中的至少一個。換句話說,由于使用處于與當(dāng)前塊1100協(xié)同定位的位置中的塊1120或1130的運動矢量和時間距離來產(chǎn)生運動矢量預(yù)測因子,因此如果在協(xié)同定位的位置中的塊1120和塊1130的運動矢量存在,則可使圖1lA和圖1lB中示出的方法產(chǎn)生運動矢量預(yù)測因子。因此,根據(jù)示例性實施例的預(yù)測器910可僅使用處于協(xié)同定位的位置中的塊1120和1130中具有運動矢量的塊來產(chǎn)生當(dāng)前塊1100的運動矢量預(yù)測因子。
[0115]例如,當(dāng)使用幀內(nèi)預(yù)測而非幀間預(yù)測來對處于時間在前的畫面1112的協(xié)同定位的位置中的塊1120進行編碼時,塊1120的運動矢量不存在,因此不能使用如圖1lA中示出的產(chǎn)生運動矢量預(yù)測因子的方法來產(chǎn)生當(dāng)前塊1100的運動矢量預(yù)測因子。
[0116]圖1lC示出根據(jù)示例性實施例的產(chǎn)生B畫面的運動矢量預(yù)測因子的方法。參照圖11C,可使用處于時間在前的畫面1112的協(xié)同定位的位置中的塊1140的運動矢量來產(chǎn)生當(dāng)前畫面1110的當(dāng)前塊1100的運動矢量預(yù)測因子。例如,如果針對另一時間在前的畫面1116的搜索的塊1142產(chǎn)生了處于與當(dāng)前塊1100協(xié)同定位的位置中的塊1130的運動矢量mv_colC,則可根據(jù)以下等式產(chǎn)生當(dāng)前塊1100的運動矢量預(yù)測因子候選mv_L0C:
[0117]mv_L0C = (t6/t5) Xmv_colC
[0118]由于當(dāng)前畫面1110是P畫面,因此與圖1lA和圖1lB不同,當(dāng)前塊1100的運動矢量預(yù)測因子的數(shù)量為I。
[0119]總之,可根據(jù)以下等式來產(chǎn)生根據(jù)圖10A、圖1OB以及圖1lA至圖1lC的運動矢量預(yù)測因子候選的集合C:
[0120]C = {median (mv_a0, mv_b0,mv_c),mv_a0, mv_al,...,mv_aN, mv_b0,mv_bI,...mv_bN,mv_c, mv_d, mv_e, mv_temporal}。
[0121]可選擇地,可通過根據(jù)以下等式減少運動矢量預(yù)測因子候選的數(shù)量來產(chǎn)生集合C。
[0122]C = {median (mv_a,,mv_b,,mv_c,),mv_a,,mv_b,,mv_c,,mv_temporal}。
[0123]這里,mv_x表示塊X的運動矢量。median()表示中值,mv_temporal表示使用以上關(guān)聯(lián)圖1lA至圖1lC描述的時間距離產(chǎn)生的運動矢量預(yù)測因子候選。
[0124]另外,mv_a’表示mv_a0,mv_al,…,mv_aN之中恰好的第一有效運動矢量。例如,當(dāng)使用幀內(nèi)預(yù)測對塊a0進行編碼時,塊a0的運動矢量mv_a0不是有效的,因此mv_a’ =mv_al,并且如果塊al的運動矢量也不是有效的,則mv_a’ = mv_a2。
[0125]同樣,mv_b’表示mv_b0,mv_bl,…mv_bN之中的第一有效運動矢量,mv_c’表示mv_c,mv_d和mv_e之中的第一有效運動矢量。
[0126]顯示模式是對指示哪個運動矢量已被用于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼的模式。例如,當(dāng)以顯示模式對運動矢量進行編碼時,二進制數(shù)字可被分配給集合C中的每個元素(即,運動矢量預(yù)測因子候選),并且如果所述候選中的一個被用作當(dāng)前塊的運動矢量預(yù)測因子,則相應(yīng)的二進制數(shù)字可被輸出。
[0127]本領(lǐng)域的普通技術(shù)人員將容易理解,除上述關(guān)聯(lián)顯示模式描述的那些運動矢量預(yù)測因子候選之外,其他運動矢量預(yù)測因子候選可被使用。
[0128](2)隱含模式(Implicit mode)
[0129]可由預(yù)測器910選擇的對運動矢量預(yù)測因子進行編碼的方法中的另一方法執(zhí)行對這樣的信息進行編碼的模式,所述信息指示基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。與顯示模式不同,該模式是在沒有用于指定運動矢量預(yù)測因子的編碼信息的情況下,以隱含模式對指示運動矢量預(yù)測因子的產(chǎn)生的信息進行編碼的模式。
[0130]如上所述,諸如MPEG-4H.264/MPEG-4AVC的編解碼器使用與當(dāng)前塊鄰近的先前編碼的塊的運動矢量來預(yù)測當(dāng)前塊的運動矢量。也就是說,與當(dāng)前塊的左側(cè)、上側(cè)、右上側(cè)鄰近的先前編碼的塊的運動矢量的中值被用作當(dāng)前塊的運動矢量預(yù)測因子。在這種情況下,與顯示模式不同,用于選擇運動矢量預(yù)測因子候選之一的信息可不被編碼。
[0131]換句話說,如果在圖像編碼處理中僅對指示已經(jīng)以隱含模式對當(dāng)前塊的運動矢量預(yù)測因子進行編碼的信息進行編碼,則在圖像解碼處理中,與當(dāng)前塊的左側(cè)、上側(cè)和右上側(cè)鄰近的先前編碼的塊的運動矢量的中值可被用作當(dāng)前塊的運動矢量預(yù)測因子。
[0132]另外,除了將與當(dāng)前塊的左側(cè)、上側(cè)和右上側(cè)鄰近的先前編碼的塊的運動矢量的中值用作當(dāng)前塊的運動矢量預(yù)測因子的方法以外,根據(jù)示例性實施例的圖像編碼方法提供了一種新的隱含模式?,F(xiàn)在將參照圖12對此進行詳細描述。
[0133]圖12示出根據(jù)示例性實施例的在隱含模式中產(chǎn)生運動矢量預(yù)測因子的方法。參照圖12,與當(dāng)前畫面1210的當(dāng)前塊1200鄰近的先前編碼的區(qū)域1220中包括的像素1222被用于產(chǎn)生當(dāng)前塊1200的運動矢量預(yù)測因子。通過使用鄰近像素1222搜索參考畫面1212來確定相應(yīng)像素1224??赏ㄟ^計算絕對差之和(SAD)來確定所述相應(yīng)像素1224。當(dāng)所述相應(yīng)像素1224被確定時,鄰近像素1222的運動矢量mv_template被產(chǎn)生,并且所述運動矢量mv_template可被用作當(dāng)前塊1200的運動矢量預(yù)測因子。
[0134]如果將鄰近塊的運動矢量的中值用作運動矢量預(yù)測因子的模式被定義為“隱含模式_1”,并且如果使用與當(dāng)前塊鄰近的像素來產(chǎn)生運動矢量預(yù)測因子的模式被定義為“隱含模式_2”,則可通過在圖像編碼處理中對關(guān)于所述兩種隱含模式(隱含模式_1和隱含模式_2)中的一個的信息進行編碼并在圖像解碼處理中參考關(guān)于模式的信息,來使用所述兩種隱含模式之一產(chǎn)生運動矢量預(yù)測因子。
[0135](3)模式選擇
[0136]對于預(yù)測器910而言可能存在各種標(biāo)準(zhǔn)來選擇上述顯示模式和隱含模式中的一個。
[0137]由于在顯示模式中選擇了多個運動矢量預(yù)測因子候選中的一個,因此與當(dāng)前塊的運動矢量更相似的運動矢量預(yù)測因子可被選擇。然而,由于指示多個運動矢量預(yù)測因子候選之一的信息被編碼,因此會產(chǎn)生比在隱含模式中更多的開銷。因此,對于具有較大大小的編碼單位,可以以顯示模式對運動矢量進行編碼,這是因為對于具有較大大小的編碼單位,當(dāng)運動矢量被錯誤預(yù)測時發(fā)生的誤差增加的可能性高于具有較小大小的編碼單位,并且對于每個畫面,開銷發(fā)生的次數(shù)減少。
[0138]例如,當(dāng)被等分為具有64X64的大小的m個編碼單位的畫面以顯示模式被編碼時,開銷發(fā)生次數(shù)為m。然而,當(dāng)具有相同大小的被等分為具有32X32的大小的4m個編碼單位的畫面以顯示模式被編碼時,開銷發(fā)生次數(shù)為4m。
[0139]因此,根據(jù)示例性實施例的預(yù)測器910可在當(dāng)前塊的運動矢量被編碼時基于編碼單位的大小來選擇顯示模式和隱含模式之一。
[0140]由于在以上參照圖1至圖8描述的根據(jù)示例性實施例的圖像編碼方法和圖像解碼方法中的編碼單位的大小使用深度來表示,因此預(yù)測器910基于當(dāng)前塊的深度來確定當(dāng)前塊的運動矢量是以顯示模式被編碼還是以隱含模式被編碼。例如,當(dāng)深度為O和I的編碼單位被幀間預(yù)測時,所述編碼單位的運動矢量以顯示模式被編碼,當(dāng)深度等于或大于2的編碼單位被幀間預(yù)測時,所述編碼單位的運動矢量以隱含模式被編碼。
[0141]根據(jù)另一示例性實施例,預(yù)測器910可為每個畫面或像條單位選擇顯示模式或隱含模式。由于對于每個畫面或像條單位,圖像特征不同,因此可通過考慮這些圖像特征來為每個畫面或像條單位選擇顯示模式或隱含模式。可通過考慮R-D成本從顯示模式和隱含模式之中選擇最優(yōu)模式,來對當(dāng)前畫面或像條中包括的編碼單位的運動矢量進行預(yù)測編碼。
[0142]例如,如果在不使用顯示模式的情況下,畫面或像條中包括的編碼單位的運動矢量可被準(zhǔn)確預(yù)測,則可以以隱含模式對所述畫面或像條中包括的所有編碼單位的運動矢量進行預(yù)測編碼。
[0143]根據(jù)另一示例性實施例,預(yù)測器910可基于是否已經(jīng)以跳過模式對當(dāng)前塊進行編碼來選擇顯示模式或隱含模式。跳過模式是這樣的編碼模式,在所述編碼模式中,在沒有對像素值進行編碼的情況下,指示已經(jīng)以跳過模式對當(dāng)前塊進行編碼的標(biāo)志信息被編碼。
[0144]此外,跳過模式是這樣一種模式,在所述模式中,由于通過將運動矢量預(yù)測因子用作當(dāng)前塊的運動矢量執(zhí)行運動補償而產(chǎn)生的預(yù)測塊與當(dāng)前塊相似,因此當(dāng)前塊的像素值不被編碼。因此,由于更相似于當(dāng)前塊的運動矢量來產(chǎn)生運動矢量預(yù)測因子,因此以跳過模式對當(dāng)前塊進行編碼的可能性更高。因此,以跳過模式編碼的塊可以以顯示模式被編碼。
[0145]參照回圖9,當(dāng)預(yù)測器910選擇顯示模式和隱含模式之一并根據(jù)選擇的模式確定運動矢量預(yù)測因子時,第一編碼器920和第二編碼器930對關(guān)于編碼模式和運動矢量的信息進彳丁編碼。
[0146]具體地,第一編碼器920對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼。更詳細地,當(dāng)預(yù)測器910確定當(dāng)前塊的運動矢量以顯示模式被編碼時,第一編碼器920對指示已經(jīng)以顯示模式產(chǎn)生運動矢量預(yù)測因子的信息以及指示哪個運動矢量預(yù)測因子候選已被用作當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼。
[0147]相反,當(dāng)預(yù)測器910選擇當(dāng)前塊的運動矢量以隱含模式被編碼時,第一編碼器920對指示已經(jīng)以隱含模式產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼。換句話說,第一編碼器920對指示已經(jīng)使用與當(dāng)前塊鄰近的塊或像素產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼。如果使用了兩個或更多個隱含模式,則第一編碼器920還可對指示哪個隱含模式已被用于產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼。
[0148]第二編碼器930基于由預(yù)測器910產(chǎn)生的運動矢量預(yù)測因子來對當(dāng)前塊的運動矢量進行編碼。可選擇地,第二編碼器930通過從作為運動補償?shù)慕Y(jié)果產(chǎn)生的當(dāng)前塊的運動矢量減去由預(yù)測器910產(chǎn)生的運動矢量預(yù)測因子來產(chǎn)生差矢量(difference vector),并對關(guān)于所述差矢量的信息進行編碼。
[0149]圖13是根據(jù)示例性實施例的用于對運動矢量進行解碼的設(shè)備1300的框圖。用于對運動矢量進行解碼的設(shè)備1300可包括在以上參照圖2描述的圖像解碼設(shè)備200中或包括在以上參照圖5描述的圖像解碼器500中。參照圖13,運動矢量解碼設(shè)備1300包括第一解碼器1310、第二解碼器1320、預(yù)測器1330和運動矢量恢復(fù)器1340。
[0150]第一解碼器1310對比特流中包括的關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行解碼。詳細地,第一解碼器1310對指示是以顯示模式還是以隱含模式已對當(dāng)前塊的運動矢量預(yù)測因子進行編碼的信息進行解碼。在當(dāng)前塊的運動矢量預(yù)測因子已經(jīng)以顯示模式被編碼時,第一解碼器1310還對指示多個運動矢量預(yù)測因子之中用作當(dāng)前塊的運動矢量預(yù)測因子的運動矢量預(yù)測因子的信息進行解碼。在當(dāng)前塊的運動矢量預(yù)測因子已經(jīng)以隱含模式被編碼時,解碼器1310還對指示多個隱含模式中的哪個隱含模式已被用于對當(dāng)前塊的運動矢量預(yù)測因子進行編碼的信息進行解碼。
[0151]第二解碼器1320對比特流中包括的當(dāng)前塊的運動矢量預(yù)測因子與運動矢量之間的差矢量進行解碼。
[0152]預(yù)測器1330基于由第一解碼器1310解碼的關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。
[0153]當(dāng)關(guān)于已經(jīng)以顯示模式被編碼的當(dāng)前塊的運動矢量預(yù)測因子的信息被解碼時,預(yù)測器1330產(chǎn)生以上參照圖10A、圖1OB以及圖1lA至圖1lC描述的運動矢量預(yù)測因子候選之中的運動矢量預(yù)測因子,并將產(chǎn)生的運動矢量預(yù)測因子用作當(dāng)前塊的運動矢量預(yù)測因子。
[0154]當(dāng)關(guān)于已經(jīng)以隱含模式被編碼的當(dāng)前塊的運動矢量預(yù)測因子的信息被解碼時,預(yù)測器1330使用與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。更詳細地,預(yù)測器1330產(chǎn)生與當(dāng)前塊鄰近的塊的運動矢量的中值作為當(dāng)前塊的運動矢量預(yù)測因子,或者通過使用與當(dāng)前塊鄰近的像素搜索參考畫面來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。
[0155]運動矢量恢復(fù)器1340通過對由預(yù)測器1330產(chǎn)生的運動矢量預(yù)測因子以及由第二解碼器1320解碼的差矢量求和,來恢復(fù)當(dāng)前塊的運動矢量。恢復(fù)的運動矢量被用于當(dāng)前塊的運動補償。
[0156]圖14是根據(jù)示例性實施例的對運動矢量進行編碼的方法的流程圖。參照圖14,在操作1410,根據(jù)示例性實施例的運動矢量編碼設(shè)備900選擇顯示模式和隱含模式之一作為對關(guān)于運動矢量預(yù)測因子的信息進行編碼的模式。
[0157]顯示模式是將指示至少一個運動矢量預(yù)測因子候選之中的運動矢量預(yù)測因子候選的信息編碼為關(guān)于運動矢量預(yù)測因子的信息的模式。隱含模式是將指示已經(jīng)基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素產(chǎn)生運動矢量預(yù)測因子的信息編碼為關(guān)于運動矢量預(yù)測因子的信息的模式。以上已參照圖10A、圖10B、圖1lA至圖1lC以及圖12給出了對其進行的詳細描述。
[0158]可基于當(dāng)前塊的大小(即,當(dāng)前塊的深度)來選擇模式,或以當(dāng)前畫面或像條為單位來選擇模式,其中,在所述當(dāng)前畫面或像條中包括當(dāng)前塊。可選擇地,可根據(jù)當(dāng)前塊是否已經(jīng)以跳過模式被編碼來選擇模式。
[0159]在操作1420,運動矢量編碼設(shè)備900根據(jù)在操作1410中選擇的模式來確定運動矢量預(yù)測因子。詳細地,運動矢量編碼設(shè)備900基于在操作1410中選擇的顯示模式或隱含模式來確定當(dāng)前塊的運動矢量預(yù)測因子。更詳細地,運動矢量編碼設(shè)備900以顯示模式將至少一個運動矢量預(yù)測因子之中的運動矢量預(yù)測因子確定為當(dāng)前塊的運動矢量預(yù)測因子,或者以隱含模式基于與當(dāng)前塊鄰近的塊或像素來確定當(dāng)前塊的運動矢量預(yù)測因子。
[0160]在操作1430,運動矢量編碼設(shè)備900對關(guān)于在操作1420中確定的運動矢量預(yù)測因子的消息進行編碼。在顯示模式的情況下,運動矢量編碼設(shè)備900對以下信息進行編碼:指示至少一個運動矢量預(yù)測因子候選之中的作為當(dāng)前塊的運動矢量預(yù)測因子的運動矢量預(yù)測因子候選的信息,以及指示已經(jīng)以顯示模式對關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼的信息。在隱含模式的情況下,運動矢量編碼設(shè)備900對指示已經(jīng)基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子的信息進行編碼。在多個隱含模式的情況下,運動矢量編碼設(shè)備900還可對指示所述多個隱含模式之一的信息進彳丁編碼。
[0161]在操作1440,運動矢量編碼設(shè)備900對通過從當(dāng)前塊的運動矢量減去在操作1420中確定的運動矢量預(yù)測因子而產(chǎn)生的差矢量進行編碼。
[0162]圖15是根據(jù)示例性實施例的對運動矢量進行解碼的方法的流程圖。參照圖15,在操作1510,根據(jù)示例性實施例的運動矢量解碼設(shè)備1300對比特流中包括的關(guān)于當(dāng)前塊的運動矢量預(yù)測因子的信息進行解碼。詳細地,運動矢量解碼設(shè)備1300對關(guān)于顯示模式和隱含模式之中用于對當(dāng)前塊的運動矢量預(yù)測因子進行編碼的模式的信息進行解碼。
[0163]在顯示模式的情況下,運動矢量解碼設(shè)備1300對指示已經(jīng)以顯示模式對當(dāng)前塊的運動矢量預(yù)測因子進行編碼的信息以及關(guān)于至少一個運動矢量預(yù)測因子候選之中的運動矢量預(yù)測因子候選的信息進行解碼。在隱含模式的情況下,運動矢量解碼設(shè)備1300對指示已經(jīng)基于與當(dāng)前塊鄰近的先前編碼的區(qū)域中包括的塊或像素產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子的信息進行解碼。在多個隱含模式的情況下,運動矢量解碼設(shè)備1300還對指示所述多個隱含模式之一的信息進行解碼。
[0164]在操作1520,運動矢量解碼設(shè)備1300對關(guān)于差矢量的信息進行解碼。所述差矢量是當(dāng)前塊的運動矢量預(yù)測因子與當(dāng)前塊的運動矢量之間的差的矢量。
[0165]在操作1530,運動矢量解碼設(shè)備1300基于已在操作1510中解碼的關(guān)于運動矢量預(yù)測因子的信息產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。詳細地,運動矢量解碼設(shè)備1300根據(jù)顯示模式或隱含模式產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。更詳細地,運動矢量解碼設(shè)備1300通過選擇至少一個運動矢量預(yù)測因子候選之中的運動矢量預(yù)測因子候選或使用與當(dāng)前塊鄰近的先前解碼的區(qū)中包括的塊或像素,來產(chǎn)生當(dāng)前塊的運動矢量預(yù)測因子。
[0166]在操作1540,運動矢量解碼設(shè)備1300通過對在操作1520中解碼的差矢量和在操作1530中產(chǎn)生的運動矢量預(yù)測因子求和,來恢復(fù)當(dāng)前塊的運動矢量。
[0167]盡管已經(jīng)具體顯示和描述了示例性實施例,但是本領(lǐng)域的普通技術(shù)人員將理解,在不脫離由權(quán)利要求所限定的本發(fā)明構(gòu)思的精神和范圍的情況下,可以對其進行形式和細節(jié)上的各種改變。
[0168]另外,可使用計算機可讀記錄介質(zhì)中的計算機可讀代碼來實現(xiàn)根據(jù)示例性實施例的系統(tǒng)。例如,根據(jù)示例性實施例的用于對圖像編碼的設(shè)備100、用于對圖像解碼的設(shè)備200、圖像編碼器400、圖像解碼器500、運動矢量編碼設(shè)備900以及運動矢量解碼設(shè)備1300中的至少一個可包括連接到圖1、2、4、5、9和13中示出的裝置中的每一個的單元的總線,以及連接到所述總線的至少一個處理器。另外,連接到用于執(zhí)行如上所述的命令的至少一個處理器的存儲器可被包括并被連接到所述總線,以存儲命令和接收的消息或產(chǎn)生的消息。
[0169]計算機可讀記錄介質(zhì)時可存儲其后可由計算機系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲裝置。計算機可讀記錄介質(zhì)的示例包括:只讀存儲器(ROM)、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光學(xué)數(shù)據(jù)存儲裝置。計算機可讀記錄介質(zhì)還可分布在聯(lián)網(wǎng)的計算機系統(tǒng)上,從而計算機可讀代碼以分布式方式被存儲和執(zhí)行。
【權(quán)利要求】
1.一種用于對運動矢量進行解碼的設(shè)備,所述設(shè)備包括: 預(yù)測器,在當(dāng)前塊的預(yù)測模式是幀間預(yù)測模式時,從與當(dāng)前塊鄰近的鄰近塊的運動矢量之中確定運動矢量預(yù)測因子候選,并從所述運動矢量預(yù)測因子候選之中確定當(dāng)前塊的運動矢量預(yù)測因子; 運動矢量恢復(fù)單元,基于運動矢量預(yù)測因子和差分矢量獲得當(dāng)前塊的運動矢量,其中,差分矢量指示當(dāng)前塊的運動矢量預(yù)測因子和運動矢量之間的差, 其中,鄰近塊包括第一塊和第二塊中的至少一個,其中,第一塊與當(dāng)前塊的左下側(cè)鄰近,第二塊位于第一塊的上側(cè)。
2.如權(quán)利要求1所述的設(shè)備,其中,鄰近塊是在當(dāng)前塊之前被預(yù)先解碼的塊。
3.如權(quán)利要求1所述的設(shè)備,其中,圖像被劃分為具有最大尺寸的最大編碼單元, 其中,最大編碼單元根據(jù)深度被分層劃分為編碼深度的編碼單元, 其中,當(dāng)前深度的編碼單元被劃分為用于預(yù)測解碼的多個預(yù)測單元中的至少一個預(yù)測單元, 其中,當(dāng)前塊是所述多個預(yù)測單元中的所述至少一個預(yù)測單元之中的預(yù)測單元之一。
【文檔編號】H04N19/70GK104506863SQ201510002248
【公開日】2015年4月8日 申請日期:2010年8月13日 優(yōu)先權(quán)日:2009年8月13日
【發(fā)明者】李泰美, 韓宇鎮(zhèn), 李教爀 申請人:三星電子株式會社