TWI690194B - 用於視訊編解碼的子預測單元時間運動向量預測 - Google Patents

用於視訊編解碼的子預測單元時間運動向量預測 Download PDF

Info

Publication number
TWI690194B
TWI690194B TW107113339A TW107113339A TWI690194B TW I690194 B TWI690194 B TW I690194B TW 107113339 A TW107113339 A TW 107113339A TW 107113339 A TW107113339 A TW 107113339A TW I690194 B TWI690194 B TW I690194B
Authority
TW
Taiwan
Prior art keywords
sub
prediction unit
motion vector
prediction
current
Prior art date
Application number
TW107113339A
Other languages
English (en)
Other versions
TW201904284A (zh
Inventor
陳俊嘉
徐志瑋
陳慶曄
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW201904284A publication Critical patent/TW201904284A/zh
Application granted granted Critical
Publication of TWI690194B publication Critical patent/TWI690194B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本發明的方面提供一種視訊編解碼方法,其用於用子預測單元時間運動向量模式處理當前預測單元。本方法可以包括:執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選;以及將推導出的多個子預測單元時間運動向量預測候選的子集合或者不將推導出的多個子預測單元時間運動向量預測候選的子集合包括到當前預測單元的合併候選列表中。推導出的多個子預測單元時間運動向量預測候選中的每個包括當前預測單元的多個子預測單元的子預測單元運動資訊。

Description

用於視訊編解碼的子預測單元時間運動向量預測 【相關申請的交叉引用】
本發明要求2017年04月21日提出的申請號為62/488,092且名稱為" A New Method for Diversity Based Sub-Block Merge Mode "的美國臨時申請的權利,其整體以引用方式併入本文中。
本發明涉及視訊編解碼技術。
此處提供的先前技術描述通常用作說明本發明的上下文的目的。目前署名發明人的工作內容,既包含在本先前技術部分中所描述的工作的內容,也包含在申請時未被認為是先前技術的說明書的各方面,這些既不明確也不暗示地被承認是本發明的先前技術。
在圖像與視訊編解碼中,使用基於樹結構的方案,圖像及其相應樣本陣列可以被分割成塊。每個塊可以用多種處理模式之一進行處理。合併模式是這些處理模式之一,其中空間相鄰塊和時間相鄰塊可以共用相同的運動參數集。因此,運動向量傳輸開銷可以被降低。
本發明的方面提供一種視訊編解碼方法,其用於用子預測單元時間運動向量模式處理當前預測單元。本方法可以包括:執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選;以及將推導出的多個子預測單元時間運動向量預測候選的子集合或者不將推導出的多個子預測單元時間運動向量預測候選的子集合包括到當前預測單元的合併候選列表中。推導出的多個子預測單元時間運動向量預測候選中的每個包括當前預測單元的多個子預測單元的子預測單元運動資訊。
在一示例中,執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選包括:執行多個子預測單元時間運動向量預測演算法以推導出0個、一個或多個子預測單元時間運動向量預測候選。在一示例中,多於一個子預測單元時間運動向量預測候選是自多個子預測單元時間運動向量預測演算法中的同一演算法推導出的。在一示例中,至少兩個子預測單元時間運動向量預測演算法被提供,且所執行的多個子預測單元時間運動向量預測演算法是所提供的至少兩個子預測單元時間運動向量預測演算法的子集合。
在一實施例中,所提供的至少兩個子預測單元時間運動向量預測演算法包括以下的一種:(1)第一子預測單元時間運動向量預測演算法,其中原始運動向量是當前預測單元的第一可用空間相鄰塊的運動向量;(2)第二預測單元時間運動向量預測演算法,其中原始運動向量是透過平均當前預測單元的多個空間相鄰塊的多個運動向量,或者透過平均位於合併候選列表中正被推導出的子預測單元時間運動向量預測候選之前的多個合併候選的多個運動向量而獲得的;(3)第三子預測單元時間運動向量預測演算法,其中主同位圖像被確定為不同於同位圖像搜索流程期間正在被查找的原始主同位圖像的參考圖像;(4)第四預測單元時間運動向量預測演算法,其中原始運動向量是自當前預測單元的第二可用相鄰塊的運動向量,或者是與第一可用相鄰塊的第二列表相關的第一可用相鄰塊的運動向量,或者是除了第一可用相鄰塊的運動向量之外的多個運動向量而被選擇;或者(5)第五子預測單元時間運動向量預測演算法,其中當前預測單元的多個子預測單元的多個時間同位運動向量與當前預測單元的多個空間相鄰子預測單元的多個運動向量進行平均。
在一示例中,在第二預測單元時間運動向量預測演算法中,當前預測單元的多個空間相鄰塊是如下的一種:(1)用於合併模式的高效視訊編碼標準中所指定的候選位置A0、候選位置A1、候選位置B0、候選位置B1或者候選位置B2處的多個塊或多個子塊的子集合;(2)位於候選位置A0’、候選位置A1’、候選位置B0’、候選位置B1’或者候選位置B2’處的多個子塊的子集合,其中候選位置A0’、候選位置A1’、候選位置B0’、候選位置B1’或者候選位置B2’中的每個對應於分別包含候選位置A0’、候選位置A1’、候選位置B0’、候選位置B1’或者候選位置B2’的當前預測單元的空間相鄰預測單 元的左上角子塊;或者(3)位於候選位置A0、候選位置A1、候選位置B0、候選位置B1、候選位置B2、候選位置A0’、候選位置A1’、候選位置B0’、候選位置B1’或者候選位置B2’處的多個子塊的子集合。在一示例中,在第三子預測單元時間運動向量預測演算法中,主同位圖像被確定為位於來自於包含關於原始主同位圖像的當前預測單元的當前圖像的反向列表中且具有與原始主同位圖像距離當前圖像的圖像順序計數距離相同的距離當前圖像的圖像順序計數距離的參考圖像。
在一示例中,在第四子預測單元時間運動向量預測演算法中,選擇原始運動向量包括如下一種:(1)第一流程,其中當第一空間相鄰塊是可用的,且多個其他空間相鄰塊均是不可用的時,第四子預測單元時間運動向量預測演算法結束,以及當第二空間相鄰塊可用時,第二空間相鄰塊的運動向量被選擇為原始運動向量;(2)第二流程,其中:(i)當第一空間相鄰塊可用且多個其他空間相鄰塊均不可用,並且僅第一空間相鄰塊的一個運動向量可用時,第四子預測單元時間運動向量預測演算法結束,(ii)當第一空間相鄰塊是可用的且多個其他空間相鄰塊均不可用,且分別於參考列表0和參考列表1相關的第一空間相鄰塊的兩個運動向量均可用時,與第一空間相鄰塊的第二列表相關的兩個運動向量中的一個被選擇原始運動向量,以及(iii)當第二空間相鄰塊可用時,第二空間相鄰塊的運動向量被選擇為原始運動向量;或者(3)第三流程,其中:(i)當第一空間相鄰塊可用且多個其他空間相鄰塊均不可用,並且僅第一空間相鄰塊的一個運動向量可用時,第四子預測單元 時間運動向量預測演算法結束,(ii)當第一空間相鄰塊可用且多個其他空間相鄰塊均不可用,且分別於參考列表0和參考列表1相關的第一空間相鄰塊的兩個運動向量均可用時,與第一空間相鄰塊的第二列表相關的兩個運動向量中的一個被選擇原始運動向量,(iii)當第一空間相鄰塊和第二空間相鄰塊均可用,且分別於參考列表0和參考列表1相關的第一空間相鄰塊的兩個運動向量均可用時,與第一空間相鄰塊的第二列表相關的兩個運動向量中的一個被選擇原始運動向量,以及(iv)當第一空間相鄰塊和第二空間相鄰塊均可用,且僅第一空間相鄰塊的一個運動向量可用時,第二空間相鄰塊的運動向量被選擇為原始運動向量。
在一示例中,第五預測單元時間運動向量預測演算法包括:獲得當前預測單元的多個子預測單元的多個同位運動向量;對當前預測單元的頂端相鄰子預測單元的運動向量和當前預測單元的上行子預測單元的運動向量取平均值;以及對當前預測單元的左側相鄰子預測單元的運動向量和當前預測單元的最左列子預測單元的運動向量取平均值。
本方法的實施例還可以包括:確定是否將當前子預測單元時間運動向量預測候選包括在當前預測單元的合併候選列表中。當前子預測單元時間運動向量預測候選可以是將用各自的子預測單元時間運動向量預測演算法推導出的,或者可以是推導出的多個子預測單元時間運動向量預測候選中的一個。在一個示例中,確定是否將正在構造的合併候選列表中的當前子預測單元時間運動向量預測候選包括在當前預測單 元的合併候選列表中是基於如下中的至少一種:在正在構造的合併候選列表中在當前子預測單元時間運動向量預測候選之前推導出的合併候選的數量;當前子預測單元時間運動向量預測候選與正在構造的合併候選列表中的推導出的多個子預測單元時間運動向量預測候選中的另一個之間的相似度;或者當前預測單元的尺寸。
在一示例中,確定是否將正在構造的合併候選列表中的當前子預測單元時間運動向量預測候選包括在當前預測單元的合併候選列表中,包括如下的一種:(a)當位於正在構造的合併候選列表中的當前子預測單元時間運動向量預測候選之前的推導出的合併候選的數量超過閾值時,將當前子預測單元時間運動向量預測自當前預測單元的合併候選列表排除;(b)當位於正在構造的合併候選列表中的當前子預測單元時間運動向量預測候選之前的推導出的合併候選的數量超過閾值時,將當前子預測單元時間運動向量預測自當前預測單元的合併候選列表排除;(c)當當前子預測單元時間運動向量預測候選與正在構造的合併候選列表中的推導出的多個子預測單元時間運動向量預測候選中的另一之間的差低於閾值時,將當前子預測單元時間運動向量預測自當前預測單元的合併候選列表排除;(d)當當前預測單元的尺寸小於閾值時,將當前子預測單元時間運動向量預測自當前預測單元的合併候選列表排除;(e)當當前預測單元的尺寸大於閾值時,將當前子預測單元時間運動向量預測自當前預測單元的合併候選列表排除;或者(f)依據(a)-(e)中考慮的兩個或以上條件的組合,確定是否將當前子預測單元時間運動向量預測候選包括在合併候選列表中。在一實施例中,當當前子預測單元時間運動向量預測候選被確定成自當前預測單元的合併候選列表排除時,跳過執行推導出該子預測單元時間運動向量預測候選的各自的該子預測單元時間運動向量預測演算法。
在一示例中,表示是否開啟或關閉(a)-(f)中一個或多個的多個操作的標誌從編碼器被發送到解碼器。在一示例中,(a)-(e)的一個或多個閾值的閾值從編碼器被發送到解碼器。在一示例中,表示是否開啟或關閉用於確定是否將正在構造的合併候選列表的當前子預測單元時間運動向量預測候選包括在當前預測單元的合併候選列表中的子預測單元時間運動向量預測開啟-關閉切換控制機制的標誌從編碼器被發送到解碼器。
本方法的實施例還可以包括:將當前預測單元的正在構造的合併候選列表或者合併候選列表中的子預測單元時間運動向量預測合併候選向當前預測單元的正在構造的合併候選列表或者合併候選列表的前面部分重新排序。在一示例中,當具有用一個或多個子預測單元模式推導出的運動資訊的當前預測單元的頂端相鄰子塊和左側相鄰子塊的百分比大於閾值時,將位於當前預測單元的正在構造的合併候選列表或者合併候選列表中的原始位置處的子預測單元時間運動向量預測合併候選重新排序到原始位置的前面的位置,或者重新排序到位於當前預測單元的正在構造的合併候選列表或者合併候選列表的前面部分的位置。在一示例中,一個或多個子預測單 元模式包括仿射模式、子預測單元時間運動向量預測模式、空間-時間運動向量預測模式和幀率向上轉換模式中的一個或多個。
本發明的方面提供了一種視訊編解碼裝置,其用於用於用子預測單元時間運動向量模式處理當前預測單元。本裝置包括電路,其被配置為:執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選,推導出的多個子預測單元時間運動向量預測候選中的每個包括當前預測單元的多個子預測單元的子預測單元運動資訊;以及將推導出的多個子預測單元時間運動向量預測候選的子集合或者不將推導出的多個子預測單元時間運動向量預測候選的子集合包括到當前預測單元的合併候選列表中。
本發明的方面提供一種非暫時性電腦可讀介質。本介質存儲有多個指令,當由處理器執行時使得處理器執行用於用子預測單元時間運動向量模式處理當前預測單元的方法。
100:編碼器
101:輸入視訊資料
102、201:位元流
103:運動資訊
110、210:畫面內預測模組
120、220:畫面間預測模組
121、221:運動補償模組
122:運動估計模組
123:畫面間模式模組
124、224:合併模式模組
125:子塊合併模組
131:第一加法器
132:殘差編碼器
133、233:殘差解碼器
134:第二加法器
141、241:熵編碼器
151、251:已解碼圖像暫存器
200:解碼器
202:輸出視訊資料
234:加法器
310:當前預測塊
400:運動向量縮放操作
410:同位參考圖像
420:同位圖像
421:同位塊
422:同位運動向量
423:第二時間距離
430:當前圖像
431:當前塊
432:已縮放運動向量
433:第一時間距離
440:當前參考圖像
500、600:流程
501、511、512、911~914、921~924、931~934、941~944:子預測單元
510、810、910:當前預測單元
520:時間同位圖像
521、522:時間同位子預測單元
531、532:原始子預測單元運動向量
541、542:運動向量
S601、S610~S650、S699:步驟
700:合併候選列表
701:空間合併候選
702:第一子預測單元時間運動向量預測合併候選
703:第二子預測單元時間運動向量預測合併候選
704:時間合併候選
710:箭頭
820:相鄰預測單元
821:子塊
950:第一集合
951~954、961~964:空間相鄰子預測單元
960:第二集合
1000:序列
將結合下面的圖式對被提供作為示例的本發明的各種實施例進行詳細描述,其中相同的符號表示相同的元件,以及其中:第1圖是依據本發明一實施例的示例視訊編碼器;第2圖是依據本發明一實施例的示例視訊解碼器;第3圖是依據本發明一些實施例的用於以高級運動向量預測(advanced motion vector prediction,AMVP)模式推導出的 運動向量預測子(motion vector predictor,MVP)候選或者用於以合併模式推導出的合併候選的空間候選位置和時間候選位置的示例;第4圖是依據本發明一些實施例的運動向量縮放操作的示例;第5圖是依據本發明一些實施例的用子預測單元時間運動向量預測(sub-prediction unit temporal motion vector prediction,Sub-PU TMVP)模式處理當前預測單元的示例流程;第6圖是依據本發明一些實施例的用子預測單元時間運動向量預測模式處理當前塊的示例流程;第7圖是依據本發明一些實施例的利用子預測單元時間運動向量預測模式處理當前預測單元而構造的示例合併候選列表;第8圖是依據本發明一實施例的示例相鄰子塊位置;第9圖是依據本發明一實施例的混合當前預測單元的子預測單元的運動向量與空間相鄰子預測單元的運動向量的示例;以及第10圖是依據本發明一實施例的子預測單元時間運動向量預測候選的開啟-關閉切換控制機制的示例。
第1圖顯示了依據本發明實施例的示例視訊編碼器100。編碼器100可以包括畫面內預測模組110、畫面間預測模組120、第一加法器131、殘差編碼器132、熵編碼器141、 殘差解碼器133、第二加法器134和已解碼圖像暫存器151。畫面間預測模組120還可以包括運動補償模組121和運動估計模組122。如第1圖所示,這些元件可以耦接在一起。
編碼器100接收輸入視訊資料101,並執行視訊壓縮流程以生成位元流102作為輸出。輸入視訊資料101可以包括圖像序列。每個圖像可以包括一個或多個顏色分量,例如亮度分量或者色度分量。位元流102可以具有符合視訊編解碼標準的格式,例如高級視訊編解碼(Advanced Video Coding,AVC)標準、高效視訊編解碼(High Efficiency Video Coding,HEVC)標準等。
編碼器100可以將輸入視訊資料101中的圖像分割成塊,例如,使用基於樹結構的分割方案。在一個示例中,編碼器100可以以遞迴的方式將圖像分割成編碼單元(coding unit,CU)。例如,圖像可以被分割成編碼樹單元(coding tree unit,CTU)。每個編碼樹單元可以被遞迴地分割成四個更小編碼單元,直到預設尺寸被實現。自該遞迴分割流程而得到的編碼單元可以是正方形塊,但具有不同的尺寸。
隨後,得到的塊可以用不同的處理模式進行處理,例如畫面內預測模式或者畫面間預測模式。在一些示例中,得到的編碼單元可以被處理為預測單元(prediction unit,PU),並用預測模式進行處理。在一些示例中,得到的編碼單元可以被進一步分割成多個預測單元。在一些示例中,預測單元可以包括亮度樣本的塊和/或一個或兩個色度樣本的塊。因此,在本文中,預測單元和預測塊(prediction block,PB)可以被交換使用,以用於指用預測編解碼模式進行處理的亮度樣本或者色度樣本的塊。通常,圖像的分割可以自適應性於圖像的局部內容。因此,得到的塊(編碼單元或者預測單元)可以在圖像的不同位置處具有可變尺寸或者形狀。
在第1圖中,畫面內預測模組110可以被配置成執行畫面內預測以在視訊壓縮流程期間確定當前正被處理的塊(稱為當前塊)的預測。畫面內圖像預測可以是基於與當前塊相同的圖像內的當前塊的相鄰像素。例如,35種畫面內預測模式如HEVC標準中所指定。
畫面間預測模組120可以被配置成執行畫面間預測以在視訊壓縮流程期間確定當前塊的預測。例如,運動補償模組121可以自運動估計模組122接收當前塊的運動資訊(運動資料)。在一示例中,運動資訊可以包括水平運動向量位移值和垂直運動向量位移值、一個或兩個參考圖像索引以及與每個索引相關的參考圖像列表的標識。基於運動資訊和存儲在已解碼圖像暫存器251中的一個或多個參考圖像,運動補償模組121可以確定當前塊的預測。例如,如HEVC標準中所指定,兩個參考圖像列表,即列表0和列表1,可以被構造以用於編解碼B類型片段,並且每個列表可以包括參考圖像序列的標識(identification,ID)。列表的每個成員可以與參考索引相關。因此,參考索引及相應的參考圖像列表一起可以在運動資訊中使用,以識別出此參考圖像列表中的參考圖像。
運動估計模組122可以被配置成確定當前塊的運動資訊,並將運動資訊提供給運動補償模組121。例如,使用 畫面間模式模組123或者合併模式模組124,運動估計模組122可以用多個畫面間預測模式之一對當前塊進行處理。例如,畫面間預測模式可以包括高級運動向量預測(advanced motion vector prediction,AMVP)模式、合併模式、跳過模式、子預測單元時間運動向量預測模式等。
當當前塊由畫面間模式模組123進行處理時,畫面間模式模組123可以被配置成執行運動估計流程,以在一個或多個參考圖像中搜索與當前塊相似的參考塊。參考塊可以用作當前塊的預測。在一示例中,一個或多個運動向量和相應的參考圖像可以被確定為基於所使用的單向或雙向預測方法的運動估計流程的結果。例如,得到的參考圖像可以由參考圖像索引表示,以及在雙向預測被使用的情況中,由相應的參考圖像列表標識表示。由於運動估計流程,運動向量和相關參考索引可以被確定以用於單向預測,或者兩個運動向量和兩個各自的相關參考索引可以被確定以用於雙向預測。此外,對於雙向預測,對應於每個相關參考索引的參考圖像列表(列表0或者列表1)也可以被識別出。這些運動資訊(包括所確定的一個或兩個運動向量、相關參考索引和各自的參考圖像列表)被提供給運動補償模組121。另外,這些運動資訊可以被包括在發送到熵編碼器141的運動資訊103中。
在一示例中,高級運動向量預測模式用於在畫面間模式模組123處預測性編碼運動向量。例如,運動向量預測子(motion vector predictor,MVP)候選列表可以被構造。運動向量預測子候選列表可以包括自當前塊空間相鄰預測塊組或者時間相鄰預測塊組獲得的運動向量預測子序列。例如,位於某些位置處的空間相鄰預測塊或者時間相鄰預測塊的運動向量被選擇並被縮放,以獲得運動向量預測子序列。最佳運動向量預測子候選可以自運動向量預測子候選列表(其可以稱為運動向量預測競爭)選擇,以用於預測性編碼先前確定的運動向量。因此,運動向量差(motion vector difference,MVD)可以被獲得。例如,具有最佳運動向量編解碼效率的運動向量預測子候選可以被選擇。這樣,當高級運動向量預測高級運動向量預測模式被應用到當前塊時,在運動向量預測候選列表中的所選擇的運動向量預測子候選的運動向量預測子索引(稱為運動向量預測子索引)以及各自的運動向量差可以被包括在運動資訊103中,並被提供給熵編碼器141,以替換各自的運動向量。
當當前塊由合併模式模組124進行處理時,合併模式模組124可以被配置成執行合併模式的操作,以確定提供給運動補償模組121的當前塊的運動資料集。例如,候選塊的子集合可以自位於預設候選位置處的當前塊的空間相鄰塊和時間相鄰塊的集合選擇。例如,時間相鄰塊可以位於預設參考圖像處,例如,當前塊(或者包括當前塊的當前圖像)的參考圖像列表,即列表0或者列表1的第一參考圖像處。隨後,合併候選列表可以基於所選擇的時間候選塊集或者空間候選塊集被構造。合併候選列表可以包括多個條目。每個條目可以包括候選塊的運動資訊。對於時間候選塊,在被列入到合併候選列表中之前,各自的運動資訊(運動向量)可以被縮放。此外, 對應於視覺候選塊的合併候選列表中的運動資訊可以具有設置為0的參考索引(意味著列表0或者列表1中的第一圖像用作參考圖像)。
接著,合併候選列表中的最佳合併候選可以被選擇並被確定為當前塊的運動資訊(預測競爭)。例如,假設各自的條目用作當前塊的運動資訊,每個條目可以被評估。具有最高率失真性能的合併候選可以被確定以由當前塊共用。隨後,待共用運動資訊可以被提供到運動補償模組121。另外,合併候選列表中包括待共用運動資料的所選擇的條目的索引可以用於表示並發信此選擇。這個索引稱為合併索引。合併索引可以被包括在運動資訊103中,並被發送到熵編碼器141。
在可選示例中,跳過模式可以由畫面間預測模組120使用。例如,與使用上述的合併模式相似,當前塊可以以跳過模式被預測,以確定運動資料集,然而,沒有參考被生成或者發送。跳過標誌可以與當前塊相關。跳過標誌可以被發信到視訊解碼器。在視訊解碼器側處,基於合併索引確定的預測(參考塊)可以用作已解碼塊,而無需添加殘差訊號。
在又一示例中,子預測單元時間運動向量預測模式可以用作合併模式的部分,以處理當前塊(這樣,子預測單元時間運動向量預測模式也可以稱為子預測單元時間運動向量預測合併模式)。例如,合併模式模組124可以包括子塊合併模組125,其被配置成執行子預測單元時間運動向量預測模式的操作。在子預測單元時間運動向量預測模式的操作中,例如,當前塊可以被進一步分割成子塊集。隨後,每個子塊的時間同位運動向量(collocated motion vectors)可以被獲得、縮放且用作子塊的運動向量。這些得到的運動向量可以被計算為合併候選(稱為子預測單元時間運動向量預測合併候選或者子預測單元候選),並被列入到合併候選列表中。另外,在一些示例中,與得到的運動向量相關的參考圖像索引被設置成0,其對應於參考圖像列表,即列表0或列表1。在上述的合併候選評估流程期間,如果子預測單元候選被選擇(預測競爭),則對應於子預測單元合併候選的合併索引可以被生成並發送在運動資訊103中。子預測單元候選也可以別提供給運動補償模組121,其基於子預測單元候選生成當前塊的預測。
上述描述了多個處理模式,例如,畫面內預測模式、高級運動向量預測模式、合併模式、子預測單元時間運動向量預測模式和跳過模式。通常,不同的塊可以用不同的處理模式進行處理,並且關於哪個處理模式將用於一個塊的決策需要被做出。例如,模式決策可以是基於將不同處理模式應用到一個塊的測試結果。測試結果可以基於各自處理模式的率失真性能被評估。具有最佳結果的處理模式可以被確定為處理此塊的選擇。在可選示例中,其他方法或者演算法可以被使用以確定處理模式。例如,圖像和自此圖像分割而來的塊的特徵可以被考慮以用於確定處理模式。
第一加法器131自畫面內預測模組110或者運動補償模組121接收當前塊的預測,以及來自於輸入視訊資料101的當前塊。隨後,第一加法器131可以自當前塊的像素值提取預測,以獲得當前塊的殘差。當前塊的殘差被發送至殘差 編碼器132。
殘差編碼器132接收塊的殘差,並壓縮此殘差,以生成已壓縮殘差。例如,殘差編碼器132先可以將變換,例如離散余弦變換(discrete cosine transform,DCT)、離散正弦變換(discrete sine transform,DST)、小波變換等,應用到對應於變換塊的所接收的殘差,並生成變換塊的變換係數。將圖像分割成變換塊的分割可以與將圖像分割成預測塊的分割相同或者不同,以用於畫面間或者畫面內預測處理。隨後,殘差編碼器132可以量化係數以壓縮殘差。已壓縮殘差(已量化變換係數)被發送至殘差解碼器133和熵編碼器141。
殘差解碼器133接收已壓縮殘差,並執行殘差編碼器132處所執行的量化操作與變換操作的逆流程,以重構變換塊的殘差。由於量化操作,因此已重構殘差與自第一加法器131生成的原始殘差相似,但通常不同於原始版本。
第二加法器134自畫面內預測模組110和運動補償模組121接收塊的預測,以及自殘差解碼器133接收變化塊的已重構殘差。隨後,第二加法器134將已重構殘差與對應於圖像中同一區域的所接收的預測進行組合,以生成已重構視訊資料。已重構視訊資料可以被存儲在已解碼圖像暫存器151中,形成可以用於畫面間預測操作的參考圖像。
熵編碼器141可以自殘差編碼器132接收已壓縮殘差,以及自畫面間預測模組120接收運動資訊103。熵編碼器141也可以接收其他參數和/或控制資訊,例如,畫面內預測模式資訊、量化參數等。熵編碼器141編碼所接收的參數或 者資訊,以形成位元流102。包括以已壓縮格式的資料的位元流102可以透過通信網路被發送至解碼器,或者發送至存放裝置(例如,非暫時電腦可讀介質),其中,由位元流102所承載的視訊資料可以被存儲。
第2圖顯示了依據本發明實施例的示例視訊解碼器200。解碼器200可以包括熵解碼器241、畫面內預測模組210、包括運動補償模組221和合併模式模組224的畫面間預測模組220,殘差解碼器233、加法器234和已解碼圖像暫存器251。如第2圖所示,這些組件被耦接在一起。在一示例中,解碼器200自編碼器接收位元流201,例如自編碼器接收位元流102,並執行去壓縮流程以生成輸出視訊資料202。輸出視訊資料202可以包括圖像序列,例如,其可以被顯示在顯示裝置,例如,監測器、觸控式螢幕等。
熵解碼器241接收位元流201,並執行是第1圖示例中由熵編碼器141執行的編碼流程的逆流程的解碼流程。因此,運動資訊203、畫面內預測模式資訊、已壓縮殘差、量化參數、控制資訊等被獲得。已壓縮殘差可以被提供到殘差解碼器233。
畫面內預測模組210可以接收畫面內預測模式資訊,並因此生成用畫面內預測模式編碼的塊的預測。畫面間預測模組220可以自熵解碼器241接收運動信息203,並因此生成預測,以用於用高級運動向量預測模式、合併模式、子預測單元時間運動向量預測模式、跳過模式等編碼的塊。所生成的預測被提供給加法器234。
例如,對於用高級運動向量預測模式編碼的當前塊,畫面間模式模組223可以接收運動向量預測子索引和對應於當前塊的運動向量差。畫面間模式模組223可以以與第1圖示例中視訊編碼器100處的畫面間模式模組123相同的方式構造運動向量預測子候選列表。使用運動向量預測子索引,並基於構造的運動向量預測子候選列表,運動向量預測子候選可以被確定。隨後,運動向量可以透過結合運動向量預測子候選和運動向量差被推導出,並被提供給運動補償模組221。結合其他運動資訊,例如參考索引、各自的參考圖像列表,並基於存儲在已解碼圖像暫存器251中的參考圖像,運動補償模組221可以生成當前塊的預測。
對於用合併模式編碼的塊,合併模式模組224可以自運動資訊203獲得合併索引。另外,合併模式模組224可以以與第1圖示例中視訊編碼器100處的合併模式模組124相同的方式構造合併候選列表。使用合併索引,並基於所構造的合併候選列表,合併候選可以被確定,並被提供給運動補償模組221。運動補償模組221因此可以生成當前塊的預測。
在一示例中,所接收到的合併索引可以指示子預測單元時間運動向量預測被應用到當前塊。例如,合併索引處於預定義範圍內,以用於表示子預測單元候選,或者合併索引與特定標誌相關。因此,子預測單元時間運動向量預測模式相關的操作可以在子塊合併模組225處被執行,以推導出對應於合併索引的各自的子預測單元合併候選。例如,子塊合併模組225可以以與第1圖示例中視訊編碼器處的子塊合併模組125相同的方式獲得子預測單元合併候選。隨後,所推導出的子預測單元合併候選可以被提供給運動補償模組221。運動補償模組221因此可以生成當前塊的預測。
殘差解碼器233、加法器234可以與第1圖示例中的殘差解碼器133和第二加法器134在功能和結構方面相似。具體地,對於用跳過模式編碼的塊,沒有殘差被生成以用於這些塊。已解碼圖像暫存器251存儲參考圖像,其用於在運動補償模組221處所執行的運動補償。例如,參考圖像可以由自加法器234接收的已重構視訊資料形成。另外,參考圖像可以自已解碼圖像暫存器251獲得,並被包括在輸出視訊資料202,以用於顯示裝置進行顯示。
在不同的實施例中,編碼器100和解碼器200的這些組件可以用硬體、軟體或者其組合實現。例如,合併模組124和合併模組224可以用一個或多個積體電路(integrated circuit,IC)實現,例如應用專用積體電路(application specific integrated circuit,ASIC)、現場可程式設計閘陣列(field programmable gate array,FPGA)等。又例如,合併模組124和合併模組224可以被實現為包括存儲在電腦可讀非暫時存儲介質中的指令的軟體或者韌體。這些指令,在由處理電路執行時,使得處理電路執行合併模組124或者合併模組224的功能。
注意的是,合併模組124和合併模組224可以被包括在其他解碼器或者編碼器中,其可以具有與第1圖或者第2圖所示的相似或者不同的結構。另外,在不同示例中,編碼器100和解碼器200可以被包括在同一設備或者獨立設備中。
第3圖顯示了依據本發明一些實施例的用於以高級運動向量預測模式推導出的運動向量預測子候選或者用於以合併模式推導出的合併候選的空間候選位置和時間候選位置的示例。第3圖中的候選位置與用於合併模式或者高級運動向量預測模式的如HEVC標準中指定的候選位置相似。如圖所示,預測塊310將用合併模式進行處理。候選位置集{A0,A1,B0,B1,B2,T0,T1}被預定義。具體地,候選位置{A0,A1,B0,B1,B2}是空間候選位置,其表示與預測塊310處於同一圖像中的空間相鄰塊的位置。相對地,候選位置{T0,T1}是時間候選位置,其表示處於同位圖像(collocated picture)中的時間相鄰塊的位置。同位圖像依據頭被分配。在一些實施例中,同位圖像是參考列表L0或者參考圖像列表L1中的參考圖像。
在第3圖中,每個候選位置由樣本的塊表示,例如,具有4x4個樣本的尺寸。在一些實施例中,此塊的尺寸可以等於或者小於為用於生成預測塊310的基於樹的分割方案所定義的預測塊的最小允許尺寸(例如,4x4個樣本)。在這種配置下,在單個相鄰預測塊內,表示候選位置的塊可以總是被覆蓋。在可選示例中,樣本位置可以用於表示候選位置。
在運動向量預測子候選列表或者合併候選列表構造流程期間,位於候選位置處的相鄰預測塊的運動資訊可以被選擇為運動向量預測子候選或者合併候選,並被包括在運動向量預測子候選列表或者合併候選列表中。在一些情景中,位於候選位置處的運動向量預測子候選或者合併候選可以是不可用的。例如,位於候選位置處的候選塊可以是畫面內預測的, 或者可以位於包括當前預測塊310的片段的外部或與當前預測塊310不是處於同一CTB列中。在一些情景中,位於候選位置處的合併候選可以是冗餘的。例如,合併候選的運動資訊與運動向量預測子候選列表或者合併候選列表中另一候選的運動資訊相同,則其可被視為冗餘候選。在一些示例中,冗餘合併候選可以自候選列表中移除。
在一示例中,在高級運動向量預測模式中,左側運動向量預測子可以是來自於位置{A0,A1}的第一可用候選,頂端運動向量預測子可以是來自於位置{B0,B1,B2}的第一可用候選,並且時間運動向量預測子可以是來自於位置{T0,T1}的第一可用候選(T0先被使用。如果T0不可用,則T1被使用)。作為一示例,在HEVC標準中,運動向量預測子候選列表尺寸被設置成2。因此,在兩個空間運動向量預測子和一個時間運動向量預測子的推導流程之後,前兩個運動向量預測子可以被包括在運動向量預測子候選列表中。如果在移除冗餘之後,可用運動向量預測子的數量小於2,則零向量候選可以被添加到運動向量預測子候選列表中。
在一示例中,對於合併模式,多達四個空間合併候選自位置{A0,A1,B0,B1}推導出,並且一個時間合併候選自位置{T0,T1}(T0先被使用。如果T0不可用,則T1被使用)推導出。如果四個空間合併候選中的任何一個不可用,則位置B2用於推導出合併候選,以作為替代。在四個空間合併候選和一個時間合併候選的推導流程之後,移除冗余可以被應用,以移除冗餘的合併候選。如果在移除冗餘之後,可用合併候選 的數量小於預定義的合併候選列表尺寸(例如,在一示例中的5),則額外的候選可以被推導出,並被添加到合併候選列表中。在一些示例中,額外的候選可以包括如下三種候選類型:組合雙向預測合併候選、已縮放雙向預測合併候選和零向量合併候選。
第4圖顯示了依據本發明一些實施例的運動向量縮放操作400的示例。透過執行運動向量縮放操作400,已縮放運動向量432可以自同位運動向量422推導出。具體地,已縮放運動向量432與當前圖像430和當前參考圖像440相關。已縮放運動向量432可以用於確定用於當前圖像430中當前塊431的預測。相對地,同位運動向量422與同位圖像420和同位參考圖像410相關。同位運動向量422可以用於確定用於同位圖像420中同位塊421的預測。另外,圖像410-圖像440每個可以被分配圖像順序計數(picture order count,POC)值,即圖像順序計數1-圖像順序計數4,表示相對於視訊序列中其他圖像的輸出位置(或者表示時間)。
具體地,同位塊421可以是當前塊431的時間相鄰塊。例如,在第3圖中,同位塊421可以是位於候選位置T0或者候選位置T1處的時間相鄰塊,以用於高級運動向量預測模式或者合併模式。另外,對應於高級運動向量預測模式,當前參考圖像440可以是由運動估計操作所確定的當前塊431的參考圖像。對應於合併模式,當前參考圖像440可以是預配置以用於時間合併候選的參考圖像,例如,當前塊431的參考圖像列表,即列表0或者列表1中的第一參考圖像。
對於運動向量縮放操作,可以假設運動向量的值與與此運動向量相關的兩個圖像之間的表示時間中的時間距離成比例。基於此假設,已縮放運動向量432可以透過基於兩個時間距離縮放同位運動向量422獲得。例如,如第4圖所示,第一時間距離433可以是圖像順序計數POC3-圖像順序計數POC4的差,第二時間距離423可以是圖像順序計數POC2-圖像順序計數POC1的差。因此,使用如下運算式,已縮放運動向量MVS_x或者MVS_y的水平位移值或者垂直位移值可以被計算出:
Figure 107113339-A0305-02-0025-1
Figure 107113339-A0305-02-0025-2
其中MVC_x和MVC_y是同位運動向量422的垂直位移值和水平位移值。在可選示例中,運動縮放操作可以以不同於上述方式的方式被執行。例如,不同於上述運算式的運算式可以被使用,並且額外因素可以被考慮。
第5圖顯示了依據本發明一些實施例的用子預測單元時間運動向量預測模式處理當前預測單元510的示例流程500。流程500可以被執行,以確定用於當前預測單元的子塊的合併候選集。流程500可以在第1圖示例中的視訊編碼器100中子塊合併模組125處,或者在第2圖示例中的視訊解碼器200中子塊合併模組125處執行。
具體地,當前預測單元510可以被分割成子預測單元501。例如,當前預測單元510可以具有MxN像素的尺寸,並被分割成(M/P)x(N/Q)個子預測單元501,其中M除以P,N 除以Q。每個得到的子預測單元501是PxQ像素的尺寸。例如,得到的子預測單元501可以具有8x8像素、4x4像素或者2x2像素的尺寸。
隨後,參考圖像520,稱為時間同位圖像520,可以被確定。接著,每個子預測單元501的運動向量,稱為原始子預測單元運動向量,可以被確定。此後,時間同位子預測單元(其是子預測單元501的時間相鄰塊)的集合可以被確定。使用原始子預測單元運動向量,時間同位子預測單元的集合(每個對應於子預測單元501)可以被定位在時間同位圖像520處。
如第5圖所示,是子預測單元511-子預測單元512的示例。如圖所示,子預測單元511具有到各自的時間同位子預測單元521的原始子預測單元運動向量531。子預測單元512具有到各自的時間同位子預測單元522的原始子預測單元運動向量532。
隨後,所確定的時間同位子預測單元的運動資訊被獲得以用於預測單元510。例如,時間同位子預測單元521的運動資訊用於推導出子預測單元511的運動向量。例如,時間同位子預測單元521的運動資訊可以包括運動向量541、相關參考索引,並且可選地包括對應於相關參考索引的參考圖像列表。同樣地,時間同位子預測單元522的運動資訊(包括運動向量542)用於推導出子預測單元512的運動向量。
在用子預測單元時間運動向量預測模式處理當前預測單元510的流程500的可選示例中,操作可以不同於上述描述。例如,在不同的示例中,不同的子預測單元501可以使用不同的時間同位圖像,並且確定時間同位圖像的方法可以變化。另外,確定原始子預測單元運動向量的方法可以變化。在一示例中,子預測單元的原始子預測單元運動向量可以使用同一運動向量。
可以看出,子預測單元時間運動向量預測模式使能多個子預測單元的具體運動資訊以被推導出且使用以用於編碼當前塊。相對地,傳統合併模式中,當前塊被處理為整體,並且合併候選用於整個當前塊。因此,子預測單元時間運動向量預測模式可以比用於子預測單元的傳統合併模式潛在地提供更多準確的運動資訊,從而提高視訊編解碼效率。
第6圖顯示了依據本發明一些實施例的用子預測單元時間運動向量預測模式處理當前塊的示例流程600。流程600可以在第1圖示例中的視訊編碼器100中子塊合併模組125,或者第2圖示例中的視訊解碼器200中子塊合併模組225處執行。流程600始於S601,並繼續到S610。
在S610中,在搜索流程期間,確定用於當前預測單元的子預測單元的參考圖像(稱為主同位圖像)。首先,子塊合併模組125或者子塊合併模組225可以查找當前預測單元的原始運動向量。原始運動向量可以被標記為vec_init。在一示例中,vec_init可以是來自於第一可用空間相鄰塊的運動向量,例如,第3圖示例中的位於位置{A0,A1,B0,B1,B2}處的相鄰塊之一。
在一示例中,vec_init是與搜索流程期間首先被搜 索到的第一可用空間相鄰塊的參考圖像列表相關的運動向量。例如,第一可用空間相鄰塊位於B片段中,並可以具有與不同的參考圖像列表,即列表0和列表1相關的兩個運動向量。兩個運動向量分別稱為列表0運動向量和列表1運動向量。在搜索流程期間,列表0和列表1中的一個先被搜索(如下所述)以用於主同位圖像,另一個接著被搜索。先被搜索的一個(列表0或者列表1)稱為第一列表,接著被搜索的一個稱為第二列表。因此,在列表0運動向量和列表1運動向量中,與第一列表相關的一個可以用作vec_init。
例如,列表X是第一列表,以用於搜索同位資訊(同位圖像),如果列表X=列表0,則vec_init使用列表0運動向量,並且如果列表X=列表1,則vec_init使用列表1運動向量。列表X(列表0或者列表1)的值取決於哪個列表(列表0或者列表1)更好以用於同位資訊。如果列表0更好以用於同位資訊(例如,圖像順序計數距離更靠近列表1),則列表X=列表0,並且反過來也一樣。列表X分配可以是位於片段層或圖像層。在可選示例中,使用不同的方法,vect_init可以被確定。
在當前預測單元的原始運動向量被確定之後,同位圖像搜索流程可以開始搜索主同位圖像。主同位圖像被標記為main_colpic。同位圖像搜索流程將查找當前預測單元的子預測單元的主同位圖像。在同位圖像搜索流程期間,當前預測單元的參考圖像被搜索且研究,參考圖像之一被選擇為main_colpic。在不同的示例中,搜索流程可以以不同的方式來 實施。例如,參考圖像可以用不同的方法(例如,用或不用運動向量縮放操作)來研究。或者搜索參考圖像的順序可以改變。
在一示例中,搜索以如下順序實施。首先,搜索由第一可用空間相鄰塊選擇的參考圖像(即與原始運動向量相關的參考圖像)。隨後,在B片段中,可以搜索當前預測單元的所有參考圖像,從一個參考圖像列表,即列表0(或列表1)開始,參考索引0、索引1、索引2等等(增加索引次序(index order))。如果對列表0(或列表1)的搜索完成,而沒有查找到有效的主同位圖像,可以搜索另一列表,即列表1(或列表0)。在P片段中,可以搜索列表0中當前預測單元的參考圖像,從參考索引0開始,接著索引1、索引2等等(增加索引次序)。
在主同位圖像的搜索期間,參考圖像被研究,以確定正在研究的圖像是否是有效或可用的。因此,每個參考圖像的這種研究也稱為可用性檢測。在一些示例中,可以以如下方式執行研究,以用於除了與原始運動向量相關的參考圖像之外的每個搜索圖像(正在研究的圖像)。在第一步驟中,可以執行運動向量縮放操作。透過運動向量縮放操作,原始運動向量被縮放成已縮放運動向量,標記為vec_init_scaled,其對應於正在研究的參考圖像。縮放操作可以是基於當前圖像(包括當前預測單元和第一可用空間相鄰塊)和與原始運動向量相關的參考圖像之間的第一時間距離,以及當前圖像和正在研究的參考圖像之間的第二時間距離。對於第一正在研究的圖像(其是與原始運動向量相關的參考圖像),不執行縮放操作。
在一些示例中,在運動向量縮放操作被執行之 前,是否執行運動向量縮放的決策可以被確定。例如,列表0或列表1中的正在研究的參考圖像和與原始運動向量相關的參考圖像是否是同一圖像被檢查。當與原始運動向量相關的參考圖像和正在研究的參考圖像是同一圖像時,運動向量縮放可以被跳過,並且該正在研究的圖像的研究可以被完成。在相反的情景中,縮放操作可以如上所述進行執行。
下面是兩個示例的檢查列表0或列表1中正在研究的參考圖像和與原始運動向量相關的參考圖像是否是同一圖像。在第一示例中,當與第一可用空間相鄰塊的原始運動向量相關的參考索引不等於正在研究的參考圖像的參考索引時,縮放操作可以被執行。在另一示例中,與原始運動向量相關的參考圖像的圖像順序計數值和正在研究的參考圖像的圖像順序計數值可以被檢查。當圖像順序計數值不同時,縮放操作可以被執行。
在研究的第二步驟中,基於已縮放原始運動向量,在正在研究的圖像中確定檢查位置,並檢測檢查位置是畫面間編解碼的(用畫面間預測模式進行處理)還是畫面內編解碼的(用畫面內預測模式進行處理)。如果檢查位置是畫面間編解碼的(可用性檢測是成功的),則正在研究的圖像可以用作主同位圖像,且搜索流程可以停止。如果檢查位置是畫面內編解碼的(可用性檢測是失敗的),則搜索可以繼續以研究下一參考圖像。
在一示例中,當前預測單元的周圍中心位置與vec_init_scaled一起被添加,以在正在研究的圖像中確定檢查 位置。在不同的示例中,可以以不同的方式確定周圍中心位置。在一示例中,周圍中心位置可以是中心像素。例如,對於尺寸為MxN像素的當前預測單元,周圍中心位置可以是位置(M/2,N/2)。在一示例中,周圍中心位置可以是當前預測單元中的中心子預測單元的中心像素。在一示例中,周圍中心位置可以是除了前面兩個示例中的位置之外位於當前預測單元的中心周圍的位置。在可選示例中,可以以不同的方式定義並確定檢查位置。
對於與原始運動向量相關的參考圖像,當前預測單元的周圍中心位置可以與vec_init(而非vec_init_scaled)一起被添加,以確定檢查位置。
在S620中,可以確定當前預測單元的子預測單元的原始運動向量。例如,尺寸為MxN像素的當前預測單元可以被分割成尺寸為PxQ像素的子預測單元。子預測單元原始運動向量可以被確定以用於每個子預測單元。第i個子預測單元的子預測單元原始運動向量可以被標記為vec_init_sub_i(i=0~((M/P)x(N/Q)-1))。在一示例中,子預測單元原始運動向量等於對應於S610中查找到的主同位圖像的已縮放運動向量(即vec_init_sub_i=vec_init_scaled)。在一示例中,子預測單元原始運動向量,即vec_init_sub_i(i=0~((M/P)x(N/Q)-1))可以相互不同,且可以基於當前塊的一個或多個空間相鄰預測單元,或者用其他合適的方法被推導出。
在S630中,可以搜索子預測單元的同位圖像,其稱為子預測單元同位圖像。例如,對於每個子預測單元,來自 於參考圖像列表0的子預測單元同位圖像和來自於參考圖像列表1的子預測單元同位圖像可以被查找到。在一示例中,僅存在一個同位圖像(使用如上所述的main_colpic),以用於當前預測單元的所有子預測單元的參考圖像列表0。在一示例中,所有子預測單元的參考圖像列表0的子預測單元同位圖像可以不同。在一示例中,僅存在一個同位圖像(使用如前面所述的main_colpic),以用於當前預測單元的所有子預測單元的參考圖像列表1。在一示例中,所有子預測單元的參考圖像列表1的子預測單元同位圖像可以不同。第i個子預測單元的參考圖像列表0的子預測單元同位圖像可以被標記為collocated_picture_i_L0,且第i個子預測單元的參考圖像列表1的子預測單元同位圖像可以被標記為collocated_picture_i_L1。在一示例中,main_colpic均用於列表0和列表1的當前預測單元的所有子預測單元。
在S640中,可以在子預測單元同位圖像中確定子預測單元同位位置。例如,子預測單元同位圖像中的同位位置可以被查找到以用於子預測單元。在一示例中,可以依據如下運算式確定子預測單元同位位置。
同位位置x=sub-PU_i_x+vec_init_sub_i_x(整數部分)+shift_x,同位位置y=sub-PU_i_y+vec_init_sub_i_y(整數部分)+shift_y,其中,sub-PU_i_x表示當前預測單元內的第i個子預測單元的水平左上位置(整數位置),sub-PU_i_y表示當前預測單元內的第i個子預測單元的垂直左上位置(整數位置),vec_init_sub_i_x表示vec_init_sub_i的水平部分 (vec_init_sub_i在計算上可以具有整數部分和分數部分,且整數部分被使用),vec_init_sub_i_y表示vec_init_sub_i的垂直部分(同理,整數部分被使用),shift_x表示第一位移值,shift_y表示第二位移值。在一示例中,shift_x可以是子預測單元寬度的一半,shift_y可以是子預測單元高度的一半。在可選示例中,shift_x或shift_y可以採用其他適當的值。
在S650中,位於子預測單元同位位置處的運動資訊可以被獲得以用於每個子預測單元。例如,作為第i個子預測單元的時間預測子的運動資訊,標記為subPU_MI_i,可以被獲得以用於來自於各自子預測單元同位圖像的每個子預測單元。subPU_MI_i可以是來自於同位位置x和同位位置y上的collocated_picture_i_L0和collocated_picture_i_L1的運動資訊。在一示例中,subPU_MI_i可以被定義為{MV_x,MV_y、相關參考列表、相關參考索引和諸如局部亮度補償標誌的其他合併模式敏感資訊}的集合。MV_x和MV_y表示位於第i個子預測單元的collocated_picture_i_L0和collocated_picture_i_L1中同位位置x和同位位置y處的運動向量的水平運動向量位移值和垂直運動向量位移值。
另外,在一些示例中,MV_x和MV_y可以依據同位圖像、當前圖像和同位運動向量(motion vector,MV)之間的時間距離關係進行縮放。例如,當前圖像中的子預測單元可以具有第一參考圖像(例如,列表0或列表1中的第一參考圖像),並具有包括該子預測單元的同位運動向量的子預測單元同位圖像。同位運動向量可以與第二參考圖像相關。因此,同 位運動向量可以被縮放以基於當前圖像與第一參考圖像之間的第一時間距離和子預測單元同位圖像與第二參考圖像之間的第二時間距離來獲得已縮放運動向量。流程600可以繼續到S699,並結束於S699。
I.多個子預測單元時間運動向量預測合併候選的方法
為了提高編解碼效率,在一些實施例中,多個子預測單元時間運動向量預測合併候選方法在子預測單元時間運動向量預測模式中使用。多個子預測單元時間運動向量預測合併候選方法的主要思想是,不是在合併候選列表中僅具有一個子預測單元時間運動向量預測候選,而多個子預測單元時間運動向量預測合併候選可以被插入到一個候選列表中。另外,推導出每個子預測單元時間運動向量預測候選的演算法,稱為子預測單元時間運動向量預測演算法,可以相互不同。例如,第6圖示例中的流程600可以是這種子預測單元時間運動向量預測演算法之一。多於一個子預測單元時間運動向量預測候選的使用可以增加合併候選的多樣性,且可以增加選擇更佳合併候選的可能性,從而提高編解碼效率。
在一示例中,N_S個子預測單元時間運動向量預測候選可以被插入到合併候選列表中。合併候選列表中總共存在M_C個候選,且M_C>N_S。推導出每個子預測單元時間運動向量預測候選i(i=1,2,..,N_S)的子預測單元時間運動向量預測演算法的集合被標記為algo_i。對於不同的子預測單元時間運動向量預測候選,例如子預測單元時間運動向量預 測候選i和子預測單元時間運動向量預測候選j(i和j不同),algo_i可以隨著algo_j不同而不同。
第7圖顯示了依據本發明一些實施例的構造以用於用子預測單元時間運動向量預測模式處理當前預測單元的示例合併候選列表。子預測單元時間運動向量預測模式使用多個子預測單元時間運動向量預測合併候選方法來推導出合併候選列表700中的子預測單元時間運動向量預測候選。合併候選列表700可以包括合併候選的序列。每個合併候選可以與一個合併索引相關。如箭頭710所示,合併候選的列表可以按照合併索引增加順序進行排列。
合併候選列表700的部分包括空間合併候選701、第一子預測單元時間運動向量預測合併候選702、第二子預測單元時間運動向量預測合併候選703和時間合併候選704。空間合併候選701和時間合併候選704可以用與第3圖示例中所述的合併模式相似的傳統的合併模式來推導。例如,空間合併候選701可以是當前預測單元的空間相鄰預測單元的合併資訊,而時間合併候選704可以是當前預測單元的時間相鄰預測單元的合併資訊(縮放可以被使用)。相反,第一子預測單元時間運動向量預測合併候選702和第二子預測單元時間運動向量預測合併候選703可以使用兩個不同的子預測單元時間運動向量預測演算法來推導出。
另外,在可選示例中,兩個子預測單元時間運動向量預測合併候選的位置可以與第7圖中所述的不同。例如,當確定當前預測單元可以具有更高可能性以用子預測單元時 間運動向量預測方法進行處理時,兩個子預測單元時間運動向量預測合併候選,即702和703可以被重新排序到合併候選列表700的前面部分。換言之,當確定子預測單元時間運動向量預測合併候選702或者子預測單元時間運動向量預測合併候選703可以具有更高可能性以在合併候選列表700的合併候選中被選擇時,子預測單元時間運動向量預測合併候選702或者子預測單元時間運動向量預測合併候選703可以被移向合併候選列表700的開始處。這樣,對應於選擇的子預測單元時間運動向量預測合併候選的合併索引可以用更高的編解碼效率進行編解碼。
下面描述不同子預測單元時間運動向量預測演算法的示例。第6圖示例中的流程600可以是子預測單元時間運動向量預測演算法的選擇之一,並可以稱為原始子預測單元時間運動向量預測演算法。下面描述的子預測單元時間運動向量預測演算法中的每個可以包括不同於原始子預測單元時間運動向量預測演算法中所執行的一個或多個步驟或操作,其中同一子預測單元時間運動向量預測演算法可以被考慮為應用于包括不同於原始子預測單元時間運動向量預測演算法中所執行的一個或多個步驟或操作的子預測單元時間運動向量預測演算法或者原始子預測單元時間運動向量預測演算法。除了下面描述的這些不同步驟和操作之外,子預測單元時間運動向量預測演算法中的其他步驟或操作可以相同或不同於原始子預測單元時間運動向量預測演算法中所執行的步驟或操作。採用多個不同的預測單元時間運動向量預測演算法的目的在於提 供多個預測單元時間運動向量預測合併候選,並增加選擇用於編碼當前預測單元的更佳合併候選的可能性。
示例I.1
在原始子預測單元時間運動向量預測演算法中,如第6圖示例中的流程600中S610所述,來自於第一可用空間相鄰塊的運動向量可以用作原始運動向量(標記為vec_init)。相反,在本示例I.1中,原始運動向量(vec_init)可以是透過平均幾個運動向量而不是採用來自於當前預測單元的第一可用空間相鄰塊的運動向量來生成的。例如,原始運動向量可以透過平均當前預測單元的空間相鄰運動向量,或者透過平均幾個已生成的合併候選、位置和/或合併候選列表中位於子預測單元時間運動向量預測候選之前的候選的順序而生成。
在第一情況中,當前預測單元的空間相鄰塊的運動向量可以被平均以獲得原始運動向量。在第一示例中,如第3圖所示,空間相鄰塊可以是位於A0候選位置、A1候選位置、B0候選位置、B1候選位置或B2候選位置處的塊的子集合。例如,空間相鄰塊可以是覆蓋候選位置的預測單元,或者可以是覆蓋候選位置的子預測單元。在第二示例中,空間相鄰塊可以被定義為位於位置A0’、位置A1’、位置B0’、位置B1’或位置B2’處的相鄰塊。位置A0’、位置A1’、位置B0’、位置B1’或位置B2’以如下方式進行定義。位置A0’意味著包含位置A0的相鄰預測單元的左上角子塊(子預測單元),位置A1’意味著包含位置A1的預測單元的左上角子塊,等等。來自於位於 位置的子塊(子預測單元)的運動向量的子集合可以被平均以獲得原始運動向量。一示例的位置A1’如第8圖所示。如圖所示,當前預測單元810具有位於位置A1處的空間相鄰預測單元820。位於相鄰預測單元820的左上角處的子塊821被定義成位置A1’。子塊821的運動向量將用其他相鄰運動向量進行平均。在第三示例中,待平均的空間相鄰塊可以包括位於位置A0、位置A1、位置B0、位置B1、位置B2和位置A0’、位置A1’、位置B0’、位置B1’、位置B2’處的子塊。
在第二情況中,合併候選的運動向量的子集合、位置和/或合併候選列表中位於正推導出的子預測單元時間運動向量預測候選(稱為當前子預測單元時間運動向量預測候選)之前的候選的順序可以被平均以獲得原始合併候選,以用於推導出當前子預測單元時間運動向量預測候選。
在一些示例中,對於所有空間相鄰塊中的K個候選或者合併列表中位於當前子預測單元時間運動向量預測候選的位置或順序之前的所有合併候選中的K個候選,運動向量可以被標記為MV1_L0,MV1_L1,MV2_L0,MV2_L1,...,MVK_L0,MVK_L1,或被標記為MVi_L0和MVi_L1,其中i=1到K。MVi_L0和MVi_L1分別表示與參考圖像列表0和參考圖像列表1相關的運動向量。因此,i=1到K的MVi_L0和MVi_L1可以被平均以獲得原始運動向量的最終運動向量。
下面描述平均操作的幾個示例。在一示例中,與列表0和列表1相關的運動向量的平均被單獨執行。具體地,所有MVi_L0的子集合可以被平均成列表0的一個運動向量, 稱為MV_avg_L0。MV_avg_L0可以不存在,是因為MVi_L0可能根本不可用,或者其他原因。所有MVi_L1的子集合可以被平均成列表1的一個運動向量,稱為MV_avg_L1。同樣地,MV_avg_L1可以不存在,是因為MVi_L1可能根本不可用,或者其他原因。隨後,vec_init可以依據列表0或列表1的運動向量而被優選(被選擇)且依據MV_avg_L0和MV_avg_L1的可用性而為MV_avg_L0或MV_avg_L1。例如,在第6圖示例中的主同位搜索流程期間,依據一些考慮,列表0或列表1之一被選擇為第一待搜索列表(稱為第一列表,優選列表)。
在一示例中,所有MVi_L0和MVi_L1(i=1~K)被平均成一個運動向量。在平均期間,僅指向同一參考圖像(稱為平均的目標圖像)的運動向量被選擇以用於平均。例如,平均的目標圖像可以是選擇的參考圖像(例如列表0或列表1中的第一圖像)。或者,目標圖像可以是與對應於搜索主同位圖像(main collocated picture)的第一待搜索列表的第一可用相鄰塊的運動向量相關的圖像。第一可用相鄰塊可以位於位置A0、位置A1、位置B0、位置B1、位置B2或位置A0'、位置A1'、位置B0'、位置B1'、位置B2'之一,或者是位於各自合併候選列表中的當前子預測單元時間運動向量預測之前的合併候選之一的相鄰塊。
注意的是,儘管在上述示例中,原始向量以不同於第6圖示例(在第6圖示例中,第一可用空間相鄰塊的運動向量被採用)的方式來獲得,但是,如流程600所述,可能的運動向量縮放操作仍然可以被執行以用於後續階段。換句話 說,在透過上述平均方法獲得原始向量之後,運動向量縮放操作在同位參考圖像搜索流程期間仍然被執行。
示例I.2
在原始子預測單元時間運動向量預測演算法中,當前預測單元的主同位圖像可以被獲得為流程600的S610中的同位圖像搜索流程的結果。該主同位圖像可以被標記為main_colpic_original。在子預測單元時間運動向量預測演算法的本示例I.2中,主同位圖像(標記為main_colpic)被確定為一參考圖像,其與main_colpic_original相關的包含當前預測單元的當前圖像的方向相反(或者稱為在相反的列表中),並且例如,當前圖像的圖像順序計數距離與main_colpic_original至當前圖片的圖像順序計數距離相同。
例如,可以先使用流程600中S610中的同位圖像搜索流程查找到main_colpic_original。隨後,main_colpic可以被確定為是不同於main_colpic_original的列表的列表的反向列表內的參考圖像。另外,例如,main_colpic具有與main_colpic_original的圖像順序計數距離相同的距離包含當前預測單元的當前圖像的圖像順序計數距離。換言之,新的main_colpic是具有“列表=main_colpic_original的列表的反向”和“圖像順序計數距離=main_colpic_original的圖像順序計數距離”。例如,如果由搜索流程的搜索確定的同位圖像是列表0,且具有參考索引2,並且例如,該同位參考圖像和包括當前預測單元的當前圖像的圖像順序計數距離為3,則反向列表(本示例中是列表1)可以被確定,且列表1中圖像順序計 數距離為3的一個參考圖像可以被確定為新的同位圖像。當新的同位圖像不可用(例如,可能從“可用性檢測”中失敗)時,示例I.2的演算法將沒結果。在一示例中,原始主同位圖像可以被保留,形成了main_colpic=main_colpic_original。
示例I.3
在原始子預測單元時間運動向量預測演算法中,如第6圖示例中的流程600中S610中所述,來自於第一可用空間相鄰塊的運動向量可以用作原始運動向量(標記為vec_init)。另外,第一可用空間相鄰塊可以具有與兩個參考圖像列表,即列表0和列表1相關的兩個運動向量。選擇用作vect_init的運動向量是一個與第一參考圖像列表相關的運動向量。第一列表是在流程600的S610中的同位圖像搜索流程期間先被搜索到的列表0和列表1中的一個。隨後被搜索的列表0和列表1中的另一個稱為第二列表。列表0或列表1是否用作第一列表可以依據一規則進行確定,或者可以被預定義。
相反,在子預測單元時間運動向量預測演算法的本示例I.3中,原始運動向量被選擇為不同於與原始子預測單元時間運動向量預測演算法中所採用的第一列表相關的第一可用空間相鄰塊或第一可用時間相鄰塊的運動向量的運動向量。在一示例中,原始運動向量可以自第二可用空間相鄰塊或第二可用時間相鄰塊的運動向量,或者示例I.3演算法中的第一可用空間相鄰塊但與第一可用空間相鄰塊的第二列表相關的運動向量中進行選擇。可以基於第二可用空間相鄰塊的可用性和第一可用空間相鄰塊的第二列表來做出選擇。在一示例 中,原始向量的候選可以是一些空間相鄰運動向量或時間相鄰運動向量,或者合併候選列表中位於當前子預測單元時間運動向量預測候選之前的一些合併候選。因此,使用示例I.2的演算法,多個不同的原始運動向量可以被確定以推導出多個子預測單元候選。
原始向量的候選可以被標記為cand_mv_0,cand_mv_1,..,和cand_mv_m,或者被標記為cand_mv_i(i從1到m)。每個cand_mv_i可以具有列表0運動向量和列表1運動向量。在原始子預測單元時間運動向量預測演算法中,與第一相鄰的第一列表(如果第一列表不存在,則選擇第二列表)相關的運動向量被選擇為原始向量。
在示例I.3的類型的子預測單元時間運動向量預測演算法中,在一示例中,與第二相鄰塊或者第一相鄰塊的第二列表相關的運動向量基於cand_mv_i的可用性或者cand_mv_i內的列表的可用性而被選擇為原始運動向量。例如,當每個cand_mv_i的可用性或者cand_mv_i內的列表的可用性滿足一特定條件(稱為條件1)時,選擇第二相鄰,或者當每個cand_mv_i的可用性或者cand_mv_i內的列表的可用性滿足另一條件(稱為條件2)時,選擇第一相鄰的第二列表。當每個cand_mv_i的可用性或者cand_mv_i內的列表的可用性滿足第三條件(稱為條件3)時,停止當前子預測單元時間運動向量預測流程(在本示例中,當前子預測單元時間運動向量預測不可用)。
注意的是,儘管在上述示例I.3演算法中,原始向量以不同於原始子預測單元時間運動向量預測演算法的方式而被生成,但是,如第6圖示例中的流程600中所述,可能的運動向量縮放操作可以仍然用於後續階段(同位圖像搜索流程)。
下面描述自第二可用空間相鄰塊選擇原始運動向量或自與第二列表相關的第一可用空間相鄰塊選擇原始運動向量的幾個示例。
示例I.3-1
在本示例中,若當i=0時cand_mv_i可用,並且當i>=1時cand_mv_i不可用,則滿足條件3,並停止當前子預測單元時間運動向量預測流程(在本示例中,當前子預測單元時間運動向量預測不可用)。若當i=0或1時cand_mv_i存在,則滿足條件1。第二相鄰塊可以被選擇以提供原始向量。
換句話說,當僅第一空間相鄰塊可用時,當前子預測單元時間運動向量預測演算法結束,且沒有子預測單元時間運動向量預測合併候選是當前子預測單元時間運動向量預測演算法的結果。當第二空間相鄰塊可用時,第二空間相鄰塊的運動向量被選擇為原始運動向量。
示例I.3-2
在本示例中,若當i=0時cand_mv_i可用,並且當i>=1時cand_mv_i不可用,且在cand_mv_0中僅列表0運動向量或者僅列表1運動向量可用(也就是說,列表0和列表1不同時存在)時,則滿足條件3,並停止當前子預測單元時間運動向量預測流程(在本示例中,當前子預測單元時間運動向量 預測不可用)。若當i=0時cand_mv_i可用,當i>=1時cand_mv_i不可用,且cand_mv_0中列表0運動向量和列表1運動向量均可用時,則滿足條件2,並選擇與第一可用相鄰的第二列表相關的運動向量。若當i=0或1時cand_mv_i存在,條件1被滿足。第二相鄰的運動向量可以被選擇為原始運動向量。
示例I.3-3
在本示例中,若當i=0時cand_mv_i可用,並且當i>=1時caind_mv_i不可用,且在cand_mv_0中僅列表0運動向量或者僅列表1運動向量可用(即列表0和列表1不同時存在)時,則滿足條件3,並停止當前子預測單元時間運動向量預測流程(在本示例中,當前子預測單元時間運動向量預測不可用)。若當i=0時cand_mv_i可用,並且當i>=1時cand_mv_i不可用,且cand_mv_0中列表0運動向量和列表1運動向量均可用,則滿足條件2,並選擇與第一相鄰的第二列表相關的運動向量。若當i=0或1時cand_mv_i存在,且cand_mv_0中列表0運動向量和列表1運動向量均可用時,則滿足條件2,並選擇與第一相鄰的第二列表的運動向量。若當i=0或1時cand_mv_i存在,且cand_mv_0中列表0運動向量和列表1運動向量均不可用時,則滿足條件1。第二相鄰的運動向量可以被選擇。在本示例中,條件2具有兩個相關示例。
示例I.4
在本示例的子預測單元時間運動向量預測演算法中,當前預測單元的子預測單元的時間同位運動向量可以先被獲得,隨後,子預測單元的時間同位運動向量與空間相鄰子預測單元的運動向量進行混合,從而得到當前預測單元的子預測單元的混合運動向量。時間同位運動向量可以透過任何適當的子預測單元時間運動向量預測演算法來獲得,例如,本發明所述的子預測單元時間運動向量預測演算法。
例如,在執行示例I.4的類型的子預測單元時間運動向量預測演算法的流程中,同位子預測單元時間運動向量預測運動向量可以先透過前面描述的示例I-示例III的演算法來獲得。隨後,頂端相鄰運動向量(位於當前預測單元的外部)和當前預測單元的頂端邊緣附近的子塊(子預測單元)的運動向量(位於當前預測單元的內部)可以被平均,並且該平均值可以被填充到當前預測單元的頂端邊緣附近的原始子塊。另外,可對左側相鄰塊運動向量(位於當前預測單元的外部)和當前預測單元的左側邊緣附近的子塊的運動向量(位於當前預測單元的內部)取平均值,並且該平均值可以被填充到當前預測單元的左側邊緣附近的原始子塊。對於當前預測單元的頂端邊緣和左側邊緣附近的子塊,可對頂端相鄰塊運動向量和左側相鄰塊運動向量(位於當前預測單元的外部)和當前預測單元的頂端邊緣和左側邊緣附近的子塊的運動向量(位於當前預測單元的內部)取平均值,且該平均值可以被填充到當前預測單元的頂端邊緣和左側邊緣附近的原始子塊。
第9圖顯示了依據本發明實施例的混合當前預測單元910的子預測單元的運動向量和空間相鄰子預測單元的運動向量的示例。如圖所示,當前預測單元910可以包括子預測 單元911-子預測單元914、子預測單元921-子預測單元924、子預測單元931-子預測單元934和子預測單元941-子預測單元944的集合。當前預測單元910每個子預測單元的運動資訊可以先使用子預測單元時間運動向量預測演算法來獲得。空間相鄰子預測單元951-空間相鄰子預測單元954的第一集合950可以位於當前預測單元910的頂端,空間相鄰子預測單元961-空間相鄰子預測單元964的第二集合960可以位於當前預測單元910的左側。在一示例中,子預測單元951-子預測單元954和子預測單元961-子預測單元964中的每個可以具有透過執行子預測單元時間運動向量預測演算法而推導出的運動資訊。
當前預測單元910的子預測單元的運動向量可以與空間相鄰子預測單元的運動向量進行混合。例如,可以對頂端相鄰子預測單元952和上列子預測單元912的運動向量取平均值,並且該平均值可以用作上列子預測單元(top row sub-PU)912的運動向量。同理,可以對左側相鄰子預測單元962和最左行子預測單元921的運動向量取平均值,並且該平均值可以用作最左行子預測單元921的運動向量。另外,可以對子預測單元951、子預測單元911和子預測單元961的運動向量取平均值,且該平均值可以用作子預測單元911的運動向量。
在可選示例中,混合當前預測單元910的運動向量和空間相鄰運動向量的方法可以不同於上述的方法。在一示例中,子預測單元923的運動向量與頂端相鄰子預測單元953(即與子預測單元923位於同一行的頂端相鄰子預測單元)的運動向量以及左側相鄰子預測單元962(即與子預測單元923位於同一列的左側相鄰子預測單元)的運動向量進行混合。當前預測單元910的其他子預測單元可以以相似方式進行處理。
下面描述多個子預測單元時間運動向量預測合併候選方法的示例。在這些示例中,此處描述的多個子預測單元時間運動向量預測演算法被使用以推導出多個合併候選。
示例1:候選列表中存在2個子預測單元時間運動向量預測候選。第一候選(例如,sub_cand_a)由原始子預測單元時間運動向量預測演算法推導出,第二子預測單元時間運動向量預測候選使用示例I.1的類型的子預測單元時間運動向量預測演算法。
示例2:候選列表中存在2個子預測單元時間運動向量預測候選。第一候選由原始子預測單元時間運動向量預測演算法推導出,第二子預測單元時間運動向量預測候選使用示例I.3的類型的子預測單元時間運動向量預測演算法。
示例3:候選列表中存在2個子預測單元時間運動向量預測候選。第一候選由原始子預測單元時間運動向量預測演算法推導出,第二子預測單元時間運動向量預測候選使用示例I.4的類型的子預測單元時間運動向量預測演算法。
示例4:候選列表中存在2個子預測單元時間運動向量預測候選。第一候選由原始子預測單元時間運動向量預測演算法推導出,第二子預測單元時間運動向量預測候選使用兩種不同的示例I.1-4的演算法。
在一些示例中,一個演算法可以被使用以推導出 多個子預測單元時間運動向量預測候選。例如,候選列表可以包括4個子預測單元時間運動向量預測候選。在這4個子預測單元時間運動向量預測候選中,三個子預測單元時間運動向量預測候選可以使用示例I.3的演算法來推導出。例如,三個不同的原始運動向量可以被選擇為(A)第二可用相鄰塊的運動向量,(B)與第二參考圖像列表相關的第一可用相鄰塊的運動向量,以及(C)第三可用相鄰塊的運動向量。這4個子預測單元時間運動向量預測候選中的剩餘一個可以使用示例I.2的演算法來推導出。又例如,三個子預測單元時間運動向量預測候選可以使用示例I.3的演算法來推導出。四個子預測單元時間運動向量預測候選可以使用示例I.2的演算法來推導出。因此,得到的合併候選列表可以包括七個子預測單元時間運動向量預測候選。
當然,在可選示例中,多達兩個子預測單元時間運動向量預測演算法可以被使用以推導出合併候選列表的多於兩個子預測單元時間運動向量預測合併候選。此外,在一些示例中,當多個子預測單元時間運動向量預測演算法被使用時,可能的是,一些子預測單元時間運動向量預測演算法可能不形成可用的合併候選。例如,當三個子預測單元時間運動向量預測演算法被使用時,0個、1個、2個、3個或者多於3個合併候選可以被獲得。
另外,在一些示例中,基於編碼器和解碼器之間的發信,或者基於預配置(例如,如視訊編碼標準中所指定),編碼器和解碼器可以使用相同數量的子預測單元時間運動向 量預測演算法以及相同集合的多個類型的子預測單元時間運動向量預測演算法,以執行子預測單元時間運動向量預測模式操作來處理預測單元。因此,相同集合的子預測單元時間運動向量預測合併候選可以在編碼器側和解碼器側處被生成。
II.子預測單元時間運動向量預測台併候選的開啟-關閉切換控制
基於上述的多個子預測單元時間運動向量預測候選方法,在一些示例中,開啟-關閉切換控制機制被使用,以確定特定子預測單元時間運動向量預測候選是否用作最終合併候選列表的成員。開啟-關閉切換控制方案背後的思想是基於候選列表中候選的數量、基於幾個子預測單元時間運動向量預測候選之間的相似度或基於其他因素來開啟或關閉特定子預測單元時間運動向量預測候選。評估下的特定子預測單元時間運動向量預測候選稱為當前子預測單元時間運動向量預測候選。
例如,兩個子預測單元時間運動向量預測候選可以相互相似,並且包括這兩個子預測單元時間運動向量預測候選不會形成較高的編解碼增益。或者,如果預測單元被分割成子預測單元,則當前預測單元具有更接近子預測單元尺寸的更小尺寸。在此情景中,子預測單元時間運動向量預測模式的操作是不必需的,因為子預測單元時間運動向量預測操作的成本比所獲得的編解碼增益高。又例如,可能存在太多合併候選,導致高計算成本而不值得各自的編解碼增益。基於上述或者其他考慮,特定子預測單元時間運動向量預測候選可以被關閉, 並不被包括在最終合併候選列表中。
第10圖是依據本發明一實施例的子預測單元時間運動向量預測候選開啟-關閉切換控制機制的示例。第10圖顯示了從候選0到候選17的合併候選的序列1000,每個對應於候選次序(candidate order)。每個候選次序可以表示各自候選在序列1000的位置。序列1000可以是預定義的序列。序列1000可以包括為子預測單元時間運動向量預測候選類型的成員和透過子預測單元時間運動向量預測演算法(例如本文所述的子預測單元時間運動向量預測演算法示例)推導出或待推導出的成員,而序列1000也可以包括不是子預測單元時間運動向量預測候選的其他成員(例如,這些成員可以是當前預測單元的空間相鄰塊和/或時間相鄰塊的運動資訊)。
在一示例中,候選3在序列1000中是子預測單元時間運動向量預測候選。基於開啟-關閉切換控制機制,一決策可以被做出,以關閉候選3。換句話說,候選3將不被包括在最終合併候選列表中。在一些情景中,在候選3被推導出之前,此決策可以被做出,進而,候選3的推導可以被跳過。在其他情景中,在候選3已被推導出之後,此決策可以被做出。序列1000可以稱為與最終合併候選列表相關的正在構造的合併候選列表。
下面描述實施開啟-關閉切換控制機制的一些示例。
示例II.1
在本示例中,對於候選列表(例如序列1000)中的特定子預測單元時間運動向量預測候選,如果候選(其在候選列表中位於該子預測單元時間運動向量預測之前且不是子預測單元時間運動向量預測類型)的數量超過閾值,則該子預測單元時間運動向量預測候選被關閉(即不被包括在最終候選列表中)。在一些示例中,在關閉決策被做出之後,推導此子預測單元時間運動向量預測候選的操作可以被跳過。在一些示例中,在此子預測單元時間運動向量預測候選被推導出之後,關閉決策被做出。
例如,如第10圖所示,特定子預測單元時間運動向量預測候選的候選次序可以被標記為cur_order。每個具有小於cur_order的候選次序且不是子預測單元時間運動向量預測類型的候選的數量可以被標記為num_cand_before。如果num_cand_before>閾值,則這子預測單元時間運動向量預測候選被關閉。在最終候選列表中,沒有合併索引被分配給關閉的子預測單元時間運動向量預測候選。
示例II.2
在本示例中,對於候選列表(例如序列1000)中的特定子預測單元時間運動向量預測候選,如果候選(其在候選列表中位於該子預測單元時間運動向量預測之前)的數量超過閾值,則該子預測單元時間運動向量預測候選被關閉。例如,特定子預測單元時間運動向量預測候選的候選次序可以被標記為cur_order。具有小於cur_order的候選次序的候選的數量可以被標記為num_card_before。如果num_cand_before>閾值,則該子預測單元時間運動向量預測候選被關閉。在一些示 例中,在關閉決策被做出之後,推導該子預測單元時間運動向量預測候選的操作可以被跳過。在一些示例中,在該子預測單元時間運動向量預測候選被推導出之後,關閉決策被做出。
示例II.3
在本示例中,候選列表(例如,序列1000)中的兩個子預測單元時間運動向量預測候選可以被比較。當兩個子預測單元時間運動向量預測候選的差低於閾值時,兩個子預測單元時間運動向量預測候選之一被關閉,且不被包括在最終合併候選列表中。
例如,對於候選列表(例如序列1000)中的第一子預測單元時間運動向量預測候選(標記為sub_cand_a),同一候選列表中的第二子預測單元時間運動向量預測候選(標記為sub_cand_b)可以被選擇以與第一子預測單元時間運動向量預測進行比較。因此,sub_cand_a與sub_cand_b之間的差可以被確定。sub_cand_a與sub_cand_b之間的差低於閾值,則該子預測單元時間運動向量預測候選(即sub_cand_a)被關閉。
下面描述計算兩個子預測單元時間運動向量預測合併候選的差的示例。
示例II.3-1
在本示例中,差透過確定sub_cand_a的原始向量(即推導出sub_cand_a的子預測單元時間運動向量預測演算法中使用的原始向量)與sub_cand_b的原始向量之間的運動向量差來計算。在一示例中,運動向量差可以被計算為abs(MV_x_a-MV_x_b)+abs(MV_y_a-MV_y_b),其中abs( ) 表示絕對值操作,MV_x_a或者MV_x_b分別表示sub_cand_a或者sub_cand_b的原始向量的水平位移。MV_y_a或者MV_y_b分別表示sub_cand_a或者sub_cand_b的原始向量的垂直位移。在其他示例中,運動向量差可以以不同於上述示例的方式來計算。
示例II.3-2
在本示例中,差透過平均sub_cand_a和sub_cand_b的相應的子預測單元之間的所有運動向量差來計算。例如,如果在尺寸為MxN像素的當前預測單元中存在(M/P)x(N/Q)個子預測單元(其中M除以P,N除以Q)。每個子預測單元的尺寸為PxQ像素。每個子預測單元可以被標記為sub(i,j),其中i表示水平索引,i=1到(M/P),j表示垂直索引,j=1到(N/Q)。本示例可以透過如下偽代碼來描述,
Figure 107113339-A0202-12-0051-2
示例II.4
在本示例中,特定子預測單元時間運動向量預測候選的開啟-關閉切換控制基於當前預測單元面積的大小。預測單元面積可以被定義為“預測單元寬度x預測單元高度”。如果當前預測單元尺寸小於閾值,則該子預測單元時間運動向量預測候選被關閉。
示例II.5
在本示例中,特定子預測單元時間運動向量預測候選的開啟-關閉切換控制基於當前預測單元面積的大小。預測單元面積可以被定義為預測單元寬度x預測單元高度。如果當前預測單元尺寸大於閾值,則該子預測單元時間運動向量預測候選被關閉。
示例II.6
在本示例中,開啟-關閉切換控制與多個因素的組合的考慮一起執行,例如當前預測單元尺寸、合併候選數量、子預測單元時間運動向量預測運動向量相似度等。例如,當前預測單元可以先被考慮,隨後合併候選數量可以被考慮。因此,一些子預測單元時間運動向量預測候選可以被關閉且不被包括在最終合併列表中,並且相關推導操作可以被避免。隨後,子預測單元時間運動向量預測運動向量相似度可以被考慮。在不同實施中,不同因素的組合的順序可以不同,且待考慮的因素的數量也可以不同。
另外,子預測單元時間運動向量預測開啟-關閉切換控制機制在不同示例(例如,示例II.1-示例II.6)中是可調 的。在一示例中,一標誌可以從視訊編碼器被發信到視訊解碼器,以表示是否開啟或關閉子預測單元時間運動向量預測開啟-關閉切換控制機制。例如,為0的標誌可以表示子預測單元時間運動向量預測開啟-關閉切換控制機制不被執行(即被關閉)。表示是否開啟或關閉子預測單元時間運動向量預測開啟-關閉切換控制機制的標誌可以被編解碼或發信在序列層、圖像層、片段層或預測單元層。
在一示例中,一標誌可以從視訊編碼器被發信到視訊解碼器,以表示是否開啟或關閉子預測單元時間運動向量預測開啟-關閉切換控制機制的特定方法。例如,特定方法可以是上述示例II.1-示例II.6之一中所述的方法。同樣地,表示是否開啟或關閉子預測單元時間運動向量預測開啟-關閉切換控制機制的特定方法的標誌可以被編解碼或發信在序列層、圖像層、片段層或預測單元層中。
在一示例中,閾值,例如示例II.1-2中的候選數量閾值的值、示例II.3中的子預測單元時間運動向量預測運動向量差(或相似度)、示例II.4-5中的當前預測單元尺寸閾值等,可以是可調的。另外,閾值可以從編碼器器進行發信,例如,在序列層、圖像層、片段層或預測單元層中。
III.基於上下文的子預測單元時間運動向量預測合併候選重新排序
在一些實施例中,基於上下文的子預測單元時間運動向量預測合併候選重新排序方法可以被使用。例如,子預測單元時間運動向量預測合併候選在當前預測單元的候選列 表中的位置可以依據當前預測單元的相鄰塊的編解碼模式進行重新排序。例如,如果大部分相鄰塊或者百分比以上的相鄰塊的數量用子預測單元模式(例如子預測單元時間運動向量預測模式)進行編解碼,則當前預測單元可以具有更高可能性以用子預測單元時間運動向量預測模式進行編解碼。換言之,當前預測單元的當前子預測單元時間運動向量預測合併候選可以具有更高機會來在候選列表中其他候選(例如,可以稱為非子預測單元候選的來自於空間相鄰塊的候選)中被選擇作為率失真評估流程的結果。
因此,當前子預測單元時間運動向量預測合併候選可以以朝合併候選列表的前面部分的方向從當前位置(預定義位置或原始位置)重新排序到已重新排序位置。例如,當前子預測單元時間運動向量預測候選可以被移動到位於原始位置的前面的位置,或者位於合併候選列表的前面部分的位置。因此,相比於保留在先前位置處,具有更小值的合併索引可以被分配給該已重新排序當前子預測單元時間運動向量預測合併候選。由於當前子預測單元時間運動向量預測候選具有被選擇的更高機會,並且已被分配更小合併索引(其導致更高編解碼效率),所以重新排序操作可以提供編解碼增益以處理當前預測單元。
在上述示例中,在重新排序之前的當前預測單元的當前位置可以是預定義候選列表中的位置。例如,平均而言,在一些示例中,自子預測單元模式得到的合併候選可以具有更低機會,以在合併列表中其他非子預測單元模式合併候選 中被選擇,從而在預定義候選列表中,子預測單元時間運動向量預測候選可以被定位在候選列表的尾部(rear part),例如在一些空間合併候選之後。此排列可以有益於編解碼預測單元的平均情景。當檢測到當前子預測單元可以具有更高機會以用子預測單元編解碼(子預測單元合併候選可以具有更高機會以自合併列表被選擇)時,重新排序操作可以相應地被實施以潛在獲得更高編解碼增益。
當考慮候選位置重新排序的上下文時,多個子預測單元模式可以被考慮。除了子預測單元時間運動向量預測之外,子預測單元模式可以包括仿射模式、空間-時間運動向量預測(spatial-temporal motion vector prediction,STMVP)模式、幀率向上轉換模式等。在這些子預測單元模式中,當前預測單元可以被分割成子預測單元,這些子預測單元的運動資訊可以被獲得且操作。例如,在Sixin Lin等人的著作中描述了仿射模式的示例(“Affine transform prediction for next generation video coding”,ITU-Telecommunications Standardization Sector,STUDY GROUP 16 Question Q6/16,Contribution 1016,September 2015,Geneva,CH)。在Wei-Jung Chien等人的著作中描述了仿射模式的示例STMVP模式的示例(“Sub-block motion derivation for merge mode in HEVC”,Proc.SPIE 9971,Applications of Digital Image Processing XXXIX,99711K(27 September 2016))。在Xiang.Li等人的著作中描述了FRUC模式的示例(“Frame rate up-conversion based motion vector derivation for hybrid video coding”,2017 Data Compression Conference(DCC))。
在一示例中,依據頂端相鄰塊(位於當前預測單元的外部)和左側相鄰塊(位於當前預測單元的外部)的編解碼模式,當前預測單元的子預測單元時間運動向量預測可以被重新排序到各自候選列表中的前面部分,或者被重新排序到原始位置的前面的位置。例如,頂端相鄰塊和左側相鄰塊的模式可以是子預測單元模式(例如,仿射模式、子預測單元時間運動向量預測模式或者其他基於子預測單元模式)或者常規模式(非子預測單元模式)。當當前預測單元的相鄰塊的運動資訊自子預測單元模式流程來獲得時,例如子預測單元時間運動向量預測模式演算法被執行的子預測單元時間運動向量預測模式流程來獲得時,相鄰塊用各自的子預測單元模式進行編解碼,且該相鄰塊的編解碼模式是子預測單元模式。相反,如果當前預測單元的相鄰塊的運動資訊自非子預測單元模式來獲得,例如傳統合併模式或畫面內預測模式來獲得,則該相鄰塊的模式是非子預測單元模式。
假設視訊編碼器中總共存在p個編解碼模式(例如,畫面內模式、傳統合併模式、子預測單元模式等),且存在是待考慮的基於子預測單元模式(例如,仿射模式、子預測單元時間運動向量預測候選模式或者其他模式)的q個模式,上下文計算可以以如下方式進行。首先待考慮的q個子預測單元模式可以被標記為ctx_mode。ctx_mode可以包括一個或多個子預測單元模式。在一示例中,ctx_mode可以是仿射模式和子預測單元時間運動向量預測模式。在另一示例中,ctx_mode 可以僅是子預測單元時間運動向量預測模式。在又一示例中,ctx_mode可以是所有基於預測單元模式。包括在ctx_mode中的可能模式不限於這些示例。
因此,基於上下文的候選重新排序方法可以先計數具有屬於ctx_mode的模式的當前預測單元的頂端相鄰子塊和左側相鄰子塊的數量。在一示例中,考慮下的每個相鄰子塊是最小編碼單元,例如尺寸為4x4像素。計數結果被標記為cnt_0。隨後,如果cnt_0/(頂端相鄰子塊和左側相鄰子塊的總數)的值高於預定義值,則子預測單元時間運動向量預測候選可以被重新排序,例如,到候選列表的前面部分,或者到原始位置的前面的位置。換句話說,當具有在頂端相鄰子塊和左側相鄰子塊中以子預測單元模式推導出的運動資訊的頂端相鄰子塊和左側相鄰子塊的百分比大於閾值時,位於合併候選列表中的原始位置處的子預測單元時間運動向量預測合併候選可以被重新排序到原始位置的前面的位置,或者到位於合併候選列表的前面部分的位置。
在一示例中,子預測單元時間運動向量預測候選的順序(位置)與候選列表中常規非子預測單元候選(不是自子預測單元時間運動向量預測演算法獲得的)的順序(位置)進行交換。例如,如果候選列表具有q1個常規候選,每個具有候選次序normal_cand_order_i(i為1~q1),以及q2個子預測單元時間運動向量預測候選,每個具有候選次序subtmvp_cand_order_i(i為1~q2)。此外,如果a<b,則normal_cand_order_a<normal_cand_order_b,且如果c<d,則 subtmvp_cand_order_c<subtmvp_cand_order_d。所有這些q1+q2個候選的候選次序還可以被標記為nor_sub_order_i(i為1~(q1+q2)),並且,如果e<f,則nor_sub_order_e<nor_sub_order_f。
隨後,如果cnt_0/(頂端相鄰子塊和左側相鄰子塊的總數)的值高於預定義閾值,則候選列表可以以如下方式進行重新排序,subtmvp_cand_order_j=nor_sub_order_j(j=1到q2),以及normal_cand_order_j=nor_sub_order_k(k=(q2+1)到(q1+q2))。
換句話說,子預測單元時間運動向量預測候選被排列到合併候選列表中的常規候選的前面。
本文所描述的流程和功能可以被實現為電腦程式,其在由一個或複數個處理執行時可以使得一個或複數個處理器執行各自的流程和功能。電腦程式可以被存儲或者分佈在適當的介質上,例如,與其他硬體一起提供、或者作為其他硬體一部分的光存儲介質或者固態介質。電腦程式也可以以其他形式被分佈,例如,透過網際網路,或者其他有線或無線電通信系統。例如,電腦程式可以被獲得並載入在一裝置中,其包括透過物理介質或者分佈系統獲得電腦程式,例如,包括來自於連接到網際網路的伺服器。
電腦程式可以由提供程式指令的電腦可讀介質訪問,以用於由電腦或者任何指令執行系統使用,或者連接到電腦或者任何指令執行系統。電腦可讀介質可以包括任何裝置, 其存儲、通信、傳輸或者傳送電腦程式,以用於由指令執行系統、裝置或者設備使用,或者連接到指令執行系統、裝置或者設備。電腦可讀介質可以包括電腦可讀非暫時性存儲介質,例如,半導體或固態記憶體、磁帶、可移動電腦磁片、隨機訪問記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、磁片和光碟等。電腦可讀非暫時性存儲介質可以包括所有類型的電腦可讀介質,包括磁存儲介質、光存儲介質、閃光介質和固態存儲介質。
由於已經結合本發明的被提出用作示例的具體實施例描述了本發明的各個方面,可以做出這些示例的替代、修改和變形。因此,此處所說明的實施例用作示意目的,但不用於限制。在不脫離請求項的範圍的情況下,可以做出改變。
700‧‧‧合併候選列表
701‧‧‧空間合併候選
702‧‧‧第一子預測單元時間運動向量預測合併候選
703‧‧‧第二子預測單元時間運動向量預測合併候選
704‧‧‧時間合併候選
710‧‧‧箭頭

Claims (21)

  1. 一種視訊編解碼方法,用於用子預測單元時間運動向量模式處理當前預測單元,包括:執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選,推導出的該多個子預測單元時間運動向量預測候選中的每個包括該當前預測單元的多個子預測單元的子預測單元運動資訊;以及將推導出的該多個子預測單元時間運動向量預測候選的一子集合包括到該當前預測單元的合併候選列表中。
  2. 如申請專利範圍第1項所述之視訊編解碼方法,其中,執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選包括:執行多個子預測單元時間運動向量預測演算法以推導出0個、一個或多個子預測單元時間運動向量預測候選。
  3. 如申請專利範圍第1項所述之視訊編解碼方法,其中,多於一個子預測單元時間運動向量預測候選是自該多個子預測單元時間運動向量預測演算法中的同一演算法推導出的。
  4. 如申請專利範圍第1項所述之視訊編解碼方法,其中,還包括:提供至少兩個子預測單元時間運動向量預測演算法;其中所執行的該多個子預測單元時間運動向量預測演算法是所提供的至少兩個子預測單元時間運動向量預測演算法 的子集合。
  5. 如申請專利範圍第4項所述之視訊編解碼方法,其中,所提供的至少兩個子預測單元時間運動向量預測演算法包括以下的一種:第一子預測單元時間運動向量預測演算法,其中原始運動向量是該當前預測單元的第一可用空間相鄰塊的運動向第二子預測單元時間運動向量預測演算法,其中原始運動向量是透過平均該當前預測單元的多個空間相鄰塊的多個運動向量,或者透過平均位於該合併候選列表中正被推導出的子預測單元時間運動向量預測候選之前的多個合併候選的多個運動向量而獲得的;第三子預測單元時間運動向量預測演算法,其中主同位圖像被確定為不同於同位圖像搜索流程期間正在被查找的原始主同位圖像的參考圖像;第四子預測單元時間運動向量預測演算法,其中原始運動向量是自該當前預測單元的第二可用相鄰塊的運動向量,或者是與第一可用相鄰塊的第二列表相關的該第一可用相鄰塊的運動向量,或者是除了第一可用相鄰塊的運動向量之外的多個運動向量而被選擇;或者第五子預測單元時間運動向量預測演算法,其中當前預測單元的該多個子預測單元的多個時間同位運動向量與該當前預測單元的多個空間相鄰子預測單元的多個運動向量進行平均。
  6. 如申請專利範圍第5項所述之視訊編解碼方法,其中,在該第二預測單元時間運動向量預測演算法中,該當前預測單元的該多個空間相鄰塊是以下的一種:用於合併模式的高效視訊編碼標準中所指定的候選位置A0、候選位置A1、候選位置B0、候選位置B1或者候選位置B2處的多個塊或多個子塊的子集合;位於候選位置A0’、候選位置A1’、候選位置B0’、候選位置B1’或者候選位置B2’處的多個子塊的子集合,其中該候選位置A0’、該候選位置A1’、該候選位置B0’、該候選位置B1’或者該候選位置B2’中的每個對應於分別包含該候選位置A0’、該候選位置A1’、該候選位置B0’、該候選位置B1’或者該候選位置B2’的該當前預測單元的空間相鄰預測單元的左上角子塊;或者位於該候選位置A0、該候選位置A1、該候選位置B0、該候選位置B1、該候選位置B2、該候選位置A0’、該候選位置A1’、該候選位置B0’、該候選位置B1’或者該候選位置B2’處的多個子塊的子集合。
  7. 如申請專利範圍第5項所述之視訊編解碼方法,其中,在該第三子預測單元時間運動向量預測演算法中,該主同位圖像是來自包含關於該原始主同位圖像的該當前預測單元的當前圖像的反向列表中的參考圖像。
  8. 如申請專利範圍第5項所述之視訊編解碼方法,其中,在該第四子預測單元時間運動向量預測演算法中,選擇該原始運動向量包括以下一種: 第一流程,其中:當該第一空間相鄰塊可用,且多個其他空間相鄰塊均不可用時,該第四子預測單元時間運動向量預測演算法結束,以及當該第二空間相鄰塊可用時,該第二空間相鄰塊的運動向量被選擇為該原始運動向量;第二流程,其中:當該第一空間相鄰塊可用且多個其他空間相鄰塊均是不可用,並且僅該第一空間相鄰塊的一個運動向量可用時,該第四子預測單元時間運動向量預測演算法結束,當該第一空間相鄰塊是可用的且多個其他空間相鄰塊均不可用,且分別於參考列表0和參考列表1相關的該第一空間相鄰塊的兩個運動向量分別可用時,與該第一空間相鄰塊的第二列表相關的該兩個運動向量中的一個被選擇該原始運動向量,以及當該第二空間相鄰塊可用時,該第二空間相鄰塊的運動向量被選擇為該原始運動向量;或者第三流程,其中:當該第一空間相鄰塊是可用的且多個其他空間相鄰塊均不可用,並且該第一空間相鄰塊的僅一個運動向量可用時,該第四子預測單元時間運動向量預測演算法結束,當該第一空間相鄰塊可用且多個其他空間相鄰塊均不可用,且分別於參考列表0和參考列表1相關的該第一空間相鄰塊的兩個運動向量分別可用時,與該第一空間相鄰塊 的第二列表相關的該兩個運動向量中的一個被選擇該原始運動向量,當該第一空間相鄰塊和該第二空間相鄰塊均可用,且分別於參考列表0和參考列表1相關的該第一空間相鄰塊的兩個運動向量均可用時,與該第一空間相鄰塊的第二列表相關的該兩個運動向量中的一個被選擇該原始運動向量,以及當該第一空間相鄰塊和該第二空間相鄰塊均可用,且僅該第一空間相鄰塊的一個運動向量可用時,該第二空間相鄰塊的運動向量被選擇為該原始運動向量。
  9. 如申請專利範圍第5項所述之視訊編解碼方法,其中,該第五子預測單元時間運動向量預測演算法包括:獲得該當前預測單元的該多個子預測單元的多個同位運動向量;對該當前預測單元的頂端相鄰子預測單元的運動向量和該當前預測單元的上列子預測單元的運動向量取平均值;以及對該當前預測單元的左側相鄰子預測單元的運動向量和該當前預測單元的最左列子預測單元的運動向量取平均值。
  10. 如申請專利範圍第1項所述之視訊編解碼方法,其中,還包括:確定是否將正在構造的該合併候選列表中的當前子預測單元時間運動向量預測候選包括在該當前預測單元的該合併候選列表中,其中,該當前子預測單元時間運動向量預測 候選利用各自的子預測單元時間運動向量預測演算法而被推導出,或者是推導出的該多個子預測單元時間運動向量預測候選中的一個。
  11. 如申請專利範圍第10項所述之視訊編解碼方法,其中,還包括:基於如下的至少一個,確定是否將正在構造的該合併候選列表中的當前子預測單元時間運動向量預測候選包括在該當前預測單元的該合併候選列表中,在正在構造的該合併候選列表中在該當前子預測單元時間運動向量預測候選之前推導出的合併候選的數量;該當前子預測單元時間運動向量預測候選與正在構造的合併候選列表中的推導出的該多個子預測單元時間運動向量預測候選中的另一個之間的相似度;或者該當前預測單元的尺寸。
  12. 如申請專利範圍第10項所述之視訊編解碼方法,其中,確定是否將正在構造的該合併候選列表中的當前子預測單元時間運動向量預測候選包括在該當前預測單元的該合併候選列表中,包括如下的一種:(a)當位於正在構造的合併候選列表中的該當前子預測單元時間運動向量預測候選之前的推導出的合併候選的數量超過閾值時,將該當前子預測單元時間運動向量預測候選自該當前預測單元的該合併候選列表排除;(b)當位於正在構造的合併候選列表中的該當前子預測單元時間運動向量預測候選之前的推導出的合併候選的數量 超過閾值時,將該當前子預測單元時間運動向量預測候選自該當前預測單元的該合併候選列表排除;(c)當當前子預測單元時間運動向量預測候選與正在構造的該合併候選列表中的推導出的該多個子預測單元時間運動向量預測候選中的另一個之間的差低於閾值時,將該當前子預測單元時間運動向量預測候選自該當前預測單元的該合併候選列表排除;(d)當該當前預測單元的尺寸小於閾值時,將該當前子預測單元時間運動向量預測候選自該當前預測單元的該合併候選列表排除;(e)當該當前預測單元的尺寸大於閾值時,將該當前子預測單元時間運動向量預測候選自該當前預測單元的該合併候選列表排除;或者(f)依據(a)-(e)中考慮的兩個或以上條件的組合,確定是否將該當前子預測單元時間運動向量預測候選包括在該合併候選列表中。
  13. 如申請專利範圍第12項所述之視訊編解碼方法,其中,還包括:當該當前子預測單元時間運動向量預測候選被確定成自該當前預測單元的該合併候選列表排除時,跳過執行推導出該子預測單元時間運動向量預測候選的各自的該子預測單元時間運動向量預測演算法。
  14. 如申請專利範圍第12項所述之視訊編解碼方法,其中,還包括: 從編碼器到解碼器發送表示是否開啟或關閉(a)-(f)中一個或多個的多個操作的標誌。
  15. 如申請專利範圍第12項所述之視訊編解碼方法,其中,還包括:從編碼器到解碼器發送(a)-(e)的一個或多個閾值的閾值。
  16. 如申請專利範圍第10項所述之視訊編解碼方法,其中,還包括:發送從編碼器到解碼器的標誌表示是否開啟或關閉子預測單元時間運動向量預測開啟-關閉切換控制機制,該子預測單元時間運動向量預測開啟-關閉切換控制機制用於確定是否將正在構造的該合併候選列表的當前子預測單元時間運動向量預測候選包括於該當前預測單元的該合併候選列表中。
  17. 如申請專利範圍第1項所述之視訊編解碼方法,其中,還包括:將該當前預測單元的正在構造的合併候選列表或者該合併候選列表中的子預測單元時間運動向量預測合併候選朝向該當前預測單元的正在構造的合併候選列表或者該合併候選列表的前面部分重新排序。
  18. 如申請專利範圍第17項所述之視訊編解碼方法,其中,還包括:當具有用一個或多個子預測單元模式推導出的運動資訊的該當前預測單元的該頂端相鄰子塊和左側相鄰子塊的百分比大於閾值時,將位於該當前預測單元的正在構造的合併 候選列表或者該合併候選列表中的原始位置處的該子預測單元時間運動向量預測合併候選重新排序到該原始位置的前面的位置,或者重新排序到位於該當前預測單元的正在構造的合併候選列表或者該合併候選列表的該前面部分的位置。
  19. 如申請專利範圍第18項所述之視訊編解碼方法,其中,該一個或多個子預測單元模式包括仿射模式、子預測單元時間運動向量預測模式、空間-時間運動向量預測模式和幀率向上轉換模式中的一個或多個。
  20. 一種視訊編解碼裝置,用於用子預測單元時間運動向量模式處理當前預測單元,該裝置包括一個或多個電路,該一個或多個電路被配置為:執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選,推導出的該多個子預測單元時間運動向量預測候選中的每個包括該當前預測單元的多個子預測單元的子預測單元運動資訊;以及將推導出的該多個子預測單元時間運動向量預測候選的子集合包括到該當前預測單元的合併候選列表中。
  21. 一種非暫時性電腦可讀介質,存儲有多個指令,其在由處理器執行時使得該處理器執行用於用子預測單元時間運動向量模式處理當前預測單元的方法,該方法包括:執行多個子預測單元時間運動向量預測演算法以推導出多個子預測單元時間運動向量預測候選,推導出的該多個子預測單元時間運動向量預測候選中的每個包括該當前預測 單元的多個子預測單元的子預測單元運動資訊;以及將推導出的該多個子預測單元時間運動向量預測候選的子集合包括到該當前預測單元的合併候選列表中。
TW107113339A 2017-04-21 2018-04-19 用於視訊編解碼的子預測單元時間運動向量預測 TWI690194B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762488092P 2017-04-21 2017-04-21
US62/488,092 2017-04-21
US15/954,294 US20180310017A1 (en) 2017-04-21 2018-04-16 Sub-prediction unit temporal motion vector prediction (sub-pu tmvp) for video coding
US15/954,294 2018-04-16

Publications (2)

Publication Number Publication Date
TW201904284A TW201904284A (zh) 2019-01-16
TWI690194B true TWI690194B (zh) 2020-04-01

Family

ID=63854859

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107113339A TWI690194B (zh) 2017-04-21 2018-04-19 用於視訊編解碼的子預測單元時間運動向量預測

Country Status (3)

Country Link
US (1) US20180310017A1 (zh)
TW (1) TWI690194B (zh)
WO (1) WO2018192574A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10523934B2 (en) * 2017-05-31 2019-12-31 Mediatek Inc. Split based motion vector operation reduction
EP3468194A1 (en) * 2017-10-05 2019-04-10 Thomson Licensing Decoupled mode inference and prediction
CN109963155B (zh) * 2017-12-23 2023-06-06 华为技术有限公司 图像块的运动信息的预测方法、装置及编解码器
CN116962717A (zh) * 2018-03-14 2023-10-27 Lx 半导体科技有限公司 图像编码/解码方法、存储介质和发送方法
JP7104186B2 (ja) 2018-06-05 2022-07-20 北京字節跳動網絡技術有限公司 Ibcとatmvpとの間でのインタラクション
EP4307671A3 (en) 2018-06-21 2024-02-07 Beijing Bytedance Network Technology Co., Ltd. Sub-block mv inheritance between color components
CN110636298B (zh) 2018-06-21 2022-09-13 北京字节跳动网络技术有限公司 对于Merge仿射模式和非Merge仿射模式的统一约束
US11943430B2 (en) * 2018-07-27 2024-03-26 Samsung Electronics Co., Ltd. Method and device for encoding image and method and device for decoding image on basis of sub-block
US10924731B2 (en) * 2018-08-28 2021-02-16 Tencent America LLC Complexity constraints on merge candidates list construction
US11457234B2 (en) * 2018-10-08 2022-09-27 Lg Electronics Inc. Apparatus for performing image coding on basis of ATMVP candidate
CN111083489B (zh) 2018-10-22 2024-05-14 北京字节跳动网络技术有限公司 多次迭代运动矢量细化
WO2020085800A1 (ko) * 2018-10-23 2020-04-30 주식회사 윌러스표준기술연구소 서브블록 기반의 모션 보상을 이용한 비디오 신호 처리 방법 및 장치
WO2020084554A1 (en) * 2018-10-24 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Searching based motion candidate derivation for sub-block motion vector prediction
CN111107354A (zh) * 2018-10-29 2020-05-05 华为技术有限公司 一种视频图像预测方法及装置
KR20200054112A (ko) * 2018-11-08 2020-05-19 광동 오포 모바일 텔레커뮤니케이션즈 코포레이션 리미티드 영상 신호 부호화/복호화 방법 및 이를 위한 장치
CN112997495B (zh) * 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 当前图片参考中的取整
CN111436228A (zh) * 2018-11-12 2020-07-21 北京字节跳动网络技术有限公司 组合帧间-帧内预测的简化
WO2020103872A1 (en) * 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Prediction refinement for combined inter intra prediction mode
WO2020103852A1 (en) 2018-11-20 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Difference calculation based on patial position
WO2020103944A1 (en) * 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Sub-block based motion candidate selection and signaling
CN113170181B (zh) 2018-11-29 2023-12-08 北京字节跳动网络技术有限公司 块内拷贝模式中的仿射继承方法
CN111263147B (zh) * 2018-12-03 2023-02-14 华为技术有限公司 帧间预测方法和相关装置
US10958900B2 (en) * 2018-12-06 2021-03-23 Qualcomm Incorporated Derivation of spatial-temporal motion vectors prediction in video coding
MX2023010864A (es) * 2018-12-31 2024-04-23 Beijing Dajia Internet Information Tech Co Ltd Sistema y método de señalización de modos de fusión de movimiento en codificación de video.
WO2020145656A1 (ko) * 2019-01-09 2020-07-16 엘지전자 주식회사 Tmvp 후보의 가용 여부를 시그널링하는 방법 및 장치
US10904553B2 (en) 2019-01-22 2021-01-26 Tencent America LLC Method and apparatus for video coding
CN113508593A (zh) * 2019-02-27 2021-10-15 北京字节跳动网络技术有限公司 基于回退的运动矢量场的基于子块运动矢量推导
WO2020177755A1 (en) 2019-03-06 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Usage of converted uni-prediction candidate
KR102662616B1 (ko) 2019-05-21 2024-04-30 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 어파인 모드를 위한 적응적 모션 벡터 차이 해상도
CN114208184A (zh) 2019-08-13 2022-03-18 北京字节跳动网络技术有限公司 基于子块的帧间预测中的运动精度
CN114762330A (zh) 2019-09-22 2022-07-15 北京字节跳动网络技术有限公司 视频的子图片编码和解码
WO2021073630A1 (en) 2019-10-18 2021-04-22 Beijing Bytedance Network Technology Co., Ltd. Syntax constraints in parameter set signaling of subpictures
WO2021133899A1 (en) * 2019-12-24 2021-07-01 Beijing Dajia Internet Information Technology Co., Ltd. Motion estimation region for the merge candidates
US11490122B2 (en) * 2020-09-24 2022-11-01 Tencent America LLC Method and apparatus for video coding
US20230115768A1 (en) * 2021-09-29 2023-04-13 Alibaba Singapore Holding Private Limited Improved temporal merge candidates in merge candidate lists in video coding
WO2024027802A1 (en) * 2022-08-05 2024-02-08 Beijing Bytedance Network Technology Co., Ltd. Method, apparatus, and medium for video processing

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130188720A1 (en) * 2012-01-24 2013-07-25 Qualcomm Incorporated Video coding using parallel motion estimation
CN104079944A (zh) * 2014-06-30 2014-10-01 华为技术有限公司 视频编码的运动矢量列表构建方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104601988B (zh) * 2014-06-10 2018-02-02 腾讯科技(北京)有限公司 视频编码器、方法和装置及其帧间模式选择方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130188720A1 (en) * 2012-01-24 2013-07-25 Qualcomm Incorporated Video coding using parallel motion estimation
CN104079944A (zh) * 2014-06-30 2014-10-01 华为技术有限公司 视频编码的运动矢量列表构建方法和系统

Also Published As

Publication number Publication date
US20180310017A1 (en) 2018-10-25
TW201904284A (zh) 2019-01-16
WO2018192574A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
TWI690194B (zh) 用於視訊編解碼的子預測單元時間運動向量預測
TWI679879B (zh) 用於視訊編解碼的子預測單元時間運動向量預測
JP7071453B2 (ja) 動き情報の復号化方法、符号化方法及び記録媒体
CN110809887B (zh) 用于多参考预测的运动矢量修正的方法和装置
JP7229774B2 (ja) ビデオコーディングのための動きベクトル予測のためのマージ候補
TWI720532B (zh) 在視訊編解碼系統中視訊處理的方法以及裝置
US10142654B2 (en) Method for encoding/decoding video by oblong intra prediction
US10834422B1 (en) Moving picture coding device, moving picture coding method and moving picture coding program, and moving picture decoding device, moving picture decoding method and moving picture decoding program
US11632565B2 (en) Image processing method based on inter prediction mode, and device therefor
US11792419B2 (en) Image encoding/decoding method and device for performing prediction, and method for transmitting bitstream involving weighted prediction and bidirectional optical flow
US11606566B2 (en) Method for processing image on basis of inter-prediction mode and apparatus therefor
US11438622B2 (en) Affine motion prediction-based image decoding method and device using affine merge candidate list in image coding system
US20220159291A1 (en) Video signal processing method and device for processing motion vector difference information for inter prediction in video signal
TW202034693A (zh) 視訊編碼中結合畫面間和畫面內預測之方法和裝置
US20220368891A1 (en) Image encoding/decoding method and apparatus, and method of transmitting bitstream using sequence parameter set including information on maximum number of merge candidates
US20220141485A1 (en) Intra block coding-based video or image coding
KR102254162B1 (ko) 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
US20240155123A1 (en) Image encoding/decoding method and apparatus for limiting size of chroma block, and method for transmitting bitstream
US20220224912A1 (en) Image encoding/decoding method and device using affine tmvp, and method for transmitting bit stream
US11949874B2 (en) Image encoding/decoding method and device for performing prof, and method for transmitting bitstream
KR20210129213A (ko) Smvd(symmetric motion vector difference)를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN115462084A (zh) 图像解码方法以及用于其的设备
CN114365485A (zh) 用于执行bdof的图像编码/解码方法和装置及用于发送比特流的方法
US20220191472A1 (en) Image encoding/decoding method and device for deriving weight index of bidirectional prediction, and method for transmitting bitstream
US20220166986A1 (en) Image encoding/decoding method and device using ibc prediction, and method for transmitting bitstream

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees