TW202126042A - 基於歷史的運動向量預測 - Google Patents

基於歷史的運動向量預測 Download PDF

Info

Publication number
TW202126042A
TW202126042A TW109132897A TW109132897A TW202126042A TW 202126042 A TW202126042 A TW 202126042A TW 109132897 A TW109132897 A TW 109132897A TW 109132897 A TW109132897 A TW 109132897A TW 202126042 A TW202126042 A TW 202126042A
Authority
TW
Taiwan
Prior art keywords
motion vector
block
motion
video
prediction
Prior art date
Application number
TW109132897A
Other languages
English (en)
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 TW202126042A publication Critical patent/TW202126042A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/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/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/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

Landscapes

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

Abstract

提供了用於更新基於歷史的運動向量表的系統、方法和電腦可讀取媒體。在一些實例中,一種方法可以包括:獲得視訊資料的一或多個塊;決定從一或多個塊中的塊的第一控制點而推導的第一運動向量,該塊是使用仿射運動模式來編碼的;決定從該塊的第二控制點而推導的第二運動向量;基於第一運動向量和第二運動向量來估計用於該塊內的預定位置的第三運動向量;及利用第三運動向量來填充基於歷史的運動向量預測器(HMVP)表。

Description

基於歷史的運動向量預測
本專利申請案主張享受以下申請案的權益:於2019年9月24日提出申請的、名稱為「IMPROVEMENTS OF HISTORY-BASED MOTION VECTOR PREDICTION」的美國臨時申請案第62/905,311號、以及於2019年9月24日提出申請的、名稱為「HISTORY-BASED MOTION VECTOR PREDICTION」的美國臨時申請案第62/905,371號,據此將這兩個申請案經由引用的方式整體地併入並且用於所有適用的目的。
概括而言,本案內容係關於視訊編碼和壓縮,並且更具體地,本案內容係關於基於歷史的運動向量預測。
許多設備和系統允許視訊資料被處理和輸出以供消費。數位視訊資料包括大量資料,以滿足消費者和視訊提供商的需求。例如,視訊資料的消費者期望具有高保真度、解析度、畫面播放速率等的最高品質的視訊。結果,為了滿足這些需求所需要的大量視訊資料為處理和儲存視訊資料的通訊網路和設備帶來了負擔。
各種視訊編碼技術可以用於壓縮視訊資料。視訊編碼是根據一或多個視訊編碼標準來執行的。例如,視訊編碼標準包括基本視訊編碼(EVC)、高效率視訊編碼(HEVC)、高級視訊編碼(AVC)、MPEG-2第2部分編碼(MPEG代表運動影像專家組)、VP9、開放媒體聯盟(AOMedia)視訊1(AV1)等。視訊編碼通常利用預測方法(例如,訊框間預測、訊框內預測等),預測方法利用在視訊影像或序列中存在的冗餘。通常,視訊編碼技術的目標是將視訊資料壓縮為使用較低位元速率的形式,同時避免或最小化視訊品質的降級。隨著不斷發展的視訊服務變得可用,需要具有更好的編碼效率和效能的編碼技術。
揭示用於提供基於歷史的運動向量預測的系統、方法和電腦可讀取媒體。根據至少一個實例,提供了一種用於基於歷史的運動向量預測的方法。該方法可以包括:獲得視訊資料的一或多個塊;決定從該一或多個塊中的塊的第一控制點而推導的第一運動向量,該塊是使用仿射運動模式來編碼的;決定從該塊的第二控制點而推導的第二運動向量;基於該第一運動向量和該第二運動向量來估計用於該塊內的預定位置的第三運動向量;及利用該第三運動向量來填充基於歷史的運動向量預測器(HMVP)表。
根據至少一個實例,提供了一種用於基於歷史的運動向量預測的裝置。在一些實例中,該裝置可以包括:記憶體;及耦合到該記憶體的一或多個處理器,該一或多個處理器被配置為:獲得視訊資料的一或多個塊;決定從該一或多個塊中的塊的第一控制點而推導的第一運動向量,該塊是使用仿射運動模式來編碼的;決定從該塊的第二控制點而推導的第二運動向量;基於該第一運動向量和該第二運動向量來估計用於該塊內的預定位置的第三運動向量;及利用該第三運動向量來填充基於歷史的運動向量預測器(HMVP)表。
根據至少一個實例,提供了一種用於基於歷史的運動向量預測的非暫時性電腦可讀取儲存媒體。該非暫時性電腦可讀取媒體可以包括儲存在其上的指令,該等指令在由一或多個處理器執行時使得該一或多個處理器進行以下操作:獲得視訊資料的一或多個塊;決定從該一或多個塊中的塊的第一控制點而推導的第一運動向量,該塊是使用仿射運動模式來編碼的;決定從該塊的第二控制點而推導的第二運動向量;基於該第一運動向量和該第二運動向量來估計用於該塊內的預定位置的第三運動向量;及利用該第三運動向量來填充基於歷史的運動向量預測器(HMVP)表。
根據至少一個實例,提供了一種用於產生用於基於歷史的運動向量預測的模糊控制介面的裝置。該裝置可以包括用於進行以下操作的單元:獲得視訊資料的一或多個塊;決定從該一或多個塊中的塊的第一控制點而推導的第一運動向量,該塊是使用仿射運動模式來編碼的;決定從該塊的第二控制點而推導的第二運動向量;基於該第一運動向量和該第二運動向量來估計用於該塊內的預定位置的第三運動向量;及利用該第三運動向量來填充基於歷史的運動向量預測器(HMVP)表。
在一些實例中,以上描述的方法、電腦可讀取媒體和裝置可以將來自該HMVP表的一或多個HMVP候選添加到高級運動向量預測(AMVP)候選列表、合併模式候選列表和用於使用該仿射運動模式進行編碼的運動向量預測預測器中的至少一項中。
在一些實例中,該預定位置可以包括該塊的中心。在一些實例中,該第一控制點可以包括左上方控制點,並且該第二控制點可以包括右上方控制點。在一些情況下,該第三運動向量可以是進一步基於與底部控制點相關聯的控制點運動向量來估計的。
在一些情況下,估計該第三運動向量可以包括:基於該第一運動向量和該第二運動向量之間的差,來決定該第一運動向量和該第二運動向量之間的變化率;及將該變化率乘以對應於該預定位置的乘法因數。在一些實例中,該預定位置可以包括該塊的中心,並且該乘法因數可以包括該塊的寬度及/或該塊的高度中的一半。在一些實例中,該變化率可以包括每單位變化率,並且該每單位變化率的每個單位可以包括取樣、子塊及/或圖元。在一些情況下,該乘法因數可以包括該預定位置和該塊的邊界之間的取樣數量。
在一些實例中,該第三運動向量是基於該第一運動向量的水平分量和該第二運動向量的水平分量之間的第一運動變化以及該第一運動向量的垂直分量和該第二運動向量的垂直分量之間的第二運動變化的。
在一些實例中,該第三運動向量可以包括基於與該塊相關聯的仿射運動資訊而產生的平移運動向量。在一些情況下,該第三運動向量可以包括與該塊的一或多個子塊相關聯的運動資訊,並且該一或多個子塊中的至少一個子塊對應於該預定位置。
在一些情況下,該HMVP表及/或該第三運動向量可以用於對額外塊的運動預測。
在一些態樣中,上述每個裝置是或者包括相機、行動設備(例如,行動電話或者所謂的「智慧型電話」或其他行動設備)、可穿戴設備、擴展現實設備(例如,虛擬實境(VR)設備、增強現實(AR)設備或混合現實(MR)設備)、個人電腦、膝上型電腦、伺服器電腦、自動駕駛車輛、編碼器、解碼器或其他設備。在一些態樣中,該裝置包括用於擷取一或多個視訊及/或影像的一或多個相機。在一些態樣中,該裝置亦包括用於顯示一或多個視訊及/或影像的顯示器。在一些態樣中,上述裝置可以包括一或多個感測器。
本發明內容並不意欲標識所要求保護的主題的關鍵或必要特徵,亦不意欲單獨地用於決定所要求保護的主題的範疇。經由參考本專利的整個說明書的適當部分、任何或所有附圖以及每個請求項,應當理解本主題。
在參考以下說明書、申請專利範圍和附圖之後,前述內容以及其他特徵和實施例將變得更加顯而易見。
下文提供了本案內容的某些態樣和實施例。如對於本發明所屬領域中具有通常知識者將顯而易見的,這些態樣和實施例中的一些可以獨立地應用,並且它們中的一些可以相結合地應用。在以下描述中,出於解釋的目的,闡述了具體細節以便提供對本案的實施例的透徹理解。然而,將顯而易見的是,可以在沒有這些具體細節的情況下實施各個實施例。附圖和描述並不意欲是限制性的。
隨後的描述僅提供了實例實施例,而並不意欲限制本案內容的範疇、適用性或配置。確切而言,對這些示例性實施例的隨後描述將向本發明所屬領域中具有通常知識者提供用於實現示例性實施例的可行描述。應當理解的是,在不脫離如在所附的申請專利範圍中闡述的本案的精神和範疇的情況下,可以對元素的功能和佈置進行各種改變。
視訊編碼設備實現視訊壓縮技術以有效地編碼和解碼視訊資料。視訊壓縮技術可以包括應用不同的預測模式,包括空間預測(例如,訊框內預測(intra-frame prediction)或訊框內預測(intra-prediction))、時間預測(例如,訊框間預測(inter-frame prediction)或訊框間預測(inter-prediction))、層間預測(跨視訊資料的不同層)、及/或用於減少或去除視訊序列中固有的冗餘的其他預測技術。視訊轉碼器可以將原始視訊序列的每個圖片分割為多個矩形區域,這些矩形區域被稱為視訊塊或編碼單元(下文將更加詳細地描述的)。這些視訊塊可以使用特定的預測模式來編碼。
視訊塊可以以一或多個方式被劃分為一組或多組較小的塊。塊可以包括編碼樹塊、預測塊、變換塊及/或其他適當的塊。除非另外指定,否則通常對「塊」的引用可以代表此類視訊塊(例如,如本發明所屬領域中具有通常知識者將理解的,編碼樹塊、編碼塊、預測塊、變換塊、或其他合適的塊或子塊)。此外,這些塊之每一者塊在本文中亦可以被互換地稱為「單元」(例如,編碼樹單元(CTU)、編碼單元、預測單元(PU)、變換單元(TU)等)。在一些情況下,單元可以指示在位元串流中編碼的編碼邏輯單元,而塊可以指示視訊訊框緩衝器中的程序所針對的一部分。
對於訊框間預測模式,視訊轉碼器可以在位於另一時間位置的訊框(或圖片)(其被稱為參考訊框或參考圖片)中搜尋與經編碼的塊相似的塊。視訊轉碼器可以將搜尋限制為距要被編碼的塊一定的空間位移。可以使用包括水平位移分量和垂直位移分量的二維(2D)運動向量來定位最佳匹配。對於訊框內預測模式,視訊轉碼器可以基於來自同一圖片內先前編碼的相鄰塊的資料,使用空間預測技術來形成預測塊。
視訊轉碼器可以決定預測誤差。例如,可以將預測決定為正被編碼的塊和預測塊中的圖元值之間的差。預測誤差亦可以被稱為殘差。視訊轉碼器亦可以使用變換編碼(例如,使用離散餘弦變換(DCT)的形式、離散正弦變換(DST)的形式或其他適當的變換)來將變換應用於預測誤差,以產生變換係數。在變換之後,視訊轉碼器可以對變換係數進行量化。經量化的變換係數和運動向量可以使用語法元素來表示,並且與控制資訊一起形成視訊序列的編碼表示。在一些情況下,視訊轉碼器可以對語法元素進行熵編碼,從而進一步減少用於其表示所需要的位元數量。
視訊解碼器可以使用以上論述的語法元素和控制資訊來構造用於解碼當前訊框的預測資料(例如,預測塊)。例如,視訊解碼器可以將預測塊和經壓縮的預測誤差相加。視訊解碼器可以經由使用量化係數對變換基函數進行加權來決定經壓縮的預測誤差。在經重構的訊框與原始訊框之間的差被稱為重構誤差。
如下文更加詳細地描述的,本文描述了用於將仿射運動資訊用於基於歷史的運動向量預測的系統、裝置、方法(亦被稱為程序)和電腦可讀取媒體。本文描述的技術可以被應用於各種基於塊的視訊編碼技術(其中視訊是以塊為基礎來重構的)中的一或多個技術。例如,本文描述的技術可以被應用於任何現有的視訊轉碼器(例如,高效率視訊編碼(HEVC)、高級視訊編碼(AVC)、或其他適當的現有視訊轉碼器),及/或可以是用於正在開發的任何視訊編碼標準及/或將來的視訊編碼標準的高效編碼工具,例如,基本視訊編碼(EVC)、通用視訊編碼(VVC)、聯合探索模型(JEM)、VP9、AV1及/或正在開發或要被開發的其他視訊編碼標準。
在一些實例中,本文描述的方法可以用於基於仿射編碼塊來產生平移運動向量。仿射運動模型可以使用多個控制點來推導用於塊的多個運動向量。例如,仿射運動模型可以產生用於塊的子塊或圖元的多個局部運動向量。然而,在某些視訊編碼標準中,用於基於歷史的運動向量預測(HMVP)的HMVP表僅包括及/或支援每塊的單個平移運動向量。因此,在一些實例中,為了擴展被包括在HMVP表中的運動資訊的類型,本文中的方法可以使用仿射運動資訊來近似用於塊的平移向量,並且將平移向量包括在HMVP表中。平移向量可以表示用於塊的運動資訊,其一旦被包括在HMVP表中就可以用於HMVP。
在一些情況下,本文描述的方法可以基於與左上方控制點相關聯的控制點運動向量以及與右上方控制點相關聯的控制點運動向量來產生用於塊的中心位置的運動向量。例如,本文的方法可以計算與左上方控制點和右上方控制點相關聯的控制點運動向量的水平分量和垂直分量之間的變化率,並且基於該變化率來產生用於中心位置的運動向量。運動向量可以表示用於塊的運動資訊,並且可以被包括在HMVP表中以供將來在運動預測中使用。
將如下在以下揭示內容中描述本文的技術。論述開始於對用於視訊編碼和運動向量預測的實例系統和技術的描述,如圖1至圖15所示。隨後,接著將是對用於利用從仿射編碼塊產生的運動資訊來更新基於歷史的運動預測表的實例方法的描述,如圖16所示。論述以對實例編碼設備架構和實例解碼設備架構的描述結束,如圖17和18所示。本案內容現在轉到圖1。
圖1是示出包括編碼設備104和解碼設備112的系統100的實例的方塊圖。編碼設備104可以是源設備的一部分,並且解碼設備112可以是接收設備(亦被稱為客戶端設備)的一部分。源設備及/或接收設備可以包括電子設備,例如,行動或固定電話手機(例如,智慧型電話、蜂巢式電話等)、桌上型電腦、膝上型電腦或筆記型電腦、平板電腦、機上盒、電視機、相機、顯示裝置、數位媒體播放機、視訊遊戲控制台、網際網路協定(IP)相機、伺服器系統中的伺服器設備(包括一或多個伺服器設備(例如,視訊流式伺服器系統、或其他適當的伺服器系統))、頭戴式顯示器(HMD)、平視顯示器(HUD)、智能眼鏡(例如,虛擬實境(VR)眼鏡、增強現實(AR)眼鏡、或其他智慧眼鏡)、或任何其他適當的電子設備。
系統100的部件可以包括及/或可以使用電路或其他電子硬體來實現,其可以包括一或多個可程式設計電路(例如,微處理器、圖形處理單元(GPU)、數位訊號處理器(DSP)、中央處理單元(CPU)、及/或其他適當的電路),及/或可以包括及/或使用電腦軟體、韌體或其任何組合來實現以執行本文描述的各種操作。
儘管系統100被示為包括某些部件,但是本發明所屬領域中具有通常知識者將明白的是,系統100可以包括比圖1中所示的部件更多或更少的部件。例如,在一些情況下,系統100亦可以包括除了記憶體108和儲存單元118之外的一或多個記憶體設備(例如,一或多個隨機存取記憶體(RAM)部件、唯讀記憶體(ROM)部件、快取緩衝記憶體部件、緩衝器部件、資料庫部件、及/或其他記憶體設備)、與一或多個記憶體設備相通訊及/或電連接到其的一或多個處理設備(例如,一或多個CPU、GPU及/或其他處理設備)、用於執行無線通訊的一或多個無線介面(例如,包括用於每個無線介面的一或多個收發機和基頻處理器)、用於在一或多個硬接線連接上執行通訊的一或多個有線介面(例如,諸如通用序列匯流排(USB)輸入之類的序列介面、照明連接器、及/或其他有線介面)、及/或在圖1中未圖示的其他部件。
本文描述的編碼技術適用於各種多媒體應用中的視訊編碼,包括流式視訊傳輸(例如,經由網際網路)、電視廣播或傳輸、對數位視訊的編碼以用於儲存在資料儲存媒體上、對被儲存在資料儲存媒體上的數位視訊進行解碼、或其他應用。在一些實例中,系統100可以支援單向或雙向視訊傳輸,以支援諸如視訊會議、視訊流式、視訊重播、視訊廣播、遊戲及/或視訊電話之類的應用。
編碼設備104(或編碼器)可以用於使用視訊編碼標準或協定來對視訊資料進行編碼,以產生經編碼的視訊位元串流。視訊編碼標準的實例包括ITU-T H.261、ISO/IEC MPEG-1視訊、ITU-T H.262、或ISO/IEC MPEG-2視訊、ITU-T H.263、ISO/IEC MPEG-4視訊、ITU-T H.264(亦被稱為ISO/IEC MPEG-4 AVC)(包括其可伸縮視訊編碼(SVC)和多視圖視訊編碼(MVC)擴展)、以及高效率視訊編碼(HEVC)或ITU-T H.265。存在處理多層視訊編碼的HEVC的各種擴展,包括範圍和螢幕內容編碼擴展、3D視訊編碼(3D-HEVC)和多視圖擴展(MV-HEVC)和可伸縮擴展(SHVC)。ITU-T視訊編碼專家組(VCEG)和ISO/IEC運動影像專家組(MPEG)的視訊編碼聯合協調小組(JCT-VC)以及3D視訊編碼擴展開發聯合協調小組(JCT-3V)已經開發了HEVC以及其擴展。
MPEG和ITU-T VCEG亦成立了聯合探索視訊小組(JVET),以探索和開發用於下一代視訊編碼標準的新視訊編碼工具,其被命名為通用視訊編碼(VVC)。參考軟體被稱為VVC測試模型(VTM)。VVC的目標是相比於現有HEVC標準來提供壓縮效能的顯著改善,以輔助部署較高品質的視訊服務和新興應用(例如,360°全向沉浸式多媒體、高動態範圍(HDR)視訊以及其他實例)。基本視訊編碼(EVC)、VP9和開放媒體聯盟(AOMedia)視訊1(AV1)是本文描述的技術可以應用於其的其他視訊編碼標準。
可以使用諸如EVC、VTM、VVC、HEVC、AVC及/或其擴展之類的視訊轉碼器來執行本文描述的許多實施例。然而,本文描述的技術和系統亦可以適用於其他編碼標準,例如,MPEG、JPEG(或用於靜止影像的其他編碼標準)、VP9、AV1、其擴展、或已經可用或尚不可用或開發的其他適當的編碼標準。因此,儘管可以參考特定的視訊編碼標準來描述本文描述的技術和系統,但是本發明所屬領域中具有通常知識者將明白的是,不應當將描述解釋為僅適用於該特定標準。
參考圖1,視訊源102可以將視訊資料提供給編碼設備104。視訊源102可以是源設備的一部分,或者可以是除了源設備之外的設備的一部分。視訊源102可以包括視訊擷取裝置(例如,攝像機、照相電話、視訊電話等),包含被儲存的視訊的視訊存檔單元、提供視訊資料的視訊伺服器或內容提供者、從視訊伺服器或內容提供者接收視訊的視訊饋送介面、用於產生電腦圖形視訊資料的電腦圖形系統、此類源的組合、或任何其他適當的視訊源。
來自視訊源102的視訊資料可以包括一或多個輸入圖片。圖片亦可以被稱為「訊框」。圖片或訊框是靜止影像,其在一些情況下是視訊的一部分。在一些實例中,來自視訊源102的資料可以是不作為視訊的一部分的靜止影像。在HEVC、VVC和其他視訊編碼規範中,視訊序列可以包括一系列圖片。圖片可以包括三個取樣陣列,其被表示為SL、SCb和SCr。SL是亮度取樣的二維陣列,SCb是Cb色度取樣的二維陣列,並且SCr是Cr色度取樣的二維陣列。色度取樣在本文中亦可以被稱為「色度(chroma)」取樣。在其他情況下,圖片可以是單色的,並且可以僅包括亮度取樣的陣列。
編碼設備104的編碼器引擎106(或編碼器)對視訊資料進行編碼以產生經編碼的視訊位元串流。在一些實例中,經編碼的視訊位元串流(或「視訊位元串流」或「位元串流」)是一系列的一或多個經編碼的視訊序列。經編碼的視訊序列(CVS)包括一系列存取單元(AU),這一系列存取單元從在基本層中具有隨機存取點圖片並且具有某些屬性的AU開始,直到在基本層中具有隨機存取點圖片並且具有某些屬性的下一個AU並且不包括該下一個AU。例如,開始CVS的隨機存取點圖片的某些屬性可以包括等於1的RASL標誌(例如,NoRaslOutputFlag)。否則,隨機存取點圖片(其中RASL標誌等於0)並不開始CVS。存取單元(AU)包括一或多個經編碼的圖片以及與共享相同輸出時間的經編碼的圖片相對應的控制資訊。圖片的編碼切片在位元串流級別被封裝為資料單元,該資料單元被稱為網路抽象層(NAL)單元。例如,HEVC視訊位元串流可以包括一或多個CVS,其包括NAL單元。NAL單元之每一者NAL單元具有NAL單元標頭。在一個實例中,標頭對於H.264/AVC(除了多層擴展之外)而言為一個位元組,而對於HEVC而言為兩個位元組。NAL單元標頭中的語法元素採用指定的位元,並且因此對於所有種類的系統和傳輸層(諸如傳輸串流、即時傳輸(RTP)協定、檔案格式以及其他)都是可見的。
在HEVC標準中存在兩類NAL單元,包括視訊編碼層(VCL)NAL單元和非VCL NAL單元。VCL NAL單元包括形成經編碼的視訊位元串流的經編碼的圖片資料。例如,在VCL NAL單元中存在形成經編碼的視訊位元串流的位元序列。VCL NAL單元包括經編碼的圖片資料的一個切片或切片段(下文描述),並且非VCL NAL單元包括與一或多個經編碼的圖片有關的控制資訊。在一些情況下,NAL單元可以被稱為封包。HEVC AU包括:包含經編碼的圖片資料的VCL NAL單元、以及與經編碼的圖片資料相對應的非VCL NAL單元(若有的話)。除了其他資訊之外,非VCL NAL單元亦可以包含具有與經編碼的視訊位元串流有關的高級資訊的參數集。例如,參數集可以包括視訊參數集(VPS)、序列參數集(SPS)和圖片參數集(PPS)。位元串流的每個切片或其他部分可以參考單個有效的PPS、SPS和VPS,以允許解碼設備112存取可以用於對位元串流的切片或其他部分進行解碼的資訊。
NAL單元可以包含形成視訊資料的編碼表示的位元序列(例如,經編碼的視訊位元串流、位元串流的CVS等),諸如在視訊中的圖片的編碼表示。編碼器引擎106經由將每個圖片分割為多個切片來產生圖片的編碼表示。一切片是獨立於其他切片的,使得可以對該切片中的資訊進行編碼,而不依賴於在同一圖片內的其他切片的資料。切片包括一或多個切片段,其包括獨立的切片段以及(若存在的話)依賴於先前切片段的一或多個從屬切片段。
在HEVC中,隨後將切片分割為亮度(luma)取樣和色度(chroma)取樣的編碼樹塊(CTB)。亮度取樣的CTB和色度取樣的一或多個CTB連同用於取樣的語法一起被稱為編碼樹單元(CTU)。CTU亦可以被稱為「樹塊」或「最大編碼單元」(LCU)。CTU是用於HEVC編碼的基本處理單元。CTU可以被拆分為大小不同的多個編碼單元(CU)。CU包含被稱為編碼塊(CB)的亮度和色度取樣陣列。
亮度和色度CB可以被進一步拆分為預測塊(PB)。PB是亮度分量或色度分量的取樣塊,其使用相同的運動參數來進行訊框間預測或塊內複製(IBC)預測(當可用或被啟用時)。亮度PB和一或多個色度PB連同相關聯的語法一起形成預測單元(PU)。對於訊框間預測,運動參數集合(例如,一或多個運動向量、參考索引等)是在用於每個PU的位元串流中用訊號通知的,並且用於亮度PB和一或多個色度PB的訊框間預測。運動參數亦可以被稱為運動資訊。CB亦可以被分割為一或多個變換塊(TB)。TB表示色彩分量的取樣的正方形塊,其中對其應用了殘差變換(例如,在一些情況下,相同的二維變換)以對預測殘留訊號進行編碼。變換單元(TU)表示亮度和色度取樣的TB以及相應的語法元素。下文更加詳細地描述了變換編碼。
CU的大小對應於編碼模式的大小並且可以是正方形形狀。例如,CU的大小可以是8 x 8個取樣、16 x 16個取樣、32 x 32個取樣、64 x 64個取樣、或高達對應的CTU的大小的任何其他適當的大小。短語「N x N」在本文中用於代表視訊塊在垂直和水平維度態樣的圖元尺寸(例如,8個圖元x8個圖元)。塊中的圖元可以是按行和列來排列的。在一些實施例中,塊在水平方向上可以不具有與垂直方向上相同數量的圖元。與CU相關聯的語法資料可以描述例如將CU分割為一或多個PU。分割模式可以在CU是經訊框內預測模式編碼的亦是經訊框間預測模式編碼的之間而不同。PU可以被分割為非正方形形狀。與CU相關聯的語法資料亦可以例如描述根據CTU將CU分割為一或多個TU。TU可以是正方形或非正方形形狀。
根據HEVC標準,可以使用變換單元(TU)來執行變換。對於不同的CU,TU可以不同。可以基於給定CU內的PU的大小來設定TU的大小。TU可以具有與PU相同的大小或者小於PU。在一些實例中,可以使用被稱為殘差四叉樹(RQT)的四叉樹結構來將與CU相對應的殘差取樣細分為更小的單元。RQT的蔓葉線節點可以對應於TU。與TU相關聯的圖元差值可以被變換以產生變換係數。隨後可以由編碼器引擎106對變換係數進行量化。
一旦視訊資料的圖片被分割為CU,編碼器引擎106就使用預測模式來預測每個PU。隨後從原始視訊資料中減去預測單元或預測塊以獲得殘差(下文描述)。對於每個CU,可以使用語法資料在位元串流內用訊號通知預測模式。預測模式可以包括訊框內預測(或圖片內預測)或訊框間預測(或圖片間預測)。訊框內預測利用在圖片內的空間上相鄰的取樣之間的相關性。例如,使用訊框內預測,每個PU是使用例如DC預測來從相同圖片中的相鄰影像資料進行預測的以找到用於PU的平均值,使用平面預測以使平面表面適配PU,使用方向預測來從相鄰資料進行推斷,或者使用任何其他合適的預測類型。訊框間預測使用在圖片之間的時間相關性,以便推導出用於影像取樣塊的運動補償預測。例如,使用訊框間預測,每個PU是使用運動補償預測來從一或多個參考圖片(按照輸出次序在當前圖片之前或之後)中的影像資料預測的。例如,可以在CU級別處作出是使用圖片間預測還是使用圖片內預測來對圖片區域進行編碼的決定。
編碼器引擎106和解碼器引擎116(下文更加詳細地描述)可以被配置為根據VVC進行操作。根據VVC,視訊編碼裝置(coder)(例如,編碼器引擎106及/或解碼器引擎116)將圖片分割為複數個編碼樹單元(CTU)(其中亮度取樣的CTB和色度取樣的一或多個CTB連同用於取樣的語法一起被稱為CTU)。視訊編碼裝置可以根據樹結構(例如,四叉樹-二叉樹(QTBT)結構或多類型樹(MTT)結構)來分割CTU。QTBT結構去除了多種分割類型(例如,在HEVC的CU、PU和TU之間的區分)的概念。QTBT結構包括兩級,包括根據四叉樹分割而被分割的第一級、以及根據二叉樹分割而被分割的第二級。QTBT結構的根節點對應於CTU。二叉樹的葉節點對應於編碼單元(CU)。
在MTT分割結構中,可以使用四叉樹分割、二叉樹分割以及一或多個類型的三叉樹分割來對塊進行分割。三叉樹分割是其中塊被分為三個子塊的分割。在一些實例中,三叉樹分割將塊劃分為三個子塊,而不將原始塊劃分為經由中心。MTT中的分割類型(例如,四叉樹、二叉樹和三叉樹)可以是對稱的或不對稱的。
在一些實例中,視訊編碼裝置可以使用單個QTBT或M TT結構來表示亮度和色度分量中的每一者,而在其他實例中,視訊編碼裝置可以使用兩個或更多個QTBT或MTT結構,例如,用於亮度分量的一個QTBT或MTT結構以及用於兩個色度分量的另一個QTBT或MTT結構(或者用於相應色度分量的兩個QTBT及/或MTT結構)。
視訊編碼裝置可以被配置為使用每HEVC的四叉樹分割、QTBT分割、MTT分割、或其他分割結構。為了說明性目的,本文的描述可以參考QTBT分割。然而,應當理解的是,本案內容的技術亦可以應用於被配置為使用四叉樹分割或者還使用其他類型的分割的視訊編碼裝置。
在一些實例中,圖片的一或多個切片被指派切片類型。切片類型包括訊框內編碼切片(I切片)、訊框間編碼P切片和訊框間編碼B切片。I切片(訊框內編碼訊框,可獨立地解碼)是圖片的僅經由訊框內預測而編碼的切片,並且因此是可獨立解碼的,這是因為I切片僅需要訊框內的資料來預測切片的任何預測單元或預測塊。P切片(單向預測訊框)是圖片的可以利用訊框內預測和單向訊框間預測來編碼的切片。P切片內的每個預測單元或預測塊是利用訊框內預測或訊框間預測來編碼的。當應用訊框間預測時,預測單元或預測塊是僅經由一個參考圖片來預測的,並且因此參考取樣是僅來自一個訊框的一個參考區域。B切片(雙向預測訊框)是圖片的可以利用訊框內預測和訊框間預測(例如,雙向預測或單向預測)來編碼的切片。可以從兩個參考圖片來對B切片的預測單元或預測塊進行雙向預測,其中每個圖片貢獻一個參考區域,並且對兩個參考區域的取樣集進行加權(例如,具有相等的權重或具有不同的權重)以產生雙向預測塊的預測訊號。如上所解釋的,一個圖片的切片被獨立地編碼。在一些情況下,圖片可以僅被編碼為一個切片。
如上所提到的,圖片內預測利用圖片內的在空間上相鄰的取樣之間的相關性。存在複數種訊框內預測模式(亦被稱為「訊框內模式」)。在一些實例中,亮度塊的訊框內預測包括35種模式,其包括平面模式、DC模式和33種角度模式(例如,對角線訊框內預測模式和與對角線訊框內預測模式相鄰的角度模式)。如以下表1所示,對訊框內預測的35種模式進行索引。在其他實例中,可以定義更多的訊框內模式,包括可能尚未由33種角度模式表示的預測角度。在其他實例中,與角度模式相關聯的預測角度可以不同於在HEVC中使用的那些預測角度。
訊框內預測模式 相關聯的名稱
0 INTRA_PLANAR
1 INTRA_DC
2..34 INTRA_ANGULAR2..INTRA_ANGULAR34
表1-訊框內預測模式和相關聯的名稱的規範
圖片間預測使用在圖片之間的時間相關性,以便推導針對影像取樣塊的運動補償預測。使用平移運動模型,在先前解碼圖片(參考圖片)中塊的位置由運動向量(∆x,∆y )表示,其中∆x 指定參考塊相對於當前塊的位置的水平位移,而∆y 指定參考塊相對於當前塊的位置的垂直位移。在一些情況下,運動向量(∆x, ∆y )可以是整數取樣精確度(亦被稱為整數精確度),在這種情況下,運動向量指向參考訊框的整數圖元網格(或整數圖元取樣網格)。在一些情況下,運動向量(∆x, ∆y )可以具有分數取樣精確度(亦被稱為分數圖元精確度或非整數精確度),以更加準確地擷取基礎物件的運動,而不受限於參考訊框的整數圖元網格。運動向量的精確度可以經由運動向量的量化水平來表達。例如,量化水平可以是整數精確度(例如,1圖元)或分數圖元精確度(例如,¼圖元、½圖元或其他圖元以下的值)。當對應的運動向量具有分數取樣精確度時,將內插應用於參考圖片以推導預測訊號。例如,可以對在整數位置處可用的取樣進行濾波(例如,使用一或多個內插濾波器)以估計在分數位置處的值。先前經解碼的參考圖片由針對參考圖片列表的參考索引(refIdx)來指示。運動向量和參考索引可以被稱為運動參數。可以執行兩種圖片間預測,其包括單預測和雙預測。
在使用雙預測進行訊框間預測的情況下,使用兩個運動參數集(
Figure 02_image001
Figure 02_image003
Figure 02_image005
Figure 02_image007
)來產生兩個運動補償預測(來自同一參考圖片或可能來自不同的參考圖片)。例如,在雙預測的情況下,每個預測塊使用兩個運動補償預測訊號,並且產生B個預測單元。隨後,將兩個運動補償預測進行組合以獲得最終的運動補償預測。例如,可以經由進行平均來組合兩個運動補償預測。在另一實例中,可以使用加權預測,在這種情況下,可以將不同的權重應用於每個運動補償預測。可以在雙預測中使用的參考圖片被儲存在兩個單獨的列表中,分別被表示為列表0和列表1。可以在編碼器處使用運動估計程序來推導運動參數。
在使用單預測進行訊框間預測的情況下,使用一個運動參數集(
Figure 02_image001
Figure 02_image003
)來從參考圖片產生運動補償預測。例如,在單預測的情況下,每個預測塊最多使用一個運動補償預測訊號,並且產生P個預測單元。
PU可以包括與預測程序相關的資料(例如,運動參數或其他適當的資料)。例如,當PU是使用訊框內預測來編碼時,PU可以包括描述用於PU的訊框內預測模式的資料。作為另一實例,當PU是使用訊框間預測來編碼的時,PU可以包括定義用於PU的運動向量的資料。定義用於PU的運動向量的資料可以描述例如運動向量的水平分量(∆x )、運動向量的垂直分量(∆y )、用於運動向量的解析度(例如,整數精度、四分之一圖元精度、或八分之一圖元精度)、運動向量所指向的參考圖片、參考索引、用於運動向量的參考圖片列表(例如,列表0、列表1或列表C)、或其任何組合。
在使用訊框內預測及/或訊框間預測執行預測之後,編碼設備104隨後可以執行變換和量化。例如,在預測之後,編碼器引擎106可以計算與PU相對應的殘差值。殘差值可以包括在正被編碼的當前區塊(PU)與用於預測當前塊的預測塊(例如,當前塊的預測版本)之間的圖元差值。例如,在產生預測塊(例如,使用訊框間預測或訊框內預測)之後,編碼器引擎106可以經由從當前塊中減去由預測單元產生的預測塊來產生殘差塊。殘差塊包括圖元差值集合,其對在當前塊的圖元值與預測塊的圖元值之間的差進行量化。在一些實例中,可以用二維塊格式(例如,圖元值的二維矩陣或陣列)來表示殘差塊。在此類實例中,殘差塊是圖元值的二維表示。
使用塊變換來對在執行預測之後可能剩餘的任何殘差資料進行變換,塊變換可以是基於離散餘弦變換(DCT)、離散正弦變換(DST)、整數變換、小波變換、其他適當的變換函數、或其任何組合的。在一些情況下,可以將一或多個塊變換(例如,具有大小32 x 32、16 x 16、8 x 8、4 x 4或其他適當的大小的核心)應用於每個CU中的殘差資料。在一些實例中,可以將TU用於由編碼器引擎106實現的變換和量化程序。具有一或多個PU的給定CU亦可以包括一或多個TU。如下文進一步詳細描述的,殘差值可以使用塊變換而被變換為變換係數,並且隨後可以使用TU進行量化和掃瞄,以產生用於熵編碼的序列化變換係數。
在一些實例中,在使用CU的PU進行訊框內預測或訊框間預測編碼之後,編碼器引擎106可以計算用於CU的TU的殘差資料。PU可以包括空間域(或圖元域)中的圖元資料。如前所提到的,殘差資料可以對應於在未被編碼的圖片的圖元與對應於PU的預測值之間的圖元差值。編碼器引擎106可以形成包括用於CU(其包括PU)的殘差資料的一或多個TU,並且隨後可以對TU進行變換以產生用於CU的變換係數。TU可以包括在應用塊變換之後在變換域中的係數。
編碼器引擎106可以執行變換係數的量化。量化經由對變換係數進行量化以減少用於表示係數的資料量來提供進一步的壓縮。例如,量化可以減小與係數中的一些或所有係數相關聯的位元深度。在一個實例中,具有n 位元值的係數可以在量化期間向下捨入為m 位元值,其中n 大於m
一旦執行了量化,則經編碼的視訊位元串流包括經量化的變換係數、預測資訊(例如,預測模式、運動向量、塊向量等)、分割資訊以及任何其他適當的資料(諸如其他語法資料)。經編碼的視訊位元串流的不同元素隨後可以由編碼器引擎106進行熵編碼。在一些實例中,編碼器引擎106可以利用預定義的掃瞄次序來掃瞄經量化的變換係數,以產生可以被熵編碼的序列化向量。在一些實例中,編碼器引擎106可以執行自我調整掃瞄。在掃瞄經量化的變換係數以形成向量(例如,一維向量)之後,編碼器引擎106可以對該向量進行熵編碼。例如,編碼器引擎106可以使用上下文自我調整變長編碼、上下文自我調整二進位算術編碼、基於語法的上下文自我調整二進位算術編碼、概率區間分割熵編碼或另一種適當的熵編碼技術。
編碼設備104的輸出110可以在通訊鏈路120上將構成經編碼的視訊位元串流資料的NAL單元發送給接收設備的解碼設備112。解碼設備112的輸入114可以接收NAL單元。通訊鏈路120可以包括由無線網路、有線網路或有線網路和無線網路的組合提供的通道。無線網路可以包括任何無線介面或無線介面的組合,並且可以包括任何適當的無線網路(例如,網際網路或其他廣域網、基於封包的網路、WiFiTM 、射頻(RF)、UWB、WiFi直連、蜂巢、長期進化(LTE)、WiMaxTM 等)。有線網路可以包括任何有線介面(例如,光纖、乙太網路、電力線乙太網路、同軸電纜乙太網路、數位訊號線(DSL)等)。可以使用各種裝置來實現有線及/或無線網路,諸如基地台、路由器、存取點、橋接器、閘道、交換機等。可以根據諸如無線通訊協定之類的通訊標準來調制經編碼的視訊位元串流資料,並且將其發送給接收設備。
在一些實例中,編碼設備104可以將經編碼的視訊位元串流資料儲存在儲存單元108中。輸出110可以從編碼器引擎106或從儲存單元108取得經編碼的視訊位元串流資料。儲存單元108可以包括各種分散式或本端存取的資料儲存媒體中的任何一種。例如,儲存單元108可以包括硬碟、儲存盤、快閃記憶體、揮發性或非揮發性記憶體、或用於儲存經編碼的視訊資料的任何其他適當的數位儲存媒體。儲存單元108亦可以包括用於儲存供在訊框間預測中使用的參考圖片的解碼圖片緩衝器(DPB)。在另外的實例中,儲存單元108可以對應於檔案伺服器或可以儲存由源設備產生的經編碼的視訊的另一中間存放裝置。在此類情況下,包括解碼設備112的接收設備可以經由流式或下載來從存放裝置存取被儲存的視訊資料。檔案伺服器可以是能夠儲存經編碼的視訊資料並且將該經編碼的視訊資料發送給接收設備的任何類型的伺服器。實例檔案伺服器包括網頁伺服器(例如,用於網站)、FTP伺服器、網路附加儲存(NAS)設備或本端磁碟機。接收設備可以經由任何標準資料連接(包括網際網路連接)來存取經編碼的視訊資料。這可以包括適於存取被儲存在檔案伺服器上的經編碼的視訊資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、纜線數據機等)或這兩者的組合。經編碼的視訊資料從儲存單元108的傳輸可以是流式傳輸、下載傳輸或其組合。
解碼設備112的輸入114接收經編碼的視訊位元串流資料,並且可以將視訊位元串流資料提供給解碼器引擎116,或者提供給儲存單元118以供解碼器引擎116稍後使用。例如,儲存單元118可以包括用於儲存供在訊框間預測中使用的參考圖片的DPB。包括解碼設備112的接收設備可以經由儲存單元108來接收要被解碼的經編碼的視訊資料。可以根據諸如無線通訊協定之類的通訊標準來對經編碼的視訊資料進行調制,並且將其發送給接收設備。用於發送經編碼的視訊資料的通訊媒體可以包括任何無線或有線通訊媒體,諸如射頻(RF)頻譜或一或多條實體傳輸線。通訊媒體可以形成基於封包的網路的一部分,諸如區域網路、廣域網或諸如網際網路之類的全球網路。通訊媒體可以包括路由器、交換機、基地台、或可以用於促進從源設備到接收設備的通訊的任何其他裝置。
解碼器引擎116可以經由熵解碼(例如,使用熵解碼器)並且提取構成經編碼的視訊資料的一或多個經編碼的視訊序列的元素,從而對經編碼的視訊位元串流資料進行解碼。解碼器引擎116隨後可以重新縮放經編碼的視訊位元串流資料並且對其執行逆變換。殘差資料隨後被傳遞到解碼器引擎116的預測階段。解碼器引擎116隨後預測區塊(例如,PU)。在一些實例中,將預測與逆變換的輸出(殘差資料)相加。
視訊解碼設備112可以將經解碼的視訊輸出到視訊目的地設備122,視訊目的地設備122可以包括用於將經解碼的視訊資料顯示給內容的消費者的顯示器或其他輸出設備。在一些態樣中,視訊目的地設備122可以是包括解碼設備112的接收設備的一部分。在一些態樣中,視訊目的地設備122可以是不同於接收設備的單獨設備的一部分。
在一些實例中,視訊編碼設備104及/或視訊解碼設備112可以分別與音訊編碼設備和音訊解碼設備整合。視訊編碼設備104及/或視訊解碼設備112亦可以包括用於實現上述編碼技術所必需的其他硬體或軟體,諸如一或多個微處理器、數位訊號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式設計閘陣列(FPGA)、個別邏輯、軟體、硬體、韌體或其任何組合。視訊編碼設備104和視訊解碼設備112可以被整合為在相應設備中的組合編碼器/解碼器(轉碼器)的一部分。
圖1中示出的實例系統僅是可以在本文中使用的一個說明性實例。用於使用本文描述的技術來處理視訊資料的技術可以由任何數位視訊編碼及/或解碼設備來執行。儘管一般來說,本案內容的技術是由視訊編碼設備或視訊解碼設備來執行的,但是該等技術亦可以由通常被稱為「CODEC」的組合視訊轉碼器-解碼器來執行。此外,本案內容的技術亦可以由視訊前置處理器來執行。源設備和接收設備僅是此類編碼設備的實例,其中源設備產生經編碼的視訊資料以用於傳輸給接收設備。在一些實例中,源設備和接收設備可以以基本上對稱的方式進行操作,使得這些設備之每一者設備包括視訊編碼和解碼用部件。因此,實例系統可以支援在視訊設備之間的單向或雙向視訊傳輸,例如,以用於視訊流式、視訊重播、視訊廣播或視訊電話。
HEVC標準的擴展包括被稱為MV-HEVC的多視圖視訊編碼擴展、以及被稱為SHVC的可伸縮視訊編碼擴展。MV-HEVC和SHVC擴展共享分層編碼的概念,其中不同的層被包括在經編碼的視訊位元串流中。經編碼的視訊序列之每一者層是經由唯一的層辨識符(ID)來定址的。可以在NAL單元的標頭中存在層ID,以標識NAL單元所關聯的層。在MV-HEVC中,不同的層通常表示視訊位元串流中的相同場景的不同視圖。在SHVC中,提供了以不同的空間解析度(或圖片解析度)或不同的重構保真度來表示視訊位元串流的不同的可伸縮層。可伸縮層可以包括基本層(其中層ID = 0)和一或多個增強層(其中層ID = 1, 2, …n )。基本層可以符合HEVC的第一版本的簡檔,並且表示位元串流中的最低可用層。與基本層相比,增強層具有增加的空間解析度、時間解析度或畫面播放速率及/或重構保真度(或品質)。增強層是分層次來組織的,並且可以依賴於(或者可以不依賴於)較低層。在一些實例中,可以使用單標準轉碼器對不同的層進行編碼(例如,使用HEVC、SHVC或其他編碼標準對所有層進行編碼)。在一些實例中,可以使用多標準轉碼器對不同的層進行編碼。例如,可以使用AVC對基本層進行編碼,而可以使用SHVC及/或HEVC標準的MV-HEVC擴展來對一或多個增強層進行編碼。
如前述,對於每個區塊,運動資訊(本文中亦被稱為運動參數)集合可以是可用的。運動資訊集合可以包含用於前向預測方向和後向預測方向的運動資訊。此處,前向預測方向和後向預測方向可以是雙向預測模式的兩個預測方向,並且術語「前向」和「後向」不一定具有幾何含義。相反,前向和後向可以對應於當前圖片、切片或塊的參考圖片列表0(RefPicList0)和參考圖片列表1(RefPicList1)。在一些實例中,當僅有一個參考圖片列表可用於圖片、切片或塊時,僅有RefPicList0是可用的,並且切片的每個區塊的運動資訊總是前向的。在一些實例中,RefPicList0包括在時間上在當前圖片之前的參考圖片,而RefPicList1包括在時間上跟隨在當前圖片之後的參考圖片。在一些情況下,在解碼程序中使用運動向量連同相關聯的參考索引。具有相關聯的參考索引的這種運動向量被表示為運動資訊的單預測集合。
對於每個預測方向,運動資訊可以包含參考索引和運動向量。在一些情況下,為了簡單起見,運動向量可以具有相關聯的資訊,根據該資訊,可以假定運動向量具有相關聯的參考索引。參考索引可以用於標識當前參考圖片列表(RefPicList0或RefPicList1)中的參考圖片。運動向量可以具有水平分量和垂直分量,其提供從當前圖片中的座標位置到由參考索引標識的參考圖片中的座標位置的偏移。例如,參考索引可以指示應當用於當前圖片中的塊的特定參考圖片,並且運動向量可以指示在參考圖片中最佳匹配的塊(與當前塊最佳匹配的塊)在參考圖片中位於何處。
可以在視訊編碼標準中使用圖片順序計數(POC)來標識圖片的顯示順序。儘管存在一個經編碼的視訊序列內的兩個圖片可能具有相同的POC值的情況,但是在一個經編碼的視訊序列內,通常不會出現具有相同的POC的兩個圖片。當在位元串流中存在多個經編碼的視訊序列時,具有相同的POC值的圖片在解碼順序態樣可能彼此更接近。圖片的POC值可以用於參考圖片列表構造(如在HEVC中的參考圖片集推導)及/或運動向量縮放以及其他事項。
在H.264/AVC中,每個訊框間巨集塊(MB)可以被分割為四種不同的方式,包括:一個16x16巨集 塊分區;兩個16x8巨集塊分區;兩個8x16巨集塊分區;及四個8x8巨集塊分區、以及其他分區。一個巨集塊中的不同巨集塊分區可以具有針對每個預測方向的不同的參考索引值(例如,針對RefPicList0和RefPicList1的不同的參考索引值)。
在一些情況下,當巨集塊未被分割為四個8x8巨集塊分區時,其在每個預測方向上可以僅具有針對每個巨集塊分區的一個運動向量。在一些情況下,當巨集塊被分割為四個8x8巨集塊分區時,每個8x8巨集塊分區可以被進一步分割為子塊,每個子塊在每個預測方向上可以具有不同的運動向量。可以以不同的方式來將8x8巨集塊分區劃分為子塊,包括:一個8x8子塊;兩個8x4子塊;兩個4x8子塊;及四個4x4子塊;及其他子塊。每個子塊在每個預測方向上可以具有不同的運動向量。因此,運動向量可以以等於或高於子塊的級別存在。
在HEVC中,切片中的最大編碼單元被稱為編碼樹塊(CTB)或編碼樹單元(CTU)。CTB包含四叉樹,其節點是編碼單元。在HEVC主簡檔中,CTB的大小範圍可以從16x16圖元到64x64圖元。在一些情況下,可以支援8x8圖元的CTB大小。可以以四叉樹方式來使CTB被遞迴地分為編碼單元(CU)。CU可以具有與CTB相同的大小,並且小至8x8圖元。在一些情況下,可以利用一種模式(例如,訊框內預測模式或訊框間預測模式)來對每個編碼單元進行編碼。當使用訊框間預測模式來對CU進行訊框間編碼時,CU可以被進一步分割為兩或四個預測單元(PU),或者當進一步分割不適用時,CU可以被視為一個PU。當在一個CU中存在兩個PU時,兩個PU可以是一半大小的矩形,或者是作為CU的1/4或3/4大小的兩個矩形。
當CU被訊框間編碼時,針對每個PU可以存在一個運動資訊集合,PU可以是利用唯一的訊框間預測模式來推導的。例如,每個PU可以是利用一種訊框間預測模式來編碼的,以推導運動資訊集合。在一些情況下,當使用訊框內預測模式來對CU進行訊框內編碼時,PU形狀可以是2Nx2N和NxN。在每個PU內,對單一訊框內預測模式進行編碼(而色度預測模式是以CU級別用訊號通知的)。在一些情況下,在當前CU大小等於在SPS中定義的最小CU大小時,允許NxN訊框內PU形狀。
對於HEVC中的運動預測,存在用於預測單元(PU)的兩種訊框間預測模式,包括合併模式和高級運動向量預測(AMVP)模式。跳過被視為合併的特殊情況。在AMVP模式或合併模式下,可以維護針對多個運動向量預測器的運動向量(MV)候選列表。在合併模式下當前PU的運動向量以及參考索引是經由從MV候選列表中選取一個候選來產生的。
在一些實例中,MV候選列表包含用於合併模式的多達五個候選以及用於AMVP模式的兩個候選。在其他實例中,可以將不同數量的候選包括在用於合併模式及/或AMVP模式的MV候選列表中。合併候選可以包含運動資訊集合。例如,運動資訊集合可以包括與兩個參考圖片列表(列表0和列表1)相對應的運動向量以及參考索引。若合併候選是經由合併索引來標識的,則參考圖片被用於當前塊的預測,以及決定關聯的運動向量。然而,在AMVP模式下,針對來自列表0或列表1的每個潛在預測方向,需要將參考索引連同對MV候選列表的MV預測器(MVP)索引一起明確地用訊號通知,這是因為AMVP候選僅包含運動向量。在AMVP模式中,可以進一步細化預測運動向量。
合併候選可以對應於完整的運動資訊集合,而AMVP候選可以包含用於特定預測方向的一個運動向量和參考索引。可以類似地從相同的空間和時間相鄰塊來推導用於兩種模式的候選。
在一些實例中,合併模式允許訊框間預測的PU從如下的訊框間預測的PU繼承相同的一或多個運動向量、預測方向以及一或多個參考圖片索引:該訊框間預測的PU包括從一組空間上相鄰的運動資料位置中選擇的運動資料位置以及兩個時間上同位的運動資料位置中的一個運動資料位置。對於AMVP模式,可以相對於來自由編碼器構造的AMVP候選列表中的一或多個運動向量預測器(MVP),來對PU的一或多個運動向量進行預測編碼。在一些情況下,對於PU的單方向訊框間預測,編碼器可以產生單個AMVP候選列表。在一些情況下,對於PU的雙向預測,編碼器可以產生兩個AMVP候選列表,一個使用來自前向預測方向的空間和時間相鄰的PU的運動資料,以及一個使用來自後向預測方向的空間和時間相鄰的PU的運動資料。
用於兩種模式的候選可以從空間及/或時間相鄰塊來推導。例如,圖2A和圖2B包括示出空間相鄰候選的概念圖。圖2A圖示用於合併模式的空間相鄰運動向量(MV)候選。圖2B圖示用於AMVP模式的空間相鄰運動向量(MV)候選。儘管對於合併和AMVP模式,根據塊來產生候選的方法不同,但是根據用於特定PU(PU0)的相鄰塊來推導空間MV候選。
在合併模式下,編碼器可以經由考慮來自各種運動資料位置的合併候選來形成合併候選列表。例如,如圖2A所示,關於在圖2A中以數字0-4示出的空間上相鄰的運動資料位置,可以推導出多達四個空間MV候選。在合併候選列表中,MV候選可以按照由數位0-4所示的順序進行排序。例如,位置和順序可以包括:左側位置(0)、上方位置(1)、右上方位置(2)、左下方位置(3)和左上方位置(4)。在圖2A中,塊200包括PU0 202和PU1 204。在一些實例中,當視訊編碼裝置將使用合併模式對用於PU0 202的運動資訊進行編碼時,視訊編碼裝置可以按照上述順序將來自空間相鄰塊210-218的運動資訊添加到候選列表中。
在圖2B中所示的AVMP模式下,可以將相鄰塊劃分為兩組:包括塊0和1的左側組、以及包括塊2、3和4的上方組。在圖2B中,塊0、1、2、3和4分別被標記為塊230、232、234、236和238。此處,塊220包括PU0 222和PU1 224,並且塊230、232、234、236和238表示與PU0 222的空間鄰點。對於每個組,在相鄰塊中的引用與用訊號通知的參考索引所指示的參考圖片相同的參考圖片的潛在候選具有最高優先順序,以被選擇以形成該組的最終候選。可能的是,所有的相鄰塊皆不包含指向同一參考圖片的運動向量。因此,若無法找到此類候選,則可以將第一可用候選進行縮放以形成最終候選,因此可以補償時間距離差。
圖3A和圖3B包括示出時間運動向量預測的概念圖。圖3A圖示包括PU0 302和PU1 304的實例CU 300。PU0 302包括用於PU0 302的中心塊310和PU0 302的右下塊306。圖3A亦圖示外部塊308,用於外部塊308的運動資訊可以是從PU0 302的運動資訊來預測的,如下所論述的。圖3B圖示包括要預測用於其的運動資訊的當前塊326的當前圖片342。圖3B亦圖示針對當前圖片342的同位圖片330(包括針對當前塊326的同位塊324)、當前參考圖片342和同位參考圖片332。同位塊324是使用同位運動向量320來預測的,同位運動向量320用作用於塊326的運動資訊的時間運動向量預測器(TMVP)322。
視訊編碼裝置將時間運動向量預測器(TMVP)候選(例如,TMVP 322)(若啟用並且可用的話)添加到MV候選列表中在任何空間運動向量候選之後。針對TMVP候選的運動向量推導的程序對於合併和AMVP模式兩者而言是相同的。然而,在一些情況下,在合併模式下針對TMVP候選的目標參考索引總是被設置為零。
如圖3A所示,用於TMVP候選推導的主要塊位置是在同位PU 304外部的右下塊306,以補償與用於產生空間相鄰候選的上方和左側塊的偏差。然而,若塊306位於當前CTB(或LCU)行外部(例如,如圖3A中的塊308所示)或者若用於塊306的運動資訊是不可用的,則將該塊替換為PU 302的中心塊310。
參考圖3B,可以從以切片級別指示的同位圖片330的同位塊324來推導用於TMVP候選322的運動向量。類似於AVC中的時間直接模式,可以對TMVP候選的運動向量進行運動向量縮放,這可以被執行以補償在當前圖片342與當前參考圖片340以及在同位圖片330與同位參考圖片332之間的距離差。亦即,可以基於在當前圖片(例如,當前圖片342)與當前參考圖片(例如,當前參考圖片340)以及同位圖片(例如,同位圖片330)與同位參考圖片(例如,同位參考圖片332)之間的距離差來對運動向量320進行縮放,以產生TVMP候選322。
亦在HEVC、VVC和其他視訊編碼規範中涵蓋了運動預測的其他態樣。例如,一個態樣包括運動向量縮放。在運動向量縮放中,假定運動向量的值是與在呈現時間中的圖片之間的距離成比例的。在一些實例中,第一運動向量可以與兩個圖片(包括第一參考圖片和包括第一運動向量的第一包含圖片)相關聯。可以利用第一運動向量來預測第二運動向量。為了預測第二運動向量,可以基於與第一運動的第一參考圖片和第一包含圖片相關聯的圖片順序計數(POC)值來計算第一包含圖片和第一參考圖片之間的第一距離。
第二參考圖片和第二包含圖片可以與要被預測的第二運動向量相關聯,其中第二參考圖片可以與第一參考圖片不同,並且第二包含圖片可以是與第一包含圖片不同的。可以基於與第二參考圖片和第二包含圖片相關聯的POC值,來計算第二參考圖片與第二包含圖片之間的第二距離,其中第二距離可以是與第一距離不同的。為了預測第二運動向量,可以基於第一距離和第二距離來對第一運動向量進行縮放。對於在空間上相鄰的候選,第一運動向量和第二運動向量的第一包含圖片和第二包含圖片可以分別是相同的,而第一參考圖片和第二參考圖片可以是不同的。在一些實例中,運動向量縮放可以應用於針對空間和時間相鄰候選的TMVP和AMVP模式。
運動預測的另一態樣包括人工運動向量候選產生。例如,若運動向量候選列表是不完整的,則產生人工運動向量候選並且將其插入到運動向量候選列表的末尾處,直到獲得所有候選為止。在合併模式下,存在兩種類型的人工MV候選:第一種類型,其包括僅針對B切片來推導的組合候選;及第二種類型,其包括僅用於AMVP的零候選(若第一種類型沒有提供足夠的人工候選的話)。對於已經在運動向量候選列表中並且具有必要的運動資訊的每對候選而言,可以經由參考在列表0中的圖片的第一候選的運動向量和參考在列表1中的圖片的第二候選的運動向量的組合,來推導雙向組合運動向量候選。
合併和AMVP模式的另一態樣包括用於候選插入的修剪程序。例如,來自不同塊的候選可能恰好是相同的,這降低了合併及/或AMVP候選列表的效率。可以應用修剪程序來解決此問題。修剪程序包括將候選與在當前候選列表中已經存在的候選進行比較,以避免插入相同或重複的候選。為了降低比較的複雜度,可以針對少於要被插入候選列表中的所有潛在候選來執行修剪程序。
在一些實例中,可以實現增強的運動向量預測。例如,在諸如VVC之類的視訊編碼標準中指定了一些訊框間編碼工具,根據這些工具,可以推導或細化針對當前塊的運動向量預測或合併預測的候選列表。下文描述了此類方法的實例。
基於歷史的運動向量預測(HMVP)是如下的運動向量預測方法:該方法允許每個區塊除了找到緊鄰的具有因果關係的相鄰運動場中的那些MV預測器之外,亦從過去解碼的MV列表中找到其MV預測器。例如,使用HMVP,除了緊鄰的具有因果關係的相鄰運動場中的那些MV預測器之外,亦可以從先前解碼的MV列表中獲得或預測用於當前塊的一或多個MV預測器。先前解碼的MV列表中的MV預測器被稱為HMVP候選。HMVP候選可以包括與訊框間編碼塊相關聯的運動資訊。可以在針對切片的編碼及/或解碼程序期間維護具有多個HMVP候選的HMVP表。在一些實例中,可以動態地更新HMVP表。例如,在對訊框間編碼塊進行解碼之後,可以經由將經解碼的訊框間編碼塊的相關聯的運動資訊作為新的HMVP候選添加到HMVP表中來更新HMVP表。在一些實例中,當遇到新切片時,可以清空HMVP表。
在一些情況下,每當存在訊框間編碼塊時,就可以以先進先出(FIFO)的方式將相關聯的運動資訊作為新的HMVP候選插入到表中。可以應用約束FIFO規則。當將HMVP插入到表中時,可以首先應用冗餘檢查以檢視在該表中是否存在相同的HMVP。若找到的話,則可以從該表中去除該特定HMVP,並且隨後移動所有HMVP候選。
在一些實例中,可以在合併候選列表構造程序中使用HMVP候選。在一些情況下,將來自表中的最後一個條目到第一個條目的所有HMVP候選插入到TMVP候選之後。可以對HMVP候選應用修剪。一旦可用合併候選的總數達到用訊號通知的最大允許合併候選,就可以終止合併候選列表構造程序。
在一些實例中,可以在AMVP候選列表構造程序中使用HMVP候選。在一些情況下,將表中的最後K個HMVP候選的運動向量插入到TMVP候選之後。在一些實現方式中,僅將具有與AMVP目標參考圖片相同的參考圖片的HMVP候選用於構造AMVP候選列表。可以對HMVP候選應用修剪。
圖4是示出HMVP表400的實例的方塊圖。在一些實例中,HMVP表400可以被實現為使用先進先出(FIFO)規則管理的存放裝置及/或結構。例如,包括MV預測器的HMVP候選可以被儲存在HMVP表400中。HMVP候選可以按照它們被編碼或解碼的順序來儲存。在一個實例中,HMVP候選被儲存在HMVP表400中的順序可以對應於HMVP候選被構造的時間。例如,當在諸如解碼設備112之類的解碼器中實現時,HMVP候選可以被構造為包括經解碼的訊框間編碼塊的運動資訊。在一些實例中,來自HMVP表400的一或多個HMVP候選可以包括運動向量預測器,其可以用於針對要被解碼的當前塊的運動向量預測。在一些實例中,一或多個HMVP候選可以包括一或多個此類先前解碼的塊,其中可以採用FIFO方式將它們以它們被解碼的順序來儲存在HMVP表400的一或多個條目中。
HMVP候選索引402被示為與HMVP表400相關聯。HMVP候選索引402可以標識HMVP表400的一或多個條目。根據一個說明性實例,HMVP候選索引402被示為包括索引值0到4,其中HMVP候選索引402的每個索引值與對應的條目相關聯。在其他實例中,HMVP表400可以包括與參考圖4示出且描述的那些條目相比較多或較少的條目。當構造HMVP候選時,它們以FIFO方式被填充在HMVP表400中。例如,隨著HMVP候選被解碼,它們在一端被插入到HMVP表400中,並且順序地移動經由HMVP表400的條目,直到它們從另一端離開HMVP表400為止。因此,在一些實例中,諸如移位暫存器之類的記憶體結構可以用於實現HMVP表400。
在一個實例中,索引值0可以指向HMVP表400的第一條目,其中該第一條目可以對應於HMVP表400的在其處插入HMVP候選的第一端。相應地,索引值4可以指向HMVP表400的第二條目,其中第二條目可以對應於HMVP表400的HMVP候選從其退出HMVP表400或從HMVP表400中被清空的第二端。因此,在索引值0處的第一條目處被插入的HMVP候選可以遍歷HMVP表400,以便為較新的或最近解碼的HMVP候選騰出空間,直到HMVP候選到達索引值4處的第二條目為止。因此,在任何給定的時間處存在於HMVP表400中的HVMP候選當中,索引值4處的第二條目中的HMVP候選可以是最舊的或最早的,而索引值0處的第一條目中的HMVP候選可以是最新或最近的。通常,與第一條目中的HMVP候選相比,第二條目中的HMVP候選可以是較舊或較早構造的HMVP候選。
在圖4中,利用元件符號400A、400B和400C來標識HMVP表400的不同狀態。參照狀態400A,HMVP候選HMVP0至HMVP4被示為存在於HMVP表400的相應的索引值4至0處的條目中。例如,HMVP0可以是被插入到HMVP表400中的在索引值0處的第一條目處的最舊或最早的HMVP候選。HMVP0可以被順序地移位以便為較早插入的和較新的HMVP候選HMVP1至HMVP4騰出空間,直到HMVP0到達在狀態400A中所示的索引值4處的第二條目為止。相應地,HMVP4可以是要被插入到索引值0的第一條目中的最近的HMVP候選。因此,相對於HMVP4,HMVP0是HMVP表400中的較舊或較早的HMVP候選。
在一些實例中,HMVP候選HMVP0至HMVP4中的一者或多者可以包括可能是冗餘的運動向量資訊。例如,冗餘HMVP候選可以包括運動向量資訊,該運動向量資訊是與被儲存在HMVP表400中的一或多個其他HMVP候選中的運動向量資訊相同的。由於冗餘HMVP候選的運動向量資訊可以從一或多個其他HMVP候選來獲得,所以可以避免將冗餘HMVP候選儲存在HMVP表400中。經由避免將冗餘HMVP候選儲存在HMVP表400中,可以更高效地利用HMVP表400的資源。在一些實例中,在將HMVP候選儲存在HMVP表400中之前,可以執行冗餘檢查以決定HMVP候選是否將是冗餘的(例如,可以將HMVP候選的運動向量資訊與已經儲存的其他HMVP候選的運動向量資訊進行比較,以決定是否存在匹配)。
在一些實例中,HMVP表400的狀態400B是上述冗餘檢查的概念性圖示。在一些實例中,可以在對HMVP候選進行解碼時將它們填充在HMVP表400中,並且冗餘檢查可以週期性地執行,而不是在儲存HMVP候選之前作為閾值測試來執行。例如,如狀態400B所示,可以將HMVP候選HMVP1和HMVP3標識為冗餘候選(例如,它們的運動資訊是與HMVP表400中的其他HMVP候選之一的運動資訊相同的)。可以去除冗餘HMVP候選HMVP1和HMVP3,並且可以相應地將剩餘的HMVP候選移位。
例如,如狀態400C中所示,HMVP候選HMVP2和HMVP4朝著與較舊條目相對應的較高索引值而被移位,而已經在HMVP表400的末端的第二條目中的HMVP0被示為未進一步移位。在一些實例中,將HMVP候選HMVP2和HMVP4移位可以為較新的HMVP候選釋放HMVP表400中的空間。因此,新的HMVP候選HMVP5和HMVP6被示為移位到HMVP表400中,其中HMVP6是最新的或包括最近解碼的運動向量資訊,並且被儲存在索引值0處的第一條目中。
在一些實例中,來自HMVP表400的HMVP候選中的一者或多者可以用於構造可以用於當前塊的運動預測的其他候選列表。例如,可以將來自HMVP表400的一或多個HMVP候選添加到合併候選列表中,例如作為額外的合併候選。在一些實例中,可以將來自相同HMVP表400或另一此類HMVP表的一或多個HMVP候選添加到高級運動向量預測(AMVP)候選列表中,例如作為額外的AMVP預測器。
例如,在合併候選列表構造程序中,可以將被儲存在HMVP表400的條目中的一些或所有HMVP候選插入到合併候選列表中。在一些實例中,在合併候選列表中插入HMVP候選可以包括在合併候選列中的時間運動向量預測器(TMVP)候選之後插入HMVP候選。如先前參考圖3A和圖3B所論述的,若TMVP候選被啟用並且可用,則可以將其添加到MV候選列表中在空間運動向量候選之後。
在一些實例中,可以在構造合併候選列表時對HMVP候選應用上述修剪程序。例如,一旦合併候選列表中的合併候選的總數達到可允許合併候選的最大數量,則可以終止合併候選列表構造程序,並且可以不再將更多的HMVP候選插入到合併候選列表中。合併候選列表中的可允許合併候選的最大數量可以是預定數量或者可以例如從編碼器用訊號通知給解碼器的可以以其來構造合併候選列表的數量。
在構造合併候選列表的一些實例中,可以在合併候選列表中插入一或多個其他候選。在一些實例中,與當前塊不鄰接的先前經編碼的塊的運動資訊可以用於更高效的運動向量預測。例如,可以在構造合併候選列表中使用非鄰接的空間合併候選。在一些情況下,對非鄰接的空間合併候選的構造(例如,在JVET-K0228中描述的,據此將JVET-K0228經由引用的方式整體地併入並且用於所有目的)涉及從兩個非鄰接的相鄰位置推導新的空間候選(例如,從在左側/上方最接近的非鄰接塊,如圖5所示並且下文論述的)。可以將這些塊限制在到當前塊的1個CTU的最大距離內。非鄰接候選的提取程序從在垂直方向上追溯先前經解碼的塊開始。當遇到訊框間塊或者追溯後退距離達到1個CTU大小時,垂直反向追溯停止。隨後,提取程序在水平方向上追溯先前經解碼的塊。用於停止水平提取程序的準則取決於垂直的非鄰接候選是否被成功提取。若沒有提取出垂直的非鄰接候選,則在遇到訊框間塊或者追溯後退距離超過一個CTU大小閾值時,水平提取程序停止。若存在所提取的垂直的非鄰接候選,則當遇到包含來自垂直的非鄰接候選的不同MV的訊框間塊或者追溯後退距離超過CTU大小閾值時,水平提取程序停止。在一些實例中,可以在合併候選列表中的TMVP候選之前插入非鄰接空間合併候選。
在一些實例中,可以在相同合併候選列表中的TMVP候選之前插入非鄰接空間合併候選,其可以包括在TMVP候選之後插入的HMVP候選中的一或多個HMVP候選。下文將參考圖5來描述辨識和提取可以被插入到合併候選列表中的一或多個非鄰接空間合併候選。
如本文中進一步描述的,在一些實例中,HMVP表400中的一或多個HMVP候選可以包括使用仿射運動向量預測來產生的仿射運動向量。例如,塊可以具有使用仿射運動向量預測而計算的多個仿射運動向量。然而,不是將用於塊的多個運動向量儲存在HMVP表400中,而是可以針對該塊來產生單個仿射運動向量並且將其儲存在HMVP表400中。在一些情況下,可以針對塊的特定位置來產生單個仿射運動向量及/或產生對應於塊的特定位置的單個仿射運動向量。例如,在一些情況下,可以針對塊的中心位置來產生仿射運動向量,並且可以將針對塊的中心位置來產生的仿射運動向量儲存在HMVP表400中。因此,代替儲存用於塊的多個仿射運動向量,而是針對該塊來產生單個仿射運動向量,並且將其儲存在HMVP表400中。
圖5是示出圖片或切片500的方塊圖,圖片或切片500包括要被編碼的當前塊502。在一些實例中,可以構造用於對當前塊502進行編碼的合併候選列表。例如,可以從合併候選列表中的一或多個合併候選來獲得用於當前塊的運動向量。合併候選列表可以包括決定非鄰接空間合併候選。例如,非鄰接空間合併候選可以包括從相對於當前塊502的兩個非鄰接的相鄰位置推導的新的空間候選。
圖示當前塊502的若干鄰接或相鄰塊,包括左上塊B2 510(在當前塊502上方且左側)、上方塊B1 512(在當前塊502上方)、右上塊B0 514(在當前塊502上方且右側)、左側塊A1 516(在當前塊502左側)以及左下方塊A0 518(在當前塊502左側且下方)。在一些實例中,可以從在當前塊的上方及/或左側的最接近的非鄰接塊之一獲得非鄰接空間合併候選。
在一些實例中,用於當前塊502的非鄰接空間合併候選可以包括在垂直方向(在當前塊502上方)及/或水平方向(在當前塊502的左側)追溯先前經解碼的塊。垂直追溯後退距離504指示相對於當前塊502(例如,當前塊502的頂部邊界)的垂直距離和垂直非鄰接塊VN 520。水平追溯後退距離508指示相對於當前塊502(例如,當前塊502的左邊界)的水平距離和水平非鄰接塊HN 522。垂直追溯後退距離504和水平追溯後退距離508被限制為等於一個編碼樹單元(CTU)的最大距離。
可以經由分別在垂直方向和水平方向上追溯先前經解碼的塊來辨識諸如垂直非鄰接塊VN 520和水平非鄰接塊HN 522之類的非鄰接空間合併候選。例如,提取垂直非鄰接塊VN 520可以包括垂直反向追溯程序,以決定在垂直追溯後退距離504內是否存在訊框間編碼塊(被約束為一個CTU的最大大小)。若存在此類塊,則將其辨識為垂直非鄰接塊VN 520。在一些實例中,可以在垂直反向追溯程序之後執行水平反向追溯程序。水平反向追溯程序可以包括決定在水平追溯後退距離506內是否存在訊框間編碼塊(被約束為一個CTU的最大大小),並且若找到此類塊,則將其辨識為水平非鄰接塊HN 522。
在一些實例中,垂直非鄰接塊VN 520和水平非相鄰塊HN 522中的一者或多者可以被提取以用作非鄰接空間合併候選。若在垂直反向追溯程序中辨識出垂直非鄰接塊VN 520,則提取程序可以包括提取垂直非鄰接塊VN 520。隨後,提取程序可以繼續進行水平反向追溯程序。若在垂直反向追溯程序中未辨識出垂直非鄰接塊VN 520,則當遇到訊框間編碼塊或者水平追溯後退508距離超過最大距離時,可以終止水平反向追溯程序。若辨識並且提取出垂直非鄰接塊VN 520,則當遇到包含與被包含在垂直非鄰接塊VN 520中的MV不同的MV的訊框間編碼塊或者若水平追溯後退508距離超過最大距離時,終止水平反向追溯程序。如前所提到的,在合併候選列表中的TMVP候選之前,添加所提取的非鄰接空間合併候選(例如,垂直非鄰接塊VN 520和水平非鄰接塊HN 522)中的一者或多者。
返回參考圖4,在一些情況下,HMVP候選亦可以在構造AMVP候選列表時使用。在AMVP候選列表構造程序中,可以將被儲存在相同HMVP表400(或與用於合併候選列表構造的HMVP表不同的HMVP表)的條目中的一些或所有HMVP候選插入到AMVP候選列表中。在一些實例中,在AMVP候選列表中插入HMVP候選可以包括在AMVP候選列表中的TMVP候選之後插入HMVP候選的條目集合(例如,k 個最新或最早條目的數量)。在一些實例中,可以在構造AMVP候選列表時對HMVP候選應用上述修剪程序。在一些實例中,僅具有與AMVP目標參考圖片相同的參考圖片的那些HMVP候選可以用於構造AMVP候選列表。
因此,基於歷史的運動向量預測器(HMVP)預測模式可以涉及使用基於歷史的查閱資料表,例如包括一或多個HMVP候選的HMVP表400。HMVP候選可以在訊框間預測模式下使用,例如合併模式和AMVP模式。在一些實例中,不同的訊框間預測模式可以使用不同的方法來從HMVP表400中選擇HMVP候選。
在一些情況下,可以使用替代運動向量預測設計。例如,可以利用用於空間MVP(S-MVP)預測和時間MVP(T-MVP)預測的替代設計。例如,在合併模式的一些實現方式中(在一些情況下,合併模式可以被稱為跳過模式或直接模式),可以按照在圖6A、圖6B和圖6C中所示的給定順序來存取(或搜尋或選擇)在這些圖中所示的空間和時間MVP候選,以填充MVP列表。圖6A圖示MVP候選的位置。例如,在MVP預測中利用的空間和時間位置如圖6A所示。在圖6B中示出用於S-MVP的存取順序(或搜尋順序或選擇順序)的實例。在圖6C中圖示空間反向圖案(與圖6B中的順序相比)替代。
在一些實例中,用作用於當前塊620的MVP候選的空間鄰點可以包括塊A (602)、B (604)、(C (606), A1 (610)|B1 (614))、A0 (608)、B2 (616),其可以以在圖6B中標記並且下文描述的存取順序,利用兩階段程序來實現。
在一些實例中,第一組(例如,組1)可以包括具有存取順序0的塊A (602)、具有存取順序1的B (604)和具有存取順序2的C (606),C (606)可以是與HEVC標記法中的B0 (612)同位的。根據中心塊C (606)中的MVP的可用性和塊分割的類型,第一組亦可以包括具有存取順序3的塊A1 (610)或具有存取順序3的B1 (614)。第二組(例如,組2)可以包括具有存取順序5的塊A0 (608)和具有存取順序4的塊B2 (616)。
此外,參照圖6A,用作MVP候選的時間上同位的鄰點可以是在當前塊620的中心(中心塊C 622)同位的塊以及在當前塊620外部的最右下方位置處的塊H(624)。例如,一組可以包括塊C 622、H 624。若發現塊H (624)在同位圖片外部,則可以替代地使用一或多個回退H位置(H塊626)。
在一些情況下,根據所使用的塊分割和編碼順序,可以使用反向S-MVP候選順序,如圖6C所示。例如,第一組可以包括具有存取順序0的塊614、具有存取順序1的614、具有存取順序2的616、具有存取順序3的604或具有存取順序3的626。第二組可以包括具有存取順序4的塊612和具有存取順序5的塊624。
在HEVC和較早期的視訊編碼標準中,僅將平移運動模型應用於運動補償預測(MCP)。例如,可以針對圖片的每個區塊(例如,每個CU或每個PU)決定平移運動向量。然而,在各種情況下,除了平移運動之外,亦可以存在另外種類的運動,包括縮放(例如,放大及/或縮小)、旋轉、透視運動以及其他不規則運動。因此,仿射變換運動補償預測亦可以被應用以提高編碼效率。
例如,在諸如HEVC之類的一些視訊編碼標準中,每個區塊具有單個運動向量(例如,平移運動向量)。然而,在仿射編碼模式中,塊可以具有多個仿射運動向量(例如,塊之每一者取樣可以具有獨立的仿射運動向量)。此外,某些視訊編碼標準(例如,HEVC)中的HMVP表未被擴展為包括仿射資訊。如本文中進一步描述的,為了使得能夠使用仿射資訊,在一些情況下,可以推導用於仿射運動向量的平移近似並且將其儲存在HMVP表中。在一些實例中,對於可以具有多個運動向量的仿射塊,可以針對塊的特定位置(例如,中心位置)來產生單個運動向量,並且可以將該單個運動向量儲存在HMVP表中以允許此類HMVP表包括仿射資訊(即使沒有以其他方式支援)。這樣,仿射變換運動補償預測可以被應用以提高編碼效率。
圖7是示出經由兩個控制點710和712的兩個運動向量
Figure 02_image009
Figure 02_image011
描述的當前塊702的仿射運動場的圖。使用控制點710的運動向量
Figure 02_image009
和控制點712的運動向量
Figure 02_image011
,當前塊702的運動向量場(MVF)可以由以下等式來描述:
Figure 02_image013
,           等式(1)
在等式(1)中,
Figure 02_image015
Figure 02_image017
形成用於當前塊702內的每個圖元的運動向量,xy 提供當前塊702內的每個圖元的位置(例如,塊中的左上方圖元可以具有座標或索引(x ,y ) = (0,0)),(
Figure 02_image019
,
Figure 02_image021
)是左上角控制點710的運動向量,w 是當前塊702的寬度,並且(
Figure 02_image023
,
Figure 02_image025
)是右上角控制點712的運動向量。
Figure 02_image019
Figure 02_image023
值是用於相應運動向量的水平值,並且
Figure 02_image021
Figure 02_image025
值是用於相應運動向量的垂直值。可以經由添加額外的控制點向量來定義額外的控制點(例如,四個控制點、六個控制點、八個控制點或一些其他數量的控制點),例如在當前塊702的下部角、當前塊702的中心或當前塊702中的其他位置。
上面的等式(1)圖示4參數運動模型,其中四個仿射參數a、b、c和d被定義為:
Figure 02_image027
Figure 02_image029
Figure 02_image031
。使用等式(1),在給定左上角控制點710的運動向量(
Figure 02_image019
,
Figure 02_image021
)和右上角控制點712的運動向量(
Figure 02_image023
,
Figure 02_image025
)的情況下,用於當前塊的每個圖元的運動向量可以使用每個圖元位置的座標(x, y )來計算。例如,對於當前塊702的左上方圖元位置,(x, y )的值可以等於(0, 0),在這種情況下,用於左上方圖元的運動向量變為
Figure 02_image033
=
Figure 02_image019
Figure 02_image035
=
Figure 02_image021
。為了進一步簡化MCP,可以應用基於塊的仿射變換預測。
圖8是示出被劃分為子塊的當前塊802的基於塊的仿射變換預測的圖。在圖8中所示的實例包括4 x 4分區,具有16個子塊。可以使用任何適當的分區和相應數量的子塊。隨後可以使用等式(1)來推導用於每個子塊的運動向量。例如,為了推導每個4 x 4個子塊的運動向量,根據等式(1)來計算每個子塊的中心取樣的運動向量(如圖8所示)。所得到的運動向量可以被捨入,例如捨入到1/16分數精確度或其他適當的精確度(例如,1/4、1/8等)。隨後可以使用所推導的子塊的運動向量來應用運動補償,以產生每個子塊的預測。例如,解碼設備可以接收描述控制點810的運動向量
Figure 02_image009
和控制點812的運動向量
Figure 02_image011
的四個仿射參數(a, b, c, d),並且可以根據描述每個子塊的中心取樣的位置的圖元座標索引,來計算每子塊運動向量。如上所提到的,在MCP之後,每個子塊的高精確度運動向量可以被捨入,並且可以以與平移運動向量相同的精確度來保存。
圖9是示出在仿射訊框間(AF_INTER)模式下的運動向量預測的實例的圖。在JEM中,存在兩種仿射運動模式:仿射訊框間(AF_INTER)模式和仿射合併(AF_MERGE)模式。在一些實例中,當CU具有大於8個圖元的寬度和高度時,可以應用AF_INTER模式。可以在與塊相關的位元串流中(例如,在CU級別)放置(或用訊號通知)仿射標誌,以指示是否將AF_INTER模式應用於該塊。如圖9的實例中所示,在AF_INTER模式下,可以使用相鄰塊來構造運動向量對的候選列表。例如,對於位於當前塊902的左上角的子塊910,可以從在子塊910的上方且左側的相鄰塊A 920、在子塊910上方的相鄰塊B 922、以及在子塊910左側的相鄰塊C 924中選擇運動向量v0 。作為另外的實例,對於位於當前塊902的右上角的子塊912,可以從分別在上方和右上方向上的相鄰塊D 926和相鄰塊E 928中選擇運動向量v1 。可以使用相鄰塊來構造運動向量對的候選列表。例如,在給定運動向量vA vB vC vD vE 分別對應於塊A 920、B 922、C 924、D 926和E 928的情況下,運動向量對的候選列表可以被表示為{(v0 ,v1 ) |v0 = {vA ,vB ,vC },v1 = {vD ,vE }}。
如上所提到的並且如圖9所示,在AF_INTER模式下,可以從塊A 9720、B 922或C 924的運動向量中選擇運動向量v0。可以根據以下各項來對來自相鄰塊(塊A、B或C)的運動向量進行縮放:參考列表、以及用於相鄰塊的參考的POC、用於當前CU(例如,當前塊902)的參考的POC和當前CU的POC之間的關係。在這些實例中,可以從參考列表來決定部分或所有POC。從相鄰塊D或E中選擇v1 類似於選擇
Figure 02_image037
在一些情況下,若候選列表的數量少於兩個,則可以經由複製AMVP候選中的每一者來利用運動向量對填充候選列表。當候選列表大於兩個時,在一些實例中,可以首先根據相鄰運動向量的一致性來對候選列表中的候選進行排序(例如,一致性可以是基於運動向量對候選中的兩個運動向量之間的相似性)。在此類實例中,前兩個候選被保留,而其餘可以被丟棄。
在一些實例中,率失真(RD)代價檢查可以用於決定哪個運動向量對候選被選擇作為當前CU(例如,當前塊902)的控制點運動向量預測(CPMVP)。在一些情況下,可以在位元串流中用訊號通知(或以其他方式指示)用於指示CPMVP在候選列表中的位置的索引。一旦(基於運動向量對候選)決定了當前仿射CU的CPMVP,就可以應用仿射運動估計,並且可以決定控制點運動向量(CPMV)。在一些情況下,可以在位元串流中用訊號通知CPMV和CPMVP的差。CPMV和CPMVP兩者包括兩個平移運動向量集合,在這種情況下,仿射運動資訊的訊號傳遞成本比平移運動的訊號傳遞成本高。
圖10A和圖10B圖示在AF_MERGE模式下的運動向量預測的實例。當使用AF_MERGE模式對當前塊1002(例如,CU)進行編碼時,可以從有效的相鄰重構塊獲得運動向量。例如,可以選擇以仿射模式編碼的有效相鄰重構塊中的第一塊作為候選塊。如圖10A所示,可以從相鄰塊A 1020、B 1022、C 1024、D 1026和E 1028的集合中選擇相鄰塊。可以按照用於選擇作為候選塊的特定選擇順序來考慮相鄰塊。選擇順序的一個實例是左側鄰點(塊A 1020),之後是上方鄰點(塊B 1022),隨後是右上方鄰點(塊C 1024),隨後是左下方鄰點(塊D 1026),以及隨後是左上方鄰點(塊E 1028)。
如上所提到的,所選擇的相鄰塊可以是已經以仿射模式編碼的第一塊(例如,按照選擇順序)。例如,塊A 1020可以已經以仿射模式被編碼。如圖10B所示,塊A 1020可以被包括在相鄰CU 1004中。對於相鄰CU 1004,可以已經推導出用於相鄰CU 1004的左上角的運動向量(v2 1030)、右上角的運動向量(v3 1032)和左下角的運動向量(v4 1034)。在該實例中,根據v2 1030、v3 1032和v4 1034來計算用於當前塊1002的左上角的控制點運動向量v0 1040。隨後可以決定用於當前塊1002的右上角的控制點運動向量v1 1042。
一旦推導出當前塊1002的控制點運動向量(CPMV)(v0 1040和v1 1042),就可以應用等式(1)來決定用於當前塊1002的運動向量場。為了辨識當前塊1002是否是以AF_MERGE模式來編碼的,當存在以仿射模式編碼的至少一個相鄰塊時,仿射標誌可以被包括在位元串流中。
在許多情況下,仿射運動估計的程序包括在編碼器側經由將原始塊和仿射運動預測塊之間的失真最小化來決定用於塊的仿射運動。由於仿射運動比平移運動具有更多的參數,因此仿射運動估計可能比平移運動估計更為複雜。在一些情況下,可以執行基於訊號的泰勒展開的快速仿射運動估計方法來決定仿射運動參數(例如,4參數模型中的仿射運動參數a、b、c、d)。
快速仿射運動估計可以包括基於梯度的仿射運動搜尋。例如,在給定的時間t 處的圖元值
Figure 02_image039
(其中t0 是參考圖片的時間)的情況下,可以將針對圖元值
Figure 02_image039
的一階泰勒展開決定為:
Figure 02_image041
等式(2)
其中
Figure 02_image043
Figure 02_image045
分別是在xy 方向上的圖元梯度
Figure 02_image047
Figure 02_image049
,而
Figure 02_image051
Figure 02_image053
表示用於圖元值
Figure 02_image039
的運動向量分量
Figure 02_image033
Figure 02_image035
。用於當前塊中的圖元
Figure 02_image039
的運動向量指向參考圖片中的圖元
Figure 02_image055
可以如下將等式(2)重寫為等式(3):
Figure 02_image057
等式(3)
隨後,可以經由使預測(
Figure 02_image059
和原始訊號之間的失真最小化來求解用於圖元值
Figure 02_image039
的仿射運動
Figure 02_image033
Figure 02_image035
。以4參數仿射模型為例,
Figure 02_image061
等式(4)
Figure 02_image063
等式(5)
其中xy 表示圖元或子塊的位置。將等式(4)和(5)代入等式(3),並且隨後使用等式(3)來將原始訊號和預測之間的失真最小化,可以決定仿射參數a、b、c、d的解:
Figure 02_image065
等式(6)
一旦決定了仿射運動參數(其定義用於控制點的仿射運動向量),就可以使用仿射運動參數(例如,使用等式(4)和(5),其亦可以用等式(1)來表示)來決定每圖元或每子塊的運動向量。可以針對當前塊(例如,CU)的每個圖元執行等式(3)。例如,若當前塊是16圖元x16圖元,則等式(6)中的最小二乘解可以用於經由使在256個圖元上的總值最小化來推導用於當前塊的仿射運動參數(a, b, c, d)。
可以在用於視訊資料的仿射運動模型中使用任何數量的參數。例如,可以以與以上針對4參數仿射運動模型所描述的相同方式來求解6參數仿射運動或其他仿射運動。例如,6參數仿射運動模型可以被描述為:
Figure 02_image067
┤                    等式(7)
在等式(7)中,(
Figure 02_image069
)是在座標(x,y )處的運動向量,並且a、b、c、d、e和f是六個仿射參數。用於塊的仿射運動模型亦可以經由在塊的三個角處的三個運動向量(MV)來描述:
Figure 02_image071
Figure 02_image073
、和
Figure 02_image075
圖11是示出經由三個控制點1110、1112和1114處的三個運動向量描述的當前塊1102的仿射運動場的圖。運動向量
Figure 02_image077
在位於當前塊1102的左上角處的控制點1110處,運動向量
Figure 02_image079
在位於當前塊1102的右上角處的控制點1112處,並且運動向量
Figure 02_image081
在位於當前塊1102的左下角的控制點1114處。可以經由以下等式來描述當前塊1102的運動向量場(MVF):
Figure 02_image083
等式(8)
等式(8)表示6參數仿射運動模型,其中wh 是當前塊1102的寬度和高度。
儘管參考上面的等式(1)描述了4參數運動模型,但是可以經由以下等式來描述使用當前塊的寬度和高度的簡化的4參數仿射模型:
Figure 02_image085
等式(9)
基於等式(9)的用於塊的簡化的4參數仿射模型可以經由在塊的四個角中的兩個角處的兩個運動向量來描述:
Figure 02_image071
Figure 02_image073
。那麼,運動場可以被描述為:
Figure 02_image087
等式(10)
如前述,運動向量
Figure 02_image079
在本文中被稱為控制點運動向量(CPMV)。用於4參數仿射運動模型的CPMV不一定與用於6參數仿射運動模型的CPMV相同。在一些實例中,可以為仿射運動模型選擇不同的CPMV。
圖12是示出對用於當前塊1202的仿射運動模型的控制點向量的選擇的圖。圖示用於當前塊1202的四個控制點1210、1212、1214和1216。運動向量
Figure 02_image077
在位於當前塊1202的左上角處的控制點1210處,運動向量
Figure 02_image079
在位於當前塊1202的右上角處的控制點1212處,運動向量
Figure 02_image081
在位於當前塊1202的左下角處的控制點1214處,並且運動向量
Figure 02_image089
在位於當前塊1202的右下角處的控制點1216處。
在一個實例中,對於4參數仿射運動模型(根據等式(1)或等式(10)),可以從四個運動向量
Figure 02_image091
中的任何兩個向量中選擇控制點對。在另一實例中,對於6參數仿射運動模型,可以從四個運動向量
Figure 02_image091
中的任何三個運動向量中選擇控制點對。基於所選擇的控制點運動向量,可以例如使用所推導的仿射運動模型來計算用於當前塊1202的其他運動向量。
在一些實例中,亦可以使用替代的仿射運動模型表示。例如,基於增量MV的仿射運動模型可以經由座標(
Figure 02_image093
)處的錨MV
Figure 02_image077
、水平增量MV
Figure 02_image095
和垂直增量MV
Figure 02_image097
來表示。通常,可以將座標(x,y )處的MV
Figure 02_image099
計算為
Figure 02_image101
在一些實例中,基於CPMV的仿射運動模型表示可以被轉換為具有增量MV的替代仿射運動模型表示。例如,增量MV仿射運動模型表示中的
Figure 02_image077
是與左上角CPMV相同的:
Figure 02_image103
。要注意的是,對於這些向量運算,加法、除法和乘法是逐個元素地應用的。
在一些實例中,可以使用仿射運動預測器來執行仿射運動向量預測。在一些實例中,可以從相鄰編碼塊的仿射運動向量或正常運動向量來推導用於當前塊的仿射運動預測器。如前述,仿射運動預測器可以包括繼承仿射運動向量預測器(例如,使用仿射合併(AF_MERGE)模式而繼承的)和構造仿射運動向量預測器(例如,使用仿射訊框間(AF_INTER)模式而構造的)。
繼承仿射運動向量預測器(MVP)使用相鄰編碼塊的一或多個仿射運動向量來推導當前塊的預測CPMV。對於繼承仿射,當前塊可以與相鄰編碼塊共享相同的仿射運動模型。相鄰編碼塊被稱為相鄰塊或候選塊。可以從不同的空間或時間相鄰位置中選擇相鄰塊。
圖13是示出當前塊1302的來自相鄰塊1302(塊A)的繼承仿射MVP的圖。如下依據在控制點1320、1322和1324處的相應運動向量
Figure 02_image105
來表示相鄰塊1302的仿射運動向量:
Figure 02_image107
Figure 02_image109
Figure 02_image111
。在一個實例中,相鄰塊1304的大小可以由參數(w, h )來表示,其中w 是相鄰塊1304的寬度,並且h 是相鄰塊1304的高度。相鄰塊1304的控制點的座標被表示為(x0, y0 )、(x1, y1 )和(x2, y2 )。可以針對當前塊1302來預測在相應控制點1310、1312和1314處的仿射運動向量
Figure 02_image113
Figure 02_image115
Figure 02_image117
。針對當前塊1302所預測的仿射運動向量
Figure 02_image113
Figure 02_image119
Figure 02_image119
可以經由將等式(8)中的(x, y)替換為當前塊1302的控制點與相鄰塊1304的左上方控制點之間的座標差來推導,如以下等式中所描述的:
Figure 02_image121
等式(11)
Figure 02_image123
等式(12)
Figure 02_image125
等式(13)
在等式(11)-(13)中,(x1’, y1’)、(x1’, y1’)和(x2’, y2’)是當前塊的控制點的座標。在一些實例中,所預測的仿射運動亦可以利用增量MV來表示:
Figure 02_image127
Figure 02_image129
,以及
Figure 02_image131
類似地,若相鄰編碼塊(例如,相鄰塊1304)的仿射運動模型是4參數仿射運動模型,則等式(10)可以被應用於推導用於當前塊1302的控制點處的仿射運動向量。在一些實例中,使用等式(10)來獲得4參數仿射運動模型可以包括避開上面的等式(13)。
圖14是示出在用於當前塊1402的繼承仿射MVP模型中使用的相鄰候選塊的可能位置的圖。例如,當前塊的控制點1410、1412和1414處的仿射運動向量
Figure 02_image105
可以從相鄰塊1430(塊A0)、1426(塊B0)、1428(塊B1)、1432(塊A1)及/或1420(塊B2)中的一者來推導。在一些情況下,亦可以使用相鄰塊1424(塊A2)及/或1422(塊B3)。更具體地,位於當前塊1402的左上角處的控制點1410處的運動向量
Figure 02_image077
可以從位於控制點1410的上方且左側的相鄰塊1420(塊B2)、位於控制點1410上方的相鄰塊1422(塊B3)、或位於控制點1410左側的相鄰塊1424(塊A2)繼承;位於當前塊1402的右上角處的控制點1412處的運動向量
Figure 02_image079
可以從位於控制點1410上方的相鄰塊1426(塊B0)或位於控制點1410上方且右側的相鄰塊1428(塊B1)繼承;及位於當前塊1402的左下角處的控制點1414處的運動向量
Figure 02_image133
可以從位於控制點1410的左側的相鄰塊1430(塊A0)或位於控制點1410的左側且下方的相鄰塊1432(塊A1)繼承。
在一些視訊編碼標準中,HMVP緩衝器(例如,HMVP表)無法利用用於利用仿射運動模型的CU預測的運動資訊來更新,而僅利用來自一或多個一般訊框間編碼CU的運動資訊來更新。然而,隨著引入更加複雜的編碼工具,編碼塊的細微性可以小至4x4。即使在一些情況下,用於仿射模式(使用仿射運動模型)的CU大小可能被約束為至少8x8,但考慮具有2K解析度的高清(HD)序列、具有4K解析度的超高清(UHD)或其他高解析度視訊(例如,可以位於接近平移編碼CU的小的仿射編碼塊)可以有助於提供用於預測平移編碼CU中的運動資訊的有用資訊。因此,如本文中進一步描述的,本文中的方法可以允許來自一或多個仿射編碼CU的運動資訊被包括在用於一般訊框間預測模式的HMVP表中。
在一些實例中,提供了用於改進基於歷史的運動向量預測的系統、方法(亦被稱為程序)和電腦可讀取媒體。例如,在一些情況下,可以利用在使用仿射運動模型的CU編碼中產生及/或利用的運動資訊來更新HMVP表。在一些實現方式中,HMVP表可以利用以下各項來更新:在仿射編碼塊(例如,CU、PU或其他塊)中可用的運動資訊(其可以包括與仿射塊的控制點相關聯的運動資訊)、或者從仿射塊的控制點推導的子塊運動向量資訊、或者從仿射編碼塊的時空及/或時間鄰域推導的運動資訊、或者用作用於仿射編碼塊的預測器的運動資訊(例如,從仿射合併候選產生的MVP的輸出)。
在一些情況下,可以將包含一或多個先前經解碼的CU的運動向量和參考索引的歷史表定義為HMVPCandList。在第一說明性實例中,仿射編碼塊的左上方CPMV和對應參考索引(被表示為CPMV_top_left_info)可以如下被插入到歷史表中:HMVPCandList = CPMV_top_left_info。
在另一說明性實例中,仿射編碼塊的右上方CPMV和對應參考索引(被表示為CPMV_top_right_info)可以如下被插入到歷史表中:HMVPCandList = CPMV_top_right_info。
在一些情況下,仿射編碼CU可以被劃分為子塊,並且可以針對每個子塊來推導運動向量。當仿射CU大小是大的時(例如,大於閾值大小,諸如8x8、8x16、16x8、16x16或其他大小),則與較遠的子塊的運動相比,來自給定角(例如,左上角、右上角、或其他角)的特定CPMV可以相當不同。因此,在一些情況下,為了產生用於塊的代表性運動向量,可以將所計算出的CPMV用作整個CU的運動資訊的表示。由於整個CU的中心位置可以提供子塊之每一者子塊的整體運動資訊的平均,因此在一些實例中,可以將使用中心CU位置而推導的運動向量插入到歷史表中。
圖15是示出針對仿射編碼塊估計的並且對應於編碼塊的中心位置的示例性運動向量的圖。在該實例中,當前塊1500是仿射編碼塊。運動向量
Figure 02_image009
Figure 02_image011
對應於控制點1510和1512。具體地,運動向量
Figure 02_image009
表示與左上角控制點1510相關聯的控制點運動向量(CPMV),並且運動向量
Figure 02_image011
表示與右上角控制點1512相關聯的CPMV。此外,在一些實例中,運動向量
Figure 02_image009
Figure 02_image011
可以具有相應的水平值和垂直值。例如,運動向量
Figure 02_image009
Figure 02_image011
Figure 02_image019
Figure 02_image023
值可以是用於相應運動向量(例如,運動向量
Figure 02_image009
Figure 02_image011
)的水平值,而
Figure 02_image019
Figure 02_image023
值可以是用於相應運動向量(例如,運動向量
Figure 02_image009
Figure 02_image011
)的垂直值。在一些情況下,可以經由添加額外的控制點向量(例如,在當前塊702的下部角、當前塊1500的中心、或當前塊1500中的其他位置)來定義額外的控制點(例如,四個控制點、六個控制點、八個控制點或某個其他數量的控制點)。
對應於控制點1510和1512的運動向量
Figure 02_image009
Figure 02_image011
可以用於產生表示當前塊1500的運動向量(
Figure 02_image135
)1504,其可以被儲存在HMVP表(例如,HMVP表400)中以供在編碼將來塊時使用。如前所提到的,仿射模型使用多個控制點(例如,控制點1510、1512)來推導用於塊的多個運動向量。例如,仿射模型可以產生用於塊的子塊或圖元的多個局部運動向量。然而,在某些視訊編碼標準中使用的HMVP表可能僅在HMVP列表中支援及/或包括每塊的單個平移運動向量。因此,在一些實例中,為了包括在使用仿射運動模型對塊(例如,當前塊1500)進行編碼時產生及/或利用的運動資訊,可以使用來自塊中的控制點(例如,控制點1510和1512)的其他運動向量(例如,
Figure 02_image009
Figure 02_image011
)來產生表示該塊的單個運動向量(例如,
Figure 02_image135
1504)。HMVP表隨後可以被更新為包括針對仿射編碼塊而產生的運動向量。
在一些實例中,運動向量(
Figure 02_image135
)1504可以是基於與控制點1510和1512相對應的運動向量
Figure 02_image009
Figure 02_image011
來針對當前塊1500的特定位置而產生的運動向量。在圖15中所示的實例中,運動向量(
Figure 02_image135
)1504對應於當前塊1500的中心位置處的子塊1502。中心位置可以反映當前塊1500的整體運動資訊及/或當前塊1500之每一者子塊的平均及/或表示。因此,中心位置處的子塊1502可以用作表示當前塊1500的整體運動資訊的運動向量。
在一些情況下,可以基於運動向量
Figure 02_image009
Figure 02_image011
之間的差及/或運動向量
Figure 02_image009
Figure 02_image011
之間的變化率來產生運動向量(
Figure 02_image135
)1504。例如,可以針對垂直和水平分量來計算運動向量
Figure 02_image009
Figure 02_image011
之間的變化率。在一些情況下,可以針對垂直和水平尺寸來每取樣計算運動向量
Figure 02_image009
Figure 02_image011
之間的變化率。例如,可以計算運動向量
Figure 02_image009
Figure 02_image011
之間的差以決定總差,隨後將總差除以與運動向量
Figure 02_image009
Figure 02_image011
相關聯的控制點之間的取樣數量,以獲得在運動向量
Figure 02_image009
Figure 02_image011
之間的每取樣變化率。
所計算出的變化率隨後可以用於估計用於當前塊1500內的特定位置的運動向量。例如,由於圖15中的子塊1502對應於當前塊1500內的中心位置,所以用於子塊1502的運動向量可以經由以下方式來計算:將當前塊1500的寬度除以二以獲得對應於中心位置的變化率乘數(例如,中心位置與控制點1510或1512之間的取樣數量,或者換句話說,從當前塊1500的一端(例如,從左或右邊界)到中心位置的以取樣數量為單位的距離),並且將運動向量
Figure 02_image009
Figure 02_image011
之間的變化率增加(例如,乘以)變化率乘數。
為了進行說明,若運動向量
Figure 02_image009
Figure 02_image011
之間的每取樣變化率是x ,並且當前塊1500的寬度是8,則可以將每取樣變化率x 乘以由8(當前塊1500的寬度)除以2得到的結果。此處,8除以2的結果為4,其表示針對中心位置的變化率乘數(例如,到中心位置的取樣數量),並且用於子塊1502的運動向量是4x (例如,變化率x 乘以4)。隨後,可以將用於子塊1502的運動向量作為對應於當前塊1500的平移運動向量儲存在HMPV表中。
在一些實例中,使用仿射編碼CU的中心位置來對用於仿射編碼CU的運動向量(表示為center_subblock_mv)的推導可以如下。在給定左上方和右上方CPMV(分別被表示為CPMV_top_left和CPMV_top_right)以及分別被表示為w和h的CU寬度和高度: mvScaleHor = CPMV_top_left_hor << 7       等式(14) mvScaleVer = CPMV_top_left_ver << 7       等式(15) dHorX = (CPMV_top_right_hor - CPMV_top_left_hor) << (7 – log2(w))   等式(16) dVerX = (CPMV_top_right_ver - CPMV_top_left_ver) << (7 – log2(w))  等式(17)
在存在左下方的CPMV並且其被表示為CPMV_bottom_left的情況下: dHorY = (CPMV_ bottom _left_hor - CPMV_top_left_hor) << (7 – log2(h)) 等式(18) dVerY = (CPMV_ bottom _left_ver - CPMV_top_left_ver) << (7 – log2(h))   等式(19)
否則: dHorY = − dVerX               等式(20) dVerY = dHorX                等式(21)
其中CPMV_top_left_hor和CPMV_top_left_ver是左上方CPMV(CPMV_top_left)的水平和垂直分量;CPMV_top_right_hor和CPMV_top_ right_ver是右上方CPMV(CPMV_top_ right)的水平和垂直分量。隨後可以如下推導用於中心子塊的運動向量: center_subblock_mv_hor = (mvScaleHor + dHorX * (w >> 1) + dHorY * (h >> 1))等式(22) center_subblock_mv_ver = (mvScaleVer + dVerX * (w >> 1) + dVerY * (h >> 1))等式(23) center_subblock_mv = (center_subblock_mv_hor, center_subblock_mv_ver)等式(24)
此外,center_subblock_mv_info可以包括運動向量center_subblock_mv和相應的參考索引(或者在一些情況下由其組成)。隨後可以如下更新HMVP候選列表:HMVPCandList = center_subblock_mv_inf。在一些實例中,圖15中的運動向量1504可以是如前述在等式(14)-(24)中計算的center-sub-block_mv。
在一些實現方式中,另一子塊位置可以用於HMVP表更新,例如左上方、右上方、左下方、右下方或接近中心的位置(例如,與中心具有偏移)的子塊位置。在一些實現方式中,本文描述的技術可以插入左下方CPMV或除了CU中心位置子塊MV之外的某個子塊運動向量。在一些情況下,可以執行諸如下文提供的規範性程序之類的規範性程序。
在用於基於歷史的運動向量預測器候選列表的更新程序的實例中,該程序的輸入可以包括1/16分數取樣精確度的亮度運動向量mvL0和mvL1、參考索引refIdxL0和refIdxL1、指定亮度編碼塊的寬度和高度的變數cbWidth和cbHeight、相對於當前圖片的左上方亮度取樣來指定當前亮度編碼塊的左上方取樣的亮度位置(xCb, yCb)、以及基於歷史的運動資訊表HmvpCandList。該程序的輸出可以是經修改的基於歷史的運動資訊表HmvpCandList。
若affine_flag[ xCb ][ yCb ]等於1,numCpMv被設置為控制點運動向量的數量,cpMvLX[ cpIdx ]被設置為當前塊的控制點運動向量,其中cpIdx = 0,..,numCpMv – 1並且X為0或1,則運動向量的水平變化dX、運動向量的垂直變化dY以及基本運動向量mvBaseScaled是經由以下方式來推導的:調用從控制點運動向量來針對仿射運動模型參數的推導程序,其中亮度編碼塊寬度cbWidth、亮度編碼塊高度cbHeight、控制點運動向量的數量numCpMv和控制點運動向量cpMvLX[ cpIdx ](其中cpIdx = 0,.., numCpMv − 1)作為輸入。運動向量MvLX可以如下計算: xPosSb = cbWidth >> 1                等式(25) yPosSb = cbHeight >> 1                等式(26) mvLX[ 0 ] = ( mvBaseScaled[ 0 ] + dX[ 0 ] * xPosSb + dY[ 0 ] * yPosSb )等式(27) mvLX[ 1 ] = ( mvBaseScaled[ 1 ] + dX[ 1 ] * xPosSb + dY[ 1 ] * yPosSb )等式(28)
如下進一步描述的,可以調用針對運動向量的捨入程序,其中被設置為等於mvLX的mvX、被設置為等於5的rightShift、被設置為等於0的leftShift作為輸入以及經捨入的mvLX作為輸出。此外,運動向量mvLX可以如下裁剪: mvLX[ 0 ] = Clip3( −217 , 217 − 1, mvLX[ 0 ] )       等式(29) mvLX[ 1 ] = Clip3( −217 , 217 − 1, mvLX[ 1 ] )       等式(30)
MVP候選hMvpCand可以包括亮度運動向量mvL0和mvL1、參考索引refIdxL0和refIdxL1(或者在一些情況下可以由其組成)。NumHmvpCand可以被設置為HmvpCandList中的運動條目數量。
若slice_type等於P並且refIdxL0是有效的,或者若slice_type等於B並且refIdxL0或refIdxL1是有效的,則經由以下步驟,使用候選mvCand來修改候選列表HmvpCandList(在一些情況下,可以以任何其他順序來執行這些步驟)。首先,變數curIdx被設置為等於NumHmvpCand。若NumHmvpCand等於23,則對於每個索引hMvpIdx = 1,…,NumHmvpCand − 1,將HMVPCandList[ hMvpIdx  ]複製到HMVPCandList[ hMvpIdx  − 1],並且隨後將hMvpCand複製到HMVPCandList[hMvpIdx ]。若NumHmvpCand小於23,則將NumHmvpCand增加1。
可以如下調用以上提及的從控制點運動向量來針對仿射運動模型參數的推導程序。首先,用於推導程序的輸入可以包括:指定亮度編碼塊的寬度和高度的變數cbWidth和cbHeight、控制點運動向量的數量numCpMv、以及控制點運動向量cpMvLX[ cpIdx ],其中cpIdx = 0,..,numCpMv – 1並且X為0或1。該程序的輸出可以包括運動向量的水平變化dX、運動向量的垂直變化dY以及與亮度編碼塊的左上角相對應的運動向量mvBaseScaled。
變數log2CbW和log2CbH可以如下推導: log2CbW = Log2( cbWidth )             等式(31) log2CbH = Log2( cbHeight )             等式(32)
運動向量的水平變化dX可以如下推導: dX[ 0 ] = ( cpMvLX[ 1 ][ 0 ] − cpMvLX[ 0 ][ 0 ] ) << ( 7 − log2CbW )   等式(33) dX[ 1 ] = ( cpMvLX[ 1 ][ 1 ] − cpMvLX[ 0 ][ 1 ] ) << ( 7 − log2CbW )等式(34)
運動向量的垂直變化dY可以如下推導。若numCpMv等於3,則可以如下推導dY: dY[ 0 ] = ( cpMvLX[ 2 ][ 0 ] − cpMvLX[ 0 ][ 0 ] ) << ( 7 − log2CbH )等式(35) dY[ 1 ] = ( cpMvLX[ 2 ][ 1 ] − cpMvLX[ 0 ][ 1 ] ) << ( 7 − log2CbH )等式(36)
否則(numCpMv等於2),可以如下推導dY: dY[ 0 ] = −dX[ 1 ]                等式(37) dY[ 1 ] = dX[ 0 ]                 等式(38)
與亮度編碼塊的左上角相對應的運動向量mvBaseScaled可以如下推導: mvBaseScaled[ 0 ] = cpMvLX[ 0 ][ 0 ] << 7         等式(40) mvBaseScaled[ 1 ] = cpMvLX[ 0 ][ 1 ] << 7         等式(41)
可以如下調用以上提及的針對運動向量的捨入程序。針對該程序的輸入可以包括運動向量mvX、用於捨入的右移參數rightShift和用於解析度提高的左移參數leftShift。該程序的輸出可以是經捨入的運動向量mvX。對於mvX的捨入,適用以下各項: 偏移 = (rightShift = = 0)  ?  0  : (1  <<  (rightShift − 1))    等式(42) mvX[ 0 ] = ((mvX[ 0 ] + offset − (mvX[ 0 ]  >=  0))  >>  rightShift)  <<  leftShift 等式(43) mvX[ 1 ] = ((mvX[ 1 ] + offset − (mvX[ 1 ]  >=  0))  >>  rightShift)  <<  leftShift 等式(44)
圖16是示出用於利用從仿射編碼塊產生的運動資訊來更新基於歷史的運動預測表的示例性方法1600(亦稱為程序)的流程圖。
在方塊1602處,方法1600可以包括:獲得視訊資料的一或多個塊。例如,一或多個塊可以包括使用仿射運動模式而編碼的塊,如先前所描述的。在一些情況下,一或多個塊可以包括當前塊。此外,在一些實例中,視訊資料可以包括當前圖片和參考圖片。
在方塊1604處,方法1600可以包括:決定從一或多個塊中的塊(例如,當前塊1500)的第一控制點(例如,控制點1510)而推導的第一運動向量(例如,
Figure 02_image009
)。該塊可以包括使用仿射運動模式而編碼的塊。在框1606處,方法1600可以包括:決定從該塊的第二控制點(例如,控制點1512)而推導的第二運動向量(例如,
Figure 02_image011
)。
在方塊1608處,方法1600可以包括:基於第一運動向量和第二運動向量來估計用於該塊內的預定位置的第三運動向量(例如,運動向量1504)。在一些實例中,可以基於上述等式(14)-(24)來計算第三運動向量。在一些情況下,第三運動向量可以是用於該塊(例如,用於整個塊)的運動資訊的表示。
在一些情況下,預定位置可以是該塊的中心或該塊中的某個位置。在一些實例中,第一控制點可以是左上方控制點,並且第二控制點可以是右上方控制點。在一些情況下,可以進一步基於與諸如左下方控制點之類的底部控制點相關聯的控制點運動向量來估計第三運動向量。
在一些實例中,估計第三運動向量可以包括:基於第一運動向量和第二運動向量之間的差來決定第一運動向量和第二運動向量之間的變化率,並且將該變化率乘以對應於預定位置的乘法因數。在一些情況下,預定位置可以包括該塊的中心,並且乘法因數可以包括該塊的寬度及/或該塊的高度的一半。
在一些情況下,變化率可以是每單位變化率。此外,每單位變化率的每個單位可以包括取樣、子塊及/或圖元。在一些實例中,乘法因數可以包括在預定位置和塊的邊界之間的取樣數量。例如,若預定位置是該塊的中心,並且該塊沿著該塊的維度包括n個取樣,則乘法因數可以是n 除以2,其在該實例中對應於到塊的中心的取樣數量。
在一些實現方案中,第三運動向量可以是基於在第一運動向量的水平分量與第二運動向量的水平分量之間的第一運動變化以及在第一運動向量的垂直分量與第二運動向量的垂直分量之間的第二運動變化的。
在一些實例中,第三運動向量可以是基於與塊相關聯的仿射運動資訊而產生的平移運動向量。此外,第三運動向量可以包括與塊的一或多個子塊相關聯的運動資訊。在一些實例中,一或多個子塊中的至少一個子塊可以對應於預定位置。
在方塊1610處,方法1600可以包括:利用第三運動向量來填充基於歷史的運動向量預測器(HMVP)表(例如,HMVP表400)。在一些情況下,HMVP表及/或第三運動向量可以用於對額外塊(諸如將來塊)的運動預測中。
在一些態樣中,方法1600可以包括:將來自HMVP表的一或多個HMVP候選添加到高級運動向量預測(AMVP)候選列表及/或合併模式候選列表中。
在一些實例中,本文描述的程序可以由計算設備或裝置(例如,編碼設備104、解碼設備112及/或任何其他計算設備)來執行。在一些情況下,計算設備或裝置可以包括處理器、微處理器、或被配置為執行本文描述的程序的步驟的設備的其他部件。在一些實例中,計算設備或裝置可以包括被配置為擷取包括視訊訊框的視訊資料(例如,視訊序列)的相機。例如,計算設備可以包括相機設備,其可以包括或者可以不包括視訊轉碼器。作為另一實例,計算設備可以包括具有相機的行動設備(例如,諸如數位相機、IP相機等的相機設備、包括相機的行動電話或平板設備、或具有相機的另一種類型的設備)。在一些情況下,計算設備可以包括用於顯示影像的顯示器。在一些實例中,擷取視訊資料的相機或其他擷取裝置是與計算設備分開的,在這種情況下,計算設備接收所擷取的視訊資料。計算設備亦可以包括被配置為傳送視訊資料的網路介面、收發機、及/或發射器。網路介面、收發機及/或發射器可以被配置為傳送基於網際網路協定(IP)的資料或其他網路資料。
本文描述的程序可以用硬體、電腦指令或其組合來實現。在電腦指令的背景下,該等操作表示被儲存在一或多個電腦可讀取儲存媒體上的電腦可執行指令,該電腦可執行指令在由一或多個處理器執行時執行所記載的操作。通常,電腦可執行指令包括執行特定功能或實現特定資料類型的常式、程式、物件、部件、資料結構等。描述操作的順序並不意欲被解釋為限制,並且可以以任何順序及/或並行地組合任何數量的所描述的操作以實現這些程序。
另外,本文描述的程序可以在被配置有可執行指令的一或多個電腦系統的控制下執行,並且可以被實現為在一或多個處理器上共同執行的代碼(例如,可執行指令、一或多個電腦程式、或一或多個應用),經由硬體來實現,或其組合。如上所提到,代碼可以例如以包括可由一或多個處理器執行的複數個指令的電腦程式的形式儲存在電腦可讀或機器可讀儲存媒體上。電腦可讀取儲存媒體或機器可讀儲存媒體可以是非暫時性的。
本文論述的編碼技術可以在實例視訊編碼和解碼系統(例如,系統100)中實現。在一些實例中,系統包括源設備,源設備提供稍後要由目的地設備解碼的經編碼的視訊資料。具體地,源設備經由電腦可讀取媒體將視訊資料提供給目的地設備。源設備和目的地設備可以包括多種設備中的任何一種,包括桌上型電腦、筆記本(即膝上型電腦)電腦、平板電腦、機上盒、電話手機(例如,所謂的「智慧」手機)、所謂的「智慧」板、電視機、相機、顯示裝置、數位媒體播放機、視訊遊戲控制台、視訊流化設備等。在一些情況下,源設備和目的地設備可以被配備用於無線通訊。
目的地設備可以經由電腦可讀取媒體接收要被解碼的經編碼的視訊資料。電腦可讀取媒體可以是能夠將經編碼的視訊資料從源設備移動到目的地設備的任何類型的媒體或設備。在一個實例中,電腦可讀取媒體可以包括用於使得源設備能夠將經編碼的視訊資料直接即時地發送給目的地設備的通訊媒體。可以根據諸如無線通訊協定之類的通訊標準來對經編碼的視訊資料進行調制,並且將其發送給目的地設備。通訊媒體可以包括任何無線或有線通訊媒體,諸如射頻(RF)頻譜或一或多條實體傳輸線。通訊媒體可以形成基於封包的網路的一部分,諸如,區域網路、廣域網或諸如網際網路之類的全球網路。通訊媒體可以包括路由器、交換機、基地台、或可以用於促進從源設備到目的地設備的通訊的任何其他裝置。
在一些實例中,可以將經編碼的資料從輸出介面輸出到存放裝置。類似地,可以經由輸入介面從存放裝置存取經編碼的資料。存放裝置可以包括各種分散式或本端存取的資料儲存媒體中的任何一種,例如,硬碟、藍光光碟、DVD、CD-ROM、快閃記憶體、揮發性或非揮發性記憶體、或用於儲存經編碼的視訊資料的任何其他適當的數位儲存媒體。在另外的實例中,存放裝置可以對應於檔案伺服器或另一中間存放裝置,其可以儲存由源設備產生的經編碼的視訊。目的地設備可以經由流化或下載來從存放裝置存取被儲存的視訊資料。檔案伺服器可以是能夠儲存經編碼的視訊資料並且將該經編碼的視訊資料發送給目的地設備的任何類型的伺服器。實例檔案伺服器包括網頁伺服器(例如,用於網站)、FTP伺服器、網路附加儲存(NAS)設備或本端磁碟機。目的地設備可以經由任何標準資料連接(包括網際網路連接)來存取經編碼的視訊資料。這可以包括適於存取被儲存在檔案伺服器上的經編碼的視訊資料的無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、纜線數據機等)或這兩者的組合。經編碼的視訊資料從存放裝置的傳輸可以是流化、下載傳輸或其組合。
本案內容的技術不一定限於無線應用或設置。該技術可以被應用於視訊編碼,以支援多種多媒體應用中的任何一種,諸如,空中電視廣播、有線電視傳輸、衛星電視傳輸、網際網路流式視訊傳輸(例如,基於HTTP的動態自我調整流式傳輸(DASH))、被編碼到資料儲存媒體上的數位視訊、對被儲存在資料儲存媒體上的數位視訊的解碼、或其他應用。在一些實例中,系統可以被配置為支援單向或雙向視訊傳輸,以支援諸如視訊流式、視訊重播、視訊廣播及/或視訊電話之類的應用。
在一個實例中,源設備包括視訊源、視訊轉碼器和輸出介面。目的地設備可以包括輸入介面、視訊解碼器和顯示裝置。源設備的視訊轉碼器可以被配置為應用本文揭示的技術。在其他實例中,源設備和目的地設備可以包括其他部件或佈置。例如,源設備可以從諸如外部相機之類的外部視訊源接收視訊資料。同樣,目的地設備可以與外部顯示裝置對接,而不是包括整合顯示裝置。
上文的實例系統僅是一個實例。用於並行地處理視訊資料的技術可以由任何數位視訊編碼及/或解碼設備來執行。儘管一般而言,本案內容的技術是由視訊編碼設備來執行的,但是該等技術亦可以由通常被稱為「CODEC」的視訊轉碼器/解碼器來執行。此外,本案內容的技術亦可以由視訊前置處理器來執行。源設備和目的地設備僅是此類編碼設備的實例:其中源設備產生經編碼的視訊資料以用於傳輸給目的地設備。在一些實例中,源設備和目的地設備可以以基本上對稱的方式操作,使得這些設備中的每一者包括視訊編碼和解碼用部件。因此,實例系統可以支援在視訊設備之間的單向或雙向視訊傳輸,例如,用於視訊流化、視訊重播、視訊廣播或視訊電話。
視訊源可以包括視訊擷取裝置,例如,攝像機、包含先前擷取的視訊的視訊存檔單元、及/或用於從視訊內容提供者接收視訊的視訊饋送介面。作為另外的替代方式,視訊源可以產生基於電腦圖形的資料作為源視訊,或者產生即時視訊、存檔視訊和電腦產生的視訊的組合。在一些情況下,若視訊源是攝像機,則源設備和目的地設備可以形成所謂的照相電話或視訊電話。然而,如前述,在本案內容中描述的技術通常可以適用於視訊編碼,並且可以被應用於無線及/或有線應用。在每種情況下,所擷取的、預擷取的或電腦產生的視訊皆可以由視訊轉碼器進行編碼。隨後,可以經由輸出介面將經編碼的視訊資訊輸出到電腦可讀取媒體上。
如所提到的,電腦可讀取媒體可以包括諸如無線廣播或有線網路傳輸之類的臨時媒體、或者諸如硬碟、快閃記憶體驅動器、壓縮光碟、數位多功能光碟、藍光光碟之類的儲存媒體(即非暫時性儲存媒體)、或其他電腦可讀取媒體。在一些實例中,網路服務器(未圖示)可以例如經由網路傳輸從源設備接收經編碼的視訊資料,並且將經編碼的視訊資料提供給目的地設備。類似地,諸如光碟衝壓設施之類的媒體生產設施的計算設備可以從源設備接收經編碼的視訊資料,並且製造包含經編碼的視訊資料的光碟。因此,在各個實例中,電腦可讀取媒體可以被理解為包括各種形式的一或多個電腦可讀取媒體。
目的地設備的輸入介面從電腦可讀取媒體接收資訊。電腦可讀取媒體的資訊可以包括由視訊轉碼器定義的語法資訊(其亦被視訊解碼器使用),語法資訊包括描述塊和其他編碼單元(例如,圖片組(GOP))的特性及/或處理的語法元素。顯示裝置將經解碼的視訊資料顯示給使用者,並且可以包括各種顯示裝置中的任何一種,諸如陰極射線管(CRT)、液晶顯示器(LCD)、等離子顯示器、有機發光二極體(OLED)顯示器、或另一種類型的顯示裝置。已經描述了本案的各個實施例。
在圖17和圖18中分別圖示編碼設備104和解碼設備112的具體細節。圖17是示出可以實現在本案內容中描述的技術中的一或多個技術的實例編碼設備104的方塊圖。編碼設備104可以例如產生本文描述的語法結構(例如,VPS、SPS、PPS或其他語法元素的語法結構)。編碼設備104可以執行對視訊切片內的視訊塊的訊框內預測和訊框間預測編碼。如前述,訊框內編碼至少部分地依賴於空間預測以減少或去除在給定視訊訊框或圖片內的空間冗餘。訊框間編碼至少部分地依賴於時間預測以減少或去除在視訊序列的相鄰或周圍訊框內的時間冗餘。訊框內模式(I模式)可以代表若干種基於空間的壓縮模式中的任何一種。諸如單向預測(P模式)或雙向預測(B模式)之類的訊框間模式可以代表若干種基於時間的壓縮模式中的任何一種。
編碼設備104包括分割單元35、預測處理單元41、濾波器單元63、圖片記憶體64、求和器50、變換處理單元52、量化單元54和熵編碼單元56。預測處理單元41包括運動估計單元42、運動補償單元44和訊框內預測處理單元46。對於視訊塊重構,編碼設備104亦包括逆量化單元58、逆變換處理單元60和求和器62。濾波器單元63意欲表示一或多個迴路濾波器,諸如去塊濾波器、自我調整迴路濾波器(ALF)和取樣自我調整偏移(SAO)濾波器。儘管在圖17中將濾波器單元63示為迴路內濾波器,但是在其他配置中,濾波器單元63可以被實現為迴路後濾波器。後處理設備57可以對由編碼設備104產生的經編碼的視訊資料執行額外的處理。在一些情況下,本案內容的技術可以由編碼設備104來實現。然而,在其他情況下,本案內容的技術中的一或多個技術可以由後處理設備57來實現。
如圖17所示,編碼設備104接收視訊資料,並且分割單元35將資料分割為視訊塊。這種分割亦可以包括例如根據LCU和CU的四叉樹結構來分割為切片、切片段、瓦片或其他較大的單元,以及視訊塊分割。編碼設備104整體上圖示對在要被編碼的視訊切片內的視訊塊進行編碼的部件。切片可以被劃分為多個視訊塊(並且可能被劃分為被稱為瓦片的視訊塊集合)。預測處理單元41可以基於誤差結果(例如,編碼率和失真水平等)來為當前視訊塊選擇複數種可能的編碼模式之一,諸如複數種訊框內預測編碼模式之一或複數種訊框間預測編碼模式之一。預測處理單元41可以將所得到的訊框內或訊框間編碼塊提供給求和器50以產生殘差塊資料,並且提供給求和器62以重構編碼塊以用作參考圖片。
在預測處理單元41內的訊框內預測處理單元46可以相對於在與要被編碼的當前視訊塊相同的訊框或切片中的一或多個相鄰塊,來執行當前塊的訊框內預測編碼,以提供空間壓縮。在預測處理單元41內的運動估計單元42和運動補償單元44相對於在一或多個參考圖片中的一或多個預測塊來執行對當前視訊塊的訊框間預測編碼,以提供時間壓縮。
運動估計單元42可以被配置為根據用於視訊序列的預定圖案來決定用於視訊切片的訊框間預測模式。預定圖案可以將序列中的視訊切片指定為P切片、B切片或GPB切片。運動估計單元42和運動補償單元44可以是高度整合的,但是出於概念性目的而被分別示出。由運動估計單元42執行的運動估計是產生運動向量的程序,該運動向量估計針對視訊塊的運動。運動向量例如可以指示在當前視訊訊框或圖片內的視訊塊的預測單元(PU)相對於在參考圖片內的預測塊的位移。
預測塊是被發現在圖元差態樣與要被編碼的視訊塊的PU緊密匹配的塊,其可以經由絕對差之和(SAD)、平方差之和(SSD)或其他差度量來決定。在一些實例中,編碼設備104可以計算用於被儲存在圖片記憶體64中的參考圖片的整數以下的圖元位置的值。例如,編碼設備104可以對四分之一圖元位置、八分之一圖元位置或參考圖片的其他分數圖元位置的值進行內插。因此,運動估計單元42可以相對於全圖元位置和分數圖元位置執行運動搜尋,並且以分數圖元精度輸出運動向量。
運動估計單元42經由將在經訊框間編碼的切片中的視訊塊的PU的位置與參考圖片的預測塊的位置進行比較,來計算針對PU的運動向量。可以從第一參考圖片列表(列表0)或第二參考圖片列表(列表1)中選擇參考圖片,這兩個參考圖片列表中的每一者標識被儲存在圖片記憶體64中的一或多個參考圖片。運動估計單元42將所計算出的運動向量發送給熵編碼單元56和運動補償單元44。
由運動補償單元44執行的運動補償可以涉及基於經由運動估計而決定的運動向量來取得或產生預測塊,可能對圖元以下的精度執行內插。在接收到針對當前視訊塊的PU的運動向量時,運動補償單元44可以在參考圖片列表中定位運動向量所指向的預測塊。編碼設備104經由從正被編碼的當前視訊塊的圖元值中減去預測塊的圖元值來形成圖元差值,從而形成殘差視訊塊。圖元差值形成針對該塊的殘差資料,並且可以包括亮度差分量和色度差分量兩者。求和器50表示執行這種減法運算的一或多個部件。運動補償單元44亦可以產生與視訊塊和視訊切片相關聯的語法元素,以供解碼設備112在對視訊切片的視訊塊進行解碼時使用。
如前述,訊框內預測處理單元46可以對當前塊進行訊框內預測,作為對由運動估計單元42和運動補償單元44執行的訊框間預測的替代方式。具體地,訊框內預測處理單元46可以決定要用於對當前塊進行編碼的訊框內預測模式。在一些實例中,訊框內預測處理單元46可以例如在單獨的編碼程序期間使用各種訊框內預測模式來對當前塊進行編碼,並且訊框內預測處理單元46可以從被測試的模式中選擇合適的訊框內預測模式來使用。例如,訊框內預測處理單元46可以使用針對各種被測試的訊框內預測模式的率失真分析來計算率失真值,並且可以在被測試的模式中選擇具有最佳率失真特性的訊框內預測模式。率失真分析通常決定在編碼塊與被編碼以產生編碼塊的原始的未被編碼塊之間的失真(或誤差)量、以及用於產生編碼塊的位元速率(即位元數量)。訊框內預測處理單元46可以根據針對各種編碼塊的失真和速率來計算比率,以決定哪種訊框內預測模式表現出針對該塊的最佳率失真值。
在任何情況下,在為塊選擇訊框內預測模式之後,訊框內預測處理單元46可以將指示針對塊選擇的訊框內預測模式的資訊提供給熵編碼單元56。熵編碼單元56可以對用於指示所選擇的訊框內預測模式的資訊進行編碼。編碼設備104可以在所發送的位元串流配置資料中包括用於各種塊的編碼上下文的定義以及對要用於這些上下文之每一者上下文的最可能的訊框內預測模式、訊框內預測模式索引表和經修改的訊框內預測模式索引表的指示。位元串流配置資料可以包括複數個訊框內預測模式索引表和複數個經修改的訊框內預測模式索引表(亦被稱為編碼字元映射表)。
在預測處理單元41經由訊框間預測或訊框內預測產生用於當前視訊塊的預測塊之後,編碼設備104經由從當前視訊塊中減去預測塊來形成殘差視訊塊。殘差塊中的殘差視訊資料可以被包括在一或多個TU中,並且被應用於變換處理單元52。變換處理單元52使用變換(諸如離散餘弦變換(DCT)或概念上類似的變換)來將殘差視訊資料變換為殘差變換係數。變換處理單元52可以將殘差視訊資料從圖元域轉換到變換域(諸如頻域)。
變換處理單元52可以將所得到的變換係數發送給量化單元54。量化單元54對變換係數進行量化以進一步降低位元速率。量化程序可以減小與這些係數中的一些或所有係數相關聯的位元深度。可以經由調整量化參數來修改量化程度。在一些實例中,量化單元54隨後可以執行對包括經量化的變換係數的矩陣的掃瞄。替代地或補充地,熵編碼單元56可以執行該掃瞄。
在量化之後,熵編碼單元56對經量化的變換係數進行熵編碼。例如,熵編碼單元56可以執行上下文自我調整變長編碼(CAVLC)、上下文自我調整二進位算術編碼(CABAC)、基於語法的上下文自我調整二進位算術編碼(SBAC)、概率區間分割熵(PIPE)編碼或另一種熵編碼技術。在由熵編碼單元56進行熵編碼之後,可以將經編碼的位元串流發送給解碼設備112,或者將其存檔以供稍後傳輸或者由解碼設備112取得。熵編碼單元56亦可以對用於正被編碼的當前視訊切片的運動向量和其他語法元素進行熵編碼。
逆量化單元58和逆變換處理單元60分別應用逆量化和逆變換,以重構圖元域中的殘差塊,以供稍後用作參考圖片的參考塊。運動補償單元44可以經由將殘差塊加上在參考圖片列表內的參考圖片之一的預測塊來計算參考塊。運動補償單元44亦可以將一或多個內插濾波器應用於經重構的殘差塊,以計算用於運動估計的整數以下的圖元值。求和器62將經重構的殘差塊加到由運動補償單元44產生的經運動補償的預測塊上,以產生用於儲存在圖片記憶體64中的參考塊。參考塊可以由運動估計單元42和運動補償單元44用作參考塊,以對在隨後的視訊訊框或圖片中的塊進行訊框間預測。
編碼設備104可以執行本文描述的技術中的任何技術。已經關於編碼設備104整體上描述了本案內容的一些技術,但是如上所提到的,本案內容的技術中的一些技術亦可以由後處理設備57來實現。
圖17的編碼設備104表示被配置為執行本文描述的變換編碼技術中的一或多個技術的視訊轉碼器的實例。編碼設備104可以執行本文描述的技術中的任何技術,包括以上關於圖16描述的程序。
圖18是示出實例解碼設備112的方塊圖。解碼設備112包括熵解碼單元80、預測處理單元81、逆量化單元86、逆變換處理單元88、求和器90、濾波器單元91和圖片記憶體92。預測處理單元81包括運動補償單元82和訊框內預測處理單元84。在一些實例中,解碼設備112可以執行通常與關於來自圖17的編碼設備104所描述的編碼階段相反的解碼階段。
在解碼程序期間,解碼設備112接收由編碼設備104發送的經編碼的視訊位元串流,其表示經編碼的視訊切片的視訊塊和關聯的語法元素。在一些實施例中,解碼設備112可以從編碼設備104接收經編碼的視訊位元串流。在一些實施例中,解碼設備112可以從網路實體79(諸如伺服器、媒體感知網路元素(MANE)、視訊編輯器/拼接器、或被配置為實現上述技術中的一或多個技術的其他這種設備)接收經編碼的視訊位元串流。網路實體79可以包括或者可以不包括編碼設備104。在網路實體79將經編碼的視訊位元串流發送給解碼設備112之前,網路實體79可以實現在本案內容中描述的技術中的一些技術。在一些視訊解碼系統中,網路實體79和解碼設備112可以是單獨設備的部分,而在其他情況下,關於網路實體79所描述的功能可以由包括解碼設備112的相同設備來執行。
解碼設備112的熵解碼單元80對位元串流進行熵解碼以產生量化係數、運動向量和其他語法元素。熵解碼單元80將運動向量和其他語法元素轉發給預測處理單元81。解碼設備112可以接收在視訊切片級別及/或視訊塊級別的語法元素。熵解碼單元80可以處理和解析在諸如VPS、SPS和PPS之類的更多參數集中的固定長度語法元素和可變長度語法元素兩者。
當視訊切片被編碼為經訊框內編碼(I)的切片時,預測處理單元81的訊框內預測處理單元84可以基於用訊號通知的訊框內預測模式以及來自當前訊框或圖片的先前經解碼的塊中的資料,來產生用於當前視訊切片的視訊塊的預測資料。當視訊訊框被編碼為經訊框間編碼(亦即,B、P或GPB)的切片時,預測處理單元81的運動補償單元82基於從熵解碼單元80接收的運動向量以及其他語法元素來產生用於當前視訊切片的視訊塊的預測塊。可以從在參考圖片列表內的參考圖片之一產生預測塊。解碼設備112可以基於被儲存在圖片記憶體92中的參考圖片,使用預設構造技術來構造參考訊框列表,即列表0和列表1。
運動補償單元82經由解析運動向量和其他語法元素來決定用於當前視訊切片的視訊塊的預測資訊,並且使用該預測資訊來產生用於正在被解碼的當前視訊塊的預測塊。例如,運動補償單元82可以使用參數集中的一或多個語法元素來決定用於對視訊切片的視訊塊進行編碼的預測模式(例如,訊框內或訊框間預測)、訊框間預測切片類型(例如,B切片、P切片或GPB切片)、用於針對該切片的一或多個參考圖片列表的構造資訊、用於該切片的每個經訊框間編碼的視訊塊的運動向量、用於該切片的每個經訊框間編碼的視訊塊的訊框間預測狀態、以及用於對當前視訊切片中的視訊塊進行解碼的其他資訊。
運動補償單元82亦可以基於內插濾波器來執行內插。運動補償單元82可以使用在視訊塊的編碼期間由編碼設備104使用的內插濾波器來計算針對參考塊的整數以下的圖元的插入的值。在這種情況下,運動補償單元82可以根據所接收的語法元素來決定由編碼設備104使用的內插濾波器,並且可以使用內插濾波器來產生預測塊。
逆量化單元86對在位元串流中提供並且由熵解碼單元80解碼的經量化的變換係數進行逆量化或解量化。逆量化程序可以包括使用由編碼設備104針對視訊切片之每一者視訊塊計算出的量化參數來決定量化程度,以及同樣地決定應當被應用的逆量化度。逆變換處理單元88將逆變換(例如,逆DCT或其他適當的逆變換)、逆整數變換或概念上類似的逆變換程序應用於變換係數,以便在圖元域中產生殘差塊。
在運動補償單元82基於運動向量和其他語法元素產生用於當前視訊塊的預測塊之後,解碼設備112經由將來自逆變換處理單元88的殘差塊與由運動補償單元82產生的相應預測塊相加以形成經解碼的視訊塊。求和器90表示執行這種求和運算的一或多個部件。若需要的話,亦可以使用迴路濾波器(在編碼迴路中或在編碼迴路之後)來使圖元過渡平滑,或者以其他方式提高視訊品質。濾波器單元91意欲表示一或多個迴路濾波器,諸如去塊濾波器、自我調整迴路濾波器(ALF)和取樣自我調整偏移(SAO)濾波器。儘管在圖18中將濾波器單元91示為迴路中濾波器,但是在其他配置中,濾波器單元91可以被實現為迴路後濾波器。隨後將給定訊框或圖片中的經解碼的視訊塊儲存在圖片記憶體92中,圖片記憶體92儲存用於隨後運動補償的參考圖片。圖片記憶體92亦儲存經解碼的視訊,以供稍後在顯示裝置(諸如在圖1中所示的視訊目的地設備122)上呈現。
圖18的解碼設備112表示被配置為執行本文描述的變換編碼技術中的一或多個技術的視訊解碼器的實例。解碼設備112可以執行本文描述的技術中的任何技術,包括以上關於圖16描述的方法1600。
在前面的描述中,參考本案的特定實施例描述了本案的各態樣,但是本發明所屬領域中具有通常知識者將認識到,本案的主題不限於此。因此,儘管本文已經詳細描述了本案的說明性實施例,但是應理解的是,可以以其他方式不同地體現和採用本發明構思,並且所附的請求項意欲被解釋為包括此類變型,除了由現有技術限制的變型。可以單獨地或共同地使用上述主題的各個特徵和態樣。此外,在不脫離本說明書的更寬泛的精神和範疇的情況下,實施例可以在除了本文描述的環境和應用之外的任何數量的環境和應用中使用。因此,說明書和附圖被認為是說明性的而不是限制性的。為了說明的目的,以特定次序描述了方法。應當明白的是,在替代實施例中,可以以與所描述的次序不同的次序來執行所述方法。
本發明所屬領域中具有通常知識者將明白的是,在不脫離本說明書的範疇的情況下,本文中使用的小於(「<」)和大於(「>」)符號或術語可以分別用小於或等於(「≦」)以及大於或等於(「≧」)符號來替換。
在將部件描述為「被配置為」執行某些操作的情況下,這種配置可以例如經由以下方式來實現:將電路或其他硬體設計為執行該操作,將可程式設計電路(例如,微處理器或其他適當的電路)程式設計為執行該操作,或其任何組合。
記載集合中的「至少一個」及/或集合中的「一或多個」的請求項語言或其他語言指示該集合中的一個成員或者該集合中的多個成員(以任何組合)滿足該請求項。例如,記載「A和B中的至少一個」的請求項語言意指A、B、或者A和B。在另一實例中,記載「A、B和C中的至少一個」的請求項語言意指A、B、C、或者A和B、或者A和C、或者B和C、或者A和B和C。語言集合中的「至少一個」及/或集合中的「一或多個」並不將該集合限制為在該集合中列出的項目。例如,記載「A和B中的至少一個」的請求項語言可以意指A、B或者A和B,並且可以另外包括未在A和B的集合中列出的項目。
結合本文揭示的實施例描述的各種說明性的邏輯區塊、模組、電路和演算法步驟可以被實現為電子硬體、電腦軟體、韌體或其組合。為了清楚地說明硬體和軟體的這種可互換性,上面已經對各種說明性的部件、方塊、模組、電路和步驟圍繞其功能進行了整體描述。至於這種功能被實現為硬體還是軟體取決於特定的應用和被施加在整個系統上的設計約束。具有通常知識者可以針對每種特定應用以不同的方式來實現所描述的功能,但是這種實現決策不應當被解釋為導致脫離本案的範疇。
本文描述的技術亦可以用電子硬體、電腦軟體、韌體或其任何組合來實現。此類技術可以在各種設備中的任何一種中實現,諸如通用電腦、無線通訊設備手機或具有多種用途(包括在無線通訊設備手機和其他設備中的應用)的積體電路設備。被描述為模組或部件的任何特徵皆可以在整合邏輯裝置中一起實現,或者分別作為個別但是可交互動操作的邏輯裝置來實現。若用軟體來實現,則該等技術可以至少部分地由電腦可讀取資料儲存媒體來實現,電腦可讀取資料儲存媒體包括程式碼,程式碼包括在被執行時執行上述方法中的一或多個方法的指令。電腦可讀取資料儲存媒體可以形成電腦程式產品的一部分,電腦程式產品可以包括包裝材料。電腦可讀取媒體可以包括記憶體或資料儲存媒體,諸如隨機存取記憶體(RAM)(諸如同步動態隨機存取記憶體(SDRAM))、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電子可抹除可程式設計唯讀記憶體(EEPROM)、快閃記憶體、磁或光資料儲存媒體等。補充或替代地,該等技術可以至少部分地由以指令或資料結構的形式攜帶或傳送程式碼並且可以由電腦存取、讀取及/或執行的電腦可讀通訊媒體(諸如傳播的訊號或波)來實現。
程式碼可以由處理器執行,處理器可以包括一或多個處理器,諸如一或多個數位訊號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、現場可程式設計邏輯陣列(FPGA)或其他等效的整合或個別邏輯電路。此類處理器可以被配置為執行在本案內容中描述的任何技術。通用處理器可以是微處理器,但是在替代方式中,處理器可以是任何習知的處理器、控制器、微控制器或狀態機。處理器亦可以被實現為計算設備的組合,例如,DSP和微處理器的組合、複數個微處理器、一或多個微處理器與DSP核的結合、或任何其他此類配置。因此,如本文所使用的術語「處理器」可以代表任何前述結構、前述結構的任何組合、或適於實現本文描述的技術的任何其他結構或裝置。另外,在一些態樣中,本文描述的功能可以在被配置用於編碼和解碼的專用軟體模組或硬體模組內提供,或者被合併在組合視訊轉碼器-解碼器(CODEC)中。
35:分割單元 41:預測處理單元 42:運動估計單元 44:運動補償單元 46:訊框內預測處理單元 50:求和器 52:變換處理單元 54:量化單元 56:熵編碼單元 57:後處理設備 58:逆量化單元 60:逆變換處理單元 62:求和器 63:濾波器單元 64:圖片記憶體 79:網路實體 80:熵解碼單元 81:預測處理單元 82:運動補償單元 84:訊框內預測處理單元 86:逆量化單元 88:逆變換處理單元 90:求和器 91:濾波器單元 92:圖片記憶體 100:系統 102:視訊源 104:編碼設備 106:編碼器引擎 108:儲存單元 110:輸出 112:解碼設備 114:輸入 116:解碼器引擎 118:儲存單元 120:通訊鏈路 122:視訊目的地設備 200:塊 202:PU0 204:PU1 210:空間相鄰塊 212:空間相鄰塊 214:空間相鄰塊 216:空間相鄰塊 218:空間相鄰塊 220:塊 222:PU0 224:PU1 230:塊 232:塊 234:塊 236:塊 238:塊 300:CU 302:PU0 304:PU1 306:右下塊 308:外部塊 310:中心塊 320:運動向量 322:TVMP候選 324:同位塊 326:當前塊 330:同位圖片 332:同位參考圖片 340:當前參考圖片 342:當前圖片 400:HMVP表 400A:元件符號 400B:元件符號 400C:元件符號 402:HMVP候選索引 500:圖片或切片 502:當前塊 504:後退距離 506:後退距離 510:左上塊 512:上方塊 514:右上塊 516:左側塊 518:下方塊 520:垂直非鄰接塊 522:水平非鄰接塊 602:塊 604:塊 606:塊 608:塊 610:塊 612:塊 614:塊 616:塊 620:當前塊 622:塊 624:塊 626:塊 702:當前塊 710:左上角控制點 712:右上角控制點 802:當前塊 810:控制點 812:控制點 902:當前塊 910:子塊 912:子塊 920:塊 922:塊 924:塊 926:塊 928:塊 1002:當前塊 1004:相鄰CU 1020:相鄰塊 1022:相鄰塊 1024:相鄰塊 1026:相鄰塊 1028:相鄰塊 1030:運動向量 1032:運動向量 1034:運動向量 1040:運動向量 1042:運動向量 1102:當前塊 1110:控制點 1112:控制點 1114:控制點 1202:當前塊 1210:控制點 1212:控制點 1214:控制點 1216:控制點 1302:當前塊 1304:相鄰塊 1310:控制點 1312:控制點 1314:控制點 1320:控制點 1322:控制點 1324:控制點 1402:當前塊 1410:控制點 1412:控制點 1414:控制點 1420:塊 1422:塊 1424:塊 1426:塊 1428:塊 1430:塊 1432:塊 1500:當前塊 1502:子塊 1504:運動向量 1510:控制點 1512:控制點 1600:方法 1602:方塊 1604:方塊 1606:方塊 1608:方塊 1610:方塊
為了描述在其中可以獲得本案內容的各種優點和特徵的方式,將參考在附圖中示出的其特定實施例,來提供對上述原理的更加具體的描述。要理解的是,這些附圖僅圖示了本案內容的實例實施例,並且不被認為是對其範圍進行限制,經由使用附圖,以另外的特殊性和細節來描述和解釋本文的原理,其中:
圖1是示出根據一些實例的編碼設備和解碼設備的實例的方塊圖;
圖2A是示出根據一些實例的用於合併模式的示例性空間相鄰運動向量候選的概念圖;
圖2B是示出根據一些實例的用於高級運動向量預測(AMVP)模式的實例空間相鄰運動向量候選的概念圖;
圖3A是示出根據一些實例的實例時間運動向量預測器(TMVP)候選的概念圖;
圖3B是示出根據一些實例的運動向量縮放的實例的概念圖;
圖4是示出根據一些實例的實例基於歷史的運動向量預測器(HMVP)表的圖;
圖5是示出根據一些實例的提取非鄰接空間合併候選的實例的圖;
圖6A是示出根據一些實例的在MVP預測中利用的空間位置和時間位置的實例的圖;
圖6B是示出根據一些實例的用於空間MVP(S-MVP)的存取順序的實例的圖;
圖6C是示出根據一些實例的空間反向圖案替代(與圖6B中的順序相比)的實例的圖;
圖7是示出根據一些實例的用於當前塊的簡化的仿射運動模型的實例的圖;
圖8是示出根據一些實例的塊的子塊的運動向量場的實例的圖;
圖9是示出根據一些實例的在仿射訊框間(AF_INTER)模式下的運動向量預測的實例的圖;
圖10A和圖10B是示出根據一些實例的在仿射合併(AF_MERGE)模式下的運動向量預測的實例的圖;
圖11是示出根據一些實例的用於當前塊的仿射運動模型的實例的圖;
圖12是示出根據一些實例的用於當前塊的仿射運動模型的另一實例的圖;
圖13是示出根據一些實例的當前塊和候選塊的實例的圖;
圖14是示出根據一些實例的當前塊、當前塊的控制點和候選塊的實例的圖;
圖15是示出根據一些實例的針對仿射編碼塊估計的並且對應於編碼塊的中心位置的實例運動向量的圖;
圖16是示出根據一些實例的用於利用從仿射編碼塊產生的運動資訊來更新基於歷史的運動預測表的實例程序的流程圖;
圖17是示出根據一些實例的實例編碼設備的方塊圖;及
圖18是示出根據一些實例的實例視訊解碼設備的方塊圖。
國內寄存資訊(請依寄存機構、日期、號碼順序註記) 無 國外寄存資訊(請依寄存國家、機構、日期、號碼順序註記) 無
1500:當前塊
1502:子塊
1504:運動向量
1510:控制點
1512:控制點

Claims (35)

  1. 一種用於處理視訊資料的裝置,該裝置包括: 記憶體;及 耦合到該記憶體的一或多個處理器,該一或多個處理器被配置為: 獲得視訊資料的一或多個塊; 決定從該一或多個塊中的一塊的一第一控制點而推導的一第一運動向量,該塊是使用一仿射運動模式來編碼的; 決定從該塊的一第二控制點而推導的一第二運動向量; 基於該第一運動向量和該第二運動向量來估計用於該塊內的一預定位置的一第三運動向量;及 利用該第三運動向量來填充一基於歷史的運動向量預測器(HMVP)表。
  2. 根據請求項1之裝置,其中該預定位置包括該塊的一中心。
  3. 根據請求項1之裝置,其中該第一控制點包括一左上方控制點,並且該第二控制點包括一右上方控制點。
  4. 根據請求項3之裝置,其中該第三運動向量是進一步基於與一底部控制點相關聯的一控制點運動向量來估計的。
  5. 根據請求項1之裝置,其中估計該第三運動向量包括: 基於該第一運動向量和該第二運動向量之間的一差,來決定該第一運動向量和該第二運動向量之間的一變化率;及 將該變化率乘以對應於該預定位置的一乘法因數。
  6. 根據請求項5之裝置,其中該預定位置包括該塊的一中心,並且其中該乘法因數包括該塊的一寬度和該塊的一高度中的至少一項的一半。
  7. 根據請求項5之裝置,其中該變化率包括一每單位變化率,其中該每單位變化率的每個單位包括一取樣、一子塊和一圖元中的至少一項。
  8. 根據請求項5之裝置,其中該乘法因數包括該預定位置和該塊的一邊界之間的一取樣數量。
  9. 根據請求項1之裝置,其中該第三運動向量是基於該第一運動向量的一水平分量和該第二運動向量的一水平分量之間的一第一運動變化以及該第一運動向量的一垂直分量和該第二運動向量的一垂直分量之間的一第二運動變化的。
  10. 根據請求項1之裝置,其中該第三運動向量包括基於與該塊相關聯的仿射運動資訊而產生的一平移運動向量。
  11. 根據請求項1之裝置,其中該第三運動向量包括與該塊的一或多個子塊相關聯的運動資訊,其中該一或多個子塊中的至少一個子塊對應於該預定位置。
  12. 根據請求項1之裝置,其中該HMVP表和該第三運動向量中的至少一者用於對一額外塊的運動預測。
  13. 根據請求項1之裝置,其中該一或多個處理器被配置為: 將來自該HMVP表的一或多個HMVP候選添加到一高級運動向量預測(AMVP)候選列表、一合併模式候選列表和用於使用該仿射運動模式進行編碼的一運動向量預測預測器中的至少一項中。
  14. 根據請求項1之裝置,其中處理視訊資料包括對視訊資料進行編碼,其中該一或多個處理器被配置為: 產生一經編碼的視訊位元串流,該經編碼的視訊位元串流包括視訊資料的該一或多個塊。
  15. 根據請求項14之裝置,其中該一或多個處理器被配置為: 發送該經編碼的視訊位元串流、該第一控制點和該第二控制點。
  16. 根據請求項1之裝置,其中該一或多個處理器被配置為: 使用該仿射運動模型來對視訊資料的該一或多個塊進行解碼。
  17. 根據請求項1之裝置,其中該裝置是一行動設備。
  18. 一種處理視訊資料的方法,該方法包括以下步驟: 獲得視訊資料的一或多個塊; 決定從該一或多個塊中的塊的一第一控制點而推導的一第一運動向量,該塊是使用一仿射運動模式來編碼的; 決定從該塊的一第二控制點而推導的一第二運動向量; 基於該第一運動向量和該第二運動向量來估計用於該塊內的一預定位置的一第三運動向量;及 利用該第三運動向量來填充一基於歷史的運動向量預測器(HMVP)表。
  19. 根據請求項18之方法,其中該預定位置包括該塊的一中心。
  20. 根據請求項18之方法,其中該第一控制點包括一左上方控制點,並且該第二控制點包括一右上方控制點。
  21. 根據請求項20之方法,其中該第三運動向量是進一步基於與一底部控制點相關聯的一控制點運動向量來估計的。
  22. 根據請求項18之方法,其中估計該第三運動向量包括以下步驟: 基於該第一運動向量和該第二運動向量之間的一差,來決定該第一運動向量和該第二運動向量之間的一變化率;及 將該變化率乘以對應於該預定位置的一乘法因數。
  23. 根據請求項22之方法,其中該預定位置包括該塊的一中心,並且其中該乘法因數包括該塊的一寬度和該塊的一高度中的至少一項的一半。
  24. 根據請求項22之方法,其中該變化率包括一每單位變化率,其中該每單位變化率的每個單位包括一取樣、一子塊和圖元中的至少一項。
  25. 根據請求項22之方法,其中該乘法因數包括該預定位置和該塊的一邊界之間的一取樣數量。
  26. 根據請求項18之方法,其中該第三運動向量是基於該第一運動向量的一水平分量和該第二運動向量的一水平分量之間的一第一運動變化以及該第一運動向量的一垂直分量和該第二運動向量的一垂直分量之間的一第二運動變化的。
  27. 根據請求項18之方法,其中該第三運動向量包括基於與該塊相關聯的仿射運動資訊而產生的一平移運動向量。
  28. 根據請求項18之方法,其中該第三運動向量包括與該塊的一或多個子塊相關聯的運動資訊,其中該一或多個子塊中的至少一個子塊對應於該預定位置。
  29. 根據請求項18之方法,其中該HMVP表和該第三運動向量中的至少一者用於對一額外塊的運動預測。
  30. 根據請求項18之方法,亦包括以下步驟: 將來自該HMVP表的一或多個HMVP候選添加到一高級運動向量預測(AMVP)候選列表、一合併模式候選列表和用於使用該仿射運動模式進行編碼的一運動向量預測預測器中的至少一項中。
  31. 根據請求項18之方法,其中該第三運動向量包括用於該塊的運動資訊的一表示。
  32. 根據請求項18之方法,其中處理視訊資料包括對視訊資料進行編碼,該方法亦包括以下步驟: 產生一經編碼的視訊位元串流,該經編碼的視訊位元串流包括視訊資料的該一或多個塊。
  33. 根據請求項32之方法,亦包括以下步驟: 發送該經編碼的視訊位元串流、該第一控制點和該第二控制點。
  34. 根據請求項18之方法,亦包括以下步驟: 使用該仿射運動模型來對視訊資料的該一或多個塊進行解碼。
  35. 一種具有儲存在其上的指令的非暫時性電腦可讀取儲存媒體,該等指令在由一或多個處理器執行時使得該一或多個處理器進行以下操作: 獲得視訊資料的一或多個塊; 決定從該一或多個塊中的塊的一第一控制點而推導的一第一運動向量,該塊是使用一仿射運動模式來編碼的; 決定從該塊的一第二控制點而推導的一第二運動向量; 基於該第一運動向量和該第二運動向量來估計用於該塊內的一預定位置的一第三運動向量;及 利用該第三運動向量來填充一基於歷史的運動向量預測器(HMVP)表。
