Patent Description:
<NUM>/HEVC is video codec which already provides tools for elevating or even enabling parallel processing at encoder and/or decoder. For instance, HEVC supports a sub-division of pictures into an array of tiles which are encoded independently from each other. Another concept supported by HEVC pertains to WPP, according to which CTU rows or CTU-lines of the pictures may be processed in parallel from left to right, i.e. in stripes, provided that some minimum CTU offset is obeyed in the processing of consecutive CTU lines. It would be favorable, however, to have a video codec at hand which supports parallel processing capabilities of video encoders and/or video decoders even more efficiently.

<CIT> discloses a video decoder configured to, for one or more blocks coded with wavefront parallel processing enabled, determine a coding tree block (CTB) delay, wherein the CTB delay identifies a delay between when a first row of CTBs starts being decoded and when a second row of CTBs below the first row of CTBs starts being decoded, for a current block of video data coded in an intra-block copy (IBC) mode and coded with wavefront parallel processing disabled, determine an IBC prediction region for the current block within a picture that includes the current block based on the CTB delay that was determined for the one or more blocks coded with wavefront parallel processing enabled, identify, from within the determined IBC prediction region for the current block, a predictive block for the current block, and IBC decode the current block based on the predictive block. <CIT> discloses a method of Intra BC coding using restricted reference area. In the document it is described that a reference block is selected from an available ladder-shaped reference area comprising previously processed blocks before the current working block in the current CTU row and previously processed blocks in one or more previous CTU rows, a location of a last previously processed block of a second previous CTU row that is one CTU row farther away from the current CTU row than a first previous CTU row is always in a same vertical location or after a same vertical position of a last previously processed block of the first previous CTU row, and the current picture may be partitioned into multiple CTU rows for applying wavefront parallel processing (WPP) on the multiple CTU rows, where the current working block corresponds to a current working block.

It is, thus, the object of the present invention to provide a video codec which enables a more efficient processing at encoder and/or decoder in terms of parallelity.

This object is achieved by the subject-matter of the independent claims of the present application.

Further, advantageous aspects of the present application are described below with respect to the figures among which.

The following description of embodiments of the present application for the various aspects briefly discussed above, which embodiments may form novel techniques for, or build into, a next generation video coding system following the state-of-art video coding standard ITU T H. <NUM> | MPEG H HEVC [<NUM>], the following description starts with a brief introduction of some relevant coding tools available in state-of-art video coding standard ITU T H. <NUM> | MPEG H HEVC [<NUM>] or in the JEM-Software [<NUM>].

Considering temporal dependencies, one of the commonly used configurations in video coding is a "random access" coding mode, where hierarchical picture formation is packed into a group of pictures (GOP), <FIG> shows an example. The structural delay, caused by some dependencies between pictures <NUM>, allows picture parallel processing inside a GOP 12a, 12b as well as between GOPs 12a, 12b.

As can be seen in <FIG>, pictures <NUM> are not placed in a one row, but rather distributed across multiple rows. This presentation is chosen to highlight the structural hierarchical temporal dependencies between pictures <NUM> and their association with temporal levels (Tlds). With respect to the hierarchy, pictures <NUM> of the same temporal layer within a GOP such as 12a, 12b, except pictures of temporal level <NUM> (TId0), do not depend on each other. To be more precise, pictures indicated as being connected via a respective arrow do not necessarily depend on each other. Rather it is not forbidden. They can do so. Further, while pictures can generally depend on pictures of the same temporal level preceding the current picture in decoding order, the sort of dependency order described with respect to <FIG> is a requirement or prerequisite for parallelization approaches described hereinafter.

So, depending on temporal level, some pictures can be processed in parallel. For example, pictures <NUM> with POC <NUM>, <NUM>, <NUM>, <NUM> inside of a GOP <NUM> can be processed in parallel. However, some coding tools still may introduce dependencies between pictures. This obstructs clean technical solution for parallel processing. The subsequently presented embodiment propose special mechanisms to overcome such issues.

Considering prediction and slices, a significant portion of the compression gain in current video coding standards is obtained from sophisticated prediction. This includes prediction from reconstructed signals using temporal and spatial filtering as well as symbol prediction to minimize signaling overhead transmitted in the bit stream. Symbol prediction is performed using the two adjacent CTUs, to the left and above the current CTU.

When transmitting symbols that belong to one picture, different framings are available. Each comes with benefits and disadvantages. The most effective way, with the smallest overhead and best local prediction capabilities is to send only one slice per picture. Another variant designed for error robustness is to divide a picture into multiple slices. Per default, slices do not use inter-slice prediction neither for symbol coding nor for spatial prediction, so each slice can be parsed and reconstructed independently in an arbitrary order. This adapted prediction scheme prevents error propagation and allows a flexible tradeoff between error robustness and R-D-performance. A further variant of transmitting symbols for a picture is called dependent slices. This approach focuses on parallel processing of individual CTU-lines, the wave front parallel processing (WPP), but not on error robustness. Due to restrictions that guarantee availability of prediction data, dependent slices have similar R-D performance compared to a single slice per picture, but with the degree of freedom to apply parallel execution on individual CTU-line. The extra requirement defines a minimal CTU-offset between consecutive CTU-lines that must not be violated. This offset guarantees that for a given CTU, reference CTUs to the left, above-left, above and above right that are required for prediction, are already reconstructed and available.

CABAC Context Variables (CCV) are adaptive models representing a probability. The CCVs are used in combination with arithmetic entropy coding to model the entropy of a specific symbol or sets of symbols. The term adaptive indicates a permanent update of the model towards the current coded state to adapt to local statistics of the model. The update step is usually embedded in the arithmetic coding operation. At first the current state of the CCV is used to parameterize the arithmetic coding process, once the decoded symbol is derived it is used to update the CCV with a given step size towards the current decode probability.

Since the statistics for symbol values are varying, a set of CCVs is used to arithmetically code the slice data. However, before using a CCV either for encoding or for decoding, it has to be initialized to a predefined state. The default CCV initialization is performed when the decoding/encoding process of a new slice starts.

State of the art CABAC context initialization is done in the following manner. The default context initialization is done by applying an initialization function to a CCV. The function determines the initial CCVCMM state, calculated from CCVCMM specific constant values, selected via an index-parameter altered by slice-level QP.

Although, model initialization parameters are derived from empirical data collected in exhaustive tests with plenty of test material in order to achieve an initial state that is representative for a wide range of video material, the calculated initial state of a CCV often differs significantly from the state that would give an optimal setup for the actual content.

With the already mentioned WPP approaches the initialization performance gap would become a more serious problem because CCV require a reset for each CTU-line. To overcome this performance gap a special initialization mechanism was introduced.

There is also some local CCV derivation technique used so far in ITU T H. <NUM> | MPEG H HEVC which supports for parallel processing. With wave front parallel processing CTU-lines can be handled independently by individual threads. To decouple the parsing process of the CTU-lines, it is necessary to reset the CABAC engine and initialize all CCVs at the beginning of each CTU-line. Because the default CCV initialization process does not necessarily model the content dependent CCV states in an optimal way, a new method for initialization was proposed in combination with dependent slices.

To enhance the CCV set up, only the first line in a picture is initialized using the default CCV initialization. All succeeding lines in the picture inherit the CCV states from the CTU-line above after the second CTU in the line above has been processed. Because this concept of initialization is only available for dependent slices, it can make use of the required minimal CTU-offset.

Although this initialization method provides an improvement compared to line-wise default initialization, gain that can be achieved is limited due to the few CTUs that can contribute to updated process of the inherited CCVs.

Some sort of temporal CCV derivation was proposed and implemented in JEM-Software [<NUM>]. The basic idea is to exploit temporal analogies. Therefore a buffer is established that can store a snapshot of the states of CCV sets. The states of the CCV set are stored when the CTU in the center of the picture has been processed. In the implemented variant the CCV states are stored using the current slice-level QP as index into the buffer.

When a new decoding process of a succeeding picture is started, the CCV-buffer is checked for a valid CCV set stored for the current slice-level QP. See, for instance, <FIG> which shows by arrows the re-usage of CCV states by a picture pointed to by an arrow, the CCV states having been buffered and taken from pictures forming the origin of the arrows. If there is a set available the CCVs states are copied from the buffer into the current CCVs used for parsing/encoding. Otherwise, if no valid CMM set is available, the default initialization function is used to set up the current CCV set.

After having described certain coding tools known from HEVC or JEM, and their limits or disadvantages, the following description proceeds with a description of examples for video encoder and video decoder which may be implemented in a manner incorporating one or more of the subsequently explained embodiments. In particular, the presentation of this example for video encoder and video decoder may render easier the understanding of the subsequently explained embodiments, but it should be noted that the subsequently explained embodiments of the present application are neither restricted to form implementation variants of HEVC or JEM, nor implementation variants of the video encoder and video decoder described now with respect to <FIG>.

<FIG> shows an apparatus for predictively coding a video <NUM> composed of a sequence of pictures <NUM> into a data stream <NUM>. Block-wise predictive coding is used to this end. Further, transform-based residual coding is exemplarily used. The apparatus, or encoder, is indicated using reference sign <NUM>. <FIG> shows a corresponding decoder <NUM>, i.e. an apparatus <NUM> configured to predictively decode the video <NUM>' composed of pictures <NUM>' in picture blocks from the data stream <NUM>, also here exemplarily using transform-based residual decoding, wherein the apostrophe has been used to indicate that the pictures <NUM>' and video <NUM>', respectively, as reconstructed by decoder <NUM> deviate from pictures <NUM> originally encoded by apparatus <NUM> in terms of coding loss introduced by a quantization of the prediction residual signal. <FIG> and <FIG> exemplarily use transform based prediction residual coding, although embodiments of the present application are not restricted to this kind of prediction residual coding. This is true for other details described with respect to <FIG> and <FIG>, too, as will be outlined hereinafter.

The encoder <NUM> is configured to subject the prediction residual signal to spatial-to-spectral transformation and to encode the prediction residual signal, thus obtained, into the data stream <NUM>. Likewise, the decoder <NUM> is configured to decode the prediction residual signal from the data stream <NUM> and subject the prediction residual signal thus obtained to spectral-to-spatial transformation.

Internally, the encoder <NUM> may comprise a prediction residual signal former <NUM> which generates a prediction residual <NUM> so as to measure a deviation of a prediction signal <NUM> from the original signal, i.e. video <NUM> or a current picture <NUM>. The prediction residual signal former <NUM> may, for instance, be a subtractor which subtracts the prediction signal from the original signal, i.e. current picture <NUM>. The encoder <NUM> then further comprises a transformer <NUM> which subjects the prediction residual signal <NUM> to a spatial-to-spectral transformation to obtain a spectral-domain prediction residual signal <NUM>' which is then subject to quantization by a quantizer <NUM>, also comprised by encoder <NUM>. The thus quantized prediction residual signal <NUM>" is coded into bitstream <NUM>. To this end, encoder <NUM> may optionally comprise an entropy coder <NUM> which entropy codes the prediction residual signal as transformed and quantized into data stream <NUM>. The prediction residual <NUM> is generated by a prediction stage <NUM> of encoder <NUM> on the basis of the prediction residual signal <NUM>" decoded into, and decodable from, data stream <NUM>. To this end, the prediction stage <NUM> may internally, as is shown in <FIG>, comprise a dequantizer <NUM> which dequantizes prediction residual signal <NUM>" so as to gain spectral-domain prediction residual signal <NUM>‴, which corresponds to signal <NUM>' except for quantization loss, followed by an inverse transformer <NUM> which subjects the latter prediction residual signal <NUM>‴ to an inverse transformation, i.e. a spectral-to-spatial transformation, to obtain prediction residual signal <NUM>"", which corresponds to the original prediction residual signal <NUM> except for quantization loss. A combiner <NUM> of the prediction stage <NUM> then recombines, such as by addition, the prediction signal <NUM> and the prediction residual signal 24ʺʺ so as to obtain a reconstructed signal <NUM>, i.e. a reconstruction of the original signal <NUM>. Reconstructed signal <NUM> may correspond to signal <NUM>'. A prediction module <NUM> of prediction stage <NUM> then generates the prediction signal <NUM> on the basis of signal <NUM> by using, for instance, spatial prediction, i.e. intra prediction, and/or temporal prediction, i.e. inter prediction. Entropy coder <NUM> entropy codes not only the prediction residual <NUM>" into the data stream, but also other coding data which describes the pictures such as, besides the residual data, prediction modes, prediction parameters, quantization parameters and/or filter parameters. The coding data represents the pictures. It may present the syntax elements coded into the data stream. The entropy coder <NUM> encodes this coding data in a lossless manner into the data stream <NUM>. The entropy coding may be context-adaptive. That is, contexts are selected for a portion of the coding data currently to be entropy coded based on temporally and/or spatially neighboring, previously encoded coding data, each context having associated therewith a corresponding context entropy probability, i.e. an estimate of the symbol probability. The selected context's probability is used for the current entropy coded data entity and updated based on same. At the beginning, such as when starting entropy coding the coding data relating to one picture, the probabilities of the contexts are initialized. In accordance with some embodiments, details in this regard are set out below, but same are optional with respect to the other embodiments.

Likewise, decoder <NUM> may be internally composed of components corresponding to, and interconnected in a manner corresponding to, prediction stage <NUM>. In particular, entropy decoder <NUM> of decoder <NUM> may entropy decode the quantized spectral-domain prediction residual signal <NUM>" from the data stream. Context derivation may be done in a manner synchronous with the encoder. The result is the coding data including, for instance, the prediction residual data. Thereupon, dequantizer <NUM>, inverse transformer <NUM>, combiner <NUM> and prediction module <NUM>, interconnected and cooperating in the manner described above with respect to the modules of prediction stage <NUM>, recover the reconstructed signal on the basis of prediction residual signal <NUM>" so that, as shown in <FIG>, the output of combiner <NUM> results in the reconstructed signal, namely the video <NUM>'or a current picture <NUM>' thereof.

Although not specifically described above, it is readily clear that the encoder <NUM> may set some coding parameters including, for instance, prediction modes, motion parameters and the like, according to some optimization scheme such as, for instance, in a manner optimizing some rate and distortion related criterion, i.e. coding cost, and/or using some rate control. As described in more details below, encoder <NUM> and decoder <NUM> and the corresponding modules <NUM>, <NUM>, respectively, support different prediction modes such as intra-coding modes and inter-coding modes. The granularity at which encoder and decoder switch between these prediction modes may correspond to a subdivision of the pictures <NUM> and <NUM>', respectively, into blocks. Note that some of these blocks may be blocks being solely intra-coded and some blocks may be blocks solely being inter-coded and, optionally, even further blocks may be blocks obtained using both intra-coding and inter-coding. According to intra-coding mode, a prediction signal for a block is obtained on the basis of a spatial, already coded/decoded neighborhood of the respective block. Several intra-coding sub-modes may exist the selection among which, quasi, represents a kind of intra prediction parameter. There may be directional or angular intra-coding sub-modes according to which the prediction signal for the respective block is filled by extrapolating the sample values of the neighborhood along a certain direction which is specific for the respective directional intra-coding sub-mode, into the respective block. The intra-coding sub-modes may, for instance, also comprise one or more further sub-modes such as a DC coding mode, according to which the prediction signal for the respective block assigns a DC value to all samples within the respective block, and/or a planar intra-coding mode according to which the prediction signal of the respective block is approximated or determined to be a spatial distribution of sample values described by a two-dimensional linear function over the sample positions of the respective block with deriving tilt and offset of the plane defined by the two-dimensional linear function on the basis of the neighboring samples. Alternatively or additionally, intra prediction modes may use intra pattern search (locating a patch within an already processed portion of the current picture using same as a predictor) with explicit or implicit indication of the patch to be used, intra prediction where the predictor is provided in transform domain directly such as by used of a neural network, and/or a prediction transform coefficients from neighboring residual block in transform domain directly. Compared thereto, according to inter-prediction mode, a prediction signal for a block may be obtained, for instance, by temporally predicting the block inner. For parametrization of an inter-prediction mode, motion vectors may be signaled within the data stream, the motion vectors indicating the spatial displacement of the portion of a previously coded picture of the video <NUM> at which the previously coded/decoded picture is sampled in order to obtain the prediction signal for the respective block. This means, in addition to the residual signal coding comprised by data stream <NUM>, such as the entropy-coded transform coefficient levels representing the quantized spectral-domain prediction residual signal <NUM>", data stream <NUM> may have encoded thereinto prediction related parameters for assigning to the blocks prediction modes, prediction parameters for the assigned prediction modes, such as motion parameters for inter-prediction modes, and, optionally, further parameters which control a composition of the final prediction signal for the blocks using assigned prediction modes and prediction parameters. Additionally, the data stream may comprise parameters controlling and signaling the subdivision of picture <NUM> and <NUM>', respectively, into the blocks. The decoder <NUM> uses these parameters to subdivide the picture in the same manner as the encoder did, to assign the same prediction modes and parameters to the blocks, and to perform the same prediction to result in the same prediction signal.

<FIG> illustrates the relationship between the reconstructed signal, i.e. the reconstructed picture <NUM>', on the one hand, and the combination of the prediction residual signal <NUM>"" as signaled in the data stream, and the prediction signal <NUM>, on the other hand. As already denoted above, the combination may be an addition. The prediction signal <NUM> is illustrated in <FIG> as a subdivision of the picture area into blocks <NUM> of varying size, although this is merely an example. The subdivision may be any subdivision, such as a regular subdivision of the picture area into rows and columns of blocks, or a multi-tree subdivision of picture <NUM> into leaf blocks of varying size, such as a quadtree subdivision or the like, wherein a mixture thereof is illustrated in <FIG> where the picture area is firstly subdivided into rows and columns of tree-root blocks which are then further subdivided in accordance with a recursive multi-tree subdivisioning to result into blocks <NUM>.

The prediction residual signal <NUM>"" in <FIG> is also illustrated as a subdivision of the picture area into blocks <NUM>. These blocks might be called transform blocks in order to distinguish same from the coding blocks <NUM>. In effect, <FIG> illustrates that encoder <NUM> and decoder <NUM> may use two different subdivisions of picture <NUM> and picture <NUM>', respectively, into blocks, namely one subdivisioning into coding blocks <NUM> and another subdivision into blocks <NUM>. Both subdivisions might be the same, i.e. each block <NUM>, may concurrently form a transform block <NUM> and vice versa, but <FIG> illustrates the case where, for instance, a subdivision into transform blocks <NUM> forms an extension of the subdivision into blocks <NUM> so that any border between two blocks <NUM> overlays a border between two blocks <NUM>, or alternatively speaking each block <NUM> either coincides with one of the transform blocks <NUM> or coincides with a cluster of transform blocks <NUM>. However, the subdivisions may also be determined or selected independent from each other so that transform blocks <NUM> could alternatively cross block borders between blocks <NUM>. As far as the subdivision into transform blocks <NUM> is concerned, similar statements are thus true as those brought forward with respect to the subdivision into blocks <NUM>, i.e. the blocks <NUM> may be the result of a regular subdivision of picture area into blocks, arranged in rows and columns, the result of a recursive multi-tree subdivisioning of the picture area, or a combination thereof or any other sort of segmentation. Just as an aside, it is noted that blocks <NUM> and <NUM> are not restricted to being quadratic, rectangular or any other shape.

Further, the subdivision of a current picture <NUM> into blocks <NUM> at which the prediction signal is formed, and the subdivision of a current picture <NUM> into blocks <NUM> at which the prediction residual is coded, may not the only subdivision used for coding/decoding. These subdivisions form a granularity at which prediction signal determination and residual coding is performed, but at other granularities than these subdivisions, encoder and decoder may set certain coding parameters which might include some of the aforementioned parameters such as prediction parameters and the like.

<FIG> illustrates that the combination of the prediction signal <NUM> and the prediction residual signal <NUM>"" directly results in the reconstructed signal <NUM>'. However, it should be noted that more than one prediction signal <NUM> may be combined with the prediction residual signal 24ʺʺ to result into picture <NUM>' in accordance with alternative embodiments such as prediction signals obtained from other views or from other coding layers which are coded/decoded in a separate prediction loop with separate DPB, for instance.

In <FIG>, the transform blocks <NUM> shall have the following significance. Transformer <NUM> and inverse transformer <NUM> perform their transformations in units of these transform blocks <NUM>. For instance, many codecs use some sort of DST or DCT for all transform blocks <NUM>. Some codecs allow for skipping the transformation so that, for some of the transform blocks <NUM>, the prediction residual signal is coded in in the spatial domain directly. However, in accordance with embodiments described below, encoder <NUM> and decoder <NUM> are configured in such a manner that they support several transforms. For example, the transforms supported by encoder <NUM> and decoder <NUM> could comprise:.

Naturally, while transformer <NUM> would support all of the forward transform versions of these transforms, the decoder <NUM> or inverse transformer <NUM> would support the corresponding backward or inverse versions thereof:.

In any case, it should be noted that the set of supported transforms may comprise merely one transform such as one spectral-to-spatial or spatial-to-spectral transform.

As already outlined above, <FIG> have been presented as an example where the embodiments described further below may be implemented in order to form specific examples for video encoders and decoders according to the present application. Insofar, the video encoder and decoder of <FIG> and <FIG>, respectively, represent possible implementations of the video encoders and decoders described herein below. However, they are merely representative examples. With respect to the block-subdivisioning into blocks <NUM>, it is noted that same may be done in the manner outlined with respect to <FIG> or in a different manner. A subdivisioning into transform blocks, if present, may also be done as described with respect to <FIG> or in a different manner. In particular, the subdivisioning into blocks on the one hand and into other blocks on the other hand, such as transform blocks, may be done independent from each other by separately subdividing picture <NUM> into these blocks, respectively, or in a dependent manner. For instance, one subdivision such as the subdivision into transform blocks, may form an extension of the other subdivision as described above, or both subdivisions may form separate extensions of a common primary subdivision such as, for instance, the subdivision of the picture into an array of tree root blocks <NUM> as described with respect to <FIG>. And such possibilities also apply for other sub-picture granularities which will be mentioned below such as with respect to the definition of certain prediction parameters, prediction modes or the like. Different subdivisions may be used for different ones of these entities and same may be defined independent from each other, partially independent or as extensions from one another.

Having said this, the following description concentrates on what has not been described so far with respect to <FIG>, namely capabilities and coding tools implemented in the video encoder and the video decoder according to the various embodiments described below. These coding tools and specifics are described below with respect to the specific embodiments as it is not necessary that these coding tools are implemented in the video encoder and the video decoder according to the various aspects concurrently with respect to each of these embodiments.

An embodiment, which is described now first, concerns the first aspect of the present application and relates to a video codec where a video encoder and a video decoder use a stripe-wise entropy encoding of coding data describing a certain picture into the data stream <NUM>. In order to describe this frame work or concept used by video encoder and video decoder according to the embodiments of the present application concerning the first aspect described hereinafter, reference is made to <FIG> shows a picture <NUM> of the video <NUM> to be coded and as it is depicted in <FIG>, picture <NUM> is partitioned into stripes 90a, 90b and 90c. The number of stripes is not critical. Stripes 90a to 90c may be formed by rows of tree root blocks as they were introduced in <FIG>. That is, the stripes 90a to 90c partition the picture <NUM> and cross the picture <NUM> in a mutually parallel manner. The significance of the stripes 90a to 90c is as follows. By use of block-based coding, picture <NUM> is coded into coding data. The encoding procedure is illustrated in <FIG> using arrow <NUM>. The coding data is illustrated in <FIG> using reference sign <NUM> and shown as being arranged in a manner corresponding to the picture area of picture <NUM>. As the encoding <NUM> is block-based, the coding data <NUM> describes picture <NUM> in unit of blocks <NUM> such as coding blocks <NUM> and/or transform blocks <NUM>. The coding data <NUM> has, accordingly, some sort of spatial association to picture <NUM>. The coding data <NUM> may, for instance, be a collection of syntax elements describing picture <NUM> each relating to a certain block or portion. The coding data <NUM> may, as described above, comprise residual sample values such as transform coefficients, prediction parameters and prediction modes.

The coding data <NUM> is entropy coded into data stream <NUM> using entropy coding <NUM>. This entropy coding is, however, not done using one go. That is, the coding data <NUM> is encoded into data stream <NUM> by the video encoder using context-adaptive entropy coding along the stripes 90a to 90c. That is, the coding data <NUM> relating to a certain stripe is coded into data stream separately, thereby forming a substream per stripe 90a-90c which could be called a WPP substream. To this end, for each stripe 90a to 90c, the context entropy probabilities and, optionally, internal states such as probability interval parameters in case of using arithmetic coding, are initialized at a starting point 100a, 100b and 100c of the stripes 90a to 90c and adapted to the actual statistics, mainly updated according to the actual values of the coding data, during coding the respective stripe from its starting point 100i to its end which is, in <FIG>, at the right-hand side of picture <NUM>. In other words, the portion of coding data <NUM> relating to stripe 90a is entropy coded from starting point 100a to some end point 102a with context initialization at starting point 100a and continuous context update or adaptation from starting point 100a to end point 102a. Likewise, the coding data <NUM> concerning stripe 90b is entropy coded <NUM> from starting point 100b to end point 102b with context initialization at starting point 100b and continuous context adaptation during encoding towards endpoint 102b and the same applies to the other stripes, here stripe 90c. The decoding takes place in the same manner as the same contexts are derived and the same initializations are performed.

The specific issue which the subsequently described embodiment relates to pertains to the context initialization at the starting points 100a and 100c. One option would be to perform the context initialization in a default manner anew for each stripe 90a to 90c irrespective of, or independent from, context updates/adaptations of, in coding order, preceding stripes of the same picture <NUM> or in a previously encoded/decoded picture. As explained above, this may be done by selecting default context entropy probabilities depending on the quantization parameter associated with a respective stripe 90a-90c such as its slice quantization parameter. As described later on, this initialization method may still form one mode for context initialization in addition to the one described now. Another option chosen in HEVC, for example, is to initialize the context entropy probabilities for any second or following stripe in coding order leading from top to bottom, for instance, on the basis of a state of the context entropy probabilities updated for an immediately preceding stripe of the same picture until some intermediate point between its starting point and end point. The initialization of the stripes of each picture would be done, thus, independent from context entropy probabilities of stripes of other pictures. As described later on, this initialization method may also still form one mode for context initialization in addition to the one described now.

The embodiments described further below go one step further and allow for an initialization of context entropy probabilities for each stripe including the first one in coding order of a certain picture <NUM>, on the basis of context entropy probabilities adapted/updated in a co-located stripe of any previously coded/decoded picture will be described in more detail below.

Before this, however, it should be noted that the encoding/decoding concept of <FIG> may be done in a manner supporting WPP processing. For instance, the entropy encoding <NUM> may be performed in a manner so that the context selection or context modeling is performed in a manner dependent on a spatial neighborhood <NUM> of a currently entropy encoded portion <NUM> of a current stripe. The spatial neighborhood <NUM> is like a spatial template which is positioned at the current entropy coded block <NUM> and as long as currently processed, i.e., currently encoded/decoded, portions of other stripes of the same picture such as the ones preceding encoding order, are nearer to its respective end point than any spatial neighborhood <NUM> extends into any neighboring or other stripe such as the one immediately preceding in coding order, a parallel processing of the stripes, i.e., a parallel encoding/decoding is feasible without violating the availability of the coding data within the spatial neighborhood <NUM> on the basis of which the context for the currently entropy coded portion <NUM> of the current stripe is determined. The spatial restriction of the spatial context derivation reach of neighborhood <NUM> also allows for a parallel implementation of the entropy decoding procedure illustrated by arrow <NUM> in <FIG>.

Likewise, the encoding procedure <NUM> may involve spatial prediction of a currently encoded portion <NUM> on the basis of a spatial neighborhood <NUM> relative to the currently encoded portion <NUM>. Just as context derivation region <NUM>, the prediction source region <NUM> may extend into one or more neighboring stripes relative to the current stripe and as long as currently processed portions of any other stripe is nearer to its end point relative to region <NUM>, the availability of data used as a source for the prediction of the current portion <NUM> of the current stripe is fulfilled. Spatial prediction may pertain to prediction of samples or prediction of coding parameters. The extension of the union of regions <NUM> and <NUM> thus, define some spatial intra-prediction coding dependency reach which allows for parallel performance of encoding <NUM> and entropy encoding <NUM> and the corresponding decoding procedure <NUM> and <NUM> as long as an inter-stripe coding offset/decoding offset does not conflict with the just-mentioned spatial intra-picture coding dependency reach.

