TWI829769B - Motion vector accessing range for affine - Google Patents
Motion vector accessing range for affine Download PDFInfo
- Publication number
- TWI829769B TWI829769B TW108134969A TW108134969A TWI829769B TW I829769 B TWI829769 B TW I829769B TW 108134969 A TW108134969 A TW 108134969A TW 108134969 A TW108134969 A TW 108134969A TW I829769 B TWI829769 B TW I829769B
- Authority
- TW
- Taiwan
- Prior art keywords
- current block
- block
- patent application
- affine
- item
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/537—Motion estimation other than block-based
- H04N19/54—Motion estimation other than block-based using feature points or meshes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本專利文件涉及視頻編碼技術、裝置和系統。 [相關申請的交叉引用] 根據適用的專利法和/或根據巴黎公約的規則,本申請及時要求2018年9月26日提交的國際專利申請No. PCT/CN2018/107629和2018年9月27日提交的國際專利申請No. PCT/CN2018/107869的優先權和權益。國際專利申請No. PCT/CN2018/107629和國際專利申請No. PCT/CN2018/107869的全部公開內容通過引用結合在此作為本申請公開內容的一部分。This patent document relates to video encoding technology, devices and systems. [Cross-reference to related applications] This application timely claims International Patent Application No. PCT/CN2018/107629 filed on September 26, 2018 and International Patent Application No. Priority and rights of PCT/CN2018/107869. The entire disclosures of International Patent Application No. PCT/CN2018/107629 and International Patent Application No. PCT/CN2018/107869 are hereby incorporated by reference as part of the disclosure of this application.
運動補償(MC)是視頻處理中的技術,在給定之前和/或未來的幀的情況下,其通過考慮到相機和/或視頻中的對象的運動來預測視頻中的幀。運動補償可以用於視頻數據的編碼中以用於視頻壓縮。Motion compensation (MC) is a technique in video processing that predicts frames in a video by taking into account the motion of the camera and/or objects in the video, given previous and/or future frames. Motion compensation can be used in the encoding of video data for video compression.
本文件公開了涉及在視頻編碼和解碼中使用仿射運動補償的方法、系統和裝置。This document discloses methods, systems, and apparatus involving the use of affine motion compensation in video encoding and decoding.
在一個示例性方面中,公開了一種視頻處理的方法。該方法包含:存取儲存在與當前塊相鄰的基本單元塊中的至少一個的運動向量(MV);以及,基於所存取的MV進行所述當前塊與所述當前塊的位元流表示之間的視頻處理。In an exemplary aspect, a method of video processing is disclosed. The method includes: accessing a motion vector (MV) stored in at least one basic unit block adjacent to a current block; and performing a bit stream of the current block and the current block based on the accessed MV. Video processing between representations.
一個示例性方面中,公開了一種視頻處理設備,包括處理器,該處理器被配置為實現本文所述的方法。In one exemplary aspect, a video processing device is disclosed, including a processor configured to implement the methods described herein.
在又一代表性方面中,本文中描述的各種技術可以實施為儲存在非暫態電腦可讀介質上的電腦程式產品。電腦程式產品包含程式代碼,以執行本文中描述的方法。In yet another representative aspect, various techniques described herein may be implemented as a computer program product stored on non-transitory computer-readable media. A computer program product contains program code for performing the methods described herein.
在又一代表性方面中,視頻解碼器設備可以實現如本文中描述的方法。In yet another representative aspect, a video decoder device can implement a method as described herein.
所附附件、附圖和以下說明書中提出了一個或多個實現方式的細節。其他特徵將從說明書和附圖以及申請專利範圍變得明顯。The details of one or more implementations are set forth in the accompanying attachments, drawings, and the following description. Other features will become apparent from the description and drawings and from the claims.
本文件提供若干技術,其可以被實施為數位視頻編碼器和解碼器。本文件中使用了章節標題以便於理解,並且不將每個章節中公開的技術和實施例的範圍僅限制在該章節。This document provides several techniques that can be implemented as digital video encoders and decoders. Section headings are used in this document to facilitate understanding and do not limit the scope of the techniques and embodiments disclosed in each section to that section only.
在本文件中,術語“視頻處理”可以指視頻編碼、視頻解碼、視頻壓縮或視頻解壓縮。例如,在視頻的像素表示到對應的位元流表示的轉換期間,可以應用視頻壓縮算法,或反之亦然。In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion of a pixel representation of a video to a corresponding bitstream representation, or vice versa.
1. 概述1 Overview
本發明涉及視頻/圖像編碼技術。具體地,其涉及視頻/圖像編碼中的仿射預測。其可以應用到現有視頻編碼標準中,例如HEVC,或尚待敲定的標準(多功能視頻編碼)。其還可以應用於未來視頻/圖像編碼標準或視頻/圖像編解碼器。The present invention relates to video/image coding technology. Specifically, it relates to affine prediction in video/image coding. It can be applied to existing video coding standards, such as HEVC, or to a yet-to-be-finalized standard (Multifunction Video Coding). It can also be applied to future video/image encoding standards or video/image codecs.
2. 介紹2. Introduction
基於子塊的預測首先由HEVC Annex I(3D-HEVC)引入到視頻編碼標準中。利用基於子塊的預測,諸如編碼單元(CU)或預測單元(PU)的塊被分為若干不重疊的子塊。可以為不同的子塊分配不同的運動信息,諸如參考索引或運動向量(MV),並且對每個子塊單獨地執行運動補償(MC)。圖1示出了基於子塊的預測的概念。Sub-block-based prediction was first introduced into the video coding standard by HEVC Annex I (3D-HEVC). With sub-block based prediction, a block such as a coding unit (CU) or a prediction unit (PU) is divided into several non-overlapping sub-blocks. Different sub-blocks may be assigned different motion information, such as reference indexes or motion vectors (MVs), and motion compensation (MC) is performed individually for each sub-block. Figure 1 illustrates the concept of sub-block based prediction.
為了探索HEVC之外的未來視頻編碼技術,聯合視頻探索團隊(Joint Video Exploration Team,JVET)由VCEG和MPEG於2015年共同創立。從那時起,JVET採用了許多新方法,並將其納入名為聯合探索模型(Joint Exploration Model,JEM)的參考軟體中。To explore future video encoding technologies beyond HEVC, the Joint Video Exploration Team (JVET) was co-founded by VCEG and MPEG in 2015. Since then, JVET has adopted many new methods and incorporated them into reference software called the Joint Exploration Model (JEM).
在JEM中,在若干編碼工具中採用基於子塊的預測,例如仿射預測、可選時域運動向量預測(ATMVP)、空時運動向量預測(STMVP)、雙向光流(BIO)和幀速率上轉換(FRUC)。仿射預測也被採用到VVC中。In JEM, sub-block based prediction is employed in several coding tools such as affine prediction, alternative temporal motion vector prediction (ATMVP), space-time motion vector prediction (STMVP), bidirectional optical flow (BIO) and frame rate up conversion (FRUC). Affine prediction is also adopted into VVC.
2.1 仿射預測2.1 Affine prediction
在HEVC中,僅將平移運動模型應用於運動補償預測(MCP)。而在現實世界中,存在多種運動,例如放大/縮小、旋轉、透視運動和其他不規則運動。在VVC中,應用簡化的仿射變換運動補償預測。如圖2A-2B所示,塊的仿射運動場由兩個(在4參數仿射模型中)或三個(在6參數仿射模型中)控制點運動向量描述。In HEVC, only the translational motion model is applied for motion compensated prediction (MCP). In the real world, there are many kinds of motion, such as zooming in/out, rotation, perspective motion and other irregular motions. In VVC, a simplified affine transform motion compensated prediction is applied. As shown in Figures 2A-2B, the affine motion field of a block is described by two (in the 4-parameter affine model) or three (in the 6-parameter affine model) control point motion vectors.
圖2A-2B示出了簡化的仿射運動模型(a)4參數仿射模型;(b)6參數仿射模型。Figures 2A-2B show simplified affine motion models (a) 4-parameter affine model; (b) 6-parameter affine model.
塊的運動向量場(MVF)由具有4參數仿射模型的以下等式描述:The motion vector field (MVF) of a block is described by the following equation with a 4-parameter affine model:
(1) (1)
和6參數仿射模型:and a 6-parameter affine model:
(2) (2)
其中(mvh 0 ,mvv 0 )是左上角控制點的運動向量,並且(mvh 1 ,mvv 1 )是右上角控制點的運動向量,並且(mvh 2 ,mvv 2 )是左下角控制點的運動向量。點(x,y)表示相對於當前塊內的左上樣本的代表性點的坐標。CP運動向量可以被信令通知(如仿射AMVP模式中一樣)或on-the-fly推導(如仿射merge模式中一樣)。w和h是當前塊的寬度和高度。實踐中,除法通過帶有舍入運算的右移實現。在VTM中,代表性點被定義為子塊的中心位置,例如,當子塊的左上角相對於當前塊內的左上樣本的坐標是(xs,ys)時,代表性點的坐標被定義為(xs+2,ys+2)。where ( mv h 0 , mv v 0 ) is the motion vector of the upper left control point, and ( mv h 1 , mv v 1 ) is the motion vector of the upper right control point, and ( mv h 2 , mv v 2 ) is the motion vector of the lower left control point. The motion vector of the corner control point. Point (x, y) represents the coordinates of a representative point relative to the upper left sample within the current block. CP motion vectors can be signaled (as in affine AMVP mode) or derived on-the-fly (as in affine merge mode). w and h are the width and height of the current block. In practice, division is implemented by right shift with rounding. In VTM, the representative point is defined as the center position of the sub-block. For example, when the coordinates of the upper-left corner of the sub-block relative to the upper-left sample within the current block are (xs, ys), the coordinates of the representative point are defined as (xs+2, ys+2).
在無除法設計中,(1)和(2)實現為:In a division-free design, (1) and (2) are implemented as:
(3) (3)
對於(1)中所示的4參數仿射模型:For the 4-parameter affine model shown in (1):
(4) (4)
對於(2)中所示的6參數仿射模型:For the 6-parameter affine model shown in (2):
(5) (5)
最終,Finally,
(6) (6)
(7) (7)
其中S表示計算精度,例如在VVC中,S=7。在VVC中,左上樣本在(xs,ys)處的子塊的MC中使用的MV通過(6)計算,其中x=xs+2且y=ys+2。Where S represents the calculation accuracy, for example, in VVC, S=7. In VVC, the MV used in the MC of the sub-block at (xs, ys) for the upper left sample is calculated by (6), where x=xs+2 and y=ys+2.
為了推導每個4×4子塊的運動向量,根據等式(1)或(2)計算每個子塊的中心樣本的運動向量,如圖3所示,並舍入到1/16分數精度。然後,應用運動補償內插濾波器以用推導的運動向量生成每個子塊的預測。To derive the motion vector of each 4 × 4 sub-block, the motion vector of the center sample of each sub-block is calculated according to equation (1) or (2), as shown in Figure 3, and rounded to 1/16 fractional accuracy. Then, a motion compensated interpolation filter is applied to generate predictions for each sub-block with the derived motion vectors.
仿射模型可以從空域鄰近的仿射編碼塊繼承,諸如左、上、右上、左下和左上鄰近塊,如圖4A中所示。例如,如果圖4A中的鄰近左塊A以仿射模式編碼,如圖4B中的A0所指代,則獲取含有塊A的鄰近CU/PU的左上角、右上角和左下角的控制點(CP)運動向量mv0 N 、mv1 N 和mv2 N 。並且基於mv0 N 、mv1 N 和mv2 N 計算當前CU/PU上的左上角/右上/左下的運動向量mv0 C 、mv1 C 和mv2 C (其僅用於6參數仿射模型)。應注意,在VTM-2.0中,如果當前塊是仿射編碼的,則子塊(例如VTM中的4×4塊)LT儲存mv0,RT儲存mv1。如果當前塊是用6參數仿射模型編碼的,則LB儲存mv2;否則(在4參數仿射模型的情況下),則LB儲存mv2’。其他子塊儲存用於MC的MV。The affine model may be inherited from spatially adjacent affine coding blocks, such as the left, upper, upper right, lower left and upper left neighbor blocks, as shown in Figure 4A. For example, if the adjacent left block A in Figure 4A is encoded in affine mode, as designated by A0 in Figure 4B, then the control points of the upper left corner, upper right corner and lower left corner of the adjacent CU/PU containing block A are obtained ( CP) motion vectors mv 0 N , mv 1 N and mv 2 N . And calculate the motion vector mv 0 C , mv 1 C and mv 2 C of the upper left corner/upper right/lower left corner on the current CU/PU based on mv 0 N , mv 1 N and mv 2 N (which is only used for the 6-parameter affine model ). It should be noted that in VTM-2.0, if the current block is affine coded, then the sub-block (such as a 4×4 block in VTM) LT stores mv0 and RT stores mv1. If the current block is encoded with a 6-parameter affine model, then LB stores mv2; otherwise (in the case of a 4-parameter affine model), then LB stores mv2'. Other sub-blocks store MVs for MC.
應當注意,當用仿射merge模式編碼CU時,即,在AF_MERGE模式中,它從有效的鄰近重構塊獲得用仿射模式編碼的第一塊。並且候選塊的選擇順序是從左、上、右上、左下到左上,如圖4A所示。It should be noted that when a CU is encoded with affine merge mode, i.e. in AF_MERGE mode, it obtains the first block encoded with affine mode from the valid neighboring reconstructed blocks. And the selection order of candidate blocks is from left, top, top right, bottom left to top left, as shown in Figure 4A.
當前塊的推導的CP MV mv0 C 、mv1 C 和mv2 C 可以用作仿射merge模式中的CP MV。或者它們可以在VVC中用作仿射幀間模式的MVP。應當注意,對於merge模式,如果當前塊用仿射模式編碼,則在推導當前塊的CP MV之後,可以將當前塊進一步劃分為多個子塊,並且每個塊將基於當前塊的推導的CP MV推導其運動信息。The derived CP MVs mv 0 C , mv 1 C and mv 2 C of the current block can be used as CP MVs in the affine merge mode. Or they can be used in VVC as MVP for affine inter mode. It should be noted that for merge mode, if the current block is encoded with affine mode, after deriving the CP MV of the current block, the current block can be further divided into multiple sub-blocks, and each block will be based on the derived CP MV of the current block derive its motion information.
2.2 JVET-K01862.2 JVET-K0186
不同於其中僅一個仿射空域鄰近塊可以用於推導塊的仿射運動的VTM,在JVET-K0186中,提出了為AF_MERGE模式建構仿射候選的單獨列表。進行以下步驟。Unlike VTM where only one affine spatial neighbor block can be used to derive the affine motion of a block, in JVET-K0186 it is proposed to construct a separate list of affine candidates for the AF_MERGE mode. Follow the steps below.
1) 插入繼承的仿射候選到候選列表中1) Insert inherited affine candidates into the candidate list
圖5示出了仿射merge模式的候選位置的示例。Figure 5 shows an example of candidate locations for the affine merge pattern.
繼承的仿射候選是指由用仿射模式編碼的有效鄰近重構塊推導的候選。Inherited affine candidates are candidates derived from valid neighboring reconstruction blocks encoded with affine patterns.
如圖5中所示,候選塊的掃描順序是A1 ,B1 ,B0 ,A0 和B2 。當選擇塊(例如,A1)時,應用兩步過程:As shown in Figure 5, the scanning order of candidate blocks is A 1 , B 1 , B 0 , A 0 and B 2 . When selecting a block (e.g., A1), a two-step process is applied:
a) 首先,使用覆蓋塊的CU的三個角部運動向量,以推導當前塊的兩個/三個控制點。a) First, use the three corner motion vectors of the CU covering the block to derive the two/three control points of the current block.
b) 基於當前塊的控制點,以推導當前塊內的每個子塊的子塊運動。b) Based on the control points of the current block, to derive the sub-block motion of each sub-block within the current block.
2) 插入建構的仿射候選2) Insert constructed affine candidates
如果仿射merge候選列表中的候選的數目少於MaxNumAffineCand ,則建構的仿射候選被插入到候選列表中。If the number of candidates in the affine merge candidate list is less than MaxNumAffineCand , the constructed affine candidate is inserted into the candidate list.
建構的仿射候選是指通過組合每個控制點的鄰近運動信息建構的候選。The constructed affine candidate refers to the candidate constructed by combining the neighboring motion information of each control point.
首先從指定的空域鄰域和時域鄰域推導控制點的運動信息,如圖5中所示。CPk(k=1,2,3,4)表示第k個控制點。A0 ,A1 ,A2 ,B0 ,B1 ,B2 和B3 是預測CPk(k=1,2,3)的空域位置;T是預測CP4的時域位置。First, the motion information of the control point is derived from the specified spatial neighborhood and temporal neighborhood, as shown in Figure 5. CPk (k=1, 2, 3, 4) represents the kth control point. A 0 , A 1 , A 2 , B 0 , B 1 , B 2 and B 3 are the predicted spatial domain positions of CPk (k=1, 2, 3); T is the predicted time domain position of CP4.
CP1,CP2,CP3和CP4的坐標分別是(0,0),(W,0),(H,0)和(W,H),其中W和H是當前塊的寬度和高度。The coordinates of CP1, CP2, CP3 and CP4 are (0,0), (W,0), (H,0) and (W,H) respectively, where W and H are the width and height of the current block.
每個控制點的運動信息根據以下優先級順序獲得:Motion information for each control point is obtained according to the following priority order:
- 對於CP1,檢查優先級是B2 ->B3 ->A2 。如果B2 可用則使用B2 。否則,如果B2 不可用,則使用B3 。如果B2 和B3 都不可用,則使用A2 。如果全部三個候選不可用,則CP1的運動信息無法獲得。- For CP1, the check priority is B 2 ->B 3 ->A 2 . B 2 is used if B 2 is available. Otherwise, if B2 is not available, B3 is used. If neither B 2 nor B 3 is available, then A 2 is used. If all three candidates are not available, motion information for CP1 cannot be obtained.
- 對於CP2,檢查優先級是B1->B0;- For CP2, the check priority is B1->B0;
- 對於CP3,檢查優先級是A1->A0;- For CP3, the check priority is A1->A0;
- 對於CP4,使用T。- For CP4, use T.
其次,控制點的組合用於建構運動模型。Secondly, the combination of control points is used to construct the motion model.
需要三個控制點的運動向量來計算6參數仿射模型中的變換參數。可以從以下四個組合之一選擇三個控制點:({CP1,CP2,CP4},{CP1,CP2,CP3},{CP2,CP3,CP4},{CP1,CP3,CP4})。例如,使用CP1,CP2和CP3控制點來建構6參數仿射運動模型,指代為仿射(CP1,CP2,CP3)。The motion vectors of three control points are needed to calculate the transformation parameters in the 6-parameter affine model. Three control points can be selected from one of the following four combinations: ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). For example, use CP1, CP2 and CP3 control points to construct a 6-parameter affine motion model, referred to as affine (CP1, CP2, CP3).
需要兩個控制點的運動向量來計算4參數仿射模型中的變換參數。可以從以下六個組合之一選擇兩個控制點({CP1,CP4},{CP2,CP3},{CP1,CP2},{CP2,CP4},{CP1,CP3},{CP3,CP4})。例如,使用CP1和CP2控制點來建構4參數仿射運動模型,指代為仿射(CP1,CP2)。The motion vectors of the two control points are needed to calculate the transformation parameters in the 4-parameter affine model. Two control points can be selected from one of the following six combinations ({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}) . For example, use CP1 and CP2 control points to construct a 4-parameter affine motion model, referred to as affine (CP1, CP2).
建構的仿射候選的組合被以如下順序插入到候選列表中:The constructed combinations of affine candidates are inserted into the candidate list in the following order:
{CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4},{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3},{CP2,CP3},{CP1,CP4},{CP2,CP4},{CP3,CP4}。{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4}, {CP2, CP4}, {CP3, CP4}.
3) 插入零運動向量3) Insert zero motion vector
如果仿射merge候選列表中的候選的數目少於MaxNumAffineCand,則將零運動向量插入到候選列表中,直到列表充滿。If the number of candidates in the affine merge candidate list is less than MaxNumAffineCand, zero motion vectors are inserted into the candidate list until the list is full.
2.3 ATMVP(高級時域運動向量預測)2.3 ATMVP (Advanced Temporal Motion Vector Prediction)
在第10次JVET會議上,高級時域運動向量預測(ATMVP)被包含在基準集(BMS)-1.0參考軟體中,其基於來自時域鄰近圖片的共位(collocated)塊的運動信息推導一個編碼單元(CU)的子塊的多個運動。雖然它提高了時域運動向量預測的效率,但是對現有的ATMVP設計識別出以下複雜度問題:In the 10th JVET meeting, Advanced Temporal Motion Vector Prediction (ATMVP) was included in the Benchmark Set (BMS)-1.0 reference software, which derives a Multiple motions for sub-blocks of a coding unit (CU). Although it improves the efficiency of temporal motion vector prediction, the following complexity issues are identified for existing ATMVP designs:
如果使用多個參考圖片,則不同ATMVP CU的共位圖片可能不相同。這意味著需要取回多個參考圖片的運動場。If multiple reference pictures are used, the co-located pictures of different ATMVP CUs may be different. This means that multiple reference images of the playing field need to be retrieved.
每個ATMVP CU的運動信息總是基於4×4單元推導,導致對一個ATMVP CU內的每個4×4子塊的運動推導和運動補償的多次調用。The motion information of each ATMVP CU is always derived based on 4×4 units, resulting in multiple calls of motion derivation and motion compensation for each 4×4 sub-block within an ATMVP CU.
提出了對ATMVP的一些進一步簡化,並且已經在VTM2.0中採用。Some further simplifications of ATMVP were proposed and have been adopted in VTM2.0.
2.3.1 使用一個固定共位圖片的簡化的共位塊推導2.3.1 Simplified co-located block derivation using a fixed co-located image
在該方法中,提出了一種簡化設計以使用與在HEVC中相同的共位圖片,其在條帶標頭處信令通知,作為用於ATMVP推導的共位圖片。在塊級,如果鄰近塊的參考圖片與該共位圖片不同,則使用HEVC時域MV縮放方法來縮放塊的MV,並且在ATMVP中使用縮放的MV。In this approach, a simplified design is proposed to use the same co-located picture as in HEVC, which is signaled at the slice header, as the co-located picture for ATMVP derivation. At the block level, if the reference picture of a neighboring block is different from the co-located picture, the HEVC temporal MV scaling method is used to scale the MV of the block, and the scaled MV is used in ATMVP.
指代用於取回共位圖片Rcol 中的運動場的運動向量作為MVcol 。為了最小化由於MV縮放引起的影響,用於推導MVcol 的空域候選列表中的MV以如下方式選擇:如果候選MV的參考圖片是共位圖片,則選擇該MV並將其用作MVcol ,而不使用任何縮放。否則,選擇具有最接近共位圖片的參考圖片的MV以利用縮放來推導MVcol 。Refer to the motion vector used to retrieve the motion field in the co-located picture R col as MV col . To minimize the impact due to MV scaling, the MVs in the spatial candidate list used to derive MV col are selected in the following way: if the reference picture of the candidate MV is a co-located picture, then this MV is selected and used as MV col , without using any scaling. Otherwise, the MV with the reference picture closest to the co-located picture is selected to derive MV col using scaling.
2.3.2 自適應ATMVP子塊大小2.3.2 Adaptive ATMVP sub-block size
在該方法中,提出支持用於ATMVP運動推導的子塊尺寸的條帶級配接。具體地,在序列級信令通知用於ATMVP運動推導的一個預設子塊尺寸。另外,在條帶級信令通知一個標誌以指示預設子塊尺寸是否用於當前條帶。如果該標誌為偽,則在條帶的條帶標頭中進一步信令通知對應的ATMVP子塊尺寸。In this approach, we propose to support slice-level patching of sub-block sizes for ATMVP motion derivation. Specifically, a preset sub-block size for ATMVP motion derivation is signaled at the sequence level. Additionally, a flag is signaled at the slice level to indicate whether the preset sub-block size is used for the current slice. If this flag is false, the corresponding ATMVP sub-block size is further signaled in the slice header of the slice.
2.4 STMVP(空時運動向量預測)2.4 STMVP (Space-time Motion Vector Prediction)
STMVP在JEM中被提出並被採用,但尚未在VVC中被採用。在STMVP中,按照光柵掃描順序遞迴地推導子CU的運動向量。圖6說明了這個概念。讓我們考慮含有四個4×4子CU A,B,C和D的8×8 CU。當前幀中的鄰近4×4塊標記為a,b,c和d。STMVP was proposed and adopted in JEM, but has not yet been adopted in VVC. In STMVP, the motion vectors of sub-CUs are deduced recursively in raster scan order. Figure 6 illustrates this concept. Let us consider an 8×8 CU containing four 4×4 sub-CUs A, B, C and D. Neighboring 4×4 blocks in the current frame are labeled a, b, c and d.
子CU A的運動推導以識別其兩個空間鄰域開始。第一鄰域是子CU A上方的N×N塊(塊c)。如果該塊c不可用或者是幀內編碼的,則檢查子CU A上方的其他N×N塊(從左到右,始於塊c)。第二鄰域是子CU A左側的塊(塊b)。如果塊b不可用或者是幀內編碼的,則檢查子CU A左側的其他塊(從上到下,始於塊b)。從每個列表的鄰近塊獲得的運動信息被縮放到給定列表的第一參考幀。接下來,通過按照與HEVC中指定的TMVP推導相同的過程來推導子塊A的時域運動向量預測符(TMVP)。取回位置D處的共位塊的運動信息並相應地縮放。最後,在檢索和縮放運動信息之後,對於每個參考列表分開地平均全部可用的運動向量(最多3個)。平均的運動向量被指定為當前子CU的運動向量。The derivation of the motion of sub-CU A starts with the identification of its two spatial neighbors. The first neighborhood is the N×N block above sub-CU A (block c). If block c is not available or is intra-coded, other N×N blocks above sub-CU A are checked (from left to right, starting with block c). The second neighborhood is the block to the left of sub-CU A (block b). If block b is not available or is intra-coded, check other blocks to the left of sub-CU A (from top to bottom, starting with block b). The motion information obtained from the neighboring blocks of each list is scaled to the first reference frame of the given list. Next, the temporal motion vector predictor (TMVP) of sub-block A is derived by following the same process as the TMVP derivation specified in HEVC. Retrieve the motion information of the co-located block at position D and scale accordingly. Finally, after retrieving and scaling the motion information, all available motion vectors (up to 3) are averaged separately for each reference list. The average motion vector is designated as the motion vector of the current sub-CU.
圖6示出了具有四個子塊(A-D)的一個CU及其鄰近塊(a-d)的示例。Figure 6 shows an example of one CU with four sub-blocks (A-D) and its neighboring blocks (a-d).
2.5 示例性仿射繼承方法2.5 Example affine inheritance method
為了降低仿射模型繼承的儲存要求,一些實施例可以實現一種方案,其中通過僅存取當前塊左側一列的MV和當前塊上方的一列的MV來繼承仿射模型。To reduce the storage requirements of affine model inheritance, some embodiments may implement a scheme in which the affine model is inherited by accessing only the MVs of one column to the left of the current block and the MVs of one column above the current block.
可以通過由仿射編碼的鄰近塊的左下MV和右下MV推導當前塊的CP MV來進行仿射模型繼承,如圖7中所示。Affine model inheritance can be performed by deriving the CP MV of the current block from the lower left MV and lower right MV of the affine-coded neighboring blocks, as shown in Figure 7.
a. 在一個示例中,mv 0 C =(mv 0 Ch , mv 0 Cv )和mv 1 C =(mv 1 Ch , mv 1 Cv )由mv 0 N =(mv 0 Nh , mv 0 Nv )和mv 1 N =(mv 1 Nh , mv 1 Nv )推導如下:a. In an example, mv 0 C = ( mv 0 Ch , mv 0 Cv ) and mv 1 C = ( mv 1 Ch , mv 1 Cv ) are given by mv 0 N = ( mv 0 Nh , mv 0 Nv ) and mv 1 N = ( mv 1 Nh , mv 1 Nv ) is derived as follows:
(8) (8)
其中w 和w’ 分別是當前塊的寬度和鄰近塊的寬度。(x0 ,y0 )是當前塊的左上角的坐標,並且(x’0 ,y’0 )是鄰近塊的左下角的坐標。where w and w' are the width of the current block and the width of the neighboring block respectively. (x 0 , y 0 ) are the coordinates of the upper left corner of the current block, and (x' 0 , y' 0 ) are the coordinates of the lower left corner of the adjacent block.
替代地,此外,a 和b 計算過程中的除法運算可以由有或沒有加法運算的移位替代。Alternatively, furthermore, the division operations during the calculation of a and b may be replaced by shifts with or without addition operations.
b. 例如,通過由來自圖4A中的“B”和“C”的仿射編碼的鄰近塊的左下MV和右下MV推導當前塊的CP MV來進行仿射模型繼承。b. For example, affine model inheritance is performed by deriving the CP MV of the current block from the lower left MV and lower right MV of the affine-encoded neighboring blocks from “B” and “C” in Figure 4A.
i. 替代地,通過由來自圖4A中的“B”,“C”和“E”的仿射編碼的鄰近塊的左下MV和右下MV推導當前塊的CP MV來進行仿射模型繼承。i. Alternatively, affine model inheritance is performed by deriving the CP MV of the current block from the lower left MV and lower right MV of the affine-encoded neighboring blocks from “B”, “C” and “E” in Figure 4A.
c. 例如,僅當鄰近塊在含有當前塊的M×N區域的上方(或右上,或左上)的M×N區域中,才通過由仿射編碼的鄰近塊的左下MV和右下MV推導當前塊的CP MV來進行仿射模型繼承。c. For example, only if the neighboring block is in the M×N area above (or upper right, or upper left) the M×N area containing the current block, it is derived by the lower left MV and lower right MV of the neighboring block encoded by the affine The CP MV of the current block is used for affine model inheritance.
d. 例如,y0 = y’0 。d. For example, y 0 = y' 0 .
i. 替代地,y0 = 1+y0 ’。i. Alternatively, y 0 = 1+y 0 '.
e. 例如,如果當前塊通過由仿射編碼的鄰近塊的左下MV和右下MV推導當前塊的CP MV來繼承仿射模型,則將當前塊視為使用4參數仿射模型。e. For example, if the current block inherits the affine model by deriving the CP MV of the current block from the lower left MV and lower right MV of the affine-coded neighboring blocks, then the current block is considered to use the 4-parameter affine model.
圖7示出了通過由鄰近塊的兩個底CP推導來仿射繼承的示例。Figure 7 shows an example of affine inheritance by derivation from two base CPs of neighboring blocks.
可以通過由仿射編碼的鄰近塊的右上MV和右下MV推導當前塊的CP MV進行仿射模型繼承,如圖8中所示。Affine model inheritance can be performed by deriving the CP MV of the current block from the upper right MV and lower right MV of the affine-coded neighboring blocks, as shown in Figure 8.
a. 例如,mv 0 C =(mv 0 Ch , mv 0 Cv )和mv 1 C =(mv 1 Ch , mv 1 Cv )可以由mv 0 N =(mv 0 Nh , mv 0 Nv )和mv 1 N =(mv 1 Nh , mv 1 Nv )推導如下:a. For example, mv 0 C = ( mv 0 Ch , mv 0 Cv ) and mv 1 C = ( mv 1 Ch , mv 1 Cv ) can be given by mv 0 N = ( mv 0 Nh , mv 0 Nv ) and mv 1 N =( mv 1 Nh , mv 1 Nv ) is derived as follows:
(9) (9)
其中h’ 是鄰近塊的高度。w 是當前塊的寬度。(x0 ,y0 )是當前塊的左上角的坐標,並且(x’0 ,y’0 )是鄰近塊的右上角的坐標。where h' is the height of the neighboring block. w is the width of the current block. (x 0 , y 0 ) are the coordinates of the upper left corner of the current block, and (x' 0 , y' 0 ) are the coordinates of the upper right corner of the adjacent block.
替代地,此外,a 和b 計算過程中的除法運算可以由有或沒有加法運算的移位替代。Alternatively, furthermore, the division operations during the calculation of a and b may be replaced by shifts with or without addition operations.
b. 例如,通過由來自圖4A中的中“A”和“D”的仿射編碼的鄰近塊的右上MV和右下MV推導當前塊的CP MV進行仿射模型繼承。b. For example, affine model inheritance is performed by deriving the CP MV of the current block from the upper right MV and lower right MV of the neighboring blocks from the affine encoding of "A" and "D" in Figure 4A.
i. 替代地,通過由來自圖4A中的“A”,“D”和“E”的仿射編碼的鄰近塊的右上MV和右下MV推導當前塊的CP MV進行仿射模型繼承。i. Alternatively, affine model inheritance is performed by deriving the CP MV of the current block from the upper right MV and lower right MV of the affine-encoded neighboring blocks from “A”, “D” and “E” in Figure 4A.
c. 例如,僅當鄰近塊在含有當前塊的M×N區域的左側(或左上、或左下)的M×N區域中,才通過由仿射編碼的鄰近塊的右上MV和右下MV推導當前塊的CP MV進行仿射模型繼承。c. For example, only if the neighboring block is in the M×N area to the left (or upper left, or lower left) of the M×N area containing the current block, it is derived by the upper right MV and lower right MV of the neighboring block encoded by the affine The CP MV of the current block performs affine model inheritance.
d. 例如,x 0 =x’ 0 。d. For example, x 0 = x' 0 .
i. 替代地,x 0 = 1+x’ 0 。i. Alternatively, x 0 = 1+ x' 0 .
e. 例如,如果當前塊通過由仿射編碼的鄰近塊的右上MV和右下MV推導當前塊的CP MV繼承仿射模型,則將當前塊視為使用4參數仿射模型。e. For example, if the current block inherits the affine model by deriving the CP MV of the current block from the upper right MV and lower right MV of the affine-encoded neighboring blocks, then the current block is considered to use the 4-parameter affine model.
如果當前塊不使用6參數仿射模型,則可以推導更多的CP MV並儲存以用於運動向量預測和/或濾波過程。If the current block does not use a 6-parameter affine model, more CP MVs can be derived and stored for use in motion vector prediction and/or filtering processes.
a. 在一個示例中,儲存的左下MV可以用於運動預測,包含之後編碼的PU/CU的仿射模型繼承。a. In one example, the stored lower left MV can be used for motion prediction, including affine model inheritance for later encoded PU/CUs.
b. 在一個示例中,儲存的左下MV可以用於隨後的圖片的運動預測中。b. In one example, the stored lower left MV can be used in motion prediction of subsequent pictures.
c. 在一個示例中,儲存的左下MV可以用於去塊濾波過程。c. In one example, the stored lower left MV can be used in the deblocking filtering process.
d. 如果仿射編碼的塊不使用6參數仿射模型,則為仿射編碼的塊推導左下角的CP MV並儲存在左下MV單元中,其在VVC中是4×4。d. If the affine-coded block does not use a 6-parameter affine model, the CP MV of the lower left corner is derived for the affine-coded block and stored in the lower left MV unit, which is 4×4 in VVC.
i. 左下角的CP MV(記為mv 2 =(mv 2 h , mv 2 v ))對於4參數仿射模型推導如下i. The CP MV in the lower left corner (denoted as mv 2 = ( mv 2 h , mv 2 v )) is derived as follows for the 4-parameter affine model
(10) (10)
e. 對於仿射編碼塊推導右下角的CP MV並儲存在右下MV單元中,其在VVC中是4×4。儲存的右下MV可以用於運動預測,包含用於之後編碼的PU/CU的仿射模型繼承,或隨後的圖片的運動預測或去塊濾波過程。e. For the affine coding block, the CP MV in the lower right corner is derived and stored in the lower right MV unit, which is 4×4 in VVC. The stored lower right MV can be used for motion prediction, including affine model inheritance for subsequent encoded PU/CUs, or motion prediction or deblocking filtering processes for subsequent pictures.
i. 右下角的CP MV(記為mv 3 =(mv 3 h , mv 3 v ))對於4參數仿射模型推導如下:i. The CP MV in the lower right corner (denoted as mv 3 = ( mv 3 h , mv 3 v )) is derived as follows for the 4-parameter affine model:
(11) (11)
ii. 右下角CP MV對於6參數仿射模型推導如下:ii. The CP MV in the lower right corner is derived as follows for the 6-parameter affine model:
(12) (12)
iii. 右下角的CP MV對於4參數仿射模型和6參數仿射模型兩者推導如下:iii. The CP MV in the lower right corner is derived as follows for both the 4-parameter affine model and the 6-parameter affine model:
a.(13)a. (13)
b. 如果4參數模型中的mv 2 =(mv 2 h , mv 2 v )如(10)計算。圖8示出了通過由鄰近塊的兩個右側CP推導來仿射繼承的示例。b. If mv 2 = ( mv 2 h , mv 2 v ) in the 4-parameter model is calculated as (10). Figure 8 shows an example of affine inheritance by derivation from two right-hand CPs of neighboring blocks.
3. 由實施例解決的問題3. Problems solved by the embodiments
一些之前的設計僅可以支持4參數仿射模型的繼承,其可能導致當啟用6參數仿射模型時的編碼性能損失。Some previous designs could only support inheritance of 4-parameter affine models, which could result in coding performance loss when enabling 6-parameter affine models.
4. 示例性實施例4. Exemplary embodiments
我們提出若干方法來在降低儲存要求的情況下繼承6參數仿射模型。We propose several methods to inherit 6-parameter affine models while reducing storage requirements.
以下詳細的描述發明應被視為示例來解釋一般概念。這些發明不應狹義地解釋。此外,這些發明可以任何方式組合。本發明和其他發明之間的組合也是適用的。The following detailed description of the invention should be considered as examples to explain the general concepts. These inventions should not be interpreted narrowly. Furthermore, these inventions can be combined in any way. Combinations between this invention and other inventions are also suitable.
在以下的討論中,假設仿射編碼的上方或左側鄰近CU的左上角/右上角/左下角/右下角的坐標分別是(LTNx,LTNy)/(RTNx,RTNy)/(LBNx,LBNy)/(RBNx,RBNy);當前CU的左上角/右上角/左下角/右下角的坐標分別是(LTCx,LTCy)/(RTCx,RTCy)/(LBCx,LBCy)/(RBCx,RBCy);仿射編碼的上方或左側鄰近CU的寬度和高度分別是w’和h’;仿射編碼的當前CU的寬度和高度分別是w和h。In the following discussion, it is assumed that the coordinates of the upper left corner/upper right corner/lower left corner/lower right corner of the adjacent CU above or left of the affine encoding are (LTNx, LTNy)/(RTNx, RTNy)/(LBNx, LBNy)/ respectively. (RBNx, RBNy); The coordinates of the upper left corner/upper right corner/lower left corner/lower right corner of the current CU are (LTCx, LTCy)/(RTCx, RTCy)/(LBCx, LBCy)/(RBCx, RBCy); affine The width and height of the adjacent CU above or to the left of the encoding are w' and h' respectively; the width and height of the current CU of the affine encoding are w and h respectively.
1. 通過以不同方式使用直接在當前塊上方的列中的MV(例如,與當前塊相鄰的塊相關聯的MV)來進行仿射模型繼承,所述方式取決於仿射編碼的上方鄰近塊採用4參數仿射模型還是6參數仿射模型。1. Affine model inheritance by using MVs in columns directly above the current block (e.g., MVs associated with blocks adjacent to the current block) in different ways depending on the above neighbor of the affine encoding Whether the block adopts a 4-parameter affine model or a 6-parameter affine model.
a. 在一個示例中,當仿射編碼的上方鄰近CU採用4參數仿射模型時,應用繼承方法。a. In one example, the inheritance method is applied when the affine-encoded upper neighbor CU adopts a 4-parameter affine model.
b. 在一個示例中,如果仿射編碼的上方鄰近塊採用6參數仿射模型,則可以通過從如圖9中所示的仿射編碼的上方鄰近塊的左下MV和右下MV以及一個輔助MV(即,mv0 N 、mv1 N 和與輔助點相關聯的輔助MV)推導當前塊的CPMV而進行6參數仿射模型繼承。b. In one example, if the affine-coded upper neighbor block adopts a 6-parameter affine model, then the lower left MV and lower right MV of the affine-coded upper neighbor block as shown in Figure 9 and an auxiliary The MVs (i.e., mv 0 N , mv 1 N and the auxiliary MV associated with the auxiliary points) derive the CPMV of the current block for 6-parameter affine model inheritance.
i. 在一個示例中,僅當仿射編碼的上方鄰近塊採用6參數仿射模型且w’ > Th0(例如,Th0為8),才進行所提出的6參數仿射模型繼承。i. In one example, the proposed 6-parameter affine model inheritance is performed only if the upper neighboring block of the affine encoding adopts a 6-parameter affine model and w’ > Th0 (for example, Th0 is 8).
ii. 替代地,當上方塊是用仿射模式編碼的,無論其是4或6參數仿射模式,都可以調用提出的6參數仿射模型繼承。ii. Alternatively, when the upper block is encoded with an affine mode, whether it is a 4- or 6-parameter affine mode, the proposed 6-parameter affine model inheritance can be called.
c. 在一個示例中,利用輔助位置,通過仿射編碼的上方鄰近塊的仿射模型,推導輔助MV。c. In one example, the auxiliary MV is derived via an affine model of the affine-encoded upper neighbor block using the auxiliary position.
i. 輔助位置是預定的;i. The auxiliary position is predetermined;
ii. 替代地,輔助位置是自適應性的。例如,輔助位置取決於上方鄰近塊的尺寸。ii. Alternatively, the auxiliary position is adaptive. For example, the auxiliary position depends on the size of the neighboring block above.
iii. 替代地,輔助位置在VPS/SPS/PPS/條帶標頭/CTU/CU中被從編碼器信令通知到解碼器。iii. Instead, the secondary location is signaled from the encoder to the decoder in VPS/SPS/PPS/stripe header/CTU/CU.
iv. 替代地,輔助位置是(LTNx +(w’>>1),LTNy + h’+ Offset)。Offset是整數。例如,Offset=2K 。在另一示例中,Offset=-2K 。在一些示例中,K可以是1、2、3、4或5。具體地,輔助位置是(LTNx +(w’>>1),LTNy + h’ + 8)。iv. Alternatively, the auxiliary positions are (LTNx + (w'>>1), LTNy + h' + Offset). Offset is an integer. For example, Offset= 2K . In another example, Offset=-2 K . In some examples, K may be 1, 2, 3, 4, or 5. Specifically, the auxiliary positions are (LTNx + (w'>>1), LTNy + h' + 8).
v. 輔助MV被儲存在仿射編碼的上方鄰近塊的基本單元塊(例如VVC中的4x4塊)的底列之一中,如圖10中所示。要儲存輔助MV的基本單元塊被命名為輔助塊。v. The auxiliary MV is stored in one of the bottom columns of the basic unit block (such as the 4x4 block in VVC) of the upper neighboring block of affine coding, as shown in Figure 10. The basic unit block in which the auxiliary MV is to be stored is named the auxiliary block.
(a) 在一個示例中,輔助MV無法儲存在仿射編碼的上方鄰近塊的左下和右下角基本單元塊中。(a) In one example, the auxiliary MV cannot be stored in the lower left and lower right basic unit blocks of the affine-encoded upper neighbor block.
(b) 基本單元塊的底列從左至右指代為B(0),B(1),…,B(M-1)。在一個示例中,輔助MV儲存在基本單元塊B(M/2)中。(b) The bottom column of the basic unit block refers to B(0), B(1), ..., B(M-1) from left to right. In one example, the auxiliary MV is stored in basic unit block B (M/2).
a. 替代地,輔助MV儲存在基本單元塊B(M/2+1)中;a. Instead, the auxiliary MV is stored in the basic unit block B (M/2+1);
b. 替代地,輔助MV儲存在基本單元塊B(M/2-1)中;b. Instead, the auxiliary MV is stored in the basic unit block B (M/2-1);
(c) 在一個示例中,儲存的輔助MV可以用於之後編碼的PU/CU的運動預測或merge中。(c) In one example, the stored auxiliary MV can be used for motion prediction or merge of subsequently encoded PU/CU.
(d) 在一個示例中,儲存的輔助MV可以用於後續圖片的運動預測或merge中。(d) In one example, the stored auxiliary MV can be used for motion prediction or merging of subsequent pictures.
(e) 在一個示例中,儲存的輔助MV可以用於濾波過程(例如,去塊濾波)中。(e) In one example, the stored auxiliary MV can be used in a filtering process (e.g., deblocking filtering).
(f) 替代地,附加緩衝器可以用於儲存輔助MV,而不是將它們儲存在基本單元塊中。在此情況下,儲存的輔助MV可以僅用於仿射運動繼承,而不用於編碼當前條帶/片或不同圖片中的之後編碼的塊,並且不用於濾波過程(例如,去塊濾波)。(f) Alternatively, additional buffers can be used to store auxiliary MVs instead of storing them in basic unit blocks. In this case, the stored auxiliary MV may be used only for affine motion inheritance, not for encoding the current slice/slice or later encoded blocks in different pictures, and not for filtering processes (eg, deblocking filtering).
vi. 在解碼仿射編碼的上方鄰近塊之後,輔助位置的坐標作為輸入(x,y),由Eq.(2)計算輔助MV。並且然後輔助MV儲存在輔助塊中。vi. After decoding the affine-encoded upper neighboring block, the coordinates of the auxiliary position are taken as input (x, y), and the auxiliary MV is calculated by Eq. (2). And then the auxiliary MV is stored in the auxiliary block.
(a) 在一個示例中,儲存在輔助塊中的MV不用於為輔助塊進行MC。(a) In one example, the MV stored in the auxiliary block is not used to perform MC for the auxiliary block.
d. 在圖9中所示的一個示例中,當前塊的三個CPMV,指代為mv0 C =(mv0 Ch ,mv0 Cv ),mv1 C =(mv1 Ch ,mv1 Cv )和mv2 C =(mv2 Ch ,mv2 Cv ),被從作為仿射編碼的上方鄰近塊的左下角處的MV的mv0 N =(mv0 Nh ,mv0 Nv )、作為仿射編碼的上方鄰近塊的右下角處的MV的mv1 N =(mv1 Nh ,mv1 Nv )以及作為輔助MV的mvA =(mvA h ,mvA v )推導如下:d. In an example shown in Figure 9, the three CPMVs of the current block, referred to as mv 0 C = (mv 0 Ch , mv 0 Cv ), mv 1 C = (mv 1 Ch , mv 1 Cv ) and mv 2 C = (mv 2 Ch , mv 2 Cv ), mv 0 N = (mv 0 Nh , mv 0 Nv ), as affine coded from the MV at the lower left corner of the upper neighboring block as affine code The mv 1 N = (mv 1 Nh , mv 1 Nv ) of the MV at the lower right corner of the adjacent block above and the mv A = (mv A h , mv A v ) as the auxiliary MV are derived as follows:
(14) (14)
其中(x0,y0)是當前塊的左上角的坐標,並且(x’0,y’0)是鄰近塊的左下角的坐標。where (x0, y0) are the coordinates of the upper left corner of the current block, and (x’0, y’0) are the coordinates of the lower left corner of the adjacent block.
替代地,此外,(14)中的除法運算可以由右移替代,在移位之前可以添加或不添加偏移i. 例如,等式(14)中的數字K取決於如何定義輔助位置以得到輔助MV。在1.c.iv所公開的示例中,輔助位置是(LTNx+(w’>>1),LTNy+h’+Offset),其中Offset=2K 。在示例中,K = 3。Alternatively, furthermore, the division operation in (14) can be replaced by a right shift, with or without the offset i added before the shift. For example, the number K in equation (14) depends on how the auxiliary positions are defined to get Auxiliary MV. In the example disclosed in 1.c.iv, the auxiliary positions are (LTNx+(w'>>1), LTNy+h'+Offset), where Offset=2 K. In the example, K = 3.
e. 例如,僅當鄰近塊在含有當前塊的M×N區域上方(或右上,或左上)的M×N區域中,才通過從仿射編碼的鄰近塊的左下MV和右下MV推導當前塊的CP MV來進行仿射模型繼承。e. For example, the current block is deduced from the lower left MV and lower right MV of the affine-coded neighboring block only if the neighboring block is in the M×N area above (or upper right, or upper left) the M×N area containing the current block. CP MV of block for affine model inheritance.
i. 例如,M×N區域是CTU,例如128×128區域;i. For example, M×N area is CTU, such as 128×128 area;
ii. 例如,M×N區域是流水線尺寸,例如64×64區域。ii. For example, M×N area is the pipeline size, such as 64×64 area.
f. 例如,y0 = y’0 。f. For example, y 0 = y' 0 .
i. 替代地,y0 = 1+y’0 。i. Alternatively, y 0 = 1+y' 0 .
圖9示出了通過從儲存在仿射編碼的上方鄰近塊的底列中的MV推導的6參數仿射繼承的示例。Figure 9 shows an example of 6-parameter affine inheritance derived from MVs stored in the bottom column of the upper neighbor block of the affine encoding.
圖10示出了可以儲存輔助MV的基本單元塊的底列(陰影的)的示例。Figure 10 shows an example of the bottom column (shaded) of basic unit blocks in which auxiliary MVs can be stored.
2. 通過使用當前塊左側的列中的MV以不同方式進行仿射模型繼承,所述方式取決於仿射編碼的左側鄰近CU採用4參數仿射模型還是6參數仿射模型。2. Perform affine model inheritance in different ways by using the MV in the column to the left of the current block, depending on whether the affine-encoded left neighboring CU adopts a 4-parameter affine model or a 6-parameter affine model.
a. 在一個示例中,當仿射編碼的左側鄰近CU採用4參數仿射模型時,應用之前公開的方法。a. In one example, when the affine-coded left neighboring CU adopts a 4-parameter affine model, the previously disclosed method is applied.
b. 在一個示例中,如果仿射編碼的左側鄰近塊採用6參數仿射模型,則可以通過從圖11中所示的仿射編碼的左側鄰近塊的右上MV和右下MV以及一個輔助MV推導當前塊的CPMV,進行6參數仿射模型繼承。b. In an example, if the affine-coded left neighboring block adopts a 6-parameter affine model, then the upper right MV and lower right MV of the affine encoded left neighboring block shown in Figure 11 and an auxiliary MV can be obtained Derive the CPMV of the current block and perform 6-parameter affine model inheritance.
i. 在一個示例中,僅當仿射編碼的左側鄰近塊採用6參數仿射模型且h’ > Th1(例如,Th1為8),才可以進行6參數仿射模型繼承。i. In one example, 6-parameter affine model inheritance is possible only if the affine-coded left neighboring block adopts a 6-parameter affine model and h’ > Th1 (for example, Th1 is 8).
ii. 替代地,當左側塊是用仿射模式編碼時,無論其是4還是6參數仿射模式,都可以調用提出的6參數仿射模型繼承。ii. Alternatively, when the left block is encoded with affine mode, regardless of whether it is 4 or 6-parameter affine mode, the proposed 6-parameter affine model inheritance can be called.
c. 在一個示例中,利用輔助位置,通過仿射編碼的左側鄰近塊的仿射模型推導輔助MV。c. In one example, the auxiliary MV is derived through an affine model of the affine-encoded left neighboring block using the auxiliary position.
i. 在一個示例中,輔助位置是預定的;i. In one example, the auxiliary position is predetermined;
ii. 在一個示例中,輔助位置是自適應性的。例如,輔助位置取決於左側鄰近塊的尺寸。ii. In one example, the auxiliary position is adaptive. For example, the auxiliary position depends on the size of the neighboring block to the left.
iii. 在一個示例中,輔助位置在VPS/SPS/PPS/條帶標頭/CTU/CU中被從編碼器信令通知到解碼器。iii. In one example, the secondary location is signaled from the encoder to the decoder in VPS/SPS/PPS/stripe header/CTU/CU.
iv. 在一個示例中,輔助位置是(LTNx+w’+Offset),LTNy+(h’>>1))。Offset是整數。例如,Offset=2K 。在另一示例中,Offset = -2K 。在一些示例中,K可以是1、2、3、4或5。特別地,輔助位置是(LTNx+w’+8,LTNy+(h’>> 1))。iv. In one example, the auxiliary positions are (LTNx+w'+Offset), LTNy+(h'>>1)). Offset is an integer. For example, Offset= 2K . In another example, Offset = -2 K . In some examples, K may be 1, 2, 3, 4, or 5. In particular, the auxiliary positions are (LTNx+w'+8, LTNy+(h'>>1)).
v. 輔助MV儲存在仿射編碼的左側鄰近塊的基本單元塊(例如VVC中的4x4塊)的右行之一中,如圖12中所示。要儲存輔助MV的基本單元塊命名為輔助塊。v. The auxiliary MV is stored in one of the right rows of the basic unit block (such as the 4x4 block in VVC) of the left neighboring block of affine coding, as shown in Figure 12. The basic unit block to store the auxiliary MV is named auxiliary block.
(a) 在一個示例中,輔助MV無法儲存在仿射編碼的左側鄰近塊的右上和右下角基本單元塊中。(a) In one example, the auxiliary MV cannot be stored in the upper-right and lower-right basic unit blocks of the left neighboring block of affine encoding.
(b) 基本單元塊的右行從頂至底指代為B(0),B(1),…,B(M-1)。在一個示例中,輔助MV儲存在基本單元塊B(M/2)中。(b) The right row of the basic unit block is referred to as B(0), B(1), ..., B(M-1) from top to bottom. In one example, the auxiliary MV is stored in basic unit block B (M/2).
a. 替代地,輔助MV儲存在基本單元塊B(M/2+1)中;a. Instead, the auxiliary MV is stored in the basic unit block B (M/2+1);
b. 替代地,輔助MV儲存在基本單元塊B(M/2-1)中;b. Instead, the auxiliary MV is stored in the basic unit block B (M/2-1);
(c) 在一個示例中,儲存的輔助MV可以用於之後編碼的PU/CU的運動預測或merge。(c) In one example, the stored auxiliary MV can be used for motion prediction or merge of subsequently encoded PU/CU.
(d) 在一個示例中,儲存的輔助MV可以用於後續圖片的運動預測或merge。(d) In one example, the stored auxiliary MV can be used for motion prediction or merge of subsequent pictures.
(e) 在一個示例中,儲存的輔助MV可以用於濾波過程(例如,去塊濾波)。(e) In one example, the stored auxiliary MV can be used in the filtering process (e.g., deblocking filtering).
(f) 替代地,附加緩衝器可以用於儲存輔助MV,而不是將它們儲存在基本單元塊中。在此情況下,儲存的輔助MV可以僅用於仿射運動繼承,而不用於編碼當前條帶/片或不同圖片中的之後編碼的塊,並且不用於濾波過程(例如,去塊濾波)。(f) Alternatively, additional buffers can be used to store auxiliary MVs instead of storing them in basic unit blocks. In this case, the stored auxiliary MV may be used only for affine motion inheritance, not for encoding the current slice/slice or later encoded blocks in different pictures, and not for filtering processes (eg, deblocking filtering).
vi. 在解碼仿射編碼的左側鄰近塊之後,輔助位置的坐標作為輸入(x,y),由等式(2)計算輔助MV。並且然後輔助MV儲存在輔助塊中。vi. After decoding the affine-encoded left neighboring block, the coordinates of the auxiliary position are taken as input (x, y), and the auxiliary MV is calculated by Equation (2). And then the auxiliary MV is stored in the auxiliary block.
(a) 在一個示例中,儲存在輔助塊中的MV不用於進行用於輔助塊的MC。(a) In one example, the MV stored in the auxiliary block is not used to perform MC for the auxiliary block.
d. 在如圖11中所示的一個示例中,當前塊的三個CPMV,指代為mv0 C =(mv0 Ch ,mv0 Cv ),mv1 C =(mv1 Ch ,mv1 Cv )和mv2 C =(mv2 Ch ,mv2 Cv ),被從作為仿射編碼的左側鄰近塊的右上角處的MV的mv0 N =(mv0 Nh ,mv0 Nv )、作為仿射編碼的左側鄰近塊的右下角處的MV的mv1 N =(mv1 Nh ,mv1 Nv )以及作為輔助MV的mvA =(mvA h ,mvA v ),推導如下:d. In an example as shown in Figure 11, the three CPMVs of the current block are referred to as mv 0 C = (mv 0 Ch , mv 0 Cv ), mv 1 C = (mv 1 Ch , mv 1 Cv ) and mv 2 C = (mv 2 Ch , mv 2 Cv ), mv 0 N = (mv 0 Nh , mv 0 Nv ), as affine coded from the MV at the upper right corner of the left neighboring block mv 1 N = (mv 1 Nh , mv 1 Nv ) of the MV at the lower right corner of the left neighboring block and mv A = (mv A h , mv A v ) as the auxiliary MV, are derived as follows:
(15) (15)
其中(x0 ,y0 )是當前塊的左上角的坐標,(x’0 ,y’0 )是鄰近塊的右上角的坐標。Where (x 0 , y 0 ) is the coordinate of the upper left corner of the current block, (x' 0 , y' 0 ) is the coordinate of the upper right corner of the adjacent block.
替代地,此外,(15)中的除法運算可以被有或沒有加法運算的移位替代。Alternatively, furthermore, the division operation in (15) can be replaced by a shift with or without addition operation.
i. 例如,等式(15)中的數字K取決於如何定義輔助位置以得到輔助MV。在2.c.iv所公開的示例中,輔助位置是(LTNx+w’+Offset),LTNy+(h’>>1))其中Offset=2K 。在示例中,K = 3。i. For example, the number K in equation (15) depends on how the auxiliary position is defined to obtain the auxiliary MV. In the example disclosed in 2.c.iv, the auxiliary positions are (LTNx+w'+Offset), LTNy+(h'>>1)) where Offset=2 K. In the example, K = 3.
e. 例如,僅當鄰近塊在含有當前塊的M×N區域左側(或左上、或左下)的M×N區域中,才通過從仿射編碼的鄰近塊的右上MV和右下MV推導當前塊的CP MV來進行仿射模型繼承。e. For example, only if the neighboring block is in the M×N area to the left (or upper left, or lower left) of the M×N area containing the current block, the current block is deduced from the upper right MV and lower right MV of the affine-coded neighboring block. CP MV of block for affine model inheritance.
i. 例如,M×N區域是CTU,例如128×128區域;i. For example, M×N area is CTU, such as 128×128 area;
ii. 例如,M×N區域是流水線尺寸,例如64×64區域。ii. For example, M×N area is the pipeline size, such as 64×64 area.
f. 例如,x0 = x’0 。f. For example, x 0 = x' 0 .
i. 替代地,x0 = 1+x’0 。i. Alternatively, x 0 = 1+x' 0 .
3. 在一個示例中,當前塊僅需要存取儲存在當前塊上方的列中的和當前塊左側的行中的基本單元(例如VVC中的4×4塊)中的MV,如圖13中所示。當前塊的左上位置的坐標指代為(x0,y0)。當前塊可以存取當前塊上方的開始於具有左上坐標(xRS,yRS)的基本單元並且結束於具有左上坐標(xRE,yRE)的基本單元的基本單元列(指代為所需的上方的列)中的MV。相似地,當前塊可以存取當前塊左側的開始於具有左上坐標(xCS,yCS)的基本單元並且結束於具有左上坐標(xCE,yCE)的基本單元的基本單元行(指代為所需的左側的行)中的MV。當前塊的寬度和高度分別指代為W和H。假設基本單元尺寸是B×B(例如在VVC中4×4),則yRS=yRE=y0-B且xCS=xCE=x0-B。3. In one example, the current block only needs to access the MV stored in the basic unit (such as the 4×4 block in VVC) in the column above the current block and in the row to the left of the current block, as shown in Figure 13 shown. The coordinates of the upper left position of the current block are referred to as (x0, y0). The current block has access to a column of basic cells above the current block that starts with the basic cell with upper-left coordinates (xRS, yRS) and ends with the basic cell with upper-left coordinates (xRE, yRE) (referred to as the column above the desired one) MV in. Similarly, the current block can access the row of basic cells to the left of the current block that starts with the basic cell with upper-left coordinates (xCS, yCS) and ends with the basic cell with upper-left coordinates (xCE, yCE) (referred to as the desired left row) in the MV. The width and height of the current block are referred to as W and H respectively. Assuming that the basic unit size is B×B (for example, 4×4 in VVC), then yRS=yRE=y0-B and xCS=xCE=x0-B.
a. 所需的上方的列和所需的左側的行的範圍可以受限。a. The range of the required upper columns and the required left rows can be limited.
i. 在一個示例中,xRS = x0-n×W-m。n和m是整數,諸如n=0,m=0,n = 0,m =1,n=1,m=1,或n=2,m = 1;i. In one example, xRS = x0-n×W-m. n and m are integers, such as n=0, m=0, n=0, m=1, n=1, m=1, or n=2, m=1;
ii. 在一個示例中,xRE = x0+ n×W+m。n和m是整數,諸如n = 1,m =-B,n = 1,m = B,n=2,m= -B,或n=3,m= -B;ii. In one example, xRE = x0+ n×W+m. n and m are integers, such as n = 1, m = -B, n = 1, m = B, n = 2, m = -B, or n = 3, m = -B;
iii. 在一個示例中,yCS = y0-n×H-m。n和m是整數,諸如n=0,m=0,n = 0,m =1,n=1,m=1,或n=2,m = 1;iii. In one example, yCS = y0-n×H-m. n and m are integers, such as n=0, m=0, n=0, m=1, n=1, m=1, or n=2, m=1;
iv. 在一個示例中,yCE = y0+ n×H+m。n和m是整數,諸如n = 1,m =-B,n = 1,m = B,n=2,m= -B,或n=3,m= -B;iv. In an example, yCE = y0+ n×H+m. n and m are integers, such as n = 1, m = -B, n = 1, m = B, n = 2, m = -B, or n = 3, m = -B;
v. 在一個示例中,當前塊不需要所需的上方的列;v. In one example, the current block does not require the required upper column;
vi. 在一個示例中,當前塊不需要所需的左側的行;vi. In one example, the current block does not require the required left line;
vii. 在一個示例中,xRS,xRE,yCS和yCE的選擇可以取決於輔助塊的位置。vii. In one example, the selection of xRS, xRE, yCS and yCE can depend on the location of the auxiliary block.
(a) 在一個示例中,輔助塊總是被所選的上方的列或左側的行覆蓋。(a) In one example, the auxiliary block is always covered by the selected upper column or left row.
(b) 替代地,此外,(xRS,yRS),(xRE,yRE),(xCS,yCS)和(xCE,yCE)不應與輔助塊重疊。(b) Alternatively, in addition, (xRS, yRS), (xRE, yRE), (xCS, yCS) and (xCE, yCE) should not overlap with auxiliary blocks.
viii. 在一個示例中,所需的上方的列和所需的左側的行的範圍取決於當前塊的位置。viii. In one example, the range of required upper columns and required left rows depends on the current block position.
(a) 如果當前塊在P×Q區域的頂部邊界處,即當y0%Q==0時,其中Q可以是128(CTU區域)或64(流水線區域)。(a) If the current block is at the top boundary of the P×Q area, that is, when y0%Q==0, where Q can be 128 (CTU area) or 64 (pipeline area).
a. 在一個示例中,當前塊不需要所需的上方的列;a. In one example, the current block does not require the required upper columns;
b. 在一個示例中,xRS = x0;b. In an example, xRS = x0;
(b) 如果當前塊在P×Q區域的左邊界處,即當x0%P==0時,其中P可以是128(CTU區域)或64(流水線區域)。(b) If the current block is at the left boundary of the P×Q area, that is, when x0%P==0, P can be 128 (CTU area) or 64 (pipeline area).
a. 在一個示例中,當前塊不需要所需的左側的行;a. In one example, the current block does not require the required left row;
b. 在一個示例中,yCS = y0;b. In an example, yCS = y0;
4. 作為示例2.d的替代方法,當前塊的三個CPMV,指代為mv0 C =(mv0 Ch ,mv0 Cv ),mv1 C =(mv1 Ch ,mv1 Cv )and mv2 C =(mv2 Ch ,mv2 Cv ),被從作為仿射編碼的左側鄰近塊的右上角處的MV的mv0 N =(mv0 Nh ,mv0 Nv )、作為仿射編碼的左側鄰近塊的右下角處的MV的mv1 N =(mv1 Nh ,mv1 Nv )以及作為輔助MV的mvA =(mvA h,mvA v),推導如下:4. As an alternative to example 2.d, the three CPMVs of the current block, referred to as mv 0 C = (mv 0 Ch , mv 0 Cv ), mv 1 C = (mv 1 Ch , mv 1 Cv ) and mv 2 C = (mv 2 Ch , mv 2 Cv ) , mv 0 of the MV at the upper right corner of the block as affine- coded left neighbor The mv 1 N = (mv 1 Nh , mv 1 Nv ) of the MV at the lower right corner of the block and the mv A = (mv A h, mv A v) as the auxiliary MV are derived as follows:
(16) (16)
其中(x0,y0)是當前塊的左上角的坐標,並且(x’0,y’0)是鄰近塊的右上角的坐標。where (x0, y0) is the coordinate of the upper left corner of the current block, and (x’0, y’0) is the coordinate of the upper right corner of the adjacent block.
替代地,此外,(16)中的除法運算可以被有或沒有加法運算的移位替代。Alternatively, furthermore, the division operation in (16) can be replaced by a shift with or without addition operation.
5. 在示例1.c.v中,僅當仿射編碼的上方鄰近塊是用6參數仿射模型編碼的,才將輔助MV儲存在仿射編碼的上方鄰近塊的底列基本單元塊(例如VVC中的4x4塊)中的一個(諸如中間的一個)中。5. In Example 1.c.v, the auxiliary MV is stored in the bottom column of basic unit blocks of the affine-coded upper neighbor block (such as VVC) only if the affine-coded upper neighbor block is encoded with a 6-parameter affine model. in one of the 4x4 blocks (such as the middle one).
a. 替代地,輔助MV儲存在仿射編碼的上方鄰近塊的底列基本單元塊(例如VVC中的4x4塊)中的一個(諸如中間的一個)中,無論仿射編碼的上方鄰近塊是用4參數仿射模型還是6參數仿射模型編碼的。a. Instead, the auxiliary MV is stored in one (such as the middle one) of the bottom column of basic unit blocks (e.g., 4x4 blocks in VVC) of the affine-coded upper neighbor block, regardless of whether the affine-coded upper neighbor block is Whether encoded using a 4-parameter affine model or a 6-parameter affine model.
6. 在示例2.c.v中,僅當仿射編碼的左側鄰近塊是用6參數仿射模型編碼的,才將輔助MV儲存在仿射編碼的左側鄰近塊的右行基本單元塊(例如VVC中的4x4塊)中的一個(諸如中間的一個)中。6. In Example 2.c.v, the auxiliary MV is stored in the right row basic unit block of the affine-coded left neighboring block (such as VVC) only if the affine-coded left neighboring block is encoded with a 6-parameter affine model. in one of the 4x4 blocks (such as the middle one).
a. 替代地,將輔助MV儲存在仿射編碼的左側鄰近塊的右行基本單元塊(例如VVC中的4x4塊)中的一個(諸如中間的一個)中,無論仿射編碼的左側鄰近塊是用4參數仿射模型還是6參數仿射模型編碼的。a. Instead, store the auxiliary MV in one of the right row basic unit blocks (e.g. 4x4 blocks in VVC) (such as the middle one) of the affine-coded left neighboring block, regardless of the affine-coded left neighboring block Whether it is encoded using a 4-parameter affine model or a 6-parameter affine model.
7. 在一個示例中,當前塊的左下基本單元塊總是儲存左下角處的CPMV,無論當前塊採用4參數模型還是6參數模型。例如在圖3中,塊LB總是儲存mv2。7. In an example, the lower left basic unit block of the current block always stores the CPMV at the lower left corner, regardless of whether the current block adopts a 4-parameter model or a 6-parameter model. For example, in Figure 3, block LB always stores mv2.
8. 在一個示例中,當前塊的右下基本單元塊總是儲存右下角處的CPMV,無論當前塊採用4參數模型還是6參數模型。例如在圖3中,塊RB總是儲存mv3。8. In an example, the lower right basic unit block of the current block always stores the CPMV at the lower right corner, regardless of whether the current block adopts a 4-parameter model or a 6-parameter model. For example, in Figure 3, block RB always stores mv3.
9. 無論仿射編碼的鄰近塊採用4參數模型還是6參數模型,以相同方式進行仿射繼承。9. Whether the affine-coded neighboring blocks adopt a 4-parameter model or a 6-parameter model, affine inheritance is performed in the same way.
a. 以6參數仿射模型繼承方式,從儲存在仿射編碼的鄰近塊的左上基本塊、右上基本塊和左下基本單元中的MV推導當前塊在左上角、右上角和左下角處的CPMV(例如圖4(b)中的mv0 C ,mv1 C 和mv2 C )。a. Using the 6-parameter affine model inheritance method, derive the CPMV of the current block at the upper left corner, upper right corner and lower left corner from the MV stored in the upper left basic block, upper right basic block and lower left basic unit of the affine coded neighboring block. (e.g. mv 0 C , mv 1 C and mv 2 C in Figure 4(b)).
i. 例如,儲存在仿射編碼的鄰近塊的左上基本塊、右上基本塊和左下基本單元中的MV是仿射編碼的鄰近塊的左上角、右上角和右下角處的CPMV。i. For example, the MVs stored in the upper left basic block, upper right basic block and lower left basic unit of the affine coded neighboring block are the CPMVs at the upper left corner, upper right corner and lower right corner of the affine coded neighboring block.
b. 以示例1中限定的方式從儲存在仿射編碼的上方鄰近塊的基本單元的底列的左下基本單元、右下基本單元和額外基本單元中的MV推導當前塊在左上角、右上角和左下角處的CPMV(例如圖4(b)中的mv0 C ,mv1 C 和mv2 C )。b. Derive the upper left and upper right corners of the current block from the MVs stored in the lower left basic unit, lower right basic unit and extra basic unit of the bottom column of the basic unit of the upper adjacent block of affine encoding in the manner defined in Example 1 and CPMV at the lower left corner (e.g. mv 0 C , mv 1 C and mv 2 C in Figure 4(b)).
i. 例如,儲存在仿射編碼的上方鄰近塊的基本單元的底列中的左下基本單元、右下基本單元和額外基本單元中的MV是仿射編碼的鄰近塊的左下角處的CPMV、右下角處的CPMV和輔助MV。i. For example, the MVs stored in the lower left basic unit, lower right basic unit, and extra basic unit in the bottom column of the basic unit of the affine-coded upper neighboring block are the CPMV at the lower left corner of the affine-coded neighboring block, CPMV and auxiliary MV in the lower right corner.
c. 以示例2中限定的方式從儲存在仿射編碼的左側鄰近塊的基本單元的右行中的右上基本單元、右下基本單元和額外基本單元中的MV推導當前塊在左上角、右上角和左下角處的CPMV(例如圖4(b)中的mv0 C ,mv1 C 和mv2 C )。c. Derive the upper left corner, upper right corner of the current block from the MVs stored in the upper right basic unit, lower right basic unit and extra basic unit in the right row of the basic unit of the left adjacent block of affine encoding in the manner defined in Example 2 CPMV at the corner and lower left corner (e.g. mv 0 C , mv 1 C and mv 2 C in Figure 4(b)).
i. 例如,儲存在仿射編碼的左側鄰近塊的基本單元的右行中的右上基本單元、右下基本單元和額外基本單元中的MV是仿射編碼的鄰近塊的右上角處的CPMV、右下角處的CPMV和輔助MV。i. For example, the MVs stored in the upper right basic unit, the lower right basic unit, and the extra basic unit in the right row of the basic unit of the affine-coded left neighboring block are the CPMV at the upper right corner of the affine-coded neighboring block, CPMV and auxiliary MV in the lower right corner.
d. 繼承的仿射merge塊總是標記為“使用6參數”。d. Inherited affine merge blocks are always marked "use 6 parameters".
e. 當從上方鄰近塊繼承仿射模型,並且上方鄰近塊的寬度不大於8時,則將輔助MV計算為儲存在左下基本單元和右下基本單元中的MV的平均。e. When the affine model is inherited from the upper neighboring block, and the width of the upper neighboring block is not greater than 8, the auxiliary MV is calculated as the average of the MV stored in the lower left basic unit and the lower right basic unit.
i. 例如,儲存在仿射編碼的上方鄰近塊的左下基本單元、右下基本單元中的MV是仿射編碼的上方鄰近塊的左下角處的CPMV和右下角處的CPMV。i. For example, the MVs stored in the lower left basic unit and the lower right basic unit of the affine-coded upper neighbor block are the CPMV at the lower left corner and the CPMV at the lower right corner of the affine-coded upper neighbor block.
f. 當從左側鄰近塊繼承仿射模型,並且左側鄰近塊的高度不大於8時,則將輔助MV計算為儲存在右上基本單元和右下基本單元中的MV的平均。f. When the affine model is inherited from the left neighboring block, and the height of the left neighboring block is not greater than 8, the auxiliary MV is calculated as the average of the MV stored in the upper right basic unit and the lower right basic unit.
i. 例如,儲存在仿射編碼的左側鄰近塊的右上基本單元、右下基本單元中的MV是仿射編碼的左側鄰近塊的右上角處的CPMV和右下角處的CPMV。i. For example, the MVs stored in the upper right basic unit and the lower right basic unit of the left adjacent block of affine coding are the CPMV at the upper right corner and the CPMV at the lower right corner of the left adjacent block of affine coding.
10. 在一個示例中,由儲存在子塊中的MV進行用於子塊的MC。10. In one example, MC for a sub-block is performed by the MV stored in the sub-block.
a. 例如,儲存的MV是CPMV;a. For example, the stored MV is CPMV;
b. 例如,儲存的MV是輔助MV。b. For example, the stored MV is an auxiliary MV.
11. 無論仿射編碼的鄰近塊採用4參數模型還是6參數模型,以相同方式進行仿射繼承。11. Regardless of whether the affine-coded neighboring blocks adopt a 4-parameter model or a 6-parameter model, affine inheritance is performed in the same way.
12. 每個編碼塊要儲存的輔助MV可以多於1。12. Each coding block can store more than 1 auxiliary MV.
a. 輔助MV的使用可以與上述方式相同。a. The auxiliary MV can be used in the same way as above.
圖11示出了通過從儲存在仿射編碼的左側鄰近塊的右行中的MV推導的6參數仿射繼承的示例。Figure 11 shows an example of 6-parameter affine inheritance derived from MVs stored in the right row of affine-encoded left neighbor blocks.
圖12示出了可以儲存輔助MV的基本單元塊的右行(陰影的)的示例。Figure 12 shows an example of the right row (shaded) of basic unit blocks in which auxiliary MVs can be stored.
圖13示出了MV儲存體的示例。Figure 13 shows an example of an MV store.
5. 其他實施例5. Other embodiments
本章節公開了所提出的本發明的實施例的示例。應注意,其僅是所提出的方法的全部可能實施例之一,並且不應以狹隘方式理解。This section discloses examples of embodiments of the proposed invention. It should be noted that this is only one of all possible embodiments of the proposed method and should not be understood in a narrow way.
歸一化(a,b)如等式(7)中定義。Normalization (a, b) is as defined in equation (7).
輸入:Input:
當前塊到左上角的坐標,記為(posCurX,posCurY);The coordinates from the current block to the upper left corner are recorded as (posCurX, posCurY);
鄰近塊的左上角的坐標,記為(posLTX,posLTY);The coordinates of the upper left corner of the adjacent block are recorded as (posLTX, posLTY);
鄰近塊的右上角的坐標,記為(posRTX,posRTY);The coordinates of the upper right corner of the adjacent block are recorded as (posRTX, posRTY);
鄰近塊的左下角的坐標,記為(posLBX,posLBY);The coordinates of the lower left corner of the adjacent block are recorded as (posLBX, posLBY);
鄰近塊的右下角的坐標,記為(posRBX,posRBY);The coordinates of the lower right corner of the adjacent block are recorded as (posRBX, posRBY);
當前塊的寬度和高度,記為W和H;The width and height of the current block are recorded as W and H;
鄰近塊的寬度和高度,記為W’和H’;The width and height of adjacent blocks are recorded as W’ and H’;
鄰近塊的左上角處的MV,記為(mvLTX,mvLTY);The MV at the upper left corner of the adjacent block is recorded as (mvLTX, mvLTY);
鄰近塊的右上角處的MV,記為(mvRTX,mvRTY);The MV at the upper right corner of the adjacent block is recorded as (mvRTX, mvRTY);
鄰近塊的左下角處的MV,記為(mvLBX,mvLBY);The MV at the lower left corner of the adjacent block is recorded as (mvLBX, mvLBY);
鄰近塊的右下角處的MV,記為(mvRBX,mvRBY);The MV at the lower right corner of the adjacent block is recorded as (mvRBX, mvRBY);
常數:移位,其可以為任意正整數,諸如7或8。Constant: Shift, which can be any positive integer, such as 7 or 8.
輸出:Output:
當前塊的左上角處的MV,記為(MV0X,MV0Y);The MV at the upper left corner of the current block is recorded as (MV0X, MV0Y);
當前塊的右上角處的的MV,記為(MV1X,MV1Y);The MV at the upper right corner of the current block is recorded as (MV1X, MV1Y);
當前塊的右下角處的MV,記為(MV2X,MV2Y);The MV at the lower right corner of the current block is recorded as (MV2X, MV2Y);
仿射模型繼承的例程: If posRBY is equal to (posCurY-1) { // Above neighbouring block iDMvHorX = (mvRBX – mvLBX) >> (shift – log2(W’)) iDMvHorY = (mvRBY – mvLBY) >> (shift – log2(W’)) iDMvVerX = -iDMvHorY; iDMvVerY = iDMvHorX; if the neighbouring block applies the 6-parameter affine model and W’ > 8{ AuxiliaryX = posLBx + (W’ >> 1); AuxiliaryY = posLBy; (mvAuxiliaryX, mvAuxiliaryY) is set to be the MV stored in the basic unit block containing (AuxiliaryX, AuxiliaryY); mvMidX = Normalize( mvRBX + mvLBX, 1); mvMidY = Normalize( mvRBY + mvLBY, 1); iDMvVerX = (mvAuxiliaryX - mvMidX) >> (shift - 3); iDMvVerY = (mvAuxiliaryY - mvMidY) >> (shift - 3); } iMvScaleHor = mvLBX >> shift; iMvScaleVer = mvLBY >> shift; posNeiX = posLBX; posNeiY = posLBY + 1; } else if posRBX is equal to (posCurX -1) {//Left neighbouring block iDMvHorX = (mvRBY– mvRTY) >> (shift – log2(H’)) iDMvHorY = -(mvRBX – mvRTX) >> (shift – log2(H’)) iDMvVerX = -iDMvHorY; iDMvVerY = iDMvHorX; if the neighbouring block applies the 6-parameter affine model and H’ > 8 { AuxiliaryX = posRTX; AuxiliaryY = posRTY + (H’>>1); (mvAuxiliaryX, mvAuxiliaryY) is set to be the MV stored in the basic unit block containing (AuxiliaryX, AuxiliaryY); mvMidX = Normalize( mvRBX + mvRTX, 1); mvMidY = Normalize( mvRBY + mvRTY, 1); iDMvHorX = (mvAuxiliaryX - mvMidX) >> (shift - 3); iDMvHorY = (mvAuxiliaryY - mvMidY) >> (shift - 3); } iMvScaleHor = mvRTX >> shift; iMvScaleVer = mvRTY >> shift; posNeiX = posRTX+1; posNeiY = posRTY; } else{ Return “Input is invalid!” } } horTmp0 = iMvScaleHor + iDMvHorX * (posCurX - posNeiX) + iDMvVerX * (posCurY - posNeiY); verTmp0 = iMvScaleVer + iDMvHorY * (posCurX - posNeiX) + iDMvVerY * (posCurY - posNeiY); MV0X = Normalize ( horTmp0, shift ); MV0Y = Normalize ( verTmp0, shift ); horTmp1 = iMvScaleHor + iDMvHorX * (posCurX + W - posNeiX) + iDMvVerX * (posCurY - posNeiY); verTmp1 = iMvScaleVer + iDMvHorY * (posCurX + W - posNeiX) + iDMvVerY * (posCurY - posNeiY); MV1X = Normalize ( horTmp1, shift ); MV1Y = Normalize ( verTmp1, shift ); if the neighbouring block applies the 6-parameter affine model{ The current block also applies the 6-parameter affine model; horTmp2 = iMvScaleHor + iDMvHorX * (posCurX - posNeiX) + iDMvVerX * (posCurY+H - posNeiY); verTmp2 = iMvScaleVer + iDMvHorY * (posCurX - posNeiX) + iDMvVerY * (posCurY+H- posNeiY); MV2X = Normalize ( horTmp2, shift ); MV2Y = Normalize ( verTmp2, shift ); }Affine model inherited routines: If posRBY is equal to (posCurY-1) { // Above neighborhood block iDMvHorX = (mvRBX – mvLBX) >> (shift – log2(W’)) iDMvHorY = (mvRBY – mvLBY) >> (shift – log2(W’)) iDMvVerX = -iDMvHorY; iDMvVerY = iDMvHorX; if the neighborhood block applies the 6-parameter affine model and W’ > 8{ AuxiliaryX = posLBx + (W’ >> 1); AuxiliaryY = posLBy; (mvAuxiliaryX, mvAuxiliaryY) is set to be the MV stored in the basic unit block containing (AuxiliaryX, AuxiliaryY); mvMidX = Normalize( mvRBX + mvLBX, 1); mvMidY = Normalize( mvRBY + mvLBY, 1); iDMvVerX = (mvAuxiliaryX - mvMidX) >> (shift - 3); iDMvVerY = (mvAuxiliaryY - mvMidY) >> (shift - 3); } iMvScaleHor = mvLBX >> shift; iMvScaleVer = mvLBY >> shift; posNeiX = posLBX; posNeiY = posLBY + 1; } else if posRBX is equal to (posCurX -1) {//Left neighborhood block iDMvHorX = (mvRBY– mvRTY) >> (shift – log2(H’)) iDMvHorY = -(mvRBX – mvRTX) >> (shift – log2(H’)) iDMvVerX = -iDMvHorY; iDMvVerY = iDMvHorX; if the neighborhood block applies the 6-parameter affine model and H’ > 8 { AuxiliaryX = posRTX; AuxiliaryY = posRTY + (H’>>1); (mvAuxiliaryX, mvAuxiliaryY) is set to be the MV stored in the basic unit block containing (AuxiliaryX, AuxiliaryY); mvMidX = Normalize( mvRBX + mvRTX, 1); mvMidY = Normalize( mvRBY + mvRTY, 1); iDMvHorX = (mvAuxiliaryX - mvMidX) >> (shift - 3); iDMvHorY = (mvAuxiliaryY - mvMidY) >> (shift - 3); } iMvScaleHor = mvRTX >> shift; iMvScaleVer = mvRTY >> shift; posNeiX = posRTX+1; posNeiY = posRTY; } else{ Return "Input is invalid!" } } horTmp0 = iMvScaleHor + iDMvHorX * (posCurX - posNeiX) + iDMvVerX * (posCurY - posNeiY); verTmp0 = iMvScaleVer + iDMvHorY * (posCurX - posNeiX) + iDMvVerY * (posCurY - posNeiY); MV0X = Normalize (horTmp0, shift); MV0Y = Normalize ( verTmp0, shift ); horTmp1 = iMvScaleHor + iDMvHorX * (posCurX + W - posNeiX) + iDMvVerX * (posCurY - posNeiY); verTmp1 = iMvScaleVer + iDMvHorY * (posCurX + W - posNeiX) + iDMvVerY * (posCurY - posNeiY); MV1X = Normalize (horTmp1, shift); MV1Y = Normalize ( verTmp1, shift ); if the neighborhood block applies the 6-parameter affine model{ The current block also applies the 6-parameter affine model; horTmp2 = iMvScaleHor + iDMvHorX * (posCurX - posNeiX) + iDMvVerX * (posCurY+H - posNeiY); verTmp2 = iMvScaleVer + iDMvHorY * (posCurX - posNeiX) + iDMvVerY * (posCurY+H- posNeiY); MV2X = Normalize (horTmp2, shift); MV2Y = Normalize ( verTmp2, shift ); }
圖14是示出可用於實現本公開技術的各部分的電腦系統或其他控制裝置2600的架構的示例的方塊圖。在圖14中,電腦系統2600包含經由互連2625連接的一個或多個處理器2605和記憶體2610。互連2625可以表示由適當的橋接器、配接器或控制器連接的任何一個或多個單獨的物理匯流排、點對點連接或兩者。因此,互連2625可以包含例如系統匯流排、周邊組件互連(PCI)匯流排、HyperTransport或工業標準架構(ISA)匯流排、小型電腦系統介面(SCSI)匯流排、通用串列匯流排(USB)、IIC(I2C)匯流排或電氣和電子工程師協會(IEEE)標準674匯流排,有時也稱為“Firewire”。14 is a block diagram illustrating an example of the architecture of a computer system or other control device 2600 that may be used to implement portions of the disclosed technology. In Figure 14, computer system 2600 includes one or more processors 2605 and memory 2610 connected via an interconnect 2625. Interconnect 2625 may represent any one or more individual physical busses, point-to-point connections, or both connected by appropriate bridges, adapters, or controllers. Thus, interconnect 2625 may include, for example, a system bus, a Peripheral Component Interconnect (PCI) bus, a HyperTransport or Industry Standard Architecture (ISA) bus, a Small Computer System Interface (SCSI) bus, a Universal Serial Bus (USB ), IIC (I2C) bus, or Institute of Electrical and Electronics Engineers (IEEE) Standard 674 bus, sometimes called "Firewire."
(多個)處理器2605可以包含中央處理單元(CPU),以控制例如主機電腦的整體操作。在某些實施例中,(多個)處理器2605通過執行儲存在記憶體2610中的軟體或韌體來實現此目的。(多個)處理器2605可以是或可包含一個或多個可程式通用或專用微處理器、數位訊號處理器(DSP)、可程式控制器、特定應用積體電路(ASIC)、可程式邏輯裝置(PLD)等,或這些裝置的組合。Processor(s) 2605 may include a central processing unit (CPU) to control the overall operation of, for example, a host computer. In some embodiments, processor(s) 2605 does this by executing software or firmware stored in memory 2610 . Processor(s) 2605 may be or may include one or more programmable general or special purpose microprocessors, digital signal processors (DSPs), programmable controllers, application specific integrated circuits (ASICs), programmable logic device (PLD), etc., or a combination of these devices.
記憶體2610可以是或包含電腦系統的主記憶體。記憶體2610表示任何合適形式的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、快閃記憶體等,或這些設備的組合。在使用中,除其他之外,記憶體2610可以包含一組機器指令,當由處理器2605執行時,使得處理器2605執行操作以實現本公開技術的實施例。Memory 2610 may be or include the main memory of the computer system. Memory 2610 represents any suitable form of random access memory (RAM), read only memory (ROM), flash memory, etc., or combinations of these devices. In use, memory 2610 may contain, among other things, a set of machine instructions that, when executed by processor 2605, cause processor 2605 to perform operations to implement embodiments of the disclosed technology.
還通過互連2625連接到(多個)處理器2605的是(可選的)網路配接器2615。網路配接器2615向電腦系統2600提供與遠端設備(例如儲存客戶端)和/或其他儲存服務器通信的能力,並且可以是例如乙太網配接器或光纖信道配接器。Also connected to processor(s) 2605 via interconnect 2625 is an (optional) network adapter 2615 . Network adapter 2615 provides computer system 2600 with the ability to communicate with remote devices (eg, storage clients) and/or other storage servers, and may be, for example, an Ethernet adapter or a Fiber Channel adapter.
圖15示出了可用於實現本公開技術的各部分的裝置2700的示例實施例的方塊圖。移動裝置2700可以是膝上型電腦,智慧電話,平板電腦,攝錄機或能夠處理視頻的其他類型的設備。移動裝置2700包含用於處理數據的處理器或控制器2701,以及與處理器2701通信以儲存和/或緩衝數據的記憶體2702。例如,處理器2701可以包含中央處理單元(CPU)或微控制器單元(MCU)。在一些實現方式中,處理器2701可以包含現場可程式閘陣列(FPGA)。在一些實現方式中,移動裝置2700包含用於智慧手機裝置的各種視覺和/或通信數據處理功能的圖形處理單元(GPU)、視頻處理單元(VPU)和/或無線通信單元或與之通信。例如,記憶體2702可以包含並儲存處理器可執行代碼,當由處理器2701執行時,將移動裝置2700配置為執行各種操作,例如接收信息、命令和/或數據,處理信息和數據,以及將處理過的信息/數據發送或提供給另一個設備,例如致動器或外部顯示器。為了支持移動裝置2700的各種功能,記憶體2702可以儲存信息和數據,例如指令、軟體、值、圖像以及由處理器2701處理或引用的其他數據。例如,各種類型的隨機存取記憶體(RAM)設備、唯讀記憶體(ROM)設備、快閃記憶體設備和其他合適的儲存介質可用於實現記憶體2702的儲存功能。在一些實現方式中,移動裝置2700包含輸入/輸出(I/O))單元2703,用於將處理器2701和/或記憶體2702連接到其他模塊、單元或裝置。例如,I/O單元2703可以與處理器2701和記憶體2702相接,以利用與典型數據通信標準兼容的各種類型的無線介面,例如,在雲中的一個或多個電腦與用戶設備之間。在一些實現方式中,移動裝置2700可以經由I/O單元2703使用有線連接與其他設備介面。移動裝置2700還可以與其他外部介面(例如數據記憶體)和/或視覺或音頻顯示設備2704相接,以檢索和傳輸可由處理器處理、儲存在記憶體中或在顯示設備2704的輸出單元或外部裝置上展示的數據和信息。例如,顯示設備2704可以顯示基於根據所公開的技術的MVP修改的視頻幀。15 illustrates a block diagram of an example embodiment of an apparatus 2700 that may be used to implement portions of the disclosed technology. Mobile device 2700 may be a laptop, smartphone, tablet, camcorder, or other type of device capable of processing video. Mobile device 2700 includes a processor or controller 2701 for processing data, and a memory 2702 in communication with processor 2701 to store and/or buffer data. For example, processor 2701 may include a central processing unit (CPU) or a microcontroller unit (MCU). In some implementations, processor 2701 may include a field programmable gate array (FPGA). In some implementations, mobile device 2700 includes or communicates with a graphics processing unit (GPU), video processing unit (VPU), and/or wireless communication unit for various visual and/or communication data processing functions of the smartphone device. For example, memory 2702 may contain and store processor executable code that, when executed by processor 2701, configures mobile device 2700 to perform various operations, such as receiving information, commands and/or data, processing information and data, and The processed information/data is sent or provided to another device such as an actuator or external display. In order to support various functions of the mobile device 2700, the memory 2702 can store information and data, such as instructions, software, values, images, and other data processed or referenced by the processor 2701. For example, various types of random access memory (RAM) devices, read only memory (ROM) devices, flash memory devices, and other suitable storage media may be used to implement the storage function of memory 2702. In some implementations, mobile device 2700 includes an input/output (I/O) unit 2703 for connecting processor 2701 and/or memory 2702 to other modules, units, or devices. For example, I/O unit 2703 may interface with processor 2701 and memory 2702 to utilize various types of wireless interfaces compatible with typical data communications standards, e.g., between one or more computers in the cloud and a user device . In some implementations, mobile device 2700 can interface with other devices using wired connections via I/O unit 2703 . Mobile device 2700 may also interface with other external interfaces (e.g., data memory) and/or visual or audio display device 2704 to retrieve and transmit information that may be processed by a processor, stored in memory, or in an output unit of display device 2704 or Data and information displayed on external devices. For example, display device 2704 may display video frames based on MVP modifications in accordance with the disclosed techniques.
圖16是一種用於視頻處理的方法1600的流程圖。方法1600包括:存取(1602)儲存在與當前塊相鄰的基本單元塊中的至少一個中的運動向量(MV);以及,基於所存取的MV,在當前塊與當前塊的位元流表示之間進行(1604)視頻處理。Figure 16 is a flow diagram of a
本文件中公開的各種實施例和技術可以在以下示例的列表中描述。Various embodiments and techniques disclosed in this document may be described in the following list of examples.
1. 視頻處理的方法,包括:1. Video processing methods, including:
存取儲存在與當前塊相鄰的基本單元塊中的至少一個的運動向量(MV);以及access a motion vector (MV) stored in at least one of the basic unit blocks adjacent to the current block; and
基於所存取的MV在所述當前塊與所述當前塊的位元流表示之間進行視頻處理。Video processing is performed between the current block and the bitstream representation of the current block based on the accessed MV.
2. 如示例1所述的方法,其中所述基本單元塊形成位於所述當前塊上方的列,所述列包含具有左上角坐標(xRS,yRS)的最左側基本單元塊和具有左上角坐標(xRE,yRE)的最右側基本單元塊中的至少一個。2. The method of Example 1, wherein the basic unit blocks form a column located above the current block, the column containing a leftmost basic unit block with upper left corner coordinates (xRS, yRS) and a leftmost basic unit block with upper left corner coordinates (xRS, yRS) At least one of the rightmost basic unit blocks of (xRE, yRE).
3. 如示例1所述的方法,其中所述基本單元塊形成位於所述當前塊左側的行,所述行包含具有左上角坐標(xCS,yCS)的頂部基本單元塊和具有左上角坐標(xCE,yCE)的底部基本單元塊中的至少一個。3. The method of example 1, wherein the basic unit blocks form a row located to the left of the current block, the row containing a top basic unit block with upper left corner coordinates (xCS, yCS) and a top left corner coordinate (xCS, yCS) xCE, yCE) at least one of the bottom basic unit blocks.
4. 如示例2所述的方法,其中yRS=yRE=y0-B,(x0,y0)表示所述當前塊的左上角的坐標,並且所述基本單元塊具有B×B的尺寸。4. The method as described in Example 2, wherein yRS=yRE=y0-B, (x0, y0) represents the coordinates of the upper left corner of the current block, and the basic unit block has a size of B×B.
5. 如示例3所述的方法,其中xCS=xCE=x0-B,(x0,y0)表示所述當前塊的左上角的坐標,並且所述基本單元塊具有B×B的尺寸。5. The method as described in Example 3, wherein xCS=xCE=x0-B, (x0, y0) represents the coordinates of the upper left corner of the current block, and the basic unit block has a size of B×B.
6. 如示例4或5所述的方法,其中B=4。6. Method as described in Example 4 or 5, where B=4.
7. 如示例4所述的方法,其中xRS = x0-n×W-m,n和m是整數,W表示所述當前塊的寬度。7. The method as described in Example 4, where xRS = x0-n×W-m, n and m are integers, and W represents the width of the current block.
8. 如示例5所述的方法,其中yCS = y0-n×H-m,n和m是整數,H表示所述當前塊的高度。8. The method as described in Example 5, where yCS = y0-n×H-m, n and m are integers, and H represents the height of the current block.
9. 如示例7或8所述的方法,其中n = 0,m = 0;n = 0,m = 1;n = 1,m = 1;或n = 2,m = 1。9. A method as described in Example 7 or 8, where n = 0, m = 0; n = 0, m = 1; n = 1, m = 1; or n = 2, m = 1.
10. 如示例4所述的方法,其中xRE = x0+ n×W+m,n和m是整數,W表示所述當前塊的寬度。10. The method as described in Example 4, where xRE = x0+ n×W+m, n and m are integers, and W represents the width of the current block.
11. 如示例5所述的方法,其中yCE = y0+ n×H+m,n和m是整數,H表示所述當前塊的高度。11. The method as described in Example 5, where yCE = y0+ n×H+m, n and m are integers, and H represents the height of the current block.
12. 如示例10或11所述的方法,其中n = 1,m = -B;n = 1,m = B;n = 2,m= - B;或n = 3,m = -B。12. A method as described in Example 10 or 11, where n = 1, m = -B; n = 1, m = B; n = 2, m = - B; or n = 3, m = -B.
13. 如示例2所述的方法,其中不需要位於所述當前塊上方的列來預測所述當前塊。13. The method of example 2, wherein columns above the current block are not required to predict the current block.
14. 如示例3所述的方法,其中不需要位於所述當前塊左側的行來預測所述當前塊。14. The method of example 3, wherein rows to the left of the current block are not required to predict the current block.
15. 如示例4所述的方法,其中xRS和xRE中的至少一個的值取決於儲存用於預測所述當前塊的輔助MV的輔助塊的位置。15. The method of example 4, wherein the value of at least one of xRS and xRE depends on a location of an auxiliary block storing an auxiliary MV for predicting the current block.
16. 如示例5所述的方法,其中yCS和yCE中的至少一個的值取決於儲存用於預測所述當前塊的輔助MV的輔助塊的位置。16. The method of example 5, wherein the value of at least one of yCS and yCE depends on the location of the auxiliary block storing the auxiliary MV used to predict the current block.
17. 如示例15所述的方法,其中所述輔助塊被所述位於所述當前塊上方的列覆蓋。17. The method of example 15, wherein the auxiliary block is covered by the column located above the current block.
18. 如示例16所述的方法,其中所述輔助塊被所述位於所述當前塊左側的行覆蓋。18. The method of example 16, wherein the auxiliary block is covered by the row located to the left of the current block.
19. 如示例15所述的方法,其中所述輔助塊與左上角坐標(xRS,yRS)和左上角坐標(xRE,yRE)中的任一個不重疊。19. The method as described in Example 15, wherein the auxiliary block does not overlap with any of the upper left corner coordinates (xRS, yRS) and the upper left corner coordinates (xRE, yRE).
20. 如示例16所述的方法,其中所述輔助塊與左上角坐標(xCS,yCS)和左上角坐標(xCE,yCE)中的任一個不重疊。20. The method as described in Example 16, wherein the auxiliary block does not overlap with any of the upper left corner coordinates (xCS, yCS) and the upper left corner coordinates (xCE, yCE).
21. 如示例2所述的方法,其中位於所述當前塊上方的列的範圍取決於所述當前塊的位置。21. The method of example 2, wherein the range of columns located above the current block depends on the position of the current block.
22. 如示例21所述的方法,其中如果所述當前塊被確定為在P×Q區域的頂部邊界處,則不需要位於所述當前塊上方的列來預測所述當前塊。22. The method of example 21, wherein if the current block is determined to be at the top boundary of the P×Q region, columns located above the current block are not required to predict the current block.
23. 如示例22所述的方法,其中如果y0%Q == 0,則所述當前塊被確定為在所述P×Q區域的頂部邊界處,所述當前塊的左上角坐標表示為(x0,y0)。23. The method as described in Example 22, wherein if y0%Q == 0, the current block is determined to be at the top boundary of the P×Q area, and the upper left corner coordinate of the current block is expressed as ( x0, y0).
24. 如示例21所述的方法,其中XRS == x0,所述當前塊的左上角坐標表示為(x0,y0)。24. The method as described in Example 21, where XRS == x0, the coordinates of the upper left corner of the current block are expressed as (x0, y0).
25. 如示例3所述的方法,其中位於所述當前塊左側的行的範圍取決於所述當前塊的位置。25. The method of example 3, wherein a range of rows to the left of the current block depends on the position of the current block.
26. 如示例25所述的方法,其中如果所述當前塊被確定為在P×Q區域的左側邊界處,則不需要位於所述當前塊左側的行來預測所述當前塊。26. The method of example 25, wherein if the current block is determined to be at the left boundary of the P×Q region, rows located to the left of the current block are not required to predict the current block.
27. 如示例26所述的方法,其中如果x0%P == 0,則所述當前塊被確定為在所述P×Q區域的左側邊界處,所述當前塊的左上角坐標表示為(x0,y0)。27. The method as described in Example 26, wherein if x0%P == 0, the current block is determined to be at the left boundary of the P×Q area, and the upper left corner coordinate of the current block is expressed as ( x0, y0).
28. 如示例25所述的方法,其中yCS == y0,所述當前塊的左上角坐標表示為(x0,y0)。28. The method as described in Example 25, where yCS == y0, and the coordinates of the upper left corner of the current block are expressed as (x0, y0).
29. 如示例26所述的方法,其中在編碼樹單元區域中Q=128,在流水線區域中Q=64。29. The method as described in Example 26, wherein Q=128 in the coding tree unit area and Q=64 in the pipeline area.
30. 如示例27所述的方法,其中在編碼樹單元區域中P=128,在流水線區域中P=64。30. The method as described in Example 27, wherein P=128 in the coding tree unit area and P=64 in the pipeline area.
31. 如示例1所述的方法,其中所述當前塊被分割為多個基本單元塊,所述方法還包括:31. The method as described in Example 1, wherein the current block is divided into multiple basic unit blocks, the method further includes:
將所述當前塊的左下角處的控制點(CP)MV儲存在所述當前塊的左下基本單元塊中;和/或Store the control point (CP) MV at the lower left corner of the current block in the lower left basic unit block of the current block; and/or
將所述當前塊的右下角處的控制點(CP)MV儲存在所述當前塊的右下基本單元塊中。The control point (CP) MV at the lower right corner of the current block is stored in the lower right basic unit block of the current block.
32. 如示例31所述的方法,其中所述當前塊是用4參數仿射模型或6參數仿射模型編碼的。32. The method of example 31, wherein the current block is encoded with a 4-parameter affine model or a 6-parameter affine model.
33. 如示例1所述的方法,還包括:33. The method as described in Example 1, further including:
通過使用儲存在所述子塊中的MV,為從所述當前塊分割的子塊進行運動補償。The sub-blocks split from the current block are motion compensated by using the MVs stored in the sub-blocks.
34. 如示例33所述的方法,其中34. The method as described in Example 33, where
所儲存的MV是所述當前塊的控制點(CP)MV或用於預測所述當前塊的輔助MV。The stored MV is the control point (CP) MV of the current block or the auxiliary MV used to predict the current block.
35. 如示例1-34中任一項所述的方法,其中所述視頻處理包括將所述視頻塊編碼為所述視頻塊的位元流表示和從所述視頻塊的位元流表示解碼所述視頻塊中的至少一個。35. The method of any one of examples 1-34, wherein the video processing includes encoding the video block to and decoding from the bitstream representation of the video block at least one of the video blocks.
36. 一種視頻處理設備,包括處理器,被配置為實現示例1至35中任一項所述的方法。36. A video processing device, including a processor, configured to implement the method of any one of Examples 1 to 35.
37. 一種電腦程式產品,儲存在非暫態電腦可讀介質中,所述電腦程式產品包含用於執行示例1至35中任一項中的方法的程式代碼。37. A computer program product, stored in a non-transitory computer-readable medium, the computer program product comprising program code for performing the method in any one of Examples 1 to 35.
本文件中描述的公開的和其他實施例、模塊和功能操作可以實現為數位電子電路,或者實現為電腦軟體、韌體或硬體,包含本文件中公開的結構及其結構等同,或者它們中的一個或多個的組合。所公開的和其他實施例可以實現為一個或多個電腦程式產品,即,在電腦可讀介質上編碼的電腦程式指令的一個或多個模塊,用於由數據處理設備執行或控制數據處理設備的操作。電腦可讀介質可以是機器可讀儲存裝置、機器可讀儲存基板、記憶體裝置、實現機器可讀傳播信號的物質組合,或者它們中的一個或多個的組合。術語“數據處理設備”涵蓋用於處理數據的全部設備、裝置和機器,包括例如可程式處理器、電腦或多個處理器或電腦。除了硬體之外,該設備還可以包括為所討論的電腦程式創建執行環境的代碼,例如,構成處理器韌體、協議棧、數據庫管理系統、操作系統的代碼,或者它們中的一個或多個的組合。傳播信號是人工生成的信號,例如,機器生成的電、光或電磁信號,其被生成以對信息進行編碼以便傳輸到合適的接收器設備。The disclosed and other embodiments, modules, and functional operations described in this document may be implemented as digital electronic circuits, or as computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or any of them. A combination of one or more. The disclosed and other embodiments may be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by or to control data processing equipment. operation. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances that implements a machine-readable propagation signal, or a combination of one or more of them. The term "data processing equipment" covers all equipment, devices and machines used for processing data, including for example a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may include code that creates the execution environment for the computer program in question, e.g., code that constitutes the processor firmware, protocol stack, database management system, operating system, or one or more of them combination. A propagated signal is an artificially generated signal, such as a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to a suitable receiver device.
電腦程式(也稱為程式、軟體、軟體應用、腳本或代碼)可以用任何形式的程式語言編寫,包括編譯或解釋語言,並且可以以任何形式部署,包括如獨立程式或適合在計算環境中使用的模塊、組件、子例程或其他單元。電腦程式不一定對應於文件系統中的文件。程式可以儲存在包含其他程式或數據的文件的一部分中(例如,儲存在標記語言文件中的一個或多個腳本),儲存在專用於所討論的程式的單個文件中,或者儲存在多個協調文件中(例如,儲存一個或多個模塊、子程式或代碼部分的文件)。可以部署電腦程式以在一個電腦上或在位於一個站點上或分布在多個站點上並通過通信網路互連的多個電腦上執行。A computer program (also called a program, software, software application, script, or code) may be written in any form of programming language, including a compiled or interpreted language, and may be deployed in any form, including as a stand-alone program or suitable for use in a computing environment module, component, subroutine or other unit. Computer programs do not necessarily correspond to files in a file system. A program may be stored as part of a file that contains other programs or data (for example, one or more scripts stored in a markup language file), in a single file dedicated to the program in question, or in multiple coordinated In a file (for example, a file that stores one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on one computer or on multiple computers located at a site or distributed across multiple sites and interconnected by a communications network.
本文件中描述的過程和邏輯流程可以由執行一個或多個電腦程式的一個或多個可程式處理器執行,以通過對輸入數據進行操作並生成輸出來執行功能。過程和邏輯流程也可以由專用邏輯電路(例如FPGA(現場可程式閘陣列)或ASIC(特定應用積體電路))執行,並且設備也可以實現為專用邏輯電路(例如FPGA(現場可程式閘陣列)或ASIC(特定應用積體電路))。The processes and logic flows described in this document may be executed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. Processes and logic flows may also be executed by, and devices may also be implemented as, dedicated logic circuits such as FPGA (Field Programmable Gate Array) or ASIC (Application Specific Integrated Circuit) ) or ASIC (Application Specific Integrated Circuit)).
作為示例,適合於執行電腦程式的處理器包括通用和專用微處理器,以及任何類型的數位電腦的任何一個或多個處理器。通常,處理器將從唯讀記憶體或隨機存取記憶體或兩者接收指令和數據。電腦的基本元件是用於執行指令的處理器和用於儲存指令和數據的一個或多個記憶體設備。通常,電腦還將包括一個或多個大容量儲存設備或可操作地耦接到一個或多個大容量儲存設備,以從一個或多個大容量儲存設備接收數據或將數據傳輸到一個或多個大容量儲存設備或兩者,例如,磁碟、磁光碟或光碟。然而,電腦不一定需要這樣的設備。適用於儲存電腦程式指令和數據的電腦可讀介質包括全部形式的非揮發性記憶體、介質和記憶體設備,包括例如半導體記憶體設備,例如EPROM、EEPROM和快閃記憶體設備;磁碟,例如,內部硬碟或可移動磁碟;磁光碟;和CD ROM和DVD-ROM磁碟。處理器和記憶體可以由專用邏輯電路補充或並入專用邏輯電路中。By way of example, processors suitable for the execution of a computer program include general and special purpose microprocessors, and any processor or processors of any type of digital computer. Typically, a processor will receive instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, the computer will also include or be operably coupled to one or more mass storage devices to receive data from or transmit data to one or more mass storage devices. A mass storage device or both, such as a magnetic disk, a magneto-optical disk, or an optical disk. However, a computer does not necessarily require such a device. Computer-readable media suitable for storage of computer program instructions and data includes all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, For example, internal hard drives or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and memory may be supplemented by or incorporated into special purpose logic circuits.
雖然本專利文件包含許多細節,但這些細節不應被解釋為對任何發明或可要求保護的範圍的限制,而是作為特定於特定發明的特定實施例的特徵的描述。在本專利文件中單獨的實施例的上下文中描述的某些特徵也可以在單個實施例中組合實現。相反,在單個實施例的上下文中描述的各種特徵也可以單獨地或以任何合適的子組合在多個實施例中實現。此外,儘管上面的特徵可以描述為以某些組合起作用並且甚至最初如此要求保護,但是在某些情況下可以從組合中移除來自所要求保護的組合的一個或多個特徵,並且所要求保護的組合可以針對子組合或子組合的變化。Although this patent document contains many details, these details should not be construed as limitations on the scope of any invention or that may be claimed, but rather as descriptions of features specific to particular embodiments of a particular invention. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although the above features may be described as functioning in certain combinations and may even be originally claimed as such, in some cases one or more features from the claimed combination may be removed from the combination and as claimed A protected combination can be directed against a sub-combination or a variation of a sub-combination.
類似地,雖然在附圖中以特定順序描繪了操作,但是這不應該被理解為實現期望的結果要求以所示的特定順序或按順序執行這樣的操作,或者執行全部示出的操作。此外,在本專利文件中描述的實施例中的各種系統部件的分離不應被理解為在全部實施例中都需要這種分離。Similarly, although operations are depicted in the drawings in a specific order, this should not be understood to mean that achieving desirable results requires that such operations be performed in the specific order shown, or in sequence, or that all illustrated operations are performed. Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.
僅描述了幾個實現方式和示例,並且可以基於本專利文件中描述和示出的內容來做出其他實現、增強和變化。Only a few implementations and examples are described, and other implementations, enhancements, and changes may be made based on what is described and illustrated in this patent document.
1600:方法
1602~1604:步驟
2600:電腦系統
2605:(多個)處理器
2610、2702:記憶體
2615:網路配接器
2625:互連
2700:移動裝置
2701:處理器/控制器
2703:I/O單元
2704:顯示設備
A、B、C、D、E、LT、RT、LB、RB:子塊
a、b、c、d:鄰近塊
A0、A1、A2、B0、B1、B2、B3:候選塊
CP0、CP1、CP2:控制點
Cur:當前塊
mv0、mv0’、mv0 C、mv0 N、mv1、mv1’、mv1 C、mv1 N、mv2、mv2’、mv2 C、mv2 N、mv3、mv3’:運動向量
T:時域位置
(x0,y0)、(x0’,y0’)、(x0+w,y0)、(x0’+w’,y0’)、(x0’,y0’+h’)、(x1,y1)、(x1’,y1’)、(x2,y2)、(xCS,yCS)、(xRS,yRS)、(xRE,yRE)、(xCE,yCE):坐標1600:
圖1示出了基於子塊的預測計算的示例。 圖2A-2B示出了簡化的仿射運動模型的示例(a)4參數仿射模型;(b)6參數仿射模型。 圖3示出了每個子塊的仿射運動向量場(MVF)的示例。 圖4A-4B示出了AF_MERGE模式的候選。 圖5示出了仿射merge模式的示例性候選位置。 圖6示出了具有四個子塊(A-D)的編碼單元(CU)及其鄰近塊(a–d)的示例。 圖7示出了由鄰近塊的兩個右側CP推導的仿射繼承的示例。 圖8通過由鄰近塊的兩個右CP推導的仿射繼承。 圖9示出了由仿射編碼的上方鄰近塊的底列中儲存的MV推導的6參數仿射繼承的示例。 圖10示出了可以儲存輔助MV的基本單元塊的底列(陰影的)的示例。 圖11示出由仿射編碼的左側鄰近塊的右行中儲存的MV推導的6參數仿射繼承的示例。 圖12示出了可以儲存輔助MV的基本單元塊的右行(陰影的)的示例。 圖13示出了所使用的MV儲存體的示例。 圖14是圖示了可以用於形成實現本公開技術的各部分的電腦系統或其他控制裝置的架構的示例的方塊圖。 圖15示出了可以用於實現本公開技術的各部分移動裝置的示例性實施例的方塊圖。 圖16是視覺媒體處理示例性方法的流程圖。Figure 1 shows an example of sub-block based prediction calculation. Figures 2A-2B show examples of simplified affine motion models (a) 4-parameter affine model; (b) 6-parameter affine model. Figure 3 shows an example of the affine motion vector field (MVF) for each sub-block. Figures 4A-4B illustrate candidates for AF_MERGE mode. Figure 5 shows exemplary candidate locations for the affine merge pattern. Figure 6 shows an example of a coding unit (CU) with four sub-blocks (A-D) and its neighboring blocks (a–d). Figure 7 shows an example of affine inheritance derived from two right-hand CPs of neighboring blocks. Figure 8 via affine inheritance derived from two right CPs of neighboring blocks. Figure 9 shows an example of 6-parameter affine inheritance derived from MVs stored in the bottom columns of affine-encoded upper neighbor blocks. Figure 10 shows an example of the bottom column (shaded) of basic unit blocks in which auxiliary MVs can be stored. Figure 11 shows an example of 6-parameter affine inheritance derived from MVs stored in the right row of affine-coded left neighbor blocks. Figure 12 shows an example of the right row (shaded) of basic unit blocks in which auxiliary MVs can be stored. Figure 13 shows an example of an MV bank used. 14 is a block diagram illustrating an example of an architecture that may be used to form a computer system or other control device that implements portions of the disclosed technology. 15 illustrates a block diagram of an exemplary embodiment of portions of a mobile device that may be used to implement the disclosed technology. Figure 16 is a flowchart of an exemplary method of visual media processing.
1600:方法 1600:Method
1602~1604:步驟 1602~1604: Steps
Claims (33)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018107629 | 2018-09-26 | ||
WOPCT/CN2018/107629 | 2018-09-26 | ||
WOPCT/CN2018/107869 | 2018-09-27 | ||
CN2018107869 | 2018-09-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202037157A TW202037157A (en) | 2020-10-01 |
TWI829769B true TWI829769B (en) | 2024-01-21 |
Family
ID=68136479
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108134969A TWI829769B (en) | 2018-09-26 | 2019-09-26 | Motion vector accessing range for affine |
TW108134966A TWI826542B (en) | 2018-09-26 | 2019-09-26 | Mode dependent affine inheritance |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108134966A TWI826542B (en) | 2018-09-26 | 2019-09-26 | Mode dependent affine inheritance |
Country Status (3)
Country | Link |
---|---|
CN (2) | CN110958457B (en) |
TW (2) | TWI829769B (en) |
WO (2) | WO2020065569A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180098063A1 (en) * | 2016-10-05 | 2018-04-05 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017147765A1 (en) * | 2016-03-01 | 2017-09-08 | Mediatek Inc. | Methods for affine motion compensation |
WO2017156705A1 (en) * | 2016-03-15 | 2017-09-21 | Mediatek Inc. | Affine prediction for video coding |
US10560712B2 (en) * | 2016-05-16 | 2020-02-11 | Qualcomm Incorporated | Affine motion prediction for video coding |
WO2018128380A1 (en) * | 2017-01-03 | 2018-07-12 | 엘지전자(주) | Method and device for processing video signal by means of affine prediction |
CN108271023B (en) * | 2017-01-04 | 2021-11-19 | 华为技术有限公司 | Image prediction method and related device |
-
2019
- 2019-09-26 CN CN201910919456.0A patent/CN110958457B/en active Active
- 2019-09-26 TW TW108134969A patent/TWI829769B/en active
- 2019-09-26 TW TW108134966A patent/TWI826542B/en active
- 2019-09-26 CN CN201910919460.7A patent/CN110958456B/en active Active
- 2019-09-26 WO PCT/IB2019/058164 patent/WO2020065569A1/en active Application Filing
- 2019-09-26 WO PCT/IB2019/058165 patent/WO2020065570A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180098063A1 (en) * | 2016-10-05 | 2018-04-05 | Qualcomm Incorporated | Motion vector prediction for affine motion models in video coding |
Non-Patent Citations (1)
Title |
---|
網路文獻 Minhua Zhou and Brian Heng Non-CE4: A study on the affine merge mode Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 11th Meeting: Ljubljana, SI 10–18 July 2018 https://jvet-experts.org/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0052-v2.zip * |
Also Published As
Publication number | Publication date |
---|---|
CN110958456B (en) | 2023-03-31 |
TW202037156A (en) | 2020-10-01 |
TWI826542B (en) | 2023-12-21 |
WO2020065570A1 (en) | 2020-04-02 |
CN110958457A (en) | 2020-04-03 |
CN110958457B (en) | 2023-05-12 |
WO2020065569A1 (en) | 2020-04-02 |
TW202037157A (en) | 2020-10-01 |
CN110958456A (en) | 2020-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI832904B (en) | Complexity reduction for affine mode | |
TWI822862B (en) | 8-parameter affine model | |
JP2022507281A (en) | Difference calculation based on partial position | |
CN110662073B (en) | Boundary filtering of sub-blocks | |
TWI829769B (en) | Motion vector accessing range for affine |