TWI704800B - Boundary filtering for sub-block - Google Patents

Boundary filtering for sub-block Download PDF

Info

Publication number
TWI704800B
TWI704800B TW108123080A TW108123080A TWI704800B TW I704800 B TWI704800 B TW I704800B TW 108123080 A TW108123080 A TW 108123080A TW 108123080 A TW108123080 A TW 108123080A TW I704800 B TWI704800 B TW I704800B
Authority
TW
Taiwan
Prior art keywords
block
sub
boundary
filtering
samples
Prior art date
Application number
TW108123080A
Other languages
Chinese (zh)
Other versions
TW202007149A (en
Inventor
張凱
張莉
劉鴻彬
王悅
Original Assignee
大陸商北京字節跳動網絡技術有限公司
美商字節跳動有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商北京字節跳動網絡技術有限公司, 美商字節跳動有限公司 filed Critical 大陸商北京字節跳動網絡技術有限公司
Publication of TW202007149A publication Critical patent/TW202007149A/en
Application granted granted Critical
Publication of TWI704800B publication Critical patent/TWI704800B/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Abstract

Devices, systems and methods for boundary filtering for sub-block based prediction are described. Partitioning a block can result in discontinuities between adjacent sub-blocks that may introduce some undesirable high-frequency energy in the residual signal, which can deteriorate the performance of subsequent transform coding. Implementations of the disclosed technology can reduce the effect of the discontinuities. In a representative aspect, a method for video coding includes partitioning a block of video data into multiple sub-blocks, filtering, using a set of filter taps/coefficients, boundary samples of at least one sub-block of the multiple sub-blocks to generate filtered boundary samples, and perform prediction of the block of video data using the filtered boundary samples.

Description

子塊的邊界濾波Sub-block boundary filtering

本專利文件一般涉及圖像和視頻編碼技術。 [相關申請案的交叉參考]This patent document generally involves image and video coding technology. [Cross reference of related applications]

根據適用的專利法和/或依據巴黎公約的規則,本申請是為了及時要求2018年6月29日提交的國際專利申請號PCT/CN2018/093634的優先權和權益。根據美國法律的所有目的,國際專利申請號PCT/CN2018/093634的全部公開內容通過引用結合在此作為本專利文件的公開內容的一部分。In accordance with the applicable patent law and/or in accordance with the rules of the Paris Convention, this application is to timely claim the priority and rights of the international patent application number PCT/CN2018/093634 filed on June 29, 2018. For all purposes of US law, the entire disclosure of International Patent Application No. PCT/CN2018/093634 is incorporated herein by reference as a part of the disclosure of this patent document.

運動補償是視頻處理中的通過考慮相機和/或視頻中的物件的運動,在給定之前的影格和/或未來的影格的情況下預測視頻中的影格的技術。運動補償可以用於視訊壓縮的視頻資料的編碼和解碼。Motion compensation is a technique in video processing that predicts the frame in the video given the previous frame and/or the future frame by considering the motion of the camera and/or the object in the video. Motion compensation can be used for encoding and decoding of video data compressed by video.

描述了用於圖像和視頻編碼、與用於基於子塊的預測的邊界濾波相關的設備、系統和方法。Described are devices, systems, and methods for image and video coding related to boundary filtering for sub-block-based prediction.

在一個代表性方面,所公開的技術可以用於提供用於視頻編碼的方法,該方法包括將當前視頻資料塊分割為多個子塊,為多個子塊中的至少一個子塊生成預測子塊,使用一組濾波器係數對至少一個子塊的預測子塊的邊界樣本進行濾波以生成經濾波的邊界樣本,以及使用經濾波的邊界樣本確定當前視頻資料塊的最終預測塊。In a representative aspect, the disclosed technology can be used to provide a method for video encoding, the method includes dividing a current video material block into a plurality of sub-blocks, and generating a prediction sub-block for at least one of the plurality of sub-blocks, A set of filter coefficients is used to filter the boundary samples of the predicted sub-block of at least one sub-block to generate filtered boundary samples, and the filtered boundary samples are used to determine the final prediction block of the current video data block.

在另一代表性方面,所公開的技術可以用於提供用於視頻解碼的方法,該方法包括使用一組濾波器係數對預測子塊的邊界樣本進行濾波以生成經濾波的邊界樣本。為當前視頻塊的多個子塊的至少一個子塊生成預測子塊。該方法還包括使用經濾波的邊界樣本執行視頻資料的當前視頻塊的預測,以及使用預測重構當前視頻塊。In another representative aspect, the disclosed technology may be used to provide a method for video decoding, the method including filtering boundary samples of a prediction sub-block using a set of filter coefficients to generate filtered boundary samples. A prediction sub-block is generated for at least one sub-block of the multiple sub-blocks of the current video block. The method also includes performing prediction of the current video block of the video material using the filtered boundary samples, and reconstructing the current video block using the prediction.

在又一代表性方面,公開了一種被配置為或可操作以執行上述方法的設備。該設備可以包括被程式設計為實施該方法的處理器。In yet another representative aspect, a device configured or operable to perform the above method is disclosed. The device may include a processor programmed to implement the method.

在又一代表性方面,視訊編碼器裝置可以實施如本文所描述的方法。在又一代表性方面,視頻解碼器裝置可以實施如本文所描述的方法。In yet another representative aspect, the video encoder device may implement the method as described herein. In yet another representative aspect, the video decoder device may implement the method as described herein.

在再一代表性方面,上述方法以處理器可運行代碼的形式實施並儲存在電腦可讀程式介質中。In yet another representative aspect, the above method is implemented in the form of processor executable code and stored in a computer-readable program medium.

在附圖、說明書和申請專利範圍中更詳細地描述了所公開的技術的上述和其他方面和特徵。The above and other aspects and features of the disclosed technology are described in more detail in the drawings, specification, and scope of patent application.

由於對更高解析度視頻的需求的增加,視頻編碼方法和技術在現代技術中無所不在。視頻編解碼器典型地包括壓縮或解壓縮數位視頻的電子電路或軟體,並且不斷改進以提供更高的編碼效率。視頻編解碼器將未壓縮視頻轉換為壓縮格式,反之亦然。視頻品質、用於表示視頻的資料量(由位元速率確定)、編碼和解碼演算法的複雜性、對資料丟失和錯誤的敏感性、編輯的簡易性、隨機訪問和端到端延時(延遲)之間存在複雜的關係。壓縮格式通常符合標準視頻壓縮規範,例如,高效視頻編碼(High Efficiency Video Coding,HEVC)標準(也稱為H.265或MPEG-H第2部分)、要完成的多功能視頻編碼標準、或者其他當前和/或未來的視頻編碼標準。Due to the increasing demand for higher-resolution video, video coding methods and technologies are ubiquitous in modern technologies. Video codecs typically include electronic circuits or software that compress or decompress digital video, and are constantly being improved to provide higher coding efficiency. Video codecs convert uncompressed video to compressed format and vice versa. Video quality, the amount of data used to represent the video (determined by the bit rate), the complexity of encoding and decoding algorithms, the sensitivity to data loss and errors, ease of editing, random access and end-to-end delay (delay ) There is a complicated relationship. The compression format usually conforms to standard video compression specifications, for example, the High Efficiency Video Coding (HEVC) standard (also known as H.265 or MPEG-H Part 2), the multifunctional video coding standard to be completed, or other Current and/or future video coding standards.

通過高效視頻編碼(HEVC)標準首先將基於子塊的預測引入到視頻編碼標準中。利用基於子塊的預測,諸如編碼單元(Coding Unit,CU)或預測單元(Prediction Unit,PU)的塊被劃分為若干非重疊子塊。可以為不同的子塊分配不同的運動資訊,諸如參考索引或運動向量(Motion Vector,MV),並且針對每個子塊單獨地執行運動補償(Motion Compensation,MC)。圖1示出了基於子塊的預測的示例。First, the sub-block-based prediction is introduced into the video coding standard through the High Efficiency Video Coding (HEVC) standard. With sub-block-based prediction, a block such as a coding unit (Coding Unit, CU) or a prediction unit (Prediction Unit, PU) is divided into several non-overlapping sub-blocks. Different sub-blocks can be assigned different motion information, such as a reference index or a motion vector (Motion Vector, MV), and motion compensation (Motion Compensation, MC) can be performed separately for each sub-block. Fig. 1 shows an example of sub-block-based prediction.

所公開的技術的實施例可以應用於現有視頻編碼標準(例如,HEVC,H.265)和未來標準以改進運行時性能。在本文件中使用章節標題以提高描述的可讀性,並且不以任何方式將討論或實施例(和/或實施方式)僅限制於相應的章節。The embodiments of the disclosed technology can be applied to existing video coding standards (for example, HEVC, H.265) and future standards to improve runtime performance. The chapter titles are used in this document to improve the readability of the description, and the discussion or examples (and/or implementation) are not limited to the corresponding chapters in any way.

1.基於子塊的預測的示例1. Example of prediction based on sub-block

使用被稱為聯合探索模型(Joint Exploration Model,JEM)的參考軟體來研究未來的視頻編碼技術。在JEM中,在若干編碼工具中採用基於子塊的預測,諸如,仿射預測、可選時域運動向量預測(Alternative Temporal Motion Vector Prediction,ATMVP)、空時運動向量預測(Spatial-Temporal Motion Vector Prediction,STMVP)、雙向光流(Bi-Directional Optical Flow,BIO)、影格速率上轉換(Frame-Rate Up Conversion,FRUC)、局部自適應運動向量解析度(Locally Adaptive Motion Vector Resolution,LAMVR)、重疊塊運動補償(Overlapped Block Motion Compensation,OBMC)、局部照明補償(Local Illumination Compensation,LIC)和解碼器側運動向量細化(Decoder-side Motion Vector Refinement,DMVR)。Use a reference software called Joint Exploration Model (JEM) to study future video coding technologies. In JEM, sub-block-based prediction is used in several coding tools, such as affine prediction, alternative temporal motion vector prediction (Alternative Temporal Motion Vector Prediction, ATMVP), and spatial-temporal motion vector prediction (Spatial-Temporal Motion Vector). Prediction, STMVP), Bi-Directional Optical Flow (BIO), Frame-Rate Up Conversion (FRUC), Locally Adaptive Motion Vector Resolution (LAMVR), overlap Overlapped Block Motion Compensation (OBMC), Local Illumination Compensation (LIC), and Decoder-side Motion Vector Refinement (DMVR).

1.1仿射預測的示例1.1 Examples of affine prediction

在HEVC中,僅將平移(translation)運動模型應用於運動補償預測(Motion Compensation Prediction,MCP)。然而,相機和物件可以具有多種運動,例如,放大/縮小、旋轉、透視運動和/或其他不規則運動。另一方面,JEM應用簡化的仿射變換運動補償預測。圖2示出了由兩個控制點運動向量V0和V1描述的塊200的仿射運動場的示例。塊200的運動向量場(Motion Vector Field,MVF)可以通過以下等式描述:

Figure 02_image001
等式(1)In HEVC, only translation (translation) motion models are applied to motion compensation prediction (Motion Compensation Prediction, MCP). However, the camera and the object may have various movements, for example, zoom in/out, rotation, perspective motion, and/or other irregular motions. On the other hand, JEM applies simplified affine transform motion compensation prediction. FIG. 2 shows an example of the affine motion field of the block 200 described by two control point motion vectors V0 and V1. The Motion Vector Field (MVF) of block 200 can be described by the following equation:
Figure 02_image001
Equation (1)

如圖2所示,(v0x ,v0y )是左上角控制點的運動向量,(v1x ,v1y )是右上角控制點的運動向量。為了簡化運動補償預測,可以應用基於子塊的仿射變換預測。子塊尺寸M×N如下推導:

Figure 02_image004
等式(2)As shown in Figure 2, (v 0x , v 0y ) is the motion vector of the control point in the upper left corner, and (v 1x , v 1y ) is the motion vector of the control point in the upper right corner. In order to simplify the motion compensation prediction, sub-block-based affine transform prediction can be applied. The sub-block size M×N is derived as follows:
Figure 02_image004
Equation (2)

這裡,MvPre 是運動向量分數精度(例如,JEM中的1/16)。(v2x ,v2y )是左下控制點的運動向量,根據等式(1)計算。如果需要,可以向下調整MN ,使其分別為wh 的除數。Here, MvPre is the motion vector score accuracy (for example, 1/16 in JEM). (v 2x ,v 2y ) is the motion vector of the lower left control point, calculated according to equation (1). If necessary, you can adjust M and N downwards so that they are divisors of w and h , respectively.

圖3示出了塊300的每個子塊的仿射MVF的示例。為了推導每個M×N子塊的運動向量,可以根據等式(1)計算每個子塊的中心樣本的運動向量,並取整到運動向量分數精度(例如,JEM中的1/16)。然後,可以應用運動補償插值濾波器以利用推導的運動向量生成每個子塊的預測。在MCP之後,每個子塊的高精度運動向量被取整並被保存為與正常運動向量的精度相同的精度。FIG. 3 shows an example of the affine MVF of each sub-block of the block 300. In order to derive the motion vector of each M×N sub-block, the motion vector of the center sample of each sub-block can be calculated according to equation (1) and rounded to the accuracy of the motion vector score (for example, 1/16 in JEM). Then, a motion compensation interpolation filter can be applied to generate a prediction for each sub-block using the derived motion vector. After the MCP, the high-precision motion vector of each sub-block is rounded and saved to the same accuracy as that of the normal motion vector.

1.2可選時域運動向量預測(ATMVP)的示例1.2 Examples of optional temporal motion vector prediction (ATMVP)

在ATMVP方法中,通過從小於當前CU的塊中提取多組運動資訊(包括運動向量和參考索引)來修改時域運動向量預測(TMVP)方法。In the ATMVP method, the temporal motion vector prediction (TMVP) method is modified by extracting multiple sets of motion information (including motion vectors and reference indexes) from blocks smaller than the current CU.

圖4示出了用於CU 400的ATMVP運動預測過程的示例。ATMVP方法以兩個步驟預測CU 400內的子CU 401的運動向量。第一步驟是利用時域向量識別參考圖片450中的對應塊451。參考圖片450也被稱為運動源圖片。第二步驟是將當前CU 400分成子CU 401,並從與每個子CU相對應的塊獲得每個子CU的運動向量以及參考索引。FIG. 4 shows an example of the ATMVP motion prediction process for the CU 400. The ATMVP method predicts the motion vector of the sub-CU 401 in the CU 400 in two steps. The first step is to use the time domain vector to identify the corresponding block 451 in the reference picture 450. The reference picture 450 is also called a motion source picture. The second step is to divide the current CU 400 into sub-CUs 401, and obtain the motion vector and reference index of each sub-CU from the block corresponding to each sub-CU.

在第一步驟中,參考圖片450和對應塊由當前CU 400的空間相鄰塊的運動資訊確定。為了避免相鄰塊的重複掃描過程,使用當前CU 400的Merge候選列表中的第一Merge候選。第一可用運動向量及其相關聯的參考索引被設置為時域向量和對運動源圖片的索引。這樣,與TMVP相比,可以更準確地識別對應塊,其中對應塊(有時被稱為共位塊(collocated block))總是相對於當前CU處於右下或中心位置。In the first step, the reference picture 450 and the corresponding block are determined by the motion information of the spatial neighboring blocks of the current CU 400. In order to avoid the repeated scanning process of neighboring blocks, the first Merge candidate in the Merge candidate list of the current CU 400 is used. The first available motion vector and its associated reference index are set as the time domain vector and the index to the motion source picture. In this way, compared with TMVP, the corresponding block can be identified more accurately, where the corresponding block (sometimes called a collocated block) is always in the lower right or center position relative to the current CU.

在第二步驟中,通過向當前CU的座標添加時域向量,由運動源圖片450中的時域向量識別子CU 451的對應塊。對於每個子CU,其對應塊的運動資訊(例如,覆蓋中心樣本的最小運動網格)用於推導子CU的運動資訊。在識別出對應的NxN塊的運動資訊之後,以與HEVC的TMVP相同的方式將其轉換為當前子CU的運動向量和參考索引,其中運動縮放和其他過程適用。例如,解碼器檢查是否滿足低延時條件(例如,當前圖片的所有參考圖片的POC小於當前圖片的POC)並且可能使用運動向量MVx(例如,與參考圖片列表X相對應的運動向量)來用於預測每個子CU的運動向量MVy(例如,其中X等於0或1並且Y等於1-X)。In the second step, by adding a time domain vector to the coordinates of the current CU, the corresponding block of the sub-CU 451 is identified from the time domain vector in the motion source picture 450. For each sub-CU, the motion information of the corresponding block (for example, the smallest motion grid covering the center sample) is used to derive the motion information of the sub-CU. After the motion information of the corresponding NxN block is identified, it is converted into the motion vector and reference index of the current sub-CU in the same way as the TMVP of HEVC, where motion scaling and other processes are applicable. For example, the decoder checks whether low-latency conditions are met (for example, the POC of all reference pictures of the current picture is less than the POC of the current picture) and may use the motion vector MVx (for example, the motion vector corresponding to the reference picture list X) for Predict the motion vector MVy of each sub-CU (for example, where X is equal to 0 or 1 and Y is equal to 1-X).

1.3空時運動向量預測(STMVP)的示例1.3 Examples of Space-Time Motion Vector Prediction (STMVP)

在STMVP方法中,遵循光柵掃描順序遞迴地推導子CU的運動向量。圖5示出了具有四個子塊和相鄰塊的一個CU的示例。考慮包括四個4×4子CU A(501)、B(502)、C(503)和D(504)的8×8 CU 500。當前影格中的相鄰4×4塊被標記為a(511)、b(512)、c(513)和d(514)。In the STMVP method, the motion vector of the sub-CU is derived recursively following the raster scan order. Fig. 5 shows an example of one CU with four sub-blocks and neighboring blocks. Consider an 8×8 CU 500 that includes four 4×4 sub CUs A (501), B (502), C (503), and D (504). The adjacent 4×4 blocks in the current frame are labeled a (511), b (512), c (513), and d (514).

子CU A的運動推導通過識別其兩個空間鄰居開始。第一鄰居是子CU A 501之上的N×N塊(塊c 513)。如果該塊c(513)不可用或者是影格內編碼,則檢查子CU A(501)上方的其他N×N個塊(從左到右,從塊c 513開始)。第二鄰居是子CU A 501左側的塊(塊b 512)。如果塊b(512)不可用或者是影格內編碼,則檢查子CU A 501左側的其他塊(從上到下,從塊b 512開始)。從每個列表的相鄰塊獲得的運動資訊被縮放到給定列表的第一參考影格。接下來,通過遵循與HEVC中指定的TMVP推導相同的過程來推導子塊A 501的時間運動向量預測值(TMVP)。在塊D 504處的共位塊的運動資訊被相應地提取和縮放。最後,在檢索和縮放運動資訊之後,對每個參考列表分別平均所有可用運動向量。平均的運動向量被指定為當前子CU的運動向量。The motion derivation of sub CU A starts by identifying its two spatial neighbors. The first neighbor is the N×N block above the sub-CU A 501 (block c 513). If the block c (513) is not available or is in-frame coding, then check the other N×N blocks above the sub-CU A (501) (from left to right, starting from block c 513). The second neighbor is the block to the left of the sub-CU A 501 (block b 512). If block b (512) is not available or is intra-frame coding, check other blocks on the left side of sub-CU A 501 (from top to bottom, starting from block b 512). The motion information obtained from the neighboring blocks of each list is scaled to the first reference frame of the given list. Next, the temporal motion vector prediction value (TMVP) of the sub-block A 501 is derived by following the same process as the TMVP derivation specified in HEVC. The motion information of the co-located block at block D 504 is extracted and scaled accordingly. Finally, after retrieving and scaling the motion information, all available motion vectors are averaged for each reference list. The average motion vector is designated as the motion vector of the current sub-CU.

1.4雙向光流(BIO)的示例1.4 Example of bidirectional optical flow (BIO)

可以根據一個參考圖片執行運動估計(也被稱為單向預測)或者根據兩個參考圖片執行運動估計(也被稱為雙向預測)。雙向光流(BIO)方法是在用於雙向預測的逐塊(block-wise)運動補償之上執行的逐樣本(sample-wise)運動細化。在一些實施方式中,樣本級運動細化不使用信令。Motion estimation can be performed based on one reference picture (also called unidirectional prediction) or based on two reference pictures (also called bidirectional prediction). The Bidirectional Optical Flow (BIO) method is a sample-wise motion refinement performed on top of block-wise motion compensation for bidirectional prediction. In some embodiments, sample-level motion refinement does not use signaling.

Figure 02_image006
是塊運動補償之後的參考k(k=0,1)的亮度值,並且
Figure 02_image008
分別是
Figure 02_image006
梯度的水平和垂直分量。假設光流有效,運動向量場
Figure 02_image010
由下式給出:
Figure 02_image011
等式(3)Assume
Figure 02_image006
Is the luminance value of reference k (k=0,1) after block motion compensation, and
Figure 02_image008
Respectively are
Figure 02_image006
The horizontal and vertical components of the gradient. Assuming that the optical flow is valid, the motion vector field
Figure 02_image010
It is given by:
Figure 02_image011
Equation (3)

為了每個樣本的運動軌跡,將這個光流等式與Hermite插值相結合,結果是匹配函數值

Figure 02_image006
和末端導數
Figure 02_image008
兩者的唯一的三階多項式。該多項式在t=0時的值是BIO預測:
Figure 02_image013
等式(4)For the trajectory of each sample, the optical flow equation is combined with Hermite interpolation, and the result is the matching function value
Figure 02_image006
And terminal derivative
Figure 02_image008
The only third-order polynomial of both. The value of the polynomial at t=0 is the BIO prediction:
Figure 02_image013
Equation (4)

圖6示出了雙向光流(BIO)方法中的示例光流軌跡。這裡,

Figure 02_image016
Figure 02_image018
表示到參考影格的距離。基於Ref0 和Ref1 的POC計算距離
Figure 02_image016
Figure 02_image018
Figure 02_image016
=POC(當前)-POC(Ref0 ),
Figure 02_image018
=POC(Ref1 )-POC(當前)。如果兩個預測都來自相同的時間方向(兩者都來自過去或兩者都來自未來),則符號是不同的(例如,
Figure 02_image020
)。在這種情況下,如果預測不是來自相同的時刻(例如,
Figure 02_image022
),則應用BIO。參考區域兩者都具有非零運動(例如,
Figure 02_image024
),並且塊運動向量與時間距離成比例(例如,
Figure 02_image026
)。Figure 6 shows an example optical flow trajectory in the bidirectional optical flow (BIO) method. Here,
Figure 02_image016
with
Figure 02_image018
Indicates the distance to the reference frame. Calculate distance based on POC of Ref 0 and Ref 1
Figure 02_image016
with
Figure 02_image018
:
Figure 02_image016
=POC(current)-POC(Ref 0 ),
Figure 02_image018
=POC(Ref 1 )-POC(current). If both predictions are from the same time direction (both from the past or both from the future), the signs are different (for example,
Figure 02_image020
). In this case, if the prediction is not from the same moment (for example,
Figure 02_image022
), then apply BIO. Both reference areas have non-zero motion (e.g.,
Figure 02_image024
), and the block motion vector is proportional to the time distance (for example,
Figure 02_image026
).

通過最小化點A和B中的值之間的差Δ來確定運動向量場

Figure 02_image010
。圖7A至圖7B示出了運動軌跡和參考影格平面的交叉的示例。對於Δ,模型僅使用局部泰勒展開的第一個線性項:
Figure 02_image027
等式(5)Determine the motion vector field by minimizing the difference Δ between the values in points A and B
Figure 02_image010
. 7A to 7B show examples of the intersection of the motion trajectory and the reference frame plane. For Δ, the model only uses the first linear term of the local Taylor expansion:
Figure 02_image027
Equation (5)

上述等式中的所有值取決於樣本位置,表示為

Figure 02_image030
。假設運動在局部周圍區域是一致的,Δ可以在以當前預測點
Figure 02_image032
為中心的(2M+1)x(2M+1)方窗口
Figure 02_image034
內最小化,其中M等於2:
Figure 02_image035
等式(6)All values in the above equation depend on the sample position and are expressed as
Figure 02_image030
. Assuming that the motion is consistent in the local surrounding area, Δ can be used at the current prediction point
Figure 02_image032
Centered (2M+1)x(2M+1) square window
Figure 02_image034
Minimize within, where M is equal to 2:
Figure 02_image035
Equation (6)

對於該優化問題,JEM使用簡化的方法,首先在垂直方向上進行最小化,然後在水平方向上進行最小化。這引起以下結果:

Figure 02_image038
等式(7)
Figure 02_image040
等式(8) 其中,
Figure 02_image041
等式(9)For this optimization problem, JEM uses a simplified method, first minimizing in the vertical direction, and then minimizing in the horizontal direction. This causes the following results:
Figure 02_image038
Equation (7)
Figure 02_image040
Equation (8) where,
Figure 02_image041
Equation (9)

為了避免除以零或非常小的值,可以在等式(7)和等式(8)中引入正則化參數r和m。其中:

Figure 02_image044
等式(10)
Figure 02_image046
等式(11)In order to avoid division by zero or very small values, regularization parameters r and m can be introduced in equation (7) and equation (8). among them:
Figure 02_image044
Equation (10)
Figure 02_image046
Equation (11)

這裡,d是視頻樣本的位元深度。Here, d is the bit depth of the video sample.

為了保持BIO的記憶體訪問與常規雙向預測運動補償相同,所有預測和梯度值,

Figure 02_image048
,是針對當前塊內的位置計算的。圖7A示出了塊700外部的訪問位置的示例。如圖7A所示,在等式(9)中,以預測塊的邊界上的當前預測點為中心的(2M+1)x(2M+1)方視窗Ω需要訪問塊外部的位置。在JEM中,塊外部的
Figure 02_image048
的值被設置為等於塊內最近的可用的值。例如,這可以被實施為填充區域701,如圖7B所示。In order to keep the memory access of BIO the same as the conventional two-way predictive motion compensation, all predictions and gradient values,
Figure 02_image048
, Is calculated for the position in the current block. FIG. 7A shows an example of an access location outside the block 700. As shown in FIG. 7A, in equation (9), the (2M+1)x(2M+1) square window Ω centered on the current prediction point on the boundary of the prediction block needs to access a location outside the block. In JEM, outside the block
Figure 02_image048
The value of is set equal to the nearest available value in the block. For example, this can be implemented as a filled area 701, as shown in Figure 7B.

使用BIO,可能可以針對每個樣本細化運動場。為了降低計算複雜度,在JEM中使用BIO的基於塊的設計。可以基於4×4塊來計算運動細化。在基於塊的BIO中,4×4塊中的所有樣本的等式(9)中的sn 的值可以被聚合,並且然後將sn 的聚合值用於推導4×4塊的BIO運動向量偏移。更具體地,以下公式可用於基於塊的BIO推導:

Figure 02_image049
等式(12)Using BIO, it is possible to refine the playing field for each sample. In order to reduce computational complexity, BIO's block-based design is used in JEM. The motion refinement can be calculated based on 4×4 blocks. In block-based BIO, the value s n is 4 × 4 blocks in all samples in equation (9) may be polymerized, and the polymerization is then used to derive values of s n BIO 4 × 4 motion vector block Offset. More specifically, the following formula can be used for block-based BIO derivation:
Figure 02_image049
Equation (12)

這裡,bk 表示屬於預測塊的第k個4×4塊的樣本集。等式(7)和等式(8)中的sn 由((sn ,bk )>>4)代替,以推導相關聯的運動向量偏移。Here, b k represents the sample set of the k-th 4×4 block belonging to the prediction block. S n in equation (7) and equation (8) is replaced by ((s n ,b k )>>4) to derive the associated motion vector offset.

在JEM中,僅針對亮度分量調用BIO。In JEM, BIO is only called for the luminance component.

1.5影格速率上轉換(FRUC)的示例1.5 Example of Frame Rate Up Conversion (FRUC)

當CU的Merge標誌為真時,可以為CU信令通知FRUC標誌。當FRUC標誌為假時,可以信令通知Merge索引並且使用常規Merge模式。當FRUC標誌為真時,可以信令通知額外的FRUC模式標誌以指示將使用哪種方法(例如,雙邊匹配或模板匹配)來推導塊的運動資訊。When the Merge flag of the CU is true, the FRUC flag can be notified for CU signaling. When the FRUC flag is false, the Merge index can be signaled and the regular Merge mode is used. When the FRUC flag is true, an additional FRUC mode flag can be signaled to indicate which method (for example, bilateral matching or template matching) will be used to derive the motion information of the block.

在編碼器側,關於是否對CU使用FRUC Merge模式的決定是基於對正常Merge候選所做的RD成本選擇。例如,通過使用RD成本選擇來檢查CU的多個匹配模式(例如,雙邊匹配和模板匹配)。引起最小成本的那個匹配模式與其他CU模式進一步比較。如果FRUC匹配模式是最有效的模式,則對於CU將FRUC標誌設置為真,並使用相關匹配模式。On the encoder side, the decision on whether to use the FRUC Merge mode for the CU is based on the RD cost selection made for the normal Merge candidates. For example, by using RD cost selection to check multiple matching modes of CU (for example, bilateral matching and template matching). The matching mode that causes the least cost is further compared with other CU modes. If the FRUC matching mode is the most effective mode, set the FRUC flag to true for the CU and use the relevant matching mode.

典型地,FRUC Merge模式中的運動推導過程具有兩個步驟:首先執行CU級運動搜索,然後執行子CU級運動細化。在CU級,基於雙邊匹配或模板匹配為整個CU推導初始運動向量。首先,生成MV候選列表,並且將引起最小匹配成本的候選選擇為進一步的CU級細化的起始點。然後,在起始點周圍執行基於雙邊匹配或範本匹配的局部搜索。將引起最小匹配成本的MV作為整個CU的MV。隨後,以推導的CU運動向量為起始點,在子CU級進一步細化運動資訊。Typically, the motion derivation process in the FRUC Merge mode has two steps: first perform a CU-level motion search, and then perform sub-CU-level motion refinement. At the CU level, the initial motion vector is derived for the entire CU based on bilateral matching or template matching. First, a list of MV candidates is generated, and the candidate that causes the smallest matching cost is selected as the starting point for further CU-level refinement. Then, a local search based on bilateral matching or template matching is performed around the starting point. The MV that causes the smallest matching cost is taken as the MV of the entire CU. Subsequently, the derived CU motion vector is used as the starting point to further refine the motion information at the sub-CU level.

例如,針對

Figure 02_image052
CU運動資訊推導執行以下推導過程。在第一階段,推導整個
Figure 02_image054
CU的MV。在第二階段,CU進一步被分成
Figure 02_image056
子CU。如等式(13)中那樣計算M的值,D是預定義的分裂深度,其在JEM中默認設置為3。然後推導每個子CU的MV。
Figure 02_image058
等式(13)For example, for
Figure 02_image052
CU motion information derivation performs the following derivation process. In the first stage, the whole
Figure 02_image054
CU’s MV. In the second stage, CU is further divided into
Figure 02_image056
Child CU. Calculate the value of M as in equation (13). D is the predefined split depth, which is set to 3 by default in JEM. Then derive the MV of each sub-CU.
Figure 02_image058
Equation (13)

圖8示出了在影格速率上轉換(FRUC)方法中使用的雙邊匹配的示例。雙邊匹配用於找到兩個不同的參考圖片(810、811)中的沿著當前CU(800)的運動軌跡的兩個塊之間的最接近匹配來推導當前CU的運動資訊。在連續運動軌跡的假設下,指向兩個參考塊的運動向量MV0(801)和MV1(802)與當前圖片和兩張參考圖片之間的時間距離(例如,TD0(803)和TD1(804))成比例。在一些實施例中,當當前圖片800在時間上在兩個參考圖片(810、811)之間並且從當前圖片到兩個參考圖片的時間距離相同時,雙邊匹配變為基於鏡像的雙向MV。Figure 8 shows an example of bilateral matching used in the frame rate up conversion (FRUC) method. Bilateral matching is used to find the closest match between two blocks along the motion trajectory of the current CU (800) in two different reference pictures (810, 811) to derive the motion information of the current CU. Under the assumption of continuous motion trajectories, the time distance between the motion vectors MV0 (801) and MV1 (802) pointing to the two reference blocks and the current picture and two reference pictures (for example, TD0 (803) and TD1 (804) ) Proportional. In some embodiments, when the current picture 800 is temporally between two reference pictures (810, 811) and the temporal distance from the current picture to the two reference pictures is the same, the bilateral matching becomes a mirror-based two-way MV.

圖9示出了在影格速率上轉換(FRUC)方法中使用的範本匹配的示例。範本匹配可以用於通過找到當前圖片中的範本(例如,當前CU的頂部和/或左側相鄰塊)與參考圖片910中的塊(例如,與模板相同尺寸的塊)之間的最接近匹配來推導當前CU 900的運動資訊。除了前述FRUC Merge模式之外,模板匹配也可以應用於AMVP模式。在JEM和HEVC兩者中,AMVP有兩個候選。使用模板匹配方法,可以推導新的候選。如果通過模板匹配的新推導的候選與第一現有AMVP候選不同,則(例如,通過移除第二現有AMVP候選)將其插入AMVP候選列表的最開始,並且然後將列表尺寸設置為2。當應用於AMVP模式時,僅應用CU級搜索。Figure 9 shows an example of template matching used in the frame rate up conversion (FRUC) method. Template matching can be used to find the closest match between a template in the current picture (for example, the top and/or left adjacent block of the current CU) and a block in the reference picture 910 (for example, a block of the same size as the template) To derive the current movement information of CU 900. In addition to the aforementioned FRUC Merge mode, template matching can also be applied to AMVP mode. In both JEM and HEVC, AMVP has two candidates. Using template matching methods, new candidates can be derived. If the newly derived candidate matched by the template is different from the first existing AMVP candidate, it is inserted into the very beginning of the AMVP candidate list (for example, by removing the second existing AMVP candidate), and then the list size is set to 2. When applied to AMVP mode, only CU-level search is applied.

1.6在色度分量中為MC推導的MV的示例1.6 Example of MV derived for MC in chroma components

在一個示例中,HEVC標準定義如何從用於亮度分量中的MC的MV(標記為mv )推導用於色度分量中的MC的MV(標記為mvC )。一般而言,mvC 計算為mv 乘以因數,該因數依賴於顏色格式,例如4:2:0或4:2:2。In one example, HEVC standard defines how the luminance components from the MC for the MV (labeled mv) for deriving the MV MC chrominance component (labeled mvC). Generally speaking, mvC is calculated as mv multiplied by a factor, which depends on the color format, such as 4:2:0 or 4:2:2.

2.基於子塊的預測中的邊界濾波2. Boundary filtering in sub-block-based prediction

在一些現有實施方式中,使用基於子塊的預測,因為它通常比整塊預測更準確,因為它可以將塊分割為多個部分,各部分具有它們自己的MV。然而,分割可能導致沿其邊界的兩個相鄰子塊之間的不連續性。不連續性可能在殘差訊號中引入一些不期望的高頻能量,這可能惡化後續變換編碼的性能。In some existing implementations, sub-block-based prediction is used because it is generally more accurate than whole-block prediction because it can divide a block into multiple parts, each part having its own MV. However, segmentation may result in discontinuities between two adjacent sub-blocks along its boundary. The discontinuity may introduce some undesirable high-frequency energy in the residual signal, which may deteriorate the performance of subsequent transform coding.

在下面針對各種實施方式描述的示例中說明了為基於子塊的預測使用邊界濾波以提高視頻編碼效率(例如,減少子塊邊界處的不連續性)並增強現有和未來的視頻編碼標準。在以下不應被解釋為限制的示例中,分量的當前塊的寬度和高度分別被記為WH ,分配給分量的子塊的寬度和高度分別被記為whThe examples described below for various embodiments illustrate the use of boundary filtering for sub-block-based prediction to improve video coding efficiency (for example, to reduce discontinuities at sub-block boundaries) and to enhance existing and future video coding standards. In the following example that should not be interpreted as a limitation, the width and height of the current block of the component are denoted as W and H , respectively, and the width and height of the sub-block assigned to the component are denoted as W and h, respectively .

示例1.在沿著子塊的邊界的預測樣本用於確定當前塊的預測塊之前,對其進行濾波,該子塊由基於子塊的預測分割。 (a)在一個示例中,邊界僅包括如圖10A中的示例所示的內邊界(例如,子塊之間的邊界)。陰影區域覆蓋沿邊界的樣本。 (b)在一個示例中,邊界包括如圖10B中的示例所示的內邊界和外邊界(例如,子塊與已經編碼或解碼的其他塊之間的邊界)。陰影區域覆蓋沿邊界的樣本。 (c)在一個示例中,可以存在沿著垂直邊界的N(N>=0)列預測樣本和沿著水準邊界的M(M>=0)行預測樣本被濾波。圖11A和圖11B示出了對於M=N=2的預測樣本的示例。 (i)在一個示例中,M和/或N取決於子塊的寬度和高度;例如,如果子塊的形狀是4×4,則M=N=2;如果子塊的形狀是8×8,則M=N=4。 (ii)在一個示例中,M和/或N取決於顏色分量。例如,對於亮度分量,M=N=2;對於色度分量,M=N=1。 (iii)在一個示例中,M和/或N取決於邊界的位置。例如,如果邊界在子塊和編碼/解碼的相鄰塊之間,則M=N=2;如果邊界在兩個子塊之間,則M=N=1 (iv)在一個示例中,M和/或N可以取決於子塊的位置。可替換地,它可以取決於有多少相鄰塊被編碼/解碼,和/或有相鄰塊的多少預測塊是可用的。 (v)在一個示例中,M和N從編碼器向解碼器信令通知。例如,可以在視頻參數集(Video Parameter Set,VPS)、序列參數集(Sequence Parameter Set,SPS)、圖片參數集(Picture Parameter Set,PPS)、條帶標頭、編碼樹單元(Coding Tree Unit,CTU)或編碼單元(CU)中信令通知M和N。Example 1. The prediction samples along the boundary of the sub-block are filtered before they are used to determine the prediction block of the current block, and the sub-block is divided by the prediction based on the sub-block. (A) In one example, the boundary includes only the inner boundary (for example, the boundary between sub-blocks) as shown in the example in FIG. 10A. The shaded area covers the samples along the boundary. (B) In one example, the boundary includes the inner boundary and the outer boundary as shown in the example in FIG. 10B (for example, the boundary between a sub-block and other blocks that have been encoded or decoded). The shaded area covers the samples along the boundary. (C) In one example, there may be N (N>=0) columns of prediction samples along the vertical boundary and M (M>=0) rows of prediction samples along the horizontal boundary to be filtered. 11A and 11B show examples of prediction samples for M=N=2. (I) In an example, M and/or N depend on the width and height of the sub-block; for example, if the shape of the sub-block is 4×4, then M=N=2; if the shape of the sub-block is 8×8 , Then M=N=4. (Ii) In one example, M and/or N depend on color components. For example, for the luminance component, M=N=2; for the chrominance component, M=N=1. (Iii) In one example, M and/or N depend on the location of the boundary. For example, if the boundary is between a sub-block and the adjacent block to be coded/decoded, then M=N=2; if the boundary is between two sub-blocks, then M=N=1 (Iv) In one example, M and/or N may depend on the position of the sub-block. Alternatively, it may depend on how many neighboring blocks are encoded/decoded, and/or how many prediction blocks of neighboring blocks are available. (V) In one example, M and N are signaled from the encoder to the decoder. For example, video parameter set (Video Parameter Set, VPS), sequence parameter set (Sequence Parameter Set, SPS), picture parameter set (Picture Parameter Set, PPS), strip header, coding tree unit (Coding Tree Unit, CTU) or coding unit (CU) signaling M and N.

示例2.對沿著子塊的邊界的預測樣本的濾波可以依賴於相鄰的預測樣本。如果邊界是外邊界,即,它在子塊和編碼/解碼的相鄰塊之間,則濾波還可以依賴於編碼/解碼的相鄰塊的重構樣本。Example 2. The filtering of prediction samples along the boundaries of sub-blocks may depend on neighboring prediction samples. If the boundary is the outer boundary, that is, it is between the sub-block and the encoded/decoded neighboring block, the filtering can also depend on the reconstructed samples of the encoded/decoded neighboring block.

示例3.當沿著子塊的邊界的樣本被濾波時,經濾波的樣本被計算為應用於若干依賴的相鄰樣本(relied neighboring sample)的濾波器的輸出(在一個示例中,包括經濾波的樣本本身)。這些「依賴的相鄰」樣本包括濾波範圍覆蓋的相鄰樣本和非相鄰樣本。在公式中,

Figure 02_image060
{
Figure 02_image062
}/
Figure 02_image064
,其中x(k) 是相鄰樣本,並且a(k) 是濾波抽頭。 (a)在一個示例中,如果邊界是垂直的,則依賴的相鄰樣本在要被濾波的樣本的相同列中。例如,如圖12A所示,依賴的相鄰樣本包括q0、p0和p1,其中p0是要被濾波的樣本。 (b)在一個示例中,如果邊界是水平的,則依賴的相鄰樣本在要被濾波的樣本的相同行中。例如,如圖12B所示,依賴的相鄰樣本包括p1、p0和q0,其中p0是要被濾波的樣本。 (c)在一個示例中,依賴的相鄰樣本可以在2-D區域而不是1-D線內。例如,如圖12C所示,依賴的相鄰樣本包括p0周圍的3×3區域,其中p0是要被濾波的樣本。 (d)在一個示例中,依賴的相鄰樣本的選擇取決於子塊的寬度和高度。 (e)在一個示例中,依賴的相鄰樣本的選擇取決於顏色分量。 (f)在一個示例中,依賴的相鄰樣本的選擇取決於邊界的位置。 (g)在一個示例中,依賴的相鄰樣本的選擇從編碼器向解碼器信令通知。例如,選擇可以在視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中信令通知。Example 3. When samples along the boundary of the sub-block are filtered, the filtered samples are calculated as the output of the filter applied to several dependent neighboring samples (in one example, including filtered The sample itself). These "dependent adjacent" samples include adjacent samples and non-adjacent samples covered by the filtering range. In the formula,
Figure 02_image060
{
Figure 02_image062
}/
Figure 02_image064
, Where x(k) is the neighboring sample, and a(k) is the filter tap. (A) In one example, if the boundary is vertical, the dependent neighboring samples are in the same column of the samples to be filtered. For example, as shown in FIG. 12A, the dependent neighboring samples include q0, p0, and p1, where p0 is the sample to be filtered. (B) In one example, if the boundary is horizontal, the dependent neighboring samples are in the same row of the samples to be filtered. For example, as shown in FIG. 12B, dependent neighboring samples include p1, p0, and q0, where p0 is the sample to be filtered. (C) In one example, the dependent neighboring samples can be in the 2-D area instead of the 1-D line. For example, as shown in FIG. 12C, dependent neighboring samples include a 3×3 area around p0, where p0 is the sample to be filtered. (D) In one example, the choice of dependent neighboring samples depends on the width and height of the sub-block. (E) In one example, the choice of dependent neighboring samples depends on the color components. (F) In one example, the choice of dependent neighboring samples depends on the location of the boundary. (G) In one example, the selection of dependent neighboring samples is signaled from the encoder to the decoder. For example, the selection can be signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, a coding tree unit (CTU), or a coding unit (CU).

示例4.可以預定義濾波器抽頭/係數和/或濾波器支援(filter support)。 (a)濾波器抽頭/係數對於垂直濾波和水平濾波可以是相同的。例如,並且如圖12A和圖12B所示,p0’=(3×p0+q0+2)>>2,其中p0’是經濾波的樣本。 (b)濾波器抽頭/係數對於邊界周圍的對稱樣本可以是相同的。例如,並且如圖12A和圖12B所示,目標樣本p0的係數是3,相鄰樣本q0的係數是1:p0’=(3×p0+q0+2)>>2。目標樣本q0的係數是3,相鄰樣本p0的係數是1:q0’=(3×q0+p0+2)>>2。 (c)濾波器抽頭/係數可以取決於要被濾波的樣本與邊界之間的距離。例如,並且如圖12A和圖12B所示,p0’=(3×p0+q0+2)>>2並且p1’=(6×p1+p0+q0+4)>>3。 (d)在一個示例中,濾波器抽頭/係數取決於子塊的寬度和高度。 (e)在一個示例中,濾波器抽頭/係數取決於顏色分量。 (f)在一個示例中,並且如圖12C所示,濾波器抽頭/係數取決於邊界/子塊的位置。Example 4. Filter taps/coefficients and/or filter support (filter support) can be predefined. (A) Filter taps/coefficients can be the same for vertical filtering and horizontal filtering. For example, and as shown in Figures 12A and 12B, p0'=(3×p0+q0+2)>>2, where p0' is the filtered sample. (B) Filter taps/coefficients can be the same for symmetrical samples around the boundary. For example, and as shown in FIGS. 12A and 12B, the coefficient of the target sample p0 is 3, and the coefficient of the adjacent sample q0 is 1: p0'=(3×p0+q0+2)>>2. The coefficient of the target sample q0 is 3, and the coefficient of the adjacent sample p0 is 1: q0'=(3×q0+p0+2)>>2. (C) Filter taps/coefficients can depend on the distance between the sample to be filtered and the boundary. For example, and as shown in FIGS. 12A and 12B, p0'=(3×p0+q0+2)>>2 and p1'=(6×p1+p0+q0+4)>>3. (D) In one example, the filter taps/coefficients depend on the width and height of the sub-block. (E) In one example, the filter taps/coefficients depend on the color components. (F) In one example, and as shown in Figure 12C, the filter taps/coefficients depend on the position of the boundary/sub-block.

示例5.濾波器抽頭/係數和/或濾波器支援的指示可以從編碼器向解碼器信令通知,諸如在視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)中、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中信令通知。Example 5. The indication of filter taps/coefficients and/or filter support can be signaled from the encoder to the decoder, such as in video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS) , Slice header, coding tree unit (CTU) or coding unit (CU) signaling.

示例6.邊界濾波可以是有限脈衝響應(Finite Impulse Response,FIR)濾波或無限脈衝響應(Infinite Impulse Response,IIR)濾波。Example 6. Boundary filtering can be Finite Impulse Response (FIR) filtering or Infinite Impulse Response (IIR) filtering.

示例7.濾波過程可以以給定順序完成,諸如首先是所有垂直邊界,然後是所有水平邊界,反之亦然。 (a)可替換地,可以根據子塊掃描順序(例如,子塊的光柵掃描順序)來應用濾波處理。對於每個子塊,可以首先濾波垂直邊界,然後濾波水平邊界,反之亦然。 (b)在一個示例中,應該在濾波相鄰樣本之前提取用於濾波樣本的所有相鄰樣本。換句話說,濾波過程應用於未濾波的樣本。 (c)在一個示例中,在濾波相鄰樣本之後提取用於濾波樣本的一些或所有相鄰樣本。 (i)在一個示例中,首先濾波所有垂直邊界,然後濾波水平邊界,其中相鄰樣本已經在垂直邊界濾波中被濾波。 (ii)在一個示例中,首先濾波所有水平邊界,然後濾波垂直邊界,其中相鄰樣本已經在水平邊界濾波中被濾波。Example 7. The filtering process can be done in a given order, such as first all vertical boundaries, then all horizontal boundaries, and vice versa. (A) Alternatively, the filtering process may be applied according to the sub-block scanning order (for example, the raster scanning order of the sub-blocks). For each sub-block, the vertical boundary can be filtered first, and then the horizontal boundary, and vice versa. (B) In one example, all adjacent samples used for filtering samples should be extracted before filtering adjacent samples. In other words, the filtering process is applied to the unfiltered samples. (C) In one example, some or all neighboring samples used for filtering the samples are extracted after filtering the neighboring samples. (I) In one example, all vertical boundaries are filtered first, and then horizontal boundaries are filtered, where neighboring samples have been filtered in vertical boundary filtering. (Ii) In one example, all horizontal boundaries are filtered first, and then vertical boundaries are filtered, where adjacent samples have been filtered in horizontal boundary filtering.

示例8.邊界濾波可以取決於當前編碼塊或編碼/解碼的相鄰塊的一些編碼資訊。 (a)編碼資訊包括MV、量化參數(Quantization Parameter,QP)、影格內預測模式、影格間預測方向、Merge模式或AMVP模式等。 (b)在一個示例中,針對每個子塊自適應地啟用/禁用濾波。當子塊及其水平/垂直相鄰塊具有相似的運動資訊時(例如,如果它們具有相同的參考圖片並且每個參考圖片上的絕對運動向量分量差小於1個整數像素),則對子塊禁用相應的水平/垂直邊界濾波。Example 8. Boundary filtering may depend on some coding information of the current coding block or the neighboring blocks of coding/decoding. (A) The coding information includes MV, quantization parameter (QP), intra-frame prediction mode, inter-frame prediction direction, Merge mode or AMVP mode, etc. (B) In one example, filtering is enabled/disabled adaptively for each sub-block. When a sub-block and its horizontal/vertical neighboring blocks have similar motion information (for example, if they have the same reference picture and the absolute motion vector component difference on each reference picture is less than 1 integer pixel), the sub-block Disable the corresponding horizontal/vertical boundary filtering.

示例9.假設所有子塊具有非零或零殘差值,則可以將去方塊(de-blocking)濾波方法應用於子塊的邊界濾波。在這種情況下,去方塊濾波應用於預測樣本,而不是重構樣本。 (a)可替換地,可以將去方塊濾波(de-blocking filtering)應用於預測樣本和重構樣本兩者。Example 9. Assuming that all sub-blocks have non-zero or zero residual values, the de-blocking filtering method can be applied to the boundary filtering of the sub-blocks. In this case, the deblocking filter is applied to the predicted samples instead of reconstructed samples. (A) Alternatively, de-blocking filtering can be applied to both prediction samples and reconstruction samples.

示例10.應當注意,允許對部分沿邊界的樣本進行濾波,而不濾波沿邊界的剩餘樣本。 (a)可以以隱式的方式決定濾波或不濾波。 (b)在一個示例中,可以利用為PU/TU/CU邊界啟用/禁用去方塊濾波器的規則來確定位於子塊邊界處的樣本是否應當被濾波。 (c)在一個示例中,確定位於子塊邊界處的樣本是否應當被濾波的規則可以取決於塊形狀/尺寸/編碼模式/重構樣本/預測樣本值。Example 10. It should be noted that it is allowed to filter some samples along the boundary without filtering the remaining samples along the boundary. (A) Filtering or non-filtering can be determined implicitly. (B) In one example, the rule of enabling/disabling the deblocking filter for the PU/TU/CU boundary can be used to determine whether the samples located at the sub-block boundary should be filtered. (C) In one example, the rule for determining whether the samples located at the boundary of the sub-block should be filtered may depend on the block shape/size/coding mode/reconstruction sample/predicted sample value.

示例11.當存在利用雙向預測編碼的至少一個子塊時,可以對與參考圖片列表相對應的每個中間預測塊應用兩次濾波處理。 (a)可替換地,將濾波應用於最終預測塊。 (b)類似地,對於多假設編碼(multi hypothesis coding),可以使用對每個中間預測塊執行濾波或者對最終預測塊執行濾波。Example 11. When there is at least one sub-block encoded with bidirectional prediction, the filtering process can be applied twice to each intermediate prediction block corresponding to the reference picture list. (A) Alternatively, apply filtering to the final prediction block. (B) Similarly, for multi-hypothesis coding, filtering can be performed on each intermediate prediction block or filtering on the final prediction block.

示例12.所提出的方法可以應用於某些顏色分量。 (a)在一個示例中,僅亮度塊可以啟用所提出的方法。 (b)所提出的方法可以應用於某些塊尺寸/形狀、和/或某些子塊尺寸。 (c)所提出的方法可以應用於某些編碼工具,諸如可選時域運動向量預測(ATMVP)和/或仿射預測。Example 12. The proposed method can be applied to certain color components. (A) In one example, only the luma block can enable the proposed method. (B) The proposed method can be applied to certain block sizes/shapes, and/or certain sub-block sizes. (C) The proposed method can be applied to certain coding tools, such as alternative temporal motion vector prediction (ATMVP) and/or affine prediction.

上述示例可以結合在下面描述的方法的上下文中,例如,方法1300,其可以在視頻解碼器和/或視訊編碼器處實施。The above examples can be combined in the context of the methods described below, for example, the method 1300, which can be implemented at a video decoder and/or a video encoder.

圖13A示出了用於視頻編碼的示例方法1300的流程圖。方法1300包括,在操作1302處,將當前視頻資料塊分割為多個子塊。方法1300包括,在操作1304處,為多個子塊中的至少一個子塊生成預測子塊。方法1300包括,在操作1306處,使用一組濾波器係數對至少一個子塊的預測子塊的邊界樣本進行濾波以生成經濾波的邊界樣本。方法1300包括,在操作1308處,使用經濾波的邊界樣本確定當前視頻資料塊的最終預測塊。Figure 13A shows a flowchart of an example method 1300 for video encoding. The method 1300 includes, at operation 1302, dividing a current video material block into a plurality of sub-blocks. The method 1300 includes, at operation 1304, generating a predicted sub-block for at least one sub-block of a plurality of sub-blocks. The method 1300 includes, at operation 1306, using a set of filter coefficients to filter boundary samples of a prediction sub-block of at least one sub-block to generate filtered boundary samples. The method 1300 includes, at operation 1308, using the filtered boundary samples to determine a final prediction block for the current block of video material.

圖13B示出了用於視頻解碼的示例方法1350的流程圖。方法1350包括,在操作1352處,使用一組濾波器係數對預測子塊的邊界樣本進行濾波以生成經濾波的邊界樣本。為當前視頻塊的多個子塊的至少一個子塊生成預測子塊。方法1350包括,在操作1354處,使用經濾波的邊界樣本執行視頻資料的當前視頻塊的預測。方法1350還包括,在操作1356處,使用預測重構當前視頻塊。Figure 13B shows a flowchart of an example method 1350 for video decoding. The method 1350 includes, at operation 1352, using a set of filter coefficients to filter boundary samples of the prediction sub-block to generate filtered boundary samples. A prediction sub-block is generated for at least one sub-block of the multiple sub-blocks of the current video block. Method 1350 includes, at operation 1354, performing prediction of a current video block of video material using the filtered boundary samples. The method 1350 also includes, at operation 1356, reconstructing the current video block using prediction.

在編碼和解碼方法兩者的一些實施例中,通過執行使用兩個參考的雙向預測來生成預測子塊,並且濾波包括對雙向預測的至少一個中間預測塊進行濾波。在一些實施例中,濾波包括去方塊濾波,並且其中至少一個子塊包括非零或零殘差值。In some embodiments of both encoding and decoding methods, the prediction sub-block is generated by performing bidirectional prediction using two references, and filtering includes filtering at least one intermediate prediction block of the bidirectional prediction. In some embodiments, the filtering includes deblocking filtering, and at least one of the sub-blocks includes non-zero or zero residual values.

在編碼和解碼方法兩者的一些實施例中,邊界樣本的至少第一子集位於沿著視頻資料塊中的兩個相鄰子塊之間的內邊界。邊界樣本的第二子集位於沿著視頻資料塊的多個子塊中的一個子塊與第二視頻資料塊之間的外邊界。邊界樣本可以包括沿著邊界的多個列或行的樣本。編碼或解碼方法可以包括基於至少一個子塊的大小確定邊界樣本的列或行的數量,基於至少一個子塊的顏色分量確定列或行的數量,基於邊界樣本是位於沿內邊界還是外邊界確定列或行的數量,基於子塊在視頻資料塊中的位置確定列或行的數量,或者基於視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中的資訊的確定列或行的數量。In some embodiments of both encoding and decoding methods, at least a first subset of boundary samples are located along the inner boundary between two adjacent sub-blocks in a block of video material. The second subset of boundary samples is located along the outer boundary between one of the multiple sub-blocks of the video material block and the second video material block. The boundary samples may include multiple columns or rows of samples along the boundary. The encoding or decoding method may include determining the number of columns or rows of boundary samples based on the size of at least one sub-block, determining the number of columns or rows based on the color component of the at least one sub-block, and determining whether the boundary samples are located along the inner boundary or the outer boundary The number of columns or rows, the number of columns or rows is determined based on the position of the sub-block in the video data block, or based on the video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), and strip header The number of columns or rows of information in the coding tree unit (CTU) or coding unit (CU).

在一些實施例中,對多個子塊的邊界樣本進行濾波包括通過將一組濾波器係數應用於與邊界樣本相鄰的相鄰樣本來對邊界樣本進行濾波。在一些實施例中,相鄰樣本和邊界樣本位於相同列或相同行中。在一些實施例中,相鄰樣本位於邊界樣本周圍的二維區域中。In some embodiments, filtering the boundary samples of the plurality of sub-blocks includes filtering the boundary samples by applying a set of filter coefficients to adjacent samples adjacent to the boundary samples. In some embodiments, adjacent samples and boundary samples are located in the same column or row. In some embodiments, neighboring samples are located in a two-dimensional area around the boundary samples.

在一些實施例中,編碼或解碼方法可以包括基於對應子塊的大小選擇相鄰樣本,基於對應子塊的顏色分量選擇相鄰樣本,基於邊界樣本的位置選擇相鄰樣本,或者基於視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中的資訊選擇相鄰樣本。In some embodiments, the encoding or decoding method may include selecting neighboring samples based on the size of the corresponding sub-block, selecting neighboring samples based on the color components of the corresponding sub-block, selecting neighboring samples based on the position of the boundary sample, or based on the video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), slice header, coding tree unit (CTU) or coding unit (CU) information in the selection of adjacent samples.

在一些實施例中,該組濾波器係數對於水平濾波和垂直濾波是相同的。在一些實施例中,該組濾波器係數對於圍繞子塊的邊界的對稱樣本是相同的。In some embodiments, the set of filter coefficients is the same for horizontal filtering and vertical filtering. In some embodiments, the set of filter coefficients is the same for symmetric samples surrounding the boundary of the sub-block.

在一些實施例中,編碼或解碼方法可以包括基於從邊界樣本到對應邊界的距離確定邊界樣本的一組濾波器係數,基於至少一個子塊的大小確定一組濾波器係數,基於至少一個子塊的顏色分量確定一組濾波器係數,或者基於視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中的資訊確定一組濾波器係數。In some embodiments, the encoding or decoding method may include determining a set of filter coefficients of boundary samples based on the distance from the boundary sample to the corresponding boundary, determining a set of filter coefficients based on the size of at least one sub-block, and determining a set of filter coefficients based on the size of at least one sub-block. The color components determine a set of filter coefficients, or based on the video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), slice header, coding tree unit (CTU) or coding unit (CU) The information in determines a set of filter coefficients.

在一些實施例中,濾波包括有限脈衝響應(FIR)濾波或無限脈衝響應(IIR)濾波。在一些實施例中,濾波包括:對於多個子塊中的每個子塊,對沿著垂直邊界的一組邊界樣本進行濾波;以及對於多個子塊中的每個子塊,在對沿著垂直邊界的一組邊界樣本進行濾波之後,對沿著水平邊界的剩餘邊界樣本進行濾波。根據子塊掃描循序執行多個子塊的濾波。In some embodiments, the filtering includes finite impulse response (FIR) filtering or infinite impulse response (IIR) filtering. In some embodiments, the filtering includes: for each sub-block in the plurality of sub-blocks, filtering a set of boundary samples along the vertical boundary; and for each sub-block in the plurality of sub-blocks, After a set of boundary samples are filtered, the remaining boundary samples along the horizontal boundary are filtered. The filtering of multiple sub-blocks is sequentially performed according to the sub-block scanning.

可替換地,濾波可以包括:對於多個子塊中的每個子塊,對沿著水平邊界的一組邊界樣本進行濾波;以及對於多個子塊中的每個子塊,在對沿著水平邊界的一組邊界樣本進行濾波之後,對沿著垂直邊界的剩餘邊界樣本進行濾波。根據子塊掃描循序執行多個子塊的濾波。Alternatively, the filtering may include: for each of the plurality of sub-blocks, filtering a set of boundary samples along the horizontal boundary; and for each of the plurality of sub-blocks, filtering a set of boundary samples along the horizontal boundary. After the group boundary samples are filtered, the remaining boundary samples along the vertical boundary are filtered. The filtering of multiple sub-blocks is sequentially performed according to the sub-block scanning.

在一些實施例中,濾波包括:對沿著所有多個子塊的垂直邊界的一組邊界樣本進行濾波;以及在對沿著垂直邊界的一組邊界樣本進行濾波之後,對沿著所有多個子塊的水平邊界的剩餘邊界樣本進行濾波。In some embodiments, filtering includes: filtering a set of boundary samples along the vertical boundary of all the plurality of sub-blocks; and after filtering a set of boundary samples along the vertical boundary, filtering the set of boundary samples along all the plurality of sub-blocks The remaining boundary samples of the horizontal boundary are filtered.

可替換地,濾波包括:對沿著所有多個子塊的水平邊界的一組邊界樣本進行濾波;以及在對沿著水平邊界的一組邊界樣本進行濾波之後,對沿著所有多個子塊的垂直邊界的剩餘邊界樣本進行濾波。Alternatively, the filtering includes: filtering a set of boundary samples along the horizontal boundary of all the plurality of sub-blocks; and after filtering a set of boundary samples along the horizontal boundary, filtering the vertical The remaining boundary samples of the boundary are filtered.

在一些實施例中,濾波基於視頻資料塊或相鄰視頻資料塊的一個或多個屬性,其中一個或多個屬性包括運動向量、量化參數(QP)、影格內預測模式、影格間預測方向、Merge模式或高級運動向量預測(Advanced Motion Vector Prediction,AMVP)模式。可以針對多個子塊中的每一個自適應地啟用或禁用濾波。In some embodiments, filtering is based on one or more attributes of the video data block or adjacent video data blocks, where one or more attributes include motion vector, quantization parameter (QP), intra-frame prediction mode, inter-frame prediction direction, Merge mode or Advanced Motion Vector Prediction (AMVP) mode. The filtering can be adaptively enabled or disabled for each of the multiple sub-blocks.

圖14示出了用於視頻編碼的示例性方法的流程圖。方法1400包括,在步驟1410處,將視頻資料塊分割為多個子塊。Figure 14 shows a flowchart of an exemplary method for video encoding. The method 1400 includes, at step 1410, dividing a block of video material into a plurality of sub-blocks.

方法1400包括,在步驟1420處,使用一組濾波器抽頭/係數對多個子塊中的至少一個子塊的邊界樣本進行濾波以生成經濾波的邊界樣本。在一些實施例中,至少一個子塊的邊界是視頻資料塊的內邊界,並且其中邊界樣本包括來自多個子塊的相鄰子塊的預測樣本,如圖10A的上下文中所描述的。在其他實施例中,至少一個子塊的邊界是視頻資料塊的外邊界,並且其中邊界樣本包括來自相鄰視頻資料塊的重構樣本,如圖10B的上下文中所描述的。在其他實施例中,該組濾波器抽頭/係數可以是不同的,以便濾波(多個子塊的)相同或不同子塊的不同邊界。例如,可以使用一組濾波器(例如,濾波器組),其中對於每個濾波器具有不同的預定或自適應的濾波器抽頭/係數。The method 1400 includes, at step 1420, using a set of filter taps/coefficients to filter boundary samples of at least one of the plurality of sub-blocks to generate filtered boundary samples. In some embodiments, the boundary of at least one sub-block is an inner boundary of a video material block, and wherein the boundary samples include prediction samples from neighboring sub-blocks of multiple sub-blocks, as described in the context of FIG. 10A. In other embodiments, the boundary of at least one sub-block is the outer boundary of the video material block, and wherein the boundary samples include reconstructed samples from adjacent video material blocks, as described in the context of FIG. 10B. In other embodiments, the set of filter taps/coefficients may be different in order to filter different boundaries of the same or different sub-blocks (of multiple sub-blocks). For example, a set of filters (eg, filter bank) may be used, with different predetermined or adaptive filter taps/coefficients for each filter.

在一些實施列中,並且如示例3的上下文中所描述的,邊界可以是垂直的或水平的。例如,至少一個子塊的邊界包括垂直邊界,並且其中每個預測樣本的列索引與每個相鄰樣本的列索引相同。例如,至少一個子塊的邊界包括水平邊界,並且其中每個預測樣本的行索引與每個相鄰樣本的行索引相同。例如,相鄰樣本包括具有至少兩個不同列索引或至少兩個不同行索引的樣本,從而形成二維樣本區域。In some embodiments, and as described in the context of Example 3, the boundary may be vertical or horizontal. For example, the boundary of at least one sub-block includes a vertical boundary, and the column index of each prediction sample is the same as the column index of each adjacent sample. For example, the boundary of at least one sub-block includes a horizontal boundary, and the row index of each prediction sample is the same as the row index of each adjacent sample. For example, adjacent samples include samples with at least two different column indexes or at least two different row indexes, thereby forming a two-dimensional sample area.

在一些實施例中,並且如在示例3的上下文中所描述的,相鄰樣本的選擇可以基於至少一個子塊的大小、至少一個子塊的顏色分量、或者至少一個子塊的邊界相對於視頻資料塊的位置。在一些實施例中,在視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中信令通知相鄰樣本的選擇。In some embodiments, and as described in the context of Example 3, the selection of neighboring samples may be based on the size of at least one sub-block, the color component of at least one sub-block, or the boundary of at least one sub-block relative to the video The location of the data block. In some embodiments, the video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), slice header, coding tree unit (CTU) or coding unit (CU) is signaled in the video parameter set (VPS), Selection of neighbor samples.

方法1400包括,在步驟1430處,使用經濾波的邊界樣本執行視頻資料塊的預測。在一些實施例中,經濾波的邊界樣本可以是有限脈衝響應(FIR)濾波或無限脈衝響應(IIR)濾波的結果。在一些實施例中,並且如在示例7的上下文中所描述的,濾波包括在水平邊界之前對垂直邊界進行濾波,或反之亦然。在一些實施例中,濾波可以基於視頻資料塊或相鄰視頻資料塊的一個或多個屬性(例如,運動向量、量化參數(QP)、影格內預測模式、影格間預測方向、Merge模式或高級運動向量預測(AMVP)模式)。The method 1400 includes, at step 1430, performing prediction of a block of video material using the filtered boundary samples. In some embodiments, the filtered boundary samples may be the result of finite impulse response (FIR) filtering or infinite impulse response (IIR) filtering. In some embodiments, and as described in the context of Example 7, filtering includes filtering the vertical boundary before the horizontal boundary, or vice versa. In some embodiments, filtering may be based on one or more attributes of the video data block or adjacent video data blocks (for example, motion vector, quantization parameter (QP), intra-frame prediction mode, inter-frame prediction direction, Merge mode, or advanced Motion Vector Prediction (AMVP) mode).

在一些實施例中,並且如在示例4的上下文中所描述的,一組濾波器抽頭/係數可以基於從樣本到至少一個子塊的邊界的距離、至少一個子塊的大小、或至少一個子塊的顏色分量。在一些實施例中,可以在視頻參數集(VPS)、序列參數集(SPS)、圖片參數集(PPS)、條帶標頭、編碼樹單元(CTU)或編碼單元(CU)中信令通知該組濾波器抽頭/係數。In some embodiments, and as described in the context of Example 4, a set of filter taps/coefficients may be based on the distance from the sample to the boundary of at least one sub-block, the size of at least one sub-block, or at least one sub-block. The color component of the block. In some embodiments, it can be signaled in video parameter set (VPS), sequence parameter set (SPS), picture parameter set (PPS), slice header, coding tree unit (CTU) or coding unit (CU) The set of filter taps/coefficients.

在一些實施例中,並且如在示例11的上下文中所描述的,當子塊被編碼用於雙向預測時,濾波包括對與參考圖片列表相對應的每個中間預測塊進行濾波。In some embodiments, and as described in the context of Example 11, when a sub-block is coded for bidirectional prediction, filtering includes filtering each intermediate prediction block corresponding to the reference picture list.

3.所公開的技術的示例實施方式3. Example implementations of the disclosed technology

圖15是圖示可用於實施目前所公開的技術的各個部分(包括(但不限於)方法1300和方法1400)的示例編碼裝置1500的框圖。編碼裝置1500包括用於壓縮輸入資料位元的量化器1505。編碼裝置1500還包括去量化器1515,使得資料位元可以被饋送到記憶體1525和預測器1520以執行運動估計。編碼裝置1500還包括二進制編碼器1530,以生成編碼的二進制碼。15 is a block diagram illustrating an example encoding apparatus 1500 that can be used to implement various parts of the currently disclosed technology, including but not limited to the method 1300 and the method 1400. The encoding device 1500 includes a quantizer 1505 for compressing input data bits. The encoding device 1500 also includes a dequantizer 1515 so that data bits can be fed to the memory 1525 and the predictor 1520 to perform motion estimation. The encoding device 1500 further includes a binary encoder 1530 to generate an encoded binary code.

圖16是圖示可用於實施目前所公開的技術的各個部分(包括(但不限於)方法1350)的示例解碼裝置1600的框圖。解碼裝置1600包括用於解碼二進制碼的二進制解碼器1605。解碼裝置1600還包括去量化器1615,使得解碼的資料位元可以被饋送到記憶體1625和預測器1620以在解碼側執行運動估計。Figure 16 is a block diagram illustrating an example decoding apparatus 1600 that can be used to implement various parts of the currently disclosed technology, including but not limited to method 1350. The decoding device 1600 includes a binary decoder 1605 for decoding binary codes. The decoding device 1600 further includes a dequantizer 1615 so that the decoded data bits can be fed to the memory 1625 and the predictor 1620 to perform motion estimation on the decoding side.