With respect to <FIG>, video encoder and video decoder according to an embodiment is described which may be implemented as depicted and explained with respect to <FIG>, or may be implemented differently. In any case, video encoder and video decoder support the functionality discussed with respect to <FIG>, i.e., a WPP enabling encoding/decoding or, differently speaking, the video coding is done in a manner enabling the video encoding and the video decoding to be performed in parallel with respect to the stripes. In other words, video coding is done in a manner so that, as long as concurrently processed portions of stripes 90a-c obey some inter-stripe coding offset, regions <NUM> and <NUM> never extend beyond, or cover, a currently processed portion of another stripe. Rather, the latter run ahead such regions spanned around the currently processed portions of other stripes. It should be noted, however, that in accordance with an alternative embodiment, the coding of the video data <NUM> is done in a manner not allowing parallel processing, for instance. Furthermore, spatial derivation of contexts as described within <FIG> with respect to region <NUM> may not necessarily be used. Special note is made to the fact that neither video encoder nor video decoder in accordance with an embodiment described with respect to <FIG> needs to actually perform parallel processing even if the embodiment of <FIG> is explained completely with respect to this circumstance. The video encoder may perform encoding serially with respect to the stripes thereby forming a data stream <NUM> which is decodable using WPP processing as well serial processing of the stripes.

In accordance with the embodiment of <FIG>, both video encoder and video decoder comprise a buffer <NUM> for buffering states of the context entropy probabilities resulting from their adaptation up to certain buffering points as described later on. The buffer states <NUM> form a kind of reservoir or pool of most recently applied states which are used to initialize context entropy probabilities for stripes 90a to 90c of a currently processed picture <NUM>. In particular, see <FIG>, which shows a currently processed picture <NUM> as well as a previously processed, i.e., previously encoded/decoded, picture <NUM>'. As described with respect to <FIG>, the entropy encoding/decoding of the stripes 90a to 90c of picture <NUM>' takes place from their starting points 100a to 100c along a common coding direction, namely from left to right in the example of <FIG>, up to the end points 102a to 102c. Inbetween, there are the aforementioned buffering points 124a to 124c. Thus, the states of the context entropy probabilities as initialized at starting points 100a to 100c, are continuously updated/adapted according to the actual picture content of picture <NUM>' and the intermediate states which result at buffering points 124a to 124c are the states which are buffered according to the embodiment of <FIG>. They, thus, form a kind of snapshot of the context probabilities. As will be clear from the subsequent description, the buffering of intermediate states of context entropy probabilities as manifesting themselves up to buffering points 124a to 124c needs not to be buffered in buffer <NUM> at encoder and decoder for each picture of video <NUM>. For instance, for some pictures, namely pictures of a certain temporal level, the buffering may be skipped. This may not play a role, however, for the embodiment described now and accordingly, this detail is left off for the time being. The buffering of the states <NUM> manifesting themselves in entropy coding each slice 90a to 90c of picture <NUM>' may be buffered in buffer <NUM> in a manner distinguishing between states <NUM> stemming from stripes of different stripe positions. As depicted in <FIG>, the pictures <NUM> and <NUM>' of video <NUM> are partitioned into stripes 90a to 90c in the same manner so that the stripes are co-located to each other and each stripe <NUM> of picture <NUM> has a co-located stripe of the same stripe ID in picture <NUM>'. The stripe ID aware buffering is illustrated in <FIG> by showing that a buffered state <NUM> is buffered in buffer <NUM> for each stripe ID or, alternatively speaking, for each stripe position. That is, the buffered states are buffered in a table. The buffering in buffer <NUM> may be done in a manner so that buffer <NUM> stores, for each stripe ID, the most recently buffered state <NUM> only. That is, an older state corresponding in strip ID, and optionally in one or more further criteria mentioned hereinafter, to the newly buffered state is replaced by the newly buffered one. As to the further the criteria, <FIG> exemplarily illustrates that buffered states <NUM> may additionally be distinguished according to their associated quantization parameter. Other criteria may pertain to the slice type, i.e. the type of prediction modes, (intra mode only, or intra and inter modes) associated with the respective stripe or the temporal level. To be more precise, the QP which has been used to encode/decode the coding data which has been, in turn, entropy encoded/decoded during context update/adaptation up to buffering point 124a to 124c, is used to distinguish the buffered states <NUM> resulting from the entropy coding in addition to distinguishing these states <NUM> according to the stripe ID of the stripe they belong to. The state <NUM> of a certain pair of associated stipe ID and quantization parameter QP among possible quantization parameters QP<NUM>, QP<NUM>. would, accordingly replace or update the previously buffered state <NUM> of the same pair of stripe ID and quantization parameter QP. Other combinations of stripe ID with one or more criteria are feasible as well. The QP awareness is illustrated in <FIG> using dashed lines. As the just-mentioned QP, thus, the slice QP could be used. Same is assigned to a greater portion of the picture, namely a slice such as the whole stripe. However, in combination with a rate control, i.e. a locally varying QP, varying in blocks, for instance, the qp at the storage position or buffering point 124a-c could alternatively be used for storing of buffering the context states in the buffer in a manner distinguishing between different QPs. For loading or context update at the starting positions 100a-c, in turn, the slice QP or the local QP for the first block in the respective stripe could be used.

In initializing the context entropy probabilities, however, encoder and decoder look-up, for each stripe of current picture <NUM>, a corresponding state in buffer <NUM>, i.e., one of states <NUM>. In particular, for each stripe 90a to 90c of current picture <NUM>, video encoder and video decoder may form an index using an information on a location of the respective stripe within the current picture <NUM>, i.e., using the stripe ID of the respective stripe, and using this index, encoder and decoder look-up the corresponding state <NUM> of that stripe ID in order to initialize the context entropy probabilities of the starting point 100a to 100c of the respective stripe 90a to 90c. In case of QP awareness, the look-up is done additionally depending on the quantization parameter associated with a respective stripe 90a to 90c of the current picture <NUM>. That is, for stripe 90a, for instance, the context entropy probabilities at starting point 100a are initialized based on a buffered state <NUM> buffered for stripe ID number <NUM>, i.e., the stripe ID corresponding to stripe 90a. In case of additional QP dependency, the look-up is done on the basis of the pair of stripe ID and the QP assigned to the respective stripe 90a, namely by looking-up state <NUM> in buffer <NUM> which corresponds to this pair of stripe ID and quantization parameter QP.

In the manner described, it is possible to inherit context entropy probabilities learned/updated in a previously processed picture <NUM>'. The buffering points 124a to 124c may be positioned pretty near to the end points 120a to 120c. There may even coincide to the end points 102a, 102b, 102c, but further possibilities are discussed below and might be preferred in order to avoid the context entropy probabilities being influenced or affected by statistical changes associated with edge phenomenons such as missing reference portions for prediction or the like. Owing to the stripe ID aware buffering, the reused or inherited context entropy probabilities thus inherited or reused from one picture <NUM>' to another picture <NUM> relate to the same or similar picture content and accordingly, the states <NUM> used for initializing the context entropy probabilities of the stripes 90a to 90c of current picture <NUM> more closely represent the actual sample statistics subject to the context-adaptive entropy encoding procedure or corresponding decoding procedure <NUM> and <NUM>, respectively.

In accordance with the embodiment described next with respect to <FIG>, video encoder and video decoder may or may not be configured to encode/decode the pictures of video <NUM> in a manner described with respect to <FIG>, i.e., allowing for WPP processing. Accordingly, in <FIG>, pictures <NUM> and <NUM>' of video <NUM>, which correspond to the pictures discussed with respect to <FIG> are illustrated as being sub-divided into stripes merely as an option with indicating this circumstance by use of dashed-lines. However, in accordance with the example of <FIG>, video encoder and video decoder perform the task of encoding/decoding <NUM>/<NUM> of the coding data <NUM> and the entropy encoding <NUM> and entropy decoding <NUM> of the coding data <NUM> in any case in the following manner. In particular, the coding data <NUM> represents or codes the pictures <NUM> in a manner defining hierarchical temporal coding interdependencies between the pictures of the video as it has been illustrated in <FIG>. That is, the pictures are classified into different temporal levels Tid wherein, for each temporal level, pictures of the respective temporal level are coded independent from pictures of temporal levels higher than the respective temporal level, and for each non-zero temporal level which forms a kind of base layer level, pictures of the respective non-zero temporal level are coded mutually independent. This is the way the coding data <NUM> is defined. As far as the entropy encoding <NUM> and entropy decoding <NUM> is concerned, same may be done in a manner not involving any inter-picture dependencies. That is, contexts, for instance, may be selected in a manner only using spatial neighborhood <NUM>. Alternatively, entropy coding may also exploit temporal sources for context selection, but if so, the hierarchical temporal coding interdependencies just-described with respect to the formation of coding data <NUM>, i.e., with respect to coding <NUM> and decoding <NUM>, is obeyed with respect to the entropy coding, i.e., with respect to <NUM> and <NUM>, as well. In any case, some context-adaptive entropy coding is used for the entropy coding and decoding <NUM> and <NUM>, and in doing so, for each picture of video <NUM>, the context entropy probabilities are initialized at least at one starting point <NUM> within the respective picture. The starting point <NUM> may, for instance, be the starting point 108a of the first stripe in stripe coding order when using the stripe partitioning and the WPP enabling processing discussed with respect to <FIG>. Or the initialization and buffering described now with respect to <FIG>, is done in a stripe aware manner thereby using both, the concept of <FIG> as well as the concept of <FIG> discussed now. As further depicted in <FIG>, some buffering takes place, namely the buffering of context entropy probability states adapted/updated from the at least one starting point <NUM> to some buffering point <NUM>. Again, more than one buffering point <NUM> may be used such as one for each starting point. When using stripes, the buffering points may be positioned as described with respect to <FIG>. When using one buffering point <NUM> and not using stripe partitioning, for instance, buffering point <NUM> may be a point in the mid of pictures of video <NUM>.

