Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
HIGHER-ORDER MOTION MODELS AND GRADUATED MOTION PARAMETER ESTIMATION FOR VIDEO CODING
Document Type and Number:
WIPO Patent Application WO/2018/209067
Kind Code:
A1
Abstract:
Systems, methods, and instrumentalities are disclosed for higher-order motion models and graduated motion parameter estimation for video coding. Motion compensated prediction may be performed on a block level using one or more orthogonal basis functions (e.g., Legendre polynomial functions). A motion parameter count indication associated with a current block may be received. An order of an orthogonal basis function for motion modeling associated with the current block may be determined. The order of the orthogonal basis function may be determined based on the motion parameter count indication. Motion parameter values for the orthogonal basis function associated with the current block may be determined, and the current block may be predicted based on the orthogonal basis function having the determined motion parameter values.

Inventors:
YOUNG SEAN (AU)
XIU XIAOYU (US)
HE YUWEN (US)
VANAM RAHUL (US)
Application Number:
PCT/US2018/032043
Publication Date:
November 15, 2018
Filing Date:
May 10, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
VID SCALE INC (US)
International Classes:
H04N19/105; H04N19/136; H04N19/176; H04N19/182; H04N19/463; H04N19/51; H04N19/527; H04N19/537
Foreign References:
EP0894403A11999-02-03
EP1206881A12002-05-22
EP0927494A11999-07-07
EP2683165A12014-01-08
EP1228645A12002-08-07
Other References:
KARCZEWICZ M ET AL: "Video coding using motion compensation with polynomial motion vector fields", SIGNAL PROCESSING. IMAGE COMMUNICATION, ELSEVIER SCIENCE PUBLISHERS, AMSTERDAM, NL, vol. 10, no. 1-3, 1 July 1997 (1997-07-01), pages 63 - 91, XP004082702, ISSN: 0923-5965, DOI: 10.1016/S0923-5965(97)00019-2
YUWEN HE ET AL: "Efficient coding with adaptive motion models", 23. PICTURE CODING SYMPOSIUM;23-4-2003 - 25-4-2003; SAINT MALO,, 23 April 2003 (2003-04-23), XP030080026
KARCZEWICZ M ET AL: "Video coding using motion compensation with polynomial motion vector fields", WIRELESS IMAGE/VIDEO COMMUNICATIONS, 1996., FIRST INTERNATIONAL WORKSH OP ON LOUGHBOROUGH, UK 4-5 SEPT. 1996, NEW YORK, NY, USA,IEEE, US, 4 September 1996 (1996-09-04), pages 26 - 31, XP010246472, ISBN: 978-0-7803-3610-0, DOI: 10.1109/WIVC.1996.624638
CICCONI P ET AL: "EFFICIENT REGION-BASED MOTION ESTIMATION AND SYMMETRY ORIENTED SEGMENTATION FOR IMAGE SEQUENCE CODING", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, US, vol. 4, no. 3, 1 June 1994 (1994-06-01), pages 357 - 364, XP000460880, ISSN: 1051-8215, DOI: 10.1109/76.305879
HIROHISA JOZAWA ET AL: "Two-Stage Motion Compensation Using Adaptive Global MC and Local Affine MC", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, US, vol. 7, no. 1, 1 February 1997 (1997-02-01), pages 75 - 85, XP011014350, ISSN: 1051-8215, DOI: 10.1109/76.554419
Attorney, Agent or Firm:
ROCCIA, Vincent J. et al. (US)
Download PDF:
Claims:
CLAIMS

What is Claimed is:

1. A method of block-level motion compensated prediction, the method comprising:

receiving a motion parameter count indication associated with a current block;

determining, based on the motion parameter count indication, an order of an orthogonal basis function for motion modeling associated with the current block;

receiving, based on the determined order of the orthogonal basis function for the current block, a motion parameter indication associated with the orthogonal basis function for the current block;

determining a plurality of motion parameter values for the current block based on the motion parameter indication; and

predicting the current block based on the orthogonal basis function having the determined motion parameter values.

2. The method of claim 1 , wherein the motion parameter indication comprises a plurality of controlling motion vector differences for a plurality of motion parameters in the orthogonal basis function for motion modeling associated with the current block.

3. The method of claim 2, further comprising:

generating a plurality of controlling motion vector predictors for the current block based on a plurality of controlling motion vectors of a neighboring block of the current block, wherein the motion parameter values are determined based on the plurality of controlling motion vector predictors and the corresponding controlling motion vector differences.

4. The method of claim 3, wherein each controlling motion vector difference indicates a difference between one of the plurality of controlling motion vector predictors for the current block and a corresponding one of the plurality of controlling motion vectors.

5. The method of claim 1 , wherein the motion parameter indication comprises a plurality of motion parameter differences for a plurality of motion parameters in the orthogonal basis function for motion modeling associated with the current block.

6. The method of claim 5, further comprising: generating a plurality of motion parameter predictors for the current block based on a plurality of motion parameters of a neighboring block of the current block, wherein the motion parameter values are determined based on the plurality of motion parameter predictors and the corresponding motion parameter differences.

7. The method of claim 6, wherein each motion parameter difference indicates a difference between one of the plurality of motion parameter predictors for the current block and a corresponding one of the plurality of motion parameters.

8. The method of claim 6, wherein on a condition that the order of the orthogonal basis function for the current block is greater than the order of the orthogonal basis function for the neighboring block, a subset of the plurality of motion parameter predictors of the current block are assumed to be zero, wherein the number of motion parameter predictors assumed to be zero is equal to the difference between the order of the orthogonal basis function of the current block and the order of the orthogonal basis function for the neighboring block.

9. The method of claim 3 or 5, wherein the neighboring block is a temporal neighboring block or a spatial neighboring block.

10. The method of claim 3 or 5, wherein the order of the orthogonal basis function for the current block is different from an order of an orthogonal basis function for the neighboring block.

11. The method of claim 1 , wherein the orthogonal basis function is a Legendre polynomial function and the order is a Legendre polynomial function order.

12. The method of claim 1 , wherein the order of the orthogonal basis function is eight.

13. The method of claim 1 , wherein the motion parameter count indication is a binary motion parameter count indication.

14. The method of claim 1 further comprising receiving a motion parameter prediction mode indication associated with the orthogonal basis function for the current block, wherein the motion parameter prediction mode indication indicates whether motion parameter prediction is performed in a motion vector domain or a motion parameter domain.

15. A wireless transmit/receive unit (WTRU) comprising:

a processor configured to:

receive a motion parameter count indication associated with a current block;

determine, based on the motion parameter count indication, an order of an orthogonal basis function for motion modeling associated with the current block;

receive, based on the determined order of the orthogonal basis function for the current block, a motion parameter indication associated with the orthogonal basis function for the current block;

determine a plurality of motion parameter values for the current block based on the motion parameter indication; and

predict the current block based on the orthogonal basis function having the determined motion parameter values.

Description:
HIGHER-ORDER MOTION MODELS AND GRADUATED MOTION PARAMETER ESTIMATION FOR

VIDEO CODING

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit of U.S. Provisional Application Serial No. 62/504,963 filed May 1 1 , 2017, the contents of which are incorporated by reference herein.

BACKGROUND

[0002] A variety of digital video compression technologies enable efficient digital video communication, distribution and consumption. Some examples of standardized video compression technologies are H.261 , MPEG-1 , MPEG-2, H.263, MPEG-4 part2 and H.264/MPEG-4 part 10 AVC. Advanced video compression technologies, such as High Efficiency Video Coding (HEVC), may provide twice the compression or half the bit rate at the same video quality compared to H.264/AVC.

SUMMARY

[0003] Systems, methods, and instrumentalities are disclosed for higher-order motion models and graduated motion parameter estimation for video coding. Motion compensated prediction may be performed on a block level using one or more orthogonal basis functions (e.g., Legendre polynomial functions). A motion parameter count indication associated with a current block may be received. An order of an orthogonal basis function for motion modeling associated with the current block may be determined. The order of the orthogonal basis function may be determined based on the motion parameter count indication. Motion parameter values for the orthogonal basis function associated with the current block may be determined, and the current block may be predicted based on the orthogonal basis function having the determined motion parameter values.

[0004] For example, a motion parameter indication associated with the orthogonal basis function for the current block may be received. The motion parameter indication may be received based on the determined order of the orthogonal basis function for the current block. Motion parameter values for the current block may be determined, e.g., based on the motion parameter indication.

[0005] The motion parameter values may be predictively coded for blocks associated with motion modeling functions having the same or different orders (e.g., different parameter counts). A motion parameter prediction mode indication associated with the orthogonal basis function for the current block may be received. The motion parameter prediction mode indication may indicate whether motion parameter prediction is performed in a motion vector domain or a motion parameter domain. Based on the motion parameter prediction mode indication, the motion parameter indication may be parsed. For example, when motion parameter prediction is performed in the motion vector domain, the motion vector difference may be received for the current block. When motion parameter prediction is performed in the motion parameter domain, the motion parameter difference may be received for the current block.

[0006] Motion parameter predictors for the current block may be generated based on, e.g., the motion parameter(s) of a neighboring block of the current block. Motion vector predictors (e.g., controlling motion vector predictors) may be generated based on, e.g., the motion vector(s) of a neighboring block of the current block. The neighboring block of the current block may be a temporal neighboring block or a spatial neighboring block. For example, the motion parameter indication may indicate motion vector differences (e.g., controlling motion vector differences) for motion parameters in the orthogonal basis function for motion modeling associated with the current block. The motion parameter indication may indicate motion parameter differences for motion parameters in the orthogonal basis function for motion modeling associated with the current block.

