技術(shù)領(lǐng)域
與示例性實(shí)施例一致的設(shè)備和方法涉及對運(yùn)動矢量進(jìn)行編碼和解碼,更具體地講,涉及對當(dāng)前塊的運(yùn)動矢量進(jìn)行預(yù)測編碼和預(yù)測解碼。
背景技術(shù):
在編解碼器(諸如,MPEG-4H.264/MPEG先進(jìn)視頻編碼(AVC))中,與當(dāng)前塊相鄰的先前編碼的塊的運(yùn)動矢量可被用于預(yù)測當(dāng)前塊的運(yùn)動矢量。與當(dāng)前塊的左側(cè)、上側(cè)、右上側(cè)相鄰的先前編碼的塊的運(yùn)動矢量的中值被用作當(dāng)前塊的運(yùn)動矢量預(yù)測。未直接對當(dāng)前塊的運(yùn)動矢量進(jìn)行編碼,而是對運(yùn)動矢量和運(yùn)動矢量預(yù)測之間的差進(jìn)行編碼。
技術(shù)實(shí)現(xiàn)要素:
解決方案
一個(gè)或多個(gè)示例性實(shí)施例提供一種用于對運(yùn)動矢量進(jìn)行預(yù)測編碼和預(yù)測解碼的方法和設(shè)備,以及記錄有用于執(zhí)行所述方法的計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì)。
有益效果
根據(jù)示例性實(shí)施例,當(dāng)運(yùn)動矢量預(yù)測候選被用于對運(yùn)動矢量進(jìn)行預(yù)測編碼和預(yù)測解碼時(shí),運(yùn)動矢量預(yù)測候選的數(shù)量可被減少以對運(yùn)動矢量進(jìn)行預(yù)測編碼和預(yù)測解碼。因此,可使用最少比特對這樣的信息進(jìn)行編碼,從而增加了編碼/解碼運(yùn)動矢量的壓縮率,并且從而可提高編碼/解碼圖像的壓縮率,其中,所述信息是運(yùn)動矢量預(yù)測候選中對被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測進(jìn)行指定所需的信息。
附圖說明
通過參照附圖對示例性實(shí)施例進(jìn)行詳細(xì)描述,本發(fā)明的上述和其他特點(diǎn)和優(yōu)點(diǎn)將會變得更加清楚,其中:
圖1是根據(jù)示例性實(shí)施例的用于對圖像進(jìn)行編碼的設(shè)備的框圖;
圖2是根據(jù)示例性實(shí)施例的用于對圖像進(jìn)行解碼的設(shè)備的框圖;
圖3示出根據(jù)示例性實(shí)施例的分層編碼單元;
圖4是根據(jù)示例性實(shí)施例的基于編碼單元的圖像編碼器的框圖;
圖5是根據(jù)示例性實(shí)施例的基于編碼單元的圖像解碼器的框圖;
圖6示出根據(jù)示例性實(shí)施例的最大編碼單元、子編碼單元和預(yù)測單元。
圖7示出根據(jù)示例性實(shí)施例的編碼單元和變換單元;
圖8a到圖8d示出根據(jù)示例性實(shí)施例的編碼單元、預(yù)測單元和變換單元的劃分形狀;
圖9是根據(jù)示例性實(shí)施例的用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備的框圖;
圖10a和圖10b示出根據(jù)示例性實(shí)施例的運(yùn)動矢量預(yù)測候選;
圖10c到圖10e示出根據(jù)示例性實(shí)施例的具有多種尺寸的與當(dāng)前塊相鄰的塊;
圖11a到圖11c示出根據(jù)另一示例性實(shí)施例的運(yùn)動矢量預(yù)測候選;
圖12示出根據(jù)示例性實(shí)施例的減少運(yùn)動矢量預(yù)測候選的方法;
圖13a到圖13d示出根據(jù)示例性實(shí)施例的包括在具有預(yù)定尺寸的編碼單元中的當(dāng)前塊的位置;
圖14是根據(jù)示例性實(shí)施例的用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備的框圖;
圖15是示出根據(jù)示例性實(shí)施例的對運(yùn)動矢量進(jìn)行編碼的方法的流程圖;
圖16是示出根據(jù)示例性實(shí)施例的對運(yùn)動矢量進(jìn)行解碼的方法的流程圖。
最佳模式
根據(jù)示例性實(shí)施例的一方面,提供了一種對運(yùn)動矢量進(jìn)行編碼的方法,所述方法包括:通過估計(jì)當(dāng)前塊的運(yùn)動矢量,基于估計(jì)的結(jié)果將多個(gè)運(yùn)動矢量預(yù)測候選中的第一運(yùn)動矢量預(yù)測候選確定為當(dāng)前塊的運(yùn)動矢量預(yù)測,基于當(dāng)前塊的運(yùn)動矢量和當(dāng)前塊的運(yùn)動矢量預(yù)測來產(chǎn)生關(guān)于運(yùn)動矢量的信息;通過使用多個(gè)運(yùn)動矢量預(yù)測候選中的第二運(yùn)動矢量預(yù)測候選和關(guān)于運(yùn)動矢量的信息產(chǎn)生虛擬運(yùn)動矢量,產(chǎn)生虛擬運(yùn)動矢量和多個(gè)運(yùn)動矢量預(yù)測候選之間的矢量差,對矢量差和關(guān)于運(yùn)動矢量的信息進(jìn)行比較,從多個(gè)運(yùn)動矢量預(yù)測候選中選擇性地排除第二運(yùn)動矢量預(yù)測候選;對關(guān)于當(dāng)前塊的運(yùn)動矢量的信息和關(guān)于當(dāng)前塊的運(yùn)動矢量預(yù)測信息進(jìn)行編碼。
根據(jù)是另一示例性實(shí)施例的一方面,提供了一種對運(yùn)動矢量進(jìn)行解碼的方法,所述的方法包括:對關(guān)于當(dāng)前塊的運(yùn)動矢量的信息進(jìn)行解碼;通過使用多個(gè)運(yùn)動矢量預(yù)測候選中的預(yù)定的運(yùn)動矢量預(yù)測候選和關(guān)于所述運(yùn)動矢量的解碼的信息產(chǎn)生虛擬運(yùn)動矢量,產(chǎn)生虛擬運(yùn)動矢量和多個(gè)運(yùn)動矢量預(yù)測候選之間的矢量差,對產(chǎn)生的矢量差和關(guān)于運(yùn)動矢量的解碼的信息進(jìn)行比較,從多個(gè)運(yùn)動矢量預(yù)測候選中選擇性地排除預(yù)定的運(yùn)動矢量預(yù)測候選;將從多個(gè)運(yùn)動矢量預(yù)測候選中沒有排除的運(yùn)動矢量預(yù)測候選的運(yùn)動矢量預(yù)測確定為當(dāng)前塊的運(yùn)動矢量預(yù)測,并基于確定的運(yùn)動矢量預(yù)測和關(guān)于運(yùn)動矢量的解碼的信息恢復(fù)當(dāng)前塊的運(yùn)動矢量。
根據(jù)是另一示例性實(shí)施例的一方面,提供了一種用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備,所述設(shè)備包括:運(yùn)動矢量估計(jì)器,通過估計(jì)當(dāng)前塊的運(yùn)動矢量,基于當(dāng)前塊的運(yùn)動矢量和當(dāng)前塊的運(yùn)動矢量預(yù)測產(chǎn)生關(guān)于運(yùn)動矢量的信息,基于估計(jì)的結(jié)果將多個(gè)運(yùn)動矢量預(yù)測候選中的第一運(yùn)動矢量預(yù)測候選確定為當(dāng)前塊的運(yùn)動矢量預(yù)測;候選確定器,通過使用多個(gè)運(yùn)動矢量預(yù)測候選中的第二運(yùn)動矢量預(yù)測候選和關(guān)于運(yùn)動矢量的信息產(chǎn)生虛擬運(yùn)動矢量,產(chǎn)生虛擬運(yùn)動矢量和多個(gè)運(yùn)動矢量預(yù)測候選之間的矢量差,對矢量差和關(guān)于運(yùn)動矢量的信息進(jìn)行比較,從多個(gè)運(yùn)動矢量預(yù)測候選中選擇性地排除第二運(yùn)動矢量預(yù)測候選;運(yùn)動矢量編碼器,對關(guān)于運(yùn)動矢量的信息和關(guān)于當(dāng)前塊的運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。
根據(jù)是另一示例性實(shí)施例的一方面,提供了一種用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備,所述設(shè)備包括:運(yùn)動矢量解碼器,對關(guān)于當(dāng)前塊的運(yùn)動矢量的信息進(jìn)行解碼;候選確定器,通過使用多個(gè)運(yùn)動矢量預(yù)測候選中的預(yù)定的運(yùn)動矢量預(yù)測候選和關(guān)于所述運(yùn)動矢量的解碼的信息產(chǎn)生虛擬運(yùn)動矢量,產(chǎn)生虛擬運(yùn)動矢量和多個(gè)運(yùn)動矢量預(yù)測候選之間的矢量差,對產(chǎn)生的矢量差和關(guān)于運(yùn)動矢量的解碼的信息進(jìn)行比較,從多個(gè)運(yùn)動矢量預(yù)測候選中選擇性地排除預(yù)定的運(yùn)動矢量預(yù)測候選;運(yùn)動矢量恢復(fù)單元,將從多個(gè)運(yùn)動矢量預(yù)測候選中沒有排除的運(yùn)動矢量預(yù)測候選的運(yùn)動矢量預(yù)測候選確定為當(dāng)前塊的運(yùn)動矢量預(yù)測,并基于確定的運(yùn)動矢量預(yù)測和關(guān)于運(yùn)動矢量的解碼的信息恢復(fù)當(dāng)前塊的運(yùn)動矢量。
根據(jù)另一示例性實(shí)施例的一方面,提供了一種實(shí)施了用于執(zhí)行對運(yùn)動矢量進(jìn)行編碼和解碼的方法的計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì)。
具體實(shí)施方式
以下,將參照附圖更全面地描述一個(gè)或多個(gè)示例性實(shí)施例。當(dāng)諸如“…中的至少一個(gè)”的表述位于一列元件之后時(shí),其修飾整列元件而不是修飾列出的單個(gè)元件。
以下,“圖像”可表示視頻的靜止圖像或運(yùn)動圖像(即,視頻本身)。
圖1是根據(jù)示例性實(shí)施例的用于對圖像進(jìn)行編碼的設(shè)備100的框圖。
參照圖1,用于對圖像進(jìn)行編碼的設(shè)備100包括最大編碼單元劃分器110、編碼深度確定器120、圖像數(shù)據(jù)編碼器130和編碼信息編碼器140。
最大編碼單元劃分器110可基于最大編碼單元(即,最大尺寸的編碼單元)劃分當(dāng)前幀或當(dāng)前像條。也就是說,最大編碼單元劃分器110可將當(dāng)前幀或當(dāng)前像條劃分為至少一個(gè)最大編碼單元。
根據(jù)示例性實(shí)施例,可使用最大編碼單元和深度表示編碼單元。如上所述,最大編碼單元表示當(dāng)前幀的編碼單元中具有最大尺寸的編碼單元,所述深度表示分層減少編碼單元的程度。隨著深度的增加,編碼單元可從最大編碼單元減少為最小編碼單元,其中,最大編碼單元的深度被定義為最小深度并且最小編碼單元的深度被定義為最大深度。由于編碼單元的尺寸隨著深度的增加從最大編碼單元減少,第k深度的子編碼單元可包括多個(gè)第(k+n)深度的子編碼單元(k和n是等于或大于1的整數(shù))。
根據(jù)將被編碼的幀的尺寸的增加量,按照更大的編碼單元對圖像進(jìn)行編碼可引起更高的圖像壓縮率。然而,如果固定更大的編碼單元,則可能沒有通過反映連續(xù)變化的圖像特征有效地對圖像進(jìn)行編碼。
例如,當(dāng)對平滑區(qū)域(諸如,?;蛱炜?進(jìn)行編碼時(shí),編碼單元越大,可增加的壓縮率越多。然而,當(dāng)對復(fù)雜區(qū)域(諸如,人或建筑物)進(jìn)行編碼時(shí),編碼單元越小,可增加的壓縮率越多。
因此,根據(jù)示例性實(shí)施例,可針對每個(gè)幀或每個(gè)像條設(shè)置不同的最大編碼單元和不同的最大深度。由于最大深度表示編碼單元可減少的最大次數(shù),可根據(jù)最大深度可變地設(shè)置包括在最大編碼單元中的每個(gè)最小編碼單元的尺寸。
編碼深度確定器120確定最大深度??苫诼适д?RD)代價(jià)的計(jì)算確定最大深度??舍槍γ總€(gè)幀或每個(gè)像條或針對每個(gè)最大編碼單元不同地確定最大深度。確定的最大深度被提供給編碼信息編碼器140,根據(jù)最大編碼單元的圖像數(shù)據(jù)被提供給圖像數(shù)據(jù)編碼器130。
最大深度可表示具有可被包括在最大編碼單元中的最小尺寸的編碼單元(即,最小編碼單元)。換句話說,如稍后將參照圖8a和圖8b進(jìn)行的描述,最大編碼單元可根據(jù)不同的深度被劃分為具有不同的尺寸的子編碼單元。另外,可基于具有不同的尺寸的處理單元對包括在最大編碼單元中的具有不同尺寸的子編碼單元進(jìn)行預(yù)測或變換。執(zhí)行所述變換以將空間域像素值變換為頻域的系數(shù),并且所述變換可以是離散余弦變換或Karhunen Loever變換(KLT)。換句話說,用于對圖像進(jìn)行編碼的設(shè)備100可基于具有多種尺寸和多種形狀的處理單元執(zhí)行關(guān)于圖像編碼的多個(gè)處理操作。為了對圖像數(shù)據(jù)進(jìn)行編碼,執(zhí)行處理操作(諸如,預(yù)測、變換和熵編碼中的至少一個(gè)),其中,具有相同的尺寸或不同的尺寸的處理單元可被用于每個(gè)操作。
例如,用于對圖像進(jìn)行編碼的設(shè)備100可選擇與編碼單元不同的處理單元以預(yù)測所述編碼單元。
當(dāng)編碼單元的尺寸是2N×2N(其中,N是正整數(shù))時(shí),用于預(yù)測的處理單元可以是2N×2N、2N×N、N×2N和N×N。換句話說,可基于這樣的形狀的處理單元執(zhí)行運(yùn)動預(yù)測,其中,在所述形狀中編碼單元的高度和寬度中的至少一個(gè)被均等地劃分為兩個(gè)。以下,作為預(yù)測的基礎(chǔ)的處理單元被定義為“預(yù)測單元”。
預(yù)測模式可以是幀內(nèi)模式、幀間模式、跳過模式中的至少一個(gè),可僅針對具有特定尺寸或特定形狀的預(yù)測單元執(zhí)行特定預(yù)測模式。例如,可僅針對形狀是正方形的具有尺寸為2N×2N和N×N的預(yù)測單元執(zhí)行幀內(nèi)模式。另外,可僅針對具有尺寸為2N×2N的預(yù)測單元執(zhí)行跳過模式。如果在編碼單元中存在多個(gè)預(yù)測單元,則可在針對每個(gè)預(yù)測單元執(zhí)行預(yù)測之后,選擇具有最少的編碼錯(cuò)誤的預(yù)測模式。
可選地,用于對圖像進(jìn)行編碼的設(shè)備100可基于具有與編碼單元不同的尺寸的處理單元對圖像數(shù)據(jù)執(zhí)行變換。針對編碼單元中的變換,可基于具有與編碼單元尺寸相同的尺寸或小于編碼單元的尺寸的尺寸的處理單元執(zhí)行所述變換。以下,作為變換的基礎(chǔ)的處理單元被定義為“變換單元”。
編碼深度確定器120可使用基于拉格朗日乘子的RD優(yōu)化來確定包括在最大編碼單元中的子編碼單元。換句話說,編碼深度確定器120可確定從最大編碼單元劃分的多個(gè)子編碼單元具有的形狀,其中,多個(gè)子編碼單元根據(jù)它們的深度具有不同的尺寸。圖像數(shù)據(jù)編碼器130通過基于由編碼深度確定器120確定的劃分形狀對最大編碼單元進(jìn)行編碼來輸出比特流。
編碼信息編碼器140對關(guān)于由編碼深度確定器120確定的最大編碼單元的編碼模式的信息進(jìn)行編碼。換句話說,編碼信息編碼器140通過對以下信息進(jìn)行編碼來輸出比特流:關(guān)于最大編碼單元的劃分形狀的信息、關(guān)于最大深度的信息和關(guān)于針對每個(gè)深度的子編碼單元的編碼模式的信息。關(guān)于子編碼單元的編碼模式的信息可包括:關(guān)于子編碼單元的預(yù)測單元的信息、關(guān)于針對每個(gè)預(yù)測單元的預(yù)測模式的信息和關(guān)于子編碼單元的變換單元的信息。
關(guān)于最大編碼單元的劃分形狀的信息可以是表示每個(gè)編碼單元是否被劃分的信息。例如,當(dāng)對最大編碼單元進(jìn)行劃分和編碼時(shí),對表示最大編碼單元是否被劃分的信息進(jìn)行編碼。另外,當(dāng)對從最大編碼單元劃分出的子編碼單元進(jìn)行劃分和編碼時(shí),對表示子編碼單元是否被劃分的信息進(jìn)行編碼。表示子編碼單元是否被劃分的信息可以是標(biāo)志信息。
由于針對每個(gè)最大編碼單元存在具有不同的尺寸的子編碼單元,并且必須針對每個(gè)子編碼單元確定關(guān)于編碼模式的信息,所以可針對一個(gè)最大編碼單元確定關(guān)于至少一個(gè)編碼模式的信息。
用于對圖像進(jìn)行編碼的設(shè)備100可根據(jù)深度的增加通過均等地將最大編碼單元的高度和寬度兩者劃分為兩個(gè)來產(chǎn)生子編碼單元。也就是說,當(dāng)?shù)趉深度的編碼單元的尺寸是2N×2N時(shí),第(k+1)深度的編碼單元的尺寸是N×N。
因此,用于對圖像進(jìn)行編碼的設(shè)備100可考慮圖像特征基于最大編碼單元的尺寸和最大深度確定針對每個(gè)最大編碼單元的最佳劃分形狀。通過考慮圖像特征可變地調(diào)整最大編碼單元的尺寸并通過將最大編碼單元劃分為不同深度的子編碼單元對圖像進(jìn)行編碼,可對具有各種分辨率的圖像進(jìn)行更有效的編碼。
圖2是根據(jù)示例性實(shí)施例的用于對圖像進(jìn)行解碼的設(shè)備200的框圖。
參照圖2,用于對圖像進(jìn)行解碼的設(shè)備200包括:圖像數(shù)據(jù)采集單元210、編碼信息提取器220和圖像數(shù)據(jù)解碼器230。
圖像數(shù)據(jù)采集單元210通過對由用于對圖像進(jìn)行解碼的設(shè)備200接收的比特流進(jìn)行解析來根據(jù)最大編碼單元獲得圖像數(shù)據(jù),并將所述圖像數(shù)據(jù)輸出到圖像數(shù)據(jù)解碼器230。圖像數(shù)據(jù)采集單元210可從當(dāng)前幀或當(dāng)前像條的頭提取關(guān)于當(dāng)前幀或當(dāng)前像條的最大編碼單元的信息。換句話說,圖像數(shù)據(jù)采集單元210按照最大編碼單元對比特流進(jìn)行劃分,從而圖像數(shù)據(jù)解碼器230可根據(jù)最大編碼單元對圖像數(shù)據(jù)進(jìn)行解碼。
編碼信息提取器220通過對由用于對圖像進(jìn)行解碼的設(shè)備200接收的比特流進(jìn)行解析來從當(dāng)前幀的頭提取以下信息:關(guān)于最大編碼單元的信息、關(guān)于最大深度的信息、關(guān)于最大編碼單元的劃分形狀的信息、關(guān)于子編碼單元的編碼模式的信息。關(guān)于劃分形狀的信息和關(guān)于編碼模式的信息被提供給圖像數(shù)據(jù)解碼器230。
關(guān)于最大編碼單元的劃分形狀的信息可包括在最大編碼單元中包括的關(guān)于根據(jù)深度具有不同尺寸的子編碼單元的信息,并且可以是表示每個(gè)編碼單元是否被劃分的信息(例如,標(biāo)志信息)。關(guān)于編碼模式的信息可包括:關(guān)于根據(jù)子編碼單元的預(yù)測單元的信息、關(guān)于預(yù)測模式的信息和關(guān)于變換單元的信息。
圖像數(shù)據(jù)解碼器230通過基于由編碼信息提取器220提取的信息對每個(gè)最大編碼單元的圖像數(shù)據(jù)進(jìn)行解碼來恢復(fù)當(dāng)前幀。
圖像數(shù)據(jù)解碼器230可基于關(guān)于最大編碼單元的劃分形狀的信息對包括在最大編碼單元中的子編碼單元進(jìn)行解碼。解碼處理可包括:包括幀內(nèi)預(yù)測和運(yùn)動補(bǔ)償?shù)膸g預(yù)測處理和逆變換處理。
圖像數(shù)據(jù)解碼器230可基于關(guān)于根據(jù)子編碼單元的預(yù)測單元的信息和關(guān)于預(yù)測模式的信息執(zhí)行幀內(nèi)預(yù)測或幀間預(yù)測以預(yù)測子編碼單元。圖像數(shù)據(jù)解碼器230可還基于關(guān)于子編碼單元的變換單元的信息針對每個(gè)子編碼單元執(zhí)行逆變換。
圖3示出根據(jù)示例性實(shí)施例的分層編碼單元。
參照圖3,分層編碼單元可包括寬度×高度是64×64、32×32、16×16、8×8和4×4的編碼單元。除具有完全正方的形狀的這些編碼單元以外,可還存在寬度×高度是64×32、32×64、32×16、16×32、16×8、8×16、8×4和4×8的編碼單元。
在圖3中,針對分辨率為1920×1080的圖像數(shù)據(jù)310,最大編碼單元的尺寸被設(shè)置為64×64,最大深度被設(shè)置為2。
針對分辨率為1920×1080的圖像數(shù)據(jù)320,最大編碼單元的尺寸被設(shè)置為64×64,最大深度被設(shè)置為3。針對分辨率為352×288的圖像數(shù)據(jù)330,最大編碼單元的尺寸被設(shè)置為16×16,最大深度被設(shè)置為2。
當(dāng)分辨率高或者數(shù)據(jù)量大時(shí),編碼單元的最大尺寸可以相對大以增加壓縮率并精確地反映圖像特征。因此,針對具有比圖像數(shù)據(jù)330更高的分辨率的圖像數(shù)據(jù)310和圖像數(shù)據(jù)320,64×64可被選擇為最大編碼單元的尺寸。
最大深度表示分層編碼單元中的層的總數(shù)。由于圖像數(shù)據(jù)310的最大深度是2,所以圖像數(shù)據(jù)310的編碼單元315根據(jù)深度的增加可包括長軸尺寸為64的最大編碼單元和長軸尺寸為32和16的子編碼單元。
另一方面,由于圖像數(shù)據(jù)330的最大深度是2,圖像數(shù)據(jù)330的編碼單元335根據(jù)深度的增加可包括長軸尺寸為16的最大編碼單元和長軸尺寸為8和4的編碼單元。
然而,由于圖像數(shù)據(jù)320的最大深度是4,圖像數(shù)據(jù)320的編碼單元325根據(jù)深度的增加可包括長軸尺寸為64的最大編碼單元和長軸尺寸為32、16、8和4的子編碼單元。由于隨著深度增加基于更小的子編碼單元對圖像進(jìn)行編碼,示例性實(shí)施例適于對包括多個(gè)分鐘場景的圖像進(jìn)行編碼。
圖4是根據(jù)示例性實(shí)施例的基于編碼單元的圖像編碼器400的框圖。
幀內(nèi)預(yù)測單元410在當(dāng)前幀405中對幀內(nèi)模式的預(yù)測單元執(zhí)行幀內(nèi)預(yù)測,并且運(yùn)動估計(jì)器420和運(yùn)動補(bǔ)償器425使用當(dāng)前幀405和參考幀495對幀間模式的預(yù)測單元執(zhí)行運(yùn)動補(bǔ)償和幀間預(yù)測。
基于從幀內(nèi)預(yù)測單元410、運(yùn)動估計(jì)器420和運(yùn)動補(bǔ)償器425輸出的預(yù)測單元產(chǎn)生殘差值,并且產(chǎn)生的殘差值通過經(jīng)過變換器430和量化器440被輸出為量化的變換系數(shù)。
量化的變換系數(shù)通過經(jīng)過反量化器460和逆變換器470被恢復(fù)為殘差值,通過經(jīng)過去塊單元480和環(huán)路濾波單元490對恢復(fù)的殘差值進(jìn)行后處理,并且恢復(fù)的殘差值被輸出為參考幀495。量化的變換系數(shù)通過經(jīng)過熵編碼編碼器450可被輸出為比特流455。
為了基于根據(jù)示例性實(shí)施例的編碼方法執(zhí)行編碼,圖像編碼器400的組件基于最大編碼單元、根據(jù)深度的子編碼單元、預(yù)測單元和變換單元執(zhí)行圖像編碼處理,其中,所述圖像編碼器400的組件包括:幀內(nèi)預(yù)測單元410、運(yùn)動估計(jì)器420、運(yùn)動補(bǔ)償器425、變換器430、量化器440、熵編碼器450、反量化器460、逆變換器470、去塊單元480和環(huán)路濾波單元490。
圖5是根據(jù)示例性實(shí)施例的基于編碼單元的圖像解碼器500的框圖。
參照圖5,比特流505經(jīng)過解析器510從而對將被解碼的編碼的圖像數(shù)據(jù)和被用于解碼的編碼信息進(jìn)行解析。編碼的圖像數(shù)據(jù)通過經(jīng)過熵解碼器520和反量化器530被輸出為反量化的數(shù)據(jù),并通過經(jīng)過逆變換器540被恢復(fù)為殘差值。通過將殘差值添加到幀內(nèi)預(yù)測單元550的幀內(nèi)預(yù)測結(jié)果或運(yùn)動補(bǔ)償單元560的運(yùn)動補(bǔ)償結(jié)果根據(jù)編碼單元來恢復(fù)殘差值?;謴?fù)的編碼單元通過經(jīng)過去塊單元570和環(huán)路濾波單元580被用于下一個(gè)編碼單元或下一個(gè)幀的預(yù)測。
為了基于根據(jù)示例性實(shí)施例的解碼方法執(zhí)行解碼,圖像解碼器500的組件基于最大編碼單元、根據(jù)深度的子編碼單元、預(yù)測單元和變換單元執(zhí)行圖像解碼處理,其中,所述圖像解碼器500的組件包括:解析器510、熵解碼器520、反量化器530、逆變換器540、幀內(nèi)預(yù)測單元550、運(yùn)動補(bǔ)償器560、去塊單元570和環(huán)路濾波單元580。
具體來講,幀內(nèi)預(yù)測單元550和運(yùn)動補(bǔ)償器560通過考慮最大編碼單元和深度來確定子編碼單元中的預(yù)測單元和預(yù)測模式,逆變換器540通過考慮變換單元的尺寸執(zhí)行逆變換。
圖6示出根據(jù)示例性實(shí)施例的最大編碼單元、子編碼單元和預(yù)測單元。
圖1中示出的用于對圖像進(jìn)行編碼的設(shè)備100和圖2中示出的用于對圖像進(jìn)行解碼的設(shè)備200使用分層編碼單元以考慮圖像特征執(zhí)行編碼和解碼??筛鶕?jù)圖像特征適應(yīng)性地設(shè)置最大編碼單元和最大深度,或者可根據(jù)用戶的需要可變地設(shè)置最大編碼單元和最大深度。
在圖6中,分層編碼單元結(jié)構(gòu)600具有最大編碼單元610,其中,所述最大編碼單元610的高度和寬度是64且最大深度是4。深度沿著分層編碼單元結(jié)構(gòu)600的縱軸增加,并且隨著深度增加,子編碼單元620到650的高度和寬度減少。沿著分層編碼結(jié)構(gòu)600的橫軸示出最大編碼單元610和子編碼單元620到子編碼單元650的預(yù)測單元。
最大編碼單元610的深度為0且編碼單元的尺寸(即,高度和寬度)為64×64。沿著縱軸深度增加,存在尺寸為32×32且深度為1的子編碼單元620、尺寸為16×16且深度為2的子編碼單元630、尺寸為8×8且深度為3的子編碼單元640和尺寸為4×4且深度為4的子編碼單元650。尺寸為4×4且深度為4的子編碼單元650是最小編碼單元。
參照圖6,沿著橫軸根據(jù)每個(gè)深度示出預(yù)測單元的示例。也就是說,深度為0的最大編碼單元610的預(yù)測單元可以是尺寸與編碼單元610相同的(即,64×64)預(yù)測單元、或尺寸小于尺寸為64×64的編碼單元610的以下預(yù)測單元:尺寸為64×32的預(yù)測單元612、尺寸為32×64的預(yù)測單元614、或尺寸為32×32的預(yù)測單元616。
深度為1且尺寸為32×32的編碼單元620的預(yù)測單元可以是尺寸與編碼單元620相同的(即,32×32)預(yù)測單元、或尺寸小于尺寸為32×32的編碼單元620的以下預(yù)測單元:尺寸為32×16的預(yù)測單元622、尺寸為16×32的預(yù)測單元624、或尺寸為16×16的預(yù)測單元626。
深度為2且尺寸為16×16的編碼單元630的預(yù)測單元可以是尺寸與編碼單元630相同的(即,16×16)預(yù)測單元、或尺寸小于尺寸為16×16的編碼單元630的以下預(yù)測單元:尺寸為16×8的預(yù)測單元632、尺寸為8×16的預(yù)測單元634、或尺寸為8×8的預(yù)測單元636。
深度為3且尺寸為8×8的編碼單元640的預(yù)測單元可以是尺寸與編碼單元640相同的(即,8×8)預(yù)測單元、或尺寸小于尺寸為8×8的編碼單元640的以下預(yù)測單元:尺寸為8×4的預(yù)測單元642、尺寸為4×8的預(yù)測單元644、或尺寸為4×4的預(yù)測單元646。
最后,深度為4且尺寸為4×4的編碼單元650是最大深度的編碼單元,并且編碼單元650的預(yù)測單元可以是尺寸為4×4的預(yù)測單元650。然而,最大深度的編碼單元可不總是與預(yù)測單元的尺寸相同。與編碼單元610到編碼單元650相似地,最大深度的編碼單元可被劃分為具有小于所述編碼單元的尺寸的預(yù)測單元并可執(zhí)行預(yù)測。
圖7示出根據(jù)示例性實(shí)施例的編碼單元和變換單元。
圖1中示出的用于對圖像進(jìn)行編碼的設(shè)備100和圖2中示出的用于對圖像進(jìn)行解碼的設(shè)備200使用最大編碼單元本身或從最大編碼單元劃分出的等于或小于最大編碼單元的子編碼單元來執(zhí)行編碼和解碼。在編碼和解碼過程中,不論編碼單元和預(yù)測單元如何,為了最高的壓縮率選擇用于變換的變換單元的尺寸。例如,參照圖7,當(dāng)當(dāng)前編碼單元710的尺寸為64×64時(shí),可使用尺寸為32×32的變換單元720執(zhí)行變換。
圖8a到圖8d示出根據(jù)示例性實(shí)施例的編碼單元810、預(yù)測單元860和變換單元870的劃分形狀。
圖8a到圖8b示出根據(jù)示例性實(shí)施例的編碼單元810和預(yù)測單元860。
圖8a示出由圖1中示出的用于對圖像進(jìn)行編碼的設(shè)備100選擇的劃分形狀,以對最大編碼單元810進(jìn)行編碼。用于對圖像進(jìn)行編碼的設(shè)備100將最大編碼單元810劃分為多種形狀,執(zhí)行編碼,通過基于RD代價(jià)對多種劃分形狀的編碼結(jié)果進(jìn)行相互比較來選擇最佳劃分形狀。當(dāng)照其原樣對最大編碼單元810進(jìn)行編碼是最佳時(shí),可對最大編碼單元810進(jìn)行編碼而不需如圖8a到圖8d所示劃分最大編碼單元810。
參照圖8b,通過將深度是0的最大編碼單元810劃分為深度為等于或大于1的子編碼單元對最大編碼單元810進(jìn)行編碼。也就是說,將最大編碼單元810劃分為深度為1的4個(gè)子編碼單元,并且將深度為1的所有或一些子編碼單元劃分為深度為2的子編碼單元。
將深度為1的子編碼單元中的位于右上側(cè)的子編碼單元和位于左下側(cè)的子編碼單元劃分為深度為等于或大于2的子編碼單元。可將深度為等于或大于2的一些子編碼單元劃分為深度為等于或大于3的子編碼單元。
圖8b示出最大編碼單元810的預(yù)測單元860的劃分形狀。
參照圖8b,可從最大編碼單元810不同地劃分最大編碼單元810的預(yù)測單元860。換句話說,每個(gè)子編碼單元的預(yù)測單元可小于相應(yīng)的子編碼單元。
例如,深度為1的子編碼單元中位于右下側(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ū)挾鹊姆较驅(qū)⑾鄳?yīng)的子編碼單元均等地劃分為兩個(gè)的形狀,或者可具有以高度和寬度的方向?qū)⑾鄳?yīng)的子編碼單元均等地劃分為四個(gè)的形狀。
圖8c和圖8d示出根據(jù)示例性實(shí)施例的預(yù)測單元860和變換單元870。
圖8c示出圖8b中示出的最大編碼單元810的預(yù)測單元860的劃分形狀,圖8d示出最大編碼單元810的變換單元870的劃分形狀。
參照圖8d,可從預(yù)測單元860不同地設(shè)置變換單元870的劃分形狀。
例如,即使選擇具有這樣的形狀的深度為1的編碼單元854的預(yù)測單元,也可選擇具有與編碼單元854相同的尺寸的變換單元,其中,所述形狀是指將編碼單元854的高度均等地劃分為兩個(gè)的形狀。同樣地,即使選擇具有這樣的形狀的深度為2的編碼單元814和編碼單元850的預(yù)測單元,也可選擇具有與編碼單元814和編碼單元850中的每個(gè)編碼單元的原始尺寸相同的尺寸的變換單元,其中,所述形狀是指將編碼單元814和編碼單元850中的每個(gè)編碼單元的高度均等地劃分為兩個(gè)的形狀。
可選擇具有小于預(yù)測單元的尺寸的變換單元。例如,當(dāng)選擇具有這樣的形狀的深度為2的編碼單元852的預(yù)測單元時(shí),其中,所述形狀是指將編碼單元852的寬度均等地劃分為兩個(gè)的形狀,可選擇具有以高度和寬度方向?qū)⒕幋a單元852均等地劃分為四個(gè)的形狀的變換單元,其中,所述變換單元具有小于預(yù)測單元的形狀的尺寸。
圖9是根據(jù)示例性實(shí)施例的用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備900的框圖。
在圖9中詳細(xì)示出可被包括在圖1中示出的用于對圖像進(jìn)行編碼的設(shè)備100或圖4中示出的圖像編碼器400中的用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備900。參照圖9,用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備900包括:運(yùn)動矢量估計(jì)器910、候選確定器920和運(yùn)動矢量編碼器930。
為了使用幀間預(yù)測(即,時(shí)間上的預(yù)測)對已編碼的塊進(jìn)行解碼,需要關(guān)于運(yùn)動矢量的信息,所述關(guān)于運(yùn)動矢量的信息表示參考圖像中的相似塊和當(dāng)前塊之間的相對位置差。因此,當(dāng)對圖像進(jìn)行編碼時(shí),對關(guān)于運(yùn)動矢量的信息進(jìn)行編碼并將其插入到比特流。當(dāng)直接對關(guān)于運(yùn)動矢量的信息進(jìn)行編碼和插入時(shí),增加了用于對關(guān)于運(yùn)動矢量的信息進(jìn)行編碼的開銷,因此圖像數(shù)據(jù)的壓縮率降低了。
因此,在圖像編碼中,預(yù)測當(dāng)前塊的運(yùn)動矢量,僅對作為預(yù)測的結(jié)果產(chǎn)生的運(yùn)動矢量預(yù)測和原始運(yùn)動矢量之間的原始運(yùn)動矢量差進(jìn)行編碼和插入,從而壓縮了關(guān)于運(yùn)動矢量的信息。
在運(yùn)動矢量的預(yù)測編碼中,可存在顯式模式和隱式模式。
在編解碼器(諸如,MPEG-4H.264/MPEG-4先進(jìn)視頻編碼(AVC))中,與當(dāng)前塊相鄰的先前編碼的塊的運(yùn)動矢量可被用于預(yù)測當(dāng)前塊的運(yùn)動矢量。與當(dāng)前塊的左側(cè)、上側(cè)和右上側(cè)相鄰的先前編碼的塊的運(yùn)動矢量的中值被用作當(dāng)前塊的運(yùn)動矢量預(yù)測。由于通過使用相同的方法來預(yù)測使用幀間預(yù)測編碼的所有的塊的運(yùn)動矢量,可不單獨(dú)地對關(guān)于當(dāng)前塊的運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。然而,根據(jù)一個(gè)或多個(gè)示例性實(shí)施例的用于對圖像進(jìn)行編碼的設(shè)備100或圖像編碼器400使用隱式模式和顯式模式兩者,以準(zhǔn)確地預(yù)測運(yùn)動矢量,其中,在所述隱式模式中未單獨(dú)地對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼,其中,在所述顯式模式中未對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。在顯式模式中,對關(guān)于從多個(gè)運(yùn)動矢量預(yù)測候選中的被用作當(dāng)前塊的運(yùn)動矢量預(yù)測的運(yùn)動矢量預(yù)測的信息進(jìn)行編碼,并作為序列參數(shù)、像條參數(shù)或塊參數(shù)將其輸入到比特流。
圖9示出在根據(jù)顯式模式對運(yùn)動矢量進(jìn)行編碼時(shí)執(zhí)行預(yù)測編碼的設(shè)備。
運(yùn)動矢量估計(jì)器910估計(jì)當(dāng)前塊的運(yùn)動矢量。在至少一個(gè)參考圖像中搜索與當(dāng)前塊相似或相同的塊,并作為搜索的結(jié)果估計(jì)運(yùn)動矢量,其中,運(yùn)動矢量是當(dāng)前塊和搜索的參考圖像之間的相對位置差。基于絕對誤差和(SAD)搜索與當(dāng)前塊相似或相同的塊,并作為搜索的結(jié)果,可估計(jì)當(dāng)前塊的運(yùn)動矢量。
另外,運(yùn)動矢量估計(jì)器910基于包括在與當(dāng)前塊相鄰的先前編碼的區(qū)域中的塊的運(yùn)動矢量來預(yù)測當(dāng)前塊的運(yùn)動矢量。換句話說,將包括在與當(dāng)前塊相鄰的先前編碼的區(qū)域中的塊的運(yùn)動矢量設(shè)置為運(yùn)動矢量預(yù)測候選,并確定運(yùn)動矢量預(yù)測候選中與當(dāng)前塊的估計(jì)的運(yùn)動矢量最相似的運(yùn)動矢量預(yù)測候選。
在編解碼器(諸如,MPEG-4H.264/MPEG-4先進(jìn)視頻編碼(AVC))中,與當(dāng)前塊的左側(cè)、上側(cè)和右上側(cè)相鄰的先前編碼的塊的運(yùn)動矢量的中值被用作當(dāng)前塊的運(yùn)動矢量預(yù)測。由于通過使用先前編碼的塊的運(yùn)動矢量來預(yù)測已編碼的塊的運(yùn)動矢量并且僅使用一個(gè)運(yùn)動矢量預(yù)測,可不單獨(dú)地對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。換句話說,使用幀間預(yù)測編碼的塊的運(yùn)動矢量預(yù)測的數(shù)量是一個(gè)。
然而,當(dāng)準(zhǔn)確地預(yù)測當(dāng)前塊的運(yùn)動矢量時(shí),可以以高壓縮率對運(yùn)動矢量進(jìn)行編碼。在這里,根據(jù)示例性實(shí)施例,選擇多個(gè)運(yùn)動矢量預(yù)測候選之一并將其用作當(dāng)前塊的運(yùn)動矢量預(yù)測,從而可以以高壓縮率對當(dāng)前塊的運(yùn)動矢量進(jìn)行編碼。以下,將詳細(xì)描述通過使用多個(gè)運(yùn)動矢量預(yù)測候選對當(dāng)前塊的運(yùn)動矢量進(jìn)行編碼的方法。
圖10a和圖10b示出根據(jù)示例性實(shí)施例的運(yùn)動矢量預(yù)測候選。
參照圖10a,在預(yù)測運(yùn)動矢量的方法中,與當(dāng)前塊相鄰的先前編碼的塊的運(yùn)動矢量之一可被用作當(dāng)前塊的運(yùn)動矢量預(yù)測。
與當(dāng)前塊的上側(cè)相鄰的塊中,以下塊的所有運(yùn)動矢量可被用作當(dāng)前塊的運(yùn)動矢量預(yù)測候選:在最左側(cè)的塊a0、在與左側(cè)相鄰的最上側(cè)的塊b0、與右上側(cè)相鄰的塊c、與左上側(cè)相鄰的塊d和與左下側(cè)相鄰的塊e。
在根據(jù)一個(gè)或多個(gè)示例性實(shí)施例的對圖像進(jìn)行編碼和解碼的方法中,基于具有由深度分類的多個(gè)尺寸的編碼單元執(zhí)行圖像編碼和圖像解碼,并因此與左下側(cè)相鄰的塊的運(yùn)動矢量可被用作運(yùn)動矢量預(yù)測的候選。
參照圖10b,與當(dāng)前塊相鄰的所有塊的運(yùn)動矢量可被用作運(yùn)動矢量預(yù)測候選。換句話說,不僅與上側(cè)相鄰的塊中的最左側(cè)的塊a0的運(yùn)動矢量可被用作運(yùn)動矢量預(yù)測候選,與上側(cè)相鄰的a0到aN的所有塊的運(yùn)動矢量也可被用作運(yùn)動矢量預(yù)測候選。另外,不僅與左側(cè)相鄰的塊中的最上側(cè)的塊b0的運(yùn)動矢量可被用作運(yùn)動矢量預(yù)測候選,與左側(cè)相鄰的b0到bN的所有塊的運(yùn)動矢量也可被用作運(yùn)動矢量預(yù)測候選。
另外,相鄰塊的運(yùn)動矢量的中值可被用作運(yùn)動矢量預(yù)測候選。換句話說,中值mv_a0、mv_b0或mv_c可被用作當(dāng)前塊的運(yùn)動矢量預(yù)測的候選。在此,mv_a0是塊a0的運(yùn)動矢量,mv_b0是塊b0的運(yùn)動矢量,mv_c是塊c的運(yùn)動矢量。
然而,如將參照圖10c到圖10e進(jìn)行的詳細(xì)描述,可根據(jù)當(dāng)前快的尺寸和相鄰塊的尺寸限制當(dāng)前塊的運(yùn)動矢量預(yù)測候選。
圖10c到圖10e示出根據(jù)示例性實(shí)施例的具有多種尺寸的與當(dāng)前塊相鄰的塊。
如上所述,在根據(jù)一個(gè)或多個(gè)示例性實(shí)施例的對圖像進(jìn)行編碼和解碼的方法中,具有根據(jù)深度確定的多種尺寸的編碼單元和預(yù)測單元可被用于對圖像進(jìn)行編碼。因此,由于與當(dāng)前塊相鄰的塊可以是多種尺寸,當(dāng)當(dāng)前塊的尺寸和一些相鄰塊的尺寸彼此顯著地不同時(shí),可不將所述一些相鄰塊的運(yùn)動矢量用作運(yùn)動矢量預(yù)測候選。
參照圖10c,與當(dāng)前快1010的上側(cè)相鄰的塊1014到塊1018小于當(dāng)前塊1010。由于與當(dāng)前塊1010相鄰并具有與當(dāng)前塊1010相同的尺寸的塊1012的運(yùn)動矢量可以與當(dāng)前塊1010的運(yùn)動矢量相同或相似,運(yùn)動矢量估計(jì)器910可僅將塊1012的運(yùn)動矢量用作運(yùn)動矢量預(yù)測的候選。
雖然尺寸不相同,可僅將具有預(yù)定的尺寸或大于所述預(yù)定的尺寸的相鄰塊的運(yùn)動矢量用作運(yùn)動矢量預(yù)測候選。例如,可僅將塊1012和塊1018的運(yùn)動矢量用作運(yùn)動矢量預(yù)測候選,其中,塊1012和塊1018的尺寸為當(dāng)前塊1010的1/4或大于當(dāng)前塊1010的1/4。
參照圖10d,與當(dāng)前塊1020的左側(cè)相鄰的塊1022的尺寸比當(dāng)前塊1020的尺寸大16倍,從而存在尺寸方面的巨大差異。由于所述巨大差異,與左側(cè)相鄰的塊1022的運(yùn)動矢量可能不相同或不相似于當(dāng)前塊1020的運(yùn)動矢量。因此,與左側(cè)相鄰的塊1022的運(yùn)動矢量未被用作當(dāng)前塊1020的運(yùn)動矢量預(yù)測候選,并且可僅將與上側(cè)相鄰的塊1024的運(yùn)動矢量和與左上側(cè)相鄰的塊1026的運(yùn)動矢量用作運(yùn)動矢量預(yù)測候選。
參照圖10e,當(dāng)前塊1030的尺寸大于所有相鄰的塊1031到塊1037的尺寸。在此,當(dāng)所有相鄰的塊1031到塊1037的運(yùn)動矢量被用作當(dāng)前塊1030的運(yùn)動矢量預(yù)測候選時(shí),當(dāng)前塊1030的運(yùn)動矢量預(yù)測候選的數(shù)量可能會高。隨著當(dāng)前塊1030和相鄰的塊1031到塊1037之間的尺寸差異增加,運(yùn)動矢量預(yù)測候選的數(shù)量也增加。因此,運(yùn)動矢量估計(jì)器910可不將相鄰的塊中的一些塊的運(yùn)動矢量用作當(dāng)前塊1030的運(yùn)動矢量預(yù)測候選。
例如,在圖10e中,可不將與左下側(cè)相鄰的塊1031的運(yùn)動矢量和與右上側(cè)相鄰的塊1037用作當(dāng)前塊1030的運(yùn)動矢量預(yù)測候選。
更一般來說,當(dāng)當(dāng)前塊1030的尺寸大于預(yù)定的尺寸時(shí),可不將相鄰塊中的以特定方向相鄰的塊的運(yùn)動矢量用作當(dāng)前塊1030的運(yùn)動矢量預(yù)測候選。
圖11a到圖11c示出根據(jù)另一示例性實(shí)施例的運(yùn)動矢量預(yù)測候選。
圖11a示出確定雙向預(yù)測圖像(B圖像)的運(yùn)動矢量預(yù)測候選的方法。當(dāng)包括當(dāng)前塊的當(dāng)前圖像是執(zhí)行雙向預(yù)測的B圖像時(shí),基于時(shí)間上的距離產(chǎn)生的運(yùn)動矢量可以是運(yùn)動矢量預(yù)測候選。
可通過使用在時(shí)間上早于當(dāng)前圖像1110的圖像1112的塊1120的運(yùn)動矢量,確定當(dāng)前圖像1110的當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選mv_temporal,其中,塊1120被布置在與當(dāng)前塊1100并列的位置。例如,當(dāng)相對于時(shí)間上晚于當(dāng)前圖像1110的圖像1114的搜索的塊1122產(chǎn)生塊1120的運(yùn)動矢量mv_colA時(shí),其中,塊1120被布置在與當(dāng)前塊1100并列的位置,可通過以下方式確定當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選mv_L0A和mv_L1A:
mv_L1A=(t1/t2)*mv_colA
mv_L0A=mv_L1A-mv_colA
在此,mv_L0A表示相對于時(shí)間上早于當(dāng)前圖像1110的圖像1112的當(dāng)前塊1110的運(yùn)動矢量預(yù)測候選,mv_L1A表示相對于時(shí)間上晚于當(dāng)前圖像1110的圖像1114的當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選。
在圖11a中,作為B圖像的當(dāng)前圖像1110被插入在時(shí)間上早于當(dāng)前圖像1110的圖像1112和時(shí)間上晚于當(dāng)前圖像1110的圖像1114之間。這里,當(dāng)相對于時(shí)間上晚于當(dāng)前圖像1110的圖像1114產(chǎn)生塊1120的運(yùn)動矢量mv_colA時(shí),其中,塊1120被布置在與當(dāng)前塊1100并列的位置,可基于mv_L1A準(zhǔn)確地預(yù)測當(dāng)前塊1100的運(yùn)動矢量。換句話說,與mv_colA是具有與圖11a中示出的方向相反的方向的運(yùn)動矢量的情況(即,相對于在時(shí)間上早于當(dāng)前圖像1110的圖像1112之前的另一圖像產(chǎn)生mv_colA的情況)比較,當(dāng)mv_colA是具有圖11a中示出的方向的運(yùn)動矢量時(shí),可更準(zhǔn)確地預(yù)測當(dāng)前塊1100的運(yùn)動矢量。
因此,當(dāng)從當(dāng)前塊1110到被布置在與當(dāng)前塊1100并列的位置的塊1120的方向是List0時(shí),運(yùn)動矢量mv_colA需要在List1方向上,因此當(dāng)前圖像1110可如圖11a所示被插入在圖像1112和圖像1114之間,從而可基于mv_colA準(zhǔn)確地預(yù)測當(dāng)前塊1100的運(yùn)動矢量。
此外,根據(jù)時(shí)間順序示出了圖11a中示出的圖像1110到圖像1114,因此可基于圖像序列號(POC)產(chǎn)生當(dāng)前塊的運(yùn)動矢量預(yù)測候選mv_temporal。由當(dāng)前塊參考的圖像可以是在圖11a中示出的除相鄰圖像1112和1114以外的圖像,因此基于POC產(chǎn)生當(dāng)前塊的運(yùn)動矢量預(yù)測候選。
例如,當(dāng)當(dāng)前圖像的POC是CurrPOC并且由當(dāng)前圖像參考的圖像的POC是CurrRefPOC時(shí),可通過以下方式產(chǎn)生當(dāng)前塊的運(yùn)動矢量預(yù)測候選:
Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)
mv_temporal=Scale*mv_colA
在此,ColPOC是時(shí)間上早于當(dāng)前圖像1110的圖像1112的POC并包括塊1120,ColRefPOC是時(shí)間上晚于當(dāng)前圖像1110的圖像1114的POC并包括由塊1120參考的塊1122。
圖11b示出產(chǎn)生B圖像的運(yùn)動矢量預(yù)測候選的另一方法。圖11b中的方法與圖11a中的方法的區(qū)別在于:時(shí)間上晚于當(dāng)前圖像1110的圖像1114包括被布置在與當(dāng)前塊1100并列的位置的塊。
參照圖11b,可通過使用被布置在與圖像1114的當(dāng)前塊1100并列的位置的塊1130的運(yùn)動矢量產(chǎn)生當(dāng)前圖像1110的當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選,其中,圖像1114時(shí)間上晚于當(dāng)前圖像1110。例如,當(dāng)相對于圖像1112的搜索的塊1132產(chǎn)生被布置在與當(dāng)前塊1100并列的位置的塊1130的運(yùn)動矢量mv_colB時(shí),其中,圖像1112時(shí)間上早于當(dāng)前圖像1110,可通過以下方式確定當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選mv_L0B和mv_L1B:
mv_L0B=(t3/t4)*mv_colB
mv_L1B=mv_L0B-mv_colB
在此,mv_L0B表示相對于圖像1112的當(dāng)前塊1110的運(yùn)動矢量預(yù)測候選,其中,圖像1112時(shí)間上早于當(dāng)前圖像1110,mv_L1B表示相對于圖像1114的當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選,其中,圖像1114時(shí)間上晚于當(dāng)前圖像1110。
相似于圖11a,在圖11b中,作為B圖像的當(dāng)前圖像1110被插入在時(shí)間上早于當(dāng)前圖像1110的圖像1112和時(shí)間上晚于當(dāng)前圖像1110的圖像1114之間。因此,當(dāng)相對于時(shí)間上早于當(dāng)前圖像1110的圖像1112產(chǎn)生被布置在與當(dāng)前塊1100并列的位置的塊1130的運(yùn)動矢量mv_colB時(shí),可基于mv_L0B準(zhǔn)確地預(yù)測當(dāng)前塊1100的運(yùn)動矢量。換句話說,與mv_colB是具有與圖11b中示出的方向相反的方向的運(yùn)動矢量的情況(即,相對于在時(shí)間上晚于當(dāng)前圖像1110的圖像1114之后的另一圖像產(chǎn)生mv_colB的情況)比較,當(dāng)mv_colB是具有圖11b中示出的方向的運(yùn)動矢量時(shí),可更準(zhǔn)確地預(yù)測當(dāng)前塊1100的運(yùn)動矢量。
因此,當(dāng)從當(dāng)前塊1110到被布置在與當(dāng)前塊1100并列的位置的塊1130的方向是List1時(shí),塊1130的運(yùn)動矢量mv_colB需要在List0方向上,因此當(dāng)前圖像1110可如圖11b所示被插入在圖像1112和圖像1114之間,從而可基于mv_colB準(zhǔn)確地預(yù)測當(dāng)前塊1100的運(yùn)動矢量。
此外,由當(dāng)前塊參考的圖像可以是在圖11b中示出的除相鄰圖像1112和1114以外的圖像,因此基于POC產(chǎn)生當(dāng)前塊的運(yùn)動矢量預(yù)測候選。
例如,當(dāng)當(dāng)前圖像的POC是CurrPOC并且由當(dāng)前圖像參考的圖像的POC是CurrRefPOC時(shí),可通過以下方式產(chǎn)生當(dāng)前塊的運(yùn)動矢量預(yù)測候選:
Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)
mv_temporal=Scale*mv_colB
在此,ColPOC是時(shí)間上晚于當(dāng)前圖像1110的圖像1114的POC并包括塊1130,ColRefPOC是時(shí)間上早于當(dāng)前圖像1110的圖像1112的POC并包括由塊1130參考的塊1132。
圖11c示出預(yù)測圖像(P圖像)的運(yùn)動矢量預(yù)測候選。
參照圖11c,可通過使用被布置在與圖像1112的當(dāng)前塊1100并列的位置的塊1140的運(yùn)動矢量確定當(dāng)前圖像1110的當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選,其中,圖像1112時(shí)間上早于當(dāng)前圖像1110。例如,當(dāng)相對于圖像1116的搜索的塊1142產(chǎn)生被布置在與當(dāng)前塊1100并列的位置的塊1140的運(yùn)動矢量mv_colC時(shí),其中,圖像1116時(shí)間上早于當(dāng)前圖像1110,可通過以下方式確定當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選mv_L0C:
mv_L0C=(t6/t5)*mv_colC
如與圖11a和圖11b相關(guān)的描述,可基于POC確定mv_L0C??苫谝韵翽OC確定mv_L0C:當(dāng)前圖像1110的POC、由當(dāng)前圖像1110參考的圖像的POC、時(shí)間上早于當(dāng)前圖像1110的圖像1112的POC和時(shí)間上早于當(dāng)前圖像1110的圖像1116的POC。
由于當(dāng)前圖像1110是P圖像,與圖11a和圖11b不同,確定僅一個(gè)當(dāng)前塊1100的運(yùn)動矢量預(yù)測候選。
另外,為了使用基于在圖11a和圖11b中的時(shí)間上的距離產(chǎn)生的運(yùn)動矢量預(yù)測候選來預(yù)測當(dāng)前塊的運(yùn)動矢量,可還對這樣的信息進(jìn)行編碼,其中,所述信息表示被布置在與當(dāng)前塊1100并列的位置的塊1120和塊1130中被用于產(chǎn)生運(yùn)動矢量預(yù)測的塊。這樣的信息可作為像條參數(shù)或序列參數(shù)被包括在像條頭或序列頭中。
總的來說,根據(jù)圖10a、圖10b和圖11a到圖11c的運(yùn)動矢量預(yù)測候選的組C可由下式表示:
C={median(mv_a0,mv_b0,mv_c),mv_a0,mv_a1…,mv_aN,mv_b0,mv_b1,…,mv_bN,mv_c,mv_d,mv_e,mv_temporal}
此外,組C可以是運(yùn)動矢量預(yù)測候選的數(shù)量被減少的組:
C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}
在此,mv_x表示塊x的運(yùn)動矢量,median()表示中值,并且mv_temporal表示通過使用與圖11到圖11c相關(guān)描述的時(shí)間上的距離產(chǎn)生的運(yùn)動矢量預(yù)測候選。mv_a’表示mv_a0,mv_a1…,mv_aN中的第一個(gè)有效的運(yùn)動矢量。例如,當(dāng)使用幀內(nèi)預(yù)測對塊a0進(jìn)行編碼并參考當(dāng)前塊和其它圖像時(shí),塊a0的運(yùn)動矢量mv_a0不是有效的運(yùn)動矢量,因此mv_a’=mv_a1。此外,當(dāng)塊a1的運(yùn)動矢量不是不是有效的運(yùn)動矢量時(shí),mv_a’=mv_a2。相似地,mv_b’是mv_b0,mv_b1,…,mv_bN中的第一個(gè)有效的運(yùn)動矢量,mv_c’是mv_c,mc_d和mv_e中的第一個(gè)有效的運(yùn)動矢量。
與當(dāng)前塊相鄰的塊的運(yùn)動矢量中的參考當(dāng)前塊以外的圖像的塊的運(yùn)動矢量不能有效地預(yù)測當(dāng)前塊的運(yùn)動矢量。因此,可從運(yùn)動矢量預(yù)測候選的組C排除參考當(dāng)前塊以外的圖像的塊的運(yùn)動矢量。
當(dāng)用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備900根據(jù)顯式模式對運(yùn)動矢量進(jìn)行編碼時(shí),設(shè)備900還對這樣的信息進(jìn)行編碼,其中,所述信息表示組C中被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。換句話說,當(dāng)用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備900對運(yùn)動矢量進(jìn)行編碼時(shí),設(shè)備900將二進(jìn)制數(shù)分配給組C的相應(yīng)的元素(即,運(yùn)動矢量預(yù)測候選),并對與被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選相應(yīng)的二進(jìn)制數(shù)進(jìn)行編碼。
為了指定組C中的元素之一,分配并輸出每個(gè)與運(yùn)動矢量預(yù)測候選相應(yīng)的二進(jìn)制數(shù)。因此,隨著組C中的元素的數(shù)量減少,可以以具有更少的比特的二進(jìn)制數(shù)指定組C中的元素。
因此,如果在組C中存在重疊的運(yùn)動矢量預(yù)測候選,則可在從組C排除重疊的運(yùn)動矢量預(yù)測候選之后分配二進(jìn)制數(shù)。例如,當(dāng)組C是如上所述的C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}并且mv_a’,mv_b’和mv_c’彼此相同時(shí),可確定組C中存在兩個(gè)元素為C={mv_a’,mv_temporal}并可分配二進(jìn)制數(shù)。當(dāng)在排除重疊的運(yùn)動矢量預(yù)測候選之前可使用3比特來指定組C中的五個(gè)元素時(shí),在排除重疊的運(yùn)動矢量預(yù)測候選之后可使用1比特來指定兩個(gè)元素。
為了增加重疊的運(yùn)動矢量預(yù)測候選被確定為當(dāng)前塊的運(yùn)動矢量預(yù)測的概率,而不是排除重疊的運(yùn)動矢量預(yù)測候選,可添加預(yù)定的權(quán)重。如上所述,由于mv_a’,mv_b’和mv_c’彼此相同并且僅mv_a’被包括在組C中,預(yù)定的權(quán)重被添加到mv_a’,因此可增加mv_a’被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的概率。
此外,當(dāng)存在一個(gè)運(yùn)動矢量預(yù)測候選時(shí),可能不對被用于指定運(yùn)動矢量預(yù)測候選之一的二進(jìn)制數(shù)進(jìn)行編碼。例如,當(dāng)組C是C={median(mv_a0,mv_b0,mv_c),mv_a0,mv_a1…,mv_aN,mv_b0,mv_b1,…,mv_bN,mv_c,mv_d,mv_e,mv_temporal}并且對塊a0到塊aN、塊b0到塊bN、塊c、塊d和塊e均進(jìn)行幀內(nèi)預(yù)測時(shí),組C是C={mv_temporal},因此實(shí)質(zhì)上包括一個(gè)元素。因此,在這種情況下,用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備900可能不對被用于指定運(yùn)動矢量預(yù)測候選之一的二進(jìn)制數(shù)進(jìn)行編碼。
可將除上面描述的運(yùn)動矢量預(yù)測候選以外的運(yùn)動矢量用作運(yùn)動矢量預(yù)測候選對于本領(lǐng)域的普通技術(shù)人員是明顯的。
另外,根據(jù)另一示例性實(shí)施例,候選確定器920可基于編碼結(jié)果的估計(jì)減少運(yùn)動矢量預(yù)測候選的數(shù)量。
如上所述,對單獨(dú)的信息進(jìn)行編碼并將其包括在比特流中以在多個(gè)運(yùn)動矢量預(yù)測候選中指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。因此,隨著組C中的元素的數(shù)量減少,可以以低比特對這樣的信息進(jìn)行編碼,其中,所述信息是指在組C中指定用于預(yù)測當(dāng)前塊運(yùn)動矢量的運(yùn)動矢量預(yù)測候選所需的信息。在這里,候選確定器920可通過使用預(yù)定的評價(jià)函數(shù)選擇性地從所有運(yùn)動矢量預(yù)測候選中排除預(yù)定的運(yùn)動矢量預(yù)測候選,其中,將參照圖12詳細(xì)描述所述預(yù)定的評價(jià)函數(shù)。
圖12示出根據(jù)示例性實(shí)施例的減少運(yùn)動矢量預(yù)測候選的方法。
在圖12中,假設(shè)在組C中存在三個(gè)元素MVP1、MVP2和MVP3并且當(dāng)前塊的運(yùn)動矢量是MV。由于與當(dāng)前塊的運(yùn)動矢量最相似的運(yùn)動矢量預(yù)測候選被用于預(yù)測當(dāng)前塊的運(yùn)動矢量,與MV最相似的MVP3被用于預(yù)測當(dāng)前塊的運(yùn)動矢量。
因此,當(dāng)前塊的運(yùn)動矢量和用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選之間的矢量差(以下,稱為“原始運(yùn)動矢量差”)是(2,0)。由于MV是(5,0)并且MVP3是(3,0),故原始運(yùn)動矢量差是(2,0)。
候選確定器920通過使用原始運(yùn)動矢量差和預(yù)定的評價(jià)函數(shù)從所有運(yùn)動矢量預(yù)測候選中選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選。更具體來講,原始運(yùn)動矢量差和預(yù)定的運(yùn)動矢量預(yù)測候選被用于產(chǎn)生虛擬運(yùn)動矢量,并且相對于所有候選產(chǎn)生已產(chǎn)生的虛擬運(yùn)動矢量和所有運(yùn)動矢量預(yù)測候選之間的差(以下,稱為“虛擬運(yùn)動矢量差”)。原始運(yùn)動矢量差和預(yù)定的運(yùn)動矢量預(yù)測候選相加以產(chǎn)生虛擬運(yùn)動矢量,并計(jì)算已產(chǎn)生的虛擬運(yùn)動矢量和所有運(yùn)動矢量預(yù)測候選之間的虛擬運(yùn)動矢量差。通過對原始運(yùn)動矢量差和相對于所有候選計(jì)算的虛擬運(yùn)動矢量差進(jìn)行比較,可從所有運(yùn)動矢量預(yù)測候選選擇性地排除預(yù)定的運(yùn)動矢量預(yù)測候選。
參照圖12,候選確定器920確定是否從全部的候選中排除運(yùn)動矢量預(yù)測候選之一的MVP1。
當(dāng)通過從基于MVP1的虛擬運(yùn)動矢量減去運(yùn)動矢量預(yù)測候選而產(chǎn)生的虛擬運(yùn)動矢量差小于原始運(yùn)動矢量差時(shí),MVP1可能不被用于預(yù)測當(dāng)前塊的運(yùn)動矢量。例如,當(dāng)通過從通過將MVP1和原始運(yùn)動矢量差相加產(chǎn)生的虛擬運(yùn)動矢量減去MVP3產(chǎn)生的虛擬運(yùn)動矢量差小于原始運(yùn)動矢量差時(shí),相比于MVP1,MVP3更準(zhǔn)確地預(yù)測虛擬運(yùn)動矢量,并且在這種情況下,MVP1不能是運(yùn)動矢量預(yù)測。
在圖12中,當(dāng)MVP1和原始運(yùn)動矢量差相加時(shí),基于MVP1的虛擬運(yùn)動矢量是(2,0)。因此,當(dāng)基于MVP1產(chǎn)生虛擬運(yùn)動矢量時(shí),MVP2的虛擬運(yùn)動矢量差是(2,0)并且MVP3的虛擬運(yùn)動矢量差是(-1,0)。在此,由于MVP3的虛擬運(yùn)動矢量差(-1,0)小于原始運(yùn)動矢量差(2,0),MVP1不可以是當(dāng)前塊的運(yùn)動矢量預(yù)測。因此,可從所有運(yùn)動矢量預(yù)測候選排除MVP1。換句話說,可從組C排除與MVP1相應(yīng)的運(yùn)動矢量預(yù)測候選。
在此,針對MVP1本身計(jì)算的虛擬運(yùn)動矢量差是(2,0)并總是與原始運(yùn)動矢量差相同,從而虛擬運(yùn)動矢量差不會小于原始運(yùn)動矢量差。因此,當(dāng)針對所有運(yùn)動矢量預(yù)測候選計(jì)算虛擬運(yùn)動矢量差時(shí),可不計(jì)算針對MVP1本身的虛擬運(yùn)動矢量差。
當(dāng)完成確定是否排除MVP1時(shí),候選確定器920確定是否從所有運(yùn)動矢量預(yù)測候選中排除MVP2。當(dāng)MVP2和原始運(yùn)動矢量差相加時(shí),基于MVP2的虛擬運(yùn)動矢量是(2,0)。因此,針對MVP1的虛擬運(yùn)動矢量差是(2,0)并且針對MVP3的虛擬運(yùn)動矢量差是(-1,0)。由于針對MVP3的虛擬運(yùn)動矢量差小于原始運(yùn)動矢量差,可如同MVP1從所有運(yùn)動矢量預(yù)測候選排除MVP2。當(dāng)確定是否排除MVP2時(shí),可選擇性地對針對MVP1的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較。由于已確定應(yīng)已經(jīng)排除MVP1,可對針對MVP1以外的候選的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較。
另外,候選確定器920確定是否排除MVP3?;贛VP3的虛擬運(yùn)動矢量與當(dāng)前塊的原始運(yùn)動矢量相同。雖然從原始運(yùn)動矢量減去另一運(yùn)動矢量預(yù)測候選(即,MVP1或MVP2),但不會產(chǎn)生小于原始運(yùn)動矢量差的虛擬運(yùn)動矢量差。因此,未從運(yùn)動矢量預(yù)測候選排除MVP3。另外,根據(jù)另一示例性實(shí)施例,由于未從運(yùn)動矢量預(yù)測排除確定被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的MVP3,候選確定器920可跳過確定MVP3(用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選)是否被排除。
簡略地,當(dāng)候選確定器920確定是否排除運(yùn)動矢量預(yù)測候選之一的第二運(yùn)動矢量預(yù)測候選時(shí),第二運(yùn)動矢量預(yù)測候選和原始運(yùn)動矢量差相加以產(chǎn)生虛擬運(yùn)動矢量,并且針對所有候選計(jì)算所述虛擬運(yùn)動矢量和其它運(yùn)動矢量預(yù)測候選之間的差以產(chǎn)生多個(gè)虛擬運(yùn)動矢量差。當(dāng)多個(gè)虛擬運(yùn)動矢量差中存在小于原始運(yùn)算運(yùn)動矢量差的至少一個(gè)虛擬運(yùn)動矢量差時(shí),第二運(yùn)動矢量預(yù)測候選不是當(dāng)前塊的運(yùn)動矢量預(yù)測并從運(yùn)動矢量預(yù)測候選排除所述第二運(yùn)動矢量預(yù)測候選。
另外,候選確定器920針對運(yùn)動矢量預(yù)測候選重復(fù)執(zhí)行關(guān)于排除的確定,從而可減少運(yùn)動矢量預(yù)測候選(即,組C的元素)的數(shù)量。根據(jù)組C的運(yùn)動矢量預(yù)測候選的排列順序,按順序確定是否排除。例如,當(dāng)C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}時(shí),確定是否排除median(mv_a’,mv_b’,mv_c’),并且當(dāng)完成確定時(shí),確定是否排除mv_a’。然后,確定是否排除mv_b’。根據(jù)組C的排列順序,重復(fù)關(guān)于排除的確定直到mv_temporal。
當(dāng)重復(fù)執(zhí)行確定時(shí),如與MVP2的排除相關(guān)的描述,可省略針對在確定中已排除的候選的原始運(yùn)動矢量差和虛擬運(yùn)動矢量差之間的比較。
另外,如稍后將參照圖13a到圖13d進(jìn)行的描述,可根據(jù)預(yù)定的標(biāo)準(zhǔn)重新布置組C。當(dāng)重新布置組C時(shí),根據(jù)重新布置的順序重復(fù)關(guān)于排除的確定。
不僅可將與圖12相關(guān)起來描述的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差之間的比較應(yīng)用到一維運(yùn)動矢量,還可將其應(yīng)用到二維運(yùn)動矢量。換句話說,對由x坐標(biāo)和y坐標(biāo)定義的虛擬運(yùn)動矢量差的大小和原始運(yùn)動矢量差的大小進(jìn)行比較,因此可選擇性地從全部候選中排除預(yù)定的運(yùn)動矢量預(yù)測。
然而,用于對虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較的大小僅是一個(gè)示例,并且多種標(biāo)準(zhǔn)可被用于對虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較。當(dāng)基于預(yù)定的標(biāo)準(zhǔn)產(chǎn)生針對虛擬運(yùn)動矢量差的值和針對原始運(yùn)動矢量差的值的評價(jià)函數(shù)是“A”時(shí),可根據(jù)下面的等式1對虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較;
(等式1)
A(mvx+MVD-mvy)<A(MVD)
候選確定器920確定在所有候選中是否存在至少一個(gè)“mvy”,以確定是否從運(yùn)動矢量預(yù)測候選排除運(yùn)動矢量預(yù)測候選之一的“mvx”。在等式1中,“MVD”表示原始運(yùn)動矢量差。為了確定是否排除“mvx”,通過使用預(yù)定的評價(jià)函數(shù)“A”計(jì)算“A(mvx+MVD-mvy)”和其它運(yùn)動矢量預(yù)測候選,并對作為計(jì)算的結(jié)果產(chǎn)生的值和作為針對原始運(yùn)動矢量差的值的“A(MVD)”進(jìn)行比較,其中,“A(mvx+MVD-mvy)”是通過評價(jià)“mvx+MVD-mvy”獲得的值,其中,“mvx+MVD-mvy”是基于“mvx”的虛擬運(yùn)動矢量“mvx+MVD”和“mvy”之間的虛擬運(yùn)動矢量差。重復(fù)地將所有候選中的除“mvx”以外的運(yùn)動矢量預(yù)測候選替換為“mvy”,并且確定在全部候選中是否存在滿足等式1的至少一個(gè)“mvy”。
如上所述,可由x坐標(biāo)和y坐標(biāo)定義通過“A”評價(jià)的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差。在這種情況下,如下面的等式2,可由x坐標(biāo)評價(jià)的值和y坐標(biāo)評價(jià)的值之和定義評價(jià)函數(shù);
(等式2)
A(p,q)=f(p)+f(q)
當(dāng)由x坐標(biāo)“p”和y坐標(biāo)“q”定義虛擬運(yùn)動矢量差或原始運(yùn)動矢量差時(shí),將每個(gè)坐標(biāo)值輸入到預(yù)定的函數(shù)“f”并且由通過替換獲得的總和定義評價(jià)函數(shù)“A”。
根據(jù)示例性實(shí)施例,等式1和等式2中的評價(jià)函數(shù)“A”可以是這樣的評價(jià)函數(shù),其中,所述評價(jià)函數(shù)對通過對虛擬運(yùn)動矢量差進(jìn)行熵編碼而獲得的結(jié)果和通過對原始運(yùn)動矢量差進(jìn)行熵編碼而獲得的結(jié)果進(jìn)行估計(jì)。候選確定器920對通過基于評價(jià)函數(shù)“A”對虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行熵編碼而獲得的結(jié)果進(jìn)行估計(jì),并且可基于估計(jì)的結(jié)果減少運(yùn)動矢量預(yù)測候選的數(shù)量。將參照下面的等式3詳細(xì)描述上述過程:
(等式3)
Length=1;
Temp=(val<=0)?(-val<<1)+1:(val<<1);
While(1?。絋emp){
Temp>>=1;
Length+=2;
}
f(val)=Length
可如等式3定義函數(shù)“f”,其中,函數(shù)“f”估計(jì)通過相對于x坐標(biāo)值或y坐標(biāo)值進(jìn)行熵編碼而獲得的結(jié)果。當(dāng)將x坐標(biāo)值或y坐標(biāo)“val”輸入到估計(jì)可變長編碼(例如,通用可變長編碼)結(jié)果的函數(shù)“f”時(shí),根據(jù)等式3計(jì)算“Length”。
可由下式表示等式3:
x坐標(biāo)值或y坐標(biāo)可以是虛擬運(yùn)動矢量差或原始運(yùn)動矢量差的x坐標(biāo)值或y坐標(biāo)。
根據(jù)等式3,當(dāng)“val”是負(fù)數(shù)或“0”時(shí),將“val”改變?yōu)檎龜?shù)并隨后通過向左移位1比特來將“val”乘以2。加“1”,從而將結(jié)果存儲在“Temp”中。當(dāng)“val”是正數(shù)時(shí),通過向左移位1比特將“val”乘以2,從而將結(jié)果存儲在“Temp”中。隨后,重復(fù)“while”循環(huán)直到“Temp”是1,并計(jì)算“Length”。
例如,當(dāng)虛擬運(yùn)動矢量差或原始運(yùn)動矢量差是(2,0)時(shí),A(2,0)=f(2)+f(0)。
以以下步驟計(jì)算f(2)。f(2)的“2”是正數(shù),因此將其向左移位1比特,從而“Temp”被設(shè)置為4。在第一個(gè)“while”循環(huán)中,“Temp”是“4”而不是1,因此通過向右移位來將“4”乘以“1/2”,從而“Temp”被設(shè)置為“2”。由于“Length”的初始值被設(shè)置為“1”,在第一個(gè)“while”循環(huán)中的“Length”是“3”。
在第二個(gè)“while”循環(huán)中,“Temp”是“2”而不是“1”,因此通過向右移位將“2”乘以“1/2”,從而“Temp”被設(shè)置為“1”。由于當(dāng)前“Length”是3,在第二個(gè)“while”循環(huán)中的“Length”是“5”。由于“Temp”是1,所以不執(zhí)行第三個(gè)“while”循環(huán),并且f(2)是“5”。
以以下步驟計(jì)算f(0)。由于f(0)的輸入坐標(biāo)值是“0”,將“0”向左移位1比特并加“1”,從而“Temp”被設(shè)置為“1”。因此,不執(zhí)行“while”循環(huán)。根據(jù)“Length”的初始值f(0)是“1”。
與等式3相關(guān)描述的預(yù)定的評價(jià)值“f”是用于對使用可變長編碼進(jìn)行熵編碼的結(jié)果進(jìn)行估計(jì)的函數(shù)。因此,候選確定器920對通過使用評價(jià)函數(shù)“A”對虛擬運(yùn)動矢量差進(jìn)行可變長編碼而獲得的結(jié)果進(jìn)行估計(jì),以確定是否從運(yùn)動矢量預(yù)測候選中排除“mvx”。作為估計(jì)的結(jié)果,當(dāng)存在估計(jì)到將以比原始運(yùn)動矢量差更短的長度進(jìn)行編碼的至少一個(gè)虛擬運(yùn)動矢量差時(shí),從所有運(yùn)動矢量預(yù)測候選排除“mvx”。
然而,通過除使用可變長編碼結(jié)果以外的方法來估計(jì)熵編碼結(jié)果,對于本領(lǐng)域的普通技術(shù)人員是明顯的。例如,另一評價(jià)函數(shù)“h”可被用于對虛擬運(yùn)動矢量差的熵編碼結(jié)果和原始運(yùn)動矢量差的熵編碼結(jié)果進(jìn)行估計(jì)和比較。在此,“h”可以是估計(jì)上下文自適應(yīng)二進(jìn)制算術(shù)編碼的結(jié)果的函數(shù)。
另外,根據(jù)另一示例性實(shí)施例,為了增加基于預(yù)定的評價(jià)函數(shù)的評價(jià)結(jié)果的準(zhǔn)確度,可還估計(jì)通過評價(jià)索引信息獲得的結(jié)果。索引信息被用于從所有運(yùn)動矢量預(yù)測候選中指定預(yù)定的運(yùn)動矢量預(yù)測候選。將參照等式4詳細(xì)描述上述過程:
(等式4)
A(mvx+MVD-mvy,mvyIdx)<A(MVD,mvxIdx)
候選確定器920確定在全部候選中是否存在滿足等式4的至少一個(gè)“mvy”,以確定是否從運(yùn)動矢量預(yù)測候選中排除運(yùn)動矢量預(yù)測候選之一的“mvx”。在等式4中,“MVD”表示原始運(yùn)動矢量差,并且mvxIdx和mvyIdx表示從所有運(yùn)動矢量預(yù)測候選中分別用于指定“mvx”和“mvy”的索引信息。為了確定是否排除“mvx”,通過使用預(yù)定的評價(jià)函數(shù)“A”來評價(jià)用于從所有侯選中指定“mvy”的索引信息和基于“mvx”的虛擬運(yùn)動矢量“mvx+MVD”和其它運(yùn)動矢量預(yù)測候選“mvy”之間的虛擬運(yùn)動矢量差“mvx+MVD-mvy”。此外,通過使用預(yù)定的評價(jià)函數(shù)“A”來評價(jià)用于從全部候選中指定“mvx”的索引信息和原始運(yùn)動矢量差。作為評價(jià)的結(jié)果,確定在全部候選中是否存在至少一個(gè)“mvy”。
如上所述,可由x坐標(biāo)和y坐標(biāo)定義由“A”評價(jià)的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差,并可如下面的等式5定義虛擬運(yùn)動矢量差和原始運(yùn)動矢量差:
(等式5)
A(mvx+MVD-mvy,mvyIdx)=f(p1)+f(q1)+g(mvyIdx)
A(MVD,mvxIdx)=f(p2)+f(q2)+g(mvxIdx)
與等式2相比,等式2左側(cè)的A(mvx+MVD-mvy)僅評價(jià)虛擬運(yùn)動矢量差,然而等式5的A(mvx+MVD-mvy,mvyIdx)評價(jià)虛擬運(yùn)動矢量差和用于從所有運(yùn)動矢量預(yù)測候選指定“mvy”的信息。評價(jià)函數(shù)“A”可以是用于評價(jià)熵編碼結(jié)果的函數(shù)。在此,函數(shù)“f”可以是如等式2相關(guān)描述的用于基于虛擬運(yùn)動矢量差的x坐標(biāo)值或y坐標(biāo)值估計(jì)熵編碼結(jié)果的函數(shù),函數(shù)“g”可以是用于估計(jì)“mvxIdx”的熵編碼結(jié)果的函數(shù)。當(dāng)“mvx+MVD-mvy”的x坐標(biāo)值和y坐標(biāo)值分別是“p1”和“q1”時(shí),可如等式5計(jì)算A(mvx+MVD-mvy,mvyIdx)。
等式2的右側(cè)的A(MVD)僅評價(jià)原始運(yùn)動矢量差,然而等式5的A(MVD,mvxIdx)評價(jià)原始運(yùn)動矢量差和用于從所有運(yùn)動矢量預(yù)測候選指定“mvx”的信息。函數(shù)“f”可以是如等式2相關(guān)描述的用于基于原始運(yùn)動矢量差的x坐標(biāo)值或y坐標(biāo)值估計(jì)熵編碼結(jié)果的函數(shù),函數(shù)“g”可以是用于估計(jì)“mvxIdx”的熵編碼結(jié)果的函數(shù)。當(dāng)“MVD”的x坐標(biāo)值和y坐標(biāo)值分別是“p2”和“q2”時(shí),可如等式5計(jì)算A(MVD,mvxIdx)。
可在根據(jù)等式2的關(guān)于排除的確定中補(bǔ)充使用根據(jù)等式4和等式5的關(guān)于排除的確定。換句話說,首先基于等式2確定是否從所有運(yùn)動矢量預(yù)測候選中排除“mvx”,并可根據(jù)等式4和等式5再一次確定排除。例如,作為根據(jù)等式2的確定的結(jié)果,當(dāng)“A(mvx+MVD-mvy)”與“A(MVD)”相等或大于“A(MVD)”,“A(mvx+MVD-mvy)”不小于“A(MVD)”時(shí),根據(jù)等式2沒有從所有運(yùn)動矢量預(yù)測候選中排除“mvx”。然而,雖然“A(mvx+MVD-mvy)”和“A(MVD)”彼此相等,但可基于根據(jù)等式4和等式5的確定的結(jié)果從所有運(yùn)動矢量預(yù)測候選排除“mvx”。
當(dāng)候選確定器基于等式1到等式5確定關(guān)于針對運(yùn)動矢量預(yù)測候選的排除時(shí),根據(jù)組C的排列順序重復(fù)執(zhí)行關(guān)于針對運(yùn)動矢量預(yù)測候選的排除的確定。根據(jù)另一示例性實(shí)施例,候選確定器920根據(jù)預(yù)定的標(biāo)準(zhǔn)重新排列組C,并根據(jù)重新排列的順序重復(fù)關(guān)于排除的確定。參照圖13a到圖13d詳細(xì)描述上述過程。
圖13a到圖13d示出根據(jù)示例性實(shí)施例的包括在具有預(yù)定的尺寸的編碼單元中的當(dāng)前塊的位置。
當(dāng)所有運(yùn)動矢量預(yù)測候選是C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}時(shí),將每個(gè)二進(jìn)制數(shù)分配給組C的運(yùn)動矢量預(yù)測候選,因此如上所述,可從運(yùn)動矢量預(yù)測候選指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。
在此,根據(jù)包括在組C中的運(yùn)動矢量預(yù)測候選的排列順序分配二進(jìn)制數(shù),并且上述二進(jìn)制數(shù)可以是基于霍夫曼編碼(Huffman code)的可變長編碼。因此,可將少量的比特分配到布置在組C的排列順序的前部的運(yùn)動矢量預(yù)測候選。例如,可將“0”比特分配給median(mv_a’,mv_b’,mv_c’),可將“00”比特分配給mv_a’,可將“01”比特分配給mv_b’。因此,候選確定器920根據(jù)預(yù)定的順序排列運(yùn)動矢量預(yù)測候選,從而在從運(yùn)動矢量預(yù)測候選預(yù)測當(dāng)前塊的運(yùn)動矢量的預(yù)測中將被使用的具有高可能性的運(yùn)動矢量預(yù)測被定位在組C的前部。
可根據(jù)編碼單元中的當(dāng)前塊的位置來確定在當(dāng)前塊的運(yùn)動矢量預(yù)測中將被使用的具有高可能性的運(yùn)動矢量預(yù)測。可通過使用當(dāng)前塊的分塊索引表達(dá)當(dāng)前塊的位置。根據(jù)預(yù)定的順序,將分塊索引分配到編碼單元中的塊。因此,可根據(jù)當(dāng)前塊分塊索引確定在當(dāng)前塊的運(yùn)動矢量預(yù)測中將被使用的具有高可能性的運(yùn)動矢量預(yù)測。如圖13a,當(dāng)當(dāng)前塊被定位在編碼單元的下側(cè)時(shí),當(dāng)前塊的運(yùn)動矢量可以相同或相似于與編碼單元的左側(cè)相鄰的塊的運(yùn)動矢量或與編碼單元的左下側(cè)相鄰的塊的運(yùn)動矢量。因此,可能需要改變排列順序,從而相應(yīng)于與編碼單元的左側(cè)相鄰的塊的運(yùn)動矢量或與編碼單元的左下側(cè)相鄰的塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選被定位在組C的前部。由于來自組C的運(yùn)動矢量預(yù)測候選的mv_b’是相應(yīng)于與左側(cè)相鄰的塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選,改變組C中的mv_b’和median(mv_a’,mv_b’,mv_c’)的順序,因此可將組C重新排列為C={mv_b’,mv_a’,median(mv_a’,mv_b’,mv_c’),mv_c’,mv_temporal}。
相似地,當(dāng)當(dāng)前塊被定位在如圖13b中的編碼單元的左側(cè)時(shí),運(yùn)動矢量預(yù)測候選可被用于預(yù)測當(dāng)前塊的運(yùn)動矢量,其中,所述運(yùn)動矢量預(yù)測候選相應(yīng)于與編碼單元的左側(cè)相鄰的塊的運(yùn)動矢量和與編碼單元的上側(cè)相鄰的塊的運(yùn)動矢量。由于來自組C中的運(yùn)動矢量預(yù)測候選的mv_b’是相應(yīng)于與左側(cè)相鄰的塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選,改變組C中的mv_b’和median(mv_a’,mv_b’,mv_c’)的順序,因此可將組C重新排列為C={mv_b’,mv_a’,median(mv_a’,mv_b’,mv_c’),mv_c’,mv_temporal}。
如在圖13c中,當(dāng)當(dāng)前塊被定位在編碼單元的上側(cè)時(shí),運(yùn)動矢量預(yù)測候選可被用作當(dāng)前塊的運(yùn)動矢量預(yù)測,其中,所述運(yùn)動矢量預(yù)測候選相應(yīng)于與編碼單元的左側(cè)相鄰的塊的運(yùn)動矢量和與編碼單元的上側(cè)相鄰的塊的運(yùn)動矢量。由于來自組C中的運(yùn)動矢量預(yù)測候選的mv_a’是相應(yīng)于與上側(cè)相鄰的塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選,改變組C中的mv_a’和median(mv_a’,mv_b’,mv_c’)的順序,因此可將組C重新排列為C={mv_a’,median(mv_a’,mv_b’,mv_c’),mv_b’,mv_c’,mv_temporal}。
如在圖13d中,當(dāng)當(dāng)前塊被定位在編碼單元的右側(cè)時(shí),運(yùn)動矢量預(yù)測候選可被用于預(yù)測當(dāng)前塊的運(yùn)動矢量,其中,所述運(yùn)動矢量預(yù)測候選相應(yīng)于與編碼單元的上側(cè)相鄰的塊的運(yùn)動矢量。由于來自組C中的運(yùn)動矢量預(yù)測候選的mv_c’是相應(yīng)于與上側(cè)相鄰的塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選,改變組C中的mv_c’和median(mv_a’,mv_b’,mv_c’)的順序,因此可將組C重新排列為C={mv_c’,mv_a’,mv_b’,median(mv_a’,mv_b’,mv_c’),mv_temporal}。
作為用于重新排列運(yùn)動矢量預(yù)測候選的標(biāo)準(zhǔn)的編碼單元中的當(dāng)前塊的位置是示例。換句話說,多個(gè)標(biāo)準(zhǔn)可被用于重新排列運(yùn)動矢量預(yù)測候選。用于排列具有與在組C中的前部的當(dāng)前塊的運(yùn)動矢量相似的高可能性的運(yùn)動矢量預(yù)測候選的多個(gè)標(biāo)準(zhǔn)可被用作用于重新排列運(yùn)動矢量預(yù)測候選的標(biāo)準(zhǔn)。可基于與當(dāng)前塊之前已編碼的其它塊相關(guān)的預(yù)定的信息,確定具有與當(dāng)前塊的運(yùn)動矢量相似的高可能性的運(yùn)動矢量預(yù)測候選,并且可根據(jù)所述確定重新排列組C。
另外,基于在對當(dāng)前塊的運(yùn)動矢量進(jìn)行編碼之前相對于當(dāng)前塊已編碼的或已解碼的其它信息,確定具有與當(dāng)前塊的運(yùn)動矢量相似的高可能性的運(yùn)動矢量預(yù)測候選,并且可根據(jù)所述確定重新排列組C。
另外,可通過排除重疊的運(yùn)動矢量預(yù)測候選來重新排列組C。當(dāng)在所有運(yùn)動矢量預(yù)測候選中存在重疊的運(yùn)動矢量預(yù)測候選時(shí),首先排除重疊的運(yùn)動矢量預(yù)測候選,并且可根據(jù)等式1到等式5確定是否排除運(yùn)動矢量預(yù)測候選。
重新參照圖9,運(yùn)動矢量編碼器930對關(guān)于運(yùn)動矢量的信息和關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。關(guān)于運(yùn)動矢量的信息是當(dāng)前塊的原始運(yùn)動矢量和原始運(yùn)動矢量預(yù)測之間的原始運(yùn)動矢量差。關(guān)于運(yùn)動矢量預(yù)測的信息是用于指定運(yùn)動矢量預(yù)測候選的信息,其中,所述運(yùn)動矢量預(yù)測候選被用于在排除了至少一個(gè)運(yùn)動矢量預(yù)測的運(yùn)動矢量預(yù)測候選中預(yù)測當(dāng)前塊的運(yùn)動矢量。換句話說,將用于在運(yùn)動矢量預(yù)測候選中指定當(dāng)前塊的運(yùn)動矢量預(yù)測的信息編碼為關(guān)于運(yùn)動矢量預(yù)測的信息,其中,在候選確定器920中沒有排除所述運(yùn)動矢量預(yù)測候選。
從運(yùn)動矢量估計(jì)器910接收原始運(yùn)動矢量差,并且根據(jù)預(yù)定的熵編碼方法對原始運(yùn)動矢量差進(jìn)行編碼。此外,對用于從運(yùn)動矢量預(yù)測候選中指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選的信息進(jìn)行編碼,其中,通過在候選確定器920排除至少一個(gè)運(yùn)動矢量預(yù)測候選來確定所述運(yùn)動矢量預(yù)測候選。
當(dāng)候選確定器920通過根據(jù)等式1到等式5從所有運(yùn)動矢量預(yù)測候選排除至少一個(gè)運(yùn)動矢量預(yù)測候選來確定運(yùn)動矢量預(yù)測候選時(shí),對用于從確定的運(yùn)動矢量預(yù)測候選指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選的信息進(jìn)行編碼。運(yùn)動矢量編碼器930可對在候選確定器920中沒有排除的每個(gè)運(yùn)動矢量預(yù)測候選進(jìn)行索引,并且將索引信息熵編碼為關(guān)于運(yùn)動矢量預(yù)測的信息。索引表示將預(yù)定的二進(jìn)制數(shù)分配給每個(gè)運(yùn)動矢量預(yù)測候選,并且關(guān)于運(yùn)動矢量預(yù)測的信息表示分配給用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選的二進(jìn)制數(shù)。當(dāng)在候選確定器920選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選之后保留一個(gè)運(yùn)動矢量預(yù)測候選時(shí),因?yàn)闊o疑問地確定將用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選,在運(yùn)動矢量編碼器930中可不單獨(dú)地對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。
此外,如圖13a到圖13d相關(guān)的描述,候選確定器920可對每個(gè)運(yùn)動矢量預(yù)測候選進(jìn)行索引,并可對索引信息進(jìn)行熵編碼,其中,通過根據(jù)預(yù)定的標(biāo)準(zhǔn)重新排列所有運(yùn)動矢量預(yù)測候選,并通過從所述重新排列的運(yùn)動矢量預(yù)測候選中選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測來產(chǎn)生所述運(yùn)動矢量預(yù)測候選。
作為由候選確定器920執(zhí)行重新排列的結(jié)果,可將具有最小比特?cái)?shù)的二進(jìn)制數(shù)分配給具有將被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的高可能性的運(yùn)動矢量預(yù)測候選,因此可以以高壓縮率對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。
圖14是根據(jù)示例性實(shí)施例的用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備1400的框圖。
圖14的用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備1400被包括在圖2的用于對圖像進(jìn)行解碼的設(shè)備200或圖5的圖像解碼器500中。參照圖14,用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備1400包括:運(yùn)動矢量解碼器1410、候選確定器1420和運(yùn)動矢量恢復(fù)單元1430。
當(dāng)根據(jù)上面描述的顯式模式和隱式模式中的顯式模式對當(dāng)前塊的運(yùn)動矢量進(jìn)行編碼時(shí),用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備1400對當(dāng)前塊的運(yùn)動矢量進(jìn)行解碼。
運(yùn)動矢量解碼器1410接收針對當(dāng)前塊的運(yùn)動矢量的比特流并對接收的比特流進(jìn)行解碼。對被包括在比特流中的關(guān)于運(yùn)動矢量的信息進(jìn)行解碼。對當(dāng)前塊的原始運(yùn)動矢量差進(jìn)行解碼??筛鶕?jù)預(yù)定的熵解碼方法對原始運(yùn)動矢量差進(jìn)行解碼。原始運(yùn)動矢量差是當(dāng)前塊的運(yùn)動矢量和被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選之間的矢量差。在根據(jù)示例性實(shí)施例的對運(yùn)動矢量進(jìn)行解碼的方法中,根據(jù)等式1到等式5從所有運(yùn)動矢量預(yù)測候選中排除至少一個(gè)運(yùn)動矢量預(yù)測候選,并確定運(yùn)動矢量預(yù)測候選。沒有固定運(yùn)動矢量預(yù)測候選,并且按照塊單元對所述運(yùn)動矢量預(yù)測候選進(jìn)行解碼,從而可連續(xù)改變運(yùn)動矢量預(yù)測候選。因此,雖然關(guān)于運(yùn)動矢量預(yù)測候選的信息相同,但如果沒有確定運(yùn)動矢量預(yù)測候選,則不能準(zhǔn)確地恢復(fù)用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。
因此,候選確定器1420在確定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選之前確定運(yùn)動矢量預(yù)測候選。根據(jù)等式1到等式5從所有運(yùn)動矢量候選中選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選,并確定運(yùn)動矢量預(yù)測候選?;陬A(yù)定的評價(jià)函數(shù)排除運(yùn)動矢量預(yù)測候選,其中,所述運(yùn)動矢量預(yù)測候選在基于包括在與當(dāng)前塊相鄰的先前編碼的區(qū)域中的塊的運(yùn)動矢量確定的所有候選中未被用于預(yù)測當(dāng)前塊的運(yùn)動矢量。
基于所有運(yùn)動矢量預(yù)測候選中的預(yù)定的運(yùn)動矢量和關(guān)于在運(yùn)動矢量解碼器中解碼的運(yùn)動矢量預(yù)測的信息產(chǎn)生虛擬運(yùn)動矢量,并針對所有候選計(jì)算作為產(chǎn)生的虛擬運(yùn)動矢量和其它運(yùn)動矢量預(yù)測候選之間的差的虛擬運(yùn)動矢量差。對計(jì)算的虛擬運(yùn)動矢量差和關(guān)于在運(yùn)動矢量解碼器1410中解碼的運(yùn)動矢量的信息(即,關(guān)于原始運(yùn)動矢量差的信息)進(jìn)行比較,并選擇性地排除預(yù)定的運(yùn)動矢量預(yù)測候選。對通過對虛擬運(yùn)動矢量差進(jìn)行熵編碼而獲得的結(jié)果和通過對原始運(yùn)動矢量差進(jìn)行熵編碼而獲得結(jié)果進(jìn)行比較,從而可確定是否排除預(yù)定的運(yùn)動矢量預(yù)測候選。另外,為了增加熵編碼結(jié)果的估計(jì)準(zhǔn)確度,還估計(jì)通過對索引信息進(jìn)行熵編碼而獲得的結(jié)果并將所述的結(jié)果用在關(guān)于排除的確定中。與等式1到等式5相關(guān)地描述排除運(yùn)動矢量預(yù)測候選的方法。
此外,根據(jù)另一示例性實(shí)施例,候選確定器1420根據(jù)預(yù)定的標(biāo)準(zhǔn)重新布置所有運(yùn)動矢量預(yù)測候選,針對所有重新排列的運(yùn)動矢量預(yù)測候選根據(jù)等式1到等式5執(zhí)行關(guān)于排除的確定,并可選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選。可從所有重新排列的運(yùn)動矢量預(yù)測候選排除重疊的運(yùn)動矢量預(yù)測候選,并可根據(jù)等式1到等式5重復(fù)執(zhí)行關(guān)于排除的確定。
當(dāng)在候選確定器1420從所有運(yùn)動矢量預(yù)測候選排除至少一個(gè)運(yùn)動矢量預(yù)測候選之后來自所有運(yùn)動矢量預(yù)測候選的多個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),運(yùn)動矢量解碼器1410對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行解碼。根據(jù)預(yù)定的熵解碼方法對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行解碼。關(guān)于運(yùn)動矢量預(yù)測的信息是用于指定運(yùn)動矢量預(yù)測候選的信息,其中,所述運(yùn)動矢量預(yù)測候選被用于在排除了至少一個(gè)運(yùn)動矢量預(yù)測候選的運(yùn)動矢量預(yù)測候選中預(yù)測當(dāng)前塊的運(yùn)動矢量。對用于從候選確定器1420未排除的運(yùn)動矢量預(yù)測候選中指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選的信息進(jìn)行解碼。
當(dāng)在候選確定器1420從所有運(yùn)動矢量預(yù)測候選排除至少一個(gè)運(yùn)動矢量預(yù)測候選之后一個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),保留的運(yùn)動矢量預(yù)測候選被用于預(yù)測當(dāng)前塊的運(yùn)動矢量,因此運(yùn)動矢量解碼器1410可不對關(guān)于運(yùn)動矢量預(yù)測候選的信息進(jìn)行單獨(dú)解碼。
運(yùn)動矢量恢復(fù)單元1430基于關(guān)于在運(yùn)動矢量解碼器1410中解碼的運(yùn)動矢量的信息恢復(fù)當(dāng)前塊的運(yùn)動矢量。在運(yùn)動矢量解碼器1410中解碼的原始運(yùn)動矢量差和用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選相加,以恢復(fù)當(dāng)前塊的運(yùn)動矢量。從在候選確定器1420中確定的運(yùn)動矢量預(yù)測候選確定將被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選,并且將確定的運(yùn)動矢量預(yù)測候選與原始運(yùn)動矢量差相加。當(dāng)多個(gè)運(yùn)動矢量預(yù)測候選而不是一個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),作為候選確定器1420中的排除的結(jié)果,可基于關(guān)于在運(yùn)動矢量解碼器1410中解碼的運(yùn)動矢量預(yù)測的信息確定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。
由于由候選確定器1420確定運(yùn)動矢量預(yù)測候選,即使關(guān)于運(yùn)動矢量預(yù)測的解碼的信息相同,用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選也可以是在不同的位置的相鄰塊的運(yùn)動矢量。
圖15是示出根據(jù)示例性實(shí)施例的對運(yùn)動矢量進(jìn)行編碼的方法的流程圖。
參照圖15,在操作1510,用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備估計(jì)當(dāng)前塊的運(yùn)動矢量,并確定用于從所有運(yùn)動矢量預(yù)測候選中預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。在多個(gè)參考圖像中搜索與當(dāng)前塊相同或相似的塊,并且作為搜索的結(jié)果,估計(jì)運(yùn)動矢量(即,當(dāng)前塊和參考塊之間的相對位置差)。
隨后,基于包括在與當(dāng)前塊相鄰的先前編碼的區(qū)域中的塊的運(yùn)動矢量來預(yù)測當(dāng)前塊的運(yùn)動矢量。換句話說,將包括在與當(dāng)前塊相鄰的先前編碼的區(qū)域中的塊的運(yùn)動矢量設(shè)置為運(yùn)動矢量預(yù)測候選,并確定運(yùn)動矢量預(yù)測候選中與估計(jì)的當(dāng)前塊的運(yùn)動矢量最相似的運(yùn)動矢量預(yù)測候選。產(chǎn)生當(dāng)前塊的運(yùn)動矢量和確定的運(yùn)動矢量預(yù)測候選之間的矢量差(即,原始運(yùn)動矢量差)。
在操作1520,用于對圖像進(jìn)行編碼的設(shè)備選擇性地從所有運(yùn)動矢量預(yù)測候選中排除至少一個(gè)運(yùn)動矢量預(yù)測候選。從所有運(yùn)動矢量預(yù)測候選排除未被用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。
用于對圖像進(jìn)行編碼的設(shè)備通過使用所有運(yùn)動矢量預(yù)測候選中的預(yù)定的運(yùn)動矢量預(yù)測候選和在操作1510中產(chǎn)生的原始運(yùn)動矢量差來產(chǎn)生虛擬運(yùn)動矢量。將產(chǎn)生的虛擬運(yùn)動矢量和其它運(yùn)動矢量預(yù)測候選用于產(chǎn)生虛擬運(yùn)動矢量差。產(chǎn)生針對所有運(yùn)動矢量預(yù)測候選中的每個(gè)的虛擬運(yùn)動矢量差,并對產(chǎn)生的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較,從而可選擇性地排除預(yù)定的運(yùn)動矢量預(yù)測候選。
針對所有候選重復(fù)執(zhí)行操作1520中的產(chǎn)生虛擬運(yùn)動矢量并選擇性地排除運(yùn)動矢量預(yù)測候選的處理,因此可從所有候選中排除至少一個(gè)運(yùn)動矢量預(yù)測候選。當(dāng)重復(fù)執(zhí)行排除處理時(shí),計(jì)算針對運(yùn)動矢量預(yù)測候選而不是已排除的運(yùn)動矢量預(yù)測的虛擬運(yùn)動矢量差,并且可對計(jì)算的虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行比較。
可基于預(yù)定的評價(jià)函數(shù)對虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行評價(jià)和相互比較,其中,所述預(yù)定的評價(jià)函數(shù)可以是估計(jì)熵編碼結(jié)果的函數(shù)??苫诤瘮?shù)對虛擬運(yùn)動矢量差和原始運(yùn)動矢量差進(jìn)行相互比較,其中,所述函數(shù)估計(jì)通過對虛擬運(yùn)動矢量差進(jìn)行熵編碼而獲得的結(jié)果和通過對原始運(yùn)動矢量差進(jìn)行熵編碼而獲得的結(jié)果。此外,為了增加評價(jià)準(zhǔn)確度,可還估計(jì)通過對索引信息進(jìn)行編碼而獲得的結(jié)果,并將其用于關(guān)于排除的確定中。與等式1到等式5相關(guān)地描述從所有運(yùn)動矢量預(yù)測候選中排除至少一個(gè)運(yùn)動矢量預(yù)測候選的方法。
此外,如與圖13a到圖13d相關(guān)的描述,用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備可根據(jù)預(yù)定的標(biāo)準(zhǔn)重新排列所有運(yùn)動矢量預(yù)測候選,并從所有重新布置的運(yùn)動矢量預(yù)測候選選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選。另外,用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備可從所有重新排列的運(yùn)動矢量預(yù)測候選排除重疊的運(yùn)動矢量預(yù)測候選,并根據(jù)等式1到等式5重復(fù)執(zhí)行關(guān)于排除的確定。
在操作1530,用于對運(yùn)動矢量進(jìn)行編碼的設(shè)備對關(guān)于運(yùn)動矢量的信息和關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。對關(guān)于原始運(yùn)動矢量差的信息和用于指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選的信息進(jìn)行編碼。關(guān)于運(yùn)動矢量預(yù)測的信息可以是用于從在操作1520和操作1530沒有排除的運(yùn)動矢量預(yù)測候選指定運(yùn)動矢量預(yù)測候選的信息,其中,所述運(yùn)動矢量預(yù)測候選用于預(yù)測當(dāng)前塊的運(yùn)動矢量。
當(dāng)在從所有運(yùn)動矢量預(yù)測候選排除至少一個(gè)運(yùn)動矢量預(yù)測候選之后一個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),可不對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行編碼。
圖16是示出根據(jù)示例性實(shí)施例的對運(yùn)動矢量進(jìn)行解碼的方法的流程圖。
參照圖16,在操作1610,用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備對來自接收的比特流的關(guān)于當(dāng)前塊的運(yùn)動矢量的信息進(jìn)行解碼。關(guān)于運(yùn)動矢量的信息可以是當(dāng)前塊的運(yùn)動矢量和當(dāng)前塊的運(yùn)動矢量預(yù)測之間的原始運(yùn)動矢量差。
在操作1620,用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備基于在操作1610中解碼的關(guān)于運(yùn)動矢量的信息和運(yùn)動矢量預(yù)測候選中的一個(gè)運(yùn)動矢量預(yù)測候選產(chǎn)生虛擬運(yùn)動矢量。
當(dāng)產(chǎn)生虛擬運(yùn)動矢量時(shí),用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備從所有運(yùn)動矢量預(yù)測候選排除至少一個(gè)運(yùn)動矢量預(yù)測候選?;诎ㄔ谂c當(dāng)前塊相鄰的先前解碼的區(qū)域中的塊的運(yùn)動矢量確定所有運(yùn)動矢量預(yù)測候選。用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備可從所有運(yùn)動矢量預(yù)測候選選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選。基于預(yù)定的評價(jià)函數(shù)評價(jià)虛擬運(yùn)動矢量差和在操作1610中解碼的原始運(yùn)動矢量差,以選擇性地排除預(yù)定的運(yùn)動矢量預(yù)測候選。從所有候選中排除運(yùn)動矢量預(yù)測候選的方法與操作1530相同,并且上面參照等式1到等式5描述了所述方法。
針對所有候選重復(fù)執(zhí)行在操作1620產(chǎn)生虛擬運(yùn)動矢量并選擇性地排除運(yùn)動矢量預(yù)測候選的處理,因此可從所有候選中排除至少一個(gè)運(yùn)動矢量預(yù)測候選。
此外,如與圖13a到圖13d相關(guān)的描述,用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備可根據(jù)預(yù)定的標(biāo)準(zhǔn)重新排列所有運(yùn)動矢量預(yù)測候選,并從所有重新排列的運(yùn)動矢量預(yù)測候選中選擇性地排除至少一個(gè)運(yùn)動矢量預(yù)測候選。另外,用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備可從所有重新排列的運(yùn)動矢量預(yù)測候選中排除重疊的運(yùn)動矢量預(yù)測候選,并根據(jù)等式1到等式5重復(fù)執(zhí)行關(guān)于排除的確定。
當(dāng)作為排除的結(jié)果多個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行解碼,并且當(dāng)一個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),不對關(guān)于運(yùn)動矢量預(yù)測的信息進(jìn)行解碼。
在操作1630,用于對運(yùn)動矢量進(jìn)行解碼的設(shè)備從在操作1620未排除的運(yùn)動矢量預(yù)測候選確定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測。
可基于關(guān)于當(dāng)前塊的運(yùn)動矢量預(yù)測的信息確定運(yùn)動矢量預(yù)測候選中的用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測候選。當(dāng)作為在操作1620中的排除的結(jié)果,一個(gè)運(yùn)動矢量預(yù)測候選保留下來時(shí),將一個(gè)保留的運(yùn)動矢量預(yù)測候選確定為用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測。
當(dāng)確定運(yùn)動矢量預(yù)測候選時(shí),通過將確定的運(yùn)動矢量預(yù)測候選和在操作1610中解碼的原始運(yùn)動矢量差相加來恢復(fù)當(dāng)前塊的運(yùn)動矢量。
根據(jù)示例性實(shí)施例,當(dāng)運(yùn)動矢量預(yù)測候選被用于對運(yùn)動矢量進(jìn)行預(yù)測編碼和預(yù)測解碼時(shí),可減少運(yùn)動矢量預(yù)測候選的數(shù)量以對運(yùn)動矢量進(jìn)行預(yù)測編碼和預(yù)測解碼。因此,可以以最小比特來對從運(yùn)動矢量預(yù)測候選指定用于預(yù)測當(dāng)前塊的運(yùn)動矢量的運(yùn)動矢量預(yù)測所需的信息進(jìn)行編碼,從而增加了對運(yùn)動矢量進(jìn)行編碼/解碼的壓縮率,并從而可提高對圖像進(jìn)行編碼/解碼的壓縮率。
雖然上面已特別地示出并描述了示例性實(shí)施例,但是本領(lǐng)域的普通技術(shù)人員將理解,在不脫離由權(quán)利要求限定的本發(fā)明構(gòu)思的精神和范圍的情況下,可以對其形式和細(xì)節(jié)進(jìn)行各種改變。
示例性實(shí)施例可還被實(shí)施為計(jì)算機(jī)可讀記錄介質(zhì)上的計(jì)算機(jī)可讀代碼。
例如,根據(jù)示例性實(shí)施例的用于對圖像進(jìn)行編碼的設(shè)備、用于對圖像進(jìn)行解碼的設(shè)備、運(yùn)動矢量編碼器和運(yùn)動矢量均可包括總線和結(jié)合到所述總線的至少一個(gè)處理器,其中,所述總線耦合到包括在圖1、圖2、圖4、圖5、圖9和圖14中的設(shè)備中的每個(gè)元件。另外,設(shè)備均可包括耦合到至少一個(gè)處理器的存儲器以存儲命令、接收的消息或產(chǎn)生的消息,其中,所述處理器用于通過結(jié)合到總線來執(zhí)行所述命令。
計(jì)算機(jī)可讀記錄介質(zhì)是能夠存儲數(shù)據(jù)的任何數(shù)據(jù)存儲裝置,其中,所述數(shù)據(jù)能夠在存儲之后由計(jì)算機(jī)系統(tǒng)讀取。計(jì)算機(jī)可讀記錄介質(zhì)的示例包括只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、CD-ROMs、磁帶、軟盤、光學(xué)數(shù)據(jù)存儲裝置等。計(jì)算機(jī)可讀記錄介質(zhì)還可分布于聯(lián)網(wǎng)的計(jì)算機(jī)系統(tǒng)上,從而以分布的方式存儲并執(zhí)行計(jì)算機(jī)可讀代碼。