TW109132897A 2019-09-24 2020-09-23 基於歷史的運動向量預測 TW202126042A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962905311P 2019-09-24 2019-09-24
US201962905371P 2019-09-24 2019-09-24
US62/905,311 2019-09-24
US62/905,371 2019-09-24
US17/028,064 US11582475B2 (en) 2019-09-24 2020-09-22 History-based motion vector prediction
US17/028,064 2020-09-22

Publications (1)

Publication Number Publication Date
TW202126042A true TW202126042A (zh) 2021-07-01

Family

ID=74881404

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109132897A TW202126042A (zh) 2019-09-24 2020-09-23 基於歷史的運動向量預測

Country Status (9)

Country Link
US (1) US11582475B2 (zh)
EP (1) EP4035382A1 (zh)
JP (1) JP2022548650A (zh)
KR (1) KR20220064962A (zh)
CN (1) CN114503584A (zh)
AU (1) AU2020354483A1 (zh)
BR (1) BR112022004552A2 (zh)
TW (1) TW202126042A (zh)
WO (1) WO2021061746A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102463478B1 (ko) * 2018-01-26 2022-11-04 에이치에프아이 이노베이션 인크. 비디오 코딩 시스템을 위한 아핀 인터 예측 방법 및 장치
KR20240055149A (ko) 2018-05-10 2024-04-26 엘지전자 주식회사 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US11595639B2 (en) * 2018-09-21 2023-02-28 Lg Electronics Inc. Method and apparatus for processing video signals using affine prediction
WO2021034122A1 (ko) * 2019-08-21 2021-02-25 엘지전자 주식회사 Hmvp 후보에 기반하여 예측을 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
US11451809B2 (en) * 2019-08-28 2022-09-20 Tencent America LLC Method and apparatus for video coding
US11949909B2 (en) * 2020-12-29 2024-04-02 Qualcomm Incorporated Global motion estimation using road and ground object labels for geometry-based point cloud compression
US20220279204A1 (en) * 2021-02-26 2022-09-01 Qualcomm Incorporated Efficient video encoder architecture
CN116076073A (zh) * 2021-09-02 2023-05-05 辉达公司 用于高性能视频编码的硬件编解码器加速器

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118354099A (zh) * 2018-04-02 2024-07-16 寰发股份有限公司 用于视频编解码系统中的子块运动补偿的视频处理方法和装置
US10958934B2 (en) * 2018-07-27 2021-03-23 Tencent America LLC History-based affine merge and motion vector prediction
US10944984B2 (en) * 2018-08-28 2021-03-09 Qualcomm Incorporated Affine motion prediction
US11212550B2 (en) * 2018-09-21 2021-12-28 Qualcomm Incorporated History-based motion vector prediction for affine mode
KR102616766B1 (ko) * 2018-09-22 2023-12-27 엘지전자 주식회사 인터 예측을 기반으로 비디오 신호를 처리하기 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20220064962A (ko) 2022-05-19
US11582475B2 (en) 2023-02-14
CN114503584A (zh) 2022-05-13
US20210092432A1 (en) 2021-03-25
AU2020354483A1 (en) 2022-03-10
JP2022548650A (ja) 2022-11-21
EP4035382A1 (en) 2022-08-03
BR112022004552A2 (pt) 2022-06-07
WO2021061746A1 (en) 2021-04-01

Similar Documents

Publication Publication Date Title
TWI826546B (zh) 對以歷史為基礎之運動向量預測器之改良
CN112956190B (zh) 仿射运动预测
RU2742298C2 (ru) Выведение вектора движения при видеокодировании
TW202126042A (zh) 基於歷史的運動向量預測
TW202041030A (zh) 用於當前圖片參考及區塊內複制之虛擬檢索區域
KR20190120389A (ko) 아핀 모션 정보 도출
TW201803348A (zh) 用於在視頻寫碼中之並列參考指標的一致性約束
TW202110178A (zh) 具有可切換濾波器之參考圖像重新取樣
TW202042552A (zh) 用於照明補償之區塊大小限制
CN114402617A (zh) 利用矢量裁剪的仿射译码
TW202315409A (zh) 運動向量(mv)候選重新排序
TW202308389A (zh) 用於解碼器側運動向量細化的自我調整雙邊匹配
TW202236852A (zh) 高效視訊編碼器架構
TW202031052A (zh) 用於照明補償模式之刪剪
TW202236848A (zh) 使用增強內插濾波器的訊框內預測
TWI848166B (zh) 用於產生縮放比例和完整解析度圖片的系統和方法
TW202112130A (zh) 用於產生縮放比例和完整解析度圖片的系統和方法
TW202316855A (zh) 梯度長條圖的產生
CN117837143A (zh) 用于解码器侧运动矢量细化的自适应双边匹配