Motion-compensated prediction based on bidirectional optical flow

By calculating the prediction difference and comparing it to a threshold, the system adaptively enables or disables bi-directional optical flow in video coding, improving coding efficiency and motion compensation.

JP7649771B2Active Publication Date: 2025-03-21INTERDIGITAL VC HOLDINGS INC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2022172303
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2017-12-15
Filing Date
2022-10-27
Publication Date
2025-03-21
Estimated Expiration
2038-07-03

AI Technical Summary

Technical Problem

Current video coding systems face challenges in efficiently determining when to enable or disable bi-directional optical flow (BIO) for coding units, which affects prediction and motion compensation processes.

Method used

The system determines whether BIO is enabled or disabled for a coding unit by calculating the prediction difference between two prediction signals and comparing it to a threshold, allowing for adaptive configuration based on signal similarity.

Benefits of technology

This approach enhances coding efficiency by dynamically adjusting BIO operations based on the similarity of prediction signals, thereby optimizing motion compensation and reducing computational complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007649771000057
    Figure 0007649771000057
  • Figure 0007649771000058
    Figure 0007649771000058
  • Figure 0007649771000059
    Figure 0007649771000059
Patent Text Reader

Abstract

Provides motion compensated prediction based on bidirectional optical flow. A device may determine whether to enable or disable a BIO for a CU. Prediction information for the CU may be identified, and may include a prediction signal associated with a first reference block and a second reference block. A prediction difference may be calculated and used to determine a similarity between the two prediction signals. The CU may be reconstructed based on the similarity. For example, whether to reconstruct the CU with an enabled BIO or a disabled BIO may be based on whether the two prediction signals are similar. A decision may be made to enable the BIO for the CU when the two prediction signals are determined to be dissimilar. For example, the CU may be reconstructed with a disabled BIO when the two prediction signals are determined to be similar.
Need to check novelty before this filing date? Find Prior Art

Description

[Background technology]

[0001] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 528,296, filed July 3, 2017, U.S. Provisional Patent Application No. 62 / 560,823, filed September 20, 2017, U.S. Provisional Patent Application No. 62 / 564,598, filed September 28, 2017, U.S. Provisional Patent Application No. 62 / 579,559, filed October 31, 2017, and U.S. Provisional Patent Application No. 62 / 599,241, filed December 15, 2017, the contents of which are incorporated herein by reference.

[0002] Video coding systems are widely used to compress digital video signals to reduce storage requirements and / or transmission bandwidth of such signals. There are various types of video coding systems, such as 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 Joint Study Group on Video Coding (JCT-VC) between ITU-T / SG16 / Q.6 / VCEG and ISO / IEC / MPEG. Summary of the Invention [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 a current coding unit (e.g., a block and / or a sub-block). Prediction information for the current coding unit may be identified. The prediction information may include a prediction signal associated with a first reference block (or, e.g., a sub-block) and a prediction signal associated with a second reference block (or, e.g., a sub-block). A prediction difference between the two prediction signals may be calculated. A similarity between the two prediction signals may be determined based on the prediction difference. The current coding unit may be reconstructed based on the similarity of the two prediction signals. For example, whether to reconstruct the current coding unit with BIO enabled or with BIO disabled may be determined based on whether the two prediction signals are sufficiently similar. When it is determined that the two prediction signals are not similar (e.g., dissimilar), it may be determined to enable BIO for the current coding unit. For example, when the two predictions are determined to be similar, the current coding unit may be reconstructed with the BIO disabled.

[0004] A prediction difference that may be used to determine the similarity between two prediction signals may be determined in a number of ways. For example, calculating the prediction difference may include calculating an average difference between sample values ​​of each of the two reference blocks associated with the two prediction signals. Sample values ​​from each reference block may be interpolated. For example, calculating the prediction difference may include calculating an average motion vector difference between motion vectors of each of the 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 the two predicted signals may be determined by comparing a prediction difference between the two predicted signals to a threshold. When the prediction difference is less than or equal to the threshold, the two predicted signals may be determined to be similar. When the prediction 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 at the video coding device. The threshold may be determined based on a desired complexity level and / or a desired coding efficiency.

[0006] A device for performing video data coding may be configured to group one or more sub-blocks into a sub-block group. For example, consecutive sub-blocks with similar motion information may be grouped together into a sub-block group. The sub-block groups may vary in shape and size and may be formed based on the shape and / or size of the current coding unit. The sub-blocks may be grouped horizontally and / or vertically. A motion compensation operation (e.g., a single motion compensation operation) may be performed on the sub-block group. BIO refinement may be performed on the sub-block group. For example, the BIO refinement may be based on gradient values ​​of the sub-blocks of the sub-block group.

[0007] The BIO gradient may be derived such that single instruction multiple data (SIMD) based acceleration may be utilized. In one or more techniques, the BIO gradient may be derived by applying an interpolation filter and a gradient filter, where horizontal filtering may be performed followed by vertical filtering. In the BIO gradient derivation, a rounding operation, which may be implemented by addition and right shift, may be performed on the input value.

[0008] Disclosed are devices, processes, and means for skipping BIO operation in a (e.g., normal) motion compensation (MC) stage (e.g., block level) of a video encoder and / or decoder. In one or more techniques, BIO operation may be disabled (e.g., partially or completely) for one or more blocks / sub-blocks for which one or more factors / conditions may be satisfied. For blocks / sub-blocks coded in / by Frame Rate Up Conversion (FRUC) bilateral mode, BIO may be disabled. For blocks / sub-blocks predicted by at least two motion vectors that are approximately proportional in the time domain, BIO may be disabled. When the average difference between at least two predicted blocks is below a predefined / predetermined threshold, BIO may be disabled. BIO may be disabled based on gradient information.

[0009] A decoding device for video data coding may comprise a memory. The decoding device may comprise a processor. The processor may be configured to identify a plurality of sub-blocks of at least one coding unit (CU). The processor may be configured to select one or more sub-blocks of the plurality of sub-blocks for MC. The processor may be configured to determine whether a status of an MC condition is satisfied or not satisfied. The processor may be configured to initiate motion compensation without a BIO motion refinement process for one or more sub-blocks if the status of the MC condition is satisfied. The processor may be configured to initiate motion compensation with a BIO motion refinement process for one or more sub-blocks if the status of the MC condition is not satisfied.

[0010] Like reference numbers in the drawings indicate like elements. [Brief description of the drawings]

[0011] [Figure 1] FIG. 1 is an exemplary overview of a block-based video encoder. [Diagram 2] FIG. 2 is an exemplary overall block diagram of a video decoder. [Diagram 3] FIG. 1 is a diagram illustrating an example of bidirectional optical flow. [Figure 4A] FIG. 1 illustrates an exemplary gradient derivation process in BIO with 1 / 16 pixel motion accuracy. [Figure 4B] FIG. 1 illustrates an exemplary gradient derivation process in BIO with motion accuracy of 1 / 16 pixel. [Figure 5A] FIG. 1 illustrates an example memory access for a BIO without a block extension constraint. [Figure 5B] FIG. 13 illustrates an example memory access for a BIO with block extension constraints. [Figure 6] FIG. 2 illustrates an example of advanced temporal motion vector prediction. [Figure 7] FIG. 2 illustrates an exemplary spatio-temporal motion vector prediction. [Figure 8A] FIG. 1 illustrates an exemplary frame rate up-conversion using template matching. [Figure 8B] FIG. 1 illustrates an exemplary frame rate up-conversion using bilateral matching. [Figure 9A] FIG. 13 shows an example of an affine mode using a simplified affine model. [Figure 9B] A diagram showing an example of an affine mode using sub-block level motion derivation for affine blocks. [Figure 10A] FIG. 1 illustrates an exemplary 2D gradient filtering process of BIO, with dashed arrows indicating the filtering direction for horizontal gradient derivation. [Figure 10B]FIG. 1 illustrates an exemplary 2D gradient filtering process of BIO, where dashed arrows indicate the filtering direction for vertical gradient derivation. [Figure 11] FIG. 2 illustrates an example of a motion compensation process. [Figure 12A] FIG. 13 illustrates an exemplary modified 2D gradient filtering process of BIO, where dashed arrows indicate the filtering direction of the horizontal gradient derivation. [Figure 12B] FIG. 13 illustrates an exemplary modified 2D gradient filtering process of BIO, where dashed arrows indicate the filtering direction for vertical gradient derivation. [Figure 13] FIG. 13 illustrates an example mapping function for the rounding method for BIO gradient derivation. [Figure 14] FIG. 13 illustrates an example mapping function for the rounding method for BIO gradient derivation. [Figure 15A] FIG. 1 illustrates an exemplary gradient derivation process in BIO with 1 / 16 pixel motion accuracy. [Figure 15B] FIG. 1 illustrates an exemplary gradient derivation process in BIO with 1 / 16 pixel motion accuracy. [Figure 16A] FIG. 2 illustrates an exemplary comparison of various sub-block-based motion compensation. [Figure 16B] FIG. 1 illustrates an exemplary comparison of various sub-block based motion compensation with sub-block merging. [Figure 16C] FIG. 1 illustrates an exemplary comparison of various sub-block based motion compensation with 2D sub-block merging. [Figure 17A] FIG. 13 illustrates an exemplary representation of samples affected by a BIO block extension constraint when a sub-block motion compensation method is applied. [Figure 17B] FIG. 13 illustrates an example representation of samples affected by a BIO block extension constraint when using sub-block motion compensation based on 2D sub-block merging. [Figure 18A] FIG. 1 illustrates an exemplary row-wise sub-block merging implementation. [Figure 18B] FIG. 1 illustrates an exemplary column-wise sub-block merging implementation. [Figure 19] FIG. 2 illustrates an example of overlapped block motion compensation. [Figure 20] FIG. 2 illustrates an example of a motion compensation process. [Figure 21] FIG. 2 illustrates an example of a motion compensation process. [Figure 22] A diagram showing an example motion compensation process for a block coded in / by FRUC bilateral mode after skipping a BIO. [Figure 23] FIG. 13 illustrates an example motion compensation process after skipping a BIO based on motion vector difference. [Figure 24] FIG. 13 illustrates an example motion compensation process after skipping a BIO based on a difference between at least two prediction signals. [Diagram 25] FIG. 13 illustrates an example motion compensation process after skipping a BIO based on gradient information. [Figure 26] FIG. 1 illustrates an example motion compensation process with multi-stage BIO early termination. [Figure 27] FIG. 2 illustrates an exemplary bi-prediction process when averaging two intermediate prediction signals with high accuracy. [Figure 28A] 1 is a system diagram of an example communication system in which one or more disclosed embodiments may be implemented. [Figure 28B] A system diagram of an example wireless transmit / receive unit (WTRU) that may be used within the communication system shown in FIG. 28A. [Figure 28C] A system diagram of an example radio access network (RAN) and an example core network (CN) that may be used within the communication system shown in FIG. 28A. [Figure 28D]A system diagram of a further exemplary RAN and a further exemplary CN that may be used within the communication system shown in FIG. 28A. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0012] A detailed description of illustrative embodiments will now be given with reference to various figures. While this description provides detailed examples of possible implementations, it should be noted that the details are intended to be illustrative and in no way limit the scope of the present application.

