Encoder and decoder, encoding method and decoding method with profile and level dependent coding options - Patents.com
Patent Information
- Application Number
- JP2023187847
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-03-11
- Filing Date
- 2023-11-01
- Publication Date
- 2025-03-26
- Estimated Expiration
- 2040-03-10
Smart Images

Figure 0007651652000010 
Figure 0007651652000011 
Figure 0007651652000012
Abstract
Description
[Technical field]
[0001] The present invention relates to video encoding and decoding, and in particular to an encoder and decoder, encoding method and decoding method with profile and level dependent coding options. [Background technology]
[0002] H.265 / HEVC (HEVC = High Efficiency Video Coding) is a video codec that already offers tools to improve or even enable parallel processing in the encoder and / or decoder. For example, HEVC supports the subdivision of a picture into an array of tiles coded independently of each other. Another concept supported by HEVC is related to WPP, according to which CTU rows or CTU lines of a picture can be processed in parallel from left to right, for example in stripes, if some minimum CTU offset is respected in the processing of consecutive CTU lines (CTU = Coding Tree Unit). However, it would be preferable to have at hand a video codec that supports even more efficiently the parallel processing capabilities of a video encoder and / or video decoder. In the following we describe the introduction of VCL partitioning, which is state of the art (VCL = Video Coding Layer).
[0003] Usually, in video coding, the coding process of picture samples requires smaller partitions, where the samples are divided into several rectangular regions for joint processing such as prediction or transform coding. Thus, the picture is partitioned into blocks of a certain size that is constant during the encoding of a video sequence. In the H.264 / AVC standard, fixed size blocks of 16x16 samples, so-called macroblocks, are used (AVC=Advanced Video Coding).
[0004] In the state-of-the-art HEVC standard (see [1]), there is a maximum size of a Coded Tree Block (CTB) or Coding Tree Unit (CTU) of 64 × 64 samples. In further descriptions of HEVC, the more general term CTU will be used for such kind of block. The CTUs are processed in raster scan order starting from the top left CTU and processing the CTUs in the picture line-wise to the bottom right CTU.
[0005] The coded CTU data is organized into a kind of container called a slice. Originally, in conventional video coding standards, a slice means a segment containing one or more consecutive CTUs of a picture. Slices are used for segmentation of coded data. From another point of view, a complete picture can also be defined as one large segment, and therefore, historically, the term slice still applies. In addition to the coded picture samples, slices also contain additional information related to the coding process of the slice itself, which is placed in a so-called slice header.
[0006] According to the state of the art, the VCL (Video Coding Layer) also includes techniques for fragmentation and spatial partitioning. Such partitioning can be applied to video coding for various reasons, such as handling load balancing in parallelization, CTU size matching in network transmission, error mitigation, etc. Summary of the Invention [Problem to be solved by the invention]
[0007] It is an object of the present invention to provide an improved concept for video encoding and decoding. [Means for solving the problem]
[0008] The object of the present invention is solved by the subject matter of the independent claims. Preferred embodiments are provided in the dependent claims. In the following, embodiments of the present invention will be described in detail with reference to the drawings. [Brief description of the drawings]
[0009] [Figure 1] 1 illustrates a video encoder according to an embodiment; [Diagram 2] 1 illustrates a video decoder according to an embodiment; [Diagram 3] 1 illustrates a system according to an embodiment. [Figure 4] 1 shows a viewport dependent tiling arrangement with an overview. [Diagram 5] Affine motion with sub-block division is shown. [Figure 6] Zoom motion with affine prediction is shown. [Figure 7] 1 illustrates sub-block partitioning for affine prediction in different channels. [Figure 8] An exemplary state-of-the-art bitstream order for such a case is shown. [Figure 9] 1 shows a video encoder. [Figure 10] 1 shows a video decoder. [Figure 11] It shows the relationship between, on the one hand, the reconstructed signal, i.e. the reconstructed picture, and, on the other hand, the combination of the prediction residual signal and the prediction signal signaled in the data stream. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0010] The following description of the figures begins with the presentation of a description of an encoder and decoder of a block-based predictive codec for coding pictures of video, to form an example of a coding framework in which embodiments of the present invention can be incorporated. The respective encoders and decoders are described with respect to Figures 9 to 11. Below, a description of an embodiment of the inventive concept is presented together with an explanation of how such concepts can be incorporated into the encoders and decoders of Figures 9 and 10, respectively, although the embodiments of Figures 1 to 3 and described below can also be used to form encoders and decoders that do not operate according to the coding framework underlying the encoders and decoders of Figures 9 and 10.
[0011] FIG. 9 illustrates a video encoder, an apparatus for predictively coding a picture 12 into a data stream 14, exemplarily using transform-based residual coding. The apparatus or encoder is indicated using the reference number 10. FIG. 10 illustrates a corresponding video decoder 20, i.e. an apparatus 20 configured to predictively decode a picture 12' from a data stream 14, also using transform-based residual decoding, the apostrophe being used to indicate that the picture 12' reconstructed by the decoder 20 deviates from the picture 12 originally encoded by the apparatus 10 in terms of coding loss introduced by quantization of the predictive residual signal. Although FIG. 9 and FIG. 10 exemplarily use transform-based predictive residual coding, the embodiments of the present application are not limited to this type of predictive residual coding. This also applies to other details described with respect to FIG. 9 and FIG. 10, as outlined below.
[0012] The encoder 10 is configured to perform a spatio-spectral transform of the prediction residual signal and to encode the prediction residual signal thus obtained into a data stream 14. Similarly, the decoder 20 is configured to decode the prediction residual signal from the data stream 14 and to perform a spectrum-spatial transform of the prediction residual signal thus obtained.
[0013] Internally, the encoder 10 may comprise a prediction residual signal former 22 which generates a prediction residual 24 in order to measure the deviation of a prediction signal 26 from an original signal, i.e. the picture 12. The prediction residual signal former 22 may for example be a subtractor which subtracts the prediction signal from the original signal, i.e. from the picture 12. The encoder 10 then further comprises a transformer 28 which performs a spatial-spectral transformation of the prediction residual signal 24 in order to obtain a spectral domain prediction residual signal 24' which is quantized by a quantizer 32 also included in the encoder 10. The prediction residual signal 24'' thus quantized is coded into the bitstream 14. For this purpose, the encoder 10 may comprise an entropy coder 34 which, if necessary, entropy codes the prediction residual signal which is transformed and quantized into the data stream 14. The prediction signal 26 is generated by a prediction stage 36 of the encoder 10 on the basis of the prediction residual signal 24'' which is coded into the data stream 14 and decodable therefrom. For this purpose, the prediction stage 36 may internally comprise, as shown in FIG. 9, an inverse quantizer 38 for inverse quantizing the prediction residual signal 24'' to obtain a spectral domain prediction residual signal 24''' corresponding to the signal 24' but without the quantization losses, and an inverse transformer 40 for inversely transforming, i.e. spectral-spatial transforming, the latter prediction residual signal 24''' to obtain a prediction residual signal 24'''' corresponding to the original prediction residual signal 24 but without the quantization losses. A combiner 42 of the prediction stage 36 then recombines the prediction signal 26 and the prediction residual signal 24'''', for example by addition, to obtain a reconstructed signal 46, i.e. a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to the signal 12'. A prediction module 44 of the prediction stage 36 then generates a prediction signal 26 based on the signal 46, for example using a spatial prediction, i.e. an intra-picture prediction, and / or a temporal prediction, i.e. an inter-picture prediction.
[0014] Similarly, the decoder 20 may be internally constructed from components corresponding to the prediction stage 36 and interconnected in a manner corresponding to the prediction stage, as shown in Fig. 10. In particular, the entropy decoder 50 of the decoder 20 may entropy decode the quantized spectral domain prediction residual signal 24'' from the data stream, with the inverse quantizer 52, the inverse transformer 54, the combiner 56 and the prediction module 58 interconnected and cooperating in the manner described above with respect to the modules of the prediction stage 36 to recover a reconstructed signal based on the prediction residual signal 24'', such that the output of the combiner 56 results in the reconstructed signal, i.e., the picture 12', as shown in Fig. 10.
[0015] Although not specifically described above, it is readily apparent that the encoder 10 may set some coding parameters, including, for example, prediction mode, motion parameters, etc., according to some optimization schemes, such as, for example, a method for optimizing some rate- and distortion-related criteria, i.e., coding cost. For example, the encoder 10 and the decoder 20 and the corresponding modules 44, 58 may support different prediction modes, such as intra- and inter-coding modes, respectively. The granularity at which the encoder and the decoder switch between these prediction mode types may correspond to a subdivision of the pictures 12 and 12′, respectively, into coding segments or coding blocks. In units of these coding segments, for example, the picture may be subdivided into intra-coded and inter-coded blocks. The intra-coded blocks are predicted based on the spatial already coded / decoded neighborhood of the respective blocks, as outlined in more detail below. There are several intra-coding modes, including directional intra-coding modes or angular intra-coding modes, which can be selected for each intra-coding segment, according to which each segment is filled by extrapolating neighboring sample values along a specific direction specific to each directional intra-coding mode to each intra-coding segment. The intra-coding modes can also include one or more further modes, such as, for example, a DC coding mode in which the prediction of each intra-coded block assigns a DC value to all samples in each intra-coded segment, and / or a planar intra-coding mode in which the prediction of each 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 each intra-coded block with a planar driving slope and offset defined by the two-dimensional linear function based on neighboring samples. In comparison, inter-coded blocks can be predicted, for example, temporally.For inter-coded blocks, motion vectors can be signaled in the data stream, which motion vectors indicate the spatial displacement of parts of previously coded pictures of the video to which the picture 12 belongs, and the previously coded / decoded pictures are sampled to obtain a prediction signal for the respective inter-coded block. This means that in addition to the residual signal coding contained in the data stream 14, such as the entropy-coded transform coefficient levels representing the quantized spectral domain prediction residual signal 24'', the data stream 14 can also code therein any further parameters, such as coding mode parameters for assigning coding modes to the various blocks, some prediction parameters of the blocks, such as motion parameters of the inter-coded segments, and parameters for controlling and signaling the subdivision of the pictures 12 and 12' into their respective segments. The decoder 20 uses these parameters to subdivide the picture in the same way as the encoder did, assign the same prediction modes to the segments, and perform the same predictions resulting in the same prediction signals.
[0016] FIG. 11 shows the relationship between the reconstructed signal, i.e. the reconstructed picture 12′, on the one hand, and the combination of the prediction residual signal 24″″ and the prediction signal 26 signaled in the data stream 14, on the other hand. As already mentioned above, the combination may be additive. In FIG. 11, the prediction signal 26 is shown as a subdivision of the picture region into intra-coded blocks, exemplarily shown using hatching, and inter-coded blocks, exemplarily shown without hatching. The subdivision may be any subdivision, such as a regular subdivision of the picture region into rows and columns of square or non-square blocks, or a multiple tree subdivision of the picture 12 from a tree root block into multiple leaf blocks of various sizes, such as a quadtree subdivision, a mixture of which is shown in FIG. 11, where the picture region is first subdivided into rows and columns of tree root blocks, which are then further subdivided into one or more leaf blocks according to a recursive multiple tree subdivision.
[0017] Again, data stream 14 may have an intra-coding mode coded for intra-coded blocks 80 that assigns one of several supported intra-coding modes to each intra-coded block 80. For inter-coded blocks 82, data stream 14 may have one or more motion parameters coded therein. Generally speaking, inter-coded blocks 82 are not limited to being temporally coded. Alternatively, inter-coded blocks 82 may be any block predicted from a previously coded portion beyond current picture 12 itself, such as a previously coded picture of the video to which picture 12 belongs, or a picture of another view or hierarchically lower layer if the encoder and decoder are scalable encoder and decoder, respectively.
[0018] The prediction residual signal 24'''' in Fig. 11 is also shown as a subdivision of the picture domain into blocks 84. These blocks may be called transform blocks to distinguish them from the coding blocks 80 and 82. In fact, Fig. 11 shows that the encoder 10 and the decoder 20 can use two different subdivisions of the picture 12 and the picture 12' into blocks, one into coding blocks 80 and 82, and the other into transform blocks 84. Although both subdivisions may be the same, i.e. each coding block 80 and 82 may simultaneously form a transform block 84, Fig. 11 shows the case where the subdivision into transform blocks 84 forms an extension of the subdivision into the coding blocks 80, 82, for example, such that any boundary between the two blocks 80 and 82 covers the boundary between the two blocks 84, or where each block 80, 82 coincides with one of the transform blocks 84 or with a cluster of transform blocks 84. However, the subdivisions may also be determined or selected independently of one another, such that the transformed blocks 84 may alternatively cross block boundaries between the blocks 80, 82. Thus, as far as the subdivision into transformed blocks 84 is concerned, similar statements apply as those presented with respect to the subdivision into blocks 80, 82, i.e., the blocks 84 may be the result of a regular subdivision of the picture region into blocks (with or without arrangement into rows and columns), a recursive multi-tree subdivision of the picture region, or a combination thereof, or any other type of blocking. Simply as an aside, it is noted that the blocks 80, 82, and 84 are not limited to being quadratic, rectangular, or any other shape.
[0019] 11 further illustrates that the combination of the prediction signal 26 and the prediction residual signal 24'''' directly results in the reconstructed signal 12'. However, it should be noted that according to alternative embodiments, multiple prediction signals 26 can be combined with the prediction residual signal 24'''' into the picture 12'.
[0020] In Fig. 11, the transform blocks 84 are assumed to have the following importance: The transformer 28 and the inverse transformer 54 perform the transform in units of these transform blocks 84. For example, many codecs use some kind of DST or DCT for all transform blocks 84. Some codecs allow to skip the transform for some of the transform blocks 84, so that the prediction residual signal is directly coded in the spatial domain. However, according to the embodiments described below, the encoder 10 and the decoder 20 are configured such that they support several transforms. For example, the transforms supported by the encoder 10 and the decoder 20 include: DCT-II (or DCT-III), where DCT stands for discrete cosine transform · DST-IV, where DST stands for discrete sine transform DCT-IV DST-VII Identity Transformation (IT)
[0021] Of course, the transformer 28 supports all of the forward transform versions of these transforms, while the decoder 20 or inverse transformer 54 supports the corresponding backward or inverse versions: Inverse DCT-II (or inverse DCT-III) Reverse DST-IV ·Inverse DCT-IV · Reverse DST-VII Identity Transformation (IT)
[0022] The following description provides further details regarding which transforms may be supported by the encoder 10 and the decoder 20. Note that in any case, the set of supported transforms may include only one transform, such as one spectral-to-spatial or spatial-to-spectral transform.
[0023] As already outlined above, Figures 9 to 11 are presented as examples in which the inventive concepts further described below can be implemented to form specific examples of an encoder and a decoder according to the present application. To that extent, the encoders and decoders of Figures 9 and 10 may represent possible implementations of the encoder and decoder, respectively, described later in this specification. However, Figures 9 and 10 are merely examples. However, the encoder according to the embodiments of the present application, as outlined in more detail below, may perform block-based encoding of the picture 12 using different concepts than the encoder of Figure 9, for example being a still image encoder rather than a video encoder, not supporting inter prediction, or the subdivision into blocks 80 being performed in a different way than illustrated in Figure 11. Similarly, a decoder according to an embodiment of the present application may perform block-based decoding of picture 12' from data stream 14 using the encoding concepts further outlined below, but may differ from decoder 20 of FIG. 10, for example, in that it is a still image decoder rather than a video decoder, in that it does not support intra prediction, or in that it subdivides picture 12' into blocks in a different manner than described with respect to FIG. 11, and / or in that it derives prediction residuals from data stream 14 in the transform domain but not, for example, in the spatial domain.
[0024] In the following, a generic video encoder according to an embodiment is illustrated in FIG. 1, a generic video decoder according to an embodiment is illustrated in FIG. 2, and a generic system according to an embodiment is illustrated in FIG.
[0025] FIG. 1 shows a generalized video encoder 101 according to an embodiment. The video encoder 101 is configured to encode a plurality of pictures of a video by generating an encoded video signal, each of the plurality of pictures including original picture data.
[0026] The video encoder 101 comprises a data encoder 110 configured to generate an encoded video signal including encoded picture data, the data encoder being configured to encode a number of pictures of a video into the encoded picture data.
[0027] Furthermore, the video encoder 101 comprises an output interface 120 configured to output the encoded picture data for each of the multiple pictures.
[0028] FIG. 2 shows a generic video decoder 151 according to an embodiment. The video decoder 151 is configured to decode the encoded video signal, which includes encoded picture data, to reconstruct multiple pictures of the video. The video decoder 151 comprises an input interface 160 configured to receive an encoded video signal.
[0029] Additionally, the video decoder comprises a data decoder 170 configured to reconstruct multiple pictures of the video by decoding the encoded picture data.
[0030] FIG. 3 shows a general-purpose system according to an embodiment. The system comprises a video encoder 101 of FIG. 1 and a video decoder 151 of FIG. The video encoder 101 is configured to generate an encoded video signal. The video decoder 151 is configured to decode the encoded video signal to reconstruct video pictures.
[0031] A first aspect of the invention is claimed in claims 1 to 15. A second aspect of the invention is claimed in claims 16 to 30. A third aspect of the invention is claimed in claims 31 to 45. A fourth aspect of the invention is claimed in claims 46 to 58. A fifth aspect of the invention is claimed in claims 59 to 71. A sixth aspect of the invention is claimed in claims 72 to 90.
[0032] The first aspect of the present invention will be described in detail below. In particular, the first aspect relates to motion vector wraparound. When omnidirectional content is coded using certain projection formats, such as the widely deployed ERP format (ERP = Equirectangular Projection), samples on the left and right boundaries of the projected image are in fact adjacent in 3d space after reprojection. To exploit this property in state-of-the-art video coding and prevent visual artifacts, the typical process of extrapolating image sample values on the left and right picture boundaries is adjusted when motion-compensated block-based inter prediction reaches outside the picture boundaries.
[0033] Instead of creating conventional border padding sample values by vertical extrapolation of the last pixel columns on the left and right side of the picture, a clip operation is used in the derivation of reference sample positions that results in wraparound of the motion vector and reference block around the sample columns defined as follows: xInt i =sps_ref_wraparound_enabled_flag? ClipH(sps_ref_wraparound_offset,picW,(xInt L +i-3)): Clip3(0,picW-1,xInt L +i-3) yInt i =Clip3(0,picH-1,yInt L +i-3) where ClipH(o,W,x)is defined as mod(x,o); for x<0 mod((xW),o)+Wo; for x>W-1, or X;otherwise Clip3 is defined in [1] as follows:
number
[0034] Problems arise when such content is further used in omnidirectional video services, such as those based on the OMAF viewport-dependent profile (OMAF = Omnidirectional Media Format), which uses tiles. In such services, low-resolution variants of the ERP content version are often mixed with other high-resolution fragments of the full content to create a viewport-dependent stream. The need to place the fragments of the high-resolution full scene and the low-resolution variants of the content on a rectangular video frame can result in a rotation of the low-resolution ERP content, whereby the coding cannot take advantage of the above-mentioned properties to avoid visual artifacts. For example, in Figure 4, two arrangements are shown, featuring a low-resolution ERP overview and a high-resolution tile. It can be seen that the ERP tile is rotated or bordered by the tile on the right. Therefore, the two tile arrangement shown in Figure 4 results in an MV wraparound requirement that is not met by state-of-the-art designs. FIG. 4 shows a viewport dependent tiling arrangement with an overview according to an embodiment.
[0035] According to this aspect, MV wraparound can be adapted in the following way, for example, to enable the above tiling: In one embodiment, the signaling sps_ref_wraparound_idc is used to distinguish MV wraparound options to deal with rotations like in the left side of FIG. If(sps_ref_wraparound_idc==0) { xInt i=ClipH(sps_ref_wraparound_offset,picW,(xInt L +i-3)) yInt i =Clip3(0,picH-1,yInt L +i-3) } else if(sps_wraparound_idc==1) { xInt i =Clip3(0,picW-1,xInt L +i-3) yInt i =ClipH(sps_ref_wraparound_offset_second,picH,(yInt L +i-3)) } else if(sps_wraparound_idc==2) { xInt i =ClipH(sps_ref_wraparound_offset,picW,(xInt L +i-3)) yInt i =ClipH(sps_ref_wraparound_offset_second,picH,(yInt L +i-3)) }
[0036] In another embodiment, the wraparound region is defined to cover the scenario shown on the right side of FIG.
[0037] The second aspect of the present invention will now be described in detail. In particular, the second aspect relates to affine prediction runtime costs.
[0038] State-of-the-art video codecs are typically designed to cover a wide range of applications, use cases and scenarios. For example, a codec such as HEVC includes technologies targeted at streaming, broadcast, real-time conversation or surveillance services. Each of those services typically operates at a different resolution that depends on the constraints of the service: broadcast typically uses a higher resolution than conversation, etc. The many individual tools that the codec provides are tailored to meet this wide range of relevant requirements, but there may be a loss of efficiency or an increase in complexity at each individual operating point.
[0039] For example, video coding traditionally uses a translation-only motion model, i.e., a rectangular block is displaced according to a two-dimensional motion vector to form a motion-compensated predictor for the current block. Such models cannot represent rotational or zoom motion, which is common in many video sequences, and therefore efforts have been made to slightly extend the traditional translational motion model, called affine motion, for example in JEM (Joint Evolution Model). As shown in Figure 5, in this affine motion model, a block (v 0 ,v 1 Two (or three) so-called control point motion vectors per block (,···) are used to model rotational and zoom motion. The control point motion vectors are selected from MV candidates of neighboring blocks. The resulting motion compensated predictor is derived by computing a sub-block-based motion vector field and relies on conventional translational motion compensation of rectangular sub-blocks.
[0040] Figure 5 illustrates affine motion with sub-block division. In particular, Figure 5 illustrates the resulting sub-block reference or predictor (dashed red) for the top right sub-block (solid red).
[0041] Although Fig. 5 represents a more or less simple rotational motion depending on the motion vectors of the control points, it may happen that the individual sub-block references are spread over a large distance in the picture, for example when representing a zoom motion. In such cases, the resulting sub-block references can be positioned as shown in Fig. 6, which is exemplarily shown with a smaller block size resulting in, for example, 2x2 sub-blocks. In particular, FIG. 6 illustrates zoom motion with affine prediction.
[0042] In such cases, the decoder needs to fetch individual sub-block references from a larger full picture region, which is then covered by the complete current block. To implement such affine prediction modes cost-effectively, it is required to coordinate the fetching of individual sub-block references on currently available hardware. Such coordination can be, for example, a simultaneous fetching of a contiguous reference picture region that includes all sub-block references. Thus, extreme zoom motions can be expensive to implement on the decoder side, as an efficient reference fetching strategy is precluded.
[0043] To limit the worst-case reference picture access without sacrificing the substantial coding gain of the affine prediction mode, state-of-the-art techniques are proposed to limit the spread of prediction blocks within a reference picture.
[0044] According to this aspect, such a limit can be derived, for example, depending on the maximum memory bandwidth allowed. This can be specified in terms of the overall maximum memory bandwidth (e.g., in a level limit specification), approximately limiting the memory bandwidth overhead (defining the maximum increase in required reference memory accesses compared to normal translational prediction), or explicitly signaled by the encoder in a high-level parameter. These methods may be mixed.
[0045] In one embodiment, limiting reference sub-block spreading is performed by ensuring that the bounding box around the resulting sub-block reference block does not exceed a threshold. Such a threshold can be derived from the block size, the picture resolution, the maximum allowed bandwidth, or can be explicitly signaled in a high-level parameter.
[0046] In another embodiment, the limit of the reference sub-block spreading depends on the coded picture resolution or is defined by a level limit.
[0047] The third aspect of the present invention will now be described in detail. In particular, the third aspect relates to affine prediction chroma handling.
[0048] The coding efficiency of the above-mentioned affine prediction model is inversely proportional to the sub-block size, since smaller sub-blocks allow the affine motion to be better approximated by the underlying translational block-based motion model. However, the fine-granularity of reference picture access comes at a significant runtime cost.
[0049] When the luma and chroma components of a video are non-uniformly sampled, such as in the dominant consumer video format 4:2:0, the prediction / reference blocks are typically sampled in the same ratio. For example, when a 16x16 luma block is predicted by a traditional method such as translational motion compensated block-based prediction, each of the 8x8 chroma blocks is predicted using the same luma block motion vector.
[0050] In the context of the above affine prediction model, the luma sub-blocks are already very fine-grained or small, so state-of-the-art solutions for processing chroma blocks are based on chroma processing with the same luma block size regardless of format subsampling. Thus, a 4×4 sub-block in the luma channel in affine prediction results in a 4×4 sub-block in the chroma channel, which results in fewer sub-blocks in the chroma channel than in the luma channel, as shown in FIG. 7. FIG. 7 shows the sub-block partitioning for affine prediction in different channels.
[0051] Therefore, a method is needed to derive the motion information of the corresponding chroma blocks. There are different flavors for the solution. For example, the simplest state-of-the-art solution is to average the motion information mvLX[] of all four corresponding luma sub-blocks, e.g. as follows: mvAvgLX=(mvLX[(xSbIdx>>1<<1)][(ySbIdx>>1<<1)]+ mvLX[(xSbIdx>>1<<1)+1][(ySbIdx>>1<<1)]+ mvLX[(xSbIdx>>1<<1)][(ySbIdx>>1<<1)+1]+ mvLX[(xSbIdx>>1<<1)+1][(ySbIdx>>1<<1)+1]+2)>>2
[0052] Another option is to average only the corresponding top-left and bottom-right luminance motion vectors: mvAvgLX=(mvLX[(xSbIdx>>1<<1)][(ySbIdx>>1<<1)]+ mvLX[(xSbIdx>>1<<1)+1][(ySbIdx>>1<<1)+1]+1)>>1
[0053] Furthermore, symmetric rounding can be introduced as follows: mvAvgLX=(mvLX[(xSbIdx>>1<<1)][(ySbIdx>>1<<1)]+ mvLX[(xSbIdx>>1<<1)+1][(ySbIdx>>1<<1)+1]) mvAvgLX[0]=(mvAvgLX[0]>=0? (mvAvgLX[0]+1)>>1: -((-mvAvgLX[0]+1)>>1)) mvAvgLX[1]=(mvAvgLX[1]>=0? (mvAvgLX[1]+1)>>1: -((-mvAvgLX[1]+1)>>1))
[0054] However, when an additional averaging scheme beyond the above state-of-the-art features is desired, a problem arises when a chroma format different from 4:2:0 is used. For example, when a 4:4:4 chroma format is used, averaging should be avoided because each 4×4 chroma sub-block corresponds to exactly one 4×4 luma sub-block, and a 4:2:2 chroma format requires averaging only in one dimension. Thus, according to this aspect, the correct luma block to be included in the averaging operation is derived by introducing the chroma subsampling ratio into the derivation of mvAvgLX. In one embodiment, the derivation is realized as follows:
[0055] mvAvgLX=(mvLX[(xSbIdx>>SubWidthC<<SubWidthC)][(ySbIdx> >SubHeightC< <SubHeightC)]+ mvLX[(xSbIdx>>SubWidthC<<SubWidthC)+SubWidthC][(ySbIdx> >SubHeightC< <SubHeightC)+SubHeightC]) mvAvgLX[0]=(mvAvgLX[0]>=0? (mvAvgLX[0]+1)>>1: -((-mvAvgLX[0]+1)>>1)) mvAvgLX[1]=(mvAvgLX[1]>=0? (mvAvgLX[1]+1)>>1: -((-mvAvgLX[1]+1)>>1))
[0056] where SubWidthC and SubHeightC are derived from the applied chroma format as follows:
[0057] [Table 1]
[0058] The fourth aspect of the present invention will now be described in detail. In particular, the fourth aspect relates to the interpolation filter overhead.
[0059] Motion-compensated inter prediction can use sample values at sub-sample positions (e.g., half-pixel, quarter-pixel) that are interpolated via a convolution filter from sample values at integer sample positions. State-of-the-art codecs typically use fixed tap filter kernels, e.g., 8 taps, to generate such sub-pixel sample values.
[0060] However, memory bandwidth problems arise when subblock-based inter prediction, such as affine prediction or DMVR (decoder-side motion vector refinement), results in relatively small luma and chroma subblocks, such as size 4×4. As the (sub)block size decreases for a fixed interpolation filter size, the overhead in terms of the total number of accessed samples of the generated reference luma subpixel samples of the (sub)block increases. Therefore, it has been proposed to use relatively short tap filter kernels for subpixel interpolation of small subblocks, such as 4×4, which exhibits minimal coding penalty that decreases with increasing content resolution.
[0061] According to this aspect, the selection of a shorter tap interpolation filter for sub-pixel interpolation is adapted depending on the resolution of the coded content in order to benefit from gains in terms of peak memory bandwidth reduction for high resolution content without sacrificing coding efficiency with lower resolution content.
[0062] In one embodiment, several sub-pixel interpolation filters are available (eg, bilinear, 4-tap, 6-tap, 8-tap), and the content resolution and block size are used to determine the applicable filter.
[0063] Implementation becomes more expensive whenever the amount of separate filters that need to be implemented and kept on hand in an encoder or decoder increases, so it is advantageous to reduce the amount of separate filters that are implemented in parallel in an encoder or decoder.
[0064] For example, when the chroma components of a video signal use, for example, a 4:2:0 chroma format, it is state of the art to use spatial subsampling. In such cases, the chroma components also typically use shorter tap subpixel interpolation filters than the luma components. Thus, such shorter tap subpixel interpolation filters need to be prepared by the decoder / encoder implementation in addition to the conventional longer tap subpixel interpolation filter kernel used for the luma component. In an embodiment, reuse of shorter tap subpixel interpolation filters is introduced when subblock processing requires reduced tap filters to reduce peak memory bandwidth, for example, depending on the coded picture size or by encoder selection and bitstream instructions.
[0065] The fifth aspect of the present invention will now be described in detail. In particular, the fifth aspect relates to bitstream property description and profile set operations.
[0066] Video streams are usually accompanied by signaling that describes their characteristics and makes it possible to identify the type of capabilities required for a video decoder to be able to decode the bitstream.
[0067] State-of-the-art video coding standards such as AVC (Advanced Video Coding), HEVC, etc., include profile and level indications in the parameter sets in the bitstream, making it possible to identify which tools need to be supported and, for example, the resolution limitations of a video coding sequence, so that a decoder can easily identify whether it is able to decode the video sequence.
[0068] With regard to profiles, it is possible to identify profiles that support only intra-coding tools, or only intra- and inter-tools but only 8-bit configurations, or 10-bit configurations, layered or non-layered coding, etc.
[0069] In terms of levels (which are more related to bitrate, resolution and / or frame rate), one can distinguish between 1080p@30Hz, 4Kp@30Hz, 4Kp@60Hz, 8Kp@30Hz etc.
[0070] That information is typically used in video streaming systems for capability exchange, so that characteristics are exposed and different receivers can match their capabilities to the requirements for decoding the provided bitstream.
[0071] For example, in DASH (Dynamic Adaptive Streaming over HTTP), a Media Presentation Description (MPD) can contain several videos offered for the same content with corresponding different parameters. This is done by indicating the codec, profile, level, etc. in the attribute called @codec=''xxx'' where it is indicated. Similarly, in RTP streaming (RTP=Real-time Transport Protocol), there is a Session Description Protocol (SDP), with which the operating point of the session is negotiated. The parties involved in the session then agree on which codec, profile and level should be used to establish the session. Also, in the transport stream, MPEG2-TS (MPEG=Moving Picture Experts Group; TS=Transport Stream) (heavily used in broadcast transmission), there are means to expose this value to the end device. This is done by including a corresponding video descriptor in the program table that identifies the codec, profile and level of the program (i.e., for example, a TV channel), so that an appropriate channel decodable by the end device can be selected.
[0072] Currently, the properties contained in the bitstream only apply to a Coded Video Sequence (CVS). A CVS starts with the first IRAP (Intra Random Access Point) and ends with an IRAP that has one of the following properties: -It is IDR(Instant Decoder Refresh) It is BLA (Broken Link Access) (only relevant for HEVC) It is an End of Sequence (EOS) SEI message (SEI = Supplemental Extension Information)
[0073] In most video services, a "session" can contain several temporally consecutive CVSs, and therefore the parameters indicated in the parameter sets of AVC and HEVC are not sufficient, since they only describe the first CVS of all CVSs contained in a "session". This problem is solved in MPEG2-TS by the following statement:
[0074] "NOTE - In one or more sequences within an AVC video stream, levels may be lower than those signaled in the AVC video descriptor, and profiles may occur that are subsets of the profiles signaled in the AVC video descriptor. However, in the AVC video stream as a whole, only tools that are included in the profiles signaled in the AVC video descriptor, if present, shall be used. For example, if the Main profile is signaled, the Baseline profile may be used in some sequences, but only using tools that are in the Main profile. If sequence parameter sets within an AVC video stream signal different profiles and no additional constraints are signaled, the streams may require inspection to determine which profile, if any, the entire stream conforms to. If an AVC video descriptor is to be associated with an AVC video stream that does not conform to a single profile, the AVC video stream shall be split into two or more sub-streams such that the AVC video descriptor can signal a single profile for each such sub-stream."
[0075] In other words, the profile and level indicated in the descriptor are profiles that are a superset of any profiles used in the CVS of the AVC video stream, and the level is the highest level of any CVS.
[0076] Similarly, the profile and level indicated in the MPD (Media Presentation Descriptor) or SDP can be "higher" (meaning a profile superset or more tools required than the profile in each CVS) than those in the video bitstream.
[0077] It is desirable for the bitstream itself to contain such signaling, so that it is clear from the outset that it is the set of tools required to decode all the CVSs of a video "session" (here the term video session also includes, for example, a TV channel program). The signaling consists of several CVSs, i.e., parameter sets that apply to the bitstream. Two cases are of particular interest: A CVS with profiles where no profile that is a superset of both exists at the same time. -CVs that may change over time with respect to the number of layers.
[0078] One option would be to signal all tools needed to decode every CVS with a per-tool flag, but this leads to an undesirable solution since it is usually more convenient to work based on profiles that are easier to compare than on multiple tools that could result in a very large number of combinations.
[0079] Multiple profiles active in a bitstream can lead to four cases. The tools required to decode the bitstream correspond to: The intersection of two profiles where there is no profile corresponding to the intersection. · It is the intersection of two profiles and one profile is the intersection of two profiles. · The joining of two profiles where there is no corresponding profile for the intersection. · The union of two profiles, whose intersection there is a corresponding profile. If there are profiles for all the tools required, then a single profile representation is sufficient.
[0080] However, if no profile exists to describe all the necessary tools, multiple profiles should be signaled and intersection or union should be signaled to indicate whether support of a single profile is sufficient to decode the bitstream (intersection) or whether both profiles need to be supported to be able to decode the bitstream. The sixth aspect of the present invention will now be described in detail. In particular, the sixth aspect relates to buffering period SEI and picture timing SEI message parsing dependencies.
[0081] In existing designs such as HEVC, the syntax elements of the buffering period SEI message (SEI = Supplemental Enhancement Information), the picture timing SEI message, and the decoding unit SEI message depend on the syntax elements carried in the SPS (Sequence Parameter Set). This dependency includes the number of bits used to code a particular syntax element, and also the existence of the syntax element. However, it is not desirable to put all buffering period / picture timing / decoding unit related information in the same syntax location because:
[0082] 1) The current syntax elements in the SPS are useful for session / capability negotiation, which is performed by exchanging parameter sets. Therefore, they cannot be signaled alone in the buffering period SEI message.
[0083] 2) Since activating a new SPS is only possible at an IRAP picture (IRAP = Intra Random Access Point), syntax elements in the buffering period SEI message cannot be moved to the SPS and a buffering period can start at any picture associated to temporal sublayer 0. It is also undesirable to require activation of a new parameter set for every buffering period.
[0084] The above parsing dependency leads to a startup problem: there is no active SPS before the first VCL NAL unit of the video bitstream is parsed. The SEI message is sent before the first VCL NAL unit (NAL = Network Abstraction Layer), and therefore arrives before the SPS is activated.
[0085] Also, with out-of-band signaling of parameter sets, intermediate devices, such as splicers, that are interested in understanding the HRD parameters of a bitstream, e.g., for splicing the bitstream, may not be able to parse the respective SEI messages, since the associated parameter sets are not included in the bitstream. Also, for a simple intermediate device such as a splicer, it may be difficult to parse the entire SPS until it reaches the HRD parameters in the VUI.
[0086] Also, the order of NAL units is not explicitly constrained to require that an SPS be sent before a buffering period SEI message that references the SPS. In such a situation, the decoder may have to store each SEI message in bitstream format (without being able to parse it) until the SPS arrives and is activated. Only then can the SEI message be parsed. FIG. 8 shows an exemplary state-of-the-art bitstream order for such a case. In an embodiment, parsing of each SEI message is performed independently of the SPS in the following manner: Specify the length of the different syntax elements in each SEI message, or Not required for session / feature negotiation (subpicture clock tick divisor), All syntax elements are moved to the buffering period SEI message.
[0087] The lengths of all syntax elements in the buffering period SEI are completely independent of other syntax structures: the lengths of syntax elements in the timing SEI message and the decoding unit SEI message may depend on syntax elements in the buffering period SEI message, but may not depend on any parameter set values.
[0088] Certain HRD parameter presence flags (NAL, VCL, DU, etc.), CPB parameter counts (vui_cpb_cnt_minus 1[i] and bp_cpb_cnt_minus1), and other syntax sections are duplicated in the parameter set and buffering period SEI messages, and this aspect includes constraining the values of these duplicated syntax elements to be equal in both positions.
[0089] The picture timing SEI message and the decoding unit SEI message are made independent by moving or duplicating all syntax elements that indicate the presence of other syntax elements into the respective SEI message (eg, frame_field_info_present_flag). As part of this aspect, in order to achieve bitstream conformance, the values of the above syntax elements shall be equal to their respective values in the parameter set.
[0090] As part of this aspect, the tick_devisors (indicating sub-picture timing granularity) within a buffering period should have the same value unless concatenation_flag is equal to 1 (ie, splicing has occurred).
[0091] As already outlined, in an embodiment, it is proposed to add HRD parameters, buffering period, picture timing, and decoding unit information SEI messages to the VVC specification. The general syntax and semantics are based on the corresponding HEVC structures. Parsing of the SEI messages is made possible independently of the presence of SPS.
[0092] As mentioned above, a buffering model is needed to check bitstream conformance. The VVC buffering model can be based on, for example, the Hypothetical Reference Decoder (HRD) specification used in HEVC with some simplifications.
[0093] The HRD parameters are present in the SPS VUI: Buffering Period SEI, Picture Timing SEI, and Decoding Unit Information SEI messages added to the access units they reference.
[0094] In HEVC, a parsing dependency exists between the SPS and the HRD-related SEI messages. Although the semantics only allowed referencing active SPSs within the same access unit, the bitstream order allowed situations where the SEI could arrive before the SPS. In such cases, the coded SEI message needed to be stored until the correct SPS arrived.
[0095] Another situation where this parsing dependency is problematic is for network elements and splicers, especially when parameter sets are exchanged out-of-band (e.g., in session negotiation). In such cases, the parameter sets may not be included in the bitstream at all, and as a result, the network element or splicer cannot decode the buffering / timing information at all. It may still be interesting for these elements to know values such as the decoding time and frame / field information.
[0096] In an embodiment, it is proposed to make the parsing of the buffering period, picture timing and decoding unit information SEI messages independent from the SPS VUI / HRD parameters by: - moving all syntax elements indicating the length or presence of other syntax elements from the VUI to the buffering period SEI message; - Duplicating the necessary syntax elements in both locations. The values of these syntax elements are constrained to be identical.
[0097] Design decisions: Since parameter sets are usually exchanged for session negotiation, not all syntax elements should be moved from the VUI to the buffering period SEI, so that parameters important for session negotiation are kept in the VUI.
[0098] -Since a buffering period can start with a non-IRAP picture, it is not possible to move all buffering period parameters to the SPS and it is not possible to activate a new SPS.
[0099] - A dependency between the buffering period SEI and (picture timing SEI or decoding unit SEI) is not considered harmful since there is also a logical dependency between these messages. An example syntax based on the HEVC syntax is shown below:
[0100] The syntax diagram below is based on the HEVC syntax with the changes marked in red. Semantics are generally moved to the new location of the syntax elements (matching the syntax element name). Whenever syntax elements are duplicated, a bitstream constraint is added and these syntax elements shall have the same value. VUI / HRD parameters:
[0101] [Table 2]
[0102] [Table 3] TIFF0007651652000005.tif45151
[0103] [Table 4] TIFF0007651652000007.tif79157
[0104] [Table 5]
[0105] [Table 6]
[0106] Although some aspects have been described in the context of an apparatus, it will be apparent that these aspects also represent a description of a corresponding method, with a block or apparatus corresponding to a method step or feature of a method step. Similarly, aspects described in the context of a method step also represent a description of a corresponding block or item or function of a corresponding apparatus. Some or all of the method steps can be performed by (or using) a hardware apparatus, such as, for example, a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps can be performed by such an apparatus.
[0107] Depending on specific implementation requirements, embodiments of the present invention can be implemented in hardware or software, or at least partly in hardware, or at least partly in software. Implementation can be done using digital storage media such as floppy disks, DVDs, Blu-rays, CDs, ROMs, PROMs, EPROMs, EEPROMs, flash memories, etc., on which electronically readable control signals are stored and which cooperate (or can cooperate) with a programmable computer system to execute the respective methods. Thus, the digital storage media can be computer readable.
[0108] Some embodiments of the present invention comprise a data carrier having electronically readable control signals capable of cooperating with a programmable computer system to cause one of the methods described herein to be performed.
[0109] Generally, embodiments of the present invention can be implemented as a computer program product comprising program code which operates to perform one of the methods when the computer program product is run 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.
[0110] 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.
[0111] A further embodiment of the inventive method is therefore a data carrier (or digital storage medium, or computer readable medium) having recorded thereon a computer program for performing one of the methods described herein. The data carrier, digital storage medium, or recorded medium is typically tangible and / or non-transitory.
[0112] 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 be adapted to be transferred via a data communication connection, such as for example the Internet.
[0113] 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.
[0114] Further embodiments according to the invention include a device or system configured to transfer (e.g. electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may be, for example, a computer, a mobile device, a memory device, etc. The device or system may include, for example, a file server for transferring the computer program to the receiver.
[0115] In some embodiments, a programmable logic device (e.g., a field programmable gate array) may be used to perform some or all of the functions of the methods described herein. In some embodiments, a field programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. In general, the methods are preferably performed by any hardware apparatus.
[0116] 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.
[0117] The methods described herein can be performed using a hardware apparatus, or using a computer, or using a combination of a hardware apparatus and a computer.
[0118] The above-described embodiments merely exemplify the principles of the present invention. It is understood that modifications and variations of the configurations and details described herein will be apparent to others skilled in the art. It is therefore intended to be limited only by the scope of the appended claims and not by the specific details presented as descriptions and explanations of the embodiments herein.
[0119] <Item 1> 1. A video encoder (101) for encoding a plurality of pictures of a video by generating an encoded video signal, each of the plurality of pictures comprising original picture data; a data encoder (110) configured to generate the encoded video signal including encoded picture data, the data encoder (110) configured to encode the plurality of pictures of the video into the encoded picture data; an output interface (120) configured to output the coded picture data for each of the plurality of pictures; a video session including a plurality of coded video sequences, a CVS profile of a plurality of video profiles being assigned to each coded video sequence of the plurality of coded video sequences, the CVS profile of the coded video sequence defining one or more tools of a plurality of tools required to decode the coded video sequence, each of the plurality of video profiles defining at least one tool required to decode at least one of the plurality of coded video sequences; the data encoder (110) is configured to determine a session profile for the video session in response to the CVS profiles of the coded video sequences of the video session, the session profile defining at least one tool of the tools required to decode the coded video sequences of the video session; the data encoder (110) is configured to generate the encoded video signal such that the encoded video signal includes an encoding of an indication of the session profile; The video encoder (101), wherein the data encoder (110) is configured to determine the session profile from the plurality of video profiles, such that the session profile includes all tools of the plurality of tools required to decode all coded video sequences of the video session. <Item 2> the data encoder (110) is configured to, if there is no video profile among the plurality of video profiles that includes all tools of the plurality of tools needed to decode all coded video sequences of the video session, determine the session profile such that the session profile is a combination of at least two of the plurality of video profiles. Item 1. A video encoder (101) according to item 1. <Item 3> 1. A video decoder (151) for decoding an encoded video signal comprising encoded picture data to reconstruct a plurality of pictures of the video, comprising: an input interface (160) configured to receive the encoded video signal; a data decoder (170) configured to reconstruct the plurality of pictures of the video by decoding the encoded picture data; the data decoder (170) is configured to decode from the encoded video signal a session profile for a video session including a plurality of coded video sequences, each of the plurality of video profiles defining at least one tool from a plurality of tools required to decode at least one of the plurality of coded video sequences, the session profile defining at least one tool from the plurality of tools required to decode the plurality of coded video sequences of the video session; A video decoder (151), wherein the data decoder (170) is configured to reconstruct the plurality of pictures of the video according to the session profile. <Item 4> the session profile being a combination of at least two of the plurality of video profiles; Item 3. A video decoder (151) according to item 3. <Item 5> 1. A method for encoding a plurality of pictures of a video by generating an encoded video signal, each of the plurality of pictures comprising original picture data, the method comprising: generating the encoded video signal including encoded picture data, wherein generating the encoded video signal includes encoding the plurality of pictures of the video into the encoded picture data; and outputting the coded picture data for each of the plurality of pictures; a video session including a plurality of coded video sequences, a CVS profile of a plurality of video profiles being assigned to each coded video sequence of the plurality of coded video sequences, the CVS profile of the coded video sequence defining one or more tools of a plurality of tools required to decode the coded video sequence, each of the plurality of video profiles defining at least one tool required to decode at least one of the plurality of coded video sequences; the method includes determining a session profile for the video session in response to the CVS profiles of the plurality of coded video sequences of the video session, the session profile defining at least one tool from the plurality of tools required to decode the plurality of coded video sequences of the video session; generating the encoded video signal such that the encoded video signal includes encoding of an indication indicative of the session profile; The method of claim 1, wherein determining the session profile from the plurality of video profiles is performed such that the session profile includes all tools of the plurality of tools required to decode all coded video sequences of the video session. <Item 6> 1. A method for decoding an encoded video signal comprising encoded picture data to reconstruct a plurality of pictures of the video, comprising: receiving the encoded video signal; and decoding the coded picture data to reconstruct the plurality of pictures of the video; the method includes decoding, from the encoded video signal, a session profile for a video session including a plurality of coded video sequences, each of the plurality of video profiles defining at least one tool of a plurality of tools required to decode at least one of the plurality of coded video sequences, the session profile defining at least one tool of the plurality of tools required to decode the plurality of coded video sequences of the video session; A method, wherein reconstructing the plurality of pictures of the video is performed according to the session profile. <Item 7> 7. A computer program for carrying out the method according to item 5 or 6, when the computer program is executed on a computer or signal processor. <Item 8> 1. A system comprising: A video encoder (101) according to any one of claims 1 to 2, A video decoder (151) according to any one of items 3 to 4, the video encoder (101) is configured to generate the encoded video signal; The system, wherein the video decoder (151) is configured to decode the encoded video signal to reconstruct the pictures of the video. <Item 9> 1. A video encoder (101) for encoding a plurality of pictures of a video by generating an encoded video signal, each of the plurality of pictures comprising original picture data; a data encoder (110) configured to generate the encoded video signal including encoded picture data, the data encoder (110) configured to encode the plurality of pictures of the video into the encoded picture data; an output interface (120) configured to output the coded picture data for each of the plurality of pictures; the data encoder (110) is configured to generate the encoded video signal by encoding a sequence parameter set and by encoding a supplemental enhancement information message, the sequence parameter set being associated with two or more of the plurality of pictures and including a first group of one or more syntax elements of a plurality of syntax elements, the supplemental enhancement information message being associated with exactly one of the plurality of pictures and including a second group of one or more syntax elements of the plurality of syntax elements; A video encoder (101), wherein the data encoder (110) is configured to generate the sequence parameter set and the supplemental enhancement information message such that the sequence parameter set does not include at least one syntax element of the second group of syntax elements of the supplemental enhancement information message, and such that the sequence parameter set does not include length information of the at least one syntax element of the second group of syntax elements of the supplemental enhancement information message. <Item 10> the data encoder (110) is configured to generate the sequence parameter set and the supplemental extension information message such that the sequence parameter set does not include at least one further syntax element of the second group of syntax elements of the supplemental extension information message, and such that the sequence parameter set does not include presence information of the at least one further syntax element of the second group of syntax elements of the supplemental extension information message. Item 10. The video encoder (101) according to item 9. <Item 11> the data encoder (110) is configured to generate the sequence parameter set such that the sequence parameter set includes at least one first syntax element of a plurality of syntax elements including session negotiation information and / or capability negotiation information; the data encoder (110) is configured to generate the supplemental extension information message such that the supplemental extension information message does not include the at least one first syntax element that includes the session negotiation information and / or the capability negotiation information; the data encoder (110) is configured to generate the supplemental extension information message such that the supplemental extension information message includes at least one second syntax element of a plurality of syntax elements that does not include the session negotiation information and / or the capability negotiation information; the data encoder (110) is configured to generate the sequence parameter set such that the sequence parameter set does not include the at least one second syntax element that does not include the session negotiation information and / or the capability negotiation information. Item 11. A video encoder (101) according to item 9 or 10. <Item 12> the data encoder (110) is configured to generate the sequence parameter set such that the sequence parameter set includes all syntax elements of a plurality of syntax elements including the session negotiation information and / or the capability negotiation information; the data encoder (110) is configured to generate the supplemental extension information message such that the supplemental extension information message does not include any of a plurality of syntax elements including the session negotiation information and / or the capability negotiation information; the data encoder (110) is configured to generate the supplemental extension information message such that the supplemental extension information message includes all syntax elements of a plurality of syntax elements that do not include the session negotiation information and / or the capability negotiation information; the data encoder (110) is configured to generate the sequence parameter set such that the sequence parameter set does not include any of a plurality of syntax elements that do not include the session negotiation information and / or the capability negotiation information. Item 12. A video encoder (101) according to any one of items 9 to 11. <Item 13> The supplemental enhancement information message is a buffering period supplemental enhancement information message, or a timing supplemental enhancement information message, or a decoding unit supplemental enhancement information message. Item 13. A video encoder (101) according to any one of items 9 to 12. <Item 14> for at least one syntax element of the plurality of syntax elements, the data encoder (110) is configured to generate the sequence parameter set and the supplemental extension information message such that the sequence parameter set includes the at least one syntax element and such that the supplemental extension information message also includes the syntax element; the data encoder (110) is configured to generate the sequence parameter set and the supplemental extension information message such that, for each of the plurality of syntax elements that are present in the sequence parameter set and also in the supplemental extension information message, a value of the syntax element is equal in the sequence parameter set and the supplemental extension information message. Item 14. A video encoder (101) according to any one of items 9 to 13. <Item 15> 1. A video decoder (151) for decoding an encoded video signal comprising encoded picture data to reconstruct a plurality of pictures of the video, comprising: an input interface (160) configured to receive the encoded video signal; a data decoder (170) configured to reconstruct the plurality of pictures of the video by decoding the encoded picture data; the data decoder (170) is configured to decode a sequence parameter set and a supplemental enhancement information message from the encoded video signal, the sequence parameter set being associated with two or more of the plurality of pictures and including a first group of one or more syntax elements of a plurality of syntax elements, the supplemental enhancement information message being associated with exactly one of the plurality of pictures and including a second group of one or more syntax elements of the plurality of syntax elements, the sequence parameter set not including at least one syntax element of the second group of syntax elements of the supplemental enhancement information message, and the sequence parameter set not including length information of the at least one syntax element of the second group of syntax elements of the supplemental enhancement information message; The video decoder (151), wherein the data decoder (170) is configured to reconstruct the plurality of pictures of the video in response to the sequence parameter set and in response to the supplemental enhancement information message. <Item 16> For at least one syntax element of the plurality of syntax elements, the sequence parameter set includes the at least one syntax element, and the supplemental enhancement information message also includes the syntax element; for each of the plurality of syntax elements that are present in the sequence parameter set and also in the supplemental enhancement information message, a value of the syntax element is equal in the sequence parameter set and the supplemental enhancement information message. Item 16. A video decoder (151) according to item 15. Reference materials [1] ISO / IEC,ITU-T.High efficiency video coding.ITU-T Recommendation H.265 | ISO / IEC 23008 10(HEVC),edition 1,2013;edition 2,2014.
Claims
1. 1. A method for decoding a picture from a data stream, comprising: decoding, from the data stream, chroma format information describing how chroma of the picture is sampled; determining a motion vector corresponding to a chroma sub-block of the picture based on previously determined motion vector information corresponding to at least one luminance sub-block of the picture, determining the motion vector corresponding to one luminance sub-block based on motion vector information corresponding to the chroma sub-block in response to the chroma format information indicating that the chroma sub-block is sampled in a 4:4:4 format; in response to the chroma format information indicating that the chroma sub-block is sampled in a 4:2:2 format, determining the motion vector corresponding to the chroma sub-block based on one-dimensional averaging of motion vector information corresponding to two luminance sub-blocks; in response to the chroma format information indicating that the chroma sub-block is sampled in 4:2:0 format, selecting an upper left luminance sub-block and a lower right luminance sub-block, and averaging the motion vector information corresponding to the two selected luminance sub-blocks to determine the motion vector corresponding to the chroma sub-block; reconstructing the picture based on the motion vector information of the at least one luminance sub-block and the motion vectors of the chroma sub-blocks; A method comprising:
2. When the chroma sub-blocks are sampled in the 4:2:0 format, averaging the motion vector information corresponding to the two selected luminance sub-blocks comprises: The method of claim 1 , further comprising the step of performing symmetric rounding of the motion vector information corresponding to the two selected luminance sub-blocks.
3. in response to the chroma format information indicating that the chroma sub-blocks are sampled in a 4:2:2 format or a 4:2:0 format, deriving a subWidthC chroma format parameter and a subHeightC chroma format parameter based on the chroma format information; selecting two luma sub-blocks based on the subWidthC chroma format parameter and the subHeightC chroma format parameter; averaging the motion vector information corresponding to the two selected luminance sub-blocks; The method of claim 1 further comprising:
4. deriving a subWidthC chroma format parameter and a subHeightC chroma format parameter based on the chroma format information; determining that the chroma sub-block is sampled in 4:2:2 format if the subWidthC and subHeightC chroma format parameters have different values; The method of claim 1 further comprising:
5. 1. An electronic device for decoding pictures from a data stream, comprising:
1. A processor comprising: decoding, from the data stream, chroma format information describing how chroma of the picture is sampled; determining a motion vector corresponding to a chroma sub-block of the picture based on previously determined motion vector information corresponding to at least one luminance sub-block of the picture, in response to the chroma format information indicating that the chroma sub-block is sampled in a 4:4:4 format, the processor is configured to determine the motion vector corresponding to the chroma sub-block based on the motion vector information corresponding to one luminance sub-block; in response to the chroma format information indicating that the chroma sub-block is sampled in a 4:2:2 format, the processor is configured to determine the motion vector corresponding to the chroma sub-block based on one-dimensional averaging of the motion vector information corresponding to two luminance sub-blocks; In response to the chroma format information indicating that the chroma sub-blocks are sampled in a 4:2:0 format, the processor is configured to select an upper left luminance sub-block and a lower right luminance sub-block, and average the motion vector information corresponding to the two selected luminance sub-blocks to determine the motion vector corresponding to the chroma sub-blocks. To decide; reconstructing the picture based on the motion vector information of the at least one luma sub-block and the motion vectors of the chroma sub-blocks; 16. An electronic device for decoding pictures from a data stream, comprising a processor configured to:
6. When the chroma sub-blocks are sampled in the 4:2:0 format, to average the motion vector information corresponding to the two selected luminance sub-blocks, the processor:
6. An electronic device for decoding pictures from a data stream according to claim 5, configured to perform symmetric rounding of the motion vector information corresponding to the two selected luminance sub-blocks.
7. In response to the chroma format information indicating that the chroma sub-blocks are sampled in a 4:2:2 format or a 4:2:0 format, the processor: deriving a subWidthC chroma format parameter and a subHeightC chroma format parameter based on the chroma format information; selecting two luma sub-blocks based on the subWidthC chroma format parameter and the subHeightC chroma format parameter; averaging the motion vector information corresponding to the two selected luminance sub-blocks; and 6. An electronic device for decoding pictures from a data stream according to claim 5, configured to:
8. The processor, deriving a subWidthC chroma format parameter and a subHeightC chroma format parameter based on the chroma format information; determining that the chroma sub-block is sampled in 4:2:2 format if the subWidthC and subHeightC chroma format parameters have different values; 6. An electronic device for decoding pictures from a data stream according to claim 5, further configured to:
9. 1. A method for encoding a picture into a data stream, comprising: encoding in said data stream a chroma format describing how the chroma of said picture is sampled; determining a motion vector corresponding to a chroma sub-block of the picture based on previously determined motion vector information corresponding to at least one luminance sub-block of the picture, determining the motion vector corresponding to the chroma sub-block based on the motion vector information corresponding to one luminance sub-block in response to the chroma format being a 4:4:4 format; responsive to the chroma format being a 4:2:2 format, determining the motion vector corresponding to the chroma sub-block based on one-dimensional averaging of the motion vector information corresponding to two luminance sub-blocks; According to the chroma format being a 4:2:0 format, selecting an upper left luminance sub-block and a lower right luminance sub-block, and averaging the motion vector information corresponding to the selected two luminance sub-blocks to determine the motion vector corresponding to the chroma sub-block; reconstructing the picture based on the motion vector information of the at least one luminance sub-block and the motion vectors of the chroma sub-blocks; 1. A method for encoding a picture into a data stream, comprising:
10. 1. An electronic device for encoding pictures into a data stream, comprising: encoding in said data stream a chroma format that describes how chroma of said picture is sampled; determining a motion vector corresponding to a chroma sub-block of the picture based on previously determined motion vector information corresponding to at least one luminance sub-block of the picture, determining the motion vector corresponding to the chroma sub-block based on the motion vector information corresponding to one luminance sub-block in response to the chroma format being a 4:4:4 format; responsive to the chroma format being a 4:2:2 format, determining the motion vector corresponding to the chroma sub-block based on one-dimensional averaging of the motion vector information corresponding to two luminance sub-blocks; According to the chroma format being a 4:2:0 format, selecting an upper left luminance sub-block and a lower right luminance sub-block, and averaging the motion vector information corresponding to the two selected luminance sub-blocks to determine the motion vector corresponding to the chroma sub-block; reconstructing the picture based on the motion vector information of the at least one luma sub-block and the motion vectors of the chroma sub-blocks; 1. An electronic device for encoding a picture into a data stream, comprising: a processor configured to:
11. A computer program which, when executed on a computer or signal processor, causes said computer or signal processor to carry out a method according to any one of claims 1 or 9.
12. An electronic device for encoding pictures according to claim 10 into a data stream; An electronic device for decoding pictures from a data stream according to any one of claims 5 to 8, Equipped with The electronic device for encoding the pictures into a data stream is configured to generate a signal of encoded video, A system, wherein an electronic device for decoding pictures from said data stream is configured to decode signals of said video to reconstruct said pictures of said video.
Citation Information
Patent Citations
Image processor and processing method
JP2011077761A
Video parameter set for HEVC and extensions
JP2015526972A
Transmission of High Dynamic Range and Wide Color Gamut Content in a Transport Stream
JP2018530237A
Video encoding and decoding method and apparatus for deriving affine motion vectors for chroma components
JP2022515754A
Method and apparatus for affine-based inter prediction of chroma sub-blocks
JP2022523369A