Patent Description:
Virtual reality (VR) is increasingly entering our daily lives. VR has many application areas, including healthcare, education, social networking, industry design/training, game, movie, shopping, entertainment, etc. VR is gaining attention from industries and consumers because VR is capable of bringing an immersive viewing experience. VR creates a virtual environment surrounding the viewer and generates a true sense of "being there" for the viewer. How to provide the full real feeling in the VR environment is important for a user's experience. For example, the VR system may support interactions through posture, gesture, eye gaze, voice, etc. To allow the user to interact with objects in the VR world in a natural way, the VR may provide haptic feedback to the user.

"<NPL>, describes the algorithms implemented in 360Lib for projection format conversion and <NUM>-degree video quality evaluation.

<NUM>-degree video content may be coded as described herein. <NUM>-degree video content described herein may include or may be a spherical video content, an omnidirectional video content, a virtual reality (VR) video content, a panorama video content, an immersive video content (e.g., a light field video content that includes <NUM> degree of freedom), a point cloud video content, and/or the like.

A sampling position in a projection format may be determined to code <NUM>-degree video content. For example, a sampling position in a target projection format and a sampling position in a reference projection format may be identified. The target projection format may include at least one of an unicube map projection (UNICMP) format, an equi-angular cubemap (EAC) format, an adjusted cubemap projection (ACP) format, a hybrid cubemap projection (HCP) format, and/or the like. The reference projection format may include a cube map projection (CMP) format and/or the like.

The sample position in the target projection format may be related to the corresponding sample position in the reference projection format via a transform function. The transform function may be defined by one or more parameters received in a bitstream.

A parameter weight (e.g., a reference parameter weight) for the sampling position in the reference projection format may be identified. In examples, the parameter weight for the sampling position in the reference projection format may be identified based on a location of the sampling position in the reference projection format.

An adjustment factor associated with the parameter weight for the sampling position in the reference projection format may be determined. For example, the adjustment factor associated with the parameter weight for the sampling position in the reference projection format may be determined based on the transform function between the sampling position in the target projection format and the sampling position in the reference projection format. The adjustment factor may a derivative value of the transform function. In examples, the derivative value of the transform function may be or may include a horizontal coordinate and/or a vertical coordinate for the sampling position in the target projection format and/or the reference projection format.

A parameter weight (e.g., adjusted parameter weight) for the sampling position in the target projection format may be calculated. For example, an adjusted parameter weight for the sampling position in the target projection format may be calculated based on the parameter weight and the determined adjustment factor for the sampling position in the reference projection format. The calculated adjustment parameter weight may include or may be a weighted spherically uniform peak signal-to-noise ratio (WS-PSNR) weight.

The calculated adjusted parameter weight may be applied to the sampling position in the target projection format when the <NUM>-degree video content is coded. In examples when applying the adjusted parameter weight to the sampling position in the target projection, a quantization parameter (QP) for a transform-coded portion of the <NUM>-degree video content for the sampling position in the target projection format may be determined based on the adjusted parameter weight. In examples when applying the adjusted parameter weight to the sampling position in the target projection, a WS-PSNR weight for the sampling position in the target projection format may be determined by adjusting a WS-PSNR weight for the sampling position in the reference projection format using the calculated adjustment factor. In examples when applying the adjusted parameter weight to the sampling position in the target projection, at least one of a distortion or a quality measurement associated the sampling position in the target projection format may be determined using the adjusted parameter weight. In examples when applying the adjusted parameter weight to the sampling position in the target projection, a weighted sum of absolute difference (SAD) between the sampling position in the target projection format and the reference projection format may be determined.

A more detailed understanding may be described from the following description, given by way of example in conjunction with the accompanying drawings.

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

VR system(s) may use <NUM>-degree video to provide a user(s) the capability to view a scene, e.g., from <NUM>-degree angles in the horizontal direction and <NUM>-degree angles in the vertical direction. VR and <NUM>-degree video may be considered to be the direction for media consumption beyond Ultra High Definition (UHD) service. Work on the requirements and potential technologies for omnidirectional media application format may be performed to improve the quality of <NUM>-degree video in VR and/or to standardize the processing chain for client's interoperability. Free view TV (FTV) may test the performance of one or more of the following: (<NUM>) <NUM>-degree video (omnidirectional video) based system; and/or (<NUM>) multi-view based system.

The quality and/or experience of one or more aspects in the VR processing chain may be improved. For example, the quality and/or experience of one or more aspects in capturing, processing, display, etc., and/or VR processing may be improved. On the capturing side, VR may use one or more cameras to capture a scene from one or more (e.g., different) divergent views (e.g., <NUM>-<NUM> views). The views may be stitched together to form a <NUM>-degree video in high resolution (e.g., <NUM> or <NUM>). On the client side and/or the user side, the virtual reality system may include a computation platform, head mounted display (HMD), and/or head tracking sensors. The computation platform may be in charge of receiving and/or decoding <NUM>-degree video, and/or generating the viewport for display. Two pictures, one for each eye, may be rendered for the viewport. The two pictures may be displayed in a HMD (e.g., for stereo viewing). The lens may be used to magnify the image displayed in HMD for better viewing. The head tracking sensor may keep (e.g., constantly keep) track of the viewer's head orientation and/or may feed the orientation information to the system to display the viewport picture for that orientation.

VR systems may provide a touch device for a viewer to interact with objects in the virtual world. VR systems may be driven by a powerful workstation with good GPU support. A light VR system may use a smartphone as a computation platform, HMD display, and/or head tracking sensor. The spatial HMD resolution may be 2160x1200, refresh rate may be <NUM>, and/or the field of view (FOV) may be <NUM> degrees. The sampling density for head tracking sensor may be <NUM>, which may capture fast movement. A VR system may include a lens and/or cardboard. A VR system may be driven by a smartphone.

An example workflow for <NUM>-degree video system may be illustrated in <FIG>. The example workflow for <NUM>-degree video system may include a <NUM>-degree video capturing process which may use one or more cameras to capture videos covering the sphere (e.g., the entire sphere). The videos may be stitched together in a native geometry structure. For example, the videos may be stitched together in an equirectangular projection (ERP) format. The native geometry structure may be converted to one or more projection formats for encoding, e.g., based on the existing video codecs. At the receiver, the video may be decoded and/or the decompressed video may be converted to the geometry for display. The video may be used for rendering via viewport projection according to user's viewing angle.

Cube map projection of <NUM>-degree video may be performed. A <NUM>-degree video compression and/or delivery system may be performed. <NUM>-degree video delivery may represent the <NUM>-degree information using a sphere geometry structure. For example, synchronized views captured by one or more cameras may be stitched on the sphere as an integral structure. The sphere information may be projected to a 2D planar surface with a given geometry conversion. A spherical mapping format used in the graphics communities may be a cube map projection (CMP) format. <FIG> shows an example projective geometry of the CMP format. As shown in <FIG>, the CMP may include one or more square faces (e.g., <NUM> square faces), labeled as PX, PY, PZ, NX, NY, and NZ, where P may stand for positive, N may stand for negative, and/or X, Y, Z may refer to the axes. The faces may be labeled using numbers. For example, the faces may be labeled as <NUM>-<NUM> according to PX (<NUM>), NX (<NUM>), PY (<NUM>), NY (<NUM>), PZ (<NUM>), NZ (<NUM>). If the radius of the tangent sphere is <NUM>, the lateral length of each face may be <NUM>. Video codec may not be designed to handle sphere video. If video codec is not designed to handle sphere video, the <NUM> faces of CMP format may be packed together into a picture (e.g., a single picture). To maximize the continuity between neighboring faces, one or more faces may be rotated by a predefined degree. <FIG> shows an example packing which may place the <NUM> faces into a rectangular picture. In <FIG>, a face index may be put in the direction that is aligned with the corresponding rotation of the face (e.g., for better visualization). For example, face #<NUM> and/or face#<NUM> may be rotated counter-clockwise by <NUM> and <NUM> degrees, respectively, while one or more (e.g., all) of the other faces may not rotated. An example picture with CMP may be shown in <FIG>. The resulting motion field (which may describe the temporal correlation between neighboring 2D projective pictures) generated by CMP may be represented (e.g., efficiently represented) by the translational motion model of video codecs, for example, due to its rectilinear structure.

Unicube map projection for <NUM>-degree video coding may be performed.

The CMP format may be computationally efficient. Due to the limitation of the rectilinear projection, the samples on the sphere may be unevenly sampled by the CMP format with a higher sampling density near face boundaries and/or a lower sampling density near face centers. Non-uniform spherical sampling may penalize the efficiency of <NUM>-degree video representation and/or may reduce the efficiency of <NUM>-degree video coding, for example, because the existing coding algorithms may be built upon the assumption that one or more (e.g., all) of the samples on the planar picture may be important (e.g., equally important). The non-uniform sampling of the CMP may result in the quality of the regions around the face boundaries being higher than that of the regions around the face centers when <NUM>-degree video is coded by existing video codecs. The samples on the sphere may not have the same importance with respect to a viewer's visual experience. For example, viewers may be more likely to view the content in the vicinity of the face centers than the face boundaries. Having different sampling densities may cause warping and/or deformation of an object as it moves from the center of the face to the face boundary (or vice versa) in the temporal domain.

A unicube map projection (UNICMP) format may be performed. The UNICMP may convert a sampling grid of the CMP into a uniform sampling grid on the sphere. The UNICMP may use a transform function to modify the coordinate of the samples on a 2D planar face, e.g., before the actual UNICMP faces are generated. The UNICMP may achieve a better representation of spherical data than the CMP, for example, due to the uniform spherical sampling. The UNICMP may have an enhanced coding efficiency of <NUM>-degree video, in relation to the CMP. <FIG> shows an example comparison of the planar and spherical sampling patterns between CMP and UNICMP. As shown in <FIG>, the sampling grid of a CMP face may include one or more (e.g., two) sets of parallel lines. One set of the parallel lines may be in horizontal direction and/or another set of parallel lines may be in vertical direction. A set of parallel partitioning lines may be separated with uniform interval. When the CMP face is projected onto the sphere, the sampling grid may be distorted where the straight lines in the planar face become curves, as shown in <FIG>. Because rectilinear projection may not be a distance-preserving projection, the corresponding sampling grid on the sphere may become non-uniform, as shown in <FIG>. To maintain a similar sampling structure as CMP, a face in UNICMP format may be sampled based on one or more (e.g., two) sets of parallel lines. In order to improve the spherical sampling uniformity, the parallel lines in a set may be distributed in a non-uniform way (e.g., <FIG>), such that the corresponding sampling grid on the sphere may be uniform (e.g., as shown in an example on <FIG>).

A transform function may be used to transform the non-uniform planar sampling grid into a uniform planar sampling grid. <FIG> shows an example mapping. If the horizontal and vertical transforms are uncorrelated, the mapping from (x, y) to (x', y') may include two separate transforms, e.g., x' = f(x) and y' = f(y), where the same transform function may be applied on x and y independently. It may be possible to compute the inverse transform which maps (x', y') to (x, y), e.g., x = g(x') and y = g(y'). As the two transform functions of x and y may be identical, the derivation of the transform functions of y may be discussed herein.