[0013] FIG. 1 shows an example block diagram of a block-based hybrid video encoding system. An 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 64×64 pixels. A CU can be further partitioned into prediction units (PUs), to which separate prediction methods are 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) in the same video picture / slice to predict a current video block. Spatial prediction may reduce spatial redundancy inherent in a video signal. Temporal prediction (e.g., also referred to as “inter prediction” and / or “motion compensated prediction”) may use reconstructed pixels from already coded video pictures to predict a current video block. Temporal prediction may reduce temporal redundancy inherent in a video signal. A temporal prediction signal for a given video block may be conveyed by one or more motion vectors, which indicate 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 temporal prediction signal comes from. After spatial and / or temporal prediction, a mode decision block (1180) in the encoder may select the best prediction mode, for example, based on a rate-distortion optimization method.

[0014] The predictive block may be subtracted from the current video block (1116). The predictive residual may be decorrelated using a transform (1104) and / or quantized (1106). The quantized residual coefficients may be inverse quantized (1110) and / or inverse transformed (1112) to form a reconstructed residual, which may be added to the predictive block (1126) to form a reconstructed video block. Additionally, in-loop filtering, such as a deblocking filter and / or an adaptive loop filter, may be applied to the reconstructed video block (1166), possibly before it is placed into a reference picture store (1164) and / or used to code future video blocks. 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 entropy coding unit (1108) for further compression and / or packing to form the bitstream.

[0015] FIG. 2 shows an overall block diagram of a block-based video decoder. A video bitstream 202 may be unpacked and / or entropy decoded in an entropy decoding unit 208. Coding mode and / or prediction information may be sent to a spatial prediction unit 260 (e.g., in the case of intra-coded) and / or a temporal prediction unit 262 (e.g., in the case of inter-coded) to form a prediction block. Residual transform coefficients may be sent to an inverse quantization unit 210 and / or an inverse transform unit 212 to reconstruct a residual block. At 226, the prediction block and the residual block may be added together. The reconstructed block may possibly go through in-loop filtering, for example, before it may be stored in a reference picture store 264. The reconstructed video in the reference picture store may be sent to drive a display device and / or used to predict future video blocks.

[0016] As shown in FIG. 1 and / or FIG. 2, spatial prediction (e.g., intra prediction), temporal prediction (e.g., inter prediction), transform, quantization, entropy coding, and / or loop filters may be performed or used. Bi-prediction in video coding may include the combination of two temporal prediction blocks obtained 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 a small motion that can be observed between two prediction blocks. To compensate for such motion, bi-directional optical flow (BIO) may be applied to one or more or every sample inside at least one block. BIO may be a sample-wise motion refinement that may be performed on a block-based motion compensated prediction when bi-prediction is used. The derivation of the refined motion vector for one or more or each sample in at least one block may be based on a classical optical flow model. (k) Let (x,y) be the sample value at coordinates (x,y) of a prediction block derived from reference picture list k (k=0,1), and ∂I (k) (x,y) / ∂x and ∂I (k) (x,y) / ∂y may denote the horizontal and vertical gradients of the samples. Assuming that an optical flow model is valid, the motion refinement (v x ,v y )teeth,

[0017]

number

[0018] Using a combination of the optical flow equation (1) and the interpolation of the prediction block along the motion trajectory (e.g., as shown in FIG. 3), the BIO prediction can be derived as follows:

[0019]

number

[0020] where τ0 and τ1 can be obtained as I (0) and I (1) may indicate the temporal distance of the reference pictures Ref0 and Ref1 associated with the current picture CurPic, e.g.

[0021]

number

[0022] It is.

[0023] In FIG. 3, (MV x0 ,MV y0 ) and (MV x1 ,MV y1 ) are the two prediction blocks I (0) and I (1) , which may be used to generate a block-level motion vector at a sample location (x,y). x ,v y )teeth,

[0024]

number

[0025] Δ may be calculated by minimizing the difference Δ between the values ​​of the samples after motion refinement compensation (eg, A and B in FIG. 3), as shown below.

[0026] Perhaps, for example, to ensure 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 the exemplary BIO design, (v x ,v y ) is

[0027]

number

[0028] BIO may be derived by minimizing Δ within a 5×5 window Ω around the current sample at (x,y), such that: BIO may be applied to bi-predictive blocks, which may be predicted by two reference blocks from temporally neighboring pictures. BIO may be enabled without transmitting additional information from the encoder to the decoder. BIO may be applied to some bi-directionally predicted blocks that have both forward and backward prediction signals (e.g., τ0·τ1>0). For example, if the two prediction blocks of the current block are from the same direction (either forward or backward, e.g., τ0·τ1<0), BIO is applied to the prediction blocks 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, e.g.,

[0029]

number

[0030] For example, BIO may be disabled when two prediction 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.

[0031] As shown in (2) and (4), in addition to block-level MC, motion-compensated blocks (e.g., I (0) and I(1) ) samples may be derived. In BIO, the horizontal and vertical gradients of the samples in the prediction block (e.g.,

[0032]

number

[0033] ,

[0034]

number

[0035] , and

[0036]

number

[0037] ,

[0038]

number

[0039] ) may be calculated simultaneously when the prediction signal is generated based on a filtering process (e.g., a 2D separable finite impulse response (FIR) filter) that may be consistent with motion-compensated interpolation. The input to the gradient derivation process is the same reference samples used for motion compensation, and the input motion (MV x0 / x1 , M.V. y0 / y1 ) may be fractional components (fracX, fracY).

[0040] To derive the gradient value at each sample location, different filters are used (e.g., one is the interpolation filter h L , one is the gradient filter h G ) may be applied separately, possibly in a different order for each direction of gradient that may be calculated, for example.

[0041]

number

[0042] and

[0043]

number

[0044] ), an interpolation filter h L may then be applied vertically to samples inside the prediction block. A gradient filter h G may be applied horizontally to the generated vertical fractional samples.

[0045]

number

[0046] and

[0047]

number

[0048] ), we use a gradient filter h G may be applied vertically on the prediction samples, and horizontal interpolation of the intermediate vertical gradients is performed by the interpolation filter h L The length of both the gradient filter and the interpolation filter can be 6 taps or 8 taps. Tables 1 and 2 show the h, h, and h, respectively, according to the accuracy of the block-level motion vector. G and h L4 shows exemplary filter coefficients that may be used for

[0049] [Table 1]

[0050] [Table 2]

[0051] 4A and 4B show an exemplary gradient derivation process applied in BIO, where sample values ​​at integer sample positions are shown as patterned boxes and sample values ​​at fractional sample positions are shown as blank boxes. The motion vector precision may be increased to 1 / 16 pixels, and in FIG. 4A and 4B, there may be 255 fractional sample positions defined within the domain of integer samples, with the subscript coordinates (x,y) representing the corresponding horizontal and vertical fractional positions of the samples (e.g., coordinates (0,0) correspond to a sample at an integer position). Fractional positions (1,1) (e.g., a 1,1 ), horizontal and vertical gradient values ​​may be calculated. According to FIG. 4A and FIG. 4B, for the horizontal gradient derivation, an interpolation filter h L By applying 0,1 , e 0,1 , a 0,1 , b 0,1 , c 0,1 , and d 0,1 may be derived, for example:

[0052]

number

[0053] where B is the bit depth of the input signal, and OffSet0 is

[0054]

number

[0055] f is the rounding offset. 0,1 , e 0,1 , a 0,1 , b 0,1 , c 0,1 , and d 0,1 The precision of may be 14 bits. 1,1 The horizontal gradient of is calculated using the corresponding gradient filter h G may be calculated by horizontally applying

[0056]

number

[0057] This may be done by calculating the unrounded gradient value in the middle 20 bits as shown by:

[0058]

number

[0059] where sign(·) and abs(·) are functions that return the sign and absolute value of the input signal, and OffSet1 is 2 17-B is the rounding offset, which may be calculated as:

[0060] When deriving the vertical gradient value at (1,1), an intermediate vertical gradient value at fractional position (0,1) may be derived, e.g.

[0061]

number

[0062] The intermediate vertical gradient value is then

[0063]

number

[0064] The vertical gradient value at fractional position (1,1) may be adjusted by shifting it to a 14-bit value, such that the vertical gradient value at fractional position (0,1) is filtered by the interpolation filter h L This may be done by calculating the unrounded slope value in 20 bits, which is then obtained by

[0065]

number

[0066] , the output bit depth may be adjusted through a shift operation, as shown below.