[0007] The motion parameter values may be determined based on the motion parameter predictors and their corresponding motion parameter differences. For example, a (e.g., each) motion parameter difference may indicate a difference between one of the motion parameter predictors for the current block and a corresponding motion parameter value.

[0008] The motion parameter values may be determined based on the motion vector predictors and their corresponding controlling motion vector differences. For example, a (e.g., each) controlling motion vector difference may indicate a difference between one of the motion vector predictors for the current block and a corresponding motion vector value (e.g., a controlling motion vector value).

[0009] The order of the orthogonal basis function for the current block may be different from the order of an orthogonal basis function for the neighboring block. Some (e.g., higher order) motion parameter predictors for the current block may be assumed to be zero, e.g., if the order of the orthogonal basis function for the current block is greater than the order of the orthogonal basis function for the neighboring block. The number of motion parameter predictors assumed to be zero may be equal to the difference between the order of the orthogonal basis function for the current block and the order of the orthogonal basis function for the neighboring block.

[0010] The orthogonal basis function used for motion modeling may be a Legendre polynomial function and the order may be a Legendre polynomial function order. The order of the orthogonal basis function may be, for example, eight. The motion parameter count indication may be a binary motion parameter count indication. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] FIG. 1 shows an example of a block-based hybrid video encoding system.

[0012] FIG. 2 shows an example of a block-based video decoder.

[0013] FIG. 3 shows an example of a four-parameter affine motion model .

[0014] FIG. 4 shows an example of a block matching search for a block in a reference frame that best matches a target block.

[0015] FIG. 5A shows an example of a target frame (e.g. current target block).

[0016] FIG. 5B shows an example of a reference frame.

[0017] FIG. 6 shows an example of shapes of the first six two-dimensional Legendre polynomial basis vectors.

[0018] FIG. 7 shows an example of a block-based video encoder (e.g . for an 8-parameter motion model).

[0019] FIG. 8 shows an example of a block-based decoder (e.g. for an 8-parameter motion model).

[0020] FIG. 9 shows an example of a higher-order motion-compensated prediction module in a video encoder.

[0021] FIG. 10 shows an example of a higher-order motion-compensated prediction module in a video decoder.

[0022] FIG. 1 1 shows an example of a tree structure for a binarization procedure.

[0023] FIG. 12 shows an example of linearly extrapolating multiple motion parameters to form predictions

(po, pi, p∑-) of motion vectors (vo, v\, vi) at three corners of a target block.

[0024] FIG. 13 shows an example of extrapolating motion parameters analyzed from motion vectors {i/o, i/2, 1/3} of a first encountered affine-coded block to predict values of motion vectors {vo, 1/1, 1/2, 1/3} of a target block Btarget.

[0025] FIG. 14A is a system diagram illustrating an example communications system in which one or more disclosed embodiments may be implemented;

[0026] FIG. 14B is a system diagram illustrating an example wireless transmit/receive unit (WTRU) that may be used within the communications system illustrated in FIG. 1 A according to an embodiment;

[0027] FIG. 14C is a system diagram illustrating an example radio access network (RAN) and an example core network (CN) that may be used within the communications system illustrated in FIG. 1A according to an embodiment;

[0028] FIG. 14D is a system diagram illustrating a further example RAN and a further example CN that may be used within the communications system illustrated in FIG. 1 A according to an embodiment;

DETAILED DESCRIPTION [0029] A detailed description of illustrative embodiments will now be described with reference to the various Figures. Although this description provides a detailed example of possible implementations, it should be noted that the details are intended to be exemplary and in no way limit the scope of the application.

[0030] Video coding systems may compress digital video signals, for example, to reduce storage and/or transmission bandwidth. There are a variety of types of video coding systems, such as block-based, wavelet-based and object-based systems. Block-based video coding systems may include international video coding standards, such as (Moving Picture Experts Group) MPEG-1/2/4 part 2, H.264/MPEG-4 part 10 Advanced Video Coding (AVC), VC-1 and High Efficiency Video Coding (HEVC).

[0031] FIG. 1 shows an example of a block-based hybrid video encoding system. Input video signal 1 102 may be processed block by block. Extended block sizes (e.g. a coding unit (CU)) may be used, for example in HEVC, to efficiently compress high resolution (e.g. 1080p and beyond) video signals. A CU may be, for example, 64x64 pixels. A CU may be partitioned (e.g. into prediction units (PUs)). Separate (e.g. the same or different) prediction procedures may be applied to PUs. Spatial prediction 1160 and/or temporal prediction 1162 may be performed, for example, for an (e.g. each) input video block (e.g.

macroblock (MB) or CU).

[0032] Spatial prediction (e.g. intra prediction) may predict a current video block, for example, by using pixels from previously coded neighboring blocks in a (e.g. the same) video picture/slice. Spatial prediction may reduce spatial redundancy that may be inherent in a video signal. Temporal prediction (e.g. inter prediction or motion compensated prediction) may predict a current video block, for example, by using pixels from previously coded video pictures. Temporal prediction may reduce temporal redundancy that may be inherent in a video signal. A temporal prediction signal for a given video block may be signaled, for example, by one or more motion vectors. Motion vector(s) may indicate an amount and a direction of motion between a current block and a reference block. A reference picture index (e.g. for each video block) may be sent, for example, when multiple reference pictures may be supported (e.g. for H.264/AVC or HEVC). A reference index may be used to identify a reference picture (e.g. in reference picture store 1 164) that a temporal prediction signal comes from.

[0033] A mode decision block 1180 in an encoder may (e.g. after spatial and/or temporal prediction) choose a (e.g. the best) prediction mode based on, for example, a rate-distortion optimization procedure. A prediction block may be subtracted from a current video block 1 116. A prediction residual may be de- correlated (e.g. using transform 1 104) and quantized 1106, for example, to achieve a target bit-rate.

Quantized residual coefficients may be inverse quantized 1 110 and inverse transformed 1 112, e.g., to form a reconstructed residual. A reconstructed residual may be added back to prediction block 1126, for example, to form a reconstructed video block. In-loop filtering 1166 (e.g. de-blocking filter and/or Adaptive Loop Filters) may be applied to a reconstructed video block, for example, before it is put in reference picture store 1164 and used to code future video blocks. Entropy coding unit 1 108 may form output video bit-stream 1120, for example, by compressing and packing coding mode information (e.g. inter or intra), prediction mode information, motion information and/or quantized residual coefficients.

[0034] FIG. 2 shows an example of a block-based video decoder. Video bit-stream 202 may be unpacked and entropy decoded at entropy decoding unit 208. Coding mode and prediction information may be sent to the spatial prediction unit 260 (e.g. when intra coded) or temporal prediction unit 262 (e.g. when inter coded), for example, to form a prediction block. Residual transform coefficients may be provided to inverse quantization unit 210 and inverse transform unit 212, e.g., to reconstruct the residual block. A prediction block and a residual block may be added together, e.g., at summation 226. In-loop filtering may be applied to a reconstructed block, for example, before it is stored in reference picture store 264. Reconstructed video in reference picture store 264 may be sent out, for example, to drive a display device and/or to predict future video blocks.

[0035] A video encoder may (e.g. for inter-predicted blocks) find a (e.g. the best) matching area in an available reference picture. In an example, "best" may be construed in the sense of rate-distortion optimality. A search for the best matching area may be intractable for higher-order motion models (e.g. motion models that may represent zooming and rotation in addition to translation).

[0036] Video coding may use affine motion parameter estimation. In an example, block-matching may (e.g. first) be performed, for example, to estimate translational x- and y- components of motion parameters. A gradient-descent-based procedure may (e.g. second) estimate remaining non-translational components of motion parameters. This example estimation strategy may be suboptimal, for example, when local minima may (e.g. still) be present in a remaining procedure to estimate non-translational components. In an example, an estimation procedure may reduce the number of local minima (e.g. degree of non- convexity) over the estimation procedure. An estimation procedure may, for example, perform a search over smoothened target and reference pictures. The estimation procedure may, for example, gradually transition a search over to original target and reference pictures.

