WO2020064732A1 - Transformation selection by transmitting a transformation set indicator for use in video coding - Google Patents

Transformation selection by transmitting a transformation set indicator for use in video coding Download PDF

Info

Publication number
WO2020064732A1
WO2020064732A1 PCT/EP2019/075711 EP2019075711W WO2020064732A1 WO 2020064732 A1 WO2020064732 A1 WO 2020064732A1 EP 2019075711 W EP2019075711 W EP 2019075711W WO 2020064732 A1 WO2020064732 A1 WO 2020064732A1
Authority
WO
WIPO (PCT)
Prior art keywords
transformation
picture
indicator
transformations
indicators
Prior art date
Application number
PCT/EP2019/075711
Other languages
French (fr)
Inventor
Christopher Hollmann
Rickard Sjöberg
Jacob STRÖM
Per Wennersten
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
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 Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Publication of WO2020064732A1 publication Critical patent/WO2020064732A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Definitions

  • the present disclosure relates generally to transformation indication, and more particularly to transformation indication for encoding and decoding a picture.
  • HEVC High Efficiency Video Coding
  • MPEG Moving Picture Experts Group
  • Spatial prediction reduces spatial redundancy and is achieved using intra (I) prediction from within the same frame of a current picture.
  • Temporal prediction reduces temporal redundancy and is achieved using inter (P) or bi-directional inter (B) prediction on a block level using previously decoded reference pictures.
  • the resultant differences between the original pixel data and the predicted pixel data is transformed into the frequency domain and quantized.
  • HEVC uses a scaled Discrete Cosine Transformation (DCT) basis function for blocks of sizes 4x4 to 32x32 as well as an alternative transformation derived from the Discrete Sine Transformation (DST) for 4x4 blocks.
  • Quantizing the transformed residuals the level of which is determined by the quantization parameter (QP), facilitates the control of a tradeoff between bitrate and the quality of the video.
  • QP quantization parameter
  • the transformed and quantized residual is then entropy coded before being transmitted to a decoder together with the necessary prediction parameters (e.g., prediction mode and motion vectors).
  • the decoder Upon receipt, the decoder performs entropy decoding, inverse quantization, and inverse transformation to obtain the residual.
  • the decoder reconstructs the image from the residual using an intraprediction or inter-prediction technique.
  • VVC Versatile Video Coding
  • MTS Multiple Transform Selection
  • transformations to be applied to the luminance channel in case of intra prediction DCT-2, DCT- 8 and DST-7. These three transformations are tested for each block under certain further limitations (for example blocks with edge length of 64 samples always use the DCT-2) and the best one according to the rate-distortion optimization algorithm is applied.
  • the process of testing a transformation by an encoder consists of several steps: (1 ) applying the forward
  • the encoder can select the transformation best suited for each block based on the testing. However, this makes testing different transformations computationally expensive for the encoder.
  • Embodiments herein include a method for encoding a picture.
  • the method comprises generating and transmitting a transformation indicator indicating a transformation for one or more samples of the picture.
  • the transformation is used to encode the picture.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different block sizes or groups of block sizes.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different ranges of block sizes.
  • the method for encoding a picture further comprising encoding the picture into a bitstream by transforming the one or more samples of the picture according to the transformation indicated by the transformation indicator.
  • the picture is divided into segments according to a particular segmentation scheme and generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different segmentation schemes.
  • the particular segmentation scheme is one of slices, tiles or flexible segments.
  • the method for encoding a picture further comprising encoding the picture into a bitstream by transforming in a vertical direction and a horizontal direction.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating different ones of the plurality of transformation indicators with transformations in a vertical direction and transformations in a horizontal direction.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different picture types.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with a location of a sample of the one or more samples within the picture.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different channels for transmission of at least a sample of the one or more samples.
  • the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different prediction modes for the picture.
  • transmitting the transformation indicator comprises transmitting the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
  • the method of encoding a picture further comprises encoding the block of the picture into a bitstream by transforming in accordance with the transformation indicator and a predefined transformation.
  • the transformation indicator indicates a transformation that uses a discrete cosine transformation (DCT) or discrete sine transformation (DST).
  • DCT discrete cosine transformation
  • DST discrete sine transformation
  • the transformation indicator indicates the transformation implicitly by indicating a restriction restricting permissible predefined transformations.
  • the transformation indicator is a first transformation indicator and the method for encoding a picture further comprises transmitting a second transformation indicator indicating a particular transformations that is not restricted by the first transformation indicator.
  • the method for encoding a picture further comprises receiving a signal indicating a set of transformations for evaluating possible transformations for encoding the one or more samples of the picture; and evaluating the possible transformations according to the evaluation set.
  • the generating the transformation indicator comprises determining a block size or block range for the picture or component of the picture; and generating the transformation indicator dependent on the determined block size or block range.
  • the determined block size is smaller than or equal to 32 samples in at least one direction of the picture; and the transformation indicator indicates to use a discrete sine transformation (DST)-7.
  • DST discrete sine transformation
  • Embodiments herein include a method for decoding an encoded picture.
  • the method comprises receiving a transformation indicator indicating a transformation for one or more samples of the encoded picture.
  • the method comprises receiving a bitstream comprising the encoded picture.
  • the method comprises decoding the encoded picture in accordance with the received transformation indicator.
  • the transformation indicator indicates to use one of a plurality of different transformations for a particular block size or group of block sizes when decoding the encoded picture.
  • the transformation indicator indicates to use one of a plurality of different transformations for a particular range of block sizes when decoding the encoded picture.
  • the receiving a transformation indicator comprises receiving a plurality of transformation indicators.
  • the method of decoding an encoded picture further comprises determining which of respective transformation sets of the plurality of transformation indicators to use when decoding the encoded picture.
  • the picture is divided into segments according to a particular segmentation scheme of a plurality of segmentation schemes.
  • the transformation indicator indicates to use one of a plurality of different transformations for the particular segmentation scheme when decoding the encoded picture.
  • the plurality of segmentation schemes comprise one or more of slices, tiles or flexible segment segmentation schemes.
  • the method for decoding an encoded picture further comprises determining a picture type; and selecting a received transformation indicator for decoding the encoded picture based on the picture type.
  • the method for decoding an encoded picture further comprises determining a location of a sample within the encoded picture; and selecting a received transformation indicator for decoding the encoded picture based on the location of the sample in the encoded picture. In one or more embodiments, the method for decoding an encoded picture further comprises determining a channel in which the bitstream is received; and selecting a received transformation indicator for decoding the encoded picture based on the channel.
  • receiving the transformation indicator comprises receiving the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
  • the transformation indicator indicates a transformation that uses a discrete cosine transformation (DCT) or discrete sine transformation (DST).
  • DCT discrete cosine transformation
  • DST discrete sine transformation
  • the transformation indicator indicates the transformation implicitly by indicating a restriction restricting permissible predefined transformations at the decoder.
  • decoding the encoded picture comprises performing a reverse transformation using the transformation indicated by the transformation indicator.
  • Embodiments herein include a method for encoding a picture.
  • the method comprises generating and transmitting a transformation set indicator indicating a transformation set of one or more transformations.
  • the picture is encoded using at least one of the transformations of the transformation set.
  • the transformation set comprises only one transformation.
  • the transformation set indicator can indicate a single transformation.
  • the transformation set indicator indicates multiple transformations.
  • the method for encoding a picture further comprises generating and transmitting a transformation indicator.
  • the transformation indicator indicates a transformation for one or more samples of the picture.
  • the transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different block sizes or groups of block sizes.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different ranges of block sizes.
  • the transformation set comprises discrete cosine transformation (DCT) or discrete sine transformation (DST).
  • the method of encoding a picture further comprises encoding the picture into a bitstream by evaluating a transformation in the transformation set in accordance with the transformation set indicator.
  • the picture is divided into segments according to a particular segmentation scheme and generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more
  • the transformations and associating one or more of the plurality of transformation set indicators with one of different segmentation schemes are one of slices, tiles or flexible segments.
  • the method of encoding a picture further comprises encoding the picture into a bitstream by transforming in a vertical direction and a horizontal direction.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating different ones of the plurality of transformation set indicators with transformations performed in a vertical direction and transformations performed in a horizontal direction.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different picture types.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different sample locations within the picture.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different channels for transmission of picture samples.
  • the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different prediction modes for the picture.
  • the transmitting the transformation set indicator comprises transmitting the transformation set indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
  • the method of encoding a picture further comprises encoding the block of the picture into a bitstream by transforming in accordance with the transformation set indicator.
  • the transformation set indicator indicates the transformation set implicitly by indicating one or more restrictions of permissible predefined transformations.
  • the method of encoding a picture further comprises determining a minimum number of bits for transmitting a transformation indicator indicating a transformation for one or more samples of the picture.
  • the transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
  • the method of encoding a picture further comprises receiving a signal indicating an evaluation set of transformations for evaluating possible transformations for encoding the one or more samples of the picture; and evaluating the possible transformations according to the evaluation set.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different block sizes or groups of block sizes.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different ranges of block sizes.
  • the method of encoding a picture further comprises generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different segmentation schemes.
  • the particular segmentation scheme is one of slices, tiles or flexible segments.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating different ones of the plurality of transformation indicators with transformations in a vertical direction and transformations in a horizontal direction.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different picture types.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with a location of a sample of the one or more samples within the picture.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different channels for transmission of at least a sample of the one or more samples.
  • the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different prediction modes for the picture.
  • the transmitting the transformation indicator comprises transmitting the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
  • the method of encoding a picture further comprises determining, based on the transformation set indicator, the number of bits for transmitting a subsequent transformation indicator indicating a transformation for one or more samples of the picture.
  • the transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
  • the generating the transformation set indicator or the transformation indicator comprises determining a block size or block range for the picture or component of the picture; and generating the transformation set indicator or the transformation indicator dependent on the determined block size or block range.
  • the transformation set indicator or the transformation indicator is dependent on a threshold related to a block size of 32 samples in at least one direction of the picture.
  • Embodiments herein include a method for decoding an encoded picture.
  • the method comprises receiving a transformation set indicator indicating a transformation set of one or more transformations.
  • the encoded picture is encoded using at least one transformations of the transformation set.
  • the method comprises receiving a bitstream comprising the encoded picture.
  • the method comprises decoding the encoded picture in accordance with the received transformation set indicator.
  • the transformation set comprises only one transformation.
  • the transformation set indicator can indicate a single transformation.
  • the transformation set indicator indicates multiple transformations.
  • the method for decoding an encoded picture further comprises receiving a transformation indicator indicating a single transformation of the transformation set for one or more samples of the encoded picture.
  • the decoding the encoded picture comprises decoding the encoded picture in accordance with the received transformation set indicator and the transformation indicator.
  • the transformation set comprises discrete cosine transformation (DCT) or discrete sine transformation (DST).
  • the transformation set indicator indicates the transformation set implicitly by indicating one or more restrictions of permissible predefined transformations.
  • the method for decoding an encoded picture further comprises determining, based on the transformation set indicator, the number of bits for receiving a subsequent transformation indicator indicating a transformation for one or more samples of the picture.
  • the transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
  • the transformation set indicator indicates that the transformation set is to be used for a particular block size or group of block sizes when decoding the encoded picture.
  • the transformation set indicator indicates that the transformation set is to be used for a particular range of block sizes when decoding the encoded picture.
  • the receiving the transformation set indicator comprises receiving a plurality of transformation set indicators.
  • the method further comprises determining which of respective transformation sets of the plurality of transformation set indicators to use when decoding the encoded picture.
  • the picture is divided into segments according to one or more of a plurality of segmentation schemes.
  • the transformation set indicator indicates that the transformation set is to be used for a particular segmentation scheme of the plurality of segmentation schemes when decoding the encoded picture.
  • the plurality of segmentation schemes comprise one or more of slices, tiles or flexible segment segmentation schemes.
  • the method for decoding an encoded picture further comprises determining a picture type; and selecting a received transformation set indicator for decoding the encoded picture based on the picture type.
  • the method for decoding an encoded picture further comprises determining a location of a sample within the encoded picture; and selecting a received transformation set indicator for decoding the encoded picture based on the location of the sample in the encoded picture.
  • the method for decoding an encoded picture further comprises determining a channel in which the bitstream is received; and selecting a received transformation set indicator for decoding the encoded picture based on the channel.
  • the receiving the transformation set indicator comprises receiving the transformation set indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
  • the decoding the encoded picture comprises performing a reverse transformation using the transformation indicated by the transformation indicator.
  • the transformation indicator indicates to use one of a plurality of different transformations for a particular block size or group of block sizes when decoding the encoded picture.
  • the transformation indicator indicates to use one of a plurality of different transformations for a particular range of block sizes when decoding the encoded picture.
  • the receiving the transformation indicator comprises receiving a plurality of transformation indicators; and the method further comprises determining which of the plurality of transformation indicators to use when decoding the encoded picture.
  • the transformation indicator indicates to use one of different transformations for a segmentation scheme of the picture when decoding the encoded picture.
  • the method for decoding an encoded picture further comprises selecting a received transformation indicator for decoding the encoded picture based on a picture type for the picture.
  • the method further comprises selecting a received transformation indicator for decoding the encoded picture based on the location of the sample in the encoded picture.
  • the method for decoding an encoded picture further comprises selecting a received transformation indicator for decoding the encoded picture based on the channel in which the bitstream is received.
  • the receiving the transformation indicator comprises receiving the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
  • the decoding the encoded picture comprises performing a reverse transformation using the transformation indicated by the transformation indicator.
  • Embodiments herein include an encoder circuit configured to implement any of the methods described herein for encoding a picture.
  • Embodiments herein include an encoder comprising processing circuitry configured to perform any of the methods described herein for encoding a picture.
  • the encoder comprises power supply circuitry configured to supply power to the encoder.
  • Embodiments herein include an encoder comprising processing circuitry and memory.
  • the memory contains instructions executable by the processing circuitry whereby the encoder is configured to perform any of the methods described herein for encoding a picture.
  • an encoder described herein comprises a transmitter for transmitting the bitstream.
  • Embodiments herein include a computer program comprising instructions which, when executed by at least one processor of an encoder, causes the encoder to carry out any of the methods described herein for encoding a picture.
  • Embodiments herein include a non-transitory computer-readable storage medium containing a computer program comprising executable instructions that, when executed by a processing circuit in an encoder causes the encoder to perform any of the methods described herein for encoding a picture.
  • Embodiments herein include a decoder circuit configured to implement any of the methods for decoding an encoded picture described herein.
  • Embodiments herein include a decoder comprising processing circuitry configured to perform any of the methods for decoding an encoded picture described herein.
  • the decoder comprises power supply circuitry configured to supply power to the decoder.
  • Embodiments herein include a decoder comprising processing circuitry and memory.
  • the memory contains instructions executable by the processing circuitry whereby the decoder is configured to perform any of the methods for decoding an encoded picture described herein.
  • a decoder circuit or decoder described herein is comprised in a display device for displaying the decoded segments.
  • Embodiments herein include a computer program comprises instructions which, when executed by at least one processor of a decoder described herein, causes the decoder to carry out any of the methods for decoding an encoded picture described herein.
  • Embodiments herein include a non-transitory computer-readable storage medium containing a computer program comprising executable instructions that, when executed by a processing circuit in a decoder causes the decoder to perform any of the methods for decoding an encoded picture described herein.
  • Embodiments herein include a carrier containing a computer program described herein.
  • the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
  • Figure 1 A depicts an example system for transmitting a transformation indicator according to one or more embodiments.
  • Figure 1 B depicts a system for generating one or more samples for transmission on a channel according to one or more embodiments.
  • Figure 2 depicts a method for transmitting a transformation indicator according to one or more embodiments.
  • Figure 3 depicts a method for receiving a transformation indicator according to one or more embodiments.
  • Figure 4 depicts an encoder according to one or more embodiments.
  • Figure 5 depicts a decoder according to one or more embodiments.
  • Figure 6 depicts an encoder according to one or more embodiments.
  • Figure 7 depicts a decoder according to one or more embodiments.
  • Figure 8 depicts a system for encoding and decoding a picture according to one or more embodiments.
  • Figure 9 depicts a system for transmitting a transformation set indicator according to one or more embodiments.
  • Figure 10 depicts a method for transmitting a transformation set indicator according to one or more embodiments.
  • Figure 1 1 depicts a method for receiving a transformation set indicator according to one or more embodiments.
  • Figure 12 depicts method for transmitting a transformation set indicator
  • transformation indicator according to one or more embodiments.
  • Figure 13 depicts a method for receiving a transformation set indicator
  • transformation indicator according to one or more embodiments.
  • VTM VVC test model
  • Figure 1A indicates an example system 100 according to one or more embodiments described herein.
  • system 100 comprises an encoder 100 and a decoder 150.
  • the encoder 100 generates and transmits a transformation indicator 1 10 in one or more
  • the transformation indicator 1 10 indicates a transformation for one or more samples 130 of a picture 120b.
  • samples described herein may be samples of a pixel (e.g., pixels 130), samples transmitted on a channel, such as a chroma or luminance channel, and/or samples transmitted toward a decoder (e.g., decoder 150).
  • the transformation is used to encode the picture 120b.
  • the transformation indicator could indicate a transformation of a plurality of different possible transformations (e.g., a DST or DCT).
  • the encoder 100 generates the transformation indicator 1 10 by associating a particular one of these different possible transformations with a possible aspect of the picture 120b or picture transmission 142 (e.g., one of different block sizes for the picture, segmentation schemes, location of samples in the picture, prediction modes for the picture, etc.). For instance, block size can be expressed in the number of pixels in a component of a picture.
  • the encoder optionally then encodes using the transformation indicated by the transformation indicator 1 10 and transmits the picture 120b in one or more transmissions 142. For instance, the encoder transmits the transformation indicator 1 10 toward a decoder 150.
  • a system 100 alternatively or additionally, comprises a decoder 150.
  • the decoder 150 receives the transformation indicator 110 indicating a transformation for one or more samples 130 of the encoded picture 120b.
  • the decoder 150 also optionally receives a bitstream comprising the encoded picture 120b (e.g., from an encoder 100 transmitting the transformation indicator 1 10).
  • the bitstream may include other encoded pictures.
  • pictures 120a and 120c may be part of a video stream.
  • Progression icon 152 is used to show that the pictures 120a, 120b, and 120c are part of a progressing video stream. The progression icon 152 is not apart of the pictures 120.
  • Pictures 120b may be a component of a larger picture (e.g., that has other components pictures 120a and/or 120c).
  • the decoder 150 decodes the encoded picture in accordance with the received transformation indicator 1 10. For example, the decoder performs a reverse transformation using the transformation indicated by the transformation indicator 1 10.
  • Certain embodiments may provide one or more of the following technical advantage(s).
  • One or more embodiments restrict the use of different transformations (e.g., by assigning one transformation per block size to use). This way, it is not necessary to test different transformations, which reduces the computational complexity. There is nearly no loss in compression efficiency when selecting the transformations in an advantageous way.
  • the signaling of which transformation to use can be done either explicitly at different granularities or implicitly by setting decoder defaults.
  • the transformation indicator 1 10 indicates the transformation implicitly by indicating a restriction restricting permissible predefined transformations.
  • the transformation indicator 1 10 could indicate a single transformation or a reduced set of possible transformations.
  • One or more embodiments greatly reduce the computational complexity of the encoder.
  • hardware implementations can be simplified as support for one transformation (DCT-8) is completely removed as explained in a test scenario described herein.
  • DCT-8 one transformation
  • the impact on compression efficiency is very small and is more than made up by the gain in encoding time.
  • Figure 1 B shows a system for generating one or more samples for transmission on a channel (e.g., a luminance or chroma channel).
  • a display 160 e.g., a television
  • each pixel has three different samples or values: one for a red color component (e.g., red component sample 170 for pixel 162), one for a green component (e.g., green component sample 172 for pixel 162), and one for a blue component (e.g., blue component sample 174 for pixel 174) of a pixel.
  • Color values are then converted from RGB into a different color space, YUV, with Y representing the luminance and U and V the chrominance of the picture.
  • the YUV color space exploits the fact that humans are more sensitive to luminance than color differences.
  • the chrominance components e.g., U component 182 and V component 184) can then be subsampled by a factor of 2 in both width and height, leaving the U and V components at size 4x2 samples (e.g.,
  • Each of the U components 192 and V components 194 can then be samples representing multiple pixels for transmission on a chroma channel.
  • Each of the Y components 190 can be samples representing a pixel for transmission on a luminance channel.
  • the Y components 190 can be identical to the Y components 180 since there is no subsambling.
  • One or more embodiments are useful for indicating a transformation for one or more samples transmitted on a luminance or chroma channel.
  • the present disclosure generally includes the following embodiments, e.g., which may address one or more of the issues or examples disclosed herein
  • Figure 2 depicts a method 200 in accordance with particular embodiments.
  • the method 200 comprises generating (22) a transformation indicator and transmitting (24) the
  • the transformation indicator indicates a transformation for one or more samples of the picture.
  • the transformation is used to encode the picture.
  • an encoder may use the transformation to encode the picture and a decoder may perform a reverse transformation to decode the encoded image.
  • the method 200 further comprises encoding (26) the one or more samples of the picture according to the transformation and transmitting the picture into a bitstream.
  • Figure 3 depicts a method 300 in accordance with other particular embodiments.
  • the method 300 can be performed in conjunction with or separately from method 200.
  • the method 300 comprises receiving (32) a transformation indicator indicating a transformation for one or more samples of the encoded picture.
  • the method 300 comprises receiving (34) a bitstream comprising the encoded picture.
  • the method 300 comprises decoding (36) the encoded picture in accordance with the received transformation indicator.
  • the decoding comprise performing a reverse transformation using the transformation indicated by the transformation indicator.
  • a transformation indicator indicates a set of one or more transformations.
  • a transformation indicator can be referred to more generally as a transformation set indicator.
  • Figure 9 indicates an example system 900 for transmitting a transformation set indicator.
  • system 900 comprises an encoder 900 and a decoder 950.
  • the encoder 900 generates and transmits a transformation set indicator 910 in one or more transmissions 950.
  • the transformation set indicator 910 indicates a transformation set of one or more
  • the picture 120b is encoded using at least one of the transformations of the transformation set (e.g. transformation T 1 ).
  • the transformation indicator 910 could indicate a set with only a single transformation (e.g., only transformation T 1 ) or a reduced set of a plurality of different possible transformations (e.g., transformations T 1 and T2 of a set of transformations T1 , T2 and T3).
  • the encoder 900 generates the transformation set indicator 910 by associating a transformation set with a possible aspect of the picture or picture transmission (e.g., one of different block sizes for the picture, segmentation schemes, location of samples in the picture, prediction modes for the picture, etc.).
  • the encoder optionally then encodes using a transformation set indicated by the transformation set indication 910 and transmits the picture 120b.
  • the decoder 950 receives the transformation set indicator 910 indicating a transformation set of one or more transformations.
  • the decoder 950 also may receive a bitstream comprising the encoded picture 120b (e.g., in one or more transmissions
  • the bitstream may include other encoded pictures (e.g., pictures 120a and 120c that are part of a video stream).
  • the decoder 950 decodes the encoded picture 120b in accordance with the received transformation set indicator 910. For example, the decoder 950 performs a reverse transformation using a transformation of the transformation set indicated by the transformation set indicator 910.
  • the encoder 900 generates and sends in addition to a transformation set indicator 910 other transformation indicators (e.g., transformation indicator 940) (e.g., in one or more transmissions 952).
  • the transformation indicator 940 indicates a transformation (e.g., transformation T1 ) for one or more samples 130 of the picture 120b used to encode the picture 120b.
  • the transformation is one of the transformation set indicated by the transformation set indicator 910.
  • reducing the available sets of transformations reduces testing of different transformations, which reduces computational complexity (i.e. even if there are still multiple possible transformations indicated by the transformation set indicator).
  • a transformation set indicator e.g., transformation indicator 940
  • transformation indicator 940 can still be used as needed to indicate a particular transformation in the reduced set.
  • Figure 10 depicts a method 1000 in accordance with particular embodiments for encoding an encoded picture.
  • the method 1000 comprises generating (1002) and transmitting (1004) a transformation set indicator indicating a transformation set of one or more
  • the picture is encoded using at least one of the transformations of the transformation set.
  • the method 1000 further comprises encoding the one or more samples of the picture according to the transformation set indicator and transmitting the picture into a bitstream (1006).
  • Figure 1 1 depicts a method 1 100 in accordance with other particular embodiments for decoding an encoded picture.
  • the method 1 100 can be performed in conjunction with or separately from method 1000.
  • the method 1 100 comprises receiving (1 102) a transformation set indicator indicating a transformation set of one or more transformations.
  • the picture is encoded using at least one of transformations of the transformation set.
  • the method 1 100 comprises receiving (1 104) a bitstream comprising the encoded picture.
  • the method 1 100 comprises decoding (1 106) the encoded picture in accordance with the received transformation set indicator.
  • the decoding comprise performing a reverse transformation using the transformation indicated by the transformation indicator.
  • reducing the available sets of transformations reduces the amount of signaling required to transmit a transformation indicator as described herein (i.e. even if a transformation indicator is used to transmit a single or even further reduced set of possible transformations).
  • Figure 12 depicts a method 1200 in accordance with other particular embodiments for encoding a picture.
  • the method 1200 comprises generating (1202) and transmitting (1204) a transformation set indicator indicating a transformation set of one or more transformations.
  • the picture is encoded using at least one of the transformations of the transformation set.
  • the method 1200 comprises generating (1206) and transmitting (1208) a transformation indicator indicating a transformation for one or more samples of the picture.
  • the transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
  • the transformation indicator indicates a single transformation or a reduced set of transformations in the set of transformations indicated by the transformation set indicator.
  • the method 1200 further comprises encoding the one or more samples of the picture according to the transformation set indicator and/or transformation indicator and transmitting the picture into a bitstream (1210).
  • Figure 13 depicts a method 1300 in accordance with other particular embodiments for decoding an encoded picture.
  • the method 1300 can be performed in conjunction with or separately from method 1200.
  • the method 1300 comprises receiving (1302) a transformation set indicator indicating a transformation set of one or more transformation.
  • the encoded picture is encoded using at least one of transformations of the transformation set.
  • the method 1300 comprises receiving (1304) a transformation indicator indicating a transformation of the transformation set for one or more samples of the encoded picture.
  • the method 1300 comprises receiving (1306) a bitstream comprising the encoded picture.
  • the method 1300 comprises decoding (1308) the encoded picture in accordance with the received transformation set indicator and/or the received transformation indicator.
  • apparatuses described herein may perform the methods herein and any other processing by implementing any functional means, modules, units, or circuitry.
  • the apparatuses comprise respective circuits or circuitry configured to perform the steps shown in the method figures.
  • the circuits or circuitry in this regard may comprise circuits dedicated to performing certain functional processing and/or one or more microprocessors in conjunction with memory.
  • the circuitry may include one or more microprocessor or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, and the like.
  • DSPs digital signal processors
  • the processing circuitry may be configured to execute program code stored in memory, which may include one or several types of memory such as read-only memory (ROM), random-access memory, cache memory, flash memory devices, optical storage devices, etc.
  • Program code stored in memory may include program instructions for executing one or more telecommunications and/or data communications protocols as well as instructions for carrying out one or more of the techniques described herein, in several embodiments.
  • the memory stores program code that, when executed by the one or more processors, carries out the techniques described herein.
  • FIG. 4 is a schematic diagram showing components of an encoder.
  • the encoder 470 comprising processing circuitry 400 (e.g., one or more processors) and, e.g., one or more memories 410, is configured to carry out one or more methods according to embodiments described herein.
  • the processing circuitry 400 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 420 stored in one or more memories 410.
  • CPU central processing unit
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • the one or more memories 510 is for instance, a data buffer, Read-Write Memory (RWM), Read-Only memory (ROM), random-access memory (RAM), cache memory, flash memory devices, optical storage devices, etc.
  • the encoder could comprise an interface 440 with an input and/or output circuit 430 configured to transmit a bitstream, transformation indicator, and/or transformation set indicator, e.g., via transmitter 450.
  • Transmitter 450 could also be a transceiver.
  • an encoder 600 could have units, modules, or circuits configured to carry out methods described herein.
  • the encoder 600 comprises a transmit unit 610 for transmitting a transformation indicator, transformation set indicator, and/or bitstream.
  • the encoder 600 comprises a generate unit 630 for generating the transformation indicator, transformation set indicator, and/or bitstream.
  • the encoder 600 optionally includes an encode unit 620 for encoding the bitstream.
  • FIG. 5 is a schematic diagram showing components of decoder 570.
  • the decoder 570 comprising processing circuitry 500 (e.g., one or more processors) and, e.g., one or more memories 510, is configured to carry out one or more methods according to the embodiments described herein.
  • the processing circuitry 500 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 520 stored in one or more memories 510.
  • the one or more memories 510 is for instance, a data buffer, Read-Write (RWM) Memory or Read- Only (ROM) memory.
  • RWM Read-Write
  • ROM Read- Only
  • the decoder 570 comprises an interface 540 with an input and/or output circuit 530 configured to receive a bitstream, transformation indicator, and/or transformation set indicator, e.g., via receiver 550.
  • the receiver 550 could also be a transceiver.
  • a decoder could have units, modules, or circuits configured to carry out methods described herein.
  • the decoder 700 comprises a receive unit 710 configured to receive a transformation indicator, transformation set indicator, and/or bitstream.
  • the decoder 700 comprises a decode unit 720 to decode a picture of the bitstream based on the received transformation indicator and/or the received transformation set indicator.
  • a computer program comprises instructions which, when executed on at least one processor of an apparatus, cause the apparatus to carry out any of the respective processing described above.
  • a computer program in this regard may comprise one or more code modules corresponding to the means or units described above.
  • Embodiments further include a carrier containing such a computer program.
  • This carrier may comprise one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
  • embodiments herein also include a computer program product stored on a non-transitory computer readable (storage or recording) medium and comprising instructions that, when executed by a processor of an apparatus, cause the apparatus to perform as described above.
  • Embodiments further include a computer program product comprising program code portions for performing the steps of any of the embodiments herein when the computer program product is executed by a computing device.
  • This computer program product may be stored on a computer readable recording medium.
  • Figure 8 shows an example system or method 800 in which an encoder or decoder described herein would be useful.
  • the system comprises a media source (e.g., a capture, renderer or file).
  • the media source is fed to a projection mapping 820 and then to an encoder or transcoder, e.g. an encoder as described herein such as a title encoder or transcoder.
  • the encoded information is stored in storage 840 and then fed to a server 850. It can be transmitted over a network 860 to a viewing device 870.
  • the image is one of video
  • the viewing device 870 has a decoder as described herein for decoding the partitioned image, rendering 890 the image and displaying the image on a display 900 to a user of the viewing device 870.
  • a viewing device can be, for example, a Head Mounted Display (HMD) device or any display device.
  • HMD Head Mounted Display
  • One or more embodiments are applicable to applications in which a viewing device 870 receives one or more images in connection with a particular gaze direction of the device.
  • the device has received information from the server 850 explaining what streams are available and information about each stream such as spatial coverage and bitrate.
  • the gaze direction of the viewing device 870 is captured and the viewing device 870 requests a subset of streams from the server 850.
  • the viewing device 870 receives streams and composes a single bitstream from the streams and feeds the bitstream to the decoder 880.
  • the viewing device 870 has the necessary information about the streams (e.g., tile streams) and knows how it composed the single bitstream. Therefore, the viewing device 870 is able to convert the decoded pictures into pictures that are suitable for rendering.
  • the gaze direction of the viewing device 870 is captured and sent to the server 850.
  • the server 850 composes a single bitstream from the stored streams (e.g., tile streams) and sends the bitstream to the decoder 880.
  • the necessary information on how to convert the decoded pictures into pictures that are suitable for rendering is sent along with the bitstream.
  • the viewing device 870 decodes the pictures (e.g., using decoder 880), converts them and renders them (e.g. using rendering 890).
  • the viewing device 870 or client continuously sends requests for what bitrate the stream should have.
  • a codec using the proposed solution can determine which transformation to use for a given block of a picture based on one or more examples (1-6) described below.
  • the term signal can refer to one or more messages.
  • the one or more messages can comprise one or more indicators (or components of indicators) as described herein.
  • a transformation indicator could also be referred to as a transformation indication or a setting for a transformation (i.e. a transformation can be set).
  • a transformation set indicator could also be referred to as a transformation set indication or a setting for a transformation set (i.e. a transformation set can be set).
  • the transformation (or transformation set) can be set based on a signal which indicates that larger blocks use one certain transformation and smaller blocks use a different transformation.
  • one or more transformation indicators could be sent in a same or different signal indicating that blocks with a size of 64x64 use the DCT-2 and blocks smaller than 64x64 use the DST-7.
  • One example of an implementation could be to have a two-bin signal with each possible value representing a crossover point.
  • the transformation (or transformation set) can be set based on a signal which determines for each block size or a group of block sizes which transformation to use.
  • one bin per group of block sizes is sent, indicating which transformation to use. Every group contains at least one block size.
  • the transformation (or transformation set) can be set based on a predefined transformation for certain block sizes and a signal determining which transformation to use for other block sizes.
  • Example 3 could be a subset of Example 2, where the signal is only sent for certain block sizes, whereas other block sizes use a predefined transform.
  • the transformation (or transformation set) can be set based on a signal indicating which transformation to use for each block size or each group of block sizes from a set of at least three transformations.
  • the transformation (or transformation set) can be set based on a partition type or picture type.
  • HEVC uses a block structure where each top level coding block, i.e. the largest block in the coding block partitioning referred to herein as the Coding Tree Unit (CTU), can be partitioned by a Quad Tree (QT) structure. This partitioning produces coding block partitions, referred to herein as coding units (CUs).
  • CTU Coding Tree Unit
  • QT Quad Tree
  • a transformation indicator indicates one of different transformations where at least one transformation of the different transformations is associated with or otherwise determined by a slice type or characteristic.
  • the transformation indicator could be a transformation set indicator indicating one of different transformation sets where at least one transformation of the different transformation sets is associated with or otherwise determined by a slice type or characteristic.
  • a slice could either be an l-slice, P-slice or B-slice.
  • I slice A slice in which all CUs of the slice are coded using only intrapicture prediction.
  • P slice In addition to the coding types of an I slice, some CUs of a P slice can also be coded using interpicture prediction with at most one motion-compensated prediction signal per picture buffer (PB) (i.e., uniprediction).
  • PB motion-compensated prediction signal per picture buffer
  • B slice In addition to the coding types available in a P slice, some CUs of the B slice can also be compensated interpicture prediction with at most two motion compensated prediction signals per PB (i.e., biprediction).
  • the HEVC video coding standard also includes a tool called“Tiles” that divides a picture into rectangular, spatially independent regions. Using tiles, a picture in HEVC can be partitioned into rows and columns of samples where any given tile is located at an intersection of a given row and a given column.
  • the tile structure is signaled in, for example, the Picture Parameter Set (PPS).
  • PPS Picture Parameter Set
  • a transformation indicator indicates one of different transformations where at least one transformation is associated with or otherwise determined by a tile type or characteristic.
  • the transformation indicator could be a
  • transformation set indicator indicating one of different transformation sets where at least one transformation is associated with or otherwise determined by a tile type or characteristic.
  • Flexible segments include other partitioning that involve non-rectangular titles as well as partitions in a checkerboard pattern.
  • a transformation indicator indicates one of different transformations where at least one transformation of the different transformations is associated with or otherwise determined by a flexible segment type.
  • the transformation indicator could be a transformation set indicator indicating one of different transformation sets where at least one transformation in the different transformation sets is associated with or otherwise determined by a flexible segment type.
  • a transformation indicator indicates one of different transformations where at least one transformation (or transformation set) is associated with a picture type.
  • Picture types can refer to picture types of a network abstraction layer (NAL) unit syntax structure. Table 1 below shows different picture types. Of course pictures as described herein could have other types (e.g., according to other syntax structures).
  • the transformation (or transformation set) can be set based on an evaluation of at least one transformation (e.g., by an encoder). Which
  • transformations the encoder can evaluate is indicated by (a) a signal as described above (e.g., a transformation indicator or transformation set indicator) and/or (b) a signal indicating which transformations the encoder is allowed to evaluate.
  • a signal as described above (e.g., a transformation indicator or transformation set indicator) and/or (b) a signal indicating which transformations the encoder is allowed to evaluate.
  • the encoder can chose between one set of transformations for smaller block sizes and another set for larger block sizes, with a signal indicating where to switch transformation sets.
  • the encoder can chose from a set of transformations for each group of block sizes, with a signal indicating a specific set for each group of block sizes.
  • the set of transformations which are available can be any number larger than one.
  • the picture 120b in Figures 1A and 9 is shown as being arranged in a configuration of 4 samples by 4 samples.
  • other pictures or blocks of picture 120b may have different arrangements.
  • the picture 120b or a block of picture 120b is only samples 130a-130h.
  • the block size in a particular direction may differ resulting in different transformations applied to a horizontal and vertical direction.
  • a signal indicating which transformation or transformation set to use in any of the settings above can be signaled at different positions in the bitstream.
  • This position may be in any of the following: profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header, segment header.
  • the transformation indicator can be preceded by a different signal (e.g., a transformation set indicator) which indicates which transformations an encoder or decoder is allowed to use.
  • a different signal e.g., a transformation set indicator
  • one signal per available transformation may be sent, each one indicating whether the transformation can be used by the encoder.
  • This signal may also be sent without a following transformation indicator signal. This allows the encoder to test all allowed transformations in the current partition of the picture or video.
  • the transformation indicator or the transformation set indicator contains an indication of one or more particular transformations comprised in a set of transformations. For example, if a set of transformations is allowed to be evaluated by an encoder or decoder for a particular block size, the transformation indicator or the transformation set indicator may indicate a particular one in the set for evaluation (e.g., to avoid the processing costs of an evaluation).
  • a transformation indicator (or transformation set indicator) could be associated with a location of a sample.
  • a transformation indicator could indicate transformations are not applied to edges of at least 128 samples.
  • a transformation indicator could be associated with a particular channel. For instance, samples of a picture could be sent on different channels (e.g., a chroma channel and a lumna/luminance channel) for transporting different components of a picture (e.g., color components of a picture and luminance). For example, if a block is in the chroma channel, the transformation indicator could indicate to use the DCT-2 in both directions. 3.
  • a transformation indicator (or transformation set indicator) could be associated with a particular prediction mode (e.g., intra prediction mode, inter (B) prediction mode and inter (P) prediction mode). For example, the transformation indicator could indicate if a block uses interprediction, use the DCT-2 in both directions.
  • a transformation indicator (or transformation set indicator) could be associated with a particular block size.
  • the transformation indicator could indicate if a block has a size of 64 by 64 samples, use the DCT-2 in both directions.
  • a transformation indicator (or transformation set indicator) could be associated with a combination of features described herein.
  • a transformation indicator could be one of a plurality of indicators (e.g., 1-5 above) indicating rules for determining the transformation (or transformation set) (e.g., providing a hierarchy of rules) or a default transformation (e.g., if no rule applies). For instance, the transformation indicator can indicate that in other cases, use the DST-7 in both directions.
  • the implementation takes a“transformation allowed”-flag into account with a total of three transformations (DCT-2, DCT-8, DST-7).
  • a transformation set indicator or a transformation indicator as described herein could be a series of flags indicating what transformations are allowed. For example:
  • One bit for first transformation allowed (e.g. DCT-8)
  • One bit for second transformation allowed (e.g. DST-7)
  • One bit for third transformation allowed (e.g. DCT-2, can be omitted if other two are zero where there is at least one transformation)
  • Reduced signaling (e.g. for signaling a transformation indicator) is possible if transformations are omitted. As an example, if all three transformations are allowed: 2 bits per group of block sizes indicating which of the transformations to use (e.g. 00 for first, 01 for second, 10 for third). If two transformations are allowed: 1 bit per group of block sizes indicating which of the transformations to use (e.g. 0 for the one indicated first, 1 for the one indicated last). If only one transformation is allowed: No further signaling is needed as there is only one transformation allowed.
  • one signal indicates which transformations are allowed and one signal indicates where to switch the set of transformations using a total of three transformations (DCT-2, DCT-8, DST-7).
  • the transformation set indicator or a transformation indicator as described herein could be a series of signals or components of a signal. For example:
  • One bit for first transformation allowed e.g. DCT-8) 2.
  • One bit for second transformation allowed e.g. DST-7)
  • One bit for third transformation allowed (e.g. DCT-2, can be omitted if other two are zero where there is at least one transformation)
  • one bits per set of transformations and per allowed transformation can be used to indicate whether a transformation is part of a certain set of transformations.
  • a two-bit signal can indicate to use a certain set of transformations for blocks smaller than a given size and a different set of transformations for blocks of a given size or larger.
  • the decoder receives information that all three transforms are allowed. However, the first transformation (DCT-8) is only allowed for blocks of size up to 8 pixels in width or height. Now, if the decoder gets a block of size 4x4, the decoder will know that all three transforms are possible. Hence it will first get information whether it is DCT-2 or a DCT-8/DST-7. In the case it is DCT-8/DST-7, it will receive a transform index to tell if it is DCT-8 or DST-7. For example, the decoder could receive a transform index of one or more bits per dimension (vertical/horizontal) to tell if it is DCT-8 or DST-7.
  • transform syntax of the transform index could provide the one or more bits per horizontal transform either before or after the one or more bits per vertical transform.
  • one transform index could be used to represent the transformations per dimension.
  • the transform index could be coded as the following truncated unary using the syntax (horizontal transform, vertical transform):
  • bit coding schemes or syntaxes could be used, such as a bit coding scheme for the syntax (vertical transform, horizontal transform).
  • the decoder When the decoder decodes a block that is 16x16 pixels, the decoder will know that DCT-8 is not available. Hence the decoder will still receive the first bit selecting between DCT-2 or DST-7. However, if DST-7 is selected, no further bits are received. The decoder will know that both the vertical and horizontal transform will be DST-7. This will save two bits in this case.
  • a test scenario using DST-7 for all intra-coded luma blocks of sizes 4x4 to 32x32 and the DCT-2 for all other blocks showed a compression loss of 0.38% while reducing the encoding time to 62% compared to the VVC test model (VTM) version 2.0.1 in the All Intra configuration.
  • VTM VVC test model
  • an encoder described herein may itself receive an evaluation signal informing the encoder or otherwise indicating possible transformations the encoder is allowed to evaluate.
  • the evaluation signal may indicate explicitly an evaluation set of transformations the encoder is allowed to evaluate or provide contexts (e.g., contexts related to a picture or picture transmission) in which certain transformations will be evaluated (e.g., one of different block sizes for the picture, segmentation schemes, location of samples in the picture, prediction modes for the picture, etc.).
  • the encoder may evaluate the possible transformations of the evaluation set as described herein.
  • the encoder may be configured to transmit over a wireless network.
  • the wireless network may comprise and/or interface with any type of communication, telecommunication, data, cellular, and/or radio network or other similar type of system.
  • the wireless network may be configured to operate according to specific standards or other types of predefined rules or procedures.
  • wireless network may implement communication standards, such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), Narrowband Internet of Things (NB-loT), and/or other suitable 2G, 3G, 4G, or 5G standards; wireless local area network (WLAN) standards, such as the IEEE 802.1 1 standards; and/or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave and/or ZigBee standards.
  • GSM Global System for Mobile Communications
  • UMTS Universal Mobile Telecommunications System
  • LTE Long Term Evolution
  • NB-loT Narrowband Internet of Things
  • WiMax Worldwide Interoperability for Microwave Access
  • Bluetooth Z-Wave and/or ZigBee standards.
  • the term unit may have conventional meaning in the field of electronics, electrical devices and/or electronic devices and may include, for example, electrical and/or electronic circuitry, devices, modules, processors, memories, logic solid state and/or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and/or displaying functions, and so on, as such as those that are described herein.