[0067] As shown in (5), perhaps to derive a local motion refinement at one location, sample values ​​and gradient values ​​may be calculated for several samples within a surrounding window Ω around the sample. 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 extended area of ​​the current block. Assuming that the length T of the interpolation and gradient filters may be 6, the corresponding extended block size may be equal to T−1=5. For a given W×H block, the memory access required by the BIO may be (W+T−1+2M)×(H+T−1+2M)=(W+9)×(H+9), which may be larger than the memory access (W+7)×(H+7) used by motion compensation. A block extension constraint may be used to control the memory access of the BIO. For example, if a block constraint is applied, then perhaps local motion refinement (v x ,v yNeighboring samples that may be in the current block may be used to calculate (x,y). Figures 5A and 5B compare the size of the memory access area for a BIO before and after the block extension constraint is applied.

[0068] In advanced temporal motion vector prediction (ATMVP), temporal motion vector prediction may be improved by allowing a block to derive motion information (e.g., motion vectors and reference indices) for sub-blocks within the block from smaller blocks of temporal neighboring pictures of the current picture. ATMVP may derive motion information for sub-blocks within the block by identifying corresponding blocks of the current block in a temporal reference picture (which may be called co-located blocks). The selected temporal reference picture may be called a co-located picture. The current block may be divided into sub-blocks, and the motion information of each sub-block may be derived from a corresponding smaller block in the co-located picture, as shown in FIG. 6.

[0069] The co-located blocks and co-located pictures may be identified by the motion information of spatial neighboring blocks of the current block. FIG. 6 illustrates a process in which available candidates in a merge candidate list are considered. It may be assumed that block A is identified as an available merge candidate for the current block based on the scanning order of the merge candidate list. The corresponding motion vector (e.g., MV A ) and its reference index may be used to identify the co-located picture and the co-located block. The location of the co-located block in the co-located picture may be determined by the motion vector (e.g., MV A ) to the coordinates of the current block.

[0070] For a sub-block in the current block, the motion information of its corresponding small block in the co-located block (as indicated by the arrows in FIG. 6) may be used to derive the motion information of the sub-block in the current block. When the motion information of each small block in the co-located block is identified, it may be converted into a motion vector and reference index of the corresponding sub-block in the current block (e.g., in the same manner as temporal motion vector prediction (TMVP), where temporal motion vector scaling may be applied).

[0071] In spatial-temporal motion vector prediction (STVMP), motion information of sub-blocks in a coding block may be derived in a recursive manner, an example of which is shown in FIG. 7. FIG. 7 shows one example to illustrate the concept. As shown in FIG. 7, the current block may include four sub-blocks A, B, C, D. The neighboring small blocks that are spatial neighbors of the current block are labeled a, b, c, d, respectively. The motion derivation for sub-block A may identify its two spatial neighbors. The first neighbor of sub-block A may be neighbor c. For example, if small block c is not available or is not intra-coded, the next neighboring small block above (from left to right) the current block may be checked. The second neighbor of sub-block A may be left neighbor b. For example, if small block b is not available or is not intra-coded, the next neighboring small block to the left (from top to bottom) of the current block may be checked. The motion information of the temporal neighbors of sub-block A may be obtained by following a similar procedure of the TMVP process in HEVC. The motion information of the available spatial and temporal neighbors (e.g., up to three) may be averaged and used as the motion information of sub-block A. Based on the raster scan order, the above-mentioned STMVP process may be repeated to derive the motion information of other sub-blocks in the current video block.

[0072] A frame rate up-conversion mode (FRUC) may be supported for inter-coded blocks. When this mode is enabled, for example, motion information (including, for example, motion vectors and / or reference indexes) of the coded blocks may not be conveyed. The information may be derived at the decoder side by template matching and / or bilateral matching techniques. Perhaps, for example, during the motion derivation process at the decoder, a merge candidate list of the block and / or a set of preliminary motion vectors generated from the motion vectors of the current block's temporally co-located blocks may be checked. The candidate that results in the smallest sum of absolute difference (SAD) may be selected as the starting point. A (for example, local) search based on template matching and / or bilateral matching around the starting point may be performed. The MV that results in the smallest SAD may be taken as the MV for the whole block. For better motion compensation efficiency, the motion information may be further refined at the sub-block level.

[0073] 8A and 8B show an example of a FRUC process. As shown in FIG. 8A, template matching may be used to derive motion information of a current block by finding a (e.g., best) match between a template in a current picture (e.g., an upper and / or left neighboring block of the current block) and a block (e.g., of the same size as the template) in a reference picture. In FIG. 8B, bilateral matching may be used to derive motion information of a current block by finding a (e.g., best) match between two blocks along the motion trajectory of the current block in two different reference pictures. The motion search process of bilateral matching may be based on the motion trajectory, e.g., motion vectors MV0 and MV1 pointing to 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 compensated prediction, a translational motion model may be applied. Many kinds of motions exist, e.g., zoom in / out, rotation, perspective motion, and other irregular motions. Affine transformation motion compensated prediction may be applied. As shown in FIG. 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 an affine block may be expressed as:

[0075]

number

[0076] Here, as shown in FIG. 9A, (v 0x ,v 0y ) may be the motion vector of the upper left corner control point, and (v 1x ,v 1y ) may be the motion vector of the upper right corner control point. Perhaps, for example, when a video block is coded by affine mode, its motion field may be derived based on a granularity of 4×4 blocks. To derive the motion vectors of the 4×4 blocks, the motion vectors of the center samples of each sub-block, as shown in FIG. 9B, may be calculated according to (15) and rounded to 1 / 16 pixel accuracy. The derived motion vectors may be used in a motion compensation stage to generate prediction signals of sub-blocks inside the current block.

[0077] To accelerate both encoding and decoding processing speed, single instruction multiple data (SIMD) instructions may be used in modern video codec software / hardware designs, where SIMD may perform the same operation on multiple data elements simultaneously, possibly by using a single instruction. SIMD width defines the number of data elements that may be processed in parallel by a register. In general purpose central processing units (CPUs), 128-bit SIMD may be used. Graphics processing units (GPUs) may 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., 2D separable filter), some computational operations may be performed on multiple samples in parallel. The gradient derivation process may be suitable for SIMD acceleration.

[0079] For horizontal and vertical gradient derivation, vertical filtering may be applied followed by horizontal filtering. For example, to calculate the horizontal gradient, an interpolation filter h L may be performed to generate intermediate samples, followed by a gradient filter h G is applied horizontally on the mid-samples. To calculate the vertical gradient, the gradient filter h G may be applied vertically to calculate intermediate vertical gradients, which are then interpolated with a horizontal interpolation filter h L h L and h GAssuming that both filter lengths are T=6, the horizontal filtering process may generate additional intermediate data (e.g., intermediate samples for horizontal gradient calculation and intermediate gradients for vertical gradient calculation) in the horizontal extension area of ​​the current block, providing sufficient reference data for the subsequent horizontal filtering process. Figures 10A and 10B show the 2D gradient filtering process that may be applied to the BIO, with the dashed lines indicating the respective directions in which each filtering process may be applied. As shown in Figures 10A and 10B, for a WxH block, the size of the intermediate data is (W+T-1)xH=(W+5)xH. In HEVC and JEM, the width of the coding block may be a power of two, e.g., 4, 8, 16, 32, etc. Samples may be stored in memory by 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 the existing SIMD width, the SIMD registers may not be fully utilized during the horizontal filtering process, which may 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 a payload of 128-bit registers by filtering 8 samples in parallel, while in the second loop, there may be 5 samples remaining (e.g., 5×16 bits=80 bits).

[0080] As shown in (10), (12), and (14), the rounding operation 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. As described herein, one or more sub-block coding modes (e.g., ATMVP, STMVP, FRUC, and affine mode) may be used. When a sub-block level coding mode is enabled, the current coding block may be further partitioned into multiple small sub-blocks, and motion information for each sub-block may be derived separately. Since the motion vectors of the sub-blocks within one coding block may be different, motion compensation may be performed separately for each sub-block. Assuming that the current block is coded by the sub-block mode, FIG. 11 illustrates an exemplary process used to generate a prediction signal of the block using BIO-related operations. As shown in FIG. 11, motion vectors may be derived for some (e.g., all) sub-blocks of the current block. Then, normal MC may be applied to generate a motion-compensated prediction signal (e.g., Predi) for sub-blocks inside the block. For example, if BIO is used, BIO-based motion refinement may be further performed to obtain a modified prediction signal PredBIOi for the sub-block. This may result in multiple invocations of BIO to generate a prediction signal for each sub-block. To perform BIO at the sub-block level, the interpolation filtering and gradient filtering may access additional reference samples (depending on the filter length). The number of sub-blocks included in the block may be relatively large. Frequent switching between motion compensation operation and the use of different motion vectors may occur.

[0081] For efficient SIMD implementation, BIO predictive derivation may be implemented.

[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). A step (e.g., a first step) may be to derive an adjustment (e.g., using Equation (16)) from a high accuracy. A step (e.g., a second step) may be to derive the BIO prediction by combining a prediction (e.g., two predictions) from a list (e.g., two lists) and the adjustment, as seen in Equation (17).

[0083]

number

[0084] The parameter round1 may be equal to (1<<(shift1-1)) for 0.5 rounding.

[0085]

number

[0086] The parameter round2 may be equal to (1<<(shift2-1)) for 0.5 rounding.

[0087] The rounding in equation (16) may calculate the absolute value and sign from the variables and combine the sign with the intermediate result after the right shift. The rounding in equation (16) may use multiple operations.

[0088] The BIO gradient may be derived such 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, possibly to fully utilize the parallel capabilities of SIMD. In an example, a rounding operation on the input value may be performed directly. This may be implemented by an addition and a right shift.

[0089] In the BIO gradient derivation process, vertical filtering may be followed by horizontal filtering. The width of the intermediate blocks may not be well aligned with the length of the common SIMD register. Rounding operations during the gradient derivation process may be performed based on absolute values, which may introduce costly calculations (e.g., absolute value calculations and multiplications) for a SIMD implementation.

[0090] As shown in Figures 10A and 10B, in the gradient calculation process of the BIO, vertical filtering may be followed by horizontal filtering. Possibly due to the length of the interpolation and gradient filters that may be used, the width of the intermediate data after vertical filtering may be W+5. Such 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 may be performed to generate an intermediate horizontal gradient based on the fractional horizontal motion fracX, followed by applying an interpolation filter h L is applied vertically. To calculate the vertical gradient, the interpolation filter h Lmay be applied horizontally, possibly based on the value of fracX, to calculate intermediate samples. G may be applied vertically to the intermediate samples, possibly 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 calculations and intermediate samples for vertical gradient calculations) may be W x (H + T - 1) = W x (H + 5). The filtering process of Figures 12A and 12B may ensure that the width (e.g., W) of the intermediate data can be aligned with the SIMD register length (e.g., 128 bits and 512 bits) that may be used in the implementation. For illustration, 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. 10A and 10B, to process data in each line of the intermediate block (e.g., W+5), two sets of SIMD operations may be used, where a first set may use the payload of the 128-bit SIMD register (e.g., 100% usage), while a second set may use 80 bits of the 128-bit payload (e.g., 62.5% usage). The set of SIMD operations may utilize the 128-bit register capacity, e.g., 100% usage.

[0092] As described herein, the BIO gradient derivation may round the input value based on the absolute value, which may minimize rounding errors. For example, the absolute value of an input may be calculated by rounding the absolute value and multiplying the rounded absolute value by the sign of the input. This rounding may be done by:

[0093]

number

[0094] where σ i and σ rmay be the corresponding values ​​of the input signal and the rounded signal, and o and shift may be the number of offsets and right shifts that may be applied during rounding. When deriving the gradient for the BIO block, a rounding operation on the input values ​​may be performed, e.g.,

[0095]

number

[0096] It is.

[0097] Figures 13 and 14 compare the mapping functions of different rounding methods. As can be seen in Figures 13 and 14, the difference between the rounded values ​​calculated by the two methods can be small. The difference is σ i may exist when an input value of is equal to -0.5, -1.5, -2.5, ..., which may possibly be rounded to integers -1, -2, -3, ... by the rounding method of Figure 13 and rounded to integers 0, -1, -2, ... by the rounding method of Figure 14. The coding performance impact introduced by the rounding method of Figure 14 may be negligible. As can be seen in (17), the rounding method of Figure 14 may be completed by a single step and may be implemented by additions and right shifts, both of which may not be as costly as the absolute value calculations and multiplications that may be used in (16).

[0098] As described herein, the order of the 2D separable filters and / or the use of some rounding methods may affect the BIO gradient derivation. Figures 15A and 15B show an example gradient derivation process in which the order of the 2D separable filters and the use of some rounding methods may affect the BIO gradient derivation. For example, when deriving the horizontal gradient, the fractional sample s 1,0 , g 1,0 , a 1,0 , m 1,0 , y 1,0 The horizontal gradient value at is calculated by the gradient filter h Gmay be derived by applying, for example,

[0099]

number

[0100] It is. 1,1 The horizontal gradient of, e.g., gH_a' 1,1 teeth,

[0101]

number

[0102] The interpolation filter h L The vertical gradient may be interpolated from those intermediate horizontal gradient values ​​by applying an interpolation filter h L may be calculated by interpolating the sample value at fractional location (1,0) by applying

[0103]

number

[0104] The vertical gradient value at a1,1 is

[0105]

number

[0106] On the intermediate fractional location at (1,0), the gradient filter h G may be obtained by performing