[0037] An example motion model is a two-parameter (e.g. translational) motion model. In an example of a motion model, pixels within a target block may be subjected to a constant motion. Two-dimensional pixel coordinates (x,y) in a given target block may be related to their correspondences (x'.y 1 ) in a reference frame in accordance with, for example, Eq. (1 ):

[0038]

X' = C1+ X

y = C2+ y [0039] A motion vector that may be associated with pixel coordinates (x,y) may be the pair (u,v), which may be given, for example, by Eq. (2):

u = x' - x, v = y' - y. (2)

[0040] There are a variety of higher-order motion models. Some examples may be provided below.

[0041] Affine motion models may be used for inter-prediction, for example, to model video motion that may vary linearly (e.g. affinely) with pixel coordinates. This may allow skew, rotation and zoom in video motion to be modeled and represented . Two-dimensional pixel coordinates (x,y) in a target block may be related to their correspondences (x'.y 1 ) in a reference frame, for example, in accordance with Eq. (3):

X' = C1 + C3X + C5Y

(3) y = C2 + C4X + cey

[0042] Six parameters {α}ι≤/<≤6 may (e.g. fully) describe an affine transformation between pixel coordinates of a reference and a target.

[0043] An example video sequence may have rotation and/or zoom affine motion present globally (e.g. due to camera rotation or zoom) or in objects (e.g . a vehicle at a far distance moving towards the camera, or a rotating ball). Rotation and/or zoom types of affine motion may be described, for example, using four parameters (e.g. two for translation, two for rotation, and scale factors).

[0044] FIG. 3 shows an example of a four-parameter affine motion model. FIG. 3 illustrates parameters that may be estimated. In an example, a target block and its correspondence in a reference frame may be related by zoom and rotation . A four-parameter affine motion model may place constraints on components of corner motion vectors. A four-parameter affine motion model may have two less degrees of freedom compared to a six-parameter affine motion model, which may not place equality constraints on certain components of the corner motion vectors.

[0045] Equality constraints illustrated in FIG. 3 may be used to simplify Eq. (3), for example, to Eq. (4):

X' = C1 + C3X - C4y

(4) y = C2 + C4X + c 3 y

where the parameters {α}ι≤/<≤4 may be estimated.

[0046] A variety of motion parameter estimation strategies may be implemented, such as block-matching and gradient-based motion search.

[0047] Block-matching may be performed to shift a target (e.g. current prediction) block over a search area around a collocated position in a reference frame. Block-matching may determine a cost criterion for a (e.g . each) position.

[0048] FIG. 4 shows an example of a block matching search for a block (B) in a reference frame that best matches a target block. A search may be referred to as a full search, for example, when the available positions (e.g., all available positions) may be tested. Fast searches may, for example, test a subset of available positions. Fast searches may use criteria from a neighborhood to generate a candidate set of motion vectors to be considered during a search operation.

[0049] An output of block-matching may be given, for example, by Eq . (5): argmin J{u,v) =∑ xy [f,{x+u{x,y),y+v{x,y)) - f(x,y)] 2 + {KR{u,v)) (5) where the summation may be over pixel coordinates within a given target block, λ may represent the rate- distortion trade-off, and R{u,v) may be a bit-length of the motion vector {u,v). Eq. (5) may be "block- matching," for example, because optimization of the objective function in Eq. (5) may amount to searching for a block in f r that may best match the block ft.

[0050] Gradient-based motion estimation may be performed. A first-order Taylor approximation of Eq . (5) may be used, for example, when motion {u,v) between a target block and its correspondence in a reference frame may be known (e.g. a priori) to be small . An approximation of Eq. (5) may, for example, yield Eq. (6):

argmin J{u,v) =∑ xy [f^x,y)u{x,y) + ,y)v{x,y) - ft(x,y)] 2 + {KR{u,v)) (6) where fr* and f ry may be derivatives of image f along the x-axis and the y-axis. This may yield an iterative procedure, which may be referred to as a Gauss-Newton method . The iterative procedure may be used for estimating motion between a target block and a reference frame. The linear approximation in Eq. (5) may, for example, (e.g . only) be valid for small motion vectors {u,v) or linear image signals. In an example, the second term of the objective function of Eq. (6) may be disregarded, which may turn a motion estimation problem into a linear least-squares problem, e.g., in terms of {u,v). The linear least-squares problem may be solved (e.g . efficiently) by solving associated normal equations.

[0051] FIG. 5A shows an example of a target frame (e.g. current target block). FIG. 5B shows an example of a reference frame. In an example, a target block may be related to its correspondence in a reference frame in a non-affine manner. A motion model and parameters used to code a target block may, for example, depend on rate-distortion cost considerations.

[0052] In an example, four-parameter and six-parameter affine motion models may be extended to an eight-parameter motion model . An eight-parameter motion model may model motion that varies bi-linearly (e.g . compared to motion that varies linearly for four- and six-parameter models). A two-parameter motion model (e.g . translation) may preserve the shape of a target's predicting area (e.g . a predicting region of a rectangular target block may be a rectangle). Six-parameter motion models (e.g. rotation, zoom, skew) may preserve parallel edges of a predicting area (e.g. a target block may be predicted from a

parallelogram-shaped area). An eight-parameter motion model may allow a predicting area to take the shape of an (e.g . any) arbitrary quadrilateral, (e.g. as shown by example in FIG. 5A and its correspondence in FIG. 5B). [0053] Higher-order motion-models may be based on Legendre polynomials. A graduated gradient-based motion estimation scheme may incorporate block-matching for motion-compensated prediction.

[0054] An eight-parameter motion model may provide (e.g. in addition to six affine parameters) two parameters that may, for example, enable expression of motion fields that vary bi-linearly. A low- complexity non-gradient based parameter estimation process may estimate higher-order motion parameters (e.g ., without the use of gradient information). In an example of a graduated gradient-based motion estimation, a Gaussian tower may be used to facilitate a multi-scale approach to motion estimation. A set of early termination rules may be used for graduation, which may be similar to early termination rules for a gradient-based estimation . Temporal averaging of image gradient values for a gradient-based estimation may facilitate faster numerical convergence of an estimated motion parameter. Optimization may be performed for a linear least-squares estimation routine within gradient-based motion parameter estimation. Rows of equations may be sub-sampled, for example, to speed-up running time.

[0055] A higher order (e.g. an eight-parameter) motion model may be used for motion-compensated prediction. Higher-order motion models may be, for example, based on Legendre polynomials. An eight- parameter motion model may be construed as a concrete instance of higher-order motion. An estimation procedure may be used for higher-order Legendre polynomial motion parameters. An order of a motion model (e.g ., an orthogonal basis function) may be coded and may have corresponding motion parameters. Parameters of an eight-parameter motion model may be estimated, for example, using a graduated gradient-based motion estimation. Efficient practice(s), such as fast rate-distortion mode decision for four-, six- and eight-parameter motion models, early termination rules for graduation, temporal averaging of image gradient values and row-subsampling for efficient linear least-squares, may be used individually (e.g ., separately) or combined .

[0056] Higher-order Legendre polynomial motion models (e.g ., Legendre polynomial functions) may be provided. Motion models based on Legendre polynomials may be, for example, higher-order

generalizations of a translational motion model and four- and six-parameter affine motion models. Higher- order Legendre polynomial motion models may represent a motion field over a target block as a linear combination of Legendre polynomial basis vectors, for example, to produce higher-order motion- compensated predictions for a target block. Higher-order basis vectors may form predictions for a target block from a non-square or non-parallelogram-shaped area in a reference picture. A motion field of order p over a target block generated by Legendre polynomials (e.g . up to a scale factor) may be formulated, for example, in accordance with Eq. (7):

u{x,y) =∑ c * x,y), v{x,y) =∑ Ck +P Lk{x,y) (7) where u{x,y) and v{x,y) may denote a motion vector for sample x located at a picture position x. Ck and Ck +P may, respectively, represent a coefficient to a Ath Legendre polynomial basis function Lk{x,y) in horizontal and vertical components of overall motion .

[0057] FIG. 6 shows an example of shapes of the first six two-dimensional Legendre polynomial basis vectors. In an example, FIG. 6 shows the first six Legendre polynomial basis functions Lk(x,y) for a 64-by- 64 block (up to scaling). Translational motion may be described, for example, using the basis vector Lo (e.g. alone) separately in the x and y directions. Affine motion models may be equivalent to synthesizing motion fields, for example, using basis vectors Lo , Li and L 2 . An eight-parameter, bi-linear motion model may be constructed, for example, using basis vectors Lo , Li, L 2 and L 3 .

[0058] Accuracy of a motion field and motion overhead may be balanced, for example, to reach maximal rate-distortion performance for motion-compensated prediction. An accurate motion field may imply better prediction . Motion overhead to achieve an accurate motion field may outweigh a benefit of prediction accuracy. A video encoder may (e.g. adaptively) switch among a different number (e.g. n, where n is an even integer) of motion basis vectors. A PU may find its n value that may guarantee optimal rate-distortion performance.

[0059] Examples demonstrating how a generalized higher-order Legendre polynomial motion model works may use, for example, n=8 for an eight-parameter motion model, which may be an extension of n=4 or n=6 for video coding examples.

[0060] An eight-parameter motion model may be, for example, an instance of a motion model based on Legendre polynomials. In an example, the number of motion parameters (or coefficients) may be (e.g. limited to) n=8, e.g., with {c/}i≤/≤8 being the eight coefficients of the motion field's expansion in Legendre polynomials. A rich variety of motion fields may be expressed based on this expansion . Certain assignments to {ci\ may generate the same motion fields as translational motion fields (e.g. when Ck = 0 for k > 2), four-parameter affine motion fields (e.g., Ck = 0 for k > 4) or six-parameter affine motion fields (e.g. when Ck = 0 for k > 6). Motion parameters {ck} may be communicated, for example, at high precision. Communication cost may be reduced, for example, by (e.g. first) communicating a number of motion parameters n that may be coded . A corresponding number of motion parameters may (e.g. second) be quantized and coded as difference values with respect to motion vector predictions. A decision to communicate, for example, two, four, six or eight motion parameters for a target block may be signaled, e.g ., at a CU level.

[0061] A (e.g. the same) prediction module (e.g . for four- and/or six-parameter motion models) may be reused for eight-parameter motion-compensated prediction . An eight-parameter motion model may work in conjunction with other coding tools, such as bi-directional optical flow and frame-rate up-conversion . Advanced temporal motion vector derivation may derive motion of a (e.g. each) unit from a motion field of a temporal reference picture.

[0062] Encoding and decoding frameworks may be performed for higher-order (e.g. eight parameter) motion-compensated prediction based on Legendre polynomials.

