国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      圖像解碼設備的制作方法

      文檔序號:12554367閱讀:323來源:國知局
      圖像解碼設備的制作方法與工藝

      技術領域

      與示例性實施例一致的設備和方法涉及對運動矢量進行編碼和解碼,更具體地講,涉及對當前塊的運動矢量進行預測編碼和預測解碼。



      背景技術:

      在編解碼器(諸如,MPEG-4H.264/MPEG先進視頻編碼(AVC))中,與當前塊相鄰的先前編碼的塊的運動矢量可被用于預測當前塊的運動矢量。與當前塊的左側、上側、右上側相鄰的先前編碼的塊的運動矢量的中值被用作當前塊的運動矢量預測。未直接對當前塊的運動矢量進行編碼,而是對運動矢量和運動矢量預測之間的差進行編碼。



      技術實現(xiàn)要素:

      解決方案

      一個或多個示例性實施例提供一種用于對運動矢量進行預測編碼和預測解碼的方法和設備,以及記錄有用于執(zhí)行所述方法的計算機程序的計算機可讀記錄介質。

      有益效果

      根據(jù)示例性實施例,當運動矢量預測候選被用于對運動矢量進行預測編碼和預測解碼時,運動矢量預測候選的數(shù)量可被減少以對運動矢量進行預測編碼和預測解碼。因此,可使用最少比特對這樣的信息進行編碼,從而增加了編碼/解碼運動矢量的壓縮率,并且從而可提高編碼/解碼圖像的壓縮率,其中,所述信息是運動矢量預測候選中對被用于預測當前塊的運動矢量的運動矢量預測進行指定所需的信息。

      附圖說明

      通過參照附圖對示例性實施例進行詳細描述,本發(fā)明的上述和其他特點和優(yōu)點將會變得更加清楚,其中:

      圖1是根據(jù)示例性實施例的用于對圖像進行編碼的設備的框圖;

      圖2是根據(jù)示例性實施例的用于對圖像進行解碼的設備的框圖;

      圖3示出根據(jù)示例性實施例的分層編碼單元;

      圖4是根據(jù)示例性實施例的基于編碼單元的圖像編碼器的框圖;

      圖5是根據(jù)示例性實施例的基于編碼單元的圖像解碼器的框圖;

      圖6示出根據(jù)示例性實施例的最大編碼單元、子編碼單元和預測單元。

      圖7示出根據(jù)示例性實施例的編碼單元和變換單元;

      圖8a到圖8d示出根據(jù)示例性實施例的編碼單元、預測單元和變換單元的劃分形狀;

      圖9是根據(jù)示例性實施例的用于對運動矢量進行編碼的設備的框圖;

      圖10a和圖10b示出根據(jù)示例性實施例的運動矢量預測候選;

      圖10c到圖10e示出根據(jù)示例性實施例的具有多種尺寸的與當前塊相鄰的塊;

      圖11a到圖11c示出根據(jù)另一示例性實施例的運動矢量預測候選;

      圖12示出根據(jù)示例性實施例的減少運動矢量預測候選的方法;

      圖13a到圖13d示出根據(jù)示例性實施例的包括在具有預定尺寸的編碼單元中的當前塊的位置;

      圖14是根據(jù)示例性實施例的用于對運動矢量進行解碼的設備的框圖;

      圖15是示出根據(jù)示例性實施例的對運動矢量進行編碼的方法的流程圖;

      圖16是示出根據(jù)示例性實施例的對運動矢量進行解碼的方法的流程圖。

      最佳模式

      根據(jù)示例性實施例的一方面,提供了一種對運動矢量進行編碼的方法,所述方法包括:通過估計當前塊的運動矢量,基于估計的結果將多個運動矢量預測候選中的第一運動矢量預測候選確定為當前塊的運動矢量預測,基于當前塊的運動矢量和當前塊的運動矢量預測來產生關于運動矢量的信息;通過使用多個運動矢量預測候選中的第二運動矢量預測候選和關于運動矢量的信息產生虛擬運動矢量,產生虛擬運動矢量和多個運動矢量預測候選之間的矢量差,對矢量差和關于運動矢量的信息進行比較,從多個運動矢量預測候選中選擇性地排除第二運動矢量預測候選;對關于當前塊的運動矢量的信息和關于當前塊的運動矢量預測信息進行編碼。

      根據(jù)是另一示例性實施例的一方面,提供了一種對運動矢量進行解碼的方法,所述的方法包括:對關于當前塊的運動矢量的信息進行解碼;通過使用多個運動矢量預測候選中的預定的運動矢量預測候選和關于所述運動矢量的解碼的信息產生虛擬運動矢量,產生虛擬運動矢量和多個運動矢量預測候選之間的矢量差,對產生的矢量差和關于運動矢量的解碼的信息進行比較,從多個運動矢量預測候選中選擇性地排除預定的運動矢量預測候選;將從多個運動矢量預測候選中沒有排除的運動矢量預測候選的運動矢量預測確定為當前塊的運動矢量預測,并基于確定的運動矢量預測和關于運動矢量的解碼的信息恢復當前塊的運動矢量。

      根據(jù)是另一示例性實施例的一方面,提供了一種用于對運動矢量進行編碼的設備,所述設備包括:運動矢量估計器,通過估計當前塊的運動矢量,基于當前塊的運動矢量和當前塊的運動矢量預測產生關于運動矢量的信息,基于估計的結果將多個運動矢量預測候選中的第一運動矢量預測候選確定為當前塊的運動矢量預測;候選確定器,通過使用多個運動矢量預測候選中的第二運動矢量預測候選和關于運動矢量的信息產生虛擬運動矢量,產生虛擬運動矢量和多個運動矢量預測候選之間的矢量差,對矢量差和關于運動矢量的信息進行比較,從多個運動矢量預測候選中選擇性地排除第二運動矢量預測候選;運動矢量編碼器,對關于運動矢量的信息和關于當前塊的運動矢量預測的信息進行編碼。

      根據(jù)是另一示例性實施例的一方面,提供了一種用于對運動矢量進行解碼的設備,所述設備包括:運動矢量解碼器,對關于當前塊的運動矢量的信息進行解碼;候選確定器,通過使用多個運動矢量預測候選中的預定的運動矢量預測候選和關于所述運動矢量的解碼的信息產生虛擬運動矢量,產生虛擬運動矢量和多個運動矢量預測候選之間的矢量差,對產生的矢量差和關于運動矢量的解碼的信息進行比較,從多個運動矢量預測候選中選擇性地排除預定的運動矢量預測候選;運動矢量恢復單元,將從多個運動矢量預測候選中沒有排除的運動矢量預測候選的運動矢量預測候選確定為當前塊的運動矢量預測,并基于確定的運動矢量預測和關于運動矢量的解碼的信息恢復當前塊的運動矢量。

      根據(jù)另一示例性實施例的一方面,提供了一種實施了用于執(zhí)行對運動矢量進行編碼和解碼的方法的計算機程序的計算機可讀記錄介質。

      具體實施方式

      以下,將參照附圖更全面地描述一個或多個示例性實施例。當諸如“…中的至少一個”的表述位于一列元件之后時,其修飾整列元件而不是修飾列出的單個元件。

      以下,“圖像”可表示視頻的靜止圖像或運動圖像(即,視頻本身)。

      圖1是根據(jù)示例性實施例的用于對圖像進行編碼的設備100的框圖。

      參照圖1,用于對圖像進行編碼的設備100包括最大編碼單元劃分器110、編碼深度確定器120、圖像數(shù)據(jù)編碼器130和編碼信息編碼器140。

      最大編碼單元劃分器110可基于最大編碼單元(即,最大尺寸的編碼單元)劃分當前幀或當前像條。也就是說,最大編碼單元劃分器110可將當前幀或當前像條劃分為至少一個最大編碼單元。

      根據(jù)示例性實施例,可使用最大編碼單元和深度表示編碼單元。如上所述,最大編碼單元表示當前幀的編碼單元中具有最大尺寸的編碼單元,所述深度表示分層減少編碼單元的程度。隨著深度的增加,編碼單元可從最大編碼單元減少為最小編碼單元,其中,最大編碼單元的深度被定義為最小深度并且最小編碼單元的深度被定義為最大深度。由于編碼單元的尺寸隨著深度的增加從最大編碼單元減少,第k深度的子編碼單元可包括多個第(k+n)深度的子編碼單元(k和n是等于或大于1的整數(shù))。

      根據(jù)將被編碼的幀的尺寸的增加量,按照更大的編碼單元對圖像進行編碼可引起更高的圖像壓縮率。然而,如果固定更大的編碼單元,則可能沒有通過反映連續(xù)變化的圖像特征有效地對圖像進行編碼。

      例如,當對平滑區(qū)域(諸如,?;蛱炜?進行編碼時,編碼單元越大,可增加的壓縮率越多。然而,當對復雜區(qū)域(諸如,人或建筑物)進行編碼時,編碼單元越小,可增加的壓縮率越多。

      因此,根據(jù)示例性實施例,可針對每個幀或每個像條設置不同的最大編碼單元和不同的最大深度。由于最大深度表示編碼單元可減少的最大次數(shù),可根據(jù)最大深度可變地設置包括在最大編碼單元中的每個最小編碼單元的尺寸。

      編碼深度確定器120確定最大深度??苫诼适д?RD)代價的計算確定最大深度??舍槍γ總€幀或每個像條或針對每個最大編碼單元不同地確定最大深度。確定的最大深度被提供給編碼信息編碼器140,根據(jù)最大編碼單元的圖像數(shù)據(jù)被提供給圖像數(shù)據(jù)編碼器130。

      最大深度可表示具有可被包括在最大編碼單元中的最小尺寸的編碼單元(即,最小編碼單元)。換句話說,如稍后將參照圖8a和圖8b進行的描述,最大編碼單元可根據(jù)不同的深度被劃分為具有不同的尺寸的子編碼單元。另外,可基于具有不同的尺寸的處理單元對包括在最大編碼單元中的具有不同尺寸的子編碼單元進行預測或變換。執(zhí)行所述變換以將空間域像素值變換為頻域的系數(shù),并且所述變換可以是離散余弦變換或Karhunen Loever變換(KLT)。換句話說,用于對圖像進行編碼的設備100可基于具有多種尺寸和多種形狀的處理單元執(zhí)行關于圖像編碼的多個處理操作。為了對圖像數(shù)據(jù)進行編碼,執(zhí)行處理操作(諸如,預測、變換和熵編碼中的至少一個),其中,具有相同的尺寸或不同的尺寸的處理單元可被用于每個操作。

      例如,用于對圖像進行編碼的設備100可選擇與編碼單元不同的處理單元以預測所述編碼單元。

      當編碼單元的尺寸是2N×2N(其中,N是正整數(shù))時,用于預測的處理單元可以是2N×2N、2N×N、N×2N和N×N。換句話說,可基于這樣的形狀的處理單元執(zhí)行運動預測,其中,在所述形狀中編碼單元的高度和寬度中的至少一個被均等地劃分為兩個。以下,作為預測的基礎的處理單元被定義為“預測單元”。

      預測模式可以是幀內模式、幀間模式、跳過模式中的至少一個,可僅針對具有特定尺寸或特定形狀的預測單元執(zhí)行特定預測模式。例如,可僅針對形狀是正方形的具有尺寸為2N×2N和N×N的預測單元執(zhí)行幀內模式。另外,可僅針對具有尺寸為2N×2N的預測單元執(zhí)行跳過模式。如果在編碼單元中存在多個預測單元,則可在針對每個預測單元執(zhí)行預測之后,選擇具有最少的編碼錯誤的預測模式。

      可選地,用于對圖像進行編碼的設備100可基于具有與編碼單元不同的尺寸的處理單元對圖像數(shù)據(jù)執(zhí)行變換。針對編碼單元中的變換,可基于具有與編碼單元尺寸相同的尺寸或小于編碼單元的尺寸的尺寸的處理單元執(zhí)行所述變換。以下,作為變換的基礎的處理單元被定義為“變換單元”。

      編碼深度確定器120可使用基于拉格朗日乘子的RD優(yōu)化來確定包括在最大編碼單元中的子編碼單元。換句話說,編碼深度確定器120可確定從最大編碼單元劃分的多個子編碼單元具有的形狀,其中,多個子編碼單元根據(jù)它們的深度具有不同的尺寸。圖像數(shù)據(jù)編碼器130通過基于由編碼深度確定器120確定的劃分形狀對最大編碼單元進行編碼來輸出比特流。

      編碼信息編碼器140對關于由編碼深度確定器120確定的最大編碼單元的編碼模式的信息進行編碼。換句話說,編碼信息編碼器140通過對以下信息進行編碼來輸出比特流:關于最大編碼單元的劃分形狀的信息、關于最大深度的信息和關于針對每個深度的子編碼單元的編碼模式的信息。關于子編碼單元的編碼模式的信息可包括:關于子編碼單元的預測單元的信息、關于針對每個預測單元的預測模式的信息和關于子編碼單元的變換單元的信息。

      關于最大編碼單元的劃分形狀的信息可以是表示每個編碼單元是否被劃分的信息。例如,當對最大編碼單元進行劃分和編碼時,對表示最大編碼單元是否被劃分的信息進行編碼。另外,當對從最大編碼單元劃分出的子編碼單元進行劃分和編碼時,對表示子編碼單元是否被劃分的信息進行編碼。表示子編碼單元是否被劃分的信息可以是標志信息。

      由于針對每個最大編碼單元存在具有不同的尺寸的子編碼單元,并且必須針對每個子編碼單元確定關于編碼模式的信息,所以可針對一個最大編碼單元確定關于至少一個編碼模式的信息。

      用于對圖像進行編碼的設備100可根據(jù)深度的增加通過均等地將最大編碼單元的高度和寬度兩者劃分為兩個來產生子編碼單元。也就是說,當?shù)趉深度的編碼單元的尺寸是2N×2N時,第(k+1)深度的編碼單元的尺寸是N×N。

      因此,用于對圖像進行編碼的設備100可考慮圖像特征基于最大編碼單元的尺寸和最大深度確定針對每個最大編碼單元的最佳劃分形狀。通過考慮圖像特征可變地調整最大編碼單元的尺寸并通過將最大編碼單元劃分為不同深度的子編碼單元對圖像進行編碼,可對具有各種分辨率的圖像進行更有效的編碼。

      圖2是根據(jù)示例性實施例的用于對圖像進行解碼的設備200的框圖。

      參照圖2,用于對圖像進行解碼的設備200包括:圖像數(shù)據(jù)采集單元210、編碼信息提取器220和圖像數(shù)據(jù)解碼器230。

      圖像數(shù)據(jù)采集單元210通過對由用于對圖像進行解碼的設備200接收的比特流進行解析來根據(jù)最大編碼單元獲得圖像數(shù)據(jù),并將所述圖像數(shù)據(jù)輸出到圖像數(shù)據(jù)解碼器230。圖像數(shù)據(jù)采集單元210可從當前幀或當前像條的頭提取關于當前幀或當前像條的最大編碼單元的信息。換句話說,圖像數(shù)據(jù)采集單元210按照最大編碼單元對比特流進行劃分,從而圖像數(shù)據(jù)解碼器230可根據(jù)最大編碼單元對圖像數(shù)據(jù)進行解碼。

      編碼信息提取器220通過對由用于對圖像進行解碼的設備200接收的比特流進行解析來從當前幀的頭提取以下信息:關于最大編碼單元的信息、關于最大深度的信息、關于最大編碼單元的劃分形狀的信息、關于子編碼單元的編碼模式的信息。關于劃分形狀的信息和關于編碼模式的信息被提供給圖像數(shù)據(jù)解碼器230。

      關于最大編碼單元的劃分形狀的信息可包括在最大編碼單元中包括的關于根據(jù)深度具有不同尺寸的子編碼單元的信息,并且可以是表示每個編碼單元是否被劃分的信息(例如,標志信息)。關于編碼模式的信息可包括:關于根據(jù)子編碼單元的預測單元的信息、關于預測模式的信息和關于變換單元的信息。

      圖像數(shù)據(jù)解碼器230通過基于由編碼信息提取器220提取的信息對每個最大編碼單元的圖像數(shù)據(jù)進行解碼來恢復當前幀。

      圖像數(shù)據(jù)解碼器230可基于關于最大編碼單元的劃分形狀的信息對包括在最大編碼單元中的子編碼單元進行解碼。解碼處理可包括:包括幀內預測和運動補償?shù)膸g預測處理和逆變換處理。

      圖像數(shù)據(jù)解碼器230可基于關于根據(jù)子編碼單元的預測單元的信息和關于預測模式的信息執(zhí)行幀內預測或幀間預測以預測子編碼單元。圖像數(shù)據(jù)解碼器230可還基于關于子編碼單元的變換單元的信息針對每個子編碼單元執(zhí)行逆變換。

      圖3示出根據(jù)示例性實施例的分層編碼單元。

      參照圖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,最大編碼單元的尺寸被設置為64×64,最大深度被設置為2。

      針對分辨率為1920×1080的圖像數(shù)據(jù)320,最大編碼單元的尺寸被設置為64×64,最大深度被設置為3。針對分辨率為352×288的圖像數(shù)據(jù)330,最大編碼單元的尺寸被設置為16×16,最大深度被設置為2。

      當分辨率高或者數(shù)據(jù)量大時,編碼單元的最大尺寸可以相對大以增加壓縮率并精確地反映圖像特征。因此,針對具有比圖像數(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的子編碼單元。由于隨著深度增加基于更小的子編碼單元對圖像進行編碼,示例性實施例適于對包括多個分鐘場景的圖像進行編碼。

      圖4是根據(jù)示例性實施例的基于編碼單元的圖像編碼器400的框圖。

      幀內預測單元410在當前幀405中對幀內模式的預測單元執(zhí)行幀內預測,并且運動估計器420和運動補償器425使用當前幀405和參考幀495對幀間模式的預測單元執(zhí)行運動補償和幀間預測。

      基于從幀內預測單元410、運動估計器420和運動補償器425輸出的預測單元產生殘差值,并且產生的殘差值通過經過變換器430和量化器440被輸出為量化的變換系數(shù)。

      量化的變換系數(shù)通過經過反量化器460和逆變換器470被恢復為殘差值,通過經過去塊單元480和環(huán)路濾波單元490對恢復的殘差值進行后處理,并且恢復的殘差值被輸出為參考幀495。量化的變換系數(shù)通過經過熵編碼編碼器450可被輸出為比特流455。

      為了基于根據(jù)示例性實施例的編碼方法執(zhí)行編碼,圖像編碼器400的組件基于最大編碼單元、根據(jù)深度的子編碼單元、預測單元和變換單元執(zhí)行圖像編碼處理,其中,所述圖像編碼器400的組件包括:幀內預測單元410、運動估計器420、運動補償器425、變換器430、量化器440、熵編碼器450、反量化器460、逆變換器470、去塊單元480和環(huán)路濾波單元490。

      圖5是根據(jù)示例性實施例的基于編碼單元的圖像解碼器500的框圖。

      參照圖5,比特流505經過解析器510從而對將被解碼的編碼的圖像數(shù)據(jù)和被用于解碼的編碼信息進行解析。編碼的圖像數(shù)據(jù)通過經過熵解碼器520和反量化器530被輸出為反量化的數(shù)據(jù),并通過經過逆變換器540被恢復為殘差值。通過將殘差值添加到幀內預測單元550的幀內預測結果或運動補償單元560的運動補償結果根據(jù)編碼單元來恢復殘差值。恢復的編碼單元通過經過去塊單元570和環(huán)路濾波單元580被用于下一個編碼單元或下一個幀的預測。

      為了基于根據(jù)示例性實施例的解碼方法執(zhí)行解碼,圖像解碼器500的組件基于最大編碼單元、根據(jù)深度的子編碼單元、預測單元和變換單元執(zhí)行圖像解碼處理,其中,所述圖像解碼器500的組件包括:解析器510、熵解碼器520、反量化器530、逆變換器540、幀內預測單元550、運動補償器560、去塊單元570和環(huán)路濾波單元580。

      具體來講,幀內預測單元550和運動補償器560通過考慮最大編碼單元和深度來確定子編碼單元中的預測單元和預測模式,逆變換器540通過考慮變換單元的尺寸執(zhí)行逆變換。

      圖6示出根據(jù)示例性實施例的最大編碼單元、子編碼單元和預測單元。

      圖1中示出的用于對圖像進行編碼的設備100和圖2中示出的用于對圖像進行解碼的設備200使用分層編碼單元以考慮圖像特征執(zhí)行編碼和解碼??筛鶕?jù)圖像特征適應性地設置最大編碼單元和最大深度,或者可根據(jù)用戶的需要可變地設置最大編碼單元和最大深度。

      在圖6中,分層編碼單元結構600具有最大編碼單元610,其中,所述最大編碼單元610的高度和寬度是64且最大深度是4。深度沿著分層編碼單元結構600的縱軸增加,并且隨著深度增加,子編碼單元620到650的高度和寬度減少。沿著分層編碼結構600的橫軸示出最大編碼單元610和子編碼單元620到子編碼單元650的預測單元。

      最大編碼單元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ù)每個深度示出預測單元的示例。也就是說,深度為0的最大編碼單元610的預測單元可以是尺寸與編碼單元610相同的(即,64×64)預測單元、或尺寸小于尺寸為64×64的編碼單元610的以下預測單元:尺寸為64×32的預測單元612、尺寸為32×64的預測單元614、或尺寸為32×32的預測單元616。

      深度為1且尺寸為32×32的編碼單元620的預測單元可以是尺寸與編碼單元620相同的(即,32×32)預測單元、或尺寸小于尺寸為32×32的編碼單元620的以下預測單元:尺寸為32×16的預測單元622、尺寸為16×32的預測單元624、或尺寸為16×16的預測單元626。

      深度為2且尺寸為16×16的編碼單元630的預測單元可以是尺寸與編碼單元630相同的(即,16×16)預測單元、或尺寸小于尺寸為16×16的編碼單元630的以下預測單元:尺寸為16×8的預測單元632、尺寸為8×16的預測單元634、或尺寸為8×8的預測單元636。

      深度為3且尺寸為8×8的編碼單元640的預測單元可以是尺寸與編碼單元640相同的(即,8×8)預測單元、或尺寸小于尺寸為8×8的編碼單元640的以下預測單元:尺寸為8×4的預測單元642、尺寸為4×8的預測單元644、或尺寸為4×4的預測單元646。

      最后,深度為4且尺寸為4×4的編碼單元650是最大深度的編碼單元,并且編碼單元650的預測單元可以是尺寸為4×4的預測單元650。然而,最大深度的編碼單元可不總是與預測單元的尺寸相同。與編碼單元610到編碼單元650相似地,最大深度的編碼單元可被劃分為具有小于所述編碼單元的尺寸的預測單元并可執(zhí)行預測。

      圖7示出根據(jù)示例性實施例的編碼單元和變換單元。

      圖1中示出的用于對圖像進行編碼的設備100和圖2中示出的用于對圖像進行解碼的設備200使用最大編碼單元本身或從最大編碼單元劃分出的等于或小于最大編碼單元的子編碼單元來執(zhí)行編碼和解碼。在編碼和解碼過程中,不論編碼單元和預測單元如何,為了最高的壓縮率選擇用于變換的變換單元的尺寸。例如,參照圖7,當當前編碼單元710的尺寸為64×64時,可使用尺寸為32×32的變換單元720執(zhí)行變換。

      圖8a到圖8d示出根據(jù)示例性實施例的編碼單元810、預測單元860和變換單元870的劃分形狀。

      圖8a到圖8b示出根據(jù)示例性實施例的編碼單元810和預測單元860。

      圖8a示出由圖1中示出的用于對圖像進行編碼的設備100選擇的劃分形狀,以對最大編碼單元810進行編碼。用于對圖像進行編碼的設備100將最大編碼單元810劃分為多種形狀,執(zhí)行編碼,通過基于RD代價對多種劃分形狀的編碼結果進行相互比較來選擇最佳劃分形狀。當照其原樣對最大編碼單元810進行編碼是最佳時,可對最大編碼單元810進行編碼而不需如圖8a到圖8d所示劃分最大編碼單元810。

      參照圖8b,通過將深度是0的最大編碼單元810劃分為深度為等于或大于1的子編碼單元對最大編碼單元810進行編碼。也就是說,將最大編碼單元810劃分為深度為1的4個子編碼單元,并且將深度為1的所有或一些子編碼單元劃分為深度為2的子編碼單元。

      將深度為1的子編碼單元中的位于右上側的子編碼單元和位于左下側的子編碼單元劃分為深度為等于或大于2的子編碼單元。可將深度為等于或大于2的一些子編碼單元劃分為深度為等于或大于3的子編碼單元。

      圖8b示出最大編碼單元810的預測單元860的劃分形狀。

      參照圖8b,可從最大編碼單元810不同地劃分最大編碼單元810的預測單元860。換句話說,每個子編碼單元的預測單元可小于相應的子編碼單元。

      例如,深度為1的子編碼單元中位于右下側的子編碼單元854的預測單元可小于子編碼單元854。另外,深度為2的子編碼單元814、816、818、828、850和852中的一些子編碼單元814、816、850和852的預測單元可分別小于子編碼單元814、816、850和852。

      另外,深度為3的子編碼單元822、832和848的預測單元可分別小于子編碼單元822、832和848。所述預測單元可具有以高度或寬度的方向將相應的子編碼單元均等地劃分為兩個的形狀,或者可具有以高度和寬度的方向將相應的子編碼單元均等地劃分為四個的形狀。

      圖8c和圖8d示出根據(jù)示例性實施例的預測單元860和變換單元870。

      圖8c示出圖8b中示出的最大編碼單元810的預測單元860的劃分形狀,圖8d示出最大編碼單元810的變換單元870的劃分形狀。

      參照圖8d,可從預測單元860不同地設置變換單元870的劃分形狀。

      例如,即使選擇具有這樣的形狀的深度為1的編碼單元854的預測單元,也可選擇具有與編碼單元854相同的尺寸的變換單元,其中,所述形狀是指將編碼單元854的高度均等地劃分為兩個的形狀。同樣地,即使選擇具有這樣的形狀的深度為2的編碼單元814和編碼單元850的預測單元,也可選擇具有與編碼單元814和編碼單元850中的每個編碼單元的原始尺寸相同的尺寸的變換單元,其中,所述形狀是指將編碼單元814和編碼單元850中的每個編碼單元的高度均等地劃分為兩個的形狀。

      可選擇具有小于預測單元的尺寸的變換單元。例如,當選擇具有這樣的形狀的深度為2的編碼單元852的預測單元時,其中,所述形狀是指將編碼單元852的寬度均等地劃分為兩個的形狀,可選擇具有以高度和寬度方向將編碼單元852均等地劃分為四個的形狀的變換單元,其中,所述變換單元具有小于預測單元的形狀的尺寸。

      圖9是根據(jù)示例性實施例的用于對運動矢量進行編碼的設備900的框圖。

      在圖9中詳細示出可被包括在圖1中示出的用于對圖像進行編碼的設備100或圖4中示出的圖像編碼器400中的用于對運動矢量進行編碼的設備900。參照圖9,用于對運動矢量進行編碼的設備900包括:運動矢量估計器910、候選確定器920和運動矢量編碼器930。

      為了使用幀間預測(即,時間上的預測)對已編碼的塊進行解碼,需要關于運動矢量的信息,所述關于運動矢量的信息表示參考圖像中的相似塊和當前塊之間的相對位置差。因此,當對圖像進行編碼時,對關于運動矢量的信息進行編碼并將其插入到比特流。當直接對關于運動矢量的信息進行編碼和插入時,增加了用于對關于運動矢量的信息進行編碼的開銷,因此圖像數(shù)據(jù)的壓縮率降低了。

      因此,在圖像編碼中,預測當前塊的運動矢量,僅對作為預測的結果產生的運動矢量預測和原始運動矢量之間的原始運動矢量差進行編碼和插入,從而壓縮了關于運動矢量的信息。

      在運動矢量的預測編碼中,可存在顯式模式和隱式模式。

      在編解碼器(諸如,MPEG-4H.264/MPEG-4先進視頻編碼(AVC))中,與當前塊相鄰的先前編碼的塊的運動矢量可被用于預測當前塊的運動矢量。與當前塊的左側、上側和右上側相鄰的先前編碼的塊的運動矢量的中值被用作當前塊的運動矢量預測。由于通過使用相同的方法來預測使用幀間預測編碼的所有的塊的運動矢量,可不單獨地對關于當前塊的運動矢量預測的信息進行編碼。然而,根據(jù)一個或多個示例性實施例的用于對圖像進行編碼的設備100或圖像編碼器400使用隱式模式和顯式模式兩者,以準確地預測運動矢量,其中,在所述隱式模式中未單獨地對關于運動矢量預測的信息進行編碼,其中,在所述顯式模式中未對關于運動矢量預測的信息進行編碼。在顯式模式中,對關于從多個運動矢量預測候選中的被用作當前塊的運動矢量預測的運動矢量預測的信息進行編碼,并作為序列參數(shù)、像條參數(shù)或塊參數(shù)將其輸入到比特流。

      圖9示出在根據(jù)顯式模式對運動矢量進行編碼時執(zhí)行預測編碼的設備。

      運動矢量估計器910估計當前塊的運動矢量。在至少一個參考圖像中搜索與當前塊相似或相同的塊,并作為搜索的結果估計運動矢量,其中,運動矢量是當前塊和搜索的參考圖像之間的相對位置差?;诮^對誤差和(SAD)搜索與當前塊相似或相同的塊,并作為搜索的結果,可估計當前塊的運動矢量。

      另外,運動矢量估計器910基于包括在與當前塊相鄰的先前編碼的區(qū)域中的塊的運動矢量來預測當前塊的運動矢量。換句話說,將包括在與當前塊相鄰的先前編碼的區(qū)域中的塊的運動矢量設置為運動矢量預測候選,并確定運動矢量預測候選中與當前塊的估計的運動矢量最相似的運動矢量預測候選。

      在編解碼器(諸如,MPEG-4H.264/MPEG-4先進視頻編碼(AVC))中,與當前塊的左側、上側和右上側相鄰的先前編碼的塊的運動矢量的中值被用作當前塊的運動矢量預測。由于通過使用先前編碼的塊的運動矢量來預測已編碼的塊的運動矢量并且僅使用一個運動矢量預測,可不單獨地對關于運動矢量預測的信息進行編碼。換句話說,使用幀間預測編碼的塊的運動矢量預測的數(shù)量是一個。

      然而,當準確地預測當前塊的運動矢量時,可以以高壓縮率對運動矢量進行編碼。在這里,根據(jù)示例性實施例,選擇多個運動矢量預測候選之一并將其用作當前塊的運動矢量預測,從而可以以高壓縮率對當前塊的運動矢量進行編碼。以下,將詳細描述通過使用多個運動矢量預測候選對當前塊的運動矢量進行編碼的方法。

      圖10a和圖10b示出根據(jù)示例性實施例的運動矢量預測候選。

      參照圖10a,在預測運動矢量的方法中,與當前塊相鄰的先前編碼的塊的運動矢量之一可被用作當前塊的運動矢量預測。

      與當前塊的上側相鄰的塊中,以下塊的所有運動矢量可被用作當前塊的運動矢量預測候選:在最左側的塊a0、在與左側相鄰的最上側的塊b0、與右上側相鄰的塊c、與左上側相鄰的塊d和與左下側相鄰的塊e。

      在根據(jù)一個或多個示例性實施例的對圖像進行編碼和解碼的方法中,基于具有由深度分類的多個尺寸的編碼單元執(zhí)行圖像編碼和圖像解碼,并因此與左下側相鄰的塊的運動矢量可被用作運動矢量預測的候選。

      參照圖10b,與當前塊相鄰的所有塊的運動矢量可被用作運動矢量預測候選。換句話說,不僅與上側相鄰的塊中的最左側的塊a0的運動矢量可被用作運動矢量預測候選,與上側相鄰的a0到aN的所有塊的運動矢量也可被用作運動矢量預測候選。另外,不僅與左側相鄰的塊中的最上側的塊b0的運動矢量可被用作運動矢量預測候選,與左側相鄰的b0到bN的所有塊的運動矢量也可被用作運動矢量預測候選。

      另外,相鄰塊的運動矢量的中值可被用作運動矢量預測候選。換句話說,中值mv_a0、mv_b0或mv_c可被用作當前塊的運動矢量預測的候選。在此,mv_a0是塊a0的運動矢量,mv_b0是塊b0的運動矢量,mv_c是塊c的運動矢量。

      然而,如將參照圖10c到圖10e進行的詳細描述,可根據(jù)當前快的尺寸和相鄰塊的尺寸限制當前塊的運動矢量預測候選。

      圖10c到圖10e示出根據(jù)示例性實施例的具有多種尺寸的與當前塊相鄰的塊。

      如上所述,在根據(jù)一個或多個示例性實施例的對圖像進行編碼和解碼的方法中,具有根據(jù)深度確定的多種尺寸的編碼單元和預測單元可被用于對圖像進行編碼。因此,由于與當前塊相鄰的塊可以是多種尺寸,當當前塊的尺寸和一些相鄰塊的尺寸彼此顯著地不同時,可不將所述一些相鄰塊的運動矢量用作運動矢量預測候選。

      參照圖10c,與當前快1010的上側相鄰的塊1014到塊1018小于當前塊1010。由于與當前塊1010相鄰并具有與當前塊1010相同的尺寸的塊1012的運動矢量可以與當前塊1010的運動矢量相同或相似,運動矢量估計器910可僅將塊1012的運動矢量用作運動矢量預測的候選。

      雖然尺寸不相同,可僅將具有預定的尺寸或大于所述預定的尺寸的相鄰塊的運動矢量用作運動矢量預測候選。例如,可僅將塊1012和塊1018的運動矢量用作運動矢量預測候選,其中,塊1012和塊1018的尺寸為當前塊1010的1/4或大于當前塊1010的1/4。

      參照圖10d,與當前塊1020的左側相鄰的塊1022的尺寸比當前塊1020的尺寸大16倍,從而存在尺寸方面的巨大差異。由于所述巨大差異,與左側相鄰的塊1022的運動矢量可能不相同或不相似于當前塊1020的運動矢量。因此,與左側相鄰的塊1022的運動矢量未被用作當前塊1020的運動矢量預測候選,并且可僅將與上側相鄰的塊1024的運動矢量和與左上側相鄰的塊1026的運動矢量用作運動矢量預測候選。

      參照圖10e,當前塊1030的尺寸大于所有相鄰的塊1031到塊1037的尺寸。在此,當所有相鄰的塊1031到塊1037的運動矢量被用作當前塊1030的運動矢量預測候選時,當前塊1030的運動矢量預測候選的數(shù)量可能會高。隨著當前塊1030和相鄰的塊1031到塊1037之間的尺寸差異增加,運動矢量預測候選的數(shù)量也增加。因此,運動矢量估計器910可不將相鄰的塊中的一些塊的運動矢量用作當前塊1030的運動矢量預測候選。

      例如,在圖10e中,可不將與左下側相鄰的塊1031的運動矢量和與右上側相鄰的塊1037用作當前塊1030的運動矢量預測候選。

      更一般來說,當當前塊1030的尺寸大于預定的尺寸時,可不將相鄰塊中的以特定方向相鄰的塊的運動矢量用作當前塊1030的運動矢量預測候選。

      圖11a到圖11c示出根據(jù)另一示例性實施例的運動矢量預測候選。

      圖11a示出確定雙向預測圖像(B圖像)的運動矢量預測候選的方法。當包括當前塊的當前圖像是執(zhí)行雙向預測的B圖像時,基于時間上的距離產生的運動矢量可以是運動矢量預測候選。

      可通過使用在時間上早于當前圖像1110的圖像1112的塊1120的運動矢量,確定當前圖像1110的當前塊1100的運動矢量預測候選mv_temporal,其中,塊1120被布置在與當前塊1100并列的位置。例如,當相對于時間上晚于當前圖像1110的圖像1114的搜索的塊1122產生塊1120的運動矢量mv_colA時,其中,塊1120被布置在與當前塊1100并列的位置,可通過以下方式確定當前塊1100的運動矢量預測候選mv_L0A和mv_L1A:

      mv_L1A=(t1/t2)*mv_colA

      mv_L0A=mv_L1A-mv_colA

      在此,mv_L0A表示相對于時間上早于當前圖像1110的圖像1112的當前塊1110的運動矢量預測候選,mv_L1A表示相對于時間上晚于當前圖像1110的圖像1114的當前塊1100的運動矢量預測候選。

      在圖11a中,作為B圖像的當前圖像1110被插入在時間上早于當前圖像1110的圖像1112和時間上晚于當前圖像1110的圖像1114之間。這里,當相對于時間上晚于當前圖像1110的圖像1114產生塊1120的運動矢量mv_colA時,其中,塊1120被布置在與當前塊1100并列的位置,可基于mv_L1A準確地預測當前塊1100的運動矢量。換句話說,與mv_colA是具有與圖11a中示出的方向相反的方向的運動矢量的情況(即,相對于在時間上早于當前圖像1110的圖像1112之前的另一圖像產生mv_colA的情況)比較,當mv_colA是具有圖11a中示出的方向的運動矢量時,可更準確地預測當前塊1100的運動矢量。

      因此,當從當前塊1110到被布置在與當前塊1100并列的位置的塊1120的方向是List0時,運動矢量mv_colA需要在List1方向上,因此當前圖像1110可如圖11a所示被插入在圖像1112和圖像1114之間,從而可基于mv_colA準確地預測當前塊1100的運動矢量。

      此外,根據(jù)時間順序示出了圖11a中示出的圖像1110到圖像1114,因此可基于圖像序列號(POC)產生當前塊的運動矢量預測候選mv_temporal。由當前塊參考的圖像可以是在圖11a中示出的除相鄰圖像1112和1114以外的圖像,因此基于POC產生當前塊的運動矢量預測候選。

      例如,當當前圖像的POC是CurrPOC并且由當前圖像參考的圖像的POC是CurrRefPOC時,可通過以下方式產生當前塊的運動矢量預測候選:

      Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)

      mv_temporal=Scale*mv_colA

      在此,ColPOC是時間上早于當前圖像1110的圖像1112的POC并包括塊1120,ColRefPOC是時間上晚于當前圖像1110的圖像1114的POC并包括由塊1120參考的塊1122。

      圖11b示出產生B圖像的運動矢量預測候選的另一方法。圖11b中的方法與圖11a中的方法的區(qū)別在于:時間上晚于當前圖像1110的圖像1114包括被布置在與當前塊1100并列的位置的塊。

      參照圖11b,可通過使用被布置在與圖像1114的當前塊1100并列的位置的塊1130的運動矢量產生當前圖像1110的當前塊1100的運動矢量預測候選,其中,圖像1114時間上晚于當前圖像1110。例如,當相對于圖像1112的搜索的塊1132產生被布置在與當前塊1100并列的位置的塊1130的運動矢量mv_colB時,其中,圖像1112時間上早于當前圖像1110,可通過以下方式確定當前塊1100的運動矢量預測候選mv_L0B和mv_L1B:

      mv_L0B=(t3/t4)*mv_colB

      mv_L1B=mv_L0B-mv_colB

      在此,mv_L0B表示相對于圖像1112的當前塊1110的運動矢量預測候選,其中,圖像1112時間上早于當前圖像1110,mv_L1B表示相對于圖像1114的當前塊1100的運動矢量預測候選,其中,圖像1114時間上晚于當前圖像1110。

      相似于圖11a,在圖11b中,作為B圖像的當前圖像1110被插入在時間上早于當前圖像1110的圖像1112和時間上晚于當前圖像1110的圖像1114之間。因此,當相對于時間上早于當前圖像1110的圖像1112產生被布置在與當前塊1100并列的位置的塊1130的運動矢量mv_colB時,可基于mv_L0B準確地預測當前塊1100的運動矢量。換句話說,與mv_colB是具有與圖11b中示出的方向相反的方向的運動矢量的情況(即,相對于在時間上晚于當前圖像1110的圖像1114之后的另一圖像產生mv_colB的情況)比較,當mv_colB是具有圖11b中示出的方向的運動矢量時,可更準確地預測當前塊1100的運動矢量。

      因此,當從當前塊1110到被布置在與當前塊1100并列的位置的塊1130的方向是List1時,塊1130的運動矢量mv_colB需要在List0方向上,因此當前圖像1110可如圖11b所示被插入在圖像1112和圖像1114之間,從而可基于mv_colB準確地預測當前塊1100的運動矢量。

      此外,由當前塊參考的圖像可以是在圖11b中示出的除相鄰圖像1112和1114以外的圖像,因此基于POC產生當前塊的運動矢量預測候選。

      例如,當當前圖像的POC是CurrPOC并且由當前圖像參考的圖像的POC是CurrRefPOC時,可通過以下方式產生當前塊的運動矢量預測候選:

      Scale=(CurrPOC-CurrRefPOC)/(ColPOC-ColRefPOC)

      mv_temporal=Scale*mv_colB

      在此,ColPOC是時間上晚于當前圖像1110的圖像1114的POC并包括塊1130,ColRefPOC是時間上早于當前圖像1110的圖像1112的POC并包括由塊1130參考的塊1132。

      圖11c示出預測圖像(P圖像)的運動矢量預測候選。

      參照圖11c,可通過使用被布置在與圖像1112的當前塊1100并列的位置的塊1140的運動矢量確定當前圖像1110的當前塊1100的運動矢量預測候選,其中,圖像1112時間上早于當前圖像1110。例如,當相對于圖像1116的搜索的塊1142產生被布置在與當前塊1100并列的位置的塊1140的運動矢量mv_colC時,其中,圖像1116時間上早于當前圖像1110,可通過以下方式確定當前塊1100的運動矢量預測候選mv_L0C:

      mv_L0C=(t6/t5)*mv_colC

      如與圖11a和圖11b相關的描述,可基于POC確定mv_L0C??苫谝韵翽OC確定mv_L0C:當前圖像1110的POC、由當前圖像1110參考的圖像的POC、時間上早于當前圖像1110的圖像1112的POC和時間上早于當前圖像1110的圖像1116的POC。

      由于當前圖像1110是P圖像,與圖11a和圖11b不同,確定僅一個當前塊1100的運動矢量預測候選。

      另外,為了使用基于在圖11a和圖11b中的時間上的距離產生的運動矢量預測候選來預測當前塊的運動矢量,可還對這樣的信息進行編碼,其中,所述信息表示被布置在與當前塊1100并列的位置的塊1120和塊1130中被用于產生運動矢量預測的塊。這樣的信息可作為像條參數(shù)或序列參數(shù)被包括在像條頭或序列頭中。

      總的來說,根據(jù)圖10a、圖10b和圖11a到圖11c的運動矢量預測候選的組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可以是運動矢量預測候選的數(shù)量被減少的組:

      C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}

      在此,mv_x表示塊x的運動矢量,median()表示中值,并且mv_temporal表示通過使用與圖11到圖11c相關描述的時間上的距離產生的運動矢量預測候選。mv_a’表示mv_a0,mv_a1…,mv_aN中的第一個有效的運動矢量。例如,當使用幀內預測對塊a0進行編碼并參考當前塊和其它圖像時,塊a0的運動矢量mv_a0不是有效的運動矢量,因此mv_a’=mv_a1。此外,當塊a1的運動矢量不是不是有效的運動矢量時,mv_a’=mv_a2。相似地,mv_b’是mv_b0,mv_b1,…,mv_bN中的第一個有效的運動矢量,mv_c’是mv_c,mc_d和mv_e中的第一個有效的運動矢量。

      與當前塊相鄰的塊的運動矢量中的參考當前塊以外的圖像的塊的運動矢量不能有效地預測當前塊的運動矢量。因此,可從運動矢量預測候選的組C排除參考當前塊以外的圖像的塊的運動矢量。

      當用于對運動矢量進行編碼的設備900根據(jù)顯式模式對運動矢量進行編碼時,設備900還對這樣的信息進行編碼,其中,所述信息表示組C中被用于預測當前塊的運動矢量的運動矢量預測候選。換句話說,當用于對運動矢量進行編碼的設備900對運動矢量進行編碼時,設備900將二進制數(shù)分配給組C的相應的元素(即,運動矢量預測候選),并對與被用于預測當前塊的運動矢量的運動矢量預測候選相應的二進制數(shù)進行編碼。

      為了指定組C中的元素之一,分配并輸出每個與運動矢量預測候選相應的二進制數(shù)。因此,隨著組C中的元素的數(shù)量減少,可以以具有更少的比特的二進制數(shù)指定組C中的元素。

      因此,如果在組C中存在重疊的運動矢量預測候選,則可在從組C排除重疊的運動矢量預測候選之后分配二進制數(shù)。例如,當組C是如上所述的C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}并且mv_a’,mv_b’和mv_c’彼此相同時,可確定組C中存在兩個元素為C={mv_a’,mv_temporal}并可分配二進制數(shù)。當在排除重疊的運動矢量預測候選之前可使用3比特來指定組C中的五個元素時,在排除重疊的運動矢量預測候選之后可使用1比特來指定兩個元素。

      為了增加重疊的運動矢量預測候選被確定為當前塊的運動矢量預測的概率,而不是排除重疊的運動矢量預測候選,可添加預定的權重。如上所述,由于mv_a’,mv_b’和mv_c’彼此相同并且僅mv_a’被包括在組C中,預定的權重被添加到mv_a’,因此可增加mv_a’被用于預測當前塊的運動矢量的概率。

      此外,當存在一個運動矢量預測候選時,可能不對被用于指定運動矢量預測候選之一的二進制數(shù)進行編碼。例如,當組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均進行幀內預測時,組C是C={mv_temporal},因此實質上包括一個元素。因此,在這種情況下,用于對運動矢量進行編碼的設備900可能不對被用于指定運動矢量預測候選之一的二進制數(shù)進行編碼。

      可將除上面描述的運動矢量預測候選以外的運動矢量用作運動矢量預測候選對于本領域的普通技術人員是明顯的。

      另外,根據(jù)另一示例性實施例,候選確定器920可基于編碼結果的估計減少運動矢量預測候選的數(shù)量。

      如上所述,對單獨的信息進行編碼并將其包括在比特流中以在多個運動矢量預測候選中指定用于預測當前塊的運動矢量的運動矢量預測候選。因此,隨著組C中的元素的數(shù)量減少,可以以低比特對這樣的信息進行編碼,其中,所述信息是指在組C中指定用于預測當前塊運動矢量的運動矢量預測候選所需的信息。在這里,候選確定器920可通過使用預定的評價函數(shù)選擇性地從所有運動矢量預測候選中排除預定的運動矢量預測候選,其中,將參照圖12詳細描述所述預定的評價函數(shù)。

      圖12示出根據(jù)示例性實施例的減少運動矢量預測候選的方法。

      在圖12中,假設在組C中存在三個元素MVP1、MVP2和MVP3并且當前塊的運動矢量是MV。由于與當前塊的運動矢量最相似的運動矢量預測候選被用于預測當前塊的運動矢量,與MV最相似的MVP3被用于預測當前塊的運動矢量。

      因此,當前塊的運動矢量和用于預測當前塊的運動矢量的運動矢量預測候選之間的矢量差(以下,稱為“原始運動矢量差”)是(2,0)。由于MV是(5,0)并且MVP3是(3,0),故原始運動矢量差是(2,0)。

      候選確定器920通過使用原始運動矢量差和預定的評價函數(shù)從所有運動矢量預測候選中選擇性地排除至少一個運動矢量預測候選。更具體來講,原始運動矢量差和預定的運動矢量預測候選被用于產生虛擬運動矢量,并且相對于所有候選產生已產生的虛擬運動矢量和所有運動矢量預測候選之間的差(以下,稱為“虛擬運動矢量差”)。原始運動矢量差和預定的運動矢量預測候選相加以產生虛擬運動矢量,并計算已產生的虛擬運動矢量和所有運動矢量預測候選之間的虛擬運動矢量差。通過對原始運動矢量差和相對于所有候選計算的虛擬運動矢量差進行比較,可從所有運動矢量預測候選選擇性地排除預定的運動矢量預測候選。

      參照圖12,候選確定器920確定是否從全部的候選中排除運動矢量預測候選之一的MVP1。

      當通過從基于MVP1的虛擬運動矢量減去運動矢量預測候選而產生的虛擬運動矢量差小于原始運動矢量差時,MVP1可能不被用于預測當前塊的運動矢量。例如,當通過從通過將MVP1和原始運動矢量差相加產生的虛擬運動矢量減去MVP3產生的虛擬運動矢量差小于原始運動矢量差時,相比于MVP1,MVP3更準確地預測虛擬運動矢量,并且在這種情況下,MVP1不能是運動矢量預測。

      在圖12中,當MVP1和原始運動矢量差相加時,基于MVP1的虛擬運動矢量是(2,0)。因此,當基于MVP1產生虛擬運動矢量時,MVP2的虛擬運動矢量差是(2,0)并且MVP3的虛擬運動矢量差是(-1,0)。在此,由于MVP3的虛擬運動矢量差(-1,0)小于原始運動矢量差(2,0),MVP1不可以是當前塊的運動矢量預測。因此,可從所有運動矢量預測候選排除MVP1。換句話說,可從組C排除與MVP1相應的運動矢量預測候選。

      在此,針對MVP1本身計算的虛擬運動矢量差是(2,0)并總是與原始運動矢量差相同,從而虛擬運動矢量差不會小于原始運動矢量差。因此,當針對所有運動矢量預測候選計算虛擬運動矢量差時,可不計算針對MVP1本身的虛擬運動矢量差。

      當完成確定是否排除MVP1時,候選確定器920確定是否從所有運動矢量預測候選中排除MVP2。當MVP2和原始運動矢量差相加時,基于MVP2的虛擬運動矢量是(2,0)。因此,針對MVP1的虛擬運動矢量差是(2,0)并且針對MVP3的虛擬運動矢量差是(-1,0)。由于針對MVP3的虛擬運動矢量差小于原始運動矢量差,可如同MVP1從所有運動矢量預測候選排除MVP2。當確定是否排除MVP2時,可選擇性地對針對MVP1的虛擬運動矢量差和原始運動矢量差進行比較。由于已確定應已經排除MVP1,可對針對MVP1以外的候選的虛擬運動矢量差和原始運動矢量差進行比較。

      另外,候選確定器920確定是否排除MVP3。基于MVP3的虛擬運動矢量與當前塊的原始運動矢量相同。雖然從原始運動矢量減去另一運動矢量預測候選(即,MVP1或MVP2),但不會產生小于原始運動矢量差的虛擬運動矢量差。因此,未從運動矢量預測候選排除MVP3。另外,根據(jù)另一示例性實施例,由于未從運動矢量預測排除確定被用于預測當前塊的運動矢量的MVP3,候選確定器920可跳過確定MVP3(用于預測當前塊的運動矢量的運動矢量預測候選)是否被排除。

      簡略地,當候選確定器920確定是否排除運動矢量預測候選之一的第二運動矢量預測候選時,第二運動矢量預測候選和原始運動矢量差相加以產生虛擬運動矢量,并且針對所有候選計算所述虛擬運動矢量和其它運動矢量預測候選之間的差以產生多個虛擬運動矢量差。當多個虛擬運動矢量差中存在小于原始運算運動矢量差的至少一個虛擬運動矢量差時,第二運動矢量預測候選不是當前塊的運動矢量預測并從運動矢量預測候選排除所述第二運動矢量預測候選。

      另外,候選確定器920針對運動矢量預測候選重復執(zhí)行關于排除的確定,從而可減少運動矢量預測候選(即,組C的元素)的數(shù)量。根據(jù)組C的運動矢量預測候選的排列順序,按順序確定是否排除。例如,當C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}時,確定是否排除median(mv_a’,mv_b’,mv_c’),并且當完成確定時,確定是否排除mv_a’。然后,確定是否排除mv_b’。根據(jù)組C的排列順序,重復關于排除的確定直到mv_temporal。

      當重復執(zhí)行確定時,如與MVP2的排除相關的描述,可省略針對在確定中已排除的候選的原始運動矢量差和虛擬運動矢量差之間的比較。

      另外,如稍后將參照圖13a到圖13d進行的描述,可根據(jù)預定的標準重新布置組C。當重新布置組C時,根據(jù)重新布置的順序重復關于排除的確定。

      不僅可將與圖12相關起來描述的虛擬運動矢量差和原始運動矢量差之間的比較應用到一維運動矢量,還可將其應用到二維運動矢量。換句話說,對由x坐標和y坐標定義的虛擬運動矢量差的大小和原始運動矢量差的大小進行比較,因此可選擇性地從全部候選中排除預定的運動矢量預測。

      然而,用于對虛擬運動矢量差和原始運動矢量差進行比較的大小僅是一個示例,并且多種標準可被用于對虛擬運動矢量差和原始運動矢量差進行比較。當基于預定的標準產生針對虛擬運動矢量差的值和針對原始運動矢量差的值的評價函數(shù)是“A”時,可根據(jù)下面的等式1對虛擬運動矢量差和原始運動矢量差進行比較;

      (等式1)

      A(mvx+MVD-mvy)<A(MVD)

      候選確定器920確定在所有候選中是否存在至少一個“mvy”,以確定是否從運動矢量預測候選排除運動矢量預測候選之一的“mvx”。在等式1中,“MVD”表示原始運動矢量差。為了確定是否排除“mvx”,通過使用預定的評價函數(shù)“A”計算“A(mvx+MVD-mvy)”和其它運動矢量預測候選,并對作為計算的結果產生的值和作為針對原始運動矢量差的值的“A(MVD)”進行比較,其中,“A(mvx+MVD-mvy)”是通過評價“mvx+MVD-mvy”獲得的值,其中,“mvx+MVD-mvy”是基于“mvx”的虛擬運動矢量“mvx+MVD”和“mvy”之間的虛擬運動矢量差。重復地將所有候選中的除“mvx”以外的運動矢量預測候選替換為“mvy”,并且確定在全部候選中是否存在滿足等式1的至少一個“mvy”。

      如上所述,可由x坐標和y坐標定義通過“A”評價的虛擬運動矢量差和原始運動矢量差。在這種情況下,如下面的等式2,可由x坐標評價的值和y坐標評價的值之和定義評價函數(shù);

      (等式2)

      A(p,q)=f(p)+f(q)

      當由x坐標“p”和y坐標“q”定義虛擬運動矢量差或原始運動矢量差時,將每個坐標值輸入到預定的函數(shù)“f”并且由通過替換獲得的總和定義評價函數(shù)“A”。

      根據(jù)示例性實施例,等式1和等式2中的評價函數(shù)“A”可以是這樣的評價函數(shù),其中,所述評價函數(shù)對通過對虛擬運動矢量差進行熵編碼而獲得的結果和通過對原始運動矢量差進行熵編碼而獲得的結果進行估計。候選確定器920對通過基于評價函數(shù)“A”對虛擬運動矢量差和原始運動矢量差進行熵編碼而獲得的結果進行估計,并且可基于估計的結果減少運動矢量預測候選的數(shù)量。將參照下面的等式3詳細描述上述過程:

      (等式3)

      Length=1;

      Temp=(val<=0)?(-val<<1)+1:(val<<1);

      While(1!=Temp){

      Temp>>=1;

      Length+=2;

      }

      f(val)=Length

      可如等式3定義函數(shù)“f”,其中,函數(shù)“f”估計通過相對于x坐標值或y坐標值進行熵編碼而獲得的結果。當將x坐標值或y坐標“val”輸入到估計可變長編碼(例如,通用可變長編碼)結果的函數(shù)“f”時,根據(jù)等式3計算“Length”。

      可由下式表示等式3:

      x坐標值或y坐標可以是虛擬運動矢量差或原始運動矢量差的x坐標值或y坐標。

      根據(jù)等式3,當“val”是負數(shù)或“0”時,將“val”改變?yōu)檎龜?shù)并隨后通過向左移位1比特來將“val”乘以2。加“1”,從而將結果存儲在“Temp”中。當“val”是正數(shù)時,通過向左移位1比特將“val”乘以2,從而將結果存儲在“Temp”中。隨后,重復“while”循環(huán)直到“Temp”是1,并計算“Length”。

      例如,當虛擬運動矢量差或原始運動矢量差是(2,0)時,A(2,0)=f(2)+f(0)。

      以以下步驟計算f(2)。f(2)的“2”是正數(shù),因此將其向左移位1比特,從而“Temp”被設置為4。在第一個“while”循環(huán)中,“Temp”是“4”而不是1,因此通過向右移位來將“4”乘以“1/2”,從而“Temp”被設置為“2”。由于“Length”的初始值被設置為“1”,在第一個“while”循環(huán)中的“Length”是“3”。

      在第二個“while”循環(huán)中,“Temp”是“2”而不是“1”,因此通過向右移位將“2”乘以“1/2”,從而“Temp”被設置為“1”。由于當前“Length”是3,在第二個“while”循環(huán)中的“Length”是“5”。由于“Temp”是1,所以不執(zhí)行第三個“while”循環(huán),并且f(2)是“5”。

      以以下步驟計算f(0)。由于f(0)的輸入坐標值是“0”,將“0”向左移位1比特并加“1”,從而“Temp”被設置為“1”。因此,不執(zhí)行“while”循環(huán)。根據(jù)“Length”的初始值f(0)是“1”。

      與等式3相關描述的預定的評價值“f”是用于對使用可變長編碼進行熵編碼的結果進行估計的函數(shù)。因此,候選確定器920對通過使用評價函數(shù)“A”對虛擬運動矢量差進行可變長編碼而獲得的結果進行估計,以確定是否從運動矢量預測候選中排除“mvx”。作為估計的結果,當存在估計到將以比原始運動矢量差更短的長度進行編碼的至少一個虛擬運動矢量差時,從所有運動矢量預測候選排除“mvx”。

      然而,通過除使用可變長編碼結果以外的方法來估計熵編碼結果,對于本領域的普通技術人員是明顯的。例如,另一評價函數(shù)“h”可被用于對虛擬運動矢量差的熵編碼結果和原始運動矢量差的熵編碼結果進行估計和比較。在此,“h”可以是估計上下文自適應二進制算術編碼的結果的函數(shù)。

      另外,根據(jù)另一示例性實施例,為了增加基于預定的評價函數(shù)的評價結果的準確度,可還估計通過評價索引信息獲得的結果。索引信息被用于從所有運動矢量預測候選中指定預定的運動矢量預測候選。將參照等式4詳細描述上述過程:

      (等式4)

      A(mvx+MVD-mvy,mvyIdx)<A(MVD,mvxIdx)

      候選確定器920確定在全部候選中是否存在滿足等式4的至少一個“mvy”,以確定是否從運動矢量預測候選中排除運動矢量預測候選之一的“mvx”。在等式4中,“MVD”表示原始運動矢量差,并且mvxIdx和mvyIdx表示從所有運動矢量預測候選中分別用于指定“mvx”和“mvy”的索引信息。為了確定是否排除“mvx”,通過使用預定的評價函數(shù)“A”來評價用于從所有侯選中指定“mvy”的索引信息和基于“mvx”的虛擬運動矢量“mvx+MVD”和其它運動矢量預測候選“mvy”之間的虛擬運動矢量差“mvx+MVD-mvy”。此外,通過使用預定的評價函數(shù)“A”來評價用于從全部候選中指定“mvx”的索引信息和原始運動矢量差。作為評價的結果,確定在全部候選中是否存在至少一個“mvy”。

      如上所述,可由x坐標和y坐標定義由“A”評價的虛擬運動矢量差和原始運動矢量差,并可如下面的等式5定義虛擬運動矢量差和原始運動矢量差:

      (等式5)

      A(mvx+MVD-mvy,mvyIdx)=f(p1)+f(q1)+g(mvyIdx)

      A(MVD,mvxIdx)=f(p2)+f(q2)+g(mvxIdx)

      與等式2相比,等式2左側的A(mvx+MVD-mvy)僅評價虛擬運動矢量差,然而等式5的A(mvx+MVD-mvy,mvyIdx)評價虛擬運動矢量差和用于從所有運動矢量預測候選指定“mvy”的信息。評價函數(shù)“A”可以是用于評價熵編碼結果的函數(shù)。在此,函數(shù)“f”可以是如等式2相關描述的用于基于虛擬運動矢量差的x坐標值或y坐標值估計熵編碼結果的函數(shù),函數(shù)“g”可以是用于估計“mvxIdx”的熵編碼結果的函數(shù)。當“mvx+MVD-mvy”的x坐標值和y坐標值分別是“p1”和“q1”時,可如等式5計算A(mvx+MVD-mvy,mvyIdx)。

      等式2的右側的A(MVD)僅評價原始運動矢量差,然而等式5的A(MVD,mvxIdx)評價原始運動矢量差和用于從所有運動矢量預測候選指定“mvx”的信息。函數(shù)“f”可以是如等式2相關描述的用于基于原始運動矢量差的x坐標值或y坐標值估計熵編碼結果的函數(shù),函數(shù)“g”可以是用于估計“mvxIdx”的熵編碼結果的函數(shù)。當“MVD”的x坐標值和y坐標值分別是“p2”和“q2”時,可如等式5計算A(MVD,mvxIdx)。

      可在根據(jù)等式2的關于排除的確定中補充使用根據(jù)等式4和等式5的關于排除的確定。換句話說,首先基于等式2確定是否從所有運動矢量預測候選中排除“mvx”,并可根據(jù)等式4和等式5再一次確定排除。例如,作為根據(jù)等式2的確定的結果,當“A(mvx+MVD-mvy)”與“A(MVD)”相等或大于“A(MVD)”,“A(mvx+MVD-mvy)”不小于“A(MVD)”時,根據(jù)等式2沒有從所有運動矢量預測候選中排除“mvx”。然而,雖然“A(mvx+MVD-mvy)”和“A(MVD)”彼此相等,但可基于根據(jù)等式4和等式5的確定的結果從所有運動矢量預測候選排除“mvx”。

      當候選確定器基于等式1到等式5確定關于針對運動矢量預測候選的排除時,根據(jù)組C的排列順序重復執(zhí)行關于針對運動矢量預測候選的排除的確定。根據(jù)另一示例性實施例,候選確定器920根據(jù)預定的標準重新排列組C,并根據(jù)重新排列的順序重復關于排除的確定。參照圖13a到圖13d詳細描述上述過程。

      圖13a到圖13d示出根據(jù)示例性實施例的包括在具有預定的尺寸的編碼單元中的當前塊的位置。

      當所有運動矢量預測候選是C={median(mv_a’,mv_b’,mv_c’),mv_a’,mv_b’,mv_c’,mv_temporal}時,將每個二進制數(shù)分配給組C的運動矢量預測候選,因此如上所述,可從運動矢量預測候選指定用于預測當前塊的運動矢量的運動矢量預測候選。

      在此,根據(jù)包括在組C中的運動矢量預測候選的排列順序分配二進制數(shù),并且上述二進制數(shù)可以是基于霍夫曼編碼(Huffman code)的可變長編碼。因此,可將少量的比特分配到布置在組C的排列順序的前部的運動矢量預測候選。例如,可將“0”比特分配給median(mv_a’,mv_b’,mv_c’),可將“00”比特分配給mv_a’,可將“01”比特分配給mv_b’。因此,候選確定器920根據(jù)預定的順序排列運動矢量預測候選,從而在從運動矢量預測候選預測當前塊的運動矢量的預測中將被使用的具有高可能性的運動矢量預測被定位在組C的前部。

      可根據(jù)編碼單元中的當前塊的位置來確定在當前塊的運動矢量預測中將被使用的具有高可能性的運動矢量預測。可通過使用當前塊的分塊索引表達當前塊的位置。根據(jù)預定的順序,將分塊索引分配到編碼單元中的塊。因此,可根據(jù)當前塊分塊索引確定在當前塊的運動矢量預測中將被使用的具有高可能性的運動矢量預測。如圖13a,當當前塊被定位在編碼單元的下側時,當前塊的運動矢量可以相同或相似于與編碼單元的左側相鄰的塊的運動矢量或與編碼單元的左下側相鄰的塊的運動矢量。因此,可能需要改變排列順序,從而相應于與編碼單元的左側相鄰的塊的運動矢量或與編碼單元的左下側相鄰的塊的運動矢量的運動矢量預測候選被定位在組C的前部。由于來自組C的運動矢量預測候選的mv_b’是相應于與左側相鄰的塊的運動矢量的運動矢量預測候選,改變組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}。

      相似地,當當前塊被定位在如圖13b中的編碼單元的左側時,運動矢量預測候選可被用于預測當前塊的運動矢量,其中,所述運動矢量預測候選相應于與編碼單元的左側相鄰的塊的運動矢量和與編碼單元的上側相鄰的塊的運動矢量。由于來自組C中的運動矢量預測候選的mv_b’是相應于與左側相鄰的塊的運動矢量的運動矢量預測候選,改變組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中,當當前塊被定位在編碼單元的上側時,運動矢量預測候選可被用作當前塊的運動矢量預測,其中,所述運動矢量預測候選相應于與編碼單元的左側相鄰的塊的運動矢量和與編碼單元的上側相鄰的塊的運動矢量。由于來自組C中的運動矢量預測候選的mv_a’是相應于與上側相鄰的塊的運動矢量的運動矢量預測候選,改變組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中,當當前塊被定位在編碼單元的右側時,運動矢量預測候選可被用于預測當前塊的運動矢量,其中,所述運動矢量預測候選相應于與編碼單元的上側相鄰的塊的運動矢量。由于來自組C中的運動矢量預測候選的mv_c’是相應于與上側相鄰的塊的運動矢量的運動矢量預測候選,改變組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}。

      作為用于重新排列運動矢量預測候選的標準的編碼單元中的當前塊的位置是示例。換句話說,多個標準可被用于重新排列運動矢量預測候選。用于排列具有與在組C中的前部的當前塊的運動矢量相似的高可能性的運動矢量預測候選的多個標準可被用作用于重新排列運動矢量預測候選的標準??苫谂c當前塊之前已編碼的其它塊相關的預定的信息,確定具有與當前塊的運動矢量相似的高可能性的運動矢量預測候選,并且可根據(jù)所述確定重新排列組C。

      另外,基于在對當前塊的運動矢量進行編碼之前相對于當前塊已編碼的或已解碼的其它信息,確定具有與當前塊的運動矢量相似的高可能性的運動矢量預測候選,并且可根據(jù)所述確定重新排列組C。

      另外,可通過排除重疊的運動矢量預測候選來重新排列組C。當在所有運動矢量預測候選中存在重疊的運動矢量預測候選時,首先排除重疊的運動矢量預測候選,并且可根據(jù)等式1到等式5確定是否排除運動矢量預測候選。

      重新參照圖9,運動矢量編碼器930對關于運動矢量的信息和關于運動矢量預測的信息進行編碼。關于運動矢量的信息是當前塊的原始運動矢量和原始運動矢量預測之間的原始運動矢量差。關于運動矢量預測的信息是用于指定運動矢量預測候選的信息,其中,所述運動矢量預測候選被用于在排除了至少一個運動矢量預測的運動矢量預測候選中預測當前塊的運動矢量。換句話說,將用于在運動矢量預測候選中指定當前塊的運動矢量預測的信息編碼為關于運動矢量預測的信息,其中,在候選確定器920中沒有排除所述運動矢量預測候選。

      從運動矢量估計器910接收原始運動矢量差,并且根據(jù)預定的熵編碼方法對原始運動矢量差進行編碼。此外,對用于從運動矢量預測候選中指定用于預測當前塊的運動矢量的運動矢量預測候選的信息進行編碼,其中,通過在候選確定器920排除至少一個運動矢量預測候選來確定所述運動矢量預測候選。

      當候選確定器920通過根據(jù)等式1到等式5從所有運動矢量預測候選排除至少一個運動矢量預測候選來確定運動矢量預測候選時,對用于從確定的運動矢量預測候選指定用于預測當前塊的運動矢量的運動矢量預測候選的信息進行編碼。運動矢量編碼器930可對在候選確定器920中沒有排除的每個運動矢量預測候選進行索引,并且將索引信息熵編碼為關于運動矢量預測的信息。索引表示將預定的二進制數(shù)分配給每個運動矢量預測候選,并且關于運動矢量預測的信息表示分配給用于預測當前塊的運動矢量的運動矢量預測候選的二進制數(shù)。當在候選確定器920選擇性地排除至少一個運動矢量預測候選之后保留一個運動矢量預測候選時,因為無疑問地確定將用于預測當前塊的運動矢量的運動矢量預測候選,在運動矢量編碼器930中可不單獨地對關于運動矢量預測的信息進行編碼。

      此外,如圖13a到圖13d相關的描述,候選確定器920可對每個運動矢量預測候選進行索引,并可對索引信息進行熵編碼,其中,通過根據(jù)預定的標準重新排列所有運動矢量預測候選,并通過從所述重新排列的運動矢量預測候選中選擇性地排除至少一個運動矢量預測來產生所述運動矢量預測候選。

      作為由候選確定器920執(zhí)行重新排列的結果,可將具有最小比特數(shù)的二進制數(shù)分配給具有將被用于預測當前塊的運動矢量的高可能性的運動矢量預測候選,因此可以以高壓縮率對關于運動矢量預測的信息進行編碼。

      圖14是根據(jù)示例性實施例的用于對運動矢量進行解碼的設備1400的框圖。

      圖14的用于對運動矢量進行解碼的設備1400被包括在圖2的用于對圖像進行解碼的設備200或圖5的圖像解碼器500中。參照圖14,用于對運動矢量進行解碼的設備1400包括:運動矢量解碼器1410、候選確定器1420和運動矢量恢復單元1430。

      當根據(jù)上面描述的顯式模式和隱式模式中的顯式模式對當前塊的運動矢量進行編碼時,用于對運動矢量進行解碼的設備1400對當前塊的運動矢量進行解碼。

      運動矢量解碼器1410接收針對當前塊的運動矢量的比特流并對接收的比特流進行解碼。對被包括在比特流中的關于運動矢量的信息進行解碼。對當前塊的原始運動矢量差進行解碼??筛鶕?jù)預定的熵解碼方法對原始運動矢量差進行解碼。原始運動矢量差是當前塊的運動矢量和被用于預測當前塊的運動矢量的運動矢量預測候選之間的矢量差。在根據(jù)示例性實施例的對運動矢量進行解碼的方法中,根據(jù)等式1到等式5從所有運動矢量預測候選中排除至少一個運動矢量預測候選,并確定運動矢量預測候選。沒有固定運動矢量預測候選,并且按照塊單元對所述運動矢量預測候選進行解碼,從而可連續(xù)改變運動矢量預測候選。因此,雖然關于運動矢量預測候選的信息相同,但如果沒有確定運動矢量預測候選,則不能準確地恢復用于預測當前塊的運動矢量的運動矢量預測候選。

      因此,候選確定器1420在確定用于預測當前塊的運動矢量的運動矢量預測候選之前確定運動矢量預測候選。根據(jù)等式1到等式5從所有運動矢量候選中選擇性地排除至少一個運動矢量預測候選,并確定運動矢量預測候選?;陬A定的評價函數(shù)排除運動矢量預測候選,其中,所述運動矢量預測候選在基于包括在與當前塊相鄰的先前編碼的區(qū)域中的塊的運動矢量確定的所有候選中未被用于預測當前塊的運動矢量。

      基于所有運動矢量預測候選中的預定的運動矢量和關于在運動矢量解碼器中解碼的運動矢量預測的信息產生虛擬運動矢量,并針對所有候選計算作為產生的虛擬運動矢量和其它運動矢量預測候選之間的差的虛擬運動矢量差。對計算的虛擬運動矢量差和關于在運動矢量解碼器1410中解碼的運動矢量的信息(即,關于原始運動矢量差的信息)進行比較,并選擇性地排除預定的運動矢量預測候選。對通過對虛擬運動矢量差進行熵編碼而獲得的結果和通過對原始運動矢量差進行熵編碼而獲得結果進行比較,從而可確定是否排除預定的運動矢量預測候選。另外,為了增加熵編碼結果的估計準確度,還估計通過對索引信息進行熵編碼而獲得的結果并將所述的結果用在關于排除的確定中。與等式1到等式5相關地描述排除運動矢量預測候選的方法。

      此外,根據(jù)另一示例性實施例,候選確定器1420根據(jù)預定的標準重新布置所有運動矢量預測候選,針對所有重新排列的運動矢量預測候選根據(jù)等式1到等式5執(zhí)行關于排除的確定,并可選擇性地排除至少一個運動矢量預測候選??蓮乃兄匦屡帕械倪\動矢量預測候選排除重疊的運動矢量預測候選,并可根據(jù)等式1到等式5重復執(zhí)行關于排除的確定。

      當在候選確定器1420從所有運動矢量預測候選排除至少一個運動矢量預測候選之后來自所有運動矢量預測候選的多個運動矢量預測候選保留下來時,運動矢量解碼器1410對關于運動矢量預測的信息進行解碼。根據(jù)預定的熵解碼方法對關于運動矢量預測的信息進行解碼。關于運動矢量預測的信息是用于指定運動矢量預測候選的信息,其中,所述運動矢量預測候選被用于在排除了至少一個運動矢量預測候選的運動矢量預測候選中預測當前塊的運動矢量。對用于從候選確定器1420未排除的運動矢量預測候選中指定用于預測當前塊的運動矢量的運動矢量預測候選的信息進行解碼。

      當在候選確定器1420從所有運動矢量預測候選排除至少一個運動矢量預測候選之后一個運動矢量預測候選保留下來時,保留的運動矢量預測候選被用于預測當前塊的運動矢量,因此運動矢量解碼器1410可不對關于運動矢量預測候選的信息進行單獨解碼。

      運動矢量恢復單元1430基于關于在運動矢量解碼器1410中解碼的運動矢量的信息恢復當前塊的運動矢量。在運動矢量解碼器1410中解碼的原始運動矢量差和用于預測當前塊的運動矢量的運動矢量預測候選相加,以恢復當前塊的運動矢量。從在候選確定器1420中確定的運動矢量預測候選確定將被用于預測當前塊的運動矢量的運動矢量預測候選,并且將確定的運動矢量預測候選與原始運動矢量差相加。當多個運動矢量預測候選而不是一個運動矢量預測候選保留下來時,作為候選確定器1420中的排除的結果,可基于關于在運動矢量解碼器1410中解碼的運動矢量預測的信息確定用于預測當前塊的運動矢量的運動矢量預測候選。

      由于由候選確定器1420確定運動矢量預測候選,即使關于運動矢量預測的解碼的信息相同,用于預測當前塊的運動矢量的運動矢量預測候選也可以是在不同的位置的相鄰塊的運動矢量。

      圖15是示出根據(jù)示例性實施例的對運動矢量進行編碼的方法的流程圖。

      參照圖15,在操作1510,用于對運動矢量進行編碼的設備估計當前塊的運動矢量,并確定用于從所有運動矢量預測候選中預測當前塊的運動矢量的運動矢量預測候選。在多個參考圖像中搜索與當前塊相同或相似的塊,并且作為搜索的結果,估計運動矢量(即,當前塊和參考塊之間的相對位置差)。

      隨后,基于包括在與當前塊相鄰的先前編碼的區(qū)域中的塊的運動矢量來預測當前塊的運動矢量。換句話說,將包括在與當前塊相鄰的先前編碼的區(qū)域中的塊的運動矢量設置為運動矢量預測候選,并確定運動矢量預測候選中與估計的當前塊的運動矢量最相似的運動矢量預測候選。產生當前塊的運動矢量和確定的運動矢量預測候選之間的矢量差(即,原始運動矢量差)。

      在操作1520,用于對圖像進行編碼的設備選擇性地從所有運動矢量預測候選中排除至少一個運動矢量預測候選。從所有運動矢量預測候選排除未被用于預測當前塊的運動矢量的運動矢量預測候選。

      用于對圖像進行編碼的設備通過使用所有運動矢量預測候選中的預定的運動矢量預測候選和在操作1510中產生的原始運動矢量差來產生虛擬運動矢量。將產生的虛擬運動矢量和其它運動矢量預測候選用于產生虛擬運動矢量差。產生針對所有運動矢量預測候選中的每個的虛擬運動矢量差,并對產生的虛擬運動矢量差和原始運動矢量差進行比較,從而可選擇性地排除預定的運動矢量預測候選。

      針對所有候選重復執(zhí)行操作1520中的產生虛擬運動矢量并選擇性地排除運動矢量預測候選的處理,因此可從所有候選中排除至少一個運動矢量預測候選。當重復執(zhí)行排除處理時,計算針對運動矢量預測候選而不是已排除的運動矢量預測的虛擬運動矢量差,并且可對計算的虛擬運動矢量差和原始運動矢量差進行比較。

      可基于預定的評價函數(shù)對虛擬運動矢量差和原始運動矢量差進行評價和相互比較,其中,所述預定的評價函數(shù)可以是估計熵編碼結果的函數(shù)??苫诤瘮?shù)對虛擬運動矢量差和原始運動矢量差進行相互比較,其中,所述函數(shù)估計通過對虛擬運動矢量差進行熵編碼而獲得的結果和通過對原始運動矢量差進行熵編碼而獲得的結果。此外,為了增加評價準確度,可還估計通過對索引信息進行編碼而獲得的結果,并將其用于關于排除的確定中。與等式1到等式5相關地描述從所有運動矢量預測候選中排除至少一個運動矢量預測候選的方法。

      此外,如與圖13a到圖13d相關的描述,用于對運動矢量進行編碼的設備可根據(jù)預定的標準重新排列所有運動矢量預測候選,并從所有重新布置的運動矢量預測候選選擇性地排除至少一個運動矢量預測候選。另外,用于對運動矢量進行編碼的設備可從所有重新排列的運動矢量預測候選排除重疊的運動矢量預測候選,并根據(jù)等式1到等式5重復執(zhí)行關于排除的確定。

      在操作1530,用于對運動矢量進行編碼的設備對關于運動矢量的信息和關于運動矢量預測的信息進行編碼。對關于原始運動矢量差的信息和用于指定用于預測當前塊的運動矢量的運動矢量預測候選的信息進行編碼。關于運動矢量預測的信息可以是用于從在操作1520和操作1530沒有排除的運動矢量預測候選指定運動矢量預測候選的信息,其中,所述運動矢量預測候選用于預測當前塊的運動矢量。

      當在從所有運動矢量預測候選排除至少一個運動矢量預測候選之后一個運動矢量預測候選保留下來時,可不對關于運動矢量預測的信息進行編碼。

      圖16是示出根據(jù)示例性實施例的對運動矢量進行解碼的方法的流程圖。

      參照圖16,在操作1610,用于對運動矢量進行解碼的設備對來自接收的比特流的關于當前塊的運動矢量的信息進行解碼。關于運動矢量的信息可以是當前塊的運動矢量和當前塊的運動矢量預測之間的原始運動矢量差。

      在操作1620,用于對運動矢量進行解碼的設備基于在操作1610中解碼的關于運動矢量的信息和運動矢量預測候選中的一個運動矢量預測候選產生虛擬運動矢量。

      當產生虛擬運動矢量時,用于對運動矢量進行解碼的設備從所有運動矢量預測候選排除至少一個運動矢量預測候選。基于包括在與當前塊相鄰的先前解碼的區(qū)域中的塊的運動矢量確定所有運動矢量預測候選。用于對運動矢量進行解碼的設備可從所有運動矢量預測候選選擇性地排除至少一個運動矢量預測候選?;陬A定的評價函數(shù)評價虛擬運動矢量差和在操作1610中解碼的原始運動矢量差,以選擇性地排除預定的運動矢量預測候選。從所有候選中排除運動矢量預測候選的方法與操作1530相同,并且上面參照等式1到等式5描述了所述方法。

      針對所有候選重復執(zhí)行在操作1620產生虛擬運動矢量并選擇性地排除運動矢量預測候選的處理,因此可從所有候選中排除至少一個運動矢量預測候選。

      此外,如與圖13a到圖13d相關的描述,用于對運動矢量進行解碼的設備可根據(jù)預定的標準重新排列所有運動矢量預測候選,并從所有重新排列的運動矢量預測候選中選擇性地排除至少一個運動矢量預測候選。另外,用于對運動矢量進行解碼的設備可從所有重新排列的運動矢量預測候選中排除重疊的運動矢量預測候選,并根據(jù)等式1到等式5重復執(zhí)行關于排除的確定。

      當作為排除的結果多個運動矢量預測候選保留下來時,對關于運動矢量預測的信息進行解碼,并且當一個運動矢量預測候選保留下來時,不對關于運動矢量預測的信息進行解碼。

      在操作1630,用于對運動矢量進行解碼的設備從在操作1620未排除的運動矢量預測候選確定用于預測當前塊的運動矢量的運動矢量預測。

      可基于關于當前塊的運動矢量預測的信息確定運動矢量預測候選中的用于預測當前塊的運動矢量的運動矢量預測候選。當作為在操作1620中的排除的結果,一個運動矢量預測候選保留下來時,將一個保留的運動矢量預測候選確定為用于預測當前塊的運動矢量的運動矢量預測。

      當確定運動矢量預測候選時,通過將確定的運動矢量預測候選和在操作1610中解碼的原始運動矢量差相加來恢復當前塊的運動矢量。

      根據(jù)示例性實施例,當運動矢量預測候選被用于對運動矢量進行預測編碼和預測解碼時,可減少運動矢量預測候選的數(shù)量以對運動矢量進行預測編碼和預測解碼。因此,可以以最小比特來對從運動矢量預測候選指定用于預測當前塊的運動矢量的運動矢量預測所需的信息進行編碼,從而增加了對運動矢量進行編碼/解碼的壓縮率,并從而可提高對圖像進行編碼/解碼的壓縮率。

      雖然上面已特別地示出并描述了示例性實施例,但是本領域的普通技術人員將理解,在不脫離由權利要求限定的本發(fā)明構思的精神和范圍的情況下,可以對其形式和細節(jié)進行各種改變。

      示例性實施例可還被實施為計算機可讀記錄介質上的計算機可讀代碼。

      例如,根據(jù)示例性實施例的用于對圖像進行編碼的設備、用于對圖像進行解碼的設備、運動矢量編碼器和運動矢量均可包括總線和結合到所述總線的至少一個處理器,其中,所述總線耦合到包括在圖1、圖2、圖4、圖5、圖9和圖14中的設備中的每個元件。另外,設備均可包括耦合到至少一個處理器的存儲器以存儲命令、接收的消息或產生的消息,其中,所述處理器用于通過結合到總線來執(zhí)行所述命令。

      計算機可讀記錄介質是能夠存儲數(shù)據(jù)的任何數(shù)據(jù)存儲裝置,其中,所述數(shù)據(jù)能夠在存儲之后由計算機系統(tǒng)讀取。計算機可讀記錄介質的示例包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、CD-ROMs、磁帶、軟盤、光學數(shù)據(jù)存儲裝置等。計算機可讀記錄介質還可分布于聯(lián)網(wǎng)的計算機系統(tǒng)上,從而以分布的方式存儲并執(zhí)行計算機可讀代碼。

      當前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1