Abstract

A method (200) for encoding a picture (120b) is provided. The method comprises generating (22) and transmitting (24) a transformation indicator (110, 940) indicating a transformation for one or more samples (130) of the picture (120b). The transformation is used to encode (26) the picture (120b). A method for decoding an encoded picture is provided. The method comprises receiving (32) a transformation indicator (110, 940) indicating a transformation for one or more samples (130) of the encoded picture. The method comprises receiving (34) a bitstream comprising the encoded picture. The method comprises decoding (36) the encoded picture in accordance with the received transformation indicator.

Description

TRANSFORMATION SELECTION BY TRANSMITTING A TRANSFORMATION SET INDICATOR FOR USE IN VIDEO CODING
RELATED APPLICATIONS
This application claims priority to U.S. Application No. 62/735,544, filed 24 September 2018 and U.S. Application No. 62/736,361 , filed 25 September 2018, the disclosures of which are incorporated in their entireties by reference herein.
TECHNICAL FIELD
The present disclosure relates generally to transformation indication, and more particularly to transformation indication for encoding and decoding a picture.
BACKGROUND
Transformations have been a part of video codecs for a long time. High Efficiency Video Coding (HEVC) is one example that uses transformations. HEVC is a block based video codec standardized by both the ITU-T and the Moving Picture Experts Group (MPEG) that utilizes both spatial and temporal prediction techniques. Spatial prediction reduces spatial redundancy and is achieved using intra (I) prediction from within the same frame of a current picture. Temporal prediction reduces temporal redundancy and is achieved using inter (P) or bi-directional inter (B) prediction on a block level using previously decoded reference pictures. Regardless of the particular type of prediction technique, however, the resultant differences between the original pixel data and the predicted pixel data, referred to as the“residual,” is transformed into the frequency domain and quantized. HEVC uses a scaled Discrete Cosine Transformation (DCT) basis function for blocks of sizes 4x4 to 32x32 as well as an alternative transformation derived from the Discrete Sine Transformation (DST) for 4x4 blocks. Quantizing the transformed residuals, the level of which is determined by the quantization parameter (QP), facilitates the control of a tradeoff between bitrate and the quality of the video. The transformed and quantized residual is then entropy coded before being transmitted to a decoder together with the necessary prediction parameters (e.g., prediction mode and motion vectors). Upon receipt, the decoder performs entropy decoding, inverse quantization, and inverse transformation to obtain the residual. The decoder then reconstructs the image from the residual using an intraprediction or inter-prediction technique.
In 2018, the Joint Video Experts Team (JVET) started the standardization of a new codec called Versatile Video Coding (VVC). This codec is aimed at succeeding HEVC and has the goal of providing significant bit rate savings at similar quality as HEVC. The standard is expected to be finalized in 2020/2021. During the standardization process the JVET adopted a tool called Multiple Transform Selection (MTS) into the draft of the standard. This tool allows three different core
transformations to be applied to the luminance channel in case of intra prediction: DCT-2, DCT- 8 and DST-7. These three transformations are tested for each block under certain further limitations (for example blocks with edge length of 64 samples always use the DCT-2) and the best one according to the rate-distortion optimization algorithm is applied. The process of testing a transformation by an encoder consists of several steps: (1 ) applying the forward
transformation, (2) applying quantization, (3) calculating bit cost of coding resulting transform coefficients, (4) applying the inverse transform, and (5) calculating the distortion. The encoder can select the transformation best suited for each block based on the testing. However, this makes testing different transformations computationally expensive for the encoder.
SUMMARY
Embodiments herein include a method for encoding a picture. The method comprises generating and transmitting a transformation indicator indicating a transformation for one or more samples of the picture. The transformation is used to encode the picture.
In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different block sizes or groups of block sizes.
In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different ranges of block sizes.
In one or more embodiments, the method for encoding a picture further comprising encoding the picture into a bitstream by transforming the one or more samples of the picture according to the transformation indicated by the transformation indicator.
In one or more embodiments, the picture is divided into segments according to a particular segmentation scheme and generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different segmentation schemes.
In one or more embodiments, the particular segmentation scheme is one of slices, tiles or flexible segments.
In one or more embodiments, the method for encoding a picture further comprising encoding the picture into a bitstream by transforming in a vertical direction and a horizontal direction. In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating different ones of the plurality of transformation indicators with transformations in a vertical direction and transformations in a horizontal direction.
In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different picture types.
In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with a location of a sample of the one or more samples within the picture.
In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different channels for transmission of at least a sample of the one or more samples.
In one or more embodiments, the generating a transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different prediction modes for the picture.
In one or more embodiments, transmitting the transformation indicator comprises transmitting the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
In one or more embodiments, the method of encoding a picture further comprises encoding the block of the picture into a bitstream by transforming in accordance with the transformation indicator and a predefined transformation.
In one or more embodiments, the transformation indicator indicates a transformation that uses a discrete cosine transformation (DCT) or discrete sine transformation (DST).
In one or more embodiments, the transformation indicator indicates the transformation implicitly by indicating a restriction restricting permissible predefined transformations.
In one or more embodiments, the transformation indicator is a first transformation indicator and the method for encoding a picture further comprises transmitting a second transformation indicator indicating a particular transformations that is not restricted by the first transformation indicator.
In one or more embodiments, the method for encoding a picture further comprises receiving a signal indicating a set of transformations for evaluating possible transformations for encoding the one or more samples of the picture; and evaluating the possible transformations according to the evaluation set.
In one or more embodiments, the generating the transformation indicator comprises determining a block size or block range for the picture or component of the picture; and generating the transformation indicator dependent on the determined block size or block range.
In one or more embodiments, the determined block size is smaller than or equal to 32 samples in at least one direction of the picture; and the transformation indicator indicates to use a discrete sine transformation (DST)-7.
Embodiments herein include a method for decoding an encoded picture. The method comprises receiving a transformation indicator indicating a transformation for one or more samples of the encoded picture. The method comprises receiving a bitstream comprising the encoded picture. The method comprises decoding the encoded picture in accordance with the received transformation indicator.
In one or more embodiments, the transformation indicator indicates to use one of a plurality of different transformations for a particular block size or group of block sizes when decoding the encoded picture.
In one or more embodiments, the transformation indicator indicates to use one of a plurality of different transformations for a particular range of block sizes when decoding the encoded picture.
In one or more embodiments, the receiving a transformation indicator comprises receiving a plurality of transformation indicators. The method of decoding an encoded picture further comprises determining which of respective transformation sets of the plurality of transformation indicators to use when decoding the encoded picture.
In one or more embodiments, the picture is divided into segments according to a particular segmentation scheme of a plurality of segmentation schemes. The transformation indicator indicates to use one of a plurality of different transformations for the particular segmentation scheme when decoding the encoded picture.
In one or more embodiments, the plurality of segmentation schemes comprise one or more of slices, tiles or flexible segment segmentation schemes.
In one or more embodiments, the method for decoding an encoded picture further comprises determining a picture type; and selecting a received transformation indicator for decoding the encoded picture based on the picture type.
In one or more embodiments, the method for decoding an encoded picture further comprises determining a location of a sample within the encoded picture; and selecting a received transformation indicator for decoding the encoded picture based on the location of the sample in the encoded picture. In one or more embodiments, the method for decoding an encoded picture further comprises determining a channel in which the bitstream is received; and selecting a received transformation indicator for decoding the encoded picture based on the channel.
In one or more embodiments, receiving the transformation indicator comprises receiving the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
In one or more embodiments, the transformation indicator indicates a transformation that uses a discrete cosine transformation (DCT) or discrete sine transformation (DST).
In one or more embodiments, the transformation indicator indicates the transformation implicitly by indicating a restriction restricting permissible predefined transformations at the decoder.
In one or more embodiments, decoding the encoded picture comprises performing a reverse transformation using the transformation indicated by the transformation indicator.
Embodiments herein include a method for encoding a picture. The method comprises generating and transmitting a transformation set indicator indicating a transformation set of one or more transformations. The picture is encoded using at least one of the transformations of the transformation set.
In one or more embodiments, the transformation set comprises only one transformation.
In this case, the transformation set indicator can indicate a single transformation. Alternatively, the transformation set indicator indicates multiple transformations.
In one or more embodiments, the method for encoding a picture further comprises generating and transmitting a transformation indicator. The transformation indicator indicates a transformation for one or more samples of the picture. The transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different block sizes or groups of block sizes.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different ranges of block sizes.
In one or more embodiments, the transformation set comprises discrete cosine transformation (DCT) or discrete sine transformation (DST).
In one or more embodiments, the method of encoding a picture further comprises encoding the picture into a bitstream by evaluating a transformation in the transformation set in accordance with the transformation set indicator. In one or more embodiments, the picture is divided into segments according to a particular segmentation scheme and generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more
transformations and associating one or more of the plurality of transformation set indicators with one of different segmentation schemes. For instance, the particular segmentation scheme is one of slices, tiles or flexible segments.
In one or more embodiments, the method of encoding a picture further comprises encoding the picture into a bitstream by transforming in a vertical direction and a horizontal direction.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating different ones of the plurality of transformation set indicators with transformations performed in a vertical direction and transformations performed in a horizontal direction.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different picture types.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different sample locations within the picture.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different channels for transmission of picture samples.
In one or more embodiments, the generating the transformation set indicator comprises generating a plurality of transformation set indicators each indicating different sets of one or more transformations and associating one or more of the plurality of transformation set indicators with one of different prediction modes for the picture.
In one or more embodiments, the transmitting the transformation set indicator comprises transmitting the transformation set indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
In one or more embodiments, the method of encoding a picture further comprises encoding the block of the picture into a bitstream by transforming in accordance with the transformation set indicator. In one or more embodiments, the transformation set indicator indicates the transformation set implicitly by indicating one or more restrictions of permissible predefined transformations.
In one or more embodiments, the method of encoding a picture further comprises determining a minimum number of bits for transmitting a transformation indicator indicating a transformation for one or more samples of the picture. The transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
In one or more embodiments, the method of encoding a picture further comprises receiving a signal indicating an evaluation set of transformations for evaluating possible transformations for encoding the one or more samples of the picture; and evaluating the possible transformations according to the evaluation set.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different block sizes or groups of block sizes.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different ranges of block sizes.
In one or more embodiments, the method of encoding a picture further comprises generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different segmentation schemes. For instance the particular segmentation scheme is one of slices, tiles or flexible segments.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating different ones of the plurality of transformation indicators with transformations in a vertical direction and transformations in a horizontal direction.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different picture types.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with a location of a sample of the one or more samples within the picture.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different channels for transmission of at least a sample of the one or more samples.
In one or more embodiments, the generating the transformation indicator comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different prediction modes for the picture.
In one or more embodiments, the transmitting the transformation indicator comprises transmitting the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
In one or more embodiments, the method of encoding a picture further comprises determining, based on the transformation set indicator, the number of bits for transmitting a subsequent transformation indicator indicating a transformation for one or more samples of the picture. The transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
In one or more embodiments, the generating the transformation set indicator or the transformation indicator comprises determining a block size or block range for the picture or component of the picture; and generating the transformation set indicator or the transformation indicator dependent on the determined block size or block range.
In one or more embodiments, the transformation set indicator or the transformation indicator is dependent on a threshold related to a block size of 32 samples in at least one direction of the picture.
Embodiments herein include a method for decoding an encoded picture. The method comprises receiving a transformation set indicator indicating a transformation set of one or more transformations. The encoded picture is encoded using at least one transformations of the transformation set. The method comprises receiving a bitstream comprising the encoded picture. The method comprises decoding the encoded picture in accordance with the received transformation set indicator.
In one or more embodiments, the transformation set comprises only one transformation.
In this case, the transformation set indicator can indicate a single transformation. Alternatively, the transformation set indicator indicates multiple transformations.
In one or more embodiments, the method for decoding an encoded picture further comprises receiving a transformation indicator indicating a single transformation of the transformation set for one or more samples of the encoded picture. The decoding the encoded picture comprises decoding the encoded picture in accordance with the received transformation set indicator and the transformation indicator. In one or more embodiments, the transformation set comprises discrete cosine transformation (DCT) or discrete sine transformation (DST).
In one or more embodiments, the transformation set indicator indicates the transformation set implicitly by indicating one or more restrictions of permissible predefined transformations.
In one or more embodiments, the method for decoding an encoded picture further comprises determining, based on the transformation set indicator, the number of bits for receiving a subsequent transformation indicator indicating a transformation for one or more samples of the picture. The transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set.
In one or more embodiments, the transformation set indicator indicates that the transformation set is to be used for a particular block size or group of block sizes when decoding the encoded picture.
In one or more embodiments, the transformation set indicator indicates that the transformation set is to be used for a particular range of block sizes when decoding the encoded picture.
In one or more embodiments, the receiving the transformation set indicator comprises receiving a plurality of transformation set indicators. The method further comprises determining which of respective transformation sets of the plurality of transformation set indicators to use when decoding the encoded picture.
In one or more embodiments, the picture is divided into segments according to one or more of a plurality of segmentation schemes. The transformation set indicator indicates that the transformation set is to be used for a particular segmentation scheme of the plurality of segmentation schemes when decoding the encoded picture. For instance, the plurality of segmentation schemes comprise one or more of slices, tiles or flexible segment segmentation schemes.
In one or more embodiments, the method for decoding an encoded picture further comprises determining a picture type; and selecting a received transformation set indicator for decoding the encoded picture based on the picture type.
In one or more embodiments, the method for decoding an encoded picture further comprises determining a location of a sample within the encoded picture; and selecting a received transformation set indicator for decoding the encoded picture based on the location of the sample in the encoded picture.
In one or more embodiments, the method for decoding an encoded picture further comprises determining a channel in which the bitstream is received; and selecting a received transformation set indicator for decoding the encoded picture based on the channel.
In one or more embodiments, the receiving the transformation set indicator comprises receiving the transformation set indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
In one or more embodiments, the decoding the encoded picture comprises performing a reverse transformation using the transformation indicated by the transformation indicator.
In one or more embodiments, the transformation indicator indicates to use one of a plurality of different transformations for a particular block size or group of block sizes when decoding the encoded picture.
In one or more embodiments, the transformation indicator indicates to use one of a plurality of different transformations for a particular range of block sizes when decoding the encoded picture.
In one or more embodiments, the receiving the transformation indicator comprises receiving a plurality of transformation indicators; and the method further comprises determining which of the plurality of transformation indicators to use when decoding the encoded picture.
In one or more embodiments, the transformation indicator indicates to use one of different transformations for a segmentation scheme of the picture when decoding the encoded picture.
In one or more embodiments, the method for decoding an encoded picture further comprises selecting a received transformation indicator for decoding the encoded picture based on a picture type for the picture.
In one or more embodiments, the method further comprises selecting a received transformation indicator for decoding the encoded picture based on the location of the sample in the encoded picture.
In one or more embodiments, the method for decoding an encoded picture further comprises selecting a received transformation indicator for decoding the encoded picture based on the channel in which the bitstream is received.
In one or more embodiments, the receiving the transformation indicator comprises receiving the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
In one or more embodiments, the decoding the encoded picture comprises performing a reverse transformation using the transformation indicated by the transformation indicator.
Embodiments herein include an encoder circuit configured to implement any of the methods described herein for encoding a picture.
Embodiments herein include an encoder comprising processing circuitry configured to perform any of the methods described herein for encoding a picture. In one or more embodiments the encoder comprises power supply circuitry configured to supply power to the encoder.
Embodiments herein include an encoder comprising processing circuitry and memory. The memory contains instructions executable by the processing circuitry whereby the encoder is configured to perform any of the methods described herein for encoding a picture.
In one or more embodiments, an encoder described herein comprises a transmitter for transmitting the bitstream.
Embodiments herein include a computer program comprising instructions which, when executed by at least one processor of an encoder, causes the encoder to carry out any of the methods described herein for encoding a picture.
Embodiments herein include a non-transitory computer-readable storage medium containing a computer program comprising executable instructions that, when executed by a processing circuit in an encoder causes the encoder to perform any of the methods described herein for encoding a picture.
Embodiments herein include a decoder circuit configured to implement any of the methods for decoding an encoded picture described herein.
Embodiments herein include a decoder comprising processing circuitry configured to perform any of the methods for decoding an encoded picture described herein. In one or more embodiments, the decoder comprises power supply circuitry configured to supply power to the decoder.
Embodiments herein include a decoder comprising processing circuitry and memory. In one or more embodiments, the memory contains instructions executable by the processing circuitry whereby the decoder is configured to perform any of the methods for decoding an encoded picture described herein.
In one or more embodiments, a decoder circuit or decoder described herein is comprised in a display device for displaying the decoded segments.
Embodiments herein include a computer program comprises instructions which, when executed by at least one processor of a decoder described herein, causes the decoder to carry out any of the methods for decoding an encoded picture described herein.
Embodiments herein include a non-transitory computer-readable storage medium containing a computer program comprising executable instructions that, when executed by a processing circuit in a decoder causes the decoder to perform any of the methods for decoding an encoded picture described herein.
Embodiments herein include a carrier containing a computer program described herein.
In one or more embodiments, the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium. BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 A depicts an example system for transmitting a transformation indicator according to one or more embodiments.
Figure 1 B depicts a system for generating one or more samples for transmission on a channel according to one or more embodiments.
Figure 2 depicts a method for transmitting a transformation indicator according to one or more embodiments.
Figure 3 depicts a method for receiving a transformation indicator according to one or more embodiments.
Figure 4 depicts an encoder according to one or more embodiments.
Figure 5 depicts a decoder according to one or more embodiments.
Figure 6 depicts an encoder according to one or more embodiments.
Figure 7 depicts a decoder according to one or more embodiments.
Figure 8 depicts a system for encoding and decoding a picture according to one or more embodiments.
Figure 9 depicts a system for transmitting a transformation set indicator according to one or more embodiments.
according to one or more embodiments.
Figure 10 depicts a method for transmitting a transformation set indicator according to one or more embodiments.
Figure 1 1 depicts a method for receiving a transformation set indicator according to one or more embodiments.
Figure 12 depicts method for transmitting a transformation set indicator and
transformation indicator according to one or more embodiments.
Figure 13 depicts a method for receiving a transformation set indicator and
transformation indicator according to one or more embodiments.
DETAILED DESCRIPTION
There currently exist certain challenge(s) with an encoder testing different
transformations to apply to a luminance channel as part of an MTS tool. The VVC test model (VTM) version 2.0.1 does an exhaustive search of three different transformations (DCT-2, DCT- 8 and DST-7) to find the best suited one for an optimized rate-distortion cost. Since the process of testing a transformation consists of many steps - including (1 ) applying the forward transformation, (2) applying quantization, (3) calculating bit cost of coding resulting transform coefficients, (4) applying the inverse transform, and (5) calculating the distortion) - it is computationally complex to test three transformations for each intra-coded block. The version of the transformation tool that was adopted into the VVC test model at the July 2018 JVET meeting roughly doubled the encoding time for the All Intra configuration. This complexity increase has the potential to make the WC standard unattractive for
implementation.
Certain aspects of the present disclosure and their embodiments may provide solutions to these or other challenges.
Figure 1A indicates an example system 100 according to one or more embodiments described herein. As shown system 100 comprises an encoder 100 and a decoder 150. The encoder 100 generates and transmits a transformation indicator 1 10 in one or more
transmissions 140. The transformation indicator 1 10 indicates a transformation for one or more samples 130 of a picture 120b. For example, samples described herein may be samples of a pixel (e.g., pixels 130), samples transmitted on a channel, such as a chroma or luminance channel, and/or samples transmitted toward a decoder (e.g., decoder 150). The transformation is used to encode the picture 120b. For example, the transformation indicator could indicate a transformation of a plurality of different possible transformations (e.g., a DST or DCT). The encoder 100 generates the transformation indicator 1 10 by associating a particular one of these different possible transformations with a possible aspect of the picture 120b or picture transmission 142 (e.g., one of different block sizes for the picture, segmentation schemes, location of samples in the picture, prediction modes for the picture, etc.). For instance, block size can be expressed in the number of pixels in a component of a picture. The encoder optionally then encodes using the transformation indicated by the transformation indicator 1 10 and transmits the picture 120b in one or more transmissions 142. For instance, the encoder transmits the transformation indicator 1 10 toward a decoder 150.
As shown in Figure 1A, a system 100 alternatively or additionally, comprises a decoder 150. The decoder 150 receives the transformation indicator 110 indicating a transformation for one or more samples 130 of the encoded picture 120b. The decoder 150 also optionally receives a bitstream comprising the encoded picture 120b (e.g., from an encoder 100 transmitting the transformation indicator 1 10). The bitstream may include other encoded pictures. For instance, pictures 120a and 120c may be part of a video stream. Progression icon 152 is used to show that the pictures 120a, 120b, and 120c are part of a progressing video stream. The progression icon 152 is not apart of the pictures 120. Pictures 120b may be a component of a larger picture (e.g., that has other components pictures 120a and/or 120c). The decoder 150 decodes the encoded picture in accordance with the received transformation indicator 1 10. For example, the decoder performs a reverse transformation using the transformation indicated by the transformation indicator 1 10.
Certain embodiments may provide one or more of the following technical advantage(s).
One or more embodiments restrict the use of different transformations (e.g., by assigning one transformation per block size to use). This way, it is not necessary to test different transformations, which reduces the computational complexity. There is nearly no loss in compression efficiency when selecting the transformations in an advantageous way. The signaling of which transformation to use can be done either explicitly at different granularities or implicitly by setting decoder defaults. In some examples, the transformation indicator 1 10 indicates the transformation implicitly by indicating a restriction restricting permissible predefined transformations. The transformation indicator 1 10 could indicate a single transformation or a reduced set of possible transformations.
In one or more embodiments, by assigning which transformation or a limited set of transformations to use it is no longer necessary to perform an exhaustive evaluation to see which of available transformations (e.g., three different available transformations) gives the best compression results. This strongly reduces the computational complexity of the encoder.
One or more embodiments greatly reduce the computational complexity of the encoder. At the same time, hardware implementations can be simplified as support for one transformation (DCT-8) is completely removed as explained in a test scenario described herein. The impact on compression efficiency is very small and is more than made up by the gain in encoding time.
One or more embodiments, described herein are useful for indicating a transformation applied to a luminance or chroma channel. For instance, Figure 1 B shows a system for generating one or more samples for transmission on a channel (e.g., a luminance or chroma channel). A display 160 (e.g., a television) may have a screen showing a picture with pixels. In this case there are 8x4 pixels (e.g., pixel 162). Under an RGB scheme, each pixel has three different samples or values: one for a red color component (e.g., red component sample 170 for pixel 162), one for a green component (e.g., green component sample 172 for pixel 162), and one for a blue component (e.g., blue component sample 174 for pixel 174) of a pixel. Color values are then converted from RGB into a different color space, YUV, with Y representing the luminance and U and V the chrominance of the picture. The YUV color space exploits the fact that humans are more sensitive to luminance than color differences. The chrominance components (e.g., U component 182 and V component 184) can then be subsampled by a factor of 2 in both width and height, leaving the U and V components at size 4x2 samples (e.g.,
U sample 192 and V sample 194). Each of the U components 192 and V components 194 can then be samples representing multiple pixels for transmission on a chroma channel. Each of the Y components 190 can be samples representing a pixel for transmission on a luminance channel. The Y components 190 can be identical to the Y components 180 since there is no subsambling. One or more embodiments are useful for indicating a transformation for one or more samples transmitted on a luminance or chroma channel. In view of the embodiments above, the present disclosure generally includes the following embodiments, e.g., which may address one or more of the issues or examples disclosed herein Figure 2 depicts a method 200 in accordance with particular embodiments. The method 200 comprises generating (22) a transformation indicator and transmitting (24) the
transformation indicator. The transformation indicator indicates a transformation for one or more samples of the picture. The transformation is used to encode the picture. For example, an encoder may use the transformation to encode the picture and a decoder may perform a reverse transformation to decode the encoded image. Optionally, the method 200 further comprises encoding (26) the one or more samples of the picture according to the transformation and transmitting the picture into a bitstream.
Figure 3 depicts a method 300 in accordance with other particular embodiments. The method 300 can be performed in conjunction with or separately from method 200. The method 300 comprises receiving (32) a transformation indicator indicating a transformation for one or more samples of the encoded picture. The method 300 comprises receiving (34) a bitstream comprising the encoded picture. The method 300 comprises decoding (36) the encoded picture in accordance with the received transformation indicator. For example, the decoding comprise performing a reverse transformation using the transformation indicated by the transformation indicator.
In one or more embodiments, a transformation indicator indicates a set of one or more transformations. In this case, a transformation indicator can be referred to more generally as a transformation set indicator.
Figure 9 indicates an example system 900 for transmitting a transformation set indicator. As shown system 900 comprises an encoder 900 and a decoder 950. The encoder 900 generates and transmits a transformation set indicator 910 in one or more transmissions 950. The transformation set indicator 910 indicates a transformation set of one or more
transformations (e.g., transformations T1 , T2). The picture 120b is encoded using at least one of the transformations of the transformation set (e.g. transformation T 1 ). The transformation indicator 910 could indicate a set with only a single transformation (e.g., only transformation T 1 ) or a reduced set of a plurality of different possible transformations (e.g., transformations T 1 and T2 of a set of transformations T1 , T2 and T3). The encoder 900 generates the transformation set indicator 910 by associating a transformation set with a possible aspect of the picture or picture transmission (e.g., one of different block sizes for the picture, segmentation schemes, location of samples in the picture, prediction modes for the picture, etc.). The encoder optionally then encodes using a transformation set indicated by the transformation set indication 910 and transmits the picture 120b.
As shown in Figure 9, the decoder 950 receives the transformation set indicator 910 indicating a transformation set of one or more transformations. The decoder 950 also may receive a bitstream comprising the encoded picture 120b (e.g., in one or more transmissions
954). The bitstream may include other encoded pictures (e.g., pictures 120a and 120c that are part of a video stream). The decoder 950 decodes the encoded picture 120b in accordance with the received transformation set indicator 910. For example, the decoder 950 performs a reverse transformation using a transformation of the transformation set indicated by the transformation set indicator 910.
As shown in Figure 9, optionally, the encoder 900 generates and sends in addition to a transformation set indicator 910 other transformation indicators (e.g., transformation indicator 940) (e.g., in one or more transmissions 952). The transformation indicator 940 indicates a transformation (e.g., transformation T1 ) for one or more samples 130 of the picture 120b used to encode the picture 120b. The transformation is one of the transformation set indicated by the transformation set indicator 910.
In one or more embodiments, reducing the available sets of transformations, reduces testing of different transformations, which reduces computational complexity (i.e. even if there are still multiple possible transformations indicated by the transformation set indicator). A transformation set indicator (e.g., transformation indicator 940) can still be used as needed to indicate a particular transformation in the reduced set.
Figure 10 depicts a method 1000 in accordance with particular embodiments for encoding an encoded picture. The method 1000 comprises generating (1002) and transmitting (1004) a transformation set indicator indicating a transformation set of one or more
transformations. The picture is encoded using at least one of the transformations of the transformation set. Optionally, the method 1000 further comprises encoding the one or more samples of the picture according to the transformation set indicator and transmitting the picture into a bitstream (1006).
Figure 1 1 depicts a method 1 100 in accordance with other particular embodiments for decoding an encoded picture. The method 1 100 can be performed in conjunction with or separately from method 1000. The method 1 100 comprises receiving (1 102) a transformation set indicator indicating a transformation set of one or more transformations. The picture is encoded using at least one of transformations of the transformation set. The method 1 100 comprises receiving (1 104) a bitstream comprising the encoded picture. The method 1 100 comprises decoding (1 106) the encoded picture in accordance with the received transformation set indicator. For example, the decoding comprise performing a reverse transformation using the transformation indicated by the transformation indicator. In one or more embodiments, reducing the available sets of transformations, reduces the amount of signaling required to transmit a transformation indicator as described herein (i.e. even if a transformation indicator is used to transmit a single or even further reduced set of possible transformations).
Figure 12 depicts a method 1200 in accordance with other particular embodiments for encoding a picture. The method 1200 comprises generating (1202) and transmitting (1204) a transformation set indicator indicating a transformation set of one or more transformations. The picture is encoded using at least one of the transformations of the transformation set. The method 1200 comprises generating (1206) and transmitting (1208) a transformation indicator indicating a transformation for one or more samples of the picture. The transformation for one or more samples of the picture is used to encode the picture and is one of the transformation set. For instance, the transformation indicator indicates a single transformation or a reduced set of transformations in the set of transformations indicated by the transformation set indicator. Optionally, the method 1200 further comprises encoding the one or more samples of the picture according to the transformation set indicator and/or transformation indicator and transmitting the picture into a bitstream (1210).
Figure 13 depicts a method 1300 in accordance with other particular embodiments for decoding an encoded picture. The method 1300 can be performed in conjunction with or separately from method 1200. The method 1300 comprises receiving (1302) a transformation set indicator indicating a transformation set of one or more transformation. The encoded picture is encoded using at least one of transformations of the transformation set. The method 1300 comprises receiving (1304) a transformation indicator indicating a transformation of the transformation set for one or more samples of the encoded picture. The method 1300 comprises receiving (1306) a bitstream comprising the encoded picture. The method 1300 comprises decoding (1308) the encoded picture in accordance with the received transformation set indicator and/or the received transformation indicator.
Note that apparatuses described herein may perform the methods herein and any other processing by implementing any functional means, modules, units, or circuitry. In one embodiment, for example, the apparatuses comprise respective circuits or circuitry configured to perform the steps shown in the method figures. The circuits or circuitry in this regard may comprise circuits dedicated to performing certain functional processing and/or one or more microprocessors in conjunction with memory. For instance, the circuitry may include one or more microprocessor or microcontrollers, as well as other digital hardware, which may include digital signal processors (DSPs), special-purpose digital logic, and the like. The processing circuitry may be configured to execute program code stored in memory, which may include one or several types of memory such as read-only memory (ROM), random-access memory, cache memory, flash memory devices, optical storage devices, etc. Program code stored in memory may include program instructions for executing one or more telecommunications and/or data communications protocols as well as instructions for carrying out one or more of the techniques described herein, in several embodiments. In embodiments that employ memory, the memory stores program code that, when executed by the one or more processors, carries out the techniques described herein.
An encoder or decoder according to one or more embodiments described herein could be implemented using a suitable combination of hardware and/or software. Figure 4 is a schematic diagram showing components of an encoder. The encoder 470, comprising processing circuitry 400 (e.g., one or more processors) and, e.g., one or more memories 410, is configured to carry out one or more methods according to embodiments described herein. The processing circuitry 400 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 420 stored in one or more memories 410. The one or more memories 510 is for instance, a data buffer, Read-Write Memory (RWM), Read-Only memory (ROM), random-access memory (RAM), cache memory, flash memory devices, optical storage devices, etc. The encoder could comprise an interface 440 with an input and/or output circuit 430 configured to transmit a bitstream, transformation indicator, and/or transformation set indicator, e.g., via transmitter 450. Transmitter 450 could also be a transceiver.
As shown in Figure 6 an encoder 600 could have units, modules, or circuits configured to carry out methods described herein. For instance, the encoder 600 comprises a transmit unit 610 for transmitting a transformation indicator, transformation set indicator, and/or bitstream. The encoder 600 comprises a generate unit 630 for generating the transformation indicator, transformation set indicator, and/or bitstream. The encoder 600 optionally includes an encode unit 620 for encoding the bitstream.
Figure 5 is a schematic diagram showing components of decoder 570. The decoder 570, comprising processing circuitry 500 (e.g., one or more processors) and, e.g., one or more memories 510, is configured to carry out one or more methods according to the embodiments described herein. The processing circuitry 500 could be any combination of one or more of a suitable central processing unit (CPU), multiprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC) etc., capable of executing software instructions contained in a computer program 520 stored in one or more memories 510. The one or more memories 510 is for instance, a data buffer, Read-Write (RWM) Memory or Read- Only (ROM) memory. The decoder 570 comprises an interface 540 with an input and/or output circuit 530 configured to receive a bitstream, transformation indicator, and/or transformation set indicator, e.g., via receiver 550. The receiver 550 could also be a transceiver.
As shown in Figure 7, a decoder could have units, modules, or circuits configured to carry out methods described herein. For instance, the decoder 700 comprises a receive unit 710 configured to receive a transformation indicator, transformation set indicator, and/or bitstream. The decoder 700 comprises a decode unit 720 to decode a picture of the bitstream based on the received transformation indicator and/or the received transformation set indicator.
Those skilled in the art will also appreciate that embodiments herein further include corresponding computer programs. A computer program comprises instructions which, when executed on at least one processor of an apparatus, cause the apparatus to carry out any of the respective processing described above. A computer program in this regard may comprise one or more code modules corresponding to the means or units described above.
Embodiments further include a carrier containing such a computer program. This carrier may comprise one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
In this regard, embodiments herein also include a computer program product stored on a non-transitory computer readable (storage or recording) medium and comprising instructions that, when executed by a processor of an apparatus, cause the apparatus to perform as described above.
Embodiments further include a computer program product comprising program code portions for performing the steps of any of the embodiments herein when the computer program product is executed by a computing device. This computer program product may be stored on a computer readable recording medium.
Additional embodiments will now be described. At least some of these embodiments may be described as applicable in certain contexts (e.g., protocols, and/or network types) for illustrative purposes, but the embodiments are similarly applicable in other contexts not explicitly described.
Figure 8 shows an example system or method 800 in which an encoder or decoder described herein would be useful. The system comprises a media source (e.g., a capture, renderer or file). The media source is fed to a projection mapping 820 and then to an encoder or transcoder, e.g. an encoder as described herein such as a title encoder or transcoder. The encoded information is stored in storage 840 and then fed to a server 850. It can be transmitted over a network 860 to a viewing device 870. For example the image is one of video, and the viewing device 870 has a decoder as described herein for decoding the partitioned image, rendering 890 the image and displaying the image on a display 900 to a user of the viewing device 870. Such a viewing device can be, for example, a Head Mounted Display (HMD) device or any display device.
One or more embodiments are applicable to applications in which a viewing device 870 receives one or more images in connection with a particular gaze direction of the device. In one embodiment, the device has received information from the server 850 explaining what streams are available and information about each stream such as spatial coverage and bitrate. The gaze direction of the viewing device 870 is captured and the viewing device 870 requests a subset of streams from the server 850. The viewing device 870 receives streams and composes a single bitstream from the streams and feeds the bitstream to the decoder 880. The viewing device 870 has the necessary information about the streams (e.g., tile streams) and knows how it composed the single bitstream. Therefore, the viewing device 870 is able to convert the decoded pictures into pictures that are suitable for rendering.
In another embodiment, the gaze direction of the viewing device 870 is captured and sent to the server 850. The server 850 composes a single bitstream from the stored streams (e.g., tile streams) and sends the bitstream to the decoder 880. The necessary information on how to convert the decoded pictures into pictures that are suitable for rendering is sent along with the bitstream. The viewing device 870 decodes the pictures (e.g., using decoder 880), converts them and renders them (e.g. using rendering 890). Optionally, the viewing device 870 or client continuously sends requests for what bitrate the stream should have.
In the same or different system, a codec using the proposed solution can determine which transformation to use for a given block of a picture based on one or more examples (1-6) described below. As used herein the term signal can refer to one or more messages. The one or more messages can comprise one or more indicators (or components of indicators) as described herein. A transformation indicator could also be referred to as a transformation indication or a setting for a transformation (i.e. a transformation can be set). A transformation set indicator could also be referred to as a transformation set indication or a setting for a transformation set (i.e. a transformation set can be set).
1. In one or more embodiments, the transformation (or transformation set) can be set based on a signal which indicates that larger blocks use one certain transformation and smaller blocks use a different transformation.
For example, one or more transformation indicators could be sent in a same or different signal indicating that blocks with a size of 64x64 use the DCT-2 and blocks smaller than 64x64 use the DST-7. One example of an implementation could be to have a two-bin signal with each possible value representing a crossover point.
1 1 : DCT-2 for size 64, DST-7 for smaller
10: DCT-2 for sizes 32 and larger, DST-7 for smaller
01 : DCT-2 for sizes 16 and larger, DST-7 for smaller
00: DCT-2 for sizes 8 and larger, DST-7 for smaller
2. In one or more embodiments, the transformation (or transformation set) can be set based on a signal which determines for each block size or a group of block sizes which transformation to use.
For example, one bin per group of block sizes is sent, indicating which transformation to use. Every group contains at least one block size.
3. In one or more embodiments, the transformation (or transformation set) can be set based on a predefined transformation for certain block sizes and a signal determining which transformation to use for other block sizes. Example 3 could be a subset of Example 2, where the signal is only sent for certain block sizes, whereas other block sizes use a predefined transform.
4. In one or more embodiments, the transformation (or transformation set) can be set based on a signal indicating which transformation to use for each block size or each group of block sizes from a set of at least three transformations.
5. In one or more embodiments, the transformation (or transformation set) can be set based on a partition type or picture type.
HEVC uses a block structure where each top level coding block, i.e. the largest block in the coding block partitioning referred to herein as the Coding Tree Unit (CTU), can be partitioned by a Quad Tree (QT) structure. This partitioning produces coding block partitions, referred to herein as coding units (CUs).
The concept of slices in HEVC divides the picture into independently coded slices, where each slice is read in raster scan order in units of CTUs. Different coding types could be used for slices of the same picture. In one or more embodiments, a transformation indicator indicates one of different transformations where at least one transformation of the different transformations is associated with or otherwise determined by a slice type or characteristic. The transformation indicator could be a transformation set indicator indicating one of different transformation sets where at least one transformation of the different transformation sets is associated with or otherwise determined by a slice type or characteristic. For example, a slice could either be an l-slice, P-slice or B-slice.
1 ) I slice: A slice in which all CUs of the slice are coded using only intrapicture prediction.
2) P slice: In addition to the coding types of an I slice, some CUs of a P slice can also be coded using interpicture prediction with at most one motion-compensated prediction signal per picture buffer (PB) (i.e., uniprediction).
3) B slice: In addition to the coding types available in a P slice, some CUs of the B slice can also be compensated interpicture prediction with at most two motion compensated prediction signals per PB (i.e., biprediction).
The HEVC video coding standard also includes a tool called“Tiles” that divides a picture into rectangular, spatially independent regions. Using tiles, a picture in HEVC can be partitioned into rows and columns of samples where any given tile is located at an intersection of a given row and a given column. The tile structure is signaled in, for example, the Picture Parameter Set (PPS). In one or more embodiments, a transformation indicator indicates one of different transformations where at least one transformation is associated with or otherwise determined by a tile type or characteristic. The transformation indicator could be a
transformation set indicator indicating one of different transformation sets where at least one transformation is associated with or otherwise determined by a tile type or characteristic. Flexible segments include other partitioning that involve non-rectangular titles as well as partitions in a checkerboard pattern. In one or more embodiments, a transformation indicator indicates one of different transformations where at least one transformation of the different transformations is associated with or otherwise determined by a flexible segment type. The transformation indicator could be a transformation set indicator indicating one of different transformation sets where at least one transformation in the different transformation sets is associated with or otherwise determined by a flexible segment type.
In one or more embodiments, a transformation indicator (or transformation set) indicates one of different transformations where at least one transformation (or transformation set) is associated with a picture type. Picture types can refer to picture types of a network abstraction layer (NAL) unit syntax structure. Table 1 below shows different picture types. Of course pictures as described herein could have other types (e.g., according to other syntax structures).
Figure imgf000024_0001
Figure imgf000024_0002
6. In one or more embodiments, the transformation (or transformation set) can be set based on an evaluation of at least one transformation (e.g., by an encoder). Which
transformations the encoder can evaluate is indicated by (a) a signal as described above (e.g., a transformation indicator or transformation set indicator) and/or (b) a signal indicating which transformations the encoder is allowed to evaluate. For instance applying example 6 to Example 1 , the encoder can chose between one set of transformations for smaller block sizes and another set for larger block sizes, with a signal indicating where to switch transformation sets. As another example, applying example 6 to Example 2, the encoder can chose from a set of transformations for each group of block sizes, with a signal indicating a specific set for each group of block sizes. In one or more embodiments, the set of transformations which are available can be any number larger than one. This covers both cases where a transformation is applied to the entire block as a 2-dimensional transformation as well as the case where the vertical and horizontal directions are subjected to transformations separately. In the latter case, the transformations applied to the horizontal and vertical directions can be identical but do not have to be. For instance, the picture 120b in Figures 1A and 9 is shown as being arranged in a configuration of 4 samples by 4 samples. However, other pictures or blocks of picture 120b may have different arrangements. For instance in other embodiments, the picture 120b or a block of picture 120b is only samples 130a-130h. Thus, the block size in a particular direction may differ resulting in different transformations applied to a horizontal and vertical direction.
A signal indicating which transformation or transformation set to use in any of the settings above can be signaled at different positions in the bitstream. This position may be in any of the following: profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header, segment header.
In one or more embodiments, the transformation indicator can be preceded by a different signal (e.g., a transformation set indicator) which indicates which transformations an encoder or decoder is allowed to use. For example, one signal per available transformation may be sent, each one indicating whether the transformation can be used by the encoder. This signal may also be sent without a following transformation indicator signal. This allows the encoder to test all allowed transformations in the current partition of the picture or video.
In one or more embodiments, the transformation indicator or the transformation set indicator contains an indication of one or more particular transformations comprised in a set of transformations. For example, if a set of transformations is allowed to be evaluated by an encoder or decoder for a particular block size, the transformation indicator or the transformation set indicator may indicate a particular one in the set for evaluation (e.g., to avoid the processing costs of an evaluation).
Specific, non-limiting examples of how a distribution of used transformations in accordance with one or more transformation indicators can look is as follows:
1. A transformation indicator (or transformation set indicator) could be associated with a location of a sample. For example, a transformation indicator could indicate transformations are not applied to edges of at least 128 samples.
2. A transformation indicator (or transformation set indicator) could be associated with a particular channel. For instance, samples of a picture could be sent on different channels (e.g., a chroma channel and a lumna/luminance channel) for transporting different components of a picture (e.g., color components of a picture and luminance). For example, if a block is in the chroma channel, the transformation indicator could indicate to use the DCT-2 in both directions. 3. A transformation indicator (or transformation set indicator) could be associated with a particular prediction mode (e.g., intra prediction mode, inter (B) prediction mode and inter (P) prediction mode). For example, the transformation indicator could indicate if a block uses interprediction, use the DCT-2 in both directions.
4. A transformation indicator (or transformation set indicator) could be associated with a particular block size. For example, the transformation indicator could indicate if a block has a size of 64 by 64 samples, use the DCT-2 in both directions.
5. A transformation indicator (or transformation set indicator) could be associated with a combination of features described herein. For example, the transformation indicator could indicate if a block has a size of 64 by N samples with N = {4, 8, 16, 32}, use the DCT-2 on the edge with a size of 64 samples and the DST-7 on the other edge.
6. A transformation indicator (or transformation set indicator) could be one of a plurality of indicators (e.g., 1-5 above) indicating rules for determining the transformation (or transformation set) (e.g., providing a hierarchy of rules) or a default transformation (e.g., if no rule applies). For instance, the transformation indicator can indicate that in other cases, use the DST-7 in both directions.
In another embodiment, the implementation takes a“transformation allowed”-flag into account with a total of three transformations (DCT-2, DCT-8, DST-7). For instance, a transformation set indicator or a transformation indicator as described herein could be a series of flags indicating what transformations are allowed. For example:
One bit for first transformation allowed (e.g. DCT-8)
One bit for second transformation allowed (e.g. DST-7)
One bit for third transformation allowed (e.g. DCT-2, can be omitted if other two are zero where there is at least one transformation)
Reduced signaling (e.g. for signaling a transformation indicator) is possible if transformations are omitted. As an example, if all three transformations are allowed: 2 bits per group of block sizes indicating which of the transformations to use (e.g. 00 for first, 01 for second, 10 for third). If two transformations are allowed: 1 bit per group of block sizes indicating which of the transformations to use (e.g. 0 for the one indicated first, 1 for the one indicated last). If only one transformation is allowed: No further signaling is needed as there is only one transformation allowed.
In another embodiment, one signal indicates which transformations are allowed and one signal indicates where to switch the set of transformations using a total of three transformations (DCT-2, DCT-8, DST-7). For instance, the transformation set indicator or a transformation indicator as described herein could be a series of signals or components of a signal. For example:
1. One bit for first transformation allowed (e.g. DCT-8) 2. One bit for second transformation allowed (e.g. DST-7)
3. One bit for third transformation allowed (e.g. DCT-2, can be omitted if other two are zero where there is at least one transformation)
4. If more than one transformation is allowed, one bits per set of transformations and per allowed transformation can be used to indicate whether a transformation is part of a certain set of transformations. A two-bit signal can indicate to use a certain set of transformations for blocks smaller than a given size and a different set of transformations for blocks of a given size or larger.
5. If only one transformation is allowed, no further signaling is needed as there is only one transformation allowed.
Here is an example of how the decoder can operate according to an embodiment. The decoder receives information that all three transforms are allowed. However, the first transformation (DCT-8) is only allowed for blocks of size up to 8 pixels in width or height. Now, if the decoder gets a block of size 4x4, the decoder will know that all three transforms are possible. Hence it will first get information whether it is DCT-2 or a DCT-8/DST-7. In the case it is DCT-8/DST-7, it will receive a transform index to tell if it is DCT-8 or DST-7. For example, the decoder could receive a transform index of one or more bits per dimension (vertical/horizontal) to tell if it is DCT-8 or DST-7. The transform syntax of the transform index could provide the one or more bits per horizontal transform either before or after the one or more bits per vertical transform. Alternatively, one transform index could be used to represent the transformations per dimension. For example, the transform index could be coded as the following truncated unary using the syntax (horizontal transform, vertical transform):
0: (DCT-2, DCT-2)
10: (DST-7, DST-7)
1 10: (DCT-8, DST-7)
1 1 10: (DST-7, DCT-8)
1 1 1 1 : (DCT-8, DCT-8)
Other bit coding schemes or syntaxes could be used, such as a bit coding scheme for the syntax (vertical transform, horizontal transform).
When the decoder decodes a block that is 16x16 pixels, the decoder will know that DCT-8 is not available. Hence the decoder will still receive the first bit selecting between DCT-2 or DST-7. However, if DST-7 is selected, no further bits are received. The decoder will know that both the vertical and horizontal transform will be DST-7. This will save two bits in this case.
A test scenario using DST-7 for all intra-coded luma blocks of sizes 4x4 to 32x32 and the DCT-2 for all other blocks showed a compression loss of 0.38% while reducing the encoding time to 62% compared to the VVC test model (VTM) version 2.0.1 in the All Intra configuration. When evaluating the Random Access configuration, the same test shows a compression loss of 0.20% while reducing the encoding time to 91 %.
A similar test scenario using the same transformations at the same places but omitting any coding for which transformation to use showed an even smaller loss in compression efficiency while maintaining the reduced encoding times. In the All Intra configuration the compression loss in the luma channel was reduced to 0.30% with an encoding time of 64% whereas the Random Access configuration showed a loss of 0.13% while having an encoding time of 89%. This scenario was also tested in the Low Delay B configuration, where the compression loss measured at 0.05% with an encoding time of 95%.
In one or more embodiments, an encoder described herein may itself receive an evaluation signal informing the encoder or otherwise indicating possible transformations the encoder is allowed to evaluate. The evaluation signal may indicate explicitly an evaluation set of transformations the encoder is allowed to evaluate or provide contexts (e.g., contexts related to a picture or picture transmission) in which certain transformations will be evaluated (e.g., one of different block sizes for the picture, segmentation schemes, location of samples in the picture, prediction modes for the picture, etc.). The encoder may evaluate the possible transformations of the evaluation set as described herein.
The encoder may be configured to transmit over a wireless network. The wireless network may comprise and/or interface with any type of communication, telecommunication, data, cellular, and/or radio network or other similar type of system. In some embodiments, the wireless network may be configured to operate according to specific standards or other types of predefined rules or procedures. Thus, particular embodiments of the wireless network may implement communication standards, such as Global System for Mobile Communications (GSM), Universal Mobile Telecommunications System (UMTS), Long Term Evolution (LTE), Narrowband Internet of Things (NB-loT), and/or other suitable 2G, 3G, 4G, or 5G standards; wireless local area network (WLAN) standards, such as the IEEE 802.1 1 standards; and/or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (WiMax), Bluetooth, Z-Wave and/or ZigBee standards.
Generally, all terms used herein are to be interpreted according to their ordinary meaning in the relevant technical field, unless a different meaning is clearly given and/or is implied from the context in which it is used. All references to a/an/the element, apparatus, component, means, step, etc. are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise. The steps of any methods disclosed herein do not have to be performed in the exact order disclosed, unless a step is explicitly described as following or preceding another step and/or where it is implicit that a step must follow or precede another step. Any feature of any of the embodiments disclosed herein may be applied to any other embodiment, wherever appropriate. Likewise, any advantage of any of the embodiments may apply to any other embodiments, and vice versa. Other objectives, features and advantages of the enclosed embodiments will be apparent from the description.
The term unit may have conventional meaning in the field of electronics, electrical devices and/or electronic devices and may include, for example, electrical and/or electronic circuitry, devices, modules, processors, memories, logic solid state and/or discrete devices, computer programs or instructions for carrying out respective tasks, procedures, computations, outputs, and/or displaying functions, and so on, as such as those that are described herein.
Some of the embodiments contemplated herein are described more fully with reference to the accompanying drawings. Other embodiments, however, are contained within the scope of the subject matter disclosed herein. The disclosed subject matter should not be construed as limited to only the embodiments set forth herein; rather, these embodiments are provided by way of example to those skilled in the art.