In case of <FIG>, however, the buffering of the state <NUM> representing the snapshot of context adaptation/update up to buffering point <NUM> is buffered in a temporal level aware manner. That is, the state <NUM> may be stored in a manner associated with the temporal level of the picture <NUM>' the buffering point <NUM> is part of. <FIG> illustrates the fact that the buffering may additionally be performed in a manner aware of the associated quantization parameter underlying the coding data which the entropy coding and the context adaptation/updated up to the buffering point <NUM> from which the respective state <NUM> has been taken, relates to. In case of stripe partitioning, the stripe ID may be logged for each buffered state <NUM> as well. The buffer <NUM> thus filled according to the example of <FIG> may store, for instance, the most recently buffered state <NUM> for (a) a corresponding temporal level, (b) a pair of temporal level and one of quantization parameter or stripe ID or slice type, or (c) a triplet of temporal level and two of quantization parameter or stripe ID or slice type (d) a quadruple of all of these qualifiers. The buffering may be done, however, not for each picture. For instance, the buffering may merely be done with respect to states <NUM> manifesting themselves at the respective buffering point <NUM> of pictures <NUM>' which are of the non-highest temporal level as indicated by curly bracket <NUM> and the dashed marking of the portion of stored buffer states in buffer <NUM>. The reason becomes clear when considering that buffered states of the highest layer are never used to initialize the context entropy probabilities of any picture <NUM>. In particular, in initializing the context entropy probabilities at starting point <NUM> of picture <NUM>, encoder and decoder may determine an index into buffer <NUM> using an information on a temporal level of current picture <NUM> and look-up, using this index, a state <NUM> which is buffered for a previously encoded/decoded picture such as picture <NUM>' which is of a temporal level lower than the one for the current picture <NUM>. In particular, by restricting context entropy probability inheritance or reuse in this manner, namely to the look-up of a buffered state <NUM> restricted to states stemming from lower-temporal-level pictures, it is possible to use pre-learned or updated context entropy probabilities of previously encoded/decoded pictures with nevertheless enabling parallel coding of pictures of, for instance, the highest temporal level as discussed above with respect to <FIG>.

Let's inspect the temporal level aware buffering and look-up in accordance with embodiments a little bit further. For instance, it has been described that the context entropy probabilities looked-up for context initialization at starting point <NUM> of picture <NUM> is done in a manner so that the initialization is done on the basis of a buffered state <NUM> which has been grasped from a picture <NUM>' of a temporal level lower than the one of picture <NUM>. Equality of the temporal level may, however, be admitted in case of picture <NUM> being a member of the zero level, i.e., the lowest level forming a kind of base temporal level. As far as the buffering of states manifesting themselves at a buffering point <NUM> of a picture <NUM>' is concerned, the following is noted. The buffering is made temporal level aware. For instance, states <NUM> of pictures <NUM>' at the highest temporal level are not stored as there is no picture which could look-up such states for use of context initialization owing to the temporal level restriction. For all other pictures, the states manifesting themselves at the corresponding buffering point <NUM> may be buffered in buffer <NUM>. Instead of buffering same in a table only once, however, such as at an entry corresponding to the corresponding temporal level and, in case of the context inheritance also being QP, stripe ID and/or slice type aware, at the corresponding entry of temporal level, QP, stripe ID and/or slice type, this state <NUM> of this picture <NUM>' may also be used to overwrite or replace the corresponding buffered states <NUM> of higher temporal levels.

Thus, if picture <NUM>' is of temporal level zero, its state <NUM> would be entered in buffer <NUM> for temporal level zero as well as the higher temporal levels. If picture <NUM>' is of temporal level one, its state <NUM> at buffering point <NUM> is entered in buffer <NUM> for temporal level one as well as the higher temporal levels, i.e., temporal level two. At the time of initializing the context entropy probabilities at starting point <NUM> of picture <NUM>, the index derived from the temporal level of picture <NUM> may then point to the corresponding position in buffer <NUM> for the temporal level one lower than the temporal level of picture <NUM>. This is, then, the most recently buffered state <NUM>, possibly additionally corresponding in QP and/or slice ID and/or slice type to picture <NUM>, which is of lower temporal level. However, different approaches for buffering states <NUM> are feasible as well. Instead of buffering the states <NUM> in buffer <NUM> in form of a table storing states <NUM> in a manner addressable by a vector composed of a temporal level and, optionally, stripe ID and/or QP and/or slice type, the states <NUM> could be buffered in buffer <NUM> in a one-dimensional linear manner. An index which could then be used for indexing could determine the rank of the corresponding state <NUM> to be used for context initialization at starting point <NUM> of current picture <NUM>. The rank could correspond to the order at which the states <NUM> have been buffered. In determining the state to be used for picture <NUM>, encoder and decoder may, for instance, traverse the buffered states <NUM> from a most recently buffered state <NUM> to a least recently buffered state in order to determine one which is of lower temporal level (optionally admitting equality in case of picture <NUM> being of level <NUM>), and optionally, correspond in stripe ID and/or QP and/or slice type to the stripe ID and/or QP and/or slice tape relevant for starting point <NUM>, wherein the one encountered first, i.e., the most recently buffered one, is used for the context initialization. Alternatively, a combination, such as a mean, of a number of most recently ones of such states, meeting the search criteria, may be used for initialization.

Before proceeding with embodiments of further aspects of the present application, a brief description shall be provided as to how the embodiments of <FIG> and <FIG> might be implemented in HEVC or JEM. For instance, the concept of <FIG> and/or the concept of <FIG> could be offered as one mode of CABAC context variable states inheritance from previously coded/decoded pictures which mode could be signaled at some high-level such as in SPS, PPS or slice header by a specific variable like cabac_temporal_init_mode such as, for example, in the SPS as depicted in <FIG>. That is, one mode option of the syntax element could correspond to the CABAC context variable state inheritance from a previously decoded/coded picture as described above and currently used in JEM, and one mode may correspond to the concept of <FIG> and/or another value of the syntax element to the concept of <FIG>.

For example, the just-mentioned syntax element could have the following semantic:.

Where CCV is CABAC context variables buffer of current picture <NUM>, the buffer buffering the probabilities to be initialized at starting point <NUM>, Slice Type is type of current slice of picture, QP is a quantization parameter value.

CCVRef is a reference context variables buffer of previously decoded picture with the same Slice Type and QP.

If CCVRef for particular Slice Type and QP is not available (i.e. when decoding first picture), the conventional initialization method from predefined tables is used, as described for mode zero.

The additional initialization modes that should improve the temporal method of CABAC adaptation as well as improve the parallelization throughput are the following:
cabac_temporal_init_mode equal to <NUM> specifies that the temporal initialization mode for CABAC context variables is done by adoption of context states of previously decoded picture CTU-line-wise. Accordingly, the CABAC initialization process can be represented by the following adaptation rule: <MAT>.

Where CCV is CABAC context variables buffer of current picture <NUM>, Slice Type is type of current slice of picture, QP is a quantization parameter value, CTULineNum is a CTU line number.

CCVRef is a reference context variables buffer of previously decoded picture <NUM>' with the same Slice Type, QP and CTULineNum. If CCVRef for particular Slice Type, QP and CTULineNum is not available (i.e. when decoding the first picture), the conventional initialization method using predefined tables is used as taught with mode zero. cabac_temporal_init_mode equal to <NUM> specifies that the temporal initialization mode for CABAC context variables shall be done by adoption of context states of previously decoded picture of same temporal level. This can be represented by the following adaptation rule: <MAT>.

Where CCV is CABAC context variables buffer of current picture, TId is a temporal level Id of current picture.

CCVRef is a reference context variables buffer of a previously decoded picture in temporal level TId.

If CCVRef is not available (i.e. when decoding first picture), the conventional initialization method using predefined tables is used. cabac_temporal_init_mode equal to <NUM> specifies that the temporal initialization mode for CABAC context variables shall be done by adoption of context states of previously decoded picture in current temporal level and the states are adopted CTU line-wise. Accordingly, the CABAC initialization process can be represented by the following adaptation rule: <MAT>.

Where CCV is CABAC context variables buffer of current picture <NUM>, TId is a temporal level Id of current picture, CTULineNum is a CTU line number.

CCVRef is a reference context variables buffer of a previously decoded picture <NUM>' in temporal level TId.

If CCVRef is not available (i.e. when decoding first picture), the conventional initialization method using predefined tables is used. cabac_temporal_init_mode equal to <NUM> specifies that the temporal initialization mode for CABAC context variables shall be done by adoption of context states of previously decoded pictures of previous temporal level, as done in <FIG>. This can be represented by the following adaptation rule: <MAT>.

Where CCV is CABAC context variables buffer of current picture <NUM>, TId is a temporal level Id of current picture.

CCVRef is a reference context variables buffer of a single picture <NUM>' or a combination of context variables of multiple pictures in temporal level TIdRef, that precede the current picture in decoding order.

TIdRef is derived as follows: TIdRef = TId - <NUM> when TId > <NUM>, otherwise <NUM>.