[0063] FIG. 7 shows an example block-based video encoder (e.g. for an 8-parameter motion model). Spatial prediction and temporal prediction may be two pixel-domain prediction modules in a video encoder. An example of a spatial prediction module may be similar to an example shown in FIG. 1. A temporal prediction module (e.g. "motion-compensated prediction" in FIG. 1) may comprise an eight-parameter motion model in a higher-order motion-compensated prediction framework.

[0064] FIG. 9 shows an example of a higher-order motion-compensated prediction module in a video encoder. A motion-compensated prediction module may generate an inter-prediction signal.

[0065] For example, motion parameter values for a current block may be determined. The motion parameter values may be used to determine motion vector differences for the current block. The motion vector differences may be, e.g., the difference between a motion predictor value and a motion parameter value. An indication of the motion parameter values may be included in the bitstream. The motion parameter value indication may indicate the motion parameter values. In an example, the motion parameter value indication may indicate the motion vector differences.

[0066] An order of an orthogonal basis function (e.g., a Legendre polynomial function) for motion modeling associated with a current block may be determined. The order of the orthogonal basis function may be determined based on motion estimation. In an example, a motion-compensated prediction module may perform motion estimation in reference picture(s), for example, to compute rate-distortion for different motion models (e.g. 2-, 4-, 6- and 8-parameter models). A motion parameter count may be determined based on the order of the orthogonal basis function. For example, a motion-compensated prediction module may select a motion model (e.g. with n parameters) that may minimize a rate-distortion cost for a current video block. A motion-compensated prediction module may fetch prediction blocks through motion compensation, e.g., based on a selected motion model.

[0067] Motion parameter values may be determined. Motion predictors may be identified, e.g. based on the order of the orthogonal basis function. In an example, a motion-compensated prediction module may translate n motion parameters into n motion vectors at the corners of a target block, e.g., Vk, k = 1, 2, n. Motion vectors may be coded as motion vector differences (e.g. dk, k = 1, 2, n), for example, with respect to motion vector predictions (e.g., motion predictors) (e.g. pk, k = 1, 2, n) at the corners. The number of motion vector differences coded may, for example, depend on a selected motion model. In an example, 2, 4, 6 or 8 motion vector differences may be coded, respectively, when a 2, 4, 6 or 8 parameter model may be used for a target block. An indication of the motion parameter count associated with a current block may be included in a bitstream.

