Geodetic intraprediction for panoramic video coding
Patent Information
- Application Number
- DE602017089888
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2017-04-27
- Publication Date
- 2025-06-11
- Estimated Expiration
- 2037-04-27
AI Technical Summary
Conventional intra-frame prediction mechanisms in video coding are inefficient for 360-degree or spherical video due to the distortion of straight lines into curved lines during projection, leading to increased residual information and bit rate.
The solution involves adjusting intra-prediction to align with the geometry of spherical video by performing intra-prediction along geodesic curves, which correspond to straight lines in the 3D scene, thereby reducing the need for signaling curved lines as sets of small straight lines.
This approach reduces the amount of residual information that needs to be encoded and transmitted, resulting in a lower overall bit rate for the video stream and improved prediction efficiency for spherical video.
Description
TECHNICAL FIELD
[0001] The present application relates to the field of video coding, and more particularly to a video encoder, video system, and related methods and computer programs.BACKGROUND
[0002] 360-degree video or spherical video is a new way of experiencing immersive video using devices such as head-mounted displays (HMD). This technique can provide an immersive "being there" experience for consumers by capturing a full panoramic view of the world. 360-degree video is typically recorded using a special rig of multiple cameras, or using a dedicated virtual reality (VR) camera that contains multiple embedded camera lenses. The resulting footage is then stitched to form a single video. This process may be done by the camera itself, or by using video editing software that can analyze common visuals to synchronize and link the different camera feeds together to represent the full viewing sphere surrounding the camera rig. Essentially, the camera or the camera system maps a 360° scene onto a sphere.
[0003] The stitched image (i.e. the image on the surface of the sphere) is then mapped (or unfolded) from spherical into a two-dimensional (2D) rectangular representation based on projection (such as equirectangular projection), and then encoded using e.g., standard video codecs such as H.264 / AVC (Advanced Video Coding) and HEVC / H.265 (High Efficiency Video Coding).
[0004] At the viewing end, after decoding the video is mapped onto a virtual sphere with the viewer located at the center of the virtual sphere. The viewer can navigate inside the virtual sphere to see a view of the 360-degree world as desired and thereby have an immersive experience.
[0005] To reduce the bit-rate of video signals, the International Organization for Standardization (ISO) and International Telecommunication Union (ITU) coding standards apply hybrid video coding with inter-frame prediction and intra-frame prediction combined with transform coding of a prediction error. For example, intra-block prediction based on the intensity values of reference pixels from already encoded surrounding blocks may be used. Then, the intensity difference between the original block and a predicted block (called residual) may be transformed to the frequency domain using, e.g., discrete cosine transform (DCT) or discrete sine transform (DST), quantized, and coded with entropy coding.
[0006] Currently, the intra-frame prediction mechanism in video coding uses reference pixels located next to or near a block that needs to be encoded and generates a prediction signal for that block based on the intensity values of the reference pixels. The prediction signal is generated using a prediction mode which is signaled in the bitstream. The current video coding standards may use several (e.g., 33) directional modes (used to represent blocks containing edges and lines) as well as a DC mode and a planar mode. Accordingly, directional intra-frame prediction may be performed along a straight line of one of the possible (e.g., 33) directions.
[0007] In other words, the directional intra-prediction is currently performed along straight lines. During capturing of a 2D video, lines remain straight and having a prediction mechanism that takes advantage of this fact is reasonable. But during capturing of a 360-degree video and by unfolding to projection, straight lines may become distorted. E.g., for equirectangular projection straight lines become curved. Accordingly, conventional intra-frame prediction mechanisms may be inefficient for 360-degree or spherical video.
[0008] Effectiveness of the prediction influences the amount of residuals that need to be coded and transmitted. Accordingly, improving quality of prediction can reduce the amount of residual information and reduce the overall bit rate of a coded video sequence.
[0009] The expression "pixel value" means an intensity value of a pixel, i.e. an indication of an intensity of the pixel.
[0010] US 2016 / 142697 A1 introduces a motion compensation scheme for a inter prediction process. Jani Lainema ET AL: "Chapter 4 Intra-Picture Prediction in HEVC"In: "High Efficiency Video Coding (HEVC)", 1 August 2014 (2014-08-01), Springer International Publishing, XP055292569,ISBN: 978-3-319-06894-7vol. 29, pages 91-112, DOI: 10.1007 / 978-3-319-06895-4_4 discloses intra prediction of 2D projected 3D spherical video whereby the prediction blocks are transformed to compensate for the transformation.SUMMARY
[0011] This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
[0012] It is an object of the invention to provide improved video coding. The foregoing and other objects are achieved by the features of the independent claims. Further implementation forms are apparent from the dependent claims, the description and the figures.
[0013] The intra-prediction is adjusted to the geometry of spherical video, thereby allowing more efficient intra-prediction for spherical video. More efficient intra-prediction allows reducing the amount of residual information that needs to be encoded and transmitted, thus reducing the overall bit rate of an associated bit stream.
[0014] More efficient intra-prediction allows reducing the amount of residual information that needs to be encoded and transmitted, thus reducing the overall bit rate of an associated bit stream. Furthermore, there is no need to represent a curved line as a set of small straight lines, thus allowing savings in signaling overhead due to larger prediction blocks.
[0015] Furthermore, curved intra prediction can be achieved without explicit signaling of curvature parameters, thus further reducing the overall bit rate of the associated bit stream.
[0016] Many of the attendant features will be more readily appreciated as they become better understood by reference to the following detailed description considered in connection with the accompanying drawings.DESCRIPTION OF THE DRAWINGS
[0017] The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein: Fig. 1A is a block diagram illustrating a video encoder according to an example; Fig. 1B is a block diagram illustrating a video decoder according to an example; Fig. 2A is a flow chart illustrating a method according to an example; Fig. 2B is a flow chart illustrating a method according to an example; Fig. 2C is a flow chart illustrating a method according to an example; Fig. 2D is a flow chart illustrating a method according to an example; Fig. 2E is a flow chart illustrating a method according to an example; Fig. 3A is a flow chart illustrating a method according to an example; Fig. 3B is a flow chart illustrating a method according to an example; Fig. 3C is a flow chart illustrating a method according to an example; Fig. 3D is a flow chart illustrating a method according to an example; Fig. 3E is a flow chart illustrating a method according to an example; Fig. 4 illustrates an example of a straight line to sphere projection; Fig. 5 illustrates an example of great circles in equirectangular projection; Fig. 6 illustrates an example of parallel lines to sphere projection; Fig. 7 illustrates an example of intra-prediction along geodesic curves; and Fig. 8 illustrates an example of using directional intra-prediction modes together with intra-prediction along geodesic curves.
[0018] Like references are used to designate like parts in the accompanying drawings.DETAILED DESCRIPTION
[0019] The detailed description provided below in connection with the appended drawings is intended as a description of the embodiments and is not intended to represent the only forms in which the embodiment may be constructed or utilized. However, the same or equivalent functions and structures may be accomplished by different embodiments.
[0020] In the following description, video coding arrangements and schemes are discussed in which at least a portion of intra-prediction operations are performed along a geodesic curve.
[0021] As illustrated in FIG. 4, a geodesic curve 421A is a projection of a straight line 411 of a scene 410 on a viewing sphere 420. More specifically, a geodesic curve is a part (i.e. arc 423) of a great circle 421. Great circle 421 is the intersection of the sphere and the plane defined by the straight line 411 and the sphere's center 422. FIG. 5 shows an example of great circles 500 with a spacing of 10 degrees, after unfolding from sphere to equirectangular projection. As shown in FIG. 5, straight lines become distorted in the equirectangular projected image.
[0022] From mathematics it is known that an infinite number of lines (or parts of circles or arcs) may pass through two points on a sphere. Only one of them is lying on a great circle. That means that once the position of two points of a line on a viewing sphere is known, one and only one geodesic curve can be determined coming through these two points. Parameters of curvature of this geodesic curve in the equirectangular projection (or any other type of sphere-to-2D projection) are completely defined by these two points and can be derived without explicit signaling.
[0023] In the following descriptions, a straight line is defined in a three-dimensional (3D) scene and projected onto a viewing sphere, thereby transforming the straight line into a curved intra-prediction line, i.e. a geodesic curve. Intra-prediction is performed along the intra-prediction line. More specifically, for each pixel to be predicted, a corresponding position in a reference area is obtained. This is done by passing the intra-prediction line over a current pixel to the reference area. Once the position of the current pixel is known and intra-prediction line is defined, the position in the reference area and a corresponding reference pixel value can be obtained. The reference pixel value can be taken as a predicted value (also referred to as the prediction value). Predicted values are used for subtracting from source values to obtain residuals that are then transformed and coded. It is to be noted that a reference position may be fractional in which case the prediction value may be interpolated from surrounding reference pixels on integer positions using a suitable interpolation method.
[0024] More generally, a straight line in the 3D scene may be projected onto any desired 2D projection of the 3D scene, e.g., onto a flat 2D map of the surface of the viewing sphere. Intra-prediction can thus be performed in any 2D representation of the surface of the viewing sphere.
[0025] Neighboring reference pixels, e.g., on the edge of a prediction block may be handled such that the same intra-prediction line (with the same curvature but just shifted) is also used for intra-prediction for all pixels (or for a group of pixels) in the prediction block. Alternatively, intra-prediction from a neighboring reference pixel may be done using an intra-prediction line derived from another straight line in the 3D scene.
[0026] Fig. 1A is a block diagram that illustrates a video encoder 100 according to an example. The video encoder 100 may be implemented as a standalone device or it may be implemented as a part of another device, such as a digital video camera (including, e.g., 360-degree cameras and camera rigs) or the like. Furthermore, the video encoder 100 may be implemented as hardware (including but not limited to: a processor and / or a memory, and the like), software, or any combination of hardware and software.
[0027] The video encoder 100 comprises an input unit 101 that is configured to receive frames of spherical video. Each of the frames comprises blocks of pixels.
[0028] The video encoder 100 further comprises an intra-prediction unit 102 that is configured to generate a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded.
[0029] The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction unit 102 is configured to perform the intra-prediction for a planar projection of the spherical video. Herein, a planar projection refers to a projection onto a plane, i.e. a projection onto a flat, non-curved surface.
[0030] The video encoder 100 further comprises an output unit 103 that is configured to provide an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded. In addition to residuals related data, the bitstream may comprise, e.g., partitioning flags, prediction parameters, and the like.
[0031] Geodesic curves of different defined curvatures may be used in the intra-prediction for different pixels of the current block to be encoded. Additionally or alternatively, geodesic curves of identical defined curvatures may be used in the intra-prediction for different pixels of the current block to be encoded.
[0032] The intra-prediction unit 102 may be further configured to use a directional intra-prediction mode for choosing one or more parameters of the geodesic curve.
[0033] The intra-prediction unit 102 may be further configured to use a flag to indicate whether to perform the intra-prediction along the geodesic curve.
[0034] For example, a one-bit flag may be used to signal whether straight or geodesic prediction is used for a given directional mode. Such a scheme may be applied for all directional modes or for a restricted subset (e.g., by excluding vertical and horizontal directions).
[0035] In another example, for some modes from a predefined set (e.g., all modes except DC, planar, vertical and horizontal) intra-prediction is switched from straight lines to the geodesic prediction. Accordingly, no additional modifications in signaling mechanism are needed. Instead, interpretation of the existing signaling may be changed. For example, all angular modes (except DC and planar) may be replaced by the geodesic prediction.
[0036] Fig. 1B is a block diagram that illustrates a video decoder 110 according to an example. The video decoder 110 may be implemented as a standalone device or it may be implemented as a part of another device, such as a display device (including, e.g., a head-mounted display suitable for displaying virtual reality content) or the like. Furthermore, the video decoder 110 may be implemented as hardware (including but not limited to: a processor and / or a memory, and the like), software, or any combination of hardware and software.
[0037] The video decoder 110 comprises an input unit 111 that is configured to receive an encoded bitstream representing frames of spherical video. Each of the frames comprises blocks of pixels.
[0038] The video decoder 110 further comprises an intra-prediction unit 112 that is configured to determine a set of pixel values for a current block to be decoded, by performing intra-prediction along a geodesic curve for the current block to be decoded.
[0039] The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction unit 112 configured to perform the intra-prediction for a planar projection of the spherical video.
[0040] The video decoder 110 further comprises an output unit 113 that is configured to provide decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
[0041] Geodesic curves of different defined curvatures may be used in the intra-prediction for different pixels of the current block to be decoded. Additionally or alternatively, geodesic curves of identical defined curvatures may be used in the intra-prediction for different pixels of the current block to be decoded.
[0042] The intra-prediction unit 112 may be further configured to use a directional intra-prediction mode for choosing one or more parameters of the geodesic curve.
[0043] The intra-prediction unit 112 may be further configured to use a flag to indicate whether to perform the intra-prediction along the geodesic curve.
[0044] In the following examples of FIGS. 2A to 2E, the video encoder may comprise the video encoder 100 of FIG. 1A. Furthermore, in the examples of FIGS. 3A to 3E, the video decoder may comprise the video decoder 110 of FIG. 1B. Some of the features of the described devices are optional features which provide further advantages.
[0045] Fig. 2A is a flow chart illustrating a method of encoding video according to an example. At operation 201, an input unit of a video encoder receives frames of spherical video. Each of the frames comprises blocks of pixels.
[0046] At operation 202A, an intra-prediction unit of the video encoder generates a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0047] At operation 203, an output unit of the video encoder provides an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded.
[0048] Fig. 2B is a flow chart illustrating a method of encoding video according to an example. At operation 201, an input unit of a video encoder receives frames of spherical video. Each of the frames comprises blocks of pixels.
[0049] At operation 202B, an intra-prediction unit of the video encoder generates a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded, and by using geodesic curves of different defined curvatures in the intra-prediction for different pixels of the current block to be encoded. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0050] At operation 203, an output unit of the video encoder provides an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded.
[0051] Fig. 2C is a flow chart illustrating a method of encoding video according to an example. At operation 201, an input unit of a video encoder receives frames of spherical video. Each of the frames comprises blocks of pixels.
[0052] At operation 202C, an intra-prediction unit of the video encoder generates a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded, and by using geodesic curves of identical defined curvatures in the intra-prediction for different pixels of the current block to be encoded. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0053] At operation 203, an output unit of the video encoder provides an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded.
[0054] Fig. 2D is a flow chart illustrating a method of encoding video according to an example. At operation 201, an input unit of a video encoder receives frames of spherical video. Each of the frames comprises blocks of pixels.
[0055] At operation 202D, an intra-prediction unit of the video encoder generates a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded, and by using a directional intra-prediction mode for choosing one or more parameters of the geodesic curve. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0056] At operation 203, an output unit of the video encoder provides an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded.
[0057] Fig. 2E is a flow chart illustrating a method of encoding video according to an example. At operation 201, an input unit of a video encoder receives frames of spherical video. Each of the frames comprises blocks of pixels.
[0058] At operation 202E, an intra-prediction unit of the video encoder generates a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded, and using a flag to indicate whether to perform the intra-prediction along the geodesic curve. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0059] At operation 203, an output unit of the video encoder provides an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded.
[0060] Fig. 3A is a flow chart illustrating a method of decoding video according to an example. At operation 301, an input unit of a video decoder receives an encoded bitstream representing frames of spherical video. Each of the frames comprises blocks of pixels.
[0061] At operation 302A, an intra-prediction unit of the video decoder determines a set of pixel values for a current block to be decoded, by performing intra-prediction along a geodesic curve for the current block to be decoded. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0062] At operation 303, an output unit of the video decoder provides decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
[0063] Fig. 3B is a flow chart illustrating a method of decoding video according to an example. At operation 301, an input unit of a video decoder receives an encoded bitstream representing frames of spherical video. Each of the frames comprises blocks of pixels.
[0064] At operation 302B, an intra-prediction unit of the video decoder determines a set of pixel values for a current block to be decoded, by performing intra-prediction along a geodesic curve for the current block to be decoded, and by using geodesic curves of different defined curvatures in the intra-prediction for different pixels of the current block to be encoded. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0065] At operation 303, an output unit of the video decoder provides decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
[0066] Fig. 3C is a flow chart illustrating a method of decoding video according to an example. At operation 301, an input unit of a video decoder receives an encoded bitstream representing frames of spherical video. Each of the frames comprises blocks of pixels.
[0067] At operation 302C, an intra-prediction unit of the video decoder determines a set of pixel values for a current block to be decoded, by performing intra-prediction along a geodesic curve for the current block to be decoded, and by using geodesic curves of identical defined curvatures in the intra-prediction for different pixels of the current block to be encoded. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0068] At operation 303, an output unit of the video decoder provides decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
[0069] Fig. 3D is a flow chart illustrating a method of decoding video according to an example. At operation 301, an input unit of a video decoder receives an encoded bitstream representing frames of spherical video. Each of the frames comprises blocks of pixels.
[0070] At operation 302D, an intra-prediction unit of the video decoder determines a set of pixel values for a current block to be decoded, by performing intra-prediction along a geodesic curve for the current block to be decoded, and by using a directional intra-prediction mode for choosing one or more parameters of the geodesic curve. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is performed for a planar projection of the spherical video.
[0071] At operation 303, an output unit of the video decoder provides decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
[0072] Fig. 3E is a flow chart illustrating a method of decoding video according to an example. At operation 301, an input unit of a video decoder receives an encoded bitstream representing frames of spherical video. Each of the frames comprises blocks of pixels.
[0073] At operation 302E, an intra-prediction unit of the video decoder determines a set of pixel values for a current block to be decoded, by performing intra-prediction along a geodesic curve for the current block to be decoded in response to a flag indicating that intra-prediction along the geodesic curve is to be performed. The geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video. Furthermore, the intra-prediction is be performed for a planar projection of the spherical video.
[0074] At operation 303, an output unit of the video decoder provides decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
[0075] FIG. 7 further illustrates an example 700 of intra-prediction along geodesic curves in accordance with the examples of FIGS. 1A-3E.
[0076] As discussed above, a geodesic curve is a part of a great circle. The great circle is a circle on the viewing sphere inside the plane defined by the straight line and the sphere's center. When the elevation angle of an azimuth angle of 0 is Θ, the great circle can be expressed as: φ = tan − 1 tan θ cos λ
[0077] Equirectangular projection has the following equations for forward projection: x = λ − λ 0 * cosφ 0 y = φ − φ 0 and for backward projection: λ = x cosφ 0 + λ 0 φ = y + φ 0 where φ,λ are the spherical coordinates of a pixel on the viewing sphere, x,y are corresponding coordinates on the equirectangular projection, are φ 0 ,λ 0 spherical coordinates of a standard parallel and central meridian, e.g., the starting point of a spherical coordinate system. When φ 0 =0; λ 0 = 0 the conversion equations become: x = λ y = φ .
[0078] Unfolding from the spherical to equirectangular projection transforms the great circles (i.e. the intra-prediction lines on the viewing sphere) into curves, as shown in FIG. 5. As discussed above, prediction may be performed along these curves.
[0079] As discussed above in connection with FIG. 4, an infinite number of lines (or parts of circles or arcs) may pass through two points on a sphere. Only one of them is lying on a great circle. That means that once the position of two points of a line on a viewing sphere is known, one and only one geodesic curve can be determined coming through these two points. Here, one of the points may be a current pixel to be predicted. The other point may vary depending on the implementation. For example, the starting point of the coordinate system may be shifted to this other point. The shifting of the starting point may be applied, e.g., during the conversion from the equirectangular projection to the spherical coordinates, and vice versa. Alternatively, the starting shift may be taken directly in equations. In that case, the great circle equation will be: φ = tan − 1 tan θ cos λ − λ 0 + φ 0 .
[0080] It is to be understood that the starting point may alternatively be defined in picture projection coordinates instead of spherical coordinates.
[0081] Again referring to FIG. 7, the intra-prediction along geodesic curves may include operations in which for each pixel to be predicted with picture position x,y : A1. the pixel position is converted to spherical coordinates, with the starting point of the coordinate system set to φ 0 ,λ 0 : λ = x cosφ 0 + λ 0 φ = y + φ 0 A2. the elevation angle of the geodesic line coming through this point to the starting point of the coordinate system is defined as: θ = tan − 1 tan φ cos λ A3. the coordinate of a pixel lying on the reference line is defined using: φ frac = tan − 1 tan θ cosλ left for prediction from a horizontal reference, and λ frac = cos − 1 tanφ top tan θ for prediction from a vertical reference, where φ top ,λ left are the coordinates of top and left reference lines, respectively, and φ frac ,λ frac are the defined fractional positions on the reference line A4. the fractional position is converted back to the picture position coordinates: x = λ − λ 0 * cosφ 0 y = φ − φ 0 A5. the predicted pixel value is interpolated using fractional reference coordinates with a suitable interpolation method.
[0082] By applying different 2D-to-sphere conversion formulas on the above operations 1 and 4, this can be adopted to any type of sphere-to-2D projection rather than only to equirectangular projection.
[0083] Fig. 8 further illustrates an example 800 of using directional intra-prediction modes together with intra-prediction along geodesic curves in accordance with the examples of FIGS. 1A-3E.
[0084] Here, a straight line 810 goes across the block 820 (e.g., through block center) with an angle that corresponds to a directional intra-prediction mode. Two points inside the current block and lying on this line 810 are selected, e.g., the points 811, 812 in which the line 810 crosses the border of the block 820. Alternatively, e.g., the center of the block 820 may be chosen as the first point, and another point located at a distance of, e.g., 1 pixel from the first one may be chosen as the second point. In other words, an angular or directional intra-prediction mode is used as a tangent to a geodesic curve 830. By choosing different angular intra-prediction modes it is possible to select geodesic curves of different parameters.
[0085] Furthermore, here parallel lines 611A, 611B are projected into two great circles 621A, 621B on a unit sphere 620 crossing in some point on the equator with coordinates φ = 0, λ = λ c , as shown in the example of FIG. 6. This point may be chosen by a given angular direction, and all geodesic curves for the current block may be drawn through this point. Thus, the associated intra-prediction operations may include:
[0086] For a given angular direction: B1. two points inside the current block (or in the neighborhood of the current block) are chosen lying on a straight line with an angle according to the given angular direction. As an example, these may be the two points 811, 812 in which the straight line 810 coming through the center of the block 820 crosses the block borders (FIG. 8). B2. they are converted to spherical coordinates with the starting point at φ 0 = 0;λ 0 = 0 using: λ = x φ = y B3. the position of a point in which the great circle coming through the given two points crosses the equator is obtained by solving the equation: λ o = tan − 1 cos λ 1 − tgφ 1 tgφ 2 cos λ 2 sin λ 1 − tgφ 1 tgφ 2 sin λ 2 where φ 1 ,λ 1 and φ 2 ,λ 2 are the spherical coordinates of the two points 811, 812 selected above in step 1 B4. the starting point of the spherical coordinate system for next steps is chosen as: λ = λ 0 φ = 0 B5. for each point in the block to be predicted, the above described intra-prediction operations A1-A5 may then be performed.
[0087] The above operations B1-B5 allow geodesic intra-prediction in different directions using a signaling mechanism based on angular prediction intra-prediction modes.
[0088] The functionality described herein can be performed, at least in part, by one or more computer program product components such as software components. According to an embodiment, the video encoder 100 and / or video decoder 110 comprise a processor configured by program code to execute the embodiments of the operations and functionality described. Alternatively, or in addition, the functionality described herein can be performed, at least in part, by one or more hardware logic components. For example, and without limitation, illustrative types of hardware logic components that can be used include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), and Graphics Processing Units (GPUs).
Claims
1. A video encoder (100), comprising: an input unit (101) configured to receive frames of spherical video, each of the frames comprising blocks of pixels; an intra-prediction unit (102) configured to generate a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded, wherein the geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video, wherein the intra-prediction unit (102) is configured to perform the intra-prediction for a planar projection of the spherical video by using a directional intra-prediction mode defining a tangent to the geodesic curve; and an output unit (103) configured to provide an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded and including the directional intra-prediction mode.
2. The video encoder (100) according to claim 1, wherein geodesic curves of different defined curvatures are used in the intra-prediction for different pixels of the current block to be encoded.
3. The video encoder (100) according to claim 1, wherein geodesic curves of identical defined curvatures are used in the intra-prediction for different pixels of the current block to be encoded.
4. The video encoder (100) according to any of claims 1 to 3, wherein the intra-prediction unit (102) is further configured to use a flag to indicate whether to perform the intra-prediction along the geodesic curve.
5. A system comprising a video encoder according to one of the claims 1 to 4 and a video decoder (110), the video decoder (110) comprising: an input unit (111) configured to receive the encoded bitstream representing frames of spherical video, each of the frames comprising blocks of pixels; an intra-prediction unit (112) configured to determine a set of pixel values for a current block to be decoded using a set of residuals for the current block and a directional intra-prediction mode in the received encoded bitstream, by performing intra-prediction along a geodesic curve for the current block to be decoded, wherein the geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video and wherein the intra-prediction unit (112) is configured to perform the intra-prediction for a planar projection of the spherical video by using the directional intra-prediction mode, the directional intra-prediction mode defining a tangent to the geodesic curve; and an output unit (113) configured to provide decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.
6. The system according to claim 5, wherein geodesic curves of different defined curvatures are used in the intra-prediction for different pixels of the current block to be decoded.
7. The system according to claim 5, wherein geodesic curves of identical defined curvatures are used in the intra-prediction for different pixels of the current block to be decoded.
8. A method (200-240) of encoding video, comprising: receiving (201), by an input unit of a video encoder, frames of spherical video, each of the frames comprising blocks of pixels; generating (202A-202E), by an intra-prediction unit of the video encoder, a set of residuals for a current block to be encoded, by performing intra-prediction along a geodesic curve for the current block to be encoded and by performing the intra-prediction for a planar projection of the spherical video by using a directional intra-prediction mode defining a tangent to the geodesic curve, wherein the geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video; and providing (203), by an output unit of the video encoder, an encoded bitstream based on sets of residuals generated by the intra-prediction performed on the blocks to be encoded and including the directional intra-prediction mode.
9. A computer program comprising program code configured to perform a method according to claim 8, when the computer program is executed on a computer.
10. A method (300-340) of encoding and decoding video, comprising the method of claim 8 and further comprising: receiving (301), by an input unit of a video decoder, the encoded bitstream representing frames of spherical video, each of the frames comprising blocks of pixels; determining (302A-302E), by an intra-prediction unit of the video decoder, a set of pixel values for a current block to be decoded using a set of residuals for the current block and a directional intra-prediction mode in the received encoded bitstream, by performing intra-prediction along a geodesic curve for the current block to be decoded, wherein the geodesic curve with its curvature corresponds to a straight line in a three-dimensional scene represented by the spherical video, and wherein the intra-prediction is performed for a planar projection of the spherical video by using the directional intra-prediction mode, the directional intra-prediction mode defining a tangent to the geodesic curve; and providing (303), by an output unit of the video decoder, decoded video based on the sets of pixel values determined by the intra-prediction performed on the blocks to be decoded.