TW202420819A - Prediction generation with out-of-boundary check in video coding - Google Patents

Prediction generation with out-of-boundary check in video coding Download PDF

Info

Publication number
TW202420819A
TW202420819A TW112125288A TW112125288A TW202420819A TW 202420819 A TW202420819 A TW 202420819A TW 112125288 A TW112125288 A TW 112125288A TW 112125288 A TW112125288 A TW 112125288A TW 202420819 A TW202420819 A TW 202420819A
Authority
TW
Taiwan
Prior art keywords
block
prediction
oob
bounds
video
Prior art date
Application number
TW112125288A
Other languages
Chinese (zh)
Inventor
蕭裕霖
徐志瑋
黃毓文
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW202420819A publication Critical patent/TW202420819A/en

Links

Abstract

A method of coding video pictures using predictive coding with out-of-bound (OOB) checks is provided. A video coder receives data to be encoded or decoded as a current block of a current picture of a video. The video coder identifies a first reference block in a first reference picture based on a first block vector of the current block and a second reference block in a second reference picture based on a second block vector of the current block. The video coder performs out-of-bound (OOB) check for the first and second reference blocks. The video coder generates a predictor for the current block based on the first and second reference blocks and based on the OOB check, such that the use of bi-directional motion compensation can be constrained. The video coder encodes or decodes the current block by using the generated predictor.

Description

視訊編解碼中帶越界檢查的預測生成Prediction generation with out-of-bounds checking in video encoding and decoding

本發明有關於視訊編解碼。更具體而言,本發明有關於藉由幀間和幀內預測編解碼像素塊的方法。The present invention relates to video coding and decoding. More specifically, the present invention relates to a method for coding and decoding pixel blocks by inter-frame and intra-frame prediction.

除非本文另有說明,否則本節中描述的方法不是後面列出的申請專利範圍的現有技術,並且不因包含在本節中而被承認為現有技術。Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims listed below and are not admitted to be prior art by inclusion in this section.

高效視訊編解碼(HEVC)是由視訊編解碼聯合協作組(JCT-VC)開發的國際視訊編解碼標準。HEVC 基於混合的基於塊的運動補償類 DCT 變換編解碼架構(hybrid block-based motion-compensated DCT-like transform coding architecture)。壓縮的基本單元,稱為編解碼單元 (CU),是一個 2Nx2N 的方形像素塊,每個 CU 可以遞歸地分成四個更小的 CU,直到達到預定義的最小尺寸。每個 CU 包含一個或多個預測單元 (PU)。High Efficiency Video Coding (HEVC) is an international video coding standard developed by the Joint Collaboration on Video Coding (JCT-VC). HEVC is based on a hybrid block-based motion-compensated DCT-like transform coding architecture. The basic unit of compression, called a coding unit (CU), is a 2Nx2N square block of pixels, and each CU can be recursively divided into four smaller CUs until a predefined minimum size is reached. Each CU contains one or more prediction units (PUs).

通用視訊編解碼(VVC)是由ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11聯合視訊專家組(JVET)制定的最新國際視訊編解碼標準。輸入視訊信號是根據從編碼的圖片區域導出的重建的信號預測的。預測殘差信號通過塊變換進行處理。變換係數與位元流中的其他輔助資訊一起被量化和熵編解碼。重建的信號是根據預測信號和對去量化的變換係數進行逆變換後的重建的殘差信號生成的。重建的信號通過環路濾波進一步處理,以去除編解碼偽像。解碼後的圖片存儲在幀緩衝器中,用於預測輸入視訊信號中的未來圖片。Versatile Video Codec (VVC) is the latest international video codec standard developed by ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 Joint Video Experts Group (JVET). The input video signal is predicted based on a reconstructed signal derived from a coded picture region. The prediction residual signal is processed by a block transform. The transform coefficients are quantized and entropy coded along with other auxiliary information in the bitstream. The reconstructed signal is generated based on the prediction signal and the reconstructed residual signal after inverse transforming the dequantized transform coefficients. The reconstructed signal is further processed by loop filtering to remove coding artifacts. The decoded pictures are stored in a frame buffer and used to predict future pictures in the input video signal.

在VVC中,編碼的圖片被劃分為由相關聯的編解碼樹單元(CTU)表示的非重疊方形塊區域。編解碼樹的葉節點對應於編解碼單元(CU)。編碼的圖片可以由切片集合表示,每個切片包含整數個 CTU。切片中的各個 CTU 以光柵掃描順序處理。可以使用幀內預測或幀間預測對雙向預測(bi-predictive,簡寫為B)切片進行解碼,其中最多有兩個運動向量和參考索引來預測每個塊的樣本值。使用具有至多一個運動向量和參考索引的幀內預測或幀間預測來解碼預測(predictive,簡寫為P)切片以預測每個塊的樣本值。僅使用幀內預測對幀內 (I) 切片進行解碼。In VVC, the coded picture is divided into non-overlapping square block areas represented by associated codec tree units (CTUs). The leaf nodes of the codec tree correspond to codec units (CUs). The coded picture can be represented by a set of slices, each slice containing an integer number of CTUs. Each CTU in a slice is processed in raster scan order. Bi-predictive (B) slices can be decoded using intra-frame prediction or inter-frame prediction, with up to two motion vectors and reference indices to predict the sample values of each block. Predictive (P) slices are decoded using intra-frame prediction or inter-frame prediction with up to one motion vector and reference index to predict the sample values of each block. Only Intra (I) slices are decoded using intra prediction.

利用具有嵌套多類型樹(multi-type-tree,簡寫為MTT)結構的四叉樹(QT)可以將CTU劃分為一個或多個非重疊編解碼單元(CU),以適應各種局部運動和紋理特徵。可以使用五種分割類型之一將 CU 進一步分割成更小的 CU:四叉樹分割、垂直二叉樹分割、水平二叉樹分割、垂直中心側三叉樹分割、水平中心側三叉樹分割。A CTU can be divided into one or more non-overlapping coding units (CUs) using a quadtree (QT) with a nested multi-type-tree (MTT) structure to accommodate various local motion and texture characteristics. A CU can be further split into smaller CUs using one of five partitioning types: quadtree partitioning, vertical binary tree partitioning, horizontal binary tree partitioning, vertical center-side tritree partitioning, and horizontal center-side tritree partitioning.

每個CU包含一個或多個預測單元(PU)。預測單元與關聯的 CU 語法一起作為用於發送預測資訊的基本單元。指定的預測過程用於預測 PU 內的相關像素樣本的值。每個CU可以包含一個或多個變換單元(TU)用於表示預測殘差塊。變換單元 (TU) 由一個亮度樣本的變換塊 (TB) 和兩個相應的色度樣本變換塊組成,每個 TB 對應於來自一種顏色分量的樣本的一個殘差塊。將整數變換應用於變換塊。量化係數的電平值(level value)與其他輔助資訊一起在位元流中被熵編解碼。術語編解碼樹塊 (CTB)、編解碼塊 (CB)、預測塊 (PB) 和變換塊 (TB) 被定義為指定分別與 CTU、CU、PU 和TU相關聯的一種顏色分量的2維樣本陣列(2-D sample array)。因此,一個 CTU 由一個亮度 CTB、兩個色度 CTB 和相關語法元素組成。類似的關係對 CU、PU 和 TU 有效。Each CU contains one or more prediction units (PUs). The prediction unit together with the associated CU syntax serves as the basic unit for sending prediction information. The specified prediction process is used to predict the values of the relevant pixel samples within the PU. Each CU can contain one or more transform units (TUs) for representing prediction residue blocks. A transform unit (TU) consists of a transform block (TB) of luma samples and two corresponding transform blocks of chroma samples, each TB corresponding to a residue block of samples from one color component. An integer transform is applied to the transform block. The level value of the quantization coefficient is entropy encoded and decoded in the bitstream along with other auxiliary information. The terms codec tree block (CTB), codec block (CB), prediction block (PB), and transform block (TB) are defined to specify a 2-D sample array of one color component associated with a CTU, CU, PU, and TU, respectively. Thus, a CTU consists of one luma CTB, two chroma CTBs, and related syntax elements. Similar relationships are valid for CU, PU, and TU.

對於每個幀間預測CU,由運動向量、參考圖片索引和參考圖片列表使用索引(reference picture list usage index)組成的運動參數以及附加資訊用於幀間預測樣本生成。可以以顯式或隱式方式傳訊運動參數。當 CU 以跳過模式(skip mode)編解碼時,CU 與一個 PU 相關聯並且沒有有效殘差係數(significant residual coefficient),沒有編碼的運動向量增量或參考圖片索引。指定合併模式,當前 CU 的運動參數是從鄰近 CU 獲得的,包括空間和時間候選,以及 VVC 中引入的附加調度。合併模式可以應用於任何幀間預測的 CU。合併模式的替代方案是運動參數的顯式傳輸,其中運動向量、每個參考圖片列表的相應參考圖片索引和參考圖片列表使用標誌以及其他所需資訊按每個 CU 顯式發送。For each inter-frame prediction CU, motion parameters consisting of motion vectors, reference picture index and reference picture list usage index, as well as additional information are used for inter-frame prediction sample generation. Motion parameters can be signaled explicitly or implicitly. When the CU is encoded or decoded in skip mode, the CU is associated with one PU and has no significant residual coefficients, no coded motion vector increments or reference picture indices. Specifying the merge mode, the motion parameters of the current CU are obtained from neighboring CUs, including spatial and temporal candidates, as well as the additional scheduling introduced in VVC. The merge mode can be applied to any inter-frame prediction CU. An alternative to merge mode is explicit transmission of motion parameters, where motion vectors, the corresponding reference picture index for each reference picture list and the reference picture list usage flag, along with other required information, are explicitly sent per CU.

以下概述僅是說明性的並且不旨在以任何方式進行限制。即,以下概述被提供以介紹本文所述的新穎且非顯而易見的技術的概念、亮點、益處和優點。選擇而不是所有的實施方式在下面的詳細描述中被進一步描述。因此,以下概述並非旨在識別所要求保護的主題的基本特徵,也不旨在用於確定所要求保護的主題的範圍。The following summary is illustrative only and is not intended to be limiting in any way. That is, the following summary is provided to introduce the concepts, highlights, benefits, and advantages of the novel and non-obvious technologies described herein. Selected but not all implementations are further described in the detailed description below. Therefore, the following summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used to determine the scope of the claimed subject matter.

本公開的一些實施例提供了一種視訊編解碼方法,包括:接收待編碼或解碼為視訊的當前圖片的當前塊的資料;基於當前塊的第一塊向量識別第一參考圖片中的第一參考塊;基於當前塊的第二塊向量識別第二參考圖片中的第二參考塊;對第一和第二參考塊進行越界檢查;基於第一和第二參考塊並基於越界檢查生成當前塊的預測子,其中當第一參考塊的樣本是越界時,雙向運動補償不應用於水平方向和垂直方向中的至少一個方向;以及使用生成的預測子對當前塊進行編碼或解碼。Some embodiments of the present disclosure provide a video encoding and decoding method, including: receiving data of a current block of a current picture to be encoded or decoded into a video; identifying a first reference block in a first reference picture based on a first block vector of the current block; identifying a second reference block in a second reference picture based on a second block vector of the current block; performing an out-of-bounds check on the first and second reference blocks; generating a predictor of the current block based on the first and second reference blocks and based on the out-of-bounds check, wherein when a sample of the first reference block is out-of-bounds, bidirectional motion compensation is not applied to at least one of the horizontal and vertical directions; and encoding or decoding the current block using the generated predictor.

本公開的一些實施例提供了一種電子裝置,包括:視訊編碼器電路,配置為執行操作,包括:接收待編碼或解碼為視訊的當前圖片的當前塊的資料;基於當前塊的第一塊向量識別第一參考圖片中的第一參考塊;基於當前塊的第二塊向量識別第二參考圖片中的第二參考塊;對第一和第二參考塊進行越界檢查;基於第一和第二參考塊並基於越界檢查生成當前塊的預測子,其中當第一參考塊的樣本是越界時,雙向運動補償不應用於水平方向和垂直方向中的至少一個方向;以及使用生成的預測子對當前塊進行編碼或解碼。Some embodiments of the present disclosure provide an electronic device, including: a video encoder circuit configured to perform operations, including: receiving data of a current block of a current picture to be encoded or decoded as a video; identifying a first reference block in a first reference picture based on a first block vector of the current block; identifying a second reference block in a second reference picture based on a second block vector of the current block; performing an out-of-bounds check on the first and second reference blocks; generating a predictor of the current block based on the first and second reference blocks and based on the out-of-bounds check, wherein when a sample of the first reference block is out-of-bounds, bidirectional motion compensation is not applied to at least one of the horizontal and vertical directions; and encoding or decoding the current block using the generated predictor.

本公開的一些實施例提供了一種視訊解碼方法,包括:接收待解碼為視訊的當前圖片的當前塊的資料;基於當前塊的第一塊向量識別第一參考圖片中的第一參考塊;基於當前塊的第二塊向量識別第二參考圖片中的第二參考塊;對第一和第二參考塊進行越界檢查;基於第一和第二參考塊並基於越界檢查生成當前塊的預測子,其中當第一參考塊的樣本是越界時,雙向運動補償不應用於水平方向和垂直方向中的至少一個方向;以及使用生成的預測子重建當前塊。Some embodiments of the present disclosure provide a video decoding method, including: receiving data of a current block of a current picture to be decoded as a video; identifying a first reference block in a first reference picture based on a first block vector of the current block; identifying a second reference block in a second reference picture based on a second block vector of the current block; performing an out-of-bounds check on the first and second reference blocks; generating a predictor of the current block based on the first and second reference blocks and based on the out-of-bounds check, wherein when a sample of the first reference block is out-of-bounds, bidirectional motion compensation is not applied to at least one of the horizontal and vertical directions; and reconstructing the current block using the generated predictor.

本發明的編解碼方法即相關裝置執行越界檢測以生成預測樣本。The encoding and decoding method of the present invention is that the relevant device performs cross-border detection to generate prediction samples.

在下面的詳細描述中,通過示例的方式闡述了許多具體細節,以便提供對相關教導的透徹理解。基於本文描述的教導的任何變化、派生和/或擴展都在本公開的保護範圍內。在一些情況下,與此處公開的一個或多個示例實現相關的眾所周知的方法、程式、組件和/或電路可以在相對較高的水平上描述而沒有細節,以避免不必要地模糊本公開的教導的方面。 I. 運動補償越界檢查( Out-of-Boundary Check In the following detailed description, many specific details are set forth by way of example in order to provide a thorough understanding of the relevant teachings. Any variations, derivations, and/or extensions based on the teachings described herein are within the scope of protection of the present disclosure. In some cases, well-known methods, procedures, components, and/or circuits associated with one or more example implementations disclosed herein may be described at a relatively high level without detail to avoid unnecessarily obscuring aspects of the teachings of the present disclosure. I. Motion Compensation Out-of-Boundary Check

幀間預測的CU可能具有部分或全部位於參考圖片之外的參考塊。第1圖圖示了使用越界(Out-of-Boundary,簡寫為OOB)參考塊的雙向預測。在圖中,執行雙向運動補償以生成當前圖片100中的當前塊105的幀間預測塊(預測子)。列表0參考塊120部分超出參考塊圖片110。列表1參考塊121完全位於參考圖片111內部。當視訊編解碼器執行預測生成過程130時,參考塊120的OOB部分140填充有重複填充樣本(repetitive padding sample)。預測生成過程130使用參考塊120和121生成當前塊105的預測塊135。由於參考塊120的OOB部分140填充有從參考圖片110內的邊界樣本導出的重複樣本,運動補償塊135對應於OOB部分140的部分可能提供較低的預測效率。An inter-frame predicted CU may have reference blocks that are partially or completely outside the reference picture. Figure 1 illustrates bidirectional prediction using out-of-boundary (OOB) reference blocks. In the figure, bidirectional motion compensation is performed to generate an inter-frame prediction block (predictor) for the current block 105 in the current picture 100. List 0 reference block 120 partially exceeds the reference block picture 110. List 1 reference block 121 is completely located inside the reference picture 111. When the video codec executes the prediction generation process 130, the OOB portion 140 of the reference block 120 is filled with repetitive padding samples. The prediction generation process 130 generates a prediction block 135 for the current block 105 using the reference blocks 120 and 121. Since the OOB portion 140 of the reference block 120 is filled with repeated samples derived from boundary samples within the reference picture 110, the portion of the motion compensation block 135 corresponding to the OOB portion 140 may provide lower prediction efficiency.

在一些實施例中,單向運動補償樣本在其參考樣本之一位於參考圖片之外超過一半樣本時被視為OOB。對於雙向運動補償塊中的每個預測樣本,當其單向預測樣本之一為OOB而另一個為非OOB時,將對應的雙向樣本設置為等於非OOB樣本而不是使用OOB和非OOB樣本的平均值。In some embodiments, a unidirectional motion compensation sample is considered OOB when one of its reference samples is outside the reference picture for more than half of the samples. For each prediction sample in a bidirectional motion compensation block, when one of its unidirectional prediction samples is OOB and the other is non-OOB, the corresponding bidirectional sample is set equal to the non-OOB sample instead of using the average of the OOB and non-OOB samples.

在一些實施例中,當組合多於一個預測塊時,丟棄OOB預測樣本,並且僅使用非OOB預測子來生成最終預測子。具體來說,設Pos_x i,j和 Pos_y i,j表示一個當前塊中一個預測樣本 (i, j) 的 x 和 y 位置,MV LX_x i,j和 MV LX_y i,j(LX = L0 或 L1) 表示當前塊的MV;Pos LeftBdry、Pos RightBdry、Pos TopBdry、Pos BottomBdry為圖片四個邊界的位置。當至少滿足以下條件之一時,將一個預測樣本視為OOB: (Pos_x i,j+ MV LX_x i,j) > (Pos RightBdry+ half_pixel), (Pos_x i,j+ MV LX_x i,j) < (Pos LeftBdry+ half_pixel), (Pos_y i,j+ MV LX_y i,j) > (Pos BottomBdry+ half_pixel), (Pos_y i,j+ MV LX_y i,j) > (Pos TopBdry+ half_pixel) In some embodiments, when more than one prediction block is combined, the OOB prediction samples are discarded and only non-OOB predictors are used to generate the final predictor. Specifically, let Pos_xi ,j and Pos_y ,j represent the x and y positions of a prediction sample (i, j) in the current block, MV LX_xi ,j and MV LX_y ,j (LX = L0 or L1) represent the MV of the current block; PosLeftBdry , PosRightBdry , PosTopBdry , and PosBottomBdry are the positions of the four boundaries of the image. A forecast sample is considered OOB when at least one of the following conditions is met: (Pos_xi ,j + MVLX_xi ,j ) > ( PosRightBdry + half_pixel ), (Pos_xi ,j + MVLX_xi ,j ) < ( PosLeftBdry + half_pixel ), (Pos_yi ,j + MVLX_yi ,j ) > ( PosBottomBdry + half_pixel ), (Pos_yi ,j + MVLX_yi ,j ) > ( PosTopBdry + half_pixel )

其中 half_pixel等於8,表示1/16像素樣本精度中的半像素樣本距離。在檢查每個樣本的 OOB 狀況後,一個雙向塊的最終預測樣本生成如下: 若P L0 i,j為OOB 且 P L1 i,j為非OOB, 則 P final i,j= P L1 i,j否則若 P L0 i,j為非OOB且P L1 i,j為OOB,則 P final i,j= P L0 i,j否則P final i,j= (P L0 i,j+ P L1 i,j+ 1) >> 1 II. 塊編解碼預測工具 Where half_pixel is equal to 8, indicating the half-pixel sample distance in 1/16 pixel sample accuracy. After checking the OOB status of each sample, the final prediction sample of a bidirectional block is generated as follows: If PL0 i,j is OOB and PL1 i,j is non-OOB, then P final i,j = PL1 i,j Otherwise If PL0 i,j is non-OOB and PL1 i,j is OOB, then P final i,j = PL0 i,j Otherwise P final i,j = ( PL0 i,j + PL1 i,j + 1) >> 1 II. Block Encoding and Decoding Prediction Tool

a.a. 水平環繞運動補償(Horizontal orbital motion compensation ( Horizontal Wrap Around Motion CompensationHorizontal Wrap Around Motion Compensation

水平環繞運動補償是一種360度特定的編解碼工具,旨在提高等距矩形投影(equi-rectangularprojection,簡寫為ERP)格式的重建的360度視訊的視覺品質。在傳統的運動補償中,當運動向量指的是參考圖片的圖片邊界之外的樣本時,通過從相應圖片邊界上的最近鄰域複製,應用重複填充來導出越界樣本的值。對於360度視訊,這種重複填充的方法是不合適的,並且可能會在重建的視埠視訊中導致稱為“接縫偽影”的視覺偽影。由於360度視訊是在球體上捕獲的,並且本質上沒有“邊界”,因此在投影域中超出參考圖片邊界的參考樣本始終可以從球域中的鄰近樣本中獲取。Horizontal surround motion compensation is a 360-degree specific codec tool designed to improve the visual quality of reconstructed 360-degree videos in the equirectangular projection (ERP) format. In traditional motion compensation, when a motion vector refers to samples outside the picture boundaries of a reference picture, repeated padding is applied to derive the value of the out-of-bounds samples by copying from the nearest neighbor on the corresponding picture boundary. For 360-degree videos, this approach to repeated padding is inappropriate and may cause visual artifacts called "seam artifacts" in the reconstructed viewport video. Since 360-degree video is captured on a sphere and has essentially no "borders", reference samples that are beyond the borders of the reference image in the projection domain can always be obtained from neighboring samples in the spherical domain.

對於一般的投影格式,可能難以導出球域中對應的鄰近樣本,因為這樣做涉及2D到3D和3D到2D的坐標轉換,以及分數樣本位置的樣本插值。對於ERP投影格式的左右邊界這個問題要簡單得多,因為左側圖片邊界外的球形鄰域可以從右側圖片邊界內的樣本中獲得,反之亦然。因此,水平環繞運動補償可用於提高以ERP投影格式編解碼的360度視訊的視覺品質。For general projection formats, it may be difficult to derive the corresponding neighboring samples in the spherical domain, because doing so involves 2D to 3D and 3D to 2D coordinate conversions, as well as sample interpolation of fractional sample positions. For the left and right boundaries of the ERP projection format, this problem is much simpler, because the spherical neighbors outside the left image boundary can be obtained from the samples inside the right image boundary, and vice versa. Therefore, horizontal surround motion compensation can be used to improve the visual quality of 360-degree videos encoded and decoded in the ERP projection format.

在一些實施例中,水平環繞運動補償可以與在360度視訊編解碼中經常使用的(非規範的)填充方法組合。這可以通過傳訊高級語法元素來指示環繞偏移來實現,該偏移可以被設置為應用於ERP圖片的填充寬度。此語法可用於相應地調整水平環繞的位置。此語法不受左右圖片邊界的具體填充量的影響,因此自然支持ERP圖片的非對稱填充,即當左右填充不同時。當參考樣本位於參考圖片的左右邊界之外時,水平環繞運動補償為運動補償提供更有意義的資訊。In some embodiments, horizontal surround motion compensation can be combined with a (non-canonical) padding method commonly used in 360-degree video codecs. This can be achieved by signaling a high-level syntax element to indicate a surround offset, which can be set to the padding width applied to the ERP picture. This syntax can be used to adjust the position of the horizontal surround accordingly. This syntax is not affected by the specific amount of padding on the left and right picture borders, and therefore naturally supports asymmetric padding of ERP pictures, i.e. when the left and right padding are different. Horizontal surround motion compensation provides more meaningful information for motion compensation when the reference samples are outside the left and right borders of the reference picture.

b.b. 多假設幀間預測(Multi-hypothesis frame prediction ( Multi-Hypothesis PredictionMulti-Hypothesis Prediction ,簡寫為, abbreviated as MHPMHP

在多假設幀間預測模式(MHP)中,除了傳統的雙向預測信號之外,一個或多個額外的運動補償預測信號被傳訊。最終的整體預測信號是通過樣本加權疊加獲得的。利用雙向預測信號 p bi 和第一附加幀間預測信號/假設 h 3 ,根據下式獲得結果預測信號 p 3 p 3 = (1–α) p bi h 3 In the multi-hypothesis inter-frame prediction mode (MHP), in addition to the traditional bidirectional prediction signal, one or more additional motion compensated prediction signals are signaled. The final overall prediction signal is obtained by sample weighted superposition. Using the bidirectional prediction signal pbi and the first additional inter-frame prediction signal/hypothesis h3 , the resulting prediction signal p3 is obtained according to the following formula: p3 = (1–α) pbi + αh3

加權因子α(或混合比)由編解碼視訊中的語法元素add_hyp_weight_idx指定為1/4或-1/8等。The weighting factor α (or the mixing ratio) is specified by the syntax element add_hyp_weight_idx in the codec video as 1/4 or -1/8, etc.

第2圖概念性地說明了用於對當前塊220進行編解碼的多假設預測(MHP)。當前塊220在當前圖片200中。當前塊具有用於分別獲取預測子230(在參考圖片210中)和231(在參考圖片211中)的雙向預測運動向量MV0和MV1。雙向預測預測子用於產生雙向預測信號p bi。除了雙向預測之外,當前塊還使用MHP預測進行編解碼。MHP預測基於從多個MHP候選A、B、C和D中選擇的附加假設,它們分別定位不同參考圖片中的預測子或預測信號241、242、243和244。在示例中,選擇假設C以生成附加預測信號h 3,即預測信號243。 FIG. 2 conceptually illustrates a multi-hypothesis prediction (MHP) for encoding and decoding a current block 220. The current block 220 is in a current picture 200. The current block has bidirectional prediction motion vectors MV0 and MV1 used to obtain predictors 230 (in reference picture 210) and 231 (in reference picture 211), respectively. The bidirectional prediction predictors are used to generate a bidirectional prediction signal pbi . In addition to the bidirectional prediction, the current block is also encoded and decoded using MHP prediction. The MHP prediction is based on additional hypotheses selected from a plurality of MHP candidates A, B, C and D, which locate predictors or prediction signals 241, 242, 243 and 244 in different reference pictures, respectively. In the example, hypothesis C is selected to generate the additional prediction signal h 3 , ie, the prediction signal 243 .

在一些實施例中,可以使用一個以上的附加預測信號。得到的整體預測信號與每個附加預測信號一起迭代累積。例如,可以根據以下條件將第二個附加假設h 4添加到預測中: p 4 = (1 -α) p 3h 4 In some embodiments, more than one additional prediction signal may be used. The resulting overall prediction signal is iteratively accumulated with each additional prediction signal. For example, a second additional hypothesis h 4 may be added to the prediction according to the following condition: p 4 = (1 -α) p 3h 4

或者更一般地: p n+1 = (1 -α n+1 ) p nn+1 h n+1 Or more generally: p n+1 = (1 -α n+1 ) p nn+1 h n+1

得到的預測信號p n+1作為最後的p n(當前累積的預測)和最新的附加預測信號h n+1的混合結果獲得。當前塊的第一個現有預測是p 0。例如,如果MHP應用於合併候選,則p 0由現有合併索引指示。h n+1和p n+1的混合是基於混合比或加權因子α的加權和。在一些實施例中,對於預測的每個附加假設,可以傳訊/解析加權索引以指示加權因子。 The resulting prediction signal pn +1 is obtained as a mixture of the last pn (the current accumulated prediction) and the latest additional prediction signal hn +1 . The first existing prediction of the current block is p0 . For example, if MHP is applied to merge candidates, p0 is indicated by the existing merge index. The mixture of hn+1 and pn +1 is a weighted sum based on a mixing ratio or a weighting factor α. In some embodiments, for each additional hypothesis of the prediction, a weighting index can be signaled/parsed to indicate the weighting factor.

c.c. 組合的幀間和幀內預測Combined inter-frame and intra-frame prediction Combined inter and intra predictionCombined inter and intra prediction ,簡寫為, abbreviated as CIIP)CIIP)

組合的幀間和幀內預測(CIIP)將幀間預測信號與幀內預測信號組合。CIIP模式中的幀間預測信號 P inter是使用應用於常規合併模式的相同幀間預測過程導出的;而幀內預測信號 P intra是在使用平面模式或從預定義機制導出的一種或多種幀內預測模式的常規幀內預測過程之後導出的。例如,在下文中,預定義機制基於當前塊的鄰近參考區域(模板(template))。CU的幀內預測模式由編碼器和解碼器處的鄰近模板隱式導出,而不是作為準確的幀內預測模式位元發送給解碼器。使用每個候選模式的模板的參考樣本生成模板的預測樣本。成本被計算為模板的預測樣本和重建樣本之間的SATD。具有最小成本的幀內預測模式和/或具有較小成本的一些幀內預測模式被選擇並用於CU的幀內預測。候選模式可以是所有MPM和/或MPM的任何子集,如VVC中的67種幀內預測模式或擴展到131種幀內預測模式。使用加權平均組合幀內和幀間預測信號,其中權重值根據頂部和左側鄰近塊的編解碼模式來計算。CIIP預測 P CIIP形成如下:(wt為權重值) P CIIP= ((4 – wt) * P inter+ wt* P intra+ 2) >> 2 Combined inter- and intra-frame prediction (CIIP) combines an inter-frame prediction signal with an intra-frame prediction signal. The inter -frame prediction signal Pinter in the CIIP mode is derived using the same inter-frame prediction process applied to the conventional merge mode; while the intra -frame prediction signal Pintra is derived after the conventional intra-frame prediction process using the planar mode or one or more intra-frame prediction modes derived from a predefined mechanism. For example, in the following, the predefined mechanism is based on the neighboring reference area (template) of the current block. The intra-frame prediction mode of the CU is implicitly derived from the neighboring templates at the encoder and decoder, instead of being sent to the decoder as exact intra-frame prediction mode bits. The prediction samples of the template are generated using the reference samples of the template for each candidate mode. The cost is calculated as the SATD between the predicted samples and the reconstructed samples of the template. The intra prediction mode with the minimum cost and/or some intra prediction modes with smaller costs are selected and used for intra prediction of the CU. The candidate modes can be all MPMs and/or any subset of MPMs, such as the 67 intra prediction modes in VVC or extended to 131 intra prediction modes. The intra and inter prediction signals are combined using a weighted average, where the weight values are calculated based on the coding and decoding modes of the top and left neighboring blocks. The CIIP prediction P CIIP is formed as follows: (wt is the weight value) P CIIP = ((4 – wt ) * P inter + wt * P intra + 2) >> 2

在一些實施例中,當CU以合併模式編解碼時,如果CU包含至少64個亮度樣本(即,CU寬度乘以CU高度等於或大於64),並且如果CU寬度和CU高度兩者小於128個亮度樣本,可能會傳訊一個附加標誌以指示CIIP模式是否應用於當前CU。In some embodiments, when a CU is encoded or decoded in merge mode, if the CU contains at least 64 luma samples (i.e., the CU width multiplied by the CU height is equal to or greater than 64), and if both the CU width and the CU height are less than 128 luma samples, an additional flag may be signaled to indicate whether the CIIP mode applies to the current CU.

d.d. 幾何分區模式(Geometric partitioning mode ( GeometricGeometric partitioningpartitioning ModeMode , GPMGPM

幾何分區模式是一種用於幀間預測的編解碼工具,它將當前正在編碼的塊分割成兩個或更多部分。每個GPM分區或GPM拆分的分區模式的特點是定義平分線(bisectingline)或分段線(segmentingline)的距離-角度配對(distance-anglepairing)。幾何分區模式(GPM)使用CU級標誌作為一種合併模式來發送,其他合併模式包括常規合併模式、MMVD模式、CIIP模式和子塊合併模式。對於每個可能的CU大小 w×h=2 m×2 n(其中m,n∈{3⋯6},不包括8x64和64x8),幾何分區模式總共支持64個分區。 Geometric partition mode is a coding tool for inter-frame prediction that splits the block currently being encoded into two or more parts. The partition mode of each GPM partition or GPM split is characterized by the distance-angle pairing that defines the bisecting line or segmenting line. The geometric partition mode (GPM) is sent using the CU-level flag as a merge mode. Other merge modes include normal merge mode, MMVD mode, CIIP mode, and sub-block merge mode. For each possible CU size w×h= 2m × 2n (where m,n∈{3⋯6}, excluding 8x64 and 64x8), the geometric partition mode supports a total of 64 partitions.

第3圖示出藉由幾何分區模式(GPM)對CU的分割。該圖示出按相同角度分組的GPM拆分示例。如圖所示,當GPM被使用時,CU被幾何定位的直線分成至少兩部分。分割線的位置在數學上從特定分區的角度和偏移參數導出。FIG. 3 illustrates the partitioning of a CU by a geometric partitioning mode (GPM). The figure shows an example of a GPM split grouped by the same angle. As shown in the figure, when GPM is used, the CU is divided into at least two parts by a geometrically positioned straight line. The position of the partition line is mathematically derived from the angle and offset parameters of the specific partition.

由GPM的分區模式形成的CU中的每個分區使用其自己的運動(向量)進行幀間預測。在一些實施例中,每個分區只允許單向預測,即每個部分有一個運動向量和一個參考索引。與傳統的雙向預測類似,單向預測運動約束被應用以確保對於每個CU僅執行兩次運動補償預測。Each partition in a CU formed by the partition pattern of GPM uses its own motion (vector) for inter-frame prediction. In some embodiments, each partition only allows unidirectional prediction, i.e., each part has one motion vector and one reference index. Similar to traditional bidirectional prediction, unidirectional prediction motion constraints are applied to ensure that only two motion compensation predictions are performed for each CU.

如果GPM用於當前CU,則指示幾何分區的分區模式(角度和偏移)的幾何分區索引和兩個合併索引(每個分區一個)被進一步發送。通過根據分區的幾何分區創建的至少兩個分區中的每一個可以被分配合併索引,以從單向預測候選列表(也稱為GPM候選列表)中選擇候選。因此,這兩個分區的合併索引對選擇一對合併候選。GPM候選列表中的最大候選數量可在SPS中明確發送,以指定GPM合併索引的語法二值化。在預測至少兩個分區的每個之後,沿幾何分區邊緣的樣本值使用具有適應性權重的混合處理進行調整。這是整個CU的預測訊號,變換和量化處理將像在其他預測模式中一樣應用於整個CU。然後由GPM預測的CU的運動欄位(motionfield)被存儲。If GPM is used for the current CU, a geometric partition index indicating the partition mode (angle and offset) of the geometric partition and two merge indices (one for each partition) are further sent. Each of the at least two partitions created by the geometric partitioning according to the partitions can be assigned a merge index to select candidates from a unidirectional prediction candidate list (also called a GPM candidate list). Therefore, the merge index pair of the two partitions selects a pair of merge candidates. The maximum number of candidates in the GPM candidate list can be explicitly sent in the SPS to specify the syntactic binarization of the GPM merge index. After predicting each of the at least two partitions, the sample values along the edges of the geometric partitions are adjusted using a hybrid process with adaptive weights. This is the prediction signal for the entire CU, and the transform and quantization processing will be applied to the entire CU as in other prediction modes. Then the motion field of the CU predicted by GPM is stored.

GPM分區的單向預測候選列表(GPM候選列表)可以直接從當前CU的合併候選列表導出。第4圖示出用於GPM分區的示例性單向預測候選列表400以及對GPM的單向預測MV的選擇。GPM候選列表400以奇偶方式構建,僅具有在L0MV和L1MV之間交替的單向預測候選。設置n為GPM的單向預測候選列表中單向預測運動的索引。第n個擴展合併候選的LX(即L0或L1)運動向量,其中X等於n的奇偶性,用作GPM的第n個單向預測運動向量。(這些運動向量在圖中用“x”標記。)在不存在第n個擴展合併候選的對應LX運動向量的情況下,相同候選的L(1-X)運動向量被用作GPM的單向預測運動向量。The unidirectional prediction candidate list (GPM candidate list) for the GPM partition can be directly derived from the merge candidate list of the current CU. Figure 4 shows an exemplary unidirectional prediction candidate list 400 for the GPM partition and the selection of the unidirectional prediction MV for the GPM. The GPM candidate list 400 is constructed in an even-odd manner, with only unidirectional prediction candidates alternating between L0MV and L1MV. Set n to the index of the unidirectional prediction motion in the unidirectional prediction candidate list of the GPM. The LX (i.e., L0 or L1) motion vector of the nth extended merge candidate, where X is equal to the parity of n, is used as the nth unidirectional prediction motion vector of the GPM. (These motion vectors are marked with an “x” in the figure.) In the absence of a corresponding LX motion vector for the nth extended merge candidate, the L(1-X) motion vector of the same candidate is used as the unidirectional prediction motion vector of the GPM.

如前所述,沿幾何分區邊緣的樣本值使用具有適應性權重的混合處理來調整。具體來說,在使用自己的運動來預測幾何分區的每個部分之後,混合被應用於至少兩個預測訊號以導出幾何分區邊緣周圍的樣本。CU的每個位置的混合權重基於相應位置與分區邊緣之間的距離導出。位置(x,y)到分區邊緣的距離推導如下: As mentioned before, the sample values along the edges of geometric partitions are adjusted using a blending process with adaptive weights. Specifically, after predicting each part of the geometric partition using its own motion, blending is applied to at least two prediction signals to derive samples around the edges of the geometric partitions. The blending weight for each position of the CU is derived based on the distance between the corresponding position and the partition edge. The distance from a position (x, y) to the partition edge is derived as follows:

其中 i, j是幾何分區的角度和偏移的索引,它取決於發送的幾何分區索引。 ρ x,j ρ y,j 的符號取決於角度索引i。幾何分區的每個部分的權重推導如下: where i , j are the angle and offset indices of the geometry partition, which depend on the geometry partition index sent. The signs of ρx ,j and ρy ,j depend on the angle index i. The weights for each part of the geometry partition are derived as follows:

變數partIdx取決於角度索引 i。第5圖示出用於CU 500的GPM的示例分區邊緣混合處理。在圖中,混合權重基於初始混合權重w 0生成。 The variable partIdx depends on the angle index i . FIG. 5 shows an example partition edge blending process for the GPM of CU 500. In the figure, the blending weights are generated based on the initial blending weights w0 .

如上所述,使用GPM預測的CU的運動欄位被存儲。具體來說,來自幾何分區的第一部分的Mv1、來自幾何分區的第二部分的Mv2以及Mv1和Mv2的組合Mv被存儲在由GPM編解碼的CU的運動欄位中。運動欄位中每個單獨位置的存儲運動向量類型被確定為: As described above, the motion field of the CU predicted using GPM is stored. Specifically, Mv1 from the first part of the geometric partition, Mv2 from the second part of the geometric partition, and the combination Mv of Mv1 and Mv2 are stored in the motion field of the CU decoded by GPM. The type of stored motion vectors for each individual position in the motion field is determined as:

其中motionIdx等於d(4x+2,4y+2),它從等式(2)重新計算。partIdx取決於角度索引 i。如果sType等於0或1,則Mv0或Mv1被存儲在相應的運動欄位中,否則如果sType等於2,則來自Mv0和Mv2的組合的Mv被存儲。組合的Mv使用以下處理生成:(i)如果Mv1和Mv2來自不同的參考圖片列表(一個來自 L0,另一個來自L1),則Mv1和Mv2被簡單地組合以形成雙向預測運動向量;(ii) 否則,如果Mv1和Mv2來自同一列表,則僅單向預測運動Mv2被存儲。 where motionIdx is equal to d(4x+2,4y+2), which is recalculated from equation (2). partIdx depends on the angle index i . If sType is equal to 0 or 1, then Mv0 or Mv1 is stored in the corresponding motion field, otherwise if sType is equal to 2, then Mv from the combination of Mv0 and Mv2 is stored. The combined Mv is generated using the following process: (i) if Mv1 and Mv2 come from different reference picture lists (one from L0 and the other from L1), then Mv1 and Mv2 are simply combined to form a bidirectional predicted motion vector; (ii) otherwise, if Mv1 and Mv2 come from the same list, only the unidirectional predicted motion Mv2 is stored.

e.e. 模板匹配Template Matching (Template Matching(Template Matching ,簡寫為, abbreviated as TM)TM)

模板匹配(TM)是一種解碼器端MV推導方法,用於通過找到當前圖片中當前CU的模板(例如,當前CU的頂部和/或左側鄰近塊)在和參考圖片中的一組像素(即與模板大小相同)之間的最接近匹配來細化(refine)當前CU的運動資訊。Template matching (TM) is a decoder-side MV inference method used to refine the motion information of the current CU by finding the closest match between the template of the current CU in the current picture (e.g., the top and/or left neighboring blocks of the current CU) and a set of pixels in the reference picture (i.e., the same size as the template).

第6圖概念性地圖示了基於初始運動向量(MV)周圍的搜索區域來執行模板匹配。如圖所示,對於當前圖片600中的當前CU605,視訊編解碼器在初始MV610周圍的[-8,+8]像素搜索範圍內搜索參考圖片或幀601以獲得更好或細化的MV611。初始MV610識別初始參考模板630。細化的MV611識別細化的參考模板631。搜索基於最小化與當前塊605鄰近的當前模板620和細化參考模板631之間的差異(或成本)。可以使用基於自適應運動向量分辨率(adaptivemotionvectorresolution,簡寫為AMVR)模式確定的搜索步長來執行模板匹配。模板匹配過程可以與合併模式下的雙邊匹配過程級聯。FIG. 6 conceptually illustrates performing template matching based on a search area around an initial motion vector (MV). As shown, for a current CU 605 in a current picture 600, the video codec searches a reference picture or frame 601 within a [-8, +8] pixel search range around an initial MV 610 for a better or refined MV 611. The initial MV 610 identifies an initial reference template 630. The refined MV 611 identifies a refined reference template 631. The search is based on minimizing the difference (or cost) between a current template 620 and a refined reference template 631 that are adjacent to the current block 605. Template matching can be performed using a search step size determined based on an adaptive motion vector resolution (AMVR) mode. The template matching process can be cascaded with the bilateral matching process in merge mode.

在高級運動向量預測(AMVP)模式中,基於模板匹配誤差確定MVP候選以選擇當前塊模板與參考塊模板之間的差異達到最小的MVP候選,然後僅對這個特定的MVP候選執行TM用於MV細化。TM過程通過使用迭代菱形搜索從[–8,+8]像素搜索範圍內的全像素MVD精度(或4像素AMVR模式的4像素)開始細化此MVP候選。AMVP候選可以通過使用具有全像素MVD精度(或用於4像素AMVR模式的4像素)的交叉搜索來進一步細化,然後根據AMVR模式搜索型樣(searchpattern)依次使用半像素和四分之一像素。In the Advanced Motion Vector Prediction (AMVP) mode, MVP candidates are determined based on template matching error to select the MVP candidate with the smallest difference between the current block template and the reference block template, and then TM is performed for MV refinement only on this specific MVP candidate. The TM process refines this MVP candidate by using an iterative diamond search starting with full-pixel MVD accuracy (or 4 pixels for 4-pixel AMVR mode) within the [–8,+8] pixel search range. The AMVP candidate can be further refined by using a cross search with full-pixel MVD accuracy (or 4 pixels for 4-pixel AMVR mode), and then using half-pixels and quarter-pixels in turn according to the AMVR mode search pattern.

具有模板匹配的合併候選的自適應重新排序(AdaptiveReorderingofMergeCandidateswithTemplateMatching,簡寫為ARMC-TM)是一種基於模板匹配(TM)成本對合併候選重新排序的方法,其中通過以TM成本的升序對合併候選排序來提高傳訊效率。對於ARMC-TM或TM合併模式,合併候選在細化過程之前重新排序。合併候選的模板匹配成本可以通過當前塊的當前模板620的樣本與它們在參考模板621中的對應參考樣本之間的絕對差之和(SAD)來測量。Adaptive Reordering of Merge Candidates with Template Matching (ARMC-TM) is a method for reordering merge candidates based on template matching (TM) cost, where communication efficiency is improved by sorting the merge candidates in ascending order of TM cost. For ARMC-TM or TM merging mode, the merge candidates are reordered before the refinement process. The template matching cost of the merge candidates can be measured by the sum of absolute differences (SAD) between the samples of the current template 620 of the current block and their corresponding reference samples in the reference template 621.

在一些實施例中,在構建合併候選列表之後,合併候選被劃分成幾個子組。對於常規合併模式和TM合併模式,子組大小設置為5。對於仿射合併模式,子組大小設置為3。每個子組中的合併候選根據基於模板匹配的成本值升序重新排序。在一些實施例中,最後但不是第一個子組中的合併候選不被重新排序。In some embodiments, after constructing the merge candidate list, the merge candidates are divided into several subgroups. For the normal merge mode and the TM merge mode, the subgroup size is set to 5. For the affine merge mode, the subgroup size is set to 3. The merge candidates in each subgroup are reordered in ascending order according to the cost value based on template matching. In some embodiments, the merge candidates in the last but not the first subgroup are not reordered.

對於子塊大小等於Wsub×Hsub的基於子塊的合併候選,上面的模板可以包括幾個大小為Wsub×1的子模板,左邊的模板包括幾個大小為1×Hsub的子模板。在一些實施例中,當前塊的第一行(row)和第一列(column)中的子塊的運動資訊用於導出每個子模板的參考樣本。For sub-block-based merge candidates with a sub-block size equal to Wsub×Hsub, the template above may include several sub-templates of size Wsub×1, and the template on the left includes several sub-templates of size 1×Hsub. In some embodiments, the motion information of the sub-blocks in the first row and first column of the current block is used to derive reference samples for each sub-template.

第7圖概念性地說明具有子塊運動的當前塊700。利用當前塊的第一行和第一列的子塊(子塊A-G)的運動資訊對當前塊700進行編碼。子塊A-G的運動資訊用於識別參考圖片中的參考子塊A'-G'。當前塊700具有鄰近模板710,其包括分別與當前塊700上方和左側的子塊A-G鄰近的子模板711-717。參考子塊A'-G'具有參考圖片中對應的鄰近參考子塊721-727。可以通過將子模板711-717與相應的各子模板721-727匹配來計算不同子塊的運動資訊的TM成本。FIG. 7 conceptually illustrates a current block 700 with sub-block motion. The current block 700 is encoded using the motion information of the sub-blocks (sub-blocks A-G) in the first row and first column of the current block. The motion information of sub-blocks A-G is used to identify reference sub-blocks A'-G' in a reference picture. The current block 700 has a neighboring template 710, which includes sub-templates 711-717 that are adjacent to sub-blocks A-G above and to the left of the current block 700, respectively. The reference sub-blocks A'-G' have corresponding neighboring reference sub-blocks 721-727 in the reference picture. The TM cost of the motion information of different sub-blocks can be calculated by matching the sub-templates 711-717 with the corresponding sub-templates 721-727.

f.f. 解碼器運動向量細化Decoder motion vector refinement (DecoderMotionVectorRefinement(DecoderMotionVectorRefinement ,簡寫為, abbreviated as DMVR)DMVR)

為了增加合併模式的MV的準確性,可以應用基於雙邊匹配(bilateral-matching,簡寫為BM)的解碼器側運動向量細化來細化MV。在雙向預測操作中,在參考圖片列表L0和參考圖片列表L1中的初始MV周圍搜索細化的MV。BM方法計算參考圖片列表L0和列表L1中的兩個候選塊之間的失真。具有最低SAD的MV候選成為細化的MV並用於生成雙向預測信號。To increase the accuracy of the MV in merge mode, decoder-side motion vector refinement based on bilateral-matching (BM) can be applied to refine the MV. In the bidirectional prediction operation, the refined MV is searched around the initial MV in the reference picture list L0 and the reference picture list L1. The BM method calculates the distortion between two candidate blocks in the reference picture list L0 and the list L1. The MV candidate with the lowest SAD becomes the refined MV and is used to generate the bidirectional prediction signal.

在一些實施例中,如果所選擇的合併候選滿足DMVR條件,則在常規合併模式中應用多通道(multi-pass)解碼器側運動向量細化(multi-pass decoder-side motion vector refinement,簡寫為MP-DMVR)方法。在第一通道中,將雙邊匹配(BM)應用於編解碼塊。在第二通道中,BM應用於編解碼塊內的每個16x16子塊。在第三通道中,每個8x8子塊中的MV通過應用雙向光流(BDOF)進行細化。BM在運動向量差值MVD0(即MV0'-MV0)恰好與運動向量差值MVD1(即MV1'-MV1)的符號相反的約束下細化一對運動向量MV0和MV1。In some embodiments, if the selected merge candidate satisfies the DMVR condition, a multi-pass decoder-side motion vector refinement (MP-DMVR) method is applied in a conventional merge mode. In the first pass, bilateral matching (BM) is applied to the codec block. In the second pass, BM is applied to each 16x16 sub-block within the codec block. In the third pass, the MV in each 8x8 sub-block is refined by applying bidirectional optical flow (BDOF). BM refines a pair of motion vectors MV0 and MV1 under the constraint that the motion vector difference MVD0 (i.e., MV0'-MV0) has exactly the opposite sign to the motion vector difference MVD1 (i.e., MV1'-MV1).

第8圖概念性地圖示了通過雙邊匹配(BM)對預測候選(例如,合併候選)的細化。MV0是初始運動向量或預測候選,MV1是MV0的鏡像。當前圖片801中的當前塊800通過MV0參考參考圖片810中的初始參考塊820。MV1參考參考圖片811中的初始參考塊821。該圖顯示MV0和MV1被細化以形成MV0'和MV1',其分別更新參考塊830和831。細化是根據雙邊匹配進行的,使得細化後的運動向量對MV0'和MV1'比初始運動向量對MV0和MV1具有更好的雙邊匹配成本。MV0'-MV0(即MVD0)和MV1'-MV1(即MVD1)被限制為大小相等但方向相反。在一些實施例中,一對鏡像運動向量(例如,MV0和MV1)的雙邊匹配成本是基於鏡像的運動向量參考的兩個參考塊之間的差異(例如,參考塊820和821之間的差異)來計算的。FIG. 8 conceptually illustrates the refinement of prediction candidates (e.g., merged candidates) by bilateral matching (BM). MV0 is an initial motion vector or prediction candidate and MV1 is a mirror image of MV0. The current block 800 in the current image 801 refers to the initial reference block 820 in the reference image 810 via MV0. MV1 refers to the initial reference block 821 in the reference image 811. The figure shows that MV0 and MV1 are refined to form MV0' and MV1', which update reference blocks 830 and 831, respectively. The refinement is performed based on bilateral matching so that the refined motion vector pair MV0' and MV1' has a better bilateral matching cost than the initial motion vector pair MV0 and MV1. MV0'-MV0 (i.e., MVD0) and MV1'-MV1 (i.e., MVD1) are constrained to be equal in magnitude but opposite in direction. In some embodiments, the bilateral matching cost of a pair of mirrored motion vectors (e.g., MV0 and MV1) is calculated based on the difference between two reference blocks referenced by the mirrored motion vectors (e.g., the difference between reference blocks 820 and 821).

g.g. 幀內預測In-frame prediction

幀內預測方法利用與當前預測單元(PU)鄰近的一個參考層(referencetier)和一種幀內預測模式來生成當前PU的預測子。可以在包含多個預測方向的模式集中選擇幀內預測方向。對於幀內預測編解碼的每個PU,將使用和編碼一個索引以選擇一種幀內預測模式。將生成相應的預測,然後可以導出和轉換殘差。The intra prediction method uses a reference tier and an intra prediction mode adjacent to the current prediction unit (PU) to generate a predictor for the current PU. The intra prediction direction can be selected from a mode set containing multiple prediction directions. For each PU encoded and decoded by intra prediction, an index will be used and encoded to select an intra prediction mode. The corresponding prediction will be generated, and then the residual can be derived and transformed.

第9圖顯示了不同方向的幀內預測模式。這些幀內預測模式被稱為定向模式(directionalmode)並且不包括DC模式或平面(Planar)模式。如圖所示,有33種方向模式(V:垂直方向;H:水平方向),所以使用H、H+1~H+8、H-1~H-7、V、V+1~V+8、V-1~V-8。通常定向模式可以表示為H+k或V+k模式,其中k=±1、±2、...、±8。這種幀內預測模式中的每一個也可以稱為幀內預測角度。為了捕獲自然視訊中呈現的任意邊緣方向,定向幀內模式的數量可以從HEVC中使用的33個擴展到65個方向模式,以便k的範圍為±1到±16。這些更密集的定向幀內預測模式適用於所有塊大小以及亮度和色度幀內預測。通過包括DC和平面模式,幀內預測模式的數量為35(或67)。Figure 9 shows the intra prediction modes of different directions. These intra prediction modes are called directional modes and do not include DC mode or planar mode. As shown in the figure, there are 33 directional modes (V: vertical direction; H: horizontal direction), so H, H+1~H+8, H-1~H-7, V, V+1~V+8, V-1~V-8 are used. Usually the directional mode can be expressed as H+k or V+k mode, where k=±1, ±2,..., ±8. Each of these intra prediction modes can also be called an intra prediction angle. In order to capture arbitrary edge directions presented in natural video, the number of directional intra modes can be expanded from 33 used in HEVC to 65 directional modes so that k ranges from ±1 to ±16. These denser directional intra prediction modes apply to all block sizes and to both luma and chroma intra prediction. By including DC and planar modes, the number of intra prediction modes is 35 (or 67).

在35(或67)種幀內預測模式中,一些模式(例如,3或5)被識別為用於當前預測塊中的幀內預測的一組最可能模式(MPM)。編碼器可以通過傳訊選擇MPM之一的索引而不是選擇35(或67)種幀內預測模式之一的索引來降低位元率。例如,在左預測塊中使用的幀內預測模式和在上方的預測塊中使用的幀內預測模式被用作MPM。當兩個鄰近塊中的幀內預測模式使用相同的幀內預測模式時,幀內預測模式可以用作MPM。當兩個鄰近塊中只有一個可用並以定向模式編解碼時,緊鄰該定向模式的兩個鄰近方向可以用作MPM。DC模式和平面模式也被視為MPM以填充MPM集中的可用點,特別是如果上方或頂部鄰近塊不可用或未在幀內預測中編解碼,或者如果鄰近塊中的幀內預測模式不是定向模式。如果當前預測塊的幀內預測模式是MPM集中的模式之一,則使用1或2位元來傳訊它是哪一種。否則,當前塊的幀內預測模式與MPM集合中的任何條目都不相同,當前塊將被編解碼為非MPM模式。總共有32種這樣的非MPM模式,並且應用(5位元)固定長度編解碼方法來傳訊這種模式。Among the 35 (or 67) intra-frame prediction modes, some modes (e.g., 3 or 5) are identified as a set of most probable modes (MPMs) for intra-frame prediction in the current prediction block. The encoder can reduce the bit rate by signaling the index of selecting one of the MPMs instead of selecting the index of one of the 35 (or 67) intra-frame prediction modes. For example, the intra-frame prediction mode used in the left prediction block and the intra-frame prediction mode used in the prediction block above are used as MPMs. When the intra-frame prediction modes in two neighboring blocks use the same intra-frame prediction mode, the intra-frame prediction mode can be used as the MPM. When only one of the two neighboring blocks is available and encoded and decoded in a directional mode, two neighboring directions adjacent to the directional mode can be used as MPMs. DC mode and planar mode are also considered as MPMs to fill available spots in the MPM set, in particular if the above or top neighboring block is not available or is not encoded in intra prediction, or if the intra prediction mode in the neighboring block is not a directional mode. If the intra prediction mode of the current prediction block is one of the modes in the MPM set, 1 or 2 bits are used to signal which one it is. Otherwise, the intra prediction mode of the current block is different from any entry in the MPM set, and the current block will be encoded as a non-MPM mode. There are a total of 32 such non-MPM modes, and a (5-bit) fixed-length codec method should be used to signal such modes.

MPM列表是基於左鄰塊和上鄰塊的幀內模式構建的。假設左鄰塊的模式記為Left,上鄰塊的模式記為Above,則統一的MPM列表可以構造如下: –當鄰近塊不可用時,其幀內模式默認設置為平面。 –如果Left和Above兩種模式都是非角度模式: §   MPM 列表à{Planar, DC, V, H, V − 4, V + 4} – 如果 Left 和 Above 模式之一是角度模式,另一個是非角度模式: §   將模式 Max 設置為 Left 和 Above 中的較大模式 §   MPM 列表à{Planar, Max, Max − 1, Max + 1, Max − 2, Max + 2} – 如果 Left 和 Above 都是有角度的並且它們不同: § 將模式 Max 設置為 Left 和 Above 中的較大模式 § 將模式 Min 設置為 Left 和 Above 中較小的模式 § 如果 Max – Min 等於 1: –  MPM 列表à{Planar, Left, Above, Min – 1, Max + 1, Min – 2} § 否則,如果 Max – Min 大於或等於 62: –  MPM 列表à{Planar, Left, Above, Min + 1, Max – 1, Min + 2} § 否則,如果 Max – Min 等於 2: –  MPM 列表à{Planar, Left, Above, Min + 1, Min – 1, Max + 1} § 否則: –  MPM 列表à{Planar, Left, Above, Min – 1, Min + 1, Max – 1} § 如果 Left 和 Above 都是有角度的並且它們是相同的: –   MPM 列表à{Planar, Left, Left − 1, Left + 1, Left – 2, Left + 2} The MPM list is constructed based on the in-frame modes of the left neighbor block and the upper neighbor block. Assuming that the mode of the left neighbor block is denoted as Left and the mode of the upper neighbor block is denoted as Above, the unified MPM list can be constructed as follows: – When a neighbor block is unavailable, its in-frame mode is set to flat by default. – If both Left and Above modes are non-angular modes: §   MPM list à{Planar, DC, V, H, V − 4, V + 4} – If one of Left and Above modes is angular and the other is non-angular: §   Set mode Max to the larger of Left and Above §   MPM list à{Planar, Max, Max − 1, Max + 1, Max − 2, Max + 2} – If both Left and Above are angular and they are different: § Set mode Max to the larger of Left and Above § Set mode Min to the smaller of Left and Above § If Max – Min is equal to 1: – MPM list à{Planar, Left, Above, Min – 1, Max + 1, Min – 2} § Otherwise, if Max – Min Greater than or equal to 62: – MPM list à{Planar, Left, Above, Min + 1, Max – 1, Min + 2} § Otherwise, if Max – Min is equal to 2: – MPM list à{Planar, Left, Above, Min + 1, Min – 1, Max + 1} § Otherwise: – MPM list à{Planar, Left, Above, Min – 1, Min + 1, Max – 1} § If both Left and Above are angled and they are the same: –   MPM list à{Planar, Left, Left − 1, Left + 1, Left – 2, Left + 2}

傳統的角度幀內預測方向被定義為順時針方向從45度到-135度。在VVC中,幾種傳統的角度幀內預測模式被自適應地替換為非方形塊的廣角幀內預測模式。替換的模式使用原始模式索引傳訊,這些索引在解析後重新映射到廣角模式的索引。The traditional angular intra-frame prediction direction is defined as from 45 degrees to -135 degrees clockwise. In VVC, several traditional angular intra-frame prediction modes are adaptively replaced with non-square block wide-angle intra-frame prediction modes. The replaced modes are signaled using the original mode indexes, which are remapped to the indexes of the wide-angle mode after parsing.

對於一些實施例,幀內預測模式的總數不變,即67,並且幀內模式編解碼方法不變。為了支持這些預測方向,定義了長度為2W+1的頂部參考模板和長度為2H+1的左側參考模板。第10A-B圖概念性地說明具有擴展長度的頂部和左側參考模板以支持不同縱橫比的非正方形塊的廣角方向模式。For some embodiments, the total number of intra-frame prediction modes remains unchanged, i.e., 67, and the intra-frame mode encoding and decoding method remains unchanged. To support these prediction directions, a top reference template of length 2W+1 and a left reference template of length 2H+1 are defined. FIGS. 10A-B conceptually illustrate wide-angle directional modes with extended lengths of top and left reference templates to support non-square blocks of different aspect ratios.

h.h. 重疊塊運動補償Overlapping Block Motion Compensation (OverlappedBlockMotionCompensation(OverlappedBlockMotionCompensation ,簡寫為, abbreviated as OBMC)OBMC)

重疊塊運動補償(OBMC)是一種視訊編解碼工具,其通過使用具有加權預測的鄰近塊的運動資訊來細化CU的頂部和左側邊界像素來減少塊效應,具體地: Inter' predY= ((128 – w 1) × Inter predY+ w 1× OBMC predY) / 128 PredY = ((4 – w 0) × FwdMap (Inter' predY) + w 0× Intra predY) / 4 Overlapping Block Motion Compensation (OBMC) is a video codec tool that reduces blocking effects by refining the top and left boundary pixels of a CU using motion information from neighboring blocks with weighted prediction, specifically: Inter' predY = ((128 – w 1 ) × Inter predY + w 1 × OBMC predY ) / 128 PredY = ((4 – w 0 ) × FwdMap (Inter' predY ) + w 0 × Intra predY ) / 4

其中Inter predY表示當前塊在原域(original domain)運動預測的樣本,Intra predY表示映射域預測的樣本,OBMC predY表示原域鄰近塊運動預測的樣本,w 0和w 1是加權。 Among them, Inter predY represents the sample of motion prediction of the current block in the original domain, Intra predY represents the sample predicted in the mapping domain, OBMC predY represents the sample of motion prediction of the neighboring blocks in the original domain, and w0 and w1 are weighted.

通過使用鄰近子塊的運動資訊對頂部、左側、底部和右側子塊邊界像素應用相同的混合來執行子塊邊界OBMC。可以啟用OBMC用於基於子塊的編解碼工具,例如仿射AMVP模式、仿射合併模式和基於子塊的時間運動向量預測,以及基於子塊的雙邊匹配。當OBMC模式在CIIP模式中使用帶色度縮放的亮度映射(LMCS)時,在幀間樣本的LMCS映射之前執行幀間混合。LMCS應用於混合的幀間樣本,這些樣本在CIIP模式下與LMCS應用的幀內樣本相結合。 III. 預測編解碼工具的越界檢查 (Out-Of-Boundary Check for Prediction Coding Tools) Subblock boundary OBMC is performed by applying the same blending to the top, left, bottom, and right subblock boundary pixels using the motion information of neighboring subblocks. OBMC can be enabled for subblock-based coding tools such as Affine AMVP mode, Affine Merging mode, and Subblock-based Temporal Motion Vector Prediction, as well as Subblock-based Bilateral Matching. When the OBMC mode uses Luma Mapping with Chroma Scaling (LMCS) in CIIP mode, inter-frame blending is performed before LMCS mapping of inter-frame samples. LMCS is applied to the blended inter-frame samples, which are combined with intra-frame samples to which LMCS is applied in CIIP mode. III. Out-Of-Boundary Check for Prediction Coding Tools

為了提高具有OOB檢查的雙向運動補償的編解碼效率,本公開的一些實施例提供了一種用於對除雙向運動補償之外的預測編解碼模式執行OOB檢查的方法。In order to improve the coding efficiency of bidirectional motion compensation with OOB check, some embodiments of the present disclosure provide a method for performing OOB check for predictive coding modes other than bidirectional motion compensation.

A. ERPA. ERP 視訊的Video OOBOOB 檢查Check

在一些實施例中,對於水平環繞運動補償(horizontal wrap around motion compensation)過程或對於等矩形投影(ERP)格式的360度視訊的運動補償,具有OOB檢查的雙向運動補償僅應用於垂直方向,即,對水平方向的OOB樣本使用水平環繞運動補償,對垂直方向的OOB樣本使用帶OOB檢查的雙向運動補償。在一些實施例中,對於水平環繞運動補償過程或對於ERP投影格式的360度視訊的運動補償,不應用具有OOB檢查的雙向運動補償。In some embodiments, for the horizontal wrap around motion compensation process or for motion compensation of 360-degree video in equirectangular projection (ERP) format, bidirectional motion compensation with OOB check is applied only in the vertical direction, i.e., horizontal wrap around motion compensation is applied to OOB samples in the horizontal direction, and bidirectional motion compensation with OOB check is applied to OOB samples in the vertical direction. In some embodiments, for the horizontal wrap around motion compensation process or for motion compensation of 360-degree video in ERP projection format, bidirectional motion compensation with OOB check is not applied.

第11A-C圖概念性地說明具有邊界外(OOB)檢查的水平環繞運動補償。當前圖片1100中的當前塊1105通過使用運動向量MV0和MV1的雙向預測來編解碼。第11A圖展示指向參考圖片1110中的參考塊1120的MV0。第11B圖展示指向L1參考圖片1111中的參考塊1121的MV1。FIG. 11A-C conceptually illustrates horizontal surround motion compensation with out-of-bounds (OOB) checking. The current block 1105 in the current picture 1100 is encoded and decoded by bidirectional prediction using motion vectors MV0 and MV1. FIG. 11A shows MV0 pointing to reference block 1120 in reference picture 1110. FIG. 11B shows MV1 pointing to reference block 1121 in L1 reference picture 1111.

如圖所示,參考塊1120的一部分1130是OOB,因為它位於參考圖片1110的投影域的左(或右)邊界之外。代替重複填充,用於參考塊1120的OOB部分1130的樣本通過水平環繞運動補償生成,具體地通過從位於參考圖片1110內的球形鄰近部分1131向投影域中的右邊界複製。參考塊1121的一部分1140是OOB,因為它位於L1參考圖片1111的投影域的頂部(或底部)邊界之外。在一些實施例中,應用重複填充來生成OOB部分1140的樣本。As shown, a portion 1130 of the reference block 1120 is OOB because it is outside the left (or right) boundary of the projection domain of the reference image 1110. Instead of repeat padding, samples for the OOB portion 1130 of the reference block 1120 are generated by horizontal orbital motion compensation, specifically by copying from a spherical neighbor 1131 located within the reference image 1110 to the right boundary in the projection domain. A portion 1140 of the reference block 1121 is OOB because it is outside the top (or bottom) boundary of the projection domain of the L1 reference image 1111. In some embodiments, repeat padding is applied to generate samples for the OOB portion 1140.

第11C圖圖示了基於ERP視訊的OOB和非OOB樣本生成雙向運動補償預測子1135。對於一些實施例,上面第I部分中描述的方法可以用於基於參考塊1120和1121以及它們各自的OOB狀態來生成當前塊1110的預測子1135。對於一些實施例,由參考塊1120的OOB部分1130的水平環繞生成的樣本不被認為是OOB樣本。FIG. 11C illustrates the generation of a bidirectional motion compensated predictor 1135 based on OOB and non-OOB samples of ERP video. For some embodiments, the method described in Section I above may be used to generate a predictor 1135 for the current block 1110 based on reference blocks 1120 and 1121 and their respective OOB states. For some embodiments, samples generated by the horizontal wrapping of the OOB portion 1130 of the reference block 1120 are not considered OOB samples.

如圖所示,在不對應於OOB樣本的位置處,來自參考塊1120的非OOB樣本(包括水平環繞樣本1130)和來自參考塊1121的非OOB樣本被混合(通過例如,加權平均)來為預測子1135生成預測樣本。另一方面,在對應於OOB樣本的樣本位置(例如,OOB部分1140中的位置),來自參考塊1120的非OOB樣本(包括水平環繞樣本1130)被使用(因此OOB樣本不包括在預測子1135中)。As shown, at positions not corresponding to OOB samples, non-OOB samples from reference block 1120 (including horizontal surround samples 1130) and non-OOB samples from reference block 1121 are mixed (by, for example, weighted averaging) to generate prediction samples for predictor 1135. On the other hand, at sample positions corresponding to OOB samples (e.g., positions in OOB portion 1140), non-OOB samples from reference block 1120 (including horizontal surround samples 1130) are used (thus, OOB samples are not included in predictor 1135).

B.B. 幀內預測塊的Prediction block within the frame OOBOOB 檢查Check

在一些實施例中,OOB檢查被應用於幀內預測的塊。在一些實施例中,如果樣本是由幀內塊中的填充的L鄰近(L-neighbor)(例如,在圖片邊界處)生成的,則視訊編解碼器可以將該樣本視為OOB。第12圖概念性地說明使用OOB參考樣本的幀內預測。如圖所示,當前塊1210是幀內預測的。當前塊的上/頂部L鄰近(upper/top L-neighbor)1220的樣本是真實重構的樣本,而當前塊的左側L鄰近1222的樣本是填充樣本。塊1210由對角線方向進行幀內預測。上三角1230中的樣本是非OOB而下三角1232中的樣本是OOB樣本。In some embodiments, OOB check is applied to blocks predicted intra-frame. In some embodiments, if a sample is generated by a padded L-neighbor in an intra-frame block (e.g., at a picture boundary), the video codec may treat the sample as OOB. FIG. 12 conceptually illustrates intra-frame prediction using OOB reference samples. As shown, the current block 1210 is intra-frame predicted. Samples of the upper/top L-neighbor 1220 of the current block are true reconstructed samples, while samples of the left L-neighbor 1222 of the current block are padded samples. Block 1210 is intra-frame predicted from a diagonal direction. The samples in the upper triangle 1230 are non-OOB and the samples in the lower triangle 1232 are OOB samples.

C.C. 用於具有解碼器側For use with decoder side MVMV 細化的塊的Thinned blocks OOBOOB

在一些實施例中,OOB檢查被應用於DMVR子塊(或編解碼塊級MP-DMVR,或子塊級MP-DMVR)。具體來說,如果L0和/或L1參考圖片中的搜索點(例如,初始MV和MV偏移量)是OOB,則該搜索點被指定為不可用或相對於非OOB搜索點被取消優先級(例如,通過應用額外的成本或預定義大成本)。在一些實施例中,如果所有搜索點和初始MV都是OOB,則細化的MV被設置為初始MV。In some embodiments, OOB checking is applied to DMVR sub-blocks (or codec-block-level MP-DMVR, or sub-block-level MP-DMVR). Specifically, if a search point (e.g., initial MV and MV offset) in the L0 and/or L1 reference pictures is OOB, the search point is designated as unavailable or deprioritized relative to non-OOB search points (e.g., by applying an additional cost or a predefined large cost). In some embodiments, if all search points and the initial MV are OOB, the refined MV is set to the initial MV.

在一些實施例中,即使初始MV是OOB,視訊編解碼器仍然將初始MV與其他非OOB搜索點進行比較。視訊編碼器不會將初始MV設置為不可用,或將初始MV設置為優先級低於非OOB搜索點,或添加額外成本,或應用預定義的大成本。In some embodiments, even if the initial MV is OOB, the video codec still compares the initial MV with other non-OOB search points. The video codec does not set the initial MV as unavailable, or set the initial MV to a lower priority than non-OOB search points, or add additional costs, or apply a predefined large cost.

D.D. 參考圖片中子塊的The sub-blocks in the reference image OOBOOB

在一些實施例中,當雙向預測使用L0和/或L1參考圖片中的子塊時,如果子塊中的樣本是OOB,則L0或L1參考圖片中的子塊是OOB。在一些實施例中,如果子塊中的OOB樣本的數量大於預定義的閾值,或者如果子塊中的OOB樣本的比率大於預定義的比率,或者如果子塊中的所有樣本是OOB,那麼子塊是OOB。在一些實施例中,如果L0和L1參考圖片中的子塊都是OOB,則搜索點時OOB,或者L0或L1參考圖片中的任何一個子塊是OOB。In some embodiments, when bidirectional prediction uses a subblock in L0 and/or L1 reference pictures, a subblock in L0 or L1 reference pictures is OOB if samples in the subblock are OOB. In some embodiments, a subblock is OOB if the number of OOB samples in the subblock is greater than a predefined threshold, or if the ratio of OOB samples in the subblock is greater than a predefined ratio, or if all samples in the subblock are OOB. In some embodiments, a search point is OOB if both subblocks in L0 and L1 reference pictures are OOB, or any one of the subblocks in L0 or L1 reference pictures is OOB.

E.   GPME.   GPM 編碼塊的Coded Block OOBOOB

在一些實施例中,OOB檢查被應用於GPM編解碼塊的兩個(或更多個)分區(通過例如GPM-TM、GPM-MMVD、GPM-INTER-INTRA、GPM-INTRA-INTRA)。具體地,可以對2個幀間分區,或1個幀間分區和1個幀內分區,或2個幀內分區進行OOB檢查。然後根據以下內容將GPM混合應用於OOB檢查的結果: 若P i,j part0為OOB 且P i,j part1為非OOB,則P i,j final= P i,j part1否則如果 P i,j part0為非OOB且P i,j part1為OOB, 則P i,j final= P i,j part0否則P i,j final= GPM_blending (P i,j part0, P i,j part1) In some embodiments, OOB check is applied to two (or more) partitions of a GPM codec block (via, for example, GPM-TM, GPM-MMVD, GPM-INTER-INTRA, GPM-INTRA-INTRA). Specifically, OOB check may be performed on 2 inter-frame partitions, or 1 inter-frame partition and 1 intra-frame partition, or 2 intra-frame partitions. GPM blending is then applied to the result of the OOB check according to the following: If P i,j part0 is OOB and P i,j part1 is non-OOB, then P i,j final = P i,j part1 Otherwise If P i,j part0 is non-OOB and P i,j part1 is OOB, then P i,j final = P i,j part0 Otherwise P i,j final = GPM_blending (P i,j part0 , P i,j part1 )

在一些實施例中,OOB檢查不應用於幀內部分而僅應用於幀間部分,使得幀內部分的OOB檢查結果總是非OOB。可以根據以下計算具有一個幀間部分和一個幀內部分的GPM的GPM混合: 若P i,j partX為OOB且partX 為幀間且part 1-X為幀內,則 P i,j final= P i,j part(1-X)否則P i,j final= GPM_blending (P i,j part0, P i,j part1) In some embodiments, OOB check is not applied to intra-frame parts but only to inter-frame parts, so that the OOB check result of intra-frame parts is always non-OOB. The GPM blending of a GPM with one inter-frame part and one intra-frame part can be calculated as follows: If Pi ,j partX is OOB and partX is inter-frame and part 1-X is intra-frame, then Pi ,j final = Pi ,j part(1-X) otherwise Pi ,j final = GPM_blending (Pi ,j part0 , Pi ,j part1 )

如果幀間部分的樣本是OOB,則幀內部分的樣本被用作預測子。否則,對兩個部分的樣本應用混合。有兩個幀內部分的GPM的GPM 混合與 GPM 與有兩個幀間部分的 GPM的 GPM混合相同。在一些實施例中,如果幀間部分的幀間預測信號是雙向預測,則OOB檢查結果可以從L0參考的OOB結果和L1參考的OOB結果中得到: 若幀間部分為雙向預測, P i,j Inter的OOB= P i,j Inter,L0的OOB & P i,j Inter,L1的OOB 否則若幀間部分為雙向預測 (替代方法): P i,j Inter的OOB = P i,j Inter,L0的OOB | P i,j Inter,L1的OOB If the samples of the inter-frame part are OOB, the samples of the intra-frame part are used as predictors. Otherwise, mixing is applied to the samples of the two parts. The GPM mixing of the GPM with two intra-frame parts is the same as the GPM mixing of the GPM with two inter-frame parts. In some embodiments, if the inter-frame prediction signal of the inter-frame part is bidirectional prediction, the OOB check result can be obtained from the OOB result of L0 reference and the OOB result of L1 reference: If the inter-frame part is bidirectional prediction, P i,j Inter 's OOB = P i, j Inter,OOB of L0 & P i,j Inter,OOB of L1 Otherwise if the inter-frame part is bidirectional prediction (alternative method): P i,j Inter 's OOB = P i,j Inter,OOB of L0 | P i,j Inter,OOB of L1

F.   CIIPF.   CIIP 編解碼塊的Codec Block OOBOOB

在一些實施例中,OOB檢查被應用於CIIP的幀間部分和幀內部分,然後根據以下對OOB檢查的結果應用CIIP混合: 若幀間部分是單向預測 (L0): P i,j Inter的OOB = P i,j Inter,L0的OOB 若幀間部分是單向預測 (L1): P i,j Inter的OOB = P i,j Inter,L1的OOB 若幀間部分是雙向預測: P i,j Inter的OOB = P i,j Inter,L0的OOB & P i,j Inter,L1的OOB 或若幀間部分是雙向預測 (替代方法): P i,j Inter的OOB = P i,j Inter,L0的OOB | P i,j Inter,L1的OOB In some embodiments, OOB check is applied to the inter-frame part and the intra-frame part of CIIP, and then CIIP mixing is applied according to the following results of the OOB check: If the inter-frame part is unidirectional prediction (L0): OOB of P i,j Inter = OOB of P i, j Inter,L0 If the inter-frame part is unidirectional prediction (L1): OOB of P i,j Inter = OOB of P i,j Inter,L1 If the inter-frame part is bidirectional prediction: OOB of P i,j Inter = OOB of P i,j Inter,L0 & OOB of P i,j Inter,L1 Or if the inter-frame part is bidirectional prediction (alternative method): OOB of P i,j Inter = OOB of P i,j Inter,L0 | OOB of P i,j Inter,L1

隨後: 若P i,j Inter為OOB 且P i,j Intra為非OOB P i,j final= P i,j Intra否則若 P i,j Inter為非OOB且P i,j Intra為 OOB P i,j final= P i,j Inter否則 P i,j final= CIIP_blending (P i,j Inter, P i,j Intra) Then: if P i,j Inter is OOB and P i,j Intra is non-OOB P i,j final = P i,j Intra else if P i,j Inter is non-OOB and P i,j Intra is OOB P i,j final = P i,j Inter else P i,j final = CIIP_blending (P i,j Inter , P i,j Intra )

在一些實施例中,OOB檢查不應用於幀內部分而僅應用於幀間部分,即幀內部分的OOB檢查結果總是非OOB。則具有一個幀間部分和一個幀內部分的CIIP的CIIP 混合根據以下內容進行: 若P i,j Inter為OOB P i,j final= P i,j Intra否則 P i,j final= CIIP_blending (P i,j Inter, P i,j Intra) In some embodiments, OOB check is not applied to the intra-frame part but only to the inter-frame part, i.e., the OOB check result of the intra-frame part is always non-OOB. Then CIIP blending of a CIIP with one inter-frame part and one intra-frame part is performed according to the following: If Pi ,j Inter is OOB Pi ,j final = Pi ,j Intra Otherwise Pi ,j final = CIIP_blending (Pi ,j Inter , Pi ,j Intra )

如果幀間部分的樣本是OOB,則使用幀內部分的對應樣本作為預測子,否則將CIIP混合應用於兩個CIIP部分的樣本。If the sample in the inter-frame part is OOB, the corresponding sample in the intra-frame part is used as the predictor, otherwise the CIIP blending is applied to the samples in the two CIIP parts.

G.G. 用於模板匹配(For template matching ( TemplateMatchingTemplateMatching )的)of OOBOOB

在一些實施例中,OOB檢查被應用於模板匹配(TM)或ARMC-TM的模板區域,然後對OOB檢查的結果的應用混合。例如,視訊編解碼器可以基於最小化與參考塊鄰近的參考模板(例如,參考模板630)和與當前塊鄰近的當前模板(例如,當前模板620)之間的TM匹配成本來執行運動向量細化。TM成本可以基於參考模板和/或當前模板的OOB檢查來計算。例如,參考模板中的OOB樣本將不會用於確定TM成本。In some embodiments, OOB check is applied to the template region of template matching (TM) or ARMC-TM, and then the application of the results of the OOB check is mixed. For example, the video codec can perform motion vector refinement based on minimizing the TM matching cost between a reference template (e.g., reference template 630) adjacent to the reference block and a current template (e.g., current template 620) adjacent to the current block. The TM cost can be calculated based on the OOB check of the reference template and/or the current template. For example, OOB samples in the reference template will not be used to determine the TM cost.

H.   OBMCH.   OBMC of OOBOOB

在一些實施例中,OOB檢查被應用於重疊塊運動補償(overlappedblockmotioncompensation,簡寫為OBMC),然後將額外的幀間預測與OOB檢查的結果混合。如果OBMC幀間預測信號是OOB,則OBMC幀間預測信號不與原始預測信號混合。否則,如果OBMC幀間預測信號不是OOB,則OBMC幀間預測信號與原始預測信號混合。在一些實施例中,如果附加幀間預測信號是雙向預測,則OOB檢查結果可以根據以下內容從L0預測(或參考塊)的OOB結果和L1預測(或參考塊)的OOB結果導出: 若幀間部分是雙向預測: P i,j Inter的OOB = P i,j Inter,L0的OOB & P i,j Inter,L1的OOB 否則若幀間部分為雙向預測 (替代方法): P i,j Inter的OOB = P i,j Inter,L0的OOB | P i,j Inter,L1的OOB In some embodiments, OOB check is applied to overlapped block motion compensation (OBMC), and then the additional inter-frame prediction is mixed with the result of the OOB check. If the OBMC inter-frame prediction signal is OOB, the OBMC inter-frame prediction signal is not mixed with the original prediction signal. Otherwise, if the OBMC inter-frame prediction signal is not OOB, the OBMC inter-frame prediction signal is mixed with the original prediction signal. In some embodiments, if the additional inter-frame prediction signal is a bidirectional prediction, the OOB check result can be derived from the OOB result of the L0 prediction (or reference block) and the OOB result of the L1 prediction (or reference block) according to the following: If the inter-frame part is bidirectional prediction: OOB of P i,j Inter = OOB of P i,j Inter,L0 & OOB of P i,j Inter,L1 Otherwise if the inter-frame part is bidirectional prediction (alternative method): OOB of P i,j Inter = OOB of P i,j Inter,L0 | OOB of P i,j Inter,L1

II .    MHP.    MHP of OOBOOB

在一些實施例中,視訊編解碼器將OOB檢查應用於多假設預測(MHP),然後將額外的幀間預測信號/假設與OOB檢查的結果相加。如果額外的幀間預測信號是OOB,則額外的幀間預測信號不被添加到原始預測信號。否則,如果額外的幀間預測信號不是OOB,則額外的幀間預測信號被添加到原始預測信號。在一些實施例中,如果額外的幀間預測信號是雙向預測,則OOB檢查結果可以根據以下從L0預測(參考塊)的OOB結果和L1預測(參考塊)的OOB結果導出: 若幀間部分為雙向預測: P i,j Inter的OOB = P i,j Inter,L0的OOB & P i,j Inter,L1的OOB 否則若幀間部分為雙向預測 (替代方法): P i,j Inter的OOB = P i,j Inter,L0的OOB | P i,j Inter,L1的OOB In some embodiments, the video codec applies an OOB check to a multiple hypothesis prediction (MHP) and then adds the additional inter-frame prediction signal/hypothesis to the result of the OOB check. If the additional inter-frame prediction signal is OOB, the additional inter-frame prediction signal is not added to the original prediction signal. Otherwise, if the additional inter-frame prediction signal is not OOB, the additional inter-frame prediction signal is added to the original prediction signal. In some embodiments, if the additional inter-frame prediction signal is a bidirectional prediction, the OOB check result can be derived from the OOB result of the L0 prediction (reference block) and the OOB result of the L1 prediction (reference block) as follows: If the inter-frame part is bidirectional prediction: OOB of P i,j Inter = OOB of P i,j Inter,L0 & OOB of P i,j Inter,L1 Otherwise if the inter-frame part is bidirectional prediction (alternative method): OOB of P i,j Inter = OOB of P i,j Inter,L0 | OOB of P i,j Inter,L1

前述提出的方法可以在編碼器和/或解碼器中實現。例如,所提出的方法可以在編碼器的幀間預測模塊和/或幀內塊複製預測模塊和/或解碼器的幀間預測模塊(和/或幀內塊複製預測模塊)中實現。 IV 、示例視訊編碼器 The aforementioned proposed method can be implemented in an encoder and/or a decoder. For example, the proposed method can be implemented in an inter-frame prediction module and/or an intra-frame block copy prediction module of an encoder and/or an inter-frame prediction module (and/or an intra-frame block copy prediction module) of a decoder. IV . Example Video Encoder

第13圖示出可實施預測編碼的示例視訊編碼器1300。如圖所示,視訊編碼器1300從視訊源1305接收輸入視訊訊號以及將訊號編碼為位元流1395。視訊編碼器1300具有用於對來自視訊源1305的訊號進行編碼的若干組件或模組,至少包括選自以下的一些組件:變換模組1310、量化模組1311、逆量化模組1314、逆變換模組1315、圖片內估計模組1320、幀內預測模組1325、運動補償模組1330、運動估計模組1335、環路濾波器1345、重建圖片緩衝器1350、MV緩衝器1365、MV預測模組1375和熵編碼器1390。運動補償模組1330和運動估計模組1335是幀間預測模組1340的一部分。FIG. 13 shows an example video encoder 1300 that may implement predictive coding. As shown, the video encoder 1300 receives an input video signal from a video source 1305 and encodes the signal into a bit stream 1395. The video encoder 1300 has several components or modules for encoding a signal from a video source 1305, including at least some components selected from the following: a transform module 1310, a quantization module 1311, an inverse quantization module 1314, an inverse transform module 1315, an intra-picture estimation module 1320, an intra-frame prediction module 1325, a motion compensation module 1330, a motion estimation module 1335, a loop filter 1345, a reconstructed picture buffer 1350, an MV buffer 1365, an MV prediction module 1375, and an entropy encoder 1390. The motion compensation module 1330 and the motion estimation module 1335 are part of the inter-frame prediction module 1340.

在一些實施例中,模組1310-1390是由計算設備或電子裝置的一個或多個處理單元(例如,處理器)執行的軟體指令模組。在一些實施例中,模組1310-1390是由電子裝置的一個或多個積體電路(integratedcircuit,簡稱IC)實現的硬體電路模組。儘管模組1310-1390被示為單獨的模組,但一些模組可以組合成單個模組。In some embodiments, modules 1310-1390 are software instruction modules executed by one or more processing units (e.g., processors) of a computing device or electronic device. In some embodiments, modules 1310-1390 are hardware circuit modules implemented by one or more integrated circuits (ICs) of an electronic device. Although modules 1310-1390 are shown as separate modules, some modules may be combined into a single module.

視訊源1305提供原始視訊訊號,其呈現每個視訊幀的像素資料而不進行壓縮。減法器1308計算視訊源1305的原始視訊像素資料與來自運動補償模組1330或幀內預測模組1325的預測像素資料1313之間的差值。變換模組1310轉換差值(或殘差像素資料或殘差訊號1308)轉換成變換係數(例如,藉由執行離散余弦變換或DCT)。量化模組1311將變換係數量化成量化資料(或量化係數)1312,其由熵編碼器1390編碼成位元流1395。The video source 1305 provides a raw video signal that presents pixel data for each video frame without compression. The subtractor 1308 calculates the difference between the raw video pixel data of the video source 1305 and the predicted pixel data 1313 from the motion compensation module 1330 or the intra-frame prediction module 1325. The transform module 1310 transforms the difference (or residual pixel data or residual signal 1308) into transform coefficients (e.g., by performing a discrete cosine transform or DCT). The quantization module 1311 quantizes the transform coefficients into quantized data (or quantized coefficients) 1312, which are encoded into a bit stream 1395 by the entropy encoder 1390.

逆量化模組1314對量化資料(或量化係數)1312進行去量化以獲得變換係數,以及逆變換模組1315對變換係數執行逆變換以產生重建殘差1319。重建殘差1319與預測像素資料1313相加一起產生重建的像素資料1317。在一些實施例中,重建的像素資料1317被臨時存儲在線緩衝器(linebuffer未示出)中用於圖片內預測和空間MV預測。重建像素由環路濾波器1345濾波並被存儲在重建圖片緩衝器1350中。在一些實施例中,重建圖片緩衝器1350是視訊編碼器1300外部的記憶體。在一些實施例中,重建圖片緩衝器1350是視訊編碼器1300內部的記憶體。The inverse quantization module 1314 dequantizes the quantized data (or quantized coefficients) 1312 to obtain transform coefficients, and the inverse transform module 1315 performs inverse transform on the transform coefficients to generate reconstruction residues 1319. The reconstruction residues 1319 are added to the predicted pixel data 1313 to generate reconstructed pixel data 1317. In some embodiments, the reconstructed pixel data 1317 is temporarily stored in a line buffer (linebuffer not shown) for intra-picture prediction and spatial MV prediction. The reconstructed pixels are filtered by a loop filter 1345 and stored in a reconstructed picture buffer 1350. In some embodiments, the reconstructed picture buffer 1350 is a memory outside the video encoder 1300. In some embodiments, the reconstructed picture buffer 1350 is a memory inside the video encoder 1300.

圖片內估計模組1320基於重建的像素資料1317執行幀內預測以產生幀內預測資料。幀內預測資料被提供至熵編碼器1390以被編碼成位元流1395。幀內預測資料還被幀內預測模組1325用來產生預測像素資料1313。The intra-picture estimation module 1320 performs intra-frame prediction based on the reconstructed pixel data 1317 to generate intra-frame prediction data. The intra-frame prediction data is provided to the entropy encoder 1390 to be encoded into a bit stream 1395. The intra-frame prediction data is also used by the intra-frame prediction module 1325 to generate the predicted pixel data 1313.

運動估計模組1335藉由產生MV以參考存儲在重建圖片緩衝器1350中的先前解碼幀的像素資料來執行幀間預測。這些MV被提供至運動補償模組1330以產生預測像素資料。The motion estimation module 1335 performs inter-frame prediction by generating MVs to refer to pixel data of previously decoded frames stored in the reconstructed picture buffer 1350. These MVs are provided to the motion compensation module 1330 to generate predicted pixel data.

視訊編碼器1300不是對位元流中的完整實際MV進行編碼,而是使用MV預測來生成預測的MV,以及用於運動補償的MV與預測的MV之間的差值被編碼為殘差運動資料並存儲在位元流1395。Instead of encoding the complete actual MV in the bitstream, the video encoder 1300 uses MV prediction to generate a predicted MV, and the difference between the MV used for motion compensation and the predicted MV is encoded as residual motion data and stored in the bitstream 1395.

基於為編碼先前視訊幀而生成的參考MV,即用於執行運動補償的運動補償MV,MV預測模組1375生成預測的MV。MV預測模組1375從MV緩衝器1365中獲取來自先前視訊幀的參考MV。視訊編碼器1300將對當前視訊幀生成的MV存儲在MV緩衝器1365中作為用於生成預測MV的參考MV。Based on the reference MV generated for encoding the previous video frame, i.e., the motion compensation MV for performing motion compensation, the MV prediction module 1375 generates a predicted MV. The MV prediction module 1375 obtains the reference MV from the previous video frame from the MV buffer 1365. The video encoder 1300 stores the MV generated for the current video frame in the MV buffer 1365 as a reference MV for generating the predicted MV.

MV預測模組1375使用參考MV來創建預測的MV。預測的MV可以藉由空間MV預測或時間MV預測來計算。預測的MV和當前幀的運動補償MV(MCMV)之間的差值(殘差運動資料)由熵編碼器1390編碼到位元流1395中。The MV prediction module 1375 uses the reference MV to create a predicted MV. The predicted MV can be calculated by spatial MV prediction or temporal MV prediction. The difference (residual motion data) between the predicted MV and the motion compensation MV (MCMV) of the current frame is encoded by the entropy encoder 1390 into the bit stream 1395.

熵編碼器1390藉由使用諸如上下文適應性二進位算術編解碼(context-adaptivebinaryarithmeticcoding,簡稱CABAC)或霍夫曼編碼的熵編解碼技術將各種參數和資料編碼到位元流1395中。熵編碼器1390將各種報頭元素、標誌連同量化的變換係數1312和作為語法元素的殘差運動資料編碼到位元流1395中。位元流1395繼而被存儲在存放裝置中或藉由比如網路等通訊媒介傳輸到解碼器。The entropy encoder 1390 encodes various parameters and data into the bit stream 1395 by using entropy coding and decoding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman coding. The entropy encoder 1390 encodes various header elements, flags along with quantized transform coefficients 1312 and residual motion data as syntax elements into the bit stream 1395. The bit stream 1395 is then stored in a storage device or transmitted to a decoder via a communication medium such as a network.

環路濾波器1345對重建的像素資料1317執行濾波或平滑操作以減少編解碼的偽影,特別是在像素塊的邊界處。在一些實施例中,環路濾波器1345執行的濾波或平滑操作包括去塊濾波(deblockfilter,簡寫為DBF)、樣本適應性偏移(sampleadaptiveoffset,簡稱SAO)和/或適應性環路濾波(adaptiveloopfilter,簡稱ALF)。The loop filter 1345 performs filtering or smoothing operations on the reconstructed pixel data 1317 to reduce encoding and decoding artifacts, especially at the boundaries of pixel blocks. In some embodiments, the filtering or smoothing operations performed by the loop filter 1345 include deblocking filter (DBF), sample adaptive offset (SAO) and/or adaptive loop filter (ALF).

第14圖解說了實現預測編解碼的越界檢查的視訊編碼器1300的部分。具體地,該圖圖示了視訊編碼器1300的運動補償模塊1330的組件。FIG. 14 illustrates a portion of a video encoder 1300 that implements out-of-bounds checking for predictive coding. Specifically, the figure shows the components of a motion compensation module 1330 of the video encoder 1300.

如圖所示,運動補償模塊1330具有候選選擇器1410,其從MV緩衝器1365和幀內預測模塊1325中選擇塊向量(包括運動向量和幀內預測模式)。該選擇由運動估計模塊1335控制。所選擇的塊向量由OOB檢查模塊1430檢查,其確定由塊向量識別的參考塊是否越界。所選擇的塊向量也被提供給預測子生成器模塊1420。As shown, the motion compensation module 1330 has a candidate selector 1410, which selects a block vector (including a motion vector and an intra-frame prediction mode) from the MV buffer 1365 and the intra-frame prediction module 1325. The selection is controlled by the motion estimation module 1335. The selected block vector is checked by the OOB check module 1430, which determines whether the reference block identified by the block vector is out of bounds. The selected block vector is also provided to the predictor generator module 1420.

預測子生成器模塊1420通過從重構圖片緩衝器1350獲取樣本來生成當前塊的預測子或預測塊作為預測的像素資料1313。運動估計模塊1335為當前塊選擇一個或多個預測編解碼工具(例如,雙向預測、GPM、CIIP、MHP、幀內預測、IBC等),並且預測子生成器模塊1420基於所選擇的預測工具生成預測子。運動估計模塊1335還向熵編碼器1390提供預測工具選擇以在位元流1395中傳訊。The predictor generator module 1420 generates a predictor or prediction block for the current block by obtaining samples from the reconstructed picture buffer 1350 as the predicted pixel data 1313. The motion estimation module 1335 selects one or more prediction codec tools (e.g., bidirectional prediction, GPM, CIIP, MHP, intra-frame prediction, IBC, etc.) for the current block, and the predictor generator module 1420 generates a predictor based on the selected prediction tool. The motion estimation module 1335 also provides the prediction tool selection to the entropy encoder 1390 for signaling in the bitstream 1395.

預測子生成器模塊1420還使用來自OOB檢查模塊1430的OOB檢查結果來確定在執行混合以生成預測子時是否排除由所選塊向量標識的某些參考樣本。例如,如果當前圖片是ERP圖片並且由塊向量標識的參考塊具有OOB樣本,則如果參考塊是在左邊界或右邊界的OOB,預測器生成器模塊1420可以使用從重構圖片緩衝器1650獲取的水平環繞樣本用於混合,或者如果參考塊是在頂部或底部邊界的OOB,則將OOB樣本排除在混合之外。預測子生成器模塊1420還可以使用OOB結果來確定是否將樣本從BM成本計算或TM成本計算中排除。The predictor generator module 1420 also uses the OOB check result from the OOB check module 1430 to determine whether to exclude certain reference samples identified by the selected block vector when performing blending to generate the predictor. For example, if the current picture is an ERP picture and the reference block identified by the block vector has OOB samples, the predictor generator module 1420 can use the horizontal surround samples obtained from the reconstructed picture buffer 1650 for blending if the reference block is OOB at the left or right boundary, or exclude the OOB samples from blending if the reference block is OOB at the top or bottom boundary. The predictor generator module 1420 can also use the OOB result to determine whether to exclude the sample from the BM cost calculation or the TM cost calculation.

第15圖概念性地說明了使用越界檢查用於像素塊的預測編碼的過程1500。在一些實施例中,實現編碼器1300的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程1500。在一些實施例中,實現編碼器1300的電子設備執行過程1500。FIG. 15 conceptually illustrates a process 1500 for predictive encoding of a pixel block using out-of-bounds checking. In some embodiments, one or more processing units (e.g., processors) of a computing device implementing the encoder 1300 perform the process 1500 by executing instructions stored in a computer-readable medium. In some embodiments, an electronic device implementing the encoder 1300 performs the process 1500.

編碼器(在塊1510)接收要被編碼為視訊的當前圖片中的當前像素塊的資料。編碼器(在塊1520處)基於當前塊的第一塊向量識別第一參考圖片中的第一參考塊。編碼器(在塊1530)基於當前塊的第二塊向量識別第二參考圖片中的第二參考塊。第一和第二塊向量可以是運動向量。在一些實施例中,第一參考圖片或第二參考圖片是當前圖片,第一塊向量或第二塊向量是幀內預測方向或模式。The encoder receives (at block 1510) data for a current pixel block in a current picture to be encoded as a video. The encoder identifies (at block 1520) a first reference block in a first reference picture based on a first block vector of the current block. The encoder identifies (at block 1530) a second reference block in a second reference picture based on a second block vector of the current block. The first and second block vectors may be motion vectors. In some embodiments, the first reference picture or the second reference picture is the current picture, and the first block vector or the second block vector is an intra-frame prediction direction or mode.

編碼器(在塊1540)對第一和第二參考塊執行越界(OOB)檢查。編碼器(在塊1550處)基於第一和第二參考塊並基於OOB檢查生成當前塊的預測子。在一些實施例中,當第一參考塊的樣本是OOB時,不對水平方向和垂直方向中的至少一個方向應用雙向運動補償。在一些實施例中,當第一參考塊的樣本在第一參考圖片的左邊界或右邊界上是OOB時,或者當第一參考塊的樣本在第一參考圖片的頂部邊界或底部邊界上是OOB時,不應用雙向運動補償。在一些實施例中,當第一參考塊的樣本是非OOB樣本時,通過將第一參考塊的非OOB樣本與第二參考塊的對應非OOB樣本混合來生成對應的預測樣本。當第一參考塊的樣本為OOB樣本時,使用第二參考塊的對應非OOB樣本生成對應的預測樣本而不進行混合。The encoder (at block 1540) performs an out-of-bounds (OOB) check on the first and second reference blocks. The encoder (at block 1550) generates a predictor for the current block based on the first and second reference blocks and based on the OOB check. In some embodiments, when the sample of the first reference block is OOB, bidirectional motion compensation is not applied for at least one of the horizontal direction and the vertical direction. In some embodiments, when the sample of the first reference block is OOB on the left or right boundary of the first reference picture, or when the sample of the first reference block is OOB on the top boundary or the bottom boundary of the first reference picture, bidirectional motion compensation is not applied. In some embodiments, when the samples of the first reference block are non-OOB samples, the corresponding prediction samples are generated by mixing the non-OOB samples of the first reference block with the corresponding non-OOB samples of the second reference block. When the samples of the first reference block are OOB samples, the corresponding prediction samples are generated using the corresponding non-OOB samples of the second reference block without mixing.

在一些實施例中,視訊可以是等距矩形投影(ERP)格式的360度視訊。當第一參考塊的樣本在第一參考圖片的左邊界或右邊界上是OOB時,通過將來自第一參考圖片的水平環繞樣本與來自第二參考圖片中的第二參考塊的相應非OOB樣本混合來生成相應的預測子樣本。當第一參考塊的樣本在第一參考圖片的頂部或底部邊界上是OOB時,通過使用來自第二參考塊的對應非OOB樣本而不混合來生成對應的預測子樣本。In some embodiments, the video may be a 360-degree video in an equirectangular projection (ERP) format. When samples of a first reference block are OOB on a left or right border of a first reference picture, a corresponding prediction sub-sample is generated by blending horizontal surround samples from the first reference picture with corresponding non-OOB samples from a second reference block in a second reference picture. When samples of the first reference block are OOB on a top or bottom border of the first reference picture, a corresponding prediction sub-sample is generated by using corresponding non-OOB samples from a second reference block without blending.

在一些實施例中,當前塊被劃分成多個幾何分區,第一參考塊用於生成第一幾何分區的第一預測子並且第二參考塊用於生成第二幾何分區的第二預測子。通過沿著第一和第二幾何分區之間的邊界混合第一和第二預測子的樣本來生成對應的預測子樣本,其中從混合中排除第一和第二預測子的越界樣本。In some embodiments, when the current block is divided into a plurality of geometric partitions, a first reference block is used to generate a first predictor for the first geometric partition and a second reference block is used to generate a second predictor for the second geometric partition. The corresponding predictor samples are generated by blending samples of the first and second predictors along a boundary between the first and second geometric partitions, wherein out-of-bounds samples of the first and second predictors are excluded from the blend.

在一些實施例中,所生成的預測子是組合的幀間幀內預測(CIIP),其中第一參考塊提供幀間預測樣本並且第二參考塊提供幀內預測樣本。在一些實施例中,使用MHP編解碼當前塊,使得編碼器對第三參考塊執行額外的OOB檢查,並且進一步基於第三參考塊和額外的OOB檢查來生成預測子。In some embodiments, the generated predictor is a combined inter-frame intra-frame prediction (CIIP), wherein a first reference block provides inter-frame prediction samples and a second reference block provides intra-frame prediction samples. In some embodiments, the current block is encoded using MHP, so that the encoder performs an additional OOB check on a third reference block, and further generates a predictor based on the third reference block and the additional OOB check.

在一些實施例中,改進第一塊向量以最小化鄰近第一參考塊的參考模板和鄰近當前塊的當前模板之間的計算的模板匹配成本,其中參考模板的OOB樣本被排除在成本計算之外.在一些實施例中,改進第一和第二塊向量以最小化基於第一和第二參考塊的雙邊匹配成本,其中第一和第二參考塊中的OOB樣本被排除在成本計算之外。In some embodiments, the first block vector is improved to minimize a calculated template matching cost between a reference template adjacent to the first reference block and a current template adjacent to the current block, wherein OOB samples of the reference template are excluded from the cost calculation. In some embodiments, the first and second block vectors are improved to minimize a bilateral matching cost based on the first and second reference blocks, wherein OOB samples in the first and second reference blocks are excluded from the cost calculation.

編碼器(在塊1560處)通過使用生成的預測子來編碼當前塊以產生預測殘差。 V 、示例視訊解碼器 The encoder (at block 1560) encodes the current block using the generated predictor to produce a prediction residual. V. Example Video Decoder

在一些實施例中,編碼器可以發送(或生成)位元流中的一個或多個語法元素,使得解碼器可以從位元流中解析該一個或多個語法元素。In some embodiments, an encoder may send (or generate) one or more syntax elements in a bitstream so that a decoder may parse the one or more syntax elements from the bitstream.

第16圖示出可實施預測編解碼的示例視訊解碼器1600。如圖所示,視訊解碼器1600是圖像解碼或視訊解碼電路,該圖像解碼或視訊解碼電路接收位元流1695以及將位元流的內容解碼為視訊幀的像素資料以供顯示。視訊解碼器1600具有用於解碼位元流1695的若干組件或模組,包括選自以下的組件:逆量化模組1611、逆變換模組1610、幀內預測模組1625、運動補償模組1630、環路濾波器的1645、解碼圖片緩衝器1650、MV緩衝器1665、MV預測模組1675和解析器1690。運動補償模組1630是幀間預測模組1640的一部分。FIG. 16 shows an example video decoder 1600 that can implement predictive coding. As shown, the video decoder 1600 is an image decoding or video decoding circuit that receives a bit stream 1695 and decodes the content of the bit stream into pixel data of a video frame for display. The video decoder 1600 has several components or modules for decoding the bit stream 1695, including components selected from the following: an inverse quantization module 1611, an inverse transform module 1610, an intra-frame prediction module 1625, a motion compensation module 1630, a loop filter 1645, a decoded picture buffer 1650, an MV buffer 1665, an MV prediction module 1675, and a parser 1690. The motion compensation module 1630 is part of the frame prediction module 1640.

在一些實施例中,模組1610-1690是由計算設備的一個或多個處理單元(例如,處理器)執行的軟體指令模組。在一些實施例中,模組1610-1690是由電子設備的一個或多個IC實現的硬體電路模組。儘管模組1610-1690被示為單獨的模組,但一些模組可以組合成單個模組。In some embodiments, modules 1610-1690 are software instruction modules executed by one or more processing units (e.g., processors) of a computing device. In some embodiments, modules 1610-1690 are hardware circuit modules implemented by one or more ICs of an electronic device. Although modules 1610-1690 are shown as separate modules, some modules may be combined into a single module.

根據由視訊編解碼或圖像編解碼標準定義的語法,解析器1690 (或熵解碼器)接收位元流1695以及執行初始解析。解析的語法元素包括各種頭部元素、標誌以及量化資料(或量化係數)1612。解析器1690藉由使用熵編解碼技術(例如上下文適應性二進位算術編解碼(context-adaptive binary arithmetic coding,簡稱CABAC)或霍夫曼編碼(Huffman encoding)。The parser 1690 (or entropy decoder) receives the bitstream 1695 and performs initial parsing according to the syntax defined by the video codec or image codec standard. The parsed syntax elements include various header elements, flags, and quantization data (or quantization coefficients) 1612. The parser 1690 uses entropy coding and decoding techniques such as context-adaptive binary arithmetic coding (CABAC) or Huffman encoding.

逆量化模組1611對量化資料(或量化係數)1612進行去量化以獲得變換係數,以及逆變換模組1610對變換係數1616執行逆變換以產生重建的殘差訊號1619。重建的殘差訊號1619與來自幀內預測模組1625或運動補償模組1630的預測像素資料1613相加以產生解碼的像素資料1617。解碼像素資料由環路濾波器1645濾波並存儲在解碼圖片緩衝器1650中。在一些實施例中,解碼圖片緩衝器1650是視訊解碼器1600外部的記憶體。在一些實施例中,解碼圖片緩衝器1650是視訊解碼器1600內部的記憶體。The inverse quantization module 1611 dequantizes the quantized data (or quantized coefficients) 1612 to obtain transform coefficients, and the inverse transform module 1610 performs inverse transform on the transform coefficients 1616 to generate a reconstructed residual signal 1619. The reconstructed residual signal 1619 is added with the predicted pixel data 1613 from the intra-frame prediction module 1625 or the motion compensation module 1630 to generate decoded pixel data 1617. The decoded pixel data is filtered by the loop filter 1645 and stored in the decoded picture buffer 1650. In some embodiments, the decoded picture buffer 1650 is a memory outside the video decoder 1600. In some embodiments, the decoded picture buffer 1650 is a memory inside the video decoder 1600.

幀內預測模組1625從位元流1695接收幀內預測資料,以及據此,從存儲在解碼圖片緩衝器1650中的解碼的像素資料1617產生預測像素資料1613。在一些實施例中,解碼的像素資料1617也被存儲在線緩衝器(未示出)中,用於圖片內預測和空間MV預測。The intra prediction module 1625 receives intra prediction data from the bitstream 1695 and, based thereon, generates predicted pixel data 1613 from decoded pixel data 1617 stored in the decoded picture buffer 1650. In some embodiments, the decoded pixel data 1617 is also stored in a line buffer (not shown) for intra picture prediction and spatial MV prediction.

在一些實施例中,解碼圖片緩衝器1650的內容用於顯示。顯示裝置1655或者獲取解碼圖片緩衝器1650的內容用於直接顯示,或者獲取解碼圖片緩衝器的內容到顯示緩衝器。在一些實施例中,顯示裝置藉由像素傳輸從解碼圖片緩衝器1650接收像素值。In some embodiments, the contents of the decoded picture buffer 1650 are used for display. The display device 1655 either obtains the contents of the decoded picture buffer 1650 for direct display or obtains the contents of the decoded picture buffer to a display buffer. In some embodiments, the display device receives pixel values from the decoded picture buffer 1650 by pixel transfer.

運動補償模組1630根據運動補償MV(MC MV)從解碼圖片緩衝器1650中存儲的解碼的像素資料1617產生預測像素資料1613。這些運動補償MV藉由將從位元流1695接收的殘差運動資料與從MV預測模組1675接收的預測MV相加來解碼。The motion compensation module 1630 generates predicted pixel data 1613 from the decoded pixel data 1617 stored in the decoded picture buffer 1650 according to the motion compensation MV (MC MV). These motion compensation MVs are decoded by adding the residual motion data received from the bitstream 1695 to the predicted MV received from the MV prediction module 1675.

基於為解碼先前視訊幀而生成的參考MV(例如,用於執行運動補償的運動補償MV),MV預測模組1675生成預測的MV。MV預測模組1675從MV緩衝器1665中獲取先前視訊幀的參考MV。視訊解碼器1600將為解碼當前視訊幀而生成的運動補償MV存儲在MV緩衝器1665中作為用於產生預測MV的參考MV。Based on a reference MV generated for decoding a previous video frame (e.g., a motion compensation MV for performing motion compensation), the MV prediction module 1675 generates a predicted MV. The MV prediction module 1675 obtains the reference MV of the previous video frame from the MV buffer 1665. The video decoder 1600 stores the motion compensation MV generated for decoding the current video frame in the MV buffer 1665 as a reference MV for generating a predicted MV.

環路濾波器1645對解碼的像素資料1617執行濾波或平滑操作以減少編碼的偽影,特別是在像素塊的邊界處。在一些實施例中,環路濾波器1645執行的濾波或平滑操作包括去塊濾波(DBF)、樣本適應性偏移(SAO)和/或適應性濾波(ALF)。The loop filter 1645 performs a filtering or smoothing operation on the decoded pixel data 1617 to reduce encoding artifacts, particularly at the boundaries of pixel blocks. In some embodiments, the filtering or smoothing operation performed by the loop filter 1645 includes deblocking filtering (DBF), sample adaptive offset (SAO), and/or adaptive filtering (ALF).

第17圖解說了實現用於預測編解碼的越界檢查的視訊解碼器1600的部分。具體地,該圖圖示了視訊解碼器1600的運動補償模塊1630的組件。FIG. 17 illustrates a portion of a video decoder 1600 that implements out-of-bounds checking for predictive coding. Specifically, the figure shows the components of a motion compensation module 1630 of the video decoder 1600.

如圖所示,運動補償模塊1630具有候選選擇器1710,其從MV緩衝器1665和幀內預測模塊1625中選擇塊向量(包括運動向量和幀內預測模式)。該選擇由熵解碼器1690基於從位元流1695解析的語法元素提供。選擇的塊向量由OOB檢查模塊1730檢查,其確定由塊向量標識的參考塊是否越界。所選擇的塊向量也被提供給預測子生成器模塊1720。As shown, the motion compensation module 1630 has a candidate selector 1710, which selects a block vector (including motion vectors and intra-frame prediction mode) from the MV buffer 1665 and the intra-frame prediction module 1625. The selection is provided by the entropy decoder 1690 based on the syntax elements parsed from the bit stream 1695. The selected block vector is checked by the OOB check module 1730, which determines whether the reference block identified by the block vector is out of bounds. The selected block vector is also provided to the predictor generator module 1720.

預測子生成器模塊1720通過從解碼圖片緩衝器1650獲取樣本來生成當前塊的預測子或預測塊作為預測的像素資料1613。熵解碼器1690為當前塊選擇一個或多個預測編解碼工具( 例如,雙向預測、GPM、CIIP、MHP、幀內預測、IBC 等),並且預測子生成器模塊1720基於所選擇的預測工具生成預測子。The predictor generator module 1720 generates a predictor or a prediction block of the current block by obtaining samples from the decoded picture buffer 1650 as predicted pixel data 1613. The entropy decoder 1690 selects one or more prediction codec tools (e.g., bidirectional prediction, GPM, CIIP, MHP, intra-frame prediction, IBC, etc.) for the current block, and the predictor generator module 1720 generates a predictor based on the selected prediction tool.

預測子生成器模塊1720還使用來自OOB檢查模塊1730的OOB檢查結果來確定在執行混合以生成預測子時是否排除由所選塊向量標識的某些參考樣本。例如,如果當前圖片是 ERP 圖片並且由塊向量標識的參考塊具有 OOB 樣本,則如果參考塊在左邊界或右邊界是 OOB,預測子生成器模塊1720可以使用從解碼圖片緩衝器1650獲取的水平環繞樣本用於混合,或者如果參考塊在頂部或底部邊界是 OOB,則將 OOB 樣本排除在混合之外。預測子生成器模塊1720還可以使用OOB結果來確定是否將樣本從BM成本計算或TM成本計算中排除。The predictor generator module 1720 also uses the OOB check result from the OOB check module 1730 to determine whether to exclude certain reference samples identified by the selected block vector when performing blending to generate the predictor. For example, if the current picture is an ERP picture and the reference block identified by the block vector has OOB samples, the predictor generator module 1720 can use the horizontal surround samples obtained from the decoded picture buffer 1650 for blending if the reference block is OOB at the left or right boundary, or exclude the OOB samples from blending if the reference block is OOB at the top or bottom boundary. The predictor generator module 1720 can also use the OOB result to determine whether to exclude samples from the BM cost calculation or the TM cost calculation.

第18圖概念性地說明了使用越界檢查用於像素塊的預測編解碼的過程1800。在一些實施例中,實現解碼器1600的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程1800。在一些實施例中,實現解碼器1600的電子設備執行過程1800。FIG. 18 conceptually illustrates a process 1800 for predictive encoding and decoding of a pixel block using out-of-bounds checking. In some embodiments, one or more processing units (e.g., processors) of a computing device implementing the decoder 1600 perform the process 1800 by executing instructions stored in a computer-readable medium. In some embodiments, an electronic device implementing the decoder 1600 performs the process 1800.

解碼器(在塊1810)接收要被解碼為視訊的當前圖片中的當前像素塊的資料。解碼器(在塊1820)基於當前塊的第一塊向量識別第一參考圖片中的第一參考塊。解碼器(在塊1830)基於當前塊的第二塊向量識別第二參考圖片中的第二參考塊。第一和第二塊向量可以是運動向量。在一些實施例中,第一參考圖片或第二參考圖片是當前圖片,第一塊向量或第二塊向量是幀內預測方向或模式。The decoder receives (at block 1810) data of a current pixel block in a current picture to be decoded as a video. The decoder identifies (at block 1820) a first reference block in a first reference picture based on a first block vector of the current block. The decoder identifies (at block 1830) a second reference block in a second reference picture based on a second block vector of the current block. The first and second block vectors may be motion vectors. In some embodiments, the first reference picture or the second reference picture is the current picture, and the first block vector or the second block vector is an intra-frame prediction direction or mode.

解碼器(在塊1840)對第一和第二參考塊執行越界(OOB)檢查。解碼器(在塊1850)基於第一和第二參考塊並基於OOB檢查生成當前塊的預測子。在一些實施例中,當第一參考塊的樣本是OOB時,不對水平方向和垂直方向中的至少一個方向應用雙向運動補償。在一些實施例中,當第一參考塊的樣本在第一參考圖片的左邊界或右邊界上是OOB時,或者當第一參考塊的樣本在第一參考圖片的頂部邊界或底部邊界上是OOB時,不應用雙向運動補償。在一些實施例中,當第一參考塊的樣本是非OOB樣本時,通過將第一參考塊的非OOB樣本與第二參考塊的對應非OOB樣本混合來生成對應的預測樣本。當第一參考塊的樣本為OOB樣本時,使用第二參考塊的對應非OOB樣本生成對應的預測樣本而不進行混合。The decoder (at block 1840) performs an out-of-bounds (OOB) check on the first and second reference blocks. The decoder (at block 1850) generates a predictor for the current block based on the first and second reference blocks and based on the OOB check. In some embodiments, when the sample of the first reference block is OOB, bidirectional motion compensation is not applied for at least one of the horizontal direction and the vertical direction. In some embodiments, when the sample of the first reference block is OOB on the left or right boundary of the first reference picture, or when the sample of the first reference block is OOB on the top boundary or the bottom boundary of the first reference picture, bidirectional motion compensation is not applied. In some embodiments, when the samples of the first reference block are non-OOB samples, the corresponding prediction samples are generated by mixing the non-OOB samples of the first reference block with the corresponding non-OOB samples of the second reference block. When the samples of the first reference block are OOB samples, the corresponding prediction samples are generated using the corresponding non-OOB samples of the second reference block without mixing.

在一些實施例中,視訊可以是等距矩形投影(ERP)格式的360度視訊。當第一參考塊的樣本在第一參考圖片的左邊界或右邊界上是 OOB 時,通過將來自第一參考圖片的水平環繞樣本與來自第二參考圖片中的第二參考塊的相應非 OOB 樣本混合來生成相應的預測樣本。當第一參考塊的樣本在第一參考圖片的頂部或底部邊界上是OOB時,通過使用來自第二參考塊的對應非OOB樣本而不混合來生成對應的預測子樣本。In some embodiments, the video may be a 360-degree video in an equirectangular projection (ERP) format. When a sample of a first reference block is OOB on a left or right border of a first reference picture, a corresponding prediction sample is generated by blending horizontal surround samples from the first reference picture with corresponding non-OOB samples from a second reference block in a second reference picture. When a sample of the first reference block is OOB on a top or bottom border of the first reference picture, a corresponding prediction sub-sample is generated by using corresponding non-OOB samples from a second reference block without blending.

在一些實施例中,當前塊被劃分成多個幾何分區,第一參考塊用於生成第一幾何分區的第一預測子並且第二參考塊用於生成第二幾何分區的第二預測子。通過沿著第一和第二幾何分區之間的邊界混合第一和第二預測子的樣本來生成對應的預測子樣本,其中從混合中排除第一和第二預測子的越界樣本。In some embodiments, when the current block is divided into a plurality of geometric partitions, a first reference block is used to generate a first predictor for the first geometric partition and a second reference block is used to generate a second predictor for the second geometric partition. The corresponding predictor samples are generated by blending samples of the first and second predictors along a boundary between the first and second geometric partitions, wherein out-of-bounds samples of the first and second predictors are excluded from the blend.

在一些實施例中,所生成的預測子是組合的幀間幀內預測(CIIP),其中第一參考塊提供幀間預測樣本並且第二參考塊提供幀內預測樣本。在一些實施例中,使用MHP對當前塊進行編解碼,使得解碼器對第三參考塊執行額外的OOB檢查,並且進一步基於第三參考塊和額外的OOB檢查來生成預測子。In some embodiments, the generated predictor is a combined inter-frame intra-frame prediction (CIIP), where a first reference block provides inter-frame prediction samples and a second reference block provides intra-frame prediction samples. In some embodiments, the current block is encoded and decoded using MHP, so that the decoder performs an additional OOB check on a third reference block, and further generates a predictor based on the third reference block and the additional OOB check.

在一些實施例中,第一塊向量被細化以最小化鄰近第一參考塊的參考模板和鄰近當前塊的當前模板之間計算的模板匹配成本,其中參考模板的OOB樣本被排除在成本計算之外。在一些實施例中,改進第一和第二塊向量以最小化基於第一和第二參考塊的雙邊匹配成本,其中第一和第二參考塊中的OOB樣本被排除在成本計算之外。In some embodiments, the first block vector is refined to minimize a template matching cost calculated between a reference template adjacent to the first reference block and a current template adjacent to the current block, wherein OOB samples of the reference template are excluded from the cost calculation. In some embodiments, the first and second block vectors are refined to minimize a bilateral matching cost based on the first and second reference blocks, wherein OOB samples in the first and second reference blocks are excluded from the cost calculation.

解碼器(在塊1860)通過使用生成的預測子來重構當前塊。解碼器然後可以提供重構的當前塊以作為重構的當前圖片的一部分進行顯示。 VI. 示例電子系統 The decoder (at block 1860) reconstructs the current block by using the generated predictors. The decoder may then provide the reconstructed current block for display as part of a reconstructed current picture. VI. Example Electronic System

許多上述特徵和應用被實現為軟體處理,這些軟體處理被指定為記錄在電腦可讀存儲介質(也稱為電腦可讀介質)上的一組指令。當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器、處理器內核或其他處理單元)執行時,它們使處理單元執行指令中指示的動作。電腦可讀介質的示例包括但不限於唯讀光碟驅動器(compact disc read-only memory,簡稱CD-ROM)、快閃記憶體驅動器、隨機存取記憶體(random-access memroy,簡稱RAM)晶片、硬碟驅動器、可擦除可程式設計唯讀記憶體(erasable programmble read-only memory,簡稱EPROM)、電可擦除可程式設計唯讀記憶體 (electrically erasable proagrammble read-only memory,簡稱EEPROM)等。電腦可讀介質不包括藉由無線或有線連接傳遞的載波和電子訊號。Many of the above features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer-readable storage medium (also referred to as a computer-readable medium). When these instructions are executed by one or more computing or processing units (e.g., one or more processors, processor cores, or other processing units), they cause the processing units to perform the actions indicated in the instructions. Examples of computer-readable media include, but are not limited to, compact disc read-only memory (CD-ROM), flash memory drives, random-access memory (RAM) chips, hard disk drives, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc. Computer-readable media does not include carrier waves and electronic signals transmitted over wireless or wired connections.

在本說明書中,術語“軟體”意在包括駐留在唯讀記憶體中的韌體或存儲在磁記憶體中的應用程式,其可以讀入記憶體以供處理器處理。此外,在一些實施例中,多個軟體發明可以實現為更大程式的子部分,同時保留不同的軟體發明。在一些實施例中,多個軟體發明也可以實現為單獨的程式。最後,共同實現此處描述的軟體發明的單獨程式的任一組合都在本公開的範圍內。在一些實施例中,軟體程式,在被安裝以在一個或多個電子系統上運行時,定義一個或多個特定機器實施方式,該實施方式處理和執行軟體程式的操作。In this specification, the term "software" is intended to include firmware residing in read-only memory or applications stored in magnetic memory that can be read into memory for processing by a processor. In addition, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program while retaining different software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of separate programs that together implement the software inventions described herein are within the scope of this disclosure. In some embodiments, the software program, when installed to run on one or more electronic systems, defines one or more specific machine implementations that process and execute the operations of the software program.

第19圖概念性地示出了實現本公開的一些實施例的電子系統1900。電子系統1900可以是電腦(例如,臺式電腦、個人電腦、平板電腦等)、電話、PDA或任一其他類型的電子設備。這種電子系統包括各種類型的電腦可讀介質和用於各種其他類型的電腦可讀介質的介面。電子系統1900包括匯流排1905、處理單元1910、圖形處理單元(graphics-processing unit,簡稱GPU)1915、系統記憶體1920、網路1925、唯讀記憶體1930、永久存儲裝置1935、輸入設備1940 , 和輸出設備1945。FIG. 19 conceptually illustrates an electronic system 1900 for implementing some embodiments of the present disclosure. The electronic system 1900 may be a computer (e.g., a desktop computer, a personal computer, a tablet computer, etc.), a phone, a PDA, or any other type of electronic device. Such an electronic system includes various types of computer-readable media and interfaces for various other types of computer-readable media. The electronic system 1900 includes a bus 1905, a processing unit 1910, a graphics processing unit (GPU) 1915, a system memory 1920, a network 1925, a read-only memory 1930, a permanent storage device 1935, an input device 1940, and an output device 1945.

匯流排1905共同表示與電子系統1900通訊連接的眾多內部設備的所有系統、週邊設備和晶片組匯流排。例如,匯流排1905將處理單元1910與GPU 1915,唯讀記憶體1930、系統記憶體1920和永久存儲裝置1935通訊地連接。Buses 1905 collectively represent all system, peripheral, and chipset buses that communicatively couple the numerous internal devices of electronic system 1900. For example, bus 1905 communicatively couples processing unit 1910 with GPU 1915, read-only memory 1930, system memory 1920, and permanent storage 1935.

處理單元1910從這些各種記憶體單元中獲取要執行的指令和要處理的資料,以便執行本公開的處理。在不同的實施例中,處理單元可以是單個處理器或多核處理器。一些指令被傳遞到GPU 1915並由其執行。GPU 1915可以卸載各種計算或補充由處理單元1910提供的影像處理。The processing unit 1910 obtains instructions to be executed and data to be processed from these various memory units in order to perform the processing disclosed herein. In different embodiments, the processing unit can be a single processor or a multi-core processor. Some instructions are passed to and executed by the GPU 1915. The GPU 1915 can offload various calculations or supplement the image processing provided by the processing unit 1910.

唯讀記憶體(read-only-memory,簡稱ROM)1930存儲由處理單元1910和電子系統的其他模組使用的靜態資料和指令。另一方面,永久存儲設備1935是讀寫存放設備。該設備是即使在電子系統1900關閉時也存儲指令和資料的非易失性存儲單元。本公開的一些實施例使用大容量記憶裝置(例如磁片或光碟及其對應的磁碟機)作為永久存儲裝置1935。Read-only-memory (ROM) 1930 stores static data and instructions used by processing unit 1910 and other modules of the electronic system. On the other hand, permanent storage device 1935 is a read-write storage device. This device is a non-volatile storage unit that stores instructions and data even when the electronic system 1900 is turned off. Some embodiments of the present disclosure use a large-capacity memory device (such as a disk or optical disk and its corresponding disk drive) as permanent storage device 1935.

其他實施例使用卸除式存放裝置設備(例如軟碟、快閃記憶體設備等,及其對應的磁碟機)作為永久存儲裝置。與永久存儲裝置1935一樣,系統記憶體1920是讀寫記憶體設備。然而,與永久存儲裝置1935不同,系統記憶體1920是易失性(volatile)讀寫記憶體,例如隨機存取記憶體。系統記憶體1920存儲處理器在運行時使用的一些指令和資料。在一些實施例中,根據本公開的處理被存儲在系統記憶體1920、永久存儲裝置1935和/或唯讀記憶體1930中。例如,根據本公開的一些實施例,各種記憶體單元包括用於根據處理多媒體剪輯的指令。從這些各種記憶體單元中,處理單元1910獲取要執行的指令和要處理的資料,以便執行一些實施例的處理。Other embodiments use removable storage devices (such as floppy disks, flash memory devices, etc., and their corresponding disk drives) as permanent storage devices. Like permanent storage device 1935, system memory 1920 is a read-write memory device. However, unlike permanent storage device 1935, system memory 1920 is a volatile read-write memory, such as random access memory. System memory 1920 stores some instructions and data used by the processor during operation. In some embodiments, processing according to the present disclosure is stored in system memory 1920, permanent storage device 1935 and/or read-only memory 1930. For example, according to some embodiments of the present disclosure, various memory units include instructions for processing multimedia clips. From these various memory units, processing unit 1910 obtains instructions to be executed and data to be processed in order to perform the processing of some embodiments.

匯流排1905還連接到輸入設備1940和輸出設備1945。輸入設備1940使使用者能夠向電子系統傳達資訊和選擇命令。輸入設備1940包括字母數位鍵盤和定點設備(也被稱為“游標控制設備”)、照相機(例如,網路攝像頭)、麥克風或用於接收語音命令的類似設備等。輸出設備1945顯示由電子系統生成的圖像或者輸出資料。輸出設備1945包括印表機和顯示裝置,例如陰極射線管(cathode ray tubes,簡稱CRT)或液晶顯示器(liquid crystal display,簡稱LCD),以及揚聲器或類似的音訊輸出設備。一些實施例包括用作輸入和輸出設備的設備,例如觸控式螢幕。Bus 1905 is also connected to input devices 1940 and output devices 1945. Input devices 1940 enable a user to communicate information and select commands to an electronic system. Input devices 1940 include alphanumeric keyboards and pointing devices (also known as "cursor control devices"), cameras (e.g., webcams), microphones, or similar devices for receiving voice commands, etc. Output devices 1945 display images or output data generated by the electronic system. Output devices 1945 include printers and display devices, such as cathode ray tubes (CRT) or liquid crystal displays (LCD), as well as speakers or similar audio output devices. Some embodiments include devices that function as both input and output devices, such as a touch screen.

最後,如第19圖所示,匯流排1905還藉由網路介面卡(未示出)將電子系統1900耦合到網路1925。以這種方式,電腦可以是電腦網路(例如局域網(“LAN”)、廣域網路(“WAN”)或內聯網的一部分,或者是多種網路的一個網路,例如互聯網。電子系統1900的任一或所有組件可以與本公開結合使用。Finally, as shown in FIG. 19 , bus 1905 also couples electronic system 1900 to a network 1925 via a network interface card (not shown). In this manner, the computer can be part of a computer network, such as a local area network (“LAN”), a wide area network (“WAN”), or an intranet, or a network of multiple networks, such as the Internet. Any or all of the components of electronic system 1900 may be used in conjunction with the present disclosure.

一些實施例包括電子組件,例如微處理器、存儲裝置和記憶體,其將電腦程式指令存儲在機器可讀或電腦可讀介質(或者被稱為電腦可讀存儲介質、機器可讀介質或機器可讀存儲介質)中。這種電腦可讀介質的一些示例包括RAM、ROM、唯讀光碟(read-only compact discs,簡稱CD-ROM)、可記錄光碟(recordable compact discs,簡稱CD-R)、可重寫光碟(rewritable compact discs,簡稱CD-RW)、唯讀數位多功能光碟(read-only digital versatile discs)(例如, DVD-ROM, 雙層DVD-ROM), 各種可燒錄/可重寫DVD (例如, DVD-RAM, DVD-RW, DVD+RW等), 快閃記憶體 (例如, SD卡, 迷你SD卡、微型SD卡等)、磁性和/或固態硬碟驅動器、唯讀和可記錄Blu-Ray®光碟、超密度光碟、任一其他光學或磁性介質以及軟碟。電腦可讀介質可以存儲可由至少一個處理單元執行以及包括用於執行各種操作的指令集合的電腦程式。電腦程式或電腦代碼的示例包括諸如由編譯器產生的機器代碼,以及包括由電腦、電子組件或使用注釋器(interpreter)的微處理器執行的高級代碼的文檔。Some embodiments include electronic components, such as microprocessors, storage devices, and memory, which store computer program instructions in machine-readable or computer-readable media (or referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, double-layer DVD-ROM), various recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD Card, Mini SD Card, Micro SD Card, etc.), magnetic and/or solid state hard disk drives, read-only and recordable Blu-Ray® discs, ultra-density optical discs, any other optical or magnetic media, and floppy disks. The computer readable medium may store a computer program that is executable by at least one processing unit and includes a set of instructions for performing various operations. Examples of computer programs or computer codes include machine codes such as those generated by a compiler, and documents including high-level codes executed by a computer, an electronic component, or a microprocessor using an interpreter.

雖然上述討論主要涉及執行軟體的微處理器或多核處理器,但許多上述特徵和應用由一個或多個積體電路執行,例如專用積體電路(application specific integrated circuit,簡稱ASIC) 或現場可程式設計閘陣列(field programmable gate array,簡稱FPGA)。在一些實施例中,這樣的積體電路執行存儲在電路本身上的指令。此外,一些實施例執行存儲在可程式設計邏輯器件(programmable logic device,簡稱PLD)、ROM或RAM器件中的軟體。Although the above discussion primarily involves microprocessors or multi-core processors executing software, many of the above features and applications are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuits themselves. In addition, some embodiments execute software stored in programmable logic devices (PLDs), ROM, or RAM devices.

如在本說明書和本申請的任一申請專利範圍中使用的,術語“電腦”、“伺服器”、“處理器”和“記憶體”均指電子或其他技術設備。這些術語不包括人或人群。出於本說明書的目的,術語顯示或顯示是指在電子設備上顯示。如在本說明書和本申請的任何申請專利範圍中所使用的,術語“電腦可讀介質”、“電腦可讀介質”和“機器可讀介質”完全限於以電腦可讀形式存儲資訊的有形物理物件。這些術語不包括任何無線訊號、有線下載訊號和任何其他短暫訊號。As used in this specification and any claims hereof, the terms "computer," "server," "processor," and "memory" refer to electronic or other technical equipment. These terms do not include people or groups of people. For the purposes of this specification, the terms display or display refer to displaying on an electronic device. As used in this specification and any claims hereof, the terms "computer-readable medium," "computer-readable medium," and "machine-readable medium" are entirely limited to tangible physical objects that store information in a computer-readable form. These terms do not include any wireless signals, wired download signals, and any other transient signals.

雖然已經參考許多具體細節描述了本公開,但是本領域之通常知識者將認識到,本公開可以以其他特定形式實施而不背離本公開的精神。此外,許多圖(包括第15圖和第18圖)概念性地說明了處理。這些處理的具體操作可能不會按照所示和描述的確切循序執行。具體操作可以不是在一個連續的一系列操作中執行,在不同的實施例中可以執行不同的具體操作。此外,該處理可以使用幾個子處理來實現,或者作為更大的宏處理的一部分來實現。因此,本領域之通常知識者將理解本公開不受前述說明性細節的限制,而是由所附申請專利範圍限定。 補充說明 Although the present disclosure has been described with reference to many specific details, a person of ordinary skill in the art will recognize that the present disclosure may be implemented in other specific forms without departing from the spirit of the present disclosure. In addition, many figures (including Figures 15 and 18) conceptually illustrate the processing. The specific operations of these processes may not be performed in the exact order shown and described. The specific operations may not be performed in a continuous series of operations, and different specific operations may be performed in different embodiments. In addition, the processing may be implemented using several sub-processes, or as part of a larger macro-process. Therefore, a person of ordinary skill in the art will understand that the present disclosure is not limited by the foregoing illustrative details, but is limited by the scope of the attached patent application. Supplementary description

本文所描述的主題有時表示不同的組件,其包含在或者連接到其他不同的組件。可以理解的是,所描述的結構僅是示例,實際上可以由許多其他結構來實施,以實現相同的功能,從概念上講,任何實現相同功能的組件的排列實際上是“相關聯的”,以便實現所需功能。因此,不論結構或中間部件,為實現特定的功能而組合的任何兩個組件被視爲“相互關聯”,以實現所需的功能。同樣,任何兩個相關聯的組件被看作是相互“可操作連接”或“可操作耦接”,以實現特定功能。能相互關聯的任何兩個組件也被視爲相互“可操作地耦接”,以實現特定功能。能相互關聯的任何兩個組件也被視爲相互“可操作地耦合”以實現特定功能。可操作連接的具體例子包括但不限於物理可配對和/或物理上相互作用的組件,和/或無線可交互和/或無線上相互作用的組件,和/或邏輯上相互作用和/或邏輯上可交互的組件。The subject matter described herein sometimes represents different components, which are contained in or connected to other different components. It is understood that the described structure is only an example, and can actually be implemented by many other structures to achieve the same function. Conceptually, any arrangement of components that achieve the same function is actually "associated" in order to achieve the desired function. Therefore, regardless of the structure or intermediate components, any two components combined to achieve a specific function are considered to be "interrelated" to achieve the desired function. Similarly, any two associated components are considered to be "operably connected" or "operably coupled" to each other to achieve a specific function. Any two components that can be associated with each other are also considered to be "operably coupled" to each other to achieve a specific function. Any two components that can be associated with each other are also considered to be "operably coupled" to each other to achieve a specific function. Specific examples of operable connections include, but are not limited to, physically mateable and/or physically interacting components, and/or wirelessly interactable and/or wirelessly interacting components, and/or logically interacting and/or logically interactable components.

此外,關於基本上任何複數和/或單數術語的使用,本領域之通常知識者可以根據上下文和/或應用從複數變換為單數和/或從單數到複數。為清楚起見,本發明明確闡述了不同的單數/複數排列。In addition, with respect to the use of substantially any plural and/or singular terms, those of ordinary skill in the art can convert from the plural to the singular and/or from the singular to the plural according to context and/or application. For clarity, the present invention expressly describes different singular/plural arrangements.

此外,本領域之通常知識者可以理解,通常,本發明所使用的術語特別是申請專利範圍中的,如申請專利範圍的主題,通常用作“開放”術語,例如,“包括”應解釋為“包括但不限於”,“有”應理解為“至少有”“包括”應解釋為“包括但不限於”等。本領域之通常知識者可以進一步理解,若計畫介紹特定數量的申請專利範圍内容,將在申請專利範圍内明確表示,並且,在沒有這類内容時將不顯示。例如,為幫助理解,下面申請專利範圍可能包含短語“至少一個”和“一個或複數個”,以介紹申請專利範圍的内容。然而,這些短語的使用不應理解為暗示使用不定冠詞“一個”或“一種”介紹申請專利範圍内容,而限制了任何特定神專利範圍。甚至當相同的申請專利範圍包括介紹性短語“一個或複數個”或“至少有一個”,不定冠詞,例如“一個”或“一種”,則應被解釋為表示至少一個或者更多,對於用於介紹申請專利範圍的明確描述的使用而言,同樣成立。此外,即使明確引用特定數量的介紹性内容,本領域之通常知識者可以認識到,這樣的内容應被解釋為表示所引用的數量,例如,沒有其他修改的“兩個引用”,意味著至少兩個引用,或兩個或兩個以上的引用。此外,在使用類似於“A、B和C中的至少一個”的表述的情況下,通常如此表述是為了本領域之通常知識者可以理解該表述,例如,“系統包括A、B和C中的至少一個”將包括但不限於單獨具有A的系統,單獨具有B的系統,單獨具有C的系統,具有A和B的系統,具有A和C的系統,具有B和C的系統,和/或具有A、B和C的系統等。本領域之通常知識者進一步可理解,無論在説明書中,申請專利範圍中或者附圖中,由兩個或兩個以上的替代術語所表現的任何分隔的單詞和/或短語應理解為,包括這些術語中的一個,其中一個,或者這兩個術語的可能性。例如,“A或B”應理解為,“A”,或者“B”,或者“A和B”的可能性。In addition, it will be understood by those of ordinary skill in the art that, generally, the terms used in the present invention, especially in the claims, such as the subject matter of the claims, are generally used as "open" terms, for example, "including" should be interpreted as "including but not limited to", "having" should be interpreted as "at least having", "including" should be interpreted as "including but not limited to", etc. It will be further understood by those of ordinary skill in the art that if a specific number of claims are planned to be introduced, it will be clearly indicated in the claims, and it will not be displayed when there is no such content. For example, to help understanding, the claims below may contain the phrases "at least one" and "one or more" to introduce the claims. However, the use of these phrases should not be understood to imply the use of the indefinite article "one" or "a kind" to introduce the claims, thereby limiting any specific claims. Even when the same claim includes the introductory phrase "one or more" or "at least one", the indefinite article, such as "an" or "an", should be interpreted to mean at least one or more, as is the case with the use of the explicit description used to introduce the claim. In addition, even if an introductory statement explicitly refers to a specific number, one of ordinary skill in the art would recognize that such statement should be interpreted to mean the number referred to, e.g., "two references" without other modifications means at least two references, or two or more references. In addition, when using expressions similar to "at least one of A, B, and C", it is usually expressed in such a way that a person of ordinary skill in the art can understand the expression, for example, "a system includes at least one of A, B, and C" will include but not be limited to a system having A alone, a system having B alone, a system having C alone, a system having A and B, a system having A and C, a system having B and C, and/or a system having A, B, and C, etc. A person of ordinary skill in the art will further understand that any separated words and/or phrases represented by two or more alternative terms, whether in the specification, in the scope of the patent application, or in the drawings, should be understood to include the possibility of one of these terms, one of them, or both of these terms. For example, "A or B" should be understood as the possibility of "A", or "B", or "A and B".

從前述可知,出於説明目的,本發明已描述了各種實施方案,並且在不偏離本發明的範圍和精神的情況下,可以進行各種變形。因此,此處所公開的各種實施方式不用於限制,真實的範圍和申請由申請專利範圍表示。As can be seen from the foregoing, various embodiments have been described for illustrative purposes, and various modifications may be made without departing from the scope and spirit of the invention. Therefore, the various embodiments disclosed herein are not intended to be limiting, and the true scope and application are indicated by the scope of the patent application.

100、110、111、200、210、211、212、600、601、801、810、811、1100、1110、1111:圖片 105、700、800、1105:當前塊 120、121、820、821、1120、1121:參考塊 130:預測生成 135:預測塊 140、1130、1140:OOB 部分 230、231、241、242、243、244、1135:預測子 400:GPM候選列表 500、605:CU 610、611:MV 620、630、 631:模板 711-717、721-727:子模板 1131:球形鄰近部分 1220、1222:L鄰近 1230:非OOB 1232:OOB 1300:編碼器 1305:視訊源 1308:減法器 1310:變換模組 1311:量化模組 1312:變換係數 1313:預測像素資料 1314:逆量化模組 1315:逆變換模組 1316:變換係數 1317:重建的像素資料 1319:重建殘差 1320:圖片內估計模組 1325:幀內預測模組 1330:運動補償模組 1335:運動估計模組 1340:幀間預測模組 1345:環路濾波器 1350:重建圖片緩衝器 1365:MV緩衝器 1375:MV預測模組 1390:熵編碼器 1395:位元流 1310:候選分區模組 1315:MV候選識別模組 1320:模板識別模組 1330:成本計算器 1340:候選選擇模組 1410、1710:候選選擇器 1420、1720:預測子生成器模塊 1430、1730:OOB檢查模塊 1500、1800:過程1500 1510~1560、1810~1860:步驟 1600:視訊解碼器 1610:逆變換模組 1611:逆量化模組 1612:量化資料 1613:預測像素資料 1616:變換係數 1617:解碼的像素資料 1619:重建的殘差訊號 1625:幀內預測模組 1630:運動補償模組 1640:幀間預測模組 1645:環路濾波器 1650:解碼圖片緩衝器 1655:顯示裝置 1665:MV緩衝器 1675:MV預測模組 1690:熵解碼器 1695:位元流 1610:候選分區模組 1615:MV候選識別模組 1620:模板識別模組 1630:成本計算器 1640:候選選擇模組 1900:電子系統 1905:匯流排 1910:處理單元 1915:GPU 1920:系統記憶體 1925:網路 1930:唯讀記憶體 1935:永久存儲裝置 1940:輸入設備 1945:輸出設備 100, 110, 111, 200, 210, 211, 212, 600, 601, 801, 810, 811, 1100, 1110, 1111: Image 105, 700, 800, 1105: Current block 120, 121, 820, 821, 1120, 1121: Reference block 130: Prediction generation 135: Prediction block 140, 1130, 1140: OOB part 230, 231, 241, 242, 243, 244, 1135: Prediction sub 400: GPM candidate list 500, 605: CU 610, 611: MV 620, 630, 631: Template 711-717, 721-727: sub-template 1131: spherical neighbor 1220, 1222: L neighbor 1230: non-OOB 1232: OOB 1300: encoder 1305: video source 1308: subtractor 1310: transform module 1311: quantization module 1312: transform coefficient 1313: predicted pixel data 1314: inverse quantization module 1315: inverse transform module 1316: transform coefficient 1317: reconstructed pixel data 1319: reconstruction residual 1320: intra-image estimation module 1325: intra-frame prediction module 1330: motion compensation module 1335: Motion estimation module 1340: Inter-frame prediction module 1345: Loop filter 1350: Reconstructed image buffer 1365: MV buffer 1375: MV prediction module 1390: Entropy encoder 1395: Bitstream 1310: Candidate partition module 1315: MV candidate identification module 1320: Template identification module 1330: Cost calculator 1340: Candidate selection module 1410, 1710: Candidate selector 1420, 1720: Prediction sub-generator module 1430, 1730: OOB check module 1500, 1800: Process 1500 1510~1560, 1810~1860: Steps 1600: Video decoder 1610: Inverse transform module 1611: Inverse quantization module 1612: Quantization data 1613: Prediction pixel data 1616: Transformation coefficient 1617: Decoded pixel data 1619: Reconstructed residual signal 1625: Intra-frame prediction module 1630: Motion compensation module 1640: Inter-frame prediction module 1645: Loop filter 1650: Decoded picture buffer 1655: Display device 1665: MV buffer 1675: MV prediction module 1690: Entropy decoder 1695: Bitstream 1610: Candidate partition module 1615: MV candidate identification module 1620: Template identification module 1630: Cost calculator 1640: Candidate selection module 1900: Electronic system 1905: Bus 1910: Processing unit 1915: GPU 1920: System memory 1925: Network 1930: Read-only memory 1935: Persistent storage device 1940: Input device 1945: Output device

附圖被包括以提供對本公開的進一步理解並且被併入並構成本公開的一部分。附圖說明了本公開的實施方式,並且與描述一起用於解釋本公開的原理。值得注意的是,附圖不一定是按比例繪製的,因為在實際實施中特定組件可能被顯示為與尺寸不成比例,以便清楚地說明本公開的概念。 第1圖圖示了使用越界(Out-of-Boundary,簡寫為OOB)參考塊的雙向預測。 第2圖概念性地說明了用於對當前塊進行編解碼的多假設預測(MHP)。 第3圖示出藉由幾何分區模式(GPM)對CU的分割。 第4圖示出用於GPM分區的示例性單向預測候選列表以及對GPM的單向預測MV的選擇。 第5圖示出用於CU的GPM的示例分區邊緣混合處理。 第6圖概念性地圖示了基於初始運動向量(MV)周圍的搜索區域來執行模板匹配。 第7圖概念性地說明具有子塊運動的當前塊700。 第8圖概念性地圖示了通過雙邊匹配(BM)對預測候選(例如,合併候選)的細化。 第9圖顯示了不同方向的幀內預測模式。 第10A-B圖概念性地說明具有擴展長度的頂部和左側參考模板以支持不同縱橫比的非正方形塊的廣角方向模式。 第11A-C圖概念性地說明具有邊界外(OOB)檢查的水平環繞運動補償。 第12圖概念性地說明使用OOB參考樣本的幀內預測。 第13圖示出可實施預測編碼的示例視訊編碼器。 第14圖解說了實現預測編解碼的越界檢查的視訊編碼器的部分。 第15圖概念性地說明了使用越界檢查用於像素塊的預測編碼的過程。 第16圖示出可實施預測編解碼的示例視訊解碼器。 第17圖解說了實現用於預測編解碼的越界檢查的視訊解碼器的部分。 第18圖概念性地說明了使用越界檢查用於像素塊的預測編解碼的過程。 第19圖概念性地示出了實現本公開的一些實施例的電子系統。 The accompanying drawings are included to provide a further understanding of the present disclosure and are incorporated into and constitute a part of the present disclosure. The accompanying drawings illustrate the implementation of the present disclosure and are used together with the description to explain the principles of the present disclosure. It is worth noting that the accompanying drawings are not necessarily drawn to scale, because in actual implementations, specific components may be shown as being out of proportion to the size in order to clearly illustrate the concepts of the present disclosure. Figure 1 illustrates bidirectional prediction using an out-of-boundary (OOB) reference block. Figure 2 conceptually illustrates a multiple hypothesis prediction (MHP) for encoding and decoding the current block. Figure 3 shows the partitioning of a CU by a geometric partitioning mode (GPM). Figure 4 shows an exemplary unidirectional prediction candidate list for GPM partitioning and the selection of a unidirectional prediction MV for GPM. FIG. 5 illustrates an example partition edge blending process for a GPM of a CU. FIG. 6 conceptually illustrates performing template matching based on a search region around an initial motion vector (MV). FIG. 7 conceptually illustrates a current block 700 with sub-block motion. FIG. 8 conceptually illustrates refinement of prediction candidates (e.g., merge candidates) by bilateral matching (BM). FIG. 9 shows intra prediction modes for different directions. FIGS. 10A-B conceptually illustrate wide angle direction modes with extended length top and left reference templates to support non-square blocks of different aspect ratios. FIGS. 11A-C conceptually illustrate horizontal surround motion compensation with out-of-bounds (OOB) check. FIG. 12 conceptually illustrates intra-frame prediction using OOB reference samples. FIG. 13 illustrates an example video encoder that may implement predictive coding. FIG. 14 illustrates a portion of a video encoder that implements out-of-bounds checking for predictive coding. FIG. 15 conceptually illustrates a process for predictive coding for a pixel block using out-of-bounds checking. FIG. 16 illustrates an example video decoder that may implement predictive coding. FIG. 17 illustrates a portion of a video decoder that implements out-of-bounds checking for predictive coding. FIG. 18 conceptually illustrates a process for predictive coding for a pixel block using out-of-bounds checking. FIG. 19 conceptually illustrates an electronic system that implements some embodiments of the present disclosure.

1500:過程 1500: Process

1510~1560:步驟 1510~1560: Steps

Claims (13)

一種視訊編解碼方法,包括: 接收待編碼或解碼為視訊的當前圖片的當前塊的資料; 基於該當前塊的第一塊向量識別第一參考圖片中的第一參考塊; 基於該當前塊的第二塊向量識別第二參考圖片中的第二參考塊; 對第一和第二參考塊進行越界檢查; 基於該第一和第二參考塊並基於該越界檢查生成該當前塊的預測子,其中當該第一參考塊的樣本是越界時,雙向運動補償不應用於水平方向和垂直方向中的至少一個方向;以及 使用生成的該預測子對該當前塊進行編碼或解碼。 A video encoding and decoding method, comprising: receiving data of a current block of a current picture to be encoded or decoded as a video; identifying a first reference block in a first reference picture based on a first block vector of the current block; identifying a second reference block in a second reference picture based on a second block vector of the current block; performing an out-of-bounds check on the first and second reference blocks; generating a predictor of the current block based on the first and second reference blocks and based on the out-of-bounds check, wherein when a sample of the first reference block is out-of-bounds, bidirectional motion compensation is not applied to at least one of the horizontal direction and the vertical direction; and encoding or decoding the current block using the generated predictor. 如請求項1所述之視訊編解碼方法,其中: 當該第一參考塊的樣本在該第一參考圖片的左邊界或右邊界上是越界時,通過將來自該第一參考圖片的水平環繞樣本與來自該第二參考圖片中的該第二參考塊的相應非越界樣本混合來生成相應的預測樣本, 當該第一參考塊的樣本在該第一參考圖片的頂部或底部邊界上是越界時,通過使用來自該第二參考塊的相應非越界樣本而不混合來生成相應的預測樣本。 The video encoding and decoding method as described in claim 1, wherein: When the sample of the first reference block is out of bounds on the left or right boundary of the first reference picture, the corresponding prediction sample is generated by mixing the horizontal surround sample from the first reference picture with the corresponding non-out-of-bounds sample from the second reference block in the second reference picture, When the sample of the first reference block is out of bounds on the top or bottom boundary of the first reference picture, the corresponding prediction sample is generated by using the corresponding non-out-of-bounds sample from the second reference block without mixing. 如請求項2所述之視訊編解碼方法,其中,該視訊為等距矩形投影格式的360度視訊。A video encoding and decoding method as described in claim 2, wherein the video is a 360-degree video in an equirectangular projection format. 如請求項1所述之視訊編解碼方法,其中: 當該第一參考塊的樣本在該第一參考圖片的左邊界或右邊界上是越界時,或者當該第一參考塊的樣本在該第一參考圖片的頂部邊界或底部邊界上是越界時,未應用該雙向運動補償。 The video encoding and decoding method as described in claim 1, wherein: When the sample of the first reference block is out of bounds on the left boundary or the right boundary of the first reference picture, or when the sample of the first reference block is out of bounds on the top boundary or the bottom boundary of the first reference picture, the bidirectional motion compensation is not applied. 如請求項1所述之視訊編解碼方法,其中,該第一參考圖片或該第二參考圖片為該當前圖片。The video encoding and decoding method as described in claim 1, wherein the first reference picture or the second reference picture is the current picture. 如請求項5所述之視訊編解碼方法,其中,該第一塊向量或該第二塊向量是幀內預測方向。A video encoding and decoding method as described in claim 5, wherein the first block vector or the second block vector is an intra-frame prediction direction. 如請求項1所述之視訊編解碼方法,其中: 該當前塊包括多個幾何分區, 該第一參考塊用於為第一幾何分區生成第一預測子, 該第二參考塊用於為第二幾何分區生成第二預測子, 其中通過沿著該第一和第二幾何分區之間的邊界混合該第一和第二預測子的樣本來生成對應的預測子樣本,其中從混合中排除該第一和第二預測子的越界樣本。 A video encoding and decoding method as described in claim 1, wherein: the current block includes a plurality of geometric partitions, the first reference block is used to generate a first predictor for the first geometric partition, the second reference block is used to generate a second predictor for the second geometric partition, wherein corresponding predictor samples are generated by mixing samples of the first and second predictors along a boundary between the first and second geometric partitions, wherein out-of-bounds samples of the first and second predictors are excluded from the mixing. 如請求項1所述之視訊編解碼方法,其中所生成的預測子是組合的幀間幀內預測,其中該第一參考塊提供幀間預測樣本並且該第二參考塊提供幀內預測樣本。A video coding and decoding method as described in claim 1, wherein the generated predictor is a combined inter-frame and intra-frame prediction, wherein the first reference block provides inter-frame prediction samples and the second reference block provides intra-frame prediction samples. 如請求項1所述之視訊編解碼方法,還包括對第三參考塊執行附加越界檢查,其中進一步基於該第三參考塊和該附加越界檢查生成該預測子。The video encoding and decoding method as described in claim 1 also includes performing an additional out-of-bounds check on a third reference block, wherein the predictor is further generated based on the third reference block and the additional out-of-bounds check. 如請求項1所述之視訊編解碼方法,其中,該第一塊向量被細化以最小化在鄰近該第一參考塊的參考模板和鄰近該當前塊的當前模板之間計算的模板匹配成本,其中該參考模板的越界樣本被排除在該成本計算之外。A video encoding and decoding method as described in claim 1, wherein the first block vector is refined to minimize the template matching cost calculated between a reference template adjacent to the first reference block and a current template adjacent to the current block, wherein out-of-bounds samples of the reference template are excluded from the cost calculation. 如請求項1所述之視訊編解碼方法,其中基於該第一和第二參考塊細化該第一和第二塊向量以最小化雙邊匹配成本,其中該第一和第二參考塊中的越界樣本被排除在該成本計算之外。A video coding and decoding method as described in claim 1, wherein the first and second block vectors are refined based on the first and second reference blocks to minimize the bilateral matching cost, wherein out-of-bounds samples in the first and second reference blocks are excluded from the cost calculation. 一種電子裝置,包括: 視訊編碼器電路,配置為執行操作,包括: 接收待編碼或解碼為視訊的當前圖片的當前塊的資料; 基於該當前塊的第一塊向量識別第一參考圖片中的第一參考塊; 基於該當前塊的第二塊向量識別第二參考圖片中的第二參考塊; 對第一和第二參考塊進行越界檢查; 基於該第一和第二參考塊並基於該越界檢查生成該當前塊的預測子,其中當該第一參考塊的樣本是越界時,雙向運動補償不應用於水平方向和垂直方向中的至少一個方向;以及 使用生成的該預測子對該當前塊進行編碼或解碼。 An electronic device, comprising: A video encoder circuit, configured to perform operations, including: Receiving data of a current block of a current picture to be encoded or decoded as a video; Identifying a first reference block in a first reference picture based on a first block vector of the current block; Identifying a second reference block in a second reference picture based on a second block vector of the current block; Performing an out-of-bounds check on the first and second reference blocks; Generating a predictor of the current block based on the first and second reference blocks and based on the out-of-bounds check, wherein when a sample of the first reference block is out-of-bounds, bidirectional motion compensation is not applied to at least one of the horizontal direction and the vertical direction; and Encoding or decoding the current block using the generated predictor. 一種視訊解碼方法,包括: 接收待解碼為視訊的當前圖片的當前塊的資料; 基於該當前塊的第一塊向量識別第一參考圖片中的第一參考塊; 基於該當前塊的第二塊向量識別第二參考圖片中的第二參考塊; 對該第一和第二參考塊進行越界檢查; 基於該第一和第二參考塊並基於該越界檢查生成該當前塊的預測子,其中當該第一參考塊的樣本是越界時,雙向運動補償不應用於水平方向和垂直方向中的至少一個方向;以及 使用生成的該預測子重建該當前塊。 A video decoding method, comprising: receiving data of a current block of a current picture to be decoded as a video; identifying a first reference block in a first reference picture based on a first block vector of the current block; identifying a second reference block in a second reference picture based on a second block vector of the current block; performing an out-of-bounds check on the first and second reference blocks; generating a predictor of the current block based on the first and second reference blocks and based on the out-of-bounds check, wherein when a sample of the first reference block is out-of-bounds, bidirectional motion compensation is not applied to at least one of the horizontal direction and the vertical direction; and reconstructing the current block using the generated predictor.
TW112125288A 2022-07-06 2023-07-06 Prediction generation with out-of-boundary check in video coding TW202420819A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US63/367,738 2022-07-06
WOPCT/CN2023/098287 2023-06-05

Publications (1)

Publication Number Publication Date
TW202420819A true TW202420819A (en) 2024-05-16

Family

ID=

Similar Documents

Publication Publication Date Title
US11172203B2 (en) Intra merge prediction
TWI719542B (en) Video encoding/decoding method and apparatus
US11297348B2 (en) Implicit transform settings for coding a block of pixels
TWI792152B (en) Video processing methods and apparatuses in video coding systems
US11924413B2 (en) Intra prediction for multi-hypothesis
TW202046718A (en) Mutual excluding settings for multiple tools
TW201946470A (en) Signaling for illumination compensation
CN113455003A (en) Intra-frame block copy merge list reduction
TWI734268B (en) Signaling for multi-reference line prediction and multi-hypothesis prediction
CN111837395A (en) Decoder-side motion derivation based on processing parameters
CN112840645A (en) Method and apparatus for combining multiple predictors for block prediction in a video coding system
TW201939947A (en) Intelligent mode assignment in video coding
TW202420819A (en) Prediction generation with out-of-boundary check in video coding
WO2024007789A1 (en) Prediction generation with out-of-boundary check in video coding
WO2024017224A1 (en) Affine candidate refinement
WO2023198187A1 (en) Template-based intra mode derivation and prediction
WO2024037645A1 (en) Boundary sample derivation in video coding
WO2024027700A1 (en) Joint indexing of geometric partitioning mode in video coding
TW202412526A (en) Out-of-boundary check in video coding
TW202408232A (en) Updating motion attributes of merge candidates
TW202402054A (en) Threshold of similarity for candidate list
TW202416713A (en) Affine candidate refinement
TW202404354A (en) Prediction refinement with convolution model
TW202345602A (en) Extended template matching for video coding
TW202415066A (en) Multiple hypothesis prediction coding