TWI753280B - Bio中的mv精度 - Google Patents

Bio中的mv精度 Download PDF

Info

Publication number
TWI753280B
TWI753280B TW108127809A TW108127809A TWI753280B TW I753280 B TWI753280 B TW I753280B TW 108127809 A TW108127809 A TW 108127809A TW 108127809 A TW108127809 A TW 108127809A TW I753280 B TWI753280 B TW I753280B
Authority
TW
Taiwan
Prior art keywords
motion vector
precision
mvl1
mvl0
block
Prior art date
Application number
TW108127809A
Other languages
English (en)
Other versions
TW202021346A (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 TW202021346A publication Critical patent/TW202021346A/zh
Application granted granted Critical
Publication of TWI753280B publication Critical patent/TWI753280B/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods 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 a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • 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/527Global motion vector estimation
    • 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/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation

Landscapes

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

Abstract

描述了用於數位視訊編碼的設備、系統和方法,其包括基於使用兩步圖框圖框間預測生成的更新的運動向量的運動預測,並且描述了用於BIO中的MV預測的方法。用於視訊處理的示例性方法包括:確定當前塊的原始運動信息;將所述原始運動信息的原始運動向量和基於所述原始運動向量推導的推導運動向量縮放到相同的目標精度;從縮放的原始和推導的運動向量生成更新的運動向量;以及基於更新的運動向量,執行所述當前塊和包括所述當前塊的視訊的位元流表示之間的轉換。

Description

BIO中的MV精度
本專利文件涉及視訊編碼技術、設備和系統。 [相關申請的交叉引用] 根據適用的專利法和/或巴黎公約的規定,本申請及時要求於2018年8月4日提交的國際專利申請號PCT/CN2018/098691、2018年9月21日提交的國際專利申請號PCT/CN2018/106920、2018年10月6日提交的國際專利申請號PCT/CN2018/109250的優先權和利益。將國際專利申請號PCT/CN2018/098691、PCT/CN2018/106920和PCT/CN2018/109250的全部公開以引用方式並入本文,作為本申請公開的一部分。
儘管視訊壓縮有所進步,數位視訊在網際網路和其他數位通信網絡上仍占最大的頻寬使用量。隨著能夠接收和顯示視訊的連接使用者設備的數量增加,預計數位視訊使用所需的帶寬將繼續增長。
描述了與數位視訊編碼有關的設備、系統和方法,並且具體地,描述了基於根據兩步圖框間預測生成的更新的運動向量的運動細化。所描述的方法可以應用于現有視訊編碼標準(例如,高效視訊編碼(HEVC))和未來視訊編碼標準或視訊轉碼器。
在一個代表性方面,提供了一種視訊處理方法,包括:確定當前塊的原始運動資訊;將原始運動資訊的原始運動向量和基於原始運動向量推導的推導運動向量縮放到相同的目標精度;從縮放的原始和推導的運動向量生成更新的運動向量;以及基於更新的運動向量,執行當前塊和包括當前塊的視訊的位元流表示之間的轉換。
在另一個代表性方面,提供了一種視訊處理方法,包括:確定當前塊的原始運動資訊;基於細化方法更新當前塊的原始運動資訊的原始運動向量;將更新的運動向量裁剪到一個範圍內;以及基於裁剪的更新的運動向量,執行當前塊和包括當前塊的視訊的位元流表示之間的轉換。
在又一個代表性方面,提供了一種視訊處理方法,包括:確定與當前塊相關聯的原始運動資訊;基於特定預測模式生成更新的運動資訊;以及基於更新的運動資訊,執行當前塊與包括當前塊的視訊資料的位元流表示之間的轉換,其中,特定預測模式包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、圖框速率上轉換(FRUC)技術或範本匹配技術中的一個或多個。
在又一個代表性方面,提供了一種視訊處理方法,包括:從運動向量差(MVD)精度集確定用仿射模式處理的當前塊的MVD精度;基於所確定的MVD精度,執行當前塊與包括當前塊的視訊的位元流表示之間的轉換。
在又一個代表性方面,提供了一種視訊處理方法,包括:確定與當前塊相關聯的未更新的運動資訊;基於多個解碼器側運動向量推導(DMVD)方法更新未更新的運動資訊,以生成當前塊的更新的運動資訊;以及基於更新的運動資訊,執行當前塊與包括當前塊的視訊的位元流表示之間的轉換。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括接收視訊資料的當前塊的位元流表示,分別基於第一縮放運動向量與第一和第二縮放參考運動向量的加權和來生成更新的第一和第二參考運動向量,其中,基於來自第一參考塊的第一參考運動向量和來自第二參考塊的第二參考運動向量推導第一運動向量,其中當前塊與第一和第二參考塊相關聯,其中通過將第一運動向量縮放到目標精度來生成第一縮放運動向量,並且其中通過分別將第一和第二參考運動向量縮放到目標精度來生成第一和第二縮放參考運動向量,以及基於更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括基於與當前塊相關聯的第一運動資訊為當前塊生成中間預測,將第一運動資訊更新為第二運動資訊,以及基於中間預測或第二運動資訊生成當前塊的最終預測。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括接收視訊資料的當前塊的位元流表示,基於與當前塊相關聯的運動資訊生成中間運動資訊,分別基於第一和第二參考運動向量生成更新的第一和第二參考運動向量,其中,當前塊與第一和第二參考塊相關聯,並且其中第一和第二參考運動向量分別與第一和第二參考塊相關聯,以及基於中間運動資訊或更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括基於與當前塊相關聯的第一運動資訊為當前塊生成中間預測,將第一運動資訊更新為第二運動資訊,以及基於中間預測或第二運動資訊生成當前塊的最終預測。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括接收視訊資料的當前塊的位元流表示,基於與當前塊相關聯的運動資訊生成中間運動資訊,分別基於第一和第二參考運動向量生成更新的第一和第二參考運動向量,其中,當前塊與第一和第二參考塊相關聯,並且其中第一和第二參考運動向量分別與第一和第二參考塊相關聯,以及基於中間運動資訊或更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括基於與當前塊相關聯的第一運動資訊為當前塊生成中間預測,將第一運動資訊更新為第二運動資訊,以及基於中間預測或第二運動資訊生成當前塊的最終預測。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法。該方法包括接收視訊資料的當前塊的位元流表示,基於與當前塊相關聯的運動資訊生成中間運動資訊,分別基於第一和第二參考運動向量生成更新的第一和第二參考運動向量,其中當前塊與第一和第二參考塊相關聯,並且其中第一和第二參考運動向量分別與第一和第二參考塊相關聯,並且基於中間運動資訊或更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法,該方法包括通過修改與當前塊相關聯的參考塊,對於當前塊的位元流表示生成更新的參考塊;基於更新的參考塊,計算用於雙向光流(BIO)運動細化的時間梯度;以及基於時間梯度,在位元流表示和當前塊之間執行包括BIO運動細化的轉換。
在又一個代表性方面,所公開的技術可以用於提供用於視訊編碼的方法,該方法包括對於當前塊的位元流表示,生成用於雙向光流(BIO)運動細化的時間梯度;通過從時間梯度中減去第一均值和第二均值的差來生成更新的時間梯度,其中第一均值是第一參考塊的均值,其中第二均值是第二參考塊的均值,並且其中第一和第二參考塊與當前塊相關聯;以及基於更新的時間梯度,在位元流表示和當前塊之間執行包括BIO運動細化的轉換。
在又一代表性方面,上述方法以處理器可執行代碼的形式體現並存儲在電腦可讀程式介質中。
在又一代表性方面,公開了一種配置或可操作以執行上述方法的設備。該設備可以包括被程式設計為實現該方法的處理器。
在又一代表性方面,視訊解碼器裝置可實現如本文中所描述的方法。
在附圖、說明書和權利要求中更詳細地描述了所公開技術的上述和其他方面和特徵。
由於對更高解析度視訊的需求的增加,在現代技術中普遍存在視訊編碼方法和技術。視訊轉碼器通常包括壓縮或解壓縮數位視訊的電子電路或軟體,並且不斷改進以提供更高的編碼效率。視訊轉碼器將未壓縮視訊轉換為壓縮格式,反之亦然。視訊品質、用於表示視訊的資料量(由位元速率確定)、編碼和解碼演算法的複雜度、對資料丟失和錯誤的敏感性、編輯的簡易性、隨機訪問和端到端延遲(遲延)之間存在複雜的關係。壓縮格式通常符合標準視訊壓縮規範,例如,高效視訊編碼(HEVC)標準(也稱為H.265或MPEG-H第2部分)、要完成的通用視訊編碼標準、或其他當前和/或未來的視訊編碼標準。
所公開的技術的實施例可以應用于現有視訊編碼標準(例如,HEVC、H.265)和未來標準以改進壓縮性能。在本文檔中使用章節標題以提高描述的可讀性,並且不以任何方式將討論或實施例(和/或實現)限制於僅相應的部分。
1. HEVC / H.265中的圖框間預測的示例
多年來,視訊編碼標準已經顯著改進,並且現在部分地提供高編碼效率和對更高解析度的支援。諸如HEVC和H.265的最新標準基於混合視訊編碼結構,其中利用時間預測加變換編碼。
1.1.   預測模型的示例
每個圖框間預測的PU(預測單元)具有用於一個或兩個參考圖片清單的運動參數。在一些實施例中,運動參數包括運動向量和參考圖片索引。在其他實施例中,也可以使用inter_pred_idc 來信令通知兩個參考圖片清單中的一個的使用。在又一其他實施例中,可以將運動向量明確地編碼為相對於預測器的增量。
當用跳過模式對CU進行編碼時,一個PU與CU相關聯,並且不存在顯著的殘差係數、沒有編碼的運動向量增量或參考圖片索引。指定Merge模式,從而從相鄰PU獲得當前PU的運動參數,包括空間和時間候選。Merge模式可以應用於任何圖框間預測的PU,而不僅應用於跳過模式。Merge模式的替代是運動參數的顯式傳輸,其中,對於每個PU,明確地用信令通知運動向量、每個參考圖片清單的對應參考圖片索引和參考圖片清單使用。
當信令指示將使用兩個參考圖片清單中的一個時,從一個樣本塊產生PU。這被稱為“單向預測(uni-prediction)”。單向預測可用於P條帶和B條帶兩者。
當信令指示將使用兩個參考圖片清單時,從兩個樣本塊產生PU。這被稱為“雙向預測(bi-prediction)”。雙向預測僅適用於B條帶。
1.1.1.1建構用於Merge模式的候選的實施例
當使用Merge模式預測PU時,從位元流解析指向Merge 候選清單 中的條目的索引並將其用於檢索運動資訊。該清單的建構(construction)可以根據以下步驟順序進行總結:
步驟1:原始候選推導
步驟1.1:空間候選推導
步驟1.2:空間候選的冗餘校驗
步驟1.3:時間候選推導
步驟2:插入額外的候選
步驟2.1:創建雙向預測候選
步驟2.2:插入零運動候選
圖1示出了基於上面總結的步驟序列建構Merge候選列表的示例。對於空間Merge候選推導,在位於五個不同位置的候選當中選擇最多四個Merge候選。對於時間Merge候選推導,在兩個候選當中選擇最多一個Merge候選。由於在解碼器處假設恒定數量的候選用於每個PU,因此當候選的數量未達到在條帶報頭中用信令通知的最大Merge候選數量(MaxNumMergeCand)時,生成額外的候選。由於候選的數量是恒定的,因此使用截斷的一元二值化(Truncated Unary binarization,TU)來編碼最佳Merge候選的索引。如果CU的尺寸等於8,則當前CU的所有PU共用單個Merge候選列表,其與2N×2N預測單元的Merge候選清單相同。
1.1.2 建構空間Merge候選
在空間Merge候選的推導中,在位於圖2描繪的位置的候選當中選擇最多四個Merge候選。推導的順序是A1 、B1 、B0 、A0 和B2 。僅當位置A1 、B1 、B0 、A0 的任何PU不可用(例如,因為它屬於另一條帶或區塊)或者是圖框內編碼時,才考慮位置B2 。在添加位置A1 處的候選之後,對剩餘候選的添加進行冗餘校驗,其確保具有相同運動資訊的候選被排除在清單之外,使得編碼效率提高。為了降低計算複雜度,在所提到的冗餘校驗中並未考慮所有可能的候選對。相反,僅考慮圖3中用箭頭連接的對,並且僅在用於冗餘校驗的對應候選具有不一樣的運動資訊時,才將候選添加到列表。重複運動資訊的另一來源是與不同於2N×2N的分區相關聯的“第二 PU ”。作為示例,圖4A和4B描繪了分別針對N×2N和2N×N的情況的第二PU。當當前PU被分區為N×2N時,位置A1 處的候選不被考慮用於列表建構。在一些實施例中,通過添加該候選可能導致具有相同運動資訊的兩個預測單元,這對於在編碼單元中僅具有一個PU是多餘的。類似地,當當前PU被分區為2N×N時,不考慮位置B1
1.1.1.3建構時間Merge候選
在該步驟中,只有一個候選被添加到列表中。具體地,在該時間Merge候選的推導中,基於共同定位的PU來推導縮放的運動向量,該共同定位的PU屬於給定參考圖片清單內與當前圖片具有最小POC差的圖片。在條帶報頭中明確地用信令通知要用於推導共同定位的PU的參考圖片清單。
圖5示出了針對時間Merge候選(如虛線)的縮放運動向量的推導的示例,其是使用POC距離tb和td從共同定位的PU的運動向量縮放的,其中tb被定義為當前圖片的參考圖片與當前圖片之間的POC差,td被定義為是共同定位的圖片的參考圖片與共同定位的圖片之間的POC差。時間Merge候選的參考圖片索引被設置為等於零。對於B條帶,獲得兩個運動向量,一個用於參考圖片清單0,另一用於參考圖片清單1,並且結合該兩個運動向量以獲得雙向預測Merge候選。
在屬於參考圖框的共同定位的PU(Y)中,在候選C0 和C1 之間選擇時間候選的位置,如圖6所示。如果位置C0 處的PU不可用、是圖框內編碼的、或者在當前CTU之外,則使用位置C1 。否則,位置C0 用於時間Merge候選的推導。
1.1.4 建構Merge候選的額外類型
除了空-時Merge候選之外,還存在兩種額外類型的Merge候選:組合的雙向預測Merge候選和零Merge候選。通過利用空-時Merge候選來生成組合的雙向預測Merge候選。組合的雙向預測Merge候選僅用於B條帶。通過將原始候選的第一參考圖片清單運動參數與另一候選的第二參考圖片清單運動參數組合來生成組合的雙向預測候選。如果這兩個元組提供不同的運動假設,它們將形成一個新的雙向預測候選。
圖7示出了該過程的示例,其中原始列表中的兩個候選(左側的710)中具有mvL0和refIdxL0或mvL1和refIdxL1,其被用於創建添加到最終列表(右側)的組合的雙向預測Merge候選的情況。
插入零運動候選以填充Merge候選列表中的剩餘條目,從而達到MaxNumMergeCand容量。這些候選具有零空間位移和參考圖片索引,該參考圖片索引從零開始並且每當新的零運動候選被添加到列表時增加。這些候選使用的參考圖框的數量是1和2,分別用於單向和雙向預測。在一些實施例中,不對這些候選執行冗餘校驗。
1.1.5用於並行處理的運動估計區域的示例
為了加速編碼處理,可以並存執行運動估計,從而同時推導給定區域內的所有預測單元的運動向量。從空間鄰域推導Merge候選可能干擾並行處理,因為一個預測單元直到其相關聯的運動估計完成時才能從相鄰PU推導運動參數。為了減輕編碼效率和處理等待時間之間的折衷,可以定義運動估計區域(Motion Estimation Region,MER),MER的尺寸在圖片參數集(PPS)中使用“log2_parallel_merge_level_minus2”語法元素信令通知。當定義MER時,落入同一區域的Merge候選被標記為不可用,因此在列表建構中不予考慮。
1.2    高級運動向量預測(AMVP)的實施例
AMVP利用運動向量與相鄰PU的時空相關性,其用於運動參數的顯式傳輸。其通過首先校驗在時間上相鄰的PU位置的上方,左側的可用性,移除冗餘候選並添加零向量以使候選列表為恒定長度來建構運動向量候選列表。然後,編碼器可以從候選清單中選擇最佳預測器,並發送指示所選候選的對應索引。與Merge索引信令類似,使用截斷的一元來編碼最佳運動向量候選的索引。在這種情況下要編碼的最大值是2(參見圖8)。在以下部分中,提供了關於運動向量預測候選的推導過程的細節。
1.2.1建構運動向量預測候選的示例
圖8總結了運動向量預測候選的推導過程,並且可以針對每個參考圖片清單以索引作為輸入來實現。
在運動向量預測中,考慮兩種類型的運動向量候選:空間運動向量候選和時間運動向量候選。對於空間運動向量候選推導,最終基於位於先前在圖2中所示的五個不同位置的每個PU的運動向量推導兩個運動向量候選。
對於時間運動向量候選推導,從兩個候選中選擇一個運動向量候選,其是基於兩個不同的共同定位的位置推導的。在產生時空候選的第一列表之後,移除列表中的重複的運動向量候選。如果潛在候選的數量大於2,則從列表中移除相關聯的參考圖片清單內的其參考圖片索引大於1的運動向量候選。如果空-時運動向量候選的數量小於2,則將額外的零運動向量候選添加到列表中。
1.2.2建構空間運動向量候選
在空間運動向量候選的推導中,在五個潛在候選當中考慮最多兩個候選,其從位於如先前在圖2中所示的位置的PU中推導,那些位置與運動Merge的位置相同。將當前PU的左側的推導順序定義為A0 、A1 ,以及縮放的A0 、縮放的A1 。將當前PU的上側的推導順序定義為B0 、B1 、B2 ,縮放的B0 、縮放的B1 、縮放的B2 。因此,對於每一側,存在可以用作運動向量候選的四種情況,其中兩種情況不需要使用空間縮放,兩種情況使用空間縮放。四種不同的情況總結如下:
沒有空間縮放
- (1)相同的參考圖片清單,以及相同的參考圖片索引(相同的POC)
- (2)不同的參考圖片清單,但相同的參考圖片(相同的POC)
空間縮放
- (3)相同的參考圖片清單,但不同的參考圖片(不同的POC)
- (4)不同的參考圖片清單,以及不同的參考圖片(不同的POC)
首先校驗無空間縮放的情況,然後校驗空間縮放。當POC在相鄰PU的參考圖片與當前PU的參考圖片之間不同而不管參考圖片清單時,考慮空間縮放。如果左候選的所有PU都不可用或者是圖框內編碼的,則允許對上述運動向量進行縮放以幫助左和上MV候選的並行推導。否則,不允許對上述運動向量進行空間縮放。
如圖9的示例所示,對於空間縮放的情況,以與時間縮放類似的方式縮放相鄰PU的運動向量。一個區別是將參考圖片清單和當前PU的索引作為輸入給出;實際縮放過程與時間縮放過程相同。
1.2.3建構時間運動向量候選
除了參考圖片索引推導之外,用於推導時間Merge候選的所有過程與用於推導空間運動向量候選的過程相同(如圖6的示例所示)。在一些實施例中,將參考圖片索引用信令通知給解碼器。
2. 聯合探索模型(JEM)中的圖框間預測方法示例
在一些實施例中,使用稱為聯合探索模型(JEM)的參考軟體來探索未來的視訊編碼技術。在JEM中,在若干編碼工具中採用基於子塊的預測,諸如仿射預測、可選時間運動向量預測(ATMVP)、空-時運動向量預測(STMVP)、雙向光流(BIO)、畫面播放速率上轉換(FRUC、局部自我調整運動向量解析度(LAMVR)、重疊塊運動補償(OBMC)、局部照明補償(LIC)和解碼器側運動向量細化(DMVR)。
2.1基於子CU的運動向量預測的示例
在具有四叉樹加二叉樹(QTBT)的JEM中,每個CU可以針對每個預測方向具有至多一組運動參數。在一些實施例中,通過將大CU劃分成子CU並且推導大CU的所有子CU的運動資訊,在編碼器中考慮兩個子CU級運動向量預測方法。可選時間運動向量預測(Alternative Temporal Motion Vector Prediction,ATMVP)方法允許每個CU從比並置參考圖片中的當前CU小的多個塊中提取多組運動資訊。在空-時運動向量預測(Spatial-Temporal Motion Vector Prediction,STMVP)方法中,通過使用時間運動向量預測值和空間相鄰運動向量來遞迴地推導子CU的運動向量。在一些實施例中,為了保留用於子CU運動預測的更準確的運動場,可能禁用參考圖框的運動壓縮。
2.1.1可選時間運動向量預測(ATMVP)的示例
在ATMVP方法中,通過從小於當前CU的塊中提取多組運動資訊(包括運動向量和參考索引)來修改時間運動向量預測(TMVP)方法。
圖10示出了CU 1000的ATMVP運動預測過程的示例。該ATMVP 1000方法以兩個步驟預測CU 1000內的子CU 1001的運動向量。第一步是利用時間向量識別參考圖片1050中的對應塊1051。參考圖片1050也被稱為運動源圖片。第二步是將當前CU 1000劃分成子CU 1001,並從對應於每個子CU的塊中獲得運動向量以及每個子CU的參考索引。
在第一步驟中,由當前CU 1000的空間相鄰塊的運動資訊確定參考圖片1050和對應塊。為了避免相鄰塊的重複掃描過程,使用當前CU 1000的Merge候選列表中的第一Merge候選。第一可用運動向量及其相關聯的參考索引被設置為時間向量和運動源圖片的索引。這樣,與TMVP相比,可以更準確地識別對應塊,其中對應塊(有時稱為並置塊)總是相對於當前CU位於右下或中心位置。
在第二步驟中,通過向當前CU的座標添加時間向量,通過運動源圖片1050中的時間向量來識別子CU 1051的對應塊。對於每個子CU,其對應塊(例如,覆蓋中心樣本的最小運動網格)的運動資訊用於推導子CU的運動資訊。在識別出對應的N×N塊的運動資訊之後,以與HEVC的TMVP相同的方式將其轉換為當前子CU的參考索引和運動向量,其中運動縮放和其他過程也適用。例如,解碼器校驗是否滿足低延遲條件(例如,當前圖片的所有參考圖片的POC小於當前圖片的POC)並且可能使用運動向量MVx (例如,對應於參考圖片清單X的運動向量)來預測每個子CU的運動向量MVy (例如,其中X等於0或1並且Y等於1-X)。
2.1.2空-時運動向量預測(STMVP)的示例
在STMVP方法中,按照光柵掃描順序遞迴地推導子CU的運動向量。圖11示出了具有四個子塊和相鄰塊的一個CU的示例。考慮包含四個4×4子CU A(1101),B(1102),C(1103)和D(1104)的8×8 CU1100。當前圖框中的相鄰4×4塊被標記為a(1111),b(1112),c(1113)和d(1114)。
子CU A的運動推導通過識別其兩個空間鄰居開始。第一鄰居是子CU A 1101上方的N×N塊(塊c 1103)。如果該塊c(1113)不可用或者是圖框內編碼,則(從塊c 1113開始,從左到右)校驗子CU A(1101)上方的其他N×N個塊。第二鄰居是子CU A 1101左側的塊(塊b 1112)。如果塊b(1112)不可用或者是圖框內編碼,則(從塊b 1112開始,從上到下)校驗子CU A 1101左側的其他塊。從每個清單的相鄰塊獲得的運動資訊被縮放到給定清單的第一參考圖框。接下來,通過遵循與HEVC中指定的TMVP推導相同的過程來推導子塊A 1101的時間運動向量預測(Temporal Motion Vector Predictor,TMVP)。提取D 1104處的並置塊的運動資訊並對應地縮放。最後,在檢索和縮放運動資訊之後,對於每個參考列表,所有可用的運動向量被分別平均。平均運動向量被指定為當前子CU的運動向量。
2.1.3子CU運動預測模式信令的示例
在一些實施例中,子CU模式被啟用為額外的Merge候選,並且不需要額外的語法元素來信令通知該模式。將兩個額外的Merge候選添加到每個CU的Merge候選清單以表示ATMVP模式和STMVP模式。在一些實施例中,如果序列參數集指示啟用了ATMVP和STMVP,則可以最多使用七個Merge候選。額外的Merge候選的編碼邏輯與HM中的Merge候選相同,這意味著,對於P或B條帶中的每個CU,兩個額外的Merge候選可能需要另外兩個RD校驗。在一些實施例中,例如,在JEM中,所有Merge索引的二進位元(bin)都由CABAC(基於上下文的自我調整二進位算術編碼)進行上下文編碼。在其他實施例中,例如,在HEVC中,僅第一個二進位元是上下文編碼的,而剩餘的二進位元是上下文旁路編碼的。
2.2自我調整運動向量差分解析度
在一些實施例中,當條帶報頭中的use_integer_mv_flag等於0時,以四分之一亮度樣本為單位信令通知(PU的運動向量和預測運動向量之間的)運動向量差(Motion Vector Difference,MVD)。在JEM中,引入了局部自我調整運動向量解析度(Locally Adaptive Motion Vector Resolution,LAMVR)。在JEM中,MVD可以以四分之一亮度樣本、整數亮度樣本或四亮度樣本為單位進行編碼。在編碼單元(CU)級控制MVD解析度,並且對於具有至少一個非零MVD分量的每個CU有條件地信令通知MVD解析度標誌。
對於具有至少一個非零MVD分量的CU,信令通知第一標記以指示在CU中是否使用四分之一亮度樣本MV精度。當第一標誌(等於1)指示不使用四分之一亮度樣本MV精度時,信令通知另一標誌以指示是使用整數亮度樣本MV精度還是四亮度樣本MV精度。
當CU的第一MVD解析度標誌為零或未針對CU編碼(意味著CU中的所有MVD均為零)時,對於CU使用四分之一亮度樣本MV解析度。當CU使用整數亮度樣本MV精度或四亮度樣本MV精度時,CU的AMVP候選列表中的MVP被取整到對應的精度。
在編碼器中,CU級RD校驗用於確定將哪個MVD解析度用於CU。即,對於每個MVD解析度,執行三次CU級RD校驗。為了加快編碼器速度,在JEM中應用以下編碼方案。
在具有正常四分之一亮度樣本MVD解析度的CU的RD校驗期間,存儲當前CU的運動資訊(整數亮度樣本準確度)。存儲的運動資訊(在取整之後)被用作在RD校驗期間針對具有整數亮度樣本和4亮度樣本MVD解析度的相同CU的進一步小範圍運動向量細化的起點,使得耗時的運動估計過程不重複三次。
有條件地調用具有4亮度樣本MVD解析度的CU的RD校驗。對於CU,當RD成本整數亮度樣本MVD解析度遠大於四分之一亮度樣本MVD解析度時,跳過針對CU的4亮度樣本MVD解析度的RD校驗。
2.3更高的運動向量存儲準確度的示例
在HEVC中,運動向量準確度是四分之一圖元(4:2:0視訊的四分之一亮度樣本和八分之一色度樣本)。在JEM中,內部運動向量存儲和Merge候選的準確度增加到1/16圖元。更高的運動向量準確度(1/16圖元)用於以跳過/Merge模式編碼的CU的運動補償圖框間預測。對於使用正常AMVP模式編碼的CU,使用整數圖元或四分之一圖元運動。
具有與HEVC運動補償插值濾波器相同的濾波器長度和歸一化因數的SHVC上採樣插值濾波器被用作額外的分數圖元位置的運動補償插值濾波器。在JEM中色度分量運動向量準確度是1/32樣本,通過使用兩個相鄰的1/16圖元分數位置的濾波器的平均來推導1/32圖元分數位置的額外的插值濾波器。
2.4重疊塊運動補償OBMC(Overlapped Block Motion Compensation)的示例
在JEM中,可以使用CU級的語法來打開和關閉OBMC。當在JEM中使用OBMC時,除了CU的右邊界和下邊界之外,對所有運動補償(Motion Compensation,MC)塊邊界執行OBMC。此外,它還應用於亮度和色度分量。在JEM中,MC塊對應於編碼塊。當用子CU模式(包括子CU Merge、仿射和FRUC模式)編碼CU時,CU的每個子塊是MC塊。為了以統一的方式處理CU邊界,針對所有MC塊邊界以子塊級執行OBMC,其中子塊尺寸被設置為等於4×4,如圖12A和12B所示。
圖12A示出了CU / PU邊界處的子塊,陰影子塊是OBMC應用的位置。類似地,圖12B示出了ATMVP模式中的子塊。
當OBMC應用於當前子塊時,除了當前運動向量之外,四個連接的相鄰子塊的運動向量(如果可用且與當前運動向量不同)也用於推導當前子塊的預測塊。組合基於多個運動向量的這些多個預測塊以生成當前子塊的最終預測信號。
將基於相鄰子塊的運動向量的預測塊表示為PN ,其中N指示相鄰的上、下、左和右子塊 的索引,並且將基於當前子塊的運動向量的預測塊表示為PC 。當PN 是基於包含與當前子塊相同的運動資訊的相鄰子塊的運動資訊時,不從PN 執行OBMC。否則,將每個PN 樣本添加到PC 中的相同樣本中,即將PN 的四行/列添加到PC 。將加權因數{1 / 4, 1 / 8, 1 / 16, 1 / 32}用於PN ,並且將加權因數{3 / 4, 7 / 8, 15 / 16, 31 / 32}用於PC。例外是小MC塊(即,當編碼塊的高度或寬度等於4或用子CU模式編碼CU時),對其僅將PN 的兩行/列添加到PC 。在這種情況下,將加權因數{1 / 4, 1 / 8}用於PN ,並且將加權因數{3 / 4, 7 / 8}用於PC 。對於基於垂直(水準)相鄰子塊的運動向量生成的PN ,將PN 的相同行(列)中的樣本添加到具有相同加權因數的PC
在JEM中,對於尺寸小於或等於256個亮度樣本的CU,信令通知CU級標誌以指示是否對當前CU應用OBMC。對於尺寸超過256個亮度樣本或未使用AMVP模式進行編碼的CU,預設應用OBMC。在編碼器處,當將OBMC應用于CU時,在運動估計階段期間考慮其影響。由OBMC使用上側相鄰塊和左側相鄰塊的運動資訊形成的預測信號用於補償當前CU的原始信號的上邊界和左邊界,然後應用正常運動估計處理。
2.5局部照明補償(LIC)的示例
照明補償LIC是基於用於光照變化的線性模型,使用縮放因數a 和偏移b 。並且針對每個圖框間模式編碼的編碼單元(CU)自我調整地啟用或禁用它。
當LIC應用于CU時,採用最小平方誤差方法來通過使用當前CU的相鄰樣本及其對應的參考樣本來推導參數ab 。圖13示出了用於推導IC演算法的參數的相鄰樣本的示例。更具體地,如圖13所示,使用CU的子採樣(2:1子採樣)的相鄰樣本和參考圖片中的(由當前CU或子CU的運動資訊識別的)對應樣本。推導IC參數並將其分別應用於每個預測方向。
當用Merge模式編碼CU時,以類似於Merge模式中的運動資訊複製的方式從相鄰塊複製LIC標誌;否則,向CU信令通知LIC標誌以指示是否應用LIC。
當針對圖片啟用LIC時,需要額外的CU級RD校驗以確定是否將LIC應用於CU。當為CU啟用LIC時,分別針對整數圖元運動搜索和分數圖元運動搜索,使用去均值絕對差之和(Mean-Removed Sum Of Absolute Difference,MR-SAD)和去均值絕對哈達瑪變換差之和(Mean-Removed Sum Of Absolute Hadamard-Transformed Difference,MR-SATD),而不是SAD和SATD。
為了降低編碼複雜度,在JEM中應用以下編碼方案。
當當前圖片與其參考圖片之間沒有明顯的光照變化時,對於整個圖片禁用LIC。為了識別這種情況,在編碼器處計算當前圖片和當前圖片的每個參考圖片的長條圖。如果當前圖片與當前圖片的每個參考圖片之間的長條圖差小於給定閾值,則對當前圖片禁用LIC;否則,對當前圖片啟用LIC。
2.6仿射運動補償預測的示例
在HEVC中,僅將平移運動模型應用於運動補償預測(Motion Compensation Prediction,MCP)。然而,相機和物件可能存在多種運動,例如放大/縮小、旋轉、透視運動和/或其他不規則運動。另一方面,在JEM中,應用簡化的仿射變換運動補償預測。圖14示出了塊1400的仿射運動場由兩個控制點運動向量V0 和V1 描述的示例。塊1400的運動向量場(Motion Vector Field,MVF)由以下等式描述:
Figure 02_image003
(1)
如圖14所示,(v0x ,v0y )是左上角控制點的運動向量,(v1x ,v1y )是右上角控制點的運動向量。
為了進一步簡化運動補償預測,可以應用基於子塊的仿射變換預測。子塊尺寸
Figure 02_image005
如以下推導:
Figure 02_image007
(2)
這裡,MvPre 是運動向量分數準確度(例如,在JEM中是1/16),(v2x ,v2y )是根據等式1計算的左下控制點的運動向量。如果需要,可以向下調整M和N,以使其分別為w和h的除數。
圖15示出了塊1500的每個子塊的仿射MVF的示例。為了推導每個M×N子塊的運動向量,根據等式1計算每個子塊的中心樣本的運動向量,並取整到運動向量分數準確度(例如,JEM中的1/16)。然後,應用運動補償插值濾波器,以利用所推導的運動向量生成每個子塊的預測。
在MCP之後,對每個子塊的高準確度運動向量進行取整,並將其以與正常運動向量相同的準確度保存。
在JEM中,存在兩種仿射運動模式:AF_INTER模式和AF_MERGE模式。對於寬度和高度都大於8的CU,可以應用AF_INTER模式。在位元流中用信令通知CU級的仿射標誌以指示是否使用AF_INTER模式。在AF_INTER模式中,使用相鄰塊構造具有運動向量對
Figure 02_image009
的候選列表。
圖16示出了AF_INTER模式中的塊1600的運動向量預測(MVP)的示例。如圖16所示,從子塊A、B或C的運動向量中選擇
Figure 02_image011
。可以根據參考清單來縮放來自相鄰塊的運動向量。還可以根據用於相鄰塊的參考的圖片順序計數(POC)、用於當前CU的參考的POC和當前CU的POC之間的關係來縮放來自相鄰塊的運動向量。從相鄰子塊D和E中選擇
Figure 02_image013
的方法是類似的。如果候選列表的數量小於2,則可以由通過複製每個AMVP候選而組成的運動向量對來填充列表。當候選清單大於2時,可以首先根據相鄰運動向量(例如,基於候選對中的兩個運動向量的相似性)對候選進行排序。在一些實施例中,保留前兩個候選。在一些實施例中,用速率失真(RD)成本校驗來確定將哪個運動向量對候選選擇為當前CU的控制點運動向量預測(Control Point Motion Vector Prediction,CPMVP)。在位元流中可以用信令通知指示候選列表中的CPMVP的位置的索引。在確定當前仿射CU的CPMVP之後,應用仿射運動估計並找到控制點運動向量(Control Point Motion Vector,CPMV)。然後在位元流中用信令通知CPMV和CPMVP的差。
當在AF_MERGE模式中應用CU時,它從有效的相鄰重建塊獲得用仿射模式編碼的第一個塊。圖17A示出了當前CU 1700的候選塊的選擇順序的示例。如圖17A所示,選擇順序可以是從當前CU 1700的左(1701)、上(1702)、右上(1703)、左下(1704)到左上(1705)。圖17B示出了AF_MERGE模式中的當前CU 1700的候選塊的另一示例。如果相鄰左下塊1701以仿射模式進行編碼,如圖17B所示,推導包含塊A的CU的左上角、右上角和左下角的運動向量
Figure 02_image015
Figure 02_image017
Figure 02_image019
。並且根據
Figure 02_image015
Figure 02_image017
Figure 02_image019
計算當前CU 1700左上角的運動向量
Figure 02_image011
。可以相應地計算當前CU的右上方的運動向量v1。
在根據等式(1)中的仿射運動模型計算當前CU
Figure 02_image021
Figure 02_image023
之後,可以生成當前CU的MVF。為了識別當前CU是否以AF_MERGE模式進行編碼,當至少有一個相鄰塊以仿射模式進行編碼時,可以在位元流中用信令通知仿射標誌。
2.7模式匹配的運動向量推導(PMMVD)的示例
PMMVD模式是基於畫面播放速率上轉換(Frame-Rate Up Conversion ,FRUC)方法的特殊Merge模式。利用該模式,在解碼器側推導塊的運動資訊,而不是發信令通知塊的運動資訊。
當CU的Merge標誌為真時,可以向CU信令通知FRUC標誌。當FRUC標誌為假時,可以信令通知Merge索引並使用常規Merge模式。當FRUC標誌為真時,可以信令通知額外的FRUC模式標誌以指示將使用哪種方法(例如,雙邊匹配或範本匹配)來推導該塊的運動資訊。
在編碼器側,關於是否對CU使用FRUC Merge模式的決定是基於對正常Merge候選所做的RD成本選擇。例如,通過使用RD成本選擇來校驗CU的多種匹配模式(例如,雙邊匹配和範本匹配)。引起最小成本的匹配模式與其他CU模式進一步比較。如果FRUC匹配模式是最有效的模式,則對於CU將FRUC標誌設置為真,並且使用相關的匹配模式。
典型地,FRUC Merge模式中的運動推導過程具有兩個步驟:首先執行CU級運動搜索,然後進行子CU級運動細化。在CU級,基於雙邊匹配或範本匹配,推導整個CU的原始運動向量。首先,生成MV候選列表,並且選擇引起最小匹配成本的候選作為進一步CU級細化的起點。然後,在起點附近執行基於的雙邊匹配或範本匹配的局部搜索。將最小匹配成本的MV結果作為整個CU的MV。隨後,以推導的CU運動向量作為起點,進一步在子CU級細化運動資訊。
例如,對於
Figure 02_image025
CU運動資訊推導執行以下推導過程。在第一階段,推導整個
Figure 02_image025
CU的MV。在第二階段,該CU進一步被劃分成
Figure 02_image027
個子CU。M的值的計算方法如(3)所示,
Figure 02_image029
是預定義的劃分深度,在JEM中默認設置為3。然後推導每個子CU的MV。
Figure 02_image031
(3)
圖18示出了在畫面播放速率上轉換(FRUC)方法中使用的雙邊匹配的示例。,通過在兩個不同參考圖片(1810,1811)中沿當前CU(1800)的運動軌跡找到兩個塊之間的最接近匹配,使用雙邊匹配來推導當前CU的運動資訊。在連續運動軌跡的假設下,指向兩個參考塊的運動向量MV0(1801)和MV1(1802)與當前圖片和兩個參考圖片之間的時間距離(例如,TD0(1803)和TD1(1804))成比例。在一些實施例中,當當前圖片1800在時間上在兩個參考圖片(1810,1811)之間並且從當前圖片到兩個參考圖片的時間距離相同時,雙邊匹配成為基於鏡像的雙向MV。
圖19示出了在畫面播放速率上轉換(FRUC)方法中使用的範本匹配的示例。範本匹配用於通過找到當前圖片1910中的範本(當前CU的頂部和/或左側相鄰塊)與參考圖片中的塊(例如,與範本的尺寸相同)之間的最接近匹配來推導當前CU 1900的運動資訊。除了上述FRUC Merge模式之外,範本匹配也可以應用於AMVP模式。在JEM和HEVC兩者中所做的那樣,AMVP有兩個候選。通過範本匹配方法,推導新的候選。如果由範本匹配新推導的候選與第一現有AMVP候選不同,則將其插入AMVP候選列表的最開始處,然後將列表尺寸設置為2(例如,通過移除第二現有AMVP候選)。當應用于AMVP模式時,僅應用CU級搜索。
在CU級處設置的MV候選可以包括以下:(1)如果當前CU處於AMVP模式,則為原始AMVP候選,(2)所有Merge候選,(3)插值MV場中的幾個MV(稍後描述),以及頂部和左側相鄰運動向量。
當使用雙邊匹配時,可以將Merge候選的每個有效MV用作輸入,以生成假設雙邊匹配的情況下的MV對。例如,在參考列表A中,Merge候選的一個有效MV是(MVa,refa)。然後,在其他參考列表B中找到其配對的雙邊MV的參考圖片refb,使得refa和refb在時間上位於當前圖片的不同側。如果這樣的refb在參考列表B中不可用,則refb被確定為與refa不同的參考,並且其到當前圖片的時間距離是清單B中的最小值。在確定refb之後,通過基於當前圖片refa和refb之間的時間距離來縮放MVa來推導MVb。
在一些實施例中,來自插值MV場的四個MV也可以被添加到CU級候選列表。更具體地,添加當前CU的位置(0,0)、(W / 2,0)、(0,H / 2)和(W / 2,H / 2)處的插值MV。當FRUC應用于AMVP模式時,原始AMVP候選也被添加到CU級MV候選集。在一些實施例中,在CU級,對於AMVP CU,將15個MV添加到候選列表,對於MergeCU,將13個MV添加到候選列表。
在子CU級處設置的MV候選包括:(1)從CU級搜索確定的MV,(2)頂部、左側、左上角和右上角的相鄰MV,(3)來自參考圖片的並置MV的縮放版本,(4)一個或多個4個ATMVP候選(最多4個),(5)一個或多個STMVP候選(例如,最多4個)。來自參考圖片的縮放MV如下推導。遍歷兩個清單中的參考圖片。參考圖片中的子CU的並置位置處的MV被縮放到起始CU級MV的參考。ATMVP和STMVP候選可以僅限於前四個。在子CU級,一個或多個MV(例如,最多17個)被添加到候選列表中。
插值 MV 場的生成。 在對圖框進行編碼之前,基於單邊ME為整個圖片生成插值運動場。然後,運動場可以稍後用作CU級或子CU級MV候選。
在一些實施例中,兩個參考清單中的每個參考圖片的運動場以4×4塊級遍歷。圖20示出了FRUC方法中的單邊運動估計(ME)2000的示例。對於每個4×4塊,如果與塊相關聯的運動通過當前圖片中的4×4塊並且塊未被分配任何插值運動,則參考塊的運動根據時間距離TD0和TD1(以與HEVC中的TMVP的MV縮放的方式相同的方式)被縮放到當前圖片,並且將縮放的運動分配給當前圖框中的塊。如果沒有縮放的MV被分配給4×4塊,則在插值運動場中將塊的運動標記為不可用。
插值和 匹配成本。 當運動向量指向分數樣本位置時,需要運動補償插值。為了降低複雜度,替代常規8抽頭HEVC插值,可以將雙線性插值用於雙邊匹配和範本匹配。
匹配成本的計算在不同步驟處有點不同。當從CU級的候選集中選擇候選時,匹配成本可以是雙邊匹配或範本匹配的絕對和差(Absolute Sum Difference, SAD)。在確定起始MV之後,子CU級搜索的雙邊匹配的匹配成本
Figure 02_image033
計算如下:
Figure 02_image035
(4)
這裡,
Figure 02_image037
是加權因數。在一些實施例中,
Figure 02_image037
可以設置為4。
Figure 02_image039
Figure 02_image041
分別指示當前MV和起始MV。SAD仍可以用作子CU級搜索的範本匹配的匹配成本。
在FRUC模式中,僅通過使用亮度樣本來推導MV。推導的運動將用於MC圖框間預測的亮度和色度兩者。在確定MV之後,使用用於亮度的8抽頭插值濾波器和用於色度的4抽頭插值濾波器來執行最終MC。
MV細化是基於模式的MV搜索,以雙邊匹配成本或範本匹配成本為標準。在JEM中,支援兩種搜索模式—無限制中心偏置菱形搜索(Unrestricted Center-Biased Diamond Search,UCBDS)和自我調整交叉搜索,分別在CU級和子CU級進行MV細化。對於CU和子CU級MV細化兩者,以四分之一亮度樣本MV精度直接搜索MV,並且接著是八分之一亮度樣本MV細化。將用於CU和子CU步驟的MV細化的搜索範圍設置為等於8個亮度樣本。
在雙邊匹配Merge模式中,應用雙向預測,因為CU的運動資訊是基於在兩個不同的參考圖片中沿當前CU的運動軌跡的兩個塊之間的最近匹配推導的。在範本匹配Merge模式中,編碼器可以從清單0中的單向預測、列表1中的單向預測或雙向預測當中為CU選擇。可以選擇基於如下的範本匹配成本:
如果costBi >=factor* min cost0,cost1
則使用雙向預測;
否則,如果cost0>=cost1
則使用列表0中的單向預測;
否則,
使用列表1中的單向預測;
其中cost0是清單0範本匹配的SAD,cost1是清單1範本匹配的SAD,costBi是雙向預測範本匹配的SAD。例如,當factor 的值等於1.25時,這意味著選擇過程偏向於雙向預測。圖框間預測方向選擇可以應用於CU級範本匹配過程。
2.8雙向光流(BIO)的示例
在BIO中,首先執行運動補償以生成當前塊的第一預測(在每個預測方向上)。第一預測用於推導塊內每個子塊/圖元的空間梯度、時間梯度和光流,然後使用其生成第二預測,例如,子塊/圖元的最終預測。細節描述如下。
雙向光流(Bi-directional Optical flow,BIO)方法是樣本方式的運動細化,其在用於雙向預測的逐塊運動補償之上執行。在一些實施例中,樣本級運動細化不使用信令。
Figure 02_image043
為塊運動補償之後參考k (k =0, 1)的亮度值,並且
Figure 02_image045
,
Figure 02_image047
分別為
Figure 02_image043
梯度的水準分量和垂直分量。假設光流是有效的,則運動向量場
Figure 02_image049
由下式給出:
Figure 02_image051
(5)
將此光流等式與每個樣本運動軌跡的埃爾米特插值相結合,得到唯一的三階多項式,該三階多項式最後匹配函數值
Figure 02_image043
和其導數
Figure 02_image045
Figure 02_image047
兩者。該三階多項式在t=0時的值是BIO預測:
Figure 02_image053
(6)
圖21示出了雙向光流(BIO)方法中的示例光流軌跡。這裡,
Figure 02_image055
Figure 02_image057
表示到參考圖框的距離,如圖21所示。基於Ref0和Ref1的POC計算距離
Figure 02_image055
Figure 02_image057
Figure 02_image055
=POC(當前)-POC(Ref0),
Figure 02_image057
= POC(Ref1) − POC(當前)。如果兩個預測都來自相同的時間方向(兩者都來自過去或都來自未來),則sign是不同的即,
Figure 02_image061
。在這種情況下,僅當預測不是來自相同的時刻(即,
Figure 02_image063
)時才應用BIO,兩個參考區域都具有非零運動(
Figure 02_image065
)並且塊運動向量與時間距離成比例(
Figure 02_image067
)。
通過最小化點A和B中的值之間的差
Figure 02_image069
來確定運動向量場
Figure 02_image049
。圖9示出了運動軌跡和參考圖框平面的交叉的示例。模型僅使用
Figure 02_image069
的局部泰勒展開的第一線性項:
Figure 02_image072
(7)
上述等式中的所有值都取決於樣本位置,表示為
Figure 02_image074
。假設運動在局部周圍區域是一致的,在以當前預測點為中心的(2M+1)
Figure 02_image075
(2M+1)的方形窗口
Figure 02_image077
內最小化
Figure 02_image078
,其中M等於2:
Figure 02_image079
(8)
對於該優化問題,JEM使用簡化方法,首先在垂直方向上進行最小化,然後在水準方向上進行最小化。由此產生以下:
Figure 02_image081
(9)
Figure 02_image083
(10)
其中,
Figure 02_image085
(11)
為了避免除以零或非常小的值,在等式9和10中可以引入正則化參數rm
Figure 02_image087
(12)
Figure 02_image089
(13)
這裡d 是視訊樣本的位元深度。
為了使BIO的記憶體訪問與常規雙向預測運動補償保持相同,僅針對當前塊內的位置計算所有預測和梯度值
Figure 02_image091
。圖22A示出了塊2200外部的訪問位置的示例。如圖22A所示,在等式(9)中,以在預測塊的邊界上的當前預測點為中心的(2M+1)
Figure 02_image075
(2M+1)方形窗口
Figure 02_image093
需要訪問塊外部的位置。在JEM中,將塊外部的
Figure 02_image091
的值設置為等於塊內最近的可用值。例如,這可以實施為填充區域2201,如圖22B所示。
利用BIO,可以針對每個樣本細化運動場。為了降低計算複雜度,在JEM中使用基於塊的BIO設計。可以基於4
Figure 02_image075
4的塊計算運動細化。在基於塊的BIO中,可以聚合4
Figure 02_image075
4的塊中的所有樣本的等式9中的sn 的值,然後將sn 的聚合值用於推導4
Figure 02_image075
4塊的BIO運動向量偏移。更具體地,以下公式可以用於基於塊的BIO推導:
Figure 02_image095
(14)
這裡bk 表示屬於預測塊的第k個4
Figure 02_image075
4塊的樣本集。將等式9和10中的sn 替換為( (sn,bk ) >> 4 ),以推導相關聯的運動向量偏移。
在一些情景下,由於噪音或不規則運動,BIO的MV團(MV regiment)可能不可靠。因此,在BIO中,MV團的尺寸被閾值裁剪。基於當前圖片的參考圖片是否都來自一個方向來確定閾值。例如,如果當前圖片的所有參考圖片都來自一個方向,則將閾值的值設置為
Figure 02_image097
;否則,將其設置為
Figure 02_image099
可以利用使用與HEVC運動補償過程(例如,2D可分離有限脈衝響應(FIR))一致的操作的運動補償插值來同時計算BIO的梯度。在一些實施例中,根據塊運動向量的分數部分,該2D可分離FIR的輸入是與運動補償過程和分數位置(fracX fracY )相同的參考圖框樣本。對於水準梯度
Figure 02_image101
,首先使用與具有去縮放偏移d -8的分數位置fracY 相對應的BIOfilterS 垂直插值信號。然後在水準方向上應用梯度濾波器BIOfilterG ,該BIOfilterG 與具有去縮放偏移18-d 的分數位置fracX 相對應。對於垂直梯度
Figure 02_image103
,首先使用與具有去縮放偏移d -8的分數位置fracY 相對應的BIOfilterG 垂直應用梯度濾波器。然後在水準方向上使用BIOfilterS 執行信號位移,該BIOfilterS 與具有去縮放偏移18-d 的分數位置fracX 相對應。用於梯度計算的插值濾波器BIOfilterG 和用於信號位移的插值濾波器BIOfilterS 的長度可以較短(例如,6抽頭),以保持合理的複雜度。表1示出了可以用於BIO中塊運動向量的不同分數位置的梯度計算的濾波器的示例。表2示出了可以用於BIO中預測信號生成的插值濾波器的示例。
表1:用於BIO中梯度計算的示例性濾波器
Figure 108127809-A0304-0001
表2:用於BIO中預測信號生成的示例性插值濾波器
Figure 108127809-A0304-0002
在JEM中,當兩個預測來自不同的參考圖片時,BIO可以應用於所有雙預測塊。當為CU啟用局部照明補償(LIC)時,可以禁用BIO。
在一些實施例中,OBMC在正常MC過程之後應用於塊。為了降低計算複雜性,在OBMC過程中可以不應用BIO。這意味著BIO僅在使用其自身的MV時才應用於塊的MC過程,並且在OBMC過程中使用相鄰塊的MV時不應用於MC過程。
2.9解碼器側運動向量細化(DMVR)的示例
在雙向預測操作中,對於一個塊區域的預測,將分別使用list0的運動向量(MV)和list1的MV形成的兩個預測塊進行組合以形成單個預測信號。在解碼器側運動向量細化(Decoder-Side Motion Vector Refinement,DMVR)方法中,通過雙邊範本匹配過程進一步細化雙向預測的兩個運動向量。雙邊範本匹配應用在解碼器中,以在雙邊範本和參考圖片中的重建樣本之間執行基於失真的搜索,以便獲得細化的MV而無需傳輸附加的運動資訊。
在DMVR中,分別從列表0的原始MV0和列表1的MV1,將雙邊範本生成為兩個預測塊的加權組合(即平均),如圖23所示。範本匹配操作包括計算所生成的範本與參考圖片中的(在原始預測塊周圍的)樣本區域之間的成本度量。對於兩個參考圖片中的每個,將產生最小範本成本的MV考慮為該列表的更新MV以替換原始MV。在JEM中,對每個列表搜索九個MV候選。該九個MV候選包括原始MV和8個與原始MV在水準或垂直方向上或兩個方向上具有一個亮度樣本偏移的環繞的MV。最後,將兩個新的MV,即如圖23中所示的MV0'和MV1',用於生成最終的雙向預測結果。將絕對差之和(SAD)用作成本度量。
將DMVR應用於雙向預測的Merge模式,其中一個MV來自過去的參考圖片,另一MV來自未來的參考圖片,而無需傳輸額外的語法元素。在JEM中,當對CU啟用LIC、仿射運動、FRUC或子CU Merge候選時,不應用DMVR。
3 CABAC修改的示例
在JEM中,與HEVC中的設計相比,CABAC包含以下三個主要變化:
用於變換係數的修改的上下文建模;
具有依賴于上下文的更新速度的多假設概率估計;
用於上下文模型的自我調整原始化。
3.1用於變換係數的上下文建模的示例
在HEVC中,使用非重疊係數組(CG)對編碼塊的變換係數進行編碼,並且每個CG包含編碼塊的4×4塊的係數。編碼塊內的CG和CG內的變換係數根據預定義的掃描順序進行編碼。具有至少一個非零變換係數的CG的變換係數級的編碼可以被分成多個掃描通道。在第一通道中,對第一個二進位符號(由bin0表示,也稱為significant_coeff_flag ,其指示係數的尺寸大於0)進行編碼。接下來,可以應用用於上下文編碼第二/第三二進位符號(bin)的兩個掃描通道(分別由bin1和bin2表示,也稱為coeff_abs_greater1_flagcoeff_abs_greater2_flag )。最後,如果需要,再調用多於兩次用於編碼符號資訊的掃描通道以及係數級的剩餘值(也稱為coeff_abs_level_remaining )。只有前三個掃描通道中的二進位符號以常規模式進行編碼,並且這些二進位符號在下面的描述中稱為常規二進位符號。
在JEM中,改變常規二進位符號的上下文建模。當在第i 掃描通道(i 為0、1、2)中對二進位符號i 進行編碼時,上下文索引取決於由局部範本覆蓋的鄰域中的先前編碼係數的第i 個二進位符號的值。具體地,基於相鄰係數的第i 個二進位符號的總和來確定上下文索引。
如圖24所示,局部範本包含多達五個空間相鄰變換係數,其中x表示當前變換係數的位置,xi(i為0到4)指示其五個鄰居。為了捕獲不同頻率處的變換係數的特性,可以將一個編碼塊劃分成多達三個區域,並且無論編碼塊尺寸如何,劃分方法都是固定的。例如,當對亮度變換係數的bin0進行編碼時,如圖24所示,將一個編碼塊劃分成用不同顏色標記的三個區域,並列出分配給每個區域的上下文索引。亮度和色度分量以類似的方式處理,但具有單獨的上下文模型集。此外,亮度分量的bin0(例如,有效標記)的上下文模型選擇還取決於變換尺寸。
3.2多假設概率估計的示例
二進位算術編碼器基於與每個上下文模型相關聯的兩個概率估計P 0P 1 應用“多假設”概率更新模型,並且以不同的自我調整速率獨立地更新如下:
Figure 02_image105
(15)
其中
Figure 02_image107
Figure 02_image109
(j = 0,1)分別表示解碼二元位之前和之後的概率。變數Mi (為4、5、6、7)是控制索引等於i的上下文模型的概率更新速度的參數;並且k 表示概率的精度(這裡等於15)。
用於二進位算術編碼器中的區間細分的概率估計P 是來自兩個假設的估計的均值:
Figure 02_image111
(16)
在JEM中,如下分配控制每個上下文模型的概率更新速度的等式(15)中使用的參數Mi 的值。
在編碼器側,記錄與每個上下文模型相關聯的編碼二元位元。在對一個條帶進行編碼之後,對於每個索引等於i的上下文模型,計算使用不同的Mi 值(為4,5,6,7)的速率成本,並選擇提供最小速率成本的一個。為簡單起見,僅在遇到條帶類型和條帶級量化參數的新組合時才執行該選擇過程。
針對每個上下文模型i 發信令通知1位元標記以指示Mi 是否不同於預設值4。當標誌為1時,使用兩個位元來指示Mi 是否等於5、6或7。
3.3上下文模型的初始化
代替在HEVC中使用固定表用於上下文模型初始化,可以通過從先前編碼的圖片複製狀態來初始化用於圖框間編碼的條帶的上下文模型的初始概率狀態。更具體地,在對每個圖片的中心定位的CTU進行編碼之後,存儲所有上下文模型的概率狀態以用作後續圖片上的對應上下文模型的初始狀態。在JEM中,從具有與當前條帶相同的條帶類型和相同條帶級QP的先前編碼圖片的存儲狀態中複製每個圖框間編碼條帶的初始狀態集。這缺乏損失魯棒性,但在當前的JEM方案中用於編碼效率實驗目的。
4相關實施例和方法的示例
與所公開的技術相關的方法包括擴展的LAMVR其中支援的運動向量解析度範圍從1/4圖元到4圖元(1/4圖元、1/2圖元、1-圖元、2-圖元和4圖元)。當用信令通知MVD資訊時,在CU級用信令通知關於運動向量解析度的資訊。
取決於CU的解析度,調整CU的運動向量(MV)和運動向量預測(MVP)。如果應用的運動向量解析度表示為R(R可以是¼、½、1、2、4),則MV(MVx 、MVy )和MVP(MVPx 、MVPy )表示如下:
(MVx , MVy ) = (Round(MVx / (R * 4)) * (R * 4), Round(MVy / (R * 4)) * (R * 4))   (17)
(MVPx , MVPy ) = (Round(MVPx / (R * 4)) * (R * 4), Round(MVPy / (R * 4)) * (R * 4)) (18)
由於運動向量預測和MV都通過自我調整解析度調整,因此MVD(MVDx 、MVDy )也與解析度對準,並且根據解析度用信令通知如下:
(MVDx , MVDy ) = ((MVx – MVPx ) / (R * 4), (MVy – MVPy ) / R * 4))   (19)
在該提議中,運動向量解析度索引(MVR索引)指示MVP索引以及運動向量解析度。結果,所提出的方法沒有MVP索引信令。下表顯示了MVR索引的每個值所表示的內容。
表3:MVR索引表示的示例
Figure 108127809-A0304-0003
在雙向預測的情況下,AMVR針對每種解析度具有3種模式。AMVR雙向索引(Bi-Index)指示是否發信令通知每個參考列表(列表0或列表1)的MVDx,MVDy。 AMVR雙向索引的示例定義如下表。
表4:AMVP雙向索引的示例
Figure 108127809-A0304-0004
5. 現有即時方式的缺點
在使用BIO的一個現有實施方式中,清單0中的參考塊/子塊(由refblk0表示)和列表1中的參考塊/子塊(refblk1)之間計算的MV,由(vx , vy )表示,僅用於當前塊/子塊的運動補償,而不用於未來編碼塊的運動預測、解塊、OBMC等,這可能是低效的。例如,可以為塊的每個子塊/圖元生成(vx , vy ),並且公式(7)可以用於生成子塊/圖元的第二預測。然而,(vx , vy )不用於子塊/圖元的運動補償,這可能也是低效的。
在將DMVR和BIO用於雙向預測PU的另一現有實施方式中,首先,執行DMVR。之後,更新PU的運動資訊。然後,利用更新的運動資訊執行BIO。也就是說,BIO的輸入取決於DMVR的輸出。
在使用OBMC的又一現有實施方式中,對於AMVP模式,對於小塊(寬度*高度>=256),在編碼器處確定是否啟用OBMC,並且用信令通知解碼器。這增加了編碼器的複雜度。同時,對於給定的塊/子塊,當啟用OBMC時,它總是應用於亮度和色度二者,這可能導致編碼效率下降。
在使用AF_INTER模式的又一現有實施方式中,需要對MVD進行編碼,然而,它只能以1/4圖元精度進行編碼,這可能是低效的。
6. 用於視覺媒體編碼的兩步圖框間預測的示例方法
當前公開的技術的實施例克服了現有實施方式的缺點,並提供了附加解決方案,從而提供具有更高編碼效率的視訊編碼。基於所公開的技術,兩步圖框間預測可以增強現有和未來的視訊編碼標準,在以下針對各種實施方式所描述的示例中闡明。以下提供的所公開技術的示例解釋了一般概念,並不意味著被解釋為限制。在示例中,除非明確地指示為相反,否則可以組合這些示例中描述的各種特徵。
關於術語,來自列表0和清單1的當前圖片的參考圖片分別表示為Ref0和Ref1。表示
Figure 02_image055
=POC(當前) − POC(Ref0),
Figure 02_image057
= POC(Ref1) − POC(當前),並將來自Ref0和Ref1的當前塊的參考塊分別表示為refblk0和refblk1。對於當前塊中的子塊,refblk0中指向refblk1的其對應子塊的原始MV表示為(vx , vy )。Ref0和Ref1中的子塊的MV分別由(mvL0x , mvL0y )和(mvL1x , mvL1y )表示。由(vx , vy )表示BIO中從原始MV推導的推導的MV。如本專利文檔中所述,可以將用於運動預測的基於更新的運動向量的方法擴展到現有和未來的視訊編碼標準。
示例 1. MV(vx , vy )和MV(mvLXx , mvLXy ),其中X = 0或1,應在加法操作之前縮放到相同的精度,諸如在執行示例1(e) 和/或示例2中的技術之前。
(a)在一個示例中,將目標精度(要縮放到的)設置為MV(vx , vy )和MV(mvLXx , mvLXy )之間的較高(針對更好的性能)/較低(針對更低的複雜度)的精度。可替代地,無論這兩個MV的精度如何,都將目標精度(要縮放到的)設置為固定值(例如,1/32圖元精度)。
(b)在一個示例中,可以將原始MV(mvLXx , mvLXy )在加法操作之前縮放到更高的精度,例如,它可以從1/4圖元精度縮放到1/16圖元精度。在這種情況下,mvLXx = sign(mvLXx ) * (abs(mvLXx ) >> N), mvLXy = sign(mvLXy ) * (abs(mvLXy ) >> N),其中函數sign(·)返回輸入參數的符號(如下所示),並且函數abs(·)返回輸入參數的絕對值,並且N = log2(curr_mv_precision/targ_mv_precision),並且curr_mv_precision和targ_mv_precision分別是當前MV精度和目標MV精度。例如,如果將MV從1/4圖元精度縮放到1/16圖元精度,則N = log2((1/4) / (1/16)) = 2。
Figure 02_image113
(i)可替代地,mvLXx = mvLXx >> N,mvLXy = mvLXy >> N。
(ii)可替代地,mvLXx = mvLXx >> (N + K),mvLXy = mvLXy >> (N + K)。
(iii)可替代地,mvLXx = sign(mvLXx ) * (abs(mvLXx ) >> (N + K)),mvLXy = sign(mvLXy ) * (abs(mvLXy ) >> (N + K))。
(iv)類似地,如果需要將MV(vx , vy )縮放到較低精度,則可以應用如示例1(d)中所指定的縮放過程。
(c)在一個示例中,如果MV (vx , vy )的精度低於/高於MV (mvLXx , mvLXy )的精度,則應將MV (vx , vy )縮放到更精細/更粗略的精度。例如,MV (mvLXx , mvLXy )具有1/16圖元精度,則將MV (vx , vy )也縮放到1/16圖元精度。
(d)如果需要將(vx , vy )右移(即縮放到較低精度)N位以獲得與(mvLXx , mvLXy )相同的精度,則vx = (vx + offset) >> N,vy = (vy + offset) >> N,其中,例如,offset = 1 >> (N – 1)。
(i)可替代地,vx = sign(vx ) * ((abs(vx ) + offset) >> N),vy = sign(vy ) * ((abs(vy ) + offset) >> N)。
(ii)類似地,如果需要將MV (mvLXx , mvLXy )縮放到較高的精度,則可以應用如示例1(b)中所指定的上述縮放過程。
(e)在一個示例中,建議將在BIO中推導的MV (vx , vy )進行縮放並將其加到當前塊/子塊的原始MV (mvLXx , mvLXy )(X = 0或1)上。更新的MV計算為:mvL0’x = -vx * (
Figure 02_image055
/(
Figure 02_image055
+
Figure 02_image057
)) + mvL0x ,mvL0’y = -vy * (
Figure 02_image055
/(
Figure 02_image055
+
Figure 02_image057
)) + mvL0y ,並且mvL1’x = vx * (
Figure 02_image057
/(
Figure 02_image055
+
Figure 02_image057
)) + mvL1x ,mvL1’y = vy * (
Figure 02_image057
/(
Figure 02_image055
+
Figure 02_image057
)) + mvL1y
(i)在一個示例中,更新的MV用於未來運動預測(如在AMVP、Merge和仿射模式中)、解塊、OBMC等。
(ii)可替代地,更新的MV僅可以用於按照解碼順序其非緊隨的CU/PU的運動預測。
(iii)可替代地,更新的MV僅可以在AMVP、Merge或仿射模式中用作TMVP。
(f)如果需要將(vx , vy )右移(即縮放到較低精度)N位以獲得與(mvLXx , mvLXy )相同的精度,則vx = (vx + offset) >> (N + K),vy = (vy + offset) >> (N + K),其中,例如,offset = 1 >> (N + K – 1)。K是整數,例如,K等於1、2、3、-2、-1或0。
(i)可替代地,vx = sign(vx ) * ((abs(vx ) + offset) >> (N + K)),vy = sign(vy ) * ((abs(vy ) + offset) >> (N + K)),其中,例如,offset = 1 >> (N + K – 1)。
示例 2. 代替於考慮POC距離(例如,在如上所述的
Figure 02_image055
Figure 02_image057
的計算中),可以簡化在BIO過程中調用的MV的縮放方法。
(a)mvL0’x = -vx / S0 + mvL0x ,,mvL0’y = -vy / S0 + mvL0y ,和/或mvL1’x = vx / S1 + mvL1x ,mvL1’y = vy / S1 + mvL1y 。在一個示例中,將S0 和/或S1 設置為2。在一個示例中,在某些條件下(諸如
Figure 02_image055
> 0且
Figure 02_image057
> 0)調用它。
(i)可替代地,可以在分割過程期間添加偏移。例如,mvL0’x = (-vx +offset0) / S0 + mvL0x ,mvL0’y = -(vy + offset0) / S0 + mvL0y ,和/或mvL1’x = (vx + offset1) / S1 + mvL1x ,mvL1’y = (vy + offset1) / S1 + mvL1y 。在一個示例中,將offset0設置為S0 /2並將offset1被設置為S1 /2。
(ii)在一個示例中,mvL0’x = ((-vx + 1)>>1) + mvL0x ,mvL0’y = (-(vy + 1) >>1) + mvL0y ,和/或mvL1’x = ((vx + 1) >>1) + mvL1x , mvL1’y = ((vy + 1)>>1)+ mvL1y
(b)mvL0’x = - SF0 * vx + mvL0x ,mvL0’y = -vy * SF0 + mvL0y ,和/或mvL1’x = - SF1 * vx + mvL1x , mvL1’y = - SF1 *vy + mvL1y 。在一個示例中,將SF0 設置為2,和/或將SF1 設置為1。在一個示例中,在某些條件下(諸如
Figure 02_image055
> 0且
Figure 02_image057
> 0且
Figure 02_image055
> |
Figure 02_image057
|)調用它,如圖25(b)所示。
(c)mvL0’x = SFACT0 *vx + mvL0x ,mvL0’y = SFACT0 *vy + mvL0y ,和/或mvL1’x = SFACT1 *vx + mvL1x , mvL1’y = SFACT1 * vy + mvL1y 。在一個示例中,將SFACT0 設置為1,和/或將SFACT1 設置為2。在一個示例中,在某些條件下(諸如
Figure 02_image055
> 0且
Figure 02_image057
> 0且
Figure 02_image055
> |
Figure 02_image057
|)調用它,如圖25(c)所示。
示例 3.
Figure 02_image055
> 0且
Figure 02_image057
> 0時,(vx , vy )的推導和(mvLXx , mvLXy )的更新可以一起完成以保持高精度。
(a)在一個示例中,如果需要將(vx , vy )右移(即縮放到較低精度)N位以獲得與(mvLXx , mvLXy )相同的精度,則mvL0’x = ((-vx + offset) >> (N + 1)) + mvL0x ,mvL0’y = ((-vy + offset) >> (N + 1)) + mvL0y ,mvL1’x = ((vx + offset) >> (N + 1)) + mvL1x ,mvL1’y = ((vy + offset) >> (N + 1)) + mvL1y ,其中,例如,offset = 1 >> N.
(b)在一個示例中,如果需要將(vx , vy )右移(即縮放到較低精度)N位以獲得與(mvLXx , mvLXy )相同的精度,則mvL0’x = ((-vx + offset) >> (N + K + 1)) + mvL0x ,mvL0’y = ((-vy + offset) >> (N + K + 1)) + mvL0y ,mvL1’x = ((vx + offset) >> (N + K + 1)) + mvL1x ,mvL1’y = ((vy + offset) >> (N + K + 1)) + mvL1y ,其中,例如,offset = 1 >> (N + K)。K是整數,例如,K等於1、2、3、-2、-1或0。
(c)可替代地,mvL0’x = -sign(vx ) * ((abs(vx ) + offset) >> (N + 1)) + mvL0x ,mvL0’y = -sign(vy ) * ((abs(vy ) + offset) >> (N + 1)) + mvL0y ,mvL1’x = sign(vx ) * ((abs(vx ) + offset) >> (N + 1)) + mvL1x ,mvL1’y = sign(vy ) * ((abs(vy ) + offset) >> (N + 1)) + mvL1y
(d)可替代地,mvL0’x = -sign(vx ) * ((abs(vx ) + offset) >> (N + K+ 1)) + mvL0x ,mvL0’y = -sign(vy ) * ((abs(vy ) + offset) >> (N + K + 1)) + mvL0y ,mvL1’x = sign(vx ) * ((abs(vx ) + offset) >> (N + K + 1)) + mvL1x ,mvL1’y = sign(vy ) * ((abs(vy ) + offset) >> (N + K + 1)) + mvL1y ,其中,例如,offset = 1 >> (N + K)。K是整數,例如,K等於1、2、3、-2、-1或0。
示例 4. 裁剪操作可以進一步應用於BIO和/或DMVR中採用的更新的MV或可能需要更新MV的其他種類的編碼方法。
(a)在一個示例中,以其他傳統MV相同的方式裁剪更新的MV,例如裁剪在與圖片邊界相比的特定範圍內。
(b)可替代地,與MC過程中使用的MV相比,更新的MV被裁剪在特定範圍(或針對不同子塊的多個範圍)內。也就是說,MC中使用的MV與更新的MV之間的差異被裁剪在一定範圍(或針對不同子塊的多個範圍)內。
示例 5. 可以約束在BIO和/或可能需要更新MV的其他種類的編碼方法中調用的更新的MV的使用。
(a)在一個示例中,更新的MV用於未來運動預測(如在AMVP、Merge和/或仿射模式中)、解塊、OBMC等。可替代地,更新的MV可以用於第一模組,而原始的MV可以用於第二模組。例如,第一模組是運動預測,且第二模組是解塊。
(i)在一個示例中,未來運動預測指的是在當前圖片或條帶中的當前塊之後要被編碼/解碼的塊中的運動預測。
(ii)可替代地,未來運動預測指的是在當前圖片或條帶之後要被編碼/解碼的圖片或條帶中的運動預測。
(b)可替代地,更新的MV僅可以用於按照解碼順序其非緊隨的CU/PU的運動預測。
(c)更新的MV不應用於按照解碼順序其下一CU/PU的運動預測。
(d)可替代地,更新的MV僅可以用作用於對後續圖片/片/條帶進行編碼的預測器,諸如AMVP中的TMVP,和/或Merge和/或仿射模式。
(e)可替代地,更新的MV僅可以用作用於對後續圖片/片/條帶進行編碼的預測器,例如ATMVP和/或STMVP等。
示例 6. 在一個示例中,提出了兩步圖框間預測過程,其中執行第一步驟以基於與當前塊相關聯的用信令通知/推導的運動資訊來生成一些中間預測(第一預測),並且執行第二步驟以基於可能依賴於中間預測的更新的運動資訊來推導當前塊的最終預測(第二預測)。
(a)在一個示例中,BIO過程(即,使用用信令通知/推導的運動資訊,其用於生成第一預測和塊內的每個子塊/圖元的空間梯度、時間梯度和光流)僅用於推導如示例1中所指定的更新的MV(並且不應用公式(7)來生成第二預測),然後使用更新的MV來執行運動補償並生成塊內的每個子塊/圖元的第二預測(即最終預測)。
(b)在一個示例中,可以在第一或/和第二步驟中使用與不用這種方法進行編碼的圖框間編碼塊的插值濾波器不同的插值濾波器來減小記憶體頻寬。
(i)在一個示例中,可以使用較短抽頭濾波器(如6抽頭濾波器,4抽頭濾波器或雙線性濾波器)。
(ii)可替代地,可以預定義在第一/第二步驟中利用的濾波器(諸如濾波器抽頭,濾波器係數)。
(iii)可替代地,此外,為第一和/或第二步驟所選擇的濾波器抽頭可取決於編碼資訊,例如塊尺寸/塊形狀(正方形,非正方形等)/條帶類型/預測方向(單向或雙向預測或多假設,向前或向後)。
(iv)可替代地,此外,不同的塊可以為第一/第二步驟選擇不同的濾波器。在一個示例中,可以預定義或用信令通知多個濾波器的一個或多個候選集。塊可以從候選集中進行選擇。所選擇的濾波器可以由用信令通知的索引指示,或者可以在不用信令通知的情況下即時推導。
(c)在一個示例中,當生成第一預測時僅使用整數MV,並且在第一步驟中不應用插值濾波過程。
(i)在一個示例中,將分數MV舍入到最接近的整數MV。
(1)如果存在多於一個的最接近的整數MV,則將分數MV舍入到較小的最接近的整數MV。
(2)如果存在多於一個的最接近的整數MV,則將分數MV舍入到較大的最接近的整數MV。
(3)如果存在多於一個的最接近的整數MV,則將分數MV舍入到更接近零的最接近的MV。
(ii)在一個示例中,將分數MV舍入到不小於分數MV的最接近的整數MV。
(iii)在一個示例中,將分數MV舍入到不大於分數MV的最接近的整數MV。
(d)可以在SPS、PPS、條帶報頭、CTU或CU或CTU組中用信令通知這種方法的使用。
(e)這種方法的使用還可以取決於編碼資訊,諸如塊尺寸/塊形狀(正方形,非正方形等)/條帶類型/預測方向(單向或雙向預測或多假設,向前或向後)。
(i)在一個示例中,可以在某些條件下自動禁止這種方法,例如,當用仿射模式對當前塊進行編碼時,可以禁用這種方法。
(ii)在一個示例中,可以在某些條件下自動應用這種方法,諸如當用雙預測對塊進行編碼並且塊尺寸大於閾值(例如,多於16個樣本)時。
示例 7. 在一個示例中,提出在計算BIO中的時間梯度之前,可以首先修改參考塊(或預測塊),並且時間梯度的計算基於修改的參考塊。
(a)在一個示例中,對於所有參考塊移除均值。
(i)例如,對於參考塊X(X = 0或1),首先,對塊計算均值(由MeanX表示),然後將參考塊中的每個圖元減去MeanX。
(ii)可替代地,對於不同的參考圖片清單,可以決定是否移除均值。例如,對於一個參考塊/子塊,在計算時間梯度之前移除均值,而對於另一個參考塊/子塊,不移除均值。
(iii)可替代地,不同的參考塊(例如,在多假設預測中利用的3或4個參考塊)可以選擇是否先進行修改。
(b)在一個示例中,均值定義為參考塊中所選擇的樣本的平均。
(c)在一個示例中,參考塊X或參考塊X的子塊用於計算MeanX。中的所有圖元
(d)在一個示例中,參考塊X或參考塊的子塊中的僅部分圖元用於計算MeanX。例如,僅使用每第二行/列的圖元。
(i)可替代地,在示例中,僅使用每第四行/列的圖元來計算MeanX。
(ii)可替代地,僅使用四個角圖元來計算MeanX。
(iii)可替代地,僅使用四個角圖元和中心圖元,例如,位置(W/2, H/2)處的圖元(其中W×H是參考塊尺寸),來計算MeanX。
(e)在一個示例中,可以在用於推導時間梯度之前首先對參考塊進行濾波。
(i)在一個示例中,可以首先對參考塊應用平滑濾波方法。
(ii)在一個示例中,首先對塊邊界處的圖元進行濾波。
(iii)在一個示例中,在推導時間梯度之前首先應用重疊塊運動補償(OBMC)。
(iv)在一個示例中,在推導時間梯度之前首先應用照明補償(IC)。
(v)在一個示例中,在推導時間梯度之前首先應用加權預測。
(f)在一個示例中,首先計算然後修改時間梯度。例如,進一步將時間梯度減去Mean0和Mean1之間的差。
示例 8. 在一個示例中,可以諸如在視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶、CTU或CU中從編碼器向解碼器發信令通知是否更新用於BIO編碼塊的MV和/或使用更新的MV用於未來運動預測和/或如何將更新的MV用於未來運動預測。
示例 9. 在一個示例中,提出對BIO過程中利用的運動向量添加約束。
(a)在一個示例中,將(vx , vy )約束到給定範圍,-Mx > vx > Nx ,和/或-My > vy > Ny ,其中Mx , Nx , My , Ny 為非負整數,並且例如可以等於32。
(b)在一個示例中,將BIO編碼子塊/BIO編碼塊的更新的MV約束到給定範圍,諸如-ML0x > mvL0’x > NL0x 和/或-ML1x > mvL1’x > NL1x , -ML0y > mvL0’y > NL0y 和/或-ML1y > mvL1’y > NL1y ,其中ML0x , NL0x , ML1x , NL1x , ML0y , NL0y , ML1y , NL1y 是非負整數,並且例如可以等於1024、2048等。
示例 10. 提出對於BIO、DMVR、FRUC、範本匹配或需要從位元流中推導的內容更新MV(或包括MV和/或參考圖片的運動資訊)的其他方法,更新的運動資訊的使用可能受到約束。
(a)在一個示例中,即使在塊級更新運動資訊,也可以針對不同的子塊不同地存儲更新的和未更新的運動資訊。在一個示例中,可以存儲一些子塊的更新的運動資訊,並且對於其他剩餘的子塊,存儲未更新的運動資訊。
(b)在一個示例中,如果在子塊/塊級更新MV(或運動資訊),則僅針對內部子塊(即不在PU/CU/CTU邊界處的子塊)存儲更新的MV,並且然後,如圖26A和26B所示,將其用於運動預測、解塊、OBMC等。可替代地,僅針對邊界子塊存儲更新的MV。
(c)在一個示例中,如果相鄰塊和當前塊不在相同的CTU或具有諸如64×64或32×32的尺寸的相同區域中,則不使用來自相鄰塊的更新的運動資訊。
(i)在一個示例中,如果相鄰塊和當前塊不在相同的CTU或具有諸如64×64或32×32的尺寸的相同區域中,則將相鄰塊視為“不可用”。
(ii)可替代地,如果相鄰塊和當前塊不在相同的CTU或具有諸如64×64或32×32的尺寸的相同區域中,則當前塊使用沒有更新過程的運動資訊。
(d)在一個示例中,如果相鄰塊和當前塊不在相同的CTU行或具有諸如64×64或32×32的尺寸的區域的相同行中,則不使用來自相鄰塊的更新的MV。
(i)在一個示例中,如果相鄰塊和當前塊不在相同的CTU行或具有諸如64×64或32×32的尺寸的區域的相同行中,則將相鄰塊視為“不可用”。
(ii)可替代地,如果相鄰塊和當前塊不在相同的CTU行或具有諸如64×64或32×32的尺寸的區域的相同行中,則當前塊使用沒有更新過程的運動資訊。
(e)在一個示例中,如果塊的最底行是CTU或者具有諸如64×64或32×32的尺寸的區域的最底行,則不更新塊的運動資訊。
(f)在一個示例中,如果塊的最右列是CTU或者具有諸如64×64或32×32的尺寸的區域的最右列,則不更新塊的運動資訊。
(g)在一個示例中,將來自一些相鄰CTU或區域的細化的運動資訊用於當前CTU,並且將來自其他相鄰CTU或區域的未細化的運動資訊用於當前CTU。
(i)在一個示例中,將來自左CTU或左區域的細化的運動資訊用於當前CTU。
(ii)可替代地,另外,將來自左上CTU或左上區域的細化的運動資訊用於當前CTU。
(iii)可替代地,另外,將來自上CTU或上區域的細化的運動資訊用於當前CTU。
(iv)可替代地,另外,將來自右上CTU或右上區域的細化的運動資訊用於當前CTU。
(v)在一個示例中,區域具有諸如64×64或32×32的尺寸。
示例 11. 在一個示例中,提出可以在AF_INTER模式中使用不同的MVD精度,並且可以用信令通知語法元素以指示每個塊/ CU/PU的MVD精度。允許包括構成等比序列的多個不同的MVD精度的精度集。
(a)在一個示例中,允許{1/4, 1, 4}圖元MVD精度。
(b)在一個示例中,允許{1/4, 1/2, 1, 2, 4}圖元MVD精度。
(c)在一個示例中,允許{1/16, 1/8, 1/4}圖元MVD精度。
(d)語法元素在諸如當存在塊/CU/PU的非零MVD分量時的進一步的條件下存在。
(e)在一個示例中,不管是否存在任何非零MVD分量,總是用信令通知MVD精度資訊。
(f)可替代地,對於其中2/3 MVD被編碼的4/6參數AF_INTER模式,可以將不同的MVD精度用於2/3 MVD(單向預測中每個控制點1個MVD,雙向預測中每個控制點2個MVD,即每個預測方向上每個控制點1個MVD),並且2/3個控制點與不同的MVD精度相關聯。在這種情況下,此外,可以用信令通知2/3語法元素以指示MVD精度。
(g)在一個示例中,PCT/CN2018/091792中描述的方法可以用於在AF_INTER模式中對MVD精度進行編碼。
示例 12. 在一個示例中,提出如果對塊(例如PU)執行多於一個DMVD方法,則如BIO、DMVR、FRUC和範本匹配等的不同的解碼器側運動向量推導(DMVD)方法獨立地工作,即DMVD方法的輸入不取決於另一DMVD方法的輸出。
(a)在一個示例中,此外,從由多個DMVD方法推導的多個運動資訊組生成一個預測塊和/或一個更新的運動資訊(例如,每個預測方向的運動向量和參考圖片)集。
(b)在一個示例中,使用每個DMVD方法的推導的運動資訊來執行運動補償,並且對它們進行平均或加權平均或濾波(如通過中值濾波器)以生成最終預測。
(c)在一個示例中,對所有DMVD方法推導的運動資訊進行平均或加權平均或濾波(如通過中值濾波器)以生成最終運動資訊。可替代地,將不同的優先順序分配給不同的DMVD方法,並且選擇具有最高優先順序的方法推導的運動資訊作為最終運動資訊。例如,當對PU執行BIO和DMVR時,則由DMVR生成的運動資訊被用作最終運動資訊。
(d)在一個示例中,對於PU,允許不超過N個DMVD方法,其中N >= 1。
(i)將不同的優先順序分配給不同的DMVD方法,並且執行有效且具有最高的N個優先順序的方法。
(e)DMVD方法以同時的方式執行。一個DMVD方法的更新的MV不作為下一個DMVD方法的起點輸入。對於所有DMVD方法,輸入未更新的MV作為搜索起點。可替代地,DMVD方法以級聯方式執行。一個DMVD方法的更新的MV作為下一個DMVD方法的搜索起點輸入。
其他實施方案
該部分描述了MV細化並且存儲用於BIO編碼塊的進一步使用的方法。經細化的MV可用於當前條帶/CTU行/片內的後續塊的運動向量預測、和/或用於位於不同圖片處的塊的濾波處理(例如,解塊濾波器處理)和/或運動向量預測。
如圖32所示,從參考塊0中的子塊指向參考塊1中的子塊(由(DMVx , DMVy )表示)的推導的運動向量用於進一步改進當前子塊的預測。
建議通過使用BIO中的推導的運動向量來進一步細化每個子塊的運動向量。將LX參考圖片與當前圖片之間的POC距離(例如,絕對POC差)表示為deltaPOCX,並且將(MVLXx , MVLXy )和(MVLXx ’, MVLXy ’)表示為當前子塊的信令通知的和細化的運動向量,其中X = 0或1。然後(MVLXx ’, MVLXy ’)計算如下:
Figure 02_image116
Figure 02_image118
Figure 02_image120
Figure 02_image122
然而,在上述等式中需要乘法和除法。為了解決這個問題,細化的運動向量的推導簡化如下:
Figure 02_image124
Figure 02_image126
Figure 02_image128
Figure 02_image130
在一些實施例中,僅當從前一圖片和後一圖片預測當前CU時才採用該方法,因此其僅在隨機接入(RA)配置中操作。
示例 13. 可以在某些條件下應用所提出的方法,諸如塊尺寸、條帶/圖片/片類型。
(a)在一個示例中,當塊尺寸包含小於M*H的樣本,例如16或32或64個亮度樣本時,不允許上述方法。
(b)可替代地,當塊的寬度或高度的最小尺寸小於或不大於X時,不允許上述方法。在一個示例中,將X設置為8。
(c)可替代地,當塊的寬度> th1或> = th1和/或塊的高度> th2或> = th2時,不允許上述方法。在一個示例中,將X設置為8。
(d)可替代地,當塊的寬度>th1或>= th1和/或塊的高度>th2或>= th2時,不允許上述方法。在一個示例中,將X設置為8。
示例 14. 可以在子塊級應用上述方法。
(a)在一個示例中,可以針對每個子塊調用BIO更新過程、或兩步圖框間預測過程或示例7中描述的時間梯度推導方法。
(b)在一個示例中,當塊的寬度或高度或寬度和高度兩者都大於(或等於)閾值L時,可以將塊分割為多個子塊。以與具有子塊尺寸的正常編碼塊相同的方式處理每個子塊。
示例 15. 可以以SPS/PPS/圖片/條帶/片級預定義或用信令通知閾值。
(a)可替代地,閾值可以取決於某些編碼資訊,諸如塊尺寸、圖片類型,時間層索引等。
以上描述的示例可以結合在下面描述的方法的上下文中,例如,方法2700 -3100、3300-3600和3800-4200,其可以在視訊解碼器處實現。
圖27示出了用於視訊解碼的示例方法的流程圖。方法2700包括,在步驟2710,接收視訊資料的當前塊的位元流表示。
方法2700包括,在步驟2720,分別基於第一縮放運動向量與第一和第二縮放參考運動向量的加權和來生成更新的第一和第二參考運動向量。在一些實施例中,通過將第一運動向量縮放到目標精度來生成第一縮放運動向量,並且其中通過分別將第一和第二參考運動向量縮放到目標精度來生成第一和第二縮放參考運動向量。在一些實施例中,基於來自第一參考塊的第一參考運動向量和來自第二參考塊的第二參考運動向量來推導第一運動向量,並且其中當前塊與第一和第二參考塊相關聯。
在一些實施例中,在視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶報頭、編碼樹單元(CTU)或編碼單元(CU)中用信令通知目標精度的指示。
在一些實施例中,第一運動向量具有第一精度,並且第一和第二參考運動向量具有參考精度。在其他實施例中,第一精度可以高於或低於參考精度。在其他實施例中,可以將目標精度設置為第一精度、參考精度或與第一精度和參考精度無關的固定(或預定)精度。
在一些實施例中,基於使用第一和第二參考運動向量的雙向光流(BIO)細化來推導第一運動向量。
方法2700包括,在步驟2730,基於更新的第一和第二參考運動向量處理位元流表示以生成當前塊。在一些實施例中,處理基於雙向光流(BIO)細化或解碼器側運動向量細化(DMVR),並且其中在處理之前對更新的第一和第二參考運動向量進行裁剪。
在一些實施例中,處理基於雙向光流(BIO)細化,並且在處理之前將更新的第一和第二參考運動向量約束到預定值範圍。
在一些實施例中,處理基於雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對不在當前塊的邊界上的內部子塊生成更新的第一和第二參考運動向量。在另一示例中,針對當前塊的子塊的子集生成更新的第一和第二參考運動向量。
在一些實施例中,該處理基於至少兩種技術,其可以包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對至少兩種技術中的每一種執行處理以生成多個結果集,可以對該多個結果集進行平均或濾波以生成當前塊。在另一示例中,針對至少兩種技術中的每一種以級聯方式執行處理以生成當前塊。
圖28示出了用於視訊解碼的示例方法的流程圖。方法2800包括,在步驟2810,基於與當前塊相關聯的第一運動資訊,為當前塊生成中間預測。在一些實施例中,生成中間預測包括第一插值濾波過程。在一些實施例中,生成中間預測還基於序列參數集(SPS)、圖片參數集(PPS)、編碼樹單元(CTU)、條帶報頭、編碼單元(CU)或CTU組中的信令。
方法2800包括,在步驟2820,將第一運動資訊更新為第二運動資訊。在一些實施例中,更新第一運動資訊包括使用雙向光流(BIO)細化。
方法2800包括,在步驟2830,基於中間預測或第二運動資訊生成當前塊的最終預測。在一些實施例中,生成最終預測包括第二插值濾波過程。
在一些實施例中,第一插值濾波過程使用第一濾波器集,其不同於第二插值濾波過程所使用的第二濾波器集。在一些實施例中,第一或第二插值濾波過程的至少一個濾波器抽頭基於當前塊的維度、預測方向或預測類型。
圖29示出了用於視訊解碼的另一示例方法的流程圖。該示例包括與圖28所示並且如上所述類似的一些特徵和/或步驟。這些特徵和/或元件的至少一些可以不在該部分中單獨描述。
方法2900包括,在步驟2910,接收視訊資料的當前塊的位元流表示。在一些實施例中,步驟2910包括從視訊轉碼器或解碼器中的記憶體位置或緩衝器接收位元流表示。在其他實施例中,步驟2910包括在視訊解碼器處通過無線或有線通道接收位元流表示。在其他實施例中,步驟2910包括從不同的模組、單元或處理器接收位元流表示,其可以實現如在本文檔中的實施例中描述的一個或多個方法,但不限於此。
方法2900包括,在步驟2920,基於與當前塊相關聯的運動資訊生成中間運動資訊。
方法2900包括,在步驟2930,分別基於第一和第二參考運動向量生成更新的第一和第二參考運動向量。在一些實施例中,當前塊與第一和第二參考塊相關聯。在一些實施例中,第一和第二參考運動向量分別與第一和第二參考塊相關聯。
方法2900包括,在步驟2940,基於中間運動資訊或更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在方法2900的一些實施例中,生成更新的第一和第二參考運動向量分別基於第一縮放運動向量與第一和第二縮放參考運動向量的加權和。在一些實施例中,基於第一參考運動向量和第二參考運動向量來推導第一運動向量,通過將第一運動向量縮放到目標精度來生成第一縮放運動向量,並且通過將第一和第二參考運動向量分別縮放到目標精度來生成第一和第二縮放參考運動向量。
在一些實施例中,在視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶報頭、編碼樹單元(CTU)或編碼單元(CU)中用信令通知目標精度的指示。
在一些實施例中,第一運動向量具有第一精度,並且第一和第二參考運動向量具有參考精度。在其他實施例中,第一精度可以高於或低於參考精度。在其他實施例中,可以將目標精度設置為第一精度、參考精度或與第一精度和參考精度無關的固定(或預定)精度。
在一些實施例中,基於使用第一和第二參考運動向量的雙向光流(BIO)細化來推導第一運動向量。
在一些實施例中,處理基於雙向光流(BIO)細化,並且在處理之前將更新的第一和第二參考運動向量約束到預定值範圍。
在一些實施例中,處理基於雙向光流(BIO)細化或解碼器側運動向量細化(DMVR),並且其中在處理之前對更新的第一和第二參考運動向量進行裁剪。
在一些實施例中,處理基於雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對不在當前塊的邊界上的內部子塊生成更新的第一和第二參考運動向量。在另一示例中,針對當前塊的子塊的子集生成更新的第一和第二參考運動向量。
在一些實施例中,處理基於至少兩種技術,其可以包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對至少兩種技術中的每一種執行處理以生成多個結果集,可以對該多個結果集進行平均或濾波以生成當前塊。在另一示例中,針對至少兩種技術中的每一種以級聯方式執行處理以生成當前塊。
圖30示出了用於視訊解碼的示例方法的流程圖。方法3000包括,在步驟3010,基於與當前塊相關聯的第一運動資訊,為當前塊生成中間預測。在一些實施例中,生成中間預測包括第一插值濾波過程。在一些實施例中,生成中間預測還基於序列參數集(SPS)、圖片參數集(PPS)、編碼樹單元(CTU)、條帶報頭、編碼單元(CU)或CTU組中的信令。
方法3000包括,在步驟3020,將第一運動資訊更新為第二運動資訊。在一些實施例中,更新第一運動資訊包括使用雙向光流(BIO)細化。
方法3000包括,在步驟3030,基於中間預測或第二運動資訊生成當前塊的最終預測。在一些實施例中,生成最終預測包括第二插值濾波過程。
在一些實施例中,第一插值濾波過程使用第一濾波器集,其不同於第二插值濾波過程所使用的第二濾波器集。在一些實施例中,第一或第二插值濾波過程的至少一個濾波器抽頭基於當前塊的維度、預測方向或預測類型。
圖31示出了用於視訊解碼的另一示例方法的流程圖。該示例包括與上述圖30中所示的特徵和/或步驟類似的一些特徵和/或步驟。本節中可能未單獨描述這些特徵和/或元件中的至少一些。
方法3100包括,在步驟3110,接收視訊資料的當前塊的位元流表示。在一些實施例中,步驟3110包括從視訊轉碼器或解碼器中的記憶體位置或緩衝器接收位元流表示。在其他實施例中,步驟3110包括在視訊解碼器處通過無線或有線通道接收位元流表示。在其他實施例中,步驟3110包括從不同的模組、單元或處理器接收位元流表示,該模組、單元或處理器可以實現如在本文中的實施例中描述的一個或多個方法,但不限於此。
方法3100包括,在步驟3120,基於與當前塊相關聯的運動資訊生成中間運動資訊。
方法3100包括,在步驟3130,分別基於第一和第二參考運動向量生成更新的第一和第二參考運動向量。在一些實施例中,當前塊與第一和第二參考塊相關聯。在一些實施例中,第一和第二參考運動向量分別與第一和第二參考塊相關聯。
方法3100包括,在步驟3140,基於中間運動資訊或更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在方法3100的一些實施例中,生成更新的第一和第二參考運動向量分別基於第一縮放運動向量與第一和第二縮放參考運動向量的加權和。在一些實施例中,基於第一參考運動向量和第二參考運動向量來推導第一運動向量,通過將第一運動向量縮放到目標精度來生成第一縮放運動向量,並且通過分別將第一和第二參考運動向量分別縮放到目標精度來生成第一和第二縮放參考運動向量。
在一些實施例中,在視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶報頭、編碼樹單元(CTU)或編碼單元(CU)中用信令通知目標精度的指示。
在一些實施例中,第一運動向量具有第一精度,並且第一和第二參考運動向量具有參考精度。在其他實施例中,第一精度可以高於或低於參考精度。在其他實施例中,可以將目標精度設置為第一精度、參考精度或與第一精度和參考精度無關的固定(或預定)精度。
在一些實施例中,基於使用第一和第二參考運動向量的雙向光流(BIO)細化來推導第一運動向量。
在一些實施例中,處理基於雙向光流(BIO)細化,並且在處理之前將更新的第一和第二參考運動向量約束到預定值範圍。
在一些實施例中,處理基於雙向光流(BIO)細化或解碼器側運動向量細化(DMVR),並且其中在處理之前對更新的第一和第二參考運動向量進行裁剪。
在一些實施例中,處理基於雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對不在當前塊的邊界上的內部子塊生成更新的第一和第二參考運動向量。在另一示例中,針對當前塊的子塊的子集生成更新的第一和第二參考運動向量。
在一些實施例中,處理基於至少兩種技術,其可以包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對至少兩種技術中的每一種執行處理以生成多個結果集,可以對該多個結果集進行平均或濾波以生成當前塊。在另一示例中,針對至少兩種技術中的每一種以級聯方式執行處理以生成當前塊。
圖33示出了用於視訊解碼的示例方法的流程圖。方法3300包括,在步驟3310,基於與當前塊相關聯的第一運動資訊,為當前塊生成中間預測。在一些實施例中,生成中間預測包括第一內插濾波過程。在一些實施例中,生成中間預測還基於序列參數集(SPS)、圖片參數集(PPS)、編碼樹單元(CTU)、條帶報頭、編碼單元(CU)或CTU組中的信令。
方法3300包括,在步驟3320,將第一運動資訊更新為第二運動資訊。在一些實施例中,更新第一運動資訊包括使用雙向光流(BIO)細化。
方法3300包括,在步驟3330,基於中間預測或第二運動資訊生成當前塊的最終預測。在一些實施例中,生成最終預測包括第二插值濾波過程。
在一些實施例中,第一插值濾波過程使用第一濾波器集,其不同於第二插值濾波過程所使用的第二濾波器集。在一些實施例中,第一或第二插值濾波過程的至少一個濾波器抽頭基於當前塊的維度、預測方向或預測類型。
圖34示出了用於視訊解碼的另一示例方法的流程圖。該示例包括與如上所述圖33中所示的特徵和/或步驟類似的一些特徵和/或步驟。本部分中可能未單獨描述這些特徵和/或元件中的至少一些。
方法3400包括,在步驟3410,接收視訊資料的當前塊的位元流表示。在一些實施例中,步驟3410包括從視訊轉碼器或解碼器中的記憶體位置或緩衝器接收位元流表示。在其他實施例中,步驟3410包括在視訊解碼器處通過無線或有線通道接收位元流表示。在其他實施例中,步驟3410包括從不同的模組,單元或處理器接收位元流表示,其可以實現如在本文檔中的實施例中描述的一個或多個方法,但不限於此。
方法3400包括,在步驟3420,基於與當前塊相關聯的運動資訊生成中間運動資訊。
方法3400包括,在步驟3430,分別基於第一和第二參考運動向量生成更新的第一和第二參考運動向量。在一些實施例中,當前塊與第一和第二參考塊相關聯。在一些實施例中,第一和第二參考運動向量分別與第一和第二參考塊相關聯。
方法3400包括,在步驟3440,基於中間運動資訊或更新的第一和第二參考運動向量處理位元流表示以生成當前塊。
在方法3400的一些實施例中,生成更新的第一和第二參考運動向量分別基於第一縮放運動向量與第一和第二縮放參考運動向量的加權和。在一些實施例中,基於第一參考運動向量和第二參考運動向量來推導第一運動向量,通過將第一運動向量縮放到目標精度來生成第一縮放運動向量,並且通過將第一和第二參考運動向量分別縮放到目標精度來生成第一和第二縮放參考運動向量。
在一些實施例中,在視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶報頭、編碼樹單元(CTU)或編碼單元(CU)中用信令通知目標精度的指示。
在一些實施例中,第一運動向量具有第一精度,並且第一和第二參考運動向量具有參考精度。在其他實施例中,第一精度可以高於或低於參考精度。在其他實施例中,可以將目標精度設置為第一精度、參考精度或與第一精度和參考精度無關的固定(或預定)精度。
在一些實施例中,基於使用第一和第二參考運動向量的雙向光流(BIO)細化來推導第一運動向量。
在一些實施例中,處理基於雙向光流(BIO)細化,並且在處理之前將更新的第一和第二參考運動向量約束到預定值範圍。
在一些實施例中,處理基於雙向光流(BIO)細化或解碼器側運動向量細化(DMVR),並且其中在處理之前對更新的第一和第二參考運動向量進行裁剪。
在一些實施例中,處理基於雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對不在當前塊的邊界上的內部子塊生成更新的第一和第二參考運動向量。在另一示例中,針對當前塊的子塊的子集生成更新的第一和第二參考運動向量。
在一些實施例中,處理基於至少兩種技術,其可以包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術。在一個示例中,針對至少兩種技術中的每一種執行處理以生成多個結果集,可以對該多個結果集進行平均或濾波以生成當前塊。在另一示例中,針對至少兩種技術中的每一種以級聯方式執行處理以生成當前塊。
圖35示出了用於視訊解碼的示例方法的流程圖。方法3500包括,在步驟3510,通過修改與當前塊相關聯的參考塊,對於當前塊的位元流表示生成更新的參考塊。
在一些實施例中,方法3500還包括使用平滑濾波器對參考塊進行濾波的步驟。
在一些實施例中,方法3500還包括對參考塊的塊邊界處的圖元進行濾波的步驟。
在一些實施例中,方法3500還包括對參考塊應用重疊塊運動補償(OBMC)的步驟。
在一些實施例中,方法3500還包括對參考塊應用照明補償(IC)的步驟。
在一些實施例中,方法3500還包括對參考塊應用加權預測的步驟。
方法3500包括,在步驟3520,基於更新的參考塊,計算用於雙向光流(BIO)運動細化的時間梯度。
方法3500包括,在步驟3530,基於時間梯度在位元流表示和當前塊之間執行包括BIO運動細化的轉換。在一些實施例中,轉換從位元流表示生成當前塊(例如,可以在視訊解碼器中實現)。在其他實施例中,轉換從當前塊生成位元流表示(例如,可以在視訊轉碼器中實現)。
在一些實施例中,方法3500還包括計算參考塊的均值;以及從參考塊的每個圖元中減去均值的步驟。在一個示例中,計算均值基於參考塊的所有圖元。在另一示例中,計算均值基於參考塊的子塊中的所有圖元。
在一些實施例中,計算均值是基於參考塊的圖元(換句話說,不是所有圖元)的子集。在一個示例中,圖元子集包括參考塊的每第四行或列中的圖元。在另一示例中,圖元子集包括四個角圖元。在又一示例中,圖元子集包括四個角圖元和中心圖元。
圖36示出了用於視訊解碼的另一示例方法的流程圖。該示例包括與如上所述的圖35中所示的特徵和/或步驟類似的一些特徵和/或步驟。本部分中可能未單獨描述這些特徵和/或元件中的至少一些。
方法3600包括,在步驟3610,對於當前塊的位元流表示,生成用於雙向光流(BIO)運動細化的時間梯度。
方法3600包括,在步驟3620,通過從時間梯度中減去第一均值和第二均值的差來生成更新的時間梯度,其中第一均值是第一參考塊的均值,第二均值是第二參考塊的均值,並且第一和第二參考塊與當前塊相關聯。
在一些實施例中,均值基於對應參考塊的所有圖元(例如,第一均值被計算為第一參考塊的所有圖元的均值)。在另一示例中,基於對應參考塊的子塊中的所有圖元計算均值。
在一些實施例中,均值基於對應參考塊的圖元(換句話說,不是所有圖元)的子集。在一個示例中,圖元子集包括對應參考塊的每第四行或列中的圖元。在另一示例中,圖元子集包括四個角圖元。在又一示例中,圖元子集包括四個角圖元和中心圖元。
方法3600包括,在步驟3630,基於更新的時間梯度在位元流表示和當前塊之間執行包括BIO運動細化的轉換。在一些實施例中,轉換從位元流表示生成當前塊(例如,可以在視訊解碼器中實現)。在其他實施例中,轉換從當前塊生成位元流表示(例如,可以在視訊轉碼器中實現)。
圖38示出了用於視訊處理的示例方法的流程圖。該方法3800包括:在步驟3810,確定當前塊的原始運動資訊;在步驟3820,將原始運動資訊的原始運動向量和基於原始運動向量推導的推導運動向量縮放到相同的目標精度;在步驟3830,從縮放的原始和推導的運動向量生成更新的運動向量;以及在步驟3840,基於更新的運動向量,執行當前塊和包括當前塊的視訊的位元流表示之間的轉換。
圖39示出了用於視訊處理的示例方法的流程圖。該方法3900包括:在步驟3910,確定當前塊的原始運動資訊;在步驟3920,基於細化方法更新當前塊的原始運動資訊的原始運動向量;在步驟3930,將更新的運動向量裁剪到一個範圍內;以及在步驟3940,基於裁剪的更新的運動向量,執行當前塊和包括當前塊的視訊的位元流表示之間的轉換。
圖40示出了用於視訊處理的示例方法的流程圖。該方法4000包括:在步驟4010,確定與當前塊相關聯的原始運動資訊;在步驟4020,基於特定預測模式生成更新的運動資訊;以及在步驟4030,基於更新的運動資訊,執行當前塊與包括當前塊的視訊資料的位元流表示之間的轉換,其中,特定預測模式包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術中的一個或多個。
圖41示出了用於視訊處理的示例方法的流程圖。該方法4100包括:在步驟4110,從運動向量差(MVD)精度集確定用仿射模式處理的當前塊的MVD精度;在步驟4120,基於所確定的MVD精度,執行當前塊與包括當前塊的視訊的位元流表示之間的轉換。
圖42示出了用於視訊處理的示例方法的流程圖。該方法4200包括:在步驟4210,確定與當前塊相關聯的未更新的運動資訊;在步驟4220,基於多個解碼器側運動向量推導(DMVD)方法更新未更新的運動資訊,以生成當前塊的更新的運動資訊;以及在步驟4230,基於更新的運動資訊,執行當前塊與包括當前塊的視訊的位元流表示之間的轉換。
7. 所公開技術的示例實現
圖37是視訊處理裝置3700的框圖。裝置3700可用於實現這裡描述的一個或多個方法。裝置3700可以體現在智慧手機、平板電腦、電腦、物聯網(IoT)接收器等中。裝置3700可以包括一個或多個處理器3702、一個或多個記憶體3704和視訊處理硬體3706。處理器3702可以被配置為實現在本文中描述的一種或多種方法(包括但不限於方法2700-3100、3300-3600和3800-4200)。(一個或多個)記憶體3704可以用於存儲用於實現這裡描述的方法和技術的資料和代碼。視訊處理硬體3706可用於在硬體電路中實現本文檔中描述的一些技術。
在一些實施例中,視訊編碼方法可以使用如關於圖37所描述的在硬體平臺上實現的裝置來實現。
可以使用以下基於條款的格式來描述貫穿本文檔描述的各種實施例和技術。
1.1 一種視訊處理方法,包括:
確定當前塊的原始運動資訊;
將原始運動資訊的原始運動向量和基於原始運動向量推導的推導運動向量縮放到相同的目標精度;
從縮放的原始和推導的運動向量生成更新的運動向量;以及
基於更新的運動向量,執行當前塊和包括當前塊的視訊的位元流表示之間的轉換。
1.2. 如示例1.1的方法,其中,原始運動向量具有第一精度,推導的運動向量具有與第一精度不同的第二精度,並且目標精度被設置為在第一精度和第二精度中的更高精度或更低精度。
1.3. 如示例1.1的方法,其中,目標精度被設置為固定精度。
1.4. 如示例1.1的方法,其中,目標精度高於原始運動向量的精度。
1.5. 如示例1.4的方法,其中,將原始運動向量縮放為:
mvLX’x = sign(mvLXx ) * (abs(mvLXx ) >> N),
mvLX’y = sign(mvLXy ) * (abs(mvLXy ) >> N),
其中(mvLXx , mvLXy )是原始運動向量,(mvLX’x , mvLX’y )是縮放的原始運動向量,函數sign(.)返回輸入參數的符號,函數abs(.)返回輸入參數的絕對值,N = log2(curr_mv_precision /targ_mv_precision),並且其中curr_mv_precision是原始運動向量的精度,並且targ_mv_precision是推導的運動向量的精度,其被作為目標精度。
1.6. 如示例1.1的方法,其中,目標精度與原始運動向量的精度相同。
1.7. 如示例1.1的方法,其中,原始運動向量具有第一精度,推導的運動向量具有與第一精度不同的第二精度,並且目標精度被設置為第一精度。
1.8. 如示例1.7的方法,其中,當推導的運動向量被右移N以實現目標精度時,推導的運動向量被縮放為:
v’x = (vx + offset) >> N, v’y = (vy + offset) >> N;或
v’x = sign(vx ) * ((abs(vx ) + offset) >> N), v’y = sign(vy ) * ((abs(vy ) + offset) >> N)
其中(vx , vy )是推導的運動向量,(v’x , v’y )是縮放的推導運動向量,
offset是應用於推導運動向量以實現目標精度的偏移,
函數sign(.)返回輸入參數的符號,函數abs(.)返回輸入參數的絕對值,
N = log2(curr_mv_precision/targ_mv_precision),其中curr_mv_precision是第一精度,targ_mv_precision是第二精度。
1.9. 如示例1.1的方法,其中,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = -vx / S0 + mvL0x , mvL0’y = -vy / S0 + mvL0y ;和/或
mvL1’x = vx / S1 + mvL1x , mvL1’y = vy / S1 + mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,(vx , vy )是推導的運動向量,以及S0 和S1 是縮放因數。
1.10. 如示例1.1的方法,其中,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = (-vx +offset0) / S0 + mvL0x , mvL0’y = -(vy + offset0) / S0 + mvL0y ,和/或
mvL1’x = (vx + offset1) / S1 + mvL1x , mvL1’y = (vy + offset1) / S1 + mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,(vx , vy )是推導的運動向量,offset0和offset1是偏移,並且S0 和S1 是縮放因數。
1.11.如示例1.1的方法,其中,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = ((-vx + 1)>>1) + mvL0x , mvL0’y = (-(vy + 1) >>1) + mvL0y ;和/或
mvL1’x = ((vx + 1) >>1) + mvL1x , mvL1’y = ((vy + 1)>>1)+ mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,並且(vx , vy )是推導的運動向量。
1.12. 如示例1.9-1.11中任一個的方法,其中,當
Figure 02_image055
> 0且
Figure 02_image057
>0時執行所述縮放和更新的運動向量的生成,其中,
Figure 02_image055
=POC(當前) − POC(Ref0 ),
Figure 02_image057
= POC(Ref1 ) − POC(當前),並且其中POC(當前)、POC(Ref0 )和POC(Ref1 )分別是當前塊、第一參考塊和第二參考塊的圖片順序計數。
1.13. 如示例1.1的方法,其中,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = - SF0 * vx + mvL0x , mvL0’y = -vy * SF0 + mvL0y ;和/或
mvL1’x = - SF1 * vx + mvL1x , mvL1’y = - SF1 *vy + mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,(vx , vy )是推導的運動向量,以及SF0 和SF1 是縮放因數。
1.14. 如示例1.13的方法,其中,當
Figure 02_image055
> 0、
Figure 02_image057
> 0且
Figure 02_image055
> |
Figure 02_image057
|時,執行所述縮放和更新的運動向量的生成,其中
Figure 02_image055
=POC(當前) − POC(Ref0 ),
Figure 02_image057
= POC(Ref1 ) − POC(當前),並且其中POC(當前)、POC(Ref0 )和POC(Ref1 )分別是當前塊、第一參考塊和第二參考塊的圖片順序計數。
1.15. 如示例1.1的方法,其中,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = SFACT0 *vx + mvL0x , mvL0’y = SFACT0 *vy + mvL0y ,和/或
mvL1’x = SFACT1 *vx + mvL1x , mvL1’y = SFACT1 * vy + mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,(vx , vy )是推導的運動向量,以及SFACT0 和SFACT1 是縮放因數。
1.16. 如示例1.15的方法,其中,當
Figure 02_image055
> 0、
Figure 02_image057
> 0且
Figure 02_image055
> |
Figure 02_image057
|時,執行所述縮放和更新的運動向量的生成,其中
Figure 02_image055
=POC(當前) − POC(Ref0 ),
Figure 02_image057
= POC(Ref1 ) − POC(當前),並且其中POC(當前)、POC(Ref0 )和POC(Ref1 )分別是當前塊、第一參考塊和第二參考塊的圖片順序計數。
1.17. 如示例1.1的方法,其中,當
Figure 02_image055
> 0、
Figure 02_image057
> 0且
Figure 02_image055
> |
Figure 02_image057
|時,一起執行推導的運動向量的推導和更新的運動向量的生成,其中,
Figure 02_image055
=POC(當前) − POC(Ref0 ),
Figure 02_image057
= POC(Ref1 ) − POC(當前),並且其中POC(當前)、POC(Ref0 )和POC(Ref1 )分別是當前塊、第一參考塊和第二參考塊的圖片順序計數。
1.18. 如示例1.17的方法,其中,當推導的運動向量被右移N以實現目標精度時,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = ((-vx + offset) >> (N + 1)) + mvL0x , mvL0’y = ((-vy + offset1) >> (N + 1)) + mvL0y , mvL1’x = ((vx + offset) >> (N + 1)) + mvL1x , mvL1’y = ((vy + offset2) >> (N + 1)) + mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,(vx , vy )是推導的運動向量,offset1和offset2是偏移,N = log2(curr_mv_precision / targ_mv_precision),並且其中curr_mv_precision是原始運動向量的精度,並且targ_mv_precision是推導的運動向量的精度。
1.19. 如示例1.17的方法,其中,原始運動向量具有第一精度,推導的運動向量具有與第一精度不同的第二精度,並且原始運動向量被左移N以實現目標精度作為第二精度。
1.20. 如示例1.17的方法,其中,將原始運動向量左移K,並且將推導的運動向量右移N-K,以實現目標精度。
1.21. 如示例1.17的方法,其中,所述縮放和更新的運動向量的生成被執行為:
mvL0’x = -sign(vx ) * ((abs(vx ) + offset0) >> (N + 1)) + mvL0x
mvL0’y = -sign(vy ) * ((abs(vy ) + offset0) >> (N + 1)) + mvL0y
mvL1’x = sign(vx ) * ((abs(vx ) + offset1) >> (N + 1)) + mvL1x
mvL1’y = sign(vy ) * ((abs(vy ) + offset1) >> (N + 1)) + mvL1y
其中,(mvL0x , mvL0y )和(mvL1x , mvL1y )是原始運動向量,(mvL0’x , mvL0’y )和(mvL1’x , mvL1’y )是更新的運動向量,(vx , vy )是推導的運動向量,offset0和offset1是偏移,函數sign(.)返回輸入參數的符號,函數abs(.)返回輸入參數的絕對值,N = log2(curr_mv_precision / targ_mv_precision),curr_mv_precision是原始運動向量的精度,並且targ_mv_precision是推導的運動向量的精度。
1.22. 如示例1.1的方法,其中,第一和第二參考運動向量的更新包括使用雙向光流(BIO)細化。
1.23. 如示例1.1-1.22中任一個的方法,其中,在當前塊滿足特定條件的情況下不應用方法。
1.24. 如示例1.23的方法,其中,特定條件規定以下中的至少一個:當前塊的尺寸、當前塊的條帶類型、當前塊的圖片類型和當前塊的片類型。
1.25. 如示例1.23的方法,其中,特定條件規定當前塊包含的樣本數小於第一閾值。
1.26. 如示例1.23的方法,其中,特定條件規定當前塊的寬度和高度的最小尺寸小於或不大於第二閾值。
1.27. 如示例1.23的方法,其中,特定條件規定當前塊的寬度小於或不大於第三閾值,和/或當前塊的高度小於或不大於第四閾值。
1.28.如示例1.23的方法,其中,特定條件規定當前塊的寬度大於或不小於第三閾值,和/或當前塊的高度大於或不小於第四閾值。
1.29. 如示例1.23的方法,其中,在子塊所屬的塊的寬度和/或高度等於或大於第五閾值的情況下,以子塊級應用方法。
1.30. 如示例1.29的方法,其中,將當前塊分割為多個子塊,並且多個子塊中的每一個進一步以與具有等於子塊尺寸的尺寸的普通編碼塊相同的方式經歷雙向光流(BIO)過程。
1.31. 如示例1.25-1.29中任一個的方法,其中,在序列參數集(SPS)級、或圖片參數集(PPS)級、或圖片級、或條帶級、或片級中預定義或用信號通知所述第一至第五閾值中的每一個。
1.32. 如示例1.31的方法,其中,根據包括塊尺寸、圖片類型和時間層索引中的至少一個的編碼資訊來定義第一至第五閾值中的每一個。
1.33. 一種視訊系統中的裝置,包括處理器和其上具有指令的非暫時性記憶體,其中指令在由處理器運行時使處理器實現示例1.1至1.32中任一個的方法。
1.34. 一種存儲在非暫時性電腦可讀介質上的電腦程式產品,電腦程式產品包括用於進行如示例1.1至1.32中任一個的方法的程式碼。
2.1.一種視訊處理方法,包括:
確定當前塊的原始運動資訊;
基於細化方法更新所述當前塊的所述原始運動資訊的原始運動向量;
將更新的運動向量裁剪到一個範圍內;以及
基於裁剪的更新的運動向量,執行所述當前塊和包括所述當前塊的視訊的所述位元流表示之間的轉換。
2.2.如示例2.1所述的方法,其中,所述細化方法包括雙向光流BIO細化、解碼器側運動向量細化DMVR、畫面播放速率上轉換FRUC或範本匹配。
2.3.如示例2.1所述的方法,其中,將所述更新的運動向量裁剪到與所述原始運動向量允許的範圍相同的範圍內。
2.4.如示例2.1所述的方法,其中,將所述更新的運動向量和所述原始運動向量之間的差裁剪到相同範圍或對不同子塊剪裁到不同範圍內。
2.5.如示例2.1所述的方法,其中,所述細化方法包括雙向光流BIO細化,並且將在所述BIO細化中從所述原始運動向量推導的運動向量約束到第一範圍,如下:
-Mx > vx > Nx ,和/或-My > vy > Ny
其中(vx , vy )是推導的運動向量,並且Mx 、Nx 、My 、Ny 是非負整數。
2.6.如示例2.1的方法,其中細化方法包括雙向光流(BIO)細化,並且將更新的運動向量約束到第二範圍,如下:
-ML0x > mvL0’x > NL0x ,和/或
-ML2.1x > mvL2.1’x > NL2.1x ,和/或
-ML0x > mvL0’x > NL0x ,和/或
-ML2.1y > mvL2.1’y > NL2.1y
其中(mvL0’x , mvL0’y )和(mvL2.1’x , mvL2.1’y )是不同參考列表的更新的運動向量,並且ML0x 、NL0x 、ML2.1x 、NL2.1x 、ML0y 、NL0y 、ML2.1y 、NL2.1y 是非負的整數。
2.7.如示例2.1-2.6中任一項所述的方法,其中在所述當前塊滿足特定條件的情況下不應用所述方法。
2.8.如示例2.7所述的方法,其中,所述特定條件規定以下中的至少一個:所述當前塊的尺寸、所述當前塊的條帶類型、所述當前塊的圖片類型和所述當前塊的片類型。
2.9.如示例2.7所述的方法,其中,所述特定條件規定所述當前塊包含的樣本數小於第一閾值。
2.10.如示例2.7所述的方法,其中,所述特定條件規定所述當前塊的寬度和高度的最小尺寸小於或不大於第二閾值。
2.11.如示例2.7所述的方法,其中,所述特定條件規定所述當前塊的寬度小於或不大於第三閾值,和/或所述當前塊的高度小於或不大於第四閾值。
2.12.如示例2.7所述的方法,其中,所述特定條件規定所述當前塊的寬度大於或不小於第三閾值,和/或所述當前塊的高度大於或不小於第四閾值。
2.13.如示例2.7所述的方法,其中,在所述子塊所屬的塊的寬度和/或高度等於或大於第五閾值的情況下,以子塊級應用所述方法。
2.14.如示例2.13所述的方法,其中,將所述當前塊分割為多個子塊,並且所述多個子塊中的每一個進一步以與具有等於所述子塊尺寸的尺寸的普通編碼塊相同的方式經歷雙向光流BIO過程。
2.15.如示例2.9-2.13中任一項所述的方法,其中,在序列參數集SPS級、或圖片參數集PPS級、或圖片級、或條帶級或片級預定義或用信號通知所述第一至第五閾值中的每一個。
2.16.如示例2.15所述的方法,其中,根據包括塊尺寸、圖片類型和時域層索引中的至少一個的編碼的資訊來定義所述第一至第五閾值中的每個。
2.17.一種視訊系統中的裝置,包括處理器和其上具有指令的非暫時性記憶體,其中所述指令在由所述處理器運行時使所述處理器實現示例2.1至2.16中任一項所述的方法。
2.18.一種存儲在非暫時性電腦可讀介質上的電腦程式產品,所述電腦程式產品包括用於進行如示例2.1至2.16中任一項所述的方法的程式碼。
3.1.一種視訊處理方法,包括:
確定與當前塊相關聯的原始運動資訊;
基於特定預測模式生成更新的運動資訊;以及
基於所述更新的運動資訊,執行所述當前塊與包括所述當前塊的視訊資料的位元流表示之間的轉換,其中,所述特定預測模式包括雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術或範本匹配技術中的一個或多個。
3.2.如示例3.1所述的方法,其中,所述更新的運動資訊包括更新的運動向量。
3.3.如示例3.1所述的方法,其中,所述更新的運動向量用於運動預測,以用於對後續視訊塊進行編碼;或者所述更新的運動向量用於濾波或重疊塊運動補償(OBMC)。
3.4.如示例3.3所述的方法,其中,所述更新的運動向量用於高級運動向量預測(AMVP)模式、Merge模式和/或仿射模式中的運動預測。
3.5.如示例3.3所述的方法,其中,所述濾波包括去方塊濾波。
3.6.如示例3.1-3.5中任一項所述的方法,其中,所述更新的運動資訊用於第一模組,並且原始運動資訊用於第二模組。
3.7.如示例3.6所述的方法,其中,所述第一模組是運動預測模組,並且所述第二模組是去方塊模組。
3.8.如示例3.2-3.7中任一項所述的方法,其中,所述運動預測用於處理當前圖片或條帶中的所述當前塊之後的塊。
3.9.如示例3.2-3.7中任一項所述的方法,其中,所述運動預測用於處理在包括所述當前塊的當前圖片或條帶之後要處理的圖片或條帶。
3.10.如示例3.1-3.9中任一項所述的方法,其中,所述更新的運動向量僅用於按處理順序不緊隨在所述當前塊之後的編碼單元(CU)或預測單元(PU)的運動資訊預測。
3.11.如示例3.1至3.10中任一項所述的方法,其中,所述更新的運動向量不用於按處理順序緊隨所述當前塊的CU/PU的運動預測。
3.12.如示例3.1-3.11中任一項所述的方法,其中,所述更新的運動向量僅用作用於處理後續圖片/片/條帶的預測器。
3.13.如示例3.12所述的方法,其中,所述更新的運動向量用作高級運動向量預測(AMVP)模式、Merge模式或仿射模式中的時域運動向量預測(TMVP)。
3.14.如示例3.12所述的方法,其中,所述更新的運動向量僅用作用於在可選時間運動向量預測(ATMVP)模式和/或空-時運動向量預測(STMVP)模式中處理後續圖片/片/條帶的預測器。
3.15.如示例3.1-3.14中任一項所述的方法,其中,從編碼器用信號向解碼器通知包括是否更新用於BIO編碼塊的MV和/或是否將所述更新的MV用於運動預測和/或如何將所述更新的MV用於運動預測的資訊。
3.16.如示例3.15所述的方法,還包括:在視訊參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶報頭、編碼樹單元(CTU)或CU中信令通知所述資訊。
3.17.如示例3.1所述的方法,還包括:更新運動資訊,其包括在塊級更新每個預測方向的運動向量和參考圖片。
3.18.如示例3.1或3.17所述的方法,其中,在一個塊內,對於一些子塊,存儲所述更新的運動資訊,並且對於其他剩餘的子塊,存儲未更新的運動資訊。
3.19.如示例3.1或3.17所述的方法,僅針對不在PU/CU/CTU邊界處的內部子塊存儲所述更新的運動向量
3.20.如示例3.19所述的方法,還包括:將內部子塊的所述更新的運動向量用於運動預測、去方塊或OBMC。
3.21.如示例3.1或3.17所述的方法,僅針對在PU/CU/CTU邊界處的邊界子塊存儲所述更新的運動向量。
3.22.如示例3.1或3.17所述的方法,其中,如果相鄰塊和所述當前塊不在相同的CTU中或具有64×64或32×32尺寸的相同區域中,則不使用來自所述相鄰塊的更新的運動資訊。
3.23.如示例3.22所述的方法,其中,如果所述相鄰塊和所述當前塊不在相同的CTU中或具有64×64或32×32尺寸的相同區域中,則將所述相鄰塊標記為不可用。
3.24.如示例3.22所述的方法,其中,如果所述相鄰塊和所述當前塊不在相同的CTU中或具有64×64或32×32尺寸的相同區域中,則所述當前塊使用未更新的運動資訊。
3.25.如示例3.17所述的方法,其中,如果相鄰塊和所述當前塊不在相同的CTU行中或具有64×64或32×32尺寸的區域的相同行中,則不使用來自所述相鄰塊的更新的運動向量。
3.26.如示例3.25所述的方法,其中,如果所述相鄰塊和所述當前塊不在相同的CTU行中或具有64×64或32×32尺寸的區域的相同行中,則將所述相鄰塊標記為不可用。
3.27.如示例3.25所述的方法,其中,如果所述相鄰塊和所述當前塊不在相同的CTU行中或具有64×64或32×32尺寸的區域的相同行中,則所述當前塊使用來自所述相鄰塊的未更新的運動資訊。
3.28.如示例3.17所述的方法,其中,如果塊的最底行是CTU或者具有64×64或32×32尺寸的區域的最底行,則不更新所述塊的運動資訊。
3.29.如示例3.17所述的方法,其中,如果塊的最右列是CTU或者具有64×64或32×32尺寸的區域的最右列,則不更新所述塊的運動資訊。
3.30.如示例3.1或3.17所述的方法,還包括基於相鄰CTU或區域的更新的運動資訊或未更新運動資訊來預測當前CTU內的塊/CU的運動資訊。
3.31.如示例3.30所述的方法,其中,將來自左CTU或左區域的所述更新的運動資訊用於所述當前CTU。
3.32.如示例3.30或3.31所述的方法,其中,將來自左上CTU或左上區域的所述更新的運動資訊用於所述當前CTU。
3.33.如示例3.30-3.32中任一項所述的方法,其中,將來自上CTU或上區域的所述更新的運動資訊用於所述當前CTU。
3.34.如示例3.30-3.33中任一項所述的方法,其中,將來自右上CTU或右上區域的所述更新的運動資訊用於所述當前CTU。
3.35.如示例3.30-3.34中任一項所述的方法,其中,一個或多個區域中的每一個具有64×64或32×32的尺寸。
3.36.如示例3.1-3.35中任一項所述的方法,其中,在所述當前塊滿足特定條件的情況下,不應用所述方法。
3.37.如示例3.36所述的方法,其中,所述特定條件規定以下中的至少一方面:所述當前塊的尺寸、所述當前塊的條帶類型、所述當前塊的圖片類型和所述當前塊的片類型。
3.38.如示例3.36所述的方法,其中,所述特定條件規定所述當前塊包含的樣本數小於第一閾值。
3.39.如示例3.36所述的方法,其中,所述特定條件規定所述當前塊的寬度和高度的最小尺寸小於或不大於第二閾值。
3.40.如示例3.36所述的方法,其中,所述特定條件規定所述當前塊的寬度小於或不大於第三閾值,和/或所述當前塊的高度小於或不大於第四閾值。
3.41.如示例3.36所述的方法,其中,所述特定條件規定所述當前塊的寬度大於或不小於第三閾值,和/或所述當前塊的高度大於或不小於第四閾值。
3.42.如示例3.36所述的方法,其中,在子塊所屬的塊的寬度和/或高度等於或大於第五閾值的情況下,所述方法被應用到子塊級。
3.43.如示例3.42所述的方法,其中,將所述當前塊分割為多個子塊,並且所述多個子塊中的每一個進一步以與具有與所述子塊尺寸相等尺寸的正常編碼塊相同的方式進行雙向光流(BIO)處理。
3.44.如示例3.38-3.42中任一項所述的方法,其中,所述第一至第五閾值中的每一個在序列參數集(SPS)級、或圖片參數集(PPS)級、或圖片級、或條帶級或片級中預定義或信令通知。
3.45.如示例3.44所述的方法,其中,根據包括塊尺寸、圖片類型和時域層索引中的至少一個的編碼的資訊來定義所述第一至第五閾值中的每一個。
3.46.一種視訊系統中的裝置,包括處理器和其上具有指令的非易失性記憶體,其中,所述指令在由所述處理器運行時使所述處理器實現示例3.1至3.45中任一項所述的方法。
3.47.一種存儲在非暫時性電腦可讀介質上的電腦程式產品,所述電腦程式產品包括用於執行示例3.1至3.45中任一項所述的方法的程式碼。
4.1.一種視訊處理方法,包括:
從運動向量差(MVD)精度集確定用於以仿射模式處理的當前塊的MVD精度;
基於所確定的MVD精度,執行所述當前塊與包括所述當前塊的視訊的位元流表示之間的轉換。
4.2.如示例4.1所述的方法,其中,所述MVD表示預測運動向量和在運動補償處理期間使用的實際運動向量之間的差。
4.3.如示例4.2所述的方法,其中,所述MVD精度集包括構成等比序列的多個不同的MVD精度。
4.4.如示例4.3所述的方法,其中,所述MVD精度集包括1/4、1和4圖元MVD精度。
4.5.如示例4.3所述的方法,其中,所述MVD精度集包括1/4、1/2、1、2和4圖元MVD精度。
4.6.如示例4.3所述的方法,其中,所述MVD精度集包括1/16、1/8和1/4圖元MVD精度。
4.7.如示例4.1所述的方法,其中,所述當前塊是編碼單元或預測單元。
4.8.如示例4.1-4.7中任一項所述的方法,其中確定所述MVD精度還包括:
基於指示所述MVD精度的語法元素確定所述當前塊的MVD精度。
4.9.如示例4.8所述的方法,其中,當存在所述當前塊的非零MVD分量時,存在所述語法元素。
4.10.如示例4.8所述的方法,其中,當不存在所述當前塊的非零MVD分量時,不存在所述語法元素。
4.11.如示例4.8所述的方法,其中,無論是否存在所述當前塊的任何非零MVD分量,都存在所述語法元素。
4.12.如示例4.1所述的方法,其中,利用仿射圖框間模式或仿射高級運動向量預測(AMVP)模式處理所述當前塊。
4.13.如示例4.12所述的方法,其中,所述當前塊的不同MVD與不同的MVD精度相關聯。
4.14.如示例4.13所述的方法,其中,所述仿射圖框間模式是具有2個控制點的4參數仿射圖框間模式,並且對每個預測方向上的每個控制點使用一個MVD。
4.15.如示例4.14所述的方法,其中,所述2個控制點與不同的MVD精度相關聯。
4.16.如示例4.13所述的方法,其中,所述仿射圖框間模式是具有3個控制點的6參數仿射圖框間模式,並且對每個預測方向上的每個控制點使用一個MVD。
4.17.如示例4.16所述的方法,其中,所述3個控制點與不同的MVD精度相關聯。
4.18.如示例4.15所述的方法,其中存在兩個語法元素以指示所述2個控制點的不同MVD精度。
4.19.如示例4.17所述的方法,其中存在三個語法元素以指示所述3個控制點的不同MVD精度。
4.20.如示例4.1所述的方法,其中,基於所述當前塊的編碼資訊確定所述MVD精度集。
4.21.如示例4.20所述的方法,其中,所述編碼資訊包括所述當前塊的量化級。
4.22.如示例4.21所述的方法,其中,為較大的量化級選擇較粗略的MVD精度集。
4.23.如示例4.21所述的方法,其中,為較小的量化級選擇較精細的MVD精度集。
4.24.如示例4.1-4.23中任一項所述的方法,其中,在所述當前塊滿足特定條件的情況下不應用所述方法。
4.25.如示例4.24所述的方法,其中,所述特定條件指定以下中的至少一個:所述當前塊的尺寸、所述當前塊的條帶類型、所述當前塊的圖片類型和所述當前塊的片類型。
4.26.如示例4.24所述的方法,其中,所述特定條件指定所述當前塊包含的樣本數小於第一閾值。
4.27.如示例4.24所述的方法,其中,所述特定條件指定所述當前塊的寬度和高度的最小尺寸小於或不大於第二閾值。
4.28.如示例4.24所述的方法,其中,所述特定條件指定所述當前塊的寬度小於或不大於第三閾值,和/或所述當前塊的高度小於或不大於第四閾值。
4.29.如示例4.24所述的方法,其中,所述特定條件指定所述當前塊的寬度大於或不小於第三閾值,和/或所述當前塊的高度大於或不小於第四閾值。
4.30.如示例4.24所述的方法,其中,在子塊所屬的塊的寬度和/或高度等於或大於第五閾值的情況下,在子塊級應用所述方法。
4.31.如示例4.30所述的方法,其中,將所述當前塊分割為多個子塊,並且所述多個子塊中的每個子塊進一步以與具有等於所述子塊尺寸的尺寸的普通編碼塊相同的方式經歷雙向光流(BIO)過程。
4.32.如示例4.26-4.30中任一項所述的方法,其中,所述第一至第五閾值中的每一個在序列參數集(SPS)級、或圖片參數集(PPS)級、或圖片級、或條帶級或片級中預定義或用信號通知。
4.33.如示例4.32所述的方法,其中,根據包括塊尺寸、圖片類型和時域層索引中的至少一個的編碼資訊來定義所述第一至第五閾值中的每一個。
4.34.一種視訊系統中的裝置,包括處理器和其上具有指令的非暫時性記憶體,其中所述指令在由所述處理器運行時使所述處理器實現示例4.1至4.33中任一項所述的方法。
4.35.一種存儲在非暫時性電腦可讀介質上的電腦程式產品,所述電腦程式產品包括用於進行示例4.1至4.33中任一項所述的方法的程式碼。
5.1.一種視訊處理方法,包括:
確定與當前塊相關聯的未更新的運動資訊;
基於多個解碼器側運動向量推導(DMVD)方法更新所述未更新的運動資訊,以生成所述當前塊的更新的運動資訊;以及
基於所述更新的運動資訊,執行所述當前塊與包括所述當前塊的視訊的位元流表示之間的轉換。
5.2.如示例5.1所述的方法,其中所述多個DMVD方法包括以下中的至少兩個:雙向光流(BIO)細化、解碼器側運動向量細化(DMVR)、畫面播放速率上轉換(FRUC)技術、和範本匹配技術。
5.3.如示例5.2所述的方法,其中,以同時的方式對所述當前塊的所述未更新的運動資訊執行所述多個DMVD方法,並且輸入所述未更新的運動資訊的未更新的運動向量作為所述多個DMVD方法中每一個的搜索起點。
5.4.如示例5.2所述的方法,其中,以級聯方式對所述當前塊的所述未更新的運動資訊執行所述多個DMVD方法,並且輸入由一個DMVD方法生成的更新的運動資訊的更新的運動向量作為下一個DMVD方法的搜索起點。
5.5.如示例5.4所述的方法,其中,所述一個DMVD方法是DMVR,並且所述下一個DMVD方法是BIO,其中,對所述當前塊的所述未更新的運動資訊執行DMVR以生成所述更新的運動資訊,並且輸入所述更新的運動資訊的所述更新的運動向量作為BIO的搜索起點。
5.6.如示例5.1至5.5中任一項所述的方法,其中,所述基於多個解碼器側運動向量推導(DMVD)方法更新所述未更新的運動資訊,以生成所述當前塊的更新的運動資訊還包括:
通過所述多個DMVD方法推導多組更新的運動資訊,
從所述多組更新的運動資訊生成最終組的更新的運動資訊。
5.7.如示例5.6所述的方法,其中,所述從所述多組更新的運動資訊生成最終組的更新的運動資訊還包括:
基於所述多組更新的運動資訊的平均或加權平均生成最終組的更新的運動資訊。
5.8.如示例5.6所述的方法,其中,所述從所述多組更新的運動資訊生成最終組的更新的運動資訊還包括:
通過使用中值濾波器對所述多組更新的運動資訊進行濾波來生成所述最終組的更新的運動資訊。
5.9.如示例5.6所述的方法,其中,所述從所述多組更新的運動資訊生成最終組的更新的運動資訊還包括:
為所述多個DMVD方法分配不同的優先順序,
選擇由具有最高優先順序的DMVD方法推導的一組更新的運動資訊作為最終組的更新的運動資訊。
5.10.如示例5.9所述的方法,其中,為所述解碼器側運動向量細化(DMVR)分配所述最高優先順序。
5.11.如示例5.1至5.5中任一項所述的方法,其中,所述基於所述更新的運動資訊,執行所述當前塊與包括所述當前塊的視訊的位元流表示之間的轉換進一步包括:
使用由所述多個DMVD方法推導的多組更新的運動資訊分別執行運動補償,以獲得多組運動補償結果,
基於所述多組運動補償結果的平均或加權平均生成所述當前塊。
5.12.如示例5.1至5.5中任一項所述的方法,其中,所述基於所述更新的運動資訊,執行所述當前塊與包括所述當前塊的視訊的位元流表示之間的轉換進一步包括:
使用由所述多個DMVD方法推導的多組更新的運動資訊分別執行運動補償,以獲得多組運動補償結果,
通過使用中值濾波器對所述多組運動補償結果進行濾波來生成所述當前塊。
5.13.如示例5.1至5.5中任一項所述的方法,其中,所述基於多個解碼器側運動向量推導(DMVD)方法更新所述未更新的運動資訊,以生成所述當前塊的更新的運動資訊還包括:
為所述多個DMVD方法分配不同的優先順序,
從所述多個DMVD方法中選擇具有最高N個優先順序、並且有效的DMVD方法,N是整數且N> = 1,
基於N個DMVD方法為所述當前塊生成更新的運動資訊。
5.14.如示例5.1至5.13中任一項所述的方法,其中,所述當前塊是預測單元。
5.15.如示例5.1至5.14中任一項所述的方法,其中,所述未更新的運動資訊包括針對每個預測方向的未更新的運動向量和參考圖片。
5.16.如示例5.1-5.15中任一項所述的方法,其中,在所述當前塊滿足特定條件的情況下不應用所述方法。
5.17.如示例5.16所述的方法,其中,所述特定條件指定以下中的至少一個:所述當前塊的尺寸、所述當前塊的條帶類型、所述當前塊的圖片類型和所述當前塊的片類型。
5.18.如示例5.16所述的方法,其中,所述特定條件指定所述當前塊包含的樣本數小於第一閾值。
5.19.如示例5.16所述的方法,其中,所述特定條件指定所述當前塊的寬度和高度的最小尺寸小於或不大於第二閾值。
5.20.如示例5.16所述的方法,其中,所述特定條件指定所述當前塊的寬度小於或不大於第三閾值,和/或所述當前塊的高度小於或不大於第四閾值。
5.21.如示例5.16所述的方法,其中,所述特定條件指定所述當前塊的寬度大於或不小於第三閾值,和/或所述當前塊的高度大於或不小於第四閾值。
5.22.如示例5.16所述的方法,其中,在子塊所屬的塊的寬度和/或高度等於或大於第五閾值的情況下,在子塊級應用所述方法。
5.23.如示例5.22所述的方法,其中,將所述當前塊分割為多個子塊,並且所述多個子塊中的每一個進一步以與具有等於所述子塊尺寸的尺寸的普通編碼塊相同的方式經歷雙向光流(BIO)過程。
5.24.如示例5.18-5.22中任一項所述的方法,其中,所述第一至第五閾值中的每一個在序列參數集(SPS)級、或圖片參數集(PPS)級、或圖片級、或條帶級或片級中預定義或用信號通知。
5.25.如示例5.24所述的方法,其中,根據包括塊尺寸、圖片類型和時域層索引中的至少一個的編碼的資訊來定義所述第一至第五閾值中的每一個。
5.26.一種視訊系統中的裝置,包括處理器和其上具有指令的非暫時性記憶體,其中所述指令在由所述處理器運行時使所述處理器實現示例5.1至5.25中任一項所述的方法。
5.27.一種存儲在非暫時性電腦可讀介質上的電腦程式產品,所述電腦程式產品包括用於進行示例5.1至5.25中任一項所述的方法的程式碼。
從前述內容可以理解,本文已經出於說明的目的描述了當前所公開的技術的具體實施例,但是在不脫離本發明的範圍的情況下可以做出各種修改。因此,除了所附權利要求之外,當前所公開的技術不受限制。
本專利文檔中描述的主題的實現方式和功能性操作可以在各種系統、數位電子電路中實施,或者在電腦軟體、固件或硬體中實施,包括本說明書中公開的結構及其結構等同物,或者以他們的一個或多個的組合實施。本說明書中描述的主題的視線方式可以被實施為一個或多個電腦程式產品,即,在電腦可讀介質上編碼的一個或多個暫時性和非暫時性電腦程式指令模組,用於由資料處理裝置運行或控制資料處理裝置的操作。電腦可讀介質可以是機器可讀存放裝置、機器可讀存儲基板、記憶體設備、影響機器可讀傳播信號的物質的合成、或者它們中的一個或多個的組合。術語“資料處理單元”和“資料處理裝置”包括用於處理資料的所有裝置、設備和機器,包括例如可程式設計處理器、電腦或者多個處理器或電腦。除了硬體之外,裝置可以包括為所討論的電腦程式創建運行環境的代碼,例如,構成處理器固件、協定棧、資料庫管理系統、作業系統及其一個或多個的組合的代碼。
電腦程式(也稱為程式、軟體、軟體應用、腳本或代碼)可以用任何形式的程式設計語言(包括編譯語言或解釋語言)編寫,並且可以以任何形式部署,包括作為獨立程式或作為模組、元件、副程式或其他適合在計算環境中使用的單元。電腦程式不一定與檔案系統中的文件相對應。程式可以存儲在保存其他程式或資料的檔的部分中(例如,存儲在標記語言文檔中的一個或多個腳本)、專用於所討論的程式的單個檔中、或多個協調檔(例如,存儲一個或多個模組、副程式或部分代碼的檔)中。電腦程式可以部署在一台或多台電腦上來執行,這些電腦位於一個網站或分佈在多個網站並通過通信網路互連。
本說明書中描述的處理和邏輯流可以由一個或多個可程式設計處理器執行,該一個或多個處理器運行一個或多個電腦程式,通過對輸入資料進行操作並生成輸出來執行功能。處理和邏輯流也可以由專用邏輯電路來執行,並且裝置也可以實施為專用邏輯電路,例如,FPGA(現場可程式設計閘陣列)或ASIC(專用積體電路)。
例如,適用於運行電腦程式的處理器包括通用和專用微處理器、以及任何類型的數位電腦的任何一個或多個處理器。通常,處理器將從唯讀記憶體或隨機存取記憶體或兩者接收指令和資料。電腦的基本元件是執行指令的處理器和存儲指令和資料的一個或多個存放裝置。通常,電腦還將包括一個或多個用於存儲資料的大型存放區設備,例如,磁片、磁光碟或光碟,或可操作地耦合到一個或多個大型存放區設備,以從其接收資料或向其傳送資料,或兩者兼有。然而,電腦不一定需要具有這樣的設備。適用於存儲電腦程式指令和資料的電腦可讀介質包括所有形式的非易失性記憶體、介質和記憶體設備,包括例如半導體記憶體設備,例如EPROM、EEPROM和快閃記憶體設備。處理器和記憶體可以由專用邏輯電路來補充,或合併到專用邏輯電路中。
旨在將說明書與附圖一起僅視為示例性的,其中示例性意味著示例。如這裡所使用的,單數形式“一”、“一個”和“該”旨在也包括複數形式,除非上下文另有明確說明。另外,除非上下文另有明確說明,否則“或”的使用旨在包括“和/或”。
雖然本專利文檔包含許多細節,但不應將其解釋為對任何發明或要求保護的範圍的限制,而應解釋為特定于特定發明的特定實施例的特徵的描述。本專利文檔在分離的實施例的上下文描述的某些特徵也可以在單個實施例中組合實施。相反,在單個實施例的上下文中描述的各種功能也可以在多個實施例中單獨地實施,或在任何合適的子組合中實施。此外,雖然特徵可以被描述為在某些組合中起作用,甚至最初這樣要求保護,但在某些情況下,可以從要求保護的組合中刪除組合中的一個或多個特徵,並且要求保護的組合可以指向子組合或子組合的變體。
同樣,儘管在附圖中以特定順序描述了操作,但這不應理解為要獲得期望的結果必須按照所示的特定順序或次序順序來執行這些操作,或執行所有示出的操作。此外,本專利文檔所述實施例中的各種系統元件的分離不應理解為在所有實施例中都需要這樣的分離。
僅描述了一些實施方式和示例,其他實施方式、增強和變體可以基於本專利文檔中描述和說明的內容做出。
A1、B1、B0、A0和B2:空間Merge候選 col_ref: curr_ref: curr_pic: col_pic: curr_PU: col_PU: tb:當前圖片的參考圖片與當前圖片之間的POC差 td:共同定位的圖片的參考圖片與共同定位的圖片之間的POC差 Y:屬於參考圖框的共同定位的PU C0、C1:時間候選的位置 710、720: Merge_idx: L0: L1: mvL0_A、mvL1_B: ref0: neigh_ref: neighbor_PU: 1000:當前CU 1001:子CU 1050:參考圖片 1051:對應塊 1100:8×8 CU 1101、1102、1103、1104:4×4子CU 1111、1112、1113、1114:相鄰4×4塊 PU1、PU2: 1400:塊 (v0x ,v0y ):左上角控制點的運動向量 (v1x ,v1y ):右上角控制點的運動向量 1500:塊 1600:塊 A、B、C:子塊 D、E:相鄰子塊
Figure 02_image011
Figure 02_image013
:運動向量 1700:當前CU 1701、1702、1703、1704、1705:候選塊
Figure 02_image011
、v1、
Figure 02_image015
Figure 02_image017
Figure 02_image019
:運動向量 1800:當前CU MV0(1801)、MV1(1802):參考塊的運動向量 TD0(1803)、TD1(1804):當前圖片和兩個參考圖片之間的時間距離 1810、1811:參考圖片 1900:當前圖片 1910:參考圖片 2000:(MVx0、MVy0): (MVx1、MVy1): Vx
Figure 02_image055
、Vy
Figure 02_image055
、-Vx
Figure 02_image057
、-Vy
Figure 02_image057
:
Figure 02_image055
Figure 02_image057
:到參考圖框的距離 2200:塊 2201:填充區域 MV0、MV0'、MV1、MV1': x: xi(i為0到4):五個鄰居
Figure 02_image055
Figure 02_image136
: refblk0、refblk1、currblk: 2700:方法 2710~2730:步驟 2800:方法 2810~2830:步驟 2900:方法 2910~2940:步驟 3000:方法 3010~3030:步驟 3100:方法 3110~3140:步驟 (DMVx, DMVy):參考塊1中的子塊 deltaPOCX:LX參考圖片與當前圖片之間的POC距離 3300:方法 3310~3330:步驟 3400:方法 3410~3440:步驟 3500:方法 3510~3530:步驟 3600:方法 3610~3630:步驟 3700:視訊處理裝置 3702:處理器 3704:記憶體 3706:視訊處理硬體 3800:方法 3810~3840:步驟 3900:方法 3910~3940:步驟 4000:方法 4010~4030:步驟 4100:方法 4110~4120:步驟 4200:方法 4210~4230:步驟
圖1示出了建構Merge候選列表的示例。 圖2示出了空間候選的位置的示例。 圖3示出了經受空間Merge候選的冗餘校驗的候選對的示例。 圖4A和4B示出了基於當前塊的尺寸和形狀的第二預測單元(PU)的位置的示例。 圖5示出了用於時間Merge候選的運動向量縮放的示例。 圖6示出了時間Merge候選的候選位置的示例。 圖7示出了生成組合的雙向預測Merge候選的示例。 圖8示出了建構運動向量預測候選的示例。 圖9示出了用於空間運動向量候選的運動向量縮放的示例。 圖10示出了使用用於編碼單元(CU)的可選時間運動向量預測(ATMVP)演算法的運動預測的示例。 圖11示出了具有由空間-時間運動向量預測(STMVP)演算法使用的子塊和相鄰塊的編碼單元(CU)的示例。 圖12A和12B示出了當使用重疊塊運動補償(OBMC)演算法時子塊的示例快照。 圖13示出了用於推導局部照明補償(LIC)演算法的參數的相鄰樣本的示例。 圖14示出了簡化的仿射運動模型的示例。 圖15示出了每個子塊的仿射運動向量場(MVF)的示例。 圖16示出了AF_INTER仿射運動模式的運動向量預測(MVP)的示例。 圖17A和17B示出了AF_MERGE仿射運動模式的示例候選。 圖18示出了模式匹配運動向量推導(PMMVD)模式中的雙邊匹配的示例,其是基於畫面播放速率上轉換(FRUC)演算法的特殊Merge模式。 圖19示出了FRUC演算法中的範本匹配的示例。 圖20示出了FRUC演算法中的單邊運動估計的示例。 圖21示出了由雙向光流(BIO)演算法使用的光流軌跡的示例。 圖22A和22B示出了使用沒有塊擴展的雙向光流(BIO)演算法的示例快照。 圖23示出了基於雙邊範本匹配的解碼器側運動向量細化(DMVR)演算法的示例。 圖24示出了在變換係數上下文建模中使用的範本定義的示例。 圖25示出了運動向量縮放的不同示例。 圖26A和26B示出PU / CU中的內部和邊界子塊的示例。 圖27示出了根據當前公開的技術的用於視訊編碼的示例方法的流程圖。 圖28示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖29示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖30示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖31示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖32示出了在基於雙向光流的視訊編碼中推導運動向量的示例。 圖33示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖34示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖35示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖36示出了根據當前公開的技術的用於視訊編碼的另一示例方法的流程圖。 圖37是用於實現本文檔中描述的視覺媒體解碼或視覺媒體編碼技術的硬體平臺的示例的框圖。 圖38示出了根據當前公開的技術的用於視訊處理的另一示例方法的流程圖。 圖39示出了根據當前公開的技術的用於視訊處理的另一示例方法的流程圖。 圖40示出了根據當前公開的技術的用於視訊處理的另一示例方法的流程圖。 圖41示出了根據當前公開的技術的用於視訊處理的另一示例方法的流程圖。 圖42示出了根據當前公開的技術的用於視訊處理的另一示例方法的流程圖。
3800:方法
3810~3840:步驟

Claims (34)

  1. 一種視訊處理方法,包括確定當前塊的原始運動資訊;將所述原始運動資訊的原始運動向量和基於所述原始運動向量推導的推導運動向量縮放到相同的目標精度;從縮放的原始和推導的運動向量生成更新的運動向量;以及基於更新的運動向量,執行所述當前塊和包括所述當前塊的視訊的位元流表示之間的轉換。
  2. 如申請專利範圍第1項所述的方法,其中,所述原始運動向量具有第一精度,所述推導的運動向量具有與所述第一精度不同的第二精度,並且所述目標精度被設置為在所述第一精度和所述第二精度中的更高精度或更低精度。
  3. 如申請專利範圍第1項所述的方法,其中,所述目標精度被設置為固定精度。
  4. 如申請專利範圍第1項所述的方法,其中,所述目標精度高於所述原始運動向量的精度。
  5. 如申請專利範圍第4項所述的方法,其中,將所述原始運動向量縮放為:mvLX’x=sign(mvLXx) * (abs(mvLXx)<<N),mvLX’y=sign(mvLXy) * (abs(mvLXy)<<N),其中(mvLXx,mvLXy)是原始運動向量,(mvLX’x,mvLX’y)是縮放的原始運動向量,函數sign(.)返回輸入參數的符 號,函數abs(.)返回輸入參數的絕對值,N=log2(curr_mv_precision/targ_mv_precision),並且其中curr_mv_precision是原始運動向量的精度,並且targ_mv_precision是作為目標精度的推導的運動向量的精度。
  6. 如申請專利範圍第1項所述的方法,其中,所述目標精度與所述原始運動向量的精度相同。
  7. 如申請專利範圍第1項所述的方法,其中,所述原始運動向量具有第一精度,所述推導的運動向量具有與所述第一精度不同的第二精度,並且所述目標精度被設置為所述第一精度。
  8. 如申請專利範圍第7項所述的方法,其中,當所述推導的運動向量被右移N以實現目標精度時,所述推導的運動向量被縮放為:v’x=(vx+offset)>>N,v’y=(vy+offset)>>N;或v’x=sign(vx) * ((abs(vx)+offset)>>N),v’y=sign(vy) * ((abs(vy)+offset)>>N)其中(vx,vy)是所述推導的運動向量,(v’x,v’y)是所述縮放的推導運動向量,offset是應用於推導運動向量以實現目標精度的偏移,函數sign(.)返回輸入參數的符號,函數abs(.)返回輸入參數的絕對值,N=log2(curr_mv_precision/targ_mv_precision),其中curr_mv_precision是第一精度,targ_mv_precision是第二精度。
  9. 如申請專利範圍第1項所述的方法,其中,所述縮放和更新的運動向量的生成被執行為:mvL0’x=-vx/S0+mvL0x,mvL0’y=-vy/S0+mvL0y;和/或mvL1’x=vx/S1+mvL1x,mvL1’y=vy/S1+mvL1y其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,(vx,vy)是所述推導的運動向量,以及S0和S1是縮放因數。
  10. 如申請專利範圍第1項所述的方法,其中,所述縮放和更新的運動向量的生成被執行為:mvL0’x=(-vx+offset0)/S0+mvL0x,mvL0’y=-(vy+offset0)/S0+mvL0y,和/或mvL1’x=(vx+offset1)/S1+mvL1x,mvL1’y=(vy+offset1)/S1+mvL1y其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,(vx,vy)是所述推導的運動向量,offset0和offset1是偏移,並且及S0和S1是縮放因數。
  11. 如申請專利範圍第1項所述的方法,其中,所述縮放和更新的運動向量的生成被執行為:mvL0’x=((-vx+1)>>1)+mvL0x,mvL0’y=(-(vy+1)>>1)+mvL0y;和/或mvL1’x=((vx+1)>>1)+mvL1x,mvL1’y=((vy+1)>>1)+mvL1y 其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,並且(vx,vy)是所述推導的運動向量。
  12. 如申請專利範圍第9-11中任一項所述的方法,其中,當τ0>0且τ1>0時執行所述縮放和更新的運動向量的生成,其中,τ0=POC(當前)-POC(Ref0),τ1=POC(Ref1)-POC(當前),並且其中POC(當前)、POC(Ref0)和POC(Ref1)分別是所述當前塊、第一參考塊和第二參考塊的圖片順序計數。
  13. 如申請專利範圍第1項所述的方法,其中,所述縮放和更新的運動向量的生成被執行為:mvL0’x=-SF0 * vx+mvL0x,mvL0’y=-vy * SF0+mvL0y;和/或mvL1’x=-SF1* vx+mvL1x,mvL1’y=-SF1*vy+mvL1y其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,(vx,vy)是所述推導的運動向量,以及SF0和SF1是縮放因數。
  14. 如申請專利範圍第13項所述的方法,其中,當τ0>0、τ1<0且τ0>|τ1|時,執行所述縮放和更新的運動向量的生成,其中τ0=POC(當前)-POC(Ref0),τ1=POC(Ref1)-POC(當前),並且其中POC(當前)、POC(Ref0)和POC(Ref1)分別是所述當前塊、第一參考塊和第二參考塊的圖片順序計數。
  15. 如申請專利範圍第1項所述的方法,其中,所述縮放和更新的運動向量的生成被執行為:mvL0’x=SFACT0*vx+mvL0x,mvL0’y=SFACT0*vy+mvL0y,和/或mvL1’x=SFACT1 *vx+mvL1x,mvL1’y=SFACT1 * vy+mvL1y其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,(vx,vy)是所述推導的運動向量,以及SFACT0和SFACT1是縮放因數。
  16. 如申請專利範圍第15項所述的方法,其中,當τ0>0、τ1<0且τ0<|τ1|時,執行所述縮放和更新的運動向量的生成,其中τ0=POC(當前)-POC(Ref0),τ1=POC(Ref1)-POC(當前),並且其中POC(當前)、POC(Ref0)和POC(Ref1)分別是所述當前塊、第一參考塊和第二參考塊的圖片順序計數。
  17. 如申請專利範圍第1項所述的方法,其中,當τ0>0、τ1>0且τ0>|τ1|時,一起執行所述推導的運動向量的推導和更新的運動向量的生成,其中,τ0=POC(當前)-POC(Ref0),τ1=POC(Ref1)-POC(當前),並且其中POC(當前)、POC(Ref0)和POC(Ref1)分別是所述當前塊、第一參考塊和第二參考塊的圖片順序計數。
  18. 如申請專利範圍第17項所述的方法,其中,當所述推導的運動向量被右移N以實現目標精度時,所述縮放和更新的運動向量的生成被執行為: mvL0’x=((-vx+offset)>>(N+1))+mvL0x,mvL0’y=((-vy+offset1)>>(N+1))+mvL0y,mvL1’x=((vx+offset)>>(N+1))+mvL1x,mvL1’y=((vy+offset2)>>(N+1))+mvL1y,其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,(vx,vy)是所述推導的運動向量,offset1和offset2是偏移,N=log2(curr_mv_precision/targ_mv_precision),並且其中curr_mv_precision是所述原始運動向量的精度,並且targ_mv_precision是所述推導的運動向量的精度。
  19. 如申請專利範圍第17項所述的方法,其中,所述原始運動向量具有第一精度,所述推導的運動向量具有與所述第一精度不同的第二精度,並且所述原始運動向量被左移N以實現所述目標精度作為所述第二精度。
  20. 如申請專利範圍第17項所述的方法,其中,將所述原始運動向量左移K,並且將所述推導的運動向量右移N-K,以實現所述目標精度。
  21. 如申請專利範圍第17項所述的方法,其中,所述更新的運動向量的縮放和生成被執行為:mvL0’x=-sign(vx) * ((abs(vx)+offset0)>>(N+1))+mvL0x,mvL0’y=-sign(vy) * ((abs(vy)+offset0)>>(N+1))+mvL0y,mvL1’x=sign(vx) * ((abs(vx)+offset1)>>(N+1))+mvL1x,mvL1’y=sign(vy) * ((abs(vy)+offset1)>>(N+1))+mvL1y 其中,(mvL0x,mvL0y)和(mvL1x,mvL1y)是所述原始運動向量,(mvL0’x,mvL0’y)和(mvL1’x,mvL1’y)是所述更新的運動向量,(vx,vy)是所述推導的運動向量,offset0和offset1是偏移,函數sign(.)返回輸入參數的符號,函數abs(.)返回輸入參數的絕對值,N=log2(curr_mv_precision/targ_mv_precision),curr_mv_precision是所述原始運動向量的精度,並且targ_mv_precision是所述推導的運動向量的精度。
  22. 如申請專利範圍第1項所述的方法,其中,所述第一和第二參考運動向量的更新包括使用雙向光流(BIO)細化。
  23. 如申請專利範圍第1項所述的方法,其中,在所述當前塊滿足特定條件的情況下不應用所述方法。
  24. 如申請專利範圍第23項所述的方法,其中,所述特定條件規定以下中的至少一個:所述當前塊的尺寸、所述當前塊的條帶類型、所述當前塊的圖片類型和所述當前塊的片類型。
  25. 如申請專利範圍第23項所述的方法,其中,所述特定條件規定所述當前塊包含的樣本數小於第一閾值。
  26. 如申請專利範圍第23項所述的方法,其中,所述特定條件規定所述當前塊的寬度和高度的最小尺寸小於或不大於第二閾值。
  27. 如申請專利範圍第23項所述的方法,其中,所述特定條件規定所述當前塊的寬度小於或不大於第三閾值,和/或所述當前塊的高度小於或不大於第四閾值。
  28. 如申請專利範圍第23項所述的方法,其中,所述特定條件規定所述當前塊的寬度大於或不小於第三閾值,和/或所述當前塊的高度大於或不小於第四閾值。
  29. 如申請專利範圍第23項所述的方法,其中,在子塊所屬的塊的寬度和/或高度等於或大於第五閾值的情況下,以子塊級應用所述方法。
  30. 如申請專利範圍第29項所述的方法,其中,將所述當前塊分割為多個子塊,並且所述多個子塊中的每一個進一步以與具有等於所述子塊尺寸的尺寸的普通編碼塊相同的方式經歷雙向光流BIO過程。
  31. 如申請專利範圍第25-29中任一項所述的方法,其中,在序列參數集SPS級、或圖片參數集PPS級、或圖片級、或條帶級、或片級中預定義或用信號通知所述第一至第五閾值中的每一個。
  32. 如申請專利範圍第31項所述的方法,其中,根據包括塊尺寸、圖片類型和時間層索引中的至少一個的編碼資訊來定義第一至第五閾值中的每一個。
  33. 一種視訊系統中的裝置,包括處理器和其上具有指令的非暫時性記憶體,其中所述指令在由所述處理器運行時使所述處理器實現申請專利範圍第1至32中任一項所述的方法。
  34. 一種存儲在非暫時性電腦可讀介質上的電腦程式產品,所述電腦程式產品包括用於進行如申請專利範圍第1至32中任一項所述的方法的程式碼。
TW108127809A 2018-08-04 2019-08-05 Bio中的mv精度 TWI753280B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
WOPCT/CN2018/098691 2018-08-04
CN2018098691 2018-08-04
WOPCT/CN2018/106920 2018-09-21
CN2018106920 2018-09-21
WOPCT/CN2018/109250 2018-10-06
CN2018109250 2018-10-06

Publications (2)

Publication Number Publication Date
TW202021346A TW202021346A (zh) 2020-06-01
TWI753280B true TWI753280B (zh) 2022-01-21

Family

ID=68104683

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108127809A TWI753280B (zh) 2018-08-04 2019-08-05 Bio中的mv精度

Country Status (3)

Country Link
CN (1) CN110809164B (zh)
TW (1) TWI753280B (zh)
WO (1) WO2020031057A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022228420A1 (en) * 2021-04-27 2022-11-03 Beijing Bytedance Network Technology Co., Ltd. Method, device, and medium for video processing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150189313A1 (en) * 2011-06-15 2015-07-02 Fujitsu Limited Video decoding apparatus, video coding apparatus, video decoding method, video coding method, and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9325990B2 (en) * 2012-07-09 2016-04-26 Qualcomm Incorporated Temporal motion vector prediction in video coding extensions
US9749642B2 (en) * 2014-01-08 2017-08-29 Microsoft Technology Licensing, Llc Selection of motion vector precision
US10531116B2 (en) * 2014-01-09 2020-01-07 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
US10200713B2 (en) * 2015-05-11 2019-02-05 Qualcomm Incorporated Search region determination for inter coding within a particular picture of video data
KR20170059718A (ko) * 2015-11-23 2017-05-31 삼성전자주식회사 디코딩 장치 및 그 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150189313A1 (en) * 2011-06-15 2015-07-02 Fujitsu Limited Video decoding apparatus, video coding apparatus, video decoding method, video coding method, and storage medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Haitao Yang et.al, Description of CE4: Inter prediction and motion vector coding, JVET-J1024, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, US, 10–20 Apr. 2018 *

Also Published As

Publication number Publication date
WO2020031057A1 (en) 2020-02-13
TW202021346A (zh) 2020-06-01
CN110809164A (zh) 2020-02-18
CN110809164B (zh) 2022-06-28

Similar Documents

Publication Publication Date Title
TWI753281B (zh) 仿射的運動向量差精度
CN111010569B (zh) Bio中的时间梯度计算的改善
CN110620923B (zh) 广义的运动矢量差分辨率
JP2023145563A (ja) 異なる動きベクトル微調整における勾配計算
CN110740321B (zh) 基于更新的运动矢量的运动预测
CN110881124B (zh) 两步帧间预测
TWI753280B (zh) Bio中的mv精度