[0068] Two-, four-, six- and eight-parameter motion models may be expressed within a (e.g. the same) unified higher-order motion model framework. In an example, an 8-parameter motion model may be used to model a motion field of an input video signal. The values of the last six parameters (e.g., motion parameters) of an 8-parameter model may be set to zero, for example, when a 2-parameter model (e.g. translational) may be selected for a current block. The values of the last four parameters of an 8-parameter model may be set to zero, for example, when a 4-parameter affine model (e.g. rotation, zoom) may be selected for a current block. The values of the last two parameters of an 8-parameter model may be set to zero, for example, when a 6-parameter affine model (e.g. rotation, zoom and skew) may be selected for a current block. Translational models (e.g. with the first two parameters potentially non-zero) and affine models (e.g. with the first six parameters potentially non-zero) may be represented under an eight- parameter motion model framework, for example, with proper assignments to parameters {c,j, i= 1 , 2, 3, ... , 8 of an 8-parameter model. Parameters of a selected motion model may be expressed, for example, in the form of motion vectors of the corners of a current block. In an example, (e.g. only) a difference of a (e.g. each) motion vector at the corners may be coded (e.g. with respect to its corresponding motion vector predictor), for example.

[0069] FIG. 8 shows an example of a block-based decoder (e.g. for an 8-parameter motion model). FIG. 8 shows an example of a video decoder that may decode a bit-stream produced by a video encoder (e.g. as shown in FIG. 2). A coding mode and prediction information may be used to derive a prediction signal, e.g., using spatial prediction or temporal prediction.

[0070] FIG. 10 shows an example of a higher-order motion-compensated prediction module in a video decoder. FIG. 10 shows an example of motion compensated prediction on a decoder side, e.g., to generate a prediction signal for a (e.g. each) inter block using a higher-order motion model.

[0071 ] A motion parameter decoding module may decode motion parameters that may be received in the bitstream. A motion parameter count indication associated with the current block may be received (e.g. by the motion parameter decoding module). The motion parameter count indication (e.g., n) may indicate a number of motion vector differences. The motion parameter count indication may be decoded. An order of a selected motion model (e.g., an orthogonal basis function for motion modeling) may be determined, e.g. based on the decoded value of n. The order of the selected motion model may be associated with the current block.

[0072] A motion parameter value indication for the current block may be received, e.g. based on the determined order of the selected motion model. In an example, the motion parameter value indication may indicate the motion parameter values. The number of motion parameter values included in the indication may be based on, for example, the order of the orthogonal basis function associated with the current block. The motion parameter values may be applied to the current block.

[0073] In an example, the motion parameter value indication may indicate n motion vector differences (e.g., controlling motion vector differences) {dk^≤k≤n. The motion parameter value indication may be decoded. The motion vector differences may, for example, be added to motion vector predictors {pk^≤k≤n, e.g., element-wise to form motion parameter vectors {vk, k = 1, 2, n) for a target block. The motion vector predictors may be used to predict the current block. The motion vector predictors may be identified based on the motion parameters of a neighboring block of the current block. The neighboring block may be, for example, a temporal neighboring block or a spatial neighboring block.

[0074] The n motion vectors may be translated, e.g., to obtain n parameters of a selected motion model, e.g., Ck, k = 1, 2, n. A motion field of a block (e.g. Given Ck, k = 1, 2, n) may be synthesized (e.g. according to Eq. (7)), for example, so that a (e.g. each) pixel in a block may be assigned a motion vector in a manner that may be identical to the video encoder. A motion field may be synchronized across a video encoder and decoder.

[0075] One or more sets of motion information may be decoded, for example, depending on a prediction scheme being employed. In an example (e.g. for uni-prediction), one set of motion vector differences (e.g. with a corresponding reference picture index) may be decoded. In an example (e.g. for bi-prediction), one or more (e.g. two) sets of motion vector differences (e.g. with two corresponding reference picture indices) may be decoded. In an example, motion vector information for a list may be derived, for example, from motion vector information of another set, in which case one motion vector differences may be decoded.

[0076] A higher-order prediction module (e.g. as shown by example in FIG. 10) may use a motion vector field to compute a motion-compensated prediction signal, for example, by warping a corresponding area in a reference picture. Motion -com pen sated prediction residue may be communicated and may be added to a prediction to synthesize a final video block signal, for example, depending on a coding mode.

[0077] Higher-order Legendre polynomial motion parameters may be estimated. In an example process, parameters of an pth-order Legendre polynomial motion model may be estimated, for example, using a per- block gradient-based estimation strategy (e.g. among other additional, combinatorial and alternative examples).

[0078] Per-block gradient-based motion estimation may be performed. Motion parameters may be signaled for a (e.g. each) block or CU. A matrix representing pixel intensity values in an m-by-n target and reference block of pixels, respectively, may be denoted, for example, as T, Se R m * n .

[0079] Centered first-order differences of T in x- or y- directions may be denoted, for example, as l{x,y}e R mxn . A lexicographical ordering of T and T{*,y}, respectively, may be denoted, for example, as {t,t{x,y}}e R™* 1 . The x- and y-components of a motion vector field for a block may be denoted, for example, as U, Ve R mxn . T(/,j) may be predicted from S, for example, using a sample S(/+U(/,j), j+V(/,j)). A bi-linear look-up may be used to derive the sample S(/+U(/,j), j+V{ij)), e.g., from pixel intensities of four entries that may be closest to (/+U(/,j), j+V(/,j)), for example, when index (/+U(/,j), j+V(/,j)) may not be an integer coordinate. Lexicographical orderings u and v may be defined similarly.

[0080] An eight-parameter motion model may, for example, impose a constraint Lpp=u and LPq=v with p=4, e.g., which may permit an overall estimation problem to be written using matrix notation, for example, as shown in Eq. (8):

argmin J(p,q;po,qo,p,rx,r y ,r,s) = || diag(r*)LP(p+po) + diag(r y )LP(q- ¾ 0 ) + r - s || 2 (8) where po, qo may denote initial estimates of motion parameters and LP may denote a synthesis matrix. The columns of LP may correspond to (e.g. a lexicographical ordering of) a first p Legendre polynomial basis vectors (e.g. shown by example in FIG. 6). Eq. (8) may be a linear least-squares problem, which may be solved via its normal equations.

[0081] A motion-compensated prediction may be linear in (u,v) for linear least-squares problem (e.g. Eq.

(8)). This (e.g. assumption) may hold, for example, when a reference image may be a linearly varying gradient, and may not hold, for example, when estimating motion on natural images. Eq. (8) may be treated, for example, as an incremental estimation procedure. An estimation may be repeated

max_num_iter times, for example, in accordance with estimation procedure (e.g. algorithm, logic, pseudocode or routine) (9):

input p, R, S

output po, qo

initialize po, qo for k := 1 , ... , max_num_iter

for all i, j (9) R k {iJ) := R (/+unvec(Lppo)(/,i), i+unvec(Lpqo)(/,i))

R/(ij) := Rx(/+unvec(Lppo)(/,i), i+unvec(Lpqo)(/,i))

R j/j) := Ry(/+unvec(Lppo)(/,i), i+unvec(Lpqo)(/,i¾

end

(po.qo) := argmin ^p.q o.qo.p.veciR J.veciR^.veciR^.veciS))

end

[0082] In an example estimation routine (9), R/, R/, R k and S may be invalidated (e.g. values set to zero), for example, at locations where coordinates (/+U(/,j), j+V(/,j)) may point outside the bounds of a reference image R.

[0083] In an example, (e.g. at the beginning of an estimation routine), po and qo may be initialized, for example, using a result of block-matching. In an example, po and qo may (e.g. upon termination) contain least-squares estimates of motion parameters that are sought. [0084] The motion model for a block may be selected, and an indication of the selected model may be signaled in the bitstream. Two parameters (e.g. in a motion model) may be used to represent video motion, for example, when (e.g. only) translational motion may be present. Four parameters may describe motion of a source video, for example, when video motion may comprise rotation and zoom. Six motion parameters may represent, for example, rotation, zoom and skew in motion. Eight parameters may describe, for example, more arbitrary deformations in video content.

[0085] Higher-order motion parameters, e.g., representing degree of rotation, zoom, skew or deformation, may be (e.g. depending on a video sequence) zero-valued more often than lower-order motion parameters. A total parameter count, e.g., based on a context of parameter counts of neighboring blocks, may indicate a select (e.g. minimal) number of non-zero values.

[0086] A binarization process may be provided for parameter count coding. In an example, a (e.g. each) parameter count (e.g. param_cnt) may be converted into a unique, prefix-free binary representation (e.g. binary_param_cnt), for example, before entropy encoding.

[0087] FIG. 1 1 shows an example of a tree structure for a binarization procedure. FIG. 1 1 shows a signaling mechanism for the order of a motion model using unary coding. A (e.g. each) branch may signal that an order of a motion model may be increased (e.g. 1). In an example, a (e.g. a first) bit of binary_param_cnt may be used, for example, to differentiate a two-parameter motion model (e.g. a translational motion model, where α = 0, / > 2) from higher-order motion models. A (e.g. a second) bit may be signaled for a higher-order motion model branch, for example, to differentiate a four-parameter motion model (e.g. rotation, zoom model, where α = 0, / > 4) from higher-order models. A (e.g. a third) bit may be signaled for a higher-order motion model branch, for example, to differentiate a six-parameter motion model (e.g. affine model, where α = 0, / > 6) from an eight-parameter motion model (e.g. where (e.g. all) α may potentially be non-zero).

[0088] Context models may be provided for model selection. A parameter count for a current block may exhibit high correlation with parameter counts for neighboring blocks with higher-order motion models. A binary_param_cnt token may be coded using a coding context. Discussion of an example may be facilitated by reference to FIG. 1 1. In an example, a (e.g. a first) bit of binary _param_cnt may use a one- dimensional context, which may be a sum of a first bit of binary _param_cnt of neighboring blocks, e.g., above and to the left of a current PU. In an example, a (e.g. a second) bit of binary_param_cnt may use a one-dimensional context, which may be derived, for example, by summing a second bit of

binary_param_cnt of neighboring blocks, e.g., above and to the left of a current PU. Higher-order trends of motion may be more likely to continue within contiguous regions of a scene.

[0089] A corresponding number n of motion model parameters {c/}i≤sn may be coded, for example, once a param_cnt token may be coded. Motion model parameters {c/}, e.g., for a current target block, may be transformed to motion vectors {½}i≤i≤ n /2, e.g., at the corners of the block. In an example, motion model parameters {ci for a current target block may be coded. In an example, a difference between motion vectors {½}i≤/≤ n /2 and their motion vector predictors \pi\ may be coded. This may allow motion parameters {c/j to be de-correlated across neighboring blocks.

[0090] Predictive motion vector coding may be performed. Parameters may be coded predictively, for example, to minimize a communication cost of motion. Motion may be (e.g. significantly) correlated across block boundaries. Motion vectors of neighboring coded blocks may be used as predictors for motion of a current target block. A difference between a predicted motion vector and an actual motion vector of a controlling point (e.g., one of the top-left and top-right corners for a four-parameter motion mode or one of the top-left, top-right and bottom-left corners for a six-parameter motion mode) may be included in the bitstream (e.g., communicated to the decoder), for example, once a prediction may be formed. In an example, motion parameters of neighboring blocks may be used as predictors, e.g. for coding motion parameters of a current block. A difference between predicted motion parameters and actual motion parameters of a current block may be included in a bit-stream. For example, a motion parameter prediction mode indication may be signaled for a CU, e.g. to indicate whether motion parameter prediction is performed in a motion vector domain or a motion parameter domain. When motion parameter prediction is performed in the motion vector domain, the motion vector difference may be signaled for the current block. When motion parameter prediction is performed in the motion parameter domain, the motion parameter difference may be signaled for the current block.

[0091] Motion predictors may be derived, for example, by extrapolating motion of neighboring blocks to the corners of a current target block.

[0092] FIG. 12 shows an example of linearly extrapolating multiple motion parameters to form predictions (po, i, 2) of motion vectors (vo, v\, vi) at three corners of a target block. In an example, motion parameters of blocks {B a , Bb, B c } may be extrapolated, for example, to form predictions of motion vector vo. Motion parameters of blocks {Bd, B e } and {Bf, B g } may be extrapolated, for example, to form predictions of motion vectors 1/1 and 1/2, respectively.

[0093] An index of one or more of twelve permutations (p{a,b,c}, p{d,e}, PM) may be signaled as a motion vector prediction source for (vo, v\, vi). A set of (e.g. all) permutations may be pruned down to fewer (e.g. two) candidates, for example, based on one or more criteria. In an example, criteria may include, for example, Eq. (10), Eq. (11 ) and Eq. (12):

minimize J(po, pi, p2) = ((pn - poi) - (pio - p2o)) + ((pio - poo) - (P21 - pn)) (10) [0094] Eq. (10) may measure a fit of the tuple (p{a,b,c}, {d,e}, ω), for example, based on its deviation from rotation and zoom. Predictor p 3 for v 3 may (e.g. then) be determined, for example, in accordance with Eq. (1 1):

p 3 = p2 + pi - po (11 )

[0095] Eq. (11 ) may provide a linear extrapolation of motion vector predictor p 3 . Motion vector differences to be communicated may be calculated, for example, in accordance with Eq. (12):

dk = Vk - pk (12) In an example, p 3 may be determined temporally, e.g., directly from its collocated block in a chosen reference frame. Having determined a list of multiple (e.g. two) motion vector predictor candidate tuples ((po, pi, p2)o, (po, pi, P2)i), an index of a rate-distortion optimal motion vector predictor {0,1 } may be unary- coded.

[0096] Motion vector difference coding may be performed. A param_cnt token may be coded. A corresponding number of motion vector differences may be coded (e.g. along with refjdx). Motion vector differences may be coded, for example, by using dedicated flags that may indicate that the x- and y- components of difference vectors {di may be |d/{x,y}| > 0 and (e.g. conditionally) |d/{x,y}| > 1 , e.g., using context updates. Remaining |d/{x,y}| values may be coded (e.g. with an exp-Golomb binarization in bypass mode), for example, when a magnitude of a motion vector difference may be greater than 1 . A sign of a motion vector difference may be coded, for example, as a flag in bypass mode. A context for (e.g. two) bins may be selected, for example, based on (e.g. only) a bin index.

[0097] High-order motion vector merging may be performed. A spatial motion vector merge may (e.g. similar to spatial motion vector prediction) reduce a communication cost of a motion vector difference in a target block. A motion vector difference and a reference picture index may not be communicated in merge mode. Motion parameters of a (e.g. one) neighboring affine block may be (e.g. when a decoded affine merge flag may be set to 1 ) extrapolated to (e.g. all) the corner motion vectors. For example, affine motion parameters from a first affine coded block that may be encountered in a neighborhood {Bb, Bf, Bd, B g , B a } of a current block may be used.

[0098] FIG. 13 shows an example of extrapolating motion parameters analyzed from motion vectors {i/o, i/2, 1/3} of a first encountered affine-coded block (e.g. Bf), for example, to predict values of motion vectors {i/o, i i, 1/2, 1/3} of a target block Btarget. In an example, motion vectors may be extrapolated, for example, in accordance with Eq. (13), where, e.g., for all k:

Vk = co + (xk - so)/(si - so) ci + (y/t - fo)/(f2 - to) 02 + {{xk - so) ( /f - fo))/((f2 - fo)(si - so)) ci (13) where k may represent an index of a controlling point of a motion model, and where, co, ci, ci and a, may be determined, for example, in accordance with a set of equations show in Eq. (14): C0 = 0 C1 = U1 - U0 C2 = 2 - 0 C3 = o - 1 - U2 + 3, (14) and where ((xo.yo), (xi,yi), ( 2, 2), ( 3, 3)) and ((so.fo), (si ,fi), (S2,f2), (S3,f3)) may be (x,y) coordinates of four corners of target and reference blocks, respectively. Extrapolations may be consistent with a Legendre polynomial interpolation, e.g., with a maximal order of =4.

[0099] Graduated gradient-based motion estimation may be performed. A brute-force (e.g. direct) search strategy may be used. Estimation of parameters of a pth-order Legendre polynomial motion model may have, for example, a running time complexity bound of 0{S 2 P), where s may be a number of search grid points to test. In an example, a translational motion model (e.g. p=1 ) may have a running time complexity 0(s 2 ), which may grow quadratically with a size of a search range (e.g. pixel locations). A brute-force search strategy for a higher-order eight-parameter motion model (e.g. p=4) may be intractable, for example, since even a very small search range (e.g. s=16) may produce over 4x10 9 search grid points to test in total.

[0100] Gradient-based search strategies may (e.g. additionally) use a gradient of Eq. (6) of a functional Eq. (5), for example, to guide a search towards a minimum, which may eradicate a need for a grid search. A graduated gradient-based motion estimation may be performed.

[0101] Gaussian towers may be provided. Graduated gradient-descent may be an improvement to gradient-descent and may enable a descent to avoid settling into local optima. Graduated gradient-descent may break a motion estimation problem into a sequence of estimations. In an example, a first estimation in a sequence may be, for example, convex or nearly convex. A result of an (e.g. each) estimation may provide a (e.g. good) starting point to a next estimation in a sequence. A last estimation in a sequence may be a (e.g. difficult) motion parameter estimation. A graduated gradient-descent may (e.g. often) be used.

[0102] A higher-order motion parameter estimation problem may be made more convex, for example, by low-pass filtering a target block and a reference picture. Parameters may be found, for example, by (e.g., firstly) searching in a most low-pass filtered reference picture, and (e.g., secondly) searching within a less low-pass-filtered image. One may continue in this manner until parameters may be located (e.g. with high precision) in an original reference picture.

[0103] A graduation scheme may be constructed. Convexity of a motion estimation problem in Eq. (5) may be graduated, for example, by constructing two separate /-level (0, /-1) Gaussian towers of target and reference pictures. A m-th level picture of a tower may be obtained, for example, by convolving a respective picture with a Gaussian filter of variance (e.g. σ=2 ηι ), where m = 0, 1-1 . In an example, a target block (e.g. whose parameters may be sought) and a reference picture may be taken from / levels of Gaussian towers, for example, during an initial phase of parameter estimation. Estimation may be performed, for example, according to procedure (9). An original unfiltered target block and a reference (e.g. reconstructed) picture may be used to resolve motion parameters to a high precision, for example, in a final phase of an estimation. Gaussian towers may be constructed, for example, at the same time as reading in luma samples from a source. An example procedure may be implemented, for example, in accordance with procedure (15):

input p, R, S

output po, qo

initialize po, qo for / := 0, ... , max_num_level - 1

for k := 0, ... , max_num_iter - 1 (<| c for all /, _/ '

R k (iJ) := Ri (/+unvec(Lppo)(/,i), i+unvec(Lpqo)(/,i))

R (/j) := Rfe(/+unvec(LPpo)(/,i), i+unvec(LPqo)(/,i))

R (/j) := R/y(/+unvec(Lppo)(/,i), i+unvec(Lpqo)(/,i))

end

(po.qo) := argmin ^p.q o.qo. .veciR^.veciR J.veciR^.veciS))

end

end

[0104] Early termination rules may be provided for graduation. A total running time complexity of estimation on an /-level Gaussian tower may be 0{ml), where m may be a number of least-squares estimation iterations that may be performed at a (e.g. each) level of a Gaussian tower. It may be wasteful to run a fixed number of iterations at a (e.g. each) level, for example, when estimated parameters at a given coarser level may have already converged to a high enough precision (e.g. since they may be further refined at a next finer level). A tolerance factor ε may be set for early termination. An estimation at a current level may be terminated (e.g. switching estimation to a next finer level), For example, termination may occur when a maxima! difference between parameters {c k } and {c* *1 } may vary less than ε. {c } may be estimated during iteration k and {c k+v i may be estimated during iteration /c+1 . In an example, a choice of early termination tolerance may be identified based on a coded resolution of motion vector differences, for example, since estimating parameters to a very high precision and quantizing them to a relatively low numerical precision at a coding stage may be wasteful.

[0105] Temporal image gradient averaging may be performed. In an example, a least-squares problem in Eq. (6) may be based on, for example, an assumption that a first-order Taylor approximation may be (e.g. is) valid between target and reference blocks. This may imply that two choices of image gradient calculation may be available. One choice may be based on a target block and another choice may be based on a reference block. Convergence of least-squares parameters may be sped up, for example, by averaging gradients (e.g. temporally) across target and reference blocks. In an example (e.g. for a target or reference), a graduated gradient-based estimation scheme may use, for example, a three-point difference kernel [-0.5, 0, 0.5] and its transpose, e.g., to evaluate image derivatives in x- and y-directions. [0106] Sub-sampling systems of equations may be provided. In an example (e.g. at coarser levels of a Gaussian tower), a size of corresponding least-squares problems in Eq. (6) may be reduced, for example, by subsampling rows of an over-determined system of equations. This may produce a smaller over- determined system of equations. In an (e.g. a related) example, Gaussian pyramids may (e.g. directly) subsample images, which may introduce aliasing artifacts into subsampled images.

[0107] Estimation may be performed, for example, by incorporating (e.g. aforementioned) optimizations into procedure (15). An estimation may be performed, for example, in accordance with estimation procedure (16):

input p, R, S

output po, qo

initialize po, qo for / := 0, ... , max_num_level - 1

for k := 0, ... , max_num_iter - 1

for all /, _/ '

Ri (/+unvec(LPpo)(/,i), j+unvec(LPqo)(/,j))

Rfe(/+unvec(LPpo)(/,i), i+unvec(LPqo)(/,i))

R/y(/+unvec(LPpo)(/,i), i+unvec(LPqo)(/,i))

end

(p-i,q-i) := (po.qo)

(po.qo) := argmin ^p.q o.qo. .veciR^.veciR/^veciR^.veciS))

if ||p-i - po||inf < ε and ||q-i - qo||inf < ε

break

end

end

end

where subroutine "subsample" may be performed, for example, in accordance with procedure (17):

input /, R

output Rs max_sub_f actor = 4 for / :=

end

end

[0108] Non-gradient-based motion estimation may be performed. A running time complexity of performing a direct search may grow as 0{S 2 P), e.g., exponentially with a number of parameters (n=2p). In an example, a gradient-based search may be used, for example, to avoid exponentially growing running complexity. In an example, motion parameters may be estimated without resorting to an iterative Gauss- Newton procedure.

[0109] In an example, expectation-maximization (EM) may be used, for example, to estimate Legendre polynomial coefficients of different orders separately, e.g., one order at a time. This may reduce a running time complexity of a search from, for example, 0(s 4 ) to 0(2s 2 ) = 0(s 2 ), e.g., when p=2. A search may (e.g. for p=2) be regarded as testing the points of a four-dimensional grid for a motion vector pair (vo, vi) that may yield rate-distortion optimality. Motion vectors may be known a priori to be correlated (e.g. based on presence of a translational component of motion). A search may be performed in a Legendre polynomial coefficient domain.

[0110] A yth entry of a vector p may be denoted as pj. An example procedure may be implemented, for example, in accordance with procedure (18):

output p, q

initialize pi, qi, p 2 , q 2 for k := 0, ... , max_num_iter - 1 (18) (pi,qi) := argmin{p,q} J(L 2 [p,p 2 ], L 2 [q,q 2 ]) //direct search over p,q, keeping p 2 ,q 2 fixed

(P2,q 2 ) := argmin{p,q} J(L 2 [pi,pj, L 2 [qi,q]) //direct search over p,q, keeping pi,qi fixed

end

where a cost functional J may be given, for example, by Eq. (5).

[0111] Parameters pi, qi, p 2 , q 2 may be initialized, for example, by extrapolating motion of a previously coded block. A search grid may (e.g. must first) be quantized, for example, before a search may be performed, e.g., since parameters may be (e.g. are) real-valued. A search grid resolution may be set, for example, in accordance with an encoder's coding precision of motion vectors.

[0112] FIG. 1A is a diagram illustrating an example communications system 100 in which one or more disclosed embodiments may be implemented. The communications system 100 may be a multiple access system that provides content, such as voice, data, video, messaging, broadcast, etc., to multiple wireless users. The communications system 100 may enable multiple wireless users to access such content through the sharing of system resources, including wireless bandwidth. For example, the communications systems 100 may employ 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-tail unique-word DFT-Spread OFDM (ZT UW DTS-s OFDM), unique word OFDM (UW-OFDM), resource block-filtered OFDM, filter bank multicarrier (FBMC), and the like.

[0113] As shown in FIG. 1A, 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 1 12, though it will be appreciated 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 a "STA", may be configured to transmit and/or receive wireless signals and may include a user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a subscription-based unit, a pager, a cellular telephone, a personal digital assistant (PDA), a smartphone, a laptop, a netbook, a personal computer, a wireless sensor, a hotspot or Mi-Fi device, an Internet of Things (loT) device, a watch or other wearable, a head-mounted display (HMD), a vehicle, a drone, a medical device and applications (e.g., remote surgery), an industrial device and applications (e.g., a robot and/or other wireless devices operating in an industrial and/or an automated processing chain contexts), a consumer electronics device, a device operating on commercial and/or industrial wireless networks, and the like. Any of the WTRUs 102a, 102b, 102c and 102d may be interchangeably referred to as a UE.

[0114] The communications systems 100 may also include a base station 1 14a and/or a base station 1 14b. Each of the base stations 114a, 1 14b 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 1 10, and/or the other networks 112. By way of example, the base stations 1 14a, 114b may be a base transceiver station (BTS), a Node-B, an eNode B, a Home Node B, a Home eNode B, a gNB, a NR NodeB, a site controller, an access point (AP), a wireless router, and the like. While the base stations 114a, 1 14b are each depicted as a single element, it will be appreciated that the base stations 114a, 114b may include any number of interconnected base stations and/or network elements.

[0115] 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 a cell (not shown). These frequencies may be in licensed spectrum, unlicensed spectrum, or a combination of licensed and unlicensed spectrum. A cell may provide coverage for a wireless service to a specific geographical area that may be relatively fixed or that may change over time. The cell may further be 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, i.e., one for each sector of the cell. In an embodiment, the base station 114a may employ 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. [0116] The base stations 1 14a, 1 14b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 1 16, 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).

[0117] More specifically, as noted above, the communications system 100 may be a multiple access system and may employ one or more channel access schemes, such as CDMA, TDMA, FDMA, OFDMA, SC-FDMA, and the like. For example, the base station 1 14a in the RAN 104/113 and the WTRUs 102a, 102b, 102c 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 UL Packet Access (HSUPA).

[0118] 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).

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

[0120] In an embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement multiple radio access technologies. For example, the base station 1 14a and the WTRUs 102a, 102b, 102c may implement LTE radio access and NR radio access together, for instance using dual connectivity (DC) principles. Thus, the air interface utilized by WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and/or transmissions sent to/from multiple types of base stations (e.g., a eNB and a gNB).

[0121] In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement radio technologies such as IEEE 802.11 (i.e., Wireless Fidelity (WiFi), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, 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), GSM EDGE (GERAN), and the like.

[0122] The base station 1 14b in FIG. 1 A may be a wireless router, Home Node B, Home eNode B, or access point, for example, and may utilize any suitable RAT for facilitating wireless connectivity in a localized area, such as a place of business, a home, a vehicle, a campus, an industrial facility, an air corridor (e.g., for use by drones), a roadway, and the like. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.1 1 to establish a wireless local area network (WLAN). In an embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio 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 utilize a cellular-based RAT (e.g., WCDMA, CDMA2000, GSM, LTE, LTE-A, LTE-A Pro, NR etc.) to establish a picocell or femtocell. As shown in FIG. 1A, the base station 1 14b may have a direct connection to the Internet 1 10. Thus, the base station 114b may not be required to access the Internet 110 via the CN 106/115.

[0123] The RAN 104/113 may be in communication with the CN 106/115, which may be any type of network configured to provide voice, data, applications, and/or voice over internet protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have varying quality of service (QoS) requirements, such as differing throughput requirements, latency requirements, error tolerance requirements, reliability requirements, data throughput requirements, mobility requirements, and the like. The CN 106/115 may provide call control, billing services, mobile location-based services, pre-paid calling, Internet connectivity, video distribution, etc., and/or perform high-level security functions, such as user authentication. Although not shown in FIG. 1 A, it will be appreciated that the RAN 104/113 and/or the CN 106/115 may be in direct or indirect communication with other RANs that employ the same RAT as the RAN 104/1 13 or a different RAT. For example, in addition to being connected to the RAN 104/113, which may be utilizing a NR radio technology, the CN 106/115 may also be in communication with another RAN (not shown) employing a GSM, UMTS, CDMA 2000, WiMAX, E-UTRA, or WiFi radio technology.

[0124] The CN 106/115 may also serve as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 1 10, and/or the other networks 112. The PSTN 108 may include circuit- switched telephone networks that provide plain old telephone service (POTS). The Internet 110 may include a global system of interconnected computer networks and devices that use common

communication protocols, such as the transmission control protocol (TCP), user datagram protocol (UDP) and/or the internet protocol (IP) in the TCP/IP internet protocol suite. The networks 112 may include wired and/or wireless communications networks owned and/or operated by other service providers. For example, the networks 112 may include another CN connected to one or more RANs, which may employ the same RAT as the RAN 104/1 13 or a different RAT.

[0125] 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. 1A may be configured to communicate with the base station 114a, which may employ a cellular-based radio technology, and with the base station 114b, which may employ an IEEE 802 radio technology.

[0126] FIG. 1 B is a system diagram illustrating an example WTRU 102. As shown in FIG. 1 B, the WTRU 102 may include 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, among others. It will be appreciated that the WTRU 102 may include any sub-combination of the foregoing elements while remaining consistent with an embodiment.

[0127] The processor 1 18 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), a plurality of microprocessors, one or more microprocessors in association with a DSP core, a controller, a microcontroller, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs) circuits, any other type of integrated circuit (IC), a state machine, and the like. The processor 1 18 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 1 18 may be coupled to the transceiver 120, which may be coupled to the transmit/receive element 122. While FIG. 1 B depicts the processor 118 and the transceiver 120 as separate components, it will be appreciated that the processor 1 18 and the transceiver 120 may be integrated together in an electronic package or chip.