[0107] The bit-depth increase caused by the interpolation filter and the gradient filter may be the same (e.g., 6 bits, as shown by Tables 1 and 2). Changing the filtering order may not affect the internal bit-depth.

[0108] As described herein, one or more coding tools based on sub-block level motion compensation (e.g., ATMVP, STMVP, FRUC, and affine mode) may be used. When these coding tools are enabled, a coding block may be divided into multiple small sub-blocks (e.g., 4×4 blocks) and may derive its own motion information (e.g., reference pictures and motion vectors) that may be used in the motion compensation stage. Motion compensation may be performed separately for each sub-block. Additional reference samples may be fetched to perform motion compensation for each sub-block. For the motion compensation process, region-based motion compensation based on variable block size may be applied to merge consecutive sub-blocks that present the same motion information within the coding block. This may reduce the number of motion compensation processes and BIO processes applied within the current block. Different schemes may be used to merge neighboring sub-blocks. Line-based sub-block merging and 2D sub-block merging may be performed.

[0109] For blocks coded by sub-block mode, motion compensated prediction may be performed. Variable block size motion compensation may be applied by merging consecutive sub-blocks with the same motion information into sub-block groups. For each sub-block group, a single motion compensation may be performed.

[0110] In line-based sub-block merging, adjacent sub-blocks may be merged by arranging the same sub-block lines within the current coding block with the same motion into one group, and performing a single motion compensation for the sub-blocks in the group. Figure 16A shows an example in which the current coding block consists of 16 sub-blocks, and each block may be associated with a specific motion vector. Based on the existing sub-block-based motion compensation method (as shown in Figure 11), both normal motion compensation and BIO motion refinement may be performed separately for each sub-block, possibly to generate a prediction signal for the current block. Correspondingly, there may be 16 invocations of motion compensation operation (each operation includes both normal motion compensation and BIO). Figure 16B shows the sub-block motion compensation process after the line-based sub-block merging scheme is applied. As shown in Figure 16B, after horizontally merging sub-blocks with the same motion, the number of motion compensation operations may be reduced to 6.

[0111] Sub-block merging may depend on the shape of the block.

[0112] As seen in FIG. 16B, for merging in the motion compensation stage, the motion of neighboring sub-blocks in the horizontal direction may be considered. For example, for merging in the motion compensation stage, sub-blocks in a (e.g., the same) sub-block row within a CU may be considered. To partition blocks in a (e.g., one) picture, a (e.g., one) quad-tree plus binary tree (QTBT) structure may be applied. In the QTBT structure, a (e.g., each) coding unit tree (CTU) may be partitioned using a quad-tree implementation. A (e.g., each) quad-tree leaf node may be partitioned by a binary tree. This partitioning may occur in the horizontal and / or vertical directions. For intra-coding and / or inter-coding, rectangular and / or square shaped coding blocks may be used. This may be due to the binary tree partitioning. For example, if such a block partitioning scheme is implemented and a line-based sub-block merging method is applied, the sub-blocks may have similar (e.g., the same) motion in the horizontal direction. For example, if the rectangular blocks are oriented vertically (e.g., the block height is greater than the block width), adjacent sub-blocks located in the same sub-block column may be more correlated than adjacent sub-blocks located in the same sub-block row. In such cases, the sub-blocks may be merged vertically.

[0113] A block shape dependent sub-block merging scheme may be used. For example, if the width of a CU is equal to or greater than its height, a row-wise sub-block merging scheme may be used to jointly predict sub-blocks having the same motion in the horizontal direction (e.g., sub-blocks located in the same sub-block row). This may be performed using a (e.g., one) motion compensation operation. For example, if the height of a CU is greater than its width, a column-wise sub-block merging scheme may be used to merge adjacent sub-blocks having the same motion and located in the same sub-block column within the current CU. This may be performed using a (e.g., one) motion compensation operation. Figures 18A and 18B show an example implementation of adaptive sub-block merging based on block shape.

[0114] In the line / column-based subblock merging scheme described herein, the motion consistency of neighboring subblocks in the horizontal and / or vertical directions may be considered to merge subblocks in 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 FIG. 16A, the motion vectors of the first three subblocks in the first subblock row and the second subblock row may be the same. In such a case, for more efficient motion compensation, both horizontal and vertical motion consistency may be considered when merging subblocks. A 2D subblock merging scheme may be used, and adjacent subblocks in both vertical and horizontal directions may be merged into a subblock group. To calculate the block size for each motion compensation, a progressive search method may be used to merge subblocks 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 may be achieved in the current subblock row with that calculated in the last subblock row, and / or merging subblocks. This may proceed by repeating the above steps, possibly after merging additional subblocks in a given subblock row, until the motion compensation block size cannot be further increased.

[0115] The search method described herein may be summarized by the following exemplary procedure: i,j Given, the number of consecutive subblocks in the i-th subblock row that have the same motion as the current subblock (e.g., N i ) may be calculated. The corresponding motion compensation block size is S i =N iLet k = i. Proceed to the (k+1)th subblock row and determine the number of consecutive subblocks that are allowed to be merged (e.g., N k+1 ) may be calculated. N k+1 =min(N k ,N k+1 ) and update the corresponding motion compensation block size to S k+1 =N k+1 Calculate (k-i+1). S k+1 ≧S k If so, N k+1 =N k , Set k=k+1, proceed to the (k+1)th subblock row, and determine the number of consecutive subblocks that are allowed to be merged (e.g., N k+1 ) is calculated. N k+1 =min(N k ,N k+1 ) and update the corresponding motion compensation block size to S k+1 =N k+1 Calculate (k-i+1), else exit.

[0116] Figure 16C shows the corresponding sub-block motion compensation process after the 2D sub-block merging scheme is applied. As seen in Figure 16C, the number of motion compensation operations may be three (e.g., motion compensation operations for three sub-block groups).

[0117] Sub-block merging may be performed as described herein. A block extension constraint 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 positions inside the block. The local motion refinement of a sample may be calculated by considering neighboring samples within a 5×5 surrounding area of ​​the sample (as shown in (5)), and the length of the current gradient / interpolation filter may be 6. The local motion refinement values ​​derived for samples in the first / last two rows and first / last two columns of the current block may be less accurate when compared to the motion refinement values ​​derived at other sample positions, possibly due to the duplication of the horizontal / vertical gradients of the four corner sample positions to the extended 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 extension constraint. Assuming that the size of the sub-block is 8, Figures 17A and 17B compare the number of samples affected due to the BIO block extension constraint when using the sub-block motion compensation method (Figure 17A) and using the 2D sub-block merging scheme (Figure 17B), respectively, are applied. As seen in Figures 17A and 17B, 2D sub-block merging can reduce the number of affected samples and also minimize the impact incurred by inaccurate motion refinement calculation.

[0118] In the BIO prediction derivation, rounding may be performed. Rounding may be applied to the absolute value (e.g., may be applied first). A sign may be applied (e.g., may be applied after a right shift in that case). 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, an adjustment adj(x,y) may be calculated. The adjustment may be calculated using one addition and one right shift operation. An example difference between the rounding in equation (16) and the rounding in equation (24) may be shown in FIG. 13 and / or FIG. 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 seen 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, and 1 bit may be used for sign) may be higher than the intermediate bit depth of the bi-prediction. As shown in (16), a rounding operation (e.g., round1) may be performed to derive the adjustment value (e.g., adj hp(x,y)) may be applied to generate a bi-predictive signal (e.g., may be set to 14 bits). An absolute-value-based right shift (e.g., shift1=20-14=6) may be implemented in equation (16). The bit depth of the derived BIO adjustment value may be reduced, e.g., from 21 bits to 15 bits, such that the 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] Where:

[0126]

number

[0127] and

[0128]

number

[0129] may be the horizontal and vertical predicted gradients derived with reduced precision, and v LP x and v LP y may be the corresponding local motion at the lower bit depth. As seen in (27), one rounding operation may be used in the BIO generation process.

[0130] It should be noted that in addition to being applied separately, the methods described herein may be applied in combination. For example, the BIO gradient derivation and sub-block motion compensation described herein may be combined. The methods described herein may be jointly enabled in the motion compensation stage.

[0131] To remove blocking artifacts in the MC stage, overlapped block motion compensation (OBMC) may be performed. OBMC may be performed for one or more or all inter-block boundaries, possibly except, for example, the right and / or bottom boundaries of a block. When a video block is coded in a sub-block mode, the sub-block mode may refer to a coding mode (e.g., FRUC mode) that allows a sub-block inside the current block to have its own motion. OBMC may be performed for one or more or all four of the boundaries of the sub-block. Figure 19 shows an example of the concept of OBMC. When OBMC is applied in one sub-block (e.g., sub-block A in Figure 19), possibly in addition to the motion vector of the current sub-block, the motion vectors of up to four neighboring sub-blocks may also be used to derive a prediction signal of the current sub-block. One or more or multiple prediction blocks using the motion vectors of the neighboring sub-blocks may be averaged to generate a final prediction signal of the current sub-block.

[0132] In OBMC, a weighted average may be used to generate a prediction signal of one or more blocks. A prediction signal using a motion vector of at least one neighboring subblock may be referred to as a PN, and / or a prediction signal using a motion vector of a current subblock may be referred to as a PC. When OBMC is applied, samples in the first / last four rows / columns of a PN may be weighted averaged with samples at the same position in a PC. The samples to which the weighted average is applied may be determined according to the location of the corresponding neighboring subblock. When a neighboring subblock is, for example, an upper neighbor (e.g., subblock b in FIG. 19), samples in the first X rows of the current subblock may be adjusted. When a neighboring subblock is, for example, a lower neighbor (e.g., subblock d in FIG. 19), samples in the last X rows of the current subblock may be adjusted. When a neighboring subblock is, for example, a left neighbor (e.g., subblock a in FIG. 19), samples in the first X columns of the current block may be adjusted. Perhaps when the neighboring subblock is, for example, a right neighbor (eg, subblock c in FIG. 19), the samples in the last X columns of the current subblock may be adjusted.

[0133] The value of X and / or the weights may be determined based on the coding mode used to code the current block. For example, when the current block is not coded in sub-block mode, weight factors {1 / 4, 1 / 8, 1 / 16, 1 / 32} may be used for at least the first four rows / columns of PN and / or weight factors {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 sub-block mode, the first two rows / columns of PN and PC may be averaged. In such a scenario, weight factors {1 / 4, 1 / 8} may be used for PN and / or weight factors {3 / 4, 7 / 8} may be used for PC, among others.

[0134] As described herein, BIO can be considered as one enhancement of regular MC by improving the granularity and / or accuracy of the motion vectors used in the MC stage. Assuming that a CU includes multiple sub-blocks, FIG. 20 shows an example of a process for generating a prediction signal for a CU using BIO-related operations. As shown in FIG. 20, motion vectors may be derived for one or more or all sub-blocks of the current CU. A motion-compensated prediction signal (e.g., Pred(x,y)) for one or more or each sub-block within the CU is generated. i ) may be applied. Perhaps, for example, if BIO is used, a modified prediction signal Pred for the sub-block may be generated. BIO i To obtain , BIO-based motion refinement may be performed. For example, when OBMC is used, it may be performed for one or more or each subblock of the CU, followed by the same procedure described herein to generate a corresponding OBMC prediction signal. In some scenarios, the motion vector of a spatially neighboring subblock (e.g., perhaps instead of the motion vector of the current subblock) may be used to derive the prediction signal.