圖17是圖示可用於實施目前所公開的技術的各個部分(包括(但不限於)方法1300和方法1400)的電腦系統或其他控制設備1700的架構的示例的框圖。在圖17中,電腦系統1700包括經由互連1725連接的一個或多個處理器1705和記憶體1710。互連1725可以表示通過適當的橋、適配器、或控制器連接的任何一個或多個單獨的物理匯流排、點對點連接或兩者。因此,互連1725可以包括例如系統匯流排、周邊元件連接(Peripheral Component Interconnect,PCI)匯流排,HyperTransport或工業標準架構(Industry Standard Architecture,ISA)匯流排、小型電腦系統介面(Small Computer System Interface,SCSI)匯流排、通用序列匯流排(Universal Serial Bus,USB)、IIC(I2C)匯流排、或電氣和電子工程師協會(Institute of Electrical and Electronics Engineers,IEEE)標準674匯流排,有時也被稱為「火線(Firewire)」。FIG. 17 is a block diagram illustrating an example of the architecture of a computer system or other control device 1700 that can be used to implement various parts of the currently disclosed technology (including but not limited to the method 1300 and the method 1400). In FIG. 17, a computer system 1700 includes one or more processors 1705 and a memory 1710 connected via an interconnection 1725. The interconnection 1725 may represent any one or more separate physical buses, point-to-point connections, or both, connected by a suitable bridge, adapter, or controller. Therefore, the interconnection 1725 may include, for example, a system bus, a peripheral component interconnect (Peripheral Component Interconnect, PCI) bus, a HyperTransport or an industry standard architecture (Industry Standard Architecture, ISA) bus, and a small computer system interface (Small Computer System Interface, SCSI) bus, Universal Serial Bus (USB), IIC (I2C) bus, or Institute of Electrical and Electronics Engineers (IEEE) standard 674 bus, sometimes also called It is "Firewire".

(多個)處理器1705可以包括控制例如主機的整體操作中央處理單元(central processing units,CPU)。在某些實施例中,(多個)處理器1705通過運行儲存在記憶體1710中的軟體或固件來實現此目的。(多個)處理器1705可以是或可以包括一個或多個可程式設計通用或專用微處理器、數位訊號處理器(Digital Signal Processors,DSP)、可程式設計控制器、專用積體電路(Application Specific Integrated Circuits,ASIC)、可程式設計邏輯裝置(Programmable Logic Devices,PLD)等,或者這些設備的組合。The processor(s) 1705 may include a central processing unit (CPU) that controls overall operations of, for example, the host. In some embodiments, the processor(s) 1705 executes software or firmware stored in the memory 1710 to achieve this purpose. The processor(s) 1705 may be or may include one or more programmable general-purpose or special-purpose microprocessors, digital signal processors (Digital Signal Processors, DSP), programmable controllers, special-purpose integrated circuits (Application Specific Integrated Circuits (ASIC), Programmable Logic Devices (PLD), etc., or a combination of these devices.

記憶體1710可以是或包括電腦系統的主記憶體。記憶體1710表示任何合適形式的隨機存取記憶體(Random Access Memory,RAM)、唯讀記憶體(Read-Only Memory,ROM)、快閃記憶體等,或者這些設備的組合。在使用中,記憶體1710除其他外可以包含一組機器指令,當其由處理器1705運行時,使得處理器1705執行操作以實施目前所公開的技術的實施例。The memory 1710 may be or include the main memory of the computer system. The memory 1710 represents any suitable form of random access memory (Random Access Memory, RAM), read-only memory (Read-Only Memory, ROM), flash memory, etc., or a combination of these devices. In use, the memory 1710 may contain, among other things, a set of machine instructions, which when run by the processor 1705, cause the processor 1705 to perform operations to implement embodiments of the currently disclosed technology.

還通過互連1725連接到(多個)處理器1705的是(可選的)網路介面卡1715。網路介面卡1715向電腦系統1700提供與遠端設備(諸如儲存用戶端、和/或其他儲存伺服器)通訊的能力,並且可以是例如乙太網介面卡或光纖通道適配器。Also connected to the processor(s) 1705 via the interconnect 1725 is an (optional) network interface card 1715. The network interface card 1715 provides the computer system 1700 with the ability to communicate with remote devices (such as storage clients and/or other storage servers), and may be, for example, an Ethernet interface card or a fiber channel adapter.

圖18示出了可用於實施目前所公開的技術的各個部分(包括(但不限於)方法1300和方法1400)的移動設備1800的示例實施例的框圖。移動設備1800可以是膝上型電腦、智慧型電話、平板電腦、可攜式相機或能夠處理視頻的其他類型的設備。移動設備1800包括用於處理資料的處理器或控制器1801,以及與處理器1801通訊、儲存和/或緩衝資料的記憶體1802。例如,處理器1801可以包括中央處理單元(CPU)或微控制器單元(Microcontroller Unit,MCU)。在一些實施方式中,處理器1801可以包括現場可程式化邏輯閘陣列(Field-Programmable Gate-Array,FPGA)。在一些實施方式中,移動設備1800包括用於智慧型電話設備的各種視覺和/或通訊資料處理功能的圖形處理單元(Graphics Processing Unit,GPU)、視頻處理單元(Video Processing Unit,VPU)、和/或無線通訊單元或者與其通訊。例如,記憶體1802可以包括並儲存處理器可運行代碼,該處理器可運行代碼在由處理器1801運行時配置移動設備1800以執行各種操作,諸如接收資訊、命令和/或資料,處理資訊和資料,以及將處理過的資訊/資料發送或提供給另一個設備,諸如執行機構或外部顯示器。FIG. 18 shows a block diagram of an example embodiment of a mobile device 1800 that can be used to implement various parts of the currently disclosed technology, including but not limited to method 1300 and method 1400. The mobile device 1800 may be a laptop computer, a smart phone, a tablet computer, a portable camera, or another type of device capable of processing video. The mobile device 1800 includes a processor or controller 1801 for processing data, and a memory 1802 for communicating with the processor 1801, storing and/or buffering data. For example, the processor 1801 may include a central processing unit (CPU) or a microcontroller unit (Microcontroller Unit, MCU). In some embodiments, the processor 1801 may include a Field-Programmable Gate-Array (FPGA). In some embodiments, the mobile device 1800 includes a graphics processing unit (GPU), a video processing unit (Video Processing Unit, VPU), and a graphics processing unit (GPU) for various visual and/or communication data processing functions of a smart phone device. / Or wireless communication unit or communicate with it. For example, the memory 1802 may include and store a processor executable code that configures the mobile device 1800 to perform various operations when run by the processor 1801, such as receiving information, commands and/or data, processing information and Data, and sending or providing processed information/data to another device, such as an actuator or an external display.

為了支援移動設備1800的各種功能,記憶體1802可以儲存資訊和資料,諸如指令、軟體、值、圖像以及由處理器1801處理或引用的其他資料。例如,各種類型的隨機存取記憶體(RAM)設備、唯讀記憶體(ROM)設備、快閃記憶體設備和其他合適的儲存介質可以用於實施記憶體1802的儲存功能。在一些實施方式中,移動設備1800包括輸入/輸出(Input/Output,I/O)單元1803以將處理器1801和/或記憶體1802接合到其他模組、單元或設備。例如,利用與典型資料通訊標準相容的各種類型的無線介面,I/O單元1803可以與處理器1801和記憶體1802接合,例如,諸如在雲中的一個或多個電腦與使用者設備之間。在一些實施方式中,移動設備1800可以經由I/O單元1803使用有線連接與其他設備接合。移動設備1800還可以與其他外部介面(諸如資料儲存裝置和/或視覺或音訊顯示設備1804)接合以檢索和傳送可由處理器處理、儲存在記憶體中或在顯示設備1804或外部設備的輸出單元上展出的資料和資訊。例如,顯示設備1804可以顯示包括基於是否使用運動補償演算法對塊進行編碼並且根據所公開的技術來應用影格內塊複製的塊(CU、PU或TU)的視頻影格。In order to support various functions of the mobile device 1800, the memory 1802 can store information and data, such as commands, software, values, images, and other data processed or referenced by the processor 1801. For example, various types of random access memory (RAM) devices, read-only memory (ROM) devices, flash memory devices, and other suitable storage media may be used to implement the storage function of the memory 1802. In some embodiments, the mobile device 1800 includes an input/output (Input/Output, I/O) unit 1803 to couple the processor 1801 and/or the memory 1802 to other modules, units, or devices. For example, using various types of wireless interfaces compatible with typical data communication standards, the I/O unit 1803 can interface with the processor 1801 and the memory 1802, for example, between one or more computers in the cloud and user equipment. between. In some embodiments, the mobile device 1800 may interface with other devices via the I/O unit 1803 using a wired connection. The mobile device 1800 can also interface with other external interfaces (such as a data storage device and/or a visual or audio display device 1804) for retrieval and transmission, which can be processed by the processor, stored in memory, or in the output unit of the display device 1804 or an external device. Data and information on display. For example, the display device 1804 may display a video frame including a block (CU, PU, or TU) for which in-frame block copy is applied based on whether a motion compensation algorithm is used to encode the block and according to the disclosed technology.

在一些實施例中,視頻解碼器裝置可以實施如本文所描述的用於視頻解碼的基於子塊的預測的方法。該方法的各種特徵可以類似於上述方法1350。In some embodiments, the video decoder device may implement a sub-block-based prediction method for video decoding as described herein. The various features of the method can be similar to the method 1350 described above.

在一些實施例中,視頻解碼方法可以使用如關於圖17和圖18所描述的在硬體平臺上實施的解碼裝置來實施。In some embodiments, the video decoding method may be implemented using a decoding device implemented on a hardware platform as described with respect to FIG. 17 and FIG. 18.

從前述內容將領會,本文已經出於說明的目的描述了目前所公開的技術的特定實施例,但是在不脫離本發明的範圍的情況下可以進行各種修改。因此,除了所附申請專利範圍之外,目前所公開的技術不受限制。It will be appreciated from the foregoing that, this document has described specific embodiments of the currently disclosed technology for illustrative purposes, but various modifications can be made without departing from the scope of the present invention. Therefore, the currently disclosed technology is not limited except for the scope of the attached patent application.

本專利文件中描述的主題和功能操作的實施方式可以在各種系統、數位電子電路中,或者在電腦軟體、固件、或硬體中實施,包括本說明書中公開的結構及其結構等同物,或者它們中的一個或多個的組合。本說明書中描述的主題的實施方式可以被實施為一個或多個電腦程式產品,即,在有形和非暫態電腦可讀介質上編碼的用於由資料處理裝置運行或控制資料處理裝置的操作的電腦程式指令的一個或多個模組。電腦可讀介質可以是機器可讀儲存裝置、機器可讀儲存基板、記憶體設備、影響機器可讀傳播訊號的物質的組合、或它們中的一個或多個的組合。術語「資料處理單元」或 「資料處理裝置」包括用於處理資料的所有裝置、設備和機器,包括例如可程式設計處理器、電腦或多個處理器或電腦。除了硬體之外,裝置還可以包括為所討論的電腦程式創建運行環境的代碼,例如,構成處理器固件、協定疊、資料庫管理系統、作業系統、或者它們中的一個或多個的組合的代碼。The subject matter and functional operation described in this patent document can be implemented in various systems, digital electronic circuits, or computer software, firmware, or hardware, including the structure disclosed in this specification and its structural equivalents, or A combination of one or more of them. The implementation of the subject described in this specification can be implemented as one or more computer program products, that is, coded on a tangible and non-transitory computer-readable medium for operation by a data processing device or for controlling the operation of a data processing device One or more modules of computer program instructions. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a combination of substances that affect a machine-readable propagation signal, or a combination of one or more of them. The term "data processing unit" or "data processing device" includes all devices, equipment, and machines used to process data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the device may also include code that creates an operating environment for the computer program in question, for example, constituting processor firmware, protocol stack, database management system, operating system, or a combination of one or more of them Code.

電腦程式(也被稱為程式、軟體、軟體應用、腳本、或代碼)可以用任何形式的程式設計語言編寫,包括編譯或解釋語言,並且可以以任何形式部署,包括作為獨立程式或作為適合在計算環境中使用的模組、組件、子常式或其他單元。電腦程式不一定對應於檔案系統中的文件。程式可以儲存在保存其他程式或資料的文件的一部分中(例如,儲存在標記語言文件中的一個或多個腳本),儲存在專用於所討論的程式的單個文件中,或者儲存在多個協調文件中(例如,儲存一個或多個模組、副程式或代碼的部分的文件)。可以部署電腦程式以在一個電腦上或在位於一個網站上或跨多個網站分佈並通過通訊網路互連的多個電腦上運行。Computer programs (also called programs, software, software applications, scripts, or codes) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as stand-alone programs or as suitable for Modules, components, subroutines, or other units used in the computing environment. Computer programs do not necessarily correspond to documents in the file system. The program can be stored in a part of a document that holds other programs or data (for example, one or more scripts stored in a markup language document), in a single document dedicated to the program in question, or in multiple coordination In a document (for example, a document that stores one or more modules, subprograms, or parts of code). Computer programs can be deployed to run on one computer or on multiple computers located on one website or distributed across multiple websites and interconnected by a communication network.

本說明書中描述的過程和邏輯流程可以由運行一個或多個電腦程式的一個或多個可程式設計處理器執行,以通過對輸入資料進行操作並生成輸出來執行功能。過程和邏輯流程也可以由專用邏輯電路(例如FPGA(現場可程式化邏輯閘陣列)或ASIC(專用積體電路))執行,並且裝置也可以被實施為專用邏輯電路。The processes and logic flows described in this specification can be executed by one or more programmable processors running one or more computer programs to perform functions by operating on input data and generating output. The process and logic flow can also be executed by dedicated logic circuits (such as FPGA (Field Programmable Logic Gate Array) or ASIC (Dedicated Integrated Circuit)), and the device can also be implemented as a dedicated logic circuit.

舉例來說,適合於電腦程式的運行的處理器包括通用和專用微處理器兩者,以及任何種類的數位電腦的任何一個或多個處理器。通常,處理器將從唯讀記憶體或隨機存取記憶體或兩者接收指令和資料。電腦的基本元件是用於執行指令的處理器和用於儲存指令和資料的一個或多個記憶體設備。通常,電腦還將包括或耦合到用於儲存資料的一個或多個大型儲存設備(例如磁碟、磁光碟或光碟)以從其接收資料或向其傳送資料或者進行接收資料和傳送資料兩者。但是,電腦不必具有這樣的設備。適用於儲存電腦程式指令和資料的電腦可讀介質包括所有形式的非易失性記憶體、介質和記憶體設備,包括例如半導體記憶體設備,例如EPROM、EEPROM和快閃記憶體設備。處理器和記憶體可以由專用邏輯電路補充或併入專用邏輯電路中。For example, processors suitable for the operation of computer programs include both general-purpose and special-purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, the processor will receive commands and data from read-only memory or random access memory or both. The basic components of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include or be coupled to one or more large storage devices (such as magnetic disks, magneto-optical disks, or optical disks) used to store data to receive data from or transmit data to it, or both to receive data and transmit data . However, the computer does not have to have such equipment. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices. The processor and memory can be supplemented by or incorporated into a dedicated logic circuit.

說明書和附圖旨在僅被認為是示例性的,其中示例性意味著示例。如本文所使用的,除非上下文另有明確說明,否則單數形式「一」、「一個」和「該」旨在也包括複數形式。額外地,除非上下文另有明確說明,否則「或」的使用旨在包括「和/或」。The description and drawings are intended to be considered exemplary only, where exemplary means example. As used herein, unless the context clearly dictates otherwise, the singular forms "a", "an" and "the" are intended to also include the plural forms. Additionally, the use of "or" is intended to include "and/or" unless the context clearly dictates otherwise.

雖然本專利文件包含許多細節,但這些細節不應被解釋為對任何發明或可要求保護的範圍的限制,而是作為特定於特定發明的特定實施例的特徵的描述。在本專利文件中在單獨的實施例的上下文中描述的某些特徵也可以在單個實施例中組合實施。相反,在單個實施例的上下文中描述的各種特徵也可以單獨地或以任何合適的子組合在多個實施例中實施。此外,雖然特徵在上面可以被描述為以某些組合起作用並且甚至最初如此要求保護,但是在某些情況下可以從組合中切除來自所要求保護的組合的一個或多個特徵,並且所要求保護的組合可以針對子組合或子組合的變化。Although this patent document contains many details, these details should not be construed as limitations on the scope of any invention or claimable, but as descriptions of features specific to specific embodiments of specific inventions. Certain features described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments individually or in any suitable subcombination. In addition, although features may be described above as functioning in certain combinations and even initially claimed as such, in some cases one or more features from the claimed combination may be cut out from the combination, and the claimed The combination of protection can be directed to sub-combination or sub-combination changes.

類似地,雖然在附圖中以特定順序描繪了操作,但是這不應該被理解為要求以所示的特定順序或按次序循序執行這些操作,或者執行所有示出的操作,以實現期望的結果。此外,在本專利文件中描述的實施例中的各種系統組件的分離不應被理解為在所有實施例中都需要這種分離。Similarly, although operations are depicted in a specific order in the drawings, this should not be understood as requiring that these operations be performed in the specific order shown or sequentially in order, or that all the operations shown are performed to achieve the desired result . Furthermore, the separation of various system components in the embodiments described in this patent document should not be construed as requiring such separation in all embodiments.

僅描述了一些實施方式和示例,並且可以基於本專利文件中描述和示出的內容來做出其他實施方式、增強和變化。Only some implementations and examples are described, and other implementations, enhancements, and changes can be made based on the content described and shown in this patent document.

100、200、300、511、512、513、514、700、a、b、c、d‧‧‧塊 400、500、900‧‧‧編碼單元 401、501、502、503、504、C、D‧‧‧子編碼單元 450‧‧‧參考圖片/運動源圖片 451‧‧‧對應塊/子編碼單元 701‧‧‧填充區域 800‧‧‧當前編碼單元/當前圖片 801、802、MV0、MV1‧‧‧運動向量 803、804、TD0、TD1‧‧‧時間距離 810、811、910、Ref0、Ref1‧‧‧參考圖片 1300、1350、1400‧‧‧方法 1302、1304、1306、1308、1352、1354、1356‧‧‧操作 1410、1420、1430‧‧‧步驟 1500‧‧‧編碼裝置 1505‧‧‧量化器 1515、1615‧‧‧去量化器 1520、1620‧‧‧預測器 1525、1625、1710、1802‧‧‧記憶體 1530‧‧‧二進制編碼器 1600‧‧‧解碼裝置 1605‧‧‧二進制解碼器 1700‧‧‧電腦系統 1705‧‧‧處理器 1715‧‧‧網路介面卡 1725‧‧‧互連 1800‧‧‧移動設備 1801‧‧‧處理器/控制器 1803‧‧‧輸入/輸出單元 1804‧‧‧顯示設備 A、B‧‧‧子編碼單元/點 p0、p1、q0、q1‧‧‧樣本 100, 200, 300, 511, 512, 513, 514, 700, a, b, c, d‧‧‧ block 400, 500, 900‧‧‧Coding unit 401, 501, 502, 503, 504, C, D‧‧‧sub coding unit 450‧‧‧Reference picture/Motion source picture 451‧‧‧Corresponding block/sub coding unit 701‧‧‧Filled area 800‧‧‧Current coding unit/current picture 801, 802, MV0, MV1‧‧‧Motion vector 803, 804, TD0, TD1‧‧‧Time distance 810, 811, 910, Ref0, Ref1‧‧‧Reference picture 1300, 1350, 1400‧‧‧Method 1302, 1304, 1306, 1308, 1352, 1354, 1356‧‧‧Operation 1410, 1420, 1430‧‧‧Step 1500‧‧‧Encoding device 1505‧‧‧Quantizer 1515, 1615‧‧‧Dequantizer 1520, 1620‧‧‧ predictor 1525, 1625, 1710, 1802‧‧‧Memory 1530‧‧‧Binary encoder 1600‧‧‧Decoding device 1605‧‧‧Binary Decoder 1700‧‧‧Computer system 1705‧‧‧Processor 1715‧‧‧Network Interface Card 1725‧‧‧Interconnection 1800‧‧‧Mobile Device 1801‧‧‧Processor/Controller 1803‧‧‧Input/Output Unit 1804‧‧‧Display equipment A, B‧‧‧Sub coding unit/point p0, p1, q0, q1‧‧‧sample

圖1示出了基於子塊的視頻處理的預測的示例。 圖2示出了簡化的仿射(affine)運動模型的示例。 圖3示出了每個子塊的仿射運動向量場(MVF)的示例。 圖4示出了使用用於編碼單元(CU)的可選時域運動向量預測(ATMVP)演算法的運動預測的示例。 圖5示出了具有空時運動向量預測(STMVP)演算法使用的子塊和相鄰塊的編碼單元(CU)的示例。 圖6示出了雙向光流(BIO)演算法使用的光流軌跡的示例。 圖7A示出了在沒有塊擴展的情況下使用雙向光流(BIO)演算法的示例快照(snapshot)。 圖7B示出了在沒有塊擴展的情況下使用BIO演算法的另一示例快照。 圖8示出了影格速率上轉換(FRUC)演算法中的雙邊匹配的示例。 圖9示出了FRUC演算法中的模板匹配的示例。 圖10A示出了可以根據本技術的一個或多個實施例濾波的子塊的邊界的示例。 圖10B示出了可以根據本技術的一個或多個實施例濾波的子塊的邊界的另一示例。 圖11A示出了要根據本技術的一個或多個實施例濾波的預測樣本(sample)的示例。 圖11B示出了要根據本技術的一個或多個實施例濾波的預測樣本的另一示例。 圖12A示出了根據本技術的一個或多個實施例的用於濾波樣本的相鄰樣本的示例。 圖12B示出了根據本技術的一個或多個實施例的用於濾波樣本的相鄰樣本的另一示例。 圖12C示出了根據本技術的一個或多個實施例的用於濾波樣本的相鄰樣本的又一示例。 圖13A示出了根據所公開的技術的用於視頻編碼的示例方法的流程圖。 圖13B示出了根據所公開的技術的用於視頻解碼的示例方法的流程圖。 圖14示出了根據所公開的技術的用於視頻編碼的示例方法的流程圖。 圖15是圖示可用於實施目前所公開的技術的各個部分的示例編碼裝置的框圖。 圖16是圖示可用於實施目前所公開的技術的各個部分的示例編碼裝置的框圖。 圖17是圖示可用於實施目前所公開的技術的各個部分的電腦系統或其他控制設備的架構的示例的框圖。 圖18示出了可用於實施目前所公開的技術的各個部分的移動設備的示例實施例的框圖。FIG. 1 shows an example of prediction based on sub-block video processing. Figure 2 shows an example of a simplified affine motion model. Fig. 3 shows an example of the affine motion vector field (MVF) of each sub-block. FIG. 4 shows an example of motion prediction using an optional temporal motion vector prediction (ATMVP) algorithm for coding units (CU). FIG. 5 shows an example of coding units (CU) with sub-blocks and neighboring blocks used by the space-time motion vector prediction (STMVP) algorithm. Figure 6 shows an example of the optical flow trajectory used by the Bidirectional Optical Flow (BIO) algorithm. Figure 7A shows an example snapshot using the Bidirectional Optical Flow (BIO) algorithm without block extension. Figure 7B shows another example snapshot using the BIO algorithm without block extension. Figure 8 shows an example of bilateral matching in the frame rate up conversion (FRUC) algorithm. Figure 9 shows an example of template matching in the FRUC algorithm. FIG. 10A shows an example of the boundaries of sub-blocks that can be filtered according to one or more embodiments of the present technology. FIG. 10B shows another example of the boundaries of sub-blocks that can be filtered according to one or more embodiments of the present technology. FIG. 11A shows an example of prediction samples to be filtered according to one or more embodiments of the present technology. FIG. 11B shows another example of prediction samples to be filtered according to one or more embodiments of the present technology. Figure 12A shows an example of neighboring samples for filtering samples according to one or more embodiments of the present technology. Figure 12B shows another example of neighboring samples for filtering samples according to one or more embodiments of the present technology. Figure 12C shows yet another example of neighboring samples for filtering samples according to one or more embodiments of the present technology. FIG. 13A shows a flowchart of an example method for video encoding according to the disclosed technology. FIG. 13B shows a flowchart of an example method for video decoding according to the disclosed technology. Figure 14 shows a flowchart of an example method for video encoding according to the disclosed technology. 15 is a block diagram illustrating an example encoding device that can be used to implement various parts of the currently disclosed technology. Figure 16 is a block diagram illustrating an example encoding device that can be used to implement various parts of the currently disclosed technology. FIG. 17 is a block diagram illustrating an example of the architecture of a computer system or other control device that can be used to implement various parts of the currently disclosed technology. Figure 18 shows a block diagram of an example embodiment of a mobile device that can be used to implement various parts of the presently disclosed technology.

1300‧‧‧方法 1300‧‧‧Method

1302、1304、1306、1308‧‧‧操作 1302, 1304, 1306, 1308‧‧‧Operation

Claims (33)

一種視頻編碼方法,包括:將當前視頻資料塊分割為多個子塊;為所述多個子塊中的至少一個子塊生成預測子塊;使用一組濾波器係數對所述至少一個子塊的預測子塊的邊界樣本進行濾波以生成經濾波的邊界樣本;以及使用經濾波的邊界樣本確定所述當前視頻資料塊的最終預測塊,其中,通過執行使用兩個參考的雙向預測來生成所述預測子塊,並且其中,所述濾波包括對所述雙向預測的至少一個中間預測塊進行濾波;或者通過執行多假設預測來生成所述預測子塊,並且其中,所述濾波包括對所述多假設預測的至少一個中間預測塊進行濾波。 A video coding method includes: dividing a current video data block into a plurality of sub-blocks; generating a prediction sub-block for at least one sub-block of the plurality of sub-blocks; and predicting the at least one sub-block using a set of filter coefficients The boundary samples of the sub-block are filtered to generate filtered boundary samples; and the filtered boundary samples are used to determine the final prediction block of the current video material block, wherein the prediction is generated by performing bidirectional prediction using two references Sub-block, and wherein the filtering includes filtering at least one intermediate prediction block of the bidirectional prediction; or generating the predicted sub-block by performing multiple hypothesis prediction, and wherein the filtering includes performing multiple hypothesis prediction At least one predicted intermediate prediction block is filtered. 一種視頻解碼方法,包括:使用一組濾波器係數對預測子塊的邊界樣本進行濾波以生成經濾波的邊界樣本,其中,為當前視頻塊的多個子塊的至少一個子塊生成所述預測子塊;使用經濾波的邊界樣本執行視頻資料的當前視頻塊的預測;以及使用所述預測重構所述當前視頻塊,其中,通過執行使用兩個參考的雙向預測來生成所述預測子塊,並且其中,所述濾波包括對所述雙向預測的至少一個中間預 測塊進行濾波;或者通過執行多假設預測來生成所述預測子塊,並且其中,所述濾波包括對所述多假設預測的至少一個中間預測塊進行濾波。 A video decoding method includes: using a set of filter coefficients to filter boundary samples of a prediction sub-block to generate filtered boundary samples, wherein the predictor is generated for at least one sub-block of a plurality of sub-blocks of the current video block Block; using the filtered boundary samples to perform prediction of the current video block of the video material; and using the prediction to reconstruct the current video block, wherein the prediction sub-block is generated by performing bidirectional prediction using two references, And wherein, the filtering includes at least one intermediate prediction for the bidirectional prediction The measured block is filtered; or the prediction sub-block is generated by performing multi-hypothesis prediction, and wherein the filtering includes filtering at least one intermediate prediction block of the multi-hypothesis prediction. 如申請專利範圍第1或2項所述的方法,其中,所述濾波包括去方塊濾波,並且其中,所述至少一個子塊包括非零或零殘差值。 The method according to claim 1 or 2, wherein the filtering includes deblocking filtering, and wherein the at least one sub-block includes a non-zero or zero residual value. 如申請專利範圍第1或2項所述的方法,其中,所述邊界樣本的至少第一子集位於沿著視頻資料塊中的兩個相鄰子塊之間的內邊界,並且其中所述邊界樣本的第二子集位於沿著視頻資料塊的多個子塊中的一個與第二視頻資料塊之間的外邊界。 The method according to item 1 or 2 of the scope of patent application, wherein at least a first subset of the boundary samples are located along the inner boundary between two adjacent sub-blocks in the video material block, and wherein the The second subset of boundary samples is located along the outer boundary between one of the multiple sub-blocks of the video material block and the second video material block. 如申請專利範圍第1或2項所述的方法,其中,所述邊界樣本包括沿著邊界的多個列或行的樣本。 The method according to item 1 or 2 of the scope of patent application, wherein the boundary sample includes a plurality of columns or rows of samples along the boundary. 如申請專利範圍第5項所述的方法,包括:基於至少一個子塊的大小確定所述邊界樣本的列或行的數量。 The method according to item 5 of the scope of patent application includes: determining the number of columns or rows of the boundary sample based on the size of at least one sub-block. 如申請專利範圍第5項所述的方法,包括:基於至少一個子塊的顏色分量確定列或行的數量。 The method described in item 5 of the scope of patent application includes: determining the number of columns or rows based on the color components of at least one sub-block. 如申請專利範圍第5項所述的方法,包括:基於所述邊界樣本是沿內邊界還是外邊界確定列或行的數量。 The method described in item 5 of the scope of patent application includes: determining the number of columns or rows based on whether the boundary sample is along the inner boundary or the outer boundary. 如申請專利範圍第5項所述的方法,包括:基於子塊在視頻資料塊中的位置確定列或行的數量。 The method described in item 5 of the scope of patent application includes: determining the number of columns or rows based on the position of the sub-block in the video data block. 如申請專利範圍第5項所述的方法,包括:基於視頻參數集、序列參數集、圖片參數集、條帶標頭、編碼 樹單元或編碼單元中的資訊確定列或行的數量。 The method described in item 5 of the scope of patent application includes: based on video parameter set, sequence parameter set, picture parameter set, strip header, coding The information in the tree unit or coding unit determines the number of columns or rows. 如申請專利範圍第1或2項所述的方法,其中,對所述多個子塊的邊界樣本進行濾波包括:通過將該組濾波器係數應用於與邊界樣本相鄰的相鄰樣本來對邊界樣本進行濾波。 The method according to item 1 or 2 of the scope of patent application, wherein, filtering the boundary samples of the plurality of sub-blocks includes: applying the set of filter coefficients to adjacent samples adjacent to the boundary samples to perform the The samples are filtered. 如申請專利範圍第11項所述的方法,其中,所述相鄰樣本和所述邊界樣本位於相同列或相同行中。 The method according to claim 11, wherein the adjacent samples and the boundary samples are located in the same column or the same row. 如申請專利範圍第11項所述的方法,其中,所述相鄰樣本在所述邊界樣本周圍的二維區域中。 The method according to item 11 of the scope of patent application, wherein the adjacent samples are in a two-dimensional area around the boundary samples. 如申請專利範圍第11項所述的方法,包括:基於對應子塊的大小選擇所述相鄰樣本。 The method described in item 11 of the scope of patent application includes: selecting the neighboring samples based on the size of the corresponding sub-block. 如申請專利範圍第11項所述的方法,包括:基於對應子塊的顏色分量選擇所述相鄰樣本。 The method described in item 11 of the scope of patent application includes: selecting the adjacent samples based on the color components of the corresponding sub-blocks. 如申請專利範圍第11項所述的方法,包括:基於邊界樣本的位置選擇所述相鄰樣本。 The method described in item 11 of the scope of patent application includes: selecting the adjacent samples based on the positions of the boundary samples. 如申請專利範圍第11項所述的方法,包括:基於視頻參數集、序列參數集、圖片參數集、條帶標頭、編碼樹單元或編碼單元中的資訊選擇所述相鄰樣本。 The method described in item 11 of the scope of patent application includes: selecting the adjacent samples based on information in a video parameter set, a sequence parameter set, a picture parameter set, a slice header, a coding tree unit, or a coding unit. 如申請專利範圍第1或2項所述的方法,其中,該組濾波器係數對於水平濾波和垂直濾波是相同的。 The method described in item 1 or 2 of the scope of the patent application, wherein the set of filter coefficients are the same for horizontal filtering and vertical filtering. 如申請專利範圍第1或2項所述的方法,其中,該組濾波器係數對於圍繞子塊的邊界的對稱樣本是相同的。 The method described in item 1 or 2 of the scope of patent application, wherein the set of filter coefficients are the same for symmetric samples surrounding the boundary of the sub-block. 如申請專利範圍第1或2項所述的方法,包括:基於從邊界樣本到對應邊界的距離確定邊界樣本的該組濾波器係數。 The method described in item 1 or 2 of the scope of the patent application includes: determining the set of filter coefficients of the boundary sample based on the distance from the boundary sample to the corresponding boundary. 如申請專利範圍第1或2項所述的方法,包括:基於至少一個子塊的大小確定該組濾波器係數。 The method described in item 1 or 2 of the scope of patent application includes: determining the set of filter coefficients based on the size of at least one sub-block. 如申請專利範圍第1或2項所述的方法,包括:基於至少一個子塊的顏色分量確定該組濾波器係數。 The method described in item 1 or 2 of the scope of patent application includes: determining the set of filter coefficients based on the color components of at least one sub-block. 如申請專利範圍第1或2項所述的方法,包括:基於視頻參數集、序列參數集、圖片參數集、條帶標頭、編碼樹單元或編碼單元中的資訊確定該組濾波器係數。 The method described in item 1 or 2 of the scope of patent application includes: determining the set of filter coefficients based on information in a video parameter set, a sequence parameter set, a picture parameter set, a slice header, a coding tree unit, or a coding unit. 如申請專利範圍第1或2項所述的方法,其中,所述濾波包括有限脈衝響應濾波或無限脈衝響應濾波。 The method according to item 1 or 2 of the scope of the patent application, wherein the filtering includes finite impulse response filtering or infinite impulse response filtering. 如申請專利範圍第1或2項所述的方法,其中,所述濾波包括:對於多個子塊中的每一個,對沿著垂直邊界的一組邊界樣本進行濾波;以及對於多個子塊中的每個子塊,在對沿著垂直邊界的一組邊界樣本進行濾波之後,對沿著水平邊界的剩餘邊界樣本進行濾波,其中,根據子塊掃描循序執行多個子塊的濾波。 The method according to item 1 or 2 of the scope of patent application, wherein the filtering includes: for each of the multiple sub-blocks, filtering a set of boundary samples along the vertical boundary; and for each of the multiple sub-blocks For each sub-block, after filtering a set of boundary samples along the vertical boundary, the remaining boundary samples along the horizontal boundary are filtered, wherein the filtering of multiple sub-blocks is sequentially performed according to the sub-block scanning. 如申請專利範圍第1或2項所述的方法,其中,所述濾波包括:對於多個子塊中的每個子塊,對沿著水平邊界的一組邊界樣本 進行濾波;以及對於多個子塊中的每個子塊,在對沿著水平邊界的一組邊界樣本進行濾波之後,對沿著垂直邊界的剩餘邊界樣本進行濾波,其中,根據子塊掃描循序執行多個子塊的濾波。 The method according to item 1 or 2 of the scope of patent application, wherein the filtering includes: for each sub-block of a plurality of sub-blocks, a set of boundary samples along the horizontal boundary Filtering; and for each of the multiple sub-blocks, after filtering a set of boundary samples along the horizontal boundary, filtering the remaining boundary samples along the vertical boundary, wherein the multiple sub-block scans are sequentially performed Filtering of sub-blocks. 如申請專利範圍第1或2項所述的方法,其中,所述濾波包括:對沿著所有多個子塊的垂直邊界的一組邊界樣本進行濾波;以及在對沿著垂直邊界的一組邊界樣本進行濾波之後,對沿著所有多個子塊的水平邊界的剩餘邊界樣本進行濾波。 The method according to item 1 or 2 of the scope of patent application, wherein the filtering includes: filtering a set of boundary samples along the vertical boundary of all the plurality of sub-blocks; and filtering a set of boundary samples along the vertical boundary After the samples are filtered, the remaining boundary samples along the horizontal boundaries of all multiple sub-blocks are filtered. 如申請專利範圍第1或2項所述的方法,其中,所述濾波包括:對沿著所有多個子塊的水平邊界的一組邊界樣本進行濾波;以及在對沿著水平邊界的一組邊界樣本進行濾波之後,對沿著所有多個子塊的垂直邊界的剩餘邊界樣本進行濾波。 The method according to item 1 or 2 of the scope of patent application, wherein the filtering includes: filtering a set of boundary samples along the horizontal boundary of all the plurality of sub-blocks; and filtering a set of boundary samples along the horizontal boundary After the samples are filtered, the remaining boundary samples along the vertical boundaries of all multiple sub-blocks are filtered. 如申請專利範圍第1或2項所述的方法,其中,所述濾波基於視頻資料塊或相鄰視頻資料塊的一個或多個屬性,其中所述一個或多個屬性包括運動向量、量化參數、影格內預測模式、影格間預測方向、Merge模式或高級運動向量預測模式。 The method according to item 1 or 2 of the scope of patent application, wherein the filtering is based on one or more attributes of the video data block or adjacent video data blocks, wherein the one or more attributes include a motion vector, a quantization parameter , Intra-frame prediction mode, inter-frame prediction direction, Merge mode or advanced motion vector prediction mode. 如申請專利範圍第1或2項所述的方法,其中針對所述多個子塊中的每一個自適應地啟用或禁用所述濾波。 The method according to claim 1 or 2, wherein the filtering is adaptively enabled or disabled for each of the plurality of sub-blocks. 一種視頻編碼裝置,包括:處理器,被配置為實施如申請專利範圍第1和3至30項中任一項所述的方法。 A video encoding device includes a processor configured to implement the method according to any one of items 1 and 3 to 30 in the scope of patent application. 一種視頻解碼裝置,包括:處理器,被配置為實施如申請專利範圍第2至30項中任一項所述的方法。 A video decoding device includes a processor configured to implement the method according to any one of the 2nd to 30th patent applications. 一種儲存在非暫態電腦可讀介質上的電腦程式產品,所述電腦程式產品包括用於執行如申請專利範圍第1至30項中任一項所述的方法的程式碼。 A computer program product stored on a non-transitory computer readable medium. The computer program product includes a program code for executing the method described in any one of items 1 to 30 in the scope of patent application.
TW108123080A 2018-06-29 2019-07-01 Boundary filtering for sub-block TWI704800B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
WOPCT/CN2018/093634 2018-06-29
CN2018093634 2018-06-29

Publications (2)

Publication Number Publication Date
TW202007149A TW202007149A (en) 2020-02-01
TWI704800B true TWI704800B (en) 2020-09-11

Family

ID=67180832

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108123080A TWI704800B (en) 2018-06-29 2019-07-01 Boundary filtering for sub-block

Country Status (3)

Country Link
CN (1) CN110662073B (en)
TW (1) TWI704800B (en)
WO (1) WO2020003257A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114071157A (en) * 2020-07-29 2022-02-18 Oppo广东移动通信有限公司 Inter-frame prediction method, encoder, decoder, and computer storage medium

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100571391C (en) * 2007-05-09 2009-12-16 安凯(广州)软件技术有限公司 The method for parallel processing that is used for the video coding and decoding system de-blocking filter
CN101267560A (en) * 2008-03-19 2008-09-17 浙江大学 Block-removal filtering method and device
KR20110125153A (en) * 2010-05-12 2011-11-18 에스케이 텔레콤주식회사 Method and apparatus for filtering image and encoding/decoding of video data using thereof
WO2015101329A1 (en) * 2014-01-02 2015-07-09 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction coding with boundary filtering control
US10419755B2 (en) * 2016-05-16 2019-09-17 Qualcomm Incorporated Confusion of multiple filters in adaptive loop filtering in video coding
CN108111851B (en) * 2016-11-25 2020-12-22 华为技术有限公司 Deblocking filtering method and terminal

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
P. Bordes et.al, Description of SDR, HDR and 360° video coding technology proposal by Qualcomm and Technicolor – medium complexity version, JVET-J0022r1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, CA, USA, 10–20 April 2018, *
Rickard Sjöberg el.al, Description of SDR and HDR video coding technology proposal by Ericsson and Nokia, JVET-J0012-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, CA, USA, 10–20 April 2018, *
Xiaoyu Xiu et.al, Description of SDR, HDR, and 360° video coding technology proposal by InterDigital Communications and Dolby Laboratories, JVET-J0015-v1, JVET-J0012-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, CA, USA, 10–20 April 2018 *
Xiaoyu Xiu et.al, Description of SDR, HDR, and 360° video coding technology proposal by InterDigital Communications and Dolby Laboratories, JVET-J0015-v1, JVET-J0012-v1, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San Diego, CA, USA, 10–20 April 2018,

Also Published As

Publication number Publication date
CN110662073A (en) 2020-01-07
TW202007149A (en) 2020-02-01
CN110662073B (en) 2022-08-30
WO2020003257A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
US11477463B2 (en) Component-dependent sub-block dividing
TWI736906B (en) Mv precision refine
TWI729402B (en) Weighted interweaved prediction
JP7241870B2 (en) Difference calculation based on partial position
TW202019185A (en) Asymmetric weighted bi-predictive merges
WO2019244117A1 (en) Unified constrains for the merge affine mode and the non-merge affine mode
TWI722465B (en) Boundary enhancement for sub-block
CN110944204B (en) Simplified space-time motion vector prediction
CN111131830A (en) Overlapped block motion compensation improvement
WO2020058956A1 (en) Non-affine blocks predicted from affine motion
TWI704800B (en) Boundary filtering for sub-block
WO2020049447A1 (en) Fast encoding methods for interweaved prediction
CN110557639B (en) Application of interleaved prediction
TW202037156A (en) Mode dependent affine inheritance