Claims

1. A method (200) for encoding a picture (120b), the method (200) comprising:
generating (22) a transformation indicator (1 10, 940) indicating a transformation for one or more samples (130) of the picture (120b), wherein the transformation is used to encode the picture (120b); and
transmitting (24) the transformation indicator (1 10).
2. The method of claim 1 , wherein the generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different block sizes or groups of block sizes.
3. The method of claims 1-2, wherein the generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different ranges of block sizes.
4. The method of claims 1-3, further comprising encoding (26) the picture (120b) into a bitstream by transforming the one or more samples (130) of the picture (120b) according to the transformation indicated by the transformation indicator (1 10, 940).
5. The method of claims 1-4, wherein the picture is divided into segments according to a particular segmentation scheme and generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different segmentation schemes.
6. The method of claim 5, wherein the particular segmentation scheme is one of slices, tiles or flexible segments.
7. The method of claims 1-6, further comprising encoding (26) the picture (120b) into a bitstream by transforming in a vertical direction and a horizontal direction.
8. The method of claims 1-7, wherein the generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating different ones of the plurality of transformation indicators with transformations in a vertical direction and transformations in a horizontal direction.
9. The method of claims 1-8, wherein the generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different picture types.
10. The method of claims 1-9, wherein the generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with a location of a sample of the one or more samples within the picture.
1 1. The method of claims 1-10, wherein the generating (22) a transformation indicator (1 10,
940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different channels for transmission of at least a sample (130, 190, 192, 194) of the one or more samples.
12. The method of claims 1-1 1 , wherein the generating (22) a transformation indicator (1 10, 940) comprises generating a plurality of transformation indicators each indicating different transformations and associating one or more of the plurality of transformation indicators with one of different prediction modes for the picture.
13. The method of claims 1-12, wherein transmitting the transformation indicator (1 10, 940) comprises transmitting the transformation indicator in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
14. The method of claims 1-13, wherein the method (200) further comprises encoding (26) the block of the picture into a bitstream by transforming in accordance with the transformation indicator (1 10, 940) and a predefined transformation.
15. The method of claims 1-14, wherein the transformation indicator (1 10, 940) indicates a transformation that uses a discrete cosine transformation (DCT) or discrete sine transformation (DST).
16. The method of claims 1-15, wherein the transformation indicator (1 10, 940) indicates the transformation implicitly by indicating a restriction restricting permissible predefined
transformations.
17. The method of claim 16, wherein the transformation indicator (1 10, 940) is a first transformation indicator and the method further comprises transmitting a second transformation indicator indicating a particular transformations that is not restricted by the first transformation indicator.
18. The method of claims 1-17, wherein the method (200) further comprises receiving a signal indicating an evaluation set of transformations for evaluating possible transformations for encoding the one or more samples of the picture; and evaluating the possible transformations according to the evaluation set.
19. The method of claims 1-18, wherein the generating (22) the transformation indicator (1 10, 940) comprises:
determining a block size or block range for the picture or component of the picture; and generating the transformation indicator (1 10, 940) dependent on the determined block size or block range.
20. The method of claim 19, wherein
the determined block size is smaller than or equal to 32 samples in at least one direction of the picture; and
the transformation indicator indicates to use a discrete sine transformation (DST)-7.
21. An encoder circuit (400) configured to: generate a transformation indicator (1 10, 940) indicating a transformation for one or more samples (130) of the picture (120b), wherein the transformation is used to encode the picture (120b); and
transmit the transformation indicator (1 10, 940).
22. The encoder circuit (400) of claim 21 , further configured to implement the method of any of claims 2-20.
23. An encoder (100, 470, 600, 830) comprising
processing circuitry (400) configured to perform the method of any of claims 1-20; and power supply circuitry (460) configured to supply power to the encoder (470).
24. An encoder (100, 470, 600, 830, 900) comprising:
processing circuitry (400) and memory (410), the memory (410) containing instructions executable by the processing circuitry (400) whereby the encoder (100, 470, 600, 830, 900) is configured to perform the method of any of claims 1-20.
25. The encoder (100, 470, 600, 830, 900) of claims 23 or 24, further comprising a transmitter (450) for transmitting the bitstream.
26. A computer program (420) comprising instructions which, when executed by at least one processor of an encoder (100, 470, 600, 830, 900), causes the encoder (100, 470, 600, 830, 900) to carry out the method of claims 1-20.
27. A carrier containing the computer program of claim 26, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
28. A non-transitory computer-readable storage medium (41 ) containing a computer program (420) comprising executable instructions that, when executed by a processing circuit (400) in an encoder (470) causes the encoder (470) to perform any of the methods of claims 1-20.
29. A method (300) for decoding an encoded picture (120b), the method (300) comprising: receiving (32) a transformation indicator (1 10, 940) indicating a transformation for one or more samples (130) of the encoded picture (120b);
receiving (34) a bitstream comprising the encoded picture (120b); and
decoding (36) the encoded picture (120b) in accordance with the received
transformation indicator (1 10, 940).
30. The method of claim 29, wherein the transformation indicator (1 10, 940) indicates to use one of a plurality of different transformations for a particular block size or group of block sizes when decoding the encoded picture (120b).
31. The method of claims 29-30, wherein the transformation indicator (1 10, 940) indicates to use one of a plurality of different transformations for a particular range of block sizes when decoding the encoded picture (120b).
32. The method of claims 29-31 , wherein the receiving (34) a transformation indicator (1 10, 940) comprises receiving a plurality of transformation indicators and the method (300) further comprises determining which of respective transformation sets of the plurality of transformation indicators to use when decoding the encoded picture.
33. The method of claims 29-32, wherein the picture (120b) is divided into segments according to a particular segmentation scheme of a plurality of segmentation schemes, and wherein the transformation indicator (1 10, 940) indicates to use one of a plurality of different transformations for the particular segmentation scheme when decoding the encoded picture.
34. The method of 33, wherein the plurality of segmentation schemes comprise one or more of slices, tiles or flexible segment segmentation schemes.
35. The method of claims 29-34, wherein the method (300) further comprises determining a picture type; and selecting a received transformation indicator (1 10, 940) for decoding the encoded picture (120b) based on the picture type.
36. The method of claims 29-35, wherein the method (300) further comprises determining a location of a sample within the encoded picture; and selecting a received transformation indicator (1 10, 940) for decoding the encoded picture based on the location of the sample in the encoded picture.
37. The method of claims 29-36, wherein the method (300) further comprises determining a channel in which the bitstream is received; and selecting a received transformation indicator (1 10, 940) for decoding the encoded picture based on the channel.
38. The method of claims 29-37, wherein receiving (34) the transformation indicator (1 10,
940) comprises receiving the transformation indicator (1 10, 940) in a profile, level, Video Parameter Set, Sequence Parameter Set, Picture Parameter Set, picture header, tile group header, slice header or segment header.
39. The method of claims 29-38, wherein the transformation indicator (1 10, 940) indicates a transformation that uses a discrete cosine transformation (DCT) or discrete sine transformation (DST).
40. The method of claims 29-39, wherein the transformation indicator (1 10, 940) indicates the transformation implicitly by indicating a restriction restricting permissible predefined
transformations at the decoder (150, 570, 700, 880, 950).
41. The method of claims 29-40, wherein decoding (36) the encoded picture (120b) comprises performing a reverse transformation using the transformation indicated by the transformation indicator (1 10, 940).
42. A decoder circuit (500) configured to:
receive a transformation indicator (1 10, 940) indicating a transformation for one or more samples (130) of the encoded picture (120b);
receive a bitstream comprising the encoded picture (120b); and
decode the encoded picture (120b) in accordance with the received transformation
indicator (1 10, 940).
43. The decoder circuit (500) of claim 42, further configured to implement the method of any of claims 30-41.
44. The decoder circuit (500) of any of claims 41-42, wherein the decoder circuit (500) is comprised in a display device (870, 900) for displaying the decoded segments.
45. A decoder (150, 570, 700, 880) comprising
processing circuitry (500) configured to perform any of the method of claims 29-41 ; and power supply circuitry (560) configured to supply power to the decoder (150, 570, 700, 880).
46. A decoder (150, 570, 700, 880) comprising:
processing circuitry (500) and memory (510), the memory (510) containing instructions executable by the processing circuitry (500) whereby the decoder (150, 570, 700, 880) is configured to perform any of the method 29-41.
47. The decoder of any of claims 45-46, further configured to implement the method of claims 39-41.
48. The decoder of any of claims 45-47, wherein the decoder (150, 570, 700, 880) is comprised in a display device (870, 900) for displaying the decoded segments.
49. A computer program (520) comprising instructions which, when executed by at least one processor (500) of a decoder (150, 570, 700, 880), causes the decoder (150, 570, 700, 880) to carry out the method of any of claims 29-41.
50. A carrier containing the computer program of claim 49, wherein the carrier is one of an electronic signal, optical signal, radio signal, or computer readable storage medium.
51. A non-transitory computer-readable storage medium (510) containing a computer program (520) comprising executable instructions that, when executed by a processing circuit (500) in a decoder (150, 570, 700, 880) causes the decoder (150, 570, 700, 880) to perform any one of the methods of any of claims 29-41.
PCT/EP2019/075711 2018-09-25 2019-09-24 Transformation selection by transmitting a transformation set indicator for use in video coding WO2020064732A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862736361P 2018-09-25 2018-09-25
US62/736,361 2018-09-25

Publications (1)

Publication Number Publication Date
WO2020064732A1 true WO2020064732A1 (en) 2020-04-02

Family

ID=68104583

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2019/075711 WO2020064732A1 (en) 2018-09-25 2019-09-24 Transformation selection by transmitting a transformation set indicator for use in video coding

Country Status (1)

Country Link
WO (1) WO2020064732A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220070458A1 (en) * 2019-03-09 2022-03-03 Hangzhou Hikvision Digital Technology Co., Ltd. Coding and decoding methods, coder and decoder, and storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN J ET AL: "JVET-G1001- Algorithm description of Joint Exploration Test Model 7 (JEM7)", 19 August 2017 (2017-08-19), pages i - iv, 1, XP030150980, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/7_Torino/wg11/JVET-G0001-v1.zip> *
CHOI (SAMSUNG) K ET AL: "CE6: AMT with block size restriction (Test1.6)", no. JVET-K0173, 5 July 2018 (2018-07-05), XP030198992, Retrieved from the Internet <URL:http://phenix.int-evry.fr/jvet/doc_end_user/documents/11_Ljubljana/wg11/JVET-K0173-v2.zip JVET-K0173.docx> [retrieved on 20180705] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220070458A1 (en) * 2019-03-09 2022-03-03 Hangzhou Hikvision Digital Technology Co., Ltd. Coding and decoding methods, coder and decoder, and storage medium

Similar Documents

Publication Publication Date Title
CN114598875B (en) Apparatus and method for quantization/inverse quantization and encoding/decoding apparatus
CN106170092B (en) Fast coding method for lossless coding
US10034019B2 (en) Image encoding device, image encoding method, image decoding device, and image decoding method
CN107211139B (en) Method, apparatus, and computer-readable storage medium for coding video data
CN113748677A (en) Encoder, decoder and corresponding intra prediction method
CN112954367B (en) Encoder, decoder and corresponding methods using palette coding
CN113767629A (en) Method and apparatus for indicating chroma quantization parameter mapping function
KR102524915B1 (en) Multi-tree depth extension for picture boundary processing
WO2020211765A1 (en) An encoder, a decoder and corresponding methods harmonzting matrix-based intra prediction and secoundary transform core selection
CN111327904B (en) Image reconstruction method and device
AU2020206823B2 (en) Deblocking filter for sub-partition boundaries caused by intra sub-partition coding tool
US20230137603A1 (en) Image encoding/decoding method and device using lossless color transform, and method for transmitting bitstream
CN114208175B (en) Image decoding method and device based on chroma quantization parameter data
CN114223198A (en) Image decoding method and apparatus for coding chrominance quantization parameter data
CN113330743A (en) Encoder, decoder and corresponding method for deblocking filter adaptation
CN111385572A (en) Prediction mode determining method and device, coding equipment and decoding equipment
WO2020064732A1 (en) Transformation selection by transmitting a transformation set indicator for use in video coding
WO2020182052A1 (en) An encoder, a decoder and corresponding methods restricting size of sub-partitions from intra sub-partition coding mode tool
KR20220065880A (en) Use of DCT-based interpolation filters and enhanced bilinear interpolation filters in affine motion compensation
CN114175644A (en) Image decoding method using chroma quantization parameter table and apparatus thereof
WO2020064729A1 (en) Transformation selection by transmitting a transformation set indicator for use in video coding
CN113330741B (en) Encoder, decoder, and corresponding methods for restricting the size of a sub-partition from an intra sub-partition coding mode tool
CN111479111B (en) Method and device for determining image display sequence and video encoding and decoding equipment
US20220345694A1 (en) Image encoding/decoding method and apparatus using quantization matrix, and method for transmitting bitstream
CN114913249A (en) Encoding method, decoding method and related devices

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: 19779794

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19779794

Country of ref document: EP

Kind code of ref document: A1