TWI870841B - Method and apparatus for video coding - Google Patents
Method and apparatus for video coding Download PDFInfo
- Publication number
- TWI870841B TWI870841B TW112116017A TW112116017A TWI870841B TW I870841 B TWI870841 B TW I870841B TW 112116017 A TW112116017 A TW 112116017A TW 112116017 A TW112116017 A TW 112116017A TW I870841 B TWI870841 B TW I870841B
- Authority
- TW
- Taiwan
- Prior art keywords
- block
- subblock
- current
- current block
- motion vector
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/583—Motion compensation with overlapping blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/137—Motion inside a coding unit, e.g. average field, frame or block difference
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本發明涉及視訊編解碼。 更具體地,本發明涉及視訊編解碼系統中的重疊塊運動補償(Overlapped Block Motion Compensation,簡寫為OBMC)處理相關的行數量(number of lines)以及行權重(weightings for the lines)的自適應設計。The present invention relates to video coding and decoding. More specifically, the present invention relates to the adaptive design of the number of lines and weightings for the lines in Overlapped Block Motion Compensation (OBMC) processing in a video coding and decoding system.
通用視訊編解碼(versatile video coding,簡寫為VVC)是由ITU-T視訊編解碼專家組(VCEG)和ISO/IEC運動圖像專家組(MPEG)的聯合視訊專家組(JVET)共同製定的最新國際視訊編解碼標準。 該標準已作為 ISO 標準發布:ISO/IEC 23090-3:2021,Information technology - Coded representation of immersive media - Part 3: Versatile Video Coding,2021 年 2 月發布。VVC 是在其前身 HEVC(High Efficiency Video Coding)的基礎上通過添加更多的編解碼工具來提高編解碼效率,也可以處理各種類型的視訊源,包括3維(3-dimensional,簡寫為3D)視訊信號。Versatile video coding (VVC) is the latest international video coding standard jointly developed by the ITU-T Video Coding Experts Group (VCEG) and the Joint Video Experts Group (JVET) of the ISO/IEC Moving Picture Experts Group (MPEG). The standard has been published as an ISO standard: ISO/IEC 23090-3:2021, Information technology - Coded representation of immersive media - Part 3: Versatile Video Coding, published in February 2021. VVC improves the coding efficiency by adding more coding tools on the basis of its predecessor HEVC (High Efficiency Video Coding), and can also process various types of video sources, including 3-dimensional (3D) video signals.
第1A圖說明了包含環路處理(loop processing)的示例性自適應幀間/幀內(adaptive Inter/Intra)視訊編碼系統。 對於幀內預測,預測資料是根據當前圖片中先前編解碼的視訊資料導出的。 對於幀間預測112,在編碼器側執行運動估計(Motion Estimation,簡寫為ME)並且基於ME的結果執行運動補償(Motion Compensation,簡寫為MC)以提供從其他圖片和運動資料導出的預測資料。 開關114選擇幀內預測110或幀間預測112並且所選擇的預測資料被提供給加法器116以形成預測誤差,也稱為殘差。 預測誤差然後由變換(T) 118和隨後的量化(Q) 120處理。變換和量化的殘差然後由熵編碼器122編碼以包括在對應於壓縮的視訊資料的視訊位元流中。 與變換係數相關聯的位元流然後與輔助資訊(side information)(例如與幀內預測和幀間預測相關聯的運動和編解碼模式)以及其他資訊(例如與應用於底層圖像區域(underlying image area)的環路濾波器相關聯的參數)一起打包。 與幀內預測110、幀間預測112和環內濾波器130相關聯的輔助資訊被提供給熵編碼器122,如第1A圖所示。 當使用幀間預測模式時,也必須在編碼器端重建一個或多個參考圖片。 因此,經變換和量化的殘差由逆量化(IQ)124和逆變換(IT)126處理以恢復殘差。 然後在重建(REC)128處將殘差加回到預測資料136以重建視訊資料。 重建的視訊資料可以存儲在參考圖片緩衝器134中並用於預測其他幀。FIG. 1A illustrates an exemplary adaptive Inter/Intra video coding system including loop processing. For intra prediction, prediction data is derived based on previously encoded and decoded video data in the current picture. For inter prediction 112, motion estimation (ME) is performed on the encoder side and motion compensation (MC) is performed based on the results of ME to provide prediction data derived from other pictures and motion data. Switch 114 selects intra prediction 110 or inter prediction 112 and the selected prediction data is provided to adder 116 to form a prediction error, also known as residual. The prediction error is then processed by a transform (T) 118 and a subsequent quantization (Q) 120. The transform and quantization residues are then encoded by an entropy coder 122 for inclusion in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packaged with side information such as motion and codec modes associated with intra-frame prediction and inter-frame prediction, as well as other information such as parameters associated with a loop filter applied to the underlying image area. The side information associated with intra-frame prediction 110, inter-frame prediction 112, and the intra-loop filter 130 is provided to the entropy coder 122 as shown in FIG. 1A. When using the inter-frame prediction mode, one or more reference pictures must also be reconstructed at the encoder end. Therefore, the transformed and quantized residues are processed by inverse quantization (IQ) 124 and inverse transform (IT) 126 to restore the residues. The residues are then added back to the prediction data 136 at reconstruction (REC) 128 to reconstruct the video data. The reconstructed video data can be stored in the reference picture buffer 134 and used to predict other frames.
如第1A圖所示,輸入的視訊資料在編碼系統中經過一系列處理。 由於一系列處理,來自 REC 128 的重建的視訊資料可能會受到各種損害。 因此,環路濾波器130經常在重建的視訊資料被存儲在參考圖片緩衝器134中之前應用於重建的視訊資料以提高視訊品質。 例如,可以使用去塊濾波器(deblocking filter,簡寫為DF)、樣本自適應偏移(Sample Adaptive Offset,簡寫為SAO)和自適應環路濾波器(Adaptive Loop Filter,簡寫為ALF)。 可能需要將環路濾波器資訊合併到位元流中,以便解碼器可以正確地恢復所需的資訊。 因此,環路濾波器資訊也被提供給熵編碼器122以合併到位元流中。 在第1A圖中,在重建的樣本被存儲在參考圖片緩衝器134中之前環路濾波器130被應用於重建的視訊。第1A圖中的系統旨在說明典型的視訊編碼器的示例性結構。 它可以對應於高效視訊編解碼(HEVC)系統、VP8、VP9、H.264或VVC。As shown in FIG. 1A , the input video data undergoes a series of processes in the encoding system. Due to the series of processes, the reconstructed video data from REC 128 may be subject to various impairments. Therefore, a loop filter 130 is often applied to the reconstructed video data before it is stored in a reference picture buffer 134 to improve the video quality. For example, a deblocking filter (DF), a sample adaptive offset (SAO), and an adaptive loop filter (ALF) may be used. It may be necessary to merge the loop filter information into the bitstream so that the decoder can correctly restore the required information. Therefore, the loop filter information is also provided to the entropy encoder 122 to be incorporated into the bitstream. In FIG. 1A , the loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in FIG. 1A is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to a High Efficiency Video Coding (HEVC) system, VP8, VP9, H.264, or VVC.
如第1B圖所示,解碼器可以使用與編碼器相似或相同的功能塊,除了變換 118 和量化 120 之外,因為解碼器只需要逆量化 124 和逆變換 126。取代熵編碼器122,解碼器使用熵解碼器140將視訊位元流解碼為量化的變換係數和所需的編解碼資訊(例如ILPF資訊、幀內預測資訊和幀間預測資訊)。 解碼器側的幀內預測150不需要執行模式搜索。 相反,解碼器僅需要根據從熵解碼器140接收的幀內預測資訊生成幀內預測。此外,對於幀間預測,解碼器僅需要根據從熵解碼器接收的幀間預測資訊執行運動補償(MC 152) 140 而無需運動估計。As shown in FIG. 1B , the decoder may use similar or identical functional blocks as the encoder, except for transform 118 and quantization 120, since the decoder only needs inverse quantization 124 and inverse transform 126. Instead of entropy encoder 122, the decoder uses entropy decoder 140 to decode the video bit stream into quantized transform coefficients and required coding and decoding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information). The intra-frame prediction 150 on the decoder side does not need to perform a pattern search. Instead, the decoder only needs to generate an intra-frame prediction based on the intra-frame prediction information received from entropy decoder 140. Furthermore, for inter-frame prediction, the decoder only needs to perform motion compensation (MC 152) 140 based on the inter-frame prediction information received from the entropy decoder without motion estimation.
根據 VVC,類似於 HEVC,輸入圖片被分區(partition)為稱為 CTU (編解碼樹單元)的非重疊方形塊區域(non-overlapped square block region)。 每個 CTU 都可以劃分為一個或多個較小尺寸的編解碼單元 (CU)。 生成的 CU 分區可以是正方形或長方形。 此外,VVC 將 CTU 劃分為預測單元 (PU),作為應用預測處理(例如幀間預測、幀內預測等)的單元。According to VVC, similar to HEVC, the input picture is partitioned into non-overlapped square block regions called CTUs (Codec Tree Units). Each CTU can be divided into one or more smaller-sized Codec Units (CUs). The resulting CU partitions can be square or rectangular. In addition, VVC divides CTUs into Prediction Units (PUs) as units for applying prediction processing (e.g., inter-frame prediction, intra-frame prediction, etc.).
VVC標準合併了各種新的編解碼工具以進一步提高超過HEVC標準的編解碼效率。 此外,已經提出了各種新的編解碼工具,以供在 VVC 之外的新編解碼標準的開發中考慮。 在各種新的編解碼工具中,與本發明相關的一些編解碼工具的簡要說明如下。The VVC standard incorporates various new codec tools to further improve codec efficiency beyond the HEVC standard. In addition, various new codec tools have been proposed for consideration in the development of new codec standards other than VVC. Among the various new codec tools, a brief description of some codec tools related to the present invention is as follows.
重疊塊運動補償Overlapping Block Motion Compensation (( Overlapped Block Motion CompensationOverlapped Block Motion Compensation ,簡寫為, abbreviated as OBMCOBMC ))
重疊塊運動補償(OBMC)基於從其附近的塊運動矢量(MV)導出的運動補償的(motion-compensated)信號來找到像素強度值的線性最小均方誤差(Linear Minimum Mean Squared Error,簡寫為LMMSE)估計。 從理論估計(estimation-theoretic)的角度來看,這些 MV 被視為其真實運動的不同合理假設(plausible hypotheses),並且為了最大化編解碼效率,它們的權重應該最小化受單位增益約束的均方預測誤差。Overlapping Block Motion Compensation (OBMC) finds the Linear Minimum Mean Squared Error (LMMSE) estimate of a pixel's intensity value based on a motion-compensated signal derived from its nearby block motion vectors (MVs). From an estimation-theoretic point of view, these MVs are viewed as different plausible hypotheses of their true motion, and to maximize codec efficiency, their weights should minimize the mean squared prediction error subject to a unity gain constraint.
當開發出高效視訊編解碼(HEVC)時,提出了使用 OBMC 來提供編解碼增益的若干提議。 其中一些描述如下。When High Efficiency Video Codec (HEVC) was developed, several proposals were made to use OBMC to provide coding gains. Some of them are described below.
在 JCTVC-C251(Peisong Chen 等人,“Overlapped block motion compensation in TMuC”,ITU-T SG16 WP3 和 ISO/IEC JTC1/SC29/WG11 的視訊編解碼聯合協作組(JCT-VC), 第3次會議: 中國,廣州, 2010年10月7-15日, 文件: JCTVC-C251), OBMC 應用於幾何分區。 在幾何分區中,一個變換塊很可能包含屬於不同分區的像素。 在幾何分區中,由於使用兩個不同的運動矢量進行運動補償,因此分區邊界處的像素可能具有較大的不連續性,從而產生類似於塊效應的視覺偽影。 這反過來又降低了變換效率。幾何分區創建的兩個區域用區域 1 和區域 2 表示。來自區域 1 (2) 的像素被定義為邊界像素(boundary pixel),如果它的四個相鄰鄰近(connected neighbor)(左、上、右和下)中的任何一個屬於區域 2 (1)。 第2圖顯示了一個示例,其中灰色點像素屬於區域 1(灰色區域)的邊界,白色點像素屬於區域 2(白色區域)的邊界。 如果像素是邊界像素,則使用來自兩個運動矢量的運動預測的加權和來執行運動補償。 對於使用包含邊界像素的區域的運動矢量的預測,權重是 3/4,對於使用其他區域的運動矢量的預測,權重是 1/4。 重疊邊界改善了重建視訊的視覺品質,同時還提供了 BD 速率增益。In JCTVC-C251 (Peisong Chen et al., “Overlapped block motion compensation in TMuC”, Joint Collaboration Group on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 3rd Meeting: Guangzhou, China, October 7-15, 2010, document: JCTVC-C251), OBMC is applied to geometric partitions. In geometric partitions, a transformed block is likely to contain pixels belonging to different partitions. In geometric partitions, since two different motion vectors are used for motion compensation, pixels at the partition boundary may have large discontinuities, resulting in visual artifacts similar to blocking effects. This in turn reduces the transform efficiency. The two regions created by the geometric partitioning are denoted by Region 1 and Region 2. A pixel from Region 1 (2) is defined as a boundary pixel if any of its four connected neighbors (left, top, right, and bottom) belongs to Region 2 (1). Figure 2 shows an example where the gray pixel belongs to the boundary of Region 1 (gray region) and the white pixel belongs to the boundary of Region 2 (white region). If the pixel is a boundary pixel, motion compensation is performed using a weighted sum of the motion predictions from the two motion vectors. The weight is 3/4 for the prediction using the motion vector of the region containing the boundary pixel and 1/4 for the prediction using the motion vector of the other regions. Overlapping borders improves the visual quality of the reconstructed video while also providing BD rate gains.
在 JCTVC-F299(Liwei Guo 等人,“CE2:Overlapped Block Motion Compensation for 2NxN and Nx2N Motion Partitions”, ITU-T SG16 WP3 和 ISO/IEC JTC1/SC29/WG11 視訊編解碼聯合協作組(JCT-VC),第 6 次會議:都靈,2011 年 7 月 14-22 日,文件:JCTVC-F299),OBMC 應用於對稱的運動分區(symmetrical motion partition)。 如果編解碼單元(CU)被劃分為2個2NxN或Nx2N預測單元(PU),則OBMC應用於兩個2NxN預測塊的水平邊界和兩個Nx2N預測塊的垂直邊界。 由於這些分區可能具有不同的運動矢量,因此分區邊界處的像素可能具有較大的不連續性,這可能會產生視覺偽影並且還會降低變換/編解碼效率。 在 JCTVC-F299 中,引入了 OBMC 來平滑運動分區的邊界。In JCTVC-F299 (Liwei Guo et al., "CE2: Overlapped Block Motion Compensation for 2NxN and Nx2N Motion Partitions", ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 Joint Working Group on Video Coding (JCT-VC), 6th Meeting: Torino, July 14-22, 2011, document: JCTVC-F299), OBMC is applied to symmetrical motion partitions. If the coding unit (CU) is divided into two 2NxN or Nx2N prediction units (PUs), OBMC is applied to the horizontal boundary of the two 2NxN prediction blocks and the vertical boundary of the two Nx2N prediction blocks. Since these partitions may have different motion vectors, the pixels at the partition boundaries may have large discontinuities, which may produce visual artifacts and also reduce transform/encodec efficiency. In JCTVC-F299, OBMC is introduced to smooth the boundaries of motion partitions.
第3A-B圖圖示了用於2NxN(第3A圖)和Nx2N塊(第3B圖)的OBMC的示例。 灰色像素是屬於分區 0 的像素,白色像素是屬於分區 1 的像素。亮度分量中的重疊區域定義為水平(垂直)邊界兩側的 2 列(row)(欄(column))像素。 對於距離分區邊界1列(欄)的像素,即第3A-B圖中標記為A的像素,OBMC 加權因子為(3/4,1/4)。 對於距分區邊界2列(欄)的像素,即第3A-B圖中標記為B的像素,OBMC 加權因子為(7/8,1/8)。 對於色度分量,重疊區域定義為水平(垂直)邊界每一側的1列(欄)像素,權重因子為(3/4,1/4)。Figures 3A-B illustrate examples of OBMC for 2NxN (Figure 3A) and Nx2N blocks (Figure 3B). Gray pixels are pixels belonging to partition 0 and white pixels are pixels belonging to partition 1. The overlap area in the luminance component is defined as 2 rows (columns) of pixels on either side of the horizontal (vertical) boundary. For pixels that are 1 row (column) away from the partition boundary, i.e., pixels marked as A in Figures 3A-B, the OBMC weighting factors are (3/4, 1/4). For pixels that are 2 rows (columns) away from the partition boundary, i.e., pixels marked as B in Figures 3A-B, the OBMC weighting factors are (7/8, 1/8). For chroma components, the overlap area is defined as 1 row (column) of pixels on each side of the horizontal (vertical) boundary, with weight factors of (3/4, 1/4).
目前,OBMC是在正常MC之後進行的,BIO也分別應用在這兩個MC過程中。 也就是說,兩個CU或PU之間的重疊區域的MC結果是由另一個進程,而不是在正常的MC進程中生成的。 然後應用雙向光流(Bi-Directional Optical Flow,簡寫為BIO)來改進這兩個 MC 結果。 當兩個相鄰的 MV 相同時,這有助於跳過冗餘的 OBMC 和 BIO 過程。 但是,與將 OBMC 過程集成到正常 MC 過程中相比,重疊區域所需的帶寬和 MC 操作增加了。 例如,當前PU大小為16x8,重疊區域為16x2,MC中的插值濾波器(interpolation filter)為8抽頭(8-tap)。 如果 OBMC 在正常 MC 之後執行,那麼對於當前 PU 和相關 OBMC ,每個參考列表我們需要 (16+7)x(8+7) + (16+7)x(2+7) = 552 個參考像素。如果 OBMC 操作與普通 MC 合併為一個階段,則當前 PU 和相關 OBMC 的每個參考列表只有 (16+7)x(8+2+7) = 391 個參考像素。 因此,在下文中,為了降低BIO的計算複雜度或記憶體帶寬,當BIO和OBMC同時啟用時,提出了幾種方法。Currently, OBMC is performed after normal MC, and BIO is also applied in these two MC processes separately. That is, the MC result of the overlapping area between two CUs or PUs is generated by another process instead of in the normal MC process. Bi-Directional Optical Flow (BIO) is then applied to improve these two MC results. This helps skip redundant OBMC and BIO processes when two adjacent MVs are the same. However, compared with integrating the OBMC process into the normal MC process, the bandwidth and MC operations required for the overlapping area are increased. For example, the current PU size is 16x8, the overlapping area is 16x2, and the interpolation filter in MC is 8-tap. If OBMC is executed after normal MC, then we need (16+7)x(8+7) + (16+7)x(2+7) = 552 reference pixels per reference list for the current PU and the associated OBMC. If the OBMC operation is merged into one phase with normal MC, then there are only (16+7)x(8+2+7) = 391 reference pixels per reference list for the current PU and the associated OBMC. Therefore, in the following, several methods are proposed to reduce the computational complexity or memory bandwidth of BIO when BIO and OBMC are enabled simultaneously.
在JEM(聯合探索模型)中,OBMC也被應用。 在 JEM 中,與 H.263 不同,OBMC 可以使用 CU 級別的句法打開和關閉。 當在JEM中使用OBMC時,OBMC對除CU的右邊界和下邊界之外的所有運動補償(MC)塊邊界執行。 此外,它適用於亮度和色度分量。 在 JEM 中,一個 MC 塊對應一個編解碼塊。 當CU採用子CU模式(包括子CU合併、仿射和FRUC模式)編解碼時,CU的每個子塊都是一個MC塊。 為了以統一的方式處理 CU 邊界,OBMC 在子塊級別對所有 MC 塊邊界執行,其中子塊大小設置為 4×4,如第4A圖以及第4B圖所示。In JEM (Joint Exploration Model), OBMC is also applied. In JEM, unlike H.263, OBMC can be turned on and off using CU-level syntax. When OBMC is used in JEM, OBMC is performed on all motion compensation (MC) block boundaries except the right and bottom boundaries of the CU. In addition, it is applicable to both luminance and chrominance components. In JEM, one MC block corresponds to one codec block. When the CU is encoded and decoded in sub-CU mode (including sub-CU merging, affine, and FRUC modes), each sub-block of the CU is an MC block. In order to handle CU boundaries in a unified manner, OBMC is performed on all MC block boundaries at the sub-block level, where the sub-block size is set to 4×4, as shown in Figures 4A and 4B.
當OBMC被應用到當前子塊時,除了當前運動矢量之外,四個相連的鄰近子塊的運動矢量(如果可用且與當前運動矢量不相同),也被用於導出當前子塊的預測塊。 這些基於多個運動矢量的多個預測塊被組合以生成當前子塊的最終預測信號。 基於相鄰子塊的運動矢量的預測塊記為PN,N表示鄰近上、下、左、右子塊的索引,基於當前子塊的運動矢量的預測塊表示為PC。 第4A圖示出了當前CU 410的子塊的OBMC的示例,其使用鄰近的上方子塊(即,當前子塊為P N1時)、左側鄰近子塊(即,當前子塊為P N2時)、左側和上方子塊(即,當前子塊為P N3時 )。 第4B圖圖示了用於ATMVP模式的當前CU 420的OBMC的示例,其中塊PN使用來自四個鄰近子塊的MV用於OBMC。 當PN基於包含與當前子塊相同的運動資訊的鄰近子塊的運動資訊時,不從PN執行OBMC。否則,將 PN 的每個樣本添加到 PC 中的相同樣本,即 PN 的四列/欄添加到 PC。 權重因子{1/4、1/8、1/16、1/32}用於PN,權重因子{3/4、7/8、15/16、31/32}用於PC。 小 MC 塊(即,當編解碼塊的高度或寬度等於 4 或 CU 以子 CU 模式編解碼時)是例外情況,PN只有兩列/欄被添加到 PC。 在這種情況下,權重因子 {1/4, 1/8} 用於 PN,權重因子 {3/4, 7/8} 用於 PC。 對於基於垂直(水平)鄰近子塊的運動矢量生成的PN,將PN同一列(欄)的樣本以相同的權重因子添加到PC。 When OBMC is applied to the current sub-block, in addition to the current motion vector, the motion vectors of four connected neighboring sub-blocks (if available and different from the current motion vector) are also used to derive the prediction block of the current sub-block. These multiple prediction blocks based on multiple motion vectors are combined to generate the final prediction signal of the current sub-block. The prediction block based on the motion vector of the neighboring sub-block is denoted as PN, N represents the index of the neighboring upper, lower, left and right sub-blocks, and the prediction block based on the motion vector of the current sub-block is denoted as PC. FIG. 4A shows an example of OBMC of a sub-block of the current CU 410, which uses the adjacent upper sub-block (i.e., when the current sub-block is PN1 ), the left adjacent sub-block (i.e., when the current sub-block is PN2 ), and the left and upper sub-blocks (i.e., when the current sub-block is PN3 ). FIG. 4B shows an example of OBMC of the current CU 420 for ATMVP mode, where the block PN uses MVs from four adjacent sub-blocks for OBMC. When the PN is based on the motion information of the adjacent sub-block containing the same motion information as the current sub-block, OBMC is not performed from the PN. Otherwise, each sample of the PN is added to the same sample in the PC, i.e., four columns/columns of the PN are added to the PC. Weight factors {1/4, 1/8, 1/16, 1/32} are used for PN, and weight factors {3/4, 7/8, 15/16, 31/32} are used for PC. Small MC blocks (i.e., when the height or width of the codec block is equal to 4 or the CU is coded in sub-CU mode) are an exception, and only two columns/columns of the PN are added to the PC. In this case, weight factors {1/4, 1/8} are used for PN, and weight factors {3/4, 7/8} are used for PC. For PN generated based on motion vectors of vertically (horizontally) neighboring sub-blocks, samples in the same column (column) of the PN are added to the PC with the same weight factor.
在 JEM 中,對於大小小於或等於 256 個亮度樣本的 CU,發送 CU 級別標誌(CU level flag)以指示是否將 OBMC 應用於當前 CU。 對於大小大於 256 個亮度樣本或未使用 AMVP 模式編解碼的 CU,默認應用 OBMC。 在編碼器,當 OBMC 應用於 CU 時,其影響在運動估計階段被考慮在內。 OBMC利用頂部鄰近塊和左側鄰近塊的運動資訊形成的預測信號用於補償當前CU的原始信號的頂部和左側邊界,然後應用正常運動估計過程。In JEM, for CUs with a size less than or equal to 256 luma samples, a CU level flag is sent to indicate whether OBMC is applied to the current CU. For CUs with a size greater than 256 luma samples or not encoded or decoded using AMVP mode, OBMC is applied by default. In the encoder, when OBMC is applied to a CU, its impact is taken into account in the motion estimation stage. OBMC uses the prediction signal formed by the motion information of the top neighboring blocks and the left neighboring blocks to compensate the top and left boundaries of the original signal of the current CU, and then the normal motion estimation process is applied.
在用於VVC開發的聯合探索模型 (Joint Exploration Model for VVC development,簡寫為JEM)中,應用了OBMC。 例如,如第5圖所示,對於當前塊510,如果上方的塊和左側的塊採用幀間模式編解碼,則取上方塊的MV生成OBMC塊A,取左側塊的MV 左塊生成 OBMC 塊 L。OBMC 塊 A 和 OBMC 塊 L 的預測子與當前預測子混合(blend)。 為了減少OBMC的記憶體帶寬,建議執行上方的4列(row)MC,左側4欄(column)的MC以及鄰近的塊。 比如在執行上方的塊MC的時候,額外取出4列生成一個 (上方塊 + OBMC 塊 A) (above block + OBMC block A)的塊。 OBMC 塊 A 的預測子存儲在緩衝器中,用於對當前塊進行編解碼。 在執行左側塊 MC的時候,額外取出4欄,生成一個(左側塊+OBMC塊L)(left block + OBMC block L)的塊。 OBMC 塊 L 的預測子存儲在緩衝器中,用於對當前塊進行編解碼。 因此,在對當前塊進行MC時,額外取出四列和四欄參考像素,生成當前塊的預測子、OBMC塊B和OBMC塊R,如第6A圖所示(可能還生成如第6B圖所示的OBMC 塊 BR)。 OBMC塊B和OBMC塊R存儲在緩衝器中,用於底部鄰近塊和右鄰近塊的OBMC處理。OBMC is applied in the Joint Exploration Model for VVC development (JEM). For example, as shown in FIG. 5 , for the current block 510, if the upper block and the left block are coded and decoded in inter-frame mode, the MV of the upper block is taken to generate OBMC block A, and the MV of the left block is taken to generate OBMC block L. The predictors of OBMC block A and OBMC block L are blended with the current predictor. In order to reduce the memory bandwidth of OBMC, it is recommended to perform MC of the upper 4 rows, MC of the left 4 columns, and neighboring blocks. For example, when executing the MC of the upper block, 4 additional columns are taken out to generate a block of (above block + OBMC block A). The prediction sub-data of OBMC block A is stored in the buffer and used to encode and decode the current block. When executing the MC of the left block, 4 additional columns are taken out to generate a block of (left block + OBMC block L). The prediction sub-data of OBMC block L is stored in the buffer and used to encode and decode the current block. Therefore, when performing MC on the current block, four additional columns and four columns of reference pixels are taken out to generate the predictor, OBMC block B and OBMC block R of the current block, as shown in FIG. 6A (OBMC block BR as shown in FIG. 6B may also be generated). OBMC block B and OBMC block R are stored in a buffer for OBMC processing of the bottom neighboring block and the right neighboring block.
對於MxN塊,如果MV不是整數並且應用了8抽頭插值濾波器,則使用大小為(M+7)x(N+7)的參考塊來進行運動補償。 但是,如果應用 BIO 和 OBMC,則需要額外的參考像素,這會增加最壞情況下的記憶體帶寬。For MxN blocks, if MV is not an integer and an 8-tap interpolation filter is applied, a reference block of size (M+7)x(N+7) is used for motion compensation. However, if BIO and OBMC are applied, additional reference pixels are required, which increases the worst-case memory bandwidth.
有兩種不同的方案來實現OBMC。在第一種方案中,OBMC塊是在對每個塊進行運動補償時預先生成的。 這些 OBMC 塊將存儲在本地緩衝器中用於鄰近塊。 在第二種方案中,在進行OBMC時,OBMC塊是在每個塊的混合處理之前生成的。There are two different schemes to implement OBMC. In the first scheme, OBMC blocks are generated in advance when performing motion compensation for each block. These OBMC blocks will be stored in a local buffer for neighboring blocks. In the second scheme, OBMC blocks are generated before the blending process for each block when performing OBMC.
在這兩種方案中,提出了幾種方法來降低計算複雜度,特別是對於插值濾波,以及OBMC的額外帶寬需求。In both schemes, several methods are proposed to reduce the computational complexity, especially for interpolation filtering, and the additional bandwidth requirement of OBMC.
基於模板匹配的Template matching based OBMCOBMC (( Template Matching based OBMCTemplate Matching based OBMC ))
最近,針對新興的國際編解碼標準提出了一種基於模板匹配的 OBMC 方案(JVET-Y0076)。 如第7圖所示,對於頂部CU邊界處大小為4×4的每個頂部塊,上述模板大小等於4×1。 在第7圖中,框710對應於CU。 如果N個相鄰塊具有相同的運動資訊,則上述模板大小被擴大到4N×1,因為可以一次處理MC操作,這與ECM-OBMC中的方式相同。 對於左 CU 邊界處大小為 4×4 的每個左塊,左模板大小等於 1×4 或 1×4N。Recently, a template matching based OBMC scheme was proposed for the emerging international coding standard (JVET-Y0076). As shown in Figure 7, for each top block of size 4×4 at the top CU boundary, the above template size is equal to 4×1. In Figure 7, box 710 corresponds to the CU. If N adjacent blocks have the same motion information, the above template size is expanded to 4N×1 because the MC operation can be processed at one time, which is the same as in ECM-OBMC. For each left block of size 4×4 at the left CU boundary, the left template size is equal to 1×4 or 1×4N.
對於每一個4×4的頂部塊(top block)(或N個4×4 塊組),邊界樣本的預測值按照以下步驟推導: – 以塊A為當前塊及其上方相鄰塊AboveNeighbour_A為例。 左塊的操作以相同的方式進行。 – 首先,根據以下三類運動資訊,通過SAD在模板的重建樣本及由MC過程導出的與其對應的參考樣本之間測量三個模板匹配成本(Cost1,Cost2,Cost3): i. Cost1是根據A的運動資訊計算出來的。 ii. Cost2是根據AboveNeighbour_A的運動資訊計算出來的。 iii. Cost3是根據A和AboveNeighbour_A的運動資訊的加權的預測計算得到的,加權因子分別為3/4和1/4。 – 其次,從三種方法中選擇一種,通過比較Cost1、Cost2和Cost 3來計算邊界樣本的最終預測結果。 For each 4×4 top block (or N 4×4 block groups), the predicted values of the boundary samples are derived according to the following steps: – Take block A as the current block and its upper neighbor block AboveNeighbour_A as an example. The operation of the left block is performed in the same way. – First, three template matching costs (Cost1, Cost2, Cost3) are measured between the reconstructed sample of the template and its corresponding reference sample derived from the MC process based on the following three types of motion information by SAD: i. Cost1 is calculated based on the motion information of A. ii. Cost2 is calculated based on the motion information of AboveNeighbour_A. iii. Cost3 is calculated based on the weighted prediction of the motion information of A and AboveNeighbour_A, with weighting factors of 3/4 and 1/4 respectively. - Secondly, choose one of the three methods to calculate the final prediction result of the boundary sample by comparing Cost1, Cost2 and Cost 3.
使用當前塊的運動資訊的原始 MC 結果表示為 Pixel1,使用相鄰塊的運動資訊的 MC 結果表示為 Pixel2。 最終預測結果表示為 NewPixel。 ․如果 Cost1 最小,則 。 ․如果 Cost2 最小,則使用混合模式 1(blending mode 1)。 對於亮度塊,混合像素(blending pixel)列(row)數為4。 – – – – 對於色度塊,混合像素列數為 1。 – ․如果Cost3 最小,則使用混合模式2。 對於亮度塊,混合像素列數為 2。 – – 對於色度塊,混合像素列/欄(column)數為 1。 – The original MC result using the motion information of the current block is represented as Pixel1, and the MC result using the motion information of the neighboring block is represented as Pixel2. The final prediction result is represented as NewPixel. ․ If Cost1 is the smallest, then . ․ If Cost2 is the smallest, use blending mode 1. For the luminance block, the number of blending pixel rows is 4. – – – – For chroma blocks, the number of mixed pixel columns is 1. – ․ If Cost3 is minimum, use blending mode 2. For luma blocks, the number of blended pixel columns is 2. – – For chroma blocks, the number of mixed pixel rows/columns is 1. –
在本申請中,公開了自適應OBMC方法以提高編解碼效率。In this application, an adaptive OBMC method is disclosed to improve encoding and decoding efficiency.
本發明提供一種視訊編解碼方法及相關裝置。The present invention provides a video encoding and decoding method and related devices.
本發明提供一種視訊編解碼方法,包括接收與當前塊/子塊相關聯的輸入資料,其中,輸入資料包括編碼器側待編碼的當前塊/子塊的像素資料或解碼器側與待解碼的當前塊/子塊相關聯的編碼資料;確定當前塊/子塊的當前運動矢量;確定與當前塊/子塊相關聯的鄰近塊/子塊的鄰近運動矢量;根據當前塊/子塊和鄰近塊/子塊之間的一個或多個邊界匹配成本、當前運動矢量與鄰近運動矢量之間的運動矢量差或與當前塊/子塊相關聯的預測的亮度資料來確定要應用於重疊塊運動補償的行數,與行數的重疊塊運動補償關聯的一個或多個權重,或兩者;以及根據包括行數、一個或多個權重或兩者的重疊塊運動補償參數將重疊塊運動補償應用於當前塊/子塊和鄰近塊/子塊中的至少一個。The present invention provides a video encoding and decoding method, comprising receiving input data associated with a current block/subblock, wherein the input data includes pixel data of the current block/subblock to be encoded on the encoder side or coded data associated with the current block/subblock to be decoded on the decoder side; determining a current motion vector of the current block/subblock; determining a neighboring motion vector of a neighboring block/subblock associated with the current block/subblock; determining a current motion vector of the current block/subblock according to one or more of the current block/subblock and the neighboring ... The method comprises: determining a number of rows to be applied for overlapped block motion compensation, one or more weights associated with overlapped block motion compensation for the number of rows, or both based on a plurality of boundary matching costs, a motion vector difference between a current motion vector and a neighboring motion vector, or predicted luminance data associated with a current block/subblock; and applying overlapped block motion compensation to at least one of the current block/subblock and the neighboring block/subblock according to overlapped block motion compensation parameters including the number of rows, the one or more weights, or both.
本發明還提供一種用於視訊編解碼的裝置,裝置包括一個或多個電子設備或處理器,用於:接收與當前塊/子塊相關聯的輸入資料,其中,輸入資料包括編碼器側待編碼的當前塊/子塊的像素資料或解碼器側與待解碼的當前塊/子塊相關聯的編碼資料;確定當前塊/子塊的當前運動矢量;確定與當前塊/子塊相關聯的鄰近塊/子塊的鄰近運動矢量;根據當前塊/子塊和鄰近塊/子塊之間的一個或多個邊界匹配成本、當前運動矢量與鄰近運動矢量之間的運動矢量差或與當前塊/子塊相關聯的預測的亮度資料來確定要應用於重疊塊運動補償的行數,與行數的重疊塊運動補償關聯的一個或多個權重,或兩者;以及根據包括行數、一個或多個權重或兩者的重疊塊運動補償參數將重疊塊運動補償應用於當前塊/子塊和鄰近塊/子塊中的至少一個。The present invention also provides a device for video encoding and decoding, the device includes one or more electronic devices or processors, and is used to: receive input data associated with a current block/subblock, wherein the input data includes pixel data of the current block/subblock to be encoded on the encoder side or coded data associated with the current block/subblock to be decoded on the decoder side; determine a current motion vector of the current block/subblock; determine a neighboring motion vector of a neighboring block/subblock associated with the current block/subblock; and determine a current motion vector of a neighboring block/subblock associated with the current block/subblock according to the pixel data of the current block/subblock and the neighboring block/subblock. The method comprises: determining a number of rows to be applied for overlapped block motion compensation, one or more weights associated with overlapped block motion compensation for the number of rows, or both based on one or more boundary matching costs between neighboring blocks/subblocks, a motion vector difference between a current motion vector and a neighboring motion vector, or predicted luminance data associated with the current block/subblock; and applying overlapped block motion compensation to at least one of the current block/subblock and the neighboring block/subblock according to overlapped block motion compensation parameters including the number of rows, the one or more weights, or both.
本發明的視訊編解碼方法及相關裝置可以提高編解碼效率。The video encoding and decoding method and related devices of the present invention can improve the encoding and decoding efficiency.
在閱讀了在各種圖表和圖形中所圖示的優選實施例的下述詳細說明書之後,本發明的這些和其他目的對所屬領域具有通常知識者來說無疑將變得明顯。These and other objects of the present invention will no doubt become apparent to those having ordinary skill in the art after reading the following detailed description of the preferred embodiments as illustrated in the various figures and drawings.
將容易理解的是,如本文附圖中大體描述和圖示的本發明的組件可以以多種不同的配置來佈置和設計。 因此,以下對如圖所示的本發明的系統和方法的實施例的更詳細描述並不旨在限制所要求保護的本發明的範圍,而僅代表本發明的選定實施例 . 貫穿本說明書對“一個實施例”、“一實施例”或類似語言的引用意味著結合該實施例描述的特定特徵、結構或特性可以包括在本發明的至少一個實施例中。 因此,貫穿本說明書各處出現的短語“在一個實施例中”或“在一實施例中”不一定都指代相同的實施例。It will be readily understood that the components of the present invention as generally described and illustrated in the figures herein may be arranged and designed in a variety of different configurations. Therefore, the following more detailed description of embodiments of the systems and methods of the present invention as illustrated is not intended to limit the scope of the claimed invention, but is merely representative of selected embodiments of the present invention. References throughout this specification to "one embodiment," "an embodiment," or similar language mean that a particular feature, structure, or characteristic described in conjunction with that embodiment may be included in at least one embodiment of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing throughout this specification do not necessarily all refer to the same embodiment.
此外,所描述的特徵、結構或特性可以以任何合適的方式組合在一個或多個實施例中。 然而,相關領域的技術人員將認識到,本發明可以在沒有一個或多個特定細節的情況下實踐,或使用其他方法、組件等來實踐。在其他情況下,未顯示或未顯示眾所周知的結構或操作 詳細描述以避免模糊本發明的方面。 參考附圖將最好地理解本發明的所示實施例,其中相同的部分自始至終由相同的數字表示。 下面的描述僅旨在作為示例,並且簡單地說明與如本文要求保護的本發明一致的設備和方法的某些選定實施例。In addition, the described features, structures or characteristics may be combined in one or more embodiments in any suitable manner. However, those skilled in the relevant art will recognize that the present invention may be practiced without one or more of the specific details, or using other methods, components, etc. In other cases, well-known structures or operational details are not shown or are not shown to avoid obscuring aspects of the present invention. The illustrated embodiments of the present invention will be best understood with reference to the accompanying drawings, in which like parts are represented by like numbers throughout. The following description is intended to be exemplary only and simply illustrates certain selected embodiments of the apparatus and methods consistent with the present invention as claimed herein.
公開了一種新的OBMC混合自適應加權方法。 在該方法中,當OBMC應用於當前塊時,OBMC中的行數或行的權重可以自適應地改變,例如根據其塊的寬度或高度、縱橫比、塊形狀、當前塊/子塊的MV、鄰近塊/子塊的 MV、當前子塊和鄰近塊之間的加權或未加權的MV差異、邊界相似性、預測子亮度信號(predictor luminance signal)、邊界處的 MV 梯度、成本度量或其組合。 OBMC 中的行數或行的權重可以根據 CU 中的某些特定特徵進行更改,或者無論 CU 特徵如何,它都可以始終保持不變。A new OBMC hybrid adaptive weighting method is disclosed. In the method, when OBMC is applied to the current block, the number of rows or the weight of the rows in the OBMC can be adaptively changed, for example, according to its block width or height, aspect ratio, block shape, MV of the current block/subblock, MV of neighboring blocks/subblocks, weighted or unweighted MV difference between the current subblock and neighboring blocks, boundary similarity, predictor luminance signal, MV gradient at the boundary, cost metric or a combination thereof. The number of rows or the weight of the rows in the OBMC can be changed according to some specific characteristics in the CU, or it can always remain unchanged regardless of the CU characteristics.
在一個實施例中,當當前塊面積(即塊寬度×塊高度)小於或大於閾值時,OBMC中的行數或行的權重將相應地減少或增加。In one embodiment, when the current block area (i.e., block width×block height) is less than or greater than a threshold, the number of rows or the weight of the rows in the OBMC will decrease or increase accordingly.
在另一個實施例中,當當前塊的縱橫比小於或大於閾值時,OBMC中的行數或行的權重將相應地減少或增加。 例如,如果MV差異小於閾值則可以使用第一加權,而如果MV差異大於閾值則可以使用第二權重。 在一個示例中第一權重大於第二權重並且在另一示例中第二權重大於第一權重。In another embodiment, when the aspect ratio of the current block is less than or greater than a threshold, the number of rows in the OBMC or the weight of the row will be reduced or increased accordingly. For example, if the MV difference is less than the threshold, the first weighting can be used, and if the MV difference is greater than the threshold, the second weighting can be used. In one example, the first weight is greater than the second weight and in another example, the second weight is greater than the first weight.
在另一個實施例中,將當前子塊的MV與相鄰塊的MV進行比較以獲得MV差值。 如果MV差值小於或大於閾值,則OBMC中的行數或行的權重將相應地減少或增加。 在另一示例中,在得到MV差值之後,通過將MV差值乘以另一個值來加權得到加權的MV差值,然後將加權的MV差值與閾值進行比較。In another embodiment, the MV of the current sub-block is compared with the MV of the adjacent block to obtain the MV difference. If the MV difference is less than or greater than the threshold, the number of rows or the weight of the row in the OBMC will be reduced or increased accordingly. In another example, after the MV difference is obtained, the MV difference is weighted by multiplying the MV difference by another value to obtain a weighted MV difference, and then the weighted MV difference is compared with the threshold.
在另一個實施例中,為了度量邊界相似度,當確定對當前子塊進行OBMC時,首先通過比較當前樣本和鄰近樣本來計算邊界匹配成本。 當前樣本可以是預測的樣本或重建的樣本。 類似地,鄰近樣本可以是鄰近預測的樣本或鄰近重建的樣本。 為了確定 OBMC 中的行數或行的權重,可以使用邊界匹配成本,如下所示: Cost 1 = BoundaryMatchingCost(鄰近重建,當前預測子或當前重建(Neighboring Reconstruction, Current Predictor or Current Reconstruction)) Cost 2 = BoundaryMatchingCost(鄰近重建,鄰近預測子(Neighboring Reconstruction, Neighboring Predictor) ) 對於鄰近預測子:Weighting = Cost 1 / (Cost 1 + Cost 2) 對於當前預測子:Weighting = Cost 2 / (Cost 1 + Cost 2) In another embodiment, in order to measure the boundary similarity, when it is determined to perform OBMC on the current sub-block, the boundary matching cost is first calculated by comparing the current sample with the neighboring samples. The current sample can be a predicted sample or a reconstructed sample. Similarly, the neighboring samples can be neighboring predicted samples or neighboring reconstructed samples. To determine the number of rows or the weight of rows in OBMC, the boundary matching cost can be used as follows: Cost 1 = BoundaryMatchingCost(Neighboring Reconstruction, Current Predictor or Current Reconstruction) Cost 2 = BoundaryMatchingCost(Neighboring Reconstruction, Neighboring Predictor) For Neighboring Predictor: Weighting = Cost 1 / (Cost 1 + Cost 2) For Current Predictor: Weighting = Cost 2 / (Cost 1 + Cost 2)
在上文中,當前塊或子塊的預測的或重建的樣本是基於當前塊或子塊的MV導出的。 鄰近預測子是指基於鄰近塊或子塊的MV生成的預測子。 可以看出,鄰近預測子的權重與當前預測子的權重之比對應於邊界匹配成本(boundary matching cost) 1 與邊界匹配成本 2 的比率。In the above, the predicted or reconstructed sample of the current block or sub-block is derived based on the MV of the current block or sub-block. The neighbor predictor refers to the predictor generated based on the MV of the neighboring block or sub-block. It can be seen that the ratio of the weight of the neighbor predictor to the weight of the current predictor corresponds to the ratio of the boundary matching cost 1 to the boundary matching cost 2.
在另一示例中,取代總是根據成本1和成本2使用加權,而是可以從成本1和成本2中選擇一個成本並將其與閾值進行比較。 如果所選成本小於或大於閾值,則OBMC中的行數或行的權重將相應減少或增加。 在另一個實施例中,計算邊界匹配成本或模板匹配成本。 可以對成本和閾值應用不同的比較。 例如,比較可對應於“小於或等於”、“小於”、“大於或等於”或“大於”。 根據比較結果,可以減少或增加混合行數(blending line number)或混合權重(blending weighting)。 閾值可以取決於塊寬度或高度、縱橫比、塊形狀、當前塊/子塊的 MV、鄰近塊/子塊的 MV、當前子塊和鄰近塊之間的加權或未加權的 MV 差異、邊界相似性、預測子亮度信號、邊界處的 MV 梯度、成本度量或其組合。In another example, instead of always using weighting based on cost 1 and cost 2, one cost can be selected from cost 1 and cost 2 and compared to a threshold. If the selected cost is less than or greater than the threshold, the number of rows in the OBMC or the weight of the row will be reduced or increased accordingly. In another embodiment, a boundary matching cost or a template matching cost is calculated. Different comparisons can be applied to costs and thresholds. For example, the comparison may correspond to "less than or equal to", "less than", "greater than or equal to", or "greater than". Depending on the comparison results, the blending line number or blending weighting can be reduced or increased. The threshold can depend on block width or height, aspect ratio, block shape, MV of the current block/subblock, MV of neighboring blocks/subblocks, weighted or unweighted MV difference between current subblock and neighboring blocks, boundary similarity, predicted sub-luminance signal, MV gradient at boundaries, cost metric, or a combination thereof.
在另一個實施例中,當確定對當前子塊執行OBMC時,首先計算當前預測子的亮度信號(luminance signal)。 如果亮度值(或當前塊/子塊的平均值)小於或大於閾值,則OBMC中的行數或行的權重將相應地減少或增加。In another embodiment, when it is determined to perform OBMC on the current sub-block, the luminance signal of the current predictor is first calculated. If the luminance value (or the average value of the current block/sub-block) is less than or greater than a threshold, the number of rows in OBMC or the weight of the row will be reduced or increased accordingly.
在另一個實施例中,當確定對當前子塊進行OBMC時,首先使用空間梯度(spatial gradient)計算樣本級別偏移以獲得 MV 梯度。 如果MV梯度小於或大於閾值,則OBMC中的行數或行的權重將相應地減少或增加。 在另一示例中,當執行與閾值的比較時,將基於MV梯度應用光流推導。In another embodiment, when it is determined to perform OBMC on the current sub-block, the sample level offset is first calculated using the spatial gradient to obtain the MV gradient. If the MV gradient is less than or greater than the threshold, the number of rows in the OBMC or the weight of the row will be reduced or increased accordingly. In another example, when the comparison with the threshold is performed, optical flow derivation will be applied based on the MV gradient.
任何前述提出的OBMC方法都可以在編碼器和/或解碼器中實現。 例如,在編碼器端,可以在預測子推導模塊(例如如第1A圖所示的幀間預測單元的一部分)中實現所需的處理。然而,編碼器也可以使用額外的處理單元來實現所需的處理。 對於解碼器端,所需的處理可以在預測子推導模塊中實現,例如第1B圖中所示的MC單元152的一部分。 然而,解碼器也可以使用額外的處理單元來實現所需的處理。 幀間預測 112 和 MC 152 顯示為單獨的處理單元,它們可能對應於存儲在媒體(例如硬盤或閃存)上的可執行軟體或韌體代碼,用於 CPU(中央處理單元)或可程式化設備(例如 DSP(數位信號) 處理器)或 FPGA(現場可程式化門陣列))。 備選地,所提出的任何方法都可以實現為耦合到編碼器的預測子推導模塊和/或解碼器的預測子推導模塊的電路,以便提供預測子推導模塊所需的資訊。Any of the aforementioned proposed OBMC methods may be implemented in an encoder and/or a decoder. For example, at the encoder end, the required processing may be implemented in a prediction sub-derivation module (e.g., a portion of an inter-frame prediction unit as shown in FIG. 1A ). However, the encoder may also use additional processing units to implement the required processing. For the decoder end, the required processing may be implemented in a prediction sub-derivation module, such as a portion of the MC unit 152 shown in FIG. 1B . However, the decoder may also use additional processing units to implement the required processing. The inter-frame prediction 112 and MC 152 are shown as separate processing units, which may correspond to executable software or firmware code stored on a medium (e.g., hard disk or flash memory) for use in a CPU (central processing unit) or a programmable device (e.g., a DSP (digital signal processor) or an FPGA (field programmable gate array)). Alternatively, any of the proposed methods can be implemented as a circuit coupled to a predictor derivation module of an encoder and/or a predictor derivation module of a decoder in order to provide the information required by the predictor derivation module.
第8圖示出了根據本發明實施例的視訊編解碼系統中的示例性重疊塊運動補償(OBMC)過程的流程圖。 流程圖中所示的步驟可以實現為可在編碼器側的一個或多個處理器(例如,一個或多個CPU)上執行的程式代碼。 流程圖中所示的步驟也可以基於硬體來實現,諸如被佈置為執行流程圖中的步驟的一個或多個電子設備或處理器。 根據該方法,在步驟810中接收與當前塊相關聯的輸入資料,其中輸入資料包括在編碼器側待編碼的當前塊的像素資料或在解碼器側待解碼的與當前塊相關聯的編碼資料。在步驟820中,當前塊/子塊的當前MV(運動矢量)被確定。在步驟830中,與當前塊/子塊相關聯的鄰近塊/子塊的鄰近MV被確定。在步驟840中,根據當前塊/子塊和鄰近塊/子塊之間的一個或多個邊界匹配成本、當前MV與鄰近MV之間的MV差、或與當前塊/子塊相關聯的預測的亮度資料來確定要應用於 OBMC(重疊塊運動補償)的行數,與行數的 OMBC 關聯的一個或多個權重,或兩者。在步驟 850 中,根據包括行數、所述一個或多個權重或兩者的OBMC參數將OBMC應用於當前塊/子塊和鄰近塊/子塊中的至少一個。FIG. 8 shows a flow chart of an exemplary overlapping block motion compensation (OBMC) process in a video coding and decoding system according to an embodiment of the present invention. The steps shown in the flow chart can be implemented as program codes that can be executed on one or more processors (e.g., one or more CPUs) on the encoder side. The steps shown in the flow chart can also be implemented based on hardware, such as one or more electronic devices or processors arranged to execute the steps in the flow chart. According to the method, input data associated with the current block is received in step 810, wherein the input data includes pixel data of the current block to be encoded on the encoder side or coded data associated with the current block to be decoded on the decoder side. In step 820, the current MV (motion vector) of the current block/subblock is determined. In step 830, the neighboring MVs of the neighboring blocks/subblocks associated with the current block/subblock are determined. In step 840, the number of rows to be applied for OBMC (Overlapping Block Motion Compensation), one or more weights associated with the OMBC of the number of rows, or both are determined based on one or more boundary matching costs between the current block/subblock and the neighboring blocks/subblocks, the MV difference between the current MV and the neighboring MVs, or the predicted luminance data associated with the current block/subblock. In step 850, OBMC is applied to at least one of the current block/sub-block and the neighboring blocks/sub-blocks based on OBMC parameters including the number of rows, the one or more weights, or both.
所示的流程圖旨在說明根據本發明的視訊編解碼的示例。 在不脫離本發明的精神的情況下,所屬領域具有通常知識者可以修改每個步驟、重新安排步驟、拆分步驟或組合步驟來實施本發明。 在本公開中,已經使用特定語法和語義來說明示例以實現本發明的實施例。 在不脫離本發明的精神的情況下,所屬領域具有通常知識者可以通過用等同的句法和語義替換句法和語義來實施本發明。The flowchart shown is intended to illustrate an example of video encoding and decoding according to the present invention. Without departing from the spirit of the present invention, a person skilled in the art may modify each step, rearrange the steps, split the steps, or combine the steps to implement the present invention. In this disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. Without departing from the spirit of the present invention, a person skilled in the art may implement the present invention by replacing syntax and semantics with equivalent syntax and semantics.
提供以上描述是為了使所屬領域具有通常知識者能夠實踐在特定應用及其要求的上下文中提供的本發明。 對所描述的實施例的各種修改對於所屬領域具有通常知識者而言將是顯而易見的,並且本文定義的一般原理可以應用於其他實施例。 因此,本發明並不旨在限於所示出和描述的特定實施例,而是符合與本文公開的原理和新穎特徵一致的最寬範圍。 在以上詳細描述中,舉例說明了各種具體細節以提供對本發明的透徹理解。 然而,所屬領域具有通常知識者將理解可以實施本發明。The above description is provided to enable one having ordinary knowledge in the art to practice the present invention provided in the context of a specific application and its requirements. Various modifications to the described embodiments will be apparent to one having ordinary knowledge in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the specific embodiments shown and described, but rather to the widest scope consistent with the principles and novel features disclosed herein. In the above detailed description, various specific details are illustrated to provide a thorough understanding of the present invention. However, one having ordinary knowledge in the art will understand that the present invention may be practiced.
如上所述的本發明的實施例可以以各種硬體、軟體代碼或兩者的組合來實現。 例如,本發明的一個實施例可以是集成到視訊壓縮晶片中的一個或多個電路電路或者集成到視訊壓縮軟體中的程式代碼以執行這裡描述的處理。 本發明的實施例還可以是要在數位信號處理器(DSP)上執行以執行這裡描述的處理的程式代碼。 本發明還可以涉及由計算機處理器、數位信號處理器、微處理器或現場可程式化門陣列(FPGA)執行的許多功能。 這些處理器可以被配置為通過執行定義由本發明體現的特定方法的機器可讀軟體代碼或韌體代碼來執行根據本發明的特定任務。 軟體代碼或韌體代碼可以以不同的程式化語言和不同的格式或風格來開發。 也可以為不同的目標平台編譯軟體代碼。 然而,軟體代碼的不同代碼格式、風格和語言以及配置代碼以執行根據本發明的任務的其他方式都不會脫離本發明的精神和範圍。The embodiments of the present invention as described above can be implemented in various hardware, software codes or a combination of the two. For example, an embodiment of the present invention can be one or more circuits integrated into a video compression chip or a program code integrated into the video compression software to perform the processing described herein. The embodiments of the present invention can also be a program code to be executed on a digital signal processor (DSP) to perform the processing described herein. The present invention can also involve many functions performed by a computer processor, a digital signal processor, a microprocessor or a field programmable gate array (FPGA). These processors can be configured to perform specific tasks according to the present invention by executing machine-readable software code or firmware code that defines the specific methods embodied by the present invention. Software code or firmware code can be developed in different programming languages and in different formats or styles. Software code can also be compiled for different target platforms. However, different code formats, styles and languages of software code and other ways of configuring code to perform tasks according to the present invention will not depart from the spirit and scope of the present invention.
本發明可以在不脫離其精神或基本特徵的情況下以其他特定形式體現。 所描述的示例在所有方面都應被視為說明性而非限制性的。 因此,本發明的範圍由所附申請專利範圍而不是由前述描述來指示。 落入申請專利範圍等同物的含義和範圍內的所有變化都應包含在其範圍內。The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples should be considered in all respects as illustrative and not restrictive. Therefore, the scope of the invention is indicated by the appended patent application rather than by the foregoing description. All changes that fall within the meaning and range of equivalents of the patent application should be included within its scope.
110:幀內預測 112:幀間預測 114:開關 116:加法器 118:變換 120:量化 122:熵編碼器 130:環路濾波器 124:逆量化 126:逆變換 128:重建 134:參考圖片緩衝器 136:預測資料 140:熵解碼器 150:幀內預測 152:MC 410、420、710:CU 510:當前塊 810~850:步驟 110: Intra-frame prediction 112: Inter-frame prediction 114: Switch 116: Adder 118: Transform 120: Quantization 122: Entropy encoder 130: Loop filter 124: Inverse quantization 126: Inverse transform 128: Reconstruction 134: Reference picture buffer 136: Prediction data 140: Entropy decoder 150: Intra-frame prediction 152: MC 410, 420, 710: CU 510: Current block 810~850: Steps
第1A圖說明了包含環路處理(loop processing)的示例性自適應幀間/幀內(adaptive Inter/Intra)視訊編碼系統。 第1B圖示出了第1A圖中的編碼器的相應解碼器。 第2圖圖示了幾何分區的重疊運動補償的示例。 第3A-B圖示了用於2NxN(第3A圖)和Nx2N塊(第3B圖)的OBMC的示例。 第4A圖圖示了應用OBMC的子塊的示例,其中該示例包括在CU/PU邊界處的子塊。 第4B圖示出了應用OBMC的子塊的示例,該示例包括以AMVP模式編解碼的子塊。 第5圖示出了針對當前塊使用上方和左側相鄰塊的OBMC處理的示例。 第6A圖示出了使用來自右側和底部的相鄰塊對當前塊的右側和底部部分進行OBMC處理的示例。 第6B圖示出了使用來自右、下和右下的相鄰塊對當前塊的右側和下方部分進行OBMC處理的示例。 第7圖示出了基於模板匹配的OBMC的示例,其中對於在頂部CU邊界處具有4×4大小的每個頂部塊,上述模板大小等於4×1。 第8圖示出了根據本發明的實施例的視訊編解碼系統中的示例性重疊塊運動補償(OBMC)處理的流程圖。 FIG. 1A illustrates an exemplary adaptive Inter/Intra video coding system including loop processing. FIG. 1B shows a corresponding decoder for the encoder in FIG. 1A. FIG. 2 illustrates an example of overlapping motion compensation for geometric partitions. FIG. 3A-B illustrate examples of OBMC for 2NxN (FIG. 3A) and Nx2N blocks (FIG. 3B). FIG. 4A illustrates an example of a sub-block to which OBMC is applied, wherein the example includes a sub-block at a CU/PU boundary. FIG. 4B illustrates an example of a sub-block to which OBMC is applied, wherein the example includes a sub-block encoded and decoded in AMVP mode. FIG. 5 illustrates an example of OBMC processing using upper and left neighboring blocks for the current block. FIG. 6A shows an example of OBMC processing of the right and bottom portions of the current block using neighboring blocks from the right and bottom. FIG. 6B shows an example of OBMC processing of the right and bottom portions of the current block using neighboring blocks from the right, bottom, and bottom-right. FIG. 7 shows an example of OBMC based on template matching, where the template size is equal to 4×1 for each top block having a size of 4×4 at the top CU boundary. FIG. 8 shows a flowchart of an exemplary overlapping block motion compensation (OBMC) process in a video coding and decoding system according to an embodiment of the present invention.
810~850:步驟 810~850: Steps
Claims (14)
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202263336395P | 2022-04-29 | 2022-04-29 | |
| US63/336,395 | 2022-04-29 | ||
| PCT/CN2023/085422 WO2023207511A1 (en) | 2022-04-29 | 2023-03-31 | Method and apparatus of adaptive weighting for overlapped block motion compensation in video coding system |
| WOPCT/CN2023/085422 | 2023-03-31 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202344057A TW202344057A (en) | 2023-11-01 |
| TWI870841B true TWI870841B (en) | 2025-01-21 |
Family
ID=88517370
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112116017A TWI870841B (en) | 2022-04-29 | 2023-04-28 | Method and apparatus for video coding |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20250301170A1 (en) |
| CN (1) | CN119156825A (en) |
| TW (1) | TWI870841B (en) |
| WO (1) | WO2023207511A1 (en) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107920248A (en) * | 2016-10-11 | 2018-04-17 | 京东方科技集团股份有限公司 | Arrangement for encoding, image processing system, training method and display device |
| TW202008786A (en) * | 2018-07-20 | 2020-02-16 | 大陸商北京字節跳動網絡技術有限公司 | Motion prediction based on updated motion vectors |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3759919B1 (en) * | 2018-02-26 | 2025-11-26 | InterDigital VC Holdings, Inc. | Method and apparatus for generalized obmc |
| CN111989927B (en) * | 2018-04-16 | 2023-05-09 | 联发科技股份有限公司 | Method and apparatus for video processing with overlapped block motion compensation in video codec system |
| US20190387251A1 (en) * | 2018-06-19 | 2019-12-19 | Mediatek Inc. | Methods and Apparatuses of Video Processing with Overlapped Block Motion Compensation in Video Coding Systems |
| TWI822838B (en) * | 2018-08-24 | 2023-11-21 | 大陸商北京字節跳動網絡技術有限公司 | Overlapped block motion compensation using spatial neighbors |
-
2023
- 2023-03-31 WO PCT/CN2023/085422 patent/WO2023207511A1/en not_active Ceased
- 2023-03-31 US US18/860,230 patent/US20250301170A1/en active Pending
- 2023-03-31 CN CN202380036994.XA patent/CN119156825A/en active Pending
- 2023-04-28 TW TW112116017A patent/TWI870841B/en active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107920248A (en) * | 2016-10-11 | 2018-04-17 | 京东方科技集团股份有限公司 | Arrangement for encoding, image processing system, training method and display device |
| TW202008786A (en) * | 2018-07-20 | 2020-02-16 | 大陸商北京字節跳動網絡技術有限公司 | Motion prediction based on updated motion vectors |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202344057A (en) | 2023-11-01 |
| US20250301170A1 (en) | 2025-09-25 |
| WO2023207511A1 (en) | 2023-11-02 |
| CN119156825A (en) | 2024-12-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11303900B2 (en) | Method and apparatus for motion boundary processing | |
| TWI853402B (en) | Video coding methods and apparatuses | |
| TWI852465B (en) | Method and apparatus for video coding | |
| TWI870822B (en) | Method and apparatus of improvement for decoder-derived intra prediction in video coding system | |
| TWI853413B (en) | Video coding method and apparatus thereof | |
| CN114979631A (en) | Method and apparatus for predictive refinement with optical flow, bi-directional optical flow and decoder-side motion vector refinement | |
| CN115699736A (en) | Geometric partitioning mode with motion vector refinement | |
| TW202415075A (en) | Region-based implicit intra mode derivation and prediction | |
| TWI872409B (en) | Video encoding apparatus, method and video decoding apparatus, method | |
| CN119422372A (en) | Method and apparatus for motion storage in geometric partitioning mode | |
| Chiu et al. | Decoder-side motion estimation and wiener filter for HEVC | |
| CN117941355A (en) | Method and device for matching low-delay templates in video coding and decoding system | |
| TWI853412B (en) | Method and apparatus deriving merge candidate from affine coded blocks for video coding | |
| TWI866163B (en) | Methods and apparatus of improvement for intra mode derivation and prediction using gradient and template | |
| TWI870841B (en) | Method and apparatus for video coding | |
| TWI884435B (en) | Method and apparatus using curve based or spread-angle based intra prediction mode | |
| US20250280106A1 (en) | Method and Apparatus for Regression-based Affine Merge Mode Motion Vector Derivation in Video Coding Systems | |
| TWI821103B (en) | Method and apparatus using boundary matching for overlapped block motion compensation in video coding system | |
| KR20170122351A (en) | Video coding method and apparatus using adaptive coding order according to direction of intra prediction | |
| WO2026007663A1 (en) | Methods and apparatus of matrix based prediction improvement for video coding | |
| KR20160106348A (en) | Video Coding Method and Apparatus thereof | |
| WO2024146374A1 (en) | Method and apparatus of parameters inheritance for overlapped blocks motion compensation in video coding system | |
| WO2026017030A1 (en) | Method and apparatus of temporal and gpm-derived affine candidates in video coding systems | |
| WO2026012279A1 (en) | Methods and apparatus of matrix-based reference sample refinement for video coding | |
| TW202516932A (en) | Video coding methods and apparatus thereof |