[0135] In FIG. 20, for example, when at least one subblock is bi-predicted, BIO may be used in the normal MC stage and / or the OBMC stage. BIO may be activated to generate a prediction signal of the subblock. FIG. 21 shows an example flowchart of a post-OBMC prediction generation process that may be performed without BIO. In FIG. 21, BIO may still follow, possibly, for example, after the motion compensated prediction in the normal MC stage. As described herein, the derivation of BIO-based motion refinement may be a sample-based operation.

[0136] BIO may be applied to a current CU coded with a sub-block mode (e.g., FRUC, affine mode, ATMVP, and / or STMVP) in a normal MC process. For a CU coded with one or more of those sub-block modes, the CU may be further divided into one or more or multiple sub-blocks, and one or more or each sub-block may be assigned one or more unique motion vectors (e.g., uni-predictive and / or bi-predictive). Perhaps, for example, when BIO is enabled, the decision on whether to apply or not apply BIO and / or the BIO operation itself may be performed separately for one or more or each of the sub-blocks.

[0137] As described herein, one or more techniques are contemplated to skip BIO operations in the MC stage (e.g., normal MC stage). For example, the core design of BIO (e.g., gradient calculation and / or refined motion vectors) may be kept the same and / or substantially similar. In one or more techniques, for blocks / sub-blocks where one or more factors or conditions may be satisfied, BIO operations may be disabled (e.g., partially or completely). In some examples, MC may be performed without BIO.

[0138] In sub-block mode, a CU may be allowed to split into two or more sub-blocks, and / or one or more different motion vectors may be associated with one or more or each sub-block. Motion-compensated prediction and / or BIO operations may be performed for the CU and / or for two or more sub-blocks (e.g., if the CU is enabled to use sub-block coding). One or more of the techniques described herein may be applicable to video blocks that may not be coded by sub-block mode (e.g., are not split and / or have a (e.g., single) motion vector).

[0139] As described herein, BIO may compensate for (e.g., small) motion that may remain between (e.g., at least) two predictive 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 trajectory between predictive blocks in forward and / or backward reference pictures. For example, the values ​​of motion vectors associated with two predictive blocks may be proportional to the temporal distance between the current picture and their respective reference pictures. Bilateral matching-based motion estimation may possibly provide one or more (e.g., reliable) motion vectors when, for example, there may be a small translational motion (e.g., only) between two reference blocks (e.g., coding blocks in the highest temporal layer in a random access configuration).

[0140] For example, among other scenarios, when at least one subblock is coded by FRUC bilateral mode, one or more true motion vectors of samples inside the subblock may be coherent (e.g., 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 example diagram of a prediction generation process after disabling the BIO process for a FRUC bilateral block in the MC stage. For example, at the decoder side, perhaps once the decoder may determine that FRUC bilateral mode is / has been used to code the block, the BIO process may be bypassed.

[0141] As described herein, BIO may be skipped for one or more FRUC bilateral sub-blocks whose two motion vectors may be symmetric (e.g., always symmetric) in the time domain. Based on the (e.g., absolute) difference between at least two motion vectors of at least one bi-predicted sub-block, perhaps among other scenarios, to achieve further complexity reduction, the BIO process may be skipped in the MC stage. For example, for one or more sub-blocks 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 prediction blocks are highly correlated and / or the motion vectors used in the sub-block level MC may be sufficient to accurately reflect the true motion between the prediction blocks. In one or more scenarios, the BIO process may be skipped for those sub-blocks. For the scenario of a bi-predicted sub-block whose motion vectors may not be proportional in time (e.g., may never be proportional), BIO may be performed on the sub-block 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 sub-block level motion vector (e.g., a prediction signal) that may be used to generate the two prediction blocks. It represents the temporal distance of the forward and / or backward temporal reference pictures to the current picture. Also, (MV s x1 ,MV s y1 ) is (MV x1 ,MV y1 ) may be calculated as a scaled version of

[0143]

number

[0144] As such, it may be generated based on τ0 and τ1.

[0145] Based on (28), perhaps when one or more contemplated techniques may be applied, the BIO process may be skipped for at least one block and / or sub-block. For example, based on (28), two predictive blocks (e.g., reference blocks) may be determined to be similar or dissimilar (e.g., determined based on a prediction difference). If the two predictive blocks (e.g., reference blocks) are similar, the BIO process may be skipped for at least one block or sub-block. If the two predictive blocks (e.g., reference blocks) are dissimilar, the BIO process may not be skipped for at least one block or sub-block. For example, two predictive blocks may be determined to be similar when the following condition is satisfied:

[0146]

number

[0147] The variable thres may indicate a predefined / predetermined threshold of motion vector difference. Otherwise, the motion vector that may be used for sub-block level MC of the current sub-block may be considered inaccurate. Notably, in such a scenario, BIO may still be applied to the sub-block. For example, the variable thres may be signaled and / or determined (e.g., determined by the decoder) based on desired coding performance.

[0148] FIG. 23 shows an example prediction generation process in which BIO may be disabled based on the motion vector difference criterion of (29). As can be seen from (29), a threshold value (e.g., thres) of motion vector difference may be used to determine whether at least one block or sub-block can skip the BIO process in the MC stage. In other words, the threshold value may be used to identify where skipping the BIO process may or may not have a non-negligible impact on the overall encoding / decoding complexity. The threshold value may be used to determine whether the BIO process should be skipped or not. In one or more techniques, the same threshold value of motion vector difference may be used for one or more or all pictures in the encoder and / or decoder. In one or more techniques, one or more different threshold values ​​may be used for different pictures. For example, in a random access configuration, a relatively small threshold value (e.g., perhaps due to smaller motion) may be used for pictures in high temporal layers. For example, for pictures in lower temporal layers, a relatively larger threshold may be used (eg, due to higher motion).

[0149] As shown in (28) and (29), to calculate the motion vector difference, the motion vector scaling isx1 ,MV y1 ), for example, when the motion vector scaling in (28) is applied and / or τ0>τ1 is assumed, (MV x1 ,MV y1 ) may amplify errors introduced by the motion estimation. Motion vector scaling may be applied (e.g., always applied) to motion vectors associated with reference pictures that have 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)), the motion vector (MV x1 ,MV y1 ) may be scaled. Otherwise, for example, if τ0>τ1, then

[0150]

number

[0151] To calculate the motion vector difference, the motion vector (MV x0 ,MV y0 ) may be scaled.

[0152] As described herein, when the temporal distances of two reference pictures to the current picture are different (e.g., τ0≠τ1), motion vector scaling may be applied. Since motion vector scaling may introduce additional errors (e.g., due to division and / or rounding operations), it may affect (e.g., reduce) the accuracy of the scaled motion vector. To avoid or reduce such errors, among other scenarios, perhaps, for example, motion vector difference (as shown in (30) and (31)) may be used (e.g., only used) to disable BIO in the MC stage when (e.g., only when) the temporal distances of at least two or up to two reference pictures (e.g., reference blocks) from the current sub-block may be the same or substantially similar (e.g., τ0=τ1).

[0153] As described herein, the 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 (e.g., based on whether two reference blocks are similar). When the motion vector difference between two reference blocks is relatively small (e.g., below a threshold), it may be reasonable to assume that the two predictive blocks may be similar (e.g., highly correlated) so that the BIO can be disabled without incurring (e.g., substantial) coding loss. The motion vector difference may be one of many ways to measure the similarity (e.g., correlation) between two predictive blocks (e.g., reference blocks). In one or more techniques, the correlation between two predictive blocks may be measured by calculating the average difference between the two predictive blocks, e.g.,

[0154]

number

[0155] It may be determined by:

[0156] Variable I (0) (x,y) and I (1) (x,y) is a sample value at coordinates (x,y) of the motion compensated block derived from forward and / or backward reference pictures (e.g., reference blocks). The sample value may be associated with its luma value of the respective reference block. The sample value may be interpolated from their respective reference blocks. The variables B and N are the set of sample coordinates and the number of samples defined within the current block or sub-block, respectively. The variable D is a distortion measure for which one or more different measures / metrics may be applied, such as sum of squared errors (SSE), sum of absolute differences (SAD), and / or sum of absolute transformed differences (SATD). Given (32), perhaps, for example, the difference measure may be below one or more predefined / predetermined thresholds, e.g., Diff≦D thres When D , BIO can be skipped in the MC stage. Otherwise, the two prediction signals of the current sub-block may be considered to be dissimilar (e.g., less correlated), for which BIO may be applied (e.g., still applied). As described herein, D thres may be signaled or determined by the decoder (e.g., based on desired coding performance). Figure 24 shows an example of a prediction generation process after a 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 sub-CU level (e.g., in a sub-block with a CU). For example, the encoder and / or decoder may determine that the BIO may be skipped for the current CU. As described herein, this determination 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 determines that the BIO should be skipped for the current CU, the encoder and / or decoder may determine whether the current CU is coded with enabled sub-block coding. If the current CU is coded with enabled sub-block coding, the encoder and / or decoder may determine that the BIO may be skipped for sub-blocks within the CU.

[0158] As shown in FIG. 24, the BIO process may be conditionally skipped for a current CU or a sub-block within the current CU whose distortion between its two prediction signals may be below a threshold. The calculation of the distortion measurement and the BIO process may be performed on a sub-block basis and may be invoked frequently for sub-blocks within the current CU. The CU-level distortion measurement may be used to determine whether the BIO process should be skipped for the current CU. A multi-stage early termination may be performed where the BIO process may be skipped based on the distortion values ​​calculated from different block levels.

[0159] The distortion may be calculated considering some (e.g., all) samples in the current CU. For example, if the distortion at the CU level is small enough (e.g., below a predefined CU-level threshold), the BIO process may be skipped for the CU; otherwise, at the sub-block level, the distortion for each sub-block within the current CU may be calculated and used to determine whether to skip the BIO process. Figure 26 shows an example motion compensated prediction process in which multi-stage early termination is applied to BIO. The variables in Figure 26

[0160]

number

[0161] and

[0162]

number

[0163] represents a prediction signal generated for the current CU from the reference picture lists L0 and L1,

[0164]

number

[0165] and

[0166]

number

[0167] represents the corresponding prediction signal generated for the i-th sub-block within a CU.

[0168] As described herein, for example, a CU-level distortion may be calculated to determine whether BIO operations may be disabled for a current CU. Motion information of sub-blocks within a CU may be highly correlated or not highly correlated. The distortion of sub-blocks within a CU may vary. Multi-stage early termination may be performed. For example, a CU may be divided into multiple groups of sub-blocks, where a group may include consecutive sub-blocks with similar (e.g., the same) motion information (e.g., the same reference picture index and the same motion vector). For each sub-block group, a distortion measure may be calculated. For example, if the distortion of one sub-block group is small enough (e.g., below a predefined threshold), the BIO process may be skipped for samples within the sub-block group; otherwise, the distortion for each sub-block within the sub-block group may be calculated and used to determine whether the BIO process should be skipped for the sub-block.