[0128] The transmit/receive element 122 may be configured to transmit signals to, or receive signals from, a base station (e.g., the base station 1 14a) over the air interface 1 16. 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 IR, UV, or visible light signals, for example. 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.

[0129] Although the transmit/receive element 122 is depicted in FIG. 1 B as a single element, the WTRU 102 may include any number of transmit/receive elements 122. More specifically, the WTRU 102 may employ 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 1 16.

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

[0131] 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 organic light-emitting diode (OLED) display unit). The processor 1 18 may also output user data to the speaker/microphone 124, the keypad 126, and/or the display/touchpad 128. In addition, the processor 1 18 may access information from, and store data in, any type of suitable memory, such as the non-removable memory 130 and/or the 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 access information from, and store data in, memory that is not physically located on the WTRU 102, such as on a server or a home computer (not shown).

[0132] The processor 118 may receive power from the power source 134, and may be configured to distribute and/or control the power to the other components in 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 cell batteries (e.g., nickel-cadmium (NiCd), nickel-zinc (NiZn), nickel metal hydride (NiMH), lithium-ion (Li-ion), etc.), solar cells, fuel cells, and the like.

[0133] The processor 118 may also be coupled to the 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 in lieu of, the 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 1 14a, 1 14b) and/or determine its location based on the timing of the signals being received from two or more nearby base stations. It will be appreciated that the WTRU 102 may acquire location information by way of any suitable location- determination method while remaining consistent with an embodiment.

[0134] 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 photographs and/or video), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands free headset, a Bluetooth® module, a frequency modulated (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, the sensors 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.

[0135] The WTRU 102 may include a full duplex radio for which transmission and reception of some or all of the signals (e.g., associated with particular subframes for both the UL (e.g., for transmission) and downlink (e.g., for reception) may be concurrent and/or simultaneous. The full duplex radio may include an interference management unit to reduce and or substantially eliminate self-interference via either hardware (e.g., a choke) or signal processing via a processor (e.g., a separate processor (not shown) or via processor 118). In an embodiment, the WRTU 102 may include a half-duplex radio for which transmission and reception of some or all of the signals (e.g., associated with particular subframes for either the UL (e.g., for transmission) or the downlink (e.g., for reception)).

[0136] FIG. 1 C is a system diagram illustrating the RAN 104 and the CN 106 according to an

embodiment. As noted above, the RAN 104 may employ an E-UTRA radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 104 may also be in communication with the CN 106.

[0137] The RAN 104 may include eNode-Bs 160a, 160b, 160c, though it will be appreciated that the RAN 104 may include any number of eNode-Bs while remaining consistent with an embodiment. The eNode-Bs 160a, 160b, 160c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 1 16. In one embodiment, the eNode-Bs 160a, 160b, 160c may implement MIMO technology. Thus, the eNode-B 160a, for example, may use multiple antennas to transmit wireless signals to, and/or receive wireless signals from, the WTRU 102a.

[0138] Each of the eNode-Bs 160a, 160b, 160c 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, and the like. As shown in FIG. 1 C, the eNode-Bs 160a, 160b, 160c may communicate with one another over an X2 interface.

[0139] The CN 106 shown in FIG. 1 C may include a mobility management entity (MME) 162, a serving gateway (SGW) 164, and a packet data network (PDN) gateway (or PGW) 166. While each of the foregoing elements are depicted as part of the CN 106, it will be appreciated that any of these elements may be owned and/or operated by an entity other than the CN operator.

[0140] The MME 162 may be connected to each of the eNode-Bs 162a, 162b, 162c in the RAN 104 via an S1 interface and may serve 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 an initial attach of the WTRUs 102a, 102b, 102c, and the like. 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. [0141] The SGW 164 may be connected to each of the eNode Bs 160a, 160b, 160c in the RAN 104 via the 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 user planes during inter- eNode B handovers, triggering paging when DL data is available for the WTRUs 102a, 102b, 102c, managing and storing contexts of the WTRUs 102a, 102b, 102c, and the like.

[0142] The SGW 164 may be connected to the 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.

[0143] 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 land-line communications devices. For example, the CN 106 may include, or may 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 the other networks 112, which may include other wired and/or wireless networks that are owned and/or operated by other service providers.

[0144] Although the WTRU is described in FIGS. 1A-1 D as a wireless terminal, it is contemplated that in certain representative embodiments that such a terminal may use (e.g., temporarily or permanently) wired communication interfaces with the communication network.

[0145] In representative embodiments, the other network 112 may be a WLAN.

[0146] 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 an access or an interface to a Distribution System (DS) or another type of wired/wireless network that carries traffic in to and/or out of the BSS. Traffic to STAs that originates from outside the BSS may arrive through the AP and may be delivered to the STAs. Traffic originating from STAs to destinations outside the BSS may be sent to the AP to be delivered to respective destinations. Traffic between STAs within the BSS may be sent through the AP, for example, where the source STA may send traffic to the AP and the AP may deliver the traffic to the destination STA. The traffic between STAs within a BSS may be considered and/or referred to as peer-to- peer traffic. The peer-to-peer traffic may be sent between (e.g., directly between) the source and destination STAs with a direct link setup (DLS). In certain representative embodiments, the DLS may use an 802.11 e DLS or an 802.1 1z tunneled DLS (TDLS). A WLAN using an Independent BSS (IBSS) mode may not have an AP, and the STAs (e.g., all of the STAs) within or using the IBSS may communicate directly with each other. The IBSS mode of communication may sometimes be referred to herein as an "ad- hoc" mode of communication. [0147] When using the 802.1 1 ac infrastructure mode of operation or a similar mode of operations, the 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 dynamically set width via signaling. The primary channel may be the operating channel of the BSS and may be used by the STAs to establish a connection with the AP. In certain representative embodiments, Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA) may be implemented, for example in in 802.1 1 systems. For CSMA/CA, the 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. One STA (e.g., only one station) may transmit at any given time in a given BSS.

[0148] High Throughput (HT) STAs may use a 40 MHz wide channel for communication, for example, via a combination of the primary 20 MHz channel with an adjacent or nonadjacent 20 MHz channel to form a 40 MHz wide channel.

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

[0150] Sub 1 GHz modes of operation are supported by 802.11 af and 802.1 1 ah. The channel operating bandwidths, and carriers, are reduced in 802.11 af and 802.11 ah relative to those used in 802.11 η, and 802.11 ac. 802.11 af supports 5 MHz, 10 MHz and 20 MHz bandwidths in the TV White Space (TVWS) spectrum, and 802.1 1 ah supports 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz bandwidths using non-TVWS spectrum. According to a representative embodiment, 802.11 ah may support Meter Type Control/Machine- Type Communications, such as MTC devices in a macro coverage area. MTC devices may have certain capabilities, for example, limited capabilities including support for (e.g., only support for) certain and/or limited bandwidths. The MTC devices may include a battery with a battery life above a threshold (e.g., to maintain a very long battery life).

[0151] WLAN systems, which may support multiple channels, and channel bandwidths, such as 802.11 η, 802.11 ac, 802.11 af, and 802.1 1 ah, include a channel which may be designated as the 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 a STA, from among all STAs in operating in a BSS, which supports the smallest bandwidth operating mode. In the example of 802.11 ah, the primary channel may be 1 MHz wide for STAs (e.g., MTC type devices) that support (e.g., only support) a 1 MHz mode, 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) settings may depend on the status of the primary channel. If the primary channel is busy, for example, due to a STA (which supports only a 1 MHz operating mode), transmitting to the AP, the entire available frequency bands may be considered busy even though a majority of the frequency bands remains idle and may be available.

