WO2021259935A1 - Verfahren und vorrichtungen zur codierung von bilddaten - Google Patents

Verfahren und vorrichtungen zur codierung von bilddaten Download PDF

Info

Publication number
WO2021259935A1
WO2021259935A1 PCT/EP2021/067009 EP2021067009W WO2021259935A1 WO 2021259935 A1 WO2021259935 A1 WO 2021259935A1 EP 2021067009 W EP2021067009 W EP 2021067009W WO 2021259935 A1 WO2021259935 A1 WO 2021259935A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
prediction
transformed
prediction error
prediction errors
Prior art date
Application number
PCT/EP2021/067009
Other languages
English (en)
French (fr)
Inventor
Matthias Narroschke
Original Assignee
Hochschule RheinMain
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hochschule RheinMain filed Critical Hochschule RheinMain
Priority to EP21736571.7A priority Critical patent/EP4169253A1/de
Priority to US18/012,072 priority patent/US20230247226A1/en
Publication of WO2021259935A1 publication Critical patent/WO2021259935A1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Definitions

  • the present invention relates to methods and devices for encoding and decoding image data.
  • Methods and devices for coding and decoding image data, in particular video data are used in a wide range of digital image / video processing and transmission. Examples of this are the broadcasting of a digital television program, image / video transmission over the Internet or mobile networks, real-time applications such as video conference systems, as well as the storage and reading of image / video data on data carriers such as DVDs or Blu-rays.
  • the amount of data that is necessary to display even a video with a short running time can be so large that difficulties can arise when transmitting data over networks with limited bandwidth. Furthermore, the available storage space on a DVD or Blu-ray disc may not be sufficient to completely store a certain video.
  • image or video data are usually compressed before they are stored or transmitted over a network.
  • the compression is usually carried out on a data source that uses dedicated software or hardware to encode the image / video data before transmission or storage, which can reduce the amount of data required.
  • the compressed data is then received at the destination and decoded in order to be able to display the transmitted image or video, for example.
  • the present invention relates to a method for coding image data.
  • the method comprises determining a prediction error block which contains prediction errors of a block of the image data.
  • the method further comprises decomposing the prediction error block into a linear combination which is a first block first Contains prediction errors and a second block containing second prediction errors.
  • the method comprises transforming the second block and coding the first block and the transformed second block.
  • the invention relates to a method for coding image data, wherein a prediction error block is not necessarily directly transformed and quantized or directly quantized before it is coded, but is divided into a linear combination containing two blocks, the first block and the second block.
  • a prediction error block results from the linear combination, including the two blocks.
  • only one of the two blocks, the second block is transformed in order to obtain a transformed second block.
  • the first block is not transformed.
  • the untransformed first block and the transformed second block are then coded.
  • At least one prediction error is obtained by a linear combination of a first non-zero prediction error and a second non-zero prediction error.
  • the coding can contain a quantization of the first block and the transformed second block. Furthermore, the coding can contain entropy coding of the (possibly quantized) first block and the (possibly quantized) transformed second block.
  • the image data can represent a still image, a moving image (i.e. a video) or a sequence of still or moving images.
  • the method can be carried out in a block-based manner, with each block containing a portion of an image to be coded.
  • the blocks can contain image point values, pixel values, image sample values or the like.
  • the method according to the first aspect makes it possible to reduce the data rate necessary for coding the prediction errors without reducing the quality of the coded image.
  • the first prediction errors have less statistical dependencies on one another than the second prediction errors.
  • a statistical interdependence of the first prediction errors of the first block can be less than a statistical interdependence of the second prediction errors of the second block.
  • This allows the required data rate to be reduced, since the coding methods are adapted to the respective statistical properties of the prediction errors. That is to say that the proportion of the prediction errors which has a low statistical dependency can be coded without transformation, which results in an improved data rate than coding with transformation. In a similar way, the proportion of the prediction errors which has a higher statistical dependency can be coded with transformation, which results in an improved data rate than coding without transformation.
  • the first prediction errors and the second prediction errors add up to the corresponding prediction errors of the prediction error block.
  • the sum of a specific first prediction error of the first block and the corresponding second prediction error of the second block gives the corresponding prediction error of the prediction error block.
  • This can apply to all prediction errors of the first, second and prediction error blocks. This means that, on a pixel basis, the sum of the first prediction errors and the second prediction errors gives the prediction errors of the prediction error block.
  • the prediction error block, the first block and the second block each have the same size.
  • the same size of the first block and the second block allow a direct determination of the prediction error block on an encoder side. Complex address management and / or assignment or determination of the individual prediction errors of the first and second blocks is therefore not necessary.
  • the present invention can support blocks of different sizes.
  • the decomposition of the prediction error block contains a minimization of a sum of the absolute values of the first prediction errors of the first block.
  • the sum of the absolute values can contain a minimization of the first prediction errors. It is not absolutely necessary for the decomposition to achieve the theoretically best possible minimization. Since the absolute values of the prediction errors can be viewed as a measure for the data rate required for coding, the data rate required for coding is easily minimized by minimizing the absolute values.
  • the decomposition of the prediction error block contains a minimization of a sum of the absolute values of the transformed prediction errors of the transformed second block.
  • the sum of the absolute values i.e. the amounts
  • the decomposition can contain a minimization of the transformed second prediction errors. It is not absolutely necessary for the decomposition to achieve the theoretically best possible minimization. Since the absolute values of the transformed prediction errors can be viewed as a measure of the data rate required for coding the transformed second block, the data rate required for coding is easily minimized by minimizing the absolute values.
  • the method further comprises inserting the coded first block and the coded transformed second block into a bit stream.
  • the method further comprises inserting in the bit stream an indicator capable of indicating that the bit stream contains the encoded first block and the encoded transformed second block.
  • bit stream contains the first block and the transformed second block can be displayed by inserting the indicator in the bit stream.
  • the insertion of the indicator in the bit stream enables, for example, a dynamic activation and deactivation of the decomposition of the prediction error block into a first prediction error of the first block and the corresponding second prediction error of the second block.
  • the indicator does not have to estimate during the decoding whether the prediction error block was broken down, which in turn leads to a reduction in the computing capacity required.
  • the indicator is further able to indicate that the bit stream contains only the coded first block, only the coded transformed second block or none of the coded first block and the coded transformed second block.
  • the indicator can show that the bit stream contains only the first block. Furthermore, the indicator can indicate that the bit stream contains only the transformed second block. Furthermore, the indicator can indicate that the bit stream contains both the first block and the transformed second block. In addition, the indicator can show that the bit stream contains neither the first nor the second block.
  • the present invention further relates, according to a second aspect, to a method for decoding image data.
  • the method comprises obtaining a bit stream containing an encoded first block of first prediction errors and an encoded transformed second block of second prediction errors. Furthermore, the method comprises decoding the first block and the transformed second block as well as reverse transforming the transformed second block. The method further comprises determining a prediction error block, which contains prediction errors of a block of the image data, by means of a linear combination which contains the first block and the inverse-transformed second block.
  • the invention relates to a method for decoding image data, with two blocks being received and decoded (the first block and the transformed second block) instead of a single, possibly transformed, prediction error block.
  • the prediction error block then results from a linear combination that contains the first block and the back-transformed second block.
  • a prediction error of a block of the picture data which has been encoded at a reduced data rate can be obtained without reducing the quality of the encoded picture.
  • the linear combination contains a sum of the first block and the inverse-transformed second block.
  • the sum of a specific first prediction error of the first block and the corresponding second prediction error of the back-transformed second result Blocks the corresponding prediction error of the prediction error block.
  • This can apply to all prediction errors of the first, the inverse-transformed second and the prediction error block. This means that, on a pixel basis, the sum of the first prediction errors and the second prediction errors gives the prediction errors of the prediction error block.
  • the method further comprises determining that the bit stream contains the encoded first block and the encoded transformed second block.
  • the bit stream contains an indicator which is able to indicate that the bit stream contains the coded first block and the coded transformed second block. Furthermore, it is determined on the basis of the indicator that the bit stream contains the encoded first block and the encoded transformed second block.
  • the indicator can indicate whether the bit stream contains the mentioned blocks or not. Depending on whether the indicator indicates that the mentioned blocks are present in the bit stream, the first block and the transformed second block can be decoded and further processed.
  • the indicator enables the method to be switched on and off dynamically, for example, with the decomposition of the prediction error block.
  • the indicator does not have to estimate during the decoding whether the prediction error block was broken down, which in turn leads to a reduction in the computing capacity required.
  • the indicator is able to indicate that the bit stream only contains the coded first block, only the coded transformed second block, both the coded first block and the coded transformed second block, or none of the coded first block and the encoded transformed second block. Also includes the linear combination is a weighted sum of the first block and the second block, weights of the weighted sum being determined based on the indicator.
  • the indicator is not only able to show that the first block and the transformed second block are contained in the bit stream, but also whether only the first block, only the transformed second block and / or neither of the two are in the bit stream is available.
  • the present invention further relates, according to a third aspect, to a device for coding image data, the device comprising a unit for determining a prediction error block which contains prediction errors of a block of the image data.
  • the device further comprises a unit for breaking down the prediction error block into a linear combination which contains a first block of first prediction errors and a second block of second prediction errors.
  • the device further comprises a unit for transforming the second block and a unit for coding the first block and the transformed second block.
  • the present invention further relates to a device for decoding image data, the device comprising a unit for obtaining a bit stream which contains an encoded first block of first prediction errors and an encoded, transformed second block of second prediction errors.
  • the device further comprises a unit for decoding the first block and the transformed second block, a unit for inversely transforming the transformed second block, and a unit for determining a prediction error block, which contains prediction errors of the block of the image data, by a linear combination comprising the first block and contains the second block.
  • the present invention further relates to a device for coding image data, comprising a processor which is set up to carry out a method according to the first aspect and / or its embodiments.
  • the present invention further relates to a device for decoding image data, comprising a processor which is set up to carry out a method according to the second aspect and / or its embodiments.
  • a computer program stored on a storage medium is provided which, when executed by one or more processors, carries out the steps of one of the above-mentioned methods.
  • Fig. 1 schematically shows an example of an implementation of a coding device according to the prior art.
  • 2A shows examples of prediction error blocks with their transformed prediction error blocks together with a measure of the data rate required for coding.
  • 2B is a schematic illustration of a decomposition of two blocks of the same size and two blocks of different sizes.
  • 3 shows an example of a decomposition of a prediction block which contains prediction errors of a block into a linear combination which contains a first block and a second block, together with a measure of the data rate required for coding.
  • FIG. 4 schematically shows an example of an implementation of a coding device according to an embodiment.
  • 5 shows the steps of a coding method according to an embodiment.
  • 6 shows an example of the steps of an implementation of the decomposition of a prediction error block into a first block and a second block.
  • FIG. 7A shows an example of a result of decomposing a prediction error block according to an embodiment.
  • 7B shows a further example of a result of a decomposition of a prediction error block according to an embodiment.
  • 8 shows a binary decision tree according to a preferred embodiment.
  • FIG 9 shows the steps of a decoding method according to an embodiment.
  • Fig. 10 shows the steps of a coding method and the corresponding functional units according to a further embodiment.
  • Fig. 11 shows the steps of a coding method and the corresponding functional units according to a further embodiment.
  • Fig. 12 shows the steps of a coding method and the corresponding functional units according to a further embodiment.
  • 13 shows the steps of a decoding method and the corresponding functional units according to an embodiment.
  • Fig. 14 shows the steps of a decoding method and the corresponding functional units according to a further embodiment.
  • FIG. 15 shows the steps of a decoding method and the corresponding functional units according to an embodiment.
  • FIG. 16 shows the steps of a decoding method and the corresponding functional units according to an embodiment.
  • FIG. 17 shows the steps of a decoding method and the corresponding functional units according to an embodiment.
  • Video coding standards are usually based on so-called hybrid coding, implemented for example in the MPEG-1 standards (ISO / IEC 11172 (MPEG-1), "Information technology - coding of moving pictures and associated audio for digital storage media at up to about 1.5 mbit / s ", 1992), MPEG-2 (ITU-T Recommendation H.262 and ISO / IEC 13818-2 (MPEG- ok
  • Fig. 1 shows a schematic block diagram of an example of a prior art device for picture coding according to HEVC and the emerging WC standard.
  • the device comprises an input, a unit for determining prediction errors, a unit T for transformation, units Q for quantization, a unit IT for inverse transformation, a unit for reconstruction, a loop filter unit LF, a unit P for prediction, a unit ME for motion estimation, as well as units EC for entropy coding.
  • the unit for determining prediction errors, the unit T for transformation and the units Q for quantization can be viewed as units that carry out forward processing of the image signal, whereas the unit for reconstruction, the unit IT for inverse transformation, the unit P for Prediction can be viewed as units of backward processing. These units for backward processing correspond to the units which are implemented in a device for decoding image data.
  • the encoder receives an image or image data via the input.
  • the encoder receives a series of images that together form a series of images or a video section.
  • An image can be viewed as a two-dimensional field (array) or matrix of image points, pixels or sample values, each of which is assigned a brightness and / or color value.
  • the number of pixels in the image define the size and / or resolution of the image.
  • Three components are commonly used to represent color. That is, the image can be represented in the form of three matrices. In the so-called RGB format, an image contains matrices that each contain a red, green and blue value of their pixels.
  • the encoder can include a splitting unit which splits the image into a plurality of blocks. These blocks are also referred to as “root blocks”, macro blocks, coding tree blocks or coding tree units.
  • the division unit can use the same size for all blocks or change the block size within an image. Blocks can themselves be viewed as two-dimensional arrays (matrices) of intensity and color values. Coding of an image can be done on a block basis. That is, the blocks of an image can be encoded separately and one after the other or in parallel.
  • the unit for prediction error determination can be set up to determine a prediction error block r based on an image block s and a prediction block s. This can be done, for example, by calculating the difference between the image block s and the prediction block s, as shown in FIG.
  • the unit T for transformation can be set up to carry out a transformation such as a discrete cosine transformation (DCT) or a discrete sine transformation (DST) of the prediction error block in order to obtain a transformed prediction error block c.
  • a transformation such as a discrete cosine transformation (DCT) or a discrete sine transformation (DST) of the prediction error block in order to obtain a transformed prediction error block c.
  • DCT discrete cosine transformation
  • DST discrete sine transformation
  • the transformation is not necessarily carried out for each prediction error block of the picture. Rather, it can be decided whether the transformation is carried out or not, as described below.
  • the encoder can be set up, for example, to output parameters that were used for the transformation, for example via the unit EC for coding, so that, for example, a decoder can receive the parameters and use them for the reverse transformation.
  • the units Q for quantization quantize the transformed or non-transformed prediction error blocks by performing, for example, scalar or vector quantization.
  • the quantization process can reduce the required bit depth by rounding the prediction errors.
  • Quantization is a lossy coding.
  • the encoder can contain a unit for inverse quantization, which can be connected upstream of the unit for inverse transformation.
  • inverse quantization is performed by performing an inverse process to the process used by the unit Q for quantization.
  • the resulting block contains prediction errors which correspond to the prediction errors of the transformed c or the untransformed r prediction error block, although they are not necessarily identical to these due to quantization losses.
  • the unit IT for inverse transformation carries out an inverse transformation of the transformation carried out by the unit T for transformation.
  • the inverse transformation is only carried out if the prediction error r has actually been transformed by the unit T for inverse transformation, i.e. if the transformed prediction error block c has been generated.
  • elements of the transformed prediction error block are referred to as transformed prediction errors or also as coefficients.
  • the unit for reconstruction adds the prediction block s and the quantized prediction error block r or the transformed, quantized and inverse-transformed prediction error block r ‘in order to obtain a reconstructed block.
  • the loop filter unit LF filters the reconstructed block in order to obtain a filtered reconstructed block.
  • the filtering can smooth image point transitions or improve the image quality in some other way.
  • the loop filter unit can use one or more filters, for example for deblocking or for suppressing noise.
  • the unit P for prediction performs a prediction of the block. This is done, for example, by inter-prediction or by inter-prediction.
  • Intra prediction is used to remove correlations or other statistical dependencies within a local area of an image.
  • the basic assumption is that an area within an image is similar to neighboring areas of the same image and for this reason can be derived from the neighboring image areas.
  • Intra prediction can be used when there are no images available for inter prediction or when intra prediction is more efficient than inter prediction.
  • neighboring samples are usually used, which are located above or to the left of the current block. The samples are combined in order to obtain, for example, a directional or an undirected (planar) prediction.
  • the basic assumption of inter prediction is that the content of multiple pictures of a series of pictures changes mainly due to the movement of the content of the pictures. There are therefore only minor differences from image to image, which can mainly be attributed to a movement within the image.
  • This motion can be used to represent the contents of a current block as a motion vector and a prediction error.
  • the motion vector specifies how areas of a reference image are to be shifted in order to obtain a prediction of the current image.
  • the description of the movement with a movement vector is a translational mapping model, which is based on a translational movement.
  • the movement can also be described with other movement models, such as an affine or a perspective mapping model. More than two motion parameters are required for this, e.g. 6 for the affine or 8 for the perspective model. In this way, rotations can also be described, for example.
  • the unit ME for motion estimation.
  • the estimation can be made by finding the greatest correspondence between the content of a current block of the image and an area in the reference image. For example, for this purpose the prediction block position can be shifted in a search area of the reference image and the position of greatest agreement can be found according to a predetermined cost criterion.
  • the intra- or inter-prediction makes it possible to remove correlations and / or other statistical dependencies within the image or between images of a series of images.
  • the formation of the difference between the prediction block s and the image block s yields the prediction error block which contains that part of the original image block s which cannot be mapped by the prediction.
  • the prediction is the correlation and / or other If statistical dependencies in the prediction error block are reduced, the information contained therein can be further compressed by the transformation described above.
  • the quantized prediction error block or the quantized transformed prediction error block are coded together with information (side information) about the prediction method used, the motion vectors, intra-prediction directions and similar necessary information from the unit EC for entropy coding into a bit stream b.
  • the data is converted into binary code.
  • Entropy coding represents lossless coding.
  • a decoder receives the encoded image data and decodes it to obtain the received image data.
  • the image data may be received in a bit stream b containing information for decoding the encoded image data, such as data comprising a block of encoded video and associated side information.
  • the decoder comprises a unit for entropy decoding, a unit for inverse transformation and a unit for reconstruction.
  • the decoder comprises a loop filter unit, a unit for prediction and, under certain circumstances, a unit for motion estimation.
  • the unit for inverse transformation, the unit for reconstruction and the loop filter unit can be identical in their function to the corresponding units of the encoder.
  • the corresponding descriptions above therefore also apply to the named units of the decoder.
  • the entropy decoding unit is set up to perform entropy decoding of the data contained in a bit stream in order to generate quantized image data (e.g. prediction errors), coding parameters, prediction parameters, transformation parameters,
  • the unit for entropy decoding can be set up to carry out a decoding in accordance with the entropy coding carried out by the encoder.
  • the decoder can receive the image data on a block basis.
  • the decoder can contain a unit for inverse quantization, which can be connected upstream of the unit for inverse transformation.
  • inverse quantization is performed by an inverse process to that of the unit Q for Quantization of the encoder used is carried out.
  • the inverse quantization operations can also be viewed as part of entropy decoding. For example, in the case of inverse quantization, in the case of uniform quantization, the number of the quantization stage can be multiplied by the stage width in order to obtain the representative value.
  • the unit for inverse transformation carries out an inverse transformation of the transformation carried out by the unit T for transforming the encoder.
  • the unit for reconstruction can be set up to add a prediction block and a decoded prediction error block in order to obtain a reconstructed block.
  • the loop filter unit filters the reconstructed block in order to obtain a filtered reconstructed block.
  • the filtering can smooth image point transitions or improve the image quality in some other way.
  • the loop filter unit can use one or more filters, for example for deblocking or for suppressing noise.
  • the unit for prediction performs a prediction of the block. This is done, for example, by inter-prediction or by inter-prediction. In order to carry out the inter prediction, it is necessary to determine the motion vectors. This can be done by the motion estimation unit.
  • the estimation can be made by finding the greatest agreement between the content of a current block of the image and an area in an already decoded reference image. For example, for this purpose the prediction block position can be shifted in a search area of the reference image and the position of greatest agreement can be found according to a predetermined cost criterion.
  • Both an encoder and a decoder can also contain a buffer for decoded pictures (decoded picture buffer, DPB).
  • DPB decoded picture buffer
  • the buffer can be set up to store one or more previously filtered blocks.
  • the buffer memory can also contain other previously filtered blocks, such as, for example, previously reconstructed and filtered blocks of the same image or of other images (previously reconstructed and / or partially reconstructed images).
  • the buffer can also store one or more unfiltered reconstructed blocks.
  • the High Efficiency Video Coding Standard (HEVC) as well as the emerging Versatile Video Coding (WC) standard are based on hybrid coding in which a prediction and subsequent coding of the prediction error are used.
  • a transformation can be carried out on the prediction error blocks.
  • DCT-2 Separable Discrete Cosine Transformation
  • the transformation can increase the data rate, which occurs in particular in the case of prediction error blocks, the prediction errors of which have a low statistical dependency or correlation. For this reason, a mixed method can be used in which prediction error blocks of high correlation are transformed before quantization, whereas prediction error blocks of low correlation are quantized without prior transformation.
  • This procedure is shown in FIG. 1, in which the prediction error block r is either fed by the unit T for transformation to a unit Q for quantization, or is fed to a unit Q for transformation without prior transformation.
  • This procedure is defined in the HEVC standard with the designation Transform Skip and is adopted in the emerging VVC standard with some extensions.
  • One possibility of estimating the necessary data rate of a prediction error block is provided by the assumption that the prediction errors r with their variance o r and the quantization step size D of a prediction error block follow a Laplace distribution.
  • the probability for a prediction error r can thus be estimated by
  • AbsSum the sum of all absolute values of a prediction error block.
  • FIG. 2A is an illustration of two exemplary prediction error blocks, with example 1 showing a high-correlation prediction error block, example 2 showing a low-correlation prediction error block and example 3 showing a medium-correlation error block.
  • Fig. 2A shows the transformed prediction error blocks for the three examples, where a DCT-2 transformation was used.
  • 2A shows AbsSum for each prediction error block and each transformed prediction error block.
  • FIG. 2A shows that the value AbsSum increases from 20 to 74 as a result of the transformation of the prediction error block in example 2. The transformation thus leads to an increase in the required bit rate.
  • the value AbsSum is reduced slightly from 100 to 94 by applying the transformation.
  • the advantage i.e. the reduction in the bit rate necessary for coding, which results from applying the transformation to the prediction error block of example 3, is relatively small.
  • the prediction block is divided into a linear combination which contains a first block n and a second block GS.
  • the second block GS is transformed to obtain a transformed second block C2.
  • the first block n and the transformed second block C2 are then coded and can be transmitted to the receiver.
  • the sum of the first prediction errors of the first block and the corresponding second prediction errors of the second block result in the prediction errors of the original prediction error block.
  • FIG. 2B schematically shows two blocks 210 and 220 of equal size and the resulting prediction block 230, which is obtained by the sum of blocks 210 and 220.
  • FIG. 2B schematically shows two blocks 240 and 250 of different sizes and the resulting prediction block 260, which is obtained from the sum of blocks 240 and 250.
  • Reference numeral 270 shows the area of overlap of the two blocks in which they each have elements. The remaining area 280 is filled with values of the elements of block 240.
  • the central position of the overlapping part 270 is only a non-limiting example.
  • the position of the overlapping part can be set arbitrarily.
  • Different block sizes can be of importance, among other things, if the size of the blocks for the transformation differs from the size of the blocks for which the prediction is carried out - in other words: if the transformation blocks have a different size (at least in one of the dimensions) than the prediction blocks.
  • the smaller (250) of the two blocks (240, 250) can be padded with zeros to the size of the larger (240) of the two blocks. Then the element-wise sum of such blocks of equal size as mentioned above can be calculated.
  • the present invention is not limited to any particular implementation of the sum. If one of the elements to be summed has the value zero, the sum does not have to, but can actually be calculated - both lead to the same result.
  • the division of the prediction block r into the blocks n and GS is carried out in such a way that the element-wise sum of the blocks n and GS contains at least one sum of elements that are both different from zero.
  • the first block n can contain the proportion of the prediction errors of the prediction error block which has a low statistical dependency or correlation.
  • the second block GS can contain the proportion of the prediction errors of the prediction error block which has a greater statistical dependency or correlation.
  • the statistical dependency or correlation of the prediction errors of the first block n can be lower than the statistical dependency or correlation of the prediction errors of the second block GS.
  • the present invention is not limited to the sum of the first block and the second block as a linear combination.
  • the third summand d can, for example, contain quantization errors that result from a quantization of the first block and / or of the second block.
  • the second block can be divided again into a new second block and a third block, the new second block and the third block being transformed, but with different transformations.
  • the new second block can be transformed according to DCT-2 and the third block according to DCT-8 or DST-7.
  • the division of the second block into the new second block and the third block can be done by minimizing the absolute values of the respective transformed blocks (new second block and third block).
  • FIG. 3 shows this procedure using example 3 from FIG. 2A.
  • the prediction error block r is broken down into a first block n and a second block GS, the sum of the Prediction errors in the first block n and the corresponding prediction errors in the second block result in the prediction errors of the original prediction error block r.
  • the second prediction error block G is transformed to obtain the transformed second prediction error block C2. It can be seen from FIG. 3 that the sum of the values AbsSum for n and C2 results in 40. This value is clearly below the value AbsSum of the prediction error block r and also below the value AbsSum of the transformed prediction error block, as is achieved for example 3 in FIG. 3 by the transformation without decomposition.
  • FIG. 4 An encoder according to an embodiment is shown in FIG. 4.
  • the functions of the units correspond to the units of the encoder shown in FIG. 1 with the same designation.
  • the encoder of the embodiment differs from the encoder shown in FIG. 1 in particular by the additional unit D for breaking down the prediction block r into the first block n and the second block G.
  • the first block n is fed directly to the unit Q for quantization
  • the second block G is first transformed by the unit T for transformation before the transformed second block c is fed to the unit Q for quantization.
  • Both quantized blocks that is, the directly quantized block n and the quantized transformed block c ‘, are coded by the unit EC for entropy coding.
  • the back-transformed prediction error block r ‘results as the sum of the back-transformed first block r‘2 and the quantized first block. Before the summation, an inverse quantization of both blocks can be carried out, as described above.
  • the unit D can, however, also work in such a way that either n or G is zero in each case. It thus includes the encoder shown in FIG. 1.
  • FIGS. 5 and 6 An example of a possible implementation of the decomposition of the prediction error block to prediction error values is shown in FIGS. 5 and 6.
  • step S100 a prediction error block containing prediction errors of a block of the image data is determined.
  • step S200 the prediction error block determined is put into a linear combination which contains a first block of first prediction errors and a second block of second prediction errors.
  • step S300 the second block is transformed and in step S400 the first block and the transformed second block are coded.
  • the coding of the first block and the second block can include a quantization of the same.
  • FIG. 6 shows, by way of example, a specific implementation of the decomposition of the prediction error block into the first and the second block. In Fig.
  • n and G S denote all the prediction errors of the first block and the second block, respectively; ry and ry each denote the individual prediction errors of the first and second blocks; C2 denotes all (transformed) prediction errors of a transformed second block and Cy its individual (transformed) prediction parameters; n denotes an iteration parameter and N its limit value, that is, the number of iterations carried out.
  • a parameter k is also specified.
  • N is preferably in the range from 5 to 10 and k in the range from 1 to 2.
  • the initial values of the first prediction errors of the first block are set equal to the prediction errors of the prediction block and the initial values of the second prediction errors of the second block are set to zero.
  • the iteration parameter n is set to zero.
  • step S202 a weight w is determined based on the iteration parameter n.
  • step S203 a first mean value and a first standard deviation of the first prediction errors of the first block are determined.
  • step S204 prediction errors of the first block for which the absolute value of the difference from the first mean value is less than the first standard deviation multiplied by k are updated to zero.
  • the weights are the previously determined face w and (w-1).
  • step S205 the second prediction errors are updated by taking the difference between the prediction errors of the prediction error block and the updated prediction errors of the first prediction block.
  • step S206 the updated second block is transformed to obtain the transformed second block C2.
  • step S207 a second mean value and a second standard deviation of the second prediction errors of the transformed second block are determined.
  • step S208 prediction errors of the transformed second block, for which the absolute value of the difference from the second mean value is less than the second standard deviation multiplied by k, are updated to zero.
  • the weights are the previously determined weight w and (w-1).
  • step S209 an updated second block is obtained by inverse transforming the updated transformed second block.
  • step S205 the first prediction errors are updated by taking the difference between the prediction errors of the prediction error block and the updated prediction errors of the second prediction block.
  • the iteration parameter is increased by 1 in step S211.
  • step S212 If it is determined in step S212 that the iteration parameter is less than a predetermined limit value, a next iteration is initiated, beginning with step S202. However, if the iteration parameter is equal to or greater than the limit value, the decomposition of the prediction block is complete.
  • the decomposition is carried out iteratively, with each iteration step increasing a weight that is used to update the first prediction errors and the second prediction errors.
  • the method shown in FIG. 6 includes a minimization of the sum of the absolute values of the first prediction errors of the first block and a minimization of the sum of the absolute values of the transformed prediction errors of the transformed second block.
  • the method of the present invention is not restricted to the method shown for decomposing the prediction parameter. Rather, other methods can be used.
  • the sum of the absolute values of the first prediction errors of the first block and the sum of the absolute values of the second prediction errors of the second block could be used by a non-linear optimization method.
  • the sum of the squares of the absolute values could also be adjusted using the non-linear smallest method mean square error (non-linear least mean square) can be minimized.
  • the secondary condition can apply that the sum of the first block and the second block result in the prediction errors of the prediction error block.
  • FIG. 7B shows a further example of a result of the decomposition according to the method illustrated in FIG. 6 with seven iterations and another example of the prediction error block r.
  • the direct transformation of the prediction error block provides pure transformed prediction error block c with a value AbsSum of 47.
  • the first block and the transformed second block after the decomposition have values AbsSum of 32 and 18.8, respectively. In total, this results in a value AbsSum, which is achieved through the decomposition and the subsequent transformation of the second block, of 50.8. However, this value is above the value AbsSum of the directly transformed prediction error block c, i.e. AbsSum (n) + AbsSum (C2)> AbsSum (c).
  • the decomposition and subsequent transformation of the second block does not lead to a reduction in the data rate required for coding in all possible cases. For this reason, in a preferred embodiment, the decomposition and subsequent transformation of the second block can be carried out if a reduction in the data rate is achieved as a result.
  • the Lagrange cost of the data rate and the mean square reconstruction error can be determined for the following three coding possibilities:
  • a quantized prediction error block often contains quantized elements (prediction errors or transformed prediction errors) which are all zero.
  • This information can be encoded using a binary decision tree. 8 shows such a binary decision tree according to a preferred embodiment for the four possible combinations of the prediction errors of the first block n and the transformed second block C2. This decision tree is based on the decision tree used in the emerging WC standard (Bross et al. See above). Blocks that have at least one element (prediction error) that is not equal to zero are entropy-coded.
  • the thin lines in Figure 8 show the decision tree according to the emerging VVC standard, while the bold lines show an extension according to a preferred embodiment.
  • step S500 a bit stream which contains an encoded first block of first prediction errors and an encoded second block of second prediction errors is obtained.
  • step S600 the first block and the transformed second block decoded.
  • the transformed second block is subsequently transformed back in step S700.
  • step S800 a prediction error block which contains prediction errors of a block of image data is determined by a linear combination, the linear combination containing the first block and the inverse-transformed second block.
  • the linear combination can be made by a sum of the prediction parameters of the first block and the prediction parameters of the back-transformed second block.
  • the present invention is not limited to this, and, for example, a weighted sum can be used for linear combination.
  • a decoder is set up to carry out the method shown in FIG. 9.
  • the decoder comprises a unit for obtaining a bit stream which contains the encoded first block of first prediction error data and an encoded transformed second block of second prediction errors.
  • the decoder further comprises a unit for decoding the first block and the transformed second block.
  • the unit for decoding can correspond to the unit for coding an encoder, decoding which is inverse to the coding being carried out.
  • the decoder further comprises a unit for reverse transformation of the transformed second block, corresponding to the unit IT for inverse transformation of the encoder.
  • the decoder comprises a unit for determining a prediction error block, which contains prediction errors of a block of the image data, by a linear combination which contains the first block and the second block.
  • the unit for determining the prediction error block thus carries out processing which undoes the decomposition of the prediction error block into the first block and the second block, which is carried out by the encoder.
  • FIG. 10 shows a further embodiment of an encoder.
  • the functions of the units correspond to the units of the encoders shown in FIGS. 1 and 4 with the same designation.
  • the encoder according to FIG. 10 differs from the encoder shown in FIG. 4 in particular by the additional possibility of using different quantization units Q1 and Q2 for the first block n and the second block GS.
  • the first block n is fed directly to the unit Q1 for the first quantization
  • the second block GS is first transformed by the unit T for transformation before the transformed second block c is fed to the second unit Q2 for quantization.
  • Both quantized blocks that is to say the block n quantized directly by the first quantization unit Q1 and the transformed block c 'quantized by the second quantization unit, are encoded by the unit EC for entropy coding.
  • the back-transformed prediction error block r 'results as the sum of the back-transformed second block r and the quantized first block.
  • the respective inverse quantizations can be carried out in respective inverse quantization units Q1 1 and Q2 1 of both blocks. Inverse quantization is to be carried out in particular if the quantization contained a scaling and / or a shift (offset) which is reversed in the inverse quantization. If the quantization is only carried out by reducing the bit depth by rounding the prediction errors, no inverse quantization may be necessary.
  • the adjustment can be, for example, a separately adjustable step width.
  • the adaptation can also be such that, for example, Q1 is a scalar quantizer and Q2 is a vector quantizer, or vice versa. Since in coding without transformation there is often only one non-zero prediction error in a block, a scalar quantizer is often of similar coding efficiency to a vector quantizer and is therefore more advantageous for quantizing this signal. In the case of coding with transformation, several prediction error coefficients other than zero are often present in a block, so that a vector quantizer often has a higher coding efficiency for quantizing this signal.
  • the quantizers can also quantize in a state-dependent manner and the choice of the states used can differ.
  • the quantizer Q1 can also be selected depending on whether the bit stream only contains the first block or whether the second block is also included.
  • the quantizer Q2 can also be selected depending on whether the Bit stream only contains the second block or whether the first block is also included. This can lead to a further data rate reduction with the same quality, since a state-dependent quantization is always more efficient than a state-independent quantization.
  • FIG. 11 shows a further exemplary embodiment in which the (possibly quantized) samples / V of the first block are added to the reconstruction s ‘that results after the loop filtering.
  • the (possibly quantized) sampled values / V of the first block can also be added to the reconstruction that results from the application of a subset of the loop filters.
  • the (possibly quantized) samples of the first block r / are adaptively converted either to the inverse-transformed coefficients r 2 (switch position 2) or to the reconstruction s' ( Switch position 1) is added that results after loop filtering when using several loop filters, and accordingly also after using a subset of the loop filters.
  • quantization units Q1 and Q2 are generally shown. As already described with reference to Fig. 4, however, the quantization units Q1 and Q2 can be the same, i.e. the designations Q1 and Q2 in Figs. 11 and 12 can be replaced by the designation Q. They can also have all the other properties that were described in connection with FIG. 4.
  • FIG. 13 shows an exemplary embodiment of a decoder, corresponding to the encoder shown in FIGS. 4 and 10.
  • the decoder receives (e.g. receives) the bit stream b and decodes the encoded image data to obtain the received image data.
  • the decoder comprises a unit ED for entropy decoding, a unit IT for inverse transformation and a unit for reconstruction.
  • the decoder comprises a loop filter unit LF, a unit for prediction P and, under certain circumstances, a unit for motion estimation.
  • the unit for inverse transformation, the unit for reconstruction and the loop filter unit can be identical in their function to the corresponding units of the encoder, as already described above.
  • the entropy decoding unit ED is set up to perform entropy decoding of the data contained in a bit stream in order to generate quantized image data (e.g. prediction errors), coding parameters, prediction parameters, transformation parameters, Quantize parameters and / or loop filter parameters.
  • the decoder can receive the image data on a block basis.
  • the decoder can contain none (shown in FIG. 13), one or two units (shown in FIG. 14) for inverse quantization, which can be connected upstream of the unit IT for inverse transformation. These perform an inverse processing to that of the units Q for quantizing the encoder. For example, the units Q 1 or QT 1 and Q2 1 can perform scaling and shifting as well as increasing the bit depth. If adapted quantizers (quantization units) are used, adapted inverse quantizations are used in each case, for example adapted to Q1 and Q2. Inverse quantization is often the conversion of a parameter into a representative value. Since this step can also be viewed as decoding, an inverse quantization can also be viewed and carried out as part of the entropy decoding.
  • the unit IT for inverse transformation carries out an inverse transformation of the transformation carried out by the unit T for transforming the encoder. In this way, coefficients c ‘are transformed back into the prediction errors r2‘.
  • the unit for reconstruction can be set up to add a prediction block s and a decoded first block r1 and a second block r2‘ in order to obtain a reconstructed block s‘.
  • the loop filter unit LF filters the reconstructed block s ‘in order to obtain a filtered reconstructed block.
  • the loop filter unit LF can use one or more filters, for example for deblocking or for suppressing noise.
  • the prediction unit carries out the prediction of the block, similar to that already described above, for the encoder and the decoder.
  • the motion vectors decoded by the bit stream or determined by the decoder and / or other motion information can be used.
  • Decoders which correspond to the encoders in FIGS. 11 and 12 can be obtained similarly by changing the decoder in FIG.
  • bit stream can be further improved.
  • the block of quantized coefficients is first encoded. Then the block of (possibly quantized) samples depending on the block of quantized coefficients encoded.
  • the bit stream can contain the coded coefficients followed by the coded samples.
  • the number of quantize non-zero coefficients can be counted. The number can then be compared with a predetermined threshold value. Depending on the result of this comparison, the code for coding the block of quantized samples is selected. In other words, if the counted number of non-zero coefficients exceeds the threshold value, a first coding is applied to the samples. If the counted number of non-zero coefficients does not exceed the threshold value, a second coding is applied to the samples. The second coding can be such that it assumes all quantized sample values to be zero.
  • the threshold value can be 0.
  • the sample values can therefore be coded with a first coding if not all the coefficients are zero and with a second coding if all the coefficients are zero.
  • the code for coding the information can therefore be selected depending on the truth content of “All quantized samples of the block are zero or not”.
  • the threshold value can be specified, for example determined in advance of the coding by empirical tests.
  • the threshold value can also be determined by the encoder and transmitted to the decoder, e.g. per block, per image or per sequence.
  • the dependency is reversed: the block of (quantized) samples is coded first. Then the block of quantized coefficients is coded depending on the block of samples.
  • the decision regarding the choice of a first code or a second code for coding the quantized coefficients can similarly be made on the basis of a predetermined threshold value.
  • the decoder determines that the DC coefficient of a block is not zero and that all the remaining coefficients of the block are zero, and at the same time that all quantized samples have the same value, the decoder outputs an error message.
  • the decoding error can then be handled in a customary / known manner (error concealment by interpolation or the like).
  • a possible alternative for example, is the following: If the decoder determines that the DC coefficient of a block is not zero and all remaining coefficients of the block are zero, then no code words will be used in the event that all quantized samples have the same value provided because this event cannot occur. This can save data rates. In this way the redundancy is eliminated instead of being used for checking.
  • the valid constellations of the quantized samples ie the constellations for which code words are also provided, can be restricted to the effect that neighboring quantized samples have different values and / or different signs, which is associated with a low correlation.
  • code words can be saved for constellations for which the transformation is often more efficient. "0" can be used as a separate sign to "+” and be treated.
  • a restriction could mean that code words are only provided for constellations of quantized sample values in which all pairs of adjacent sample values (e.g. adjacent above and left in the usual coding and decoding sequence, or other neighbors depending on the coding and decoding sequence) are in the block always have different values.
  • code words are only provided for constellations of quantized sample values in which all pairs of adjacent sample values always have one of the sign pairs “+ / -”, “- / +”, “- / 0”, “0 / + ”,“ 0 / - ”,“ + / 0 ”and“ 0/0 ”, with“ 0 ”as a separate sign to“ + ”and is treated.
  • FIGS. 15 to 17 Further exemplary embodiments are shown in FIGS. 15 to 17.
  • FIGS. 15 to 17 show decoding in which it is possible to correct the image signal in the finally reconstructed image (ie after loop filtering LF) at selected positions by adding (adding) 151 of r1 'at selected positions.
  • FIGS. 15 to 17 differ in the use of inverse quantization.
  • FIG. 15 shows a decoder which does not require any inverse quantization (for example scaling and / or offset).
  • 16 shows a decoder which inversely quantizes (dequantizes) the decoded samples and the decoded coefficients with respective inverse quantizers Q1 1 and Q2 1. Implementations are possible in which, for example, only the coefficients are inversely quantized.
  • FIG. 17 shows an example in which the quantized sample values r1 'are also present in elements or blocks, broken down into r1a' and r1b '. The part r1a 'is added before the loop filtering LF, the part r1b' after the loop filtering LF.
  • the division can also be estimated by the encoder and transmitted to the decoder.
  • the encoder can take the effect of the one or more LF into account in the estimation.
  • the decomposition could, for example, be selected from the mean square reconstruction error and the required data rate while minimizing Langrange's costs.
  • the information as to whether the bit stream contains the first block and the transformed second block can be displayed by an encoder by inserting an indicator into the bit stream. On the decoder side, it can be determined on the basis of the indicator that (whether) the bit stream contains the first block and the transformed second block.
  • the indicator is implemented by encoded binary information in the bit stream.
  • the binary information can be one bit.
  • the coding can, however, also be a binary arithmetic coding, as used, for example, by HEVC or WC.
  • the indicator is able to display more than two values. This allows several coding methods to be displayed.
  • the indicator be implemented by two bits or two coded binary information and thus assume four values. These four values can be assigned to four coding methods and indicate that
  • bit stream contains the first block and the transformed second block
  • bit stream contains only the first block
  • bit stream only contains the transformed second block
  • the encoder can entropy-code this side information, for example in the context of context-adaptive arithmetic coding, which can also be binary, or another coding with code words of variable or fixed length.
  • one or more indicators are inserted into the bit stream which indicate whether the methods described above, including the decomposition of the prediction error block into the first block and the second block, have been applied.
  • a method of an embodiment can be switched on or off in a hierarchical manner, for example for a video sequence, individual images, individual image areas (such as slices, tiles or bricks) or individual blocks. This can enable the required side information to be encoded more efficiently at a low data rate.
  • a first indicator can indicate whether an entire video sequence is encoded with the method described or not and therefore no further indicators follow, or whether further indicators follow for parts of the video sequence that indicate, in each case for a corresponding part of the video sequence, whether the part the video sequence is encoded with the method described or not.
  • a second indicator for example for each image, can indicate whether or not the described method is used to encode the entire image and no further indicators follow, or that further indicators follow which can indicate whether or not a part of the image is coded with the method described.
  • further indicators can follow if for sub-areas, such as slices, tiles or bricks, either the method described above is used for the respective entire sub-area or not.
  • the bit stream can contain one or more indicators which indicate in a hierarchical manner whether or not corresponding parts of image data are encoded using a method according to an embodiment of the present invention.
  • Prediction error coding is carried out according to inter- and intra-prediction. It can also be done separately for the prediction errors of the luminance and the two chrominances. As a result, a further improvement in coding efficiency can be achieved.
  • the described methods are used with the division of the prediction error block into the first block and the second block as a function of a size of the prediction error block.
  • the method can only be used provided that the width of the prediction error block is greater than a certain minimum width.
  • the method can only be used provided that the level of the prediction error block is above a certain minimum level.
  • the method can only be applied provided that both the width of the prediction error block is above a minimum width and the height of the prediction error block is above a minimum height.
  • the method can only be used provided that the product of the width of the prediction error block and the height of the prediction error block is above a certain limit, e.g. a minimum area or a minimum number of sampling points / pixels.
  • the method is only used when the prediction block has a certain minimum size, the required amount of data of the side information is kept low in relation to the amount of data of the image data.
  • the additional side information required per pixel is high, in the case of large blocks it is rather low. Therefore, the technology could preferably be switched off for very small blocks and the technology on for large blocks.
  • the minimum size, width and / or area can, for example, be predetermined (and possibly specified in a standard) or signaled in the bit stream, for example once, per image or per image group or per block.
  • a breakdown of the picture into small prediction error blocks can, however, also be an indication of an imprecise prediction in which large, non-zero prediction errors arise, for which the coding is very efficient. Furthermore, the division into the first block and the second block is associated with little computing effort for small blocks and high computing effort for large blocks. It can therefore also be advantageous to use this method only for small blocks. For example, the method can only be used provided that the width of the prediction error block is below a certain minimum width. In addition, the method can only be used provided that the level of the prediction error block is below a certain minimum level. For example, the method can only be applied provided that both the width of the prediction error block is below a minimum width and the height of the prediction error block is below a minimum height. Alternatively, the method can only be used provided that the product of the width of the prediction error block and the height of the prediction error block is below a certain limit, e.g. a minimum area or a minimum number of sampling points / pixels.
  • the decomposition according to the invention of a block into a linear combination of two blocks can only be applied to blocks with a size from a predetermined range.
  • This area can be determined by a minimum size and / or a maximum size.
  • the size can be specified by the vertical and / or horizontal dimensions of the block, or by the area, e.g. by the number of samples.
  • a described method is used with breaking down the prediction error block into the first block and the second block as a function of (possibly quantized) transformed prediction errors of the transformed prediction error block. Only if these have a certain property does the bit stream contain an indicator described above (see also FIG. 8) or contains a block of non-transformed prediction parameters, in accordance with the method described above. Possible properties are:
  • the comparison of the number of non-zero (possibly quantized) transformed prediction errors with a threshold value satisfies a certain condition.
  • the number of non-zero (possibly quantized) The transformed prediction error is greater than a threshold value, which can also be dependent on other parameters, such as the block properties, such as the block size, the block area or an edge length of the block.
  • the specific condition could require that the non-zero (possibly quantized) transformed prediction errors lie outside a predetermined range of the transformed prediction error block.
  • the predetermined range can contain at least the upper left sample value or coefficients.
  • the predetermined range is the upper left quadrant of the transformed prediction error block.
  • the condition could also determine, for example, that the DC coefficient must be non-zero, which represents the constant component in a DCT.
  • the predetermined range contains a low-frequency range, ie if the values other than zero are outside this range, the prediction error block has high-frequency components or a high variability of the prediction errors over the prediction error block, which implies a low statistical dependence of the prediction values so that a division of the prediction error block into the first block and the second block leads to a reduction in the data rate.
  • an indicator for a block can also be omitted if the bit stream always contains the first block and always the transformed second block. This procedure can save the data rate for the indicator.
  • there can only be a small reduction in quality if one of the blocks does not have to be included (i.e. would be completely zero), but due to this introduced convention cannot be completely zero and is therefore modified so that it is not completely zero.
  • one, more or all of the indicators are encoded as a function of one or more of the following conditions.
  • the indicators can be coded depending on an indicator of an adjacent block of the image data.
  • the code word length of the indicators can be set according to the code word length of the indicators (the indicator) of the adjacent block.
  • the coding of the indicators can be adjusted based on the prediction method of the prediction block. For example, a different code word length of the indicators (of the indicator) can be set, depending on whether an inter-prediction or an intra-prediction takes place.
  • the coding of the indicators can be adjusted based on the component of the image signal. For example, a different code word length of the indicators (the indicator) can be set, depending on whether a luminance or a chrominance is being coded.
  • the first block and the transformed second block can also have different sizes.
  • the edge lengths of the first and second blocks should, however, be integral multiples of each other for easy processing.
  • the block size of the first block can have 4x4 samples and the block size of the transformed second block can have 8x8 coefficients.
  • up to 4 first blocks of 4 ⁇ 4 sample values each would arise if these are not arranged to overlap one another but to completely overlap with the transformed second block. Accordingly, up to four indicators would be coded.
  • the invention is not limited to these specific block sizes.
  • the number of non-zero (possibly quantized) sample values of the first block and the (possibly quantized) coefficients of the transformed second block can be limited.
  • a restriction could stipulate that only the DC coefficient may be non-zero. Since only this entropy has to be coded in these cases, the data rate can be saved.
  • the (possibly quantized) sample values of the first block must meet conditions with one another.
  • one condition can be that not all sample values may have the same value, since such a block could be encoded more efficiently with a transformation. The introduction of such conditions can save data rates accordingly.
  • the coding of the indicators can be adjusted based on the size of the prediction error block. For example, a different code word length of the indicators (of the indicator) can be set, depending on whether the size of the prediction block is above or below a predetermined limit.
  • the size of the prediction block can relate, for example, to a width, a height and / or a product of the height and width of the prediction block.
  • Embodiments of the present invention for example an encoder or a decoder, and their functions can be implemented in hardware, software, firmware or a combination thereof.
  • the functions can be stored on a computer-readable storage medium or transmitted over a communication channel as instructions or code that is executed by a hardware-based processing unit.
  • a computer readable storage medium can be RAM, ROM, EEPROM, CD-ROM or other optical storage medium, magnetic storage medium, flash memory, or other storage medium that can be used to store program code in the form of instructions, so that they can be read out by a computer.
  • processors such as digital signal processors (DSP), general purpose microprocessors, application-specific integrated circuits, programmable logic gates (Field Programmable Gate Array, FPGA), or other integrated or discrete logic circuits.
  • DSP digital signal processors
  • FPGA programmable logic gates
  • processors can relate to one of the structures mentioned or other structures that are suitable for implementing the methods described above.
  • the described functionalities can be implemented in hardware and / or software modules provided for this purpose, which are set up to encode and / or decode image data, also in the context of a combined codec.
  • the methods can also be implemented in one or more circuits or logic elements.
  • the present invention relates to methods and devices for coding image data, wherein a prediction error block is broken down into a linear combination.
  • the prediction error block contains prediction errors of a block of picture data.
  • the linear combination contains a first block of first prediction errors and a second block of second prediction errors.
  • the second block is transformed and encoded together with the first block.
  • the invention also relates to methods and devices for decoding image data, a bit stream containing a first block of prediction errors and a transformed second block containing second prediction errors. After the transformed second block has been back-transformed, a prediction error block is determined by a linear combination which contains the first block and the back-transformed second block.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Die vorliegende Erfindung betrifft Verfahren und Vorrichtungen zum Codieren von Bilddaten, wobei ein Prädiktionsfehlerblock in eine elementweise Linearkombination zerlegt wird. Der Prädiktionsfehlerblock enthält Prädiktionsfehler eines Blocks von Bilddaten. Die Linearkombination enthält dabei einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler. Der zweite Block wird transformiert und zusammen mit dem ersten Block codiert. Zudem betrifft die Erfindung Verfahren und Vorrichtungen zum Decodieren von Bilddaten, wobei ein Bitstrom einen ersten Block an Prädiktionsfehlern und einen transformierten zweiten Block zweiter Prädiktionsfehler enthält. Nach Rücktransformation des transformierten zweiten Blocks wird ein Prädiktionsfehlerblock durch eine Linearkombination bestimmt, die den ersten Block und den rücktransformierten zweiten Block enthält.

Description

VERFAHREN UND VORRICHTUNGEN ZUR CODIERUNG VON BILDDATEN
Die vorliegende Erfindung betrifft Verfahren und Vorrichtungen zur Codierung und Decodierung von Bilddaten.
Verfahren und Vorrichtungen zur Codierung und Decodierung von Bilddaten, insbesondere von Videodaten, werden in einem breiten Bereich der digitalen Bild-/Videoverarbeitung und - Übertragung eingesetzt. Beispiele hierfür ist die Ausstrahlung eines digitalen Fernsehprogramms, Bild-/Videoübertragung über das Internet oder mobile Netzwerke, Echtzeitanwendungen wie Videokonferenzsysteme, sowie die Speicherung und das Auslesen von Bild-/Videodaten auf Datenträgern wie DVDs oder Blu-rays.
Die Datenmenge, die notwendig ist, um auch ein Video geringer Laufzeit abzubilden kann so groß sein, dass Schwierigkeiten bei der Datenübertragung über Netzwerke limitierter Bandbreite auftreten können. Ferner kann der zur Verfügung stehende Speicherplatz einer DVD oder einer Blu-ray-disc nicht ausreichen, um ein gewisses Video vollständig zu speichern.
Aus diesen Gründen werden Bild- bzw. Videodaten üblicherweise komprimiert, bevor sie gespeichert oder über ein Netzwerk übertragen werden. Die Kompression wird üblicherweise an einer Datenquelle durchgeführt, die durch Nutzung dedizierter Software oder Hardware die Bild- /Videodaten vor der Übertragung oder Speicherung codiert, wodurch die benötigte Datenmenge reduziert werden kann. Die komprimierten Daten werden dann am Ziel empfangen und decodiert, um zum Beispiel das übertragene Bild bzw. Video anzeigen zu können.
Da die angestrebte Bildqualität stetig steigt, ist es somit erstrebenswert, die Komprimierungsrate zu verbessern, ohne dabei signifikante Verluste der Bildqualität hinnehmen zu müssen. Es ist somit Aufgabe der vorliegenden Erfindung, die Komprimierungsrate von Bilddaten zu verbessern, um eine verringerte benötigte Datenrate oder einen verringerten benötigten Speicherbedarf zu erreichen.
Diese Aufgabe wird durch die unabhängigen Ansprüche gelöst. Die abhängigen Ansprüche definieren vorteilhafte Ausführungsformen.
Die vorliegende Erfindung betrifft gemäß einem ersten Aspekt ein Verfahren zum Codieren von Bilddaten. Das Verfahren umfasst das Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält. Das Verfahren umfasst ferner das Zerlegen des Prädiktionsfehlerblocks in eine Linearkombination, die einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler enthält. Des Weiteren umfasst das Verfahren das Transformieren des zweiten Blocks sowie das Codieren des ersten Blocks und des transformierten zweiten Blocks.
In anderen Worten betrifft die Erfindung ein Verfahren zum Codieren von Bilddaten, wobei ein Prädiktionsfehlerblock nicht notwendigerweise direkt transformiert und quantisiert bzw. direkt quantisiert wird, bevor er codiert wird, sondern aufgeteilt wird in eine Linearkombination, die zwei Blöcke enthält, den ersten Block und den zweiten Block. Das bedeutet, der Prädiktionsfehlerblock ergibt sich durch die Linearkombination, einschließlich der beiden Blöcke. Nachfolgend wird nur einer der beiden Blöcke, der zweite Block, transformiert, um einen transformierten zweiten Block zu erhalten. Der erste Block wird hingegen nicht transformiert. Daraufhin werden der nicht transformierte erste Block und der transformierte zweite Block codiert.
Wenigstens ein Prädiktionsfehler wird durch eine Linearkombination von einem ersten von Null verschiedenen Prädiktionsfehler und eines zweiten von Null verschiedenen Prädiktionsfehler erhalten. Dabei kann die Codierung eine Quantisierung des ersten Blocks und des transformierten zweiten Blocks enthalten. Ferner kann die Codierung eine Entropie-Codierung des (evtl quantisierten) ersten Blocks und des (evtl quantisierten) transformierten zweiten Blocks enthalten.
Die Bilddaten können ein unbewegtes Bild, ein bewegtes Bild (i.e. ein Video) oder eine Folge an unbewegten oder bewegten Bildern darstellen. Dabei kann das Verfahren blockbasiert durchgeführt werden, wobei jeder Block einen Anteil eines zu codierenden Bilds enthält. Die Blöcke können dabei Bildpunktwerte, Pixelwerte, Bildabtastwerte oder dergleichen enthalten.
Durch das Verfahren gemäß dem ersten Aspekt wird kann eine Reduktion der zur Codierung der Prädiktionsfehler notwendigen Datenrate erreicht werden, ohne dabei die Qualität des codierten Bildes zu reduzieren. Gemäß einer Ausführungsform weisen die ersten Prädiktionsfehler untereinander geringere statistische Abhängigkeiten als die zweiten Prädiktionsfehler auf.
In anderen Worten, eine statistische Abhängigkeit der ersten Prädiktionsfehler des ersten Blocks untereinander kann geringer sein als eine statistische Abhängigkeit der zweiten Prädiktionsfehler des zweiten Blocks untereinander. Dies erlaubt eine Reduktion der benötigten Datenrate, da die Codierungsverfahren an die jeweiligen statistischen Eigenschaften der Prädiktionsfehler angepasst sind. Das heißt, der Anteil der Prädiktionsfehler, der eine geringe statistische Abhängigkeit aufweist, kann ohne Transformation codiert werden, was eine verbesserte Datenrate bedingt als eine Codierung mit Transformation. In ähnlicher Weise kann der Anteil der Prädiktionsfehler, der eine höhere statistische Abhängigkeit aufweist, mit Transformation codiert werden, was eine verbesserte Datenrate bedingt als eine Codierung ohne Transformation.
Gemäß einer weiteren Ausführungsform ergeben die ersten Prädiktionsfehler und die zweiten Prädiktionsfehler in Summe die entsprechenden Prädiktionsfehler des Prädiktionsfehlerblocks.
In anderen Worten ergibt die Summe eines bestimmten ersten Prädiktionsfehlers des ersten Blocks und des entsprechenden zweiten Prädiktionsfehlers des zweiten Blocks den entsprechenden Prädiktionsfehler des Prädiktionsfehlerblocks. Dies kann für sämtliche Prädiktionsfehler des ersten, des zweiten und des Prädiktionsfehlerblocks gelten. Das bedeutet, auf Pixelbasis ergibt jeweils die Summe der ersten Prädiktionsfehler und der zweiten Prädiktionsfehler die Prädiktionsfehler des Prädiktionsfehlerblocks.
Dies ermöglicht es, dass die Prädiktionsfehler vollständig kodiert werden. In anderen Worten, wenn die Linearkombination eine Summe des ersten Blocks und des zweiten Blocks darstellt, die den Prädiktionsfehlerblock ergibt, werden sämtliche Prädiktionsfehler codiert.
Gemäß einer weiteren Ausführungsform weisen der Prädiktionsfehlerblock, der erste Block und der zweite Block jeweils die gleiche Größe auf.
Die gleiche Größe des ersten Blocks und des zweiten Blocks erlauben eine direkte Bestimmung des Prädiktionsfehlerblocks auf einer Encoderseite. Eine komplexe Adressverwaltung und/oder Zuordnung bzw. Bestimmung der einzelnen Prädiktionsfehler des ersten und des zweiten Blocks ist somit nicht notwendig. Die vorliegende Erfindung kann jedoch auch Blöcke unterschiedlicher Größen unterstützen.
Gemäß einer weiteren Ausführungsform enthält die Zerlegung des Prädiktionsfehlerblocks eine Minimierung einer Summe der Absolutwerte der ersten Prädiktionsfehler des ersten Blocks.
In anderen Worten, durch die Zerlegung kann die Summe der Absolutwerte (d.h. der Beträge) eine Minimierung der ersten Prädiktionsfehler enthalten. Dabei ist nicht zwingend erforderlich, dass die Zerlegung die theoretisch bestmögliche Minimierung erzielt. Da die Absolutwerte der Prädiktionsfehler als ein Maß für die zur Codierung benötigte Datenrate angesehen werden können, erfolgt durch die Minimierung der Absolutwerte auf einfache Weise eine Minimierung der zur Codierung benötigten Datenrate.
Gemäß einer weiteren Ausführungsform enthält die Zerlegung des Prädiktionsfehlerblocks eine Minimierung einer Summe der Absolutwerte der transformierten Prädiktionsfehler des transformierten zweiten Blocks.
In anderen Worten, durch die Zerlegung kann die Summe der Absolutwerte (d.h. der Beträge) eine Minimierung der transformierten zweiten Prädiktionsfehler enthalten. Dabei ist nicht zwingend erforderlich, dass die Zerlegung die theoretisch bestmögliche Minimierung erzielt. Da die Absolutwerte der transformierten Prädiktionsfehler als ein Maß für die zur Codierung des transformierten zweiten Blocks benötigte Datenrate angesehen werden können, erfolgt durch die Minimierung der Absolutwerte auf einfache Weise eine Minimierung der zur Codierung benötigten Daten rate.
Gemäß einer weiteren Ausführungsform umfasst das Verfahren ferner das Einfügen des codierten ersten Blocks und des codierten transformierten zweiten Blocks in einen Bitstrom. Das Verfahren umfasst ferner das Einfügen eines Indikators in den Bitstrom, der in der Lage ist, anzuzeigen, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält.
Das bedeutet, dass der Bitstrom den ersten Block und den transformierten Zweiten Block enthält, kann durch Einfügen des Indikators in den Bitstrom angezeigt werden.
Dies kann zum Beispiel ermöglichen, dass einer decodierenden Seite die Information mitgeteilt werden kann, dass bzw. ob der Bitstrom den ersten Block und den transformierten zweiten Block enthält.
Das Einfügen des Indikators in den Bitstrom ermöglicht zum Beispiel ein dynamisches An- und Ausschalten der Zerlegung des Prädiktionsfehlerblocks in einen ersten Prädiktionsfehlers des ersten Blocks und des entsprechenden zweiten Prädiktionsfehlers des zweiten Blocks. Zudem muss durch den Indikator bei der Decodierung nicht geschätzt werden, ob die Zerlegung des Prädiktionsfehlerblocks erfolgte, was wiederum zu einer Reduktion der benötigten Rechenkapazität führt. Gemäß einer bevorzugten Ausführungsform ist der Indikator ferner in der Lage, anzuzeigen, dass der Bitstrom nur den kodierten ersten Block, nur den codierten transformierten zweiten Block oder keinen des codierten ersten Blocks und des codierten transformierten zweiten Blocks enthält.
In anderen Worten, der Indikator kann anzeigen, dass der Bitstrom nur den ersten Block enthält. Ferner kann der Indikator anzeigen, dass der Bitstrom nur den transformierten zweiten Block enthält. Ferner kann der Indikator anzeigen, dass der Bitstrom sowohl den ersten Block als auch den transformierten zweiten Block enthält. Zudem kann der Indikator anzeigen, dass der Bitstrom weder den ersten noch den zweiten Block enthält.
Dies ermöglicht es, dass ein einziger Indikator nicht nur anzeigen kann, dass der Bitstrom den ersten und den transformierten zweiten Block enthält, sondern auch zum Anzeigen anderer Codierungsverfahren verwendet werden kann.
Die vorliegende Erfindung betrifft ferner gemäß einem zweiten Aspekt ein Verfahren zum Decodieren von Bilddaten. Das Verfahren umfasst das Erhalten eines Bitstroms, der einen codierten ersten Block erster Prädiktionsfehler und einen codierten transformierten zweiten Block zweiter Präfiktionsfehler enthält. Ferner umfasst das Verfahren das Decodieren des ersten Blocks und des transformierten zweiten Blocks sowie das Rücktransformieren des transformierten zweiten Blocks. Ferner umfasst das Verfahren das Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält, durch eine Linearkombination, die den ersten Block und den rücktransformierten zweiten Block enthält.
In anderen Worten betrifft die Erfindung ein Verfahren zum Decodieren von Bilddaten, wobei anstatt eines einzelnen, evtl transformierten, Prädiktionsfehlerblocks zwei Blöcke empfangen und decodiert werden (der erste Block und der transformierte zweite Block). Der Prädiktionsfehlerblock ergibt sich dann durch Linearkombination, die den ersten Block und den rücktransformierten zweiten Block enthält.
Durch das Verfahren gemäß dem zweiten Aspekt kann ein Prädiktionsfehler eines Blocks der Bilddaten erhalten werden, der mit einer reduzierten Datenrate codiert wurde, ohne dabei die Qualität des codierten Bildes zu reduzieren.
Gemäß einer Ausführungsform enthält die Linearkombination eine Summe des ersten Blocks und des rücktransformierten zweiten Blocks.
In anderen Worten ergibt die Summe eines bestimmten ersten Prädiktionsfehlers des ersten Blocks und des entsprechenden zweiten Prädiktionsfehlers des rücktransformierten zweiten Blocks den entsprechenden Prädiktionsfehler des Prädiktionsfehlerblocks. Dies kann für sämtliche Prädiktionsfehler des ersten, des rücktransformierten zweiten und des Prädiktionsfehlerblocks gelten. Das bedeutet, auf Pixelbasis ergibt jeweils die Summe der ersten Prädiktionsfehler und der zweiten Prädiktionsfehler die Prädiktionsfehler des Prädiktionsfehlerblocks.
Dies ermöglicht es, dass die Prädiktionsfehler vollständig erhalten werden. In anderen Worten, wenn die Linearkombination eine Summe des ersten Blocks und des rücktransformierten zweiten Blocks darstellt, die den Prädiktionsfehlerblock ergibt, werden sämtliche Prädiktionsfehler decodiert.
Gemäß einer weiteren Ausführungsform umfasst das Verfahren ferner das Bestimmen, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält.
Das bedeutet, vor Bestimmung des Prädiktionsfehlerblocks durch die Linearkombination kann festgestellt werden, dass der Bitstrom den ersten Block und den transformierten zweiten Block enthält.
Gemäß einer weiteren Ausführungsform enthält der Bitstrom einen Indikator, der in der Lage ist, anzuzeigen, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält. Ferner wird auf Grundlage des Indikators bestimmt, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält.
In anderen Worten kann der Indikator anzeigen, ob der Bitstrom die genannten Blöcke enthält oder nicht. Abhängig davon, ob der Indikator anzeigt, dass die genannten Blöcke im Bitstrom vorhanden sind, können der erste Block und der transformierte zweite Block decodiert und weiter verarbeitet werden.
Durch den Indikator wird zum Beispiel ein dynamisches An- und Ausschalten des Verfahrens mit der Zerlegung des Prädiktionsfehlerblocks ermöglicht. Zudem muss durch den Indikator bei der Decodierung nicht geschätzt werden, ob die Zerlegung des Prädiktionsfehlerblocks erfolgte, was wiederum zu einer Reduktion der benötigten Rechenkapazität führt.
Gemäß einer spezifischen Ausführungsform ist der Indikator in der Lage, anzuzeigen, dass der Bitstrom nur den codierten ersten Block, nur den codierten transformierten zweiten Block, sowohl den codierten ersten Block als auch den codierten transformierten zweiten Block, oder keinen des codierten ersten Blocks und des codierten transformierten zweiten Blocks enthält. Ferner umfasst die Linearkombination eine gewichtete Summe des ersten Blocks und des zweiten Blocks, wobei Gewichte der gewichteten Summe auf Grundlage des Indikators bestimmt werden.
Das heiß, der Indikator ist nicht nur in der Lage, anzuzeigen, dass der erste Block und der transformierte zweite Block im Bitstrom enthalten ist, sondern auch, ob nur der erste Block, nur der transformierte zweite Block und/oder keiner der beiden im Bitstrom vorhanden ist.
Dies ermöglicht es, dass ein einziger Indikator nicht nur anzeigen kann, dass der Bitstrom den ersten und den transformierten zweiten Block enthält, sondern auch zum Anzeigen anderer Codierungsverfahren verwendet werden kann.
Die vorliegende Erfindung betrifft ferner gemäß einem dritten Aspekt eine Vorrichtung zum Codieren von Bilddaten, wobei die Vorrichtung eine Einheit zum Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält, umfasst. Die Vorrichtung umfasst ferner eine Einheit zum Zerlegen des Prädiktionsfehlerblocks in eine Linearkombination, die einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler enthält. Ferner umfasst die Vorrichtung eine Einheit zum Transformieren des zweiten Blocks und eine Einheit zum Codieren des ersten Blocks und des transformierten zweiten Blocks.
Die vorliegende Erfindung betrifft ferner gemäß einem vierten Aspekt eine Vorrichtung zum Decodieren von Bilddaten, wobei die Vorrichtung eine Einheit zum Erhalten eines Bitstroms, der einen codierten ersten Block erster Prädiktionsfehler und einen codierten transformierten zweiten Block zweiter Präfiktionsfehler enthält, umfasst. Die Vorrichtung umfasst ferner eine Einheit zum Decodieren des ersten Blocks und des transformierten zweiten Blocks, eine Einheit zum Rücktransformieren des transformierten zweiten Blocks, und eine Einheit zum Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler des Blocks der Bilddaten enthält, durch eine Linearkombination, die den ersten Block und den zweiten Block enthält.
Die vorliegende Erfindung betrifft ferner eine Vorrichtung zum Codieren von Bilddaten, umfassend einen Prozessor, der eingerichtet ist, ein Verfahren nach dem ersten Aspekt und/oder dessen Ausführungsformen auszuführen.
Die vorliegende Erfindung betrifft ferner eine Vorrichtung zum Decodieren von Bilddaten, umfassend einen Prozessor, der eingerichtet ist, ein Verfahren nach dem zweiten Aspekt und/oder dessen Ausführungsformen auszuführen. Gemäß einer vorteilhaften Ausführungsform wird ein auf einem Speichermedium gespeichertes Computerprogramm breitgestellt, welches, wenn von einem oder mehreren Prozessoren ausgeführt, die Schritte eines der oben erwähnten Verfahren durchführt.
Zusätzliche Vorteile und Vorzüge der vorliegenden Erfindung ergeben sich aus der detaillierten Beschreibung einer bevorzugten Ausführungsform und den Zeichnungen.
KURZE BESCHREIBUNG DER ZEICHNUNGEN
Fig. 1 zeigt schematisch ein Beispiel einer Implementierung einer Codiervorrichtung nach dem Stand der Technik. Fig. 2A zeigt Beispiele für Prädiktionsfehlerblöcke mit deren transformierten Prädiktionsfehlerblöcken zusammen mit einem Maß für die zur Codierung benötigte Daten rate.
Fig. 2B ist eine schematische Darstellung von einer Zerlegung zweier gleich großen Blöcke und zweier Blöcke mit unterschiedlichen Größen. Fig. 3 zeigt ein Beispiel einer Zerlegung eines Prädiktionsblocks, welcher Prädiktionsfehler eines Blocks enthält in eine Linearkombination, die einen ersten Block und einen zweiten Block enthält, zusammen mit einem Maß für die zur Codierung benötigten Daten rate.
Fig. 4 zeigt schematisch ein Beispiel einer Implementierung einer Codiervorrichtung entsprechend einer Ausführungsform.
Fig. 5 zeigt die Schritte eines Codierverfahrens entsprechend einer Ausführungsform. Fig. 6 zeigt ein Beispiel der Schritte einer Implementierung der Zerlegung eines Prädiktionsfehlerblocks in einen ersten Block und einen zweiten Block.
Fig. 7A zeigt ein Beispiel eines Ergebnisses einer Zerlegung eines Prädiktionsfehlerblocks nach einer Ausführungsform.
Fig. 7B zeigt ein weiteres Beispiel eines Ergebnisses einer Zerlegung eines Prädiktionsfehlerblocks nach einer Ausführungsform. Fig. 8 zeigt einen binären Entscheidungsbaum gemäß einer bevorzugten Ausführungsform.
Fig. 9 zeigt die Schritte eines Decodierverfahrens entsprechend einer Ausführungsform.
Fig. 10 zeigt die Schritte eines Codierverfahrens und die entsprechende funktionale Einheiten gemäß einerweiteren Ausführungsform.
Fig. 11 zeigt die Schritte eines Codierverfahrens und die entsprechende funktionale Einheiten gemäß einerweiteren Ausführungsform.
Fig. 12 zeigt die Schritte eines Codierverfahrens und die entsprechende funktionale Einheiten gemäß einerweiteren Ausführungsform. Fig. 13 zeigt die Schritte eines Decodierverfahrens und die entsprechende funktionale Einheiten gemäß einer Ausführungsform.
Fig. 14 zeigt die Schritte eines Decodierverfahrens und die entsprechende funktionale Einheiten gemäß einerweiteren Ausführungsform.
Fig. 15 zeigt die Schritte eines Decodierverfahrens und die entsprechende funktionale Einheiten gemäß einer Ausführungsform.
Fig. 16 zeigt die Schritte eines Decodierverfahrens und die entsprechende funktionale Einheiten gemäß einer Ausführungsform.
Fig. 17 zeigt die Schritte eines Decodierverfahrens und die entsprechende funktionale Einheiten gemäß einer Ausführungsform.
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFUHRUNGSFORM
Im Folgenden wird eine bevorzugte Ausführungsform der vorliegenden Erfindung anhand der Zeichnungen detailliert beschrieben.
Videocodierungsstandards beruhen üblicherweise auf sogenanntem hybriden Codieren, implementiert beispielsweise in den Standards MPEG-1 (ISO/IEC 11172 (MPEG-1), „Information technology - coding of moving pictures and associated audio for digital storage media at up to about 1.5 mbit/s“, 1992), MPEG-2 (ITU-T Recommendation H.262 und ISO/IEC 13818-2 (MPEG- io
1), „Information technology - Generic coding of moving pictures and associated audio Information“, 1995), H.264/AVC (ITU-T Recommendation H.264 and ISO/I EC 14496-10 (MPEG- 4) AVC, “Advanced Video Coding for Generic Audiovisual Services”, 2019), HEVC (ITA-T Recommendation H.265 und ISO/I EC 23008-2, “High Efficiency Video Coding”, 2019) und WC (B. Bross et al. : “Versatile Video Coding (Draft 8)” Document JVET-Q2001, 17. Treffen des Joint Video Experts Team (JVET), Brüssel, 2020.
Fig. 1 zeigt ein schematisches Blockbild eines Beispiels einer Vorrichtung zur Bildcodierung nach dem Stand der Technik nach HEVC und dem aufkommenden Standard WC. Die Vorrichtung umfasst einen Eingang, eine Einheit zur Bestimmung von Prädiktionsfehlern, eine Einheit T zur Transformation, Einheiten Q zur Quantisierung, eine Einheit IT zur inversen Transformation, eine Einheit zur Rekonstruktion, eine Loop-Filter-Einheit LF, eine Einheit P zur Prädiktion, eine Einheit ME zur Bewegungsabschätzung, sowie Einheiten EC zur Entropiecodierung.
Die Einheit zur Bestimmung von Prädiktionsfehlern, die Einheit T zur Transformation und die Einheiten Q zur Quantisierung können als Einheiten betrachtet werden, die eine Vorwärts- Verarbeitung des Bildsignals ausführen, wohingegen die Einheit zur Rekonstruktion, die Einheit IT zur inversen Transformation, die Einheit P zur Prädiktion zur als Einheiten der Rückwärts- Verarbeitung angesehen werden können. Diese Einheiten zur Rückwärts-Verarbeitung entsprechen den Einheiten, die in einer Vorrichtung zur Decodierung von Bilddaten realisiert werden.
Bilder und Bildaufteilung
Der Encoder empfängt überden Eingang ein Bild oder Bilddaten. Zum Beispiel erhält der Encoder eine Reihe an Bildern, die zusammen eine Bildreihe oder einen Videoabschnitt bilden. Ein Bild kann dabei angesehen werden als ein zweidimensionales Feld (Array) oder Matrix an Bildpunkten, Pixels bzw. Abtastwerten, denen jeweils ein Helligkeits- und/oder Farbwert zugeordnet ist. Die Anzahl der Bildpunkte des Bildes definieren die Größe und/oder Auflösung des Bildes. Zur Darstellung von Farbe werden üblicherweise drei Komponenten verwendet. Das heißt, das Bild kann in Form dreier Matrizen dargestellt werden. Im sogenannten RGB-Format enthält ein Bild Matrizen, die jeweils einen Rot-, Grün- und Blauwert ihrer Bildpunkte beinhalten. Üblicherweise wird jedoch der sogenannte YCbCr-Farbraum verwendet, in dem eine Luminanz Y und zwei Chrominanzwerte Cb und Cr enthalten sind. Die Luminanzkomponente Y gibt dabei eine Helligkeit bzw. einen Grauwert wieder, wohingegen die beiden Chrominanzwerte Cb und Cr die Chrominanz bzw. die Farbinformation enthalten. Der Encoder kann eine Aufteilungseinheit enthalten, die das Bild in eine Mehrzahl an Blöcken aufteilt. Diese Blöcke werden auch als „root blocks“, Makroblöcke (macro blocks), Codierbaumblöcke (coding tree blocks) oder Codierbaumeinheiten (coding tree units) bezeichnet. Die Aufteilungseinheit kann die gleiche Größe für sämtliche Blöcke verwenden oder die Blockgröße innerhalb eines Bildes ändern. Blöcke können selbst wieder als zweidimensionale Arrays (Matrizen) an Intensitäts- und Farbwerten angesehen werden. Die Codierung eines Bildes kann auf einer Blockbasis erfolgen. Das heißt, die Blöcke eines Bildes können separat und nacheinander oder in parallel codiert werden.
Prädiktionsfehlerbestimmung
Die Einheit zur Prädiktionsfehlerbestimmung kann eingerichtet sein, einen Prädiktionsfehlerblock r zu bestimmen, basierend auf einem Bildblock s und einem Prädiktionsblock s. Dies kann zum Beispiel durch Berechnung der Differenz aus dem Bildblock s und dem Prädiktionsblock s erfolgen, wie in Fig. 1 dargestellt.
Transformation
Die Einheit T zur Transformation kann eingerichtet sein, eine Transformation wie z.B. eine diskrete Kosinustransformation (DCT) oder eine diskrete Sinustransformation (DST) des Prädiktionsfehlerblocks durchzuführen, um einen transformierten Prädiktionsfehlerblock c zu erhalten.
In dem in Fig. 1 dargestellten Beispiel wird die Transformation nicht notwendigerweise für jeden Prädiktionsfehlerblock des Bildes durchgeführt. Vielmehr kann entschieden werden, ob die Transformation durchgeführt wird oder nicht, wie weiter unten beschrieben.
Der Encoder kann zum Beispiel eingerichtet sein, Parameter, die für die Transformation verwendet wurden, auszugeben, zum Beispiel über die Einheit EC zur Codierung, so dass zum Beispiel ein Decoder die Parameter erhalten und zur Rücktransformation verwenden kann.
Quantisierung
Die Einheiten Q zur Quantisierung quantisieren die transformierten oder nicht transformierten Prädiktionsfehlerblöcke, indem zum Beispiel eine skalare oder eine Vektorquantisierung durchgeführt wird. Der Quantisierungsprozess kann die benötigte Bittiefe reduzieren, indem die Prädiktionsfehler gerundet werden. Quantisierung stellt eine verlustbehaftete Codierung dar.
Inverse Quantisierung Der Encoder kann eine Einheit zur inversen Quantisierung enthalten, die der Einheit zur inversen Transformation vorgeschaltet sein kann. In der Einheit zur inversen Quantisierung wird eine inverse Quantisierung durchgeführt, indem ein inverser Prozess zu dem von der Einheit Q zur Quantisierung verwendeten Prozess durchgeführt wird. Der resultierende Block enthält Prädiktionsfehler, die den Prädiktionsfehlern des transformierten c oder des nicht transformierten r Prädiktionsfehlerblock entsprechen, obwohl sie diesen aufgrund von Quantisierungsverlusten nicht notwendigerweise identisch sind.
Inverse Transformation
Die Einheit IT zur inversen Transformation führt eine inverse Transformation der durch die Einheit T zur Transformation durchgeführten Transformation durch. Wie der Fig. 1 zu entnehmen ist, wird die inverse Transformation nur dann durchgeführt, wenn der Prädiktionsfehler r durch die Einheit T zur inversen Transformation tatsächlich transformiert wurde, d.h., wenn der transformierte Prädiktionsfehlerblock c erzeugt wurde. Im Folgenden werden Elemente des transformierten Prädiktionsfehlerblocks als transformierte Prädiktionsfehler oder auch als Koeffizienten bezeichnet.
Rekonstruktion
Die Einheit zur Rekonstruktion addiert den Prädiktionsblock s und den quantisierten Prädiktionsfehlerblock r bzw. den transformierten, quantisierten und rücktransformierten Prädiktionsfehlerblock r‘, um einen rekonstruierten Block zu erhalten.
Filterung
Die Loop-Filter-Einheit LF filtert den rekonstruierten Block, um einen gefilterten rekonstruierten Block zu erhalten. Die Filterung kann dabei Bildpunkübergänge glätten oder auf andere Weise die Bildqualität verbessern. Die Loop-Filter-Einheit kann dabei einen oder mehrere Filter anwenden, zum Beispiel zum Deblocken oder zum Unterdrücken von Rauschen.
Prädiktion
Die Einheit P zur Prädiktion führt eine Prädiktion des Blocks durch. Diese erfolgt zum Beispiel durch Inter-Prädiktion oder durch Inter-Prädiktion.
Intra-Prädiktion wird verwendet, um Korrelationen oder andere statistische Abhängigkeiten innerhalb eines lokalen Bereichs eines Bilds zu entfernen. Die grundliegende Annahme ist es, dass ein Bereich innerhalb eines Bildes ähnlich zu benachbarten Bereichen des gleichen Bildes ist und aus diesem Grund aus den benachbarten Bildbereichen abgeleitet werden kann. Intra- Prädiktion kann angewendet werden, wenn keine Bilder zur Inter-Prädiktion zur Verfügung stehen oder wenn Intra-Prädiktion effizienter als Inter-Prädiktion ist. Zur Prädiktion werden üblicherweise benachbarte Abtastwerte verwendet, die sich oberhalb oder links des aktuellen Blocks befinden. Die Abtastwerte werden kombiniert, um zum Beispiel eine gerichtete oder eine ungerichtete (planare) Prädiktion zu erhalten.
Die grundliegende Annahme der Inter-Prädiktion ist die, dass sich der Inhalt mehrere Bilder einer Reihe von Bildern sich hauptsächlich aufgrund der Bewegung des Inhalts der Bilder ändert. Von Bild zu Bild liegen also nur geringe Unterschiede vor, die sich hauptsächlich auf eine Bewegung innerhalb des Bildes zurückführen lassen. Diese Bewegung kann verwendet werden, um den Inhalt eines aktuellen Blocks als ein Bewegungsvektor und einen Prädiktionsfehler darzustellen. Der Bewegungsvektor gibt dabei an, wie Bereiche eines Referenzbildes verschoben werden sollen, um eine Prädiktion des aktuellen Bilds zu erhalten. Die Beschreibung der Bewegung mit einem Bewegungsvektor ist ein translatorisches Abbildungsmodell, welches von einer translatorischen Bewegung ausgeht. Darüber hinaus kann die Bewegung auch mit anderen Bewegungsmodellen, wie z.B. einem affinen oder einem perspektivischen Abbildungsmodell beschrieben. Dafür werden mehr als zwei Bewegungsparameter benötigt, z.B. 6 beim affinen oder 8 beim perspektivischen Modell. Hierdurch können beispielsweise auch Rotationen beschrieben werden.
Zur Durchführung der Inter-Prädiktion ist es notwendig, die Bewegungsparameter, wie z.B. die Bewegungsvektoren zu bestimmen. Dies kann von der Einheit ME zur Bewegungsabschätzung durchgeführt werden. Die Abschätzung kann dabei erfolgen, indem die größte Übereinstimmung des Inhalts eines aktuellen Blocks des Bildes mit einem Bereich im Referenzbild gefunden wird. Zum Beispiel kann dazu die Prädiktionsblockposition in einem Suchbereich des Referenzbildes verschoben werden und gemäß einem vorbestimmten Kostenkriterium die Position größter Übereinstimmung gefunden werden.
Entropiekodierung
Die Intra- bzw. Interprädiktion erlaubt es, Korrelationen und/oder andere statistische Abhängigkeiten innerhalb des Bildes bzw. zwischen Bildern einer Reihe an Bildern zu entfernen. Die Bildung der Differenz zwischen dem Prädiktionsblock s und dem Bildblock s liefert den Prädiktionsfehlerblock, der den Teil des ursprünglichen Bildblocks s enthält, der nicht durch die Prädiktion abgebildet werden kann. Obwohl die Prädiktion die Korrelation und/oder andere statistische Abhängigkeiten in dem Prädiktionsfehlerblock reduziert, kann die darin enthaltene Information weiter durch die oben beschriebene Transformation komprimiert werden.
Der quantisierte Prädiktionsfehlerblock bzw. der quantisierte transformierte Prädiktionsfehlerblock werden zusammen mit Information (Seiteninformation) über das verwendete Prädiktionsverfahren, die Bewegungsvektoren, Intra-Prädiktionsrichtungen und ähnlichen notwendigen Information von der Einheit EC zur Entropiecodierung in einen Bitstrom b codiert. Bei der Entropiecodierung werden die Daten in binären Code umgesetzt. Entropiecodierung stellt eine verlustfreie Codierung dar.
Decodierung
Ein Decoder empfängt die codierten Bilddaten und decodiert diese, um die empfangenen Bilddaten zu erhalten. Die Bilddaten können in einem Bitstrom b empfangen werden, der Information zum Decodieren der codierten Bilddaten enthält, wie zum Beispiel Daten, die einen Block eines codierten Videos und zugeordnete Seiteninformation.
Der Decoder umfasst dabei eine Einheit zur Entropie-Decodierung, eine Einheit zur inversen Transformation und eine Einheit zur Rekonstruktion. Zudem umfasst der Decoder eine Loop- Filter-Einheit, eine Einheit zur Prädiktion und unter Umständen eine Einheit zur Bewegungsschätzung.
Die Einheit zur inversen T ransformation, die Einheit zur Rekonstruktion und die Loop-Filter-Einheit können dabei in ihrer Funktion identisch zu den entsprechenden Einheiten des Encoders sein. Die entsprechenden obigen Beschreibungen treffen somit auch auf die genannten Einheiten des Decoders zu.
Die Einheit zur Entropie-Decodierung ist eingerichtet, eine Entropie-Decodierung der in einem Bitstrom enthaltenen Daten durchzuführen, um quantisierte Bilddaten (z.B. Prädiktionsfehler), Codierungsparameter, Prädiktionsparameter, T ransformationsparameter,
Quantisierungsparameter und/oder Loop-Filter-Parameter zu erhalten. Dabei kann die Einheit zur Entropie-Decodierung eingerichtet sein, eine Decodierung entsprechend der vom Encoder durchgeführten Entropie-Codierung durchzuführen. Der Decoder kann dabei die Bilddaten blockbasiert erhalten.
Der Decoder kann eine Einheit zur inversen Quantisierung enthalten, die der Einheit zur inversen Transformation vorgeschaltet sein kann. In der Einheit zur inversen Quantisierung wird eine inverse Quantisierung durchgeführt, indem ein inverser Prozess zu dem von der Einheit Q zur Quantisierung des Encoders verwendeten Prozess durchgeführt wird. Die Operationen der inversen Quantisierung können auch als Teil der Entropie-Decodierung betrachtet werden. Beispielsweise kann bei einer inversen Quantisierung im Fall einer gleichförmigen Quantisierung die Nummer der Quantisierungsstufe mit der Stufenbreite multipliziert werden, um den Repräsentativwert zu erhalten.
Die Einheit zur inversen Transformation führt eine inverse Transformation der durch die Einheit T zur Transformation des Encoders durchgeführten Transformation durch.
Die Einheit zur Rekonstruktion kann eingerichtet sein, einen Prädiktionsblock und einen decodierten Prädiktionsfehlerblock zu addieren, um einen rekonstruierten Block zu erhalten.
Die Loop-Filter-Einheit filtert den rekonstruierten Block, um einen gefilterten rekonstruierten Block zu erhalten. Die Filterung kann dabei Bildpunkübergänge glätten oder auf andere Weise die Bildqualität verbessern. Die Loop-Filter-Einheit kann dabei einen oder mehrere Filter anwenden, zum Beispiel zum Deblocken oder zum Unterdrücken von Rauschen.
Die Einheit zur Prädiktion führt eine Prädiktion des Blocks durch. Diese erfolgt zum Beispiel durch Inter-Prädiktion oder durch Inter-Prädiktion. Zur Durchführung der Inter-Prädiktion ist es notwendig, die Bewegungsvektoren zu bestimmen. Dies kann von der Einheit zur Bewegungsabschätzung durchgeführt werden. Die Abschätzung kann dabei erfolgen, indem die größte Übereinstimmung des Inhalts eines aktuellen Blocks des Bildes mit einem Bereich in einem bereits decodierten Referenzbild gefunden wird. Zum Beispiel kann dazu die Prädiktionsblockposition in einem Suchbereich des Referenzbildes verschoben werden und gemäß einem vorbestimmten Kostenkriterium die Position größter Übereinstimmung gefunden werden.
Sowohl ein Encoder als auch ein Decoder können ferner einen Zwischenspeicher für decodierte Bilder enthalten (decoded picture buffer, DPB). Dieser kann zum Beispiel durch einen Speicher realisiert sein, der Referenzbilder oder, im Allgemeinen, Referenzbilddaten beinhaltet. Der Zwischenspeicher kann dabei eingerichtet sein, einen oder mehrere vorhergefilterte Blocks zu speichern. Der Zwischenspeicher kann auch andere vorher gefilterte Blocks enthalten, wie zum Beispiel vorherige rekonstruierte und gefilterte Blocks des gleichen Bilds oder anderer Bilder (vorher rekonstruierte und/oder teilweise rekonstruierte Bilder). Der Zwischenspeicher kann auch einen oder mehrere ungefilterte rekonstruierte Blöcke speichern. Der High Efficiency Video Coding-Standard (HEVC) sowie der aufkommende Versatile Video Coding (WC) Standard basieren auf hybrider Codierung, in der eine Prädiktion und nachfolgender Codierung des Prädiktionsfehlers angewandt werden. Wie oben beschrieben kann eine Transformation den Prädiktionsfehlerblocks durchgeführt werden. Dabei kann zum Beispiel eine Separable Discrete Cosine Transformation (DCT-2) angewendet werden und die resultierenden transformierten Prädiktionsfehler c quantisiert, kodiert und an einen Empfänger übertragen werden.
Allerdings kann die Transformation die Datenrate erhöhen, was insbesondere bei Prädiktionsfehlerblöcken auftritt, deren Prädiktionsfehler eine geringe statistische Abhängigkeit bzw. Korrelation aufweisen. Aus diesem Grund kann ein gemischtes Verfahren verwendet werden, bei dem Prädiktionsfehlerblöcke hoher Korrelation vor der Quantisierung transformiert werden, wohingegen Prädiktionsfehlerblöcke geringer Korrelation ohne vorherige Transformation quantisiert werden.
Diese Vorgehensweise ist in Fig. 1 dargestellt, bei der der Prädiktionsfehlerblock r entweder durch die Einheit T zur Transformation einer Einheit Q zur Quantisierung zugeführt wird, oder einer Einheit Q zur Transformation ohne vorherige Transformation zugeführt wird. Diese Vorgehensweise ist im HEVC-Standard mit der Bezeichnung Transform Skip definiert und wird im aufkommenden VVC-Standard mit einigen Erweiterungen übernommen.
Eine Möglichkeit der Abschätzung der notwendigen Datenrate eines Prädiktionsfehlerblocks liefert die Annahme, dass die Prädiktionsfehler r mit deren Varianz or und der Quantisierungsschrittweite D eines Prädiktionsfehlerblocks einer Laplace-Verteilung folgen. Die Wahrscheinlichkeit für einen Prädiktionsfehler r kann somit geschätzt werden durch
Figure imgf000018_0001
Mit dieser Annahme der Wahrscheinlichkeit ergibt sich ein linearer Zusammenhang zwischen dem Betrag von r und dem Informationsinhalt l(r), der dem Logarithmus der Wahrscheinlichkeit P(r) folgt und die minimale Datenrate zur Codierung von rangibt:
Figure imgf000018_0002
Die Summe der Absolutwerte (Beträge) sämtlicher Prädiktionsfehler eines Prädiktionsfehlerblocks kann daher als Maß für die Datenrate verwendet werden, die benötigt wird, um den Prädiktionsfehlerblock zu codieren.
Im Folgenden wird die Summe aller Absolutwerte eines Prädiktionsfehlerblocks als AbsSum(r) bezeichnet und stellt eine Abschätzung der benötigten Datenrate zur Kodierung eines Prädiktionsblocks dar.
Fig. 2A ist eine Darstellung zweier beispielhafter Prädiktionsfehlerblöcke, wobei in Beispiel 1 ein Prädiktionsfehlerblock hoher Korrelation, in Beispiel 2 ein Prädiktionsfehlerblock niedriger Korrelation und in Beispiel 3 ein Fehlerblock mittlerer Korrelation dargestellt ist. Zusätzlich zeigt Fig. 2A die transformierten Prädiktionsfehlerblöcke für die drei Beispiele, wobei eine DCT-2 Transformation verwendet wurde. Des Weiteren zeigt Fig. 2A AbsSum für jeden Prädiktionsfehlerblock und jeden transformierten Prädiktionsfehlerblock.
Es ist erkennbar, dass für Beispiel 1 der Wert AbsSum durch die Transformation von 100 auf 20 verringert wird. Das bedeutet, durch die Anwendung der T ransformation kann die benötigte Bitrate deutlich verringert werden.
Im Gegensatz dazu zeigt Fig. 2A, dass der Wert AbsSum durch die Transformation des Prädiktionsfehlerblocks in Beispiel 2 von 20 auf 74 ansteigt. Die Transformation führt somit zu einer Erhöhung der benötigten Bitrate.
In Beispiel 3 verringert sich der Wert AbsSum durch Anwendung der Transformation wenig von 100 auf 94. Der Vorteil, d.h. die Verringerung der zur Codierung notwendigen Bitrate, der durch Anwendung der Transformation auf den Prädiktionsfehlerblock des Beispiels 3 ergibt, ist relativ gering.
Nach dem Verfahren einer Ausführungsform der vorliegenden Erfindung wird der Prädiktionsblock aufgeteilt in eine Linearkombination, die einen ersten Block n und einen zweiten Block GS enthält. Der zweite Block GS wird transformiert, um einen transformierten zweiten Block C2 zu erhalten. Nachfolgend wird der erste Block n und der transformierte zweite Block C2 codiert und kann an den Empfänger übertragen werden.
Dabei kann in einer vorteilhaften Ausführungsform der Prädiktionsblock r sich als Summe des ersten Prädiktionsblocks n und des zweiten Prädiktionsblocks GS ergeben: r = r1 + r2 In anderen Worten, die Summe aus ersten Prädiktionsfehlern des ersten Blocks und entsprechenden zweiten Prädiktionsfehlern des zweiten Blocks ergeben jeweils die Prädiktionsfehler des ursprünglichen Prädiktionsfehlerblocks.
Die obenerwähnte Summe ist eine elementweise Summe. Wenn Blöcke rt und r2 die gleiche Größe haben, gilt für jedes Element (i,j) des Prädiktionsblocks r folgendes: r(i,j ) = r^i.j) + r2(i,f), wobei r^i.j) und r2(i,j ) die jeweiligen Elemente des ersten und des zweiten Blocks sind, und / und j Indexe jeweils von Zeilen und Spalten der Blöcke sind. Fig. 2B zeigt im oberen Teil schematisch zwei gleich große Blöcke 210 und 220 und den resultierenden Prädiktionsblock 230, der durch die Summe der Blöcke 210 und 220 erhalten wird.
Der erste Block n und der zweiten Block GS müssen jedoch nicht die gleiche Größe haben. Wenn die zwei Blöcke unterschiedliche Größe haben, wird dabei eins oder mehrere Prädiktionsfehler (Elemente des Prädiktionsblocks) als eine Summe von einem nicht-null Element r^il.jl) des ersten Blocks und einem nicht-null Element r2(i2,j2) des zweiten Blocks berechnet. Fig. 2B zeigt im unteren Teil schematisch zwei unterschiedlich große Blöcke 240 und 250 und den resultierenden Prädiktionsblock 260, der durch die Summe der Blöcke 240 und 250 erhalten wird. Bezugszeichen 270 zeigt den Überlappungsbereich der beiden Blöcke, in dem diese jeweils Elemente haben. Der verbleibende Bereich 280 ist mit Werten der Elemente von Block 240 gefüllt. Die zentrale Position des überlappenden Teils 270 ist nur ein nicht einschränkendes Beispiel. Allgemein kann die Position des überlappenden Teils beliebig festgelegt werden. Für eine vereinfachte Implementierung kann es hilfreich sein, die Breitenverhältnisse und/oder die Höhenverhältnisse der beiden Blöcke so zu wählen, dass die Breite des großen Blocks ein ganzzahligen Vielfaches der Breite des kleinen Blocks entspricht und/oder die Höhe des großen Blocks ein ganzzahligen Vielfaches der Höhe des kleinen Blocks entspricht. Ferner kann es zur Vereinfachung der Implementierung dienen, die Positionierung des kleineren Blocks relativ zum größeren Block auf horizontale Positionen einzuschränken, die Vielfache der Breite des kleinen Blockes betragen und/oder auf vertikale Positionen einzuschränken, die Vielfache der Höhe des kleinen Blockes betragen.
Unterschiedliche Blockgrößen können unter Anderem dann von Bedeutung sein, wenn die Größe der Blöcke für die Transformation durchgeführt wird sich von der Größe der Blöcke unterscheidet, für die Prädiktion durchgeführt wird - anders gesagt: wenn die Transformationsblöcke andere Größe (wenigstens in einer der Dimensionen) aufweisen, als die Prädiktionsblöcke.
In einer beispielsweisen Ausführungsform kann der kleinere (250) der beiden Blöcke (240, 250) auf die Größe des größeren (240) der beiden Blöcke mit Nullen aufgefüllt werden. Dann kann die elementweise Summe von solchen gleich großen Blöcken wie oben erwähnt berechnet werden. Die vorliegende Erfindung ist auf keine besondere Umsetzung der Summe eingeschränkt. Wenn einer der zu summierenden Elemente den Wert Null hat, muss die Summe nicht, kann aber tatsächlich berechnet werden - beides führt zum gleichen Ergebnis.
Zusammenfassend, die Zerlegung des Prädiktionsblocks r in die Blöcke n und GS wird so durchgeführt, dass die elementweise Summe der Blöcke n und GS wenigstens eine Summe von Elementen enthält, die beide von Null verschieden sind.
In einer Ausführungsform kann der erste Block n den Anteil der Prädiktionsfehler des Prädiktionsfehlerblocks enthalten, der eine geringe statistische Abhängigkeit bzw. Korrelation aufweist. In ähnlicher Weise kann der zweite Block GS den Anteil der Prädiktionsfehler des Prädiktionsfehlerblocks enthalten, der eine größere statistische Abhängigkeit bzw. Korrelation aufweist. Insbesondere kann die statistische Abhängigkeit bzw. Korrelation der Prädiktionsfehler des ersten Blocks n geringer sein als die statistische Abhängigkeit bzw. Korrelation der Prädiktionsfehler des zweiten Blocks GS.
Die vorliegende Erfindung ist jedoch nicht auf die Summe des ersten Blocks und des zweiten Blocks als Linearkombination beschränkt.
Gemäß einer Ausführungsform kann sich der Prädiktionsfehlerblock als Summe dreier Summanden ergeben. r = rt + r2 + d
Der dritte Summand d kann zum Beispiel Quantisierungsfehler enthalten, die aus einer Quantisierung des ersten Blocks und/oder des zweiten Blocks folgen.
Gemäß einer Ausführungsform kann der zweite Block nochmals aufgeteilt werden in einen neuen zweiten Block und einen dritten Block, wobei der neue zweite Block und der dritte Block transformiert werden, jedoch mit unterschiedlichen T ransformationen. Zum Beispiel kann der neue zweite Block entsprechend DCT-2 transformiert werden und der dritte Block entsprechend DCT- 8 oder DST-7. Die Aufteilung des zweiten Blocks in den neuen zweiten Block und den dritten Block kann dabei durch Minimierung der Absolutwerte der jeweils transformierten Blöcke (neuer zweiter Block und dritter Block) erfolgen.
Fig. 3 zeigt dieses Vorgehen anhand des Beispiels 3 aus Fig. 2A. Der Prädiktionsfehlerblock r wird in einen ersten Block n und einen zweiten Block GS zerlegt, wobei die Summe der Prädiktionsfehler im ersten Block n und der entsprechenden Prädiktionsfehler im zweiten Block die Prädiktionsfehler des ursprünglichen Prädiktionsfehlerblocks r ergeben. Der zweite Prädiktionsfehlerblock G wird transformiert, um den transformierten zweiten Prädiktionsfehlerblock C2 zu erhalten. Aus der Fig. 3 wird ersichtlich, dass die Summe der Werte AbsSum für n und C2 40 ergibt. Dieser Wert liegt deutlich unterhalb des Wertes AbsSum des Prädiktionsfehlerblocks r als auch unterhalb des Wertes AbsSum des transformierten Prädiktionsfehlerblocks, wie er für Beispiel 3 in Fig. 3 durch die Transformation ohne Zerlegung erreicht wird.
Das bedeutet, durch Zerlegung eines Prädiktionsfehlerblocks in zwei Blöcke, deren Korrelation der Prädiktionsfehler sich unterscheiden, und Transformation nur des Blocks höherer Korrelation kann die zur Codierung notwendige Datenrate signifikant reduziert werden.
Ein Encoder gemäß einer Ausführungsform ist in Fig. 4 dargestellt. Die Funktionen der Einheiten entsprechen den Einheiten des in Fig. 1 dargestellten Encoders mit der gleichen Bezeichnung. Der Encoder der Ausführungsform unterscheidet sich von dem in Fig. 1 dargestellten Encoder insbesondere durch die zusätzliche Einheit D zur Zerlegung des Prädiktionsblocks rin den ersten Block n und den zweiten Block G . Der erste Block n wird direkt der Einheit Q zur Quantisierung zugeführt, wohingegen der zweite Block G zunächst von der Einheit T zur Transformation transformiert wird, bevor der transformierte zweite Block c der Einheit Q zum Quantisieren zugeführt wird. Beide quantisierten Blöcke, das heißt, der direkt quantisierte Block n sowie der quantisierte transformierte Block c‘ werden von der Einheit EC zur Entropiecodierung codiert. Der rücktransformierte Prädiktionsfehlerblock r‘ ergibt sich als Summe des rücktransformierten ersten Blocks r‘2 und des quantisierten ersten Blocks. Vor der Summierung kann eine inverse Quantisierung beider Blöcke durchgeführt werden, wie oben beschrieben. Die Einheit D kann aber auch so arbeiten, dass jeweils entweder n oder G Null ist. Sie schließt damit den in Fig. 1 dargestellten Encoder ein.
Ein Beispiel einer möglichen Implementierung der Zerlegung des Prädiktionsfehlerblocks an Prädiktionsfehlerwerten ist Fig. 5 und Fig. 6 dargestellt.
In Schritt S100 wird ein Prädiktionsfehlerblock, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält, bestimmt. In Schritt S200 wird der bestimmte Prädiktionsfehlerblock in eine Linearkombination erlegt, die einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler enthält. In Schritt S300 wird der zweite Block transformiert und in Schritt S400 wird der erste Block und der transformierte zweite Block codiert. Die Codierung des ersten Blocks und des zweiten Blocks kann eine Quantisierung derselben beinhalten. Fig. 6 zeigt beispielhaft eine spezifische Implementierung der Zerlegung des Prädiktionsfehlerblocks in den ersten und den zweiten Block. In Fig. 6 sowie der folgenden Beschreibung bezeichnen n und GS sämtliche Prädiktionsfehler, jeweils des ersten Blocks und des zweiten Blocks; ry und ry bezeichnen jeweils die einzelnen Prädiktionsfehler des ersten und des zweiten Blocks; C2 bezeichnet sämtliche (transformierte) Prädiktionsfehler eines transformierten zweiten Block und Cy dessen einzelne (transformierte) Prädiktionsparameter; n bezeichnet einen Iterationsparameter und N dessen Grenzwert, das heißt, die Anzahl der durchgeführten Iterationen. Ferner wird ein Parameter k festgelegt. Bevorzugt ist beispielsweise N im Bereich von 5 bis 10 und k im Bereich von 1 bis 2. In Schritt S201 werden Anfangswerte der ersten Prädiktionsfehler des ersten Blocks gleich den Prädiktionsfehler des Prädiktionsblocks gesetzt und Anfangswerte der zweiten Prädiktionsfehler des zweiten Blocks gleich Null gesetzt werden. Zudem wird der Iterationsparameter n auf Null gesetzt.
In Schritt S202 wird ein Gewicht w basierend auf dem Iterationsparameter n bestimmt. In Schritt S203 wird ein erster Mittelwert und eine erste Standardabweichung der ersten Prädiktionsfehler des ersten Blocks bestimmt.
In Schritt S204 werden Prädiktionsfehler des ersten Blocks, für die der Absolutwert der Differenz zum ersten Mittelwert geringer als die erste Standardabweichung multipliziert mit k ist, auf null aktualisiert. Zudem werden erste Prädiktionsfehler des ersten Blocks, für die der Absolutwert der Differenz zum ersten Mittelwert nicht geringer als die erste Standardabweichung multipliziert mit k ist, auf eine gewichtete Summe aus den jeweiligen ersten Prädiktionsfehlern und dem ersten Mittelwert aktualisiert. Die Gewichte sind dabei das vorher bestimmte Gesicht w und (w-1).
In Schritt S205 werden die zweiten Prädiktionsfehler durch Bilden der Differenz aus den Prädiktionsfehlern des Prädiktionsfehlerblocks und den aktualisierten Prädiktionsfehlern des ersten Prädiktionsblocks aktualisiert.
In Schritt S206 wird der aktualisierte zweite Block transformiert, um den transformierten zweiten Block C2 zu erhalten.
In Schritt S207 wird ein zweiter Mittelwert und eine zweite Standardabweichung der zweiten Prädiktionsfehler des transformierten zweiten Blocks bestimmt. In Schritt S208 werden Prädiktionsfehler des transformierten zweiten Blocks, für die der Absolutwert der Differenz zum zweiten Mittelwert geringer als die zweite Standardabweichung multipliziert mit k ist, auf null aktualisiert. Zudem werden zweite Prädiktionsfehler des zweiten Blocks, für die der Absolutwert der Differenz zum zweiten Mittelwert nicht geringer als die zweite Standardabweichung multipliziert mit /eist, auf eine gewichtete Summe aus den jeweiligen zweiten Prädiktionsfehlern und dem zweiten Mittelwert aktualisiert. Die Gewichte sind dabei das vorher bestimmte Gewicht w und (w-1).
In Schritt S209 wird ein aktualisierter zweiter Block durch Rücktransformation des aktualisierten transformierten zweiten Blocks erhalten.
In Schritt S205 werden die ersten Prädiktionsfehler durch Bilden der Differenz aus den Prädiktionsfehlern des Prädiktionsfehlerblocks und den aktualisierten Prädiktionsfehlern des zweiten Prädiktionsblocks aktualisiert.
In Schritt S211 wird der Iterationsparameter um 1 erhöht.
Wenn in Schritt S212 festgestellt wird, dass der Iterationsparameter geringer als ein vorbestimmter Grenzwert ist, wird eine nächste Iteration, beginnend mit Schritt S202 eingeleitet. Ist der Iterationsparameter jedoch gleich oder größer als der Grenzwert, ist die Zerlegung des Prädiktionsblocks abgeschlossen.
In anderen Worten, in dem dargestellten Zerlegungsverfahren wird die Zerlegung iterativ durchgeführt, wobei bei jedem Iterationsschritt ein Gewicht erhöht wird, das zur Aktualisierung der ersten Prädiktionsfehler und der zweiten Prädiktionsfehler verwendet wird.
Das in Fig. 6 gezeigte Verfahren beinhaltet eine Minimierung der Summe der Absolutwerte der ersten Prädiktionsfehler des ersten Blocks sowie eine Minimierung der Summe der Absolutwerte der transformierten Prädiktionsfehler des transformierten zweiten Blocks.
Das Verfahren der vorliegenden Erfindung ist jedoch nicht auf das dargestellte Verfahren zur Zerlegung des Prädiktionsparameters beschränkt. Vielmehr können andere Verfahren angewendet werden.
Zum Beispiel könnte die Summe der Absolutwerte der ersten Prädiktionsfehler des ersten Blocks und die Summe der Absolutwerte der zweiten Prädiktionsfehler des zweiten Blocks durch ein nichtlineares Optimierungsverfahren verwendet werden. Beispielsweise könnte auch die Summe der Betragsquadrate mit Hilfe einer Anpassung nach dem Verfahren der nichtlinearen kleinsten mittleren Fehlerquadrate (non-linear least mean square) minimiert werden. Dabei kann beispielsweise die Nebenbedingung gelten, dass die Summe des ersten Blocks und des zweiten Blocks die Prädiktionsfehler des Prädiktionsfehlerblocks ergeben.
Fig. 7A zeigt ein Beispiel des Ergebnisses der Zerlegung nach dem in Fig. 6 dargestellten Verfahren mit insgesamt sieben Iterationen (N=7) und k=1 für den Prädiktionsfehlerblock des Beispiels 3 in Fig. 2A. Aus der Darstellung wird deutlich, dass die Summe der Werte AbsSum für den ersten Block und den transformierten zweiten Block nach der Zerlegung geringer ist als der Wert AbsSum des direkt transformierten Prädiktionsfehler r, so dass AbsSum(ri) + AbsSum(C2) < AbsSum(c) gilt.
Fig. 7B zeigt ein weiteres Beispiel eines Ergebnisses der Zerlegung nach dem in Fig. 6 dargestellten Verfahren mit sieben Iterationen und einem anderen Beispiel des Prädiktionsfehlerblocks r. Wie der Figur zu entnehmen ist, liefert die direkte Transformation des Prädiktionsfehlerblocks reinen transformierten Prädiktionsfehlerblock c mit einem Wert AbsSum von 47. Der erste Block und der transformierte zweite Block nach der Zerlegung weisen Werte AbsSum von 32 bzw. 18.8 auf. In Summe ergibt sich somit ein Wert AbsSum, der durch die Zerlegung und die anschließende Transformation des zweiten Blocks erreicht wird, von 50.8. Dieser Wert liegt jedoch über dem Wert AbsSum des direkt transformierten Prädiktionsfehlerblocks c, d.h. AbsSum(n) + AbsSum(C2) > AbsSum(c).
Dies bedeutet, dass die Zerlegung und anschließende Transformation des zweiten Blocks nicht in sämtlichen möglichen Fällen zu einer Reduktion der zur Codierung notwendigen Datenrate führt. Aus diesem Grund kann in einer bevorzugten Ausführungsform die Zerlegung und anschließende Transformation des zweiten Blocks dann ausgeführt werden, wenn dadurch eine Reduktion der Datenrate erreicht wird.
Zum Beispiel können die Lagrange-Kosten der Datenrate und der mittlere quadratische Rekonstruktionsfehler für die folgenden drei Codierungsmöglichkeiten bestimmt werden:
• Codierung von n und C2, wie durch den Zerlegungsalgorithmus bestimmt,
• Codierung von n = rund C2 = 0
• Codierung von n = 0 und C2 als Ergebnis der Transformation von GS=G.
Aus den drei Codierungsmöglichkeiten kann diejenige ausgewählt werden, deren Lagrange- Kosten am niedrigsten ist. Ein quantisierter Prädiktionsfehlerblock enthält oft quantisierte Elemente (Prädiktionsfehler oder transformierte Prädiktionsfehler), die sämtlich Null sind. Diese Information kann codiert werden unter Verwendung eines binären Entscheidungsbaums (binary decision tree). Fig. 8 zeigt einen solchen binären Entscheidungsbaum gemäß einer bevorzugten Ausführungsform für die möglichen vier Kombinationen der Prädiktionsfehler des ersten Blocks n und des transformierten zweiten Blocks C2. Dieser Entscheidungsbaum basiert auf dem Entscheidungsbaum, der nach im aufkommenden Standard WC (Bross et al. Siehe oben) verwendet wird. Blöcke, die mindestens ein Element (Prädiktionsfehler) aufweisen, das ungleich Null ist, werden Entropie-codiert. Die dünnen Linien in Fig. 8 zeigen den Entscheidungsbaum nach dem aufkommenden VVC-Standard, wohingegen die fetten Linien eine Erweiterung nach einer bevorzugten Ausführungsform zeigen.
Das oben beschriebene Verfahren wurde in das Testmodell VTM-8.0 (Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 und ISO/I EC JTP 1/SC 29/WG 11, „VTM-8.0“, https://vcgit.hhi. fraunhofer.de/jvet/VVCSoftware_VTM/-/tags/VTM-8.0, 2020) implementiert und die durchschnittliche Reduktion der Datenrate für verschiedene Testsequenzen mit gleichem Luminanz-PSNR (peak signal-t-noise ratio) entsprechend üblicher Testmodellbedingungen (F. Bossen et al.: „JVET common test conditions and Software reference configurations for SDR Video“, Document JVET-N1010, 14. Meeting of the Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 und ISO/I EC JTC 29/WG 11, Genf, 2019) gemessen. Tabelle 1 gibt eine Übersicht der durchschnittlichen Datenratenreduktion in %. Die Sequenzen stellen dabei vorgegebene Videosequenzen dar, die üblicherweise zu Testzwecken der Codierung verwendet werden. Im Modus „All Intra“ werden für sämtliche Einzelbilder der Videosequenz ausschließlich Intra-Prädiktionen durchgeführt, wohingegen im Modus „Random Access“ Bewegungskompensation durch Inter-Prädiktion mit Bezug auf entsprechenden Referenzbilder durchgeführt werden kann.
Tabelle 1: Durchschnittliche Datenratenreduktion in %
Figure imgf000026_0001
Figure imgf000027_0001
Aus Tabelle 1 ist ersichtlich, dass das Verfahren der vorliegenden Erfindung für sämtliche Sequenzen eine Reduktion der Datenrate ermöglicht. Die Reduktion der benötigten Datenrate liegt in den angegebenen Beispielen bei bis zu 1,39%.
Fig. 9 zeigt ein Decodierverfahren nach einer Ausführungsform. In Schritt S500 wird ein Bitstrom, der einen codierten ersten Block erster Prädiktionsfehler und einen codierten zweiten Block zweiter Prädiktionsfehler enthält, erhalten. In Schritt S600 werden der erste Block und der transformierte zweite Block decodiert. Nachfolgend wird in Schritt S700 der transformierte zweite Block rücktransformiert. In Schritt S800 wird ein Prädiktionsfehlerblock, welcher Prädiktionsfehler eines Blocks von Bilddaten enthält, durch eine Linearkombination bestimmt, wobei die Linearkombination den ersten Block und den rücktransformierten zweiten Block enthält.
Beispielsweise kann die Linearkombination durch eine Summe der Prädiktionsparameter des ersten Blocks und der Prädiktionsparameter des rücktransformierten zweiten Blocks erfolgen. Die vorliegende Erfindung ist jedoch nicht darauf beschränkt, und es kann zum Beispiel eine gewichtete Summe zur Linearkombination genutzt werden.
Ein Decoder gemäß einer Ausführungsform ist eingerichtet, das in Fig. 9 dargestellte Verfahren auszuführen. Insbesondere umfasst der Decoder eine Einheit zum Erhalten eines Bitstroms, der den codierten ersten Block erster Prädiktionsfehlerdaten und einen codierten transformierten zweiten Block zweiter Präfiktionsfehler enthält. Ferner umfasst der Decoder eine Einheit zum Decodieren des ersten Blocks und des transformierten zweiten Blocks. Die Einheit zum Decodieren kann der Einheit zum Codieren eines Encoders entsprechen, wobei eine inverse zu der Codierung inverse Decodierung ausgeführt wird. Der Decoder umfasst ferner eine Einheit zum Rücktransformieren des transformierten zweiten Blocks, entsprechend der Einheit IT zur inversen Transformation des Encoders. Zudem umfasst der Decoder eine Einheit zum Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält, durch eine Linearkombination, die den ersten Block und den zweiten Block enthält. Die Einheit zum Bestimmen des Prädiktionsfehlerblocks führt somit eine Prozessierung durch, die die Zerlegung des Prädiktionsfehlerblocks in den ersten Block und den zweiten Block, die vom Encoder durchgeführt wird, rückgängig macht.
Ein erfindungsgemäßer Encoder wurde mit Bezug auf Fig. 4 beschrieben. Die vorliegende Erfindung ist jedoch nicht auf einen solchen Encoder beschränkt. Fig. 10 zeigt eine weitere Ausführungsform eines Encoders. Die Funktionen der Einheiten entsprechen den Einheiten der in Fig. 1 und Fig. 4 dargestellten Encoder mit der gleichen Bezeichnung. Der Encoder gemäß Fig. 10 unterscheidet sich von dem in Fig. 4 dargestellten Encoder insbesondere durch die zusätzliche Möglichkeit, unterschiedliche Quantisierungseinheiten Q1 und Q2 für den ersten Block n und den zweiten Block GS. Der erste Block n wird direkt der Einheit Q1 zu der ersten Quantisierung zugeführt, wohingegen der zweite Block GS zunächst von der Einheit T zur Transformation transformiert wird, bevor der transformierte zweite Block c der zweiten Einheit Q2 zum Quantisieren zugeführt wird. Beide quantisierten Blöcke, das heißt, der direkt durch die erste Quantisierungseinheit Q1 quantisierte Block n sowie der durch die zweite Quantisierungseinheit quantisierte transformierte Block c‘ werden von der Einheit EC zur Entropiecodierung codiert. Der rücktransformierte Prädiktionsfehlerblock r‘ ergibt sich als Summe des rücktransformierten zweiten Blocks r und des quantisierten ersten Blocks. Vor der Summierung können die jeweiligen inversen Quantisierungen in jeweiligen inversen Quantisierungseinheiten Q1 1 und Q2 1 beider Blöcke durchgeführt werden. Eine inverse Quantisierung ist insbesondere dann durchzuführen, wenn die Quantisierung eine Skalierung und/oder einen Verschiebung (Offset) enthielt, welche bei der inversen Quantisierung rückgängig gemacht wird. Wenn die Quantisierung lediglich durch die Reduktion der Bittiefe durch Rundung der Prädiktionsfehler durchgeführt wird, ist eventuell keine inverse Quantisierung notwendig.
In anderen Worten, auch wenn in den obigen Abbildungen für die Codierung mit der Transformation und für die Codierung ohne Transformation die gleiche Einheit Q verwendet wurde, ist dies nicht zwingend notwendig. Vielmehr können auch unterschiedliche Quantisierer Q1 und Q2 verwendet werden, wie in Fig. 10 dargestellt, wobei beispielsweise Q1 an die Quantisierung des Signals angepasst ist, welches ohne Transformation codiert wird und Q2 an die Quantisierung des Signals angepasst ist, welches mit Transformation codiert wird. Die Unterscheide können beispielsweise in den Positionen der Repräsentativwerte liegen, die aufgrund unterschiedlicher Wahrscheinlichkeiten der jeweils zu quantisierenden Signale andere sein müssen. Durch die angepasste Quantisierung kann die Datenrate bei gleicher Qualität weiter reduziert werden. Die Anpassung kann beispielsweise die Wahrnehmungseigenschaften des menschlichen Auges ausnutzen, die sich unterscheiden, je nachdem ob eine Transformation verwendet wird oder nicht. Die Anpassung kann beispielsweise eine separat einstellbare Stufenbreite sein. Die Anpassung kann aber auch so sein, dass beispielsweise Q1 ein skalarer Quantisierer ist und Q2 ein Vektorquantisierer, oder umgekehrt. Da bei einer Codierung ohne Transformation oftmals nur ein von Null verschiedener Prädiktionsfehler in einem Block vorliegt, ist zur Quantisierung dieses Signals ein skalarer Quantisierer oftmals von ähnlicher Codierungseffizienz wie ein Vektorquantisierer und daher vorteilhafter. Bei einer Codierung mit Transformation liegen häufig mehrere von Null verschiedene Prädiktionsfehlerkoeffizienten in einem Block vor, sodass zur Quantisierung dieses Signals ein Vektorquantisierer oftmals eine höhere Codierungseffizienz aufweist. Darüber hinaus können die Quantisierer auch zustandsabhängig quantisieren und die Wahl der verwendeten Zustände kann sich unterscheiden. Darüber hinaus kann der Quantisierer Q1 noch abhängig davon gewählt werden, ob der Bitstrom nur den ersten Block enthält oder ob auch der zweite Block enthalten ist. In gleicher Weise kann auch der Quantisierer Q2 noch abhängig davon gewählt werden, ob der Bitstrom nur den zweiten Block enthält oder ob auch der erste Block enthalten ist. Dies kann zu einer weiteren Datenratenreduktion bei gleicher Qualität führen, da eine zustandsabhängige Quantisierung immer effizienter ist als eine zustandsunabhängige Quantisierung.
Fig. 11 zeigt eine weitere beispielhafte Ausführungsform, in welcher die (ggf. quantisierten) Abtastwerte /V des ersten Blocks auf die Rekonstruktion s‘ addiert werden, die sich nach der Loop- Filterung ergibt. Bei der Verwendung mehrerer Loop-Filter können die (ggf. quantisierten) Abtastwerte /V des ersten Blocks auch auf die Rekonstruktion addiert werden, die sich nach der Anwendung einer Teilmenge der Loop-Filter ergibt.
Fig. 12 zeigt eine weitere beispielhafte Ausführungsform, mit einem zusätzlichen Schalter S. In dieser Ausführungsform werden die (ggf. quantisierten) Abtastwerte des ersten Blocks r/ adaptiv entweder zu den rücktransformierten Koeffizienten r 2 (Schalterposition 2) oder zu der Rekonstruktion s‘ (Schalterposition 1) addiert, die sich nach der Loop-Filterung ergibt, bei der Verwendung mehrerer Loop-Filter, entsprechend auch nach der Anwendung einer Teilmenge der Loop-Filter.
In Figuren 11 und 12 sind allgemein Quantisierungseinheiten Q1 und Q2 gezeigt. Wie bereits mit Bezug auf Fig. 4 beschrieben, können jedoch die Quantisierungseinheiten Q1 und Q2 gleich sein, d.h. die Bezeichnungen Q1 und Q2 in Figuren 11 und 12 können durch die Bezeichnung Q ersetzt werden. Sie können auch alle weiteren Eigenschaften aufweisen, die im Zusammenhang mit Fig. 4 beschrieben wurden.
Fig. 13 zeigt eine beispielhafte Ausführungsform eines Decoders, entsprechend den in der Figuren 4 und 10 gezeigten Encoder. Der Decoder erhält (z.B: empfängt) den Bitstrom b und decodiert die codierten Bilddaten, um die empfangenen Bilddaten zu erhalten.
Der Decoder umfasst dabei eine Einheit ED zur Entropie-Decodierung, eine Einheit IT zur inversen Transformation und eine Einheit zur Rekonstruktion. Zudem umfasst der Decoder eine Loop-Filter-Einheit LF, eine Einheit zur Prädiktion P und, unter Umständen, eine Einheit zur Bewegungsschätzung. Die Einheit zur inversen Transformation, die Einheit zur Rekonstruktion und die Loop-Filter-Einheit können dabei in ihrer Funktion identisch zu den entsprechenden Einheiten des Encoders sein, wie bereits oben beschrieben.
Die Einheit zur Entropie-Decodierung ED ist eingerichtet, eine Entropie-Decodierung der in einem Bitstrom enthaltenen Daten durchzuführen, um quantisierte Bilddaten (z.B. Prädiktionsfehler), Codierungsparameter, Prädiktionsparameter, T ransformationsparameter, Quantisierungsparameter und/oder Loop-Filter-Parameter zu erhalten. Der Decoder kann dabei die Bilddaten blockbasiert erhalten.
Der Decoder kann keine (gezeigt in Fig. 13), eine oder zwei Einheiten (gezeigt in Fig. 14) zur inversen Quantisierung enthalten, die der Einheit IT zur inversen Transformation vorgeschaltet sein können. Diese führen eine inverse Verarbeitung zu der von der Einheiten Q zur Quantisierung des Encoders durch. Beispielsweise können die Einheiten Q 1 or QT1 und Q2 1 eine Skalierung und Verschiebung sowie eine Bittiefe-Erhöhung durchführen. Werden angepasste Quantisierer (Quantisierungseinheiten) verwendet, werden jeweils angepasste inverse Quantisierungen angewendet, z.B. angepasst an Q1 und Q2. Eine inverse Quantisierung ist oftmals die Überführung eines Parameters in einen Repräsentativwertes. Da dieser Schritt auch als Decodierung betrachtet werden kann, kann eine inverse Quantisierung auch als Teil der Entropie- Decodierung angesehen und durchgeführt werden.
Die Einheit IT zur inversen Transformation führt eine inverse Transformation der durch die Einheit T zur Transformation des Encoders durchgeführten Transformation durch. Damit werden Koeffizienten c‘ in die Prädiktionsfehler r2‘ rücktransformiert. Die Einheit zur Rekonstruktion kann eingerichtet sein, einen Prädiktionsblock s und einen decodierten ersten Block r1‘ und zweiten Block r2‘zu addieren, um einen rekonstruierten Block s‘zu erhalten.
Die Loop-Filter-Einheit LF filtert den rekonstruierten Block s‘, um einen gefilterten rekonstruierten Block zu erhalten. Die Loop-Filter-Einheit LF kann dabei einen oder mehrere Filter anwenden, zum Beispiel zum Deblocken oder zum Unterdrücken von Rauschen.
Die Einheit zur Prädiktion führt die Prädiktion des Blocks durch, ähnlich wie bereits oben beschrieben, für die Encoder und den Decoder. Dabei können die von dem Bitstrom decodierten oder beim Decoder bestimmten Bewegungsvektoren und/oder andere Bewegungsinformation (z.B. Referenzbild, Parameter einer affinen Transformation o.Ä.) verwendet werden.
Decoder welche den Encodern in Figuren 11 und 12 entsprechen, können durch Änderungen des Decoders in Fig. 13 ähnlich erhalten werden.
Weitere Modifikationen und Ausführungsformen sind möglich und können von Vorteil sein. Zum Beispiel kann die Entropiecodierung beziehungsweise Syntax des Bitstroms weiter verbessert werden.
In einem ersten Beispiel wird zuerst der Block der quantisierten Koeffizienten codiert. Dann wird der Block von (möglicherweise quantisierten) Abtastwerten in Abhängigkeit von dem Block der quantisierten Koeffizienten codiert. Entsprechend kann der Bitstrom die codierten Koeffizienten gefolgt von den codierten Abtastwerten enthalten. Eine solche Codierung erlaubt weitere Reduktion der möglichen Redundanz (Korrelation oder allgemein Abhängigkeit) zwischen dem Block der Koeffizienten und dem Block der Abtastwerte.
Zum Beispiel kann die Anzahl der quantisieren, von Null verschiedenen Koeffizienten gezählt werden. Die Anzahl kann dann mit einem vorbestimmten Schwellwert verglichen werden. Abhängig vom Ergebnis dieses Vergleichs wird der Code zur Codierung des Blockes von quantisierten Abtastwerten ausgewählt. Anders gesagt, wenn die gezählte Anzahl der von Null verschiedenen Koeffizienten den Schwellwert überschreitet, wird eine erste Codierung auf die Abtastwerte angewendet. Wenn die gezählte Anzahl der von Null verschiedenen Koeffizienten den Schwellwert nicht überschreitet, wird eine zweite Codierung auf die Abtastwerte angewendet. Die zweite Codierung kann dabei derart sein, dass sie alle quantisierten Abtastwerte zu Null annimmt.
Zum Beispiel kann der Schwellwert 0 sein. Die Abtastwerte können also mit einer ersten Codierung codiert werden, wenn nicht alle Koeffizienten Null sind und mit einer zweiten Codierung, wenn alle Koeffizienten Null sind. Der Code zur Codierung der Information kann also abhängig von Wahrheitsgehalt von „Alle quantisierten Abtastwerte des Blockes sind Null oder nicht“ ausgewählt werden. Der Schwellwert kann vorgegeben werden, zum Beispiel im Vorfeld der Codierung durch empirische Tests bestimmt. Der Schwellwert kann auch vom Encoder bestimmt und zum Decoder übertragen werden, z.B. pro Block, pro Bild oder pro Sequenz.
In einem zweiten Beispiel wird die Abhängigkeit umgekehrt: Es wird zuerst der Block der (quantisierten) Abtastwerte codiert. Dann wird der Block von quantisierten Koeffizienten in Abhängigkeit von dem Block der Abtastwerte codiert. Die Entscheidung bezüglich der Wahl eines ersten Codes oder eines zweiten Codes für die Codierung der quantisierten Koeffizienten kann ähnlich auf Basis eines vorbestimmten Schwellwertes erfolgen.
Möglicherweise verbleibende Redundanzen können beim Decoder (beim Decodieren) zum Überprüfen der richtigen Entropie-Decodierung verwendet werden. Einige Beispiele dazu sind im folgenden aufgelistet:
- Ausschluss einiger Konstellationen von quantisierten Abtastwerten abhängig von bereits quantisierten Koeffizienten, z.B. dürfen die quantisierten Abtastete nicht alle den gleichen Wert aufweisen, wenn der quantisierte DC-Koeffizient ungleich Null ist, und alle anderen quantisierten Koeffizienten gleich Null sind. Wenn der Decoder ermittelt, dass der DC- Koeffizient eines Blocks nicht Null ist und alle verbleibenden Koeffizienten des Blocks Null sind, und zugleich alle quantisierten Abtastwerte den gleichen Wert haben, gibt der Decoder eine Fehlermeldung aus. Der Decodierfehler kann dann auf eine übliche / bekannte Art und Weise behandelt werden (Fehlerverdeckung durch Interpolation o.Ä.).
Eine mögliche beispielsweise Alternative dazu ist die folgende: Wenn der Decoder ermittelt, dass der DC-Koeffizient eines Blocks nicht Null ist und alle verbleibenden Koeffizienten des Blocks Null sind, dann werden für den Fall, dass alle quantisierten Abtastwerte den gleichen Wert haben, keine Codeworte bereitgestellt, da dieses Ereignis nicht auftreten kann. Hierdurch kann Datenrate eingespart werden. In dieser weise wird die Redundanz beseitigt anstatt für das Überprüfen genutzt zu werden.
- Zur effizienteren redundanzmindernden Codierung können die gültigen Konstellationen der quantisierten Abtastwerte, d.h. die Konstellationen, für die auch Codeworte bereitgestellt werden, dahingehend eingeschränkt werden, dass benachbarte quantisierte Abtastwerte unterschiedliche Werte und / oder unterschiedliche Vorzeichen aufweisen, was mit geringer Korrelation verbunden ist. Hierdurch können Codeworte eingespart werden für Konstellationen, für die die Transformation oftmals effizienter ist. Dabei kann „0“ als separates Vorzeichen zu „+“ und
Figure imgf000033_0001
behandelt werden. Eine Einschränkung könnte bewirken, dass nur für Konstellationen von quantisierten Abtastwerten Codeworte bereitgestellt werden, bei denen alle Paare von benachbarten Abtastwerten (z.B. benachbart oben und links in der üblichen Codier- und Decodierreigenfolge, oder andere Nachbarn je nach der Codier- und Decodierreihenfolge) im Block stets unterschiedliche Werte aufweisen. Eine andere Einschränkung könnte bewirken, dass nur für Konstellationen von quantisierten Abtastwerten Codeworte bereitgestellt werden, bei denen alle Paare von benachbarten Abtastwerten stets eines der Vorzeichenpaare „+ / -“, „- / +“, „- / 0“ , „0 / +“, „0 / -“ , „+ / 0“ und „0 / 0“ aufweisen, wobei „0“ als separates Vorzeichen zu „+“ und
Figure imgf000033_0002
behandelt wird.
Weitere beispielsweise Ausführungsformen sind in Figuren 15 bis 17 dargestellt.
Figuren 15 bis 17 zeigen Decodierung, bei welcher es möglich ist direkt in dem final rekonstruierten Bild (d.h. nach der Loopfilterung LF) an ausgewählten Positionen das Bildsignal abtastwertweise durch Addition (Dazu-Addieren) 151 von r1’ zu korrigieren. Damit ist es beispielsweise möglich, direkt an Blockgrenzen verbleibende subjektiv möglicherweise störende Quantisierungsfehler noch zu korrigieren. Eine Codierung der Positionen, für die quantisierte Abtastwerte r1’ addiert werden, kann abhängig von der Grenze zwischen zwei Blöcken erfolgen und/oder abhängig davon, mit welchen Parametern ein Loopfilter angewendet wurde (Beispielsweise, ob Deblocking an oder ausgeschaltet ist). Zur Positionsbeschreibung kann der Abstand zur Blockgrenze verwendet werden.
Figuren 15 bis 17 unterscheiden sich in der Anwendung der inversen Quantisierung. In Fig. 15 ist ein Decoder dargestellt, welcher keine inverse Quantisierung (z.B. Skalierung und/oder Offset) erfordert. In Fig. 16 ist ein Decoder dargestellt, welcher die decodierten Abtastwerte und die decodierten Koeffizienten mit jeweiligen inversen Quantisierern Q1 1 und Q2 1 invers quantisiert (dequantisiert). Umsetzungen sind möglich, in welchen z.B. nur die Koeffizienten invers quantisiert werden. Fig. 17 zeigt ein Beispiel in welchem zusätzlich die quantisierten Abtastwerte r1’ elementweise oder blockweise noch in r1a’ und r1b’ zerlegt vorliegen. Der Teil r1a’ wird vor der Loopfilterung LF addiert, der Teil r1b’ nach der Loopfilterung LF. Hierdurch können die Vorteile aus Fig. 13 und Fig. 15 bzw. aus Fig. 14 und Fig. 16. vereint werden. Die Zerlegung von r1’ in r1a’ und r1b’ kann einer festen Regel folgen, z.B. r1a’ = r1b’ = 0.5 x r1’ oder ähnlich. Die Aufteilung kann aber auch vom Encoder geschätzt und zum Decoder übertragen werden. Dabei kann der Encoder die Wirkung des einen oder mehrerer LF bei der Schätzung berücksichtigen. Die Zerlegung könnte beispielsweise unter Minimierung der Langrange’schen Kosten aus mittlerem quadratischen Rekonstruktionsfehler und erforderlicher Datenrate gewählt werden. Die Information, ob der Bitstrom den ersten Block und den transformierten zweiten Block enthält, kann durch einen Encoder durch Einfügen eines Indikators in den Bitstrom angezeigt werden. Auf der Decoder-Seite kann auf Grundlage des Indikators bestimmt werden, dass (ob) der Bitstrom den ersten Block und den transformierten zweiten Block enthält.
Gemäß einer Ausführungsform ist der Indikator durch eine codierte Binärinformation im Bitstrom realisiert. In einer nicht einschränkender Ausführungsform kann die Binärinformation ein Bit sein. Die Codierung kann aber auch eine binäre arithmetische Codierung sein, wie sie beispielsweise HEVC oder WC verwendet. Der Indikator kann demnach gemäß der Ausführungsform zwei Werte anzeigen, von denen einer anzeigt, dass der Bitstrom den ersten Block und den transformierten zweiten Block enthält (In Fig. 8 dargestellt durch „Mindestens ein r‘u F 0“ und „Mindestens ein C2,, F 0 “), und der andere anzeigt, dass der Bitstrom den ersten Block und nicht den transformierten zweiten Block enthält (In Fig. 8 dargestellt durch „Mindestens ein r‘u F 0“ und „Alle c 2,/ = 0“).
In einer anderen Ausführungsform ist der Indikator in der Lage, mehr als zwei Werte anzuzeigen. Dadurch können mehrere Codierverfahren angezeigt werden. Beispielsweise kann der Indikator durch zwei Bits oder zwei codierte binäre Informationen implementiert sein und somit vier Werte annehmen. Diese vier Werte können vier Codierverfahren zugeordnet sein und anzeigen, dass
• der Bitstrom den ersten Block und den transformierten zweiten Block enthält,
• der Bitstrom nur den ersten Block enthält, · der Bitstrom nur den transformierten zweiten Block enthält, und/oder
• der Bitstrom weder den ersten Block noch den transformierten zweiten Block enthält.
Der Encoder kann diese Seiteninformation (side Information) Entropie-codieren, zum Beispiel im Rahmen einer kontextadaptiven arithmetischen Codierung, die auch binär sein kann, oder einer anderen Codierung mit Codewörtern variabler oder fester Länge. Gemäß einer bevorzugten Ausführungsform werden einer oder mehrere Indikatoren in den Bitstrom eingefügt, die anzeigen, ob die oben beschriebenen Verfahren einschließlich der Zerlegung des Prädiktionsfehlerblocks in den ersten Block und den zweiten Block angewendet wurden. Insbesondere kann ein Verfahren einer Ausführungsform in hierarchischer Weise ein- bzw. ausgeschaltet werden, zum Beispiel für eine Videosequenz, einzelne Bilder, einzelne Bildbereiche (wie Slices, Tiles oder Bricks) oder einzelne Blöcke. Dies kann eine effizientere Codierung der erforderlichen Seiteninformation mit geringer Datenrate ermöglichen.
Zum Beispiel kann ein erster Indikator anzeigen, ob eine ganze Videosequenz mit dem beschriebenen Verfahren codiert wird oder nicht und daher keine weiteren Indikatoren folgen oder ob für Teile der Videosequenz weitere Indikatoren folgen, die anzeigen, jeweils für einen entsprechenden Teil der Videosequenz, ob der Teil der Videosequenz mit dem beschriebenen Verfahren codiert wird oder nicht.
Wenn der erste Indikator anzeigt, dass weitere Indikatoren folgen und damit nicht die gesamte Videosequenz mit dem beschriebenen Verfahren codiert wird, kann ein zweiter Indikator, zum Beispiel für jedes Bild, anzeigen, ob das beschriebene Verfahren zur Codierung des gesamten Bildes verwendet wird oder nicht und keine weiteren Indikatoren folgen, oder dass weitere Indikatoren folgen, die anzeigen können, ob jeweils ein Teil des Bildes mit dem beschriebenen Verfahren codiert werden oder nicht. In ähnlicher Weise können weitere Indikatoren folgen, wenn für Teilbereiche, wie zum Bespiel Slices, Tiles oder Bricks entweder das oben beschriebene Verfahren für den jeweiligen gesamten Teilbereich verwendet wird oder nicht.
In anderen Worten kann der Bitstrom einen oder mehrere Indikatoren enthalten, die in hierarchischer Weise anzeigen, ob entsprechende Teile von Bilddaten mit einem Verfahren gemäß einer Ausführungsform der vorliegenden Erfindung codiert werden oder nicht.
Die hierarchische Codierung kann in einer Ausführungsform separat für eine
Prädiktionsfehlercodierung nach Inter- und Intraprädiktion erfolgen. Sie kann auch separat für die Prädiktionsfehler der Luminanz und der beiden Chrominanzen erfolgen. Dadurch kann eine weitere Verbesserung der Codierungseffizienz erreicht werden.
Gemäß einer Ausführungsform werden die beschriebenen Verfahren mit Zerlegung des Prädiktionsfehlerblocks in den ersten Block und den zweiten Block abhängig von einer Größe des Prädiktionsfehlerblocks angewendet.
Zum Beispiel kann des Verfahren nur angewendet werden unter der Voraussetzung, dass die Breite des Prädiktionsfehlerblocks über einer gewissen Mindestbreite liegt. Das Verfahren kann zudem nur angewendet werden unter der Voraussetzung, dass die Höhe des Prädiktionsfehlerblocks übereiner gewissen Mindesthöhe liegt. Zum Beispiel kann das Verfahren nur angewendet werden, unter der Voraussetzung, dass sowohl die Breite des Prädiktionsfehlerblocks über einer Mindestbreite liegt und die Höhe des Prädiktionsfehlerblocks über einer Mindesthöhe liegt. Alternativ kann das Verfahren nur angewendet werden, unter der Voraussetzung, dass das Produkt aus der Breite des Prädiktionsfehlerblocks und der Höhe des Prädiktionsfehlerblocks über einer gewissen Grenze, z.B. einer Mindestfläche bzw. einer Mindestanzahl an Abtastpunkten/Pixel liegt.
Dadurch, dass das Verfahren nur dann angewendet wird, wenn der Prädiktionsblock eine gewisse Mindestgröße aufweist, wird die benötigte Datenmenge der Seiteninformation in Relation zur Datenmenge der Bilddaten gering gehalten. In anderen Worten, bei kleinen Blöcken ist die zusätzlich erforderliche Seiteninformation pro Bildpunkt hoch, bei großen Blöcken eher gering. Daher könnte vorzugsweise bei sehr kleinen Blöcken die Technik aus und bei großen Blöcken die Technik eingeschaltet werden. Die Mindestgröße, -breite, und/oder -fläche kann dabei zum Beispiel vorbestimmt sein (und evtl in einem Standard festgelegt sein), oder im Bitstrom signalisiert werden, zum Beispiel einmalig, pro Bild oder pro Bildgruppe oder pro Block.
Eine Zerlegung des Bildes in kleine Prädiktionsfehlerblöcke kann jedoch auch ein Indiz für eine ungenaue Prädiktion sein, bei der große, von Null verschiedene Prädiktionsfehler entstehen, für die die Codierung sehr effizient ist. Ferner ist die Aufteilung in den ersten Block und den zweiten Block für kleine Blöcke mit wenig Rechenaufwand und für große Blöcke mit hohem Rechenaufwand verbunden. Daher kann es auch vorteilhaft sein, dieses Verfahren nur für kleine Blöcke anzuwenden. Zum Beispiel kann des Verfahren nur angewendet werden unter der Voraussetzung, dass die Breite des Prädiktionsfehlerblocks unter einer gewissen Mindestbreite liegt. Das Verfahren kann zudem nur angewendet werden unter der Voraussetzung, dass die Höhe des Prädiktionsfehlerblocks unter einer gewissen Mindesthöhe liegt. Zum Beispiel kann das Verfahren nur angewendet werden, unter der Voraussetzung, dass sowohl die Breite des Prädiktionsfehlerblocks unter einer Mindestbreite liegt und die Höhe des Prädiktionsfehlerblocks unter einer Mindesthöhe liegt. Alternativ kann das Verfahren nur angewendet werden, unter der Voraussetzung, dass das Produkt aus der Breite des Prädiktionsfehlerblocks und der Höhe des Prädiktionsfehlerblocks unter einer gewissen Grenze, z.B. einer Mindestfläche bzw. einer Mindestanzahl an Abtastpunkten/Pixel liegt.
Im Allgemeinen, kann die erfindungsgemäße Zerlegung eines Blocks in eine Linearkombination zweier Blöcke nur auf Blöcke mit einer Größe aus einem vorbestimmten Bereich angewendet werden. Dieser Bereich kann durch eine Mindestgröße und/oder durch eine Maximalgröße bestimmt werden. Dabei kann die Größe durch die vertikale und/oder horizontale Maße des Blocks angegeben werden, oder durch die Fläche, z.B. durch die Anzahl von Abtastwerten.
Entsprechend einer weiteren Ausführungsform wird ein beschriebenes Verfahren mit Zerlegung des Prädiktionsfehlerblocks in den ersten Block und den zweiten Block abhängig von (evtl quantisierten) transformierten Prädiktionsfehler des transformierten Prädiktionsfehlerblocks angewendet. Nur wenn diese eine gewisse Eigenschaft aufweisen, enthält der Bitstrom einen oben beschrieben Indikator (siehe auch Fig. 8) oder enthält einen Block nicht transformierter Prädiktionsparameter, entsprechend oben beschriebener Verfahren. Mögliche Eigenschaften sind dabei:
• Der Vergleich der Anzahl der von Null verschiedenen (evtl quantisierten) transformierten Prädiktionsfehler mit einem Schwellwert genügt einer bestimmten Bedingung. Beispielsweise ist die Anzahl der von Null verschiedenen (evtl quantisierten) transformierten Prädiktionsfehler größer als ein Schwellwert, der auch von anderen Parametern abhängig sein kann, wie z.B. von den Blockeigenschaften, wie z.B. der Blockgröße, der Blockfläche oder einer Kantenlänge des Blockes.
• Die Positionen der von Null verschiedenen (evtl quantisierten) transformierten Prädiktionsfehler im Block genügen einer bestimmten Bedingung.
Zum Beispiel könnte die bestimmte Bedingung verlangen, dass die von Null verschiedenen (evtl quantisierten) transformierten Prädiktionsfehler außerhalb eines vorbestimmten Bereichs des transformierten Prädiktionsfehlerblocks liegen.
Der vorbestimmte Bereich kann in einer Ausführungsform zumindest den linken oberen Abtastwert bzw. Koeffizienten enthalten. Beispielsweise ist der vorbestimmte Bereich der linke obere Quadrant des transformierten Prädiktionsfehlerblocks. Die Bedingung könnte beispielsweise auch bestimmen, dass der DC-Koeffizient ungleich Null sein muss, der bei einer DCT den Gleichanteil darstellt.
Gemäß einer Ausführungsform beinhaltet der vorbestimmte Bereich einen niederfrequenten Bereich, d.h. wenn die von Null verschiedenen Werte außerhalb dieses Bereichs liegen, weist der Prädiktionsfehlerblock hochfrequente Anteile, bzw. eine hohe Variabilität der Prädiktionsfehler über den Prädiktionsfehlerblock, auf, die eine niedrige statistische Abhängigkeit der Prädiktionswerte impliziert, so dass eine Aufteilung des Prädiktionsfehlerblocks in den ersten Block und den zweiten Block zu einer Reduktion der Datenrate führt.
• Die Summe der Absolutwerte der (evtl quantisierten) transformierten Prädiktionsfehler liegt oberhalb einer vorgegebenen Grenze.
Ist eine oder mehrere der genannten Bedingungen erfüllt, kann davon ausgegangen werden, dass die (evtl quantisierten) transformierten Prädiktionsparameter hohe Werte aufweisen und damit eine ungenaue Prädiktion vorliegt. Dies würde eine hohe Datenrate zur Codierung des Prädiktionsfehlerblocks bedingen. In diesem Fall ist das Vorliegen eines von Null verschiedenen zweiten Prädiktionsfehlers mit geringen statistischen Abhängigkeiten sehr wahrscheinlich, so dass durch Anwendung der oben beschriebenen Verfahren die benötigte Datenrate reduziert werden kann. Zudem ist die relative Datenrate (pro Bildpunkt bzw. Abtastwert) zur Codierung der Indikatoren für eine solche Situation gering. Entsprechend einer Ausführungsform der vorliegenden Erfindung kann ein Indikator für einen Block auch entfallen, wenn der Bitstrom immer den ersten Block und immer den transformierten zweiten Block enthält. Durch diese Vorgehensweise kann die Datenrate für den Indikator eingespart werden. Hinzu kann lediglich eine kleine Verminderung der Qualität kommen, wenn einer der Blöcke nicht enthalten sein müsste (also komplett Null wäre), aber aufgrund dieser eingeführten Konvention nicht komplett Null sein darf und daher so modifiziert wird, dass er nicht komplett Null ist.
Entsprechend einer Ausführungsform der vorliegenden Erfindung werden ein, mehrere oder alle Indikatoren in Abhängigkeit von einem oder mehreren der folgenden Zustände codiert.
Zum Beispiel können die Indikatoren (der Indikator) in Abhängigkeit eines Indikators eines benachbarten Blocks der Bilddaten codiert werden. Zum Beispiel kann die Codewortlänge der Indikatoren (des Indikators) entsprechend der Codewortlänge der Indikatoren (des Indikators) des benachbarten Blocks eingestellt werden.
In einer Ausführungsform kann die Codierung der Indikatoren (des Indikators) basierend auf der Prädiktionsmethode des Prädiktionsblocks eingestellt werden. Zum Beispiel kann eine andere Codewortlänge der Indikatoren (des Indikators) eingestellt werden, anhängig davon ob eine Inter- Prädiktion oder eine Intra-Prädiktion erfolgt.
In einer Ausführungsform kann die Codierung der Indikatoren (des Indikators) basierend auf der Komponente des Bildsignals eingestellt werden. Zum Beispiel kann eine andere Codewortlänge der Indikatoren (des Indikators) eingestellt werden, anhängig davon ob eine Luminanz oder eine Chrominanz codiert wird.
In einer Ausführungsform können der erste Block und der transformierte zweite Block auch unterschiedliche Größen aufweisen. Die Kantenlängen des ersten und des zweiten Blockes sollten zur einfachen Verarbeitung jedoch möglichst ganzzahlige Vielfache voneinander sein. Beispielsweise kann die Blockgröße des ersten Blockes 4x4 Abtastwerte und die Blockgröße des transformierten zweiten Blockes 8x8 Koeffizienten aufweisen. Für jeden zweiten Block von 8x8 Koeffizienten würden entsprechend bis zu 4 erste Blöcke von jeweils 4x4 Abtastwerten anfallen, wenn diese untereinander nicht überlappend aber mit dem transformierten zweiten Block vollständig überlappend angeordnet werden. Entsprechend würden bis zu vier Indikatoren codiert werden. Die Erfindung nicht jedoch nicht auf diese spezifischen Blockgrößen beschränkt. In einer Ausführungsform können die Anzahl der von Null verschiedenen (ggf. quantisierten) Abtastwerte des ersten Blocks und die (ggf. quantisierten) Koeffizienten des transformierten zweiten Blocks beschränkt sein. Beispielsweise könnte eine Beschränkung fordern, dass nur der DC-Koeffizient ungleich Null sein darf. Da in diesen Fällen auch nur dieser Entropie-codiert werden muss, kann Datenrate eingespart werden.
In einer Ausführungsform müssen die (ggf. quantisierten) Abtastwerte des ersten Blocks Bedingungen untereinander erfüllen. Beispielsweise kann eine Bedingung sein, dass nicht alle Abtastwerte den gleichen Wert aufweisen dürfen, da ein solcher Block effizienter mit einer Transformation codiert werden könnte. Die Einführung solcher Bedingungen kann entsprechend Datenrate einsparen.
Gemäß einer Ausführungsform kann die Codierung der Indikatoren (des Indikators) basierend auf der Größe des Prädiktionsfehlerblocks eingestellt werden. Zum Beispiel kann eine andere Codewortlänge der Indikatoren (des Indikators) eingestellt werden, anhängig davon ob die Größe des Prädiktionsblocks über bzw. unter einer vorbestimmten Grenze liegt. Die Größe des Prädiktionsblocks kann sich dabei z.B. auf eine Breite, eine Höhe und/oder ein Produkt aus Höhe und Breite des Prädiktionsblocks beziehen.
Obwohl die Ausführungsformen der Erfindung basierend auf einer Codierung von Videodaten beschrieben wurden, ist die Erfindung nicht darauf beschränkt, sondern kann auch zur Codierung von unbewegten Bildern verwendet werden.
Ausführungsformen der vorliegenden Erfindung, zum Beispiel ein Encoder oder ein Decoder und deren Funktionen können in Hardware, Software, Firmware oder einer Kombination daraus implementiert sein. Wenn Ausführungsformen in Form von Software implementiert sind, können die Funktionen auf einem computerlesbaren Speichermedium gespeichert sein oder über einen Kommunikationskanal übertragen werden als Anweisungen oder Code, der von einer hardwarebasierten Prozessoreinheit ausgeführt wird. Zum Beispiel kann ein computerlesbares Speichermedium ein RAM, ROM, EEPROM, CD-ROM oder ein anderes optisches Speichermedium, ein magnetisches Speichermedium, Flash-Speicher, oder ein anderes Speichermedium sein, das verwendet werden kann, Programmcode in Form von Anweisungen zu speichern, so dass sie von einem Computer ausgelesen werden können.
Anweisung können von einem oder mehreren Prozessoren ausgeführt werden, wie zum Beispiel Digitalsignalprozessoren (DSP), allgemeine Mikroprozessoren, anwendungsspezifische integrierte Schaltkreise, programmierbare Logikgatter (Field Programmable Gate Array, FPGA), oder anderen integrierte oder diskrete Logikschaltungen. Entsprechend kann sich der Ausdruck „Prozessor“ auf eine der genannten Strukturen oder andere Strukturen beziehen, die geeignet sind, die oben beschriebenen Verfahren zu implementieren. Darüber hinaus können die beschriebenen Funktionalitäten in dafür vorgesehener Hardware- und/oder Softwaremodulen implementiert sein, die eingerichtet sind, Bilddaten zu codieren und/oder zu decodieren, auch in Rahmen eines kombinierten Codecs. Die Verfahren können auch in einem oder mehreren Schaltkreisen oder Logikelementen implementiert sein.
Zusammenfassend betrifft die vorliegende Erfindung Verfahren und Vorrichtungen zum Codieren von Bilddaten, wobei ein Prädiktionsfehlerblock in eine Linearkombination zerlegt wird. Der Prädiktionsfehlerblock enthält Prädiktionsfehler eines Blocks von Bilddaten. Die Linearkombination enthält dabei einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler. Der zweite Block wird transformiert und zusammen mit dem ersten Block codiert. Zudem betrifft die Erfindung Verfahren und Vorrichtungen zum Decodieren von Bilddaten, wobei ein Bitstrom einen ersten Block an Prädiktionsfehlern und einen transformierten zweiten Block zweiter Prädiktionsfehler enthält. Nach Rücktransformation des transformierten zweiten Blocks wird ein Prädiktionsfehlerblock durch eine Linearkombination bestimmt, die den ersten Block und den rücktransformierten zweiten Block enthält.

Claims

ANSPRÜCHE
1. Verfahren zum Codieren von Bilddaten, umfassend:
Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält;
Zerlegen des Prädiktionsfehlerblocks in eine elementweise Linearkombination, die einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler enthält, wobei wenigstens ein Prädiktionsfehler durch eine Linearkombination von einem ersten von Null verschiedenen Prädiktionsfehlerund eines zweiten von Null verschiedenen Prädiktionsfehler erhalten wird;
Transformieren des zweiten Blocks; und
Codieren des ersten Blocks und des transformierten zweiten Blocks.
2. Verfahren nach Anspruch 1, wobei die ersten Prädiktionsfehler untereinander geringere statistische Abhängigkeiten aufweisen als die zweiten Prädiktionsfehler.
3. Verfahren nach Anspruch 1 oder 2, wobei die ersten Prädiktionsfehler und die zweiten Prädiktionsfehler in Summe die entsprechenden Prädiktionsfehler des Prädiktionsfehlerblocks ergeben.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei der Prädiktionsfehlerblock, der erste Block und der zweite Block jeweils die gleiche Größe aufweisen.
5. Verfahren nach einem der Ansprüche 1 bis 4, wobei die Zerlegung des Prädiktionsfehlerblocks eine Minimierung einer Summe der Absolutwerte der ersten Prädiktionsfehler des ersten Blocks enthält.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei die Zerlegung des Prädiktionsfehlerblocks eine Minimierung einer Summe der Absolutwerte der transformierten Prädiktionsfehler des transformierten zweiten Blocks enthält.
7. Verfahren nach einem der Ansprüche 1 bis 6, ferner umfassend:
Einfügen des codierten ersten Blocks und des codierten transformierten zweiten Blocks in einen Bitstrom; und
Einfügen eines Indikators in den Bitstrom, der in der Lage ist, anzuzeigen, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält.
8. Verfahren nach einem der Ansprüche 1 bis 7, wobei der Indikator ferner in der Lage ist, anzuzeigen, dass der Bitstrom nur den codierten ersten Block, nur den codierten transformierten zweiten Block oder keinen des codierten ersten Blocks und des codierten transformierten zweiten Blocks enthält.
9. Verfahren zum Decodieren von Bilddaten, umfassend:
Erhalten eines Bitstroms, der einen codierten ersten Block erster Prädiktionsfehler und einen codierten transformierten zweiten Block zweiter Präfiktionsfehler enthält;
Decodieren des ersten Blocks und des transformierten zweiten Blocks; Rücktransformieren des transformierten zweiten Blocks; und
Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält, durch eine elementweise Linearkombination, die den ersten Block und den rücktransformierten zweiten Block enthält, wobei wenigstens ein Prädiktionsfehler durch eine Linearkombination von einem ersten von Null verschiedenen Prädiktionsfehler und eines zweiten von Null verschiedenen Prädiktionsfehler erhalten wird.
10. Verfahren nach Anspruch 9, wobei die Linearkombination eine Summe des ersten Blocks und des rücktransformierten zweiten Blocks enthält.
11. Verfahren nach Anspruch 9 oder 10, ferner umfassend:
Bestimmen, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält.
12. Verfahren nach einem der Ansprüche 8 bis 11, wobei der Bitstrom ferner einen Indikator enthält, der in der Lage ist, anzuzeigen, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält, und auf Grundlage des Indikators bestimmt wird, dass der Bitstrom den codierten ersten Block und den codierten transformierten zweiten Block enthält.
13. Verfahren nach ein Anspruch 12, wobei der Indikator ferner in der Lage ist, anzuzeigen, dass der Bitstrom nur den codierten ersten Block, nur den codierten transformierten zweiten Block oder keinen des codierten ersten
Blocks und des codierten transformierten zweiten Blocks enthält, die Linearkombination eine gewichtete Summe des ersten Blocks und des zweiten Blocks enthält, und
Gewichte der gewichteten Summe auf Grundlage des Indikators bestimmt werden.
14. Vorrichtung zum Codieren von Bilddaten, umfassend eine Einheit zum Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält; eine Einheit zum Zerlegen des Prädiktionsfehlerblocks in eine elementweise Linearkombination, die einen ersten Block erster Prädiktionsfehler und einen zweiten Block zweiter Prädiktionsfehler enthält, wobei wenigstens ein Prädiktionsfehler durch eine
Linearkombination von einem ersten von Null verschiedenen Prädiktionsfehler und eines zweiten von Null verschiedenen Prädiktionsfehler erhalten wird; eine Einheit zum Transformieren des zweiten Blocks; und eine Einheit zum Codieren des ersten Blocks und des transformierten zweiten Blocks.
15. Vorrichtung zum Decodieren von Bilddaten, umfassend eine Einheit zum Erhalten eines Bitstroms, der einen codierten ersten Block erster Prädiktionsfehler und einen codierten transformierten zweiten Block zweiter Präfiktionsfehler enthält; eine Einheit zum Decodieren des ersten Blocks und des transformierten zweiten Blocks; eine Einheit zum Rücktransformieren des transformierten zweiten Blocks; und eine Einheit zum Bestimmen eines Prädiktionsfehlerblocks, welcher Prädiktionsfehler eines Blocks der Bilddaten enthält, durch eine elementweise Linearkombination, die den ersten Block und den zweiten Block enthält, wobei wenigstens ein Prädiktionsfehler durch eine Linearkombination von einem ersten von Null verschiedenen Prädiktionsfehler und eines zweiten von Null verschiedenen Prädiktionsfehler erhalten wird.
PCT/EP2021/067009 2020-06-22 2021-06-22 Verfahren und vorrichtungen zur codierung von bilddaten WO2021259935A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP21736571.7A EP4169253A1 (de) 2020-06-22 2021-06-22 Verfahren und vorrichtungen zur codierung von bilddaten
US18/012,072 US20230247226A1 (en) 2020-06-22 2021-06-22 Methods and Devices for Coding Image Data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102020207711.8A DE102020207711B3 (de) 2020-06-22 2020-06-22 Verfahren und vorrichtungen zur codierung von bilddaten
DE102020207711.8 2020-06-22

Publications (1)

Publication Number Publication Date
WO2021259935A1 true WO2021259935A1 (de) 2021-12-30

Family

ID=76730547

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/067009 WO2021259935A1 (de) 2020-06-22 2021-06-22 Verfahren und vorrichtungen zur codierung von bilddaten

Country Status (4)

Country Link
US (1) US20230247226A1 (de)
EP (1) EP4169253A1 (de)
DE (1) DE102020207711B3 (de)
WO (1) WO2021259935A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140050265A1 (en) * 2009-06-30 2014-02-20 Qualcomm Incorporated Video coding based on first order prediction and pre-defined second order prediction mode
US20140184740A1 (en) * 2012-12-28 2014-07-03 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080225947A1 (en) 2007-03-13 2008-09-18 Matthias Narroschke Quantization for hybrid video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140050265A1 (en) * 2009-06-30 2014-02-20 Qualcomm Incorporated Video coding based on first order prediction and pre-defined second order prediction mode
US20140184740A1 (en) * 2012-12-28 2014-07-03 Qualcomm Incorporated Parsing syntax elements in three-dimensional video coding

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
"Advanced Video Coding for Generic Audiovisual Services", H.264/AVC (ITU-T RECOMMENDATION H.264 AND ISO/IEC 14496-10 (MPEG-4) AVC, 2019
"High Efficiency Video Coding", HEVC (ITA-T RECOMMENDATION H.265 UND ISO/IEC 23008-2, 2019
"VTM-8.0", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 UND ISO/IEC JTP 1/SC 29/WG 11, Retrieved from the Internet <URL:https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware-VTM/-/tags/VTM-8.0,2020>
B. BROSS ET AL.: "Versatile Video Coding (Draft 8", JVET-Q2001, 17. TREFFEN DES JOINT VIDEO EXPERTS TEAM (JVET), BRÜSSEL, 2020
F. BOSSEN ET AL.: "JVET common test conditions and software reference configurations for SDR video", JVET-N1010, 14. MEETING OF THE JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 UND ISO/IEC JTC 29/WG 11, GENF, 2019
INFORMATION TECHNOLOGY - GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO INFORMATION, 1995

Also Published As

Publication number Publication date
US20230247226A1 (en) 2023-08-03
DE102020207711B3 (de) 2021-09-02
EP4169253A1 (de) 2023-04-26

Similar Documents

Publication Publication Date Title
DE112017006638B4 (de) Verbesserte Videobitstromkodierung
DE112017006657B4 (de) Adaptive planare Prädiktion mit ungleichen Gewichten
DE60305325T2 (de) System und verfahren zur ratenverzerrungsoptimierten datenpartitionierung zur videocodierung unter verwendung von rückwärtsadaption
EP2614647B1 (de) Kompression und dekompression von referenzbildern in einem videokoder
DE102016125379B4 (de) Bewegungsvektoraufteilung des letzten Frames
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE60125301T2 (de) Videosignaltranskodierung
DE102016125353A1 (de) Kodierratensteuerung von echtzeitvideos unter verwendung einer dynamischen auflösungsumschaltung
DE202016008175U1 (de) Adaptive gerichtete Intra-Prädiktion mit Blockgröße
DE112012002125T5 (de) Vorrichtung und Verfahren für einen abtastungsadaptiven Offset für Luminanz- und Chrominanz-Komponenten
DE112018005899T5 (de) System und Verfahren zum Konstruieren einer Ebene für planare Prädiktion
DE102019103346A1 (de) Ssim-basierte rate-distortion-optimierung für eine verbesserte wahrnehmbare qualität bei videos
DE102016125125A1 (de) Tile-Copying für Videokompression
DE102016125591A1 (de) Hybrid-Prädiktionsmodi zur Kodierung von Videos
DE102016125086A1 (de) Adaptiver direktionaler Schleifenfilter
DE10204617B4 (de) Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
DE102011006036B4 (de) Verfahren und Vorrichtungen zur Bildung eines Prädiktionswertes
DE112015004399T5 (de) Frequenzbereichsentstörung
DE112015001531T5 (de) Datenkodierung und Dekodierung
DE102020207711B3 (de) Verfahren und vorrichtungen zur codierung von bilddaten
DE102010023954A1 (de) Verfahren und Vorrichtung zum Mischen von Videoströmen auf der Makroblock-Ebene
DE10219640B4 (de) Verfahren zum Codieren und Decodieren von Videosequenzen und Computerprogrammprodukt
EP1285537B1 (de) Verfahren und eine anordnung zur codierung bzw. decodierung einer folge von bildern
EP1869890B1 (de) Verfahren und vorrichtung zur reduktion eines quantisierungsfehlers
DE102004011422B4 (de) Vorrichtung und Verfahren zum Verarbeiten einer Gruppe von Bildern und Vorrichtung und Verfahren zum Verarbeiten eines Basisbildes und eines oder mehrerer Erweiterungsbilder

Legal Events

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

Ref document number: 21736571

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021736571

Country of ref document: EP

Effective date: 20230123