[0169] In (32), I (0) (x,y) and I (1) (x,y) may refer to the value of a motion-compensated sample (e.g., luma value) at coordinates (x,y) obtained from reference picture lists L0 and L1. The value of the motion-compensated sample may be defined in the precision of the input signal bit depth (e.g., in 8 or 10 bits if the input signal is an 8-bit or 10-bit video). A prediction signal of one bi-predictive block may be generated by averaging two prediction signals from L0 and L1 in the precision of the input bit depth.

[0170] For example, if MV points to a fractional sample position, I (0) (x,y) and I (1)(x,y) are obtained using an interpolation at one intermediate precision (which may be higher than the input bit depth), and then the intermediate prediction signal is rounded to the input bit depth prior to the averaging operation. For example, for one block, if fractional MV is used, 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 MVs used to obtain (x,y) correspond to fractional sample positions, the interpolation filter process may preserve intermediate values ​​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 the averaging is applied. Figure 27 shows an example bi-prediction process when averaging two intermediate prediction signals at high precision,

[0171]

number

[0172] and

[0173]

number

[0174] refers to two prediction signals obtained from lists L0 and L1 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 bi-predictive signal generated at a high bit depth, the corresponding distortion between the two prediction blocks in equation (32) is

[0176]

number

[0177] may be calculated in intermediate precision, as specified as

[0178]

number

[0179] and

[0180]

number

[0181] are the high-precision difference sample values ​​at coordinates (x, y) of the predicted blocks generated from L0 and L1, respectively, and Diff h represents the corresponding distortion measure calculated at the intermediate bit depth. In addition, possibly due to the high bit depth distortion in (33), the CU-level threshold and the sub-block-level threshold used by BIO early termination (e.g., as described herein with respect to Figures 24 and 26) may be adjusted as they were defined at the same bit depth of the predicted signal. Using the L1 norm distortion (e.g., SAD) as an example, the following equation may explain how the distortion threshold should be adjusted from the input bit depth to the intermediate bit depth.

[0182]

number

[0183] variable

[0184]

number

[0185] and

[0186]

number

[0187] is the CU level and sub-block distortion threshold at the input bit depth precision,

[0188]

number

[0189] and

[0190]

number

[0191] is the corresponding distortion threshold in medium bit depth precision.

[0192] As described herein, the BIO may provide sample-wise motion refinement, 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 sub-blocks within a region (e.g., a flat area) that may not contain much high frequency detail, the gradients that may be derived using the gradient filters in Table 1 may tend to be small. As shown in equation (4), the local gradients (e.g., ∂I (k) (x,y) / ∂x and ∂I (k) When (x,y) / ∂y) is close to zero, the final prediction signal obtained from the BIO may be approximately equal to the prediction signal generated by conventional bi-prediction, e.g.

[0193]

number

[0194] It is.

[0195] In one or more techniques, the BIO may be applied (e.g., only applied) to one or more predicted samples of a subblock that may contain sufficient and / or rich high-frequency information. The determination of whether the predicted signal of at least one subblock contains high-frequency information may be made, for example, based on the average magnitude of the gradient for the samples in the 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 the BIO may not be applied to the subblock. Otherwise, the at least one subblock may be considered to contain sufficient high-frequency information / detail for which the BIO may still be applicable. The value of the one or more thresholds for the one or more or each reference picture may be pre-determined 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., only calculated) to determine whether the current subblock may belong to one flat area. In some techniques, this gradient information may not be as accurate 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 to apply BIO to at least one sub-block. For example, a two-tap filter [-1,1] may be applied to derive the horizontal and / or vertical gradient. Figure 25 shows an example flowchart of the prediction generation process after applying gradient-based BIO skipping.

[0196] One or more techniques individually described herein that may skip BIO in the MC stage may be applied jointly (e.g., two or more techniques may be combined, etc.). One or more techniques, thresholds, formulas, and / or factors / conditions, etc. described herein may be freely combined. One or more different combinations of techniques, thresholds, formulas, and / or factors / conditions, etc. described herein may provide different trade-offs in terms of coding performance and / or encoding / decoding complexity reduction. For example, one or more of the techniques, thresholds, formulas, and / or factors / conditions, etc. described herein may be implemented jointly or separately such that for at least one block / sub-block, the BIO process may be disabled (e.g., completely disabled).

[0197] 28A illustrates an example 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, broadcast, etc., to multiple wireless users. The communication system 100 may enable multiple wireless users to access such content through sharing of system resources, including wireless 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), Orthogonal FDMA (OFDMA), Single Carrier FDMA (SC-FDMA), Zero-Tailed Unique Word DFT Spread OFDM (ZT UW DTS-s OFDM), Unique Word OFDM (UW-OFDM), Resource Block Filtered OFDM, and Filter Bank Multi-Carrier (FBMC).

[0198] 28A, the communications system 100 may include wireless transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, a RAN 104 / 113, a CN 106 / 115, a public switched telephone network (PSTN) 108, the Internet 110, and other networks 112, although it will be understood that the disclosed embodiments contemplate 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 wireless environment. By way of example, the WTRUs 102a, 102b, 102c, 102d, any of which may be referred to as a “station” and / or “STA,” may be configured to transmit and / or receive wireless signals and may include user equipment (UE), 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, etc. Any of the WTRUs 102a, 102b, 102c, 102d may be referred to interchangeably as UEs.

[0199] The communication system 100 may also include a base station 114a and / or a base station 114b. Each of the base stations 114a, 114b may be any type of device configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communication networks, such as the CN 106 / 115, the Internet 110, and / or other networks 112. By way of example, the base stations 114a, 114b may be a base transceiver station (BTS), a Node B, an eNodeB, a Home Node B, a Home eNodeB, a gNB, an NR Node B, a site controller, an access point (AP), a wireless router, and the like. Although the base stations 114a, 114b are each depicted as a single element, it will be understood that the base stations 114a, 114b may include any number of interconnected base stations and / or network elements.

[0200] The base station 114a may be part of the RAN 104 / 113, which may also include other base stations and / or network elements (not shown), such as a base station controller (BSC), a radio network controller (RNC), relay nodes, etc. The base station 114a and / or the base station 114b may be configured to transmit and / or receive wireless signals on one or more carrier frequencies, which may be referred to as cells (not shown). These frequencies may be in a licensed spectrum, an unlicensed spectrum, or a combination of licensed and unlicensed spectrum. A cell may provide coverage for wireless services in a particular geographic area, which may be relatively constant or may change over time. A cell may be further divided into cell sectors. For example, the cell associated with the base station 114a may be divided into three sectors. Thus, in one embodiment, the base station 114a may include three transceivers, one for each sector of the cell. In an embodiment, 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 desired spatial directions.

[0201] The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless 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, the base station 114a and the WTRUs 102a, 102b, 102c in the RAN 104 / 113 may implement a radio technology, such as Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), which may establish the air interface 115 / 116 / 117 using Wideband CDMA (WCDMA). WCDMA may include communication protocols, such as High Speed ​​Packet Access (HSPA) and / or Evolved HSPA (HSPA+). HSPA may include High Speed ​​Downlink (DL) Packet Access (HSDPA) and / or High Speed ​​Uplink (UL) Packet Access (HSUPA).

[0203] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as Evolved UMTS Terrestrial Radio Access (E-UTRA), which may establish the air interface 116 using Long Term Evolution (LTE), and / or LTE Advanced (LTE-A), and / or LTE Advanced Pro (LTE-A Pro).

[0204] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as New Radio (NR) radio access, which may establish the air interface 116 using NR.

[0205] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement multiple radio access technologies. For example, the base station 114a and the WTRUs 102a, 102b, 102c may jointly implement LTE radio access and NR radio access, e.g., using a dual connectivity (DC) principle. Thus, the air interface utilized by the WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and / or transmissions transmitted to / from multiple types of base stations (e.g., eNBs and gNBs).

[0206] In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement a wireless technology 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, Interim Standard 2000 (IS-2000), Interim Standard 95 (IS-95), Interim Standard 856 (IS-856), Global System for Mobile Communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE), and GSM EDGE (GERAN).

[0207] 28A may be, for example, a wireless router, a Home NodeB, a Home eNodeB, or an access point, and may utilize any suitable RAT to facilitate wireless connectivity in a localized area, such as an office, a home, a vehicle, a campus, an industrial facility, an air corridor (e.g., used by drones), and a roadway. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a wireless technology such as IEEE 802.11 to establish a wireless local area network (WLAN). In an embodiment, the base station 114b and the WTRUs 102c, 102d may implement a wireless technology such as IEEE 802.15 to establish a wireless personal area network (WPAN). In yet another embodiment, the base station 114b and the WTRUs 102c, 102d may establish a picocell or a femtocell using a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR, etc.). As shown in FIG. 28A, the base station 114b may have a direct connection to the Internet 110. Thus, the base station 114b may not need to access the Internet 110 via the CN 106 / 115.

[0208] The RAN 104 / 113 may communicate with the CN 106 / 115, which may be any type of network configured to provide voice, data, application, and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have various Quality of Service (QoS) requirements, such as different throughput, delay, error resilience, reliability, data throughput, and mobility requirements. The CN 106 / 115 may provide call control, billing services, mobile location-based services, prepaid calling, Internet connectivity, video distribution, and / or perform high-level security functions, such as user authentication. Although not shown in FIG. 28A, it will be appreciated that the RAN 104 / 113 and / or the CN 106 / 115 may communicate directly or indirectly with other RANs that utilize the same RAT as the RAN 104 / 113 or a different RAT. For example, in addition to being connected to the RAN 104 / 113, which may utilize NR radio technology, the CN 106 / 115 may also communicate with another RAN (not shown) that utilizes GSM, UMTS, CDMA2000, WiMAX, E-UTRA, or WiFi radio technology.

[0209] The CN 106 / 115 may also serve as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and / or other networks 112. The PSTN 108 may include a circuit-switched telephone network that provides basic telephone services. The Internet 110 may include a global system of interconnected computer networks and devices that use common communication protocols, such as Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and / or Internet Protocol (IP) in the TCP / IP Internet protocol suite. The networks 112 may include wired and / or wireless communication networks owned and / or operated by other service providers. For example, the networks 112 may include another CN connected to one or more RANs that may utilize the same RAT as the RAN 104 / 113 or a different RAT.

[0210] Some or all of the WTRUs 102a, 102b, 102c, 102d in the communications system 100 may include multi-mode capabilities (e.g., the WTRUs 102a, 102b, 102c, 102d may include multiple transceivers for communicating with different wireless networks over different wireless links). For example, the WTRU 102c shown in FIG. 28A may be configured to communicate with a base station 114a that may utilize a cellular-based wireless technology and with a base station 114b that may utilize an IEEE 802 wireless technology.