If CCVRef for particular TIdRef is not available (i.e. when decoding first picture), the conventional initialization method using predefined tables is used. cabac_temporal_init_mode equal to <NUM> specifies that the temporal initialization mode for CABAC context variables shall be done by adoption of context states of previously decoded pictures in previous temporal level as done in <FIG> and the states are adopted CTU line-wise, as done in <FIG>. Accordingly, the CABAC initialization process can be represented by the following adaptation rule: <MAT>.

CCVRef is a reference context variables CTU-line buffer of a picture or as a combination of CCV CTU-line buffers of multiple pictures <NUM>' in temporal level TIdRef, preceding the current picture in decoding order.

If CCVRef for particular TIdRef, CTULineNum is not available (i.e. when decoding first picture), the conventional initialization method using predefined tables is used.

The CTU-line-wise CABAC-Context initialization from previous frames according to <FIG> and modes <NUM>, <NUM> and <NUM> are described in more detail below.

To improve local adaption of CABAC-context variables, CCV initialization is done using a new buffer-dimension which is addressed by the CTU line number, i.e., a number index of stripe position.

The method utilizes a CCV buffer <NUM> that stores states of CCV sets <NUM> for each CTU-line, using buffer index to distinguish between multiple stored variants. The entire CMM buffer <NUM> can be reset to guarantee proper operation at random access points.

When the (de)coding process retrieves a positive store signal, the current states of the CCV from the current CTU line (de)coder are stored in the CCV buffer using the CTU line number and a further index to address the storage location in the buffer.

The store signal can be triggered by reaching a specific CTU-position <NUM> within the CU-line <NUM>, which can be the last or any fix position within the CTU-line, e.g..

In a succeeding picture <NUM>, at the start 100a to 100c of each CTU-line 90a to 90c the CCV line buffer <NUM> is checked for a valid entry <NUM> for the current line given the buffer index. If there is an entry available, the CCV states are copied from the CCV line buffer <NUM> to the current CTU line coder's CCV set, otherwise if there are no CCVs available for the current line with the given buffer index, the coder uses the default context initialization concept without restrictions.

The advantages of the proposed CTU line wise temporal CCV prediction, are better local statistics exploitation. Furthermore, the method outperforms the current WPP initialization process.

For the buffer indexing two variants are available. The first variant uses the current slice-level QP as buffer index. The intention of using the QP as buffer index, assumes similar CCV states for same QPs in different pictures and implies the use of CCV from the same temporal level. However, prediction from the same temporal level can introduce problems when implementing frame parallel encoding approaches.

So a second variant derives the buffer index from the temporal level of the picture, to establish a prediction hierarchy that avoids temporal CCV prediction from pictures of the same or higher temporal level.

Temporal level restricted CABAC-Context initialization in detail according to <FIG> and modes <NUM> and <NUM> may be done as follows.

With the restriction of CABAC temporal initialization mode (cabac_temporal_init_mode <NUM> and <NUM>) we enable parallelization of pictures with negligible coding efficiency loss. The restriction is required due to a different processing order of pictures caused by parallelization. The context variables adaptation from previous temporal level might include direct adoption of variables from picture to picture as well as selective weighted combination of them. This might also include a selective weighted combination of local predicted CCV from a CTU-line above of the current picture and of one or more temporal predicted CCVs. Weighted selection could be done by averaging context states, temporal distance aware averaging context states, or selecting particular context states out of multiple buffered CCVs.

The resulting CABAC propagation is shown in <FIG>. When more frames are used for obtaining of CCVRef, then the propagation might correspond to the signal flow depicted in <FIG>.

The above examples revealed that video encoder and video decoder may be implemented in a manner so as to operate according to <FIG> and <FIG> depending on a current mode setting conveyed in data stream <NUM>. Further, the description brought forward with respect to the syntax element shown in <FIG> also revealed that additionally or alternatively, the context entropy probability management may be done in a manner being slice-type aware. For instance, I slices and P slices may be distinguished from one another, i.e., slices merely allowing for inter-prediction modes, and slices allowing both, intra-prediction and inter-prediction. And even further, context initialization at some starting point 100a to 100c or <NUM> may be done on the basis of a combination of buffered states <NUM> instead of just using the most recently buffered one for filling the respective search criteria including, for instance, stripe ID in accordance with a concept of <FIG>, and including, for instance, being below the current picture's temporal level in case of the concept of <FIG>.

Before proceeding with the description of embodiments of another aspect of the present application, a brief overview shall be provided as to the current state in the JEM reference software. In particular, the next aspect of the present application is about the parameterization of in-loop or post filters to be applied onto the pictures of the video. Such in-loop filter <NUM>, <NUM> may, for instance, be positioned immediately upstream of the input of prediction module <NUM> and <NUM> in <FIG> and <FIG>, respectively, or may be a post-filter <NUM> positioned at the output of decoder <NUM> only. In the following, it is assumed that the filter, the parameterization of which the subsequent embodiments and aspect focuses on, is an adaptive loop filter, such as an FIR filter, but it should be clear that this is not restrictive for the embodiments described herein. The filter parametrization setting may pertain to a setting a filter taps of a filter kernel of the in-loop or post filter, selected to improve signal filtered.

For the next emerging standard ITU-T H. <NUM> an Adaptive Loop Filter (ALF) is proposed. The current implementation is available through JEM reference software [<NUM>]. The ALF utilizes a particular parameter set where filter parameters are stored after processing of each picture. Encoder and decoder do this synchronously. For the temporal adaptation of parameters, the encoder is sending high-level information to identify particular parameters from set of all already stored parameters that shall be used for a current picture. Therefore, this may also include using parameters from previously decoded pictures of the same temporal level. Such a dependency is not practical for picture parallel processing.

To overcome this obstacle, in the particular embodiment described below we propose to restrict filter parameter propagation inside of current temporal level and instead of that, refer the parameters from the lower temporal levels only.

This could be done either by implicit definition of a specific operation point or by explicit high-level signaling (SPS, PPS, Slice Header). The latter can be implemented through a particular ALF-mode or a flag when using ALF inheritance exemplarily. Example of such flag signaled in SPS is given in <FIG>.

The parameter behavior is defined by following semantic:.

With this restriction of the ALF parameters adaptation, we increase a parallelization throughput with some negligible coding efficiency loss.

Having said this, see <FIG> according to which an embodiment for the functionality of a video encoder and a video decoder is explained. Both, video encoder and video decoder use in accordance with the embodiment of <FIG>, block based coding of the pictures <NUM> of video <NUM> into data stream <NUM>. The encoding or the encoding and decoding involves, for instance, an in-loop filter or post-filter, the parameterization of which is determined by the encoder and signaled to the decoder in a manner described in more detail below. Further, the encoding is done in a manner defining the hierarchical temporal coding interdependencies discussed with respect to <FIG> and <FIG>, respectively.

The encoder determines for each picture <NUM> of video <NUM> a filter parameterization setting of the in-loop or post filter for parameterizing the respective filter when applied onto the respective picture. As explained in more detail below, encoder and decoder buffer in a buffer <NUM>, a pool or reservoir of filter parameterization settings of the in-loop or post filter used in previously encoded/decoded pictures of video <NUM>. The buffering may be performed selectively for pictures <NUM> only where the filter parameterization setting of the in-loop or post filter is determined by the encoder to be different from any filter parameterization setting buffered in buffer <NUM>. For instance, the encoder may determine for a subset of pictures <NUM> that the filter parameterization setting of the in-loop or post filter for the pictures in this subset shall be signaled in data stream <NUM> explicitly, without indexing any filter parameterization setting buffered in buffer <NUM> and for such pictures <NUM>, the filter parameterization setting is buffered <NUM>. For the other subset of pictures <NUM>, the filter parameterization setting is determined by the encoder to be equal to one of the buffered filter parameterization settings buffered in buffer <NUM> and the encoder signals <NUM> an index in data stream <NUM> for the respective picture which points in buffer <NUM> to the respective filter parameterization setting. The decoder acts accordingly. That is, if a current picture's filter parameterization setting is signaled in the data stream <NUM> explicitly, it derives the filter parameterization setting form this explicit signalization and buffers same in buffer <NUM>. If not, the decoder derives an index for the respective picture from data stream <NUM> which indexes a filter parameterization setting for the in-loop or post filter out of buffer <NUM>. Same may not be buffered again. Encoder and decoder keep the content of buffer <NUM> synchronized which, for instance, buffers a certain number of most recently buffered filter parameterization settings in the order of their buffering and the index conveyed in data stream <NUM> may index the filter parameterization settings according to their buffering order, i.e., according to their rank they assume in buffer <NUM>. Other possibilities may, however, exist as well. Further modification possibilities exist. For instance, instead of deciding for each picture <NUM> whether a buffered filter parameterization setting is adopted from buffer <NUM> completely or whether the filter parameterization setting of the respective picture is coded completely anew by way of explicit signalization in data stream <NUM>, the filter parameterization setting of pictures for which the filter parameterization setting is chosen to be different from any of the filter parameterization settings stored in buffer <NUM> may be signaled in data stream <NUM> in form of a modification to one of the buffered filter parameterization settings, thereby sending for such pictures an index into buffer <NUM> in addition to filter parameterization modification. Such modified filter parameterization settings may be buffered by video encoder and video decoder, respectively, in buffer <NUM>, while ones completely adopted from a buffered setting may not.

In any case, in accordance with the embodiment of <FIG>, the filter parameterization setting of the in-loop or post filter for a current picture <NUM> for which an index is sent <NUM> in data stream <NUM> refers by this index merely to one out of a subset of the filter parameterization settings buffered in buffer <NUM> which subset excludes filter parameterization settings buffered for pictures of a temporal level higher than or equal to the current picture's temporal level.