Coordinate β ∈ [-<NUM>,<NUM>] may be the y coordinate of the pattern area on the cube. <FIG> illustrates an example of how to calculate the transform functions between the coordinate of cube face and the coordinate of unicube face. As the transform function β'=f(β) targets at converting β to β' with equal rectilinear structure partitioning on the sphere (e.g., as shown in <FIG>), f(β) may be made proportional to the area of the spherical region corresponding to β. As illustrated in <FIG>, the value of f(β) may be equal to the ratio between the area of the pattern spherical region and that of the quarter of the sphere corresponding to a cubemap face. The transform function f(β) may be calculated as: <MAT> where β ∈ [-<NUM>,<NUM>]. The corresponding inverse transform function g(β') (e.g., the mapping from the unicube face to cube face), may be calculated as: <MAT> where β' ∈ [-<NUM>,<NUM>]. <FIG> illustrates an example corresponding mapping relationship between β and β'.

An equi-angular cubemap (EAC) projection may be performed by converting the coordinates between the CMP domain and the EAC domain, for example, based on the tangent of the angle of a spherical sample on the cube sampling grid. The coordinates in the CMP domain may be adjusted using a pair of f () and g () functions. For example, the transform functions for the EAC projection may be calculated as: <MAT> <MAT>.

For example, an adjusted cubemap projection (ACP) may be performed for an improved spherical sampling uniformity by adjusting the coordinates in the CMP domain based on the following transform functions: <MAT> <MAT> where sgn(·) may be the function which returns the sign of the input value.

<FIG> shows an example comparison of the transform function from the partition grid of CMP, UNICMP, ACP, and EAC. As shown in <FIG>, the transform functions of the CMP, the UNICMP, and the EAC may show distinctive spherical sampling features depending on the positions within a face. For example, the spherical sampling density of the CMP may be the highest at the face boundary, while the spherical sampling density of the CMP may become the lowest at the face center. The spherical sampling density of the UNICMP may be higher than that of the CMP and the EAC at the face centers. The situation may be reversed at the face boundaries. <FIG> shows the corresponding spherical sampling grids of the CMP (e.g., <FIG>), the UNICMP(e.g., <FIG>), and the EAC(e.g., <FIG>), respectively. The transform function of the ACP may be similar to that of EAC, e.g., at the regions around the boundaries and/or the center of a face. ACP may approximate the non-linear operations used in EAC's transform functions with second-order polynomial models to reduce implementation complexity. The ACP's sampling grid may be similar to the EAC.

Sampling densities on the sphere may depend on the projection format used to represent <NUM>-degree video. Samples on the 2D projection picture may correspond to sampling densities (e.g. different) on the sphere. For example, the sampling density may be higher at the boundaries of the faces than at the centers of the faces. A weighted to spherically uniform PSNR (WS-PSNR) may measure spherical video quality in the projection domain, for example, by assigning weights (e.g. different) to the samples on the 2D projection plane. Weight value for a sample may be dependent on the corresponding area that the sample covers on the sphere. For example, for the CMP, the weight may be calculated according to: <MAT> where (x,y) may be the coordinate of the sample within the corresponding CMP face that it belongs to; Wf and Hf may indicate the width and the height of the CMP face, respectively. Weights for a face may be derived for one or more other faces based on the symmetric characteristics of CMP.

Different <NUM>-degree video projection formats may present distinct sampling features on the sphere. The WS-PSNR for the cubemap-based projection formats (e.g., the UNICMP, the ACP, and the EAC) may be calculated. The transform functions (e.g., as shown in (<NUM>) and (<NUM>)) may be used for the ACP faces, and the distribution of the WS-PSNR weights may be the same across the ACP faces. The weight values within a face may be calculated. For example, for a position (x, y) in an ACP face, the weight value wacp(x,y) may be calculated as follows: <MAT> where tx and ty may be derived from the coordinate (x, y) as: <MAT> <MAT>.

Parameters Wf and Hf may indicate the width and the height of the ACP face, respectively. <FIG> may show the weight map for the ACP format generated based on the equations (<NUM>) to (<NUM>), where dark samples may correspond to small weight values, and bright samples may correspond to large weight values.

As shown in <FIG>, the distribution of the weight values may be non-uniform. In particular, the weight values for the samples at the face boundaries may be smaller than that for the samples at face centers. The spherical sampling densities may be uneven within an ACP face. For example, the sampling density at face boundaries may be higher than that at face center. ACP may provide an uniform spherical sampling. An ACP face may be generated by adjusting the coordinate of the samples in the CMP domain through a transform function (e.g., before the actual CMP face is generated). The weight value of a sample in an ACP face may be derived from the weight value of its corresponding sample in the CMP face.

A parameter weight derivation (e.g., WS-PSNR weight derivation) for cubemap-style projections may be performed.

A parameter weight of a sample inside a face (e.g., a target face) may be calculated. In examples, a target face may be or may include at least one of an UNICMP face, an ACP face, an EAC face, and/or the like. The parameter weight (e.g., parameter weight value) of the corresponding sample in a reference face (e.g., a CMP face and/or the like) may be calculated. In examples, the weight value of the reference face (e.g., the parameter weight value of the CMP face) may be adjusted, e.g., based on the corresponding derivatives between the coordinates in the reference face (e.g., CMP face) and the target face. For example, (x', y') may be a coordinate in the target face (e.g., a coordinate associated with the sample in the target face), and (x, y) may be the corresponding coordinate in the CMP face (e.g., the corresponding coordinate associated with the sample in the CMP face). Coordinate (x, y) may be derived from (x', y') based on the transform functions x = g(x') and y = g(y'). The transform function g(·) may be obtained according to (<NUM>) for the UNICMP, (<NUM>) for the EAC, and (<NUM>) for the ACP. The value of the parameter weight (e.g., WS-PSNR weight) for a sample (e.g., the sample in a target face) may be proportional to the corresponding area that the sample covers on the sphere. The sample area may be determined as follows: <MAT> where wtar (x',y' ) and wcube (x,y) may indicate the weight values that are associated with the coordinate (x', y') in the target face and the coordinate (x, y) in the CMP face, respectively. Coordinate values x and y may be associated with the transform function. For example, the coordinate values x and y may be the functions of x' and y', e.g., x = g(x') and y = g(y'). Derivatives dx and dy may be computed. For example, derivatives dx and dy may be computed with respective to dx' and dy' as follows: <MAT> The derivative values of the transform functions may be associated with a sample(s) for horizontal coordinate and/or vertical coordinate.

A parameter weight for the target face may be calculated based on the calculated derivatives (e.g., using (<NUM>)) and the parameter weight for the reference face (e.g., using an area associated with the coordinate values in the reference face). For example by substituting (<NUM>) into (<NUM>), the value of wtar (x',y' ) may be calculated as: <MAT>.

A parameter weight derivation (e.g., WS-PSNR weight derivation) for cubemap-style projections may be performed using one or more of the following: performing a coordinate conversion from a target face to a reference face (e.g., a CMP face); calculating a weight value in the reference face (e.g., the CMP face); and/or calculating a weight value in the target face.

As shown in (<NUM>), the weight value of a sample in the target face may be calculated. Coordinate conversion from the target face to the CMP face may be performed. For example, an input coordinate (x', y') in the target face may be identified. Given the input coordinate (x', y') in the target face, the corresponding coordinate (x, y) in the CMP face may be calculated based on the transform functions x = g(x') and y = g(y'). The weight value (e.g., parameter weight value) in the CMP face may be calculated. For example, given the intermediate coordinate (x, y), the corresponding weight value wcube (x,y) may be calculated according to (<NUM>). The weight value (e.g., parameter weight value) in the target face may be calculated. For example, given the weight value wcube (x,y) in the CMP face, the weight value wtar (x',y' ) in the target face may be derived by multiplying the value of wcube (x,y) with the derivatives between the horizontal and vertical coordinates in the target face and the CMP face, e.g., based on (<NUM>). In examples, a derivative value(s) of the transform function at a horizontal coordinate and/or a vertical coordinate may be associated with the target sampling position.

The values of the derivatives in (<NUM>) may be adjusted based on the target cubemap-style projection formats (e.g., the UNICMP, the ACP, the EAC, or the like) to calculate the WS-PSNR weight values.

A weight parameter(s) (e.g., WS-PSNR weight(s)) for the UNICMP may be calculated.

Derivatives dx and dy may be calculated with respect to dx' and dy', as shown in (<NUM>). Calculating derivatives dx and dy, with respect to dx' and dy', may be performed based on the UNICMP-to-CMP transform function as shown in (<NUM>) as: <MAT> <MAT> where Wf and Hf indicates the width and the height of the UNICMP face, accordingly. The weight parameters (e.g., WS-PSNR weights) for the UNICMP face may be calculated using the derivatives of the UNICMP face with respect to the derivatives of the CMP face and applying the determined derivatives to the weight parameter of the CMP face. For example by substituting (<NUM>) and (<NUM>) into (<NUM>), the weight parameters (e.g., WS-PSNR weights) for the UNICMP face may be calculated as: <MAT>.

A weight parameter(s) (e.g., WS-PSNR weights) for the EAC may be calculated. The value of dx and dy for the EAC may be calculated based on (<NUM>) as follows: <MAT> <MAT> where Wf and Hf indicate the width and the height of the EAC face, respectively. The weight parameters (e.g., weight values) derived for the sample coordinate (x', y') at an EAC face may be calculated. For example, by substituting (<NUM>) and (<NUM>) into (<NUM>), the weight parameter (e.g., weight values and/or WS-PSNR weights) for the EAC face may be calculated as follows: <MAT>.

A weight parameter(s) (e.g., WS-PSNR weights) for the ACP may be calculated. Based on the transform function from the ACP domain to the CMP domain (e.g., (<NUM>)), the value of dx and dy in (<NUM>) may be derived as follows: <MAT> <MAT> where Wf and Hf may indicate the width and the height of the ACP face, respectively. The weight parameters (e.g., WS-PSNR weights) for the ACP face may be calculated using the derivatives of the UNICMP face with respect to the derivatives of the CMP face (e.g., (<NUM>) and/or (<NUM>)) and applying the determined derivatives to the weight parameter of the CMP face. For example taking (<NUM>) and (<NUM>) into (<NUM>), the weight value of the sample at coordinate (x', y') in an ACP face may be calculated as follows: <MAT>.

<FIG> shows an example weight map generated using the WS-PSNR weight calculation described herein. As shown, the weigh values within an ACP face may be uniform (e.g., substantially uniform). Although in the examples described herein, a same transform function is used in both directions (e.g., g(x) and g(y) may be the same), a person skilled in the art may appreciate that one or more different transform functions may be applied in two directions.

A weight parameter(s) (e.g., WS-PSNR weights) for the hybrid cubemap projection (HCP) may be performed. HCP may be a cubemap-like projection format with <NUM> faces. To convert between CMP and HCP, one or more transform functions may be used to map the coordinates. HCP's transform functions may use a variable parameter(s). The parameters for the horizontal and vertical transform functions may be different. Coordinate conversion between HCP and CMP may be performed using the following horizontal and vertical transform functions: <MAT> <MAT> <MAT> <MAT>.

The derivatives may be derived. For example, derivatives may be derived as: <MAT> <MAT> where Wf and Hf may indicate the width and the height of the ACP face, respectively. The derivative values the transform functions may be associated with a sample(s) for horizontal coordinate and/or vertical coordinate. Based on equations (<NUM>) and (<NUM>), the weight value of the sample at coordinate (x', y') in a HCP face may be calculated as follows: <MAT>.

The encoder may search for HCP horizontal and vertical transform function parameters (e.g., a<NUM>, a<NUM>, b<NUM>, and b<NUM>) (e.g., optional HCP horizontal and vertical transform function parameters) based on the input video content. The parameters a<NUM>, a<NUM>, b<NUM>, and b<NUM> may be quantized and signaled in a bitstream to a decoder.

WS-PSNR weight derivation for a projection format may be performed.

The weight calculation described herein may be applied. For example, the weight calculation described herein may be applied to the derivation of the weight parameter(s) (e.g., weight value(s) for a given projection format that is generated from another projection format by adjusting the sample coordinates within a face through a transform function. For example, (x', y') may be the coordinate of a sample in the target face, and (x, y) may be the coordinate of its corresponding sample in the source face, where the target face is generated from. The transform function from (x', y') to (x, y) may be: <MAT> <MAT>.

The ACP and the EAC, in (<NUM>) and (<NUM>), the horizontal and vertical transforms may be performed jointly. For example, x and y may be the functions of both x' and y'. The transform functions that are applied for the horizontal and vertical coordinates may be different. To compute the spherical area that the sample coordinate (x, y) corresponds to, derivatives dx and dy may be calculated. The partial derivatives may be computed, and the total derivatives may be calculated as follows: <MAT> <MAT>.

The norms of dx and dy may be determined as follows: <MAT> <MAT>.

The Euclidean norms of dx' and dy' may be equal, and (<NUM>) and (<NUM>) may be simplified as: <MAT> <MAT>.

Taking (<NUM>) and (<NUM>) to (<NUM>), the weight value for the sample (x', y') in the target face (e.g., wtar (x',y')) from the weight value of its correspondence sample (x, y) in the source face (e.g., wsource (x,y)) may be calculated as follows: <MAT>.

WS-PSNR may measure the quality (e.g., fidelity to an original signal) of a reconstructed <NUM>-degree video. The WS-PSNR may be calculated for <NUM>-degree video in EAC, ACP, UNICMP, HCP, and/or other cubemap-like projection format(s).

Block-level quantization parameter (QP) offsets may be calculated for <NUM>-degree video coding. In examples, the block-level QP offsets may be calculated based on the determined weight parameter(s) (e.g., WS-PSNR weights) within the block described herein. In examples, the block-level QP offsets may be calculated based on the spherical sampling density of the block. The determined weight parameters (e.g., WS-PSNR weights) may be used to derive the block-level QP offsets for <NUM>-degree video coding.

<FIG> shows an example for calculating the WS-PSNR values. Here, the cubemap-like projection format may be the target projection format. The adjustments (e.g., adj_x and/or adj_y) may be calculated according to the equations described herein for different cubemap-like projection formats. Note that although <FIG> shows that the WS-PSNR values may be calculated for a position (e.g., each position) in a face (e.g., each face), it is contemplated that symmetric properties may be used so that a portion of the coordinates may be derived. For example, for UNICMP, EAC, and ACP, weights for a face may be calculated and may be reused for one or more other faces. For HCP, the transform function parameters may be signaled within a bitstream for the faces. The decoder may examine which faces share the transform function parameters (e.g., same transform function parameters), and may derive the weights for one (e.g. only one) of those faces with the same transform function parameters.

A constraint may be applied to the faces within the same row in a CMP (e.g., 3x2 configuration shown in <FIG>) having continuous texture across faces. For example, constraints may be applied such that the vertical transform function for one or more faces (e.g., three faces) in the top face row (or the bottom face row) are the same. For this constrained HCP format, the adj_y in <FIG> may be calculated for a face (e.g., one face) and may be reused for the other faces in the same face row (e.g., top or bottom face row). Though not shown in <FIG>, symmetry within a face may be used (e.g., used to reduce computation). For example cubemap-like projection formats described herein (e.g., UNICMP, EAC, ACP, and/or HCP), the weight parameter(s) may be calculated for a portion of a face, such as ¼ of a face. The weights for the remaining portion (e.g., ¾ of the face) may be derived by mirroring those from the ¼ of the face.

Projection formats may be static within a video sequence. For example, a projection format may persist for a period of time, e.g., the entire video sequence, or one or more intra random access periods (IRAP). The weight parameter(s) (e.g., WS-PSNR weight(s)) may be calculated (e.g., calculated once) and may be used for multiple pictures. The decoder may parse the coding projection format from the bitstream when the projection format used to code the <NUM>-degree video is signaled as part of the bitstream. The decoder may parse an additional transform function parameter(s), such as the parameter(s) used in HCP when projection format used to code the <NUM>-degree video is signaled as part of the bitstream. Based on the coding projection format and transform function parameter(s) (if any), the decoder may calculate the weight parameter(s) (e.g., WS-PSNR weight(s)) periodically. For example, the decoder may calculate the WS-PSNR weights once per sequence, or once per IRAP. The derived weight parameter(s) (e.g., WS-PSNR weight(s)) may be used to perform block-level QP offset adjustment, quality evaluation, and/or other decoding functionalities.

As shown in (<NUM>), the derivatives (e.g., <MAT>) may be calculated based on the transform function that converts the target cubemap projection coordinates (x', y') into CMP projection coordinates (x, y), for example, g(β'). The derivatives may be calculated based on the transform function that converts the CMP projection coordinates (x, y) into the target cubemap projection coordinates (x', y'), for example, f(β). The calculation may be based on the following: <MAT>.

Based on complexity of computation, a conversion, such as (<NUM>) or (<NUM>), may be selected to calculate the WS-PSNR weights.

The motion vectors (MVs) may be determined at an encoder and signaled to a decoder. The overhead used to code the MVs may account for a portion of the output bit-stream. One or more (e.g., multiple) decoder-side techniques may be applied (e.g., frame-rate up conversion (FRUC) and/or decoder-side motion vector refinement (DMVR)) to derive (e.g., completely derive) or refine (e.g., partially refine) the MVs at the decoder based on template matching. For example, one or more (e.g., multiple) decoder-side techniques may be applied to completely derive or partially refine the MVs at the decoder based on template matching using one or more samples in the template or bilateral matching. Template matching may use one or more samples in the template or bilateral matching using multiple predictors (e.g., two predictors). For example, two predictors may be or may include the reconstructed samples of spatial neighbors of the current block in the same decoded picture or the reconstructed samples of the previously decoded pictures in the temporal domain. The difference (e.g., sum of absolute difference (SAD)) between the template samples and its reference samples using a given MV may be measured, for example, <MAT> where Itmp(x, y) and Iref (x, y) may be the sample values of the template and its reference. B may indicate the set of samples in the template. SAD may be the sum of absolute difference. The MV that minimizes the SAD value may be selected as the MV (e.g., best MV) of the current block. For the bilateral matching, SAD may be calculated between the prediction in list0 and the prediction in list1 giving a candidate MV. List0 may be a prediction block that is generated from one or more reference samples from a refence picture(s) that precedes the current picture in display order. List1 may be a prediction block that is generated from one or more reference samples from a reference picture(s) that is after the current picture in display order.

When applying the decoder-side techniques described herein to <NUM>-degree video coding, the samples on the 2D projection picture may correspond to different sampling densities on the sphere. SAD may not be reliable to derive the MV (e.g., optimal MV), as different samples on the 2D plane may have unequal impacts on the spherical distortion. In such case, the WS-PSNR weight calculation described herein may be applied to achieve an accurate distortion measurement by assigning different weights to samples on the 2D projection plane according to its spherical sampling density. For example, the following weighted SAD value (e.g., WD) may be applied to derive the MV (e.g., optimal MV), <MAT> where w(x,y) may be the weight value that is applied to the sample coordinate (x, y). w(x,y) may be calculated based on (<NUM>) or (<NUM>) when cubemap-style projection is applied for coding <NUM>-degree videos.

By way of example, the WTRUs 102a, 102b, 102c, 102d, any of which may be referred to as a "station" and/or a "STA", may be configured to transmit and/or receive wireless signals and may include a user equipment (UE), a mobile station, a fixed or mobile subscriber unit, a subscription-based unit, a pager, a cellular telephone, a personal digital assistant (PDA), a smartphone, a laptop, a netbook, a personal computer, a wireless sensor, a hotspot or Mi-Fi device, an Internet of Things (loT) device, a watch or other wearable, a head-mounted display (HMD), a vehicle, a drone, a medical device and applications (e.g., remote surgery), an industrial device and applications (e.g., a robot and/or other wireless devices operating in an industrial and/or an automated processing chain contexts), a consumer electronics device, a device operating on commercial and/or industrial wireless networks, and the like.

in other embodiments, the base station 114a and the WTRUs 102a, 102b, 102c may implement radio technologies such as IEEE <NUM> (i.e., Wireless Fidelity (WiFi), IEEE <NUM> (i.e., Worldwide Interoperability for Microwave Access (WiMAX)), CDMA2000, CDMA2000 1X, CDMA2000 EV-DO, Interim Standard <NUM> (IS-<NUM>), Interim Standard <NUM> (IS-<NUM>), Interim Standard <NUM> (IS-<NUM>), Global System for Mobile communications (GSM), Enhanced Data rates for GSM Evolution (EDGE), GSM EDGE (GERAN), and the like.

Thus, the base station 114b may not be required to access the internet <NUM> via the CN <NUM>/<NUM>.

The CN <NUM>/<NUM> may also serve as a gateway for the WTRUs 102a, 102b, 102c, 102d to access the PSTN <NUM>, the internet <NUM>, and/or the other networks <NUM>.

The peripherals <NUM> may include one or more sensors, the sensors may be one or more of a gyroscope, an accelerometer, a hall effect sensor, a magnetometer, an orientation sensor, a proximity sensor, a temperature sensor, a time sensor, a geolocation sensor; an altimeter, a light sensor, a touch sensor, a magnetometer, a barometer, a gesture sensor, a biometric sensor, and/or a humidity sensor.

11af and <NUM>. The channel operating bandwidths, and carriers, are reduced in <NUM>1af and <NUM>. 11n, and <NUM>.

The CN <NUM> shown in <FIG> 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.

Claim 1:
A method for coding <NUM>-degree video content, the method comprising:
identifying a first sampling position in a first projection format and a second sampling position in a second projection format, the second sampling position relating to the corresponding first sampling position via a transform function;
identifying a reference parameter weight for the first sampling position, wherein the reference parameter weight corresponds to a first weighted spherically uniform peak signal-to-noise ratio, WS-PSNR, weight;
determining an adjustment factor associated with the reference parameter weight for the first sampling position based on a horizontal derivative and a vertical derivative of the transform function computed in the second sampling position;
calculating an adjusted parameter weight for the second sampling position based on the reference parameter weight for the first sampling position and the adjustment factor associated with the reference parameter weight for the first sampling position, and wherein the adjusted parameter weight corresponds to a second WS-PSNR weight; and
applying the adjusted parameter weight to the second sampling position in the second projection format when coding the <NUM>-degree video content.