[0211] Figure 28B is a system diagram illustrating an example 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 source 134, a Global Positioning System (GPS) chipset 136, and / or other peripherals 138. It will be understood that the WTRU 102 may include any subcombination of the above elements while remaining consistent with an embodiment.

[0212] The processor 118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors in conjunction 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), a state machine, etc. 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 the transceiver 120, which may be coupled to the transmit / receive element 122. Although FIG. 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 an embodiment, the transmit / receive element 122 may be an emitter / 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 and light signals. It will be appreciated that the transmit / receive element 122 may be configured to transmit and / or receive any combination of wireless signals.

[0214] 28B, the transmit / receive element 122 is depicted as a single element, 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 wireless signals over the air interface 116.

[0215] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive element 122 and demodulate signals received by the transmit / receive element 122. As mentioned above, the WTRU 102 may have multi-mode capabilities. Thus, the transceiver 120 may include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs, such as, for example, NR and IEEE 802.11.

[0216] The processor 118 of the WTRU 102 may be coupled to and may receive user input data from the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128 (e.g., a liquid crystal display (LCD) display unit or an organic light emitting diode (OLED) display unit). 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 and store data in any type of suitable memory, such as non-removable memory 130 and / or removable memory 132. The 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. The removable memory 132 may include a subscriber identity module (SIM) card, a memory stick, a secure digital (SD) memory card, and the like. In other embodiments, the processor 118 may obtain information from, and store data in, memory that is not physically located on the WTRU 102, such as located on a server or a home computer (not shown).

[0217] The processor 118 may receive power from the power source 134 and may be configured to distribute and / or control power to other components within the WTRU 102. The power source 134 may be any suitable device for powering the WTRU 102. For example, the power source 134 may include one or more dry batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel-metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, etc.