Thus, in accordance with the embodiment of <FIG>, the video encoder may perform the filter parameterization setting temporal level aware in that the video encoder decides on reusing a filter parameterization setting from buffer <NUM> completely or not with restricting the possible candidates for complete re-usage merely to a subset of the buffered filter parameterization settings, namely those which stem from pictures of a lower temporal level. Further, both video encoder and video decoder may act temporal level aware in that the buffering <NUM> is done in a manner temporal level aware. For instance, filter parameterization settings of pictures for which the filter parameterization setting has not been reused completely may, nevertheless, not be buffered <NUM> in case of the corresponding picture being of the highest temporal level so that it may not be indexed for any subsequently processed picture anyway. Even the signalization of the index at <NUM> may depend on the temporal level. For instance, no index may be present in the data stream <NUM> for pictures of the highest temporal level inevitably. Furthermore, the signalization of the index may be adapted to the size of the reduced subset of filter parameterization settings stemming from pictures only which are of lower temporal level. And even further, as denoted above, although the index may point to buffered filter parameterization settings according to a picture count index of the picture from which a certain buffered filter parameterization setting stems and which is stored in buffer <NUM> additionally to the respective filter parameterization setting, the index conveyed in data stream <NUM> may alternatively index to a buffered filter parameterization setting according to a linear rank address corresponding to a buffer rank in buffer <NUM> so that, for sake of keeping synchrony between video encoder and video decoder, both video encoder and video decoder need to perform the buffering of filter parameterization settings temporal level aware. In this regard, similar to the note in <FIG>, it should be noted that the temporal level restriction may be alleviated for pictures of the lowest temporal level, i.e., level zero, as for these pictures, an index to filter parameterization settings stemming from pictures of the same level, namely level zero, might be allowed.

It has been showed above that an indication of the use or none use of the exclusion of buffered filter parametrization settings of pictures of equal temporal level is applied or not with the decoder having the capability to rely on this sort of promise in order to schedule the processing of the decoding task accordingly such as by parallelizing the decoding of pictures of the highest temporal level.

The embodiments described with respect to <FIG> on the one hand and those described with respect to <FIG> on the other hand may be combined in order to result into video encoders and video decoders capable of temporal inheritance of context entropy probabilities as well as buffer-based signalization of filter parameterization settings of an in-loop or post filter.

In the following, embodiments of a fourth aspect of the present application are described which pertain to video codecs such as HEVC and JEM which vary the quantization parameter used for quantizing the prediction residual signal in blocks across the pictures and signal the quantization parameter in so-called delta QPs, i.e., using spatial prediction.

In the state of the art standard [<NUM>], QP prediction is done by scaling down the sum of the two derived values from CU of spatial neighbors to the left and above the current CU, increased by <NUM>, by a final right shift. The two derived values are obtained individually by checking the availability of the spatial neighbors. If the neighbor is available for prediction, then the derived value takes the QP of the neighbor CU, otherwise if the CU is not available for prediction, the derived value is set to the value of the variable prevCodedCUQP. The variable prevCodedCUQP is initialized with Slice QP, and updated for each coded CU within a Slice.

The disadvantage of this derivation scheme is that, for an encoder approach using parallel processing of individual CTU-lines according to WPP, but without applying the WPP-syntax to the bitstream, a dependency problem arises, because at the beginning of a certain CTU, the variable prevCodedCUQP is unknown to the line encoder, because it depends on the last coded QP which might be coded in any CTU-line above.

In the particular embodiment to overcome causality problems that may arise in highly optimized systems when using parallel encoding/decoding, a new simplified algorithm for spatial QP prediction is proposed as follows:
The adjacent neighbor Coding Units (CU) to the left, above and above-left of the current CU are evaluated. For each of the neighbor CU's an intermediate variable derivedQpXXX is introduced. If the neighbor is available, the variable derivedQpXXX is set to value of the QP of that neighbor CU, otherwise the variable is set to the value of the current slice-level QP.

The predicted QP is obtained by clipping the sum of the derivedQpLeft and derivedQpAbove lowered by derivedQpAboveLeft into the QP range spanned by derivedQpLeft and derivedQpAbove.

This can be described by following pseudo code:
<IMG>.

See <FIG>, which shows the functionality of a video encoder and a video decoder in accordance with an embodiment of the fourth aspect of the present application. <FIG> shows a currently coded/decoded picture <NUM> of video <NUM> and a subdivision of picture <NUM> into blocks <NUM> in units of which the video encoder varies the quantization parameter using which the prediction residual signal for picture <NUM> is coded into data stream <NUM>. The encoding <NUM> of picture <NUM> of video <NUM> into data stream <NUM> is not supposed to enable parallel decoding at the decoding side as described above with respect to <FIG>. The video encoder may be in a sequential mode rather than a parallel mode. That is, the video encoder may alternatively be able to operate as described above with respect to <FIG>, but <FIG> represents a sequential mode. The encoding procedure <NUM> involves both stages of encoding described above with respect to <FIG>, i.e., the encoding of picture <NUM> into video data and the subsequent entropy coding of the video data into data stream <NUM>. The decoding procedure is illustrated in <FIG> using arrow <NUM>. In order to transmit the quantization parameter used for the various blocks <NUM>, a spatial prediction concept is used. <FIG> highlights a currently processed block for which a QP is transmitted at 300a. A certain neighborhood of block 300a is inspected to locate neighboring blocks <NUM>' and <NUM>" in predetermined relative locational positions relative to block 300a when the number of blocks <NUM>' and <NUM>" is not restricted to be two but may alternatively be merely one or be greater than two. Also, the usage of the left neighboring block <NUM>' and the top neighboring block <NUM>" is illustrative and different neighbor block position could be selected. A third neighboring block to the top left of block 300a, i.e. covering the sample neighboring, to top left, the upper left corner of block 300a, is depicted in <FIG> using dotted lines, for instance. On the basis of quantization parameters assigned to these blocks <NUM>' and <NUM>", the QP for block 300a is predicted and a prediction offset or delta QP is transmitted for block 300a in data stream <NUM>. The derivation of the prediction on the basis of blocks <NUM>', <NUM>" and <NUM>‴ may be embodied as described above, i.e. using the sum of QP for blocks <NUM>', <NUM>" minus QP for block <NUM>‴, clipped to be between the QPs for blocks <NUM>', <NUM>". An alternative would be to simply take the QP of <NUM>' as QP predictor, or to take a median or mean of the QP for blocks <NUM>', <NUM>" as predictor. For each block <NUM>' or <NUM>" not being available since, for instance, its block position is outside the slice <NUM>, the current block 300a is located in or because the respective block position of the respective block <NUM>' or <NUM>" is outside of the current picture <NUM>, its QP is replaced or substituted by a slice QP transmitted in the data stream for slice <NUM> block 300a is located in. The replacement could also be applied only in case of all participating QPs not being available. For instance, when taking a median or mean of the QP for blocks <NUM>', <NUM>" as QP predictor, then the usage of the slice QP could be used as predictor only in case of both QOs being unavailable, i.e. the QPs of blocks <NUM>' and <NUM>". If only one of the latter is missing or unavailable, the other available QP is used as predictor. When taking the QP for block <NUM>' as QP predictor, then the usage of the slice QP would apply it this QP of block <NUM>' is missing. In even other words, the quantization parameter predictor for block 300a is derived from a quantization parameter of one or more blocks <NUM>'-<NUM>‴ at one or more block positions having a predetermined relative locational relationship to the predetermined block and the quantization parameter of any block at a block position outside a predetermined region of the current picture which the predetermined block is located in, such as outside the current tile or slice or even outside the picture area, is substituted with a major quantization parameter signaled in the data stream for the predetermined region. In other words, if a certain block whose the quantization parameter is unavailable because, for instance, the block lies outside at a certain picture region to which block 300a belongs, same is substituted with the major quantization parameter signaled in the data stream for the predetermined region such as the slice QP. Or, in case of the QP of one or more of the blocks <NUM>'-<NUM>' such as all of them, being unavailable, the major quantization parameter is used as QP predictor directly. <FIG>, for instance, illustrates a subdivision of picture <NUM> into two slices <NUM> indicated by dashed lines. By avoiding the dependency of the predictor for the QP for block 300a on QPs of blocks farther away from current block 300a, i.e., from blocks not immediately neighboring block 300a, it is possible to perform at least the encoding of picture <NUM> into the intermediate level represented by the coding data <NUM> depicted in <FIG> in parallel for stripes 90a, 90b and 90c picture <NUM> is partitioned into. In particular, according to the coding order, the stripes 90a to 90c follow each other and using the substitution concept for non-available blocks according to JEM as described above would lead to a sequentializing dependency of the coding of one stripe to a preceding stripe since this concept uses a kind of buffering of most recently encountered QP along coding order which would involve a dragging of a QP value from one stripe to the following stripe. Using the restricted spatial prediction reach or, alternatively speaking, the restricted reach of the prediction sources for predicting the QP of block 300a it is possible for the encoder to start the coding of picture content within one common slice <NUM> in parallel for stripes 90a and 90b partitioning the slice <NUM>, both along the coding order, here exemplarily from left to right, without having to wait with the coding of any succeeding stripe 90b in coding order until finishing the coding into the coding data with respect to the preceding stripe 90a. Based on the QP for block 300a, encoder and decoder may, in addition to the usage of this quantization parameter for the quantization of the prediction residual signal, set a filter parameterization for an in-loop or post filter such as <NUM> to <NUM> shown in <FIG> and <FIG>. Interestingly, the encoder may even perform the filtering or parts of the filtering locally at the position of a currently processed block 300a for any succeeding stripe 90b prior to the completion of the coding data formation which respect to the preceding stripe 90a since the QP value for block 300a is already fixed and ready for transmission in data stream <NUM>. The restrictive term "parts of the filtering" has been used due to spatial reach of filtering. Due to the nature of a deblocking filter, for instance, filtering adjacent blocks that border to the neighboring blocks to right and below cannot be filtered right away. The filtering is postponed to be processed when the adjacent blocks have been processed. The block that is locally filtered is a block that is slightly displaced top-left of the current block.

