Method for simplifying adaptive loop filters in video coding
By adaptively selecting ALF procedures based on the time layer of frames within a coding scheme, the method simplifies adaptive loop filters in video coding, reducing computational complexity while maintaining video quality.
Patent Information
- Application Number
- JP2023196659
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2017-12-18
- Filing Date
- 2023-11-20
- Publication Date
- 2025-04-02
- Estimated Expiration
- 2038-10-31
AI Technical Summary
Existing video coding systems face challenges in efficiently simplifying adaptive loop filters (ALFs), which are crucial for optimizing computational complexity while maintaining video quality.
The proposed method involves adaptively selecting an ALF procedure based on the time layer of a frame within a coding scheme, allowing for the use of less computationally complex procedures for higher time layers and more complex procedures for lower time layers, along with selective skipping of block classifications and gradient calculations.
This approach reduces computational complexity while maintaining video quality by dynamically adjusting ALF procedures based on the time layer of frames, thereby optimizing resource usage in video coding systems.
Smart Images

Figure 0007656015000023 
Figure 0007656015000024 
Figure 0007656015000025
Abstract
Description
[Technical field]
[0001] The present application relates to a method for simplifying an adaptive loop filter in video coding. [Background technology]
[0002] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Patent Application No. 62 / 579,977, filed November 1, 2017, and U.S. Provisional Patent Application No. 62 / 607,033, filed December 18, 2017, the contents of which are incorporated by reference.
[0003] Video coding systems are widely used to compress digital video signals to reduce the storage needs and / or transmission bandwidth of such signals. Among various types of video coding systems, such as block-based systems, wavelet-based systems, and object-based systems, block-based hybrid video coding systems may be the most widely used and deployed. Examples of block-based video coding systems include international video coding standards such as H.261, MPEG-1, MPEG-2, H.263, H.264 / AVC, and H.265 / HEVC. Summary of the Invention [Problem to be solved by the invention]
[0004] A novel system, method and means for simplifying adaptive loop filters in video coding is provided. [Means for solving the problem]
[0005] A system, method and means are disclosed for adaptively selecting an adaptive loop filter (ALF) procedure for a frame based on which temporal layer the frame is in. The ALF procedures may vary in computational complexity.
[0006] A decoder may receive an indication of whether ALF is enabled. The decoder may apply ALF to a current frame based on the indication that ALF is enabled. The current frame may be in a temporal layer of a coding scheme. The coding scheme may include multiple temporal layers ranging from a low temporal level to a high temporal level. The decoder may determine a temporal layer level of the current frame within the coding scheme.
[0007] The decoder may select an ALF procedure based on a temporal layer level of the current frame. If the temporal layer level of the current frame is higher than some other temporal layer levels in the coding scheme, a first ALF procedure that is less computationally complex than a second ALF procedure may be selected for the current frame. If the temporal layer level is the lowest in the coding scheme, a second ALF procedure may be selected for the current frame. The decoder may then execute the selected ALF procedure for the current frame.
[0008] The current frame may include a current block having a plurality of pixels. A computationally less complex ALF procedure may classify the block based on the subset of pixels. If the temporal layer level of the current frame is the highest in the coding scheme, the subset of pixels may be selected from the pixels in the current block. One or more gradients may be calculated for the current block using the selected subset of pixels, and the current block may be classified for ALF based on the calculated gradients. The subset of pixels may be selected from the pixels in the current block by skipping at least one pixel in the current block.
[0009] For example, the subset of pixels may be selected from the pixels in the current block by skipping at least one pixel vertically and / or skipping at least one pixel horizontally. If the temporal layer level of the current frame is the highest in the coding scheme, the subset of pixels may be selected from the pixels in the current block by skipping one or more pixels vertically and skipping one or more pixels horizontally. If the temporal layer level of the current frame is higher than the lowest level and lower than the highest level in the coding scheme, the subset of pixels may be selected from the pixels in the current block by skipping one or more pixels vertically, by skipping one or more pixels horizontally, or by skipping one or more pixels diagonally.
[0010] The ALF procedure may include a block classification based on each pixel of the current block, which may be more computationally complex than an ALF procedure that includes block classification based on a subset of pixels. A gradient may be calculated for the current block using each pixel in the current block, and the current block may be classified for ALF based on the calculated gradient.
[0011] The decoder may receive an indication that a subset of pixels should be selected for computing gradients and / or an indication of how the subset of pixels should be selected.
[0012] A computationally less complex ALF procedure may include block classification based on fewer gradient calculations than block classification based on each pixel in a block. For example, an ALF procedure may include block classification based on gradient calculations for a subset of pixels (e.g., based on fewer gradient calculations than gradient calculations for all pixels). If the temporal layer level of the current frame is higher in the coding scheme, gradient calculations in at least one of the vertical, horizontal, or diagonal directions of the pixels of the current block may be skipped. If the temporal layer level of the current frame is the lowest in the coding scheme, gradients in each of the vertical, horizontal, or diagonal directions of the pixels of the current block may be calculated.
[0013] A computationally less complex ALF procedure may include selectively skipping block classification. If the temporal layer level of the current frame is higher than some temporal layer level in the coding scheme, block classification may be skipped for the current frame. If the temporal layer level of the current frame is the lowest in the coding scheme, block classification may be performed for the current frame.
[0014] A computationally less complex ALF procedure may conditionally skip ALF filtering. One or more gradients may be calculated for a current block of a current frame using the pixels of the current block. A sum of the gradients may be determined for the current block and then compared to a threshold to determine whether ALF should be disabled for the current block. If the sum of the gradients is less than the threshold, ALF may be disabled for the current block and the current block may be reconstructed with ALF disabled. [Brief description of the drawings]
[0015] [Figure 1] 1 is an exemplary block diagram of a block-based hybrid video encoder. [Diagram 2] 1 is an exemplary block diagram of a block-based hybrid video decoder. [Diagram 3] 1A and 1B are diagrams showing examples of ALF shapes: (a) a 5×5 diamond shape, (b) a 7×7 diamond shape, and (c) a 9×9 diamond shape. [Figure 4] FIG. 1 illustrates an example of an ALF procedure in an encoder. [Diagram 5] Figure 14 shows examples of gradient calculations for (a) block classification where gradients are calculated for every pixel in a 6x6 window for every 2x2 block; (b) a window that is subsampled by two horizontally; (c) a window that is subsampled by two vertically; and (d) a window that is subsampled by two horizontally and two vertically. [Figure 6] FIG. 1 illustrates an example of constructing prefix codes for different sub-sampling schemes. [Figure 7] FIG. 1 illustrates an example of an ALF procedure with reduced computational complexity using frame adaptive ALF skipping. [Figure 8] FIG. 13 shows an example of block classification for a 2×2 block with ALF on / off decision using gradient sum gsum and threshold TG. [Figure 9] FIG. 1 is a diagram showing an example of applying ALF to a 2×2 block. [Figure 10] FIG. 13 illustrates an example of training a threshold TG using a histogram of frame gradient sum (gsum) values. [Figure 11] FIG. 13 illustrates an example rate-distortion (RD)-based approach used to select between applying ALF and using pixel-adaptive ALF skipping with a skip fraction of “A.” [Figure 12] FIG. 13 illustrates an exemplary RD cost-based selection process when two skip percentages ("A" and "B") are specified for pixel adaptive ALF skip. [Figure 13]FIG. 13 illustrates an example of parsing parameters related to pixel adaptive ALF skipping. [Figure 14A] FIG. 1 is a system diagram illustrating an example communication system in which one or more disclosed embodiments may be implemented. [Figure 14B] A system diagram illustrating an example wireless transmit / receive unit (WTRU) that may be used within the communications system illustrated in FIG. 14A. [Figure 14C] A system diagram illustrating an example radio access network (RAN) and an example core network (CN) that may be used within the communication system illustrated in FIG. 14A. [Figure 14D] FIG. 14B 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. 14A. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] A detailed description of exemplary embodiments will now be described with reference to various figures. While this description provides detailed examples of possible implementations, it should be noted that the details are illustrative and in no way limiting in scope.
[0017] FIG. 1 illustrates an example of a block-based hybrid video encoding system. An input video signal 302 may be processed block-by-block. For example, to efficiently compress high-resolution (e.g., 1080p or higher) video signals, an extended block size (e.g., coding unit (CU)) may be used (e.g., in HEVC). A CU may be, for example, 64×64 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 the PUs. Spatial prediction 360 and / or temporal prediction 362 may be performed, for example, for (e.g., each) input video block (e.g., macroblock (MB) or CU).
[0018] Spatial prediction (e.g., intra prediction) may, for example, predict a current video block by using pixels from samples of already coded neighboring blocks (e.g., reference samples) in a (e.g., same) video picture / slice. Spatial prediction may reduce spatial redundancy that may be inherent to a video signal. Temporal prediction (e.g., inter prediction or motion compensated prediction) may, for example, predict a current video block by using reconstructed pixels from an already coded video picture. Temporal prediction may reduce temporal redundancy that may be inherent to a video signal. A temporal prediction signal for a given video block may be signaled, for example, by one or more motion vectors (MVs), which may indicate the amount and direction of motion between the current block and a reference block. A reference picture index (e.g., per video block) may be sent, for example, when multiple reference pictures may be supported (e.g., for H.264 / AVC or HEVC). The reference index may be used to identify a reference picture (e.g., in reference picture store 364) from which the temporal prediction signal came.
[0019] A mode decision block 380 in the encoder may choose a (e.g., best) prediction mode (e.g., after spatial and / or temporal prediction), for example, based on a rate-distortion optimization procedure. The prediction block may be subtracted from the current video block 316. The prediction residual may be decorrelated 306 (e.g., using the transform 304) and quantized. The quantized residual coefficients may be inverse quantized 310 and inverse transformed 312, for example, to form a reconstructed residual. The reconstructed residual may be added back to the prediction block 326, for example, to form a reconstructed video block. In-loop filtering 366 (e.g., a deblocking filter and / or an adaptive loop filter) may be applied to the reconstructed video block, for example, before it is placed into the reference picture store 364 and used to code future video blocks. The entropy coding unit 308 may output the video bitstream 320 by, for example, compressing and packing the coding mode (e.g., inter or intra), prediction mode information, motion information, and / or quantized residual coefficients. The encoder may include a WTRU (e.g., as described herein), a processor of the WTRU, etc.
[0020] FIG. 2 illustrates an example of a block-based video decoder. A video bitstream 202 may be unpacked and entropy decoded in an entropy decoding unit 208. The coding mode and prediction information may be sent, for example, to a spatial prediction unit 260 (if intra-coded, for example) or to a temporal prediction unit 262 (if inter-coded, for example) to form a prediction block. The residual transform coefficients may be provided, for example, to an inverse quantization unit 210 and an inverse transform unit 212 to reconstruct a residual block. The prediction block and the residual block may be summed, for example, during summation 226. In-loop filtering may be applied, for example, to a reconstructed block before it is stored in a reference picture store 264. The reconstructed video in the reference picture store 264 may be sent out, for example, to drive a display device and / or to predict future video blocks. The decoder may include a WTRU (e.g., as described herein), a processor of a WTRU, etc.
[0021] Motion information (e.g., MVs and reference picture indexes) may be determined by an encoder and transmitted (e.g., explicitly) to a decoder. A significant amount of overhead may be spent on coding motion parameters for inter-coded blocks. The overhead of signaling motion information may be reduced, for example, by a coding mode (e.g., FRUC). For example, when a FRUC coding mode is available for a CU, signaling of MVs and / or reference picture indexes may be skipped. The information may be derived (e.g., on the decoder side), for example, by a template matching technique or a bidirectional matching technique.
[0022] The in-loop filter may be employed in the encoder and / or the decoder. The in-loop filter may include one or more of a deblocking filter, a sample adaptive offset, or an ALF. The ALF may be a Wiener filter that may be applied to the reconstructed block (e.g., to minimize the mean square error between the original block and the reconstructed block). The ALF may be trained in the encoder. The ALF parameters may be signaled in the bitstream. The ALF may be applied to the luma and / or chroma components. The ALF may be applied to the luma component (e.g., the luma ALF) and / or the chroma component (e.g., the chroma ALF). The luma ALF and the chroma ALF may be trained separately. The luma and chroma components may not share a common ALF.
[0023] The chroma ALF may have fewer options compared to the luma ALF. For example, the luma ALF may choose among three different filter shapes: 5×5 diamond, 7×7 diamond, and 9×9 diamond. FIG. 3 shows an example of ALF shapes: (a) 5×5 diamond, (b) 7×7 diamond, and (c) 9×9 diamond. The chroma ALF may use (e.g., always use) a 5×5 diamond filter. For the luma ALF, the ALF may be applied to the entire frame using a frame-level ALF, or block-wise using a block-level ALF. A frame-level ALF may be used for the chroma ALF. For the luma ALF, block classification may be performed on each 2×2 block to categorize them into one of 25 classes. Each class may use a different ALF filter. Block classification may not be performed on the chroma components. The chroma samples in a frame may be considered to belong to a class (e.g., class 0).
[0024] Block classification may be performed on the reconstructed luma samples. FIG. 4 shows an example of an ALF procedure in an encoder. Block classification may be performed on the luma components of a reconstructed frame to classify one or more (e.g., each) 2×2 blocks. The encoder may, for example, train a 9×9 frame-level luma ALF for (e.g., each) class using the corresponding reconstructed pixels and the original pixels in the frame. The encoder may select several (e.g., all possible) ALF block depths (
[0025]
number
[0026] ), the 9x9 block-level ALF may be trained by testing the 9x9 frame-level and / or block-level luma ALF may be diamond-shaped. For the ALF block depth, the encoder may perform one or more (e.g., two) iterations.
[0027] For example, in the first iteration, a frame filtered by a 9x9 frame-level ALF may be used as a starting point. The encoder may determine a block partition for a coding tree unit (CTU) for using the block-level ALF. The encoder may start at the CTU and, for example, determine the CU depth to which the current block depth is associated and the
[0028]
number
[0029] If the current block depth is less than the associated CU depth and (
[0030]
number
[0031] If the depth of the ALF filter is not shallower than unFilt_SSD, then for a given block, two sum of squared differences (SSD) values may be calculated: the SSD between the ALF filtered block and the original uncompressed block (Filt_SSD) and the SSD between the unfiltered reconstructed block and the original block (unFilt_SSD). If Filt_SSD is less than unFilt_SSD, then ALF may be enabled for the block. If Filt_SSD is not less than unFilt_SSD, then ALF may be disabled for the block. Once the CTUs in a frame are processed, a rate-distortion (RD) cost for the block-filtered frame may be calculated and associated ALF parameters for the block-filtered frame may be saved.
[0032] In the second iteration, a different set of ALFs may be trained using the blocks for which the ALFs were selected during the first iteration. The different set of ALFs may be applied to the reconstructed frame (e.g., the entire reconstructed frame) as a frame-level ALF. The encoder may determine block partitioning for one or more (e.g., each) CTUs for which to use the different set of ALFs. The encoder may start at the CTU. The encoder may, for example, determine the CU depth and (
[0033]
number
[0034] If the current block depth is less than the associated CU depth and (
[0035]
number
[0036] If the depth of the ALF filter is not shallower than unFilt_SSD, then for a given block, two sum of squared differences (SSD) values may be calculated: the SSD between the ALF filtered block and the original uncompressed block (Filt_SSD) and the SSD between the unfiltered reconstructed block and the original block (unFilt_SSD). If Filt_SSD is less than unFilt_SSD, then ALF may be enabled for the block. If Filt_SSD is not less than unFilt_SSD, then ALF may be disabled for the block. Once the CTUs in a frame are processed, a rate-distortion (RD) cost for the block-filtered frame may be calculated and associated ALF parameters for the block-filtered frame may be saved.
[0037] The candidate block-level ALF that results in the minimum RD cost may be selected as the block-level ALF. The RD cost of the frame-level ALF and the RD cost of the block-level ALF may be compared. The frame-level and / or block-level ALF (e.g., of the shape of the filter) that results in the lower RD cost may be selected. The encoder may test other filter shapes (e.g., a 7×7 filter and a 5×5 filter) and / or select the filter shape with the lower RD cost. If the ALF is not used, the RD cost of the selected frame-level or block-level ALF in the selected filter shape may be compared to the RD cost. The scheme that results in the lower RD cost may be determined. Based on the determination, the picture-level ALF flag (e.g., alf_flag) may have a value of 1 (e.g., indicating an ALF on) or 0 (e.g., indicating an ALF off). When the luma ALF is available, the chroma ALF may be calculated. A decision on whether to use the chroma ALF for a frame or picture may be made based on the RD cost.
[0038] A test (e.g., performed for the current frame) may be performed to check for an ALF generated for a previous frame. The previous frame may belong to the same temporal layer as the current frame or a temporal layer lower than the current frame's temporal layer. If using the ALF generated for the previous frame results in the lowest RD cost, a temporal prediction flag of 1 and an index to the previous ALF may be signaled.
[0039] Block classification may be performed on the luma components of (e.g., each) 2×2 reconstructed block to categorize the reconstructed block into one of 25 classes. The classification index C may be derived, for example, according to Equation 1.
[0040]
number
[0041] D may be a directionality,
[0042]
number
[0043] can be the quantized value of the activity. D and
[0044]
number
[0045] To calculate , for example, the horizontal, vertical, and two diagonal gradients may be calculated using a 1-D Laplacian according to Equations 2-5. The horizontal, vertical, and two diagonal gradients may be referred to as directional gradients.
[0046]
number
[0047] i and j may refer to the coordinates of the top-left sample in a 2×2 reconstructed block, and R(i,j) may indicate the reconstructed sample at coordinate (i,j). The maximum and minimum values of the horizontal and vertical gradients may be set, for example, as in Equation 6.
[0048]
number
[0049] The maximum and minimum values of the two diagonal gradients may be set, for example, as shown in Equation 7.
[0050]
number
[0051] The value of the directionality D may be derived by comparing the above values against each other and against two thresholds t1 and t2 as follows: Step 1.
[0052]
number
[0053] and
[0054]
number
[0055] If both and are true, then D may be set to 0. Step 2.
[0056]
number
[0057] If it is, go to step 3, otherwise go to step 4. Step 3.
[0058]
number
[0059] If so, then D may be set to 2; otherwise, D may be set to 1. Step 4.
[0060]
number
[0061] If so, then D may be set to 4; otherwise, D may be set to 3.
[0062] The activity value A may be calculated, for example, according to Equation 8.
[0063]
number
[0064] A may be further quantized inclusively in the range of 0 to 4, with the quantized values being:
[0065]
number
[0066] It can be shown as:
[0067] LIC may be used for inter prediction of content with illumination changes over time. LIC may involve deriving a scale factor "a" and / or offset "b" by a least squares approach for an inter-coded CU. For example, neighboring reconstructed samples and corresponding temporal reference samples indicated by motion information may be used in a least squares approach. The encoder may check whether LIC is enabled for a picture based on whether there is an illumination change between the current picture and the reference picture of the current picture, for example. Histograms of the current picture and the reference picture of the current picture may be calculated in the encoder. If the histogram difference between the current picture and the reference picture is smaller than a given threshold, LIC may be disabled for the current picture. If the histogram difference between the current picture and the reference picture is larger than a given threshold, LIC may be enabled for the current picture.
[0068] The ALF may be applied to reconstructed luma and / or chroma samples (e.g., at an encoder and / or decoder) as an in-loop process. The ALF procedure may include one or more of block classification or filtering. Block classification may be based on a granularity of 2×2 blocks. Filtering may be based on one or more filter sizes from the set of {9×9, 7×7, 5×5}.
[0069] Different ALF procedures may have different computational complexities of the encoder and / or decoder. Some ALF procedures may be associated with smaller computational complexities than other ALF procedures. As an example, for block classification, the computational complexity of the encoder and / or decoder may be reduced by selecting a subset of pixels of a block. The computational complexity of the encoder and / or decoder may be reduced by selectively disabling filtering.
[0070] Performing the ALF procedure may include, for example, applying block classification and / or filtering to the reconstructed block at the encoder and / or decoder. Classifying a 2×2 block may include computing four directional gradients for the luma component of the block. Every 2×2 block may be classified. Filtering may include applying a 5×5 diamond filter (e.g., 7 taps), a 7×7 diamond filter (e.g., 13 taps), or a 9×9 diamond filter (e.g., 21 taps) to the luma component and / or a 5×5 diamond filter to the chroma component. The minimum filter taps may be 7. Filter taps greater than 7 may be used for the luma component. Symmetry of the ALF may be considered.
[0071] ALF procedures of varying computational complexity may be used based on time layers and / or gradient calculations.
[0072] The ALF procedure may be applied to a frame based on which temporal layer in the coding scheme the frame is in. The coding scheme may include a hierarchical coding structure. The coding scheme may include multiple temporal layers. A temporal layer may include one or more frames. Each temporal layer may be associated with a temporal layer level. In a non-limiting example, the coding scheme may include four temporal layers at temporal layer levels 0, 1, 2, and 3, respectively. Frames at temporal layer levels 3 and 2 may be in a higher temporal layer in the coding scheme. Frames at temporal layer level 3 may be in the highest temporal layer in the coding scheme. Frames at temporal layer levels 0 and 1 may be in a lower temporal layer in the coding scheme. Frames at temporal layer level 0 may be in the lowest temporal layer in the coding scheme. In another non-limiting example, the coding scheme may include five temporal layers at temporal layer levels 0, 1, 2, 3, and 4, respectively. Frames at temporal layer level 2 may be in an intermediate temporal layer in a coding scheme that includes five temporal layers. Frames at a higher temporal layer level may refer to frames at a lower temporal layer level. There may be multiple temporal levels with different quality settings, for example, frames at a lower temporal layer level may have better quality using more coding bits compared to frames at a higher temporal layer level.
[0073] In one example, block classification in one or more of the encoder or decoder may be skipped for frames in higher temporal layers in a coding scheme. Samples in a temporal frame of an upper layer may be mapped to one class. The encoder may quantize the higher temporal layer or layers using a larger QP. Frames (e.g., reconstructed frames) in the higher temporal layer or layers may be smoother, e.g., due to heavy quantization. Frames in the higher temporal layer or layers may include lower gradients than frames in lower or intermediate temporal layers. For frames in the higher temporal layer or layers, block classification may result in fewer classes than block classification for lower or intermediate temporal layers.
[0074] In one example, different ALF procedures may include block classification techniques that differ in terms of computational complexity. Reduced computational complexity block classification may be used for frames in one or more higher temporal layers. For example, for frames in one or more higher temporal layers, the blocks of the frame may be classified into two classes. For frames in the middle or lower temporal layers, the blocks of the frame may be classified into 25 classes.
[0075] Fewer gradients may be calculated for blocks in frames in one or more higher temporal layers for block classification. For frames in one or more higher temporal layers, gradient calculations in one or more of the vertical, horizontal, or diagonal directions of pixels of the blocks in the frame may be skipped. For example, gradient calculations in the diagonal directions of pixels of the blocks may be skipped. Gradients in the horizontal and vertical directions (e.g., only those) may be calculated.
[0076] Gradient computation may be performed for blocks in a frame, for example, for block classification based on a subset of pixels in the block. Figure 5 shows an example of gradient computation for (a) block classification where gradients may be computed for each pixel in a 6x6 window for each 2x2 block, (b) a window that is subsampled by two horizontally, (c) a window that is subsampled by two vertically, and (d) a window that is subsampled by two horizontally and two vertically.
[0077] In one example, for each 2×2 block, a window of 6×6 pixels may be used (e.g., as shown in FIG. 5(a)). For each pixel in this window, four gradients may be calculated. The four gradients may include gradients in the horizontal, vertical, and two diagonal directions.
[0078] Gradients may be calculated for a subset of pixels of a block in a frame for block classification. In one example, gradients may be calculated for a subset of pixels in a 6×6 window of pixels for one or more 2×2 blocks (e.g., as shown in FIG. 5(b)-FIG. 5(d)). Computing gradients using a subset of pixels may reduce computational complexity (e.g., at an encoder or decoder). For example, a subset of pixels may be selected from pixels in a block (e.g., a current block) by skipping at least one pixel horizontally among the pixels in the block. FIG. 5(b) may show an example of computing gradients for a subset of pixels in a 6×6 window of pixels for a 2×2 block. As shown in FIG. 5(b), pixels in every other column may be skipped. The number of pixels used to compute gradients in a 6×6 window of pixels may be reduced (e.g., by a factor of two). By using a subset of pixels (e.g., subsampling), a 6×6 window of pixels may become a 3×6 window of pixels. Gradients may be calculated for one or more (e.g., each) pixels in the 3×6 window. The gradient calculations (e.g., the number of gradients calculated or to be calculated) may be reduced by a factor of two for one or more 2×2 blocks. The gradient calculations (e.g., of Equations 2-5) may be updated based on a subset of pixels. For example, a subsampling operation may be incorporated into the gradient calculations of Equations 2-5. An updated set of gradient equations for a reduced number (e.g., subset) of pixels by half horizontally may be given by Equations 9-12.
[0079]
number
[0080] The gradients calculated in Equations 9-12 may be multiplied by a subsampling factor (eg, 2) to preserve the range of values of the gradients before subsampling.
[0081] Gradients may be calculated for a subset of pixels that are subsampled vertically. Figure 5(c) may show an example of calculating gradients for a subset of pixels in a 6x6 pixel window for a 2x2 block. As shown in Figure 5(c), pixels in every other row may be skipped vertically. By using a subset of pixels (e.g., subsampling), a 6x6 pixel window may become a 6x3 window as shown in Figure 5(c).
[0082] Gradients may be calculated for subsets of pixels that are subsampled vertically and horizontally. Figure 5(d) may show an example of calculating gradients for a subset of pixels in a 6x6 pixel window for a 2x2 block. As shown in Figure 5(d), pixels in every other row vertically and every other column horizontally may be skipped. By using a subset of pixels (e.g., subsampling), a 6x6 pixel window may become a 6x3 window as shown in Figure 5(d).
[0083] The subset of pixels may be used for gradient computation in different block classification schemes, for example, the subset of pixels may be selected to compute gradients for a block classification performed on a 4×4 block with a window of 8×8 pixels.
[0084] Gradients may be calculated for a subset of pixels in a block of a frame that belongs to a higher temporal layer (e.g., the highest temporal layer or the next highest temporal layer) and / or an intermediate temporal layer. Gradients may be calculated for a subset of pixels in a block of a frame that belongs to a lower temporal layer. Blocks in a frame that belong to a higher temporal layer may be smoother (e.g., may have weaker edges). Gradients for blocks of frames that belong to higher temporal layers, intermediate temporal layers, and / or lower temporal layers may be calculated using subsampled operations.
[0085] In one example, a frame in the highest temporal layer may use a vertically and horizontally subsampled subset of pixels for gradient calculation. At least one pixel in the block may be skipped vertically and at least one pixel in the block may be skipped horizontally. For example, if the temporal layer level of the current frame is the highest level in the coding scheme, an ALF procedure for the current frame may be selected. In the ALF procedure for the current frame in the highest temporal layer, a subset of pixels may be selected from pixels in a block of the current frame by skipping every other row of pixels vertically and every other column of pixels horizontally. A gradient for the block may be calculated using the selected subset of pixels. The block may be classified for ALF based on the calculated gradient. The block may be the current block.
[0086] A frame in a lower temporal layer, an intermediate temporal layer, or a second highest temporal layer may use subsampling of pixels in a block in one direction (e.g., only vertically, only horizontally, or only one of the diagonal directions). The subsampling may reduce pixels in a window of 6×6 pixels by a factor of two.
[0087] For example, an ALF procedure for the current frame may be selected if the temporal layer level of the current frame is higher than the lowest level and lower than the highest level in the coding scheme. The selected ALF procedure may be different from the ALF procedure used for the frame in the highest temporal layer. The selected ALF procedure may be different from the ALF procedure used for the frame in the lowest temporal layer. In the ALF procedure, a subset of pixels may be selected from pixels in a block of the current frame by skipping at least one pixel in at least one of a vertical direction, a horizontal direction, or a diagonal direction of the pixels in the block. A gradient for the block may be calculated using the selected subset of pixels. The block may be classified for ALF based on the calculated gradient.
[0088] If the temporal layer level of the current frame is the lowest level in the coding scheme, the ALF procedure for the current frame may be selected. In the ALF procedure for the current frame in the lowest temporal layer, gradients for a block may be calculated using each pixel in the block. The block may be classified for ALF based on the calculated gradients.
[0089] The encoder or decoder may, for example, determine or select an ALF procedure for a frame based on a temporal layer level of the frame (e.g., the current frame). The encoder or decoder may determine whether a subset of pixels should be selected to calculate gradients for block classification. The encoder or decoder may determine how a subset of pixels should be selected.
[0090] The encoder may signal to the decoder whether subsampling should be used for a frame. The encoder may signal which subsampling should be used for a frame. In one example, an indication of whether subsampling should be used and / or which subsampling scheme should be used may be signaled on a frame-by-frame basis. For example, the indication may be a syntax element signaled in the bitstream.
[0091] The encoder may determine or select an ALF procedure by comparing the RD costs. The encoder may perform ALF (e.g., as described herein) without subsampling for the frame. If ALF is selected or enabled for the frame, the encoder may perform a different ALF procedure and / or calculate the RD costs associated with the ALF procedure. For example, the encoder may repeat the ALF process using a different subset of pixels in each of the subsampling schemes (e.g., as described herein) and / or compare the RD costs associated with each subsampling scheme.
[0092] The encoder may signal an indication if certain conditions are met. Equation 13 shows an example of a condition. RD minSub <ωRD ref , Here, RD minSub =min(RD V ,RD H ,RD HV ) Equation 13
[0093] In formula 13, RD ref and R.D. minSubmay represent the RD cost of a scheme (e.g., a reference scheme) and the smallest RD cost among the different subsampled schemes, respectively. ω may represent a scale factor greater than 1. If one of the conditions in Equation 13 is met, the encoder may signal one or more of the subsampling flags or indexes into the subsampling schemes with a value of 1. The signaling may be performed at the frame-level in the picture parameter set or in the slice header. In an example, a prefix code may be constructed as an index for (e.g., each) subsampling scheme. FIG. 6 shows an example of constructing prefix codes for different subsampling schemes. As shown in FIG. 6, a determination may be made as to whether vertical subsampling is used. If vertical subsampling is used, the index or a digit of the index may be set to 0. If vertical subsampling is not used, the index or a digit of the index may be set to 1. A determination may be made as to whether horizontal subsampling is used. If horizontal subsampling is used, the index or a digit of the index may be set to 0. If horizontal subsampling is not used, the index or index digit may be set to 1. Table 1 may show the resulting index map. If none of the conditions in Equation 13 are met, a subsampling flag with a value of 0 may be signaled in the bitstream.
[0094] Table 1 may illustrate an example of indexes for different sub-sampling schemes.
[0095] [Table 1]
[0096] The decoder may receive an indication of whether subsampling should be used for the frame and / or which subsampling should be used for the frame. The decoder may determine that subsampling should be used for the frame and / or which subsampling should be used for the frame based on the indication. The decoder may perform ALF based on the indicated subsampling scheme. The decoder may skip subsampling based on the indication that subsampling should be skipped for the frame.
[0097] In one example, the value of ω in Equation 13 may be set to 1. For example, a value of ω equal to 1 may indicate that no bias is applied to the reference ALF scheme. Subsampling may be applied to (e.g., only to) the ALF block classification and / or may not necessarily increase the RD cost of the filtered frame. In one example, the value of ω in Equation 13 may be set to less than 1. A value of ω less than 1 may provide a bias toward the reference ALF scheme.
[0098] ALF procedures that differ in computational complexity may include various filtering operations, for example, an ALF procedure of reduced computational complexity may skip one or more filtering operations.
[0099] To reduce computational complexity, frame-adaptive ALF skipping may be used. For example, as shown in FIG. 4, an encoder may determine and / or select an ALF (e.g., luma ALF) to be used for a luma component for a given frame. The luma ALF may be a luma ALF that produces a minimum RD cost (e.g., best luma ALF) among multiple luma ALFs. The encoder may compare the RD cost of a frame filtered using the determined luma ALF with the RD cost of an unfiltered frame. The encoder may make a picture-level decision on whether to use a luma ALF for a frame.
[0100] If a luma ALF is not used (e.g., not selected) for a luma component of a frame, the encoder may not test a chroma ALF for a chroma component of the frame. The encoder may test for a temporally predicted ALF. The encoder may determine (e.g., select or choose) a temporally predicted ALF based on the test. The selected temporally predicted ALF may yield the smallest RD cost among the temporally predicted ALFs and / or the ALFs from the current frame.
[0101] 7 shows an example of an ALF procedure with reduced computational complexity using frame adaptive ALF skipping. ALF may be skipped or disabled for frames in higher temporal layers. QP may be larger for frames in higher temporal layers. In one example, ALF may be skipped or disabled for frames in the highest temporal layer (e.g., only).
[0102] As shown in FIG. 7, block classification may be performed for luma samples in the ALF procedure. A frame-level luma ALF may be performed (e.g., starting with a 9×9 diamond-shaped filter). A block-level luma ALF may be performed (e.g., starting with a 9×9 diamond-shaped filter). A luma filter shape may be determined. An appropriate luma scheme (e.g., a luma scheme with a minimum RD cost) may be determined. Block classification may be performed on the luma components of the reconstructed frame to classify one or more (e.g., each) 2×2 blocks. The encoder may, for example, train a 9×9 frame-level luma ALF for (e.g., each) class using the corresponding reconstructed pixels and the original pixels in the frame. The encoder may select several (e.g., all possible) ALF block depths (
[0103]
number
[0104] ) The 9×9 block-level ALF may be trained by testing the 9×9 frame-level and / or block-level luma ALF. The 9×9 frame-level and / or block-level luma ALF may be diamond-shaped. The encoder may test other filter shapes (e.g., 7×7 and 5×5 filters) and / or select a filter shape with a lower RD cost. If no ALF is used, the RD cost of the selected frame-level or block-level ALF in the selected filter shape may be compared to the RD cost. The scheme that results in the lower RD cost may be determined.
[0105] The sum of squared errors (SSE) of the associated filtered frame (ALF_SSE) may be calculated with respect to the original frame (e.g., by an encoder). The sum of squared errors (SSE) of the associated filtered frame (ALF_SSE) may be compared to the SSE of the unfiltered frame (Orig_SSE) as shown in Equation 14. Orig_SSE≦T*ALF_SSE Equation 14 T may be a bias factor. In one example, T may be set to 1.003. If Orig_SSE is less than or equal to the product of ALF_SSE and the bias factor T, ALF may be disabled for the luma and chroma components of a given frame. If Orig_SSE is greater than the product of ALF_SSE and the bias factor, the encoder may enable the use of ALF for the luma component of the frame. A chroma filter may be derived and it may be determined whether to apply a chroma ALF to the chroma components of the frame. A temporally predicted ALF may be checked.
[0106] The bias factor may allow the encoder to disable the ALF if the frame distortion of the unfiltered frame (Orig_SSE) is within a given tolerance from the ALF filtered frame distortion (ALF_SSE). The bias factor may allow more frames to be processed (e.g., encoded or decoded) with the ALF disabled than if the bias factor is not used. The bias factor may be set to a value that favors skipping the ALF. For example, if the bias factor is set to a larger value, skipping the ALF may be favored. The decoder may skip or disable the ALF upon receiving an indication, for example, from the encoder.
[0107] The bias factor may be set differently for frames in different temporal layers. The bias factor may be set to a value that favors skipping the ALF for frames in higher temporal layers. For example, the bias factor for frames in higher temporal layers in a coding scheme may be set larger than the bias factor for frames in lower temporal layers.
[0108] The bias factor may be set differently for frames related to different QPs used for picture coding. The bias factor may be set to a value that favors skipping the ALF for frames related to a larger coding QP. For example, the bias factor for frames related to a larger coding QP may be set larger than the bias factor for frames related to a smaller coding QP.
[0109] The bias factor may be set differently for frames relating to different frame resolutions. The bias factor may be set to a value that prefers to skip the ALF for frames with a smaller resolution. For example, the bias factor for frames with a larger resolution may be set relatively smaller than frames with a smaller resolution.
[0110] The bias factor may be set differently for frames related to different lighting changes. The bias factor may be set based on whether there is a lighting change between the current frame and some (e.g., all) of the current frame's reference frames. If the current frame does not have lighting changes from all of the current frame's reference frames, the bias factor may be set to a value that favors skipping the ALF. For example, if no lighting change is detected between the current frame and all of the current frame's reference frames, the bias factor may be set to a larger value. If the bias factor is set to a larger value, skipping the ALF may be favored. If lighting changes between the current frame and some (e.g., all) of the current frame's reference frames are detected, the bias factor may be set to a smaller value. The lighting changes may be detected through a histogram-based scheme used by local lighting compensation (LIC). If LIC is enabled by the codec, the bias factor may be determined based on whether LIC is enabled for the current frame. For example, if LIC is enabled for the current frame, the bias factor for the ALF may be set to a smaller value. If the LIC is not available for the current frame, the bias factor for the ALF may be set to a larger value.
[0111] Pixel adaptive ALF skip may be used for an ALF procedure of reduced computational complexity. The ALF may include a Wiener filter that minimizes the mean square error between the reconstructed samples and the original samples. If the reconstructed block is smooth and / or gradient-free, the ALF may be disabled in the ALF procedure with reduced computational complexity.
[0112] As described herein, during block classification, the gradient g h , g v , g d0 , and g d1may be calculated for (e.g., each) 2×2 block. In one example, this gradient information may be employed to make a decision on whether to skip ALF filtering for the 2×2 block.
[0113] Figure 8 shows the sum of the gradients g sum and the threshold T G 15 shows an example of block classification for a 2×2 block with ALF on / off decision using , and . For example, the encoder and / or decoder may make a decision in a block classification stage. A gradient sum (e.g., gradient sum) may be calculated for the 2×2 block as shown in Equation 15. g sum =g v +g h +g d0 +g d1 formula 15 H and W may indicate the height and width of the video, respectively.
[0114]
number
[0115] may be maintained in the encoder and / or decoder. A buffer may be used to store information about whether a luma reconstructed pixel (e.g., a reconstructed luma component) in a 2×2 block is ALF filtered or not. The gradient sum is then calculated based on the threshold T G The gradient sum can be compared to a threshold T G If the gradient sum is smaller than the threshold T G If the ALF on indication associated with the 2×2 block is set to 1, then an ALF on indication associated with the 2×2 block may be set to 1. If the ALF on indication associated with the 2×2 block is set to 1, then ALF may be performed (e.g., by a decoder) for the 2×2 block.
[0116] A determination may be made as to whether an ALF on indication associated with a 2×2 block is equal to 1. For example, the determination may be made prior to performing an ALF filtering step. FIG. 9 illustrates an example of applying an ALF to a 2×2 block. As shown in FIG. 9, it may be checked whether an ALF on indication associated with a given 2×2 block has a value of 1. Filtering may be performed when (e.g., only when) certain conditions are met. If the conditions are not met, filtering may be skipped for the block (e.g., the current block). As shown in FIG. 9, a determination may be made as to whether an ALF_mask is equal to 1. If the ALF_mask is not equal to 1, then ALF may not be applied (e.g., may be skipped). If the ALF_mask is equal to 1, then ALF may be applied to the 2×2 block.
[0117] Threshold T G may be predetermined and / or fixed. In one example, the threshold T G may be fixed and / or derived based on offline training. For a coding scheme that uses temporal layers, the thresholds may be trained offline for each temporal layer. For example, the thresholds may be trained offline for each temporal layer. The thresholds (e.g., for each temporal layer) may or may not be signaled. The thresholds may be predetermined and fixed in both the encoder and / or decoder.
[0118] Threshold T GThe value of may be derived, for example, based on a desired percentage of ALF skip. In one example, the threshold may be trained during the encoding process. In a coding scheme that uses temporal layers, the threshold may be trained for each temporal layer. For example, the first frame of each temporal layer may be used to train the threshold used by subsequent frames in the same temporal layer. The threshold may be determined based on the percentage of ALF skip desired. The percentage of ALF skip desired may be specified as an input parameter to the encoder. FIG. 10 illustrates the gradient sum (g) of a frame. sum ) value histogram to find the threshold T G Here is an example of training the
[0119] The histogram parameters may be selected as shown in FIG. 10. The histogram parameters may include one or more of a bin size, a total number of bins, and a maximum limit of the histogram. During block classification of a frame (e.g., the frame under consideration), a histogram may be constructed using gradient sums of 2×2 blocks in the frame. The resulting histogram may represent a count of occurrences for (e.g., each) bin of the gradient sum. A count associated with the ALF skip percentage may be determined using the skip percentage (ALF_skip_percentage) and the total count (total_count) of the histogram, for example, as shown in Equation 16. ALF_skip_count=ALF_skip_percentage*total_count Formula 16
[0120] The histogram may be examined to determine at which smallest bin index the cumulative count is greater than or equal to the ALF_skip_count. The examination may start at bin index 0. The value of the selected bin may be determined based on a threshold T G The selected bin value may include a center value or a maximum value of the selected bin. The selected bin value (e.g., a threshold T G) may be used for ALF skip decisions for subsequent frames in the same temporal layer. G may or may not be signaled. The threshold T G may be derived at the encoder and / or decoder.
[0121] Threshold T G may be calculated for (e.g., each) frame in a video sequence. The encoder may calculate the threshold T once for each frame in the bitstream. G The decoder may signal a threshold T G and / or determine whether an ALF on indication associated with the 2×2 block has a value of 1.
[0122] The encoder may signal the skip percentage (e.g., only once per sequence). In examples where the encoder may signal the skip percentage only once per sequence, histogram generation may be performed on a block or group of blocks basis at the encoder and / or decoder. A threshold may be calculated at the decoder based on the signaled skip percentage.
[0123] Whether to skip ALF may be determined based on the RD cost. The encoder may use the RD cost to choose between applying ALF and using pixel adaptive ALF skipping for a frame. FIG. 11 shows an example rate-distortion (RD)-based approach used to choose between applying ALF and using pixel adaptive ALF skipping with a skip fraction of "A". A threshold may be signaled on a frame-by-frame basis for the skip approach. If the threshold is to be derived at the decoder, the signaling may not be performed.
[0124] The bias factor β may be used to allow more frames to be processed (e.g., encoded or decoded) using pixel adaptive ALF skipping than if the bias factor were not used. The bias factor may be set to a value that favors enabling pixel adaptive ALF skipping. For example, if the bias factor is set to a larger value, pixel adaptive ALF skipping may be favored.
[0125] As shown in FIG. 11, the encoder may perform ALF and / or calculate the associated RD cost (RD orig The encoder may apply the ALF (e.g., perform an ALF process) for the specified skip percentage “A”. Applying the ALF for the specified skip percentage “A” may be performed by computing a threshold T G The encoder may include computing the associated RD cost (RD skipA ) may be calculated. A bias factor β may be determined (e.g., selected) having a value equal to or greater than 1. The bias factor β may be calculated by multiplying RD orig RD orig The product of and by the bias factor β is the associated RD cost RD skipA The product can be compared with the associated RD cost RD skipA If the threshold T for a specified skip percentage "A" is greater than 1, then the flag (e.g., alf_skip_flag) may have a value of 1 in the bitstream. Alf_skip_flag having a value of 1 may indicate that pixel adaptive ALF skipping may be applied to the current frame. G can be signaled. The RD cost RD skipA If the following, alf_skip_flag may have a value of 0 in the bitstream: alf_skip_flag with a value of 0 may indicate that ALF may be applied to the current frame.
[0126] The skip percentages of "A" and "B" may be used (e.g., by an encoder) to select between applying ALF and using pixel adaptive ALF skipping. In one example, the technique described in FIG. 11 may be extended to choose from more than two skip percentages. FIG. 12 shows an exemplary RD cost-based selection process when two skip percentages ("A" and "B") are specified for pixel adaptive ALF skipping. The skip percentages may be tested in ascending order, e.g., when "A" is smaller than "B", test "A" first. As shown in FIG. 11, the encoder may perform ALF and / or select the associated RD cost (RD orig The encoder may apply the ALF (e.g., perform an ALF process) for the specified skip percentage “A”. Applying the ALF for the specified skip percentage “A” may be performed by computing a threshold T G The encoder may include computing the associated RD cost (RD skipA ) may be calculated. A bias factor β may be determined (e.g., selected) having a value greater than or equal to 1. The bias factor β may be used to allow more frames to be processed (e.g., encoded or decoded) using pixel adaptive ALF skipping than if a bias factor were not used.
[0127] The bias factor β is orig RD orig The product of and by the bias factor β is the associated RD cost RD skipA The product can be compared with the associated RD cost RD skipA If the product β×RD is less than or equal to 0, then alf_skip_flag may have a value of 0 in the bitstream, indicating that ALF should be applied to the current frame. orig RD skipA If ,then, the encoder tests the skip fraction ,B, and / or the associated RD cost (RD skipB ) can be calculated by multiplying the product β×RD origRD skipB If β×RD is greater than 0, then alf_skip_flag may have a value of 1, indicating that pixel adaptive ALF skipping may be performed using a threshold associated with the skip percentage B. The threshold associated with "B" may be signaled. orig RD skipB If alf_skip_flag is equal to or the same as, alf_skip_flag may have a value of 1, indicating that pixel adaptive ALF skipping may be performed using a threshold associated with the skip percentage A. The threshold associated with "A" may be signaled.
[0128] Parameters related to pixel adaptive ALF skipping may be parsed, for example, at a decoder. FIG. 13 shows an example of parsing parameters related to pixel adaptive ALF skipping at a decoder. As shown in FIG. 13, the decoder may parse the bitstream to read parameters related to ALF. If ALF is enabled for a given frame (e.g., when alf_flag has a value of 1), the bitstream may be parsed to read alf_skip_flag. Alf_skip_flag with a value of 1 may indicate that pixel adaptive ALF skipping may be applied to the current frame. When alf_skip_flag has a value of 1, a threshold T G may be parsed from the bitstream and / or used for ALF skip decision. If this flag is not equal to 1, ALF may be applied to the current frame and / or the threshold T G may be set to a default value (eg, 0).
[0129] If and / or when multiple skip percentages are specified at the encoder, the decoder may derive the threshold (e.g., using the techniques herein). The encoder may, for example, signal some (e.g., all) of the candidate skip percentages once per video sequence. If and / or when pixel adaptive ALF skip is selected for a frame, the encoder may signal an index corresponding to the selected skip percentage. The decoder may derive the threshold based on the candidate skip percentages and the index corresponding to the selected skip percentage.
[0130] The ALF filter tap selection may be based on the temporal layer. For the luma component of a frame, 5×5, 7×7, and 9×9 ALFs may be used. For the two chroma components, a 5×5 ALF may be used. In a coding scheme using temporal layers, frames in higher temporal layers may be assigned a larger QP than frames in lower temporal layers. Frames in higher temporal layers may be smoother than frames in lower temporal layers. For higher temporal layers, a smaller size ALF may be used. In one example, the size of the ALF used for a frame may be restricted based on which temporal layer the frame is in in the coding scheme. For example, frames in higher temporal layers may be restricted to use smaller size filters. In one example, in a random access configuration where five temporal layers are used, frames in the fourth temporal layer may be restricted to use a 5×5 ALF (e.g., only a 5×5 ALF). Frames in the second and third layers may be restricted to use a 5×5 and / or 7×7 ALF. Frames in the remaining two lower layers may use any of the three filter sizes.
[0131] A block-level ALF that reduces computational complexity may be provided. A block-level ALF may be generated. An encoder may compare SSDs for filtered and unfiltered blocks. The encoder may determine whether to enable or disable the ALF for a given block. The SSD may be calculated between the reconstructed block and the original block. A bias in the SSD comparison may be used to favor disabling the ALF for the block. Using a bias in the SSD comparison may result in filtering fewer blocks at the decoder. A bias factor γ may be multiplied with the SSD of the filtered block (Filt_SSD). The bias factor γ may have a value greater than 1. If the product of the bias factor γ multiplied with the SSD of the filtered block Filt_SSD is greater than the SSD of the unfiltered block, the ALF may be disabled for the block.
[0132] The computational complexity of the ALF may be reduced by combining one or more techniques described herein. In one example, computational complexity reducing block classification and / or computational complexity reducing filtering may be combined. For example, for frames in the highest temporal layer, vertical subsampling may be used during gradient calculation and pixel adaptive ALF skip may be used during filtering.
[0133] 14A illustrates an example communication system 100 in which one or more disclosed embodiments may be implemented. The communication system 100 may be a multiple access system that provides multiple wireless users with content, such as voice, data, video, messaging, broadcasts, etc. The communication system 100 may enable multiple wireless users to access such content through sharing of system resources, including wireless bandwidth. For example, the communication system 100 may 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), etc.
[0134] 14A, the communications system 100 may include wireless transmit / receive units (WTRUs) 102a, 102b, 102c, 102d, a RAN 104 / 113, a CN 106 / 115, a public switched telephone network (PSTN) 108, the Internet 110, and other networks 112, although it will be 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 “STA,” may be configured to transmit and / or receive wireless signals and may include user equipment (UE), mobile stations, fixed or mobile subscriber units, subscription-based units, pagers, cellular phones, personal digital assistants (PDAs), smartphones, laptops, netbooks, personal computers, wireless sensors, hotspots or Mi-Fi devices, Internet of Things (IoT) devices, watches or other wearables, head mounted displays (HMDs), vehicles, drones, medical devices and applications (e.g., remote surgery), industrial devices and applications (e.g., robots and / or other wireless devices operating in industrial and / or automated processing chain contexts), consumer electronics devices, devices operating on commercial and / or industrial wireless networks, etc. Any of the WTRUs 102a, 102b, 102c and 102d may be referred to interchangeably as a UE.
[0135] The communications system 100 may also include a base station 114a and / or a base station 114b. Each of the base stations 114a, 114b may be any type of device configured to wirelessly interface with at least one of the WTRUs 102a, 102b, 102c, 102d to facilitate access to one or more communications networks, such as the CN 106 / 115, the Internet 110, and / or other networks 112. By way of example, the base stations 114a, 114b may be a base transceiver station (BTS), a Node B, an eNode B, a home Node B, a home eNode B, a gNB, an NR Node B, a site controller, an access point (AP), a wireless router, etc. Although the base stations 114a, 114b are each illustrated 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.
[0136] 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 base station 114b may be configured to transmit and / or receive wireless signals on one or more carrier frequencies, which may be referred to as cells (not shown). These frequencies may be in the licensed spectrum, the unlicensed spectrum, or a combination of the licensed and unlicensed spectrum. A cell may provide coverage for wireless services in a particular geographic area, which may be relatively fixed or may change over time. A cell may be further divided into cell sectors. For example, the cell associated with the base station 114a may be divided into three sectors. Thus, in one embodiment, the base station 114a may include three transceivers, i.e., one for each sector of the cell. In one embodiment, the base station 114a may employ multiple-input multiple-output (MIMO) technology and utilize multiple transceivers for each sector of the cell. For example, beamforming may be used to transmit and / or receive signals in a desired spatial direction.
[0137] The base stations 114a, 114b may communicate with one or more of the WTRUs 102a, 102b, 102c, 102d over an air interface 116, which may be any suitable wireless communications 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).
[0138] More specifically, as noted above, the communication 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, etc. For example, the base stations 114a and WTRUs 102a, 102b, 102c in the RAN 104 / 113 may implement a radio technology such as Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access (UTRA), which may establish the air interface 115 / 116 / 117 using Wideband CDMA (WCDMA). WCDMA may include communication protocols such as High Speed Packet Access (HSPA) and / or Evolved HSPA (HSPA+). HSPA may include High Speed Downlink (DL) Packet Access (HSDPA) and / or High Speed UL Packet Access (HSUPA).
[0139] In one 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).
[0140] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement a radio technology such as New Radio (NR) radio access, which may establish the air interface 116 using NR).
[0141] In one embodiment, the base station 114a and the WTRUs 102a, 102b, 102c may implement multiple radio access technologies. For example, the base station 114a and the WTRUs 102a, 102b, 102c may implement LTE and NR radio access together, for example, using a dual connectivity (DC) principle. Thus, the air interface utilized by the WTRUs 102a, 102b, 102c may be characterized by multiple types of radio access technologies and / or transmissions sent to and from multiple types of base stations (e.g., eNBs and gNBs).
[0142] In other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement a wireless technology such as IEEE 802.11 (i.e., Wireless Fidelity (WiFi), IEEE 802.16 (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000EV-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), or the like.
[0143] The base station 114b in FIG. 14A may be, for example, a wireless router, a Home NodeB, a Home eNodeB, or an access point, and may utilize any suitable RAT to facilitate wireless connectivity in a local area, such as a workplace, a home, a vehicle, a premises, an industrial facility, an air corridor (e.g., for use by drones), a road, etc. In one embodiment, the base station 114b and the WTRUs 102c, 102d may implement a radio technology such as IEEE 802.11 to establish a wireless local area network (WLAN). In one 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. 14A, the base station 114b may have a direct connection to the Internet 110. Thus, the base station 114b may not need to access the Internet 110 via the CN 106 / 115.
[0144] 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, application, and / or Voice over Internet Protocol (VoIP) services to one or more of the WTRUs 102a, 102b, 102c, 102d. The data may have various Quality of Service (QoS) requirements, such as different throughput requirements, latency requirements, error resilience requirements, reliability requirements, data throughput requirements, mobility requirements, etc. The CN 106 / 115 may provide call control, charging services, mobile location-based services, prepaid calling, Internet connectivity, video distribution, etc., and / or perform high level security functions, such as user authentication. Although not shown in FIG. 14A, 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 employing the same RAT as the RAN 104 / 113 or a different RAT. For example, in addition to being connected to the RAN 104 / 113, which may utilize NR radio technology, the CN 106 / 115 may also be in communication with another RAN (not shown) that employs GSM, UMTS, CDMA2000, WiMAX, E-UTRA, or WiFi radio technology.
[0145] The CN 106 / 115 may also act as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN 108, the Internet 110, and / or other networks 112. The PSTN 108 may include a circuit-switched telephone network that provides 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 Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and / or Internet Protocol (IP) in the TCP / IP Internet protocol suite. The networks 112 may include wired and / or wireless communication networks owned and / or operated by other service providers. For example, the networks 112 may include another CN connected to one or more RANs that may employ the same RAT as the RAN 104 / 113 or a different RAT.
[0146] 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. 14A may be configured to communicate with a base station 114a that may employ a cellular-based radio technology and with a base station 114b that may employ an IEEE 802 radio technology.
[0147] Figure 14B is a system diagram illustrating an example WTRU 102. As shown in Figure 14B, the WTRU 102 may include, among other things, a processor 118, a transceiver 120, a transmit / receive element 122, a speaker / microphone 124, a keypad 126, a display / touchpad 128, non-removable memory 130, removable memory 132, a power source 134, a Global Positioning System (GPS) chipset 136, and / or other peripherals 138. It will be appreciated that the WTRU 102 may include any sub-combination of the above elements while remaining consistent with an embodiment.
[0148] The processor 118 may be a general purpose processor, a special purpose processor, a conventional processor, a digital signal processor (DSP), multiple microprocessors, one or more microprocessors associated with a DSP core, a controller, a microcontroller, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) circuit, any other type of integrated circuit (IC), a state machine, etc. The processor 118 may perform signal coding, data processing, power control, input / output processing, and / or any other functionality that enables the WTRU 102 to operate in a wireless environment. The processor 118 may be coupled to the transceiver 120, which may be coupled to the transmit / receive element 122. Although the processor 118 and the transceiver 120 are depicted in FIG. 14B as separate components, it will be appreciated that the processor 118 and the transceiver 120 may be integrated together in an electronic package or chip.
[0149] The transmit / receive element 122 may be configured to transmit signals to or receive signals from a base station (e.g., base station 114a) over the air interface 116. For example, in one embodiment, the transmit / receive element 122 may be an antenna configured to transmit and / or receive RF signals. In one embodiment, the transmit / receive element 122 may be an emitter / detector configured to transmit and / or receive, for example, IR, UV, or visible light signals. In yet another embodiment, the transmit / receive element 122 may be configured to transmit and / or receive both RF and light signals. It will be appreciated that the transmit / receive element 122 may be configured to transmit and / or receive any combination of wireless signals.
[0150] 14B as a single element, the WTRU 102 may include any number of transmit / receive elements 122. More particularly, 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 116.
[0151] The transceiver 120 may be configured to modulate signals to be transmitted by the transmit / receive element 122 and demodulate signals received by the transmit / receive element 122. As mentioned above, the WTRU 102 may have multi-mode capabilities. Thus, the transceiver 120 may include multiple transceivers to enable the WTRU 102 to communicate via multiple RATs, such as, for example, NR and IEEE 802.11.
[0152] The processor 118 of the WTRU 102 may be coupled to and receive user input data from the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128 (e.g., a liquid crystal display (LCD) display unit or an organic light emitting diode (OLED) display unit). The processor 118 may also output user data to the speaker / microphone 124, the keypad 126, and / or the display / touchpad 128. Further, the processor 118 may access information from and store data in any type of suitable memory, such as non-removable memory 130 and / or removable memory 132. The non-removable memory 130 may include a random access memory (RAM), a 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, or 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).
[0153] The processor 118 may receive power from the power source 134 and may be configured to distribute and / or control power to 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, etc.
[0154] The processor 118 may also be coupled to a GPS chipset 136, which may be configured to provide location information (e.g., longitude and latitude) regarding the current location of the WTRU 102. In addition to, or instead of, information from the GPS chipset 136, the WTRU 102 may receive location information over the air interface 116 from base stations (e.g., base stations 114a, 114b) and / or determine its location based on the timing of signals received from two or more nearby base stations. It will be appreciated that the WTRU 102 may acquire location information by way of any suitable location determination method while remaining consistent with an embodiment.
[0155] The processor 118 may further be coupled to other peripherals 138, which may include one or more software and / or hardware modules that provide additional features, functionality, and / or wired or wireless connectivity. For example, the peripherals 138 may include an accelerometer, an e-compass, a satellite transceiver, a digital camera (for photos and / or videos), a universal serial bus (USB) port, a vibration device, a television transceiver, a hands-free headset, a Bluetooth module, a frequency modulation (FM) radio unit, a digital music player, a media player, a video game player module, an Internet browser, a virtual reality and / or augmented reality (VR / AR) device, an activity tracker, and / or the like. The peripherals 138 may include one or more sensors, which may be one or more of a gyroscope, an accelerometer, a Hall effect sensor, a magnetometer, an orientation sensor, a proximity sensor, a temperature sensor, a time sensor, a geolocation sensor, an altimeter, a light sensor, a touch sensor, a magnetometer, a barometer, a gesture sensor, a biometric sensor, and / or a humidity sensor.
[0156] The WTRU 102 may include a full-duplex radio where transmission and reception of some or all of the signals (e.g., associated with a particular subframe for both the UL (e.g., for transmission) and the downlink (e.g., for reception)) may be parallel and / or simultaneous. The full-duplex radio may include an interference management unit to reduce and / or substantially eliminate self-interference either through hardware (e.g., chokes) or signal processing via a processor (e.g., a separate processor (not shown) or via processor 118). In one embodiment, the WRTU 102 may include a half-duplex radio for transmission and reception of some or all of the signals (associated with a particular subframe for either the UL (e.g., for transmission) or the downlink (e.g., for reception)).
[0157] 14C is a system diagram illustrating the RAN 104 and the CN 106, according to one embodiment. As mentioned above, the RAN 104 may employ 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.
[0158] The RAN 104 may include eNodeBs 160a, 160b, 160c, although it will be appreciated that the RAN 104 may include any number of eNodeBs while remaining consistent with an embodiment. The eNodeBs 160a, 160b, 160c may each include one or more transceivers for communicating with the WTRUs 102a, 102b, 102c over the air interface 116. In one embodiment, the eNodeBs 160a, 160b, 160c may implement MIMO technology. Thus, the eNodeB 160a, for example, may use multiple antennas to transmit wireless signals to and / or receive wireless signals from the WTRU 102a.
[0159] Each of the eNodeBs 160a, 160b, 160c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in the UL and / or DL, etc. As shown in FIG. 14C, the eNodeBs 160a, 160b, 160c may communicate with one another via an X2 interface.
[0160] 14C may include a Mobility Management Entity (MME) 162, a Serving Gateway (SGW) 164, and a Packet Data Network (PDN) Gateway (or PGW) 166. Although each of the above elements is shown 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.
[0161] The MME 162 may be connected to each of the eNodeBs 162a, 162b, 162c in the RAN 104 via an S1 interface and may act as a control node. For example, the MME 162 may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, activating / deactivating bearers, selecting a particular serving gateway during initial attach of the WTRUs 102a, 102b, 102c, etc. The MME 162 may provide a control plane function for switching between the RAN 104 and other RANs (not shown) that employ other radio technologies such as GSM and / or WCDMA.
[0162] The SGW 164 may be connected to each of the eNodeBs 160a, 160b, 160c in the RAN 104 via an S1 interface. The SGW 164 may generally route and forward user data packets to and from the WTRUs 102a, 102b, 102c. The SGW 164 may perform other functions such as anchoring the user plane during handover between eNodeBs, triggering paging when DL data is available for the WTRUs 102a, 102b, 102c, managing and storing the context of the WTRUs 102a, 102b, 102c, etc.
[0163] The SGW 164 may be connected to a PGW 166 that 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.
[0164] 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 fixed communication devices. For example, the CN 106 may include or communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between the CN 106 and the PSTN 108. Additionally, the CN 106 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers.
[0165] Although the WTRU is depicted in FIGS. 14A-14D as a wireless terminal, it is contemplated that in some representative embodiments that such a terminal may use (e.g., temporarily or permanently) wired communications interface with the communications network.
[0166] In an exemplary embodiment, the other network 112 may be a WLAN.
[0167] A WLAN in infrastructure basic service set (BSS) mode may have an access point (AP) for the BSS and one or more stations (STAs) associated with the AP. The AP may have access or interface to a distribution system (DS) or another type of wired / wireless network that carries traffic into and out of the BSS. Traffic to a STA originating from outside the BSS may arrive through the AP and be sent to the STA. Traffic originating from a STA to a destination outside the BSS may be sent to the AP for delivery to the respective destination. Traffic between STAs within a BSS may be sent through the AP, e.g., where a source STA may send traffic to the AP and the AP may send traffic to the destination STA. Traffic between STAs within a BSS may be considered and / or referred to as peer-to-peer traffic. Peer-to-peer traffic may be sent between (e.g., directly between) a source STA and a destination STA using a direct link setup (DLS). In some representative embodiments, the DLS may use 802.11e DLS or 802.11z tunneled DLS (TDLS). A WLAN using an Independent BSS (IBSS) mode may not have an AP, and STAs (e.g., all of the STAs) in or using an IBSS may communicate directly with each other. The IBSS communication mode is sometimes referred to herein as an "ad-hoc" communication mode.
[0168] When using an 802.11ac infrastructure mode of operation or a similar mode of operation, an AP may transmit a beacon on a fixed channel, such as a primary channel. The primary channel may be a fixed width (e.g., a 20 MHz wide bandwidth) or a width dynamically set via signaling. The primary channel may be an operating channel of the BSS and may be used by STAs to establish a connection with the AP. In some representative embodiments, carrier sense multiple access / collision avoidance (CSMA / CA) may be implemented, for example, in 802.11 systems. In CSMA / CA, STAs (e.g., every STA), including the AP, may sense the primary channel. If the primary channel is sensed / detected by a particular STA and / or determined to be busy, the particular STA may back off. One STA (e.g., only one station) may transmit at a given time in a given BSS.
[0169] A high throughput (HT) STA may use a 40 MHz wide channel for communication, for example, via a combination of a primary 20 MHz channel with adjacent or non-adjacent 20 MHz channels to form a 40 MHz wide channel.
[0170] A Very High Throughput (VHT) STA may support 20 MHz, 40 MHz, 80 MHz, and / or 160 MHz wide channels. A 40 MHz and / or 80 MHz channel may be formed by combining contiguous 20 MHz channels. A 160 MHz channel may be formed by combining eight contiguous 20 MHz channels or by combining two non-contiguous 80 MHz channels, sometimes referred to as an 80+80 configuration. In the 80+80 configuration, the data may be passed through a segment parser that may split the data into two streams after channel encoding. Inverse Fast Fourier Transform (IFFT) processing and time domain processing may be performed separately for each stream. The streams may be mapped onto two 80 MHz channels and the data may be transmitted by the transmitting STA. At the receiver of the receiving STA, the operations described above for the 80+80 configuration may be reversed and the combined data may be sent to the Medium Access Control (MAC).
[0171] Sub-1 GHz operation modes are supported by 802.11af and 802.11ah. Channel operating bandwidths and carriers are reduced in 802.11af and 802.11ah compared to those used in 802.11n and 802.11ac. 802.11af supports 5 MHz, 10 MHz, and 20 MHz bandwidths in TV White Space (TVWS) spectrum, and 802.11ah supports 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz bandwidths using non-TVWS spectrum. According to a representative embodiment, 802.11ah may support meter-type control / machine-type communication such as MTC devices in macro coverage areas. MTC devices may have some capabilities, for example, limited capabilities including some and / or limited bandwidth support (e.g., only support). MTC devices may include batteries with above-threshold battery life (e.g., to maintain very long battery life).
[0172] WLAN systems that may support multiple channels and channel bandwidths, such as 802.11n, 802.11ac, 802.11af, and 802.11ah, include a channel that may be designated as a primary channel. The primary channel may have a bandwidth equal to the largest common operating bandwidth supported by all STAs in the BSS. The bandwidth of the primary channel may be set and / or limited by the STA that supports the smallest bandwidth operating mode among all STAs when operating in the BSS. In an 802.11ah example, the primary channel may be 1 MHz wide for STAs (e.g., MTC-type devices) that support (e.g., only support) the 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. The setting of the carrier sense and / or network allocation vector (NAV) may depend on the status of the primary channel. For example, if the primary channel is busy for a STA (that only supports a 1 MHz mode of operation), it may be considered busy to transmit the entire available frequency band to the AP even if most of the frequency band remains idle and may be available for use.
[0173] In the United States, the available frequency bands that can be used by 802.11ah are from 902MHz to 928MHz. In South Korea, the available frequency bands are from 917.5MHz to 923.5MHz. In Japan, the available frequency bands are from 916.5MHz to 927.5MHz. The total available bandwidth for 802.11ah is 6MHz to 26MHz depending on the country code.
[0174] 14D is a system diagram illustrating the RAN 113 and the CN 115, according to one embodiment. As mentioned above, the RAN 113 may employ 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.
[0175] The RAN 113 may include gNBs 180a, 180b, 180c, although 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 an embodiment, the gNBs 180a, 180b, 180c may implement MIMO technology. For example, the gNBs 180a, 108b may utilize beamforming to transmit signals to and / or receive signals from the gNBs 180a, 180b, 180c. Thus, the gNB 180a may use multiple antennas to transmit wireless signals to and / or receive wireless signals from, for example, the WTRU 102a. In one 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 an unlicensed spectrum, while the remaining component carriers may be on a licensed spectrum. In one embodiment, the gNBs 180a, 180b, 180c may implement coordinated multipoint (CoMP) technology. For example, the WTRU 102a may receive coordinated transmissions from the gNBs 180a and 180b (and / or gNB 180c).
[0176] The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using scalable numerology-related transmissions. For example, the OFDM symbol spacing and / or OFDM subcarrier spacing may vary for different transmissions, different cells, and / or different portions of the wireless transmission spectrum. The WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using subframes or transmission time intervals (TTIs) of varying or scalable lengths (e.g., including varying numbers of OFDM symbols and / or lasting for varying lengths of absolute time).
[0177] The gNBs 180a, 180b, 180c may be configured to communicate with the WTRUs 102a, 102b, 102c in a standalone configuration and / or a non-standalone configuration. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c without accessing other RANs (e.g., eNodeBs 160a, 160b, 160c, etc.). In a standalone configuration, the WTRUs 102a, 102b, 102c may utilize one or more of the gNBs 180a, 180b, 180c as mobility anchor points. In a standalone configuration, the WTRUs 102a, 102b, 102c may communicate with the gNBs 180a, 180b, 180c using signals in unlicensed bands. In a non-standalone configuration, the WTRUs 102a, 102b, 102c may communicate with / connect to the gNBs 180a, 180b, 180c while also communicating with / connecting to another RAN, such as the eNodeBs 160a, 160b, 160c. For example, the WTRUs 102a, 102b, 102c may implement DC principles to communicate with one or more gNBs 180a, 180b, 180c and one or more eNodeBs 160a, 160b, 160c substantially simultaneously. In a non-standalone configuration, the eNodeBs 160a, 160b, 160c may act as a mobility anchor for the WTRUs 102a, 102b, 102c, and the gNBs 180a, 180b, 180c may provide additional coverage and / or throughput for serving the WTRUs 102a, 102b, 102c.
[0178] Each of the gNBs 180a, 180b, 180c may be associated with a particular cell (not shown) and may be configured to handle radio resource management decisions, handover decisions, scheduling of users in the UL and / or DL, support for network slicing, dual connectivity, interconnection between NR and E-UTRA, routing of user plane data towards user plane functions (UPFs) 184a, 184b, routing of control plane information towards access and mobility management functions (AMFs) 182a, 182b, etc. As shown in FIG. 14D, the gNBs 180a, 180b, 180c may communicate with one another over an Xn interface.
[0179] The CN 115 shown in Figure 14D may include at least one AMF 182a, 182b, at least one UPF 184a, 184b, at least one Session Management Function (SMF) 183a, 183b, and possibly a Data Network (DN) 185a, 185b. Although each of the above elements is shown as part of the CN 115, it will be appreciated that any of these elements may be owned and / or operated by an entity other than the CN operator.
[0180] The AMF 182a, 182b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via an N2 interface and may act as a control node. For example, the AMF 182a, 182b may be responsible for authenticating users of the WTRUs 102a, 102b, 102c, supporting network slicing (e.g., handling different PDU sessions with different requirements), selecting a particular SMF 183a, 183b, managing registration areas, terminating NAS signaling, mobility management, etc. Network slicing may be used by the AMF 182a, 182b to customize the CN support of the WTRUs 102a, 102b, 102c based on the type of service that is utilized by the WTRUs 102a, 102b, 102c. For example, different network slices may be established for different use cases, such as services relying on highly reliable low latency (URLLC) access, services relying on enhanced massive mobile broadband (eMBB) access, services with machine-type communications (MTC) access, etc. The AMF 162 may provide a control plane function for switching between the RAN 113 and other RANs (not shown) that employ other radio technologies, such as LTE, LTE-A, LTE-A Pro, and / or non-3GPP access technologies, such as WiFi.
[0181] The SMFs 183a, 183b may be connected to the AMFs 182a, 182b in the CN 115 via an N11 interface. The SMFs 183a, 183b may also be connected to the UPFs 184a, 184b in the CN 115 via an N4 interface. The SMFs 183a, 183b may select and control the UPFs 184a, 184b and configure the routing of traffic through the UPFs 184a, 184b. The SMFs 183a, 183b may perform other functions such as managing and allocating IP addresses for UEs, managing PDU sessions, controlling policy enforcement and QoS, providing notification of downlink data, etc. The type of PDU session may be IP-based, non-IP-based, Ethernet-based, etc.
[0182] The UPFs 184a, 184b may be connected to one or more of the gNBs 180a, 180b, 180c in the RAN 113 via an N3 interface, which may provide the WTRUs 102a, 102b, 102c with access to packet-switched networks such as the Internet 110 to facilitate communications between the WTRUs 102a, 102b, 102c and IP-enabled devices. The UPFs 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, etc.
[0183] The CN 115 may facilitate communication with other networks. For example, the CN 115 may include or communicate with an IP gateway (e.g., an IP Multimedia Subsystem (IMS) server) that acts as an interface between the CN 115 and the PSTN 108. Additionally, the CN 115 may provide the WTRUs 102a, 102b, 102c with access to other networks 112, which may include other wired and / or wireless networks owned and / or operated by other service providers. In an embodiment, the WTRUs 102a, 102b, 102c may be connected to local data networks (DNs) 185a, 185b through the UPFs 184a, 184b via an N3 interface to the UPFs 184a, 184b and an N6 interface between the UPFs 184a, 184b and the DNs 185a, 185b.
[0184] 14A-14D and corresponding description, one or more or all of the functions described herein with respect to one or more of the WTRUs 102a-d, base stations 114a-b, eNodeBs 160a-c, MME 162, SGW 164, PGW 166, gNBs 180a-c, AMFs 182a-b, UPFs 184a-b, SMFs 183a-b, DNs 185a-b, and / or any other devices described herein may be performed by one or more emulation devices (not shown). The emulation devices may be one or more devices configured to emulate one or more or all of the functions described herein. For example, the emulation devices may be used to test other devices and / or to simulate network and / or WTRU functions.
[0185] The emulation device 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, one or more emulation devices may perform one or more or all functions while fully or partially implemented and / or deployed as part of a wired and / or wireless communication network to test other devices in the communication network. One or more emulation devices may perform one or more or all functions while temporarily implemented / deployed as part of a wired and / or wireless communication network. The emulation device may be directly coupled to another device for testing and / or may perform testing using over-the-air wireless communications.
[0186] The emulation device or devices may perform one or more functions, inclusive, without being implemented / deployed as part of a wired and / or wireless communication network. For example, the emulation device may be utilized in a test lab and / or in a test scenario in an undeployed (e.g., test) wired and / or wireless communication network to perform tests of one or more components. The emulation device or devices may be test equipment. Direct RF coupling and / or wireless communication via RF circuitry (which may include, e.g., one or more antennas) may be used by the emulation device to transmit and / or receive data.
[0187] The processes described above may be implemented in computer programs, software, and / or firmware embodied in a computer-readable medium for execution by a computer and / or processor. Examples of computer-readable media include, but are not limited to, electronic signals (transmitted over wired and / or wireless connections) and / or computer-readable storage media. Examples of computer-readable storage media include, but are not limited to, read-only memory (ROM), random access memory (RAM), registers, cache memory, semiconductor memory devices, magnetic media such as, but not limited to, internal hard disks and removable disks, magneto-optical media, and / or optical media such as CD-ROM disks and / or digital versatile disks (DVDs). A processor in association with software may be used to implement a radio frequency transceiver for use in a WTRU, a terminal, a base station, an RNC, and / or any host computer.
Claims
1. 1. A video decoding device, comprising: Selecting a subset of pixels from the plurality of pixels; obtaining a sum of diagonal variations using said subset of pixels; determining a diagonal gradient based on said sum of diagonal variations; performing adaptive loop filtering (ALF) on the video block based on the diagonal gradients; Decode the picture that includes the video block. Processor configured for A video decoding device comprising:
2. 2. The video decoding device of claim 1 , wherein for the selection of the subset of pixels, pixels within the plurality of pixels are skipped in a diagonal direction, and the performing of ALF on the video block includes classifying the video block, the classification of the video block being based on the diagonal gradient.
3. 2. The video decoding device of claim 1 , wherein the processor is further configured to determine a diagonal variation using a first pixel of the subset of pixels and a second pixel of the subset of pixels, the second pixel being diagonally located from the first pixel, and the sum of diagonal variations is determined based on the diagonal variations.
4. 2. The video decoding device of claim 1 , wherein the diagonal gradient is a first diagonal gradient associated with a first diagonal direction, the processor being further configured to determine a second diagonal gradient associated with a second diagonal direction, and wherein the ALF is performed on the video block further based on the second diagonal gradient.
5. The processor, determining a first diagonal variation using a first pixel of the subset of pixels and a second pixel of the subset of pixels, the second pixel being located in a first diagonal direction from the first pixel, the sum of diagonal variations being a first sum of diagonal variations and obtained based on the first diagonal variation; determining a second diagonal variation using a third pixel of the subset of pixels and a fourth pixel of the subset of pixels, the fourth pixel being located in a second diagonal direction from the third pixel; The second diagonal variation is used to obtain a second sum of diagonal variations, and the ALF is performed further based on the second sum of diagonal variations.
2. A video decoding device according to claim 1, configured to:
6. 2. The video decoding device of claim 1 , wherein for the selection of the subset of pixels, a pixel of the plurality of pixels is skipped in a vertical direction and a pixel of the plurality of pixels is skipped in a horizontal direction, and the processor is further configured to determine a horizontal gradient and a vertical gradient using the subset of pixels, and the ALF is performed further based on the horizontal gradient and the vertical gradient.
7. 1. A video decoding method, comprising: selecting a subset of pixels from the plurality of pixels; obtaining a sum of diagonal variations using said subset of pixels; determining a diagonal gradient based on said sum of diagonal variations; performing adaptive loop filtering (ALF) on the video block based on the diagonal gradients; decoding a picture including the video block; A video decoding method comprising:
8. the selecting of the subset of pixels includes skipping pixels of the plurality of pixels in a diagonal direction; determining a diagonal variation using a first pixel of the subset of pixels and a second pixel of the subset of pixels, the second pixel being diagonally located from the first pixel, and the sum of diagonal variations being obtained based on the diagonal variations; The video decoding method of claim 7, further comprising:
9. 8. The video decoding method of claim 7, wherein the performing of ALF on the video block includes classifying the video block, the classifying the video block based on the diagonal gradient.
10. 1. A video encoding device comprising: Selecting a subset of pixels from the plurality of pixels; obtaining a sum of diagonal variations using said subset of pixels; determining a diagonal gradient based on said sum of diagonal variations; performing adaptive loop filtering (ALF) on the video block based on the diagonal gradients; Encoding a picture including the video block. Processor configured for A video encoding device comprising:
11. The processor, determining a first error associated with the picture; determining a second error based on an ALF associated with the picture; comparing the first error and the second error using a bias factor; and including in the video data an ALF indication indicative of an ALF usage status associated with the picture based on the comparison. The video encoding device of claim 10 further configured to:
12. 11. The video encoding device of claim 10, wherein for the selection of the subset of pixels, a pixel among the plurality of pixels in a diagonal direction is skipped, and the processor is further configured to determine a diagonal variation using a first pixel of the subset of pixels and a second pixel of the subset of pixels, the second pixel being diagonally located from the first pixel, and the sum of diagonal variations is obtained based on the diagonal variation.
13. 1. A video encoding method, comprising: selecting a subset of pixels from the plurality of pixels; obtaining a sum of diagonal variations using said subset of pixels; determining a diagonal gradient based on said sum of diagonal variations; performing adaptive loop filtering (ALF) on the video block based on the diagonal gradients; encoding a picture including the video block; A video encoding method comprising:
14. determining a first error associated with the picture; determining a second error based on an ALF associated with the picture; comparing the first error and the second error using a bias factor; including in the video data an ALF indication indicating an ALF usage status associated with the picture based on the comparison; The video encoding method of claim 13 comprising:
15. the diagonal gradient is a first diagonal gradient associated with a first diagonal direction; determining a second diagonal gradient associated with a second diagonal direction, wherein the ALF is performed on the video block further based on the second diagonal gradient. The video encoding method of claim 13 further comprising:
Citation Information
Patent Citations
Multiple metric filtering
JP2014511615A
Filter adaptation with directional features for video / image coding
US20120183078A1
Multi-metric filtering
US20150117555A1