[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 information from the GPS chipset 136, the WTRU 102 may receive location information over the air interface 116 from a base station (e.g., base stations 114a, 114b) and / or may determine its location based on the timing of signals received from two or more nearby base stations. It will be appreciated that the WTRU 102 may obtain location information using any suitable location determination method while remaining consistent with an embodiment.

[0219] The processor 118 may further be coupled to other peripherals 138, which may include one or more software and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the 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, an activity tracker, and the like. The peripherals 138 may include one or more sensors, which may be one or more of a gyroscope, an accelerometer, a Hall effect sensor, a magnetometer, an orientation sensor, a proximity sensor, a temperature sensor, a time sensor, a geolocation sensor, an altimeter, a light sensor, a touch sensor, a magnetometer, a barometer, a gesture sensor, a biometric sensor, and / or a humidity sensor.

[0220] The WTRU 102 may include a full-duplex radio where transmission and reception of some or all of the signals associated with a particular subframe (e.g., for both the UL (e.g., for transmission) and the downlink (e.g., for reception)) may be 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., a choke) or via signal processing via a processor (e.g., a separate processor (not shown) or processor 118). In an embodiment, the WTRU 102 may include a half-duplex radio for transmission and reception of some or all of the signals (e.g., associated with a particular subframe for either the UL (e.g., for transmission) or the downlink (e.g., for reception).

[0221] 28C is a system diagram illustrating the RAN 104 and the CN 106 according to an embodiment. As mentioned above, the RAN 104 may communicate with the WTRUs 102a, 102b, 102c over the air interface 116 using E-UTRA radio technology. The RAN 104 may also communicate with the CN 106.

[0222] The RAN 104 may include eNodeBs 160a, 160b, 160c, although it will be understood that the RAN 104 may include any number of eNodeBs while remaining consistent with an embodiment. The eNodeBs 160a, 160b, 160c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the eNodeBs 160a, 160b, 160c may implement MIMO technology. Thus, the eNodeB 160a, for example, may use multiple antennas to transmit wireless signals to and / or receive wireless signals from the WTRU 102a.

[0223] Each of the eNodeBs 160a, 160b, 160c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, and scheduling of users in the UL and / or DL, etc. As shown in FIG. 28C, the eNodeBs 160a, 160b, 160c may communicate with each other over an X2 interface.

[0224] The CN 106 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 the CN 106, it will be understood that any of these elements may be owned and / or operated by an entity different from the CN operator.

[0225] The MME 162 may be connected to each of the eNodeBs 160a, 160b, 160c in the RAN 104 via an S1 interface and may act as a control node. For example, the MME 162 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, bearer activation / deactivation, selecting a particular serving gateway during initial attach of the WTRUs 102a, 102b, 102c, etc. The MME 162 may provide a control plane function for switching between the RAN 104 and other RANs (not shown) that employ other radio technologies, such as GSM and / or WCDMA.

[0226] The SGW 164 may be connected to each of the eNodeBs 160a, 160b, 160c in the RAN 104 via an S1 interface. The SGW 164 may generally route and forward user data packets to / from the WTRUs 102a, 102b, 102c. The SGW 164 may perform other functions, such as anchoring the user plane during inter-eNodeB handover, triggering paging when DL data is available to the WTRUs 102a, 102b, 102c, and managing and storing the context of the WTRUs 102a, 102b, 102c.

[0227] The SGW 164 may be connected to a PGW 166, which may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices.

[0228] The CN 106 may facilitate communications with other networks. For example, the CN 106 may provide the WTRUs 102a, 102b, 102c with access to circuit-switched networks, such as the PSTN 108, to facilitate communications between the WTRUs 102a, 102b, 102c and traditional landline communications devices. For example, the CN 106 may include or communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that serves as an interface between the CN 106 and the PSTN 108. In addition, the CN 106 may provide the WTRUs 102a, 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.

[0229] Although in Figures 28A-28D the WTRU is described as a wireless terminal, it is contemplated that in certain representative embodiments such a terminal may use a wired communications interface (e.g., temporarily or permanently) with the communications network.

[0230] In an exemplary embodiment, the other network 112 may be a WLAN.

[0231] A WLAN in infrastructure basic service set (BSS) mode may have an access point (AP) for the BSS and one or more stations (STAs) associated with the AP. The AP may have access or interface to 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 a STA may arrive through the AP and be delivered to the STA. Traffic originating from a STA to a destination outside the BSS may be sent to the AP for delivery to the respective destination. Traffic between STAs within the BSS may be sent through the AP, e.g., a source STA may send traffic to the AP, which 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 representative embodiment, the DLS may use 802.11e DLS or 802.11z Tunneled DLS (TDLS). A WLAN using an Independent BSS (IBSS) mode may not have an AP, and STAs (e.g., all of the STAs) within or using an IBSS may communicate directly with each other. IBSS mode communication may sometimes be referred to herein as an "ad-hoc" mode of communication.

[0232] When using 802.11ac infrastructure mode of operation or a similar mode of operation, an AP may transmit a beacon on a fixed channel, such as a primary channel. The primary channel may be a fixed width (e.g., 20 MHz wide bandwidth) or a width dynamically set via signaling. The primary channel may be an operating channel of the BSS and may be used by STAs to establish a connection with the AP. In one representative embodiment, for example, in an 802.11 system, carrier sense multiple access / collision avoidance (CSMA / CA) may be implemented. With CSMA / CA, STAs (e.g., every STA), including the AP, may sense the primary channel. If the primary channel is sensed / detected and / or determined to be busy by a particular STA, the particular STA may back off. Within a given BSS, one STA (e.g., only one station) may transmit at any given time.

[0233] A high-throughput (HT) STA may use a 40 MHz wide channel for communication, for example, via combining a primary 20 MHz channel with adjacent or non-adjacent 20 MHz channels to form a 40 MHz wide channel.

[0234] A Very High Throughput (VHT) STA may support 20 MHz, 40 MHz, 80 MHz, and / or 160 MHz wide channels. A 40 MHz and / or 80 MHz channel may be formed by combining consecutive 20 MHz channels. A 160 MHz channel may be formed by combining eight consecutive 20 MHz channels or two non-contiguous 80 MHz channels, which may be referred to as an 80+80 configuration. For the 80+80 configuration, the data may be passed through a segment parser that may split the data into two streams after channel encoding. Inverse Fast Fourier Transform (IFFT) processing and time domain processing may be performed separately for each stream. The streams may be mapped onto two 80 MHz channels, and the data may be transmitted by the transmitting STA. At the receiver of the receiving STA, the operations described above for the 80+80 configuration may be reversed, and the combined data may be transmitted to the Medium Access Control (MAC).

[0235] Sub-1 GHz mode operation is supported by 802.11af and 802.11ah. Channel operating bandwidths and carriers are reduced in 802.11af and 802.11ah compared to those used in 802.11n and 802.11ac. 802.11af supports 5 MHz, 10 MHz, and 20 MHz bandwidths in TV White Space (TVWS) spectrum, and 802.11ah supports 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz bandwidths using non-TVWS spectrum. According to a representative embodiment, 802.11ah may support meter-type control / machine-type communication, such as MTC devices in macro coverage areas. MTC devices may have limited functionality, including, for example, support of (e.g., only) certain bandwidths and / or limited bandwidths. MTC devices may include a battery with a battery life above a threshold (e.g., to maintain a very long battery life).

[0236] A WLAN system, such as 802.11n, 802.11ac, 802.11af, and 802.11ah, which may support multiple channels and channel bandwidths, includes a channel that may be designated as a primary channel. The primary channel may have a bandwidth equal to the largest common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel may be set and / or limited by the STA that supports the smallest bandwidth operating mode among all STAs operating in the BSS. In the 802.11ah example, for STAs (e.g., MTC type devices) that support (e.g., only support) the 1 MHz mode, the primary channel may be 1 MHz wide, even if the AP and other STAs in the BSS support 2 MHz, 4 MHz, 8 MHz, 16 MHz, and / or other channel bandwidth operating modes. Carrier sensing and / or network allocation vector (NAV) setting may depend on the status of the primary channel. For example, if the primary channel is busy because a STA (that only supports a 1 MHz mode of operation) is transmitting to the AP, the entire available frequency band may be considered busy, even though most of the frequency band may remain idle and available for use.

[0237] In the United States, the available frequency bands that may be used by 802.11ah are 902MHz to 928MHz. In South Korea, the available frequency bands are 917.5MHz to 923.5MHz. In Japan, the available frequency bands are 916.5MHz to 927.5MHz. The total available bandwidth for 802.11ah is 6MHz to 26MHz, depending on country regulations.

[0238] 28D is a system diagram illustrating the RAN 113 and the CN 115 according to an embodiment. As mentioned above, the RAN 113 may communicate with the WTRUs 102a, 102b, 102c over the air interface 116 using NR radio technology. The RAN 113 may also communicate with the CN 115.

[0239] The RAN 113 may include gNBs 180a, 180b, 180c, although it will be understood that the RAN 113 may include any number of gNBs while remaining consistent with an embodiment. The gNBs 180a, 180b, 180c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the gNBs 180a, 180b, 180c may implement MIMO technology. For example, the gNBs 180a, 108b may utilize beamforming to transmit signals to and / or receive signals from the gNBs 180a, 180b, 180c. Thus, the gNB 180a may transmit wireless signals to and / or receive wireless signals from the WTRU 102a, for example, using multiple antennas. In an embodiment, the gNBs 180a, 180b, 180c may implement carrier aggregation techniques. For example, the gNB 180a may transmit multiple component carriers to the WTRU 102a (not shown). A subset of these component carriers may be on an unlicensed spectrum, while the remaining component carriers may be on a licensed spectrum. In an embodiment, the gNBs 180a, 180b, 180c may implement coordinated multipoint (CoMP) techniques. For example, the WTRU 102a may receive coordinated transmissions from the gNBs 180a and 180b (and / or 180c).

[0240] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using transmissions associated with a scalable numerology. For example, the OFDM symbol spacing and / or OFDM subcarrier spacing may vary for different transmissions, different cells, and / or different portions of the wireless transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using subframes or transmission time intervals (TTIs) of different or scalable lengths (e.g., including different numbers of OFDM symbols and / or lasting for different lengths of absolute time).

[0241] The gNBs 180a, 180b, 180c may be configured to communicate with the WTRUs 102a, 102b, 102c in a standalone configuration and / or a non-standalone configuration. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c without accessing another RAN (e.g., eNodeBs 160a, 160b, 160c). In a standalone configuration, the WTRUs 102a, 102b, 102c may utilize one or more of the gNBs 180a, 180b, 180c as mobility anchor points. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using signals in unlicensed bands. In a non-standalone configuration, the WTRUs 102a, 102b, 102c may communicate / connect to a gNB 180a, 180b, 180c while also communicating / connecting to another RAN, such as an eNodeB 160a, 160b, 160c. For example, the WTRUs 102a, 102b, 102c may implement the DC principle to communicate with one or more gNBs 180a, 180b, 180c and one or more eNodeBs 160a, 160b, 160c substantially simultaneously. In a non-standalone configuration, the eNodeBs 160a, 160b, 160c may act as mobility anchors for the WTRUs 102a, 102b, 102c, and the gNBs 180a, 180b, 180c may provide additional coverage and / or throughput for serving the WTRUs 102a, 102b, 102c.

[0242] Each of the gNBs 180a, 180b, 180c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in the 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 (UPFs) 184a, 184b, and routing of control plane information to Access and Mobility Management Functions (AMFs) 182a, 182b, etc. As shown in FIG. 28D, the gNBs 180a, 180b, 180c may communicate with each other over the Xn interface.

[0243] The CN 115 shown in Figure 28D may include at least one AMF 182a, 182b, at least one UPF 184a, 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 part of the CN 115, it will be understood that any of these elements may be owned and / or operated by an entity different from the CN operator.

[0244] The AMF 182a, 182b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via an N2 interface and may act as a control node. For example, the AMF 182a, 182b may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, supporting network slicing (e.g., handling different PDU sessions with different requirements), selecting a particular SMF 183a, 183b, managing registration areas, terminating NAS signaling, and mobility management, etc. Network slicing may be used by the AMF 182a, 182b to customize CN support for the WTRUs 102a, 102b, 102c based on the type of service utilized by the WTRUs 102a, 102b, 102c. Different network slices may be established for different use cases, such as, for example, services relying on ultra-reliable low latency (URLLC) access, services relying on eMBB access, and / or services for machine type communication (MTC) access, etc. The AMF 162 may provide a control plane function for switching between the RAN 113 and other RANs (not shown) that employ other radio technologies, such as LTE, LTE-A, LTE-A Pro, and / or non-3GPP access technologies such as WiFi.

[0245] The SMFs 183a, 183b may be connected to the AMFs 182a, 182b in the CN 115 via an N11 interface. The SMFs 183a, 183b may also be connected to the UPFs 184a, 184b in the CN 115 via an N4 interface. The SMFs 183a, 183b may select and control the UPFs 184a, 184b and configure the routing of traffic through the UPFs 184a, 184b. The SMFs 183a, 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 notification. The PDU session types may be IP-based, non-IP-based, Ethernet-based, etc.

[0246] The UPFs 184a, 184b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via an N3 interface, which may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks, such as the Internet 110, to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices. The UPFs 184a, 184b may perform other functions, such as routing and forwarding packets, enforcing user plane policies, supporting multi-homing PDU sessions, handling user plane QoS, buffering downlink packets, and providing mobility anchoring.

[0247] The CN 115 may facilitate communication with other networks. For example, the CN 115 may include or communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that serves as an interface between the CN 115 and the PSTN 108. In addition, the CN 115 may provide the WTRUs 102a, 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, the WTRUs 102a, 102b, 102c may be connected to local data networks (DNs) 185a, 185b through the UPFs 184a, 184b via an N3 interface to the UPFs 184a, 184b and an N6 interface between the UPFs 184a, 184b and the DNs 185a, 185b.

[0248] In view of Figures 28A-D and the corresponding description thereof, one or more or all of the functions described herein with respect to one or more of the WTRUs 102a-d, base stations 114a-b, eNodeBs 160a-c, MME 162, SGW 164, PGW 166, gNBs 180a-c, AMFs 182a-b, UPFs 184a-b, SMFs 183a-b, DNs 185a-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 or all of the functions described herein. For example, the emulation devices may be used to test other devices and / or to simulate network and / or WTRU functions.

[0249] The emulation device may be designed to perform one or more tests of other devices in a laboratory environment and / or in an operator network environment. For example, the one or more emulation devices may perform one or more or all functions while fully or partially implemented and / or deployed as part of a wired and / or wireless communication network to test other devices in the communication network. The one or more emulation devices may perform one or more or all functions while temporarily implemented / deployed as part of a wired and / or wireless communication network. The emulation device may be directly coupled to another device for testing purposes and / or may perform the tests using over-the-air wireless communication.

[0250] The 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, the emulation devices may be utilized in a test lab and / or in a test scenario in a non-deployed (e.g., test) wired and / or wireless communication network to perform testing of one or more components. The one or more emulation devices may be test equipment. Direct RF coupling and / or wireless communication via RF circuitry (which may include, for example, one or more antennas) may be used by the emulation device to transmit and / or receive data.

[0251] Although features and elements have been described above in certain combinations, those skilled in the art will understand that each feature or element can be used alone or in any combination with the other features and elements. In addition, the methods described herein may be implemented in a computer program, software, or firmware contained in a computer-readable medium executed by a computer and / or processor. Examples of computer-readable media include electronic signals (transmitted over a wired or wireless connection) 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 versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use 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 Keypad 128 Touchpad 130 Non-removable memory 132 Removable Memory 134 Power supply 136 Chipset 138 Peripheral Devices 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 Facility (SMF) 183b Session Management Facility (SMF) 184a User Plane Function (UPF) 184b User Plane Function (UPF) 185a Data Network (DN) 185b Data Network (DN)

Claims

1. Obtaining a first plurality of sample values ​​in a first reference block of a current sub-block and a second plurality of sample values ​​in a second reference block of the current sub-block; obtaining a sum of absolute differences (SAD) based on the first plurality of sample values ​​and the second plurality of sample values; determining to disable bidirectional optical flow (BIO) for the current sub-block based on the SAD being less than a value; Decoding the current sub-block based on the determination of disabling BIO for the current sub-block. Processor configured to 1. A device for video decoding, comprising:

2. 2. The device of claim 1 , wherein the processor is configured to determine an expected sample value difference based on the first plurality of sample values ​​and the second plurality of sample values, and the SAD is obtained based on the expected sample value difference.

3. The processor, A motion vector (MV) associated with the current sub-block is obtained using a frame rate up-conversion mode (FRUC), and a decision to disable BIO for the current sub-block is made based on the MV being obtained using FRUC, and the current sub-block is decoded by disabling BIO for the current sub-block.

2. The device of claim 1 , configured to:

4. obtaining a first plurality of sample values ​​in a first reference block of a current sub-block and a second plurality of sample values ​​in a second reference block of the current sub-block; obtaining a sum of absolute differences (SAD) based on the first plurality of sample values ​​and the second plurality of sample values; determining to disable bidirectional optical flow (BIO) for the current sub-block based on the SAD being less than a value; decoding the current sub-block based on the determination of disabling BIO for the current sub-block; 16. A method for video decoding comprising:

5. 5. The method of claim 4, further comprising determining a predicted sample value difference based on the first plurality of sample values ​​and the second plurality of sample values, wherein the first reference block is associated with a first reference picture list and the second reference block is associated with a second reference picture list, the first reference picture list and the second reference picture list are different, and the SAD is obtained based on the predicted sample value difference.

6. 5. The method of claim 4, further comprising: obtaining a motion vector (MV) associated with the current sub-block using a frame rate up-conversion mode (FRUC), wherein the decision to disable BIO for the current sub-block is made based on the MV being obtained using FRUC, and the current sub-block is decoded by disabling BIO for the current sub-block.

7. Obtaining a first plurality of sample values ​​in a first reference block of a current sub-block and a second plurality of sample values ​​in a second reference block of the current sub-block; obtaining a sum of absolute differences (SAD) based on the first plurality of sample values ​​and the second plurality of sample values; determining to disable bidirectional optical flow (BIO) for the current sub-block based on the SAD being less than a value; Encoding the current sub-block based on the determination of disabling BIO for the current sub-block. Processor configured to 1. A device for video encoding comprising:

8. obtaining a first plurality of sample values ​​in a first reference block of a current sub-block and a second plurality of sample values ​​in a second reference block of the current sub-block; obtaining a sum of absolute differences (SAD) based on the first plurality of sample values ​​and the second plurality of sample values; determining to disable bidirectional optical flow (BIO) for the current sub-block based on the SAD being less than a value; encoding the current sub-block based on the determination of disabling BIO for the current sub-block; 16. A method for video encoding comprising:

9. 9. The method of claim 8, further comprising determining a predicted sample value difference based on the first plurality of sample values ​​and the second plurality of sample values, wherein the first reference block is associated with a first reference picture list and the second reference block is associated with a second reference picture list, the first reference picture list and the second reference picture list are different, and the SAD is obtained based on the predicted sample value difference.

10. When executed by one or more processors, the one or more processors are Obtaining a first plurality of sample values ​​in a first reference block of a current sub-block and a second plurality of sample values ​​in a second reference block of the current sub-block; obtaining a sum of absolute differences (SAD) based on the first plurality of sample values ​​and the second plurality of sample values; determining to disable bidirectional optical flow (BIO) for the current sub-block based on the SAD being less than a value; Decoding the current sub-block based on the determination of disabling BIO for the current sub-block. A computer-readable medium containing instructions to cause

11. 11. The computer-readable medium of claim 10, wherein the one or more processors are configured to determine a predicted sample value difference based on the first plurality of sample values ​​and the second plurality of sample values, and the SAD is obtained based on the predicted sample value difference.

12. The device of claim 7, wherein the processor is configured to determine a predicted sample value difference based on the first plurality of sample values ​​and the second plurality of sample values, and the SAD is obtained based on the predicted sample value difference.

Citation Information

Patent Citations

  • Bi-directional optical flow for video coding

    US20170094305A1