Since H.261, all video coding standards, including the state of the art ITU T H.265 | MPEG H HEVC video coding standard (reference 1: ITU-T and ISO/IEC. High efficiency video coding. ITU-T Recommendation H.265 | ISO/IEC 23008(HEVC), edition 1, 2013; edition 2, 2014), rely on the basic concept of block-based hybrid video coding. Here the input signal for each color component is segmented into disjoint blocks, which are encoded using a hybrid video coding scheme, based on prediction, transform, quantization and entropy coding. Thus, one of the first steps in the encoding and decoding algorithm is the generation of the prediction signal for the current block, which is performed by either a spatial or a temporal prediction scheme. In case of temporal prediction, the prediction signal is derived from already processed frames, which are denoted as reference frames. For this purpose, a displacement vector specifies the offset of the prediction signal in the reference frame relative to the position of the current coded block. This temporal prediction scheme is also known as translational motion compensated prediction. In this meaning, the displacement vector is denoted as motion vector.
In order to allow motion vectors with a sub-pixel precision, the prediction signal is calculated using interpolation filters. Furthermore, the prediction signal can be composed by a superposition of multiple prediction signals, each specified by a different motion vector and/or a different reference frame. Independent of final calculation and composition of the prediction signal, the basic principle remains the same. The area of the referenced block within the reference frame is determined by position and size of the current coded block, displaced by an additional motion vector. In case interpolation filters are used, this area has to be expanded to each side in dependence on the number of used filter taps. The pixels within the area of the referenced block are then used to generate the temporal prediction signal for the current coded block. Usually, the area of the referenced block lies within the reconstructed reference frame. Nevertheless, the area of the referenced block may not completely overlap with the area of the reconstructed frame, which means part of the referenced pixel area may lie outside of the reference frame area.
In current video coding standards the basic approach to handle a referenced portion, i.e., referenced pixel area outside the reference picture, i.e., reference frame area is either to restrict the motion vectors or to extend the reference frame area. For example, in H.261 the motion vectors are restricted at the picture boundary, such that all pixels referenced are within the reference frame area, i.e., all samples of a sample portion of the reference picture which are located within the border of the reference frame. Alternatively, in H.264/H.265, a process called boundary padding is used to extend the already reconstructed reference frame as shown in
Further, known approaches to boundary padding are advantageous when dealing with specific video content known as omnidirectional or 360° video which employs an omnidirectional projection to map the camera surrounding onto a rectangular video picture plane. One of the widely used formats for such content is based on the equirectangular projection (ERP). Omnidirectional content allows filling regions outside the picture boundaries with correct content as the correct content is by definition depicted elsewhere in the same picture. Any vertical picture boundary of ERP video content that depicts 360° horizontally can be padded by copying samples from the opposite vertical picture boundary. However, the horizontal picture boundary, especially in case the vertical viewing angle offers less than full coverage, exhibits different characteristics.
In
In many cases, a simple perpendicular extension of the frame border pixels leads to a continuation, which does not approximate the current predicted block very well. By using different intra-prediction modes to extend the reference frame border, e.g. angular, DC or Planar prediction, etc., a better continuation might be achieved. Exemplary intra-prediction modes which can be used for the border extension are the intra-prediction modes from H.265 as described in Reference 1 or from the Joint Exploration Test Model (JEM) as described in Reference 2 (J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, Algorithm Description of Joint Exploration Test Model 7 (JEM 7), JVET, doc. JVET-G1001, July 2017). Moreover, in a future embodiment of this method, also future intra-prediction modes can be used to extend the reference border. The mode of the spatial extension of the frame border depends on the characteristics of the current predicted block. Hence, from a set of multiple angular intra-prediction modes, a certain angular intra-prediction mode has to be chosen/selected to generate a prediction signal, which provides the best approximation of the current predicted block.
An embodiment may have a video encoder for supporting temporal inter-prediction, configured to perform padding of an area of a referenced portion of a reference picture which extends or lies beyond a border of the reference picture, which referenced portion is referenced by an inter predicted block of a current picture by selecting one of a plurality of intra-prediction modes, and padding the area using the selected intra-prediction mode.
Another embodiment may have a video decoder for supporting temporal inter-prediction, configured to perform padding of an area of a referenced portion of a reference picture which extends or lies beyond a border of the reference picture, which referenced portion is referenced by an inter predicted block of a current picture by selecting one of a plurality of intra-prediction modes, and padding the area using the selected intra-prediction mode.
According to another embodiment, a method for encoding for supporting temporal inter-prediction may have the step of performing padding of an area of a referenced portion of a reference picture which extends beyond a border of the reference picture, which referenced portion is referenced by an inter predicted block of a current picture by selecting one of a plurality of intra-prediction modes, and padding the area using the selected intra-prediction mode.
According to another embodiment, a method for decoding for supporting temporal inter-prediction may have the step of performing padding of an area of a referenced portion of a reference picture which extends beyond a border of the reference picture, which referenced portion is referenced by an inter predicted block of a current picture by selecting one of a plurality of angular intra-prediction modes, and padding the area using the selected angular intra-prediction mode.
Another embodiment may have a non-transitory digital storage medium having a computer program stored thereon to perform any of the inventive methods when said computer program is run by a computer.
Another embodiment may have a data stream generated by any of the inventive methods.
It is basic idea underlying the present application that the quality improvement of temporal inter-prediction is achieved by selecting the most appropriate intra-prediction mode for padding. This might be selection of an angular intra prediction mode out of a plurality of such intra prediction modes based on the characteristic of the current predicted block.
In accordance with an embodiment, an angular intra-prediction mode to be used for padding is selected based on an evaluation of an area of the reference picture at a portion of the border of the reference picture where the referenced portion crosses the border. The evaluation is performed by, for each of at least a subset of the plurality of angular intra-prediction modes, filling, based on border samples of the reference picture at the portion of the border, along a direction opposite to a filling direction associated with the respective angular intra-prediction mode, a probe area located farther away from the border than the border sample to obtain a probe filling; and comparing the probe filling with a reconstructed filling of the probe area to measure a similarity between them. Hence, the selecting is performed based on the characteristic of the current predicted block and therefore, it is possible to provide the best approximation of the current predicted block and improve the prediction quality.
In accordance with embodiments of the present application, an angular intra-prediction mode to be used for padding is selected based on a prediction result of the area of the referenced portion which is outside of the reference picture. The referenced portion is referenced by an inter-prediction block of a current picture. Therefore, the angular intra-prediction mode is selected depending on the characteristic of the area and therefore, it is possible to select the most appropriate angular intra-prediction mode for padding. In addition, a plurality of used angular intra-prediction modes for predicting the area could be signaled as a subset of supported angular intra-prediction modes supported by the codec for an intra-predicted block.
Embodiments of the present invention will be detailed subsequently referring to the appended drawings, in which:
The following description of the figures starts with a presentation of a description of video encoder and video decoder of a block-based predictive codec for coding pictures of a video in order to form an example for a coding framework into which embodiments for a composed prediction codec may be built in. The video encoder and video decoder are described with respect to
The encoder 10 is configured to subject the prediction residual signal to spatial-to-spectral transformation and to encode the prediction residual signal, thus obtained, into the data stream 14. Likewise, the decoder 20 is configured to decode the prediction residual signal from the data stream 14 and subject the prediction residual signal thus obtained to spectral-to-spatial transformation.
Internally, the encoder 10 may comprise a prediction residual signal former 22 which is generates a prediction residual 24 so as to measure a deviation of a prediction signal 26 from the original signal, i.e. video 11 or a current picture 12. The prediction residual signal former 22 may, for instance, be a subtractor which subtracts the prediction signal from the original signal, i.e. current picture 12. The encoder 10 then further comprises a transformer 28 which subjects the prediction residual signal 24 to a spatial-to-spectral transformation to obtain a spectral-domain prediction residual signal 24′ which is then subject to quantization by a quantizer 32, also comprised by encoder 10. The thus quantized prediction residual signal 24″ is coded into bitstream 14. To this end, encoder 10 may optionally comprise an entropy coder 34 which entropy codes the prediction residual signal as transformed and quantized into data stream 14. The prediction residual 26 is generated by a prediction stage 36 of encoder 10 on the basis of the prediction residual signal 24″ decoded into, and decodable from, data stream 14. To this end, the prediction stage 36 may internally, as is shown in
A prediction module 44 of prediction stage 36 then generates the prediction signal 26 on the basis of signal 46 by using, for instance, spatial prediction, i.e. intra-prediction, and/or temporal prediction, i.e. inter-prediction. Details in this regard are described in the following.
Likewise, decoder 20 may be internally composed of components corresponding to, and interconnected in a manner corresponding to, prediction stage 36. In particular, entropy decoder 50 of decoder 20 may entropy decode the quantized spectral-domain prediction residual signal 24″ from the data stream, whereupon dequantizer 52, inverse transformer 54, combiner 56 and prediction module 58, interconnected and cooperating in the manner described above with respect to the modules of prediction stage 36, recover the reconstructed signal on the basis of prediction residual signal 24″ so that, as shown in
Although not specifically described above, it is readily clear that the encoder 10 may set some coding parameters including, for instance, prediction modes, motion parameters and the like, according to some optimization scheme such as, for instance, in a manner optimizing some rate and distortion related criterion, i.e. coding cost, and/or using some rate control. As described in more details below, encoder 10 and decoder 20 and the corresponding modules 44, 58, respectively, support different prediction modes such as intra-coding modes and inter-coding modes which form a kind of set or pool of primitive prediction modes based on which the predictions of picture blocks are composed in a manner described in more detail below. The granularity at which encoder and decoder switch between these prediction compositions may correspond to a subdivision of the pictures 12 and 12′, respectively, into blocks. Note that some of these blocks may be blocks being solely intra-coded and some blocks may be blocks solely being inter-coded and, optionally, even further blocks may be blocks obtained using both intra-coding and inter-coding, but details are set-out hereinafter. According to intra-coding mode, a prediction signal for a block is obtained on the basis of a spatial, already coded/decoded neighborhood of the respective block. Several intra-coding sub-modes may exist the selection among which, quasi, represents a kind of intra-prediction parameter. There may be directional or angular intra-coding sub-modes according to which the prediction signal for the respective block is filled by extrapolating the sample values of the neighborhood along a certain direction which is specific for the respective directional intra-coding sub-mode, into the respective block. The intra-coding sub-modes may, for instance, also comprise one or more further sub-modes such as a DC coding mode, according to which the prediction signal for the respective block assigns a DC value to all samples within the respective block, and/or a planar intra-coding mode according to which the prediction signal of the respective block is approximated or determined to be a spatial distribution of sample values described by a two-dimensional linear function over the sample positions of the respective block with deriving tilt and offset of the plane defined by the two-dimensional linear function on the basis of the neighboring samples. Compared thereto, according to inter-prediction mode, a prediction signal for a block may be obtained, for instance, by temporally predicting the block inner. For parametrization of an inter-prediction mode, motion vectors may be signaled within the data stream, the motion vectors indicating the spatial displacement of the portion of a previously coded picture of the video 11 at which the previously coded/decoded picture is sampled in order to obtain the prediction signal for the respective block. This means, in addition to the residual signal coding comprised by data stream 14, such as the entropy-coded transform coefficient levels representing the quantized spectral-domain prediction residual signal 24″, data stream 14 may have encoded thereinto prediction related parameters for assigning to the blocks prediction modes, prediction parameters for the assigned prediction modes, such as motion parameters for inter-prediction modes, and, optionally, further parameters which control a composition of the final prediction signal for the blocks using the assigned prediction modes and prediction parameters as will be outlined in more detail below.
Additionally, the data stream may comprise parameters controlling and signaling the subdivision of picture 12 and 12′, respectively, into the blocks. The decoder 20 uses these parameters to subdivide the picture in the same manner as the encoder did, to assign the same prediction modes and parameters to the blocks, and to perform the same prediction to result in the same prediction signal.
The prediction residual signal 24″″ in
In
Naturally, while transformer 28 would support all of the forward transform versions of these transforms, the decoder 20 or inverse transformer 54 would support the corresponding backward or inverse versions thereof:
In any case, it should be noted that the set of supported transforms may comprise merely one transform such as one spectral-to-spatial or spatial-to-spectral transform.
As already outlined above,
In particular, with respect to the block-subdivisioning into blocks 80, it is noted that same may be done in the manner outlined with respect to
Having said this, the following description concentrates on circumstances where motion vectors point to portions in the plane of a reference picture which cross borders of these reference pictures beyond which no picture content is available. In order to pad the sub-portion which extends beyond the borderline or completely lies outside the reference picture, a selection of one of a plurality of intra-prediction modes is done in accordance with embodiments of the present invention. The aim is to improve a temporal inter-prediction quality by selecting the most appropriate angular intra-prediction mode for padding based on the characteristics of the predicted block.
In the following description, the term “referenced pixel area” corresponds to “referenced portion”, “reference frame” corresponds to “reference picture”, “frame border” corresponds to “a border of the reference picture”, “border pixel” corresponds to “border sample”, and “template area” corresponds to “probe area”. Each corresponding terms could be used in the description. In addition, “padding” is the same meaning as “boundary padding” in this application document. Furthermore, in the following embodiments, one of a plurality of angular intra-prediction mode is selected as an example of an intra-prediction mode for padding. However, the intra-prediction modes of the present invention are not limited to angular intra-prediction modes, but the plurality of intra-prediction modes may include a DC and/or a planar modes and/or a mode for padding other intra-prediction modes, for instance. In a case of the DC and planar modes, for the sake of the border samples, the perpendicular direction (perpendicular to the frame border) may be used.
The implemented angular border, padding follows the angular intra-prediction of the Joint Exploration Test Model (JEM) as described in Reference 2. Please note that the angular intra-prediction algorithm in JEM assumes that the left and top border pixels of an area are always available for prediction. Nevertheless, the basic prediction algorithm assumes all border pixels in a straight line and therefore a translation of either the left or the top border pixels is performed in JEM. This translation step is omitted in the embodiment of this application. Furthermore, JEM uses 65 angular intra-prediction modes composed out of 33 vertical and 33 horizontal modes. In the embodiment of this application, only the 33 vertical modes are used as shown in
In case the referenced pixel area 100 lies in part or in whole outside the reference frame 101 in horizontal and in vertical direction, e.g. at the reference frame edges (i.e., frame corner), the advantageous boundary padding side is computed. In the following, NHor and Nver denote the number of horizontal and vertical lines of the referenced pixel area 101 which lie outside of the reference frame area. In dependence to the frame edge and NHor and Nver the advantageous boundary padding side can be computed as follows:
If edge==Top-Left-Edge then
Else if edge==Top-Right-Edge then
Else if edge==Bottom-Right-Edge then
Else if edge==Bottom-Left-Edge then
If NVer>NHor then Bottom-Side else Left-Side
For this calculated advantageous boundary padding side, the selected angular intra-prediction mode according to the claims is applied. For the remaining side, the original perpendicular boundary padding process is applied as shown in
In
Alternatively, the referenced pixel area 100 outside the reference frame 101 is padded entirely by MMBP as shown in
In this embodiment, the most appropriate angular inter-prediction mode for boundary padding is derived in the video encoder 10 and the video decoder 20 whenever the referenced pixel area lies in part or in whole outside the reference frame area. As a precondition, the referenced pixel area 100 is divided into the area 100′ which is outside of the reference frame 101 and the area 100″ which is inside the reference frame 101 as shown in
To select one of a plurality angular intra-prediction mode in encoder 10 and decoder 20, the direction of each intra-prediction might be rotated by 180° to point inwards of the reference frame 101. Then a template area, i.e., a probe area 104 is defined based on the rotated intra-prediction, which lies inside the reference frame 101 as shown in
For evaluating, the predicted pixels are compared with the already reconstructed pixels of the reference frame 101 within the template area 104 to derive the final angular intra-prediction mode. With the claimed wording, a probe area (template area) 104 is filled, and the filling probe is compared with the reconstructed filling of the probe area 104 to is measure a similarity between them. For this comparison, any measure of similarities between blocks can be used, e.g., a sum of absolute differences (SAD), a sum of absolute transformed differences (SATD), a sum of squared errors (SSE), Hadamard transform and others. In order to improve the prediction, content dependent transforms can be used to transform the information into another domain that is less sensitive, e.g., to the position. Such content dependent transforms can also be trained. The angular intra-prediction mode with the highest similarity measure between predicted pixels and reconstructed pixels within the template area 104 could be finally chosen to be used for the padding of the area 100′ of the referenced portion 100 of the reference picture 101 which extends beyond the border 106 of the reference picture 101.
As a modification of the above embodiment, a plurality of (for example, Number N of) different template areas (probe areas) could be used, assuming N=2 in the following, for each angular intra-prediction mode to further improve selection accuracy. For example, the first template area is defined in dependence to the outermost pixel line 112 of the referenced pixel area 100 with respect to the frame border 106 as shown in
For these both pixel lines 110, 112 in the referenced pixel area 100, the angular intra-prediction mode is inverted to determine the left-most and right-most frame border pixels, which have to be used for the angular intra-prediction. Without restriction of any kind, it is assumed in the following that the referenced pixel area 100 overlaps the reference frame 101 at the top of the frame border 106 (or the advantageous padding side is the top side). In this case, the left-most and right-most frame border pixels have the coordinates {xleft-most; 0} and {xright-most; 0} as shown as a table in
As mentioned above, first template area based on the first pixel line 110 and second template area based on the outmost pixel line 120 are defined in consideration of the table of
In addition, the high-level parameters controlling the behavior of the boundary padding with derivation of the angular intra-prediction mode for padding may include the size and shape of the template area. This means, the number of additional pixel lines perpendicular to the frame border and an optional extension of the template area could be parallel to the frame border to the left and right side. Additionally, a high-level parameter may be introduced to specify the lines in the referenced pixel area which are used to define the template areas, e.g. outermost line, first line out of reference frame or middle line between outermost and first line. Furthermore a reduction of the number of used angular intra-prediction modes may be signaled. Additional high-level parameters may be introduced to specify a minimum and/or a maximum threshold which define how much the referenced pixel area has to lie outside the reference frame to select an angular intra-prediction mode for padding. That is, the threshold could define the amount of extended area of referenced portion outside of the reference picture. The high-level parameters may be signaled in a picture parameter set (PPS), sequence parameter set (SPS), slice header or any other high-level syntax structure.
Furthermore, regarding the process for selecting probe area selection, known codecs featuring a perpendicular border extension could be used. In implementations the perpendicular border extension, a technique known as motion vector (MV) clipping is commonly used to lower the memory cost associated with storing the sample values of border extension samples. As for the repetitive nature of sample values in a perpendicular border extension, it is advisable to clip motion vectors that result in a reference block which contains only border extension samples. The contents of the reference block resulting from the clipped MV are similar to the original reference block. However, a decoder implementation may save resources using such samples by generating a border extension of limited size. Commonly, a fixed size limit such as the size of the largest coding unit plus size of the interpolation filter kernel is used to be able to fit every potential reference block size into the limited amount of generated border extension sample as illustrated in
As illustrated in
Furthermore, adaptive MV clipping can be used to control probe area selection in a beneficial way by adjusting the amount of clipping to the size of the referenced pixel area, i.e., the referenced block size. As illustrated in
The amount of coding options to evaluate on encoder side is an important factor for the complexity of a codec. One aspect of the present invention is hence a measure to control the complexity impact of the boundary padding described herein. This measure is constituted by carrying out motion estimation on encoder, i.e. the search and coding cost evaluation of different motion-compensated predictor samples for inter-prediction, by extending known motion estimation by a second stage. While the first motion compensation stage encompasses all steps of known motion compensation (e.g. generate known boundary padding samples and evaluate the coding cost of residual data for a given predictor), a second stage is amended to known motion compensation wherein the best predictor is further enhanced through a more sophisticated boundary sample padding scheme such as the ones described herein.
In case the referenced portion lies in part or in whole out of the reference picture, the following other embodiment is also applied. As already mentioned above, as prerequisites, the referenced pixel area is divided into the area outside of the reference frame area and the area inside the reference frame area. All pixels inside the reference frame area are used directly as input pixels for the motion compensated prediction of the current predicted block. All pixels outside the reference frame area are predicted with the help of an angular intra-prediction from the adjacent border pixels of the reference frame as described in
In addition, the selected angular intra-prediction mode could be coded using context-based adaptive arithmetic coding (CABAC). In addition, an enable flag is used to indicate whether the default perpendicular boundary padding or the boundary padding based on the selected angular intra-prediction mode is applied. Due to the fact that the default perpendicular mode is one of the 33 angular intra-prediction modes, the remaining 32 angular intra-prediction modes can be coded with five additional CABAC bins. The enable flag, as well as the remaining angular modes are coded as a series of binary decisions with adaptive binary probability models (a subset of these bins, for example, the angular intra-prediction modes may also be coded with non-adaptive probability models). In order to model the enable flag, different context models might be used which can be selected based on the amount that the referenced pixel area lays out of the reference frame. For example, different context models could be used for cases when less than ¼, less than ½, less than ¾ or more than ¾ of the referenced pixel area lie out of the reference frame.
Alternatively, a list of most probable modes (MPM) is used to signal frequently occurring angular intra-prediction mode for boundary padding. Possible MPM candidates might be the angular intra-prediction modes for boundary padding of adjacent blocks which have been coded before, in case an angular intra-prediction mode for boundary padding is available for these blocks. Other MPM candidates might be the angular intra-prediction modes of adjacent previously coded blocks, if available. Furthermore the angular intra-prediction modes of a coded block in the reference frame collocated to the referenced picture could be used as MPM candidate. In addition, the angular intra-prediction modes of a coded block in the associated random access point picture collocated to the referenced picture area could be used as MPM candidate. In case of 33 angular intra-prediction modes, the MPM candidate list contains one MPM candidate mode. A CABAC binary flag is used to signal whether the MPM candidate should be used. The remaining 32 angular modes can be signaled with 5 CABAC bins. The MPM flag, as well as the remaining angular intra-prediction modes are coded as a series of binary decisions with adaptive binary probability models as explained above.
The angular intra-prediction mode for boundary mode is part of the motion information of a coded block. Therefore, in case the motion information is used/copied by a different coded block, e.g. in case a merge mode or motion vector prediction is used, the angular intra-prediction mode for boundary padding associated with the copied motion vector might be copied as well and applied in case the referenced pixel area lies outside of the reference frame area. In the case of motion vector prediction from a block for which MMBP is activated, the selected angular intra-prediction mode for padding might become the MPM for the coding of the padding direction of the current coded block, if MMBP is used for the coded block. Alternatively, the possible motion prediction candidates might provide a list of possible MPMs.
The high-level parameters controlling the behavior of the partial boundary padding with signaling of the selected angular intra-prediction mode for padding may include a parameter to define a sub-set of the angular intra-prediction modes which should be used for boundary padding. In this case, the number of supported angular intra-prediction modes for padding can be restricted to a smaller number, less CABAC bins have to be used for signaling the selected angular intra-prediction modes for boundary padding. For example, using only a subset of 18 angular modes in combination with a MPM candidate list of 2 modes, only 16 angular modes remain which can be encoded with 4 CABAC bins (thus resulting in 2 bins for signaling of the MPM mode and 5 bins for signaling the remaining non-MPM modes). Additional high-level parameters may be introduced to specify a minimum and/or a maximum threshold which define how much the referenced pixel area has to lie outside the reference frame area to select the most appropriate angular intra-prediction mode for padding as described above. The high-level parameters may be signaled in a picture parameter set (PPS), sequence parameter set (SPS), slice header or any other high-level syntax structure.
The above-mentioned embodiments could be combined, e.g., the embodiment using template and other embodiment signaling the selected angular intra-prediction mode as described above could be combined as a further embodiment explained below.
The selection of angular intra-prediction modes follows the embodiment as explained by
As already mentioned above, an enable flag might be used to indicate whether the default perpendicular boundary padding or the truncated ordered list of selected padding modes should be used. In addition, the number of signaled padding modes is set to 2N which can be signaled with N CABAC bins. The selected angular intra-prediction modes are coded as a series of binary decisions with adaptive binary probability models (a subset of these bins may also be coded with non-adaptive probability models). In case binary probability models are used to encode the selected angular intra-prediction modes, different context models might be used which can be selected based on the amount of the area of the referenced portion which lies outside of the reference frame area as described above.
Furthermore, the truncated ordered list of the selected angular intra-prediction modes for padding is used as MPM candidate list. Here, the MPM candidate list and the remaining angular intra-prediction modes for padding can be encoded as described above. Moreover, the same high level parameters as described above, e.g., a parameter to define a sub-set of the angular intra-prediction modes, thresholds for the application of the selected angular intra-prediction mode and parameters to define the size and shape of the template area, might also be used. Also, as described above, the high-level parameters may be signaled in a picture parameter set (PPS), sequence parameter set (SPS), slice header or any other high-level syntax structure.
In a embodiment of the present application, the high-level syntax includes syntax elements by which the multi-mode boundary padding is controlled. The high-level syntax elements are transmitted in one or more high-level syntax structures, such as the sequence parameter set (SPS: valid for all pictures inside a coded video sequence), the picture parameter set (PPS: valid for one or more pictures), the slice header (valid for a slice), etc.
The high-level syntax elements which control the application to select angular intra-prediction mode can include, but are not restricted to, one or more of the following parameters:
As to the second alternative, the following is additionally noted: While the above-outlined embodiments used angular intra-prediction modes as examples, out of which the intra-prediction mode for padding was finally chosen, it is clear that the perpendicular padding mode padding according to which padding is performed by perpendicularly extrapolating the border samples into the area exceeding the frame boundary, is also an intra-prediction mode just as the omni-directional padding mode is an intra-prediction mode according to which the area lying outside the frame boundary is filled/padded using samples inside the same frame, namely the reference frame. Thus, the high level syntax reveals as to which intra-prediction mode should be used, or which intra-prediction mode(s) is/are available for which portion of the frame boundary, wherein different ones may be signaled to be used or be available for different portions of the frame boundary, such as the omni-directional mode for one portion such as the right and left hand side boundary and the perpendicular mode for the other portion of the frame boundary such as the upper and lower boundary. The encoder and decoder would simply have to recognize the portion of the frame boundary a certain referenced area of an inter-predicted block 80 exceeds and see with which intra-prediction mode same is, according to the high level syntax in the data stream, associated with for sake of padding. The above-listed parameters can be included in more than one high-level syntax structures. For example, global parameters specified in the SPS can be overridden by parameters specified in the PPS.
For the embodiments of the present application, it is useful whenever the referenced pixel area lies in part or in whole outside the reference frame area. As a precondition, the referenced pixel area is divided into the area outside of the reference frame area and the area inside the reference frame area as explained above. All pixels inside the reference frame area are used directly as input pixels for the motion compensated prediction of the current predicted block. All pixels outside the reference frame area are predicted with the help of an intra-prediction from the adjacent border pixels of the reference frame as explained above.
Using other words, the following steps describe again exemplarily as to how the advantageous intra prediction angle or advantageous intra-prediction mode to be used for passing could be selected among the plurality of available intra prediction angles in encoder and decoder. The selection process may be performed for each block to be predicted and each associated motion vector only once for the luminance (Y) color plane. For the chrominance color planes (Cb and Cr) the same intra prediction angle may then be chosen as for the luminance color planes:
If the selected advantageous intra prediction angle is not equal to the perpendicular intra prediction angle perform IntraBP for each color plane with the above selected intra prediction angle and the above advantageous IntraBP side in encoder and decoder:
Use the referenced area sample values compute as described above for each color plane as input values for the motion compensated prediction of the current block.
In addition, existent application such as 360° video streaming services based on the MPEG OMAF standard heavily relay on spatial video partitioning or segmentation techniques. In such application, spatial video segments are transmitted to the client and jointly decoded in a manner adaptive to the current client viewing direction. Another relevant application that relies on spatial segment of the video plane is the parallelization of encoding and decoding operation, e.g., to facilitate the multi-core and parallelization capabilities of modern computing platforms.
One such spatial segmentation technique is implemented in HEVC and known as tiles which divide the picture plane into segments forming a rectangular grid. The resulting spatial segments are coded independently with respect to entropy coding and intra-prediction. Furthermore, there exists means to indicate that the spatial segments are also coded independently with respect to inter-prediction, which may also be combined with spatial segmentation that is static over pictures. Together, these constraints allow for truly independent coding of spatial segmentation of an exemplary picture plane with two such neighboring and independently coded spatial segments.
In more detail, when encoding a current picture using the spatial segmentation shown in
While independent coding of the spatial segments is an enabler for the existent applications as mentioned above, the associated coding constraints can come at significant coding cost. This bitrate overhead stems, for instance, from signaling comparatively larger motion vector differences (MVD) that correct the available motion vector candidates which would otherwise lead to usage of sample locations outside a given spatial segment without the MVD. Further, an increased amount of residual data needs to be signaled to compensate for the degraded inter-prediction predictors. It is therefore very desirable to enhance codec operation at the boundaries of such spatial segments.
One way to mitigate the coding penalty of conventional solutions for such independent spatial segments is to employ a scheme for padding of in-picture boundaries, i.e. segement border lying in the inner of the picture, such as in addition to the outer frame boundaries, similar to, or according to, the MMBP concept described above on the basis of picture boundaries with the slight modifications and extensions described herein or using the high level syntax based padding mode selection which signals which of two or more intra-prediction modes to be used for the spatial segment border or a certain portion of the spatial segment's border such as the vertical ones. That is, instead of the encoder restricting the signaled motion vectors to not refer to referenced portions extending or lying beyond the spatial segment's borders, such portions would be padded at encoder and decoder, and if such referenced portion crosses or lies beyond the predetermined portion of the spatial segment border, then the signaled intra-prediction mode is used for padding. The mitigation of the coding penalty may, generally, also achieved by use of any intra-coding mode, i.e. without multi-mode selection, such as one of the perpendicular, the omnidirectional or an angular intra-prediction mode, thereby resulting in a encoder and decoder for block-based video coding, configured to encode into, and decode from, the data stream for an inter-predicted block a motion vector which references a referenced portion 100 of a reference picture 101 which extends or lies beyond an in-picture segment border of a predetermined spatial segment in the reference picture, within which the inter-predicted block is located, and pad the area 100′ of the referenced portion 100 which extends or lies beyond the in-picture segment border, i.e. outside the predetermined spatial segment. The encoder needs not to redirect a motion vector predictor of the motion vector to urge the signaled motion vector to keep within the predetermined spatial segment of the spatial segments the reference picture is partitioned into in a manner at which the pictures of the video including the current picture are constantly partitioned into. The encoder needs not to signal a redirecting motion vector difference for this vector. The motion vector difference signaled may lead to the motion vector referencing portion outside the predetermined sptial segment such as motion vector difference zero. In particular, the encoder may rely on the padding mechanism of the decoder which enforces spatial segment coding independency of spatially offset spatial segments in the current and reference pictures, and the encoder does the same, i.e. performs padding for sake of reconstructing the inter-predicted block to fill the decoded picture buffer.
As a first aspect, high-level syntax elements in bitstream structures as parameter sets, slice headers or others, control application of multi-mode boundary padding on spatial segment boundaries in general. One value of this syntax indicates to a decoder that:
Although some aspects have been described in the context of an apparatus, it is clear that these aspects also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Analogously, aspects described in the context of a method step also represent a description of a corresponding block or item or feature of a corresponding apparatus. Some or all of the method steps may be executed by (or using) a hardware apparatus, like for example, a microprocessor, a programmable computer or an electronic circuit. In some embodiments, one or more of the most important method steps may be executed by such an apparatus.
The inventive data stream can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the internet.
Depending on certain implementation requirements, embodiments of the invention can be implemented in hardware or in software. The implementation can be performed using a digital storage medium, for example a floppy disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM or a FLASH memory, having electronically readable control signals stored thereon, which cooperate (or are capable of cooperating) with a programmable computer system such that the respective method is performed. Therefore, the digital storage medium may be computer readable.
Some embodiments according to the invention comprise a data carrier having electronically readable control signals, which are capable of cooperating with a programmable computer system, such that one of the methods described herein is performed.
Generally, embodiments of the present invention can be implemented as a computer program product with a program code, the program code being operative for performing one of the methods when the computer program product runs on a computer. The program code may for example be stored on a machine readable carrier.
Other embodiments comprise the computer program for performing one of the methods described herein, stored on a machine readable carrier.
In other words, an embodiment of the inventive method is, therefore, a computer program having a program code for performing one of the methods described herein, when the computer program runs on a computer.
A further embodiment of the inventive methods is, therefore, a data carrier (or a digital storage medium, or a computer-readable medium) comprising, recorded thereon, the computer program for performing one of the methods described herein. The data carrier, the digital storage medium or the recorded medium are typically tangible and/or non-transitionary.
A further embodiment of the inventive method is, therefore, a data stream or a sequence of signals representing the computer program for performing one of the methods described herein. The data stream or the sequence of signals may for example be configured to be transferred via a data communication connection, for example via the Internet.
A further embodiment comprises a processing means, for example a computer, or a programmable logic device, configured to or adapted to perform one of the methods described herein.
A further embodiment comprises a computer having installed thereon the computer program for performing one of the methods described herein.
A further embodiment according to the invention comprises an apparatus or a system configured to transfer (for example, electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may, for example, be a computer, a mobile device, a memory device or the like. The apparatus or system may, for example, comprise a file server for transferring the computer program to the receiver.
In some embodiments, a programmable logic device (for example a field programmable gate array) may be used to perform some or all of the functionalities of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein. Generally, the methods may be performed by any hardware apparatus.
The apparatus described herein may be implemented using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
The apparatus described herein, or any components of the apparatus described herein, may be implemented at least partially in hardware and/or in software.
The methods described herein may be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
The methods described herein, or any components of the apparatus described herein, may be performed at least partially by hardware and/or by software.
While this invention has been described in terms of several embodiments, there are alterations, permutations, and equivalents which fall within the scope of this invention. It should also be noted that there are many alternative ways of implementing the methods and compositions of the present invention. It is therefore intended that the following appended claims be interpreted as including all such alterations, permutations and equivalents as fall within the true spirit and scope of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
18165221.5 | Mar 2018 | EP | regional |
This application is a continuation of copending U.S. patent application Ser. No. 17/036,884, filed Sep. 29, 2020, which in turn is a continuation of copending International Application No. PCT/EP2019/058044, filed Mar. 29, 2019, which is incorporated herein by reference in its entirety, and additionally claims priority from European Application No. EP 18165221.5, filed Mar. 29, 2018, which is incorporated herein by reference in its entirety. The application is concerned with video coding/decoding.
Number | Date | Country | |
---|---|---|---|
Parent | 17036884 | Sep 2020 | US |
Child | 17568955 | US | |
Parent | PCT/EP2019/058044 | Mar 2019 | US |
Child | 17036884 | US |