WO2021136821A1 - Encoding and decoding of color components in pictures - Google Patents

Encoding and decoding of color components in pictures Download PDF

Info

Publication number
WO2021136821A1
WO2021136821A1 PCT/EP2020/088058 EP2020088058W WO2021136821A1 WO 2021136821 A1 WO2021136821 A1 WO 2021136821A1 EP 2020088058 W EP2020088058 W EP 2020088058W WO 2021136821 A1 WO2021136821 A1 WO 2021136821A1
Authority
WO
WIPO (PCT)
Prior art keywords
samples
arrays
decoder
encoder
array
Prior art date
Application number
PCT/EP2020/088058
Other languages
French (fr)
Inventor
Santiago DE LUXÁN HERNÁNDEZ
Valeri GEORGE
Gayathri VENUGOPAL
Benjamin Bross
Phan Hoang Tung Nguyen
Jonathan PFAFF
Heiko Schwarz
Marpe Detlev
Thomas Wiegand
Original Assignee
Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. filed Critical Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V.
Publication of WO2021136821A1 publication Critical patent/WO2021136821A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Definitions

  • Fig. 1 shows an apparatus for block-wise encoding a picture 10 into a datastream 12 (also indicated as 80 in some examples, see below).
  • the apparatus is indicated using reference sign 14 and may be a still picture encoder or a video encoder.
  • picture 10 may be a current picture out of a video 16 when the encoder 14 is configured to encode video 16 including picture 10 into datastream 12, or encoder 14 may encode picture 10 into datastream 12 exclusively. Examples below may make use of the apparatus 14.
  • encoder 14 performs the encoding in a block-wise manner or block-base. To this, encoder 14 subdivides picture 10 into blocks, units of which encoder 14 encodes picture 10 into datastream 12. Examples of possible subdivisions of picture 10 into blocks 18 are set out in more detail below. Generally, the subdivision may end-up into blocks 18 of constant size such as an array of blocks arranged in rows and columns or into blocks 18 of different block sizes such as by use of a hierarchical multi-tree subdivisioning with starting the multi-tree subdivisioning from the whole picture area of picture 10 or from a pre- partitioning of picture 10 into an array of tree blocks wherein these examples shall not be treated as excluding other possible ways of subdivisioning picture 10 into blocks 18.
  • encoder 14 is a predictive encoder configured to predictively encode picture 10 into datastream 12. For a certain block 18 this means that encoder 14 determines a prediction signal for block 18 and encodes the prediction residual, i.e. the prediction error at which the prediction signal deviates from the actual picture content within block 18, into datastream 12. Encoder 14 may support different prediction modes so as to derive the prediction signal for a certain block 18.
  • the prediction modes which are of importance in the following examples, are intra-prediction modes according to which the inner of block 18 is predicted spatially from neighboring, already encoded samples of picture 10.
  • the encoding of picture 10 into datastream 12 and, accordingly, the corresponding decoding procedure may be based on a certain coding order 20 defined among blocks 18.
  • the coding order 20 may traverse blocks 18 in a raster scan order such as row-wise from top to bottom with traversing each row from left to right, for instance.
  • raster scan ordering may be applied within each hierarchy level, wherein a depth-first traversal order may be applied, i.e. leaf notes within a block of a certain hierarchy level may precede blocks of the same hierarchy level having the same parent block according to coding order 20.
  • neighboring, already encoded samples of a block 18 may be located usually at one or more sides of block 18. In case of the examples presented herein, for instance, neighboring, already encoded samples of a block 18 are located to the top of, and to the left of block 18.
  • Intra-prediction modes may not be the only ones supported by encoder 14.
  • encoder 14 may also support intra- prediction modes according to which a block 18 is temporarily predicted from a previously encoded picture of video 16.
  • Such an intra-prediction mode may be a motion-compensated prediction mode according to which a motion vector is signaled for such a block 18 indicating a relative spatial offset of the portion from which the prediction signal of block 18 is to be derived as a copy.
  • non-intra-prediction modes may be available as well such as inter-view prediction modes in case of encoder 14 being a multi- view encoder, or non-predictive modes according to which the inner of block 18 is coded as is, i.e. without any prediction.
  • Fig. 2 shows a possible implementation of encoder 14 of Fig. 1 , namely one where the encoder is configured to use transform coding for encoding the prediction residual although this is nearly an example and the present application is not restricted to that sort of prediction residual coding.
  • encoder 14 (which may be used for examples below) may comprise a subtractor 22 configured to subtract from the inbound signal, i.e. picture 10 or, on a block basis, current block 18, the corresponding prediction signal 24 so as to obtain the prediction residual signal 26 which is then encoded by a prediction residual encoder 28 into a datastream 12.
  • the prediction residual encoder 28 is composed of a lossy encoding stage 28a and a lossless encoding stage 28b.
  • the lossy stage 28a receives the prediction residual signal 26 and comprises a quantizer 30 which quantizes the samples of the prediction residual signal 26.
  • the lossy encoding stage 28a comprises a transform stage 32 connected between subtractor 22 and quantizer 30 so as to transform such a spectrally decomposed prediction residual 26 with a quantization of quantizer 30 taking place on the transformed coefficients where presenting the residual signal 26.
  • the transform may be a DCT, DST, FFT, Hadamard transform or the like.
  • the transformed and quantized prediction residual signal 34 is then subject to lossless coding by the lossless encoding stage 28b which is an entropy coder entropy coding quantized prediction residual signal 34 into datastream 12.
  • Encoder 14 further comprises the prediction residual signal reconstruction stage 36 connected to the output of quantizer 30 so as to reconstruct from the transformed and quantized prediction residual signal 34 the prediction residual signal in a manner also available at the decoder, i.e. taking the coding loss is quantizer 30 into account.
  • the prediction residual reconstruction stage 36 comprises a dequantizer 38 which perform the inverse of the quantization of quantizer 30, followed by an inverse transformer 40 which performs the inverse transformation relative to the transformation performed by transformer 32 such as the inverse of the spectral decomposition such as the inverse to any of the above-mentioned specific transformation examples.
  • Encoder 14 comprises an adder 42 which adds the reconstructed prediction residual signal as output by inverse transformer 40 and the prediction signal 24 so as to output a reconstructed signal, i.e. reconstructed samples. This output is fed into a predictor 44 of encoder 14 which then determines the prediction signal 24 based thereon. It is predictor 44 which supports all the prediction modes already discussed above with respect to Fig. 1. Fig.
  • encoder 14 may also comprise, in addition or alternative, an in- loop filter 46 with filters completely reconstructed pictures which, after having been filtered, form reference pictures for predictor 44 with respect to inter-predicted block.
  • encoder 14 operates block-based.
  • the block bases of interest is the one subdividing picture 10 into blocks for which the intra-prediction mode is selected out of a set or plurality of intra-prediction modes supported by predictor 44 or encoder 14, respectively, and the selected intra-prediction mode performed individually.
  • Other sorts of blocks into which picture 10 is subdivided may, however, exist as well.
  • the above-mentioned decision whether picture 10 is inter-coded or intra-coded may be done at a granularity or in units of blocks deviating from blocks 18.
  • the inter/intra mode decision may be performed at a level of coding blocks into which picture 10 is subdivided, and each coding block is subdivided into prediction blocks.
  • Prediction blocks with encoding blocks for which it has been decided that intra-prediction is used are each subdivided to an intra-prediction mode decision. To this, for each of these prediction blocks, it is decided as to which supported intra-prediction mode should be used for the respective prediction block.
  • These prediction blocks will form blocks 18 which are of interest here.
  • Prediction blocks within coding blocks associated with inter- prediction may be treated differently by predictor 44 (inter prediction modes may be alternative or additional to the inter prediction modes). They may be inter-predicted from reference pictures by determining a motion vector and copying the prediction signal for this block from a location in the reference picture pointed to by the motion vector.
  • Another block subdivisioning pertains the subdivisioning into transform blocks at units of which the transformations by transformer 32 and inverse transformer 40 are performed.
  • Transformed blocks may, for instance, be the result of further subdivisioning coding blocks.
  • the examples set out herein should not be treated as being limiting and other examples exist as well.
  • the subdivisioning into coding blocks may, for instance, use multi-tree subdivisioning, and prediction blocks and/or transform blocks may be obtained by further subdividing coding blocks using multi-tree subdivisioning, as well.
  • a decoder or apparatus for block-wise decoding fitting to the encoder 14 of Fig. 1 is depicted in Fig, 3.
  • This decoder 54 does the opposite of encoder 14, i.e. it decodes from datastream 12 picture 10 in a block-wise manner and supports, to this end, a plurality of intra-prediction modes.
  • the decoder 54 may comprise a residual provider 156, for example. All the other possibilities discussed above with respect to Fig. 1 are valid for the decoder 54, too.
  • decoder 54 may be a still picture decoder or a video decoder and all the prediction modes and prediction possibilities are supported by decoder 54 as well.
  • encoder 14 chooses or selects coding decisions according to some optimization such as, for instance, in order to minimize some cost function which may depend on coding rate and/or coding distortion.
  • One of these coding options or coding parameters may involve a selection of the intra-prediction mode to be used for a current block 18 among available or supported intra-prediction modes.
  • the selected intra-prediction mode may then be signaled by encoder 14 for current block 18 within datastream 12 with decoder 54 redoing the selection using this signalization in datastream 12 for block 18.
  • decoder 54 may be a predictive decoder operating on a block-bases and besides intra-prediction modes, decoder 54 may support (in addition or alternative) other prediction modes such as inter-prediction modes in case of, for instance, decoder 54 being a video decoder. In decoding, decoder 54 may also use the coding order 20 discussed with respect to Fig.
  • the description of the mode of operation of encoder 14 shall also apply to decoder 54 as far the subdivision of picture 10 into blocks is concerned, for instance, as far as prediction is concerned and as far as the coding of the prediction residual is concerned. Differences lie in the fact that encoder 14 chooses, by optimization, some coding options or coding parameters and signals within, or inserts into, datastream 12 the coding parameters which are then derived from the datastream 12 by decoder 54 so as to redo the prediction, subdivision and so forth.
  • Fig. 4 shows a possible implementation of the decoder 54 of Fig. 3 (e.g., used in present examples), namely one fitting to the implementation of encoder 14 of Fig. 1 as shown in Fig. 2.
  • the same reference signs, provided with an apostrophe are used in Fig. 4 in order to indicate these elements.
  • adder 42', optional in- loop filter 46' and predictor 44' are connected into a prediction loop in the same manner that they are in encoder of Fig. 2. The reconstructed, i.e.
  • dequantized and retransformed prediction residual signal applied to added 42' is derived by a sequence of entropy decoder 56 which inverses the entropy encoding of entropy encoder 28b, followed by the residual signal reconstruction stage 36' which is composed of dequantizer 38' and inverse transformer 40' just as it is the case on encoding side.
  • the decoder's output is the reconstruction of picture 10.
  • the reconstruction of picture 10 may be available directly at the output of adder 42' or, alternatively, at the output of in-loop filter 46'.
  • Some post-filter may be arranged at the decoder's output in order to subject the reconstruction of picture 10 to some post-filtering in order to improve the picture quality, but this option is not depicted in Fig. 4.
  • the present examples may be examples of inter prediction and/or intra predictions.
  • a decoder for block-wise decoding a picture from a data stream, wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the decode is configured to predictively reconstruct the predetermined block by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples.
  • the plurality of arrays of samples may include a third array of samples defined in at least one third space component, wherein the decoder is configured to apply the at least one coding tool to the at least one third array of samples.
  • the decoder may selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
  • the decoder may be further configured to choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples on the basis of signaling from the data stream.
  • the signaling from the data stream may include signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
  • the signaling from the data stream may include signalling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
  • signalling e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the decoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the signalling includes signalling choosing the color space between at least the first and the second color spaces, so as to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • the decoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the decoder is configured to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • the decoder may be such that, in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
  • the decoder may be such that, in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool is activated for all the arrays of samples of the plurality of arrays.
  • the decoder may activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
  • the decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution.
  • the decoder may deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the decoder may read at least one tool parameter from the bitstream, and to implement the coding tool using the at least one tool parameter [e.g. read in the data stream].
  • the decoder read the signalling in the data stream; and at the determination that the at least one tool is to be applied to at least one array of samples, search, in further signalling of the data stream, the at least one tool parameter to be applied to the coding tool.
  • the at least one tool parameter may be shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
  • the one tool parameter may be shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
  • the at least one tool parameter may include at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
  • the plurality of components may include three components forming the color space, and/or the at least one tool parameter may include at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
  • the decoder may obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
  • the decoder obtain, from signalling in the data stream, one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the decoder obtain, from signalling in the data stream, a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the decoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously decoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain]
  • a distance parameter which may be an example of the tool parameter] signalled in the data stream
  • the decoder may retrieve the position of the subportion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the subportion, wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the predetermined block neighbouring the at least one previously predicted block, wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream.
  • the decoder may be such that at least one coding tool [e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously decoded samples.
  • at least one coding tool e.g. MIP
  • the decoder may be such that the prediction matrix is pre-stored in a non-transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed, and the signalling may encode the index].
  • the decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the decoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the decoder is configured, after the prediction [e.g.
  • the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions.
  • the decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding.
  • the decoder may be such that the at least one coding tool [e.g.
  • ISP involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an infra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra- prediction, at first, for a first one of the partitions and, after the prediction [e.g. in ail the components] of the first one of the partitions, performing a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g.
  • a size of the partitions of the predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block fulfil the predetermined criterion.
  • a predetermined criterion which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • partitions e.g. subblocks
  • the decoder may: perform an entropy decoding in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the decoder may: perform a dequantization in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the predetermined block is divided into partitions e.g. for the at feast one second array of samples.
  • the decoder may: perform an inverse transformation in which the predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform an inverse transformation in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the prediction may be performed for the entire predetermined block.
  • the first partition may neighbour at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
  • the first partition may be interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
  • the second partition may be such that it does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
  • the decoder after the prediction of the second one of the partitions, perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
  • the decoder after the prediction of the third one of the partitions, perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
  • the decoder may iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
  • Each [or at least one] of the partitions may have a horizontal dimension larger than the vertical dimension [e.g. rectangular partition].
  • Each [or at least one] of the partitions may have a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
  • the predetermined block may be a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and be partitioned in rectangular partitions (e.g. four 4x16 partitions or four 16x4 partitions or four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g. 4 or 2) than the respective dimension of the predetermined block so that the sum (e.g.
  • the partitions may have a vertical dimension equal to the horizontal dimension [e.g. square partition].
  • the decoder may define the partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream.
  • the decoder may define the number of partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream, the signalling indicating the number of partitions [e.g. subblocks], wherein the decoder is configured to divide the predetermined block into the number of partitions obtained from the signalling.
  • signalling e.g. at least one tool parameter
  • the decoder may divide the predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, into as many partitions as signalled in the signalling.
  • partitions e.g. subblocks
  • the decoder may define the plurality of partitions [e.g. subblocks] so that the partitions [sublocks] have the same area [e.g. apart from quantization or rounding errors].
  • the decoder may be such that the number of partitions is a power of 2.
  • the number of partitions may be selectively chosen (e.g. among 2 or 4) by the signalling.
  • the number of partitions may be selectively decided on the basis of the dimension(s) of the predetermined block.
  • the decoder may compare at least one dimension of the predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4],
  • the decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • the number of partitions may depend on at least one of the dimensions of the predetermined block.
  • the larger one dimension [horizontal and/or vertical] of the predetermined block the higher the number of partitions [e.g. blocks with larger size will have more partitions].
  • the decoder may apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • at least one dimension e.g. horizontal or vertical
  • the decoder may apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the decoder may derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform is applied to a sub-area of the predetermined block after having subjected to the primary transform.
  • the primary transform may be a separable transform.
  • the primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-Vli and the DCT-VIII.
  • transformskip no transform
  • the primary transform may be a DCT-II, DST-VII or DCT-VIII.
  • the decoder may operate in transformskip mode in case of the first transformation being the identity transformation.
  • the secondary transform may be a non-separable transform.
  • the secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separabie transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
  • LNNST Low-Frequency Non-Separable Transform
  • the multi-stage transform may be signalled in signalling of the data stream.
  • the primary transform may be chosen by the at least one coding tool on the basis of signalling in the data stream, so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the decoder may choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling in the data stream.
  • the decoder may choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the decoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero.
  • the decoder may be such that the dimensions of the reduced area with respect to the dimensions of the predetermined block have a ratio of 50:50 or 25:75.
  • the decoder may be configured to obtain, from signaling in the data stream, dimensional and/or positional relationships [e.g.
  • the decoder may be configured to obtain, from signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may be configured to obtain, from signalling in the data stream, an indication on which coding toots are to be selectively individually activated, or deactivated.
  • the decoder may be configured to obtain, from signalling in the data stream, one single parameter on dimensional and/or positional relationships between the predetermined block and a reduced area, the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the decoder may be configured to obtain, from signalling in the data stream, a plurality of parameters on dimensional and/or positional relationships between the predetermined block and a reduced area, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the decoder may, for the predetermined block, decode, for each array of samples of the predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding tool for respective array of samples, wherein the decoder may sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
  • the determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the decoder may perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
  • the decoder may, for the predetermined block, decode, for each array of samples of the predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the decoder may sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
  • the determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the decoder may perform a selection out of the same set of contexts for each of the array of samples, and use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
  • the first color component may be a luma component
  • the second color component a chroma component [the third may be another chroma component].
  • the first color component may be a luma component
  • the second color component may be a chroma component Cb [the third may be a chroma component Cr]
  • the color components may form a luma-chroma based color space.
  • the first color component may be a green component
  • the second color component a blue component
  • the third may be a red component
  • a method for block-wise decoding a picture from a data stream wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the decoder is configured to predictively reconstruct the predetermined block by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples.
  • a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
  • an encoder for block-wise encoding a picture from a data stream, wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the encoder is configured to predictively reconstruct the predetermined bloc by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples,
  • the encoder may be such that the plurality of arrays of samples includes a third array of samples defined in at least one third space component, wherein the encoder is configured to apply the at least one coding tool to the at least one third array of samples.
  • the encoder may selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
  • the encoder may choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples and to signal the choice in signaling in the data stream.
  • the encoder may write signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
  • signalling e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays
  • the encoder may further write signalling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
  • signalling e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the array of samples of the plurality of arrays of samples may be suitable to be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the encoder may further write signalling choosing the color space between at least the first and the second color spaces, and: in case of choice of the first color space, to activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays may include at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • Each array of samples of the plurality of arrays of samples may be suitable to be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the encoder may: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • the encoder may be such that in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
  • the encoder may be such that in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool is activated for all the arrays of samples of the plurality of arrays.
  • the encoder may activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
  • the encoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution.
  • the encoder may deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the encoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the encoder may implement the coding tool using the at least one tool parameter and to write the at least one tool parameter onto the bitstream [e.g. to be read by the decoder from the data stream].
  • the encoder may: write the signalling in the data stream; and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling of the data stream, the at least one tool parameter to be applied to the coding tool.
  • the at least one tool parameter may be shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
  • the at least one tool parameter may be shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
  • the at least one tool parameter may include at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
  • the plurality of components may include three components forming the color space, and/or the at least one tool parameter may include at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
  • the encoder write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the encoder write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
  • the encoder may write, onto signalling in the data stream, one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the encoder may write, onto signalling in the data stream, a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the encoder may be such that at least one coding tool [e.g.
  • MRL involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain].
  • a distance parameter which may be an example of the tool parameter] signalled in the data stream
  • the encoder may retrieve the position of the subportion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the subportion, wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the predetermined block neighbouring the at least one previously predicted block, wherein the distance is written onto at least one tool parameter in the signaling of the data stream.
  • the encoder may be such that at least one coding tool [e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
  • at least one coding tool e.g. MIP
  • the prediction matrix may be pre-stored in a non-transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed, and the signalling may encode the index].
  • the at least one coding tool may involve, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the encoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the encoder is configured, after the prediction [e.g.
  • ISP may involve, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding.
  • the at least one coding tool may involve, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra-prediction, at first, for a first one of the partitions and, after the prediction [e.g.
  • the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block fulfil the predetermined criterion.
  • a predetermined criterion which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • partitions e.g. subblocks
  • the encoder may: perform an entropy encoding in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the encoder may be; perform a dequantization in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the encoder may: perform a transformation [e.g. DCT, etc.] in which the predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform a transformation [e.g. DCT, etc.] in which the predetermined block is divided into partitions e.g. for the at least one second array samples.
  • a transformation e.g. DCT, etc.
  • the prediction may be performed for the entire predetermined block.
  • the encoder may be such that the first partition neighbours at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
  • the first partition may be interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
  • the second partition does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
  • the prediction of the second one of the partitions it may be possible to perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
  • the encoder may be configured so as, after the prediction of the third one of the partitions, to perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
  • the encoder may iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
  • Each [or at least one] of the partitions may have a horizontal dimension larger than the vertical dimension.
  • Each [or at least one] of the partitions may have a vertical dimension larger than the horizontal dimension.
  • the predetermined block may be a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and is partitioned in rectangular partitions (e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g. horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g.
  • Each of the partitions may have a vertical dimension equal to the horizontal dimension [e.g. square partition].
  • the encoder may define the partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream.
  • the encoder may define the number of partitions [e.g. subblocks] and to write signalling [e.g. at least one tool parameter] in the data stream, the signalling indicating the number of partitions [e.g. subblocks], and it may also divide the predetermined block into the defined number of partitions.
  • signalling e.g. at least one tool parameter
  • the encoder may divide the predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, into as many partitions as signalled in the signalling.
  • partitions e.g. subblocks
  • the encoder may define the plurality of partitions [e.g. subblocks] so that the partitions [subblocks] have the same area [e.g. apart from quantization or rounding errors].
  • the number of partitions may be a power of 2.
  • the number of partitions may be selectively chosen among two or four by the signalling.
  • the number of partitions may be selectively decided on the basis of the dimension(s) of the predetermined block.
  • the encoder may compare at least one dimension of the predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4],
  • the encoder may be such that at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • the number of partitions may depend on at least one of the dimensions of the predetermined block.
  • the encoder may be such that the larger one dimension [horizontal and/or vertical] of the predetermined block, the higher the number of partitions [e.g. blocks with larger size will have more partitions].
  • the encoder may be further apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • at least one dimension e.g. horizontal or vertical
  • the encoder may apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the at least one coding tool may derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform may be applied to a sub-area of the predetermined block after having subjected to the primary transform.
  • the primary transform may be a separable transform.
  • the primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII.
  • transformskip no transform
  • the primary transform may be a DCT-II, DST-VII or DCT-VIII.
  • the encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the secondary transform may be a non-separable transform.
  • the secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)].
  • LNNST Low-Frequency Non-Separable Transform
  • the multi-stage transform may be signalled in signalling of the data stream.
  • the primary transform may be chosen by the at least one coding tool and is written onto signalling in the data stream, wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the encoder may choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to write signalling regarding the choice in the data stream.
  • the encoder may choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the encoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero.
  • the dimensions of the reduced area with respect to the dimensions of the predetermined block may have a ratio of 50:50 or 25:75.
  • the encoder may write, onto signalling in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the predetermined block.
  • the encoder may write, onto signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the encoder may write, onto signalling in the data stream, an indication on which coding tools are to be selectively Individually activated, or deactivated.
  • the encoder may write, onto signalling in the data stream, one single parameter on dimensional and/or positional relationships between the predetermined block and a reduced area, wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the encoder may write, onto signalling in the data stream, a plurality of parameters on dimensional and/or positional relationships between the predetermined block and a reduced area, wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples.
  • the encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the encoder may, for the predetermined block, encode, for each array of samples of the predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding toot for respective array of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
  • the encoder may, for the predetermined block, encode, for each array of samples of the predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
  • the determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the encoder may perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
  • the first color component may be a luma component
  • the second color component is a chroma component [the third may be another chroma component].
  • the first color component may be a luma component
  • the second color component is a chroma component Cb [the third may be a chroma component Cr]
  • the color components may form a luma-chroma based color space.
  • the color component may be a green component, the second color component a blue component [the third may be a red component].
  • a method for block-wise encoding a picture from a data stream wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the method includes predictively reconstructing the predetermined block by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples.
  • a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
  • a decoder for block-wise decoding a picture from a data stream, wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the decoder is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co-located to the first predetermined block of the first tree-based partitioning.
  • the decoder may further block-wise decode a further picture from the data stream, wherein the further picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples, defined in at least one second space component, wherein the decoder may perform a prediction of the predetermined block, in at least the first space component and the second space component, based on at least one previously predicted block neighbouring the predetermined block, wherein the decoder is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
  • the signalling may include signalling indicating whether or not the picture or further picture is to be subdivided into a plurality of tree-based partitionings or not, so as to imply that, in case the signaling indicates that the further picture is to be subdivided into a plurality of tree- based partitionings, the further picture is subdivided into a plurality of tree-based partitionings.
  • the plurality of arrays of samples may include a third array of samples defined in at least one third space component, wherein the decoder may apply the at least one coding tool to the at least one third array of samples.
  • the decoder may selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
  • the decoder may choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples on the basis of signaling from the data stream.
  • the signaling from the data stream may include signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag", e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
  • signalling e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays
  • the signaling from the data stream may include signaling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
  • signaling e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • Each array of samples of the plurality of arrays of samples may be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the signalling includes signalling choosing the color space between at least the first and the second color spaces, so as to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • Each array of samples of the plurality of arrays of samples may be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the decoder may: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • the decoder may be such that in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
  • the decoder may be such that in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool Is activated for all the arrays of samples of the plurality of arrays.
  • the decoder may activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
  • the decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution.
  • the decoder may deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the decoder may read at least one tool parameter from the bitstream, and apply the predetermined coding tool using the at least one tool parameter to predict the at least one first predetermined block [e.g. read in the data stream].
  • the decoder may: read signalling in the data stream which indicates whether the first and second tree-based partitionings are a single partitioning or separate partitionings; and if a cross-prediction tool is applied: modify the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings being separate partitionings, and use the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings being a single partitioning.
  • the decoder may be such that the at least one tool parameter indicates a prediction mode associated to the predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
  • the decoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
  • the decoder may, if both the cross-prediction tool is applied and the first and second tree- based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
  • the decoder may, if both the cross-prediction tool is applied and the first and second tree- based partitionings are a single partitioning, to refrain from searching in the bitstream for another tool parameter for a predetermined coding tool for the second predetermined block.
  • the decoder may, if both a cross-prediction tool is applied and the first and second tree- based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
  • the decoder may be such that the at least one second, modified tool parameter is obtained from the signalling in the data stream.
  • the at least one second, modified tool parameter may be a default parameter.
  • the decision whether to apply the cross-prediction tool or not may be encoded in the signalling of the data stream.
  • the decoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
  • the decoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
  • the decoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
  • the decoder may be such that the at least one tool parameter is shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
  • the decoder may be such that the at least one tool parameter is shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
  • the decoder may be such that the at least one tool parameter includes at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
  • the decoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter includes at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
  • the decoder may be configured to obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
  • the decoder may obtain, from signalling in the data stream, one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the decoder may obtain, from signalling in the data stream, a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the at least one coding tool may be a MRL.
  • the decoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter indicates the reference line.
  • the decoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the first and second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously predicted samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the first and second predetermined block, which is distanced from the first or second predetermined block at a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain]
  • a distance parameter which may be an example of the tool parameter] signalled in the data stream
  • the decoder may be configured to retrieve the position of the portion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the portion, wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the first or second predetermined block neighbouring the at least one previously predicted block, wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream.
  • the decoder may be such that the predetermined coding tool [e.g. MIP] involves, for each array of samples of the first and second predetermined block for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples.
  • the predetermined coding tool e.g. MIP
  • the decoder may be such that the predetermined coding tool [e.g. MIP] is a MIP.230b.
  • the decoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prodiction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
  • the decoder may be such that the predetermined coding tool involves a prediction matrix is chosen among a plurality of prediction matrixes, wherein the prediction matrix is chosen according to the at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed, and the signalling may encode the index].
  • the decoder may be such that the predetermined coding tool [e.g. MIP] involves, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples.
  • the predetermined coding tool e.g. MIP
  • the decoder may be such that the prediction matrix is pre-stored together with [among] a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix is to be used.
  • the decoder may be configured if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix for all the arrays of samples of the firs predetermined block and the second predetermined block.
  • the decoder may be configured if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix different from the prediction matrix used for the prediction of the first predetermined block.
  • the decoder may be such that the second prediction matrix correspond to a planar mode.
  • the decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the decoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the decoder is configured, after the prediction [e.g.
  • the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions.
  • the decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first and/or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding.
  • the at least one coding tool e.g. ISP
  • ISP intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block
  • the decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first and/or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra-prediction, at first, for a first one of the partitions and, after the prediction [e.g.
  • the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the first and/or second predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined first and/or second predetermined block fulfil the predetermined criterion.
  • a predetermined criterion which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • partitions e.g. subblocks
  • the decoder may be configured to: perform an entropy decoding in which the first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding in which the first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the decoder may be further configured to: perform a dequantization in which the first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the decoder may be configured to: perform an inverse transformation in which the first and/or second predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform an inverse transformation in which the first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the decoder may be such that the prediction is performed for the entire predetermined block.
  • the decoder may be such that the first partition neighbours at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
  • the decoder may be such that the first partition is interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
  • the decoder may be such that the second partition does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
  • the decoder may be configured, after the prediction of the second one of the partitions, to perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
  • the decoder may be configured, after the prediction of the third one of the partitions, to perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
  • the decoder may be configured to iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
  • the decoder may be such that each [or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g. rectangular partition].
  • the decoder may be such that each [or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
  • each partition having one dimension (e.g. horizontal or vertical) equal to one respective
  • the decoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g. square partition].
  • the decoder may be configured to define the partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream.
  • the decoder may be configured to define the number of partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream, the signalling indicating the number of partitions [e.g. subblocks], wherein the decoder is configured to divide the first or second predetermined block into the number of partitions obtained from the at least one parameter.
  • the decoder may be configured to divide the first or second predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, into as many partitions as indicated in the at least one parameter.
  • the decoder may be configured to define the plurality of partitions [e.g. subblocks] so that the partitions [subblocks] have the same area [e.g. apart from quantization or rounding errors].
  • the number of partitions may be a power of 2.
  • the decoder may be such that the number of partitions is selectively chosen (e.g. among two or four) e.g. by at least one tool parameter.
  • the decoder may be such that the number of partitions is selectively decided on the basis of the dimension(s) of the predetermined block.
  • the decoder may be configured to compare at least one dimension of the first or second predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4],
  • the decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • ACT adaptive color transform
  • the decoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block.
  • the decoder may be such that the larger one dimension [horizontal and/or vertical] of the predetermined block, the higher the number of partitions [e.g. blocks with larger size will have more partitions].
  • the decoder may be further configured to apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • at least one dimension e.g. horizontal or vertical
  • the decoder may be further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the at least one coding tool may be configured to derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform is applied to a sub-area of the first and/or second predetermined block after having subjected to the primary transform.
  • the at least one coding tool may be a MTS tool.
  • the decoder may be such that the at least one parameter indicates the primary transform and/or the secondary transform.
  • the decoder may be such that the at least one parameter indicates a positional relationship between the sub-area and the first and/or second predetermined block.
  • the decoder may be such that the primary transform is a separable transform.
  • the primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII.
  • transformskip no transform
  • transform can also be used as a primary transform
  • the decoder may be such that the primary transform is a DCT-II,
  • the decoder may be such that the primary transform is a DST-VII or DCT-VIII.
  • the decoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the decoder may be such that the secondary transform is a non-separable transform.
  • the secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separable transform.
  • WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
  • the decoder may be such that the multi-stage transform is signalled in the at least one parameter.
  • the decoder may be such that the primary transform is chosen by the at least one coding tool on the basis of signalling in the data stream, so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling in the data stream.
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the decoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero.
  • the decoder may be such that the dimensions of the reduced area with respect to the dimensions of the first or second predetermined block have a ratio of 50:50 or 25:75.
  • the decoder may be configured to obtain, from signalling in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the first or second predetermined block.
  • the decoder may be configured to obtain, from signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may be configured to obtain, from signalling in the data stream, an indication on which coding tools are to be selectively individually activated, or deactivated.
  • the decoder may be configured to obtain, from signalling in the data stream, the at least one parameter includes one single parameter on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the decoder may be configured to obtain, from signalling in the data stream, a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding tool for respective array of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
  • the decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
  • the decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
  • the decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
  • the decoder may be such that the first color component is a luma component, the second color component is a chroma component [the third may be another chroma component].
  • the decoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [the third may be a chroma component Cr].
  • the decoder may be such that the color components form a luma-chroma based color space.
  • the decoder may be such that the first color component is a green component, the second color component is a blue component [the third may be a red component].
  • a method for block-wise decoding a picture from a data stream wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co- located to the first predetermined block of the first tree-based partitioning.
  • a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
  • an encoder for block-wise encoding a picture onto a data stream, wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the encoder is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co-located to the first predetermined block of the first tree-based partitioning.
  • the encoder may be configured to further block-wise encode a further picture from the data stream, wherein the further picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples, defined in at least one second space component, wherein the encoder is configured to perform a prediction of the predetermined block, in at least the first space component and the second space component, based on at least one previously predicted block neighbouring the predetermined block, wherein the encoder is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
  • the encoder may be such that the signalling includes signalling indicating whether or not the picture or further picture is to be subdivided into a plurality of tree-based partitionings or not, so as to imply that, in case the signaling indicates that the further picture is to be subdivided into a plurality of tree-based partitionings, the further picture is subdivided into a plurality of tree-based partitionings.
  • the encoder may be such that the plurality of arrays of samples includes a third array of samples defined in at least one third space component, wherein the encoder is configured to apply the at least one coding tool to the at least one third array of samples.
  • the encoder may be configured to selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
  • the encoder may be further configured to choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples and to signal the choice in signaling in the data stream.
  • the encoder may be further configured to write signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
  • signalling e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays
  • the encoder may be further configured to write signalling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
  • signalling e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the encoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the encoder is further configured to write signalling choosing the color space between at least the first and the second color spaces, and: in case of choice of the first color space, to activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • the encoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the encoder is configured to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
  • the encoder may be such that, in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
  • the encoder may be such that, in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool is activated for all the arrays of samples of the plurality of arrays.
  • the encoder may be configured to activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
  • the encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution.
  • the encoder may be configured to deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the encoder may be configured to use the coding tool using at least one tool parameter and to write the at least one tool parameter onto the bitstream [e.g. to be read by the decoder from the data stream].
  • the encoder may be configured to: write the signalling in the data stream; and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling of the data stream, the at least one tool parameter to be applied to the coding tool.
  • the encoder may be configured to: write signalling in the data stream which indicates whether the first and second tree-based partitionings are a single partitioning or separate partitionings; and wherein, if a cross-prediction tool is applied, the prediction involves: modifying the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings being separate partitionings, and using the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings being a single partitioning.
  • the encoder may be such that the at least one tool parameter indicates a prediction mode associated to the at least one predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
  • the encoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from writing in the bitstream another tool parameter for a predetermined coding tool for the second predetermined block.
  • the encoder may be configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
  • the encoder may be configured to write the at least one second, modified tool parameter in the data stream.
  • the encoder may be such that the at least one second, modified tool parameter is a default parameter.
  • the decision whether to apply the cross-prediction tool or not may be encoded in the signalling of the data stream.
  • the encoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
  • the encoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
  • the encoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
  • the encoder may be such that the at least one tool parameter is shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
  • the encoder may be such that the at least one tool parameter is shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
  • the encoder may be such that the at least one tool parameter includes at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
  • the encoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter includes at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
  • the encoder may be configured to write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the encoder may be configured to write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
  • the encoder may be configured to write, onto signalling in the data stream, one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the encoder may be configured to write, onto signalling in the data stream, a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the encoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the first or second predetermined block, which is distanced from the first or second predetermined block by a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain]
  • a distance parameter which may be an example of the tool parameter] signalled in the data stream
  • the encoder may be such that at least one coding tool is a MRL.
  • the encoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter indicates the reference line.
  • the encoder may be configured to define the position of the portion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the portion, wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the predetermined block neighbouring the at least one previously predicted block, wherein the distance is written onto at least one tool parameter in the signaling of the data stream.
  • the encoder may be such that at least one coding tool [e.g. MIP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
  • at least one coding tool e.g. MIP
  • the encoder may be such that the at least one coding tool is MIP.
  • the encoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prediction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
  • the encoder may be such that the prediction matrix is signalled in the at least one tool parameter indicating the matrix [e.g. the matrix may be indexed, and the at least one tool parameter may encode the index].
  • the encoder may be such that the pre-stored prediction matrix is pre-stored among a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix is to be used.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix for all the arrays of samples of the firs predetermined block and the second predetermined block.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix different from the prediction matrix used for the prediction of the first predetermined block.
  • the encoder may be such that the second prediction matrix correspond to a planar mode.
  • the encoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the encoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the encoder is configured, after the prediction [e.g.
  • the at least one coding tool involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a
  • the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted va!ue(s)] of first one of the partitions.
  • the encoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete at least one first and/or second predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual encoding/decoding.
  • the at least one coding tool e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete at least one first and/or second predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or
  • the encoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first and/or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra-prediction, at first, for a first one of the partitions and, after the prediction [e.g.
  • the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the first and/or second predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual encoding/decoding if the size of the partitions of the predetermined block fulfil the predetermined criterion.
  • a predetermined criterion which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • partitions e.g. subblocks
  • the encoder may be configured to: perform an entropy encoding in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the encoder may be configured to: perform a dequantization in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • the encoder may be configured to: perform a transformation [e.g. DCT, etc.] in which the at least one first and/or second predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform a transformation [e.g. DCT, etc.] in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
  • a transformation e.g. DCT, etc.
  • the encoder may be such that the prediction is performed for the entire at least one first and/or second predetermined block.
  • the encoder may be such that the first partition neighbours at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
  • the encoder may be such that the first partition is interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
  • the encoder may be such that the second partition does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
  • the encoder may be configured, after the prediction of the second one of the partitions, to perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
  • the encoder may be configured, after the prediction of the third one of the partitions, to perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
  • the encoder may be configured to iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
  • the encoder may be such that each [or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g. rectangular partition].
  • the encoder may be such that each [or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
  • each partition having one dimension (e.g. horizontal) equal to one respective dimension of the square at least one first and/or second predetermined block (
  • the encoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g. square partition].
  • the encoder may be configured to define the partitions [e.g. subblocks] and to indicate the partitions in the at least one tool parameter.
  • the encoder may be configured to define the number of partitions [e.g. subblocks] and to signal it in the at least one tool parameter in the data stream indicating the number of partitions [e.g. subblocks], wherein the encoder is configured to divide the first or second predetermined block into the defined number of partitions.
  • the encoder may be configured to divide the first or second predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, and to signal though the at least one tool parameter.
  • the encoder may be configured to define the plurality of partitions [e.g. subblocks] so that the partitions [subblocks] have the same area [e.g. apart from quantization or rounding errors].
  • the number of partitions may be a power of 2.
  • the encoder may be such that the number of partitions is selectively chosen among (e.g. two or four) e.g. and is indicated through the at least one tool parameter.
  • the encoder may be such that the number of partitions is selectively decided on the basis of the dimension(s) of the at least one first and/or second predetermined block,
  • the encoder may be configured to compare at least one dimension of the first or second predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4].
  • the encoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • ACT adaptive color transform
  • the encoder may be such that at least one coding tool is configured to derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform is applied to a sub-area of the first or second predetermined block after having subjected to the primary transform.
  • the encoder may be such that the primary transform is a separable transform.
  • the primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII.
  • transformskip no transform
  • the encoder may be such that the primary transform is a DCT-II.
  • the encoder may be such that the primary transform is a DST-VII or DCT-VIII.
  • the encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the encoder may be such that the secondary transform is a non-separable transform.
  • the secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separable transform.
  • WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
  • the encoder may be such that the multi-stage transform is signalled through the at least one tool parameter of the data stream.
  • the encoder may be such that the primary transform is chosen by the at least one coding tool and is indicated in the at least one tool parameter in the data stream, wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the encoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to indicate, through the at least one tool parameter, the choice in the data stream.
  • the encoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the encoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero.
  • the at least one coding tool e.g. SBT] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero.
  • the encoder may be such that the dimensions of the reduced area with respect to the dimensions of the first or second predetermined block have a ratio of 50:50 or 25:75.
  • the encoder may be configured to indicate, through the at least one tool parameter in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the first or second predetermined block.
  • the encoder may be configured to write, onto signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the encoder may be configured to write, onto signalling in the data stream, an indication on which coding tools are to be selectively individually activated, or deactivated.
  • the encoder may be configured to indicate, through the at least one tool parameter in the data stream, one single parameter on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the encoder may be configured to indicate, through the at least one tool parameter in the data stream, a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, wherein each of the plurality of parameters is to be applied to the coding toot for a respective array of samples.
  • the encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the encoder may be, configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding tool for respective array of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the encoder may be, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
  • the encoder may be configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
  • the encoder may be such that the first color component is a luma component, the second color component is a chroma component [the third may be another chroma component].
  • the encoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [the third may be a chroma component Cr]
  • the encoder may be such that the color components form a luma-chroma based color space.
  • the encoder may be such that the first color component is a green component, the second color component is a blue component [the third may be a red component].
  • a method for block-wise encoding a picture onto a data stream wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the method includes predicting, according to at least one predetermined coding tool, at (east one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co- located to the first predetermined block of the first tree-based partitioning.
  • a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
  • Figs 1 and 2 show an example of encoder.
  • Figs 3 and 4 show an example of decoder.
  • Fig. 5 shows an example of a block predicted based on previously predicted neighbouring blocks .
  • Fig. 6 shows a matrix multiplication according to a MIP tool.
  • Figs. 7.1-7.5 show operations according to examples.
  • Fig. 8.1 shows an example of MRL tool.
  • Fig. 8.2 shows an example of ISP tool.
  • Fig. 8.3 shows an example of MTS tool.
  • Fig. 8.4 shows an example of SBT tool.
  • Figs. 9.1 and 9.2 show examples of partitioning.
  • a colors space (e.g., RGB, YUV, etc.) is defined by a plurality of color components (e.g., red, green, blue forming the space RGB, chroma component Y and two luma components, e.g. U and V or Cr and Cb, forming the color space YUV, etc.).
  • color components e.g., red, green, blue forming the space RGB, chroma component Y and two luma components, e.g. U and V or Cr and Cb, forming the color space YUV, etc.
  • the picture 10 is subdivided in different blocks 18 (among which the predetermined block 18). However, this does not mean that, for each color component of the color space, the blocks are the same. In some cases, in fact, different subdivisions may be generated for different color components. For example, dual tree partitionings are known. See for example Fig. 9.2 (image 10''), showing the luma component Y associated to a first partitioning 25', while the chroma components U and V are associated to a second partitioning 25'' (the same would be for chroma cements Cr and Cb or any other case of chroma components).
  • blocks 18' of the first partitioning 25' for the luma component Y are in general not corresponding to the blocks 18'' of the second partitioning 25'' associated to chroma components U and V.
  • blocks 18'' for the chroma component U are the same of block 18'' of the chroma component V
  • the blocks 18' for the luma component Y are in general different from the blocks 18" for the components U and V.
  • samples 18-2' in a particular block 18'' in the second partitioning 25'' do not necessarily need to be in a corresponding block 18' in the first partitioning 25'.
  • each block 18' is associated to at least one array (e.g. mono or bidimensional array) for each component: for example, the block 18' for the luma component Y may be understood as having at least one array 19-Y of samples defined in the luma component Y. Analogously, the block 18" may be associated to two arrays 19-U and 19-V, respectively defined in the color components U and V.
  • array e.g. mono or bidimensional array
  • the samples (pixels or bins) may have the same resolution.
  • an array e.g., a mono or bidimensional array
  • 19-B, 19-G, 19-R may be defined with the same numbers of samples for each block 18 for each component (RGB).
  • one space e.g., YUV and RGB
  • another one e.g. for one single block or for a plurality of blocks in the same image
  • signalling 81 e.g. in signaling 81 (see also Figs. 1-4).
  • the resolution of the different arrays of samples (e.g. 19-Y, 19-U, 19V) associated to the same block 18, may be signaled in the signaling 81.
  • the decision whether to use one single partitioning (e.g., 25) or using different partitionings (e.g., 25' and 25") may be indicated in the signaling 81.
  • the prediction is performed by using coding tools (e.g., at least one of MRL, MIP, ISP, MTS, SBT, and so on).
  • coding tools e.g., at least one of MRL, MIP, ISP, MTS, SBT, and so on.
  • a coding tool to one single component of the color space, e.g. to the component enjoying of the best resolution: this may be the case of the luma component Y of the color space YUV, according to which only the blocks 18' for the luma component Y may be subjected to the coding tool, while the same coding tool is deactivated for the other components U and V.
  • a coding tool to one single component of the color space, e.g. to the component enjoying of the best resolution: this may be the case of the luma component Y of the color space YUV, according to which only the blocks 18' for the luma component Y may be subjected to the coding tool, while the same coding tool is deactivated for the other components U and V.
  • a strategy according to which the coding tool can be applied to a plurality of components e.g., at least two components or three components, e.g. all the components of the color space.
  • This strategy may be implemented, for example, by selectively defining (e.g., in the signaling 81) that a block shall be subjected to a coding tool for all the components, or by permitting a selection of the particular component to be subjected to the tool (on the basis, for example, of the signaling 81).
  • the signaling 81 includes a flag which is applied to all the components: in a step 181 it is determined whether to perform the encoding or decoding for all the components (as is defined by blocks 103R, 103G, and 103B) or to perform the prediction, but avoiding the application of the coding tool to all the components at step 104 (hence by deactivating the coding tool for all the components).
  • This can be understood as a signaling at the block level, where a single flag 81 is parsed for the whole block 18, and all the three components will have the same behavior. Even if Fig. 7.1 is prevalently described with reference to the RGB space, these may also be applied to the YUV space or any other spaces, according to the embodiment.
  • Fig. 7.2 shows an example 120 in which several choices are performed at the component level, while, instead of having one single choice 181 for all the components, different choices 181 Y, 181 U and 181V are carried out for each component Y, U, V.
  • This may be the case of the space YUV, or of other spaces in which different resolutions are provided for different components (the signaling 81 Y, 81 U, 81V can in fact be understood as, in some cases, signaling regarding the resolution of each component), wherein the choice of applying or not applying the tool is carried out on the basis of the different resolutions associated to each component, so as to award the use of the tool for the component, (i.e., luma component Y, enjoying the highest resolution).
  • additional signaling 82 may be read at steps 182 (or respectively, 182Y, 182U, and 182V).
  • steps 182 or respectively, 182Y, 182U, and 182V.
  • the step 104 (respectively 104Y, 104U, 104V) may be performed by avoiding the prediction but without the coding tool.
  • the prediction is performed and encoding or decoding is also performed by making use of the respective tool in steps 103 (respectively 103Y, 103U, 103V).
  • FIG. 7.3 An example representing a mixed technique with respect to those shown in Fig. 7.1 and 7.2 is provided by the method 130 of Fig. 7.3.
  • one single choice 181 is performed for the totality of components (e.g., the signaling 81 can include one single flag indicating that either all the components are to be subjected to the coding tool, or none of the components is to be subjected to the coding tool).
  • the coding tool is applied at step 103M.
  • step 182M different parameters are encoded or decoded for respectively different components of the same tool.
  • the coding tool is applied differently to different components on the basis of the different parameters of step 182M. In case the coding tool is not chosen, the coding tool is deactivated for the totality of the components, and the coding is performed at step 104 of the components without exceptions.
  • Fig. 7.4 shows an example (method 140) in which the choice 181 HL is performed between the YUV color space and the RGB color space: in case of choice of YUV color space, a step 182 YUV of reading or writing one single parameter for the luma component Y may be performed and, subsequently, a step 103YUV is performed, for which the coding tool is applied only to the luma component Y, while the coding tool is not applied to the chroma components U and V.
  • the color space RGB is chosen at step 181 HI
  • the parameters are read or written in the signaling 12 at step 182RGB and, after that, a step 103 is performed.
  • the step 103 can be understood as formed by three steps 103R, 103G and 103B, which are based on parameters 82 different from each other.
  • Fig. 7.5 shows an example of a method 150 for which a choice is performed at step 181T, regarding the possibility of choosing among a separate tree (e.g,, the first partitioning 25' and the second partitioning 25'') for the image 10'' of Fig. 9.2 (as explained above) or the single tree (e.g., the single partitioning 25 of the image 10' of Fig. 9.1).
  • a separate tree e.g., the first partitioning 25' and the second partitioning 25''
  • the single tree e.g., the single partitioning 25 of the image 10' of Fig. 9.1
  • the predetermined group may comprise one single component, such as the luma component Y, while the chroma component U and V may be non-subjected to the coding tool. It is possible to directly continue to one of the methods 120 or 130 as defined above (see also Figs. 7.2, 7.3). In some examples, the separate trees 25' and 25'' do not permit to implement the method 110.
  • each of the methods 110, 120, 130, 140 and 150 may be repeated for each coding tool of a plurality of coding tools and for each block of the plurality of blocks of each tree. In some examples, the method is repeated only once for all the blocks of the same picture 10. At least the following examples are discussed:
  • the picture (10) is divided (25) into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (19-G, 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B, 19-U) of samples defined in at least one second space component (B, U).
  • the decoder (54) may be configured to perform a prediction of the predetermined block (18), in at least the first space component (G; Y) and the second space component (B, U), based on at least one previously predicted block (17a-17c) neighbouring the predetermined block (18).
  • the decoder (54) is configured to apply (103G, 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and apply (103B, 103U) at least one coding tool to the at least one second array (19-B, 19-U) of samples.
  • FIG. 9.2 Another example is directed to a decoder (54) (see Fig. 9.2) for block-wise decoding a picture (10) from a data stream (12).
  • the picture (10'') is divided, according to at least one first tree-based partitioning (25') and a second tree-based partitioning (25'') into a plurality of blocks (18', 18'') for each of the first and second tree-based partitionings (25', 25"), wherein each of the first and second tree-based partitionings (25', 25") is associated to at least one color space component (Y, U, V ) of a plurality of color space components forming a color space.
  • Y, U, V color space component
  • each block (18', 18'') has one array (19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (V, U, Y) associated to the respective tree-based partitioning (25', 25'').
  • the decoder (54) is configured to predict, according to a predetermined coding tool, at least one first predetermined block (18) of the first tree-based partitioning (25') and at least one second predetermined block (18) of the second tree-based partitioning (25'') which is co-located to the first predetermined block (18) of the first tree-based partitioning (25').
  • a definition of two co-located blocks may be obtained by taking into consideration Fig. 9.2: the first block 18' (associated to the first partitioning 25' and to the component Y) is not coincident with the second block 18" (associated to the second partitioning 25'' and to the components U and V). However, the first block 18' happens to be “co-located” with the second block 18'' by virtue of one relevant sample 18-2' of the first block 18' being within the boundary of the second block 18'': as can be seen, the relevant sample 18-2' of the first block 18' has the projection in the second block 18'' (indicated with 118-2") within the boundary of the second block 18''.
  • the second block 18" happens to be “co- located” with the first block 18' also by virtue of one relevant sample 18-1'' of the second block 18'' being within the boundary of the first block 18': indeed, the relevant sample 18-1'' of the second block 18" has the projection in the first block 18' (indicated with 118-1') within the boundary of the first block 18'.
  • the “relevant sample” may be the high-left sample in the boundary of the block, in other examples the “relevant sample” may change according to the definition: it may be, for example the sample in the middle of the block, etc.
  • the same decoder 54 that makes use of the dual tree 25' and 25" may make use of one single tree 25 (e.g. based on a choice as in Fig. 7.5).
  • Fig. 7.5 in which it is selected between a single tree and a separated tree.
  • a single tree is shown Fig. 9.1 , where different components have the same partitioning, and the blocks may be basically the same.
  • a first partitioning e.g., the luma or green component
  • other components e.g., the chroma or red and blue components
  • a first predetermined block 18' of the first partitioning is generally different from the second predetermined block 18'' of the second partitioning (e.g., associated to two arrays of two different space colors, such as the chroma components).
  • cross component prediction tool direct mode
  • the tool parameter(s) of the first partitioning may be copied onto the tool parameters of the same block also for other components in case of single tree, while the tool parameter(s) obtained for the first predetermined block 18' associated to the first partitioning may be modified for the second block 18" of the second partitioning (e.g., for the other components, such as red color and the blue color, or the chroma components).
  • coding parameters used for the second predetermined block 18'' of the second partitioning may be chosen from a default value in some cases (e.g., in case of use of a particular tool e.g. MIP), hence embodying a modification of the tool parameter from the first predetermined block 18' to the second predetermined block 18''.
  • This may be the example of the use of the so-called “cross-prediction tool” or “direct mode” (notably, when the “cross-prediction tool” is used, another “at least one coding tool” may be used, and this can be for example one of a MIP, MRL, ISP, MTS, SBT etc.).
  • the luma component (U') comprises the most information of the signal.
  • Further data reduction prior the video compression stage is realized by subsampling the chroma components (i.e., C b and C r ).
  • a typical chroma format for end-user applications is 4:2:0, i.e. , the horizontal and vertical spatial resolution of the chroma is half of the luma.
  • ISP Intra Sub-Partitions
  • MIP Matrix-based Intra Prediction
  • MRL Multiple Reference Lines
  • MTS Multiple Transform Selection
  • SBT Sub-Block Transforms
  • the main signal information is mainly concentrated in the luma component due to camera or optical characteristics that result in the final digital signal representation.
  • the luma only design for the coding tools is suboptimal. This is especially crucial when the chroma format is 4:4:4 where the application of the luma only coding tools to chroma is less complex while the chroma signal information is higher than for the 4:2:0 or 4:2:2 chroma subsampling formats.
  • the encoder typically employs the G' component as luma, and furthermore, the typical chroma format for R'G'B' is 4:4:4.
  • Block level e.g. Fig. 7.1
  • a single flag (or more in general signalling 81) at the block level is parsed at the decoder. o All three components will have the same behavior.
  • Component level (e.g. Fig. 7.2) o
  • One flag will be parsed per component at the decoder o
  • Each component is independent from each other
  • ISP can be restricted not to be used for small (e.g. 4x4) blocks to reduce memory bandwidth and latency in hardware implementations.
  • CABAC Context Adaptive Binary Arithmetic Coding
  • Component U uses as a context the value of the flag used for component Y
  • Component V uses as a context the value of the flag used for component U Different sequences of the components are possible.
  • HLS High Level Syntax
  • Fig. 5 shows a block 18 (which may be one of the first and second predetermined blocks 18' and 18'') which is predicted from neighboring blocks 17a, 17b, 17c (which have been predicted in a previous iteration).
  • a block 18 which may be one of the first and second predetermined blocks 18' and 18''
  • neighboring blocks 17a, 17b, 17c which have been predicted in a previous iteration.
  • MRL is discussed with reference to Fig. 8.1.
  • the intra prediction on a generic block 18 (e.g., the blocks 18' and 18'' of Fig. 9.2, which may be the same or different from each other) is not based on the directly samples 17'a, 17'c adjacent to the block 18, but on samples (17'''a, 17'''c, “reference line”) which have a predetermined distance (e.g.,. defined by a parameter 17ccc) from the block 18.
  • a predetermined distance e.g.,. defined by a parameter 17ccc
  • MRL allows the utilization of a different line of spatially neighboring, available reference samples to generate an intra prediction e.g. for the luma component. There may be two flags at the block level. One indicates whether MRL is used or not, and the other one signals which reference line will be used to generate the prediction. The present examples would allow MRL for all three 4:4:4 components.
  • Block level (e.g. Fig. 7.1) o
  • the decoder parses one single flag to indicate whether MRL is used or not. o If it is used, then a second flag is parsed to indicate which reference line shall be used for all three color components. o Thus, all three color components either do not apply MRL or apply MRL using the same reference line.
  • the decoder parses a flag that indicates whether MRL is used for that component or not.
  • the decoder parses a flag that will indicate which reference line shall be used at the given component level.
  • the coding tool [MRL] may involve, for each array of samples of the first predetermined block 18' of the first partitioning 25' and second predetermined block 18" of the second partitioning 25", for which MRL is to be applied, an intra prediction of the respective array of samples from a portion formed by previously decoded samples (17'''a, 17'''c) which are defined in the space component of the respective array of samples and are distanced from the first and second predetermined block 18', 18" by a distance determined by a distance parameter (17acc and/or 17ccc) [which may be an example of the predetermined tool parameter 82] signalled in the data stream 12.
  • the decoder may retrieve (or the encoder may defined) the position of the portion (17''c, 17'''a, “reference line”) by counting a number of rows or columns of samples to be skipped in the at least one previously predicted block (17a-17c) to arrive at the portion (17"c, 17"'a), wherein the number of rows or columns of samples to be skipped is obtained from (or written onto) at least one tool parameter obtained in the signaling (82) of the data stream (12).
  • the decoder may retrieve (or the encoder may define) the position of a portion (17''c, 17'''a) by measuring a distance [e.g.
  • the distance may be obtained from, or written onto, at least one tool parameter obtained in the signaling of the data stream.
  • cross prediction tool decoder may: use the at least one tool parameter (82, 17ccc, 17acc) indicating the reference line to be used for the intra prediction for applying MRL to the first predetermined block 18' (e.g., luma component or green component), and modify the at least one tool parameter for the second predetermined block 18'' (e.g., chroma components or red and blue components) in case of the first and second tree-based partitionings (25', 25'') being separate partitionings; and use the same tool parameter (82, 17ccc, 17acc) indicating the reference line to be used for the intra prediction for applying MRL to both the first and second predetermined block 18', 18", in case of the first and second tree-based partitionings (25', 25'') being a single partitioning.
  • the at least one tool parameter (82, 17ccc, 17acc) indicating the reference line to be used for the intra prediction for applying MRL to both the first and second predetermined block 18', 18"
  • a default value may be used.
  • the encoder may refrain from encoding the modified value of the at least one tool parameter, and the decoder will understand which default value to be used from the fact that two partitionings are used combined to the presence of direct mode (cross prediction tool).
  • Fig. 5 shows a block 18 (which may be one of the first and second predetermined blocks 18' and 18") which is predicted from neighboring blocks 17a, 17b, 17c (which have been predicted in a previous iteration).
  • a block 18 which may be one of the first and second predetermined blocks 18' and 18" which is predicted from neighboring blocks 17a, 17b, 17c (which have been predicted in a previous iteration).
  • neighboring blocks 17a, 17b, 17c which have been predicted in a previous iteration.
  • only the adjacent portions 17'a, 17'c and (in some cases) 17'b may be used.
  • an inter prediction mode is based on a matrix multiplication as in Fig. 6.
  • the Q values of the block 18 (18', 18'') may be in the spatial domain (e.g., pixels) or in the transform domain (e.g., DCT, etc.).
  • the Q values of the block 18 (18', 18'') may be predicted on the basis of P values taken from the neighboring blocks 17a-17c, which are adjacent to the block 18 (and in particular to its boundaries 18a and 18c).
  • the neighboring blocks 17a-17c may be in the closest positions (e.g., adjacent) to the block 18 (18', 18'').
  • the P values of the neighboring blocks 17a-17c have already been processed and predicted.
  • the P values are indicated as values in portions 17'a-17'c, to distinguish them from the blocks they are part of (in some examples, 17'b is not used).
  • the Q samples of the predetermined blocks 18 (18', 18'') may be obtained by multiplication of a vector 17P (having P entries, each entry being an element of the neighbouring, adjacent portions 17'a -17'c) multiplied by a QxP matrix 17M which has Q lines (one for each sample of the block 18 to be predicted) and P columns (one for each of the values of the neighboring blocks, or a subset thereof).
  • the prediction may be obtained by multiplication
  • the QxP matrix 17M may be obtained among a set of predetermined matrixes (the matrixes can be stored in a non-transitory memory unit and may be known by both the encoder and the decoder).
  • the matrixes may be indexed (e.g., every matrix may be associated to a particular number known by both the encoder and the decoder) and may be indicated in signaling 82, for example.
  • the matrixes may be obtained by offline training and the decision of which matrix is to be used is made by the encoder, so that the decoder may apply the same prediction by using the same matrix 17M.
  • the index may therefore be part of the signaling 82 (e.g. in the at least one tool parameter).
  • the different matrixes are in general associated to different MIP prediction modes, known as planar mode, DC mode, etc.
  • 67 modes e.g. those modes known as DC mode, planar mode, and 65 directional modes (see, for example, HEVC).
  • MIP modes are used e.g. for luma components, but they may be avoided for chroma components.
  • MIP allows the usage of new intra prediction modes that are calculated via a matrix multiplication. These modes may have been trained offline to adapt to the statistics of intra predicted blocks. There may be a flag at the block level to indicate whether MIP is used or not, and then there is another syntax element, which codes which MIP mode is going to be used.
  • Some of the present examples allow MIP for three 4:4:4 components.
  • Some possible signaling schemes are outlined in the following:
  • the decoder parses one single flag to indicate whether MIP is used or not for all three color components.
  • the decoder parses a flag that indicates whether MIP is used for that component or not
  • Another example may refer to the Mixed block/component level:
  • the decoder parses one single flag to indicate whether MIP is used or not at the block level
  • the decoder parses a flag that will indicate which MIP mode shall be used at the given component level.
  • Another example may refer to the Direct mode case (which may be a case of implementing the cross-component tool)
  • the decoder parses a flag for the first or main component (e.g. luma in YUV or G in RGB) to indicate its usage on the first or main component. Then, the corresponding MIP mode that will be used for this component is also parsed.
  • the first or main component e.g. luma in YUV or G in RGB
  • the secondary components e.g. chroma components in YUV or R and B in RGB
  • the Direct Mode which implies a copy of the mode of the main component
  • the main component is using MIP
  • the secondary components will utilize MIP with the same mode employed by the main component in the co-located block.
  • the secondary components can only copy the MIP mode if they have the same MipSizeld, given that the interpretation of the mode (and the number of modes) depends on this variable, which in turn depends on the block size. In the 444 Single tree case, the block and the co-located block always have the same MipSizeld.
  • the application of the direct mode (cross-prediction tool) to MIP may imply, particularly in the direct mode case, different behaviors whether we are in the situation of the single tree (as in Fig. 9.1) or in dual tree (as in Fig. 9.2), or, said in another way, whether the first and second partitionings are the same or are different partitionings (e.g. whether the partitionings 25' and 25" of Fig. 9.2 are the same partitioning or are different partitionings).
  • the at least one tool parameter used for indicating which prediction matrix is to be chosen among (together with) the plurality of pre-stored prediction matrixes may be used either only for one partitioning (e.g., for the luma component only) or for both the partitionings in case the two partitionings are the same (and the blocks 18 are coincide with each other).
  • the prediction matrix chosen for one component e.g., luma component for the predetermined block 18
  • the other components e.g., luma and chroma
  • both the encoder and the decoder have knowledge of the pre-stored matrixes.
  • the same may apply, in the RGB space, for the green, red, and blue color components, in which the green component plays the role of the luma component.
  • the direct mode case i.e. , the cross component tool is activated
  • the first partitioning 25' e.g., luma component or green component
  • the tool parameter will be modified for the second partitioning 25'' (e.g., chroma components or red components and blue components).
  • a default prediction mode can be chosen.
  • the planar mode can be chosen for the second partitioning 25''.
  • a decoder/encoder which reads/writes a signalling (e.g. 81) in the data stream (e.g. 12) which indicates whether the first and second tree-based partitionings (25', 25") are a single partitioning or separate partitionings.
  • a cross- prediction tool e.g., direct mode
  • the predetermined coding tool [MIP] may involve a prediction matrix (17M) chosen among a plurality of prediction matrixes, the prediction matrix (17M) being chosen according to the at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed according to a particular pre-defined indexing, and the signalling may encode the index].
  • the predetermined coding tool [MIP] may involve, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples.
  • the pre-stored prediction matrix (17M) may be pre-stored among a plurality of pre-stored prediction matrixes.
  • the at least one tool parameter may indicate which pre-stored prediction matrix (17M) is to be used.
  • both the cross-prediction tool is applied and the first and second tree-based partitionings are a single [same] partitioning, it is possible to apply the same prediction matrix (17M) for all the arrays of samples of the first predetermined block and the second predetermined block.
  • both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, it is possible to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (17M) different from the prediction matrix (17M) used for the prediction of the first predetermined block.
  • the second prediction matrix (default matrix) may correspond to a planar mode, and the modified parameter therefore may point to the planar mode.
  • the decision whether to apply the cross-prediction tool or not is encoded in the signalling of the datastream. Hence, the decoder will know whether the cross-prediction tool is to be used or not.
  • the decision whether to apply the cross-prediction tool or not may be bade on a block base. There may be, for example, a syntax element which may define, for the second partitioning 25", whether the direct mode (cross-prediction tool) is to be used or not.
  • the syntax element indicates that the direct mode (cross-prediction tool) is to be used for the second partitioning 25", then the same tool parameter used for the first partitioning 25' will be used also for the second partitioning 25 otherwise the parameter modification will be carried out (e.g., using a default parameter).
  • a block 18 (which may be one of the first and second predetermined block 18' and 18'' of Figs. 9.1 and 9.2) divided into partitions 18-1 to 18-4 which are obtained from a already predicted neighbouring samples 17.
  • ISP may divide an intra predicted block into 2 or 4 (or different numbers of) partitions horizontally or vertically, where the number of partitions depend on the block dimensions. Each of these partitions is treated like a normal block. Therefore, the reconstructed samples of each partition can be used to generate the prediction of the next partition.
  • the decoder parses one single flag to indicate whether ISP is used or not for all three color components.
  • the decoder parses a flag that indicates whether ISP is used for that component or not
  • the decoder parses one single flag to indicate whether ISP is used or not at the block level
  • the decoder parses a flag that will indicate which ISP split type shall be used at the given component level.
  • the present examples allow an Adaptive Color Transform (ACT) in combination with ISP.
  • ACT Adaptive Color Transform
  • all three components will use the same ISP split type and the color transform will be applied on a partition basis. For example, if a 16x16 block of a sequence coded in RGB uses the color transform and performs the vertical ISP split, then each component will be divided into four 4x16 partitions:
  • the color transform will be applied first on (R1, B1, G1). Then, after the reconstructed samples have been generated for the 3 components, a prediction will be generated for (R2, B2, G2) and the color transform will be applied on it, etc.
  • the intra prediction can be applied to the complete, non-split block (e.g. 8x16) while the block is split into four 2x16 blocks to transform the prediction residual.
  • the complete, non-split block e.g. 8x16
  • predetermined coding tool may involve, for each array of samples of the first and/or second predetermined block for which the ISP is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4).
  • the decoder/encoder may perform the intra-prediction (44, 44'), at first, for a first partition (18-1) and, after the intra-prediction [e.g.
  • the first partition (18-1) may perform a prediction on a second partition (18-2) (e.g. adjacent to the first partition).
  • the prediction of the second partition (18-2) may be at least partially based on the prediction of first partition (18-1). This procedure reiterates up to the end of the blocks.
  • MIP may be used.
  • the division into subblocks is subjected to a particular criterion (e.g., the subdivision is performed
  • first and second predetermined block 18', 18'' are divided into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual coding.
  • partitions e.g. subblocks
  • ISP may involve, for each array of samples of the first and/or second predetermined block (18', 18''), an intra prediction from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (18', 18'').
  • partitions e.g. subblocks] (18-1, 18-2, 18-3, 18-4
  • intra-prediction 44, 44'
  • the predetermined criterion may involve, for example, the comparison of the number of one or both dimensions of the first or second predetermined block 18', 18'' with a predetermined threshold, so as to divide the first or second predetermined block 18', 18" into a plurality of subblocks in case of the comparison indicating that the dimension(s) is(are) greater than the predetermined threshold.
  • the different partitions of a same block may be distinguished from each other also in other units of the encoder/decoder. It is possible to perform an entropy encoding/decoding (56) in which the first and/or second predetermined block (18', 18") is divided into partitions (18- 1 to 18-4); and/or in which the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples. It is also possible to perform a quantization/dequantization (38') in which the first and/or second predetermined block (18', 18'') is divided into partitions e.g.
  • the first and/or second predetermined block (18') is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples. It is also possible to perform a transformation/inverse transformation in which the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the least one first array (19-G, 19-Y) of samples; and/or the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
  • the prediction may be performed for the entire first or second predetermined block (18', 18''), i.e. including all the partitions of the block.
  • the first partition (18-1) may neighbor at least one first (17c) of the previously predicted blocks, while the second partition (18-2) may neighbor the first partition (18-1).
  • the first partition (18-1) may be interposed between the second partition (18-2) and the at least one first (17c) of the previously predicted blocks, so that the second partition (18-2) does not neighbor the at least one first (17c) of the previously predicted blocks.
  • the second partition (18-2) may not neighbor the at least one first (17c) of the previously predicted blocks may neighbor at least one second (17c) of the previously predicted blocks.
  • the prediction of the second one (18-2) of the partitions of the first and second predetermined block 18', 18'' it is possible to perform a prediction on a third one (18-3) of the partitions, wherein the prediction of the third one (18-3) of the partitions may be at least partially based on the prediction of the second one (18-2) of the partitions. It is possible, after the prediction of the third one (18-3) of the partitions, to perform a prediction on a fourth one (18-4) of the partitions, wherein the prediction of the fourth one (18-4) of the partitions is at least partially based on the prediction of the third one (18-3) of the partitions.
  • Each [or at least one] of the partitions 18-1 to 18-4 may have a horizontal dimension larger than the vertical dimension [e.g. rectangular partition]. In other cases, each [or at least one] of the partitions 18-1 to 18- may beave a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
  • At least one first and/or second predetermined block (18', 18'') may be a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and may be partitioned in rectangular partitions (e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions).
  • each partition 18-1 to 18-4 may have one dimension (e.g. horizontal or vertical) equal to one respective dimension of the square first and/or second predetermined block (18) (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g.
  • each of the partitions may have a vertical dimension equal to the horizontal dimension [e.g. square partition].
  • the partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4) on the basis of signalling (82), e.g. the at least one tool parameter from the data stream (12).
  • signalling e.g. the at least one tool parameter from the data stream (12).
  • the at least one tool parameter as obtained from (or written into) the signalling is only used for one component (e.g., luma component or green component), while the at least one tool parameter is modified when the dual tree partitioning is used, despite the direct mode (cross prediction tool) is used.
  • the modification of the at least one tool parameter may provide a default value, which is therefore used for the remaining color components (e.g., chroma components, red and blue components).
  • the at least one tool parameter may therefore define the number of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4) [e.g. at least one tool parameter], so that the first or second predetermined block (18', 18'') is divided into the number of partitions obtained from the at least one tool parameter (but, when the at least one tool parameter is modified, then a different tool parameter will be used).
  • partitions e.g. subblocks] (18-1, 18-2, 18-3, 18-4) [e.g. at least one tool parameter]
  • the subdivision among vertical or horizontal dimension may be based on eh at least one tool parameter (but when there is the modification of the at least one tool parameter, then for some color components a different value may be used, e.g. a default value).
  • the plurality of partitions [e.g. subblocks] (18-1 , 18-2, 18-3, 18-4) may have the same area [e.g. apart from rounding errors].
  • the number of partitions may be a power of 2 (e.g., 2, 4, 8, 16).
  • the number of partitions may be chosen selectively (e.g. among two or four) e.g. as indicated in the at least one parameter. For example, it may be selectively decided on the basis of the dimension(s) of the predetermined block (81).
  • the ISP may further include subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis. For each array of samples of the plurality of arrays of samples, the same subdivisions into partitions may be carried out.
  • the number of partitions may depend on at least one of the dimensions of the first and second predetermined block (18', 18"). In particular, the larger one dimension [horizontal and/or vertical] of the first and/or second predetermined block (18', 18''), the higher the number of partitions [e.g. blocks with larger size will have more partitions]. It is possible to apply the ISP in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool. Alternatively, it is possible to apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • a multi-stage transform may be signalled in the at least one parameter (82).
  • the same parameter may be chosen that has been used for the co-Iocated block 18' in the first partitioning 25'.
  • MTS may be configured to derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform T 1 (which may be a DCT-Il, DST-VIl or DCT-VIII).
  • a secondary transform T 2 e.g. LFNST
  • LFNST is applied to a sub-area 18.2 of the block 18 after having been subjected to the primary transform T 1 .
  • only the little sub-area 18.2 is subjected to the secondary transform T 2 while the whose area of block 18 is subjected to primary transform T 1 .
  • the at least one tool parameter may indicate, for example, which transforms are used.
  • MTS allows the utilization of different pairs of separable transforms (one in horizonal and one in vertical direction) other than (DCT-II, DCT-II). For example, (DST-VIl, DST-VIl) or (DCT-VIII, DCT-VIII).
  • DCT-II separable transforms
  • DCT-II DCT-II
  • DST-VIl DST-VIl
  • DCT-VIII DCT-VIII
  • Block level o
  • the decoder parses a syntax element to indicate which transform pair is used. o All three color components use the same transform pair.
  • the decoder parses a syntax element to indicate which transform pair is used on the given component.
  • the primary transform may be a separable transform.
  • the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VIl and the DCT-VIII.
  • transformskip no transform
  • the secondary transform T 2 may be a non-separable transform.
  • the secondary transform may be, e.g., a data-driven (e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
  • a cross-prediction tool direct mode
  • modify the tool parameter (82) e.g., indicating which primary transform T 1 and/or which secondary transform T 2 is to be used
  • modify the tool parameter (82) e.g., indicating which primary transform T 1 and/or which secondary transform T 2 is to be used
  • a default parameter is chosen (e.g., the primary and secondary transforms T 1 and T 2 may be default transforms.
  • the same parameter may be chosen that has been used for the co-located block 18' in the first partitioning 25'.
  • SBT divides the corresponding block of prediction residual samples into 2 subblocks of residuals with a ratio of 50:50 or 25:75. In both cases, only one of the subresiduals (the smallest one) is signaled and the other one is assumed to not have transformed residual samples, i.e. typically indicated by a coded block flag (CBF) equal to zero.
  • CBF coded block flag
  • the division can be horizontal or vertical. It may be allowed, in some examples, the usage of SBT in all three 4:4:4 color components.
  • Block level o The decoder parses one single flag to indicate whether SBT is used or not. o If it is used, then the remaining SBT parameters (split orientation and ratio) are parsed and used jointly for all the color components. o Thus, ail three color components either do not apply SBT or apply SBT using the same parameters. • Component level o For each component,
  • the decoder parses a flag that indicates whether SBT is used for that component or not.
  • the decoder parses one single flag to indicate whether SBT is used or not at the block level, o If it is used, then for each component,
  • the decoder the remaining SBT parameters (split orientation and ratio) that shall be used at the given component level.
  • SBT may involve, for each array of samples of generic block 18, an inter prediction in which there is a restriction to a reduced transform area 18.R, while inferring a remaining transform area to have sample values which are equal to zero.
  • the dimensions of the reduced area 18.R with respect to the dimensions of the block (1) may have a ratio of 50:50 or 25:75, for example.
  • the tool parameter (signalling) may include dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area 18.R and the block 18.
  • Signalling (81 ) in the data stream (12) may provide an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the primary transform may be chosen by (or written onto) the at least one coding tool, so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (e.g. flag 81) in the data stream (12).
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding toot is activated, a particular multi-stage transform.
  • SBT may involve, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (18.R) with inferring a remaining transform area to be equal to zero.
  • the dimensions of the reduced area (18.R) with respect to the dimensions of the first or second predetermined block (18', 18") may have a ratio of 50:50 or 25:75 (and the choice may be signalled in the at least one tool parameter).
  • the at least one data stream (82) may indicate dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area (18.R) and the first or second predetermined block (18', 18").
  • CABAC context-based adaptive binary arithmetic coding
  • the decoder may be configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
  • the determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the first or second predetermined block may be possible, for the first or second predetermined block, to: decode, for each array of samples of the first or second predetermined block, the at least one coding parameter from the data stream (12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
  • the determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith.
  • the decoder may use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter. It is possible to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
  • the same parameter may be chosen that has been used for the co-located block 18' in the first partitioning 25'.
  • luma is used to indicate the first component which, in case of YUV, can be luma Y or, in case of RGB, can be color G.
  • chroma which, in case of YUV, can be chroma Cb/Cr or, in of RGB, can be color B/R.
  • the configuration of the “luma only” coding tools to the chroma components are as described in the previous sections.
  • the configuration of the “luma only" coding tools to the chroma components are as described in the previous section, and depends on a further high-level signaling technique identifying whether the current signal is RGB or not (see for example Fig. 7.4).
  • the application of the “luma only” coding tools may depend, as in Fig. 7.5, on the coding tree that is employed for chroma, e.g. a separate tree-based block partitioning for chroma components.
  • the application of the luma only” coding tools may depend on the coding tree that is employed for chroma. In the case of a single tree, the coding tools are not applied to the chroma components, whereas in the case of a separate tree, the coding tools are applied as described (see also Fig. 7.5).
  • the application of the “luma only” coding tool(s) depends on the coding tree that is employed for chroma.
  • the coding tools are applied as described, but may include the information of the luma tree for the signaling process and/or reduction of the coding tool parameters.
  • the configuration of the “luma only” coding tools to the chroma components are as described in the previous section(s) and includes the condition on the application of a cross-component prediction coding tool. If a cross-component prediction tool is applied, the signaling process and/or the coding tool parameters are modified due to changing signal characteristics.
  • luma only tools are the tools that traditionally are used only for luma components but, with the present proposal, may be applied, e.g. selectively, to any component (e.g. also U and V or components of other color spaces, such as R, G, B components).
  • any component e.g. also U and V or components of other color spaces, such as R, G, B components.
  • direct mode cross prediction tool
  • the tool parameter will be used for predicting the first predetermined block 18', but will be modified for predicting the second predetermined block 18" (e.g., a default parameter will be used for the predetermined block 18'') -
  • the tool parameter in the second signalling 82 is used for predicting both the first predetermined block 18' and the second predetermined block 18".
  • the first partitioning may be often associated to the luma component or the green component, while the second partitioning may be associated to the chroma components and/or the red and blue components, respectively.
  • the decision whether to apply the cross-prediction tool or not is encoded in the signalling of the datastream. Hence, the decoder will know whether the cross-prediction tool is to be used or not.
  • the decision whether to apply the cross-prediction tool or not may be bade on a block base. There may be, for example, a syntax element which may define, for the second partitioning 25", whether the direct mode (cross-prediction tool) is to be used or not.
  • the syntax element indicates that the direct mode (cross-prediction tool) is to be used for the second partitioning 25'', then the same tool parameter used for the first partitioning 25' will be used also for the second partitioning 25", otherwise the parameter modification will be carried out (e.g., using a default parameter).
  • a decoder for block-wise decoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one
  • a predetermined block e.g., 18
  • the decoder (e.g., 54) may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19- Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the decoder (e.g., 54) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
  • the decoder e.g., 54
  • the decoder may be configured to selectively determine (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
  • the plurality of arrays e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V
  • the decoder may be further configured to choose (e.g., 181; 181 181 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples on the basis of signaling (e.g., 81) from the data stream (e.g., 12).
  • choose e.g., 181; 181 181 181V
  • the decoder may be such that the signaling from the data stream (e.g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g, encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag in some cases indicated as “High Level Syntax flag”, e.g, encoded in one single bit valid for each of the plurality of arrays
  • the decoder may be such that the signaling from the data stream (e.g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB), wherein the signalling (e.g., 81) includes signalling choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), so as to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19- U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for
  • the decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the decoder (e.g., 54) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e
  • the decoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the first color space e.g., YUV
  • the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the decoder may be such that in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
  • the second color space e.g., RGB
  • the decoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays.
  • the array e.g., 19-Y
  • the other arrays e.g., 19-U, 19-V
  • the decoder may be configured to activate the coding tool for alt the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
  • the arrays e.g., 19-R, 19- G, 19-B
  • the decoder may be configured to deactivate the coding tool for all the arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the decoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the decoder may be configured to read at least one tool parameter (e.g,, 82) from the bitstream (e.g., 12), and to implement the coding tool using the at least one tool parameter (e.g., 82) [e.g., e.g. read in the data stream].
  • the decoder may be configured to: read the signalling (e.g., 81) in the data stream (e.g., 12); and at the determination that the at least one tool is to be applied to at least one array of samples, search, in further signalling (e.g., 82) of the data stream (e.g., 12), the at least one tool parameter (e.g., 82) to be applied to the coding tool.
  • the decoder may be such that the at least one tool parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B).
  • the at least one tool parameter e.g., 82
  • the decoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
  • the at least one tool parameter e.g., 82
  • the decoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
  • the at least one tool parameter includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array
  • the decoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
  • the at least one tool parameter e.g., 82
  • the third parameter for the third array e.g., 19-V
  • the decoder may be such that the decoder is configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • signalling e.g., 81
  • the data stream e.g., 12
  • an indication e.g., e.g. associated to a choice
  • the decoder may be such that the decoder is configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
  • the decoder may be such that the decoder is configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the decoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously decoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream, [e.g., the mode may be applied, for example, in the transform domain]
  • a distance parameter e.g., 82
  • the decoder may be configured to retrieve the position of the subportion (e.g., 17"c, 17''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g., 17a-17c) to arrive at the subportion (e.g., 17"c, 17'''a), wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g.
  • the at least one previously predicted block e.g., 17a-17c
  • the boundary e.g., 18a, 18c
  • the predetermined block e.g., 18
  • the predetermined block e.g., 18
  • the distance is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12).
  • the decoder may be such that at least one coding tool [e.g., e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously decoded samples.
  • at least one coding tool e.g., e.g. MIP
  • the decoder may be such that the prediction matrix (e.g., 17M) is pre-stored in a non- transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix (e.g., 17M) is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g., e.g. the matrix may be indexed, and the signalling may encode the index].
  • the prediction matrix e.g., 17M
  • the prediction matrix e.g., 17M
  • the decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks] e.g., 18-1 , 18-2, 18-3, 18-4
  • the decoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the decoder is configured, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
  • the at least one coding tool may involve, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
  • partitions e.g., e.g. subblocks
  • the decoder may be such that the at least one coding toot [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks e.g., 18-1 , 18-2, 18-3, 18-4
  • performing the intra-prediction e.g., 44'
  • a first one e.g., 18-1 of the partitions
  • the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions performing a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18- 2) of the partitions is at least partially based on the prediction [e.g., e.g.
  • a predetermined criterion e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • partitions e.g., e.g. subblocks
  • the decoder may be further configured to: perform an entropy decoding (e.g., 56) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding (e.g., 56) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • an entropy decoding e.g., 56
  • the decoder may be further configured to: perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • a dequantization e.g., 38'
  • the predetermined block e.g., 18
  • partitions e.g. for the at least one second array
  • the decoder may be further configured to: perform an inverse transformation in which the predetermined block (e.g., 18) is divided into partitions e.g. for the least one first array (e.g., 19-G, 19-Y) of samples; and/or perform an inverse transformation in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the decoder may be such that the prediction (e.g., 44') is performed for the entire predetermined block (e.g., 18).
  • the decoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
  • the decoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
  • the decoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
  • the decoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
  • the decoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
  • the decoder may be configured to iterate the prediction of a subsequent partition (e.g., 18- 2) after the prediction (e.g., 44') of a previously predicted partition (e.g., 18-1).
  • the decoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g., e.g. rectangular partition].
  • the decoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g., e.g. rectangular partition].
  • the decoder may be such that the predetermined block (e.g., 18) is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 partitions or four 16x4 partitions or four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g., 18) (e.g., e.g. 16 or 8), and the other dimension (e.g., e.g.
  • the decoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
  • the decoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18- 2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12).
  • partitions e.g., e.g. subblocks
  • signalling e.g., 82
  • tool parameter from the data stream (e.g., 12).
  • the decoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12), the signalling (e.g., 82) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to divide the predetermined block (e.g., 18) into the number of partitions obtained from the signalling (e.g., 82).
  • signalling e.g., 82
  • the signalling e.g., 82
  • the decoder is configured to divide the predetermined block (e.g., 18) into the number of partitions obtained from the signalling (e.g., 82).
  • the decoder may be configured to divide the predetermined block (e.g., 18) into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as signalled in the signalling (e.g., 82).
  • partitions e.g., 18-1 , 18-2, 18-3, 18-4
  • the decoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) so that the partitions [e.g., sublocks] (e.g., 18-1, 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors].
  • the number of partitions may be a power of 2.
  • the decoder may be such that the number of partitions is selectively chosen (e.g., e.g, among two or four) by the signalling (e.g., 82).
  • the decoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the predetermined block (e.g., 18),
  • the decoder may be configured to compare at least one dimension of the predetermined block (e.g., 18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block (e.g., 18) being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4],
  • the decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • the decoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block (e.g., 18).
  • the decoder may be such that the larger one dimension [e.g., horizontal and/or vertical] of the predetermined block (e.g., 18), the higher the number of partitions [e.g., e.g. blocks with larger size will have more partitions].
  • the decoder may be configured to apply the at least one coding tool in case the block has at least one dimension (e.g., e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • at least one dimension e.g., e.g. horizontal or vertical
  • the decoder may be configured to apply the at least one coding tool in case the block has at least both dimensions (e.g., e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the at least one coding tool may be configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T 1 ), wherein a secondary transform (e.g., T 2 ) is applied to a sub-area (e.g., 18.2) of the predetermined block (e.g., 18) after having subjected to the primary transform (e.g., T 1 ).
  • a primary transform e.g., T 1
  • a secondary transform e.g., T 2
  • the decoder may be such that the primary transform is a separable transform, [e.g., The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII.
  • transformskip e.g., no transform
  • transformskip can also be used as a primary transform
  • the decoder may be such that the primary transform is a DCT-II.
  • the decoder may be such that the primary transform is a DST-VII or DCT-VIII.
  • the decoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the decoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (e.g.,
  • the decoder may be such that the multi-stage transform is signalled in signalling (e.g., 82) of the data stream (e.g., 12).
  • the decoder may be such that the primary transform is chosen by the at least one coding tool on the basis of signalling (e.g., 82) in the data stream (e.g., 12), so that one single multi- stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (e.g., 81) in the data stream (e.g., 12).
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the decoder may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (e.g., 18.R) with inferring a remaining transform area to be equal to zero.
  • a reduced transform area e.g., 18.R
  • the decoder may be such that the dimensions of the reduced area (e.g., 18. R) with respect to the dimensions of the predetermined block (e.g., 18) have a ratio of 50:50 or 25:75.
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18.R) and the predetermined block (e.g., 18).
  • the decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), one single parameter on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • signalling e.g., 82
  • the data stream e.g., 12
  • a reduced area e.g., 18.R
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • signalling e.g., 82
  • the data stream e.g., 12
  • a plurality of parameters on dimensional and/or positional relationships between the predetermined block e.g., 18
  • a reduced area e.g., 18.R
  • the decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the decoder may be configured to, for the predetermined block, decode, for each array of samples of the predetermined block (e.g., 18), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
  • the decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
  • the decoder may be configured to, for the predetermined block, decode, for each array of samples of the predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
  • a parameter from the data stream e.g., 12
  • the decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
  • the decoder may be such that wherein the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
  • the decoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component
  • the decoder may be such that the color components form a luma-chroma based color space.
  • the decoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
  • a picture e.g., 10 from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one first space component (e.g., G; 19-Y);
  • a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform according to any of the examples discussed above and below.
  • an encoder for block-wise encoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one first
  • the encoder may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the encoder (e.g., 14) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
  • the encoder e.g., 14
  • the encoder may be configured to selectively determine (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
  • the plurality of arrays e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V
  • the encoder may be further configured to choose (e.g., 181; 181 Y, 181U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19-
  • the encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays
  • the encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB), wherein the encoder is further configured to write signalling (e.g., 81) choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), and: in case of choice of the first color space (e.g., YUV), to activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool
  • the encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the encoder (e.g., 14) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g
  • the encoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the first color space e.g., YUV
  • the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the encoder may be such that in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
  • the second color space e.g., RGB
  • the encoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays.
  • the encoder may be configured to activate the coding tool for all the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
  • the encoder may be configured to deactivate the coding tool for all the arrays (e.g., 19-U,
  • the encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the encoder may be configured to implement the coding tool using the at least one tool parameter (e.g., 82) and to write the at least one tool parameter (e.g., 82) onto the bitstream (e.g., 12)[e.g., e.g. to be read by the decoder from the data stream].
  • the at least one tool parameter e.g., 82
  • the bitstream e.g., 12
  • the encoder may be configured to: write the signalling (e.g., 81) in the data stream (e.g., 12); and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling (e.g., 82) of the data stream (e.g., 12), the at least one tool parameter (e.g., 82) to be applied to the coding tool.
  • the signalling e.g., 81
  • the data stream e.g., 12
  • the at least one tool parameter e.g., 82
  • the encoder may be such that the at least one tool parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B).
  • the at least one tool parameter e.g., 82
  • the encoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
  • the at least one tool parameter e.g., 82
  • the encoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
  • the at least one tool parameter includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (
  • the encoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
  • the at least one tool parameter e.g., 82
  • the third parameter for the third array e.g., 19-V
  • the encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • an indication e.g., e.g. associated to a choice
  • the encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
  • an indication e.g., e.g. associated to a choice
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the encoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream (e.g., 12). [e.g., the mode may be applied, for example, in the transform domain]
  • a distance parameter e.g., 82
  • the mode may be applied, for example, in the transform domain
  • the encoder may be configured to retrieve the position of the subportion (e.g,, 17''c, 17''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g., 17a-17c) to arrive at the subportion (e.g., 17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g.
  • the at least one previously predicted block e.g., 17a-17c
  • the boundary e.g., 18a, 18c
  • the predetermined block e.g., 18
  • the predetermined block e.g., 18
  • the encoder may be such that at least one coding tool [e.g., e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
  • at least one coding tool e.g., e.g. MIP
  • the encoder may be such that the prediction matrix (e.g., 17M) is pre-stored in a non- transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix (e.g., 17M) is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g., e.g. the matrix may be indexed, and the signalling may encode the index].
  • the prediction matrix e.g., 17M
  • the prediction matrix e.g., 17M
  • the encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the encoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the encoder is configured, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
  • the prediction e.g., e.g. predicted value(e.g., s)
  • the encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
  • the at least one coding tool e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded
  • the encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks e.g., 18-1, 18-2, 18-3, 18-4
  • performing the intra-prediction e.g., 44'
  • first one e.g., 18-1
  • 18-2 e.g., 18-3
  • 18-4 performing the intra-prediction
  • the prediction e.g., 44'
  • the prediction of the second one e.g., 18- 2
  • the partitions is at least partially based on the prediction [e.g., e.g.
  • a predetermined criterion e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • partitions e.g., e.g. subblocks
  • the encoder may be further configured to: perform an entropy encoding (e.g., 28b) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding (e.g., 28b) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • an entropy encoding e.g., 28b
  • the encoder may be further configured to: perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the encoder may be further configured to: perform a transformation [e.g., e.g. DCT, etc.] in which the predetermined block (e.g., 18) is divided into partitions e.g.
  • the least one first array e.g., 19-G, 19- Y
  • a transformation e.g., e.g. DCT, etc.
  • the predetermined block e.g., 18
  • partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the encoder may be such that the prediction (e.g., 44) is performed for the entire predetermined block (e.g., 18).
  • the encoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
  • the first partition e.g., 18-1
  • the second partition e.g., 18-2 neighbours the first partition (e.g., 18-1).
  • the encoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
  • the encoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
  • the second partition e.g., 18-2
  • the second partition does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
  • the encoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
  • the encoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
  • the encoder may be configured to iterate the prediction of a subsequent partition (e.g., 18- 2) after the prediction (e.g., 44) of a previously predicted partition (e.g., 18-1).
  • the encoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension.
  • the encoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension.
  • the encoder may be such that the predetermined block (e.g., 18) is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g., 18) (e.g., e.g. 16 or 8), and the other dimension (e.g., e.g.
  • the encoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
  • the encoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1, 18- 2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12).
  • partitions e.g., e.g. subblocks
  • signalling e.g., 82
  • tool parameter from the data stream (e.g., 12).
  • the encoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) and to write signalling (e.g., 82) [e.g., e.g. at least one tool parameter] in the data stream (e.g., 12), the signalling (e.g., 82) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the encoder is configured to divide the predetermined block (e.g., 18) into the defined number of partitions.
  • signalling e.g., 82
  • the encoder is configured to divide the predetermined block (e.g., 18) into the defined number of partitions.
  • the encoder may be configured to divide the predetermined block (e.g. , 18) into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as signalled in the signalling (e.g., 82).
  • the encoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) so that the partitions [e.g., subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors].
  • the encoder may be such that the number of partitions is a power of 2.
  • the encoder may be such that the number of partitions is selectively chosen among two or four by the signalling (e.g., 82).
  • the encoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the predetermined block (e.g., 18).
  • the encoder may be configured to compare at least one dimension of the predetermined block (e.g., 18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block (e.g., 18) being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4]
  • a respective threshold e.g., e.g., no ISP for blocks of size equal to or less than 4x4
  • the encoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • ACT adaptive color transform
  • the encoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block (e.g., 18).
  • the encoder may be such that the larger one dimension [e.g., horizontal and/or vertical] of the predetermined block (e.g., 18), the higher the number of partitions [e.g., e.g. blocks with larger size will have more partitions].
  • the encoder may be further configured to apply the at least one coding toot in case the block has at least one dimension (e.g., e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • at least one dimension e.g., e.g. horizontal or vertical
  • the encoder may be further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g., e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the encoder may be such that at least one coding tool is configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T 1 ), wherein a secondary transform (e.g., T 2 ) is applied to a sub-area (e.g., 18.2) of the predetermined block (e.g., 18) after having subjected to the primary transform (e.g,, T 1 ).
  • a primary transform e.g., T 1
  • a secondary transform e.g., T 2
  • the encoder may be such that the primary transform is a separable transform, [e.g., The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-Vll and the DCT-VIII.
  • transformskip e.g., no transform
  • the encoder may be such that the primary transform is a DCT-II.
  • the encoder may be such that the primary transform is a DST-Vll or DCT-VIII.
  • the encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the encoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform.
  • the secondary transform may be called Low-Frequency Non-Separable Transform (e.g.,
  • the encoder may be such that the multi-stage transform is signalled in signalling (e.g., 82) of the data stream (e.g., 12).
  • the encoder may be such that the primary transform is chosen by the at least one coding tool and is written onto signalling (e.g., 82) in the data stream (e.g., 12), wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the encoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to write signalling (e.g., 81) regarding the choice in the data stream (e.g., 12).
  • the encoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the encoding may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area (e.g., 18. R) with inferring a remaining transform area to be equal to zero.
  • a reduced transform area e.g., 18. R
  • the encoder may be such that the dimensions of the reduced area (e.g., 18.R) with respect to the dimensions of the predetermined block (e.g., 18) have a ratio of 50:50 or 25:75.
  • the dimensions of the reduced area e.g., 18.R
  • the dimensions of the predetermined block e.g., 18
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18. R) and the predetermined block (e.g., 18).
  • the encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), one single parameter on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
  • signalling e.g., 82
  • the data stream e.g., 12
  • a reduced area e.g., 18.R
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples.
  • the encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the encoder may be configured to, for the predetermined block, encode, for each array of samples of the predetermined block (e.g., 18), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
  • a syntax element from the data stream e.g., 12
  • the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
  • the encoder may be configured to, for the predetermined block, encode, for each array of samples of the predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
  • a parameter from the data stream e.g., 12
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
  • the encoder may be such that the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
  • the first color component may be a luma component
  • the second color component is a chroma component Cb [e.g., the third may be a chroma component Cr].
  • the encoder may be such that the color components form a luma-chroma based color space.
  • the encoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
  • a decoder for block-wise decoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided, according to at least one first tree-based partitioning (e.g., 25') and a second tree-based partitioning (e.g., 25'') into a plurality of blocks (e.g., 18', 18") for each of the first and second tree-based partitionings (e.g., 25', 25"), wherein each of the first and second tree-based partitionings (e.g., 25', 25'') is associated to at least one color space component (e.g., Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (e.g., 25', 25''), each block (e.g., 18', 18', 18', 18
  • the decoder may be configured to further block-wise decode a further picture (e.g., 10') from the data stream (e.g., 12), wherein the further picture is divided into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component (e.g., G; Y), and least one second array of samples, defined in at least one second space component (e.g., B, U), wherein the decoder (e.g., 54) is configured to perform a prediction of the predetermined block (e.g., 18), in at least the first space component (e.g., G; Y) and the second space component (e.g., B, U), based on at least one previously predicted block (e.g., 17a-17c) neighbouring the
  • the decoder may be such that the signalling includes signalling indicating whether or not the picture (e.g., 10') or further picture (e.g., 10') is to be subdivided into a plurality of tree- based partitionings (e.g., 25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (e.g., 10'') is to be subdivided into a plurality of tree-based partitionings, the further picture (e.g., 10'') is subdivided into a plurality of tree-based partitionings.
  • the signalling includes signalling indicating whether or not the picture (e.g., 10') or further picture (e.g., 10') is to be subdivided into a plurality of tree-based partitionings (e.g., 25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (e.g., 10'')
  • the decoder may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the decoder (e.g., 54) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
  • the decoder e.g., 54
  • the decoder may be configured to selectively determine (e.g., 181; 181Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
  • the plurality of arrays e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V
  • the decoder may be further configured to choose (e.g., 181; 181Y, 181U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples on the basis of signaling (e.g., 81) from the data stream (e.g., 12).
  • choose e.g., 181; 181Y, 181U, 181V
  • the decoder may be such that the signaling from the data stream (e.g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays
  • the decoder may be such that the signaling from the data stream (e,g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first colorspace (e.g., YUV) and a color component of a second color space (e.g., RGB), wherein the signalling (e.g., 81) includes signalling choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), so as to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19- U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for
  • the decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the decoder (e.g., 54) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e
  • the decoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the first color space e.g., YUV
  • the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the decoder may be such that in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
  • the second color space e.g., RGB
  • the decoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays.
  • the decoder may be configured to activate the coding tool for all the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
  • the decoder may be configured to deactivate the coding too! for all the arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the decoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the decoder may be configured to read at least one tool parameter (e.g., 82) from the bitstream (e.g., 12), and apply the predetermined coding too! using the at least one too! parameter (e.g., 82) to predict the at least one first predetermined block [e.g., e.g. read in the data stream].
  • at least one tool parameter e.g., 82
  • the bitstream e.g., 12
  • the decoder may be configured to read at least one tool parameter (e.g., 82) from the bitstream (e.g., 12), and apply the predetermined coding too! using the at least one too! parameter (e.g., 82) to predict the at least one first predetermined block [e.g., e.g. read in the data stream].
  • the decoder may be configured to: read signalling (e.g., 81) in the data stream (e.g., 12) which indicates whether the first and second tree-based partitionings (e.g., 25', 25'') are a single partitioning or separate partitionings; and if a cross-prediction tool is applied: modify the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings (e.g., 25', 25'') being separate partitionings, and use the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (e.g., 25', 25'') being a single partitioning.
  • read signalling e.g., 81
  • the data stream e.g., 12
  • the decoder may be such that the at least one tool parameter indicates a prediction mode associated to the predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
  • the decoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
  • the decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
  • the decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from searching in the bitstream (e.g., 12) for another tool parameter for a predetermined coding tool for the second predetermined block.
  • the decoder may be configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
  • the decoder may be such that the at least one second, modified tool parameter is obtained from the signalling in the data stream.
  • the decoder may be such that the at least one second, modified tool parameter is a default parameter.
  • the decoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
  • the decoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
  • the decoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
  • the decoder may be such that the at least one tool parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B).
  • the at least one tool parameter e.g., 82
  • the decoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
  • the at least one tool parameter e.g., 82
  • the decoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
  • the at least one tool parameter includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array
  • the decoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
  • the at least one tool parameter e.g., 82
  • the third parameter for the third array e.g., 19-V
  • the decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the at least one coding tool may be a MRL.
  • the decoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter (e.g., 82) indicates the reference line.
  • the decoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the first and second predetermined block (e.g., 18', 18''), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously predicted samples which are defined in the space component of the respective array of samples and are located within a portion (e.g., 17acc, 17ccc) neighbouring the first and second predetermined block (e.g., 18', 18''), which is distanced from the first or second predetermined block at a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream, [e.g., the mode may be applied, for example, in the transform domain]
  • a distance parameter e.g., 82
  • the decoder may be configured to retrieve the position of the portion (e.g., 17''c, 17''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g., 17a-17c) to arrive at the portion (e.g., 17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g.
  • the at least one previously predicted block e.g., 17a-17c
  • the boundary e.g., 18a, 18c
  • the first or second predetermined block e.g., 18', 18
  • the distance is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12).
  • the decoder may be such that the predetermined coding tool [e.g., e.g. MIP] involves, for each array of samples of the first and second predetermined block (e.g., 18', 18'') for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples.
  • the predetermined coding tool e.g., e.g. MIP
  • the decoder may be such that the predetermined coding tool [e.g., e.g. MIP] is a MIP.230b.
  • the decoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prodiction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
  • the decoder may be such that the predetermined coding tool involves a prediction matrix (e.g., 17M) is chosen among a plurality of prediction matrixes, wherein the prediction matrix (e.g., 17M) is chosen according to the at least one tool parameter on the basis of signalling indicating the matrix [e.g., e.g. the matrix may be indexed, and the signalling may encode the index].
  • a prediction matrix e.g., 17M
  • the prediction matrix e.g., 17M
  • the decoder may be such that the predetermined coding tool [e.g., e.g. MIP] involves, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples.
  • the predetermined coding tool e.g., e.g. MIP
  • the decoder may be such that the prediction matrix (e.g., 17M) is pre-stored together with [e.g., among] a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix (e.g., 17M) is to be used.
  • the prediction matrix e.g., 17M
  • the at least one tool parameter indicates which pre-stored prediction matrix (e.g., 17M) is to be used.
  • the decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix (e.g., 17M) for all the arrays of samples of the firs predetermined block and the second predetermined block.
  • the same prediction matrix e.g., 17M
  • the decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (e.g., 17M) different from the prediction matrix (e.g., 17M) used for the prediction of the first predetermined block.
  • the second prediction matrix e.g., 17M
  • the decoder may be such that the second prediction matrix correspond to a planar mode.
  • the decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks] e.g., 18-1, 18-2, 18-3, 18-4
  • the decoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the decoder is configured, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
  • the decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18'), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (e.g., 18'), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
  • the at least one coding tool e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18'), for which the at least one
  • the decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18', 18''), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (e.g., 18', 18") (e.g., 18), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks] e.g., 18-1 , 18-2, 18-3, 18-4
  • performing the intra-prediction e.g., 44'
  • first one e.g., 18-1 , 18-2, 18-3, 18-4
  • performing the intra-prediction e.g., 44'
  • the prediction e.g., e.g., e.g. in all the components
  • the prediction of the second one e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g.
  • first one e.g., 18-1
  • second predetermined block e.g., 18', 18
  • a predetermined criterion e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • dividing the respective array of samples into a plurality e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined first and/or second predetermined block (e.g., 18', 18'') (e.g., 18) fulfil the predetermined criterion.
  • the decoder may be further configured to: perform an entropy decoding (e.g., 56) in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding (e.g., 56) in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • an entropy decoding e.g., 56
  • the first and/or second predetermined block e.g., 18'
  • partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the decoder may be further configured to: perform a dequantization (e.g., 38') in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • a dequantization e.g., 38'
  • the first and/or second predetermined block e.g., 18'
  • partitions e.g. for the at least one second array of samples.
  • the decoder may be further configured to: perform an inverse transformation in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the least one first array (e.g., 19-G, 19-Y) of samples; and/or perform an inverse transformation in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the decoder may be such that the prediction (e.g., 44') is performed for the entire predetermined block (e.g., 18).
  • the decoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
  • the decoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
  • the decoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
  • the decoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
  • the decoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
  • the decoder may be configured to iterate the prediction of a subsequent partition (e.g,, 18- 2) after the prediction (e.g., 44') of a previously predicted partition (e.g., 18-1).
  • the decoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g., e.g. rectangular partition].
  • the decoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g., e.g. rectangular partition].
  • the decoder may be such that the at least one first and/or second predetermined block (e.g., 18', 18") is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal or vertical) equal to one respective dimension of the square first and/or second predetermined block (e.g., 18) (e.g., e.g.
  • each partition has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
  • the decoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18- 2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12).
  • partitions e.g., e.g. subblocks
  • signalling e.g., 82
  • tool parameter from the data stream (e.g., 12).
  • the decoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12), the signalling (e.g., 82) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to divide the first or second predetermined block (e.g., 18) into the number of partitions obtained from the at least one parameter.
  • signalling e.g., 82
  • the decoder is configured to divide the first or second predetermined block (e.g., 18) into the number of partitions obtained from the at least one parameter.
  • the decoder may be configured to divide the first or second predetermined block (e.g., 18', 18'') into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as indicated in the at least one parameter.
  • partitions e.g., e.g. subblocks
  • the decoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) so that the partitions [e.g., subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors].
  • the number of partitions is a power of 2.
  • the decoder may be such that the number of partitions is selectively chosen (e.g., e.g. among two or four) e.g. by at least one tool parameter.
  • the decoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the predetermined block (e.g., 81),
  • the decoder may be configured to compare at least one dimension of the first or second predetermined block (e.g., 18', 18'') with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (e.g., 18', 18") being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4].
  • the decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • the decoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block (e.g., 18).
  • the decoder may be such that the larger one dimension [e.g., horizontal and/or vertical] of the predetermined block (e.g., 18), the higher the number of partitions [e.g., e.g. blocks with larger size will have more partitions].
  • the decoder may be further configured to apply the at least one coding tool in case the block has at least one dimension (e.g., e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • at least one dimension e.g., e.g. horizontal or vertical
  • the decoder may be further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g., e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
  • the at least one coding tool may be configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T 1 ), wherein a secondary transform (e.g., T 2 ) is applied to a sub-area (e.g., 18.2) of the first and/or second predetermined block (e.g., 18', 18'') after having subjected to the primary transform (e.g., T 1 ).
  • a primary transform e.g., T 1
  • a secondary transform e.g., T 2
  • the at least one coding tool may be a MTS tool
  • the at least one parameter may indicate the primary transform (e.g., T 1 ) and/or the secondary transform (e.g., T 2 ).
  • the decoder may be such that the at least one parameter indicates a positional relationship between the sub-area (e.g., 18.2) and the first and/or second predetermined block (e.g., 18', 18'').
  • the decoder may be such that the primary transform is a separable transform, [e.g. ,
  • the primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII.
  • transformskip e.g., no transform
  • the decoder may be such that the primary transform is a DCT-II.
  • the decoder may be such that the primary transform is a DST-VII or DCT-VIII.
  • the decoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the decoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (e.g.,
  • the decoder may be such that the multi-stage transform is signalled in the at least one parameter (e.g., 82).
  • the decoder may be such that the primary transform is chosen by the at least one coding tool on the basis of signalling (e.g., 82) in the data stream (e.g., 12), so that one single multi- stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (e.g., 81) in the data stream (e.g., 12).
  • the decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the decoder may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (e.g., 18.R) with inferring a remaining transform area to be equal to zero.
  • a reduced transform area e.g., 18.R
  • the decoder may be such that the dimensions of the reduced area (e.g., 18.R) with respect to the dimensions of the first or second predetermined block (e.g., 18', 18") have a ratio of 50:50 or 25:75.
  • the dimensions of the reduced area e.g., 18.R
  • the dimensions of the first or second predetermined block e.g., 18', 18
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18. R) and the first or second predetermined block (e.g., 18', 18'').
  • the decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), the at least one parameter includes one single parameter on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18', 18") and a reduced area (e.g., 18.R), the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • signalling e.g., 82
  • the data stream e.g., 12
  • the at least one parameter includes one single parameter on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18', 18") and a reduced area (e.g., 18.R)
  • the decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18) and a reduced area (e.g., 18. R), the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • signalling e.g., 82
  • the data stream e.g., 12
  • a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block e.g., 18
  • a reduced area e.g., 18. R
  • the decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block (e.g., 18', 18''), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
  • CABAC context-based adaptive binary arithmetic coding
  • the decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
  • the decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context- based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
  • a parameter from the data stream e.g. 12
  • the decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
  • the decoder may be such that the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
  • the decoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component
  • the decoder may be such that the color components form a luma-chroma based color space.
  • the decoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
  • each block e.g., 18', 18'' has one array (e.g., 19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (e.g., V, U, Y) associated to the respective tree-based partitioning (e.g., 25', 25''), wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25') and at least one second predetermined block (e.g., 18") of the second tree-based partitioning (e.g., 25'') which is co-Iocated to the first predetermined block (e.g., 18') of the first tree-based partitioning
  • a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
  • a color space component e.g.,
  • the encoder may be configured to further block-wise encode a further picture (e.g., 10') from the data stream (e.g. , 12), wherein the further picture is divided into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component (e.g., G; Y), and least one second array of samples, defined in at least one second space component (e.g., B, U), wherein the encoder is configured to perform a prediction of the predetermined block (e.g., 18), in at least the first space component (e.g., G; Y) and the second space component (e.g., B, U), based on at least one previously predicted block (e.g., 17a-17c) neighbouring the predetermined block (e.g., 18
  • the encoder may be such that the signalling includes signalling indicating whether or not the picture (e.g., 10') or further picture (e.g., 10') is to be subdivided into a plurality of tree- based partitionings (e.g., 25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (e.g., 10'') is to be subdivided into a plurality of tree-based partitionings, the further picture (e.g., 10'') is subdivided into a plurality of tree-based partitionings.
  • the signalling includes signalling indicating whether or not the picture (e.g., 10') or further picture (e.g., 10') is to be subdivided into a plurality of tree-based partitionings (e.g., 25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (e.g., 10'') is
  • the encoder may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the encoder (e.g., 14) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
  • the encoder e.g., 14
  • the encoder may be configured to selectively determine (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
  • the plurality of arrays e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V
  • the encoder may be further configured to choose (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples and to signal the choice in signaling (e.g., 81) in the data stream (e.g., 12).
  • choose e.g., 181; 181 Y, 181 U, 181V
  • the encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays
  • the encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
  • signalling e.g., 81
  • a flag e.g. encoded in one single bit valid for all the arrays of the plurality of arrays
  • the encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (e.g.
  • the encoder is further configured to write signalling (e.g., 81) choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), and: in case of choice of the first color space (e.g., YUV), to activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g,, 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the array
  • the encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the encoder (e.g., 14) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g
  • the encoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the first color space e.g., YUV
  • the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
  • the encoder may be such that, in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
  • the second color space e.g., RGB
  • the encoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays.
  • the encoder may be configured to activate the coding tool for all the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
  • the encoder may be configured to deactivate the coding tool for ail the arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
  • the encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
  • the encoder may be configured to use the coding tool using at least one tool parameter (e.g., 82) and to write the at least one tool parameter (e.g., 82) onto the bitstream (e.g., 12)[e.g., e.g. to be read by the decoder from the data stream].
  • at least one tool parameter e.g., 82
  • bitstream e.g. 12
  • the encoder may be configured to: write the signalling (e.g., 81) in the data stream (e.g., 12); and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling (e.g., 82) of the data stream (e.g., 12), the at least one tool parameter (e.g., 82) to be applied to the coding tool.
  • the signalling e.g., 81
  • the data stream e.g., 12
  • the at least one tool parameter e.g., 82
  • the encoder may be configured to: write signalling (e.g., 81) in the data stream (e.g., 12) which indicates whether the first and second tree-based partitionings (e.g., 25', 25") are a single partitioning or separate partitionings; and wherein, if a cross-prediction tool is applied, the prediction involves: modifying the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings (e.g., 25', 25'') being separate partitionings, and using the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (e.g., 25', 25'') being a single partitioning.
  • write signalling e.g., 81
  • the data stream e.g., 12
  • the encoder may be such that the at least one tool parameter indicates a prediction mode associated to the at least one predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
  • the encoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from writing in the bitstream (e.g., 12) another tool parameter for a predetermined coding tool for the second predetermined block.
  • the encoder may be configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
  • the encoder may be configured to write the at least one second, modified tool parameter in the data stream.
  • the encoder may be such that the at least one second, modified tool parameter is a default parameter.
  • the encoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
  • the encoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
  • the encoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
  • the encoder may be such that the at least one toot parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B).
  • the at least one toot parameter e.g., 82
  • the at least one toot parameter e.g., 82
  • the encoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
  • the at least one tool parameter e.g., 82
  • the encoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
  • the at least one tool parameter includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (
  • the encoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
  • the at least one tool parameter e.g., 82
  • the third parameter for the third array e.g., 19-V
  • the encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • an indication e.g., e.g. associated to a choice
  • the encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
  • an indication e.g., e.g. associated to a choice
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
  • the encoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion (e.g., 17acc, 17ccc) neighbouring the first or second predetermined block, which is distanced from the first or second predetermined block by a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream (e.g., 12). [e.g., the mode may be applied, for example, in the transform domain]
  • a distance parameter e.g., 82
  • the encoder may be such that at least one coding tool is a MRL
  • the encoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter (e.g., 82) indicates the reference line.
  • the at least one tool parameter e.g., 82
  • the encoder may be configured to define the position of the portion (e.g., 17''c, 17''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g,, 17a-17c) to arrive at the portion (e.g., 17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g.
  • the at least one previously predicted block e.g., 17a-17c
  • the boundary e.g., 18a, 18c
  • the predetermined block e.g., 18
  • the predetermined block e.g., 18
  • the encoder may be such that at least one coding tool [e.g., e.g. MIP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
  • at least one coding tool e.g., e.g. MIP
  • the encoder may be such that the at least one coding tool is MIP.
  • the encoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prediction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
  • the encoder may be such that the prediction matrix (e.g., 17M) is signalled in the at least one tool parameter indicating the matrix [e.g., e.g. the matrix may be indexed, and the at least one tool parameter may encode the index].
  • the prediction matrix e.g., 17M
  • the encoder may be such that the pre-stored prediction matrix (e.g., 17M) is pre-stored among a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix (e.g., 17M) is to be used.
  • the pre-stored prediction matrix e.g., 17M
  • the at least one tool parameter indicates which pre-stored prediction matrix (e.g., 17M) is to be used.
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix (e.g., 17M) for all the arrays of samples of the firs predetermined block and the second predetermined block.
  • the same prediction matrix e.g., 17M
  • the encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (e.g., 17M) different from the prediction matrix (e.g., 17M) used for the prediction of the first predetermined block.
  • the second prediction matrix e.g., 17M
  • the encoder may be such that the second prediction matrix correspond to a planar mode.
  • the encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first or second predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks] (e.g., 18-1, 18-2, 18-3, 18- 4), wherein the encoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the encoder is configured, after the prediction [e.g., e.g. in ail the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
  • the prediction e.g., e.g. predicted value(e.g., s)
  • the encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete at least one first and/or second predetermined block (e.g., 18', 18"), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual encoding/decoding.
  • the at least one coding tool e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18', 18"), for which the at
  • the encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (e.g., 18', 18"), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks] e.g., 18-1 , 18-2, 18-3, 18-4
  • performing the intra-prediction e.g., 44'
  • first one e.g., 18-1 , 18-2, 18-3, 18-4
  • performing the intra-prediction e.g., 44'
  • the prediction e.g., e.g., e.g. in all the components
  • the prediction of the second one e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g.
  • first one e.g., 18-1
  • second predetermined block e.g., 18', 18
  • a predetermined criterion e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4
  • dividing the respective array of samples into a plurality e.g., e.g., two or four or a different number] of partitions [e.g., e.g.
  • subblocks e.g., 18-1 , 18-2, 18-3, 18-4.
  • the encoder may be configured to: perform an entropy encoding (e.g., 28b) in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding (e.g., 28b) in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • an entropy encoding e.g., 28b
  • the at least one first and/or second predetermined block e.g., 18', 18
  • partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the encoder may be configured to: perform a dequantization (e.g., 38') in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • a dequantization e.g., 38'
  • the at least one first and/or second predetermined block e.g., 18', 18
  • partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • the encoder may be configured to: perform a transformation [e.g., e.g. DCT, etc.] in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the least one first array (e.g., 19-G, 19-Y) of samples; and/or perform a transformation [e.g., e.g. DCT, etc.] in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
  • a transformation e.g., e.g. DCT, etc.
  • the encoder may be such that the prediction (e.g., 44) is performed for the entire at least one first and/or second predetermined block (e.g., 18).
  • the encoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
  • the first partition e.g., 18-1
  • the second partition e.g., 18-2 neighbours the first partition (e.g., 18-1).
  • the encoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
  • the encoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
  • the second partition e.g., 18-2
  • the second partition does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
  • the encoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
  • the encoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
  • the encoder may be configured to iterate the prediction of a subsequent partition (e.g., 18- 2) after the prediction (e.g., 44) of a previously predicted partition (e.g., 18-1).
  • the encoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g., e.g. rectangular partition].
  • the encoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g., e.g, rectangular partition].
  • the encoder may be such that the at least one first and/or second predetermined block (e.g., 18', 18") is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 or four 2x16 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal) equal to one respective dimension of the square at least one first and/or second predetermined block (e.g., 18', 18") (e.g., e.g. 16), and the other dimension (e.g., e.g.
  • the encoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
  • the encoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18- 2, 18-3, 18-4) and to indicate the partitions in the at least one tool parameter.
  • partitions e.g., e.g. subblocks
  • the encoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) and to signal it in the at least one tool parameter in the data stream (e.g., 12) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the encoder is configured to divide the first or second predetermined block (e.g., 18) into the defined number of partitions.
  • partitions e.g., e.g. subblocks
  • the encoder is configured to divide the first or second predetermined block (e.g., 18) into the defined number of partitions.
  • the encoder may be configured to divide the first or second predetermined block (e.g., 18) into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, and to signal though the at least one tool parameter.
  • partitions e.g., e.g. subblocks
  • the encoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) so that the partitions [e.g., subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors].
  • partitions e.g., 18-1, 18-2, 18-3, 18-4
  • the encoder may be such that the number of partitions is a power of 2.
  • the encoder may be such that the number of partitions is selectively chosen among (e.g., e.g. two or four) e.g. and is indicated through the at least one tool parameter (e.g., 82).
  • the encoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the at least one first and/or second predetermined block (e.g., 18', 18"),
  • the encoder may be configured to compare at least one dimension of the first or second predetermined block (e.g., 18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (e.g., 18) being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4].
  • a respective threshold e.g., e.g., no ISP for blocks of size equal to or less than 4x4.
  • the encoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
  • ACT adaptive color transform
  • the encoder may be such that at least one coding tool is configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T 1 ), wherein a secondary transform (e.g., T 2 ) is applied to a sub-area (e.g., 18.2) of the first or second predetermined block (e.g., 18) after having subjected to the primary transform (e.g., T 1 ).
  • a primary transform e.g., T 1
  • a secondary transform e.g., T 2
  • the encoder may be such that the primary transform is a separable transform, [e.g., The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-ll, the DST-VII and the DCT-VIII.
  • transformskip e.g., no transform
  • the encoder may be such that the primary transform is a DCT-ll.
  • the encoder may be such that the primary transform is a DST-VII or DCT-VIII.
  • the encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
  • the encoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform.
  • the secondary transform may be called Low-Frequency Non-Separable Transform (e.g.,
  • the encoder may be such that the multi-stage transform is signalled through the at least one tool parameter (e.g., 82) of the data stream (e.g., 12).
  • the at least one tool parameter e.g., 82
  • the data stream e.g., 12
  • the encoder may be such that the primary transform is chosen by the at least one coding tool and is indicated in the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the primary transform is chosen by the at least one coding tool and is indicated in the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
  • the encoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to indicate, through the at least one tool parameter (e.g., 81), the choice in the data stream (e.g., 12).
  • the at least one tool parameter e.g., 81
  • the encoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
  • the encoder may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area (e.g., 18.R) with inferring a remaining transform area to be equal to zero.
  • a reduced transform area e.g. 18.R
  • the encoder may be such that the dimensions of the reduced area (e.g., 18.R) with respect to the dimensions of the first or second predetermined block (e.g., 18) have a ratio of 50:50 or 25:75.
  • the dimensions of the reduced area e.g., 18.R
  • the dimensions of the first or second predetermined block e.g., 18
  • the encoder may be configured to indicate, through the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18.R) and the first or second predetermined block (e.g., 18).
  • the at least one tool parameter e.g., 82
  • dimensional and/or positional relationships e.g., e.g. split orientation and/or ratio
  • the reduced area e.g., 18.R
  • the first or second predetermined block e.g., 18
  • the encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
  • the encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
  • the encoder may be configured to indicate, through the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), one single parameter on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18', 18") and a reduced area (e.g., 18.R), wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
  • the at least one tool parameter e.g., 82
  • the data stream e.g., 12
  • a reduced area e.g., 18.R
  • the encoder may be configured to indicate, through the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18) and a reduced area (e.g., 18.R), wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples.
  • the encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
  • the encoder may be configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block (e.g., 18), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
  • the encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
  • the encoder may be configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context- based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
  • a parameter from the data stream e.g., 12
  • the encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
  • the encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
  • the encoder may be such that the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
  • the encoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component
  • the encoder may be such that the color components form a luma-chroma based color space.
  • the encoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
  • examples may be implemented as a computer program product with program instructions, the program instructions being operative for performing one of the methods when the computer program product runs on a computer.
  • the program instructions may for example be stored on a machine readable medium.
  • Other examples comprise the computer program for performing one of the methods described herein, stored on a machine-readable carrier.
  • an example of method is, therefore, a computer program having program instructions for performing one of the methods described herein, when the computer program runs on a computer.
  • a further example of the methods is, therefore, a data carrier medium (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 medium, the digital storage medium or the recorded medium are tangible and/or non-transitionary, rather than signals which are intangible and transitory.
  • a further example of the 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 transferred via a data communication connection, for example via the Internet.
  • a further example comprises a processing means, for example a computer, or a programmable logic device performing one of the methods described herein.
  • a further example comprises a computer having installed thereon the computer program for performing one of the methods described herein.
  • a further example comprises an apparatus or a system transferring (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.
  • a programmable logic device for example, a field programmable gate array
  • a field programmable gate array may cooperate with a microprocessor in order to perform one of the methods described herein.
  • the methods may be performed by any appropriate hardware apparatus.

Abstract

There are discloses techniques for encoding and decoding images, in one example, there is provided a decoder (or respectively an encoder) for block-wise decoding a picture (10) from a data stream (12). The picture (10) is divided (25) into a plurality of blocks including a predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19- V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (19-G; 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B; 19-U) of samples defined in at least one second space component (B, U). The decoder (or respectively an encoder) may perform a prediction by applying (103G; 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and applying (103B; 103U) said at least one coding tool to the at least one second array (19-B; 19-U) of samples.

Description

ENCODING AND DECODING OF COLOR COMPONENTS IN PICTURES
Description
In the following, various examples are described which assist in achieving a more effective compression when using intra-prediction or inter-prediction. Some examples achieve the compression efficiency increase by spending a set of intra-prediction modes or inter- prediction. The latter ones may be added to other intra-prediction modes or inter-prediction modes heuristically designed, for instance, or may be provided exclusively. And even other examples make use of both of the just-discussed specialties.
In order to ease the understanding of the following examples of the present application, the description starts with a presentation of possible encoders and decoders fitting thereto into which the subsequently outlined examples of the present application could be built.
Fig. 1 shows an apparatus for block-wise encoding a picture 10 into a datastream 12 (also indicated as 80 in some examples, see below). The apparatus is indicated using reference sign 14 and may be a still picture encoder or a video encoder. In other words, picture 10 may be a current picture out of a video 16 when the encoder 14 is configured to encode video 16 including picture 10 into datastream 12, or encoder 14 may encode picture 10 into datastream 12 exclusively. Examples below may make use of the apparatus 14.
As mentioned, encoder 14 performs the encoding in a block-wise manner or block-base. To this, encoder 14 subdivides picture 10 into blocks, units of which encoder 14 encodes picture 10 into datastream 12. Examples of possible subdivisions of picture 10 into blocks 18 are set out in more detail below. Generally, the subdivision may end-up into blocks 18 of constant size such as an array of blocks arranged in rows and columns or into blocks 18 of different block sizes such as by use of a hierarchical multi-tree subdivisioning with starting the multi-tree subdivisioning from the whole picture area of picture 10 or from a pre- partitioning of picture 10 into an array of tree blocks wherein these examples shall not be treated as excluding other possible ways of subdivisioning picture 10 into blocks 18.
Further, encoder 14 is a predictive encoder configured to predictively encode picture 10 into datastream 12. For a certain block 18 this means that encoder 14 determines a prediction signal for block 18 and encodes the prediction residual, i.e. the prediction error at which the prediction signal deviates from the actual picture content within block 18, into datastream 12. Encoder 14 may support different prediction modes so as to derive the prediction signal for a certain block 18. The prediction modes, which are of importance in the following examples, are intra-prediction modes according to which the inner of block 18 is predicted spatially from neighboring, already encoded samples of picture 10. The encoding of picture 10 into datastream 12 and, accordingly, the corresponding decoding procedure, may be based on a certain coding order 20 defined among blocks 18. For instance, the coding order 20 may traverse blocks 18 in a raster scan order such as row-wise from top to bottom with traversing each row from left to right, for instance. In case of hierarchical multi-tree based subdivisioning, raster scan ordering may be applied within each hierarchy level, wherein a depth-first traversal order may be applied, i.e. leaf notes within a block of a certain hierarchy level may precede blocks of the same hierarchy level having the same parent block according to coding order 20. Depending on the coding order 20, neighboring, already encoded samples of a block 18 may be located usually at one or more sides of block 18. In case of the examples presented herein, for instance, neighboring, already encoded samples of a block 18 are located to the top of, and to the left of block 18.
Intra-prediction modes may not be the only ones supported by encoder 14. In case of encoder 14 being a video encoder, for instance, encoder 14 may also support intra- prediction modes according to which a block 18 is temporarily predicted from a previously encoded picture of video 16. Such an intra-prediction mode may be a motion-compensated prediction mode according to which a motion vector is signaled for such a block 18 indicating a relative spatial offset of the portion from which the prediction signal of block 18 is to be derived as a copy. Additionally or alternatively, other non-intra-prediction modes may be available as well such as inter-view prediction modes in case of encoder 14 being a multi- view encoder, or non-predictive modes according to which the inner of block 18 is coded as is, i.e. without any prediction.
Before starting with focusing the description of the present application onto intra-prediction modes, a more specific example for a possible block-based encoder, i.e. for a possible implementation of encoder 14, as described with respect to Fig. 2 with then presenting two corresponding examples for a decoder fitting to Figs. 1 and 2, respectively.
Fig. 2 shows a possible implementation of encoder 14 of Fig. 1 , namely one where the encoder is configured to use transform coding for encoding the prediction residual although this is nearly an example and the present application is not restricted to that sort of prediction residual coding. According to Fig. 2, encoder 14 (which may be used for examples below) may comprise a subtractor 22 configured to subtract from the inbound signal, i.e. picture 10 or, on a block basis, current block 18, the corresponding prediction signal 24 so as to obtain the prediction residual signal 26 which is then encoded by a prediction residual encoder 28 into a datastream 12. The prediction residual encoder 28 is composed of a lossy encoding stage 28a and a lossless encoding stage 28b. The lossy stage 28a receives the prediction residual signal 26 and comprises a quantizer 30 which quantizes the samples of the prediction residual signal 26. As already mentioned above, the present example uses transform coding of the prediction residual signal 26 and accordingly, the lossy encoding stage 28a comprises a transform stage 32 connected between subtractor 22 and quantizer 30 so as to transform such a spectrally decomposed prediction residual 26 with a quantization of quantizer 30 taking place on the transformed coefficients where presenting the residual signal 26. The transform may be a DCT, DST, FFT, Hadamard transform or the like. The transformed and quantized prediction residual signal 34 is then subject to lossless coding by the lossless encoding stage 28b which is an entropy coder entropy coding quantized prediction residual signal 34 into datastream 12. Encoder 14 further comprises the prediction residual signal reconstruction stage 36 connected to the output of quantizer 30 so as to reconstruct from the transformed and quantized prediction residual signal 34 the prediction residual signal in a manner also available at the decoder, i.e. taking the coding loss is quantizer 30 into account. To this end, the prediction residual reconstruction stage 36 comprises a dequantizer 38 which perform the inverse of the quantization of quantizer 30, followed by an inverse transformer 40 which performs the inverse transformation relative to the transformation performed by transformer 32 such as the inverse of the spectral decomposition such as the inverse to any of the above-mentioned specific transformation examples. Encoder 14 comprises an adder 42 which adds the reconstructed prediction residual signal as output by inverse transformer 40 and the prediction signal 24 so as to output a reconstructed signal, i.e. reconstructed samples. This output is fed into a predictor 44 of encoder 14 which then determines the prediction signal 24 based thereon. It is predictor 44 which supports all the prediction modes already discussed above with respect to Fig. 1. Fig. 2 also illustrates that in case of encoder 14 being a video encoder, encoder 14 may also comprise, in addition or alternative, an in- loop filter 46 with filters completely reconstructed pictures which, after having been filtered, form reference pictures for predictor 44 with respect to inter-predicted block.
As already mentioned above, encoder 14 operates block-based. For the subsequent description, the block bases of interest is the one subdividing picture 10 into blocks for which the intra-prediction mode is selected out of a set or plurality of intra-prediction modes supported by predictor 44 or encoder 14, respectively, and the selected intra-prediction mode performed individually. Other sorts of blocks into which picture 10 is subdivided may, however, exist as well. For instance, the above-mentioned decision whether picture 10 is inter-coded or intra-coded may be done at a granularity or in units of blocks deviating from blocks 18. For instance, the inter/intra mode decision may be performed at a level of coding blocks into which picture 10 is subdivided, and each coding block is subdivided into prediction blocks. Prediction blocks with encoding blocks for which it has been decided that intra-prediction is used, are each subdivided to an intra-prediction mode decision. To this, for each of these prediction blocks, it is decided as to which supported intra-prediction mode should be used for the respective prediction block. These prediction blocks will form blocks 18 which are of interest here. Prediction blocks within coding blocks associated with inter- prediction may be treated differently by predictor 44 (inter prediction modes may be alternative or additional to the inter prediction modes). They may be inter-predicted from reference pictures by determining a motion vector and copying the prediction signal for this block from a location in the reference picture pointed to by the motion vector. Another block subdivisioning pertains the subdivisioning into transform blocks at units of which the transformations by transformer 32 and inverse transformer 40 are performed. Transformed blocks may, for instance, be the result of further subdivisioning coding blocks. Naturally, the examples set out herein should not be treated as being limiting and other examples exist as well. For the sake of completeness only, it is noted that the subdivisioning into coding blocks may, for instance, use multi-tree subdivisioning, and prediction blocks and/or transform blocks may be obtained by further subdividing coding blocks using multi-tree subdivisioning, as well.
A decoder or apparatus (e.g., used in present examples) for block-wise decoding fitting to the encoder 14 of Fig. 1 is depicted in Fig, 3. This decoder 54 does the opposite of encoder 14, i.e. it decodes from datastream 12 picture 10 in a block-wise manner and supports, to this end, a plurality of intra-prediction modes. The decoder 54 may comprise a residual provider 156, for example. All the other possibilities discussed above with respect to Fig. 1 are valid for the decoder 54, too. To this, decoder 54 may be a still picture decoder or a video decoder and all the prediction modes and prediction possibilities are supported by decoder 54 as well. The difference between encoder 14 and decoder 54 lies, primarily, in the fact that encoder 14 chooses or selects coding decisions according to some optimization such as, for instance, in order to minimize some cost function which may depend on coding rate and/or coding distortion. One of these coding options or coding parameters may involve a selection of the intra-prediction mode to be used for a current block 18 among available or supported intra-prediction modes. The selected intra-prediction mode may then be signaled by encoder 14 for current block 18 within datastream 12 with decoder 54 redoing the selection using this signalization in datastream 12 for block 18. Likewise, the subdivisioning of picture 10 into blocks 18 may be subject to optimization within encoder 14 and corresponding subdivision information may be conveyed within datastream 12 with decoder 54 recovering the subdivision of picture 10 into blocks 18 on the basis of the subdivision information. Summarizing the above, decoder 54 may be a predictive decoder operating on a block-bases and besides intra-prediction modes, decoder 54 may support (in addition or alternative) other prediction modes such as inter-prediction modes in case of, for instance, decoder 54 being a video decoder. In decoding, decoder 54 may also use the coding order 20 discussed with respect to Fig. 1 and as this coding order 20 is obeyed both at encoder 14 and decoder 54, the same neighboring samples are available for a current block 18 both at encoder 14 and decoder 54. Accordingly, in order to avoid unnecessary repetition, the description of the mode of operation of encoder 14 shall also apply to decoder 54 as far the subdivision of picture 10 into blocks is concerned, for instance, as far as prediction is concerned and as far as the coding of the prediction residual is concerned. Differences lie in the fact that encoder 14 chooses, by optimization, some coding options or coding parameters and signals within, or inserts into, datastream 12 the coding parameters which are then derived from the datastream 12 by decoder 54 so as to redo the prediction, subdivision and so forth.
Fig. 4 shows a possible implementation of the decoder 54 of Fig. 3 (e.g., used in present examples), namely one fitting to the implementation of encoder 14 of Fig. 1 as shown in Fig. 2. As many elements of the encoder 54 of Fig. 4 are the same as those occurring in the corresponding encoder of Fig. 2, the same reference signs, provided with an apostrophe, are used in Fig. 4 in order to indicate these elements. In particular, adder 42', optional in- loop filter 46' and predictor 44' are connected into a prediction loop in the same manner that they are in encoder of Fig. 2. The reconstructed, i.e. dequantized and retransformed prediction residual signal applied to added 42' is derived by a sequence of entropy decoder 56 which inverses the entropy encoding of entropy encoder 28b, followed by the residual signal reconstruction stage 36' which is composed of dequantizer 38' and inverse transformer 40' just as it is the case on encoding side. The decoder's output is the reconstruction of picture 10. The reconstruction of picture 10 may be available directly at the output of adder 42' or, alternatively, at the output of in-loop filter 46'. Some post-filter may be arranged at the decoder's output in order to subject the reconstruction of picture 10 to some post-filtering in order to improve the picture quality, but this option is not depicted in Fig. 4.
Again, with respect to Fig. 4 the description brought forward above with respect to Fig. 2 shall be valid for Fig. 4 as well with the exception that merely the encoder performs the optimization tasks and the associated decisions with respect to coding options. However, all the description with respect to block-subdivisioning, prediction, dequantization and retransforming is also valid for the decoder 54 of Fig. 4.
The present examples may be examples of inter prediction and/or intra predictions.
Summary
According to an aspect, there is provided a decoder for block-wise decoding a picture from a data stream, wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the decode is configured to predictively reconstruct the predetermined block by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples.
The plurality of arrays of samples may include a third array of samples defined in at least one third space component, wherein the decoder is configured to apply the at least one coding tool to the at least one third array of samples.
The decoder may selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
The decoder may be further configured to choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples on the basis of signaling from the data stream. The signaling from the data stream may include signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
The signaling from the data stream may include signalling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
The decoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the signalling includes signalling choosing the color space between at least the first and the second color spaces, so as to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the decoder is configured to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that, in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
The decoder may be such that, in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool is activated for all the arrays of samples of the plurality of arrays.
The decoder may activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
The decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution. The decoder may deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
The decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The decoder may read at least one tool parameter from the bitstream, and to implement the coding tool using the at least one tool parameter [e.g. read in the data stream].
The decoder: read the signalling in the data stream; and at the determination that the at least one tool is to be applied to at least one array of samples, search, in further signalling of the data stream, the at least one tool parameter to be applied to the coding tool.
The at least one tool parameter may be shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
The one tool parameter may be shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
The at least one tool parameter may include at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
The plurality of components may include three components forming the color space, and/or the at least one tool parameter may include at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
The decoder may obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
The decoder obtain, from signalling in the data stream, one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder obtain, from signalling in the data stream, a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The decoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously decoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain]
The decoder may retrieve the position of the subportion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the subportion, wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the predetermined block neighbouring the at least one previously predicted block, wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream.
The decoder may be such that at least one coding tool [e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously decoded samples.
The decoder may be such that the prediction matrix is pre-stored in a non-transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed, and the signalling may encode the index].
The decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the decoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the decoder is configured, after the prediction [e.g. in all the components] of the first one of the partitions, to perform a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions.
The decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding. The decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an infra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra- prediction, at first, for a first one of the partitions and, after the prediction [e.g. in ail the components] of the first one of the partitions, performing a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block fulfil the predetermined criterion.
The decoder may: perform an entropy decoding in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
The decoder may: perform a dequantization in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the predetermined block is divided into partitions e.g. for the at feast one second array of samples.
The decoder may: perform an inverse transformation in which the predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform an inverse transformation in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
The prediction may be performed for the entire predetermined block. The first partition may neighbour at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
The first partition may be interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
The second partition may be such that it does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
The decoder, after the prediction of the second one of the partitions, perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
The decoder, after the prediction of the third one of the partitions, perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
The decoder may iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
Each [or at least one] of the partitions may have a horizontal dimension larger than the vertical dimension [e.g. rectangular partition].
Each [or at least one] of the partitions may have a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
The predetermined block may be a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and be partitioned in rectangular partitions (e.g. four 4x16 partitions or four 16x4 partitions or four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g. 4 or 2) than the respective dimension of the predetermined block so that the sum (e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the predetermined block (e.g. 16 or 8). The partitions may have a vertical dimension equal to the horizontal dimension [e.g. square partition].
The decoder may define the partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream.
The decoder may define the number of partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream, the signalling indicating the number of partitions [e.g. subblocks], wherein the decoder is configured to divide the predetermined block into the number of partitions obtained from the signalling.
The decoder may divide the predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, into as many partitions as signalled in the signalling.
The decoder may define the plurality of partitions [e.g. subblocks] so that the partitions [sublocks] have the same area [e.g. apart from quantization or rounding errors]. The decoder may be such that the number of partitions is a power of 2.
The number of partitions may be selectively chosen (e.g. among 2 or 4) by the signalling.
The number of partitions may be selectively decided on the basis of the dimension(s) of the predetermined block.
The decoder may compare at least one dimension of the predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4],
The decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out. The number of partitions may depend on at least one of the dimensions of the predetermined block.
In examples, the larger one dimension [horizontal and/or vertical] of the predetermined block, the higher the number of partitions [e.g. blocks with larger size will have more partitions].
The decoder may apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The decoder may apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The decoder may derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform is applied to a sub-area of the predetermined block after having subjected to the primary transform.
The primary transform may be a separable transform. [The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-Vli and the DCT-VIII. In some examples, transformskip (no transform) can also be used as a primary transform]. The primary transform may be a DCT-II, DST-VII or DCT-VIII.
The decoder may operate in transformskip mode in case of the first transformation being the identity transformation.
The secondary transform may be a non-separable transform. [The secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separabie transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
The multi-stage transform may be signalled in signalling of the data stream. The primary transform may be chosen by the at least one coding tool on the basis of signalling in the data stream, so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples. The decoder may choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling in the data stream.
The decoder may choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The decoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero. The decoder may be such that the dimensions of the reduced area with respect to the dimensions of the predetermined block have a ratio of 50:50 or 25:75. The decoder may be configured to obtain, from signaling in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the predetermined block. The decoder may be configured to obtain, from signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples. The decoder may be configured to obtain, from signalling in the data stream, an indication on which coding toots are to be selectively individually activated, or deactivated. The decoder may be configured to obtain, from signalling in the data stream, one single parameter on dimensional and/or positional relationships between the predetermined block and a reduced area, the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated. The decoder may be configured to obtain, from signalling in the data stream, a plurality of parameters on dimensional and/or positional relationships between the predetermined block and a reduced area, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples. The decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC. The decoder may, for the predetermined block, decode, for each array of samples of the predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding tool for respective array of samples, wherein the decoder may sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
The determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The decoder may perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
The decoder may, for the predetermined block, decode, for each array of samples of the predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the decoder may sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
The determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
The decoder may perform a selection out of the same set of contexts for each of the array of samples, and use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples. The first color component may be a luma component, the second color component a chroma component [the third may be another chroma component].
The first color component may be a luma component, the second color component may be a chroma component Cb [the third may be a chroma component Cr],
The color components may form a luma-chroma based color space.
The first color component may be a green component, the second color component a blue component [the third may be a red component].
According to an aspect, there is provided a method for block-wise decoding a picture from a data stream, wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the decoder is configured to predictively reconstruct the predetermined block by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples. According to an aspect, there is provided a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
According to an aspect, there is provided an encoder for block-wise encoding a picture from a data stream, wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the encoder is configured to predictively reconstruct the predetermined bloc by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples,
The encoder may be such that the plurality of arrays of samples includes a third array of samples defined in at least one third space component, wherein the encoder is configured to apply the at least one coding tool to the at least one third array of samples.
The encoder may selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
The encoder may choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples and to signal the choice in signaling in the data stream.
The encoder may write signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
The encoder may further write signalling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
The array of samples of the plurality of arrays of samples may be suitable to be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the encoder may further write signalling choosing the color space between at least the first and the second color spaces, and: in case of choice of the first color space, to activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays may include at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
Each array of samples of the plurality of arrays of samples may be suitable to be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the encoder may: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
The encoder may be such that in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool is activated for all the arrays of samples of the plurality of arrays.
The encoder may activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
The encoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution.
The encoder may deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
The encoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The encoder may implement the coding tool using the at least one tool parameter and to write the at least one tool parameter onto the bitstream [e.g. to be read by the decoder from the data stream]. The encoder may: write the signalling in the data stream; and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling of the data stream, the at least one tool parameter to be applied to the coding tool.
The at least one tool parameter may be shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
The at least one tool parameter may be shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
The at least one tool parameter may include at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
The plurality of components may include three components forming the color space, and/or the at least one tool parameter may include at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
The encoder write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
The encoder may write, onto signalling in the data stream, one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may write, onto signalling in the data stream, a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples. The encoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain].
The encoder may retrieve the position of the subportion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the subportion, wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the predetermined block neighbouring the at least one previously predicted block, wherein the distance is written onto at least one tool parameter in the signaling of the data stream.
The encoder may be such that at least one coding tool [e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
The prediction matrix may be pre-stored in a non-transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed, and the signalling may encode the index].
The at least one coding tool [e.g. ISP] may involve, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the encoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the encoder is configured, after the prediction [e.g. in all the components] of the first one of the partitions, to perform a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions. ISP may involve, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding.
The at least one coding tool [e.g. ISP] may involve, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra-prediction, at first, for a first one of the partitions and, after the prediction [e.g. in all the components] of the first one of the partitions, performing a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block fulfil the predetermined criterion.
The encoder may: perform an entropy encoding in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
The encoder may be; perform a dequantization in which the predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the predetermined block is divided into partitions e.g. for the at least one second array of samples.
The encoder may: perform a transformation [e.g. DCT, etc.] in which the predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform a transformation [e.g. DCT, etc.] in which the predetermined block is divided into partitions e.g. for the at least one second array samples.
The prediction may be performed for the entire predetermined block.
The encoder may be such that the first partition neighbours at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
The first partition may be interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
The second partition does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
After the prediction of the second one of the partitions, it may be possible to perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
The encoder may be configured so as, after the prediction of the third one of the partitions, to perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
The encoder may iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
Each [or at least one] of the partitions may have a horizontal dimension larger than the vertical dimension. Each [or at least one] of the partitions may have a vertical dimension larger than the horizontal dimension. The predetermined block may be a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and is partitioned in rectangular partitions (e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g. horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g. 4 or 2) than the respective dimension of the predetermined block so that the sum (e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the predetermined block (e.g. 16 or 8).
Each of the partitions may have a vertical dimension equal to the horizontal dimension [e.g. square partition].
The encoder may define the partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream.
The encoder may define the number of partitions [e.g. subblocks] and to write signalling [e.g. at least one tool parameter] in the data stream, the signalling indicating the number of partitions [e.g. subblocks], and it may also divide the predetermined block into the defined number of partitions.
The encoder may divide the predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, into as many partitions as signalled in the signalling.
The encoder may define the plurality of partitions [e.g. subblocks] so that the partitions [subblocks] have the same area [e.g. apart from quantization or rounding errors]. The number of partitions may be a power of 2. The number of partitions may be selectively chosen among two or four by the signalling. The number of partitions may be selectively decided on the basis of the dimension(s) of the predetermined block.
The encoder may compare at least one dimension of the predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4], The encoder may be such that at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The number of partitions may depend on at least one of the dimensions of the predetermined block.
The encoder may be such that the larger one dimension [horizontal and/or vertical] of the predetermined block, the higher the number of partitions [e.g. blocks with larger size will have more partitions].
The encoder may be further apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The encoder may apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The at least one coding tool may derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform may be applied to a sub-area of the predetermined block after having subjected to the primary transform.
The primary transform may be a separable transform. [The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII. In some examples, transformskip (no transform) can also be used as a primary transform]. The primary transform may be a DCT-II, DST-VII or DCT-VIII.
The encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation. The secondary transform may be a non-separable transform. [The secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)].
The multi-stage transform may be signalled in signalling of the data stream.
The primary transform may be chosen by the at least one coding tool and is written onto signalling in the data stream, wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The encoder may choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to write signalling regarding the choice in the data stream.
The encoder may choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The encoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero. The dimensions of the reduced area with respect to the dimensions of the predetermined block may have a ratio of 50:50 or 25:75.
The encoder may write, onto signalling in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the predetermined block.
The encoder may write, onto signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder may write, onto signalling in the data stream, an indication on which coding tools are to be selectively Individually activated, or deactivated. The encoder may write, onto signalling in the data stream, one single parameter on dimensional and/or positional relationships between the predetermined block and a reduced area, wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may write, onto signalling in the data stream, a plurality of parameters on dimensional and/or positional relationships between the predetermined block and a reduced area, wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples.
The encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
The encoder may, for the predetermined block, encode, for each array of samples of the predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding toot for respective array of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
The encoder may, for the predetermined block, encode, for each array of samples of the predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
The determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
The encoder may perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
The first color component may be a luma component, the second color component is a chroma component [the third may be another chroma component].
The first color component may be a luma component, the second color component is a chroma component Cb [the third may be a chroma component Cr]
The color components may form a luma-chroma based color space.
The color component may be a green component, the second color component a blue component [the third may be a red component].
According to an aspect, there is provided a method for block-wise encoding a picture from a data stream, wherein the picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples defined in at least one second space component, wherein the method includes predictively reconstructing the predetermined block by applying at least one coding tool to the at least one first array of samples; and applying said at least one coding tool to the at least one second array of samples. According to an aspect, there is provided a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
According to an aspect, there is provided a decoder for block-wise decoding a picture from a data stream, wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the decoder is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co-located to the first predetermined block of the first tree-based partitioning.
The decoder may further block-wise decode a further picture from the data stream, wherein the further picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples, defined in at least one second space component, wherein the decoder may perform a prediction of the predetermined block, in at least the first space component and the second space component, based on at least one previously predicted block neighbouring the predetermined block, wherein the decoder is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
The signalling may include signalling indicating whether or not the picture or further picture is to be subdivided into a plurality of tree-based partitionings or not, so as to imply that, in case the signaling indicates that the further picture is to be subdivided into a plurality of tree- based partitionings, the further picture is subdivided into a plurality of tree-based partitionings.
The plurality of arrays of samples may include a third array of samples defined in at least one third space component, wherein the decoder may apply the at least one coding tool to the at least one third array of samples.
The decoder may selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
The decoder may choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples on the basis of signaling from the data stream.
The signaling from the data stream may include signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag", e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
The signaling from the data stream may include signaling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
Each array of samples of the plurality of arrays of samples may be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the signalling includes signalling choosing the color space between at least the first and the second color spaces, so as to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples. Each array of samples of the plurality of arrays of samples may be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the decoder may: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples.
The decoder may be such that in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool Is activated for all the arrays of samples of the plurality of arrays.
The decoder may activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
The decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution. The decoder may deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution. The decoder may activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The decoder may read at least one tool parameter from the bitstream, and apply the predetermined coding tool using the at least one tool parameter to predict the at least one first predetermined block [e.g. read in the data stream]. The decoder may: read signalling in the data stream which indicates whether the first and second tree-based partitionings are a single partitioning or separate partitionings; and if a cross-prediction tool is applied: modify the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings being separate partitionings, and use the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings being a single partitioning.
The decoder may be such that the at least one tool parameter indicates a prediction mode associated to the predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
The decoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
The decoder may, if both the cross-prediction tool is applied and the first and second tree- based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
The decoder may, if both the cross-prediction tool is applied and the first and second tree- based partitionings are a single partitioning, to refrain from searching in the bitstream for another tool parameter for a predetermined coding tool for the second predetermined block.
The decoder may, if both a cross-prediction tool is applied and the first and second tree- based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
The decoder may be such that the at least one second, modified tool parameter is obtained from the signalling in the data stream.
The at least one second, modified tool parameter may be a default parameter. The decision whether to apply the cross-prediction tool or not may be encoded in the signalling of the data stream.
The decoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
The decoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
The decoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
The decoder may be such that the at least one tool parameter is shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
The decoder may be such that the at least one tool parameter is shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
The decoder may be such that the at least one tool parameter includes at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
The decoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter includes at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples. The decoder may be configured to obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may obtain, from signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
The decoder may obtain, from signalling in the data stream, one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder may obtain, from signalling in the data stream, a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The at least one coding tool may be a MRL.
The decoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter indicates the reference line.
The decoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the first and second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously predicted samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the first and second predetermined block, which is distanced from the first or second predetermined block at a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain]
The decoder may be configured to retrieve the position of the portion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the portion, wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the first or second predetermined block neighbouring the at least one previously predicted block, wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream.
The decoder may be such that the predetermined coding tool [e.g. MIP] involves, for each array of samples of the first and second predetermined block for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples.
The decoder may be such that the predetermined coding tool [e.g. MIP] is a MIP.230b.
The decoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prodiction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
The decoder may be such that the predetermined coding tool involves a prediction matrix is chosen among a plurality of prediction matrixes, wherein the prediction matrix is chosen according to the at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed, and the signalling may encode the index].
The decoder may be such that the predetermined coding tool [e.g. MIP] involves, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples.
The decoder may be such that the prediction matrix is pre-stored together with [among] a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix is to be used.
The decoder may be configured if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix for all the arrays of samples of the firs predetermined block and the second predetermined block.
The decoder may be configured if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix different from the prediction matrix used for the prediction of the first predetermined block.
The decoder may be such that the second prediction matrix correspond to a planar mode.
The decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the decoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the decoder is configured, after the prediction [e.g. in all the components] of the first one of the partitions, to perform a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions.
The decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first and/or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding.
The decoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first and/or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra-prediction, at first, for a first one of the partitions and, after the prediction [e.g. in ail the components] of the first one of the partitions, performing a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the first and/or second predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined first and/or second predetermined block fulfil the predetermined criterion.
The decoder may be configured to: perform an entropy decoding in which the first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding in which the first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
The decoder may be further configured to: perform a dequantization in which the first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
The decoder may be configured to: perform an inverse transformation in which the first and/or second predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform an inverse transformation in which the first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
The decoder may be such that the prediction is performed for the entire predetermined block.
The decoder may be such that the first partition neighbours at least one first of the previously predicted blocks, while the second partition neighbours the first partition. The decoder may be such that the first partition is interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
The decoder may be such that the second partition does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks.
The decoder may be configured, after the prediction of the second one of the partitions, to perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
The decoder may be configured, after the prediction of the third one of the partitions, to perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
The decoder may be configured to iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
The decoder may be such that each [or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g. rectangular partition].
The decoder may be such that each [or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
The decoder may be such that the at least one first and/or second predetermined block is a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and is partitioned in rectangular partitions (e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g. horizontal or vertical) equal to one respective dimension of the square first and/or second predetermined block (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g. 4 or 2) than the respective dimension of the first and/or second predetermined block so that the sum (e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the first and/or second predetermined block (e.g. 16 or 8).
The decoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g. square partition].
The decoder may be configured to define the partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream.
The decoder may be configured to define the number of partitions [e.g. subblocks] on the basis of signalling [e.g. at least one tool parameter] from the data stream, the signalling indicating the number of partitions [e.g. subblocks], wherein the decoder is configured to divide the first or second predetermined block into the number of partitions obtained from the at least one parameter.
The decoder may be configured to divide the first or second predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, into as many partitions as indicated in the at least one parameter.
The decoder may be configured to define the plurality of partitions [e.g. subblocks] so that the partitions [subblocks] have the same area [e.g. apart from quantization or rounding errors]. The number of partitions may be a power of 2.
The decoder may be such that the number of partitions is selectively chosen (e.g. among two or four) e.g. by at least one tool parameter.
The decoder may be such that the number of partitions is selectively decided on the basis of the dimension(s) of the predetermined block.
The decoder may be configured to compare at least one dimension of the first or second predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4],
The decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The decoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block.
The decoder may be such that the larger one dimension [horizontal and/or vertical] of the predetermined block, the higher the number of partitions [e.g. blocks with larger size will have more partitions].
The decoder may be further configured to apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The decoder may be further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The at least one coding tool may be configured to derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform is applied to a sub-area of the first and/or second predetermined block after having subjected to the primary transform.
The at least one coding tool may be a MTS tool.
The decoder may be such that the at least one parameter indicates the primary transform and/or the secondary transform.
The decoder may be such that the at least one parameter indicates a positional relationship between the sub-area and the first and/or second predetermined block.
The decoder may be such that the primary transform is a separable transform. [The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII. In some examples, transformskip (no transform) can also be used as a primary transform]
The decoder may be such that the primary transform is a DCT-II,
The decoder may be such that the primary transform is a DST-VII or DCT-VIII.
The decoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
The decoder may be such that the secondary transform is a non-separable transform. [The secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
The decoder may be such that the multi-stage transform is signalled in the at least one parameter.
The decoder may be such that the primary transform is chosen by the at least one coding tool on the basis of signalling in the data stream, so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling in the data stream.
The decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The decoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero. The decoder may be such that the dimensions of the reduced area with respect to the dimensions of the first or second predetermined block have a ratio of 50:50 or 25:75.
The decoder may be configured to obtain, from signalling in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the first or second predetermined block.
The decoder may be configured to obtain, from signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may be configured to obtain, from signalling in the data stream, an indication on which coding tools are to be selectively individually activated, or deactivated.
The decoder may be configured to obtain, from signalling in the data stream, the at least one parameter includes one single parameter on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder may be configured to obtain, from signalling in the data stream, a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
The decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding tool for respective array of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.. The decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
The decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
The decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
The decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
The decoder may be such that the first color component is a luma component, the second color component is a chroma component [the third may be another chroma component].
The decoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [the third may be a chroma component Cr].
The decoder may be such that the color components form a luma-chroma based color space. The decoder may be such that the first color component is a green component, the second color component is a blue component [the third may be a red component].
According to an aspect, there is provided a method for block-wise decoding a picture from a data stream, wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co- located to the first predetermined block of the first tree-based partitioning.
According to an aspect, there is provided a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
According to an aspect, there is provided an encoder for block-wise encoding a picture onto a data stream, wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the encoder is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co-located to the first predetermined block of the first tree-based partitioning.
The encoder may be configured to further block-wise encode a further picture from the data stream, wherein the further picture is divided into a plurality of blocks including a predetermined block, the predetermined block having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component, and least one second array of samples, defined in at least one second space component, wherein the encoder is configured to perform a prediction of the predetermined block, in at least the first space component and the second space component, based on at least one previously predicted block neighbouring the predetermined block, wherein the encoder is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
The encoder may be such that the signalling includes signalling indicating whether or not the picture or further picture is to be subdivided into a plurality of tree-based partitionings or not, so as to imply that, in case the signaling indicates that the further picture is to be subdivided into a plurality of tree-based partitionings, the further picture is subdivided into a plurality of tree-based partitionings.
The encoder may be such that the plurality of arrays of samples includes a third array of samples defined in at least one third space component, wherein the encoder is configured to apply the at least one coding tool to the at least one third array of samples.
The encoder may be configured to selectively determine whether to activate or deactivate the at least one coding tool for each of the plurality of arrays of samples.
The encoder may be further configured to choose whether to activate or deactivate the coding tool for one or more of the plurality of arrays of samples and to signal the choice in signaling in the data stream.
The encoder may be further configured to write signalling [e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one of the plurality of arrays of samples and is to be deactivated for at least one other of the plurality of arrays of samples.
The encoder may be further configured to write signalling [e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays of the plurality of arrays of samples or is to be deactivated for all the arrays of the plurality of arrays of samples.
The encoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively defined in both a color component of a first color space and a color component of a second color space, wherein the encoder is further configured to write signalling choosing the color space between at least the first and the second color spaces, and: in case of choice of the first color space, to activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that each array of samples of the plurality of arrays of samples is suitable to be selectively chosen to be defined among a color component of a first color space and a color component of a second color space on the basis of a choice among the first color space and the color component of a second color space, wherein the encoder is configured to: in case of choice of the first color space, activate the coding tool for a first group of arrays of samples and deactivate the coding tool for the remaining arrays of samples of the plurality of the arrays of samples, and in case of choice of the second color space, activate the coding tool for a second group of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that, in case of choice of the first color space, the first group of arrays of samples is constituted by one single array of samples, so that the coding tool is activated for the one single array of samples and is deactivated to the other arrays of samples. The encoder may be such that, in case of choice of the second color space, the second group of arrays of samples is constituted by the totality of arrays of samples of the plurality of arrays, so that the coding tool is activated for all the arrays of samples of the plurality of arrays.
The encoder may be configured to activate the coding tool for the array of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays of samples of the plurality of arrays.
The encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples that share the highest resolution.
The encoder may be configured to deactivate the coding tool for all the arrays of samples of the plurality of arrays of samples that do not have the highest resolution.
The encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The encoder may be configured to use the coding tool using at least one tool parameter and to write the at least one tool parameter onto the bitstream [e.g. to be read by the decoder from the data stream].
The encoder may be configured to: write the signalling in the data stream; and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling of the data stream, the at least one tool parameter to be applied to the coding tool.
The encoder may be configured to: write signalling in the data stream which indicates whether the first and second tree-based partitionings are a single partitioning or separate partitionings; and wherein, if a cross-prediction tool is applied, the prediction involves: modifying the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings being separate partitionings, and using the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings being a single partitioning. The encoder may be such that the at least one tool parameter indicates a prediction mode associated to the at least one predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
The encoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from writing in the bitstream another tool parameter for a predetermined coding tool for the second predetermined block.
The encoder may be configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
The encoder may be configured to write the at least one second, modified tool parameter in the data stream.
The encoder may be such that the at least one second, modified tool parameter is a default parameter.
The decision whether to apply the cross-prediction tool or not may be encoded in the signalling of the data stream. The encoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
The encoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
The encoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
The encoder may be such that the at least one tool parameter is shared for multiple arrays of samples, so as to apply the at least one tool parameter to the coding tool for multiple arrays of samples.
The encoder may be such that the at least one tool parameter is shared for all the arrays of samples, so as to apply the at least one tool parameter to the coding tool for all the arrays of samples.
The encoder may be such that the at least one tool parameter includes at least one first parameter for the first array of samples of the plurality of arrays of samples and at least one second parameter for the second array of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array of samples, and the second parameter to the coding tool for the second array of samples.
The encoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter includes at least one third parameter for the third array of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array of samples.
The encoder may be configured to write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples. The encoder may be configured to write, onto the signalling in the data stream, an indication [e.g. associated to a choice] on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
The encoder may be configured to write, onto signalling in the data stream, one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may be configured to write, onto signalling in the data stream, a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The encoder may be such that at least one coding tool [e.g. MRL] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the first or second predetermined block, which is distanced from the first or second predetermined block by a distance determined by a distance parameter [which may be an example of the tool parameter] signalled in the data stream, [the mode may be applied, for example, in the transform domain]
The encoder may be such that at least one coding tool is a MRL.
The encoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter indicates the reference line.
The encoder may be configured to define the position of the portion by: counting a number of rows or columns of samples to be skipped in the at least one previously predicted block to arrive at the portion, wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream, and/or measuring a distance [e.g. in samples] of the at least one previously predicted block from the boundary [e.g. in samples] of the predetermined block neighbouring the at least one previously predicted block, wherein the distance is written onto at least one tool parameter in the signaling of the data stream.
The encoder may be such that at least one coding tool [e.g. MIP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
The encoder may be such that the at least one coding tool is MIP.
The encoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prediction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
The encoder may be such that the prediction matrix is signalled in the at least one tool parameter indicating the matrix [e.g. the matrix may be indexed, and the at least one tool parameter may encode the index].
The encoder may be such that the pre-stored prediction matrix is pre-stored among a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix is to be used.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix for all the arrays of samples of the firs predetermined block and the second predetermined block.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix different from the prediction matrix used for the prediction of the first predetermined block. The encoder may be such that the second prediction matrix correspond to a planar mode.
The encoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], wherein the encoder is configured to perform the intra-prediction, at first, for a first one of the partitions and the encoder is configured, after the prediction [e.g. in all the components] of the first one of the partitions, to perform a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted va!ue(s)] of first one of the partitions.
The encoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete at least one first and/or second predetermined block, and dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual encoding/decoding.
The encoder may be such that the at least one coding tool [e.g. ISP] involves, for each array of samples of the first and/or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks], performing the intra-prediction, at first, for a first one of the partitions and, after the prediction [e.g. in all the components] of the first one of the partitions, performing a prediction on a second one of the partitions, wherein the prediction of the second one of the partitions is at least partially based on the prediction [e.g. predicted value(s)] of first one of the partitions, if a size of the partitions of the first and/or second predetermined block fulfil a predetermined criterion [which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] for the purpose of performing prediction residual encoding/decoding if the size of the partitions of the predetermined block fulfil the predetermined criterion.
The encoder may be configured to: perform an entropy encoding in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
The encoder may be configured to: perform a dequantization in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
The encoder may be configured to: perform a transformation [e.g. DCT, etc.] in which the at least one first and/or second predetermined block is divided into partitions e.g. for the least one first array of samples; and/or perform a transformation [e.g. DCT, etc.] in which the at least one first and/or second predetermined block is divided into partitions e.g. for the at least one second array of samples.
The encoder may be such that the prediction is performed for the entire at least one first and/or second predetermined block.
The encoder may be such that the first partition neighbours at least one first of the previously predicted blocks, while the second partition neighbours the first partition.
The encoder may be such that the first partition is interposed between the second partition and the at least one first of the previously predicted blocks, so that the second partition does not neighbour the at least one first of the previously predicted blocks.
The encoder may be such that the second partition does not neighbour the at least one first of the previously predicted blocks but neighbours at least one second of the previously predicted blocks. The encoder may be configured, after the prediction of the second one of the partitions, to perform a prediction on a third one of the partitions, wherein the prediction of the third one of the partitions is at least partially based on the prediction of the second one of the partitions.
The encoder may be configured, after the prediction of the third one of the partitions, to perform a prediction on a fourth one of the partitions, wherein the prediction of the fourth one of the partitions is at least partially based on the prediction of the third one of the partitions.
The encoder may be configured to iterate the prediction of a subsequent partition after the prediction of a previously predicted partition.
The encoder may be such that each [or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g. rectangular partition].
The encoder may be such that each [or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
The encoder may be such that the at least one first and/or second predetermined block is a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and is partitioned in rectangular partitions (e.g. four 4x16 or four 2x16 partitions), e.g. each partition having one dimension (e.g. horizontal) equal to one respective dimension of the square at least one first and/or second predetermined block (e.g. 16), and the other dimension (e.g. vertical) of each partition being less (e.g. 4 or 2) than the respective dimension of the at least one first and/or second predetermined block so that the sum (e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the at least one first and/or second predetermined block (e.g. 16 or 8).
The encoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g. square partition].
The encoder may be configured to define the partitions [e.g. subblocks] and to indicate the partitions in the at least one tool parameter. The encoder may be configured to define the number of partitions [e.g. subblocks] and to signal it in the at least one tool parameter in the data stream indicating the number of partitions [e.g. subblocks], wherein the encoder is configured to divide the first or second predetermined block into the defined number of partitions.
The encoder may be configured to divide the first or second predetermined block into the plurality of partitions [e.g. subblocks], along a vertical or horizontal dimension, and to signal though the at least one tool parameter.
The encoder may be configured to define the plurality of partitions [e.g. subblocks] so that the partitions [subblocks] have the same area [e.g. apart from quantization or rounding errors]. The number of partitions may be a power of 2.
The encoder may be such that the number of partitions is selectively chosen among (e.g. two or four) e.g. and is indicated through the at least one tool parameter.
The encoder may be such that the number of partitions is selectively decided on the basis of the dimension(s) of the at least one first and/or second predetermined block,
The encoder may be configured to compare at least one dimension of the first or second predetermined block with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4].
The encoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The encoder may be such that at least one coding tool is configured to derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform, wherein a secondary transform is applied to a sub-area of the first or second predetermined block after having subjected to the primary transform. The encoder may be such that the primary transform is a separable transform. [The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII. In some examples, transformskip (no transform) can also be used as a primary transform]
The encoder may be such that the primary transform is a DCT-II. The encoder may be such that the primary transform is a DST-VII or DCT-VIII.
The encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
The encoder may be such that the secondary transform is a non-separable transform. [The secondary transform is, e.g., a data-driven (e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
The encoder may be such that the multi-stage transform is signalled through the at least one tool parameter of the data stream.
The encoder may be such that the primary transform is chosen by the at least one coding tool and is indicated in the at least one tool parameter in the data stream, wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The encoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to indicate, through the at least one tool parameter, the choice in the data stream.
The encoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The encoder may be such that the at least one coding tool [e.g. SBT] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area with inferring a remaining transform area to be equal to zero.
The encoder may be such that the dimensions of the reduced area with respect to the dimensions of the first or second predetermined block have a ratio of 50:50 or 25:75.
The encoder may be configured to indicate, through the at least one tool parameter in the data stream, dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area and the first or second predetermined block.
The encoder may be configured to write, onto signalling in the data stream, an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder may be configured to write, onto signalling in the data stream, an indication on which coding tools are to be selectively individually activated, or deactivated.
The encoder may be configured to indicate, through the at least one tool parameter in the data stream, one single parameter on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may be configured to indicate, through the at least one tool parameter in the data stream, a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block and a reduced area, wherein each of the plurality of parameters is to be applied to the coding toot for a respective array of samples.
The encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
The encoder may be, configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a syntax element from the data stream, indicating whether to activate and/or deactivate the at least one coding tool for respective array of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The encoder may be, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
The encoder may be configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a parameter from the data stream, which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
The encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
The encoder may be such that the first color component is a luma component, the second color component is a chroma component [the third may be another chroma component].
The encoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [the third may be a chroma component Cr] The encoder may be such that the color components form a luma-chroma based color space.
The encoder may be such that the first color component is a green component, the second color component is a blue component [the third may be a red component].
According to an aspect, there is provided a method for block-wise encoding a picture onto a data stream, wherein the picture is divided, according to at least one first tree-based partitioning and a second tree-based partitioning into a plurality of blocks for each of the first and second tree-based partitionings, wherein each of the first and second tree-based partitionings is associated to at least one color space component of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings, each block has one array of samples defined for each of the at least one color space component associated to the respective tree-based partitioning, wherein the method includes predicting, according to at least one predetermined coding tool, at (east one first predetermined block of the first tree-based partitioning and at least one second predetermined block of the second tree-based partitioning which is co- located to the first predetermined block of the first tree-based partitioning.
According to an aspect, there is provided a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below.
Figures
Figs 1 and 2 show an example of encoder.
Figs 3 and 4 show an example of decoder.
Fig. 5 shows an example of a block predicted based on previously predicted neighbouring blocks .
Fig. 6 shows a matrix multiplication according to a MIP tool.
Figs. 7.1-7.5 show operations according to examples.
Fig. 8.1 shows an example of MRL tool.
Fig. 8.2 shows an example of ISP tool.
Fig. 8.3 shows an example of MTS tool. Fig. 8.4 shows an example of SBT tool.
Figs. 9.1 and 9.2 show examples of partitioning.
Initial Discussion
It is known that a colors space (e.g., RGB, YUV, etc.) is defined by a plurality of color components (e.g., red, green, blue forming the space RGB, chroma component Y and two luma components, e.g. U and V or Cr and Cb, forming the color space YUV, etc.).
As explained above, the picture 10 is subdivided in different blocks 18 (among which the predetermined block 18). However, this does not mean that, for each color component of the color space, the blocks are the same. In some cases, in fact, different subdivisions may be generated for different color components. For example, dual tree partitionings are known. See for example Fig. 9.2 (image 10''), showing the luma component Y associated to a first partitioning 25', while the chroma components U and V are associated to a second partitioning 25'' (the same would be for chroma cements Cr and Cb or any other case of chroma components). This means that the blocks 18' of the first partitioning 25' for the luma component Y are in general not corresponding to the blocks 18'' of the second partitioning 25'' associated to chroma components U and V. In this case, blocks 18'' for the chroma component U are the same of block 18'' of the chroma component V, while the blocks 18' for the luma component Y are in general different from the blocks 18" for the components U and V. Hence, samples 18-2' in a particular block 18'' in the second partitioning 25'' do not necessarily need to be in a corresponding block 18' in the first partitioning 25'.
Even if the position of the sample 18-2' (in the first partitioning 25') may be reported to a position 118-2'' in the second partitioning 25'', it is not granted that the sample 18-2' is actually found in the second partitioning 25''. Analogously, even if the position of the sample 18-1'' (in the second partitioning 25'') may be reported to a position 118-1' in the first partitioning 25', it is not granted that the sample 18-1'' is actually found in the first partitioning 25'.
It is also to be noted that for different components (e.g., Y, U and V) different resolutions may be provided: for example, for the luma component Y, the sample 18-2' is not found in a block 18" for the chroma components U and V. This is because different components may have different resolutions (e.g,, the luma component may have better resolution than the chroma components, which means that, in the same space, there are more samples and for the luma component Y than the samples for the chroma components U and V). Accordingly, there can be much more samples for luma components of the picture 10 than the samples for chroma components U and V.
Even though it is not necessary that different partitions are defined for different components, this is notwithstanding a possibility. It is to be noted that, even in cases in which the first partitioning 25' corresponds to the second partitioning 25", the resolution of the blocks 18' associated to the luma component Y may be different from the resolution of the samples of the blocks 18'' for the chroma components U and V.
In other terms, it is possible to define that each block 18' (or 18'') is associated to at least one array (e.g. mono or bidimensional array) for each component: for example, the block 18' for the luma component Y may be understood as having at least one array 19-Y of samples defined in the luma component Y. Analogously, the block 18" may be associated to two arrays 19-U and 19-V, respectively defined in the color components U and V.
Different situations may happen in different cases. For example, it is not necessary to define a first partitioning 25' different from a second partitioning 25'', but in some cases it is possible to define that all the blocks 18 associated to each component (e.g., B, G, R) may be subjected to a same single partitioning 25, as for picture 10' of Fig. 9.1 (this situation can also apply for the space YUV or other space, not necessarily for RGB).
In some cases (e.g., in this case for components RGB), the samples (pixels or bins) may have the same resolution. Hence, for each component (e.g., RGB), an array (e.g., a mono or bidimensional array) 19-B, 19-G, 19-R may be defined with the same numbers of samples for each block 18 for each component (RGB). An example is provided in Fig. 9.1, where the pixels (samples) correspond for different arrays of samples (and also the blocks are always the same).
The use of one space (e.g., YUV and RGB) instead of another one (e.g. for one single block or for a plurality of blocks in the same image) may be signalled, e.g. in signaling 81 (see also Figs. 1-4).
In cases in which there is a different resolution for different components (e.g., Fig. 9.2 for YUV), the resolution of the different arrays of samples (e.g. 19-Y, 19-U, 19V) associated to the same block 18, may be signaled in the signaling 81. In addition or in alternative, the decision whether to use one single partitioning (e.g., 25) or using different partitionings (e.g., 25' and 25") may be indicated in the signaling 81.
Moreover, in some cases the prediction is performed by using coding tools (e.g., at least one of MRL, MIP, ISP, MTS, SBT, and so on).
(In the following, it is to be note that, when using expressions such as “applying a tool to a component X", this may be understood as “applying a tool to the array of samples defined in the component X for a determined block 18".)
In some cases, it can make sense to only apply a coding tool to one single component of the color space, e.g. to the component enjoying of the best resolution: this may be the case of the luma component Y of the color space YUV, according to which only the blocks 18' for the luma component Y may be subjected to the coding tool, while the same coding tool is deactivated for the other components U and V. In fact, it is in general imagined that, by applying the coding tool only to the component enjoying of the highest resolution, computational power is saved.
It has been noted, however, that, by applying the same strategy to different subdivisions (e.g., the subdivision 25 of Fig. 9.1 for RGB space, for which all the R, G, B components are awarded of the same resolution), only one single component would be subjected to the coding tool. This would lead to the fact that only one single component (e.g., the component G) would be subjected to the tool, while the same tool would not be applied to the other components B and R.
It has been noted that this technique in some cases drives to a non-acceptable waste of precision, in particular for components B and R.
However, it has been understood that it is possible to define a strategy according to which the coding tool can be applied to a plurality of components (e.g., at least two components or three components, e.g. all the components of the color space). This strategy may be implemented, for example, by selectively defining (e.g., in the signaling 81) that a block shall be subjected to a coding tool for all the components, or by permitting a selection of the particular component to be subjected to the tool (on the basis, for example, of the signaling 81). Several example are provided in the following examples. Fig. 7.1 shows an example 110 in which the signaling 81 includes a flag which is applied to all the components: in a step 181 it is determined whether to perform the encoding or decoding for all the components (as is defined by blocks 103R, 103G, and 103B) or to perform the prediction, but avoiding the application of the coding tool to all the components at step 104 (hence by deactivating the coding tool for all the components). This can be understood as a signaling at the block level, where a single flag 81 is parsed for the whole block 18, and all the three components will have the same behavior. Even if Fig. 7.1 is prevalently described with reference to the RGB space, these may also be applied to the YUV space or any other spaces, according to the embodiment.
Fig. 7.2 shows an example 120 in which several choices are performed at the component level, while, instead of having one single choice 181 for all the components, different choices 181 Y, 181 U and 181V are carried out for each component Y, U, V. This may be the case of the space YUV, or of other spaces in which different resolutions are provided for different components (the signaling 81 Y, 81 U, 81V can in fact be understood as, in some cases, signaling regarding the resolution of each component), wherein the choice of applying or not applying the tool is carried out on the basis of the different resolutions associated to each component, so as to award the use of the tool for the component, (i.e., luma component Y, enjoying the highest resolution). For both the examples 110 and 120 of Figs. 7.1 and 7.2, it is noted that additional signaling 82 (e.g., parameters for the tool to be applied) may be read at steps 182 (or respectively, 182Y, 182U, and 182V). (In the case of encoding, the parameter is not read but written). In all the cases, in case of negative choice, the step 104 (respectively 104Y, 104U, 104V) may be performed by avoiding the prediction but without the coding tool. To the contrary, the prediction is performed and encoding or decoding is also performed by making use of the respective tool in steps 103 (respectively 103Y, 103U, 103V).
An example representing a mixed technique with respect to those shown in Fig. 7.1 and 7.2 is provided by the method 130 of Fig. 7.3. Here, one single choice 181 is performed for the totality of components (e.g., the signaling 81 can include one single flag indicating that either all the components are to be subjected to the coding tool, or none of the components is to be subjected to the coding tool). After that, the coding tool is applied at step 103M. After that, at step 182M, different parameters are encoded or decoded for respectively different components of the same tool. At the step 103M, the coding tool is applied differently to different components on the basis of the different parameters of step 182M. In case the coding tool is not chosen, the coding tool is deactivated for the totality of the components, and the coding is performed at step 104 of the components without exceptions.
Fig. 7.4 shows an example (method 140) in which the choice 181 HL is performed between the YUV color space and the RGB color space: in case of choice of YUV color space, a step 182 YUV of reading or writing one single parameter for the luma component Y may be performed and, subsequently, a step 103YUV is performed, for which the coding tool is applied only to the luma component Y, while the coding tool is not applied to the chroma components U and V. On the other hand, if the color space RGB is chosen at step 181 HI, the parameters are read or written in the signaling 12 at step 182RGB and, after that, a step 103 is performed. The step 103 can be understood as formed by three steps 103R, 103G and 103B, which are based on parameters 82 different from each other.
Fig. 7.5 shows an example of a method 150 for which a choice is performed at step 181T, regarding the possibility of choosing among a separate tree (e.g,, the first partitioning 25' and the second partitioning 25'') for the image 10'' of Fig. 9.2 (as explained above) or the single tree (e.g., the single partitioning 25 of the image 10' of Fig. 9.1). Accordingly, in case of one single partitioning, it is possible, for example, to read the parameters at the step 181 T and, after that, to perform the encoding or decoding on a predetermined group of the components (e.g., the predetermined group may comprise one single component, such as the luma component Y, while the chroma component U and V may be non-subjected to the coding tool). It is possible to directly continue to one of the methods 120 or 130 as defined above (see also Figs. 7.2, 7.3). In some examples, the separate trees 25' and 25'' do not permit to implement the method 110.
The methods above have been discussed with some simplifications. For example, instead of “applying the tool to an array of samples (e.g. 19-Y, 19-U, 19-V) defined in one color component”, reference has been made to “applying the tool to a color component" for brevity. Further, it is noted that it is possible to selectively activate and deactivate each of the components, e.g. according to the signalling.
It is to be noted that, in some examples, each of the methods 110, 120, 130, 140 and 150 may be repeated for each coding tool of a plurality of coding tools and for each block of the plurality of blocks of each tree. In some examples, the method is repeated only once for all the blocks of the same picture 10. At least the following examples are discussed:
A decoder (54) for block-wise decoding a picture (10) from a data stream (12). The picture (10) is divided (25) into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (19-G, 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B, 19-U) of samples defined in at least one second space component (B, U). The decoder (54) may be configured to perform a prediction of the predetermined block (18), in at least the first space component (G; Y) and the second space component (B, U), based on at least one previously predicted block (17a-17c) neighbouring the predetermined block (18). The decoder (54) is configured to apply (103G, 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and apply (103B, 103U) at least one coding tool to the at least one second array (19-B, 19-U) of samples.
Another example is directed to a decoder (54) (see Fig. 9.2) for block-wise decoding a picture (10) from a data stream (12). The picture (10'') is divided, according to at least one first tree-based partitioning (25') and a second tree-based partitioning (25'') into a plurality of blocks (18', 18'') for each of the first and second tree-based partitionings (25', 25"), wherein each of the first and second tree-based partitionings (25', 25") is associated to at least one color space component (Y, U, V ) of a plurality of color space components forming a color space. For each of the first and second tree-based partitionings (25', 25"), each block (18', 18'') has one array (19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (V, U, Y) associated to the respective tree-based partitioning (25', 25''). The decoder (54) is configured to predict, according to a predetermined coding tool, at least one first predetermined block (18) of the first tree-based partitioning (25') and at least one second predetermined block (18) of the second tree-based partitioning (25'') which is co-located to the first predetermined block (18) of the first tree-based partitioning (25').
A definition of two co-located blocks may be obtained by taking into consideration Fig. 9.2: the first block 18' (associated to the first partitioning 25' and to the component Y) is not coincident with the second block 18" (associated to the second partitioning 25'' and to the components U and V). However, the first block 18' happens to be “co-located” with the second block 18'' by virtue of one relevant sample 18-2' of the first block 18' being within the boundary of the second block 18'': as can be seen, the relevant sample 18-2' of the first block 18' has the projection in the second block 18'' (indicated with 118-2") within the boundary of the second block 18''. Analogously, the second block 18" happens to be “co- located" with the first block 18' also by virtue of one relevant sample 18-1'' of the second block 18'' being within the boundary of the first block 18': indeed, the relevant sample 18-1'' of the second block 18" has the projection in the first block 18' (indicated with 118-1') within the boundary of the first block 18'. The “relevant sample" may be the high-left sample in the boundary of the block, in other examples the “relevant sample” may change according to the definition: it may be, for example the sample in the middle of the block, etc.
Accordingly, when two blocks of different partitionings are co-located, it is possible to perform a method 110 and operate by using the same parameters for both the blocks 18' and 18''.
Notably, the same decoder 54 that makes use of the dual tree 25' and 25" may make use of one single tree 25 (e.g. based on a choice as in Fig. 7.5).
Analogous definitions can be made for encoders.
It will be shown in the following that it is possible to discriminate between different behaviors that can be taken. Some (non-exhaustive) examples have already been provided above in Figs. 7.1-7.5. In particular, reference can be made, for example, to Fig. 7.5, in which it is selected between a single tree and a separated tree. A single tree is shown Fig. 9.1 , where different components have the same partitioning, and the blocks may be basically the same. In other cases (e.g. in Fig. 9.2), we have the dual tree in which one component is subjected to a first partitioning (e.g., the luma or green component) and other components (e.g., the chroma or red and blue components) are subjected to a different partitioning. Therefore, a first predetermined block 18' of the first partitioning is generally different from the second predetermined block 18'' of the second partitioning (e.g., associated to two arrays of two different space colors, such as the chroma components).
It will be shown that there is the possibility of implementing a so-called “cross component prediction tool” (direct mode), according to which, for the coding tool(s) of the first partitioning (e.g., associated to the luma component or green component), the tool parameter(s) of the first partitioning may be copied onto the tool parameters of the same block also for other components in case of single tree, while the tool parameter(s) obtained for the first predetermined block 18' associated to the first partitioning may be modified for the second block 18" of the second partitioning (e.g., for the other components, such as red color and the blue color, or the chroma components). For example, coding parameters used for the second predetermined block 18'' of the second partitioning may be chosen from a default value in some cases (e.g., in case of use of a particular tool e.g. MIP), hence embodying a modification of the tool parameter from the first predetermined block 18' to the second predetermined block 18''. This may be the example of the use of the so-called “cross-prediction tool” or “direct mode” (notably, when the “cross-prediction tool” is used, another “at least one coding tool” may be used, and this can be for example one of a MIP, MRL, ISP, MTS, SBT etc.).
Discussion of the examples
For video signals using e.g. the Y'CbCr color space representation, the luma component (U') comprises the most information of the signal. Further data reduction prior the video compression stage is realized by subsampling the chroma components (i.e., Cband Cr). A typical chroma format for end-user applications is 4:2:0, i.e. , the horizontal and vertical spatial resolution of the chroma is half of the luma. Therefore, several intra and inter coding tools are either applied to the luma component only, or have a special handling in the case of the chroma components: e.g., Intra Sub-Partitions (ISP), Matrix-based Intra Prediction (MIP), Multiple Reference Lines (MRL), Multiple Transform Selection, (MTS) or Sub-Block Transforms (SBT).
It is, however, not always the case that the main signal information is mainly concentrated in the luma component due to camera or optical characteristics that result in the final digital signal representation. Moreover, in the case of a direct coding in R'G'B' color space, the luma only design for the coding tools is suboptimal. This is especially crucial when the chroma format is 4:4:4 where the application of the luma only coding tools to chroma is less complex while the chroma signal information is higher than for the 4:2:0 or 4:2:2 chroma subsampling formats. Note that for direct coding in R'G'B', the encoder typically employs the G' component as luma, and furthermore, the typical chroma format for R'G'B' is 4:4:4.
Examples
Utilization of the tools in the three components
As a solution to the above inconsistency of for example applying a tool to a single component in the case of the 4:4:4 chroma format, these examples describe the usage of the luma only tools to all three components if the chroma format is different than 4:2:0. Although the benefit is more significant in the case of R'G'B' signals, the following examples is intended to be applied generically for all possible 4:4:4 color spaces. The usage of the aforementioned “luma only” tools may be optional, i.e., it is signalled on a block level whether the tool is to be applied or not. Moreover, such a “luma only” tool can be applied in different configurations/modes where the specific configuration/mode is also signaled on a block level. The present examples also deal with various forms of interdependencies or independencies between the 4:4:4 color components of a given block that can be present in the latter signaling of a tool and of its configurations/modes. Signalling
If such a “luma only” tool has a flag that enables/disables it on a block level, then the signaling can be done in various ways. Two examples are given as follows:
• Block level (e.g. Fig. 7.1) o A single flag (or more in general signalling 81) at the block level is parsed at the decoder. o All three components will have the same behavior.
• Component level (e.g. Fig. 7.2) o One flag will be parsed per component at the decoder o Each component is independent from each other
• Utilization of the Direct Mode (cross prediction tool) o The signaling for the luma component for the tool X (e.g. MIP) is done identically as in the "luma only" case. o If the chroma components select the Direct Mode (copy of the luma mode) and the luma mode is using the tool X, then the chroma components will use tool X as well with the same parameters as the luma component o This can be used in the RGB case as well. For example, G would be analogous to the luminance and R and B to the chroma components o Note that it may be possible that the mode cannot be copied for certain tools if the block sizes are not compatible o
Other possibilities could include mixed block/component signaling approaches (e.g. Fig. 7.3).
On the other hand, the individual availability conditions of each tool need to be considered. For example, ISP can be restricted not to be used for small (e.g. 4x4) blocks to reduce memory bandwidth and latency in hardware implementations.
If each component has its own signaling flags (i.e., the components are independent), then the entropy coding, e.g. Context Adaptive Binary Arithmetic Coding (CABAC), context of each component can depend on the value of the context for other components. For example, let the tool X have a flag a that indicates whether the tool is used or not. Then, a possible approach could be the following:
• Component green uses a default context 0
• Component blue uses as a context the value of the flag used for component green
• Component red uses as a context the value of the flag used for component blue The same example could be used in the YUV case:
• Component Y uses a default context 0
• Component U uses as a context the value of the flag used for component Y
• Component V uses as a context the value of the flag used for component U Different sequences of the components are possible.
High level syntax element to enable/disable the application of the tool in the three components
In addition, a High Level Syntax (HLS) flag may be used to enable the aforementioned tools only in one component (typically Y or G) or in all three.
Examples with particular tools
A non-exhaustive summary of examples of coding tools is provided below.
Reference is preliminary made to Fig. 5, which shows a block 18 (which may be one of the first and second predetermined blocks 18' and 18'') which is predicted from neighboring blocks 17a, 17b, 17c (which have been predicted in a previous iteration). In particular, in some example, only the adjacent portions 17'a, 17'c and (in some cases)
17'b may be used.
In the following examples, reference is often made to the decoder, but complementary operations are performed at the encoder. Hence, expressions like “the decoder parses" also imply that “the encoder writes", and so on.
MRL
MRL is discussed with reference to Fig. 8.1. Through MRL the intra prediction on a generic block 18 (e.g., the blocks 18' and 18'' of Fig. 9.2, which may be the same or different from each other) is not based on the directly samples 17'a, 17'c adjacent to the block 18, but on samples (17'''a, 17'''c, “reference line”) which have a predetermined distance (e.g.,. defined by a parameter 17ccc) from the block 18. In the case of Fig. 8.1, also the lines 17'' a and 17''c are skipped (e.g., the signalled parameter 82, indicates that 17ccc=2 and 17acc=2). MRL allows the utilization of a different line of spatially neighboring, available reference samples to generate an intra prediction e.g. for the luma component. There may be two flags at the block level. One indicates whether MRL is used or not, and the other one signals which reference line will be used to generate the prediction. The present examples would allow MRL for all three 4:4:4 components. Some possible signaling schemes are outlined in the following:
• Block level (e.g. Fig. 7.1) o The decoder parses one single flag to indicate whether MRL is used or not. o If it is used, then a second flag is parsed to indicate which reference line shall be used for all three color components. o Thus, all three color components either do not apply MRL or apply MRL using the same reference line.
• Component level (e.g. Fig. 7.2) o For each component,
▪ The decoder parses a flag that indicates whether MRL is used for that component or not.
▪ If it is used, then a second flag will indicate which line shall be used o Thus, all three components are independent from each other regarding the application of MRL.
• Mixed block/component level (e.g. Fig. 7.3) o The decoder parses one single flag to indicate whether MRL is used or not at the block level. o If it is used, then for each component,
▪ The decoder parses a flag that will indicate which reference line shall be used at the given component level.
• Direct Mode case (cross prediction tool): see below.
In the cases of Figs. 9.1 and 9.2, the coding tool [MRL] may involve, for each array of samples of the first predetermined block 18' of the first partitioning 25' and second predetermined block 18" of the second partitioning 25", for which MRL is to be applied, an intra prediction of the respective array of samples from a portion formed by previously decoded samples (17'''a, 17'''c) which are defined in the space component of the respective array of samples and are distanced from the first and second predetermined block 18', 18" by a distance determined by a distance parameter (17acc and/or 17ccc) [which may be an example of the predetermined tool parameter 82] signalled in the data stream 12. The decoder may retrieve (or the encoder may defined) the position of the portion (17''c, 17'''a, “reference line”) by counting a number of rows or columns of samples to be skipped in the at least one previously predicted block (17a-17c) to arrive at the portion (17"c, 17"'a), wherein the number of rows or columns of samples to be skipped is obtained from (or written onto) at least one tool parameter obtained in the signaling (82) of the data stream (12). In addition or alternative, the decoder may retrieve (or the encoder may define) the position of a portion (17''c, 17'''a) by measuring a distance [e.g. in number of samples] of the at least one previously predicted block (17a, 17b, 17c) from the boundary (18a, 18c) [e.g. in number of samples] of the first or second predetermined block (18', 18") neighbouring the at least one previously predicted block (17a-17c) (the distance may be obtained from, or written onto, at least one tool parameter obtained in the signaling of the data stream).
In case of direct mode (cross prediction tool) decoder (or encoder) may: use the at least one tool parameter (82, 17ccc, 17acc) indicating the reference line to be used for the intra prediction for applying MRL to the first predetermined block 18' (e.g., luma component or green component), and modify the at least one tool parameter for the second predetermined block 18'' (e.g., chroma components or red and blue components) in case of the first and second tree-based partitionings (25', 25'') being separate partitionings; and use the same tool parameter (82, 17ccc, 17acc) indicating the reference line to be used for the intra prediction for applying MRL to both the first and second predetermined block 18', 18", in case of the first and second tree-based partitionings (25', 25'') being a single partitioning.
In case of modification, a default value may be used. In case of use of a default value, the encoder may refrain from encoding the modified value of the at least one tool parameter, and the decoder will understand which default value to be used from the fact that two partitionings are used combined to the presence of direct mode (cross prediction tool).
In other cases, in case of modification, there is the possibility of using, for the second predetermined block 18'', the same parameter used for the co-located block.
MIP
Fig. 5 shows a block 18 (which may be one of the first and second predetermined blocks 18' and 18") which is predicted from neighboring blocks 17a, 17b, 17c (which have been predicted in a previous iteration). In particular, in some example, only the adjacent portions 17'a, 17'c and (in some cases) 17'b may be used.
In MIP, an inter prediction mode is based on a matrix multiplication as in Fig. 6.
With reference to Figs. 5 and 6, a predetermined block 18 (which may be one of the predetermined blocks 18' and 18'' of the first or second partitioning 25' or 25'') may comprise Q values to be predicted (which, at the end of the operations, will also become “predicted values”, and will contribute to prepare the prediction for the subsequent, neighbouring blocks). If the block 18 (18', 18'') has M row and N columns, Q=M*N. The Q values of the block 18 (18', 18'') may be in the spatial domain (e.g., pixels) or in the transform domain (e.g., DCT, etc.). The Q values of the block 18 (18', 18'') may be predicted on the basis of P values taken from the neighboring blocks 17a-17c, which are adjacent to the block 18 (and in particular to its boundaries 18a and 18c). The neighboring blocks 17a-17c may be in the closest positions (e.g., adjacent) to the block 18 (18', 18''). The P values of the neighboring blocks 17a-17c have already been processed and predicted. The P values are indicated as values in portions 17'a-17'c, to distinguish them from the blocks they are part of (in some examples, 17'b is not used).
The Q samples of the predetermined blocks 18 (18', 18'') may be obtained by multiplication of a vector 17P (having P entries, each entry being an element of the neighbouring, adjacent portions 17'a -17'c) multiplied by a QxP matrix 17M which has Q lines (one for each sample of the block 18 to be predicted) and P columns (one for each of the values of the neighboring blocks, or a subset thereof). In this case, the prediction may be obtained by multiplication, and the QxP matrix 17M may be obtained among a set of predetermined matrixes (the matrixes can be stored in a non-transitory memory unit and may be known by both the encoder and the decoder). The matrixes may be indexed (e.g., every matrix may be associated to a particular number known by both the encoder and the decoder) and may be indicated in signaling 82, for example. The matrixes may be obtained by offline training and the decision of which matrix is to be used is made by the encoder, so that the decoder may apply the same prediction by using the same matrix 17M. The index may therefore be part of the signaling 82 (e.g. in the at least one tool parameter). The different matrixes are in general associated to different MIP prediction modes, known as planar mode, DC mode, etc. In the art there are known several conventional modes, such as DC mode, planar mode and 65 directional prediction modes. There may be known, for example, 67 modes, e.g. those modes known as DC mode, planar mode, and 65 directional modes (see, for example, HEVC). In examples, MIP modes are used e.g. for luma components, but they may be avoided for chroma components.
MIP allows the usage of new intra prediction modes that are calculated via a matrix multiplication. These modes may have been trained offline to adapt to the statistics of intra predicted blocks. There may be a flag at the block level to indicate whether MIP is used or not, and then there is another syntax element, which codes which MIP mode is going to be used.
Some of the present examples allow MIP for three 4:4:4 components. Some possible signaling schemes are outlined in the following:
An example may refer to the “Block level”
• The decoder parses one single flag to indicate whether MIP is used or not for all three color components.
• If MIP is used, then a second syntax element is parsed to indicate which MIP mode is used for all three color components.
• Thus, all three color components either do not apply MIP or apply MIP using the same MIP mode .
Another example may refer to the “Component level”:
For each component:
• The decoder parses a flag that indicates whether MIP is used for that component or not
• If it is used, then a second syntax element will indicate which MIP mode shall be used
• Thus, all components are independent from each other regarding the application of MIP.
Another example may refer to the Mixed block/component level:
• The decoder parses one single flag to indicate whether MIP is used or not at the block level
• If it is used, then for each component, i. The decoder parses a flag that will indicate which MIP mode shall be used at the given component level. Another example may refer to the Direct mode case (which may be a case of implementing the cross-component tool)
• The decoder parses a flag for the first or main component (e.g. luma in YUV or G in RGB) to indicate its usage on the first or main component. Then, the corresponding MIP mode that will be used for this component is also parsed.
• If the secondary components (e.g. chroma components in YUV or R and B in RGB) use the Direct Mode (which implies a copy of the mode of the main component) and the main component is using MIP, then the secondary components will utilize MIP with the same mode employed by the main component in the co-located block.
• Note that the secondary components can only copy the MIP mode if they have the same MipSizeld, given that the interpretation of the mode (and the number of modes) depends on this variable, which in turn depends on the block size. In the 444 Single tree case, the block and the co-located block always have the same MipSizeld.
More in general, the application of the direct mode (cross-prediction tool) to MIP, may imply, particularly in the direct mode case, different behaviors whether we are in the situation of the single tree (as in Fig. 9.1) or in dual tree (as in Fig. 9.2), or, said in another way, whether the first and second partitionings are the same or are different partitionings (e.g. whether the partitionings 25' and 25" of Fig. 9.2 are the same partitioning or are different partitionings). As explained above, the at least one tool parameter used for indicating which prediction matrix is to be chosen among (together with) the plurality of pre-stored prediction matrixes may be used either only for one partitioning (e.g., for the luma component only) or for both the partitionings in case the two partitionings are the same (and the blocks 18 are coincide with each other). In particular, if we are in the single tree case (and therefore the predetermined blocks 18 coincide), and the direct mode is used (the cross component tool is activated), then the prediction matrix chosen for one component (e.g., luma component for the predetermined block 18) is also chosen identically for the other components (e.g., luma and chroma) for the same block. Notably, both the encoder and the decoder have knowledge of the pre-stored matrixes.
The same may apply, in the RGB space, for the green, red, and blue color components, in which the green component plays the role of the luma component. In case the direct mode case is used (i.e. , the cross component tool is activated) and we are in the dual partitioning and the first partitioning 25' is different from the second partitioning 25'', then the at least one tool parameter, indicating which prediction mode is to be used, will be used for the first partitioning 25' (e.g., luma component or green component), while the tool parameter will be modified for the second partitioning 25'' (e.g., chroma components or red components and blue components). In particular, a default prediction mode can be chosen. For example, the planar mode can be chosen for the second partitioning 25''.
Therefore, there is disclosed a decoder/encoder which reads/writes a signalling (e.g. 81) in the data stream (e.g. 12) which indicates whether the first and second tree-based partitionings (25', 25") are a single partitioning or separate partitionings. When a cross- prediction tool is applied (e.g., direct mode) to MIP, there may be the following behavior: use the prediction mode indicated in the at least one tool parameter for the first predetermined block 18' and use a different prediction mode (e.g. a default value), hence modifying the at least one tool parameter for application of the predetermined coding tool (MIP) to the at least one second predetermined block 18'', in case of the first and second tree-based partitionings (25', 25") being separate partitionings, and use the prediction mode indicated by the at least one tool parameter for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (25', 25'') being a single partitioning.
Hence, the predetermined coding tool [MIP] may involve a prediction matrix (17M) chosen among a plurality of prediction matrixes, the prediction matrix (17M) being chosen according to the at least one tool parameter on the basis of signalling indicating the matrix [e.g. the matrix may be indexed according to a particular pre-defined indexing, and the signalling may encode the index].
The predetermined coding tool [MIP] may involve, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples. The pre-stored prediction matrix (17M) may be pre-stored among a plurality of pre-stored prediction matrixes. The at least one tool parameter may indicate which pre-stored prediction matrix (17M) is to be used.
If both the cross-prediction tool is applied and the first and second tree-based partitionings are a single [same] partitioning, it is possible to apply the same prediction matrix (17M) for all the arrays of samples of the first predetermined block and the second predetermined block.
If both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, it is possible to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (17M) different from the prediction matrix (17M) used for the prediction of the first predetermined block.
The second prediction matrix (default matrix) may correspond to a planar mode, and the modified parameter therefore may point to the planar mode.
Notably, it is possible to refrain from encoding parameters twice (a first one for a first partitioning 25', and a second for the second partitioning 25'').
The decision whether to apply the cross-prediction tool or not (i.e. whether to use the direct mode or not) is encoded in the signalling of the datastream. Hence, the decoder will know whether the cross-prediction tool is to be used or not. The decision whether to apply the cross-prediction tool or not may be bade on a block base. There may be, for example, a syntax element which may define, for the second partitioning 25", whether the direct mode (cross-prediction tool) is to be used or not. In some examples, the syntax element indicates that the direct mode (cross-prediction tool) is to be used for the second partitioning 25", then the same tool parameter used for the first partitioning 25' will be used also for the second partitioning 25 otherwise the parameter modification will be carried out (e.g., using a default parameter). ISP
Reference is made, for example, to Fig. 8.2, showing a block 18 (which may be one of the first and second predetermined block 18' and 18'' of Figs. 9.1 and 9.2) divided into partitions 18-1 to 18-4 which are obtained from a already predicted neighbouring samples 17.
ISP may divide an intra predicted block into 2 or 4 (or different numbers of) partitions horizontally or vertically, where the number of partitions depend on the block dimensions. Each of these partitions is treated like a normal block. Therefore, the reconstructed samples of each partition can be used to generate the prediction of the next partition. There may be a flag (e.g. signalling 81) at the block level to indicate whether ISP is used or not, and if it is utilized, then a second flag (e.g. too parameter 82) is parsed to signal which split type (horizontal or vertical) shall be used.
The present examples allow ISP for all three color components. Some possible signaling schemes are outlined in the following:
Block level:
• The decoder parses one single flag to indicate whether ISP is used or not for all three color components.
• If it is used, then a second syntax element is parsed to indicate which ISP split type is used for all three color components.
• Thus, all three color components either do not apply ISP or apply ISP using the same ISP split.
Component level:
• For each component,
• The decoder parses a flag that indicates whether ISP is used for that component or not
• If it is used, then a second syntax element will indicate which ISP split type shall be used
• Thus, all components are independent from each other regarding the application of ISP.
Mixed block/component level
• The decoder parses one single flag to indicate whether ISP is used or not at the block level
• If it is used, then for each component, • The decoder parses a flag that will indicate which ISP split type shall be used at the given component level.
Direct Mode case (see below)
Moreover, the present examples allow an Adaptive Color Transform (ACT) in combination with ISP. In this case, all three components will use the same ISP split type and the color transform will be applied on a partition basis. For example, if a 16x16 block of a sequence coded in RGB uses the color transform and performs the vertical ISP split, then each component will be divided into four 4x16 partitions:
1. R1.B1.G1
2. R2,B2,G2 3 R3 B3 G3 4. R4,B4,G4
Then, the color transform will be applied first on (R1, B1, G1). Then, after the reconstructed samples have been generated for the 3 components, a prediction will be generated for (R2, B2, G2) and the color transform will be applied on it, etc.
The same example in YUV (chroma and luma) would obtain the following sequence:
1. Y1 ,U1 ,V1
2. Y2,U2,V2
3. Y3,U3,V3
4. Y4.U4.V4
In order to facilitate hardware implementations, the intra prediction can be applied to the complete, non-split block (e.g. 8x16) while the block is split into four 2x16 blocks to transform the prediction residual.
ISP (“predetermined coding tool”) may involve, for each array of samples of the first and/or second predetermined block for which the ISP is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4). The decoder/encoder may perform the intra-prediction (44, 44'), at first, for a first partition (18-1) and, after the intra-prediction [e.g. in alt the components] of the first partition (18-1), it may perform a prediction on a second partition (18-2) (e.g. adjacent to the first partition). The prediction of the second partition (18-2) may be at least partially based on the prediction of first partition (18-1). This procedure reiterates up to the end of the blocks.
In order to predict the subblocks, other coding tools may be used. For example, MIP may be used.
In some examples, the division into subblocks is subjected to a particular criterion (e.g., the subdivision is performed
Hence the first and second predetermined block 18', 18'' are divided into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual coding.
ISP may involve, for each array of samples of the first and/or second predetermined block (18', 18''), an intra prediction from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (18', 18''). In particular, it is possible to divide the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4), perform the intra-prediction (44, 44'), at first, for a first one (18-1) of the partitions and, after the prediction [e.g. in all the components] of the first partition (18- 1), perform a prediction on a second partition (18-2).
It is possible to divide the respective array of samples into a plurality [e.g., two or four or a different number] of partitions [e.g. subblocks] (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual coding if the size of the partitions of the predetermined first and/or second predetermined block (18', 18'') (18) fulfil predetermined criterion. The predetermined criterion may involve, for example, the comparison of the number of one or both dimensions of the first or second predetermined block 18', 18'' with a predetermined threshold, so as to divide the first or second predetermined block 18', 18" into a plurality of subblocks in case of the comparison indicating that the dimension(s) is(are) greater than the predetermined threshold.
The different partitions of a same block may be distinguished from each other also in other units of the encoder/decoder. It is possible to perform an entropy encoding/decoding (56) in which the first and/or second predetermined block (18', 18") is divided into partitions (18- 1 to 18-4); and/or in which the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples. It is also possible to perform a quantization/dequantization (38') in which the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the at least one first array of samples; the first and/or second predetermined block (18') is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples. It is also possible to perform a transformation/inverse transformation in which the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the least one first array (19-G, 19-Y) of samples; and/or the first and/or second predetermined block (18', 18'') is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
In other examples, however, the prediction may be performed for the entire first or second predetermined block (18', 18''), i.e. including all the partitions of the block.
With reference to Fig. 5, it is noted that the first partition (18-1) may neighbor at least one first (17c) of the previously predicted blocks, while the second partition (18-2) may neighbor the first partition (18-1). The first partition (18-1) may be interposed between the second partition (18-2) and the at least one first (17c) of the previously predicted blocks, so that the second partition (18-2) does not neighbor the at least one first (17c) of the previously predicted blocks. The second partition (18-2) may not neighbor the at least one first (17c) of the previously predicted blocks may neighbor at least one second (17c) of the previously predicted blocks.
After the prediction of the second one (18-2) of the partitions of the first and second predetermined block 18', 18'', it is possible to perform a prediction on a third one (18-3) of the partitions, wherein the prediction of the third one (18-3) of the partitions may be at least partially based on the prediction of the second one (18-2) of the partitions. It is possible, after the prediction of the third one (18-3) of the partitions, to perform a prediction on a fourth one (18-4) of the partitions, wherein the prediction of the fourth one (18-4) of the partitions is at least partially based on the prediction of the third one (18-3) of the partitions.
In general, it is possible to iterate the prediction of a subsequent partition (18-2) after the prediction of a previously predicted partition (18-1).
Each [or at least one] of the partitions 18-1 to 18-4 may have a horizontal dimension larger than the vertical dimension [e.g. rectangular partition]. In other cases, each [or at least one] of the partitions 18-1 to 18- may beave a vertical dimension larger than the horizontal dimension [e.g. rectangular partition].
In some examples, at least one first and/or second predetermined block (18', 18'') may be a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and may be partitioned in rectangular partitions (e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions). E.g. each partition 18-1 to 18-4 may have one dimension (e.g. horizontal or vertical) equal to one respective dimension of the square first and/or second predetermined block (18) (e.g. 16 or 8), and the other dimension (e.g. vertical or horizontal) of each partition being less (e.g. 4 or 2) than the respective dimension of the first and/or second predetermined block (18) so that the sum (e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the first and/or second predetermined block (18) (e.g. 16 or 8). in some cases, each of the partitions may have a vertical dimension equal to the horizontal dimension [e.g. square partition].
It is possible to define the partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4) on the basis of signalling (82), e.g. the at least one tool parameter from the data stream (12). In cases in which the direct mode (cross prediction tool) is used and a single tree partitioning is used, then it is also possible that the at least one tool parameter as obtained from (or written into) the signalling is only used for one component (e.g., luma component or green component), while the at least one tool parameter is modified when the dual tree partitioning is used, despite the direct mode (cross prediction tool) is used. The modification of the at least one tool parameter may provide a default value, which is therefore used for the remaining color components (e.g., chroma components, red and blue components).
The at least one tool parameter may therefore define the number of partitions [e.g. subblocks] (18-1, 18-2, 18-3, 18-4) [e.g. at least one tool parameter], so that the first or second predetermined block (18', 18'') is divided into the number of partitions obtained from the at least one tool parameter (but, when the at least one tool parameter is modified, then a different tool parameter will be used).
Also the subdivision among vertical or horizontal dimension may be based on eh at least one tool parameter (but when there is the modification of the at least one tool parameter, then for some color components a different value may be used, e.g. a default value). The plurality of partitions [e.g. subblocks] (18-1 , 18-2, 18-3, 18-4) may have the same area [e.g. apart from rounding errors]. The number of partitions may be a power of 2 (e.g., 2, 4, 8, 16...).
The number of partitions may be chosen selectively (e.g. among two or four) e.g. as indicated in the at least one parameter. For example, it may be selectively decided on the basis of the dimension(s) of the predetermined block (81).
It is also possible to compare at least one dimension of the first or second predetermined block (18', 18'') with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (18', 18'') being below the respective threshold [e.g., no ISP for blocks of size equal to or less than 4x4],
The ISP may further include subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis. For each array of samples of the plurality of arrays of samples, the same subdivisions into partitions may be carried out.
The number of partitions may depend on at least one of the dimensions of the first and second predetermined block (18', 18"). In particular, the larger one dimension [horizontal and/or vertical] of the first and/or second predetermined block (18', 18''), the higher the number of partitions [e.g. blocks with larger size will have more partitions]. It is possible to apply the ISP in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool. Alternatively, it is possible to apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
A multi-stage transform may be signalled in the at least one parameter (82).
In some examples, in case of modification of the coding parameter (dual tree and direct mode), then for the second predetermined block 18" of the second partitioning 25'', the same parameter may be chosen that has been used for the co-Iocated block 18' in the first partitioning 25'. MTS
With reference to Fig. 8.3 (which is shown at the encoder side), MTS is now discussed. MTS may be configured to derive the prediction residual from the data stream transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform T1 (which may be a DCT-Il, DST-VIl or DCT-VIII). A secondary transform T2 (e.g. LFNST) is applied to a sub-area 18.2 of the block 18 after having been subjected to the primary transform T1. Hence, only the little sub-area 18.2 is subjected to the secondary transform T2 while the whose area of block 18 is subjected to primary transform T1.
The at least one tool parameter may indicate, for example, which transforms are used.
MTS allows the utilization of different pairs of separable transforms (one in horizonal and one in vertical direction) other than (DCT-II, DCT-II). For example, (DST-VIl, DST-VIl) or (DCT-VIII, DCT-VIII). A syntax element coded in truncated unary coding is signaled by the encoder and parsed at the decoder side to indicate which transform pair shall be used.
The present examples allow MTS on all three color components. Some possible signaling schemes are outlined in the following:
• Block level o The decoder parses a syntax element to indicate which transform pair is used. o All three color components use the same transform pair.
• Component level o For each component,
▪ The decoder parses a syntax element to indicate which transform pair is used on the given component.
▪ Thus, all three components are independent from each other regarding the application of MTS.
• Direct Mode case (see below)
The primary transform may be a separable transform. [E.g. the primary transform may be implemented as the combination of two (one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VIl and the DCT-VIII. In some examples, transformskip (no transform) can also be used as a primary transform]. It is possible to operate in transformskip mode in case of the first transformation being the identity transformation. The secondary transform T2 may be a non-separable transform. [The secondary transform may be, e.g., a data-driven (e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (LFNST)]
In the cases of Figs. 9.1 and 9.2, it may be if a cross-prediction tool (direct mode) is applied, then the following behavior may be followed: modify the tool parameter (82) (e.g., indicating which primary transform T1 and/or which secondary transform T2 is to be used) in case of the first and second tree-based partitionings (25', 25") being separate partitionings (e.g., as in Fig. 9.2), and use the at least one tool parameter (82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (25', 25") being a single partitioning (e.g., as in Fig. 9.1).
When the tool parameter is modified, in some examples a default parameter is chosen (e.g., the primary and secondary transforms T1 and T2 may be default transforms.
In some examples, in case of modification of the coding parameter (dual tree and direct mode), then for the second predetermined block 18'' of the second partitioning 25'', the same parameter may be chosen that has been used for the co-located block 18' in the first partitioning 25'.
SBT
After calculating the inter prediction of a certain block, SBT divides the corresponding block of prediction residual samples into 2 subblocks of residuals with a ratio of 50:50 or 25:75. In both cases, only one of the subresiduals (the smallest one) is signaled and the other one is assumed to not have transformed residual samples, i.e. typically indicated by a coded block flag (CBF) equal to zero. In addition, the division can be horizontal or vertical. It may be allowed, in some examples, the usage of SBT in all three 4:4:4 color components. Some possible signaling schemes are outlined in the following:
• Block level o The decoder parses one single flag to indicate whether SBT is used or not. o If it is used, then the remaining SBT parameters (split orientation and ratio) are parsed and used jointly for all the color components. o Thus, ail three color components either do not apply SBT or apply SBT using the same parameters. • Component level o For each component,
▪ The decoder parses a flag that indicates whether SBT is used for that component or not.
▪ If it is used, then the other SBT parameters (split orientation and ratio) are parsed o Thus, all three components are independent from each other regarding the application of SBT.
• Mixed block/component level o The decoder parses one single flag to indicate whether SBT is used or not at the block level, o If it is used, then for each component,
▪ The decoder the remaining SBT parameters (split orientation and ratio) that shall be used at the given component level.
• Direct Mode case (see below)
Therefore, SBT may involve, for each array of samples of generic block 18, an inter prediction in which there is a restriction to a reduced transform area 18.R, while inferring a remaining transform area to have sample values which are equal to zero. The dimensions of the reduced area 18.R with respect to the dimensions of the block (1) may have a ratio of 50:50 or 25:75, for example. The tool parameter (signalling) may include dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area 18.R and the block 18.
Signalling (81 ) in the data stream (12) may provide an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
In the cases like those shown in Figs. 9.1 (single tree 25') and 9.2 (dual tree 25"), there may be the direct mode (cross component tool), according to which the following behavior may be adopted: use the tool parameter (82) for application of SBT to the first predetermined block 18', but modify the tool parameter (82) for application of SBT for both the second predetermined block 18" in case of the first and second tree-based partitionings (25', 25") being separate partitionings (i.e. dual partitioning, like in Fig. 9.2), and use the tool parameter (82) for application of SBT to the first predetermined block 18' and the second predetermined block 18'' in case of the first and second tree-based partitionings (25', 25'') being a single partitioning (i.e. single partitioning, line in Fig. 9.1). The primary transform may be chosen by (or written onto) the at least one coding tool, so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The decoder (encoder) may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (e.g. flag 81) in the data stream (12).
The decoder (encoder) may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding toot is activated, a particular multi-stage transform.
SBT may involve, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (18.R) with inferring a remaining transform area to be equal to zero. The dimensions of the reduced area (18.R) with respect to the dimensions of the first or second predetermined block (18', 18") may have a ratio of 50:50 or 25:75 (and the choice may be signalled in the at least one tool parameter).
The at least one data stream (82) may indicate dimensional and/or positional relationships [e.g. split orientation and/or ratio) between the reduced area (18.R) and the first or second predetermined block (18', 18").
It is possible to use context-based adaptive binary arithmetic coding, CABAC.
For the first or second predetermined block, it is possible to decode, for each array of samples of the first or second predetermined block (18', 18''), a syntax element from the data stream (12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples. The decoder may be configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
The determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
It is possible to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
It may be possible, for the first or second predetermined block, to: decode, for each array of samples of the first or second predetermined block, the at least one coding parameter from the data stream (12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
The determination of the context may involve the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith. The decoder may use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter. It is possible to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
In some examples, in case of modification of the coding parameter (dual tree and direct mode), then for the second predetermined block 18'' of the second partitioning 25", the same parameter may be chosen that has been used for the co-located block 18' in the first partitioning 25'. Summary of examples discussed above
In the following and above, luma is used to indicate the first component which, in case of YUV, can be luma Y or, in case of RGB, can be color G. The applies to chroma which, in case of YUV, can be chroma Cb/Cr or, in of RGB, can be color B/R.
In a preferred example, the configuration of the “luma only” coding tools to the chroma components are as described in the previous sections.
In a further preferred example, the configuration of the “luma only" coding tools to the chroma components are as described in the previous section, and depends on a further high-level signaling technique identifying whether the current signal is RGB or not (see for example Fig. 7.4).
In another preferred example, the application of the “luma only” coding tools may depend, as in Fig. 7.5, on the coding tree that is employed for chroma, e.g. a separate tree-based block partitioning for chroma components.
In a further preferred example, the application of the luma only” coding tools may depend on the coding tree that is employed for chroma. In the case of a single tree, the coding tools are not applied to the chroma components, whereas in the case of a separate tree, the coding tools are applied as described (see also Fig. 7.5).
In a further preferred example, the application of the “luma only” coding tool(s) depends on the coding tree that is employed for chroma. In the case of a separate tree, the coding tools are applied as described, but may include the information of the luma tree for the signaling process and/or reduction of the coding tool parameters.
In a preferred example, the configuration of the “luma only” coding tools to the chroma components are as described in the previous section(s) and includes the condition on the application of a cross-component prediction coding tool. If a cross-component prediction tool is applied, the signaling process and/or the coding tool parameters are modified due to changing signal characteristics.
Above, “luma only” tools are the tools that traditionally are used only for luma components but, with the present proposal, may be applied, e.g. selectively, to any component (e.g. also U and V or components of other color spaces, such as R, G, B components). In view of the above, some examples of direct mode (cross prediction tool) above may be summarized for the cases of Figs. 9.1 (single partitioning) and 9.2 (dual partitioning), when a first predetermined block 18' (of a first partitioning 25') and a second predetermined block 18'' (of a second partitioning 25'') may be the same block (in case of single partitioning) or different blocks (in case of dual partitioning): - First signalling 81 indicates whether a particular cording tool is used; - Second signalling 82 (at least one tool parameter) indicates a particular parameter associated to the coding tool; - In case of the first and second tree-based partitionings (25', 25") being separate partitionings (dual tree of Fig. 9.2), then the tool parameter will be used for predicting the first predetermined block 18', but will be modified for predicting the second predetermined block 18" (e.g., a default parameter will be used for the predetermined block 18'') - In case of the first and second tree-based partitionings (25', 25'') being the same partitioning (single tree of Fig. 9.1), the tool parameter in the second signalling 82 is used for predicting both the first predetermined block 18' and the second predetermined block 18".
The first partitioning may be often associated to the luma component or the green component, while the second partitioning may be associated to the chroma components and/or the red and blue components, respectively.
Notably, it is not necessary to re-write or re-read the tool parameter in the second signalling 82 in case of single partitioning, since the tool parameter will be the same of the tool parameter chosen for the second partitioning will be the same of the tool parameter for the first partitioning. Analogously, it is not necessary to explicitly indicate which default parameter is to be used in case of dual partitioning, since the default value will be determined by the decoder simply by the combination of the use of the dual partitioning and the choice of the direct mode.
The decision whether to apply the cross-prediction tool or not (i.e. whether to use the direct mode or not) is encoded in the signalling of the datastream. Hence, the decoder will know whether the cross-prediction tool is to be used or not. The decision whether to apply the cross-prediction tool or not may be bade on a block base. There may be, for example, a syntax element which may define, for the second partitioning 25", whether the direct mode (cross-prediction tool) is to be used or not. In some examples, the syntax element indicates that the direct mode (cross-prediction tool) is to be used for the second partitioning 25'', then the same tool parameter used for the first partitioning 25' will be used also for the second partitioning 25", otherwise the parameter modification will be carried out (e.g., using a default parameter).
Features of examples
Features according to examples above are here below resumed, and further examples are also proposed.
According to an example, there is provided a decoder (e.g., 54) for block-wise decoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one first space component (e.g., G; Y), and least one second array (e.g., 19-B; 19-U) of samples defined in at least one second space component (e.g., B, U), wherein the decoder (e.g., 54) is configured to predictively reconstruct the predetermined block (e.g., 18) by applying (e.g., 103G; 103Y) at least one coding tool to the at least one first array (e.g., 19-G, 19-Y) of samples; and applying (e.g., 103B; 103U) said at least one coding tool to the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder (e.g., 54) may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19- Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the decoder (e.g., 54) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
The decoder may be configured to selectively determine (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples. The decoder may be further configured to choose (e.g., 181; 181 181 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples on the basis of signaling (e.g., 81) from the data stream (e.g., 12).
The decoder may be such that the signaling from the data stream (e.g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g, encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
The decoder may be such that the signaling from the data stream (e.g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
The decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB), wherein the signalling (e.g., 81) includes signalling choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), so as to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19- U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19- U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the decoder (e.g., 54) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
The decoder may be such that in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
The decoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays.
The decoder may be configured to activate the coding tool for alt the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
The decoder may be configured to deactivate the coding tool for all the arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
The decoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The decoder may be configured to read at least one tool parameter (e.g,, 82) from the bitstream (e.g., 12), and to implement the coding tool using the at least one tool parameter (e.g., 82) [e.g., e.g. read in the data stream]. The decoder may be configured to: read the signalling (e.g., 81) in the data stream (e.g., 12); and at the determination that the at least one tool is to be applied to at least one array of samples, search, in further signalling (e.g., 82) of the data stream (e.g., 12), the at least one tool parameter (e.g., 82) to be applied to the coding tool.
The decoder may be such that the at least one tool parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B).
The decoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
The decoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
The decoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
The decoder may be such that the decoder is configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may be such that the decoder is configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated. The decoder may be such that the decoder is configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The decoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously decoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream, [e.g., the mode may be applied, for example, in the transform domain]
The decoder may be configured to retrieve the position of the subportion (e.g., 17"c, 17'''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g., 17a-17c) to arrive at the subportion (e.g., 17"c, 17'''a), wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g. in samples] of the at least one previously predicted block (e.g., 17a-17c) from the boundary (e.g., 18a, 18c) [e.g., e.g. in samples] of the predetermined block (e.g., 18) neighbouring the at least one previously predicted block (e.g., 17a-17c), wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12).
The decoder may be such that at least one coding tool [e.g., e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously decoded samples. The decoder may be such that the prediction matrix (e.g., 17M) is pre-stored in a non- transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix (e.g., 17M) is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g., e.g. the matrix may be indexed, and the signalling may encode the index].
The decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the decoder is configured, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
The at least one coding tool [e.g., e.g. ISP] may involve, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
The decoder may be such that the at least one coding toot [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), performing the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, performing a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18- 2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g„ s)] of first one (e.g., 18-1) of the partitions, if a size of the partitions of the predetermined block (e.g., 18) fulfil a predetermined criterion [e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block (e.g., 18) fulfil the predetermined criterion.
The decoder may be further configured to: perform an entropy decoding (e.g., 56) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding (e.g., 56) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder may be further configured to: perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder may be further configured to: perform an inverse transformation in which the predetermined block (e.g., 18) is divided into partitions e.g. for the least one first array (e.g., 19-G, 19-Y) of samples; and/or perform an inverse transformation in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder may be such that the prediction (e.g., 44') is performed for the entire predetermined block (e.g., 18).
The decoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1). The decoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
The decoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
The decoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
The decoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
The decoder may be configured to iterate the prediction of a subsequent partition (e.g., 18- 2) after the prediction (e.g., 44') of a previously predicted partition (e.g., 18-1).
The decoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g., e.g. rectangular partition].
The decoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g., e.g. rectangular partition].
The decoder may be such that the predetermined block (e.g., 18) is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 partitions or four 16x4 partitions or four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g., 18) (e.g., e.g. 16 or 8), and the other dimension (e.g., e.g. vertical or horizontal) of each partition being less (e.g., e.g. 4 or 2) than the respective dimension of the predetermined block (e.g., 18) so that the sum (e.g., e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the predetermined block (e.g., 18) (e.g., e.g. 16 or 8).
The decoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
The decoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18- 2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12).
The decoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12), the signalling (e.g., 82) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to divide the predetermined block (e.g., 18) into the number of partitions obtained from the signalling (e.g., 82).
The decoder may be configured to divide the predetermined block (e.g., 18) into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as signalled in the signalling (e.g., 82).
The decoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) so that the partitions [e.g., sublocks] (e.g., 18-1, 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors]. The number of partitions may be a power of 2.
The decoder may be such that the number of partitions is selectively chosen (e.g., e.g, among two or four) by the signalling (e.g., 82).
The decoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the predetermined block (e.g., 18),
The decoder may be configured to compare at least one dimension of the predetermined block (e.g., 18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block (e.g., 18) being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4], The decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The decoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block (e.g., 18).
The decoder may be such that the larger one dimension [e.g., horizontal and/or vertical] of the predetermined block (e.g., 18), the higher the number of partitions [e.g., e.g. blocks with larger size will have more partitions].
The decoder may be configured to apply the at least one coding tool in case the block has at least one dimension (e.g., e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The decoder may be configured to apply the at least one coding tool in case the block has at least both dimensions (e.g., e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The at least one coding tool may be configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T1), wherein a secondary transform (e.g., T2) is applied to a sub-area (e.g., 18.2) of the predetermined block (e.g., 18) after having subjected to the primary transform (e.g., T1).
The decoder may be such that the primary transform is a separable transform, [e.g., The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII. In some examples, transformskip (e.g., no transform) can also be used as a primary transform]
The decoder may be such that the primary transform is a DCT-II.
The decoder may be such that the primary transform is a DST-VII or DCT-VIII. The decoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
The decoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (e.g.,
LFNST)]
The decoder may be such that the multi-stage transform is signalled in signalling (e.g., 82) of the data stream (e.g., 12).
The decoder may be such that the primary transform is chosen by the at least one coding tool on the basis of signalling (e.g., 82) in the data stream (e.g., 12), so that one single multi- stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (e.g., 81) in the data stream (e.g., 12).
The decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The decoder may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (e.g., 18.R) with inferring a remaining transform area to be equal to zero.
The decoder may be such that the dimensions of the reduced area (e.g., 18. R) with respect to the dimensions of the predetermined block (e.g., 18) have a ratio of 50:50 or 25:75.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18.R) and the predetermined block (e.g., 18). The decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), one single parameter on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
The decoder may be configured to, for the predetermined block, decode, for each array of samples of the predetermined block (e.g., 18), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element..
The decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
The decoder may be configured to, for the predetermined block, decode, for each array of samples of the predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
The decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
The decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
The decoder may be such that wherein the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
The decoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component
Cr],
The decoder may be such that the color components form a luma-chroma based color space. The decoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
According to an example, there may be provided for block-wise decoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one first space component (e.g., G; Y), and least one second array (e.g., 19-B; 19-U) of samples defined in at least one second space component (e.g., B, U), wherein the decoder (e.g., 54) is configured to predictivety reconstruct the predetermined block (e.g., 18) by applying (e.g., 103G; 103Y) at least one coding tool to the at least one first array (e.g., 19-G, 19-Y) of samples; and applying (e.g., 103B; 103U) said at least one coding tool to the at least one second array (e.g., 19-B; 19-U) of samples.
A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform according to any of the examples discussed above and below.
According to an example, there may be an encoder (e.g., 14) for block-wise encoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one first space component (e.g., G; Y), and least one second array (e.g., 19-B; 19-U) of samples defined in at least one second space component (e.g., B, U), wherein the encoder (e.g., 14) is configured to predictively reconstruct the predetermined block (e.g., 18) by applying (e.g., 103G; 103Y) at least one coding tool to the at least one first array (e.g., 19-G, 19-Y) of samples; and applying (e.g., 103B; 103U) said at least one coding tool to the at least one second array (e.g., 19-B; 19-U) of samples.
The encoder may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the encoder (e.g., 14) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
The encoder may be configured to selectively determine (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
The encoder may be further configured to choose (e.g., 181; 181 Y, 181U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19-
R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples and to signal the choice in signaling (e.g., 81) in the data stream (e.g., 12).
The encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
The encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
The encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB), wherein the encoder is further configured to write signalling (e.g., 81) choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), and: in case of choice of the first color space (e.g., YUV), to activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the encoder (e.g., 14) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
The encoder may be such that in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
The encoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays. The encoder may be configured to activate the coding tool for all the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
The encoder may be configured to deactivate the coding tool for all the arrays (e.g., 19-U,
19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
The encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The encoder may be configured to implement the coding tool using the at least one tool parameter (e.g., 82) and to write the at least one tool parameter (e.g., 82) onto the bitstream (e.g., 12)[e.g., e.g. to be read by the decoder from the data stream].
The encoder may be configured to: write the signalling (e.g., 81) in the data stream (e.g., 12); and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling (e.g., 82) of the data stream (e.g., 12), the at least one tool parameter (e.g., 82) to be applied to the coding tool.
The encoder may be such that the at least one tool parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B).
The encoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
The encoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
The encoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
The encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The encoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream (e.g., 12). [e.g., the mode may be applied, for example, in the transform domain]
The encoder may be configured to retrieve the position of the subportion (e.g,, 17''c, 17'''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g., 17a-17c) to arrive at the subportion (e.g., 17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g. in samples] of the at least one previously predicted block (e.g., 17a-17c) from the boundary (e.g., 18a, 18c) [e.g., e.g. in samples] of the predetermined block (e.g., 18) neighbouring the at least one previously predicted block (e.g., 17a-17c), wherein the distance is written onto at least one tool parameter in the signaling of the data stream (e.g., 12).
The encoder may be such that at least one coding tool [e.g., e.g. MIP] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
The encoder may be such that the prediction matrix (e.g., 17M) is pre-stored in a non- transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix (e.g., 17M) is signalled in at least one tool parameter on the basis of signalling indicating the matrix [e.g., e.g. the matrix may be indexed, and the signalling may encode the index].
The encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the encoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the encoder is configured, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
The encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
The encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (e.g., 18), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), performing the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, performing a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18- 2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions, if a size of the partitions of the predetermined block (e.g., 18) fulfil a predetermined criterion [e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block (e.g., 18) fulfil the predetermined criterion.
The encoder may be further configured to: perform an entropy encoding (e.g., 28b) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding (e.g., 28b) in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The encoder may be further configured to: perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples. The encoder may be further configured to: perform a transformation [e.g., e.g. DCT, etc.] in which the predetermined block (e.g., 18) is divided into partitions e.g. for the least one first array (e.g., 19-G, 19- Y) of samples; and/or perform a transformation [e.g., e.g. DCT, etc.] in which the predetermined block (e.g., 18) is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The encoder may be such that the prediction (e.g., 44) is performed for the entire predetermined block (e.g., 18).
The encoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
The encoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
The encoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
The encoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
The encoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
The encoder may be configured to iterate the prediction of a subsequent partition (e.g., 18- 2) after the prediction (e.g., 44) of a previously predicted partition (e.g., 18-1). The encoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension.
The encoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension.
The encoder may be such that the predetermined block (e.g., 18) is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal or vertical) equal to one respective dimension of the square predetermined block (e.g., 18) (e.g., e.g. 16 or 8), and the other dimension (e.g., e.g. vertical or horizontal) of each partition being less (e.g., e.g. 4 or 2) than the respective dimension of the predetermined block (e.g., 18) so that the sum (e.g., e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the predetermined block (e.g., 18) (e.g., e.g. 16 or 8).
The encoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
The encoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1, 18- 2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12).
The encoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) and to write signalling (e.g., 82) [e.g., e.g. at least one tool parameter] in the data stream (e.g., 12), the signalling (e.g., 82) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the encoder is configured to divide the predetermined block (e.g., 18) into the defined number of partitions.
The encoder may be configured to divide the predetermined block (e.g. , 18) into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as signalled in the signalling (e.g., 82). The encoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) so that the partitions [e.g., subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors].
The encoder may be such that the number of partitions is a power of 2.
The encoder may be such that the number of partitions is selectively chosen among two or four by the signalling (e.g., 82).
The encoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the predetermined block (e.g., 18).
The encoder may be configured to compare at least one dimension of the predetermined block (e.g., 18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block (e.g., 18) being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4]
The encoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The encoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block (e.g., 18).
The encoder may be such that the larger one dimension [e.g., horizontal and/or vertical] of the predetermined block (e.g., 18), the higher the number of partitions [e.g., e.g. blocks with larger size will have more partitions].
The encoder may be further configured to apply the at least one coding toot in case the block has at least one dimension (e.g., e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The encoder may be further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g., e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool. The encoder may be such that at least one coding tool is configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T1), wherein a secondary transform (e.g., T2) is applied to a sub-area (e.g., 18.2) of the predetermined block (e.g., 18) after having subjected to the primary transform (e.g,, T1).
The encoder may be such that the primary transform is a separable transform, [e.g., The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-Vll and the DCT-VIII. In some examples, transformskip (e.g., no transform) can also be used as a primary transform]
The encoder may be such that the primary transform is a DCT-II.
The encoder may be such that the primary transform is a DST-Vll or DCT-VIII.
The encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
The encoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (e.g.,
LFNST)]
The encoder may be such that the multi-stage transform is signalled in signalling (e.g., 82) of the data stream (e.g., 12).
The encoder may be such that the primary transform is chosen by the at least one coding tool and is written onto signalling (e.g., 82) in the data stream (e.g., 12), wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The encoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to write signalling (e.g., 81) regarding the choice in the data stream (e.g., 12). The encoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The encoding may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area (e.g., 18. R) with inferring a remaining transform area to be equal to zero.
The encoder may be such that the dimensions of the reduced area (e.g., 18.R) with respect to the dimensions of the predetermined block (e.g., 18) have a ratio of 50:50 or 25:75.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18. R) and the predetermined block (e.g., 18).
The encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), one single parameter on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the predetermined block (e.g., 18) and a reduced area (e.g., 18.R), wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples. The encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
The encoder may be configured to, for the predetermined block, encode, for each array of samples of the predetermined block (e.g., 18), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
The encoder may be configured to, for the predetermined block, encode, for each array of samples of the predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter. The encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
The encoder may be such that the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
The first color component may be a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component Cr].
The encoder may be such that the color components form a luma-chroma based color space.
The encoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
According to an examples there may be provided a method for block-wise encoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided (e.g., 25) into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (e.g., R, G, B; Y, U, V) forming a color space (e.g., YUV, RGB), the plurality of arrays (e.g., 19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) including at least one first array (e.g., 19- G; 19-Y) of samples defined in at least one first space component (e.g., G; Y), and least one second array (e.g., 19-B; 19-U) of samples defined in at least one second space component (e.g., B, U), wherein the method includes predictively reconstructing the predetermined block (e.g., 18) by applying (e.g., 103G; 103Y) at least one coding tool to the at least one first array (e.g., 19-G, 19-Y) of samples; and applying (e.g., 103B; 103U) said at least one coding toot to the at least one second array (e.g., 19-B; 19-U) of samples. A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the examples discussed above or below.
According to an example, there may be provided a decoder (e.g., 54) for block-wise decoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided, according to at least one first tree-based partitioning (e.g., 25') and a second tree-based partitioning (e.g., 25'') into a plurality of blocks (e.g., 18', 18") for each of the first and second tree-based partitionings (e.g., 25', 25"), wherein each of the first and second tree-based partitionings (e.g., 25', 25'') is associated to at least one color space component (e.g., Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (e.g., 25', 25''), each block (e.g., 18', 18") has one array (e.g., 19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (e.g., V, U, Y) associated to the respective tree-based partitioning (e.g., 25', 25"), wherein the decoder (e.g., 54) is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block (e.g., 18') of the first tree- based partitioning (e.g., 25') and at least one second predetermined block (e.g., 18'') of the second tree-based partitioning (e.g., 25'') which is co-located to the first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25').
The decoder may be configured to further block-wise decode a further picture (e.g., 10') from the data stream (e.g., 12), wherein the further picture is divided into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component (e.g., G; Y), and least one second array of samples, defined in at least one second space component (e.g., B, U), wherein the decoder (e.g., 54) is configured to perform a prediction of the predetermined block (e.g., 18), in at least the first space component (e.g., G; Y) and the second space component (e.g., B, U), based on at least one previously predicted block (e.g., 17a-17c) neighbouring the predetermined block (e.g., 18), wherein the decoder (e.g., 54) is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
The decoder may be such that the signalling includes signalling indicating whether or not the picture (e.g., 10') or further picture (e.g., 10') is to be subdivided into a plurality of tree- based partitionings (e.g., 25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (e.g., 10'') is to be subdivided into a plurality of tree-based partitionings, the further picture (e.g., 10'') is subdivided into a plurality of tree-based partitionings.
The decoder may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the decoder (e.g., 54) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
The decoder may be configured to selectively determine (e.g., 181; 181Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
The decoder may be further configured to choose (e.g., 181; 181Y, 181U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples on the basis of signaling (e.g., 81) from the data stream (e.g., 12).
The decoder may be such that the signaling from the data stream (e.g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
The decoder may be such that the signaling from the data stream (e,g., 12) includes signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
The decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first colorspace (e.g., YUV) and a color component of a second color space (e.g., RGB), wherein the signalling (e.g., 81) includes signalling choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), so as to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19- U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19- U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the decoder (e.g., 54) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The decoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
The decoder may be such that in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
The decoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays. The decoder may be configured to activate the coding tool for all the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
The decoder may be configured to deactivate the coding too! for all the arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
The decoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The decoder may be configured to read at least one tool parameter (e.g., 82) from the bitstream (e.g., 12), and apply the predetermined coding too! using the at least one too! parameter (e.g., 82) to predict the at least one first predetermined block [e.g., e.g. read in the data stream].
The decoder may be configured to: read signalling (e.g., 81) in the data stream (e.g., 12) which indicates whether the first and second tree-based partitionings (e.g., 25', 25'') are a single partitioning or separate partitionings; and if a cross-prediction tool is applied: modify the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings (e.g., 25', 25'') being separate partitionings, and use the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (e.g., 25', 25'') being a single partitioning.
The decoder may be such that the at least one tool parameter indicates a prediction mode associated to the predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
The decoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
The decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block. The decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from searching in the bitstream (e.g., 12) for another tool parameter for a predetermined coding tool for the second predetermined block.
The decoder may be configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
The decoder may be such that the at least one second, modified tool parameter is obtained from the signalling in the data stream.
The decoder may be such that the at least one second, modified tool parameter is a default parameter.
The decoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
The decoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
The decoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
The decoder may be such that the at least one tool parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B). The decoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
The decoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
The decoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
The decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The at least one coding tool may be a MRL. The decoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter (e.g., 82) indicates the reference line.
The decoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the first and second predetermined block (e.g., 18', 18''), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously predicted samples which are defined in the space component of the respective array of samples and are located within a portion (e.g., 17acc, 17ccc) neighbouring the first and second predetermined block (e.g., 18', 18''), which is distanced from the first or second predetermined block at a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream, [e.g., the mode may be applied, for example, in the transform domain]
The decoder may be configured to retrieve the position of the portion (e.g., 17''c, 17'''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g., 17a-17c) to arrive at the portion (e.g., 17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g. in samples] of the at least one previously predicted block (e.g., 17a-17c) from the boundary (e.g., 18a, 18c) [e.g., e.g. in samples] of the first or second predetermined block (e.g., 18', 18") neighbouring the at least one previously predicted block (e.g., 17a-17c), wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream (e.g., 12).
The decoder may be such that the predetermined coding tool [e.g., e.g. MIP] involves, for each array of samples of the first and second predetermined block (e.g., 18', 18'') for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples.
The decoder may be such that the predetermined coding tool [e.g., e.g. MIP] is a MIP.230b. The decoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prodiction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
The decoder may be such that the predetermined coding tool involves a prediction matrix (e.g., 17M) is chosen among a plurality of prediction matrixes, wherein the prediction matrix (e.g., 17M) is chosen according to the at least one tool parameter on the basis of signalling indicating the matrix [e.g., e.g. the matrix may be indexed, and the signalling may encode the index].
The decoder may be such that the predetermined coding tool [e.g., e.g. MIP] involves, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples.
The decoder may be such that the prediction matrix (e.g., 17M) is pre-stored together with [e.g., among] a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix (e.g., 17M) is to be used.
The decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix (e.g., 17M) for all the arrays of samples of the firs predetermined block and the second predetermined block.
The decoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (e.g., 17M) different from the prediction matrix (e.g., 17M) used for the prediction of the first predetermined block.
The decoder may be such that the second prediction matrix correspond to a planar mode. The decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the decoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the decoder is configured, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
The decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18'), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (e.g., 18'), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
The decoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18', 18''), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (e.g., 18', 18") (e.g., 18), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), performing the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, performing a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions, if a size of the partitions of the first and/or second predetermined block (e.g., 18', 18") (e.g., 18) fulfil a predetermined criterion [e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined first and/or second predetermined block (e.g., 18', 18'') (e.g., 18) fulfil the predetermined criterion.
The decoder may be further configured to: perform an entropy decoding (e.g., 56) in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding (e.g., 56) in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder may be further configured to: perform a dequantization (e.g., 38') in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder may be further configured to: perform an inverse transformation in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the least one first array (e.g., 19-G, 19-Y) of samples; and/or perform an inverse transformation in which the first and/or second predetermined block (e.g., 18') is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The decoder may be such that the prediction (e.g., 44') is performed for the entire predetermined block (e.g., 18).
The decoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
The decoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks. The decoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
The decoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions.
The decoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
The decoder may be configured to iterate the prediction of a subsequent partition (e.g,, 18- 2) after the prediction (e.g., 44') of a previously predicted partition (e.g., 18-1).
The decoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g., e.g. rectangular partition].
The decoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g., e.g. rectangular partition].
The decoder may be such that the at least one first and/or second predetermined block (e.g., 18', 18") is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 partitions, four 16x4 partitions, four 2x16 partitions or four 16x2 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal or vertical) equal to one respective dimension of the square first and/or second predetermined block (e.g., 18) (e.g., e.g. 16 or 8), and the other dimension (e.g., e.g. vertical or horizontal) of each partition being less (e.g., e.g. 4 or 2) than the respective dimension of the first and/or second predetermined block (e.g., 18) so that the sum (e.g., e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the first and/or second predetermined block (e.g., 18) (e.g., e.g. 16 or 8). The decoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
The decoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18- 2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12).
The decoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) on the basis of signalling (e.g., 82) [e.g., e.g. at least one tool parameter] from the data stream (e.g., 12), the signalling (e.g., 82) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to divide the first or second predetermined block (e.g., 18) into the number of partitions obtained from the at least one parameter.
The decoder may be configured to divide the first or second predetermined block (e.g., 18', 18'') into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as indicated in the at least one parameter.
The decoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) so that the partitions [e.g., subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors]. The number of partitions is a power of 2.
The decoder may be such that the number of partitions is selectively chosen (e.g., e.g. among two or four) e.g. by at least one tool parameter.
The decoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the predetermined block (e.g., 81),
The decoder may be configured to compare at least one dimension of the first or second predetermined block (e.g., 18', 18'') with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (e.g., 18', 18") being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4]. The decoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The decoder may be such that the number of partitions is dependent on at least one of the dimensions of the predetermined block (e.g., 18).
The decoder may be such that the larger one dimension [e.g., horizontal and/or vertical] of the predetermined block (e.g., 18), the higher the number of partitions [e.g., e.g. blocks with larger size will have more partitions].
The decoder may be further configured to apply the at least one coding tool in case the block has at least one dimension (e.g., e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The decoder may be further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g., e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
The at least one coding tool may be configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T1), wherein a secondary transform (e.g., T2) is applied to a sub-area (e.g., 18.2) of the first and/or second predetermined block (e.g., 18', 18'') after having subjected to the primary transform (e.g., T1).
The at least one coding tool may be a MTS tool
The at least one parameter may indicate the primary transform (e.g., T1) and/or the secondary transform (e.g., T2).
The decoder may be such that the at least one parameter indicates a positional relationship between the sub-area (e.g., 18.2) and the first and/or second predetermined block (e.g., 18', 18''). The decoder may be such that the primary transform is a separable transform, [e.g. , The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-II, the DST-VII and the DCT-VIII. In some examples, transformskip (e.g., no transform) can also be used as a primary transform].
The decoder may be such that the primary transform is a DCT-II.
The decoder may be such that the primary transform is a DST-VII or DCT-VIII.
The decoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
The decoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (e.g.,
LFNST)].
The decoder may be such that the multi-stage transform is signalled in the at least one parameter (e.g., 82).
The decoder may be such that the primary transform is chosen by the at least one coding tool on the basis of signalling (e.g., 82) in the data stream (e.g., 12), so that one single multi- stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The decoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (e.g., 81) in the data stream (e.g., 12).
The decoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
The decoder may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (e.g., 18.R) with inferring a remaining transform area to be equal to zero.
The decoder may be such that the dimensions of the reduced area (e.g., 18.R) with respect to the dimensions of the first or second predetermined block (e.g., 18', 18") have a ratio of 50:50 or 25:75.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18. R) and the first or second predetermined block (e.g., 18', 18'').
The decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The decoder may be configured to obtain, from signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), the at least one parameter includes one single parameter on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18', 18") and a reduced area (e.g., 18.R), the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The decoder may be configured to obtain, from signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18) and a reduced area (e.g., 18. R), the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The decoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC. The decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block (e.g., 18', 18''), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
The decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
The decoder may be configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context- based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
The decoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
The decoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples. The decoder may be such that the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
The decoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component
Cr].
The decoder may be such that the color components form a luma-chroma based color space.
The decoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
According to an example, there is provided a method for block-wise decoding a picture (e.g., 10) from a data stream (e.g., 12), wherein the picture (e.g., 10) is divided, according to at least one first tree-based partitioning (e.g., 25') and a second tree-based partitioning (e.g., 25'') into a plurality of blocks (e.g., 18', 18") for each of the first and second tree-based partitionings (e.g., 25', 25''), wherein each of the first and second tree-based partitionings (e.g., 25', 25'') is associated to at least one color space component (e.g. , Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (e.g., 25', 25''), each block (e.g., 18', 18'') has one array (e.g., 19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (e.g., V, U, Y) associated to the respective tree-based partitioning (e.g., 25', 25''), wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25') and at least one second predetermined block (e.g., 18") of the second tree-based partitioning (e.g., 25'') which is co-Iocated to the first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25').
According to an example, there is provided a non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the methods discussed above and below. According to an example, there is provided an encoder for block-wise encoding a picture (e.g., 10) onto a data stream (e.g., 12), wherein the picture (e.g., 10) is divided, according to at least one first tree-based partitioning (e.g., 25') and a second tree-based partitioning (e.g., 25") into a plurality of blocks (e.g., 18', 18") for each of the first and second tree-based partitionings (e.g., 25', 25''), wherein each of the first and second tree-based partitionings (e.g., 25', 25") is associated to at least one color space component (e.g., Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (e.g., 25', 25''), each block (e.g., 18', 18") has one array (e.g., 19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (e.g., V, U, Y) associated to the respective tree-based partitioning (e.g., 25', 25''), wherein the encoder is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block (e.g., 18') of the first tree- based partitioning (e.g., 25') and at least one second predetermined block (e.g., 18") of the second tree-based partitioning (e.g., 25'') which is co-located to the first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25').
The encoder may be configured to further block-wise encode a further picture (e.g., 10') from the data stream (e.g. , 12), wherein the further picture is divided into a plurality of blocks including a predetermined block (e.g., 18), the predetermined block (e.g., 18) having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component (e.g., G; Y), and least one second array of samples, defined in at least one second space component (e.g., B, U), wherein the encoder is configured to perform a prediction of the predetermined block (e.g., 18), in at least the first space component (e.g., G; Y) and the second space component (e.g., B, U), based on at least one previously predicted block (e.g., 17a-17c) neighbouring the predetermined block (e.g., 18), wherein the encoder (e.g., 54) is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
The encoder may be such that the signalling includes signalling indicating whether or not the picture (e.g., 10') or further picture (e.g., 10') is to be subdivided into a plurality of tree- based partitionings (e.g., 25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (e.g., 10'') is to be subdivided into a plurality of tree-based partitionings, the further picture (e.g., 10'') is subdivided into a plurality of tree-based partitionings.
The encoder may be such that the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (e.g., 19-R, 19-V) of samples defined in at least one third space component (e.g., R; V), wherein the encoder (e.g., 14) is configured to apply the at least one coding tool (e.g., 103R, 103V) to the at least one third array (e.g., 19-R, 19-V) of samples.
The encoder may be configured to selectively determine (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
The encoder may be further configured to choose (e.g., 181; 181 Y, 181 U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (e.g., 19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples and to signal the choice in signaling (e.g., 81) in the data stream (e.g., 12).
The encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, in some cases indicated as “High Level Syntax flag”, e.g. encoded in one single bit valid for each of the plurality of arrays] selectively indicating that the coding tool is to be activated for at least one (e.g., 19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (e.g., 19-U, 19V) of the plurality of arrays of samples.
The encoder may be further configured to write signalling (e.g., 81) [e.g., e.g. a flag, e.g. encoded in one single bit valid for all the arrays of the plurality of arrays] indicating whether the coding tool is to be activated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (e.g., 19-R, 19-G, 19-B) of the plurality of arrays of samples.
The encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (e.g. , YUV) and a color component of a second color space (e.g., RGB), wherein the encoder is further configured to write signalling (e.g., 81) choosing the color space between at least the first and the second color spaces (e.g., YUV, RGB), and: in case of choice of the first color space (e.g., YUV), to activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g,, 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that each array of samples of the plurality of arrays (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (e.g., YUV) and a color component of a second color space (e.g., RGB) on the basis of a choice among the first color space (e.g., YUV) and the color component of a second color space (e.g., RGB), wherein the encoder (e.g., 14) is configured to: in case of choice of the first color space (e.g., YUV), activate the coding tool for a first group (e.g., 19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (e.g., 19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (e.g., RGB), activate the coding tool for a second group (e.g., 19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
The encoder may be such that in case of choice of the first color space (e.g., YUV), the first group of arrays of samples is constituted by one single array (e.g., 19-Y) of samples, so that the coding tool is activated for the one single array (e.g., 19-Y) of samples and is deactivated to the other arrays (e.g., 19-U, 19-V) of samples.
The encoder may be such that, in case of choice of the second color space (e.g., RGB), the second group of arrays of samples is constituted by the totality of arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (e.g., 19-R, 19-G, 19-B) of samples of the plurality of arrays.
The encoder may be configured to activate the coding tool for the array (e.g., 19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays. The encoder may be configured to activate the coding tool for all the arrays (e.g., 19-R, 19- G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution. The encoder may be configured to deactivate the coding tool for ail the arrays (e.g., 19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
The encoder may be configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
The encoder may be configured to use the coding tool using at least one tool parameter (e.g., 82) and to write the at least one tool parameter (e.g., 82) onto the bitstream (e.g., 12)[e.g., e.g. to be read by the decoder from the data stream].
The encoder may be configured to: write the signalling (e.g., 81) in the data stream (e.g., 12); and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling (e.g., 82) of the data stream (e.g., 12), the at least one tool parameter (e.g., 82) to be applied to the coding tool.
The encoder may be configured to: write signalling (e.g., 81) in the data stream (e.g., 12) which indicates whether the first and second tree-based partitionings (e.g., 25', 25") are a single partitioning or separate partitionings; and wherein, if a cross-prediction tool is applied, the prediction involves: modifying the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings (e.g., 25', 25'') being separate partitionings, and using the at least one tool parameter (e.g., 82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (e.g., 25', 25'') being a single partitioning.
The encoder may be such that the at least one tool parameter indicates a prediction mode associated to the at least one predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
The encoder may be configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block. The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from writing in the bitstream (e.g., 12) another tool parameter for a predetermined coding tool for the second predetermined block.
The encoder may be configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
The encoder may be configured to write the at least one second, modified tool parameter in the data stream.
The encoder may be such that the at least one second, modified tool parameter is a default parameter.
The encoder may be such that the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
The encoder may be such that the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
The encoder may be such that the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
The encoder may be such that the at least one toot parameter (e.g., 82) is shared for multiple arrays (e.g., 19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for multiple arrays of samples (e.g., 19-R, 19-G, 19-B). The encoder may be such that the at least one tool parameter (e.g., 82) is shared for all the arrays (e.g., 19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (e.g., 82) to the coding tool for all the arrays (e.g., 19-R, 19-G, 19-B) of samples.
The encoder may be such that the at least one tool parameter (e.g., 82) includes at least one first parameter for the first array (e.g., 19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (e.g., 19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (e.g., 19-Y) of samples, and the second parameter to the coding tool for the second array (e.g., 19-U) of samples.
The encoder may be such that the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (e.g., 82) includes at least one third parameter for the third array (e.g., 19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (e.g., 19-V) of samples.
The encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder may be configured to write, onto the signalling (e.g., 81) in the data stream (e.g., 12), an indication [e.g., e.g. associated to a choice] on which coding tool(e.g., s) is(e.g., are) to be selectively individually activated, or deactivated.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may be configured to write, onto signalling (e.g., 82) in the data stream (e.g., 12), a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
The encoder may be such that at least one coding tool [e.g., e.g. MRL] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion (e.g., 17acc, 17ccc) neighbouring the first or second predetermined block, which is distanced from the first or second predetermined block by a distance determined by a distance parameter (e.g., 82) [e.g., which may be an example of the tool parameter] signalled in the data stream (e.g., 12). [e.g., the mode may be applied, for example, in the transform domain]
The encoder may be such that at least one coding tool is a MRL
The encoder may be such that the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter (e.g., 82) indicates the reference line.
The encoder may be configured to define the position of the portion (e.g., 17''c, 17'''a) by: counting (e.g., 17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (e.g,, 17a-17c) to arrive at the portion (e.g., 17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream (e.g., 12), and/or measuring (e.g., 17ccc, 17acc) a distance [e.g., e.g. in samples] of the at least one previously predicted block (e.g., 17a-17c) from the boundary (e.g., 18a, 18c) [e.g., e.g. in samples] of the predetermined block (e.g., 18) neighbouring the at least one previously predicted block (e.g., 17a-17c), wherein the distance is written onto at least one tool parameter in the signaling of the data stream (e.g., 12).
The encoder may be such that at least one coding tool [e.g., e.g. MIP] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
The encoder may be such that the at least one coding tool is MIP. The encoder may be such that the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prediction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
The encoder may be such that the prediction matrix (e.g., 17M) is signalled in the at least one tool parameter indicating the matrix [e.g., e.g. the matrix may be indexed, and the at least one tool parameter may encode the index].
The encoder may be such that the pre-stored prediction matrix (e.g., 17M) is pre-stored among a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix (e.g., 17M) is to be used.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix (e.g., 17M) for all the arrays of samples of the firs predetermined block and the second predetermined block.
The encoder may be configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (e.g., 17M) different from the prediction matrix (e.g., 17M) used for the prediction of the first predetermined block.
The encoder may be such that the second prediction matrix correspond to a planar mode.
The encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first or second predetermined block (e.g., 18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18- 4), wherein the encoder is configured to perform the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and the encoder is configured, after the prediction [e.g., e.g. in ail the components] of the first one (e.g., 18-1) of the partitions, to perform a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions.
The encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the predetermined block (e.g., 18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete at least one first and/or second predetermined block (e.g., 18', 18"), and dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual encoding/decoding.
The encoder may be such that the at least one coding tool [e.g., e.g. ISP] involves, for each array of samples of the first and/or second predetermined block (e.g., 18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (e.g., 18', 18"), by dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4), performing the intra-prediction (e.g., 44'), at first, for a first one (e.g., 18-1) of the partitions and, after the prediction [e.g., e.g. in all the components] of the first one (e.g., 18-1) of the partitions, performing a prediction on a second one (e.g., 18-2) of the partitions, wherein the prediction of the second one (e.g., 18-2) of the partitions is at least partially based on the prediction [e.g., e.g. predicted value(e.g., s)] of first one (e.g., 18-1) of the partitions, if a size of the partitions of the first and/or second predetermined block (e.g., 18', 18") fulfil a predetermined criterion [e.g., which may be, for example, that at least one or both the dimensions are greater than a predetermined threshold, e.g. 4], and with dividing the respective array of samples into a plurality [e.g., e.g., two or four or a different number] of partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual encoding/decoding if the size of the partitions of the predetermined block (e.g., 18) fulfil the predetermined criterion.
The encoder may be configured to: perform an entropy encoding (e.g., 28b) in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding (e.g., 28b) in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The encoder may be configured to: perform a dequantization (e.g., 38') in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (e.g., 38') in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The encoder may be configured to: perform a transformation [e.g., e.g. DCT, etc.] in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the least one first array (e.g., 19-G, 19-Y) of samples; and/or perform a transformation [e.g., e.g. DCT, etc.] in which the at least one first and/or second predetermined block (e.g., 18', 18") is divided into partitions e.g. for the at least one second array (e.g., 19-B; 19-U) of samples.
The encoder may be such that the prediction (e.g., 44) is performed for the entire at least one first and/or second predetermined block (e.g., 18).
The encoder may be such that the first partition (e.g., 18-1) neighbours at least one first (e.g., 17c) of the previously predicted blocks, while the second partition (e.g., 18-2) neighbours the first partition (e.g., 18-1).
The encoder may be such that the first partition (e.g., 18-1) is interposed between the second partition (e.g., 18-2) and the at least one first (e.g., 17c) of the previously predicted blocks, so that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks.
The encoder may be such that the second partition (e.g., 18-2) does not neighbour the at least one first (e.g., 17c) of the previously predicted blocks but neighbours at least one second (e.g., 17c) of the previously predicted blocks.
The encoder may be configured, after the prediction (e.g., 44') of the second one (e.g., 18- 2) of the partitions, to perform a prediction on a third one (e.g., 18-3) of the partitions, wherein the prediction of the third one (e.g., 18-3) of the partitions is at least partially based on the prediction of the second one (e.g., 18-2) of the partitions. The encoder may be configured, after the prediction (e.g., 44') of the third one (e.g., 18-3) of the partitions, to perform a prediction on a fourth one (e.g., 18-4) of the partitions, wherein the prediction of the fourth one (e.g., 18-4) of the partitions is at least partially based on the prediction of the third one (e.g., 18-3) of the partitions.
The encoder may be configured to iterate the prediction of a subsequent partition (e.g., 18- 2) after the prediction (e.g., 44) of a previously predicted partition (e.g., 18-1).
The encoder may be such that each [e.g., or at least one] of the partitions has a horizontal dimension larger than the vertical dimension [e.g., e.g. rectangular partition].
The encoder may be such that each [e.g., or at least one] of the partitions has a vertical dimension larger than the horizontal dimension [e.g., e.g, rectangular partition].
The encoder may be such that the at least one first and/or second predetermined block (e.g., 18', 18") is a square block (e.g., e.g. 16x16) or rectangular block (e.g., e.g. 8x16) and is partitioned in rectangular partitions (e.g., e.g. four 4x16 or four 2x16 partitions), e.g. each partition having one dimension (e.g., e.g. horizontal) equal to one respective dimension of the square at least one first and/or second predetermined block (e.g., 18', 18") (e.g., e.g. 16), and the other dimension (e.g., e.g. vertical) of each partition being less (e.g., e.g. 4 or 2) than the respective dimension of the at least one first and/or second predetermined block (e.g., 18', 18") so that the sum (e.g., e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the at least one first and/or second predetermined block (e.g., 18', 18") (e.g., e.g. 16 or 8).
The encoder may be such that each of the partitions has a vertical dimension equal to the horizontal dimension [e.g., e.g. square partition].
The encoder may be configured to define the partitions [e.g., e.g. subblocks] (e.g., 18-1 , 18- 2, 18-3, 18-4) and to indicate the partitions in the at least one tool parameter.
The encoder may be configured to define the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) and to signal it in the at least one tool parameter in the data stream (e.g., 12) indicating the number of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), wherein the encoder is configured to divide the first or second predetermined block (e.g., 18) into the defined number of partitions.
The encoder may be configured to divide the first or second predetermined block (e.g., 18) into the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, and to signal though the at least one tool parameter.
The encoder may be configured to define the plurality of partitions [e.g., e.g. subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) so that the partitions [e.g., subblocks] (e.g., 18-1, 18-2, 18-3, 18-4) have the same area [e.g., e.g. apart from quantization or rounding errors].
The encoder may be such that the number of partitions is a power of 2.
The encoder may be such that the number of partitions is selectively chosen among (e.g., e.g. two or four) e.g. and is indicated through the at least one tool parameter (e.g., 82).
The encoder may be such that the number of partitions is selectively decided on the basis of the dimension(e.g., s) of the at least one first and/or second predetermined block (e.g., 18', 18"),
The encoder may be configured to compare at least one dimension of the first or second predetermined block (e.g., 18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (e.g., 18) being below the respective threshold [e.g., e.g., no ISP for blocks of size equal to or less than 4x4].
The encoder may be such that the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
The encoder may be such that at least one coding tool is configured to derive the prediction residual from the data stream (e.g., 12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (e.g., T1), wherein a secondary transform (e.g., T2) is applied to a sub-area (e.g., 18.2) of the first or second predetermined block (e.g., 18) after having subjected to the primary transform (e.g., T1).
The encoder may be such that the primary transform is a separable transform, [e.g., The primary transform may be a separable transform: e.g. the primary transform may be implemented as the combination of two (e.g., one vertical and one horizontal) 1-D transforms, which in WC are pairs of the DCT-ll, the DST-VII and the DCT-VIII. In some examples, transformskip (e.g., no transform) can also be used as a primary transform]
The encoder may be such that the primary transform is a DCT-ll.
The encoder may be such that the primary transform is a DST-VII or DCT-VIII.
The encoder may be configured to operate in transformskip mode in case of the first transformation being the identity transformation.
The encoder may be such that the secondary transform is a non-separable transform, [e.g., The secondary transform is, e.g., a data-driven (e.g., e.g. calculated offline) non-separable transform. In WC it may be called Low-Frequency Non-Separable Transform (e.g.,
LFNST)]
The encoder may be such that the multi-stage transform is signalled through the at least one tool parameter (e.g., 82) of the data stream (e.g., 12).
The encoder may be such that the primary transform is chosen by the at least one coding tool and is indicated in the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
The encoder may be configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to indicate, through the at least one tool parameter (e.g., 81), the choice in the data stream (e.g., 12).
The encoder may be configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform. The encoder may be such that the at least one coding tool [e.g., e.g. SBT] involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area (e.g., 18.R) with inferring a remaining transform area to be equal to zero.
The encoder may be such that the dimensions of the reduced area (e.g., 18.R) with respect to the dimensions of the first or second predetermined block (e.g., 18) have a ratio of 50:50 or 25:75.
The encoder may be configured to indicate, through the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), dimensional and/or positional relationships [e.g., e.g. split orientation and/or ratio) between the reduced area (e.g., 18.R) and the first or second predetermined block (e.g., 18).
The encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
The encoder may be configured to write, onto signalling (e.g., 81) in the data stream (e.g., 12), an indication on which coding tools are to be selectively individually activated, or deactivated.
The encoder may be configured to indicate, through the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), one single parameter on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18', 18") and a reduced area (e.g., 18.R), wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
The encoder may be configured to indicate, through the at least one tool parameter (e.g., 82) in the data stream (e.g., 12), a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block (e.g., 18) and a reduced area (e.g., 18.R), wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples. The encoder may be such that the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
The encoder may be configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block (e.g., 18), a syntax element from the data stream (e.g., 12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (e.g., 19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
The encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
The encoder may be configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a parameter from the data stream (e.g., 12), which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context- based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
The encoder may be such that the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter. The encoder may be configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
The encoder may be such that the first color component is a luma component, the second color component is a chroma component [e.g., the third may be another chroma component].
The encoder may be such that the first color component is a luma component, the second color component is a chroma component Cb [e.g., the third may be a chroma component
Cr].
The encoder may be such that the color components form a luma-chroma based color space.
The encoder may be such that the first color component is a green component, the second color component is a blue component [e.g., the third may be a red component].
According to examples, there may be provided a method for block-wise encoding a picture (e.g., 10) onto a data stream (e.g., 12), wherein the picture (e.g., 10) is divided, according to at least one first tree-based partitioning (e.g., 25') and a second tree-based partitioning (e.g., 25'') into a plurality of blocks (e.g., 18', 18") for each of the first and second tree-based partitionings (e.g., 25', 25''), wherein each of the first and second tree-based partitionings (e.g., 25', 25'') is associated to at least one color space component (e.g., Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (e.g., 25', 25''), each block (e.g., 18', 18") has one array (e.g., 19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (e.g., V, U, Y) associated to the respective tree-based partitioning (e.g., 25', 25''), wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25') and at least one second predetermined block (e.g., 18") of the second tree-based partitioning (e.g., 25") which is co-located to the first predetermined block (e.g., 18') of the first tree-based partitioning (e.g., 25'). A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform any of the examples discussed above and below.
Further embodiments and examples
Generally, examples may be implemented as a computer program product with program instructions, the program instructions being operative for performing one of the methods when the computer program product runs on a computer. The program instructions may for example be stored on a machine readable medium.
Other examples comprise the computer program for performing one of the methods described herein, stored on a machine-readable carrier.
In other words, an example of method is, therefore, a computer program having program instructions for performing one of the methods described herein, when the computer program runs on a computer.
A further example of the methods is, therefore, a data carrier medium (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 medium, the digital storage medium or the recorded medium are tangible and/or non-transitionary, rather than signals which are intangible and transitory.
A further example of the 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 transferred via a data communication connection, for example via the Internet.
A further example comprises a processing means, for example a computer, or a programmable logic device performing one of the methods described herein.
A further example comprises a computer having installed thereon the computer program for performing one of the methods described herein.
A further example comprises an apparatus or a system transferring (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 examples, 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 examples, 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 appropriate hardware apparatus.
The above described examples are merely illustrative for the principles discussed above. It is understood that modifications and variations of the arrangements and the details described herein will be apparent. It is the intent, therefore, to be limited by the scope of the impending claims and not by the specific details presented by way of description and explanation of the examples herein.
Equal or equivalent elements or elements with equal or equivalent functionality are denoted in the following description by equal or equivalent reference numerals even if occurring in different figures.

Claims

Claims
1. Decoder (54) for block-wise decoding a picture (10) from a data stream (12), wherein the picture (10) is divided (25) into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19- Y, 19-U, 19-V) including at least one first array (19-G; 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B; 19-U) of samples defined in at least one second space component (B, U), wherein the decoder (54) is configured to predictively reconstruct the predetermined block (18) by applying (103G; 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and applying (103B; 103U) said at least one coding tool to the at least one second array (19-B; 19-U) of samples.
2. The decoder (54) of claim 1, wherein the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (19-R, 19-V) of samples defined in at least one third space component (R; V), wherein the decoder (54) is configured to apply the at least one coding tool (103R, 103V) to the at least one third array (19-R, 19-V) of samples.
3. The decoder of any of the preceding claims, configured to selectively determine (181; 181Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
4. The decoder of any of the preceding claims, further configured to choose (181; 181 Y, 181U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples on the basis of signaling (81) from the data stream (12).
5. The decoder of claim 4, wherein the signaling from the data stream (12) includes signalling (81) selectively indicating that the coding tool is to be activated for at least one (19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (19-U, 19V) of the plurality of arrays of samples.
6. The decoder of claim 4, wherein the signaling from the data stream (12) includes signalling (81) indicating whether the coding tool is to be activated for all the arrays (19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (19- R, 19-G, 19-B) of the plurality of arrays of samples.
7. The decoder of ay of claims 4 to 6, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (YUV) and a color component of a second color space (RGB), wherein the signalling (81) includes signalling choosing the color space between at least the first and the second color spaces (YUV, RGB), so as to: in case of choice of the first color space (YUV), activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
8. The decoder of any of the preceding claims, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (YUV) and a color component of a second color space (RGB) on the basis of a choice among the first color space (YUV) and the color component of a second color space (RGB), wherein the decoder (54) is configured to: in case of choice of the first color space (YUV), activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding toot for a second group (19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
9. The decoder of claim 7 or 8, wherein, in case of choice of the first color space (YUV), the first group of arrays of samples is constituted by one single array (19-Y) of samples, so that the coding tool is activated for the one single array (19-Y) of samples and is deactivated to the other arrays (19-U, 19-V) of samples.
10. The decoder of claim 9, wherein, in case of choice of the second color space (RGB), the second group of arrays of samples is constituted by the totality of arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays.
11. The decoder of any of the preceding claims, configured to activate the coding tool for the array (19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (19-U, 19-V) of samples of the plurality of arrays.
12. The decoder of any of the preceding claims, configured to activate the coding tool for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
13. The decoder of any of the preceding claims, configured to deactivate the coding tool for all the arrays (19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
14. The decoder of any of the preceding claims, configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
15. The decoder of any of the preceding claims, configured to read at least one tool parameter (82) from the bitstream (12), and to implement the coding tool using the at least one tool parameter (82).
16. The decoder of claim 15, configured to: read the signalling (81) in the data stream (12); and at the determination that the at least one tool is to be applied to at least one array of samples, search, in further signalling (82) of the data stream (12), the at least one tool parameter (82) to be applied to the coding tool.
17. The decoder of claim 15 or 16, wherein the at least one tool parameter (82) is shared for multiple arrays (19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (82) to the coding tool for multiple arrays of samples (19-R, 19-G, 19- B).
18. The decoder of claim 15 or 16 or 17, wherein the at least one tool parameter (82) is shared for all the arrays (19-R, 19-G, 19-B) of samples, so as to apply the at least one toot parameter (82) to the coding tool for all the arrays (19-R, 19-G, 19-B) of samples.
19. The decoder of claim 15, wherein the at least one tool parameter (82) includes at least one first parameter for the first array (19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (19-Y) of samples, and the second parameter to the coding tool for the second array (19-U) of samples.
20. The decoder of claim 19, wherein the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (82) includes at least one third parameter for the third array (19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (19-V) of samples.
21. The decoder of any of the preceding claims, wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
22. The decoder of any of the preceding claims, wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
23. The decoder of claim 21 or 22, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
24. The decoder of claim 22 or 23, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
25. The decoder of any of the preceding claims, wherein at least one coding tool involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously decoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter (82) signalled in the data stream.
26. The decoder of claim 25, configured to retrieve the position of the subportion (17''c, 17'''a) by: counting (17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (17a-17c) to arrive at the subportion (17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream (12), and/or measuring (17ccc, 17acc) a distance of the at least one previously predicted block (17a-17c) from the boundary (18a, 18c) of the predetermined block (18) neighbouring the at least one previously predicted block (17a-17c), wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream (12).
27. The decoder of any of the preceding claims, wherein at least one coding tool involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously decoded samples.
28. The decoder of claim 27, wherein the prediction matrix (17M) is pre-stored in a non- transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix (17M) is signalled in at least one tool parameter on the basis of signalling indicating the matrix .
29. The decoder of any of the preceding claims, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality of partitions (18-1, 18-2, 18-3, 18-4), wherein the decoder is configured to perform the intra-prediction (44'), at first, for a first one (18-1) of the partitions and the decoder is configured, after the prediction of the first one (18-1) of the partitions, to perform a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions.
30. The decoder of any of the preceding claims, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (18), and dividing the respective array of samples into a plurality of partitions (18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
31. The decoder any of the preceding claims, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (18), by dividing the respective array of samples into a plurality of partitions (18-1, 18-2, 18-3, 18-4), performing the intra-prediction (44'), at first, for a first one (18-1) of the partitions and, after the prediction of the first one (18-1) of the partitions, performing a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions, if a size of the partitions of the predetermined block (18) fulfil a predetermined criterion, and with dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block (18) fulfil the predetermined criterion.
32. The decoder claim 30 or 31 , wherein the decoder is further configured to: perform an entropy decoding (56) in which the predetermined block (18) is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy decoding (56) in which the predetermined block (18) is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
33. The decoder of claim 30 or 31, wherein the decoder is further configured to: perform a dequantization (38') in which the predetermined block (18) is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (38') in which the predetermined block (18) is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
34. The decoder of any of claim 30 or 31 or 33, wherein the decoder is further configured to: perform an inverse transformation in which the predetermined block (18) is divided into partitions e.g. for the least one first array (19-G, 19-Y) of samples; and/or perform an inverse transformation in which the predetermined block (18) is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
35. The decoder of any of claims 30 to 34, wherein the prediction (44') is performed for the entire predetermined block (18).
36. The decoder of any of claims 28 to 35, wherein the first partition (18-1) neighbours at least one first (17c) of the previously predicted blocks, while the second partition (18-2) neighbours the first partition (18-1).
37. The decoder of claim 36, wherein the first partition (18-1) is interposed between the second partition (18-2) and the at least one first (17c) of the previously predicted blocks, so that the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks.
38. The decoder of claim 37, wherein the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks but neighbours at least one second (17c) of the previously predicted blocks.
39. The decoder of any of claims 29 to 38, wherein the decoder is configured, after the prediction (44') of the second one (18-2) of the partitions, to perform a prediction on a third one (18-3) of the partitions, wherein the prediction of the third one (18-3) of the partitions is at least partially based on the prediction of the second one (18-2) of the partitions.
40. The decoder of claim 39, wherein the decoder is configured, after the prediction (44') of the third one (18-3) of the partitions, to perform a prediction on a fourth one (18-4) of the partitions, wherein the prediction of the fourth one (18-4) of the partitions is at least partially based on the prediction of the third one (18-3) of the partitions.
41. The decoder of any of claims 29 to 40, wherein the decoder is configured to iterate the prediction of a subsequent partition (18-2) after the prediction (44') of a previously predicted partition (18-1).
42. The decoder of any of claims 29 to 41 , wherein each of the partitions has a horizontal dimension larger than the vertical dimension.
43. The decoder of any of claims 29 to 40, wherein each of the partitions has a vertical dimension larger than the horizontal dimension.
44. The decoder of claim 42 or 43, wherein the predetermined block (18) is a square block or rectangular block and is partitioned in rectangular partitions, each partition having one dimension equal to one respective dimension of the square predetermined block (18), and the other dimension of each partition being less than the respective dimension of the predetermined block (18) so that the sum of the respective dimensions of all the partitions is equal to the respective dimension of the predetermined block (18).
45. The decoder of any of claims 29 to 40, wherein each of the partitions has a vertical dimension equal to the horizontal dimension.
46. The decoder of any of claims 29 to 45, wherein the decoder is configured to define the partitions (18-1, 18-2, 18-3, 18-4) on the basis of signalling (82) from the data stream (12).
47. The decoder of any of claims 29 to 46, wherein the decoder is configured to define the number of partitions (18-1 , 18-2, 18-3, 18-4) on the basis of signalling (82) from the data stream (12), the signalling (82) indicating the number of partitions (18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to divide the predetermined block (18) into the number of partitions obtained from the signalling (82),
48. The decoder of claim 47, wherein the decoder is configured to divide the predetermined block (18) into the plurality of partitions (18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as signalled in the signalling (82).
49. The decoder of claim 48, wherein the decoder is configured to define the plurality of partitions (18-1, 18-2, 18-3, 18-4) so that the partitions (18-1 , 18-2, 18-3, 18-4) have the same area.
50. The decoder of any of claims 47 to 49, wherein the number of partitions is a power of 2.
51. The decoder of any of claims 47 to 50, wherein the number of partitions is selectively chosen by the signalling (82).
52. The decoder of any of claims 47 to 50, wherein the number of partitions is selectively decided on the basis of the dimension(s) of the predetermined block (18).
53. The decoder of any of claims 29 to 52, configured to compare at least one dimension of the predetermined block (18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block (18) being below the respective threshold.
54. The decoder of any of claims 29 to 53, wherein the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
55. The decoder of any of claims 29 to 54, wherein the number of partitions is dependent on at least one of the dimensions of the predetermined block (18).
56. The decoder of any of claims 29 to 55, wherein the larger one dimension of the predetermined block (18), the higher the number of partitions.
57. The decoder of any of claims 29 to 56, further configured to apply the at least one coding tool in case the block has at least one dimension being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
58. The decoder of any of claims 29 to 57, further configured to apply the at least one coding tool in case the block has at least both dimensions being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
59. The decoder of any of the preceding claims, wherein at least one coding tool is configured to derive the prediction residual from the data stream (12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (T1), wherein a secondary transform (T2) is applied to a sub-area (18.2) of the predetermined block (18) after having subjected to the primary transform (T1).
60. The decoder of claim 59, wherein the primary transform is a separable transform.
61. The decoder of claim 59 or 60, wherein the primary transform is a DCT-II,
62. The decoder of claim 59 or 60, wherein the primary transform is a DST-VII or DCT-
VIII.
63. The decoder of claim 59 or 60, configured to operate in transformskip mode in case of the first transformation being the identity transformation.
64. The decoder of any of claims 59 to 63, wherein the secondary transform is a non- separable transform.
65. The decoder of any of claims 59 to 64, wherein the multi-stage transform is signalled in signalling (82) of the data stream (12).
66. The decoder of any of claims 59 to 65, wherein the primary transform is chosen by the at least one coding tool on the basis of signalling (82) in the data stream (12), so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
67. The decoder of any of claims 59 to 64, wherein the decoder is configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (81) in the data stream (12).
68. The decoder of claim 67, wherein the decoder is configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
69. The decoder of any of the preceding claims, wherein the at least one coding tool involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (18.R) with inferring a remaining transform area to be equal to zero.
70. The decoder of claim 69, wherein the dimensions of the reduced area (18.R) with respect to the dimensions of the predetermined block (18) have a ratio of 50:50 or 25:75.
71. The decoder of claim 69 to 70, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), dimensional and/or positional relationships between the reduced area (18. R) and the predetermined block (18).
72. The decoder of claim 69 or 70 or 71 , wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
73. The decoder of any of claims 69-72, wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on which coding tools are to be selectively individually activated, or deactivated.
74. The decoder of claim 72 or 73, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), one single parameter on dimensional and/or positional relationships between the predetermined block (18) and a reduced area (18.R), the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
75. The decoder of claim 72 or 73, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), a plurality of parameters on dimensional and/or positional relationships between the predetermined block (18) and a reduced area (18.R), the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
76. The decoder of any of the preceding claims, wherein the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
77. The decoder of any of the preceding claims, configured to, for the predetermined block, decode, for each array of samples of the predetermined block (18), a syntax element from the data stream (12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
78. The decoder of claim 77, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
79. The decoder of any of claims 78, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
80. The decoder of any of the preceding claims, configured to, for the predetermined block, decode, for each array of samples of the predetermined block, a parameter from the data stream (12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
81. The decoder of claim 80, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
82. The decoder of any of claims 81 , configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
83. The decoder any of the preceding claims, wherein the first color component is a luma component, the second color component is a chroma component.
84. The decoder any of the claims 1 to 84, wherein the first color component is a luma component, the second color component is a chroma component Cb.
85. The decoder any of the preceding claims, wherein the color components form a luma-chroma based color space.
86. The decoder of any of claim 1 to 82, wherein the first color component is a green component, the second color component is a blue component.
87. Method for block-wise decoding a picture (10) from a data stream (12), wherein the picture (10) is divided (25) into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19- Y, 19-U, 19-V) including at least one first array (19-G; 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B; 19-U) of samples defined in at least one second space component (B, U), wherein the decoder (54) is configured to predictively reconstruct the predetermined block (18) by applying (103G; 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and applying (103B; 103U) said at least one coding tool to the at least one second array (19-B; 19-U) of samples.
88. A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform the method of claim 87.
89. Encoder (14) for block-wise encoding a picture (10) from a data stream (12), wherein the picture (10) is divided (25) into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-B, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19- Y, 19-U, 19-V) including at least one first array (19-G; 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B; 19-U) of samples defined in at least one second space component (B, U), wherein the encoder (14) is configured to predictively reconstruct the predetermined block (18) by: applying (103G; 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and applying (103B; 103U) said at least one coding tool to the at least one second array (19-B; 19-U) of samples.
90. The encoder (14) of claim 89, wherein the plurality of arrays (19-R, 19-G, 19-B; 19- Y, 19-U, 19-V) of samples includes a third array (19-R, 19-V) of samples defined in at least one third space component (R; V), wherein the encoder (14) is configured to apply the at least one coding tool (103R, 103V) to the at least one third array (19-R, 19-V) of samples.
91. The encoder of any of claims 89-90, configured to selectively determine (181 ; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
92. The encoder of any of claims 89-91 , further configured to choose (181; 181 Y, 181U, 181V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples and to signal the choice in signaling (81) in the data stream (12).
93. The encoder of claim 92, wherein the encoder is further configured to write signalling (81) selectively indicating that the coding tool is to be activated for at least one (19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (19-U, 19V) of the plurality of arrays of samples.
94. The encoder of claim 92, wherein the encoder is further configured to write signalling (81) indicating whether the coding tool is to be activated for all the arrays (19-R, 19-G, 19- B) of the plurality of arrays of samples or is to be deactivated for all the arrays (19-R, 19-G, 19-B) of the plurality of arrays of samples.
95. The encoder of ay of claims 92 to 94, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (YUV) and a color component of a second color space (RGB), wherein the encoder is further configured to write signalling (81) choosing the color space between at least the first and the second color spaces (YUV, RGB), and: in case of choice of the first color space (YUV), to activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
96. The encoder of any of claims 89-95, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (YUV) and a color component of a second color space (RGB) on the basis of a choice among the first color space (YUV) and the color component of a second color space (RGB), wherein the encoder (14) is configured to: in case of choice of the first color space (YUV), activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
97. The encoder of claim 95 or 96, wherein, in case of choice of the first color space (YUV), the first group of arrays of samples is constituted by one single array (19-Y) of samples, so that the coding tool is activated for the one single array (19-Y) of samples and is deactivated to the other arrays (19-U, 19-V) of samples.
98. The encoder of claim 97, wherein, in case of choice of the second color space (RGB), the second group of arrays of samples is constituted by the totality of arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for ail the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays.
99. The encoder of any of claims 89-98, configured to activate the coding tool for the array (19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (19-U, 19-V) of samples of the plurality of arrays.
100. The encoder of any of claims 89-99, configured to activate the coding tool for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
101. The encoder of any of claims 89-100, configured to deactivate the coding tool for all the arrays (19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
102. The encoder of any of claims 89-101, configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
103. The encoder of any of claims 89-102, configured to implement the coding tool using the at least one tool parameter (82) and to write the at least one tool parameter (82) onto the bitstream (12)
104. The encoder of claim 103, configured to: write the signalling (81) in the data stream (12); and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling (82) of the data stream (12), the at least one tool parameter (82) to be applied to the coding tool.
105. The encoder of claim 103 or 104, wherein the at least one tool parameter (82) is shared for multiple arrays (19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (82) to the coding tool for multiple arrays of samples (19-R, 19-G, 19-B).
106. The encoder of claim 103 or 104 or 105, wherein the at least one tool parameter (82) is shared for all the arrays (19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (82) to the coding tool for all the arrays (19-R, 19-G, 19-B) of samples.
107. The encoder of claim 103, wherein the at least one tool parameter (82) includes at least one first parameter for the first array (19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (19-Y) of samples, and the second parameter to the coding tool for the second array (19-U) of samples.
108. The encoder of claim 107, wherein the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (82) includes at least one third parameter for the third array (19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (19-V) of samples.
109. The encoder of any of claims 89-108, wherein the encoder is configured to write, onto the signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
110. The encoder of any of claims 89-109, wherein the encoder is configured to write, onto the signalling (81) in the data stream (12), an indication on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
111. The encoder of claim 109 or 110, wherein the encoder is configured to write, onto signalling (82) in the data stream (12), one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
112. The encoder of claim 110 or 111 , wherein the encoder is configured to write, onto signalling (82) in the data stream (12), a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
113. The encoder of any of claims 89-112, wherein at least one coding tool involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from a subportion formed by previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion neighbouring the predetermined block, which is distanced from the predetermined block by a distance determined by a distance parameter (82)signalled in the data stream (12).
114. The encoder of claim 113, configured to retrieve the position of the subportion (17''c, 17'''a) by: counting (17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (17a-17c) to arrive at the subportion (17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream (12), and/or measuring (17ccc, 17acc) a distance the at least one previously predicted block (17a-17c) from the boundary (18a, 18c) of the predetermined block (18) neighbouring the at least one previously predicted block (17a-17c), wherein the distance is written onto at least one tool parameter in the signaling of the data stream (12).
115. The encoder of any of claims 89-114, wherein at least one coding tool involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
116. The encoder of claim 115, wherein the prediction matrix (17M) is pre-stored in a non- transitory storage unit among a plurality of pre-stored prediction matrixes, wherein the prediction matrix (17M) is signalled in at least one tool parameter on the basis of signalling indicating the matrix.
117. The encoder of any of claims 89-116, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality of partitions (18-1, 18- 2, 18-3, 18-4), wherein the encoder is configured to perform the intra-prediction (44'), at first, for a first one (18-1) of the partitions and the encoder is configured, after the prediction of the first one (18-1) of the partitions, to perform a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions.
118. The encoder of any of claims 89-117, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (18), and dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
119. The encoder any of claims 89-118, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete predetermined block (18), by dividing the respective array of samples into a plurality of partitions (18-1, 18-2, 18-3, 18-4), performing the intra-prediction (44'), at first, for a first one (18-1) of the partitions and, after the prediction of the first one (18-1) of the partitions, performing a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions, if a size of the partitions of the predetermined block (18) fulfil a predetermined criterion, and with dividing the respective array of samples into a plurality of partitions (18-1, 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined block (18) fulfil the predetermined criterion.
120. The encoder claim 118 or 119, wherein the encoder is further configured to: perform an entropy encoding (28b) in which the predetermined block (18) is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding (28b) in which the predetermined block (18) is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
121. The encoder of claim 118 or 119 or 120, wherein the encoder is further configured to: perform a dequantization (38') in which the predetermined block (18) is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (38') in which the predetermined block (18) is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
122. The encoder of any of claim 118 or 121 , wherein the encoder is further configured to: perform a transformation in which the predetermined block (18) is divided into partitions e.g. for the least one first array (19-G, 19-Y) of samples; and/or perform a transformation in which the predetermined block (18) is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
123. The encoder of any of claims 118 to 122, wherein the prediction (44) is performed for the entire predetermined block (18).
124. The encoder of any of claims 117 to 123, wherein the first partition (18-1) neighbours at least one first (17c) of the previously predicted blocks, while the second partition (18-2) neighbours the first partition (18-1).
125. The encoder of claim 124, wherein the first partition (18-1) is interposed between the second partition (18-2) and the at least one first (17c) of the previously predicted blocks, so that the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks.
126. The encoder of claim 125, wherein the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks but neighbours at least one second (17c) of the previously predicted blocks.
127. The encoder of any of claims 117 to 126, wherein the encoder is configured, after the prediction (44') of the second one (18-2) of the partitions, to perform a prediction on a third one (18-3) of the partitions, wherein the prediction of the third one (18-3) of the partitions is at least partially based on the prediction of the second one (18-2) of the partitions.
128. The encoder of claim 127, wherein the encoder is configured, after the prediction (44') of the third one (18-3) of the partitions, to perform a prediction on a fourth one (18-4) of the partitions, wherein the prediction of the fourth one (18-4) of the partitions is at least partially based on the prediction of the third one (18-3) of the partitions.
129. The encoder of any of claims 117 to 128, wherein the encoder is configured to iterate the prediction of a subsequent partition (18-2) after the prediction (44) of a previously predicted partition (18-1).
130. The encoder of any of claims 117 to 129, wherein each of the partitions has a horizontal dimension larger than the vertical dimension.
131. The encoder of any of claims 117 to 128, wherein each of the partitions has a vertical dimension larger than the horizontal dimension.
132. The encoder of claim 130 or 131 , wherein the predetermined block (18) is a square block or rectangular block and is partitioned in rectangular partitions, e.g. each partition having one dimension equal to one respective dimension of the square predetermined block (18), and the other dimension of each partition being less than the respective dimension of the predetermined block (18) so that the sum of the respective dimensions of ail the partitions is equal to the respective dimension of the predetermined block (18).
133. The encoder of any of claims 117 to 128, wherein each of the partitions has a vertical dimension equal to the horizontal dimension.
134. The encoder of any of claims 117 to 131, configured to define the partitions (18-1, 18-2, 18-3, 18-4) on the basis of signalling (82) from the data stream (12).
135. The encoder of any of claims 117 to 134, configured to define the number of partitions (18-1, 18-2, 18-3, 18-4) and to write signalling (82) in the data stream (12), the signalling (82) indicating the number of partitions (18-1 , 18-2, 18-3, 18-4), wherein the encoder is configured to divide the predetermined block (18) into the defined number of partitions.
136. The encoder of claim 135, configured to divide the predetermined block (18) into the plurality of partitions (18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, into as many partitions as signalled in the signalling (82).
137. The encoder of claim 136, configured to define the plurality of partitions (18-1, 18-2, 18-3, 18-4) so that the partitions (18-1 , 18-2, 18-3, 18-4) have the same area.
138. The encoder of any of claims 135 to 137, wherein the number of partitions is a power of 2.
139. The encoder of any of claims 135 to 138, wherein the number of partitions is selectively chosen among two or four by the signalling (82).
140. The encoder of any of claims 135 to 139, wherein the number of partitions is selectively decided on the basis of the dimension(s) of the predetermined block (18).
141. The encoder of any of claims 117 to 140, configured to compare at least one dimension of the predetermined block (18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the predetermined block (18) being below the respective threshold.
142. The encoder of any of claims 117 to 141 , wherein the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
143. The encoder of any of claims 117 to 142, wherein the number of partitions is dependent on at least one of the dimensions of the predetermined block (18).
144. The encoder of any of claims 117 to 143, wherein the larger one dimension of the predetermined block (18), the higher the number of partitions.
145. The encoder of any of claims 117 to 144, further configured to apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
146. The encoder of any of claims 117 to 145, further configured to apply the at least one coding tool in case the block has at least both dimensions being four or larger than four, and, otherwise, to deactivate the at least one coding tool,
147. The encoder of any of claims 89-147, wherein at least one coding tool is configured to derive the prediction residual from the data stream (12) transformed according to a multi- stage transform according to which the prediction residual is transformed by a primary transform (T1), wherein a secondary transform (T2) is applied to a sub-area (18.2) of the predetermined block (18) after having subjected to the primary transform (T1).
148. The encoder of claim 147, wherein the primary transform is a separable transform.
149. The encoder of claim 147 or 148, wherein the primary transform is a DCT-ll,
150. The encoder of claim 147 or 148, wherein the primary transform is a DST-VII or
DCT-VIII.
151. The encoder of claim 147 or 148 or 149 or 150, configured to operate in transformskip mode in case of the first transformation being the identity transformation.
152. The encoder of any of claims 147 to 151, wherein the secondary transform is a non- separable transform.
153. The encoder of any of claims 147 to 152, wherein the multi-stage transform is signalled in signalling (82) of the data stream (12).
154. The encoder of any of claims 147 to 153, wherein the primary transform is chosen by the at least one coding tool and is written onto signalling (82) in the data stream (12), wherein one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
155. The encoder of any of claims 147 to 154, wherein the encoder is configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to write signalling (81) regarding the choice in the data stream (12).
156. The encoder of claim 155, wherein the encoder is configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
157. The encoder of any of claims 89-156, wherein the at least one coding tool involves, for each array of samples of the predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area (18.R) with inferring a remaining transform area to be equal to zero.
158. The encoder of claim 157, wherein the dimensions of the reduced area (18.R) with respect to the dimensions of the predetermined block (18) have a ratio of 50:50 or 25:75.
159. The encoder of claim 157 or 158, wherein the encoder is configured to write, onto signalling (82) in the data stream (12), dimensional and/or positional relationships between the reduced area (18.R) and the predetermined block (18).
160. The encoder of any of claims 157-159, wherein the encoder is configured to write, onto signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
161. The encoder of any of claims 157-160, wherein the encoder is configured to write, onto signalling (81) in the data stream (12), an indication on which coding tools are to be selectively individually activated, or deactivated.
162. The encoder of claim 160 or 161 , wherein the encoder is configured to write, onto signalling (82) in the data stream (12), one single parameter on dimensional and/or positional relationships between the predetermined block (18) and a reduced area (18.R), wherein the single parameter is to be applied to the coding tool for ail the arrays of samples for which the coding tool is activated.
163. The encoder of claim 160 or 161 , wherein the encoder is configured to write, onto signalling (82) in the data stream (12), a plurality of parameters on dimensional and/or positional relationships between the predetermined block (18) and a reduced area (18.R), wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples.
164. The encoder of any of claims 89-163, wherein the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
165. The encoder of any of claims 89-164, configured to, for the predetermined block, encode, for each array of samples of the predetermined block (18), a syntax element from the data stream (12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
166. The encoder of claim 165, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
167. The encoder of any of claims 166, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
168. The encoder of any of claims 89-167, configured to, for the predetermined block, encode, for each array of samples of the predetermined block, a parameter from the data stream (12), which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
169. The encoder of claim 168, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
170. The encoder of any of claims 169, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
171. The encoder any of claims 89-170, wherein the first color component is a luma component, the second color component is a chroma component.
172. The encoder any of the claims 89 to 171 , wherein the first color component is a luma component, the second color component is a chroma component.
173. The encoder any of claims 89-172, wherein the color components form a luma- chroma based color space.
174. The encoder of any of claim 89 to 173, wherein the first color component is a green component, the second color component is a blue component.
175. Method for block-wise encoding a picture (10) from a data stream (12), wherein the picture (10) is divided (25) into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays (19-R, 19-G, 19-ES, 19-Y, 19-U, 19-V) of samples defined in a plurality of space components (R, G, B; Y, U, V) forming a color space (YUV, RGB), the plurality of arrays (19-R, 19-G, 19-B, 19- Y, 19-U, 19-V) including at least one first array (19-G; 19-Y) of samples defined in at least one first space component (G; Y), and least one second array (19-B; 19-U) of samples defined in at least one second space component (B, U), wherein the method includes predictively reconstructing the predetermined block
(18) by applying (103G; 103Y) at least one coding tool to the at least one first array (19-G, 19-Y) of samples; and applying (103B; 103U) said at least one coding tool to the at least one second array (19-B; 19-U) of samples.
176. A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform the method of claim 175.
177. Decoder (54) for block-wise decoding a picture (10) from a data stream (12), wherein the picture (10) is divided, according to at least one first tree-based partitioning (25') and a second tree-based partitioning (25'') into a plurality of blocks (18', 18") for each of the first and second tree-based partitionings (25', 25"), wherein each of the first and second tree-based partitionings (25', 25'') is associated to at least one color space component (Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (25', 25''), each block (18', 18") has one array (19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (V, U, Y) associated to the respective tree-based partitioning (25', 25''), wherein the decoder (54) is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block (18') of the first tree-based partitioning (25') and at least one second predetermined block (18") of the second tree- based partitioning (25'') which is co-located to the first predetermined block (18') of the first tree-based partitioning (25').
178. The decoder of claim 177, wherein the decoder is configured to further block-wise decode a further picture (10') from the data stream (12), wherein the further picture is divided into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component (G; Y), and least one second array of samples, defined in at least one second space component (B, U), wherein the decoder (54) is configured to perform a prediction of the predetermined block (18), in at least the first space component (G; Y) and the second space component (B, U), based on at least one previously predicted block (17a-17c) neighbouring the predetermined block (18), wherein the decoder (54) is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
179. The decoder of claim 178, wherein the signalling includes signalling indicating whether or not the picture (10') or further picture (10') is to be subdivided into a plurality of tree-based partitionings (25', 25") or not, so as to imply that, in case the signaling indicates that the further picture ( 10'') is to be subdivided into a plurality of tree-based partitionings, the further picture (10'') is subdivided into a plurality of tree-based partitionings.
180. The decoder (54) of claim 177, 178 or 179, wherein the plurality of arrays (19-R, 19- G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (19-R, 19-V) of samples defined in at least one third space component (R; V), wherein the decoder (54) is configured to apply the at least one coding tool (103R, 103V) to the at least one third array (19-R, 19-V) of samples.
181. The decoder of any of claims177 to 180, configured to selectively determine (181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
182. The decoder of any of claims 177 to 180, further configured to choose (181 ; 181 Y, 181 U, 181 V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples on the basis of signaling (81) from the data stream (12).
183. The decoder of claim 182, wherein the signaling from the data stream (12) includes signalling (81) selectively indicating that the coding tool is to be activated for at least one (19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (19-U, 19V) of the plurality of arrays of samples.
184. The decoder of claim 182, wherein the signaling from the data stream (12) includes signalling (81) indicating whether the coding tool is to be activated for all the arrays (19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (19- R, 19-G, 19-B) of the plurality of arrays of samples.
185. The decoder of ay of claims 182 to 184, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (YUV) and a color component of a second color space (RGB), wherein the signalling (81) includes signalling choosing the color space between at least the first and the second color spaces (YUV, RGB), so as to: in case of choice of the first color space (YUV), activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
186. The decoder of any of claims 177-185, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (YUV) and a color component of a second color space (RGB) on the basis of a choice among the first color space (YUV) and the color component of a second color space (RGB), wherein the decoder (54) is configured to: in case of choice of the first color space (YUV), activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
187. The decoder of claim 185 or 186, wherein, in case of choice of the first color space (YUV), the first group of arrays of samples is constituted by one single array (19-Y) of samples, so that the coding tool is activated for the one single array (19-Y) of samples and is deactivated to the other arrays (19-U, 19-V) of samples.
188. The decoder of claim 187, wherein, in case of choice of the second color space (RGB), the second group of arrays of samples is constituted by the totality of arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays.
189. The decoder of any of claims 177 to 188, configured to activate the coding tool for the array (19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (19-U, 19-V) of samples of the plurality of arrays.
190. The decoder of any of claims 177 to 189, configured to activate the coding tool for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
191. The decoder of any of claims 177 to 190, configured to deactivate the coding tool for all the arrays (19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
192. The decoder of any of claims 177 to 191 , configured to activate the coding tool for ail the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
193. The decoder of any of claims 177 to 192, configured to read at least one tool parameter (82) from the bitstream (12), and apply the predetermined coding tool using the at least one tool parameter (82) to predict the at least one first predetermined block.
194. The decoder of claim 193, configured to: read signalling (81) in the data stream (12) which indicates whether the first and second tree-based partitionings (25', 25'') are a single partitioning or separate partitionings; and if a cross-prediction tool is applied: modify the at least one tool parameter (82) for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings (25', 25'') being separate partitionings, and use the at least one tool parameter (82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (25', 25'') being a single partitioning.
195. The decoder of claim 194, wherein the at least one tool parameter indicates a prediction mode associated to the predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
196. The decoder of claim 193 or 194 or 195, configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default parameter.
197. The decoder of claim 193 or 194 or 195 or 196, configured, if both the cross- prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
198. The decoder of any of claims 193-197, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from searching in the bitstream (12) for another tool parameter for a predetermined coding tool for the second predetermined block.
199. The decoder of any of claims191 to 198, configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
200. The decoder of claim 199, wherein the at least one second, modified tool parameter is a default parameter.
201. The decoder of any of claim 194-200, wherein the decision whether to apply the cross-prediction tool or not is encoded in the signalling of the data stream.
202. The decoder of any of claims 177-201 , wherein the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
203. The decoder of claim 202, wherein the single color component is a luma component, and the two color components associated to the second tree-based partitioning are chroma components.
204. The decoder of claim 202, wherein the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
205. The decoder of any of claims 193-204, wherein the at least one tool parameter (82) is shared for multiple arrays (19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (82) to the coding tool for multiple arrays of samples (19-R, 19- G, 19-B),
206. The decoder of any of claims 193-205, wherein the at least one tool parameter (82) is shared for all the arrays (19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (82) to the coding tool for all the arrays (19-R, 19-G, 19-B) of samples.
207. The decoder of any of claims 193-206, wherein the at least one tool parameter (82) includes at least one first parameter for the first array (19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (19-Y) of samples, and the second parameter to the coding tool for the second array (19-U) of samples.
208. The decoder of claim 207, wherein the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (82) includes at least one third parameter for the third array (19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (19-V) of samples.
209. The decoder of any of claims 177 to 208, wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for ail the arrays of samples.
210. The decoder of any of claims 177 to 209, wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
211. The decoder of claim 209 or 210, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), one single parameter to be used for the coding tool, the decoder being configured to apply the single parameter to the coding tool for ail the arrays of samples for which the coding tool is activated.
212. The decoder of claim 210 or 211, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), a plurality of parameters to be used for the coding tool, the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
213. The decoder of any of claims 177-212, wherein at least one coding tool is a MRL.
214. The decoder of any of claims 177-213, wherein the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter (82) indicates the reference line.
215. The decoder of any of claims 177-214, wherein at least one coding tool involves, for each array of samples of the first and second predetermined block (18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously predicted samples which are defined in the space component of the respective array of samples and are located within a portion (17acc, 17ccc) neighbouring the first and second predetermined block (18', 18"), which is distanced from the first or second predetermined block at a distance determined by a distance parameter (82) signalled in the data stream.
216. The decoder of claim 213 or 214 or 215, configured to retrieve the position of the portion (17''c, 17'''a) by: counting (17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (17a-17c) to arrive at the portion (17''c, 17'''a), wherein the number of rows or columns of samples to be skipped is obtained from at least one tool parameter obtained in the signaling of the data stream (12), and/or measuring (17ccc, 17acc) a distance of the at least one previously predicted block (17a-17c) from the boundary (18a, 18c) of the first or second predetermined block (18', 18") neighbouring the at least one previously predicted block (17a-17c), wherein the distance is obtained from at least one tool parameter obtained in the signaling of the data stream (12).
217. The decoder of any of claims 177 to 216, wherein the predetermined coding tool involves, for each array of samples of the first and second predetermined block (18', 18") for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples.
218. The decoder of any claims 177 to 217, wherein the predetermined coding tool is a
MIP.
219. The decoder of claim 216 or 217 or 218, wherein the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prediction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
220. The decoder of claim 217 or 218 or 219, wherein the predetermined coding tool involves a prediction matrix (17M) chosen among a plurality of prediction matrixes, wherein the prediction matrix (17M) is chosen according to the at least one tool parameter on the basis of signalling indicating the matrix.
221. The decoder of any of claims 217 to 220, wherein the predetermined coding tool involves, for each array of samples of the first and second predetermined blocks for which the predetermined coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a prediction matrix and a vector derived from the previously decoded samples.
222. The decoder of claim 220 or 221 when depending on any of claims 193 to 204, wherein the prediction matrix (17M) is pre-stored together with a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix (17M) is to be used.
223. The decoder of claim 222, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix (17M) for all the arrays of samples of the first predetermined block and the second predetermined block.
224. The decoder of any of claims 222 to 223, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (17M) different from the prediction matrix (17M) used for the prediction of the first predetermined block.
225. The decoder of claim 224, wherein the second prediction matrix correspond to a planar mode.
228. The decoder of any of claims 177 to 225, wherein the at least one coding tool involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4), wherein the decoder is configured to perform the intra-prediction (44'), at first, for a first one (18-1) of the partitions and the decoder is configured, after the prediction of the first one (18-1) of the partitions, to perform a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions.
227. The decoder of any of claims 177-226, wherein the at least one coding tool involves, for each array of samples of the first and/or second predetermined block (18'), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (18'), and dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding.
228. The decoder any of claims 177-227, wherein the at least one coding tool involves, for each array of samples of the first and/or second predetermined block (18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (18', 18") (18), by dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4), performing the intra-prediction (44'), at first, for a first one (18-1) of the partitions and, after the prediction of the first one (18-1) of the partitions, performing a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions, if a size of the partitions of the first and/or second predetermined block (18', 18") (18) fulfil a predetermined criterion, and with dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual decoding if the size of the partitions of the predetermined first and/or second predetermined block (18', 18") (18) fulfil the predetermined criterion.
229. The decoder of claim 227 or 228, wherein the decoder is further configured to: perform an entropy decoding (56) in which the first and/or second predetermined block (18') is divided into partitions; and/or perform an entropy decoding (56) in which the first and/or second predetermined block (18') is divided into partitions.
230. The decoder of claim 227 or 228, wherein the decoder is further configured to: perform a dequantization (38') in which the first and/or second predetermined block (18') is divided into partitions; and/or perform a dequantization (38') in which the first and/or second predetermined block (18') is divided into partitions.
231. The decoder of any of claim 227 or 228 or 230, wherein the decoder is further configured to: perform an inverse transformation in which the first and/or second predetermined block (18') is divided into partitions; and/or perform an inverse transformation in which the first and/or second predetermined block (18') is divided into partitions.
232. The decoder of any of claims 227 to 231, wherein the prediction (44') is performed for the entire predetermined block (18).
233. The decoder of claim 224, wherein the first partition (18-1) neighbours at least one first (17c) of the previously predicted blocks, while the second partition (18-2) neighbours the first partition (18-1).
234. The decoder of claim 233, wherein the first partition (18-1) is interposed between the second partition (18-2) and the at least one first (17c) of the previously predicted blocks, so that the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks.
235. The decoder of claim 234, wherein the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks but neighbours at least one second (17c) of the previously predicted blocks.
236. The decoder of any of claims 226 to 235, wherein the decoder is configured, after the prediction (44') of the second one (18-2) of the partitions, to perform a prediction on a third one (18-3) of the partitions, wherein the prediction of the third one (18-3) of the partitions is at least partially based on the prediction of the second one (18-2) of the partitions.
237. The decoder of claim 236, wherein the decoder is configured, after the prediction (44') of the third one (18-3) of the partitions, to perform a prediction on a fourth one (18-4) of the partitions, wherein the prediction of the fourth one (18-4) of the partitions is at least partially based on the prediction of the third one (18-3) of the partitions.
238. The decoder of any of claims 227 to 237, wherein the decoder is configured to iterate the prediction of a subsequent partition (18-2) after the prediction (44') of a previously predicted partition (18-1).
239. The decoder of any of claims 227 to 238, wherein each of the partitions has a horizontal dimension larger than the vertical dimension.
240. The decoder of any of claims 227 or 239, wherein each of the partitions has a vertical dimension larger than the horizontal dimension.
241. The decoder of claim 239 or 240, wherein the at least one first and/or second predetermined block (18', 18") is a square block or rectangular block (e.g. 8x16) and is partitioned in rectangular partitions, e.g. each partition having one dimension (e.g. horizontal or vertical) equal to one respective dimension of the square first and/or second predetermined block (18), and the other dimension of each partition being less than the respective dimension of the first and/or second predetermined block (18) so that the sum of the respective dimensions of all the partitions is equal to the respective dimension of the first and/or second predetermined block (18).
242. The decoder of any of claims 227 to 237, wherein each of the partitions has a vertical dimension equal to the horizontal dimension.
243. The decoder of any of claims 227 to 234, wherein the decoder is configured to define the partitions (18-1, 18-2, 18-3, 18-4) on the basis of signalling (82) from the data stream (12).
244. The decoder of any of claims 227 to 243, wherein the decoder is configured to define the number of partitions (18-1, 18-2, 18-3, 18-4) on the basis of signalling (82) from the data stream (12), the signalling (82) indicating the number of partitions (18-1, 18-2, 18-3, 18-4), wherein the decoder is configured to divide the first or second predetermined block (18) into the number of partitions obtained from the at least one parameter.
245. The decoder of claim 244, wherein the decoder is configured to divide the first or second predetermined block (18', 18") into the plurality of partitions (18-1, 18-2, 18-3, 18- 4), along a vertical or horizontal dimension, into as many partitions as indicated in the at least one parameter.
246. The decoder of claim 245, wherein the decoder is configured to define the plurality of partitions (18-1 , 18-2, 18-3, 18-4) so that the partitions (18-1, 18-2, 18-3, 18-4) have the same area.
247. The decoder of any of claims 244 to 246, wherein the number of partitions is a power of 2.
248. The decoder of any of claims 244 to 247, wherein the number of partitions is selectively chosen (e.g. among two or four) e.g. by at least one tool parameter.
249. The decoder of any of claims 244 to 248, wherein the number of partitions is selectively decided on the basis of the dimension(s) of the predetermined block (81).
250. The decoder of any of claims 244 to 249, configured to compare at least one dimension of the first or second predetermined block (18', 18") with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (18', 18") being below the respective threshold.
251. The decoder of any of claims 226 to 250, wherein the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
252. The decoder of any of claims 226 to 251, wherein the number of partitions is dependent on at least one of the dimensions of the predetermined block (18).
253. The decoder of any of claims 226 to 252, wherein the larger one dimension of the predetermined block (18), the higher the number of partitions.
254. The decoder of any of claims 226 to 253, further configured to apply the at least one coding tool in case the block has at least one dimension (e.g. horizontal or vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
255. The decoder of any of claims 226 to 254, further configured to apply the at least one coding tool in case the block has at least both dimensions (e.g. horizontal and vertical) being four or larger than four, and, otherwise, to deactivate the at least one coding tool.
256. The decoder of any of claims 177 to 255, wherein at least one coding tool is configured to derive the prediction residual from the data stream (12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (T1), wherein a secondary transform (T2) is applied to a sub-area (18.2) of the first and/or second predetermined block (18', 18") after having subjected to the primary transform (T1).
257. The decoder of any of claims 177 to 256, wherein at least one coding tool is a MTS tool.
258. The decoder of claim 256 or 257, wherein the at least one parameter indicates the primary transform (T1) and/or the secondary transform (T2).
259. The decoder of claim 256 or 257 or 258, wherein the at least one parameter indicates a positional relationship between the sub-area (18.2) and the first and/or second predetermined block (18', 18").
260. The decoder of claim 256, 257, 258 or 259, wherein the primary transform is a separable transform.
261. The decoder of claim 256 or 260, wherein the primary transform is a DCT-II.
262. The decoder of claim 256 or 260, wherein the primary transform is a DST-VII or
DCT-VIII.
263. The decoder of claim 256 or 260, configured to operate in transformskip mode in case of the first transformation being the identity transformation.
264. The decoder of any of claims 256 to 263, wherein the secondary transform is a non- separable transform.
265. The decoder of any of claims 256 to 264, wherein the multi-stage transform is signalled in the at least one parameter (82).
266. The decoder of any of claims 256 to 265, wherein the primary transform is chosen by the at least one coding tool on the basis of signalling (82) in the data stream (12), so that one single multi-stage transform is applied for all the arrays of samples of the plurality of arrays of samples.
267. The decoder of any of claims 256 to 266, wherein the decoder is configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool on the basis of signalling (81) in the data stream (12).
268. The decoder of claim 267, wherein the decoder is configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
269. The decoder of any of claims 177-268, wherein the at least one coding tool involves, for each array of samples of the first or second first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously decoded samples which are defined in the space component of the respective array of samples, by restricting residual decoding of a prediction residual to a reduced transform area (18.R) with inferring a remaining transform area to be equal to zero.
270. The decoder of claim 269, wherein the dimensions of the reduced area (18.R) with respect to the dimensions of the first or second predetermined block (18', 18") have a ratio of 50:50 or 25:75.
271. The decoder of claim 269 or 270, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), dimensional and/or positional relationships between the reduced area (18.R) and the first or second predetermined block (18', 18").
272. The decoder of claim 269 or 270 or 271 , wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
273. The decoder of any of claims 269-272, wherein the decoder is configured to obtain, from signalling (81) in the data stream (12), an indication on which coding tools are to be selectively individually activated, or deactivated.
274. The decoder of claim 272 or 273, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), the at least one parameter includes one single parameter on dimensional and/or positional relationships between the first or second predetermined block (18', 18") and a reduced area (18.R), the decoder applying the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
275. The decoder of claim 272 or 273, wherein the decoder is configured to obtain, from signalling (82) in the data stream (12), a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block (18) and a reduced area (18. R), the decoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
276. The decoder of any of claims 177-275, wherein the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
277. The decoder of any of claims 177 to 276, configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block (18', 18"), a syntax element from the data stream (12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the decoder is configured to sequentially decode the syntax elements using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined syntax element for a predetermined array of samples, based on the syntax element decoded for a preceding syntax element.
278. The decoder of claim 277, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
279. The decoder of any of claims 177 to 278, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the syntax elements for the arrays of samples.
280. The decoder of any of claims 177 to 279, configured to, for the first or second predetermined block, decode, for each array of samples of the first or second predetermined block, a parameter from the data stream (12), which parametrizes the coding tool for the respective array of samples, wherein the decoder is configured to sequentially decode the parameters using context-based adaptive binary arithmetic decoding and to determine a probability estimate for decoding a predetermined parameter for a predetermined array of samples, based on the parameter decoded for a preceding syntax element.
281. The decoder of claim 280, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the decoder is configured to use the probability estimate associated with the selected context for decoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
282. The decoder of any of claims 281 , configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly decoded one out of the parameters for the arrays of samples.
283. The decoder any of claims 177-282, wherein the first color component is a luma component, the second color component is a chroma component.
284. The decoder any of the claims 177 to 282, wherein the first color component is a luma component, the second color component is a chroma component Cb.
285. The decoder any of claims 177-284, wherein the color components form a luma- chroma based color space.
286. The decoder of any of claim 177 to 282, wherein the first color component is a green component, the second color component is a blue component.
287. Method for block-wise decoding a picture (10) from a data stream (12), wherein the picture (10) is divided, according to at least one first tree-based partitioning (25') and a second tree-based partitioning (25'') into a plurality of blocks (18', 18") for each of the first and second tree-based partitionings (25', 25''), wherein each of the first and second tree-based partitionings (25', 25'') is associated to at least one color space component (Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (25', 25"), each block (18', 18") has one array (19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (V, U, Y) associated to the respective tree-based partitioning (25', 25"), wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block (18') of the first tree-based partitioning (25') and at least one second predetermined block (18") of the second tree-based partitioning (25'') which is co-located to the first predetermined block (18') of the first tree- based partitioning (25').
288. A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform the method of claim 287.
289. Encoder for block-wise encoding a picture (10) onto a data stream (12), wherein the picture (10) is divided, according to at least one first tree-based partitioning (25') and a second tree-based partitioning (25") into a plurality of blocks (18', 18") for each of the first and second tree-based partitionings (25', 25"), wherein each of the first and second tree-based partitionings (25', 25'') is associated to at least one color space component (Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (25', 25''), each block (18', 18") has one array (19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (V, U, Y) associated to the respective tree-based partitioning (25', 25"), wherein the encoder is configured to predict, according to at least one predetermined coding tool, at least one first predetermined block (18') of the first tree-based partitioning (25') and at least one second predetermined block (18") of the second tree- based partitioning (25'') which is co-located to the first predetermined block (18') of the first tree-based partitioning (25').
290. The encoder of claim 289, wherein the encoder is configured to further block-wise encode a further picture (10') from the data stream (12), wherein the further picture is divided into a plurality of blocks including a predetermined block (18), the predetermined block (18) having a plurality of arrays of samples defined in a plurality of space components forming a color space, the plurality of arrays including at least one first array of samples defined in at least one first space component (G; Y), and least one second array of samples, defined in at least one second space component (B, U), wherein the encoder is configured to perform a prediction of the predetermined block (18), in at least the first space component (G; Y) and the second space component (B, U), based on at least one previously predicted block (17a-17c) neighbouring the predetermined block (18), wherein the encoder (54) is configured to apply at least one additional coding tool to the at least one first array of samples and the at least one second array of samples.
291. The encoder of claim 290, wherein the signalling includes signalling indicating whether or not the picture (10') or further picture (10') is to be subdivided into a plurality of tree-based partitionings (25', 25'') or not, so as to imply that, in case the signaling indicates that the further picture (10'') is to be subdivided into a plurality of tree-based partitionings, the further picture (10") is subdivided into a plurality of tree-based partitionings.
292. The encoder (14) of claim any of claims 289-291 , wherein the plurality of arrays (19- R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples includes a third array (19-R, 19-V) of samples defined in at least one third space component (R; V), wherein the encoder (14) is configured to apply the at least one coding tool (103R, 103V) to the at least one third array (19-R, 19- V) of samples.
293. The encoder of any of claims 289 to 292, configured to selectively determine (181; 181 Y, 181 U, 181V) whether to activate or deactivate the at least one coding tool for each of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples.
294. The encoder of any of claims 289 to 293, further configured to choose (181 ; 181 Y, 181 U, 181 V) whether to activate or deactivate the coding tool for one or more of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples and to signal the choice in signaling (81) in the data stream (12).
295. The encoder of claim 294, wherein the encoder is further configured to write signalling (81) selectively indicating that the coding tool is to be activated for at least one (19-Y) of the plurality of arrays of samples and is to be deactivated for at least one other (19-U, 19V) of the plurality of arrays of samples.
296. The encoder of claim 294, wherein the encoder is further configured to write signalling (81) indicating whether the coding tool is to be activated for all the arrays (19-R, 19-G, 19-B) of the plurality of arrays of samples or is to be deactivated for all the arrays (19- R, 19-G, 19-B) of the plurality of arrays of samples.
297. The encoder of ay of claims 294 to 296, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively defined in both a color component of a first color space (YUV) and a color component of a second color space (RGB), wherein the encoder is further configured to write signalling (81) choosing the color space between at least the first and the second color spaces (YUV, RGB), and: in case of choice of the first color space (YUV), to activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, the second group of arrays being different from the first group of arrays, wherein the second group of arrays includes at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
298. The encoder of any of claims 289 to 297, wherein each array of samples of the plurality of arrays (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples is suitable to be selectively chosen to be defined among a color component of a first color space (YUV) and a color component of a second color space (RGB) on the basis of a choice among the first color space (YUV) and the color component of a second color space (RGB), wherein the encoder (14) is configured to: in case of choice of the first color space (YUV), activate the coding tool for a first group (19-Y) of arrays of samples and deactivate the coding tool for the remaining arrays (19-U, 19V) of samples of the plurality of the arrays of samples, and in case of choice of the second color space (RGB), activate the coding tool for a second group (19-Y, 19-U, 19-V) of arrays of samples, different from the first group of arrays, wherein the second group included at least one of, or all, the arrays of samples of the plurality of the arrays of samples.
299. The encoder of claim 297 or 298, wherein, in case of choice of the first color space (YUV), the first group of arrays of samples is constituted by one single array (19-Y) of samples, so that the coding tool is activated for the one single array (19-Y) of samples and is deactivated to the other arrays (19-U, 19-V) of samples.
300. The encoder of claim 299, wherein, in case of choice of the second color space (RGB), the second group of arrays of samples is constituted by the totality of arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays, so that the coding tool is activated for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays.
301. The encoder of any of claims 289 to 300, configured to activate the coding tool for the array (19-Y) of samples, among the plurality of arrays of samples, with highest resolution, and to deactivate the coding tool to the other arrays (19-U, 19-V) of samples of the plurality of arrays.
302. The encoder of any of claims 289 to 301 , configured to activate the coding tool for all the arrays (19-R, 19-G, 19-B) of samples of the plurality of arrays of samples that share the highest resolution.
303. The encoder of any of claims 289 to 302, configured to deactivate the coding tool for all the arrays (19-U, 19-V) of samples of the plurality of arrays of samples that do not have the highest resolution.
304. The encoder of any of claims 289 to 303, configured to activate the coding tool for all the arrays of samples of the plurality of arrays of samples in case all the arrays of samples have the same resolution.
305. The encoder of any of claims 289 to 304, configured to use the coding tool using at least one tool parameter (82) to predict the at least one first predetermined block and to write the at least one tool parameter (82) onto the bitstream (12).
306. The encoder of claim 305, configured to: write the signalling (81) in the data stream (12); and at the determination that the at least one tool is to be applied to at least one array of samples, write, in further signalling (82) of the data stream (12), the at least one tool parameter (82) to be applied to the coding tool.
307. The encoder of claim 305 or 306, configured to: write signalling (81) in the data stream (12) which indicates whether the first and second tree-based partitionings (25', 25'') are a single partitioning or separate partitionings; and wherein, if a cross-prediction tool is applied, the prediction involves: modifying the at least one tool parameter (82) for application of the predetermined coding tool to the at least one second predetermined block in case of the first and second tree-based partitionings (25', 25'') being separate partitionings, and using the at least one tool parameter (82) for application of the predetermined coding tool to the at least one second predetermined block unmodified in case of the first and second tree-based partitionings (25', 25") being a single partitioning.
308. The encoder of claim 307, wherein the at least one tool parameter indicates a prediction mode associated to the at least one predetermined coding tool to be used for the prediction of at least one of the first predetermined block and second predetermined block.
309. The encoder of any of claims 307-309, configured, when modifying the at least one tool parameter, to use a second, modified parameter which is a default value.
310. The encoder of any of claims 307-309, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the predetermined coding tool using the same at least one tool parameter for all the arrays of the first and second predetermined block.
311. The encoder of any of claims 307-310, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to refrain from writing in the bitstream (12) another tool parameter for a predetermined coding tool for the second predetermined block.
312. The encoder of any of claims 307 to 311, configured, if both a cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, in order to predict the second predetermined block, at least one second, modified tool parameter different from the at least one tool parameter used for the prediction of the first predetermined block.
313. The encoder of claim 312, wherein the second, modified tool parameter in the data stream is a default parameter.
314. The encoder of any of claims 307-313, wherein the decision whether to apply the cross-prediction tool or not is encoded in the signalling of the data stream.
315. The encoder of any of claims 289-314, wherein the first tree-based partitioning is associated to a single color component, and the second tree-based partitioning is associated to two color components different from the first color component.
316. The encoder of claim 315, wherein the single color component associated to the first tree-based partitioning (25') is a luma component, and the two color components associated to the second tree-based partitioning (25'') are chroma components.
317. The encoder of claim 316, wherein the single color component is a green component, and the two color components associated to the second tree-based partitioning are a blue component and a red component.
318. The encoder of any of claims 305-317, wherein the at least one tool parameter (82) is shared for multiple arrays (19-R, 19-G, 19-B; 19-U, 19-V) of samples, so as to apply the at least one tool parameter (82) to the coding tool for multiple arrays of samples (19-R, 19- G, 19-B).
319. The encoder of any of claims 305-318, wherein the at least one tool parameter (82) is shared for all the arrays (19-R, 19-G, 19-B) of samples, so as to apply the at least one tool parameter (82) to the coding tool for all the arrays (19-R, 19-G, 19-B) of samples.
320. The encoder of any of claims 305-319, wherein the at least one tool parameter (82) includes at least one first parameter for the first array (19-Y) of samples of the plurality of arrays of samples and at least one second parameter for the second array (19-U) of samples of the plurality of arrays of samples, so as to apply the first parameter to the coding tool for the first array (19-Y) of samples, and the second parameter to the coding tool for the second array (19-U) of samples.
321. The encoder of claim 320, wherein the plurality of components includes three components forming the color space, and/or wherein the at least one tool parameter (82) includes at least one third parameter for the third array (19-V) of samples of the plurality of arrays of samples, so as to apply the third parameter to the coding tool for the third array (19-V) of samples.
322. The encoder of any of claims 289 to 321 , wherein the encoder is configured to write, onto the signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
323. The encoder of any of claims 289 to 322, wherein the encoder is configured to write, onto the signalling (81) in the data stream (12), an indication on which coding tool(s) is(are) to be selectively individually activated, or deactivated.
324. The encoder of claim 322 or 323, wherein the encoder is configured to write, onto signalling (82) in the data stream (12), one single parameter to be used for the coding tool, the encoder being configured to apply the single parameter to the coding tool for all the arrays of samples for which the coding tool is activated.
325. The encoder of claim 323 or 324, wherein the encoder is configured to write, onto signalling (82) in the data stream (12), a plurality of parameters to be used for the coding tool, the encoder applying each of the plurality of parameters to the coding tool for a respective array of samples.
326. The encoder of any of claims 289 to 325, wherein at least one coding tool involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples and are located within a portion (17acc, 17ccc) neighbouring the first or second predetermined block, which is distanced from the first or second predetermined block by a distance determined by a distance parameter (82) signalled in the data stream (12).
327. The encoder of any of any of claims 289 to 326, wherein at least one coding tool is a MRL.
328. The encoder of any of claims 289 to 327, wherein the at least one coding tool involves the intra prediction from a particular reference line of spatially neighbouring reference samples from previously predicted samples, wherein the at least one tool parameter (82) indicates the reference line.
329. The encoder of any of claims 289 to 328, configured to define the position of the portion (17''c, 17'''a) by: counting (17ccc, 17acc) a number of rows or columns of samples to be skipped in the at least one previously predicted block (17a-17c) to arrive at the portion (17"c, 17'''a), wherein the number of rows or columns of samples to be skipped is written onto at least one tool parameter in the signaling of the data stream (12), and/or measuring (17ccc, 17acc) a distance of the at least one previously predicted block (17a-17c) from the boundary (18a, 18c) of the predetermined block (18) neighbouring the at least one previously predicted block (17a-17c), wherein the distance is written onto at least one tool parameter in the signaling of the data stream (12).
330. The encoder of any of claims 289 to 317, wherein the at least one coding tool involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by a matrix multiplication between a pre-stored prediction matrix and a vector derived from the previously encoded samples.
331 . The encoder of any of claims 289 to 317 or 330, wherein the at least one coding tool is MIP.
332. The encoder of claim 330 or 331 , wherein the prediction mode is one of a plurality of predefined prediction modes, wherein the at least one tool parameter indicates which prediction mode, among the plurality of predefined prediction modes, is to be used for the prediction of at least one between the first and second predetermined block.
333. The encoder of claim 330 or 331 or 332, wherein the prediction matrix (17M) is signalled in the at least one tool parameter indicating the matrix.
334. The encoder of claim 333 when depending on any of claims 305 to 317, wherein the pre-stored prediction matrix (17M) is pre-stored among a plurality of pre-stored prediction matrixes, wherein the at least one tool parameter indicates which pre-stored prediction matrix (17M) is to be used.
335. The encoder of claim 334, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are a single partitioning, to apply the same prediction matrix (17M) for all the arrays of samples of the first predetermined block and the second predetermined block.
336. The encoder of any of claims 334 to 335, configured, if both the cross-prediction tool is applied and the first and second tree-based partitionings are separate partitionings, to predict the second predetermined block using the same predetermined coding tool that is used to predict the first predetermined block, but using, for the second predetermined block, at least one second prediction matrix (17M) different from the prediction matrix (17M) used for the prediction of the first predetermined block.
337. The encoder of claim 336, wherein the second prediction matrix correspond to a planar mode.
338. The encoder of any of claims 289 to 337, wherein the at least one coding tool involves, for each array of samples of the first or second predetermined block (18), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4), wherein the encoder is configured to perform the intra-prediction (44'), at first, for a first one (18-1) of the partitions and the encoder is configured, after the prediction of the first one (18-1 ) of the partitions, to perform a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions.
339. The encoder of any of claims 289-338, wherein the at least one coding tool involves, for each array of samples of the predetermined block (18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete at least one first and/or second predetermined block (18', 18"), and dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual encoding/decoding.
340, The encoder any of claims 289-339, wherein the at least one coding tool involves, for each array of samples of the first and/or second predetermined block (18', 18"), for which the at least one coding tool is to be applied, an intra prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples for the complete first and/or second predetermined block (18', 18''), by dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4), performing the intra-prediction (44'), at first, for a first one (18-1) of the partitions and, after the prediction of the first one (18-1) of the partitions, performing a prediction on a second one (18-2) of the partitions, wherein the prediction of the second one (18-2) of the partitions is at least partially based on the prediction of first one (18-1) of the partitions, if a size of the partitions of the first and/or second predetermined block (18', 18") fulfil a predetermined criterion and with dividing the respective array of samples into a plurality of partitions (18-1 , 18-2, 18-3, 18-4) for the purpose of performing prediction residual encoding/decoding if the size of the partitions of the predetermined block (18) fulfil the predetermined criterion.
341 , The encoder claim 339, wherein the encoder is further configured to: perform an entropy encoding (28b) in which the at least one first and/or second predetermined block (18', 18") is divided into partitions e.g. for the at least one first array of samples; and/or perform an entropy encoding (28b) in which the at least one first and/or second predetermined block (18', 18") is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
342, The encoder of any of claims 289-341 , wherein the encoder is further configured to: perform a dequantization (38') in which the at least one first and/or second predetermined block (18', 18") is divided into partitions e.g. for the at least one first array of samples; and/or perform a dequantization (38') in which the at least one first and/or second predetermined block (18', 18") is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
343. The encoder of any of any of claims 339-341 , wherein the encoder is further configured to: perform a transformation in which the at least one first and/or second predetermined block (18', 18") is divided into partitions e.g. for the least one first array (19-G, 19-Y) of samples; and/or perform a transformation in which the at least one first and/or second predetermined block (18', 18") is divided into partitions e.g. for the at least one second array (19-B; 19-U) of samples.
344. The encoder of any of claims 339 to 342, wherein the prediction (44) is performed for the entire at least one first and/or second predetermined block (18).
345. The encoder of claim 338, wherein the first partition (18-1) neighbours at least one first (17c) of the previously predicted blocks, while the second partition (18-2) neighbours the first partition (18-1).
346. The encoder of claim 345, wherein the first partition (18-1) is interposed between the second partition (18-2) and the at least one first (17c) of the previously predicted blocks, so that the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks.
347. The encoder of claim 346, wherein the second partition (18-2) does not neighbour the at least one first (17c) of the previously predicted blocks but neighbours at least one second (17c) of the previously predicted blocks.
348. The encoder of any of claims 338 to 347, wherein the encoder is configured, after the prediction (44') of the second one (18-2) of the partitions, to perform a prediction on a third one (18-3) of the partitions, wherein the prediction of the third one (18-3) of the partitions is at least partially based on the prediction of the second one (18-2) of the partitions.
349. The encoder of claim 348, wherein the encoder is configured, after the prediction (44') of the third one (18-3) of the partitions, to perform a prediction on a fourth one (18-4) of the partitions, wherein the prediction of the fourth one (18-4) of the partitions is at least partially based on the prediction of the third one (18-3) of the partitions.
350. The encoder of any of claims 338 to 349, wherein the encoder is configured to iterate the prediction of a subsequent partition (18-2) after the prediction (44) of a previously predicted partition (18-1).
351. The encoder of any of claims 338 to 350, wherein each of the partitions has a horizontal dimension larger than the vertical.
352. The encoder of any of claims 338 to 349, wherein each of the partitions has a vertical dimension larger than the horizontal dimension.
353. The encoder of claim 351 or 352, wherein the at least one first and/or second predetermined block (18', 18") is a square block (e.g. 16x16) or rectangular block (e.g. 8x16) and is partitioned in rectangular partitions (e.g. four 4x16 or four 2x16 partitions), e.g. each partition having one dimension (e.g. horizontal) equal to one respective dimension of the square at least one first and/or second predetermined block (18', 18") (e.g. 16), and the other dimension (e.g. vertical) of each partition being less (e.g. 4 or 2) than the respective dimension of the at least one first and/or second predetermined block (18', 18") so that the sum (e.g. 4+4+4+4=16 or 2+2+2+2=8) of the respective dimensions of all the partitions is equal to the respective dimension of the at least one first and/or second predetermined block (18', 18") (e.g. 16 or 8).
354. The encoder of any of claims 338 to 349, wherein each of the partitions has a vertical dimension equal to the horizontal dimension.
355. The encoder of any of claims 338 to 352, wherein the encoder is configured to define the partitions (18-1, 18-2, 18-3, 18-4) and to indicate the partitions in the at least one tool parameter.
356. The encoder of any of claims 338 to 355, wherein the encoder is configured to define the number of partitions (18-1, 18-2, 18-3, 18-4) and to signal it in the at least one tool parameter in the data stream (12) indicating the number of partitions (18-1, 18-2, 18-3, 18-
4), wherein the encoder is configured to divide the first or second predetermined block (18) into the defined number of partitions.
357. The encoder of claim 356, wherein the encoder is configured to divide the first or second predetermined block (18) into the plurality of partitions (18-1, 18-2, 18-3, 18-4), along a vertical or horizontal dimension, and to signal though the at least one tool parameter.
358. The encoder of claim 357, wherein the encoder is configured to define the plurality of partitions (18-1, 18-2, 18-3, 18-4) so that the partitions (18-1, 18-2, 18-3, 18-4) have the same area.
359. The encoder of any of claims 356 to , wherein the number of partitions is a power of 2
360. The encoder of any of claims 356 to 359, wherein the number of partitions is selectively chosen among (e.g. two or four) e.g. and is indicated through the at least one tool parameter (82).
361. The encoder of any of claims 356 to 359, wherein the number of partitions is selectively decided on the basis of the dimension(s) of the at least one first and/or second predetermined block (18', 18").
362. The encoder of any of claims 356 to 361, configured to compare at least one dimension of the first or second predetermined block (18) with a respective threshold, so as to deactivate the coding tool in case of at least one dimension of the first or second predetermined block (18) being below the respective threshold.
363. The encoder of any of claims 356 to 362, wherein the at least one coding tool further includes subjecting each array of samples of the plurality of arrays of samples to an adaptive color transform, ACT, so that the color transform is applied on a partition basis, wherein, for each array of samples of the plurality of arrays of samples, the same subdivisions into partitions is carried out.
364. The encoder of any of claims 289 to 356, wherein at least one coding tool is configured to derive the prediction residual from the data stream (12) transformed according to a multi-stage transform according to which the prediction residual is transformed by a primary transform (T1), wherein a secondary transform (T2) is applied to a sub-area (18.2) of the first or second predetermined block (18) after having subjected to the primary transform (T1).
365. The encoder of claim 364, wherein the primary transform is a separable transform.
366. The encoder of claim 364 or 365, wherein the primary transform is a DCT-II.
367. The encoder of claim 364 or 365, wherein the primary transform is a DST-VII or
DCT-VIII.
368. The encoder of claim 364 or 365, configured to operate in transformskip mode in case of the first transformation being the identity transformation.
369. The encoder of any of claims 364 to 368, wherein the secondary transform is a non- separable transform.
370. The encoder of any of claims 364 to 369, wherein the multi-stage transform is signalled through the at least one tool parameter (82) of the data stream (12).
371. The encoder of any of claims 364 to 370, wherein the primary transform is chosen by the at least one coding tool and is indicated in the at least one tool parameter (82) in the data stream (12), wherein one single multi-stage transform is applied for alt the arrays of samples of the plurality of arrays of samples.
372. The encoder of any of claims 364 to 370, wherein the encoder is configured to choose, for each array of samples of the plurality of arrays of samples, whether to activate or deactivate the at least one coding tool and to indicate, through the at least one tool parameter (81), the choice in the data stream (12).
373. The encoder of claim 372, wherein the encoder is configured to choose, for each array of samples of the plurality of arrays of samples for which the coding tool is activated, a particular multi-stage transform.
374. The encoder of any of claims 289 to 373, wherein the at least one coding tool involves, for each array of samples of the first or second predetermined block, for which the at least one coding tool is to be applied, an inter prediction of the respective array of samples from previously encoded samples which are defined in the space component of the respective array of samples, by restricting residual encoding of a prediction residual to a reduced transform area (18.R) with inferring a remaining transform area to be equal to zero.
375. The encoder of claim 374, wherein the dimensions of the reduced area (18.R) with respect to the dimensions of the first or second predetermined block (18) have a ratio of 50:50 or 25:75.
376. The encoder of claim 374 or 375, wherein the encoder is configured to indicate, through the at least one tool parameter (82) in the data stream (12), dimensional and/or positional relationships between the reduced area (18.R) and the first or second predetermined block (18).
377. The encoder of claim 374 or 375 or 376, wherein the encoder is configured to write, onto signalling (81) in the data stream (12), an indication on whether the coding tool is to be activated, or deactivated, for all the arrays of samples.
378. The encoder of claim 374 or 375 or 376, wherein the encoder is configured to write, onto signalling (81) in the data stream (12), an indication on which coding tools are to be selectively individually activated, or deactivated.
379. The encoder of claim 377 or 378, wherein the encoder is configured to indicate, through the at least one tool parameter (82) in the data stream (12), one single parameter on dimensional and/or positional relationships between the first or second predetermined block (18', 18") and a reduced area (18. R), wherein the single parameter is to be applied to the coding tool for all the arrays of samples for which the coding tool is activated.
380. The encoder of claim 377 or 378, wherein the encoder is configured to indicate, through the at least one tool parameter (82) in the data stream (12), a plurality of parameters on dimensional and/or positional relationships between the first or second predetermined block (18) and a reduced area (18.R), wherein each of the plurality of parameters is to be applied to the coding tool for a respective array of samples.
381. The encoder of any of claims 289 to 380, wherein the data stream is encoded using context-based adaptive binary arithmetic coding, CABAC.
382. The encoder of any of claims 289 to 381, configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block (18), a syntax element from the data stream (12), indicating whether to activate and/or deactivate the at least one coding tool for respective array (19-R, 19-G, 19-B; 19-Y, 19-U, 19-V) of samples, wherein the encoder is configured to sequentially encode the syntax elements using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined syntax element for a predetermined array of samples, based on the syntax element encoded for a preceding syntax element.
383. The encoder of claim 382, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined syntax element and update the context of the selected context depending on the predetermined syntax element.
384. The encoder of any of claims 383, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the syntax elements for the arrays of samples.
385. The encoder of any of claims 289 to 384, configured to, for the first or second predetermined block, encode, for each array of samples of the first or second predetermined block, a parameter from the data stream (12), which parametrizes the coding tool for the respective array of samples, wherein the encoder is configured to sequentially encode the parameters using context-based adaptive binary arithmetic encoding and to determine a probability estimate for encoding a predetermined parameter for a predetermined array of samples, based on the parameter encoded for a preceding syntax element.
386. The encoder of claim 385, wherein the determination of the context involves the selection of a selected context out of a set of contexts each of which has a probability estimate associated therewith, wherein the encoder is configured to use the probability estimate associated with the selected context for encoding the predetermined parameter and update the context of the selected context depending on the predetermined parameter.
387. The encoder of any of claims 386, configured to perform a selection out of the same set of contexts for each of the array of samples, and to use a default context out of the set of contexts for a firstly encoded one out of the parameters for the arrays of samples.
388. The encoder any of claims 289 to 387, wherein the first color component is a luma component, the second color component is a chroma component.
389. The encoder any of the claims 292 to 387, wherein the first color component is a luma component, the second color component is a chroma component Cb.
390. The encoder any of claims 289 to 388, wherein the color components form a luma- chroma based color space.
391. The encoder of any of claims 289 to 390, wherein the first color component is a green component, the second color component is a blue component.
392. Method for block-wise encoding a picture (10) onto a data stream (12), wherein the picture (10) is divided, according to at least one first tree-based partitioning (25') and a second tree-based partitioning (25'') into a plurality of blocks (18', 18") for each of the first and second tree-based partitionings (25', 25''), wherein each of the first and second tree-based partitionings (25', 25'') is associated to at least one color space component (Y, U, V) of a plurality of color space components forming a color space, wherein, for each of the first and second tree-based partitionings (25', 25''), each block (18', 18") has one array (19-Y, 19-U, 19-V) of samples defined for each of the at least one color space component (V, U, Y) associated to the respective tree-based partitioning (25', 25''), wherein the method includes predicting, according to at least one predetermined coding tool, at least one first predetermined block (18') of the first tree-based partitioning (25') and at least one second predetermined block (18") of the second tree-based partitioning (25") which is co-located to the first predetermined block (18') of the first tree- based partitioning (25'),
393. A non-transitory storage unit storing instructions which, when executed by a processor, cause the processor to perform the method of claim 392.
PCT/EP2020/088058 2019-12-30 2020-12-30 Encoding and decoding of color components in pictures WO2021136821A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP19220145.7 2019-12-30
EP19220145 2019-12-30

Publications (1)

Publication Number Publication Date
WO2021136821A1 true WO2021136821A1 (en) 2021-07-08

Family

ID=69147441

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/088058 WO2021136821A1 (en) 2019-12-30 2020-12-30 Encoding and decoding of color components in pictures

Country Status (1)

Country Link
WO (1) WO2021136821A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023068840A1 (en) * 2021-10-22 2023-04-27 엘지전자 주식회사 Non-separable primary transform design method and apparatus
WO2023075353A1 (en) * 2021-10-25 2023-05-04 엘지전자 주식회사 Non-separable primary transform design method and apparatus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150117520A1 (en) * 2013-10-29 2015-04-30 Broadcom Corporation Rdo-based small transform coefficients suppression algorithm for hevc
EP2991355A1 (en) * 2010-04-13 2016-03-02 GE Video Compression, LLC Inheritance in sample array multitree subdivision
EP3089450A1 (en) * 2010-04-13 2016-11-02 GE Video Compression, LLC Sample region merging
US20190273921A1 (en) * 2018-03-01 2019-09-05 Panasonic Intellectual Property Corporation Of America Encoder, and decoder, encoding method, decoding method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2991355A1 (en) * 2010-04-13 2016-03-02 GE Video Compression, LLC Inheritance in sample array multitree subdivision
EP3089450A1 (en) * 2010-04-13 2016-11-02 GE Video Compression, LLC Sample region merging
US20150117520A1 (en) * 2013-10-29 2015-04-30 Broadcom Corporation Rdo-based small transform coefficients suppression algorithm for hevc
US20190273921A1 (en) * 2018-03-01 2019-09-05 Panasonic Intellectual Property Corporation Of America Encoder, and decoder, encoding method, decoding method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023068840A1 (en) * 2021-10-22 2023-04-27 엘지전자 주식회사 Non-separable primary transform design method and apparatus
WO2023075353A1 (en) * 2021-10-25 2023-05-04 엘지전자 주식회사 Non-separable primary transform design method and apparatus

Similar Documents

Publication Publication Date Title
US11910030B2 (en) Inheritance in sample array multitree subdivision
US20210266533A1 (en) Image processing method, and image encoding/decoding method and device which use same
US10855990B2 (en) Inter-plane prediction
KR102524628B1 (en) Method and Apparatus for Video Encoding or Decoding
US20220217409A1 (en) Image decoding device using tool set and image decoding method thereby, and image coding device and image coding method thereby
WO2021136821A1 (en) Encoding and decoding of color components in pictures
KR20230058343A (en) Method and Apparatus for Video Encoding or Decoding
TW202332274A (en) Mip for all channels in the case of 4:4:4-chroma format and of single tree
US20220014741A1 (en) Methods and devices for intra sub-partition coding mode

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20835859

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20835859

Country of ref document: EP

Kind code of ref document: A1