It should be noted that encoder and decoder might be able to alternatively operate in another mode of differently predicting the QPs, such as according to HEVC using the last visited QP predictor with a signaling being used to select between both modes.

A fifth aspect of the present application pertains to video encoders and video decoders of the types supporting the WPP processing capability of <FIG>. As described with respect to <FIG>, the inter-stripe coding/decoding offset to be obeyed in WPP processing between the stripes depends on the spatial intra-picture coding dependency reach. In accordance with the embodiments described next, video encoder and video decoder communicate with each other via a data stream which enables a setting of this reach to one of several states, thereby enabling a weighing-up between higher parallelity and parallel processing at the cost of slightly decreased spatial redundancy exploitation and, accordingly, slightly decreased coding efficiency on the one hand and decreased parallelity at slightly increased coding efficiency owing to a slightly increased spatial redundancy exploitation on the other hand. The following description starts, again, with a presentation of the idea in form of a modification of JEM or HEVC and using a CTU dependency offset signaling as a possibility for measuring the spatial intra-picture coding dependency reach. A generalized embodiment is described thereinafter.

When using Wave-front Parallel Processing (WPP) a minimum required CTU-offset of two CTUs between consecutive CTU-lines is defined by the current state of the art standard [<NUM>], to ensure references are available for prediction. With the new emerging standard [<NUM>] new tools might be incorporated, where a CTU-offset of two CTU's might not be sufficient anymore and could compromise the new tools.

In the particular embodiment, to generalize the handling of the dependency to upper CTU-line, an explicit signaling of a line-wise applied CTU-dependency-offset parameters is used.

The CTU-dependency-offset to CTUXref,Yref may be signaled for Intra and Non-Intra-Slices independently. The value of <NUM> is indicating that the proposed restriction scheme is disabled. If the value is not <NUM>, a CU, PU or TU correspondent to CTUXref,Yref is available for reference, when the CTUXref,Yref is available for prediction for the current CTUXcur,Ycur when the reference is not restricted, e.g. located in a different slice, tile, or outside the picture and the following condition is true:.

where Xref, Yref, Xcur, Ycur are CTU position coordinates.

In <FIG> the impact of two different CTU dependencies is illustrated. Both drawings show a snapshot taken after the same virtual encoding time. On the one hand, the increased structural delay in A) is the reason the last CTU line had not been yet started, whereas in B) only few CTUs are left to be processed. On the other hand, two more blocks are available for prediction in A from the above CTU line, and with tools exploiting spatial dependencies of multiple lines the area available for prediction is significantly enlarged.

It should be noted, that large values of CTU-dependency-offset parameter would allow wider region to be used for spatial prediction increasing R-D-gains of tools, but would introduce a longer structural delay when using WPP or parallel reconstruction. Because the spatial prediction of the reconstruction samples from the neighborhood is primarily used in Intra-Slices, whereas Non-Intra-Slices typically use temporal prediction, with a slice-type dependent CTU-dependency offset, the trade-off between structural delay and R-D-performance can easily be adapted to the different needs.

A special operation point can be achieved with CTU_dependency_offset_id equal to <NUM>. In this case the structural delay is completely eliminated for the WPP case. This might be beneficial in low-delay scenarios. It should be stated that the spatial reach parameter in the sequential mode, i.e. not WPP, restricts spatial prediction tools and, thus, can be seen as a complexity vs. quality parameter.

These proposed parameters might be signaled via high-level sets SPS, PPS, etc. or Slice Header. Example is given in <FIG>.

See <FIG> with respect to which embodiments of a video encoder and a video decoder are described which support the WPP enabling coding of video <NUM> into data stream <NUM>. The coding procedure <NUM> incorporates both coding steps namely <NUM> and <NUM> of <FIG>, and the same applies to the decoding <NUM> shown in <FIG>, namely steps <NUM> and <NUM>. Here, the video codec is designed in a manner so that the data stream <NUM> conveys a signaling <NUM> which sets a spatial intra-picture coding dependency reach setting to one of several possible settings. The settings may differ in width or wideness of the spatial intra-picture coding dependency reach. The spatial intra-picture coding dependency reach is depicted in <FIG> at <NUM> and determines a region for a currently processed portion <NUM> on the basis of which predictions and context derivations or any other spatial redundancy exploitation tasks may be performed for coding block <NUM>. In particular, the spatial intra-picture coding dependency reach settings may differ in amount at which reach <NUM> extends from the current portion <NUM> which the reach area <NUM> relates to, in any preceding stripe 90a preceding in stripe coding order along the coding direction within each stripe, leading here exemplarily from left to right, wherein this amount is depicted in <FIG> at <NUM> using a double headed arrow measuring the length as an offset along the horizontal direction, i.e., the coding order direction within each stripe 90a to 90c. As described above, the offset <NUM> may increase for portions of reach area <NUM> in stripes according to their stripe distance to the current stripe the current portion <NUM> is located in. The reach area <NUM> may, as illustrated in <FIG>, be configured to extend from currently coded portion <NUM> up to the upper left corner of picture <NUM> inevitably as illustrated in <FIG>, or may be restricted in its extension towards the top edge and the left-hand edge of picture <NUM> as illustrated by a dashed line in <FIG>. The latter restriction may be independent from signaling <NUM> or may also depend thereon. The variation of the reach settings impacts the parallelity at which encoding and decoding <NUM> and <NUM> may be performed as it has been explained with respect to <FIG> wherein, however, a lower parallelity is compensated by an increase in coding efficiency owing to an increased possibility of exploiting spatial redundancies, and vice versa. As explained above with respect to <FIG>, the different settings signaled by signalization <NUM> may be indicated by a parameter directly indicating a minimum inter-stripe coding/decoding offset to be obeyed in WPP processing, i.e., in parallel processing stripes 90a to 90c. It should be noted that in accordance with the embodiment explained with respect to <FIG>, the video codec may also be applicable for video encoders or video decoders which merely operate in accordance with one or a subset of the signalable spatial intra-picture coding dependency reach settings offered by signalization <NUM>. For instance, the encoder may be fixed to operate according to one of the settings and it signals this setting in data stream <NUM>. The decoder may likewise be able to operate or support all settings signalable by signalization <NUM> or merely one or a subset thereof with notifying the user of inability of decoding the received data stream <NUM> in case of the signaled setting of signalization <NUM> being one of not supported settings.

While <FIG> showed that the spatial reach <NUM> within the current picture <NUM> from which the coding of the currently coded block <NUM> or a coding parameter relating to currently coded block <NUM> by means of the spatial intra-picture coding dependency depends, may overlay one preceding, in stripe coding order, stripe, here 90a, of the current picture, it should be noted that the reach may also overlay more than one previous stripe. Further, for each of the plurality of spatial intra-picture coding reach settings, the distance at which spatial reach reaches out toward the coding forward direction may increase with increasing inter-stripe distance, i.e. may be monotonically increasing with increasing distance of the stripe containing block <NUM> relative to the stripe where distance <NUM> is measured. Comparing two settings, these distances <NUM> are, for all previous stripes, either larger than for one of the two settings compared to the other or vice versa. Further, as described, the selected spatial intra-picture coding reach setting may be signaled for purely intra-predictively coded portions of the video such as I slices and inter-predictively coded portions such as P and B slices, separately, as it has been described above. The spatial reach may, as described, be related to prediction dependencies, and/or context derivation dependencies. The variation may impact a predictor search reach such as a search reach for searching patches for intra prediction, or a size of a prediction parameter value domain and accordingly the code rate of certain prediction parameters and the parsing thereof may change.

Additionally or alternatively, a video encoder and a video decoder may operate without the signalization capability, but fixedly in a manner so that the reach setting is different for slices merely offering intra-prediction modes, i.e., purely intra-predicted, and slices offering both, intra-prediction modes and inter-prediction modes. In particular, the reach <NUM> is wider for I slices, thereby lowering the parallelity capability, but significantly increasing the coding efficiency for these slices as these slices are inevitably restricted to the use of intra-prediction as inter-prediction is not available for these slices. The major part of the video <NUM> is, however, composed of slices also offering inter-prediction modes such as P and B slices and for the latter, the parallelity is increased at a merely minor impact on coding efficiency as the intra-prediction mode does not play a significant role for these slices anyway. With respect to remaining details, reference is made to the previous description.

The inventive data stream can be stored on a digital storage medium or can be transmitted on a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.

Claim 1:
Video decoder configured to
decode, by block based decoding, pictures of a video from a data stream using spatial intra-picture coding dependency,
wherein the video decoder is configured to derive a selected spatial intra-picture coding reach setting out of a plurality of spatial intra-picture coding reach settings from the data stream, wherein a spatial reach (<NUM>) of the spatial intra-picture dependency with respect to currently coded blocks (<NUM>) of a current picture (<NUM>) of the video corresponds to the selected spatial intra-picture coding reach setting,
wherein the spatial reach (<NUM>) of the spatial intra-picture dependency with respect to currently coded blocks (<NUM>) of a current picture (<NUM>) of the video is different for blocks of purely intra-predictively coded slices of the video and blocks of inter-predictively coded slices, and
wherein the video decoder is configured to derive the selected spatial intra-picture coding reach setting for the purely intra-predictively coded slices of the video and the inter-predictively coded slices.