Motion compensation prediction based on bidirectional optical flow
Bidirectional optical flow is employed to refine motion vectors in block-based video coding, addressing inefficiencies in motion compensation and enhancing compression efficiency and computational performance.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- INTERDIGITAL VC HOLDINGS INC
- Filing Date
- 2025-03-10
- Publication Date
- 2026-05-26
AI Technical Summary
Existing block-based video coding systems face inefficiencies in motion compensation due to small, observable motions between prediction blocks, leading to suboptimal compression and increased computational complexity.
Implementing bidirectional optical flow (BIO) for motion refinement by deriving refined motion vectors using a classical optical flow model, applying interpolation and gradient filters, and enabling/disabling BIO based on similarity thresholds and conditions to optimize motion compensation.
Enhances video coding efficiency by reducing computational complexity and improving compression performance through adaptive motion refinement, while utilizing SIMD acceleration for parallel processing.
Smart Images

Figure 0007866099000057 
Figure 0007866099000058 
Figure 0007866099000059
Abstract
Description
[Background technology]
[0001] This application claims the interests of U.S. Provisional Patent Application No. 62 / 528296 filed on 3 July 2017, U.S. Provisional Patent Application No. 62 / 560823 filed on 20 September 2017, U.S. Provisional Patent Application No. 62 / 564598 filed on 28 September 2017, U.S. Provisional Patent Application No. 62 / 579559 filed on 31 October 2017, and U.S. Provisional Patent Application No. 62 / 599241 filed on 15 December 2017, the contents of which are incorporated herein by reference.
[0002] Video coding systems are widely used to compress digital video signals to reduce the storage requirements and / or transmission bandwidth of such signals. Various types of video coding systems exist, including block-based, wavelet-based, and object-based systems. Currently, block-based hybrid video coding systems are widely used and / or deployed. Examples of block-based video coding systems include international video coding standards such as MPEG1 / 2 / 4 Part 2, H.264 / MPEG-4 Part 10 AVC, VC-1, and the latest video coding standard called High Efficiency Video Coding (HEVC), developed by the JCT-VC (Joint Consultative Working Group on Video Coding) of ITU-T / SG16 / Q.6 / VCEG and ISO / IEC / MPEG. [Overview of the Initiative] [Means for solving the problem]
[0003] A device for performing video data coding may be configured to determine whether to enable or disable bi-directional optical flow (BIO) for the current coding unit (e.g., a block and / or subblock). Predictive information for the current coding unit may be identified. The predictive information may include a predictive signal associated with a first reference block (or, for example, a subblock) and a predictive signal associated with a second reference block (or, for example, a subblock). A predictive difference between the two predictive signals may be calculated. The similarity between the two predictive signals may be determined based on the predictive difference. The current coding unit may be reconfigured based on the similarity of the two predictive signals. For example, whether to reconfigure the current coding unit with BIO enabled or disabled may be determined based on whether the two predictive signals are sufficiently similar. When it is determined that the two predictive signals are not similar (e.g., dissimilar), it may be decided to enable BIO for the current coding unit. For example, when two predicted signals are determined to be similar, the current coding unit may be reconfigured with BIO disabled.
[0004] The prediction difference, which may be used to determine the similarity between two prediction signals, may be determined in several ways. For example, calculating the prediction difference may include calculating the mean difference between the respective sample values of two reference blocks associated with the two prediction signals. The sample values from each reference block may be interpolated. For example, calculating the prediction difference may include calculating the mean motion vector difference between the respective motion vectors of two reference blocks associated with the two prediction signals. The motion vectors may be scaled based on the temporal distance between the reference picture and the current coding unit.
[0005] The similarity between two predicted signals may be determined by comparing the predicted difference between the two predicted signals with a threshold. When the predicted difference is less than or equal to the threshold, the two predicted signals may be determined to be similar. When the predicted difference is greater than the threshold, the two predicted signals may not be determined to be sufficiently similar (e.g., dissimilar). The threshold may be determined by and / or received by the video coding device. The threshold may be determined based on a desired complexity level and / or desired coding efficiency.
[0006] A device for performing video data coding may be configured to group one or more subblocks into subblock groups. For example, consecutive subblocks having similar motion information may be grouped together in a subblock group. Subblock groups may vary in shape and size and may be formed based on the shape and / or size of the current coding unit. Subblocks may be grouped horizontally and / or vertically. Motion compensation operations (e.g., single motion compensation operations) may be performed on subblock groups. BIO refinement may be performed on subblock groups. For example, BIO refinement may be based on the gradient values of the subblocks in the subblock group.
[0007] The BIO gradient may be derived in such a way that single-instruction multiple-data (SIMD) based acceleration may be utilized. In one or more techniques, the BIO gradient may be derived by applying interpolation filters and gradient filters, in which case horizontal filtering may be performed followed by vertical filtering. In the BIO gradient derivation, rounding operations, which may be performed by addition and right shift, may be performed on the input values.
[0008] Devices, processes, and means for skipping BIO operations in the (e.g., normal) motion compensation (MC) stage (e.g., block level) of a video encoder and / or decoder are disclosed. In one or more techniques, BIO operations may be disabled (e.g., partially or completely) for one or more blocks / subblocks where one or more factors / conditions can be satisfied. BIO may be disabled for blocks / subblocks coded in / by frame rate upconversion (FRUC) bilateral mode. BIO may be disabled for blocks / subblocks predicted by at least two motion vectors that are approximately proportional in the time domain. BIO may be disabled when the mean difference between at least two predicted blocks is less than or equal to a predefined / predetermined threshold. BIO may be disabled based on gradient information.
[0009] A decoding device for video data coding may include memory. The decoding device may include a processor. The processor may be configured to identify multiple subblocks of at least one coding unit (CU). The processor may be configured to select one or more subblocks from the multiple subblocks for MC. The processor may be configured to determine whether the status of the MC condition is satisfied or not. If the status of the MC condition is satisfied, the processor may be configured to initiate motion compensation without BIO motion refinement for one or more subblocks. If the status of the MC condition is not satisfied, the processor may be configured to initiate motion compensation with BIO motion refinement for one or more subblocks.
[0010] Similar reference numbers in the diagram indicate similar elements. [Brief explanation of the drawing]
[0011] [Figure 1] This is an illustrative overall diagram of a block-based video encoder. [Figure 2] This is an illustrative overall block diagram of a video decoder. [Figure 3] This figure shows an example of bidirectional optical flow. [Figure 4A] This figure shows an exemplary gradient derivation process in BIO with a motion accuracy of 1 / 16 pixels. [Figure 4B] This figure shows an exemplary gradient derivation process in BIO with a motion accuracy of 1 / 16 pixels. [Figure 5A] This diagram illustrates an example of BIO memory access without using block extension constraints. [Figure 5B] This diagram illustrates an example of BIO memory access using block extension constraints. [Figure 6] This figure shows an example of high-altitude time motion vector prediction. [Figure 7] This figure shows an example of a spatial-time motion vector prediction. [Figure 8A] This diagram illustrates an example of frame rate upconversion using template matching. [Figure 8B] This figure shows an example of frame rate upconversion using bilateral matching. [Figure 9A] This figure shows an example of an affine mode using a simplified affine model. [Figure 9B] This figure shows an example of an affine mode that uses subblock-level motion derivation for an affine block. [Figure 10A] This diagram illustrates BIO's exemplary 2D gradient filtering process, where dashed arrows indicate the filtering direction for deriving the horizontal gradient. [Figure 10B]This diagram illustrates BIO's exemplary 2D gradient filtering process, where dashed arrows indicate the filtering direction for deriving the vertical gradient. [Figure 11] This diagram shows an example of a motion compensation process. [Figure 12A] This diagram illustrates a modified 2D gradient filtering process in BIO, where dashed arrows indicate the filtering direction for horizontal gradient derivation. [Figure 12B] This diagram illustrates a modified 2D gradient filtering process from BIO, with dashed arrows indicating the filtering direction for vertical gradient derivation. [Figure 13] This figure shows an example mapping function for rounding methods used in BIO gradient derivation. [Figure 14] This figure shows an example mapping function for rounding methods used in BIO gradient derivation. [Figure 15A] This figure shows an exemplary gradient derivation process in BIO with motion accuracy of 1 / 16 pixels. [Figure 15B] This figure shows an exemplary gradient derivation process in BIO with motion accuracy of 1 / 16 pixels. [Figure 16A] This figure shows an illustrative comparison of various subblock-based motion compensation methods. [Figure 16B] This figure shows an illustrative comparison of various subblock-based motion compensation methods that utilize subblock merging. [Figure 16C] This figure shows an illustrative comparison of various subblock-based motion compensation methods using 2D subblock merging. [Figure 17A] This figure shows an illustrative representation of a sample affected by a BIO block extension constraint when a subblock motion compensation method is applied. [Figure 17B] This figure shows an example of a sample affected by a BIO block extension constraint when using subblock motion compensation based on 2D subblock merging. [Figure 18A] This figure shows an example of subblock merging implementation for a given row. [Figure 18B] This figure shows an example of subblock merging implementation for a given column. [Figure 19] This diagram shows an example of superimposed block motion compensation. [Figure 20] This diagram shows an example of a motion compensation process. [Figure 21] This diagram shows an example of a motion compensation process. [Figure 22] This figure shows an exemplary motion compensation process after skipping BIO for a block coded in FRUC bilateral mode. [Figure 23] This figure shows an exemplary motion compensation process after skipping BIO based on the motion vector difference. [Figure 24] This figure illustrates an exemplary motion compensation process after skipping BIO based on the difference between at least two predicted signals. [Figure 25] This figure shows an exemplary motion compensation process after skipping BIO based on gradient information. [Figure 26] This figure shows an exemplary motion compensation process using multi-stage BIO early termination. [Figure 27] This figure shows an exemplary dual-prediction process when averaging two intermediate prediction signals with high accuracy. [Figure 28A] This is a system diagram of an exemplary communication system in which one or more disclosed embodiments may be implemented. [Figure 28B] Figure 28A is a system diagram of an exemplary wireless transmit / receive unit (WTRU) that may be used in the communication system shown. [Figure 28C] Figure 28A is a system diagram of an exemplary radio access network (RAN) and an exemplary core network (CN) that may be used within the communication system shown. [Figure 28D]Figure 28A is a system diagram of a further exemplary RAN and a further exemplary CN that may be used within the communication system shown. [Modes for carrying out the invention]
[0012] A detailed description of explanatory embodiments will now be given with reference to various figures. This description provides detailed examples of possible embodiments, but it should be noted that the details are intended to be illustrative and in no way limit the scope of this application.
[0013] Figure 1 shows an exemplary block diagram of a block-based hybrid video encoding system. The input video signal 1102 may be processed block by block. To efficiently compress high-resolution (1080p and above) video signals, an extended block size (called a “coding unit” or CU) may be used. A CU can be up to 64x64 pixels. A CU may be further subdivided into prediction units (PUs), to which a separate prediction method is applied. For one or more or each input video block (MB or CU), spatial prediction (1160) and / or temporal prediction (1162) may be performed. Spatial prediction (or “intra prediction”) uses pixels from samples of already coded neighboring blocks (e.g., called reference samples) within the same video picture / slice to predict the current video block. Spatial prediction can reduce the spatial redundancy inherent in the video signal. Time prediction (also known as, for example, "interpretation" and / or "motion-compensated prediction") may use reconstructed pixels from already coded video pictures to predict the current video block. Time prediction can reduce the time redundancy inherent in the video signal. A time prediction signal for a given video block may be transmitted by one or more motion vectors indicating the amount and / or direction of motion between the current block and its reference block. Also, if multiple reference pictures are supported, one or more or each video block's reference picture index may be transmitted. The reference index may be used to identify which reference picture in the reference picture store (1164) the time prediction signal is coming from. After spatial and / or time prediction, a mode determination block (1180) in the encoder may select the best prediction mode, for example, based on a rate-distortion optimization method.
[0014] The predicted block may be subtracted from the current video block (1116). The predicted residual may be decorrelated using a transform (1104) and / or quantization (1106). The quantized residual coefficients may be inversely quantized (1110) and / or inversely transformed (1112) to form the reconstructed residual, which may be added to the predicted block (1126) to form the reconstructed residual. Furthermore, in-loop filtering such as a deblocking filter and / or adaptive loop filter may be applied to the reconstructed video block, possibly before it is placed in a reference picture store (1164) and / or used to code future video blocks (1166). To form the output video bitstream 1120, the coding mode (e.g., inter and / or intra), prediction mode information, motion information, and / or quantized residual coefficients may be sent to an entropic coding unit (1108) for further compression and / or packing to form the bitstream.
[0015] Figure 2 shows an overall block diagram of a block-based video decoder. The video bitstream 202 may be unpacked and / or entropi-decoded in the entropi-decoding unit 208. To form a prediction block, the coding mode and / or prediction information may be sent to the spatial prediction unit 260 (e.g., if intra-coded) and / or the temporal prediction unit 262 (e.g., if inter-coded). To reconstruct the residual block, the residual transformation coefficients may be sent to the inverse quantization unit 210 and / or the inverse transformation unit 212. In 226, the prediction block and the residual block may be added together. The reconstructed block may possibly pass through in-loop filtering before it can be stored in the reference picture store 264, for example. The reconstructed video in the reference picture store may be sent out to drive a display device and / or used to predict future video blocks.
[0016] As shown in Figure 1 and / or Figure 2, spatial prediction (e.g., intra prediction), temporal prediction (e.g., inter prediction), transformation, quantization, entropic coding, and / or loop filtering may be performed or used. Dual prediction in video coding may involve a combination of two temporal prediction blocks taken from a reference picture that may already be reconstructed, using averaging. For example, due to the limitations of block-based motion compensation (MC), there may still be small, observable motions remaining between the two prediction blocks. To compensate for such motions, bidirectional optical flow (BIO) may be applied to one or more or any samples within at least one block. BIO may be a motion refinement with respect to the samples, which may be performed on block-based motion-compensated predictions when dual prediction is used. The derivation of refined motion vectors for one or more or each sample within at least one block may be based on a classical optical flow model. (k) Let (x,y) be the sample value at coordinate (x,y) of the prediction block derived from the reference picture list k (k=0,1), and ∂I (k) (x,y) / ∂x and ∂I (k) (x,y) / ∂y may represent the horizontal and vertical gradients of the sample. Assuming the optical flow model is valid, the motion refinement at (x,y) is (v x ,v y )teeth,
[0017]
number
[0018] This can be derived by using the optical flow equation (1) and the interpolation of prediction blocks along the motion trajectory (for example, as shown in Figure 3).
[0019]
Number
[0020] may be obtained as, where τ0 and τ1 are I (0) and I (1) may indicate the temporal distance to the current picture CurPic of the reference pictures Ref0 and Ref1 associated with, for example,
[0021]
Number
[0022] is.
[0023] In FIG. 3, (MV x0 , MV y0 ) and (MV x1 , MV y1 ) may indicate block-level motion vectors that may be used to generate two prediction blocks I (0) and I (1) . Further, the motion refinement (v x , v y ) at the sample location (x, y) may be
[0024]
Number
[0025] calculated by minimizing the difference Δ between the values of the samples after motion refinement compensation (e.g., A and B in FIG. 3) as shown as.
[0026] Presumably, for example, to ensure the regularity of the derived motion refinement, it may be assumed that the motion refinement is consistent within a local surrounding area centered on (x, y). In an exemplary BIO design, the values of (v x , v y ) are
[0027]
number
[0028] As shown, it may be derived by minimizing Δ within a 5x5 window Ω around the current sample at (x,y). BIO may be applied to bipredicted blocks that may be predicted by two reference blocks from temporally neighboring pictures. BIO may be enabled without sending additional information from the encoder to the decoder. BIO may be applied to some bipredicted blocks that have both forward and backward predictive signals (e.g., τ0·τ1>0). For example, if the two predictive blocks of the current block are from the same direction (either forward or backward, e.g., τ0·τ1<0), then BIO may be used to determine if the predictive blocks are associated with non-zero motion, e.g., abs(MV x0 )+abs(MV y0 )≠0, and abs(MV x1 )+abs(MV y1 ) ≠ 0, and the two motion vectors are proportional to the temporal distance between the current picture and the reference picture, for example,
[0029]
number
[0030] It may be applied when the following conditions are met. For example, if the two predicted blocks of the current block are from the same reference picture (e.g., τ0 = τ1), BIO may be disabled. When local illumination compensation (LIC) is used for the current block, BIO may be disabled.
[0031] As shown in (2) and (4), in addition to block-level MC, BIO may have motion-compensated blocks (e.g., I) (for example, to derive local motion refinement and / or generate final predictions at its sample location). (0) and I(1) The gradient for the sample of ) may be derived. In BIO, the horizontal and vertical gradients of the sample in the prediction block (for example,
[0032]
number
[0033] ,
[0034]
number
[0035] , and
[0036]
number
[0037] ,
[0038]
number
[0039] ) may be computed simultaneously when the predicted signal is generated based on a filtering process (e.g., a 2D separable finite impulse response (FIR) filter) which may be consistent with motion compensation interpolation. The input to the gradient derivation process is the same reference sample used for motion compensation and the input motion (MV x0 / x1 , MV y0 / y1 The fractional components (fracX, fracY) of ) may be used.
[0040] To derive the gradient value at each sample position (e.g., each sample position), different filters are used (e.g., one is an interpolation filter h). L One is a gradient filter h G ) may be applied separately, perhaps in different orders for each direction of the gradient that may be calculated. Horizontal gradient (for example,
[0041]
number
[0042] and
[0043]
number
[0044] When deriving ), in order to derive the sample value at the vertical fractional position in fracY, the interpolation filter h L However, it may be applied vertically to the samples inside the prediction block. Perhaps, based on the value of fracX, a horizontal gradient value is calculated, and then a gradient filter h G However, the generated vertical fractional sample may be applied horizontally. Vertical gradient (for example,
[0045]
number
[0046] and
[0047]
number
[0048] When deriving ), in order to calculate the intermediate vertical gradient corresponding to fracY, a gradient filter h G However, it may be applied vertically on the prediction sample, and the horizontal interpolation of the intermediate vertical slope is performed according to the value of fracX, using the interpolation filter h L Use the following. The length of both the gradient filter and the interpolation filter may be 6 taps or 8 taps. Tables 1 and 2 show the results according to the accuracy of the block-level motion vector, h G and h LThe following are exemplary filter coefficients that may be used for this purpose.
[0049] [Table 1]
[0050] [Table 2]
[0051] Figures 4A and 4B illustrate an exemplary gradient derivation process applied in BIO, where sample values at integer sample locations are indicated by patterned rectangles, and sample values at fractional sample locations are indicated by blank rectangles. The motion vector precision may be increased to 1 / 16 of a pixel, and in Figures 4A and 4B, there may be 255 fractional sample locations defined within the integer sample region, where the subscript coordinates (x,y) represent the corresponding horizontal and vertical fractional positions of the sample (e.g., coordinate (0,0) corresponds to the sample at an integer position). Fractional position (1,1) (e.g., a 1,1 In this case, horizontal and vertical gradient values may be calculated. According to Figures 4A and 4B, for the derivation of the horizontal gradient, an interpolation filter h is used in the vertical direction. L By applying this, fractional sample f 0,1 , e 0,1 a 0,1 , b 0,1 , c 0,1 , and d 0,1 However, this can be derived, for example,
[0052]
number
[0053] Here, B is the bit depth of the input signal, and OffSet0 is
[0054]
number
[0055] This is a rounding offset that may be equal to f. 0,1 , e 0,1 a 0,1 , b 0,1 , c 0,1 , and d 0,1 The precision may be 14 bits. 1,1 The horizontal gradient is the corresponding gradient filter h G This can be calculated by horizontally applying the derived fractional sample.
[0056]
number
[0057] This may be done by calculating the unrounded gradient value in the intermediate 20 bits, as shown by [code]. The final horizontal gradient is:
[0058]
number
[0059] As shown above, the intermediate gradient value can be calculated by shifting it to the output precision, where sign(·) and abs(·) are functions that return the sign and absolute value of the input signal, and OffSet1 is 2 17-B This is a rounding offset that can be calculated as follows.
[0060] When deriving the vertical slope value at (1,1), the intermediate vertical slope value at the fractional position (0,1) may also be derived, for example,
[0061]
number
[0062] Therefore, the intermediate vertical slope value is then,
[0063]
number
[0064] As shown, it may be adjusted by shifting to a 14-bit value. The vertical gradient value at fractional position (1,1) is interpolated using the intermediate gradient value at fractional position (0,1) with respect to the interpolation filter h L This may be obtained by calculating the gradient value which has not been rounded to 20 bits, and then,
[0065]
number
[0066] As shown, the output bit depth may be adjusted through a shift operation.
[0067] As shown in (5), sample values and gradient values may be calculated for several samples within a surrounding window Ω around the sample, presumably to derive local motion refinement at one location. The window size may be (2M+1)×(2M+1), where M=2. As described herein, the gradient derivation may access additional reference samples within an expanded area of the current block. Assuming that the lengths T of the interpolation filter and gradient filter are 6, the corresponding expanded block size may be equal to T-1=5. For a given W×H block, the memory access required by BIO may be (W+T-1+2M)×(H+T-1+2M)=(W+9)×(H+9), which may be greater than the memory access (W+7)×(H+7) used by motion compensation. Block expansion constraints may be used to control BIO's memory access. For example, if block constraints are applied, it is likely that local motion refinement will occur at locations within the block (v x ,v yTo calculate this, neighboring samples that may exist within the current block may be used. Figures 5A and 5B compare the size of the memory access area for BIO before and after the block expansion constraint is applied.
[0068] In Advanced Time Motion Vector Prediction (ATMVP), time motion vector prediction may be improved by allowing a block to derive multiple pieces of motion information (e.g., motion vectors and reference indices) about subblocks within the block from multiple smaller blocks of the current picture's temporal neighbors. ATMVP may derive motion information for subblocks within a block by identifying the corresponding block of the current block (which may be called a collated block) within a temporal reference picture. The selected temporal reference picture may be called a collated picture. The current block may be divided into subblocks, and the motion information for each subblock may be derived from the corresponding smaller block within the collated picture, as shown in Figure 6.
[0069] Colocated blocks and colocated pictures may be identified by the motion information of the spatial neighboring blocks of the current block. Figure 6 shows the process in which available candidates in the merge candidate list are considered. Block A may be assumed to be identified as an available merge candidate for the current block based on the scanning order of the merge candidate list. The corresponding motion vector of block A (e.g., MV) A ) and its reference index may be used to identify the collated picture and the collated block. The location of the collated block within the collated picture is the motion vector of block A (e.g., MV A This can be determined by adding the coordinates of the current block to the coordinates of the current block.
[0070] For subblocks within the current block, motion information of its corresponding smaller block within the collated block (as indicated by the arrow in Figure 6) may be used to derive motion information of the subblock within the current block. When motion information of each smaller block within the collated block is identified, it may be converted into the motion vector and reference index of the corresponding subblock within the current block (in the same way as time motion vector prediction (TMVP), for example, by applying time motion vector scaling).
[0071] In spatial-time motion vector prediction (STVMP), motion information for subblocks within a coding block may be derived in a recursive manner, an example of which is shown in Figure 7. Figure 7 shows one example to illustrate the concept. As shown in Figure 7, the current block may contain four subblocks A, B, C, and D. The neighboring smaller blocks that are spatial neighbors of the current block are labeled a, b, c, and d, respectively. The motion derivation for subblock A may identify its two spatial neighbors. The first neighbor of subblock A may be neighbor c. For example, if small block c is unavailable or not intracoded, the next neighboring smaller block above (left to right) the current block may be checked. The second neighbor of subblock A may be left neighbor b. For example, if small block b is unavailable or not intracoded, the next neighboring smaller block to the left (top to bottom) of the current block may be checked. Motion information of the temporal neighbors of subblock A may be obtained by following a similar procedure to the TMVP process in HEVC. The motion information of available spatial and temporal neighbors (e.g., up to three) may be averaged and used as the motion information for subblock A. Based on the raster scan order, the above STMVP process may be repeated to derive motion information for other subblocks in the current video block.
[0072] A frame rate upconversion mode (FRUC) may be supported for the encoded blocks. When this mode is enabled, motion information (including, for example, motion vectors and / or reference indices) of the encoded blocks does not need to be transmitted. The information may be derived on the decoder side by template matching and / or bilateral matching techniques. Perhaps, for example, during the motion derivation process in the decoder, a list of block merge candidates and / or a set of preliminary motion vectors generated from the motion vectors of temporally collated blocks of the current block may be checked. A candidate that yields the smallest difference absolute value sum (SAD) may be selected as the starting point. A (e.g., local) search based on template matching and / or bilateral matching around the starting point may be performed. The MV that yields the smallest SAD may be taken as the MV for all blocks. For better motion compensation efficiency, the motion information may be further refined at the sub-block level.
[0073] Figures 8A and 8B illustrate examples of the FRUC process. As shown in Figure 8A, template matching may be used to derive motion information for the current block by finding the (e.g., best) match between a template in the current picture (e.g., a block above and / or to the left of the current block) and a block in a reference picture (e.g., the same size as the template). In Figure 8B, bilateral matching may be used to derive motion information for the current block by finding the (e.g., best) match between two blocks in two different reference pictures along the motion trajectory of the current block. The motion search process for bilateral matching may be based on the motion trajectory, for example, the motion vectors MV0 and MV1 pointing to the two reference blocks may be proportional to the temporal distance (e.g., T0 and T1) between the current picture and one or each of the two reference pictures.
[0074] For motion compensation prediction, a translational motion model may be applied. Many types of motion exist, such as zoom in / out, rotation, perspective motion, and other irregular motions. Affine transformation motion compensation prediction may be applied. As shown in Figure 9A, the affine motion field of a block may be described by several (e.g., two) control point motion vectors. Based on the motion of the control points, the motion field of the affine block is:
[0075]
number
[0076] It may be written as follows. Here, as shown in Figure 9A, (v 0x ,v 0y ) may be the motion vector of the control point in the upper left corner, and (v 1x ,v 1y ) may be the motion vector of the control point in the upper right corner. Perhaps, for example, when a video block is coded in affine mode, its motion field may be derived based on a granularity of 4x4 blocks. To derive the motion vector of a 4x4 block, the motion vector of the central sample of each subblock may be calculated according to (15), as shown in Figure 9B, and may be rounded to an accuracy of 1 / 16 pixels. The derived motion vector may be used in a motion compensation stage to generate a prediction signal for the subblocks within the current block.
[0077] To accelerate the processing speed of both encoding and decoding, single-instruction multiple-data (SIMD) instructions may be used in the software / hardware design of modern video codecs. SIMD may perform the same operation on multiple data elements simultaneously, possibly using a single instruction. The SIMD width defines the number of data elements that may be processed in parallel by registers. In a general-purpose central processing unit (CPU), 128-bit SIMD may be used. Graphics processing units (GPUs) can support wider SIMD implementations, for example, using 512-bit registers to support arithmetic, logical, load, and store instructions.
[0078] As described herein, to reduce the number of filtering operations, the BIO implementation may use a 2D separable FIR filter, e.g., a combination of a 1D low-pass interpolation filter and a 1D high-pass gradient filter, in the gradient derivation process. The selection of the corresponding filter coefficients may be based on the fractional position of the target sample. Due to such characteristics (e.g., a 2D separable filter), some computational operations may be performed in parallel for multiple samples. The gradient derivation process may be suitable for SIMD acceleration.
[0079] For the derivation of horizontal and vertical slopes, vertical filtering may be applied, followed by horizontal filtering. For example, to calculate the horizontal slope, an interpolation filter h may be applied. L Vertical interpolation using may be performed to generate intermediate samples, followed by a gradient filter h G However, it is applied horizontally on the intermediate sample. For calculating the vertical gradient, a gradient filter h G However, it can be applied vertically to calculate the intermediate vertical gradient, which can then be used with a horizontal interpolation filter h L It is OK to enter this. h L and h GAssuming both filter lengths are T=6, the horizontal filtering process may generate additional intermediate data (e.g., intermediate samples for calculating the horizontal gradient and intermediate gradients for calculating the vertical gradient) in the horizontally extended region of the current block, providing sufficient reference data for the subsequent horizontal filtering process. Figures 10A and 10B show 2D gradient filtering processes that may be applied to BIO, with dashed lines indicating the respective directions to which each filtering process may be applied. As shown in Figures 10A and 10B, for a W×H block, the size of the intermediate data is (W+T-1)×H=(W+5)×H. In HEVC and JEM, the width of the coding block may be a power of 2, e.g., 4, 8, 16, 32, etc. Samples may be stored in memory as 1 byte (for 8-bit video) or 2 bytes (for video signals with more than 8 bits). As described herein, the width of the intermediate data input to the horizontal filtering process may be W+5. Given an existing SIMD width, SIMD registers may not be fully utilized during the horizontal filtering process, which can reduce the parallelism efficiency of the SIMD implementation. For example, for a coding block with a width of 8, the width of the intermediate data may be 8 + 5 = 13. Assuming a 128-bit SIMD implementation and a 10-bit input video, it may require two SIMD operation loops to process each line of intermediate data during the horizontal filtering process. For example, the first SIMD loop may use the payload of the 128-bit register by filtering 8 samples in parallel, while the second loop may have the remaining 5 samples (e.g., 5 × 16 bits = 80 bits).
[0080] As shown in (10), (12), and (14), rounding operations during the gradient derivation process may be performed by calculating the absolute value of the input data, rounding the absolute value by adding one offset and then right-shifting, and multiplying the rounded absolute value by the sign of the input data. One or more subblock coding modes (e.g., ATMVP, STMVP, FRUC, and affine modes) may be used as described herein. When a subblock-level coding mode is enabled, the current coding block may be further subdivided into several smaller subblocks, and motion information for each subblock may be derived separately. Since the motion vectors of subblocks within a single coding block may be different, motion compensation may be performed separately for each subblock. Assuming the current block is coded by a subblock mode, Figure 11 shows an exemplary process used to generate a predicted signal for the block using BIO-related operations. As shown in Figure 11, motion vectors may be derived for some (e.g., all) of the subblocks of the current block. Subsequently, a standard motion compensator (MC) may be applied to generate motion-compensated prediction signals (e.g., Predi) for the subblocks within the block. For example, if a BIO is used, further BIO-based motion refinement may be performed to obtain a modified prediction signal PredBIOi for the subblocks. This may result in multiple invocations of the BIO to generate prediction signals for each subblock. Interpolation filtering and gradient filtering may access additional reference samples (depending on the filter length) to perform BIO at the subblock level. The number of subblocks contained within a block may be relatively large. Frequent switching between motion compensation operations and the use of different motion vectors may occur.
[0081] To implement SIMD efficiently, BIO prediction derivation may be performed.
[0082] In an exemplary BIO implementation, the BIO prediction may be derived using equation (2). In an exemplary BIO implementation, the BIO prediction may include one or more steps (e.g., two steps). One step (e.g., a first step) may be deriving adjustments from high accuracy (e.g., using equation (16)). Another step (e.g., a second step) may be deriving the BIO prediction by combining predictions (e.g., two predictions) from a list (e.g., two lists) and the adjustments, as seen in equation (17).
[0083]
number
[0084] The parameter round1 can be equal to (1 << (shift1 - 1)) for rounding to 0.5.
[0085]
number
[0086] The parameter round2 can be equal to (1 << (shift2 - 1)) for rounding to 0.5.
[0087] The rounding in equation (16) may involve calculating the absolute value and sign from the variable and combining the sign with the intermediate result after the right shift. The rounding in equation (16) may involve using multiple operations.
[0088] The BIO gradient may be derived in such a way that SIMD-based acceleration can be utilized. For example, the BIO gradient may be derived by applying horizontal filtering followed by vertical filtering. The length of the intermediate data input to the second filtering process (e.g., vertical filtering) may be a multiple of the length of the SIMD register to fully utilize the parallel performance capabilities of SIMD. In the example, rounding operations on the input values may be performed directly. This may be done by addition and right shift.
[0089] In the BIO gradient derivation process, horizontal filtering may follow vertical filtering. The width of the intermediate blocks may not be well aligned with the length of the common SIMD registers. Rounding operations during the gradient derivation process may be performed based on absolute values, which may introduce costly calculations (e.g., absolute value calculation and multiplication) for SIMD implementation.
[0090] As shown in Figures 10A and 10B, in the BIO gradient calculation process, horizontal filtering may follow vertical filtering. Perhaps, due to the lengths of the interpolation and gradient filters that may be used, the width of the intermediate data after vertical filtering may be W+5. Such a width may or may not be aligned with the width of the SIMD registers that may actually be used.
[0091] For both horizontal and vertical gradient derivation, horizontal filtering may be performed, followed by vertical filtering. To calculate the horizontal gradient, a horizontal gradient filter h G However, the process is executed to generate an intermediate horizontal gradient based on the fractional horizontal motion fracX, and then, according to the fractional vertical motion fracY, an interpolation filter h is applied on the intermediate horizontal gradient. L However, it is applied vertically. For calculating the vertical gradient, an interpolation filter h LHowever, it may be applied horizontally based on the value of fracX to calculate intermediate samples. Gradient filter h G However, it may be applied perpendicularly to the intermediate samples, depending on the value of fracY. Figures 12A and 12B show the corresponding 2D gradient derivation process after filtering. As shown in Figures 12A and 12B, the size of the intermediate data (e.g., intermediate gradients for horizontal gradient calculation and intermediate samples for vertical gradient calculation) may be W × (H + T - 1) = W × (H + 5). The filtering process in Figures 12A and 12B may ensure that the width of the intermediate data (e.g., W) can match the SIMD register length (e.g., 128 bits and 512 bits) that may be used in the implementation. For illustrative purposes, we take the same example as in Figures 10A and 10B, assuming a 128-bit SIMD implementation, 10-bit input video, and block width W = 8. As seen in Figures 10A and 10B, two sets of SIMD operations may be used to process the data in each line of an intermediate block (e.g., W+5), the first set of operations may use the payload of a 128-bit SIMD register (e.g., 100% use), while the second set of operations may use 80 bits of the 128-bit payload (e.g., 62.5% use). The set of SIMD operations may utilize the capacity of the 128-bit register, e.g., 100% use.
[0092] As described herein, the BIO gradient derivation may round the input values based on their absolute values, thereby minimizing rounding errors. For example, the absolute value of the input may be calculated by rounding the absolute value and multiplying the rounded absolute value by the sign of the input. This rounding is
[0093]
number
[0094] It is often written as such, and here, σ i and σ r`o` and `shift` may be the corresponding values of the input signal and the rounded signal, and `o` and `shift` may be the number of offset and right shift that may be applied during rounding. When deriving the gradient for the BIO block, rounding operations may be performed on the input values, for example,
[0095]
number
[0096] That is the case.
[0097] Figures 13 and 14 compare the mapping functions of different rounding methods. As seen in Figures 13 and 14, the difference between the rounded values calculated by the two methods may be small. The difference is σ i It may exist when the input value is equal to -0.5, -1.5, -2.5, ... which can be rounded to integers -1, -2, -3, ... by the rounding method in Figure 13 and to integers 0, -1, -2, ... by the rounding method in Figure 14. The coding performance impact introduced by the rounding method in Figure 14 may be negligible. As seen in (17), the rounding method in Figure 14 may be completed in a single step and may be performed by addition and right shift, neither of which may be as costly as the calculation and multiplication of absolute values which may be used in (16).
[0098] As described herein, the order of 2D separable filters and / or the use of any rounding method may affect the BIO gradient derivation. Figures 15A and 15B illustrate an exemplary gradient derivation process in which the order of 2D separable filters and the use of any rounding method may affect the BIO gradient derivation. For example, when deriving the horizontal gradient, fractional samples s 1,0 , g 1,0 a 1,0 , m 1,0 , y 1,0 The horizontal gradient value in the gradient filter h is in the horizontal direction. GIt can be derived by applying, for example,
[0099]
number
[0100] a 1,1 The horizontal gradient, for example, gH_a' 1,1 teeth,
[0101]
number
[0102] As shown, interpolation filter h L The intermediate horizontal gradient values may be interpolated by applying the interpolation filter h vertically. L By applying this, the sample value can be interpolated at the fractional position (1,0), for example,
[0103]
number
[0104] Therefore, the vertical gradient value at a1,1 is
[0105]
number
[0106] As shown, at the intermediate fractional position at (1,0), the gradient filter h G This can be obtained by executing it vertically.
[0107] The bit-depth increase caused by interpolation filters and gradient filters may be the same (e.g., 6 bits, as shown in Tables 1 and 2). Changing the filtering order does not affect the internal bit depth.
[0108] As described herein, one or more coding tools based on subblock-level motion compensation (e.g., ATMVP, STMVP, FRUC, and affine modes) may be used. When these coding tools are enabled, a coding block may be divided into multiple smaller subblocks (e.g., 4x4 blocks) which may derive their own motion information (e.g., reference pictures and motion vectors) which may be used in the motion compensation stage. Motion compensation may be performed separately for each subblock. Additional reference samples may be fetched to perform motion compensation for each subblock. For the motion compensation process, area-based motion compensation based on a variable block size may be applied to merge consecutive subblocks within a coding block that present the same motion information. This can reduce the number of motion compensation and BIO processes applied within the current block. Different schemes may be used to merge neighboring subblocks. Line-based subblock merging and 2D subblock merging may be performed.
[0109] Motion-compensated prediction may be performed for blocks coded in subblock mode. Variable block-size motion compensation may be applied by merging consecutive subblocks having the same motion information into a subblock group. A single motion compensation may be performed for each subblock group.
[0110] In line-based subblock merging, adjacent subblocks may be merged by placing the same subblock lines within the current coding block that have the same motion into a single group and performing a single motion compensation on the subblocks within the group. Figure 16A shows an example where the current coding block consists of 16 subblocks, each block may be associated with a specific motion vector. Based on existing subblock-based motion compensation methods (such as those shown in Figure 11), both normal motion compensation and BIO motion refinement may be performed separately for each subblock to generate a predictive signal for the current block. Correspondingly, there may be 16 invocations of motion compensation operations (each operation including both normal motion compensation and BIO). Figure 16B shows the subblock motion compensation process after the line-based subblock merging scheme has been applied. As shown in Figure 16B, after horizontally merging subblocks with the same motion, the number of motion compensation operations may be reduced to 6.
[0111] Subblock merging may depend on the shape of the block.
[0112] As shown in Figure 16B, for merging in the motion compensation stage, the horizontal movement of neighboring subblocks may be considered. For example, for merging in the motion compensation stage, subblocks within the same subblock row (e.g.) of a CU may be considered. To partition blocks within a picture (e.g., one), a quadtree-plus-binary tree (QTBT) structure (e.g., one) may be applied. In a QTBT structure, (e.g., each) coding unit tree (CTU) may be partitioned using a quadtree implementation. (e.g., each) quadtree leaf node may be partitioned by a binary tree. This partitioning may occur horizontally and / or vertically. For intracoding and / or intercoding, rectangular and / or square-shaped coding blocks may be used. This may be due to binary tree partitioning. For example, if such a block partitioning scheme is implemented and a line-based subblock merging method is applied, the subblocks may have similar (e.g., identical) movement horizontally. For example, if a rectangular block is oriented vertically (e.g., the block height is greater than the block width), adjacent subblocks located within the same subblock column may be more correlated than adjacent subblocks located within the same subblock row. In such cases, the subblocks may be merged vertically.
[0113] Block shape-dependent subblock merging schemes may be used. For example, if the width of a CU is greater than or equal to its height, a row-based subblock merging scheme may be used to jointly predict subblocks that have the same horizontal movement (e.g., subblocks located in the same subblock row). This may be performed using (e.g., one) motion compensation operations. For example, if the height of a CU is greater than its width, a column-based subblock merging scheme may be used to merge adjacent subblocks that have the same movement and are located in the same subblock column within the current CU. This may be performed using (e.g., one) motion compensation operations. Figures 18A and 18B show exemplary implementations of adaptive subblock merging based on block shape.
[0114] In the line / column-based subblock merging schemes described herein, the motion consistency of neighboring subblocks in the horizontal and / or vertical directions may be considered in order to merge subblocks during the motion compensation stage. In practice, the motion information of adjacent subblocks may be highly correlated in the vertical direction. For example, as shown in Figure 16A, the motion vectors of the first three subblocks in the first and second subblock rows may be the same. In such cases, both horizontal and vertical motion consistency may be considered when merging subblocks for more efficient motion compensation. A 2D subblock merging scheme may be used, in which adjacent subblocks in both the vertical and horizontal directions may be merged into a subblock group. A progressive search method may be used to calculate the block size for each motion compensation, allowing subblocks to be merged both horizontally and vertically. Given a subblock position, it may work by calculating the maximum number of consecutive subblocks in a subblock row (e.g., each subblock row) that can be merged into a single motion compensation stage, comparing the motion compensation block size that can be achieved in the current subblock row with that calculated for the last subblock row, and / or merging the subblocks. This may proceed by repeating the above steps in a given subblock row until the motion compensation block size can no longer be increased further after merging additional subblocks.
[0115] The search methods described herein may be summarized by the following exemplary procedure: subblock position b in the i-th subblock row and j-th subblock column. i,j Given a number, the number of consecutive subblocks in the i-th subblock row that have the same behavior as the current subblock (e.g., N) i ) may be calculated. The corresponding motion compensation block size is S i =N iSet k = i. Proceed to the (k + 1)-th sub-block row and calculate the number of consecutive sub-blocks that are allowed to be merged (e.g., N k+1 ). N k+1 = min(N k , N k+1 ) and update it, and calculate the corresponding motion compensation block size as S k+1 = N k+1 ·(k - i + 1). If S k+1 ≥ S k , set N k+1 = N k , set k = k + 1, proceed to the (k + 1)-th sub-block row, and calculate the number of consecutive sub-blocks that are allowed to be merged (e.g., N k+1 ). N k+1 = min(N k , N k+1 ) and update it, and calculate the corresponding motion compensation block size as S k+1 = N k+1 ·(k - i + 1). Otherwise, end.
[0116] FIG. 16C shows the corresponding sub-block motion compensation process after the 2D sub-block merging scheme is applied. As can be seen in FIG. 16C, the number of motion compensation operations may be 3 (e.g., motion compensation operations for 3 sub-block groups).
[0117] Subblock merging may be performed as described herein. Block expansion constraints may be applied to the BIO gradient derivation process. Neighboring samples within the current block may be used to calculate local motion refinement for sample locations within a block. The local motion refinement of a sample may be calculated by considering neighboring samples within a 5x5 surrounding area of the sample (as shown in (5)), and the length of the current gradient / interpolation filter may be 6. Local motion refinement values derived for samples in the first / last two rows and first / last two columns of the current block may not be as accurate when compared to motion refinement values derived for other sample locations, possibly due to the copying of the horizontal / vertical gradients of the four corner sample locations into the expanded area of the current block. Using a larger block size in the motion compensation stage may reduce the number of samples affected by the BIO block expansion constraints. Assuming a subblock size of 8, Figures 17A and 17B compare the number of samples affected by the BIO block expansion constraint when using a subblock motion compensation method (Figure 17A) and a 2D subblock merging scheme (Figure 17B), respectively. As seen in Figures 17A and 17B, 2D subblock merging can reduce the number of affected samples and minimize the effects caused by inaccurate motion refinement calculations.
[0118] In the BIO prediction derivation, rounding may be performed. Rounding may be applied to absolute values (e.g., first). Signs may be applied (e.g., after a right shift). Rounding in the adjustment derivation for BIO prediction may be applied as shown in equation (24). The right shift in equation (24) may be an arithmetic right shift (e.g., the sign of the variable may be kept unchanged after the right shift). In SIMD, the adjustment adj(x,y) may be calculated. The adjustment may be calculated using one addition and one right shift operation. An illustrative difference between the rounding in equation (16) and the rounding in equation (24) may be shown in Figures 13 and / or 14.
[0119]
number
[0120] The rounding method shown in (24) may perform two rounding operations (e.g., round1 in (24) and round2 in (17)) on the original input value. The rounding method shown in (24) may merge two right shift operations (e.g., shift1 in (24) and shift2 in (17)) into one right shift. The final prediction generated by BIO may be shown in equation (25),
[0121]
number
[0122] Here, round3 is equal to (1 << (shift1 + shift2 - 1)).
[0123] The current bit depth for deriving the adjustment value (which may be set to 21 bits, with 1 bit used for the sign) may be greater than the midpoint bit depth of the biprediction. As shown in (16), a rounding operation (e.g., round1) may be used to derive the adjustment value (e.g., adj hp(x,y)) may be applied. An intermediate bit depth may be applied to generate a biprediction signal (which may be set to, for example, 14 bits). An absolute value-based right shift (e.g., shift1=20-14=6) may be performed in equation (16). The bit depth of the derived BIO adjustment value may be reduced, for example, from 21 bits to 15 bits, so that a first rounding operation (e.g., round1) may be skipped during the BIO process. The BIO generation process seen in (16) and (17) may be modified as seen in (26) and (27).
[0124]
number
[0125] Here,
[0126]
number
[0127] and
[0128]
number
[0129] These may be the horizontal and vertical predicted gradients derived with reduced accuracy, v LP x and v LP y This may be a corresponding local movement at a lower bit depth. As seen in (27), a rounding operation may be used in the BIO generation process.
[0130] In addition to being applied separately, it should be noted that the methods described herein may be applied in combination. For example, the BIO gradient derivation and subblock motion compensation described herein may be combined. The methods described herein may be activated together in the motion compensation stage.
[0131] To remove blocking artifacts in the MC stage, superimposed block motion compensation (OBMC) may be performed. OBMC may be performed on one, more, or all inter-block boundaries, perhaps, for example, except for the right and / or bottom boundary of one block. When a video block is coded in one subblock mode, the subblock mode may refer to a coding mode (e.g., FRUC mode) that allows subblocks within the current block to have their own motion. OBMC may be performed on one, more, or all four of the subblock boundaries. Figure 19 shows an example of the OBMC concept. When OBMC is applied to one subblock (e.g., subblock A in Figure 19), perhaps, in addition to the motion vector of the current subblock, the motion vectors of up to four neighboring subblocks may also be used to derive the predicted signal for the current subblock. One, more, or more predicted blocks using the motion vectors of neighboring subblocks may be averaged to produce the final predicted signal for the current subblock.
[0132] In OBMC, a weighted average may be used to generate a prediction signal for one or more blocks. A prediction signal using the motion vector of at least one neighboring subblock may be called PN, and / or a prediction signal using the motion vector of the current subblock may be called PC. When OBMC is applied, the samples in the first / last four rows / columns of PN may be weighted averaged with the samples at the same positions in PC. The samples to which the weighted average is applied may be determined according to the location of the corresponding neighboring subblock. When the neighboring subblock is, for example, the upper neighbor (e.g., subblock b in Figure 19), the samples in the first X rows of the current subblock may be adjusted. When the neighboring subblock is, for example, the lower neighbor (e.g., subblock d in Figure 19), the samples in the last X rows of the current subblock may be adjusted. When the neighboring subblock is, for example, the left neighbor (e.g., subblock a in Figure 19), the samples in the first X columns of the current block may be adjusted. Perhaps, when a neighboring subblock is, for example, a right neighbor (e.g., subblock c in Figure 19), the sample in the last X column of the current subblock may be adjusted.
[0133] The values and / or weights of X may be determined based on the coding mode used to code the current block. For example, when the current block is not coded in subblock mode, the weight coefficients {1 / 4, 1 / 8, 1 / 16, 1 / 32} may be used for at least the first four rows / columns of PN, and / or the weight coefficients {3 / 4, 7 / 8, 15 / 16, 31 / 32} may be used for the first four rows / columns of PC. For example, when the current block is coded in subblock mode, the first two rows / columns of PN and PC may be averaged. In such a scenario, among other things, the weight coefficients {1 / 4, 1 / 8} may be used for PN, and / or the weight coefficients {3 / 4, 7 / 8} may be used for PC.
[0134] As described herein, BIO can be considered an enhancement of a normal MC by improving the granularity and / or accuracy of the motion vectors used in the MC stage. Assuming that the CU contains multiple subblocks, Figure 20 shows an example process for generating a prediction signal for the CU using BIO-related operations. As shown in Figure 20, motion vectors may be derived for one or more or all of the subblocks of the current CU. A motion-compensated prediction signal (e.g., Pred) for one or more or each subblock within the CU. i A normal MC may be applied to generate the modified predictive signal Pred for the subblock, for example, if BIO is used. BIO i To obtain this, BIO-based motion refinement may be performed. For example, when OBMC is used, it may be performed on one or more CUs or on each subblock, followed by the same procedure described herein to generate the corresponding OBMC prediction signal. In some scenarios, the motion vectors of spatial neighbor subblocks may be used to derive the prediction signal (for example, perhaps instead of the motion vector of the current subblock).
[0135] In Figure 20, for example, BIO may be used in the normal MC stage and / or OBMC stage when at least one subblock is bipredicted. BIO may be activated to generate the prediction signal for the subblock. Figure 21 shows an exemplary flowchart of the prediction generation process after OBMC, which may be performed without BIO. In Figure 21, BIO may still follow, for example, in the normal MC stage, after the motion-compensated prediction. As described herein, the derivation of BIO-based motion refinement may be a sample-based operation.
[0136] BIO may be applied to the current CU coded using subblock modes (e.g., FRUC, affine mode, ATMVP, and / or STMVP) in a normal MC process. For CUs coded using one or more of these subblock modes, the CU may be further divided into one or more or more subblocks, each of which may be assigned one or more unique motion vectors (e.g., single and / or bi-predictions). Perhaps, for example, when BIO is enabled, the decision of whether or not to apply BIO, and / or the BIO operation itself, may be performed separately for one or more or each of the subblocks.
[0137] As described herein, one or more techniques are intended to skip BIO operations in the MC stage (e.g., a normal MC stage). For example, the core design of the BIO (e.g., gradient calculation and / or refined motion vectors) may be kept the same and / or substantially the same. In one or more techniques, for blocks / subblocks where one or more factors or conditions can be satisfied, the BIO operations may be disabled (e.g., partially or completely). In some examples, MC may be performed without BIO.
[0138] In subblock mode, the CU may be permitted to be divided into two or more subblocks, and / or one or more different motion vectors may be associated with one or more or each subblock. Motion-compensated prediction and / or BIO operations may be performed on the CU and / or (e.g., if the CU is enabled to use subblock coding) on two or more subblocks. One or more of the techniques described herein may be applicable to video blocks that do not need to be coded by subblock mode (e.g., those that are not divided and / or have (e.g., a single) motion vector).
[0139] As described herein, BIO may compensate for (e.g., small) motion that may remain between (e.g., at least) two predicted blocks generated by conventional block-based MC. As shown in Figures 8A and 8B, FRUC bilateral matching may be used to estimate motion vectors based on temporal symmetry along the motion trajectories between predicted blocks in forward and / or backward reference pictures. For example, the values of motion vectors associated with two predicted blocks may be proportional to the temporal distance between the current picture and their respective reference pictures. Bilateral matching-based motion estimation can perhaps provide one or more (e.g., reliable) motion vectors when, for example, small translational motion (e.g., just that) may exist between two reference blocks (e.g., coding blocks in the highest temporal layer in a random access configuration).
[0140] For example, in a scenario in particular, when at least one subblock is coded by FRUC bilateral mode, one or more true motion vectors of samples within the subblock may be (or should be) coherent. In one or more techniques, BIO may be disabled during the normal MC process for one or more subblocks coded by FRUC bilateral mode. Figure 22 shows an illustrative diagram of the prediction generation process after the BIO process for FRUC bilateral blocks has been disabled in the MC stage. For example, on the decoder side, perhaps once the decoder can determine that FRUC bilateral mode has been used to code a block, the BIO process may be bypassed.
[0141] As described herein, BIO may be skipped for one or more FRUC bilateral subblocks where the two motion vectors may be symmetric in the time domain (e.g., always symmetric). Perhaps, in particular in some scenarios, to achieve further complexity reduction, the BIO process may be skipped at the MC stage based on the (e.g., absolute) difference between at least two motion vectors of at least one bi-predicted subblock. For example, for one or more subblocks that may be predicted by two motion vectors that may be approximately proportional in the time domain, it may be reasonably assumed that the two predicted blocks are highly correlated and / or that the motion vectors used at the subblock level MC may be sufficient to accurately reflect the true motion between the predicted blocks. In one or more scenarios, the BIO process may be skipped for those subblocks. In the case of a bi-predicted subblock whose motion vectors may not be proportional in time (e.g., never be proportional), BIO may be performed on the subblock level motion-compensated prediction.
[0142] Using the same notation as in Figure 3, for example, (MV x0 MV y0 ) and / or (MV x1 MV y1 ) represents a subblock-level motion vector (e.g., prediction signal) which may be used to generate two prediction blocks. Also, τ0 and τ1 are Represents the temporal distance from the preceding and / or following time reference picture to the current picture. Also, (MV s x1 MV s y1 ) is (MV x1 MV y1 It can be calculated as a scaled version of )
[0143]
number
[0144] As shown above, it may be generated based on τ0 and τ1.
[0145] Based on (28), the BIO process may skip at least one block and / or subblock when one or more intended techniques may be applied. For example, based on (28), two prediction blocks (e.g., reference blocks) may be determined to be similar or dissimilar (e.g., determined based on the prediction difference). If the two prediction blocks (e.g., reference blocks) are similar, the BIO process may skip at least one block or subblock. If the two prediction blocks (e.g., reference blocks) are dissimilar, the BIO process may not skip at least one block or subblock. For example, two prediction blocks may be determined to be similar when the following conditions are met:
[0146]
number
[0147] The variable `thres` may indicate a predefined / predetermined threshold for the motion vector difference. Otherwise, the motion vectors used for the subblock-level MC of the current subblock may be considered inaccurate. In particular, in such scenarios, BIO may still be applied to the subblock. For example, the variable `thres` may be transmitted and / or determined based on the desired coding performance (e.g., determined by the decoder).
[0148] Figure 23 shows an exemplary predictive generation process in which BIO may be disabled based on the motion vector difference criterion in (29). As can be seen from (29), in the MC stage, a threshold of motion vector difference (e.g., thresholds) may be used to determine whether at least one block or subblock can skip the BIO process. In other words, thresholds may be used to identify where skipping the BIO process may or may not have a significant impact on the overall encoding / decoding complexity. Thresholds may be used to determine whether the BIO process should be skipped or not. In one or more techniques, the same threshold of motion vector difference may be used for one, more or all pictures in the encoder and / or decoder. In one or more techniques, one or more different thresholds may be used for different pictures. For example, in a random access configuration, a relatively smaller threshold may be used for pictures in higher temporal layers (e.g., perhaps due to smaller motion). For example, a relatively large threshold may be used for pictures in lower temporal layers (e.g., due to greater motion).
[0149] As shown in (28) and (29), in order to calculate the motion vector difference, motion vector scaling is applied, (MVx1 MV y1 (MV) may be applied. For example, when motion vector scaling in (28) is applied and / or τ0 > τ1 is assumed, (MV) x1 MV y1 Errors caused by motion estimation (MV) can be amplified. Motion vector scaling may be applied (e.g., may always be applied) to motion vectors associated with a reference picture that has a relatively large temporal distance from the current picture. For example, when τ0 ≤ τ1, to calculate the motion vector difference (e.g., as shown by (28) and (29)), motion vector (MV) x1 MV y1 ) may be scaled. Otherwise, for example, if τ0 > τ1,
[0150]
number
[0151] As shown, in order to calculate the motion vector difference, the motion vector (MV x0 MV y0 ) can be scaled.
[0152] As described herein, motion vector scaling may be applied when the temporal distances of two reference pictures to the current picture are different (e.g., τ0 ≠ τ1). Motion vector scaling can introduce additional errors (e.g., due to division and / or rounding operations), so it can affect the precision of the scaled motion vector (e.g., reduce precision). In particular, to avoid or reduce such errors in scenarios, perhaps (e.g., when the temporal distances of at least two or up to two reference pictures (e.g., reference blocks) from the current subblock may be the same or substantially similar (e.g., τ0 = τ1) (e.g., only then), motion vector difference (e.g., as shown in (30) and (31)) may be used to disable BIO in the MC stage (e.g., only then).
[0153] As described herein, motion vector difference may be used as a measure to determine whether the BIO process can be skipped for at least one subblock in the MC stage (for example, based on whether the two reference blocks are similar). When the motion vector difference between the two reference blocks is relatively small (for example, below a threshold), it may be reasonable to assume that the two prediction blocks can be similar (e.g., they can be highly correlated) so that BIO can be disabled without incurring (e.g., substantial) coding loss. Motion vector difference may be one of many methods for measuring the similarity (e.g., correlation) between two prediction blocks (e.g., reference blocks). In one or more techniques, the correlation between two prediction blocks can be calculated by calculating the mean difference between the two prediction blocks, for example,
[0154]
number
[0155] It may be decided by [the relevant factor].
[0156] Variable I (0) (x,y) and I (1) (x,y) is a sample value at the coordinates (x,y) of the motion-compensated block derived from a forward and / or backward reference picture (e.g., a reference block). The sample value may be associated with its lumen value for each reference block. The sample value may be interpolated from each of those reference blocks. Variables B and N are the set of sample coordinates and the number of samples defined within the current block or subblock, respectively. Variable D is a strain measurement to which one or more different measurements / metrics may be applied, such as the sum of squared errors (SSE), the sum of absolute differences (SAD), and / or the sum of transformed absolute differences (SATD). Given (32), it is possible, for example, that the difference measurement may be less than or equal to one or more predefined / predetermined thresholds, e.g., Diff ≤ D thres When this is the case, BIO can be skipped in the MC stage. Otherwise, the two predictive signals of the current subblock may be considered dissimilar (e.g., less correlated), and BIO may be applied to them (e.g., still applied). As described herein, D thres This may be transmitted or determined by the decoder (for example, based on desired coding performance). Figure 24 shows an example of the prediction generation process after BIO has been skipped, based on measuring the difference between two prediction signals.
[0157] As described herein, the BIO process may be conditionally skipped at the CU or subCU level (e.g., in a subblock having a CU). For example, an encoder and / or decoder may decide that BIO may be skipped for the current CU. As described herein, this decision may be based on the similarity of two reference blocks associated with the current CU (e.g., using (28), (29), (30), (31), and / or (32)). If the encoder and / or decoder decides that BIO should be skipped for the current CU, the encoder and / or decoder may decide whether the current CU is coded using enabled subblock coding. If the current CU is coded using enabled subblock coding, the encoder and / or decoder may decide that BIO may be skipped for the subblocks within the CU.
[0158] As shown in Figure 24, the BIO process may be conditionally skipped for the current CU or a subblock within the current CU if the strain between its two predicted signals may be below a threshold. The calculation of strain measurements and the BIO process may be performed based on the subblock and may be frequently initiated for subblocks within the current CU. Strain measurements at the CU level may be used to determine whether the BIO process should be skipped for the current CU. Multi-stage early termination may be performed, in which the BIO process may be skipped based on strain values calculated from different block levels.
[0159] The skew may be calculated considering some (e.g., all) samples within the current CU. For example, if the skew at the CU level is sufficiently small (e.g., below a pre-defined CU level threshold), the BIO process may be skipped for the CU, and otherwise, at the sub-block level, the skew for each sub-block within the current CU may be calculated and used to determine whether to skip the BIO process. FIG. 26 shows an exemplary motion-compensated prediction process to which multi-stage early termination is applied to BIO. The variables in FIG. 26
[0160]
Number
[0161] and
[0162]
Number
[0163] represent the prediction signals generated for the current CU from the reference picture lists L0 and L1,
[0164]
Number
[0165] and
[0166]
Number
[0167] represent the corresponding prediction signals generated for the i-th sub-block within the CU.
[0168] As described herein, for example, a CU-level strain may be calculated to determine whether the BIO operation may be disabled for the current CU. The motion information of subblocks within a CU may be highly correlated or not highly correlated. The strain of subblocks within a CU may vary. Multistage early termination may be performed. For example, a CU may be divided into multiple groups of subblocks, and the groups may include consecutive subblocks having similar (e.g., the same) motion information (e.g., the same reference picture index and the same motion vector). A strain measurement may be calculated for each subblock group. For example, if the strain of one subblock group is sufficiently small (e.g., below a predefined threshold), the BIO process may be skipped for the samples within the subblock group; otherwise, the strain for each subblock within the subblock group may be calculated and used to determine whether the BIO process should be skipped for the subblock.
[0169] (32) In I (0) (x,y) and I (1) (x,y) may refer to the motion-compensated sample value (e.g., lumen value) at coordinate (x,y) obtained from reference picture lists L0 and L1. The motion-compensated sample value may be defined with the precision of the input signal bit depth (e.g., 8 bits or 10 bits if the input signal is 8-bit or 10-bit video). The prediction signal for one dual prediction block may be generated by averaging the two prediction signals from L0 and L1 with the precision of the input bit depth.
[0170] For example, if MV points to a fractional sample position, (0) (x,y) and I (1)(x,y) is obtained using interpolation at one intermediate precision (which may be higher than the input bit depth), and the intermediate prediction signal is then rounded to the input bit depth prior to the averaging operation. For example, if fractional MV is used for one block, the two prediction signals at the precision of the input bit depth may be averaged at an intermediate precision (e.g., the intermediate precision specified in H.265 / HEVC and JEM). For example, I (0) (x,y) and I (1) If the MV used to obtain (x,y) corresponds to a fractional sample position, the interpolation filter process may preserve the intermediate value at high precision (e.g., intermediate bit depth). For example, if one of the two MVs is integer motion (e.g., the corresponding prediction is generated without applying interpolation), the precision of the corresponding prediction may be increased to the intermediate bit depth before averaging is applied. Figure 27 shows an exemplary dual-prediction process when averaging two intermediate prediction signals at high precision.
[0171]
number
[0172] and
[0173]
number
[0174] `L0` refers to two prediction signals obtained from lists L0 and L1, which are at an intermediate bit depth (e.g., 14 bits as specified in HEVC and JEM), and `BitDepth` indicates the bit depth of the input video.
[0175] Given a dual prediction signal generated at high bit depth, the corresponding distortion between the two prediction blocks in equation (32) is:
[0176]
number
[0177] may be calculated at an intermediate precision as specified herein, where
[0178]
Number
[0179] and
[0180]
Number
[0181] are, respectively, high-precision difference sample values at coordinates (x, y) of the prediction blocks generated from L0 and L1, Diff h represents the corresponding distortion measurement calculated at an intermediate bit depth. Additionally, perhaps due to the high-bit-depth distortion in (33), the CU-level threshold and sub-block-level threshold used by BIO early termination (e.g., as described herein with respect to FIGS. 24 and 26) may be adjusted as they would be defined at the same bit depth of the prediction signal. As an example, using the L1 norm distortion (e.g., SAD), the following equation may describe how to adjust the distortion threshold from the input bit depth to the intermediate bit depth.
[0182]
Number
[0183] Variable
[0184]
Number
[0185] and
[0186]
Number
[0187] These are the CU level and subblock distortion thresholds in terms of input bit depth precision,
[0188]
number
[0189] and
[0190]
number
[0191] This is the corresponding distortion threshold for the accuracy of the intermediate bit depth.
[0192] As described herein, BIO may provide motion refinement of a sample, which may be calculated based on local gradient information at one or more or each sample location within at least one motion-compensated block. For subblocks within a region (e.g., a flat area) that does not need to contain much high-frequency detail, the gradients which may be derived using the gradient filters in Table 1 may tend to be small. As shown in equation (4), the local gradient (e.g., ∂I (k) (x,y) / ∂x and ∂I (k) When (x,y) / ∂y) is close to zero, the final prediction signal obtained from BIO may be approximately equal to the prediction signal generated by conventional biprediction, for example,
[0193]
number
[0194] That is the case.
[0195] In one or more techniques, BIO may be applied to one or more predicted samples of subblocks that may contain sufficient and / or rich high-frequency information (e.g., merely applied). The determination of whether the predicted signal of at least one subblock contains high-frequency information may be made, for example, based on the magnitude of the average gradient for samples within at least one subblock. Perhaps, for example, if the average is smaller than at least one threshold, the subblock may be classified as a flat area and / or BIO may not be applied to the subblock. Otherwise, at least one subblock may be considered to contain sufficient high-frequency information / detail to which BIO may still be applicable. The values of one or more thresholds for one or more or each reference picture may be predetermined and / or adaptively determined, perhaps, for example, based on the average gradient in that reference picture. In one or more techniques, gradient information may be calculated (e.g., merely calculated) to determine whether the current subblock may belong to a flat area. In some techniques, this gradient information does not need to be as precise as the gradient values that may be used to generate the BIO prediction signal (as shown in (4)). A relatively simple gradient filter may be used to determine whether BIO should be applied to at least one subblock. For example, a two-tap filter [-1,1] may be applied to derive horizontal and / or vertical gradients. Figure 25 shows an exemplary flowchart of the prediction generation process after applying gradient-based BIO skipping.
[0196] One or more techniques described individually in this specification may be applied together (for example, two or more techniques may be combined), allowing for the skipping of BIO in the MC stage. One or more techniques, thresholds, formulas, and / or factors / conditions described in this specification may be freely combined. One or more different combinations of techniques, thresholds, formulas, and / or factors / conditions described in this specification may offer different trade-offs with respect to coding performance and / or reduction of encoding / decoding complexity. For example, one or more of the techniques, thresholds, formulas, and / or factors / conditions described in this specification may be implemented together or separately such that the BIO process may be disabled (for example, completely disabled) for at least one block / subblock.
[0197] Figure 28A shows an exemplary communication system 100 in which one or more disclosed embodiments may be implemented. The communication system 100 may be a multiple access system that provides content such as voice, data, video, messaging, and broadcast to multiple radio users. The communication system 100 may enable multiple radio users to access such content through the sharing of system resources, including radio bandwidth. For example, the communication system 100 may utilize one or more channel access methods, such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), quadrature FDMA (OFDMA), single-carrier FDMA (SC-FDMA), zero-tail unique-word DFT spread OFDM (ZT UW DTS-s OFDM), unique-word OFDM (UW-OFDM), resource-block filtered OFDM, and filtered-bank multi-carrier (FBMC).
[0198] As shown in Figure 28A, the communication system 100 may include radio transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, RAN 104 / 113, CN 106 / 115, public switched telephone network (PSTN) 108, the Internet 110, and other networks 112, but it will be understood that the disclosed embodiments intend any number of WTRUs, base stations, networks, and / or network elements. Each of the WTRUs 102a, 102b, 102c, 102d may be any type of device configured to operate and / or communicate in a radio environment. For example, any of WTRU102a, 102b, 102c, and 102d may be referred to as “stations” and / or “STAs,” and may include user equipment (UEs), mobile stations, fixed or mobile subscriber units, subscription-based units, pagers, cellular phones, personal digital assistants (PDAs), smartphones, laptops, netbooks, personal computers, wireless sensors, hotspots or Mi-Fi devices, Internet of Things (IoT) devices, watches or other wearables, head-mounted displays (HMDs), vehicles, drones, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in industrial and / or automated processing chain situations), consumer electronics devices, and devices operating on commercial and / or industrial wireless networks. Any of WTRU102a, 102b, 102c, and 102d may be interchangeably referred to as UEs.
[0199] The communication system 100 may also include base stations 114a and / or base stations 114b. Each of the base stations 114a and 114b may be any type of device configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, and 102d to facilitate access to one or more communication networks, such as CN 106 / 115, the Internet 110, and / or other networks 112. For example, base stations 114a and 114b may be base transceiver stations (BTS), node B, eNodeB, home node B, home eNodeB, gNB, NR node B, site controller, access point (AP), and wireless router. Although each of the base stations 114a and 114b is depicted as a single element, it will be understood that base stations 114a and 114b may include any number of interconnected base stations and / or network elements.
[0200] Base station 114a may be part of RAN 104 / 113, which may also include other base stations and / or network elements (not shown) such as base station controllers (BSCs), radio network controllers (RNCs), and relay nodes. Base station 114a and / or base station 114b may be configured to transmit and / or receive radio signals on one or more carrier frequencies, which may be called cells (not shown). These frequencies may be in licensed spectrum, unlicensed spectrum, or a combination of licensed and unlicensed spectrum. A cell may provide coverage for radio services to a particular geographic area that may be relatively constant or change over time. A cell may be further divided into cell sectors. For example, a cell associated with base station 114a may be divided into three sectors. Thus, in one embodiment, base station 114a may include three transceivers, i.e., one for each sector of the cell. In embodiments, the base station 114a may utilize multiple-input multiple-output (MIMO) technology and may utilize multiple transceivers for each sector of the cell. For example, beamforming may be used to transmit and / or receive signals in a desired spatial direction.
[0201] Base stations 114a and 114b may communicate with one or more WTRUs 102a, 102b, 102c, and 102d over the air interface 116, and the air interface 116 may be any suitable radio communication link (e.g., radio frequency (RF), microwave, centimeter wave, micrometer wave, infrared (IR), ultraviolet (UV), visible light, etc.). The air interface 116 may be established using any suitable radio access technology (RAT).
[0202] More specifically, as mentioned above, the communication system 100 may be a multiple access system and may utilize one or more channel access schemes, such as CDMA, TDMA, FDMA, OFDMA, and SC-FDMA. For example, base stations 114a in RAN 104 / 113 and WTRUs 102a, 102b, and 102c may establish air interfaces 115 / 116 / 117 using broadband CDMA (WCDMA), and may implement radio technologies such as Universal Mobile Communications System (UMTS) Terrestrial Radio Access (UTRA). WCDMA may include communication protocols such as High Speed Packet Access (HSPA) and / or Advanced HSPA (HSPA+). HSPA may include High Speed Downlink (DL) Packet Access (HSDPA) and / or High Speed Uplink (UL) Packet Access (HSUPA).
[0203] In embodiments, base station 114a and WTRUs 102a, 102b, and 102c may implement radio technologies such as Advanced UMTS Terrestrial Radio Access (E-UTRA) to establish an air interface 116 using Long-Term Evolution (LTE) and / or LTE Advanced (LTE-A) and / or LTE Advanced Pro (LTE-A Pro).
[0204] In this embodiment, base station 114a and WTRUs 102a, 102b, and 102c may establish an air interface 116 using New Radio (NR), and wireless technologies such as NR radio access may be implemented.
[0205] In embodiments, base station 114a and WTRUs 102a, 102b, and 102c may implement multiple radio access technologies. For example, base station 114a and WTRUs 102a, 102b, and 102c may implement LTE radio access and NR radio access together, for example, using the dual connectivity (DC) principle. Thus, the air interface utilized by WTRUs 102a, 102b, and 102c may be characterized by multiple types of radio access technologies, as well as / transmissions to and from multiple types of base stations (e.g., eNBs and gNBs).
[0206] In other embodiments, base station 114a and WTRUs 102a, 102b, and 102c may implement radio technologies such as IEEE 802.11 (i.e., Wireless Fidelity (WiFi)), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, Provisional Standard 2000 (IS-2000), Provisional Standard 95 (IS-95), Provisional Standard 856 (IS-856), Global System for Mobile Communications (GSM), High-Speed Data Rate for GSM Evolution (EDGE), and GSM EDGE (GERAN).
[0207] In Figure 28A, base station 114b may be, for example, a wireless router, home node B, home eNode B, or access point, and any suitable RAT may be used to facilitate wireless connectivity in localized areas such as offices, homes, vehicles, campuses, industrial facilities, air corridors (used by drones, for example), and roadways. In one embodiment, base station 114b and WTRU 102c, 102d may establish a wireless local area network (WLAN) by implementing wireless technology such as IEEE 802.11. In another embodiment, base station 114b and WTRU 102c, 102d may establish a wireless personal area network (WPAN) by implementing wireless technology such as IEEE 802.15. In another embodiment, base station 114b and WTRUs 102c and 102d may establish a picocell or femtocell using a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.). As shown in Figure 28A, base station 114b may have a direct connection to the internet 110. Therefore, base station 114b may not need to access the internet 110 via CN 106 / 115.
[0208] RAN104 / 113 may communicate with CN106 / 115, which may be any type of network configured to provide voice, data, applications, and / or Voice over Internet Protocol (VoIP) services to one or more of WTRU102a, 102b, 102c, and 102d. The data may have various quality of service (QoS) requirements, such as different throughput requirements, latency requirements, error tolerance requirements, reliability requirements, data throughput requirements, and mobility requirements. CN106 / 115 may provide call control, billing services, mobile location-based services, prepaid calling, internet connectivity, video distribution, etc., and / or perform high-level security functions, such as user authentication. Although not shown in Figure 28A, it will be understood that RAN104 / 113 and / or CN106 / 115 may communicate directly or indirectly with other RANs that utilize the same or different RAT as RAN104 / 113. For example, in addition to being connected to RAN104 / 113, which may utilize NR radio technology, CN106 / 115 may also communicate with another RAN (not shown) that utilizes GSM, UMTS, CDMA2000, WiMAX, E-UTRA, or WiFi radio technology.
[0209] CN106 / 115 may also serve as a gateway for WTRU102a, 102b, 102c, and 102d to access PSTN108, the Internet 110, and / or other networks 112. PSTN108 may include a circuit-switched telephone network providing basic telephone services. The Internet 110 may include a global system of interconnected computer networks and devices using common communication protocols, such as Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and / or Internet Protocol (IP) within the TCP / IP Internet Protocol suite. Network 112 may include wired and / or wireless networks owned and / or operated by other service providers. For example, network 112 may include another CN connected to one or more RANs that may utilize the same RAT as RAN104 / 113 or a different RAT.
[0210] Some or all of the WTRUs 102a, 102b, 102c, and 102d in the communication system 100 may include multimode functionality (for example, WTRUs 102a, 102b, 102c, and 102d may include multiple transceivers for communicating with different radio networks on different radio links). For example, WTRU 102c shown in Figure 28A may be configured to communicate with a base station 114a that may utilize cellular-based radio technology and with a base station 114b that may utilize IEEE 802 radio technology.
[0211] Figure 28B is a system diagram showing an exemplary WTRU 102. As shown in Figure 28B, the WTRU 102 may include, among other things, a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keypad 126, a display / touchpad 128, non-removable memory 130, removable memory 132, a power supply 134, a Global Positioning System (GPS) chipset 136, and / or other peripherals 138. It will be understood that the WTRU 102 may include any subcombinations of the above elements while maintaining consistency with the embodiment.
[0212] The processor 118 may be a general-purpose processor, a dedicated processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors working with a DSP core, a controller, a microcontroller, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) circuit, any other type of integrated circuit (IC), and a state machine. The processor 118 may perform signal coding, data processing, power control, input / output processing, and / or any other functionality that enables the WTRU 102 to operate in a wireless environment. The processor 118 may be coupled to a transceiver 120, and the transceiver 120 may be coupled to a transmit / receive element 122. Although Figure 28B depicts the processor 118 and the transceiver 120 as separate components, it will be understood that the processor 118 and the transceiver 120 may be integrated together in an electronic package or chip.
[0213] The transmit / receive element 122 may be configured to transmit signals to or receive signals from a base station (e.g., base station 114a) over the air interface 116. For example, in one embodiment, the transmit / receive element 122 may be an antenna configured to transmit and / or receive RF signals. In another embodiment, the transmit / receive element 122 may be a radiator / detector configured to transmit and / or receive, for example, IR, UV, or visible light signals. In yet another embodiment, the transmit / receive element 122 may be configured to transmit and / or receive both RF signals and optical signals. It will be understood that the transmit / receive element 122 may be configured to transmit and / or receive any combination of radio signals.
[0214] In Figure 28B, the transmit / receive element 122 is depicted as a single element, but the WTRU 102 may include any number of transmit / receive elements 122. More specifically, the WTRU 102 may utilize MIMO technology. Thus, in one embodiment, the WTRU 102 may include two or more transmit / receive elements 122 (e.g., multiple antennas) for transmitting and receiving radio signals over the air interface 116.
[0215] The transceiver 120 may be configured to modulate the signal to be transmitted by the transmit / receive element 122 and to demodulate the signal received by the transmit / receive element 122. As mentioned above, the WTRU 102 may have multimode capabilities. Therefore, the transceiver 120 may include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs, such as NR and IEEE 802.11.
[0216] The processor 118 of the WTRU102 may be coupled to a speaker / microphone 124, a keypad 126, and / or a display / touchpad 128 (e.g., a liquid crystal display (LCD) display unit or an organic light-emitting diode (OLED) display unit) and may receive user input data from them. The processor 118 may output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. In addition, the processor 118 may obtain information from any type of suitable memory, such as non-removable memory 130 and / or removable memory 132, and may store data therein. Non-removable memory 130 may include random access memory (RAM), read-only memory (ROM), a hard disk, or any other type of memory storage device. Removable memory 132 may include a subscriber identification module (SIM) card, a memory stick, and a secure digital (SD) memory card, etc. In other embodiments, the processor 118 may obtain information from memory located on a server or home computer (not shown) or the like, which is not physically located on the WTRU 102, and may store data in it.
[0217] The processor 118 may receive power from the power supply 134 and may be configured to distribute power to and / or control power to other components within the WTRU 102. The power supply 134 may be any suitable device for supplying power to the WTRU 102. For example, the power supply 134 may include one or more dry cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), a solar cell, and a fuel cell.
[0218] The processor 118 may also be coupled to a GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to, or instead of, the WTRU 102 may receive location information from base stations (e.g., base stations 114a, 114b) on the air interface 116 and / or determine its own location based on the timing of signals received from two or more nearby base stations. It will be understood that the WTRU 102 may acquire location information using any appropriate location determination method, while maintaining consistency with the embodiment.
[0219] The processor 118 may be further coupled to other peripherals 138, which may include one or more software modules and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, peripherals 138 may include an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photos and / or videos), a Universal Serial Bus (USB) port, a vibration device, a television transceiver, a hands-free headset, a Bluetooth® module, a frequency modulation (FM) radio unit, a digital music player, a media player, a video game player module, an internet browser, a virtual reality and / or augmented reality (VR / AR) device, and an activity tracker. The peripheral device 138 may include one or more sensors, one or more of which are gyroscopes, accelerometers, Hall effect sensors, magnetometers, compass sensors, proximity sensors, temperature sensors, time sensors, geolocation sensors, altimeters, light sensors, touch sensors, magnetometers, barometers, gesture sensors, biometric sensors, and / or humidity sensors.
[0220] WTRU102 may include a full-duplex radio where the transmission and reception of some or all of the signals associated with specific subframes for both UL (e.g., for transmission) and downlink (e.g., for reception) may be in parallel and / or simultaneous. The full-duplex radio may include an interference management unit 139 to reduce and / or substantially eliminate self-interference via hardware (e.g., chokes) or via signal processing via a processor (e.g., a separate processor (not shown) or processor 118). In embodiments, WTRU102 may include a half-duplex radio for the transmission and reception of some or all of the signals (e.g., associated with specific subframes for either UL (e.g., for transmission) or downlink (e.g., for reception).
[0221] Figure 28C is a system diagram showing RAN104 and CN106 according to an embodiment. As mentioned above, RAN104 may communicate with WTRU102a, 102b, and 102c over the air interface 116 using E-UTRA radio technology. RAN104 may also communicate with CN106.
[0222] RAN104 may include eNodeB160a, 160b, and 160c, but it will be understood that RAN104 may include any number of eNodeB while maintaining consistency with the embodiment. Each of eNodeB160a, 160b, and 160c may include one or more transceivers for communicating with WTRU102a, 102b, and 102c over the air interface 116. In one embodiment, eNodeB160a, 160b, and 160c may implement MIMO technology. Thus, eNodeB160a may, for example, use multiple antennas to transmit radio signals to and / or receive radio signals from WTRU102a.
[0223] Each of the eNodeB160a, 160b, and 160c may be associated with a specific cell (not shown) and may be configured to handle wireless resource management decisions, handover decisions, and user scheduling in UL and / or DL. As shown in Figure 28C, the eNodeB160a, 160b, and 160c may communicate with each other over the X2 interface.
[0224] The CN106 shown in Figure 28C may include a Mobility Management Entity (MME) 162, a Serving Gateway (SGW) 164, and a Packet Data Network (PDN) Gateway (or PGW) 166. Although each of the above elements is depicted as part of CN106, it should be understood that any of these elements may be owned and / or operated by an entity different from the CN operator.
[0225] MME162 may be connected to each of the eNodeB160a, 160b, and 160c within RAN104 via the S1 interface and may act as a control node. For example, MME162 may be responsible for authenticating users of WTRU102a, 102b, and 102c, activating / deactivating bearers, and selecting a specific serving gateway during the initial attachment of WTRU102a, 102b, and 102c. MME162 may provide control plane functionality for exchanges between RAN104 and other RANs (not shown) utilizing other radio technologies such as GSM and / or WCDMA.
[0226] SGW164 may be connected to each of the eNodeB160a, 160b, and 160c in RAN104 via the S1 interface. SGW164 may generally route and forward user data packets to and from WTRU102a, 102b, and 102c. SGW164 may perform other functions, such as anchoring the user plane during inter-eNodeB handovers, triggering paging when DL data is available to WTRU102a, 102b, and 102c, and managing and remembering the context of WTRU102a, 102b, and 102c.
[0227] SGW164 may be connected to PGW166, which may provide WTRU102a, 102b, and 102c with access to a packet-switched network such as the Internet 110, thereby facilitating communication between WTRU102a, 102b, and 102c and IP-enabled devices.
[0228] CN106 may facilitate communication with other networks. For example, CN106 may provide WTRU102a, 102b, and 102c with access to a circuit-switched network, such as PSTN108, thereby facilitating communication between WTRU102a, 102b, and 102c and conventional fixed-line communication devices. For example, CN106 may include, or communicate with, an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between CN106 and PSTN108. In addition, CN106 may provide WTRU102a, 102b, and 102c with access to another network 112, which may include other wired and / or wireless networks owned and / or operated by other service providers.
[0229] In Figures 28A to 28D, the WTRU is described as a wireless terminal, but in a typical embodiment, such a terminal is intended to be able to use a wired communication interface with a communication network (e.g., temporarily or permanently).
[0230] In a typical embodiment, the other network 112 may be a WLAN.
[0231] A WLAN in Infrastructure Basic Service Set (BSS) mode may have access points (APs) for the BSS and one or more stations (STAs) associated with the APs. The APs may have access to or interfaces with a distribution system (DS) or another type of wired / wireless network that carries traffic within and / or outside the BSS. Traffic originating from outside the BSS to an STA may arrive through the AP and be delivered to the STA. Traffic originating from an STA to a destination outside the BSS may be sent to the AP for delivery to its respective destination. Traffic between STAs within the BSS may be sent through the AP; for example, a source STA may send traffic to the AP, and the AP may deliver the traffic to the destination STA. Traffic between STAs within the BSS may be considered and / or referred to as peer-to-peer traffic. Peer-to-peer traffic may be sent (e.g., directly) between a source STA and a destination STA using a Direct Link Setup (DLS). In one typical embodiment, the DLS may use 802.11e DLS or 802.11z Tunnel DLS (TDLS). A WLAN using Independent BSS (IBSS) mode does not need to have APs, and STAs within or using IBSS (e.g., all STAs) may communicate directly with one another. Communication in IBSS mode may sometimes be referred to herein as “ad hoc” mode communication.
[0232] When using 802.11ac infrastructure mode operation or a similar mode operation, an AP may transmit beacons on a fixed channel, such as a primary channel. The primary channel may have a fixed width (e.g., a 20 MHz bandwidth) or a dynamically set width via signaling. The primary channel may be the operating channel of the BSS and may be used by an STA to establish a connection with the AP. In one typical embodiment, for example in an 802.11 system, carrier sense multiple access / collision avoidance (CSMA / CA) may be implemented. In the case of CSMA / CA, an STA including the AP (e.g., any STA) may sense the primary channel. If the primary channel is sensed / detected and / or determined to be busy by a particular STA, that particular STA may back off. Within a given BSS, at any given time, one STA (e.g., just one station) may transmit.
[0233] A high-throughput (HT) STA may use a 40MHz wide channel for communication, for example, by combining a primary 20MHz channel with adjacent or non-adjacent 20MHz channels to form a 40MHz wide channel.
[0234] A very high-throughput (VHT) STA may support channels of 20 MHz, 40 MHz, 80 MHz, and / or 160 MHz width. 40 MHz and / or 80 MHz channels may be formed by combining consecutive 20 MHz channels. A 160 MHz channel may be formed by combining eight consecutive 20 MHz channels, or by combining two discontinuous 80 MHz channels, which may be called an 80+80 configuration. In the 80+80 configuration, after channel encoding, the data may be passed through a segment parser that can split the data into two streams. Inverse fast Fourier transform (IFFT) processing and time-domain processing may be performed separately on each stream. The streams may be mapped onto two 80 MHz channels, and the data may be transmitted by a transmitting STA. At the receiver of a receiving STA, the operation described above for the 80+80 configuration may be reversed, and the combined data may be transmitted to a media access control (MAC).
[0235] Sub-GHz mode operation is supported by 802.11af and 802.11ah. Channel operating bandwidth and carrier are reduced in 802.11af and 802.11ah compared to those used in 802.11n and 802.11ac. 802.11af supports 5MHz, 10MHz, and 20MHz bandwidths in the TV white space (TVWS) spectrum, while 802.11ah supports 1MHz, 2MHz, 4MHz, 8MHz, and 16MHz bandwidths using the non-TVWS spectrum. According to a typical embodiment, 802.11ah may support meter-type control / machine-type communications, such as MTC devices in macro coverage areas. MTC devices may have limited functionality, including support for certain bandwidths and / or limited bandwidths (e.g., only support for those). MTC devices may include batteries with a battery life above a threshold (e.g., to maintain a very long battery life).
[0236] A WLAN system that may support multiple channels and channel bandwidths, such as 802.11n, 802.11ac, 802.11af, and 802.11ah, may include a channel that can be designated as the primary channel. The primary channel may have a bandwidth equal to the largest common operating bandwidth supported by all STAs within the BSS. The bandwidth of the primary channel may be set and / or limited by the STA that supports the minimum bandwidth operating mode among all STAs operating within the BSS. In the 802.11ah example, even if APs and other STAs within the BSS support 2MHz, 4MHz, 8MHz, 16MHz, and / or other channel bandwidth operating modes, the primary channel may be 1MHz wide for an STA (e.g., an MTC type device) that supports (e.g., only) the 1MHz mode. Carrier sensing and / or network allocation vector (NAV) settings may depend on the status of the primary channel. For example, if the primary channel is busy because an STA (which only supports 1MHz operating mode) is transmitting to the AP, the entire available frequency band may be considered busy, even if a large portion of the frequency band remains idle and could be available.
[0237] In the United States, the available frequency band for use with 802.11ah is from 902 MHz to 928 MHz. In South Korea, the available frequency band is from 917.5 MHz to 923.5 MHz. In Japan, the available frequency band is from 916.5 MHz to 927.5 MHz. The total bandwidth available for 802.11ah is from 6 MHz to 26 MHz, depending on national regulations.
[0238] Figure 28D is a system diagram showing RAN113 and CN115 according to an embodiment. As mentioned above, RAN113 may communicate with WTRU102a, 102b, and 102c over the air interface 116 using NR radio technology. RAN113 may also communicate with CN115.
[0239] RAN113 may include gNB180a, 180b, and 180c, but it will be understood that RAN113 may include any number of gNBs while maintaining consistency with the embodiment. Each of gNB180a, 180b, and 180c may include one or more transceivers for communicating with WTRU102a, 102b, and 102c over the air interface 116. In one embodiment, gNB180a, 180b, and 180c may implement MIMO technology. For example, gNB180a and 108b may use beamforming to transmit signals to and / or receive signals from gNB180a, 180b, and 180c. Thus, gNB180a may, for example, use multiple antennas to transmit radio signals to and / or receive radio signals from WTRU102a. In embodiments, gNB180a, 180b, and 180c may implement carrier aggregation techniques. For example, gNB180a may transmit multiple component carriers to WTRU102a (not shown). A subset of these component carriers may be on the unlicensed spectrum, while the remaining component carriers may be on the licensed spectrum. In embodiments, gNB180a, 180b, and 180c may implement multipoint coordination (CoMP) techniques. For example, WTRU102a may receive coordinated transmissions from gNB180a and gNB180b (and / or gNB180c).
[0240] WTRU102a, 102b, and 102c may communicate with gNB180a, 180b, and 180c using transmissions associated with a scalable numerology. For example, OFDM symbol intervals and / or OFDM subcarrier intervals may vary for different transmissions, different cells, and / or different parts of the radio transmission spectrum. WTRU102a, 102b, and 102c may communicate with gNB180a, 180b, and 180c using subframes or transmit time intervals (TTIs) of varying or scalable lengths (e.g., containing varying numbers of OFDM symbols and / or lasting for varying absolute times).
[0241] gNB180a, 180b, and 180c may be configured to communicate with WTRU102a, 102b, and 102c in standalone and / or non-standalone configurations. In a standalone configuration, WTRU102a, 102b, and 102c may communicate with gNB180a, 180b, and 180c without accessing other RANs (e.g., eNodeB160a, 160b, and 160c). In a standalone configuration, WTRU102a, 102b, and 102c may use one or more of gNB180a, 180b, and 180c as mobility anchor points. In a standalone configuration, WTRU102a, 102b, and 102c may communicate with gNB180a, 180b, and 180c using signals within the unlicensed band. In a non-standalone configuration, WTRU102a, 102b, and 102c may communicate with and connect to other RANs such as eNodeB160a, 160b, and 160c, while also communicating with and connecting to other RANs. For example, WTRU102a, 102b, and 102c may implement the DC principle to communicate substantially simultaneously with one or more gNB180a, 180b, and 180c, and one or more eNodeB160a, 160b, and 160c. In a non-standalone configuration, eNodeB160a, 160b, and 160c may act as mobility anchors for WTRU102a, 102b, and 102c, and gNB180a, 180b, and 180c may provide additional coverage and / or throughput to service WTRU102a, 102b, and 102c.
[0242] Each of the gNB180a, 180b, and 180c may be associated with a specific cell (not shown) and may be configured to handle wireless resource management decisions, handover decisions, user scheduling in UL and / or DL, support for network slicing, dual connectivity, interworking between NR and E-UTRA, routing of user plane data to user plane functions (UPF) 184a and 184b, and routing of control plane information to access and mobility management functions (AMF) 182a and 182b. As shown in Figure 28D, the gNB180a, 180b, and 180c may communicate with each other over the Xn interface.
[0243] The CN115 shown in Figure 28D may include at least one AMF182a, 182b, at least one UPF184a, 184b, at least one Session Management Function (SMF)183a, 183b, and possibly a Data Network (DN)185a, 185b. Although each of the above elements is depicted as a part of CN115, it will be understood that any of these elements may be owned and / or operated by an entity different from the CN operator.
[0244] AMF182a and 182b may be connected via the N2 interface to one or more of gNB180a, 180b, and 180c in RAN113 and may act as control nodes. For example, AMF182a and 182b may be responsible for authenticating users of WTRU102a, 102b, and 102c, supporting network slicing (e.g., handling different PDU sessions with different requirements), selecting specific SMF183a and 183b, managing registration areas, terminating NAS signaling, and mobility management. Network slicing may be used by AMF182a and 182b to customize CN support for WTRU102a, 102b, and 102c based on the type of services utilized by WTRU102a, 102b, and 102c. For example, different network slices may be established for different use cases, such as services that rely on ultra-high reliability low latency (URLLC) access, services that rely on high-speed high-capacity mobile broadband (eMBB) access, and / or services for machine-type communications (MTC) access. The AMF162 may provide control plane functionality for exchange between RAN113 and other RANs (not shown) that utilize other radio technologies, such as LTE, LTE-A, LTE-A Pro, and / or non-3GPP access technologies like WiFi.
[0245] SMF183a and 183b may be connected to AMF182a and 182b in CN115 via the N11 interface. SMF183a and 183b may also be connected to UPF184a and 184b in CN115 via the N4 interface. SMF183a and 183b may select and control UPF184a and 184b and configure routing of traffic through UPF184a and 184b. SMF183a and 183b may perform other functions, such as managing and assigning UE IP addresses, managing PDU sessions, controlling policy enforcement and QoS, and providing downlink data notifications. PDU session types may be IP-based, non-IP-based, and Ethernet-based, among others.
[0246] UPF184a, 184b may be connected via the N3 interface to one or more of gNB180a, 180b, 180c in RAN113, which may provide WTRU102a, 102b, 102c with access to a packet-switched network, such as the Internet 110, to facilitate communication between WTRU102a, 102b, 102c and IP-enabled devices. UPF184a, 184b may perform other functions, such as routing and forwarding packets, enforcing user plane policies, supporting multihoming PDU sessions, handling user plane QoS, buffering downlink packets, and providing mobility anchoring.
[0247] CN115 may facilitate communication with other networks. For example, CN115 may include, or communicate with, an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between CN115 and PSTN108. In addition, CN115 may provide WTRU102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers. In one embodiment, WTRU102a, 102b, 102c may be connected to local data networks (DN) 185a, 185b through UPF184a, 184b via an N3 interface to UPF184a, 184b and an N6 interface between UPF184a, 184b and DN185a, 185b.
[0248] In view of Figures 28A to 28D and the corresponding descriptions thereof, one or more of the functions described herein relating to one or more of the WTRU102a to d, base stations 114a to b, eNodeB160a to c, MME162, SGW164, PGW166, gNB180a to c, AMF182a to b, UPF184a to b, SMF183a to b, DN185a to b, and / or any other devices described herein may be performed by one or more emulation devices (not shown). The emulation devices may be one or more devices configured to emulate one or more of the functions described herein. For example, emulation devices may be used to test other devices and / or to simulate network and / or WTRU functions.
[0249] Emulation devices may be designed to perform one or more tests of other devices in a laboratory environment and / or an operator network environment. For example, one or more emulation devices may perform one or more or all functions, fully or partially implemented and / or deployed as part of a wired and / or wireless network, to test other devices in a communication network. One or more emulation devices may perform one or more or all functions, temporarily implemented / deployed as part of a wired and / or wireless network. Emulation devices may be directly coupled to another device for testing purposes and / or perform tests using over-the-air radio communication.
[0250] One or more emulation devices may perform one or more functions, including all functions, without being implemented / deployed as part of a wired and / or wireless communication network. For example, an emulation device may be used in a test scenario, in a test laboratory and / or in an undeployed (e.g., test) wired and / or wireless communication network, to perform testing of one or more components. One or more emulation devices may be test equipment. Direct RF coupling and / or wireless communication via RF circuits (which may include, for example, one or more antennas) may be used by the emulation device to transmit and / or receive data.
[0251] While features and elements have been described above in specific combinations, those skilled in the art will understand that each feature or element can be used alone or in any combination with other features and elements. In addition, the methods described herein may be implemented in computer programs, software, or firmware contained within computer-readable media, executed by a computer and / or processor. Examples of computer-readable media include electronic signals (transmitted over wired or wireless connections) and computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media such as internal hard disks and removable disks, magneto-optical media, and optical media such as CD-ROM disks and digital multi-purpose disks (DVDs). A processor associated with software may be used to implement a radio frequency transceiver used in a WTRU, UE, terminal, base station, RNC, or any host computer. [Explanation of Symbols]
[0252] 100 Communication Systems 102a Receiver Unit (WTRU) 102b Receiver Unit (WTRU) 102c Receiver Unit (WTRU) 102d Receiver Unit (WTRU) 108 Public Switched Telephone Network (PSTN) 110 Internet 112 Network 114a base station 114b base station 116 Air Interface 118 processors 120 Transmitter / Receiver 122 Receiving elements 124 Microphones 126-key keypad 128 Touchpads 130 Non-removable memory 132 Removable Memory 134 Power supply 136 Chipset 138 Peripherals 139 Interference Management Unit 162 Mobility Management Entity (MME) 164 Serving Gateway (SGW) 166 Gateway (or PGW) 182a Mobility Management Function (AMF) 182b Mobility Management Function (AMF) 183a Session Management Function (SMF) 183b Session Management Function (SMF) 184a User Plane Function (UPF) 184b User Plane Function (UPF) 185a Data Network (DN) 185b Data Network (DN)
Claims
1. Obtain motion information relating to the video block, It is determined that bilateral matching is used to obtain the motion information relating to the video block, Based on the decision that the bilateral matching is used to acquire the motion information, motion compensation associated with the video block is performed by skipping the bidirectional optical flow (BIO). Decode the video block based on the execution of the motion compensation associated with the video block. A device for video decoding, characterized by having a processor configured as follows.
2. Obtain motion information relating to the video block, It is determined that bilateral matching is used to obtain the motion information relating to the video block, Based on the decision that the bilateral matching is used to acquire the motion information, motion compensation associated with the video block is performed by skipping the bidirectional optical flow (BIO). Encode the video block based on the execution of the motion compensation associated with the video block. A device for video encoding characterized by having a processor configured in such a way.
3. The aforementioned processor, If it is determined that frame rate upconversion (FRUC) is enabled for the video block, the BIO is skipped based on the determination that FRUC is enabled for the video block. The device according to claim 1 or 2, further characterized by being configured as follows.
4. The execution of the bilateral matching is: The method involves obtaining a first MV associated with a first reference block of the video block, wherein the first reference block is located in a first reference picture. The method involves obtaining a second MV associated with the second reference block of the video block based on the first MV, a first temporal distance between the first reference picture and the picture containing the video block, and a second temporal distance between the picture containing the video block and the second reference picture containing the second reference block, wherein the motion information relating to the video block is obtained based on selecting the first reference block or the second reference block to predict the video block. The device according to claim 1 or 2, characterized by including the following:
5. The Z video block is a subblock, and the processor is The difference between the first MV and the second MV is obtained. If the difference is determined to be less than or equal to the threshold, the BIO is skipped based on the determination that the difference is less than or equal to the threshold. The device according to claim 4, further characterized by being configured as follows.
6. The subblock is associated with the current picture, and the processor, Determine the temporal layer associated with the current picture, The threshold is determined based on the temporal layer associated with the current picture. The device according to claim 5, further characterized in that it is configured as follows.
7. The aforementioned processor, It is determined that the second temporal distance is greater than the threshold, Based on the determination that the second temporal distance is greater than the threshold, it is determined that scaling will be used to obtain the second MV. The device according to claim 4, further characterized by being configured as follows.
8. To obtain motion information relating to a video block, It is determined that bilateral matching is used to obtain the motion information relating to the video block, Based on the decision that the bilateral matching is used to acquire the motion information, motion compensation associated with the video block is performed by skipping the bidirectional optical flow (BIO), Decoding the video block based on the execution of the motion compensation associated with the video block A method for video decoding, characterized by comprising:
9. To obtain motion information relating to a video block, It is determined that bilateral matching is used to obtain the motion information relating to the video block, Based on the decision that the bilateral matching is used to acquire the motion information, motion compensation associated with the video block is performed by skipping the bidirectional optical flow (BIO), Encoding the video block based on the execution of motion compensation associated with the video block A method for video encoding characterized by comprising:
10. Determining that frame rate upconversion (FRUC) is enabled for the video block, the bilateral matching is performed based on the FRUC being enabled for the video block, and the BIO is skipped based on the determination that FRUC is enabled for the video block. The method according to 8 or 9, further comprising:
11. The execution of the bilateral matching is: The method involves obtaining a first MV associated with a first reference block of the video block, wherein the first reference block is located in a first reference picture. The method involves obtaining a second MV associated with the second reference block of the video block, based on the first MV, a first temporal distance between the first reference picture and the picture containing the video block, and a second temporal distance between the picture containing the video block and the second reference picture containing the second reference block, wherein the motion information relating to the video block is obtained based on selecting the first reference block or the second reference block to predict the video block. The method according to 8 or 9, characterized by including the following:
12. The video block is a subblock, and the method is Obtaining the difference between the first MV and the second MV, The determination that the difference is less than or equal to a threshold, and that the BIO is skipped based on the determination that the difference is less than or equal to the threshold. The method according to 11, further comprising:
13. Determining that the second temporal distance is greater than the threshold, Based on the determination that the second temporal distance is greater than the threshold, it is determined that scaling will be used to obtain the second MV. The method according to 11, further comprising: