TWI690195B - 硬體友善限制之運動向量細化修正 - Google Patents

硬體友善限制之運動向量細化修正 Download PDF

Info

Publication number
TWI690195B
TWI690195B TW108102949A TW108102949A TWI690195B TW I690195 B TWI690195 B TW I690195B TW 108102949 A TW108102949 A TW 108102949A TW 108102949 A TW108102949 A TW 108102949A TW I690195 B TWI690195 B TW I690195B
Authority
TW
Taiwan
Prior art keywords
motion vector
pixel block
current pixel
current
video
Prior art date
Application number
TW108102949A
Other languages
English (en)
Other versions
TW201935928A (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 TW201935928A publication Critical patent/TW201935928A/zh
Application granted granted Critical
Publication of TWI690195B publication Critical patent/TWI690195B/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/567Motion estimation based on rate distortion criteria
    • 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
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • 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/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • 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/573Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction

Landscapes

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

Abstract

提供了一種使用解碼器側運動向量細化修正對視訊序列進行編碼或解碼的視訊編解碼器。視訊編解碼器識別第一運動向量和第二運動向量,用於編碼視訊序列中當前視訊幀的當前像素塊。視訊編解碼器基於當前像素塊的線性維度與閾值之間的比較來確定是否對當前像素塊執行運動向量細化修正。當執行運動向量細化修正時,視訊編解碼器細化修正第一和第二運動向量以最小化失真成本並通過使用細化修正的第一和第二運動向量對當前像素塊進行編碼。當不執行運動向量細化修正時,視訊編解碼器通過使用所識別的第一和第二運動向量來編碼當前像素塊。

Description

硬體友善限制之運動向量細化修正
本公開一般涉及視訊處理。 特別地,本公開涉及用於通過解碼器側運動向量細化修正(motion vector refinement,簡寫為DMVR)對像素塊進行編碼或解碼的方法。
除非本文另有說明,否則本部分中描述的方法不是後面列出的申請專利範圍的現有技術,並且不包括在本部分中作爲現有技術。
高效視訊編解碼(HEVC)是由視訊編碼解碼聯合協作組(JCT-VC)開發的國際視訊編解碼標準。 HEVC基於基於混合塊(hybrid block-based)的運動補償離散餘弦變換(DCT)類變換編解碼架構。 用於壓縮的基本單元(稱為編解碼單元(CU))是2N×2N的正方形像素塊,並且每個CU可以遞歸地分成四個較小的CU,直到達到預定義的最小尺寸。 每個CU包含一個或多個預測單元(PU)。 每個PU對應於CU中的像素塊。
爲了實現混合編碼解碼架構的最佳編解碼效率,HEVC針對每個PU採用幀內預測和/或幀間預測模式。 對於幀間預測模式,運動資訊用於重構時間參考幀,其用於生成運動補償預測。 運動資訊可包括運動向量、運動向量預測值、運動向量差、用於選擇參考幀的參考索引等。
存在三種類型的幀間預測模式:跳過模式(skip mode)、合並模式(merge mode)和高級運動向量預測(AMVP)模式。 當在AMVP模式中編碼PU時,根據MV = MVP + MVD,從運動向量預測值(MVP)和運動向量差(MVD或殘差運動資料)導出用於PU的運動補償預測的運動向量(MV)。標識MVP選擇的索引被編碼並與相應的MVD一起作為運動資訊發送。 當PU以跳過模式或合並模式編碼時,除了所選候選的合並索引之外,不發送運動資訊。跳過模式和合並模式利用運動推斷方法(MV = MVP + MVD,其中MVD爲零)以從空間相鄰塊(空間候選)或從參考幀列表List0或List1(在切片標頭(slice header)中指示)中選擇的時間相鄰圖片(時間候選)中的共位塊(collocated block)獲得運動資訊。 在跳過PU的情况下,也省略了正被編解碼的塊的殘差信號。 爲了通過使用AMVP、合並模式或跳過模式來中繼HEVC下的像素塊的運動資訊,使用索引從候選運動預測值列表中選擇MVP(或運動預測值)。 在合並/跳過模式中,合並索引用於從包括四個空間候選和一個時間候選的候選運動預測值列表中選擇MVP。 傳輸合並索引,但不傳輸運動預測值。
以下概述僅是說明性的,並不旨在以任何方式進行限制。 也就是說,提供以下概述以介紹本文描述的新穎和非顯而易見的技術的概念、要點、益處和優點。在下面的詳細描述中進一步描述選擇的實現方式,而非所有的實現方式。 因此,以下發明內容並非旨在標識所要求保護的主題的必要特徵,也不旨在用於確定所要求保護的主題的範圍。
本發明的一些實施例提供一種視訊編解碼器,其使用解碼器側運動向量細化修正來對視訊序列進行編碼或解碼。 視訊編解碼器識別第一運動向量和第二運動向量,用於編解碼視訊序列中當前視訊幀的當前像素塊。 視訊編解碼器基於當前像素塊的大小與閾值之間的比較來確定是否對當前像素塊執行運動向量細化修正。 當執行運動向量細化修正時,視訊編解碼器細化修正第一和第二運動向量以最小化失真成本並通過使用細化修正的第一和第二運動向量對當前像素塊進行編解碼。當不執行運動向量細化修正時,視訊編解碼器通過使用所識別的第一和第二運動向量來編解碼當前像素塊。 在一些實施例中,基於由第一和第二運動向量指向的子取樣像素資料來計算失真成本。 當前塊的大小可以被指定為當前塊的線性維度(例如,高度或寬度)或者指定為當前塊的區域。
在一些實施例中,當當前像素塊的大小大於閾值時,視訊編解碼器(i)將當前像素塊劃分為多個分區單元,(ii)細化修正分別用於多個分區單元的第一和第二運動向量,以及(iii)通過使用細化修正的運動向量分別對多個子塊進行編解碼。
在以下詳細描述中,通過示例闡述了許多具體細節,以便提供對相關教導的透徹理解。 基於本文描述的教導的任何變化,衍生物和/或擴展都在本公開的保護範圍內。 在一些實例中,可以在沒有細節的情況下以相對較高的級別描述與本文公開的一個或多個示例實現有關的公知方法、過程、組件和/或電路,以避免不必要地模糊本公開的教導的各方面。 I. PMVD 和 DMVR
基於模式的運動向量推導(Pattern-based Motion Vector Derivation,簡寫為PMVD)是從參考幀的現有運動向量(MV)導出時間運動向量預測值(MVP)的方法。 類似於以跳過和合並模式編解碼的塊,由PMVD編解碼的塊不需要將運動資訊從視訊編碼器發送到視訊解碼器。 相反,解碼器在可用參考幀中搜索可用於重構塊的合適運動向量。 PMVD是幀速率上轉換(frame rate up-conversion,簡寫為FRUC)的一種形式,其允許在解碼器處導出塊的運動資訊而無需來自編碼器的信令。
解碼器可以通過檢查一組候選運動向量來執行PMVD以選擇初始運動向量,然後通過在初始運動向量所指向的區域周圍搜索參考像素集合來執行解碼器側運動向量細化修正(DMVR),其中參考像素集合具有最小的匹配成本或失真成本。 搜索的結果是精細的運動向量,其隨後用於解碼塊。 解碼器可以通過針對塊的每個子塊進一步細化修正運動向量來執行第二階段DMVR。
DMVR是在視訊編解碼(編碼/解碼)中使用的技術,以細化修正當前像素塊的運動向量而不傳輸附加資訊(例如,語法元素)。 但是,DMVR可以增加計算工作量並增加處理時間。 在一些實施例中,爲了確保通過增加處理時間來證明DMVR的視訊品質改善是合理的,基於當前塊的某些屬性或特性來跳過或部分地執行DMVR。
在一些實施例中,PMVD和DMVR用於導出和細化修正用於當前塊的雙向幀間預測(bidirectional inter-prediction)(或雙向預測(bi-prediction))的兩個運動向量。 當前幀中的當前塊由指向第一參考幀中的第一參考像素集合的第一運動向量和指向第二參考幀中的第二參考像素集合的第二運動向量編解碼。 通過第一參考像素集合和第二參考像素集合的組合來預測當前塊。 PMVD和DMVR技術用於識別和細化修正第一和第二運動向量,使得使用第一和第二參考像素集合的組合來重構當前塊的失真成本是最小的。
第1圖示出了根據本公開實施例的使用PMVD和DMVR用於視訊編解碼的電子系統#0100的圖。 電子系統#0100包括多個電子設備,其使用各種編解碼(編碼/解碼)技術,例如幀間預測編碼解碼技術、幀內預測編碼解碼技術等,以在多個電子設備之間有效地傳送視訊。 在第1圖的示例中,電子系統#0100包括第一設備#0110和第二設備#0160。 視訊在第一設備#0110處被編碼,並且編碼視訊在位元流#0150中從第一設備#0110發送到第二設備#0160以進行解碼。 第一設備#0110和/或第二設備#0160可以應用PMVD和DMVR作爲用於幀間雙向預測的合並模式的一部分。 DMVR可以在第一設備#0110和/或第二設備#0160處提前終止、完全跳過或部分執行。
電子系統#0100中的電子設備可以是任何合適的設備。 在一個示例中,第一設備#0110是多媒體捕獲設備,諸如視訊記錄器、相機、智慧電話、平板計算機、膝上型計算機、臺式計算機等,被配置爲生成視訊幀和將視訊幀編碼爲編碼視訊; 第二設備#0160是多媒體播放設備,例如電視、投影儀、智慧手機、平板電腦、筆記本電腦、臺式電腦等,用於解碼已編碼視訊以構建解碼視訊幀並顯示解碼的視訊幀。
在一些實施例中,第一設備#0110耦合到生成視訊幀的多媒體捕獲設備(未示出),並且第一設備#0110從多媒體捕獲設備接收視訊幀並對視訊幀進行編碼。在另一示例中,第二設備#0160耦合到多媒體播放設備(未示出),第二設備#0160對編碼的視訊進行解碼以構建解碼視訊幀並將解碼視訊幀提供給多媒體播放設備。
在第1圖的示例中,第一設備#0110根據一個或多個通信標準,通過任何合適的通信信道(例如電纜、局域網(LAN)、無線LAN(WLAN)、蜂窩網路、光網路、因特網或上述的任何組合)將位元流中的編碼視訊發送到第二設備#0160。在一個示例中,位元流被攜帶在電信號中並通過電纜傳輸。 在另一示例中,位元流以分組(packet)攜帶,並且分組通過LAN中的電信號發送。 在另一示例中,分組可以由射頻信號攜帶,例如,在WLAN或蜂窩網路中。
根據本公開的一個方面,第一設備#0110包括編碼器電路#0120。 編碼器電路#0120被配置為根據視訊編解碼標準(例如,HEVC)對視訊進行編碼,並生成編碼視訊的位元流#0150。 位元流由第一設備#0110和/或其他設備(未示出)以任何合適的格式發送。 第二設備#0160包括解碼器電路#0170。 解碼器電路#0170被配置為接收編碼視訊的位元流並解碼位元流#0150以根據視訊編解碼標準生成解碼視訊幀。 由編碼器電路#0120實現的示例視訊編碼器將在下面的部分II中描述。 由解碼器電路#0170實現的示例視訊解碼器將在下面的部分III中描述。
此外,編碼器電路#0120在合並模式下使用PMVD和DMVR用於編碼期間的幀間雙向預測,並且解碼器電路#0170在合並模式中使用PMVD DMVR用於解碼期間的幀間雙向預測。對於不滿足特定條件的塊,例如大於或小於閾值大小,可以提前選擇性地提前終止DMVR或禁用DMVR。對於系統#0100,編碼器電路#0120包括幀間編碼器#0130,其被配置爲在合並模式中應用PMVD和DMVR以用於幀間雙向預測。幀間編碼器#0130是幀間預測模塊,其包括模式匹配引擎#0140和細化修正控制器#0145。模式匹配引擎#0140被配置為基於PMVD和DMVR的失真成本來識別或搜索運動向量。細化修正控制器#0145被配置為在DMVR被完全執行之前選擇性地終止或旁路DMVR,或者被配置為針對不滿足特定條件的塊禁用DMVR。
類似地,解碼器電路#0170包括幀間解碼器#0180,其被配置爲在合並模式中應用DMVR以用於幀間雙向預測。 幀間解碼器#0180是幀間預測模塊,其包括模式匹配引擎#0190和細化修正控制器#0195。 模式匹配引擎#0190被配置為基於PMVD和DMVR的失真成本來搜索或識別運動向量。 細化修正控制器#0195被配置為在DMVR被完全執行之前選擇性地終止DMVR,或者被配置為針對不滿足特定條件的塊禁用DMVR。 這些不同的條件將在下面的第IV部分中進一步描述。
注意,編碼器電路#0120和解碼器電路#0170可以使用任何合適的技術來實現。 在一個實施例中,編碼器電路#0120和解碼器電路#0170使用集體電路(IC)實現。 在另一示例中,使用執行軟體指令的一個或多個處理器來實現編碼器電路#0120和解碼器電路#0170。 還應注意,第一設備#0110和第二設備#0160可包括其他合適的組件。 例如,第一設備#0110可以包括視訊解碼器(未示出),第二設備#0160可以包括編碼器(未示出)。
第2a-b圖概念性地示出了使用雙向預測PMVD和DMVR來編碼或解碼像素塊,與本公開的示例性實施例一致。 該圖示出了用於編碼/解碼的當前幀#0210(或現下幀),在視訊序列中的當前幀#0210之前的第一參考幀#0220(ref0),以及在視訊序列中的當前幀#0210之後的第二參考幀#0230(ref1)。 注意,第一參考幀#0220和當前幀#0210之間的幀數可以與當前幀#0210和第二參考幀#0230之間的幀數不同。
當前幀#0210包括使用雙邊匹配當前正被編碼的塊#0211(當前塊),雙邊匹配是雙向預測PMVD的形式。 當前塊#0211可以是HEVC的CU。 幀間預測模塊(例如,幀間編碼器#0130或幀間解碼器#0180)通過細化修正兩個運動向量MV1和MV0來對塊#0211執行PMVD。 如第02a圖中所示,第一運動向量MV0指向第一參考幀#0220中的第一參考像素集合#0221,第二運動向量MV1指向第二參考幀#0230中的第二參考像素集合#0231。 MV0是時間導出的List0 MVP,MV1是時間導出的List1 MVP。 細化修正的MV0(表示爲MV0')指向第一重新定位的參考像素集合#0225。 細化修正的MV1(表示爲MV1')指向第二重新定位的參考像素集合#0235。
爲了導出List0時間導出的MVP,將List0參考幀中的List0MV縮放到當前幀作為MV0。 List0 MV被進一步縮放以指向其在List0中的refIdx為0的參考圖片作爲MV0鏡像。 類似過程用於導出包括MV1和MV1鏡像的List1時間導出的MVP。 從List0或List1中的一個參考幀(與當前幀交叉)到另一個參考幀的MV的縮放沿著相同的運動軌跡。 MV0和MV0鏡像處於與當前塊#0211相交的相同運動軌跡中。 MV1和MV1鏡像也處於與當前塊#0211相交的相同運動軌跡中。
當前塊可以具有多個候選的時間導出的MVP。 候選的時間導出的MVP可以從預定義的一組候選運動向量導出,例如,來自CU#0211的合並列表的候選運動向量,從當前幀#0210中的CU#0211的空間相鄰繼承的運動向量, 所有參考幀的所有運動向量等。在一些實施例中,幀間預測模塊在候選時間導出的MVP中選擇具有最小失真成本的MVP。 與時間導出的List0MVP相關聯的失真成本可以被計算為由List0時間導出的MVP(例如,MV0和MV0鏡像)的兩個MV指向的參考像素集合之間的差。與時間導出的List1 MVP相關聯的失真成本可以被計算為由List1時間導出的MVP(例如,MV1和MV1鏡像)的兩個MV指向的參考像素集合之間的差。 可以通過絕對差之和(sum of absolute differences,簡寫為SAD)或像素級的平方差之和(sum of absolute differences,簡寫為SSD)來測量差異。
如第2b圖中所示,搜索産生細化修正的的MV0(表示爲MV0')和細化修正的MV1(表示爲MV1'),其最小化MV0和MV1的失真成本。 在細化修正之前,MV0的失真成本被計算為由MV0指示的第一參考像素集合#0221與由MV0鏡像所指示的參考像素集合#0222之間的差,並且MV1的失真成本被計算為由MV1表示的第二參考像素集合#0231和由MV1鏡像指示的參考像素集合#0232之間的差。 在細化修正之後,MV0'的失真成本被計算為由MV0'指示的第一重定位參考像素集合#0225與由MV0'鏡像指示的參考像素集合#0226之間的差。 MV1'的失真成本被計算為由MV1'指示的第二重定位參考像素集合#0235與由MV1'鏡像指示的參考像素集合#0236之間的差。
在一些實施例中,幀間預測模塊以兩個階段(in two stages)執行雙邊匹配。 第一階段是塊級(block-level)(例如,PU級或CU級)匹配,第二階段是子塊級(例如,子PU級)匹配。
對於第一階段PU級(塊級)匹配,分別選擇來自List0和List1時間導出的MVP的若干起始MV對。 幀間預測模塊計算每個MV對的失真成本(例如,MV對指向的參考像素集合之間的SAD或SSD)。 為塊選擇具有最小失真成本的MV對(例如,作為MV0和MV1)。 然後執行菱形搜索(diamond search)以細化修正所選擇的MV對。 在一些實施例中,細化修正精度是1/8像素,並且細化修正搜索範圍被限制在±1像素內。 最終細化修正的MV對被識別爲塊級導出的MV對。
對於第二階段子PU級(或子塊級)搜索,將當前PU劃分為子PU。 在SPS中信令子PU的深度(例如3)。 最小子PU尺寸為4x4像素。 對於每個子PU,從List0和List1中選擇幾個起始MV,其可以包括PU級導出的MV、零MV、當前子PU和右下塊的HEVC並置TMVP、當前子的時間導出的MVP、以及左側和上方PU /子PU的MV。 通過在PU級搜索中使用類似機制,選擇每個子PU的最佳MV對。 執行菱形搜索以細化修正每個子PU的MV對。 執行每個子PU的運動補償以生成子PU的預測值。
在一些實施例中,代替執行雙向匹配(bilateral matching)以沿著運動軌迹搜索合適的參考像素集合,幀間預測模塊(幀間編碼器#0130或幀間解碼器#0180)執行模板匹配以基於模板的比較搜索合適的參考像素集合。 在該解碼器MV推導方法中,模板匹配用於生成用於幀間模式編碼的MVP。 當選擇參考圖片時,執行模板匹配以識別所選參考圖片中的最佳模板。 對應於所識別的模板的MV是導出的MVP。 該MVP被***AMVP的第一個位置。
第3圖概念性地示出了使用模板匹配和DMVR來編碼或解碼像素塊,與本公開的示例性實施例一致。 該圖示出了用於編碼/解碼的當前幀#0310(或現下幀)、在視訊序列中在當前幀#0310之前的第一參考幀#0320,以及在視訊序列中在當前幀#0310之後的第二參考幀#0330。注意,第一參考幀#0320和當前幀#0310之間的幀數可以與當前幀#0310和第二參考幀#0330之間的幀數不同。
對於模板匹配合並模式,使用上方4行(row)和左側4列(column)的重構像素來形成模板。 執行模板匹配以找到具有其對應MV的最佳匹配模板。 在第3圖的示例中,當前塊#0311的模板#0317包括當前塊#0311的上方和左側的像素集合。 參考像素集合#0321和#0331分別對應於MV0和MV1。 模板#0327和模板#0337是參考像素集合#0321和#0331的上方和左側的像素集合,並且用於與模板#0317匹配。
兩階段匹配也適用於模板匹配。 對於第一階段PU級匹配,分別選擇來自List0和List1的幾個起始MV。 這些MV包括來自合並候選的MV和來自時間導出的MVP的MV。 爲兩個列表生成兩個不同的凝視(staring)MV集合。 對於一個列表中的每個MV,計算具有MV的模板的SAD成本。 成本最低的MV為最佳MV。 然後,執行菱形搜索以細化修正MV。 細化修正精度為1/8像素。 細化修正搜索範圍限制在±1像素內。 最終的MV是PU級導出的MV。 List0和List1中的MV是獨立生成的。 在第3圖的示例中,MV0'和MV1'是基於搜索具有最低SAD成本的模板的MV0和MV1的細化修正版本。
對於第二階段子PU級搜索,將當前PU劃分為子PU。 在SPS中信令子PU的深度(例如3)。 最小子PU尺寸為4x4塊。 對於左側或頂部PU邊界處的每個子PU,選擇List0和List1中的若干起始MV,其包括PU級導出MV的MV、零MV、當前子PU和右下塊的HEVC並置TMVP、當前子的時間導出的MVP、以及左側和上方PU /子PU的MV。 通過在PU級搜索中使用類似機制,選擇每個子PU的最佳MV對。 執行菱形搜索以細化修正MV對。執行該子PU的運動補償以生成該子PU的預測值。 對於那些不在左邊或頂部PU邊界的PU,不應用第二階段,子PU級搜索,並且將對應的MV設置為等於第一階段中的MV。
第4圖概念性地示出了與本公開的示例性實施例一致的用於編碼或解碼像素塊的替代雙邊匹配和DMVR過程。 失真成本基於在時間上位於當前圖像的相對側的兩個參考圖像(ref0和ref1)的預測之間的平均去除的絕對差之和(mean removed sum of absolute differences,簡寫為MRSAD)的計算。 在該示例中,基於由第一運動向量MV0指示的第一參考像素集合和由第二運動向量MV1指示的第二參考像素集合來計算差異。
在整數精度搜索期間,檢查6個點,其根據自適應搜索模式方法選擇。 完成整數搜索過程後,如果啓用半像素搜索,則將進行半樣本精度搜索(half sample precision search)。 在半樣本搜索中,僅檢查4個點(以加號形狀(plus sign shape))。 在一些實施例中,如果滿足以下條件,則在合並和跳過模式中應用搜索模式: (POC - POC0) * (POC - POC1)<0,
其中POC是當前要編碼的圖片的圖片順序計數(picture order count),POC0和POC1是當前圖片的參考圖片(ref0和ref1)的圖片順序計數。 信令的合並候選對被用作DMVR過程的輸入,並且被表示爲初始運動向量(MV0,MV1)。 由DMVR搜索的搜索點遵循運動向量差鏡像條件。 換句話說,由候選運動向量對(MV0',MV1')表示的由DMVR檢查的任何點遵循以下兩個等式: MV0’ = MV0 + MVdiff MV1’ = MV1 - MVdiff
其中,MVdiff 表示參考圖片之一中的搜索空間中的點。 在構建搜索空間之後,使用常規的8抽頭(tap)DCTIF插值濾波器構建單邊預測(unilateral prediction)。 通過在兩個預測之間使用MRSAD來計算雙邊匹配成本函數,並且選擇導致最小成本的搜索點作爲細化修正的MV對(MV0'和MV1')。基於由細化修正的第一運動向量(MV0')指示的第一參考幀中的第一參考像素集合與由細化修正的第二運動向量( MV1')指示的第二參考幀中的第二參考像素集合之間的差來計算失真成本,細化修正的第一運動向量(MV0')和細化修正的第二運動向量(MV1')基於相對於中心搜索位置的相對搜索位置。
對於MRSAD計算,使用16位元精度樣本來匹配插值濾波的輸出。 在一些實施例中,在MRSAD計算之前不應用限幅和捨入操作以便減少內部緩衝器要求。 通過自適應模式方法選擇整數精度搜索點。 如第4圖中所示,首先計算對應於ref0和ref1(由初始運動向量MV0和MV1指向)的中心點(P0)的初始成本。額外的4個成本對應於加號形狀(P1-P4)中的像素位置,通過位於中心點的相對側的預測來計算。 基於先前計算的成本的梯度來選擇最後一點(P5)。 DMVR過程的輸出是對應於最小成本的細化修正運動向量對。
如果在一次迭代之後在搜索空間的中心點處實現最小成本,即不改變運動向量,則終止細化修正處理。 否則,只要不超過搜索範圍,具有最小成本的點就被視爲進一步搜索過程的中心。
僅當半像素搜索的應用不超過搜索範圍時才應用半樣本精度搜索。 在這些情況下,僅執行4次MRSAD計算,對應於圍繞中心點的加號形狀點(plus shape point),其基於整數精度搜索期間的最小成本來選擇。 DMVR過程輸出細化修正的運動向量對,其對應於搜索結束時的最小成本點。 II. 範例的視訊編碼器
第5圖示出了可以使用PMVD和DMVR來編碼像素塊的示例視訊編碼器#0500。 如圖所示,視訊編碼器#0500從視訊源#0505接收輸入視訊信號,並將該信號編碼為位元流#0595。 視訊編碼器#0500具有用於編碼來自視訊源#0505的信號的若干組件或模塊,包括變換模塊#0510、量化模塊#0511、逆量化模塊#0514、逆變換模塊#0515、幀內圖像估計模塊#0520、幀內預測模塊#0525、運動補償模塊#0530、運動估計模塊#0535、環路濾波器#0545、重構圖像緩衝器#0550、MV緩衝器#0565、 MV預測模塊#0575和熵編碼器#0590。 運動補償模塊#0530和運動估計模塊#0535是幀間預測模塊#0540的一部分。
在一些實施例中,模塊#0510-#0590是由計算設備或電子裝置的一個或多個處理單元(例如,處理器)執行的軟體指令的模塊。 在一些實施例中,模塊#0510-#0590是由電子裝置的一個或多個積體電路(IC)實現的硬體電路的模塊。 雖然模塊#0510-#0590被示為單獨的模塊,但是一些模塊可以組合成單個模塊。
視訊源#0505提供原始視訊信號,其呈現每個視訊幀的像素資料而無需壓縮。 減法器#0508計算視訊源#0505的原始視訊像素資料與來自運動補償模塊#0530或幀內預測模塊#0525的預測像素資料#0513之間的差。 變換#0510將差值(或殘差像素資料或殘差信號#0509)轉換為變換係數(例如,通過執行離散餘弦變換或DCT)。 量化模塊#0511將變換係數量化為量化資料(或量化係數)#0512,其由熵編碼器#0590編碼到位元流#0595中。
逆量化模塊#0514對量化資料(或量化係數)#0512進行去量化以獲得變換係數,並且逆變換模塊#0515對變換係數執行逆變換以產生重構殘差#0519。 將重構的殘差#0519與預測的像素資料#0513相加以產生重構的像素資料#0517。 在一些實施例中,重構的像素資料#0517被臨時存儲在行(line)緩衝器(未示出)中,用於圖片內預測和空間MV預測。 重構的像素由環路濾波器#0545濾波並存儲在重構的圖像緩衝器#0550中。 在一些實施例中,重構的圖片緩衝器#0550是視訊編碼器#0500外部的記憶體。 在一些實施例中,重構圖片緩衝器#0550是視訊編碼器#0500內部的記憶體。
圖片內估計模塊#0520基於重構的像素資料#0517執行幀內預測,以產生幀內預測資料。 幀內預測資料被提供給熵編碼器#0590以被編碼到位元流#0595中。 幀內預測模塊#0525還使用幀內預測資料來產生預測像素資料#0513。
運動估計模塊#0535通過產生MV來對存儲在重構圖片緩衝器#0550中的先前解碼的幀的參考像素資料執行幀間預測。 將這些MV提供給運動補償模塊#0530以產生預測的像素資料。
代替在位元流中對完整的實際MV進行編碼,視訊編碼器#0500使用MV預測來生成預測的MV,並且用於運動補償的MV與預測的MV之間的差被編碼為殘差運動資料並存儲在位元流#0595。
MV預測模塊#0575基於為先前視訊幀編碼而生成的參考MV(即,用於執行運動補償的運動補償MV)來生成預測的MV。 MV預測模塊#0575從MV緩衝器#0565中擷取來自先前視訊幀的參考MV。 視訊編碼器#0500將針對當前視訊幀生成的MV存儲在MV緩衝器#0565中作為用於生成預測MV的參考MV。
MV預測模塊#0575使用參考MV來創建預測的MV。 可以通過空間MV預測或時間MV預測來計算預測的MV。 預測的MV與當前幀的運動補償MV(MC MV)之間的差異(殘差運動資料)由熵編碼器#0590編碼到位元流#0595中。
熵編碼器#0590通過使用諸如上下文自適應二進位算術編解碼(CABAC)或霍夫曼編碼的熵編碼技術將各種參數和資料編碼到位元流#0595中。 熵編碼器#0590將諸如量化變換資料和殘差運動資料的參數編碼到位元流#0595中。 位元流#0595存儲在存儲設備中或通過諸如網路的通信介質發送到解碼器。
環路濾波器#0545對重構的像素資料#0517執行濾波或平滑操作,以減少編解碼的偽像,特別是在像素塊的邊界處。在一些實施例中,執行的濾波操作包括樣本自適應偏移(SAO)。在一些實施例中,濾波操作包括自適應環路濾波器(ALF)。
第6圖示出了實現PMVD和DMVR的視訊編碼器# 0500的部分。具體地,該圖示出了視訊編碼器# 0500的幀間預測模塊# 0540的組件。對於一些實施例,視訊編碼器# 0500的幀間預測模塊# 0540實現幀間編碼器# 0130。如圖所示,幀間預測模塊# 0540從MV緩衝器# 0565中擷取候選運動向量,並搜索重構圖像緩衝器# 0550的內容以生成用於當前塊的雙向預測的MV對。
幀間預測模塊# 0540包括運動補償模塊# 0530、運動估計模塊# 0535、MV選擇器# 0605、細化修正控制器# 0610、模式匹配引擎# 0620、搜索緩衝器# 0630,和失真成本計算器# 0640。MV選擇器# 0605從MV緩衝器# 0565中擷取候選運動向量,並將候選提供給模式匹配引擎# 0620。模式匹配引擎# 0620依次根據雙邊匹配或模板匹配生成當前塊的MV對(MV0和MV1)。模式匹配引擎# 0620還可以在子塊MV細化修正期間為當前塊的每個子塊生成MV對。MV對用於從搜索緩衝器# 0630擷取像素資料,其存儲從重構圖片緩衝器# 0550中選擇性地擷取的臨時內容。在一些實施例中,搜索緩衝器# 0630由視訊編碼器# 0500的內部記憶體設備實現,而重構的圖片緩衝器# 0550可以是視訊編碼器# 0500外部的外部記憶體設備。內部記憶體設備可具有比外部記憶體設備明顯更少的容量。
從搜索緩衝器# 0630擷取的像素資料用於通過失真成本計算器# 0640計算與MV對相關聯的失真成本。擷取的像素資料可以對應於沿著與當前塊相同的運動軌蹟的參考像素集合,或者具有匹配的模板作為當前塊。計算的失真成本(例如,SSD或SAD)可以由模式匹配引擎# 0620使用以識別具有最低失真成本的MV對。 將識別的MV對提供給運動補償模塊#0530以重構當前塊。
在一些實施例中,幀間預測模塊#0540在計算失真成本時對像素資料進行子取樣,例如,僅考慮像素資料的預定義子集合,例如奇數或偶數行。 在一些實施例中,對存儲在搜索緩衝器中的資料進行子取樣,以便可以減小實現搜索緩衝器#0630的內部記憶體的大小。 在一些實施例中,搜索緩衝器#0630的輸出被子取樣,因此可以減少失真成本計算器#0640處的SSD或SAD的計算次數。
細化修正控制器#0610基於某些條件確定是啟用還是禁用DMVR的MV細化修正的特定階段,例如CU的大小、高度或寬度是否大於閾值。 這些條件將在下面的第IV節中進一步描述。 可以基於諸如速率 - 失真折衷(rate-distortion trade off)的因素在運動估計模塊#0535處確定這些條件。 III. Example Video Decoder 範例的視訊解碼器
第7圖示出了可以使用PMVD和DMVR來解碼和重構像素塊的示例視訊解碼器#0700。 如圖所示,視訊解碼器#0700是圖像解碼或視訊解碼電路,其接收位元流#0795並將位元流的內容解碼為視訊幀的像素資料以供顯示。 視訊解碼器#0700具有用於解碼位元流#0795的若干組件或模塊,包括逆量化模塊#0705、逆變換模塊#0715、幀內預測模塊#0725、運動補償模塊#0730、環路濾波器#0745、解碼圖像緩衝器#0750、MV緩衝器#0765、MV預測模塊#0775和解析器#0790。 運動補償模塊#0730是幀間預測模塊#0740的一部分。
在一些實施例中,模塊#0710-#0790是由計算設備的一個或多個處理單元(例如,處理器)執行的軟體指令的模塊。 在一些實施例中,模塊#0710-#0790是由電子裝置的一個或多個IC實現的硬體電路的模塊。 雖然模塊#0710 - #0790被示為單獨的模塊,但是一些模塊可以組合成單個模塊。
解析器#0790(或熵解碼器)接收位元流#0795並根據視訊編解碼或圖像編解碼標准定義的語法執行初始解析。 經解析的語法元素包括各種標頭元素、標誌以及量化資料(或量化係數)#0712。 解析器#0790通過使用諸如上下文自適應二進位算術編解碼(CABAC)或霍夫曼編碼的熵編碼技術來解析各種語法元素。
逆量化模塊#0705對量化資料(或量化係數)#0712進行去量化以獲得變換係數,並且逆變換模塊#0715對變換係數#0716執行逆變換以產生重構殘差信號#0719。 重構的殘差信號#0719與來自幀內預測模塊#0725或運動補償模塊#0730的預測像素資料#0713相加,以產生解碼像素資料#0717。 解碼的像素資料由環路濾波器#0745濾波並存儲在解碼的圖像緩衝器#0750中。 在一些實施例中,解碼圖片緩衝器#0750是視訊解碼器#0700外部的記憶體。 在一些實施例中,解碼圖片緩衝器#0750是視訊解碼器#0700內部的記憶體。
幀內預測模塊#0725從位元流#0795接收幀內預測資料,並根據該幀內預測資料從存儲在解碼圖像緩衝器#0750中的解碼像素資料#0717產生預測像素資料#0713。 在一些實施例中,解碼的像素資料#0717還存儲在行緩衝器(未示出)中,用於圖片內預測和空間MV預測。
在一些實施例中,解碼圖片緩衝器#0750的內容用於顯示。 顯示設備#0755或者直接擷取解碼圖像緩衝器#0750的內容,或者將解碼圖像緩衝器的內容擷取到顯示緩衝器。 在一些實施例中,顯示設備通過像素傳輸從解碼圖片緩衝器#0750接收像素值。
運動補償模塊#0730根據運動補償MV(MC MV)從存儲在解碼圖片緩衝器#0750中的解碼像素資料#0717產生預測像素資料#0713。 通過將從位元流#0795接收的殘差運動資料與從MV預測模塊#0775接收的預測MV相加來解碼這些運動補償MV。
MV預測模塊#0775基於為解碼先前視訊幀而生成的參考MV(例如,用於執行運動補償的運動補償MV)來生成預測的MV。 MV預測模塊#0775從MV緩衝器#0765中擷取先前視訊幀的參考MV。 視訊解碼器#0700將用於解碼當前視訊幀而生成的運動補償MV在MV緩衝器#0765中存儲為用於產生預測MV的參考MV。
環路濾波器#0745對解碼的像素資料#0717執行濾波或平滑操作,以減少編解碼的偽像,特別是在像素塊的邊界處。 在一些實施例中,執行的濾波操作包括樣本自適應偏移(SAO)。 在一些實施例中,濾波操作包括自適應環路濾波器(ALF)。
第8圖示出了實現PMVD和DMVR的視訊解碼器#0700的部分。 具體地,該圖示出了視訊解碼器#0700的幀間預測模塊#0740的組件。 對於一些實施例,視訊解碼器#0700的幀間預測模塊#0740實現幀間解碼器#0180。 如圖所示,幀間預測模塊#0740從MV緩衝器#0765中擷取候選運動向量,並搜索解碼圖像緩衝器#0750的內容以生成用於當前塊的雙向預測的MV對。
幀間預測模塊#0740包括運動補償模塊#0730、MV選擇器#0805、細化修正控制器#0810、模式匹配引擎#0820、搜索緩衝器#0830和失真成本計算器#0840。MV選擇器#0805從MV緩衝器#0765中擷取候選運動向量,並將候選提供給模式匹配引擎#0820。 模式匹配引擎#0820依次根據雙邊匹配或模板匹配生成當前塊的MV對(MV0和MV1)。模式匹配引擎#0820還可以在子塊MV細化修正期間為每個子塊生成MV對。 MV對用於從搜索緩衝器#0830擷取像素資料,其存儲從解碼圖像緩衝器#0750中選擇性地擷取的臨時內容。在一些實施例中,搜索緩衝器# 0830由視訊解碼器# 0700的內部記憶體設備實現,而解碼圖片緩衝器# 0750可以是視訊解碼器# 0700外部的外部記憶體設備。內部記憶體設備可具有比外部記憶體設備明顯更少的容量。
從搜索緩衝器# 0830擷取的像素資料用於通過失真成本計算器# 0840計算與MV對相關聯的失真成本。擷取的像素資料可以對應於沿著與當前塊相同的運動軌蹟的參考像素集合,或者具有匹配的模板作為當前塊。計算的失真成本(例如,SSD或SAD)可以由模式匹配引擎# 0820用於識別具有最低失真成本的MV對。識別的MV對被提供給運動補償模塊# 0730以重構當前塊。
在一些實施例中,幀間預測模塊# 0740在計算失真成本時對像素資料進行子取樣(#850),例如,僅考慮像素資料的預定義子集合,例如奇數或偶數行。在一些實施例中,對存儲在搜索緩衝器中的資料進行子取樣,以便可以減小實現搜索緩衝器# 0830的內部記憶體的大小。在一些實施例中,搜索緩衝器# 0830的輸出被子取樣,因此可以減少失真成本計算器# 0840處的SSD或SAD的計算次數。
細化修正控制器# 0810基於某些條件(例如,CU的大小、高度或寬度是否大於閾值)來確定是啟用還是禁用DMVR的MV細化修正的特定階段。這些條件將在下面的第IV節中進一步描述。視訊解碼器的細化修正控制器# 0810可以基於解析器# 0790提供的位元流# 0795的內容來確定這些條件。
IV.有條件的MV細化修正
在一些實施例中,當CU大於閾值大小時,不允許對當前CU進行MV細化修正。如果允許MV細化修正,則幀間預測模塊執行搜索(例如,通過參考第4圖描述的菱形搜索或搜索)以在MV搜索階段中細化修正MV對。在一些實施例中,如果當前CU大於閾值大小,則幀間預測模塊禁用CU的MV 水平細化修正(儘管仍可啟用MV垂直細化修正)。 在一些實施例中,如果當前CU大於閾值大小,則幀間預測模塊禁用CU的MV垂直細化修正(儘管仍可啟用MV水平細化修正)。
在一些實施例中,幀間預測模塊(#0540或#0740)可以將當前CU劃分為用於MV搜索階段的多個較小的分區單元,以簡化SSD或SAD計算。 例如,如果當前CU的大小大於閾值大小,則幀間預測模塊將CU劃分為多個分區單元,並對每個分區單元執行MV搜索處理。相反,如果當前CU的大小小於閾值大小,則幀間預測模塊不對CU進行分區並且作為整體對CU執行MV搜索處理。 例如,如果閾值大小被定義為128x128並且當前CU大小是256x256,則幀間預測模塊將CU分成大小為128x128的4個分區單元(partitioned unit),並且對每個分區單元執行MV搜索處理。
在一些實施例中,如果CU跨越視訊圖片中的網格單元邊界,則幀間預測模塊將當前CU劃分為分區單元並且針對每個分區單元獨立地執行MV細化修正。 網格單元被定義為CTU中的grid_width x grid_height矩形區域。 一個CTU可以劃分為多個網格單元。 如果CU未完全包含在網格單元內,則幀間預測模塊將當前CU劃分為若干分區單元,並且對於分區單元獨立地執行MV細化修正,前提是每個分區單元落入一個網格單元內。
當前CU可包括若干子塊。可以在子塊MV細化修正階段期間獨立地對每個子塊應用MV細化修正過程。 當搜索目標區域以細化修正子塊的MV時,子塊MV細化修正階段需要大量的記憶體帶寬。 為了減少記憶體訪問,在一些實施例中,視訊編解碼器有條件地跳過子塊MV細化修正階段。 也就是說,並不總是執行子塊MV細化修正。 在一些實施例中,如果當前CU大小小於閾值大小,則跳過子塊MV細化修正過程。 MxN可以是任何整數,例如 4,8,16等。
在一些實施例中,基於運動資訊來確定執行子塊MV細化修正的條件,運動資訊包括參考幀選擇、預測方向或運動向量的大小。 例如,在一些實施例中,當參考幀選擇等於0時或者當運動向量的大小大於閾值時,執行子塊MV細化修正階段。
在一些實施例中,基於當前CU大小與相鄰CU大小之間的比率來確定執行子塊MV細化修正的條件。 如果當前CU大小遠大於相鄰CU大小,則允許子塊MV細化修正。 否則,禁用當前CU的子塊MV細化修正。 有條件的子塊MV細化修正可以由編碼器和/或解碼器(例如,視訊編碼器#0500的幀間預測模塊#0540,和/或視訊解碼器#0700的幀間預測模塊#0740)實現。)。
如上所述,在確定是否執行MV細化修正,是否執行子塊MV細化修正,或者是否在MV搜索階段期間對CU進行劃分時,將CU的大小與閾值大小進行比較。 在一些實施例中,如果CU的線性尺寸(linear dimension)(例如,CU的寬度或高度)大於閾值,則認為CU大於閾值大小。 相反,如果CU的線性尺寸小於閾值,則認為CU小於閾值尺寸。 在一些實施例中,如果CU的面積大於閾值面積,則認為CU大於閾值大小,並且如果CU的面積小於閾值面積,則認為CU小於閾值大小。
在一些實施例中,將CU與閾值大小M x N進行比較,閾值大小M x N由閾值高度(M)和閾值寬度(N)指定。 可以在序列級別、圖片級別或切片級別預定義或信令M和N的值。 還可以基於視訊解析度或標準簡檔(standard profile)導出M和N的值。 如果(i)CU的面積大於M×N,(ii)如果CU的高度大於M,(iii)如果CU的寬度大於N,(iv)如果CU的寬度大於N並且CU的高度大於M,或者(v)如果CU的寬度大於N或者高度大於 CU大於M,則可以認為CU大於閾值大小。
對於大CU,DMVR過程可能需要比較小CU更多的解碼器側操作和更多資料位元深度。 為了降低用於大CU的DMVR的計算複雜度,幀間預測模塊(#0540或#0740)可以在計算失真成本時通過對像素資料進行子取樣(sub-sample)來執行MV細化修正處理。 舉例來說,幀間預測模塊可僅使用奇數行或偶數行中的差異來選擇當前CU的最佳MV。
在一些實施例中,視訊編碼器被約束為不通過MV細化修正來編碼兩個連續CU。 例如,如果由於速率 - 失真判定而通過MV細化修正對當前CU的先前CU進行編碼,則防止當前CU通過MV細化修正被編碼。 在一些實施例中,每當通過MV細化修正對先前CU進行編碼時,對於當前CU,不存在用於MV細化修正的位元流語法。
編碼器可以使用位元流中的MV細化修正語法來通知解碼器是否開啟了MV細化修正。 在一些實施例中,視訊編碼器關閉MV細化修正操作,並且MV細化修正語法被信令為0,從編碼器發送至解碼器。 在一些實施例中,對於大CU(大小 ≥預定義閾值),從位元流中消除MV細化修正語法,並且解碼器基於CU的大小自動關閉MV細化修正,從而在位元流中節省至少一個位元。
第9 a-09b圖概念性地示出了視訊編解碼器(編碼器或解碼器)在編碼或解碼視訊幀的像素塊時用於實現PMVD和DMVR的過程。 在一些實施例中,實現視訊編碼器#0500或視訊解碼器#0700的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程#0900。 在一些實施例中,實現視訊編碼器#0500或視訊解碼器#0700的電子裝置執行過程#0900。
如第09a圖中所示,視訊編解碼器接收(在步驟#0902)視訊幀的像素塊作為要編碼的當前塊。 像素塊可以來自原始視訊以被編碼為位元流作為PU或CU。 像素塊也可以來自作為PU或位元流的位元流,以被解碼成像素資料。
視訊編解碼器確定(在步驟#0904)是否使用PMVD和DMVR對當前塊進行編解碼。 在視訊編碼器處,運動估計過程或模塊可基於速率 - 失真考慮來决定是否將PMVD和DMVR用於當前塊。 可以在編碼視訊幀的位元流中指示當前塊是以PMVD編碼還是DMVR編碼。 在一些實施例中,位元流可以包括指示塊是否在PMVD和DMVR中編碼的標誌。 在一些實施例中,位元流可以包括指示是否使用FRUC模式的標志。 接收位元流的解碼器可以使用該標誌來決定是否執行PMVD和DMVR。 在一些實施例中,當位元流包括指示跳過模式或合並模式爲真的標志時,存在這樣的標志。 如果當前塊在PMVD和DMVR中編碼,則過程進行到#0908。 否則,過程進行到#0906。
在步驟#0906,視訊編解碼器使用PMVD之外的模式來編碼或解碼當前塊,編解碼模式,例如合並模式,幀內模式,AMVP模式等。然後,過程#0900結束並且視訊編解碼器可以繼續編碼或解碼另一個塊。
在步驟#0908,視訊編解碼器識別用於編解碼當前視訊圖片的當前像素塊的MV對。 MV對包括指示第一參考幀中的第一參考像素集合的第一運動向量,和指示第二參考幀中的第二參考像素集合的第二運動向量。 視訊編解碼器可以基於預定義的一組候選運動向量來識別MV對,例如,來自當前塊的合並列表的候選運動向量、從當前塊的空間鄰居繼承的運動向量、所有參考幀的所有運動向量 (List0和List1)等。然後,處理進入#0910。
視訊編解碼器確定(在步驟#0910)是關閉還是允許當前塊的MV細化修正。 在一些實施例中,MV細化修正語法元素存在於位元流中,並且解碼器可基於MV細化修正語法元素關閉或允許MV細化修正。 在一些實施例中,如果CU的大小大於閾值大小,則視訊編解碼器關閉MV細化修正操作而不檢查MV細化修正語法元素,並且可以在位元流中不存在MV細化修正語法元素。在一些實施例中,編碼器不執行MV細化修正,並且MV細化修正語法不存在或設置為0,並且解碼器基於CU的大小確定是關閉還是允許MV細化修正。 在一些實施例中,如果使用MV細化修正對當前CU的先前CU進行編解碼,則防止當前CU被MV細化修正編解碼。 如果關閉當前塊的MV細化修正,則過程進行到#0912。 如果允許MV細化修正,則處理進行到步驟#0914。
在步驟#0912,視訊編解碼器使用所識別的MV對對當前塊進行編解碼,而不執行MV細化修正。 然後,過程#0900結束,並且視訊編解碼器可以繼解續編碼其他塊。
在步驟#0914,視訊編解碼器對當前塊執行塊級MV搜索和細化修正。 在一些實施例中,視訊編解碼器通過執行菱形搜索來細化修正MV對,以最小化與MV對(或由MV對指示的參考像素集合)相關聯的失真成本。
在一些實施例中,基於由MV對指示的參考像素集合之間的差异來計算失真成本(如參考第4圖所描述的)。 在一些實施例中,基於當前塊的相鄰像素和由MV對指示的參考像素集合的相鄰像素來計算失真成本(如參考第3圖所述)。 在一些實施例中,基於由MV對指示的參考像素集合與由MV對的鏡像指示的參考像素集合之間的差异來計算失真成本(如參考第2圖所描述的)。
在一些實施例中,通過對MV對指向的像素資料進行子取樣來計算失真成本。 在一些實施例中,如果當前CU大於閾值大小,則視訊編解碼器禁用CU的MV水平細化修正。 在一些實施例中,如果當前CU大於閾值大小,則視訊編解碼器禁用CU的MV垂直細化修正。 然後該過程進行到#0916。
在步驟#0916,視訊編解碼器確定是否跳過子塊級別MV細化修正。 換句話說,視訊編解碼器確定當前塊是否滿足用於執行當前塊的子塊MV細化修正階段的條件。 在一些實施例中,如果當前CU大小小於閾值大小,則跳過子塊MV細化修正階段。 在一些實施例中,基於運動資訊來確定執行子塊MV細化修正的條件,運動資訊包括參考幀選擇、預測方向和運動向量的大小。在一些實施例中,基於當前CU大小與相鄰CU大小之間的比率來確定執行子塊MV細化修正的條件。 如果當前CU大小遠大於相鄰CU大小,則允許子塊MV細化修正。 否則,禁用當前CU的子塊MV細化修正。 如果滿足跳過子塊級別MV細化修正的條件,則處理進行到#0920。 如果不滿足跳過子塊級別MV細化修正的條件,則處理進行到#0918。
在步驟#0918,視訊編解碼器對每個子塊執行子塊級別MV細化修正,以為每個子塊產生一對細化修正的MV。 對於每個子塊,視訊編解碼器通過執行菱形搜索來細化修正MV對,以最小化與MV對(或由MV對指示的參考像素集合)相關聯的失真成本。 在一些實施例中,通過對MV對指向的像素資料進行子取樣來計算失真成本。 然後,過程#0900進行到#0920。
在步驟#0920,視訊編解碼器通過使用用於塊的細化修正的MV對或用於子塊或分區單元的細化修正的MV對來執行幀間預測來對當前塊進行編碼或解碼。 然後,過程#0900結束,並且視訊編解碼器可以繼續編碼或解碼另一個像素塊。
在一些實施例中,不是使用當前CU的大小來確定是否完全執行MV細化修正,而是視訊編解碼器使用當前CU的大小來確定是否將當前CU劃分以用於MV細化修正。
如第9b圖中所示,在步驟#0908識別用於編解碼的當前塊的MV對之後,視訊編解碼器確定(在步驟#0922)是否將當前塊劃分為分區單元以進行細化修正。 如果當前CU大小的大小大於閾值大小,則視訊編解碼器將CU劃分為多個分區單元並對每個分區單元執行MV搜索過程。 相反,如果CU大小小於閾值大小,則視訊編解碼器將CU視為一個分區單元,並且作為整體對CU執行MV搜索處理。在一些實施例中,當CU的線性尺寸(例如,CU的高度或寬度)大於閾值時,將當前CU視為大於閾值大小。在一些實施例中,當CU的面積(例如,CU的寬度x高度)大於閾值時,將當前CU視為大於閾值大小。在一些實施例中,如果CU未完全包含在預定義的網格單元內,則認為CU大於閾值大小。在一些實施例中,如果CU未完全包含在網格單元內,則視訊編解碼器將當前CU劃分為若干分區單元並且對於每個分區單元獨立地執行MV細化修正,條件是每個分區單元落入一個網格單元內。
如果要對塊進行分區以進行MV細化修正,則過程進行到# 0924。如果不對塊進行分區以進行MV細化修正,則過程進行到# 0914,以通過在步驟# 0908中細化修正為當前塊識別的MV對來整體地對當前塊執行MV搜索和細化修正。
在步驟# 0924,視訊編解碼器將當前塊劃分為分區單元,並單獨地為每個分區單元執行MV搜索和細化修正。對於每個分區單元,視訊編解碼器通過執行菱形搜索來細化修正MV對,以最小化與MV對(或由MV對指示的參考像素集合)相關聯的失真成本。在一些實施例中,通過對MV對指向的像素資料進行子取樣來計算失真成本。然後,過程# 0900進行到# 0920。
在一些實施例中,如果視訊編解碼器已經允許針對CU的MV細化修正,則視訊編解碼器可以確定是否對CU進行分區以用於MV細化修正。在這些實例中,在視訊編解碼器已經在步驟# 0908識別出用於編解碼當前塊的MV對之後,過程# 0900可以前進到步驟# 0910以用於視訊編解碼器以確定是關閉還是允許當前塊的MV細化修正。該過渡在第9b圖中以虛線示出。如果視訊編解碼器允許MV細化修正,則過程# 0900進行到步驟# 0922以確定是否對塊進行分區以進行MV細化修正。
V.範例的電子系統
許多上述特徵和應用被實現為被指定為記錄在計算機可讀存儲介質(也稱為計算機可讀介質)上的一組指令的軟體過程。 當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器、處理器核或其他處理單元)執行時,它們使處理單元執行指令中指示的動作。 計算機可讀介質的示例包括但不限於CD-ROM、閃存驅動器、隨機存取記憶體(RAM)晶片、硬碟驅動器、可擦除可程式化只讀記憶體(EPROM)、電可擦除可程式化只讀記憶體(EEPROM)。 計算機可讀介質不包括通過無線或有線連接傳遞的載波和電子信號。
在本說明書中,術語“軟體”旨在包括駐留在只讀記憶體中的韌體或存儲在磁記憶體中的應用程式,其可被讀入記憶體以供處理器處理。 而且,在一些實施例中,多個軟體發明可以實現為較大程式的子部分,同時保持不同的軟體發明。 在一些實施例中,多個軟體發明也可以實現為單獨的程式。 最後,一起實現這裏描述的軟體發明的單獨程式的任何組合都在本公開的範圍內。 在一些實施例中,當安裝以在一個或多個電子系統上操作時,軟體程式定義施行和執行軟體程式的操作的一個或多個特定機器實現。
第10圖概念性地示出了電子系統#1000,利用該電子系統#1000實現了本公開的一些實施例。 電子系統#1000可以是計算機(例如,臺式計算機、個人計算機、平板計算機等)、電話、PDA或任何其他種類的電子設備。 這種電子系統包括各種類型的計算機可讀介質和用於各種其他類型的計算機可讀界面的接口。 電子系統#1000包括匯流排#1005、處理單元#1010、圖形處理單元(GPU)#101、系統記憶體#1020、網路#1025、只讀記憶體#1030、永久存儲設備#1035、輸入設備#1040和輸出設備#1045。
匯流排#1005共同表示通信地連接電子系統#1000的衆多內部設備的所有系統、外圍設備和晶片組匯流排。 例如,匯流排#1005將處理單元#1010與GPU#1015、只讀記憶體#1030,系統記憶體#1020和永久存儲設備#1035通信連接。
從這些各種記憶體單元、處理單元#1010擷取要執行的指令和要處理的資料,以便執行本公開的過程。 在不同實施例中,處理單元可以是單個處理器或多核處理器。 一些指令被傳遞到GPU#1015並由GPU#1015執行。 GPU#1015可以卸載各種計算或補充由處理單元#1010提供的圖像處理。
只讀記憶體(ROM)#1030存儲處理單元#1010和電子系統的其他模塊所需的靜態資料和指令。 另一方面,永久存儲設備#1035是讀寫存儲設備。 該設備是非易失性記憶體單元,即使在電子系統#1000關閉時也存儲指令和資料。 本公開的一些實施例使用大容量存儲設備(諸如磁碟或光碟及其相應的磁碟驅動器)作為永久存儲設備#1035。
其他實施例使用可移動存儲設備(諸如軟碟、閃存設備等,以及其對應的磁碟驅動器)作為永久存儲設備。 與永久存儲設備#1035類似,系統記憶體#1020是讀寫記憶體設備。 然而,與存儲設備#1035不同,系統記憶體#1020是易失性讀寫記憶體,例如隨機存取記憶體。 系統記憶體#1020存儲處理器在運行時需要的一些指令和資料。在一些實施例中,根據本公開的過程存儲在系統記憶體#1020、永久存儲設備#1035和/或只讀記憶體#1030中。 例如,根據一些實施例,各種記憶體單元包括用於處理多媒體剪輯的指令。 從這些各種記憶體單元,處理單元#1010擷取要執行的指令和要處理的資料,以便執行一些實施例的處理。
匯流排#1005還連接到輸入和輸出設備#1040和#1045。 輸入設備#1040使用戶能够向電子系統傳送資訊和選擇命令。 輸入設備#1040包括字母數字鍵盤和指示設備(也稱為“游標控制設備”)、相機(例如,網路攝像頭)、麥克風或用於接收語音命令的類似設備等。輸出設備#1045顯示由電子系統或其他輸出資料產生的圖像。輸出設備# 1045包括打印機和顯示設備,例如陰極射線管(CRT)或液晶顯示器(LCD),以及揚聲器或類似的音訊輸出設備。一些實施例包括諸如觸摸屏的設備,其用作輸入和輸出設備。
最後,如第10圖所示,匯流排# 1005還通過網路轉接器(未示出)將電子系統# 1000耦合到網路# 1025。以這種方式,計算機可以是計算機網路的一部分(例如區域網路(“LAN”)、廣域網路(“WAN”)或內部網路,或網路組成的網路(network of networks),例如互聯網。電子系統# 1000的任何或所有組件可以與本公開結合使用。
一些實施例包括電子組件,例如微處理器、存儲設備和記憶體(其將計算機程式指令存儲在機器可讀或計算機可讀介質中(或者稱為計算機可讀存儲介質、機器可讀介質或機器可讀存儲介質))。這種計算機可讀介質的一些示例包括RAM、ROM、只讀光碟(CD-ROM)、可記錄光碟(CD-R)、可重寫光碟(CD-RW)、只讀數字通用光碟(例如,DVD-ROM、雙層DVD-ROM)、各種可記錄/可重寫DVD(例如DVD-RAM、DVD-RW、DVD+RW等)、閃存(例如SD卡、mini-SD、micro-SD卡等)卡,)、磁性和/或固態硬碟驅動器、只讀和可記錄Blu-Ray®光碟、超高密度光碟,任何其他光學或磁性介質以及軟碟。計算機可讀介質可以存儲可由至少一個處理單元執行的計算機程式,並且包括用於執行各種操作的指令集合。計算機程式或計算機代碼的示例包括諸如由編譯器產生的機器代碼,以及包括由計算機、電子組件或使用解譯器的微處理器執行的更高級代碼的文件。
雖然上述討論主要涉及執行軟體的微處理器或多核處理器,但許多上述特徵和應用由一個或多個集體電路執行,例如專用集體電路(ASIC)或現場可程式化門陣列(FPGA)。在一些實施例中,這種集體電路執行存儲在電路自身上的指令。另外,一些實施例執行存儲在可程式化邏輯器件(PLD)、ROM或RAM器件中的軟體。
如在本說明書和本申請的任何申請專利範圍中所使用的術語“計算機”、“服務器”、“處理器”和“記憶體”均指電子或其他技術設備。 這些術語不包括人或人群。 出於說明的目的,術語顯示或顯示裝置指顯示在電子設備上。 如在本說明書和本申請的任何申請專利範圍中所使用的,術語“計算機可讀介質”、“計算機可讀媒體”和“機器可讀介質”完全限於以計算機可讀形式存儲資訊的有形實體對象。 這些術語不包括任何無線信號、有線下載信號和任何其他短暫信號(ephemeral signals)。
儘管已經參考許多具體細節描述了本公開,但是本領域具有通常知識者將認識到,在不脫離本公開的精神的情况下,本公開可以以其他具體形式實施。 此外,許多圖(包括第9圖)概念性地說明瞭過程。 這些過程的具體操作可能不按照所示和描述的確切順序執行。 可以不在一個連續的一系列操作中執行特定操作,並且可以在不同的實施例中執行不同的特定操作。 此外,該過程可以使用多個子過程來實現,或者作為更大的宏過程的一部分來實現。 因此,本領域具有通常知識者將理解,本公開不受前述說明性細節的限制,而是由所附申請專利範圍限定。
文中描述的主題有時示出了包含在其它不同部件內的或與其它不同部件連接的不同部件。應當理解:這樣描繪的架構僅僅是示例性的,並且,實際上可以實施實現相同功能的許多其它架構。在概念意義上,實現相同功能的部件的任何布置是有效地“相關聯的”,以使得實現期望的功能。因此,文中被組合以獲得特定功能的任意兩個部件可以被視爲彼此“相關聯的”,以實現期望的功能,而不管架構或中間部件如何。類似地,這樣相關聯的任意兩個部件還可以被視爲彼此“可操作地連接的”或“可操作地耦接的”,以實現期望的功能,並且,能夠這樣相關聯的任意兩個部件還可以被視爲彼此“操作上可耦接的”,以實現期望的功能。“操作上可耦接的”的具體示例包含但不限於:實體地可聯結和/或實體地相互、作用的部件、和/或無線地可相互作用和/或無線地相互作用的部件、和/或邏輯地相互作用的和/或邏輯地可相互作用的部件。
此外,關於文中基本上任何複數和/或單數術語的使用,只要對於上下文和/或應用是合適的,所屬技術領域具有通常知識者可以將複數變換成單數,和/或將單數變換成複數。
所屬技術領域具有通常知識者將會理解,通常,文中所使用的術語,特別是在所附申請專利範圍(例如,所附申請專利範圍中的主體)中所使用的術語通常意在作爲“開放性”術語(例如,術語“包含”應當被解釋爲“包含但不限幹”,術語“具有”應當被解釋爲“至少具有”,術語“包含”應當被解釋爲“包含但不限幹”等)。所屬技術領域具有通常知識者還將理解,如果意在所介紹的申請專利範圍陳述對象的具體數目,則這樣的意圖將會明確地陳述在申請專利範圍中,在缺乏這樣的陳述的情况下,不存在這樣的意圖。例如,爲了幫助理解,所附申請專利範圍可以包含使用介紹性短語“至少一個”和“一個或更多個”來介紹申請專利範圍陳述對象。然而,這樣的短語的使用不應當被解釋爲:用不定冠詞“一個(a或an)”的申請專利範圍陳述對象的介紹將包含這樣介紹的申請專利範圍陳述對象的任何申請專利範圍限制爲只包含一個這樣的陳述對象的發明,即使在同一申請專利範圍包含介紹性短語“一個或更多個”或“至少一個”以及諸如“一個(a)”或“一個(an)”之類的不定冠詞的情況下(例如,“一個(a)”和/或“一個(an)”應當通常被解釋爲意味著“至少一個”或“一個或更多個”)也如此;上述對以定冠詞來介紹申請專利範圍陳述對象的情况同樣適用。另外,即使明確地陳述了介紹的申請專利範圍陳述對象的具體數目,但所屬技術領域具有通常知識者也會認識到:這樣的陳述通常應當被解釋爲意味著至少所陳述的數目(例如,僅有“兩個陳述對象”而沒有其他修飾語的陳述通常意味著至少兩個陳述對象,或兩個或更多個陳述對象)。此外,在使用類似於“A、B和C中的至少一個等”的慣用語的情況下,通常這樣的結構意在所屬技術領域具有通常知識者所理解的該慣用語的含義(例如,“具有A、B和C中的至少一個的系統”將包含但不限於具有單獨的A、單獨的B、單獨的C、A和B —起、A和C 一起、B和C 一起和/或A、B和C 一起的系統等)。在使用類似於“A、B或C中的至少一個等”的慣用語的情況下,通常這樣的結構意在所屬技術領域具有通常知識者所理解的該慣用語的含義(例如,“具有A、B或C中的至少一個的系統”將包含但不限於具有單獨的A、單獨的B、單獨的C、A和B —起、A和C 一起、B和C 一起和/或A、B和C 一起的系統等)。所屬技術領域具有通常知識者將進一歩理解,不管在說明書、申請專利範圍中還是在附圖中,表示兩個或更多個可替換的術語的幾乎任意析取詞和/或短語應當理解成考慮包含術語中的一個、術語中的任一個或所有兩個術語的可能性。例如,短語“A或B”應當被理解成包含“A”、“B”、或“A和B”的可能性。
儘管已經在文中使用不同的方法、設備以及系統來描述和示出了一些示例性的技術,但是所屬技術領域具有通常知識者應當理解的是:可以在不脫離所要求保護的主題的情况下進行各種其它修改以及進行等同物替換。此外,在不脫離文中描述的中心構思的情况下,可以進行許多修改以使特定的情况適應於所要求保護的主題的教導。因此,意在所要求保護的主題不限制於所公開的特定示例,而且這樣的要求保護的主題還可以包含落在所附申請專利範圍的範圍內的所有實施及它們的等同物。
#0100、#01000‧‧‧電子系統#0110‧‧‧第一設備#0160‧‧‧第二設備#0150、#0595、#0795‧‧‧位元流#0120‧‧‧編碼器電路#0130‧‧‧幀間編碼器#0140‧‧‧模式匹配引擎#0145、#0195、#0610、#0810‧‧‧細化修正控制器#0170‧‧‧解碼器電路#0180‧‧‧幀間解碼器#0190‧‧‧模式匹配引擎#0210#0310‧‧‧當前幀#0220、#0230、#0320、#0330‧‧‧參考幀#0211、#311‧‧‧塊#0221、#0222、#0226、#0231、#0232、#0236、#0225、#0235、#0321、#0331、#0325、#0335‧‧‧參考像素集合#0317、#0327、#0337‧‧‧模板#0500‧‧‧視訊編碼器#0505‧‧‧視訊源#0508‧‧‧減法器#0509‧‧‧殘差信號#0512、#0712‧‧‧量化係數#0513、#0713‧‧‧預測像素資料#0517‧‧‧重構的像素資料#0519‧‧‧重構的殘差#0540、#0740‧‧‧幀間預測模塊#0510‧‧‧變換模塊#0511‧‧‧量化模塊#0514、#0705‧‧‧逆量化模塊#0515、#0715‧‧‧逆變換模塊#0520‧‧‧幀內圖像估計模塊#0525、#0725‧‧‧幀內預測模塊#0530、#0730‧‧‧運動補償模塊#0535‧‧‧運動估計模塊#0545、#0745‧‧‧環路濾波器#0550‧‧‧重構圖像緩衝器#0565、#0765‧‧‧MV緩衝器#0575、#0775‧‧‧MV預測模塊#0590‧‧‧熵編碼器#0605、#0805‧‧‧MV選擇器#0620、#0820‧‧‧模式匹配引擎#0630、#0830‧‧‧搜索緩衝器#0640、#0840‧‧‧失真成本計算器#0650、#0850‧‧‧子取樣#0700‧‧‧視訊解碼器#0750‧‧‧解碼圖像緩衝器#0790‧‧‧解析器#0716‧‧‧變換係數#0717‧‧‧解碼像素資料#0719‧‧‧重構殘差信號#0755‧‧‧顯示設備#0900‧‧‧過程#0902~#0924‧‧‧步驟#1005‧‧‧匯流排#1010‧‧‧處理單元#101‧‧‧圖形處理單元#1020‧‧‧系統記憶體#1025‧‧‧網路#1030‧‧‧只讀記憶體#1035‧‧‧永久存儲設備#1040‧‧‧輸入設備#1045‧‧‧輸出設備
包括附圖以提供對本公開的進一步理解,並且附圖被併入並構成本公開的一部分。 附圖示出了本公開的實施方式,並且與說明書一起用於解釋本公開的原理。 可以理解的是,附圖不一定按比例繪製,因爲爲了清楚地說明本公開的概念,一些部件可能被示出爲與實際實施中的尺寸不成比例。 第1圖示出了根據本公開實施例的使用PMVD和DMVR用於視訊編解碼的電子系統的圖。 第2a-2b圖概念性地示出了與本公開的示例性實施例一致,使用雙向預測PMVD和DMVR來編碼或解碼像素塊。 第3圖概念性地示出了使用模板匹配和DMVR來編碼或解碼像素塊,與本公開的示例性實施例一致。 第4圖概念性地示出了用於編碼或解碼像素塊的備選雙邊匹配和DMVR過程。 第5圖示出了可以使用PMVD和DMVR來編碼像素塊的示例視訊編碼器。 第6圖示出了實現PMVD和DMVR的視訊編碼器的部分。 第7圖示出了可以使用PMVD和DMVR來解碼和重構像素塊的示例視訊解碼器。 第8圖示出了實現PMVD和DMVR的視訊解碼器的部分。 第9a-9b圖概念性地示出了視訊編解碼器(編碼器或解碼器)在編碼或解碼視訊幀的像素塊時用於實現PMVD和DMVR的過程。 第10圖概念性地示出了用於實現本公開的一些實施例的電子系統。
# 0900‧‧‧過程
# 0902~# 0920‧‧‧步驟

Claims (28)

  1. 一種用於編碼或解碼視訊序列的方法,該方法包括:識別第一運動向量和第二運動向量,用於編解碼該視訊序列中當前視訊幀的當前像素塊;基於該當前像素塊的線性尺寸與閾值之間的比較,確定是否對該當前像素塊執行運動向量細化修正;當執行運動向量細化修正時:細化修正該第一運動向量和該第二運動向量以最小化失真成本;以及通過使用細化修正的第一運動向量和第二運動向量對該當前像素塊進行編解碼;以及當不執行運動向量細化修正時:通過使用所識別的該第一運動向量和該第二運動向量來編解碼該當前像素塊。
  2. 如申請專利範圍第1項所述的方法,其中,當該當前像素塊的該線性尺寸大於該閾值時,不執行該運動向量細化修正。
  3. 如申請專利範圍第1項所述的方法,其中,當該當前像素塊未被預定網格單元包含時,不執行該運動向量細化修正。
  4. 如申請專利範圍第1項所述的方法,還包括:除非該當前塊的該線性維度大於該閾值,否則在位元流中編解碼對應於運動向量細化修正的位元。
  5. 如申請專利範圍第1項所述的方法,其中,基於由該第一運動向量和該第二運動向量指向的子取樣像素資料來計算該失真成本。
  6. 如申請專利範圍第1項所述的方法,其中:該第一運動向量指示第一參考幀中的第一參考像素集合,該第二運動向量 指示第二參考幀中的第二參考像素集合,以及基於該當前像素塊的一組相鄰像素,該第一參考像素集合的一組相鄰像素和該第二參考像素集合的一組相鄰像素來計算該失真成本。
  7. 如申請專利範圍第1項所述的方法,其中:基於由該第一運動向量和第一鏡像運動向量指示的參考像素集合之間的差來計算該失真成本,其中該第一鏡像運動向量和該第一運動向量處於與該當前像素塊交叉的相同運動軌跡中。
  8. 如申請專利範圍第1項所述的方法,其中:基於由細化修正的第一運動向量指示的第一參考幀中的第一參考像素集合與由細化修正的第二運動向量指示的第二參考幀中的第二參考像素集合之間的差來計算該失真成本。
  9. 如申請專利範圍第8項所述的方法,其中,該細化修正的第一運動向量和該細化修正的第二運動向量基於相對於中心搜索位置的相對搜索位置。
  10. 一種用於編碼或解碼視訊序列的方法,該方法包括:識別第一運動向量和第二運動向量,用於編解碼該視訊序列中當前視訊幀的當前像素塊;細化修正第一運動向量和第二運動向量以最小化失真成本,其中通過對由該第一運動向量和該第二運動向量所指向的像素資料進行子取樣來計算該失真成本;以及通過使用細化修正的第一運動向量和第二運動向量對該當前像素塊進行編解碼。
  11. 一種用於編碼或解碼視訊序列的方法,該方法包括:識別第一運動向量和第二運動向量,用於編解碼該視訊序列中當前視訊幀 的當前像素塊;基於該當前像素塊是否滿足特定條件,確定是否對該當前像素塊執行運動向量細化修正;當執行運動向量細化修正時:細化修正該第一運動向量和該第二運動向量以最小化失真成本,該失真成本是基於由細化修正的第一運動向量指示的第一參考幀中的第一像素集合與由細化修正的第二運動向量指示的第二參考幀中的第二像素集合之間的差來計算的;以及通過使用該細化修正的第一運動向量和該第二運動向量對該當前像素塊進行編解碼;以及當不執行運動向量細化修正時:通過使用所識別的該第一運動向量和該第二運動向量來編解碼該當前像素塊。
  12. 如申請專利範圍第11項所述的方法,還包括:在位元流中編解碼對應於運動向量細化修正的位元,除非該當前像素塊未通過該特定條件。
  13. 如申請專利範圍第11項所述的方法,其中,當該當前塊的區域小於閾值區域時,該當前像素塊滿足該特定條件。
  14. 如申請專利範圍第11項所述的方法,其中,當該當前塊的線性尺寸小於閾值時,該當前像素塊滿足該特定條件。
  15. 如申請專利範圍第11項所述的方法,其中,當被包含在預定網格單元該當前像素塊時,該當前塊滿足該特定條件。
  16. 如申請專利範圍第11項所述的方法,其中,基於由該第一運動向量和該第二指向的子取樣像素資料來計算該失真成本。
  17. 如申請專利範圍第11項所述的方法,其中,該細化修正的第一運動向量和該細化修正的第二運動向量基於相對於中心搜索位置的相對搜索位置。
  18. 一種用於編碼或解碼視訊序列的方法,該方法包括:識別第一運動向量和第二運動向量,用於編解碼該視訊序列中當前視訊幀的當前像素塊;基於該當前像素塊是否滿足特定條件,確定是否劃分該當前像素塊以進行運動向量細化修正;當該當前像素塊被劃分以進行運動向量細化修正時:將該當前像素塊劃分為多個分區單元;分別細化修正該第一運動向量和該第二運動向量用於該多個分區單元;以及通過使用細化修正的第一運動向量和第二運動向量分別編碼多個子塊;當該當前像素塊未被劃分以進行運動向量細化修正時:通過使用所識別的該第一運動向量和該第二運動向量來編解碼該當前像素塊,其中,當該當前像素塊的線性尺寸大於閾值時,對該當前像素塊進行劃分以用於運動向量細化修正。
  19. 如申請專利範圍第18項所述的方法,其中,當該當前像素塊的區域大於該閾值時,對該當前像素塊進行劃分以用於運動向量細化修正。
  20. 如申請專利範圍第18項所述的方法,其中,當該當前像素塊包含在預定網格單元中時,不對該當前像素塊進行劃分用於運動向量細化修正。
  21. 如申請專利範圍第18項所述的方法,其中,基於由該第一運動向量和該第二運動向量指向的子取樣像素資料來計算該失真成本。
  22. 如申請專利範圍第18項所述的方法,其中:該第一運動向量指示第一參考幀中的第一參考像素集合,該第二運動向量指示第二參考幀中的第二參考像素集合,以及基於該當前像素塊的一組相鄰像素、該第一參考像素集合的一組相鄰像素和該第二參考像素集合的一組相鄰像素來計算該失真成本。
  23. 如申請專利範圍第18項所述的方法,其中:基於由該第一運動向量和第一鏡像運動向量指示的參考像素集合之間的差來計算該失真成本,其中該第一鏡像運動向量和該第一運動向量處於與該當前像素塊交叉的相同運動軌跡中。
  24. 如申請專利範圍第18項所述的方法,其中:基於由該細化修正的第一運動向量指示的第一參考幀中的第一參考像素集合與由該細化修正的第二運動向量指示的第二參考幀中的第二參考像素集合之間的差來計算該失真成本。
  25. 如申請專利範圍第24項所述的方法,其中,該細化修正的第一運動向量和該細化修正的第二運動向量基於相對於中心搜索位置的相對搜索位置。
  26. 如申請專利範圍第18項所述的方法,還包括:基於該當前像素塊的大小與該閾值之間的比較,確定是否對該當前像素塊執行運動向量細化修正;當執行運動向量細化修正時:細化修正該第一運動向量和該第二運動向量以最小化失真成本;以及通過使用細化修正的第一運動向量和第二運動向量對該當前像素塊進行編解碼;以及當不執行運動向量細化修正時: 通過使用所識別的該第一運動向量和該第二運動向量來編解碼該當前像素塊。
  27. 一種視訊處理裝置,包含:解碼器,執行包含以下操作的操作:識別第一運動向量和第二運動向量,用於解碼該視訊序列中當前視訊幀的當前像素塊;基於該當前像素塊的線性尺寸與閾值之間的比較,確定是否對該當前像素塊執行運動向量細化修正;當執行運動向量細化修正時:細化修正該第一運動向量和該第二運動向量以最小化失真成本;以及通過使用細化修正的第一運動向量和第二運動向量對該當前像素塊進行解碼;以及當不執行運動向量細化修正時:通過使用所識別的該第一運動向量和該第二運動向量來解碼該當前像素塊。
  28. 一種視訊處理裝置,包含:編碼器,執行包含以下操作的操作:識別第一運動向量和第二運動向量,用於編碼該視訊序列中當前視訊幀的當前像素塊;基於該當前像素塊的線性尺寸與閾值之間的比較,確定是否對該當前像素塊執行運動向量細化修正;當執行運動向量細化修正時:細化修正該第一運動向量和該第二運動向量以最小化失真成本;以及通過使用細化修正的第一運動向量和第二運動向量對該當前像素塊進行編 碼;以及當不執行運動向量細化修正時:通過使用所識別的該第一運動向量和該第二運動向量來編碼該當前像素塊。
TW108102949A 2018-01-26 2019-01-25 硬體友善限制之運動向量細化修正 TWI690195B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862622234P 2018-01-26 2018-01-26
US62/622,234 2018-01-26
US201862723014P 2018-08-27 2018-08-27
US62/723,014 2018-08-27
US201862740470P 2018-10-03 2018-10-03
US62/740,470 2018-10-03
US16/248,452 US11310526B2 (en) 2018-01-26 2019-01-15 Hardware friendly constrained motion vector refinement
US16/248,452 2019-01-15

Publications (2)

Publication Number Publication Date
TW201935928A TW201935928A (zh) 2019-09-01
TWI690195B true TWI690195B (zh) 2020-04-01

Family

ID=67392580

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108102949A TWI690195B (zh) 2018-01-26 2019-01-25 硬體友善限制之運動向量細化修正

Country Status (7)

Country Link
US (1) US11310526B2 (zh)
EP (1) EP3744098A4 (zh)
KR (1) KR102448218B1 (zh)
CN (2) CN117750032A (zh)
BR (1) BR112020015246A8 (zh)
TW (1) TWI690195B (zh)
WO (1) WO2019144930A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11146793B2 (en) * 2018-03-27 2021-10-12 Kt Corporation Video signal processing method and device
WO2020017840A1 (ko) * 2018-07-16 2020-01-23 엘지전자 주식회사 Dmvr에 기반하여 인터 예측을 수행하는 방법 및 장치
EP3841751B1 (en) * 2018-09-19 2024-04-17 Huawei Technologies Co., Ltd. Method for skipping refinement based on patch similarity in bilinear interpolation based decoder-side motion vector refinement
WO2020084476A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Sub-block based prediction
WO2020084462A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on block size
WO2020084475A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Utilization of refined motion vector
WO2020084461A1 (en) * 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Restrictions on decoder side motion vector derivation based on coding information
CN111436230A (zh) 2018-11-12 2020-07-21 北京字节跳动网络技术有限公司 仿射预测的带宽控制方法
CN113170171B (zh) * 2018-11-20 2024-04-12 北京字节跳动网络技术有限公司 组合帧间帧内预测模式的预测细化
EP3861742A4 (en) 2018-11-20 2022-04-13 Beijing Bytedance Network Technology Co., Ltd. DIFFERENCE CALCULATION BASED ON SPATIAL POSITION
US11146810B2 (en) 2018-11-27 2021-10-12 Qualcomm Incorporated Decoder-side motion vector refinement
JP7005480B2 (ja) * 2018-12-27 2022-01-21 Kddi株式会社 画像復号装置、画像符号化装置、プログラム及び画像処理システム
CN111385575A (zh) * 2018-12-29 2020-07-07 华为技术有限公司 帧间预测方法、装置以及相应的编码器和解码器
KR102374687B1 (ko) * 2019-01-06 2022-03-14 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 양방향 광학 흐름을 위한 비트 폭 제어
JP2022521554A (ja) 2019-03-06 2022-04-08 北京字節跳動網絡技術有限公司 変換された片予測候補の利用
CN113545086A (zh) * 2019-03-08 2021-10-22 北京达佳互联信息技术有限公司 用于视频编解码的双向光流和解码器侧运动矢量细化
PL3941060T3 (pl) * 2019-03-12 2023-12-27 Lg Electronics Inc. Sposób i urządzenie inter-predykcji oparte na dmvr i bdof
EP3922014A4 (en) 2019-04-02 2022-04-06 Beijing Bytedance Network Technology Co., Ltd. DECODER SIDE MOTION VECTOR BYPASS
JP6835337B2 (ja) * 2019-06-20 2021-02-24 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
US11223840B2 (en) * 2019-08-19 2022-01-11 Tencent America LLC Method and apparatus for video coding
US11641475B2 (en) 2019-09-12 2023-05-02 Alibaba Group Holding Limited Method and apparatus for encoding or decoding video
JP2022547599A (ja) 2019-09-12 2022-11-14 アリババ グループ ホウルディング リミテッド 映像符号化情報をシグナリングするための方法及び装置
CN110740317B (zh) 2019-09-18 2021-10-15 浙江大华技术股份有限公司 子块运动预测、编码方法、编码器及存储装置
CN110719489B (zh) * 2019-09-18 2022-02-18 浙江大华技术股份有限公司 运动矢量修正、预测、编码方法、编码器及存储装置
CN110740322A (zh) * 2019-10-23 2020-01-31 李思恒 视频编码方法及装置、存储介质、视频编码设备
US11683517B2 (en) * 2020-11-23 2023-06-20 Qualcomm Incorporated Block-adaptive search range and cost factors for decoder-side motion vector (MV) derivation techniques
TW202232951A (zh) * 2020-12-22 2022-08-16 美商高通公司 多通路解碼器側運動向量細化
US20220394309A1 (en) * 2021-05-20 2022-12-08 Lemon Inc. On Padding Methods For Neural Network-Based In-Loop Filter
US20230096682A1 (en) * 2021-09-24 2023-03-30 Apple Inc. Systems and Methods for Low Resolution Motion Estimation Searches
WO2023143173A1 (en) * 2022-01-28 2023-08-03 Mediatek Inc. Multi-pass decoder-side motion vector refinement
TW202408242A (zh) * 2022-04-06 2024-02-16 聯發科技股份有限公司 隱式多通道解碼器端運動向量細化
WO2024072162A1 (ko) * 2022-09-28 2024-04-04 엘지전자 주식회사 영상 인코딩/디코딩 방법 및 장치, 그리고 비트스트림을 저장한 기록 매체
WO2024080747A1 (ko) * 2022-10-11 2024-04-18 한국전자통신연구원 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018002024A1 (en) * 2016-06-30 2018-01-04 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145950B2 (en) * 2003-07-14 2006-12-05 Primax Electronics Ltd. Method of motion vector determination in digital video compression
US8218636B2 (en) 2006-11-21 2012-07-10 Vixs Systems, Inc. Motion refinement engine with a plurality of cost calculation methods for use in video encoding and methods for use therewith
US20090167775A1 (en) * 2007-12-30 2009-07-02 Ning Lu Motion estimation compatible with multiple standards
TWI500308B (zh) * 2008-03-09 2015-09-11 Lg Electronics Inc 視訊訊號之編碼或解碼方法及其裝置
CN102131091B (zh) * 2010-01-15 2013-01-23 联发科技股份有限公司 解码端运动向量导出方法
CN102685504B (zh) 2011-03-10 2015-08-19 华为技术有限公司 视频图像的编解码方法、编码装置、解码装置及其***
US9544592B2 (en) * 2012-02-10 2017-01-10 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
BR112017010468B1 (pt) * 2014-11-18 2024-01-02 Hfi Innovation Inc Método de decodificação de vídeo para blocos codificados no modo de interpredição e método de codificação de vídeo para blocos codificados no modo de interpredição
US10958927B2 (en) * 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
CN114615493A (zh) 2016-03-24 2022-06-10 英迪股份有限公司 视频解码方法、视频编码方法和可读记录介质
US10602180B2 (en) * 2017-06-13 2020-03-24 Qualcomm Incorporated Motion vector prediction
US10904565B2 (en) * 2017-06-23 2021-01-26 Qualcomm Incorporated Memory-bandwidth-efficient design for bi-directional optical flow (BIO)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018002024A1 (en) * 2016-06-30 2018-01-04 Thomson Licensing Method and apparatus for video coding with automatic motion information refinement

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Xu Chen, et.al "Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching", JVET-D0029, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 4th Meeting: Chengdu, CN, 15–21 October 2016 *
Xu Chen, et.al "Decoder-Side Motion Vector Refinement Based on Bilateral Template Matching", JVET-D0029, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 4th Meeting: Chengdu, CN, 15–21 October 2016,

Also Published As

Publication number Publication date
BR112020015246A2 (pt) 2021-01-26
EP3744098A4 (en) 2021-10-20
BR112020015246A8 (pt) 2023-02-07
WO2019144930A1 (en) 2019-08-01
TW201935928A (zh) 2019-09-01
KR20200113259A (ko) 2020-10-06
US11310526B2 (en) 2022-04-19
CN111886866B (zh) 2023-12-26
EP3744098A1 (en) 2020-12-02
KR102448218B1 (ko) 2022-09-28
CN117750032A (zh) 2024-03-22
CN111886866A (zh) 2020-11-03
US20190238883A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
TWI690195B (zh) 硬體友善限制之運動向量細化修正
TWI719542B (zh) 一種視訊編碼/解碼方法及裝置
CN110169061B (zh) 编解码电子装置与方法
TWI711300B (zh) 照度補償方法及相應之視訊處理裝置
TWI749467B (zh) 幀內塊複製合併列表簡化
US10142654B2 (en) Method for encoding/decoding video by oblong intra prediction
US11924413B2 (en) Intra prediction for multi-hypothesis
TW202046718A (zh) 用於多個工具的互相排斥設定
CN111971962A (zh) 视频编解码装置和方法
TW202201964A (zh) 運動向量差值導數傳訊技術
CN114128260A (zh) 全局运动矢量的高效编码
TW202310620A (zh) 視訊編解碼方法及裝置
TWI836792B (zh) 視訊編解碼方法及相關裝置
TW202415066A (zh) 多假設預測編解碼
TW202420819A (zh) 視訊編解碼中帶越界檢查的預測生成
TW202423116A (zh) 視訊編解碼方法和電子裝置