[0152] In the United States, the available frequency bands, which may be used by 802.11 ah, are from 902 MHz to 928 MHz. In Korea, the available frequency bands are from 917.5 MHz to 923.5 MHz. In Japan, the available frequency bands are from 916.5 MHz to 927.5 MHz. The total bandwidth available for 802.1 1 ah is 6 MHz to 26 MHz depending on the country code.

[0153] FIG. 1 D is a system diagram illustrating the RAN 1 13 and the CN 115 according to an embodiment. As noted above, the RAN 1 13 may employ an NR radio technology to communicate with the WTRUs 102a, 102b, 102c over the air interface 116. The RAN 113 may also be in communication with the CN 115.

[0154] The RAN 113 may include gNBs 180a, 180b, 180c, though it will be appreciated 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 M IMO technology. For example, gNBs 180a, 108b may utilize beamforming to transmit signals to and/or receive signals from the gNBs 180a, 180b, 180c. Thus, the gNB 180a, for example, may use multiple antennas to transmit wireless signals to, and/or receive wireless signals from, the WTRU 102a. In an embodiment, the gNBs 180a, 180b, 180c may implement carrier aggregation technology. 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 unlicensed spectrum while the remaining component carriers may be on licensed spectrum. In an embodiment, the gNBs 180a, 180b, 180c may implement Coordinated Multi-Point (CoMP) technology. For example, WTRU 102a may receive coordinated transmissions from gNB 180a and gNB 180b (and/or gNB 180c).

[0155] The WTRUs 102a, 102b, 102c may communicate with 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 gNBs 180a, 180b, 180c using subframe or transmission time intervals (TTIs) of various or scalable lengths (e.g., containing varying number of OFDM symbols and/or lasting varying lengths of absolute time).

[0156] 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 the standalone configuration, WTRUs 102a, 102b, 102c may communicate with gNBs 180a, 180b, 180c without also accessing other RANs (e.g., such as eNode-Bs 160a, 160b, 160c). In the standalone configuration, WTRUs 102a, 102b, 102c may utilize one or more of gNBs 180a, 180b, 180c as a mobility anchor point. In the standalone configuration, WTRUs 102a, 102b, 102c may communicate with gNBs 180a, 180b, 180c using signals in an unlicensed band. In a non-standalone configuration WTRUs 102a, 102b, 102c may communicate with/connect to gNBs 180a, 180b, 180c while also communicating with/connecting to another RAN such as eNode-Bs 160a, 160b, 160c. For example, WTRUs 102a, 102b, 102c may implement DC principles to communicate with one or more gNBs 180a, 180b, 180c and one or more eNode-Bs 160a, 160b, 160c substantially simultaneously. In the non-standalone configuration, eNode-Bs 160a, 160b, 160c may serve as a mobility anchor for WTRUs 102a, 102b, 102c and gNBs 180a, 180b, 180c may provide additional coverage and/or throughput for servicing WTRUs 102a, 102b, 102c.

[0157] 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 of network slicing, dual connectivity, interworking between NR and E-UTRA, routing of user plane data towards User Plane Function (UPF) 184a, 184b, routing of control plane information towards Access and Mobility Management Function (AMF) 182a, 182b and the like. As shown in FIG. 1 D, the gNBs 180a, 180b, 180c may communicate with one another over an Xn interface.

[0158] The CN 1 15 shown in FIG. 1 D 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. While each of the foregoing elements are depicted as part of the CN 1 15, it will be appreciated that any of these elements may be owned and/or operated by an entity other than the CN operator.

[0159] The AMF 182a, 182b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 1 13 via an N2 interface and may serve as a control node. For example, the AMF 182a, 182b may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, support for network slicing (e.g., handling of different PDU sessions with different requirements), selecting a particular SMF 183a, 183b, management of the registration area, termination of NAS signaling, mobility management, and the like. Network slicing may be used by the AMF 182a, 182b in order to customize CN support for WTRUs 102a, 102b, 102c based on the types of services being utilized WTRUs 102a, 102b, 102c. For example, different network slices may be established for different use cases such as services relying on ultra-reliable low latency (URLLC) access, services relying on enhanced massive mobile broadband (eMBB) access, services for machine type communication (MTC) access, and/or the like. The AM F 162 may provide a control plane function for switching between the RAN 1 13 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.

[0160] The SMF 183a, 183b may be connected to an AMF 182a, 182b in the CN 115 via an N1 1 interface. The SMF 183a, 183b may also be connected to a UPF 184a, 184b in the CN 115 via an N4 interface. The SMF 183a, 183b may select and control the UPF 184a, 184b and configure the routing of traffic through the UPF 184a, 184b. The SMF 183a, 183b may perform other functions, such as managing and allocating UE IP address, managing PDU sessions, controlling policy enforcement and QoS, providing downlink data notifications, and the like. A PDU session type may be IP-based, non-IP based, Ethernet- based, and the like.

[0161] The UPF 184a, 184b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 1 13 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 UPF 184, 184b may perform other functions, such as routing and forwarding packets, enforcing user plane policies, supporting multi-homed PDU sessions, handling user plane QoS, buffering downlink packets, providing mobility anchoring, and the like.

[0162] The CN 115 may facilitate communications with other networks. For example, the CN 1 15 may include, or may communicate with, an IP gateway (e.g., an IP multimedia subsystem (IMS) server) that serves as an interface between the CN 1 15 and the PSTN 108. In addition, the CN 1 15 may provide the WTRUs 102a, 102b, 102c with access to the other networks 1 12, which may include other wired and/or wireless networks that are owned and/or operated by other service providers. In one embodiment, the WTRUs 102a, 102b, 102c may be connected to a local Data Network (DN) 185a, 185b through the UPF 184a, 184b via the N3 interface to the UPF 184a, 184b and an N6 interface between the UPF 184a, 184b and the DN 185a, 185b.

[0163] In view of Figures 1A-1 D, and the corresponding description of Figures 1A-1 D, one or more, or all, of the functions described herein with regard to one or more of: WTRU 102a-d, Base Station 1 14a-b, eNode-B 160a-c, MME 162, SGW 164, PGW 166, gNB 180a-c, AMF 182a-b, UPF 184a-b, SMF 183a-b, DN 185a-b, and/or any other device(s) 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.

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

[0165] The one or more emulation devices may perform the one or more, including all, functions while not being implemented/deployed as part of a wired and/or wireless communication network. For example, the emulation devices may be utilized in a testing scenario in a testing laboratory and/or a non-deployed (e.g., testing) wired and/or wireless communication network in order to implement testing of one or more components. The one or more emulation devices may be test equipment. Direct RF coupling and/or wireless communications via RF circuitry (e.g., which may include one or more antennas) may be used by the emulation devices to transmit and/or receive data.