WO2019152131A1 - Methods and devices for picture encoding and decoding using multiple transforms - Google Patents

Methods and devices for picture encoding and decoding using multiple transforms Download PDF

Info

Publication number
WO2019152131A1
WO2019152131A1 PCT/US2019/012277 US2019012277W WO2019152131A1 WO 2019152131 A1 WO2019152131 A1 WO 2019152131A1 US 2019012277 W US2019012277 W US 2019012277W WO 2019152131 A1 WO2019152131 A1 WO 2019152131A1
Authority
WO
WIPO (PCT)
Prior art keywords
transform
type
block
discrete cosine
residuals
Prior art date
Application number
PCT/US2019/012277
Other languages
French (fr)
Inventor
Fabrice Leleannec
Karam NASER
Edouard Francois
Original Assignee
Interdigital Vc Holdings, Inc.
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
Priority claimed from EP18305085.5A external-priority patent/EP3518542A1/en
Application filed by Interdigital Vc Holdings, Inc. filed Critical Interdigital Vc Holdings, Inc.
Publication of WO2019152131A1 publication Critical patent/WO2019152131A1/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present embodiments generally relate to methods and devices for picture encoding and decoding, and more particularly, to methods and devices for picture encoding and decoding using multiple transforms.
  • image and video coding schemes usually employ prediction and transform to leverage spatial and temporal redundancy in the video content.
  • intra or inter prediction is used to exploit the intra or inter frame correlation, then the differences between the original picture block and the predicted picture block, often denoted as prediction errors or prediction residuals or more simply residuals, are transformed, quantized and entropy coded.
  • the compressed data is decoded by inverse processes corresponding to the prediction, transform, quantization and entropy coding.
  • DCT-II Discrete Cosine Transform of type II
  • a decoding method comprises :
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • a decoding device comprises : - means for decoding information identifying a transform in a set of transforms;
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • a decoding device comprises a communication interface configured to access at least a bitstream and at least one processor configured to:
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • a computer program or a medium storing such a computer program is disclosed, wherein the computer program comprises software code instructions for performing the decoding method when the computer program is executed by a processor.
  • a machine readable medium that has stored thereon machine executable instructions that, when executed, implement a decoding method, the method comprising:
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • the identified transform is obtained from a set of at least a first transform and a second transform by one or more of a sign change operation and an order reverse operation.
  • the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type- VIII.
  • the identified transform being a discrete sine transform of type-I
  • the identified transform is obtained by:
  • the identified transform being a discrete sine transform of type- VII
  • the identified transform is obtained by:
  • the identified transform being a discrete sine transform of type-I
  • the identified transform is obtained by:
  • the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type-IV.
  • An encoding method comprising: - obtaining a block of residuals;
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • An encoding device that comprises:
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • An encoding device comprises a communication interface configured to access at least an image block and at least one processor configured to:
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • a computer program or a medium storing such a computer program is disclosed, wherein the computer program comprises software code instructions for performing the encoding method when the computer program is executed by a processor.
  • a machine readable medium that has stored thereon machine executable instructions that, when executed, implement an encoding method, the method comprising:
  • the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
  • the identified transform is obtained from a set of at least a first transform and a second transform by one or more of a sign change operation and an order reverse operation.
  • the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type- VIII.
  • the identified transform being a discrete sine transform of type-I
  • the identified transform is obtained by:
  • the identified transform being a discrete sine transform of type- VII
  • the identified transform is obtained by:
  • the identified transform being a discrete sine transform of type-I
  • the identified transform is obtained by:
  • the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type-IV.
  • FIG. 1 represents an exemplary architecture of a transmitter configured to encode a picture in a bitstream according to a specific and non-limiting embodiment
  • FIG. 2 illustrates an exemplary video encoder, e.g. an encoder of HEVC type, adapted to execute the encoding method
  • FIG. 3 represents a flowchart of a method for encoding a picture block in a bitstream according to a specific and non-limiting embodiment
  • Figure 4 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to an exemplary embodiment
  • FIG. 5 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to another exemplary embodiment
  • - Figure 6 represents an exemplary architecture of a receiver 2000 configured to decode a picture from a bitstream to obtain a decoded picture according to a specific and non-limiting embodiment
  • - Figure 7 illustrates a block diagram of an exemplary video decoder 200, e.g. of the HEVC type, adapted to execute the decoding method
  • FIG. 8 represents a flowchart of a method for decoding a picture block from a bitstream according to a specific and non-limiting embodiment
  • FIG. 9 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to an exemplary embodiment
  • FIG. 10 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to another exemplary embodiment.
  • each of the methods comprises one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and/or use of specific steps and/or actions may be modified or combined.
  • references to“one embodiment” or“an embodiment” of the present principles, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment.
  • the appearances of the phrase“in one embodiment” or “in an embodiment” or“in one implementation” or“in an implementation”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
  • any of the following“/”,“and/or”,“at least one of’, and“one or more of A, B, and C”, for example, in the cases of“A/B”,“A and/or B” and“at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B).
  • such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C).
  • This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed.
  • a picture is an array of luma samples in monochrome format or an array of luma samples and two corresponding arrays of chroma samples (or three arrays of tri chromatic color samples such as RGB) in 4:2:0, 4:2:2, and 4:4:4 colour format.
  • a“block” addresses a specific area in a sample array (e.g., luma Y), and a “unit” includes the collocated block of all color components (luma Y and possibly chroma Cb and chroma Cr).
  • a slice is an integer number of basic coding units such as HEVC coding tree units or H.264 macroblock units.
  • a slice may consist of a complete picture as well as part thereof. Each slice may include one or more slice segments.
  • the word “reconstructed” and “decoded” can be used interchangeably. Usually but not necessarily“reconstructed” is used on the encoder side while“decoded” is used on the decoder side. It should be noted that the term“decoded” or“reconstructed” may mean that a bitstream is partially“decoded” or“reconstructed,” for example, the signals obtained after deblocking filtering but before SAO filtering, and the reconstructed samples may be different from the final decoded output that is used for display. We may also use the terms“image,” “picture,” and“frame” interchangeably.
  • FIG. 1 represents an exemplary architecture of a transmitter 1000 configured to encode a picture in a bitstream according to a specific and non-limiting embodiment.
  • the transmitter 1000 comprises one or more processor(s) 1005, which could comprise, for example, a CPU, a GPU and/or a DSP (English acronym of Digital Signal Processor), along with internal memory 1030 (e.g. RAM, ROM, and/or EPROM).
  • the transmitter 1000 comprises one or more communication interface(s) 1010 (e.g. a keyboard, a mouse, a touchpad, a webcam), each adapted to display output information and/or allow a user to enter commands and/or data; and a power source 1020 which may be external to the transmitter 1000.
  • the transmitter 1000 may also comprise one or more network interface(s) (not shown).
  • Encoder module 1040 represents the module that may be included in a device to perform the coding functions. Additionally, encoder module 1040 may be implemented as a separate element of the transmitter 1000 or may be incorporated within processor(s) 1005 as a combination of hardware and software as known to those skilled in the art.
  • the picture may be obtained from a source.
  • the source can be, but is not limited to:
  • a local memory e.g. a video memory, a RAM, a flash memory, a hard disk
  • a storage interface e.g. an interface with a mass storage, a ROM, an optical disc or a magnetic support
  • a communication interface e.g. a wireline interface (for example a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as a IEEE 802.11 interface or a Bluetooth interface); and
  • a wireline interface for example a bus interface, a wide area network interface, a local area network interface
  • a wireless interface such as a IEEE 802.11 interface or a Bluetooth interface
  • a picture capturing circuit e.g. a sensor such as, for example, a CCD (or Charge-Coupled Device) or CMOS (or Complementary Metal-Oxide- Semiconductor)).
  • a CCD or Charge-Coupled Device
  • CMOS Complementary Metal-Oxide- Semiconductor
  • the bitstream may be sent to a destination.
  • the bitstream is stored in a remote or in a local memory, e.g. a video memory or a RAM, a hard disk.
  • the bitstream is sent to a storage interface, e.g. an interface with a mass storage, a ROM, a flash memory, an optical disc or a magnetic support and/or transmitted over a communication interface, e.g. an interface to a point to point link, a communication bus, a point to multipoint link or a broadcast network.
  • the transmitter 1000 further comprises a computer program stored in the memory 1030.
  • the computer program comprises instructions which, when executed by the transmitter 1000, in particular by the processor 1005, enable the transmitter 1000 to execute the encoding method described with reference to any of the Figures 3, 4, and 5.
  • the computer program is stored externally to the transmitter 1000 on a non-transitory digital data support, e g. on an external storage medium such as a HDD, CD-ROM, DVD, a read-only and/or DVD drive and/or a DVD Read/Write drive, all known in the art.
  • the transmitter 1000 thus comprises a mechanism to read the computer program. Further, the transmitter 1000 could access one or more Universal Serial Bus (USB)-type storage devices (e g.,“memory sticks.”) through corresponding USB ports (not shown).
  • USB Universal Serial Bus
  • the transmitter 1000 can be, but is not limited to:
  • a tablet or tablet computer
  • a video server e.g. a broadcast server, a video-on-demand server or a web server.
  • Figure 2 illustrates an exemplary video encoder 100, e.g. an encoder of HEVC type, adapted to execute the encoding method described with reference to any of the Figures 3, 4, and 5.
  • the encoder 100 is an example of a transmitter 1000 or part of such a transmitter 1000.
  • a picture is usually partitioned into basic coding units, e.g. into coding tree units (CTU) in FIEVC or into macroblock units in H.264.
  • CTU coding tree units
  • a set of possibly consecutive basic coding units is grouped into a slice.
  • a basic coding unit contains the basic coding blocks of all color components.
  • CTB smallest coding tree block
  • the smallest coding tree block (CTB) size 16x16 corresponds to a macroblock size as used in previous video coding standards.
  • a picture is partitioned into CTUs of square shape with a configurable size typically 64x64, 128x128, or 256x256.
  • a CTU is the root of a quad- tree partitioning into 4 square Coding Units (CU) of equal size, i.e. half of the parent block size in width and in height.
  • CU square Coding Unit
  • a quad-tree is a tree in which a parent node can be split into four child nodes, each of which may become parent node for another split into four child nodes.
  • a coding Block is partitioned into one or more Prediction Blocks (PB) and forms the root of a quadtree partitioning into Transform Blocks (TBs).
  • PB Prediction Blocks
  • TBs Transform Blocks
  • a Coding Unit includes the Prediction Units (PUs) and the tree- structured set of Transform Units (TUs), a PU includes the prediction information for all color components, and a TU includes residual coding syntax structure for each color component.
  • the size of a CB, PB and TB of the luma component applies to the corresponding CU, PU and TU.
  • a CTU is the root of a coding tree partitioning into Coding Units (CU).
  • a coding tree is a tree in which a parent node (usually corresponding to a CU) can be split into child nodes (e.g. into 2, 3 or 4 child nodes), each of which may become parent node for another split into child nodes.
  • new split modes binary tree symmetric split modes, binary tree asymmetric split modes and triple tree split modes
  • the coding tree has a unique root node, e.g. a CTU.
  • a leaf of the coding tree is a terminating node of the tree.
  • Each node of the coding tree represents a CU that may be further split into smaller CUs also named sub-CUs or more generally sub-blocks.
  • CUs corresponding to the leaves of the coding tree are encoded.
  • the partitioning of a CTU into CUs and the coding parameters used for encoding each CU (corresponding to a leaf of the coding tree) may be determined on the encoder side through a rate distortion optimization procedure.
  • There is no partitioning of a CB into PBs and TBs i.e. a CU is made of a single PU and a single TU.
  • the term“block” or“picture block” can be used to refer to any one of a CTU, a CU, a PU, a TU, a CB, a PB and a TB.
  • the term“block” or“picture block” can be used to refer to a macroblock, a partition and a sub-block as specified in H.264/AVC or in other video coding standards, and more generally to refer to an array of samples of numerous sizes.
  • a picture is encoded by the encoder elements as described below.
  • the picture to be encoded is processed in units of CUs.
  • Each CU is encoded using either an intra or inter mode.
  • intra prediction 160
  • inter mode motion estimation (175) and compensation (170) are performed.
  • the encoder decides (105) which one of the intra mode or inter mode to use for encoding the CU, and indicates the intra/inter decision by a prediction mode flag. Residuals are calculated by subtracting (110) a predicted block (also known as a predictor) from the original picture block.
  • CUs in intra mode are predicted from reconstructed neighboring samples, e.g. within the same slice.
  • a set of 35 intra prediction modes is available in HEVC, including a DC, a planar, and 33 angular prediction modes.
  • the intra prediction reference may thus be reconstructed from the row and column adj acent to the current block.
  • CUs in inter mode are predicted from reconstructed samples of a reference picture stored in a reference picture buffer (180).
  • the residuals are transformed (125) into transform coefficients, also sometimes denoted as residual coefficients.
  • DCT-II is most often used.
  • a new transform scheme is disclosed that uses multiple selected transforms from the DCT/DST families other than the current transforms (i.e. DCT-II and 4x4 DST VII) in HEVC.
  • the newly introduced transforms are DST-VII, DCT-VIII, DST-I and DCT-V.
  • Table 1 shows the basis functions of the newly introduced DST/DCT.
  • This set includes a transform DCT- VIII with a decreasing lowest frequency basis function, a transform DST-VII with an increasing lowest frequency basis function, a transform DCT-V with a quasi-constant lowest frequency basis function and a transform DST-VII with a centrally oriented lowest basis function.
  • Other transforms with an increasing basis functions are DST-III, DST-IV and DST-VIII.
  • the lowest frequency basis functions are the most important ones, since the typical residual signals are encoded by the first few coefficients.
  • transforms of Table 1 have the following properties (more details are given in the Annex section):
  • DCT-VIII is the reverse of DST-VII with some appropriate sign change
  • DST-II is obtained from DCT-II by appropriate sign changing and then reversing;
  • DCT-V basis functions are very similar to those of DCT-II.
  • these properties are used to decrease the number of additional transforms to be implemented, while preserving the coding efficiency at least partially.
  • the DCT-VIII is used as the single additional transform.
  • two additional transforms are used as a result, the number of additional transforms is 1 or 2 while JEM design uses 4 additional transforms.
  • the transform coefficients are then quantized (130).
  • the quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy coded (145) to output a bitstream.
  • the encoder may also skip the transform or bypass both transform and quantization, i.e., the residual is coded directly without the application of the transform or quantization processes. In direct PCM coding, no prediction is applied and the coding unit samples are directly coded into the bitstream.
  • the entropy coding may be, e.g., Context Adaptive Binary Arithmetic Coding (CAB AC), Context Adaptive Variable Length Coding (CAVLC), Huffman, arithmetic, exp-Golomb, etc.
  • CABAC is a method of entropy coding first introduced in H.264 and also used in HEVC.
  • CABAC involves binarization, context modeling and binary arithmetic coding. Binarization maps the syntax elements to binary symbols (bins).
  • Context modeling determines the probability of each regularly coded bin (i.e. non- bypassed) based on some specific context
  • binary arithmetic coding compresses the bins to bits according to the determined probability.
  • the encoder comprises a decoding loop and thus decodes an encoded block to provide a reference for further predictions.
  • the quantized transform coefficients are de-quantized (140) and inverse transformed (150) to decode residuals.
  • a picture block is reconstructed by combining (155) the decoded residuals and the predicted block.
  • An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking/S AO (Sample Adaptive Offset) filtering to reduce coding artifacts.
  • the filtered picture may be stored in a reference picture buffer (180) and used as reference for other pictures.
  • Figure 3 represents a flowchart of a method for encoding a picture block in a bitstream according to a specific and non-limiting embodiment.
  • a transmitter 1000 accesses a picture block.
  • a block of residuals is obtained, e.g. by subtracting a predictor from the accessed picture block.
  • the transmitter 1000 identifies a transform in a first set of several transforms.
  • the first set of transforms comprises the following transforms: DCT-II, DVT-V, DCT-VIII, DST-I and DST-VII as in JEM.
  • the transform may be selected by rate-distortion optimization and identified by an index.
  • the block of residuals is transformed into a block of transform coefficients using the identified transform wherein the identified transform is derived from a second set of at least a first transform and a second transform.
  • the second set is a sub-set of the first set.
  • the second set comprises two transforms, e.g. forward DCT-II and a single additional transform such as the forward DCT-VIII.
  • the second set comprises the following transforms: forward DCT-II and forward DCT-IV.
  • the forward DCT-IV has a decreasing basis function at lowest frequency.
  • the second set comprises three transforms, e g. the forward DCT-II and two additional transforms, e g.
  • the identified transform is reproduced by the following additional steps: reversing the order of input data (residuals or transform coefficients) and changing their signs according to their index in the block or in a line (respectively column of the block).
  • the transmitter 1000 encodes the block of transform coefficients in a bitstream.
  • Encoding of transform coefficients usually comprises quantizing and entropy coding.
  • Figure 4 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to an exemplary embodiment.
  • a single transform is used (e.g. forward DCT-VIII) to transform a block of residuals in addition to the classical forward DCT-II.
  • the other transforms of the first set are either replaced by the single additional transform or the classical forward DCT-II or derived from these two transforms by appropriate order reversing of input data and sign change.
  • the method of Figure 4 may be applied successively on the lines of a block and on the column of the block in case of separable transforms or on the whole block in case of non-separable transforms.
  • a transform is identified in the first set of several transforms.
  • the forward DCT-II (S1002) or the forward DCT-V (S1004) is identified
  • the forward DCT-II is applied on the block of residuals (S1020).
  • the forward DCT-V is advantageously replaced (S1020) by the forward DCT-II since their basis functions are similar.
  • signs of residuals in the block of residuals are changed (S1022-1).
  • each residual in the block of residuals is multiplied by (-1)*, where j is the index of the residual in a line (respectively column) of the residual block in case where S1022-1 is applied on a line (respectively column).
  • j is the index of the residual in the residual block.
  • the block may be scanned in a specific order (e.g. in a raster scan order) to obtain a vector of residuals, j being the index of the residual in the obtained vector.
  • the forward DCT-II is then applied (S 1024-1) on the block of residuals after sign change to obtain a block of transform coefficients.
  • the order of transform coefficients in the block of transform coefficient is then reversed (S1026-1).
  • DST-I is thus replaced by DST-II which is derived from DCT-II.
  • FIG. 5 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to another exemplary embodiment.
  • a single transform is used (e g. forward DCT-VIII) to transform a block of residuals in addition to the classical forward DCT-II.
  • the other transforms of the first set are either replaced by the single additional transform or the classical forward DCT-II or derived from one of these two transforms by appropriate order reversing of input data and sign change.
  • the steps of Figure 4 identical to the steps of Figure 3 are identified with the same numerical reference and are not further disclosed.
  • each residual in the block of residuals is multiplied by (-1)’, where j is the index of the residual in a line (respectively column) of the residual block in case where S 1022-2 is applied on a line (respectively column). More precisely, the sign of the odd ordered transform coefficients is changed.
  • j is the index of the residual in the residual block. In this latter case, the block may be scanned in a specific order (e.g.
  • DCT-VIII is then applied (SI 024-2) on the block of residuals after sign change to obtain a block of transform coefficients.
  • the order of transform coefficients in the block of transform coefficient is then reversed (S1026-2).
  • DST-I is replaced by DST-VI which is derived from DCT-VIII.
  • DCT-IV may be used in addition to the classical forward DCT-II to transform a block of residuals.
  • DCT-IV may be used. This transform, like DCT-VIII, has a decreasing basis function at lowest frequency.
  • the reversed DCT-IV transform is DST-IV, which is like DST-VII.
  • transforms can obtained from others by simple operations of sign changing and reverse ordering.
  • two matrices R and S are defined as a reverse order matrix and sign change matrix respectively, such that where i,j E (0, 1V— 1).
  • Tl and T2 be the transform matrices of DST-VII and DCT-VIII respectively.
  • T2 SxTlxR.
  • the following procedure is performed: reverse the order of the input data, transform the data using the existing DCT-VIII algorithm, and then change the sign of the odd ordered coefficients.
  • Table 2 provides a summary about all possible transforms that can be obtained from a base transform using R and D.
  • T c is the transpose of T, which is the inverse of the transform.
  • regular numbers are used interchangeably with roman numerals for brevity. Therefore, for example, DCT-II, DCT-V, DCT-VIII, DST-I, DST-IV and DST-VII are also referred respectively as DCT2, DCT5, DCT8, DST1, DST4 and DST7.
  • All the considered base transforms have a decreasing basis function at lowest frequency, while the first derived transforms have an increasing one.
  • the second derived transform is either with quasi-constant basis function or centrally oriented one
  • the centrally oriented transform can be either obtained from DCT-VIII or DCT-II. From those transforms, either DST-VI or DST-II can be obtained (Table 2), where both are very similar to centrally oriented transform of DST-I.
  • the quasi constant transform of DCT-V can be replaced by DCT-II, which has a constant lowest frequency basis function.
  • a single additional transform namely DCT- VIII, is implemented in addition to the existing DCT-II.
  • DST-VII is directly computed by reverse ordering and sign changing, while DST-I is either replaced by DST-II (computed from DCT-II) or DST-VI (computed from) DST-VIII.
  • the choice of the base transform(s) to be used in addition to the classical DCT-II is dependent on the block size.
  • DCT-VII is advantageously used as a base transform for small blocks (e.g. 4xN or Nx4).
  • DST-VIII and DCT-V are thus derived from DCT-VII as indicated in Table 2.
  • DCT-IV or DST- IV may also be used for small blocks.
  • DCT-VIII or DCT IV are advantageously used as a base transform for larger blocks.
  • This embodiment does not require adding extra memory or hardware/software architecture.
  • the number of additional transforms depends on the block size.
  • two additional transforms are used in addition to DCT- II, e.g. DCT-V and DCT-VIII, and for block sizes’ larger than N a single additional transform is used, e.g. DCT-VIII or DCT IV. In this latter case, DCT-V is replaced by DCT-II.
  • a single additional transform is used in addition to DCT-II, e.g. DCT-V.
  • more than two additional transforms are used in addition to DCT-II.
  • N can be for example equal to 4, 8 or 16.
  • the various embodiments allow reducing the number of additional transforms while being efficient. These embodiments thus simplify the transform design and consequently both the encoder and decoder hardware/software design.
  • the solution requires adding a single transform or two transforms (e.g. per transform size) to emulate the original JVET additional transforms ⁇ DCT-V, DST-I, DST-VII, DCT-VIII ⁇ .
  • Table 3 provides a summary of each number of transform matrices or hardware architecture needed for each transform size for both the proposed method and the JVET’s one. Note that some transforms require storing 2 matrices as they are not self-inverse. For self inverse transforms only one single matrix needs to be stored.
  • JVET supports a block sizes from 4 to 128 for the multiple transform up to 64. If matrix multiplication is used for implementing the transforms, this requires loading 21840 matrix coefficients (see table 4). For a 2 bytes representation, this requires 218.4 KBytes (2*5*21840) for JVET, whereas the proposed method requires 43.68 KBytes (2* 1*21840). Thus, the proposed solution provides 174.72 KBytes reduction. This reduction may even be more important when considering further transforms sizes that might be used in future standards.
  • Table 4 Figure 6 represents an exemplary architecture of a receiver 2000 configured to decode a picture from a bitstream to obtain a decoded picture according to a specific and non-limiting embodiment.
  • the receiver 2000 comprises one or more processor(s) 2005, which could comprise, for example, a CPU, a GPU and/or a DSP (English acronym of Digital Signal Processor), along with internal memory 2030 (e.g. RAM, ROM and/or EPROM).
  • the receiver 2000 comprises one or more communication interface(s) 2010 (e.g. a keyboard, a mouse, a touchpad, a webcam), each adapted to display output information and/or allow a user to enter commands and/or data (e.g. the decoded picture); and a power source 2020 which may be external to the receiver 2000.
  • the receiver 2000 may also comprise one or more network interface(s) (not shown).
  • the decoder module 2040 represents the module that may be included in a device to perform the decoding functions. Additionally, the decoder module 2040 may be implemented as a separate element of the receiver 2000 or may be incorporated within processor(s) 2005 as a combination of hardware and software as known to those skilled in the art
  • the bitstream may be obtained from a source.
  • the source can be, but is not limited to:
  • a local memory e.g. a video memory, a RAM, a flash memory, a hard disk
  • a storage interface e.g. an interface with a mass storage, a ROM, an optical disc or a magnetic support
  • a communication interface e.g. a wireline interface (for example a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as a IEEE 802.11 interface or a Bluetooth interface); and
  • a wireline interface for example a bus interface, a wide area network interface, a local area network interface
  • a wireless interface such as a IEEE 802.11 interface or a Bluetooth interface
  • an image capturing circuit e.g. a sensor such as, for example, a CCD (or
  • CMOS Complementary Metal-Oxide- Semiconductor
  • the decoded picture may be sent to a destination, e.g. a display device.
  • the decoded picture is stored in a remote or in a local memory, e.g. a video memory or a RAM, a hard disk.
  • the decoded picture is sent to a storage interface, e.g. an interface with a mass storage, a ROM, a flash memory, an optical disc or a magnetic support and/or transmitted over a communication interface, e.g. an interface to a point to point link, a communication bus, a point to multipoint link or a broadcast network.
  • the receiver 2000 further comprises a computer program stored in the memory 2030.
  • the computer program comprises instructions which, when executed by the receiver 2000, in particular by the processor 2005, enable the receiver to execute the decoding method described with reference to any one of Figures 8, 9, and 10.
  • the computer program is stored externally to the receiver 2000 on a non-transitory digital data support, e g. on an external storage medium such as a HDD, CD-ROM, DVD, a read only and/or DVD drive and/or a DVD Read/Write drive, all known in the art.
  • the receiver 2000 thus comprises a mechanism to read the computer program. Further, the receiver 2000 could access one or more Universal Serial Bus (USB)-type storage devices (e.g.,“memory sticks”) through corresponding USB ports (not shown).
  • USB Universal Serial Bus
  • the receiver 2000 can be, but is not limited to:
  • a tablet or tablet computer
  • a video player e.g. a Blu-ray player, a DVD player
  • Figure 7 illustrates a block diagram of an exemplary video decoder 200, e.g. of the HEVC type, adapted to execute the decoding method with reference to any one of Figures 8, 9, and 10.
  • the video decoder 200 is an example of a receiver 2000 or part of such a receiver 2000.
  • a bitstream is decoded by the decoder elements as described below.
  • Video decoder 200 generally performs a decoding pass reciprocal to the encoding pass as described in Figure 2, which performs video decoding as part of encoding video data.
  • the input of the decoder includes a bitstream, which may be generated by the video encoder 100.
  • the bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, and other coded information.
  • the transform coefficients are de-quantized (240) and inverse transformed (250) to decode residuals.
  • the decoded residuals are then combined (255) with a predicted block (also known as a predictor) to obtain a decoded/reconstructed picture block.
  • the predicted block may be obtained (270) from intra prediction (260) or motion-compensated prediction (i.e., inter prediction) (275).
  • AMVP and merge mode techniques may be used during motion compensation, which may use interpolation filters to calculate interpolated values for sub-integer samples of a reference block.
  • An in-loop filter (265) is applied to the reconstructed picture.
  • the in-loop filter may comprise a deblocking filter and a SAO filter.
  • the filtered picture is stored at a reference picture buffer (280).
  • Figure 8 represents a flowchart of a method for decoding a picture block from a bitstream according to a specific and non-limiting embodiment.
  • a receiver 2000 such as the decoder 200 accesses a bitstream.
  • the receiver decodes information identifying a transform from the accessed bitstream.
  • the information identifies a transform in a first set of transforms.
  • the set of transforms comprises the following transforms: DCT-II, DVT-V, DCT-VIII, DST-I and DST-VII as in JEM.
  • the transform may be identified by an index decoded from the bitstream.
  • a block of transform coefficients is decoded from the accessed bitstream.
  • Decoding a block of transform coefficients usually comprises entropy decoding and inverse quantization.
  • the block of transform coefficients is transformed into a block of residuals using the identified transform wherein the identified transform is derived from a second set of at least a first transform and a second transform.
  • the second set is a sub-set of the first set. It comprises at least a first transform and a second transform.
  • the second set comprises the following transforms: Inverse DCT-II and forward DCT-VIII. Since the DCT-VIII is a self-inverse transform, there is no need to use an inverse DCT-VIII on the decoder side. Thus, forward DCT-VIII is also used in the decoder.
  • the second set comprises the following transforms: inverse DCT-II and forward DCT-IV.
  • the second set comprises three transforms, e.g. the inverse DCT-II and two additional transforms, e.g. DCT-V and DCT-VIII.
  • the identified transform is reproduced by additional steps such as reversing the order of input data (residuals or transform coefficients) and changing their signs according to their position in the block.
  • a decoded picture block is obtained for example by adding a predictor to the block of residuals.
  • the method ends at step S260.
  • Figure 9 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to an exemplary embodiment.
  • a single transform is used (e.g. forward DCT-VIII) to transform a block of transform coefficients in addition to the classical Inverse DCT-II.
  • the other transforms of the first set are either replaced by the single additional transform or the classical Inverse DCT-II or derived from these two transforms by appropriate order’s reversing of input data and sign change.
  • a transform is identified in the first set of several transforms.
  • the inverse DCT-II is applied on the block of transform coefficients (S2020).
  • the inverse DCT-V is advantageously replaced (S2020) by the inverse DCT-II since their basis functions are similar.
  • the order of residuals in the block of residuals is reversed (S2022-1).
  • the inverse DCT- II is then applied (S1024-1) on the block of residuals after order reversing to obtain a block of transform coefficients. Signs of transform coefficients are changed (S2026-1). More precisely, each transform coefficient in the block is multiplied by (-1) 1 , where i is the order of the frequency.
  • DST-I is replaced by DST-II which is derived from DCT- II.
  • the forward DCT- VIII is applied on the block of transform coefficients (S2028).
  • forward transforms are used on the encoder side while their corresponding inverse versions are used on the decoder side.
  • DCT-VIII is self-inverse and thus forward DCT- VIII may be used instead of inverse DCT-VIII.
  • the signs of transform coefficients are changed (S2030). More precisely, each transform coefficient in the block is multiplied by (-1) 1 .
  • the forward DCT-VIII is then applied (S2032) on the block of transform coefficients after sign change to obtain a block of residuals.
  • the order of the residuals in the residual block are then reversed (S2034).
  • FIG. 10 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to another exemplary embodiment.
  • a single transform is used (e g. forward DCT-VIII) to transform a block of residual in addition to the classical inverse DCT-II.
  • DST-I is replaced by DST-VI which is derived from DCT-VIII.
  • the implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program).
  • An apparatus may be implemented in, for example, appropriate hardware, software, and firmware.
  • the methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs”), and other devices that facilitate communication of information between end-users.
  • PDAs portable/personal digital assistants
  • Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications.
  • equipment examples include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set-top box, a laptop, a personal computer, a cell phone, a PDA, and other communication devices.
  • the equipment may be mobile and even installed in a mobile vehicle.
  • the methods may be implemented by instructions being performed by a processor, and such instructions (and/or data values produced by an implementation) may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette (“CD”), an optical disc (such as, for example, a DVD, often referred to as a digital versatile disc or a digital video disc), a random access memory (“RAM”), or a read-only memory (“ROM”).
  • the instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination.
  • a processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor- readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.
  • implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted.
  • the information may include, for example, instructions for performing a method, or data produced by one of the described implementations.
  • a signal may be formatted to carry as data the rules for writing or reading the syntax of a described embodiment, or to carry as data the actual syntax-values written by a described embodiment.
  • Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal.
  • the formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream.
  • the information that the signal carries may be, for example, analog or digital information.
  • the signal may be transmitted over a variety of different wired or wireless links, as is known.
  • the signal may be stored on a processor-readable medium.
  • DCT-VIII is the reverse of DST-VII with some appropriate sign change.
  • DST-II is the reverse of DCT-II with some appropriate sign change.
  • DST-II can be obtained from DCT-II by first negating input data with odd indexes, perform DCT-II, and then reverse the order of the coefficients.
  • DST-VII The inverse of DST-VII is DST-VI: It should be noted that the Discrete Trigonometric transforms are orthogonal transforms. With this property, the inverse transform matrix is obtained by transposing the forward transform matrix.
  • DST-VI the basis functions are given by the following mathematical form:
  • DST-VI can be obtained from DCT-VII using this formula

Abstract

A decoding method is disclosed. Information identifying a transform in a set of transforms is decoded (S220). A block of transform coefficients is also decoded (S230). The block of transform coefficients is transformed (S240) into a block of residuals using the identified transform. The identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from said first and second transforms.

Description

METHODS AND DEVICES FOR PICTURE ENCODING AND DECODING USING MULTIPLE TRANSFORMS
1. TECHNICAL FIELD
The present embodiments generally relate to methods and devices for picture encoding and decoding, and more particularly, to methods and devices for picture encoding and decoding using multiple transforms.
2. BACKGROUND ART
To achieve high compression efficiency, image and video coding schemes usually employ prediction and transform to leverage spatial and temporal redundancy in the video content. Generally, intra or inter prediction is used to exploit the intra or inter frame correlation, then the differences between the original picture block and the predicted picture block, often denoted as prediction errors or prediction residuals or more simply residuals, are transformed, quantized and entropy coded. To reconstruct the video, the compressed data is decoded by inverse processes corresponding to the prediction, transform, quantization and entropy coding.
In recent video codec designs multiple transforms are used instead of the single Discrete Cosine Transform of type II, denoted DCT-II. Specifying multiple transforms and selecting one of them locally, e.g. per picture block, makes it possible to improve coding efficiency. However, using multiple transforms increases memory requirement and encoder/decoder complexity.
3. BRIEF SUMMARY
A decoding method is disclosed that comprises :
- decoding information identifying a transform in a set of transforms;
- decoding a block of transform coefficients; and
- transforming the block of transform coefficients into a block of residuals using the identified transform;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
A decoding device is disclosed that comprises : - means for decoding information identifying a transform in a set of transforms;
- means for decoding a block of transform coefficients; and
- means for transforming the block of transform coefficients into a block of residuals using the identified transform;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
A decoding device is disclosed that comprises a communication interface configured to access at least a bitstream and at least one processor configured to:
- decode information identifying a transform in a set of transforms from the accessed bitstream;
- decode a block of transform coefficients from the accessed bitstream; and
- transform the block of transform coefficients into a block of residuals using the identified transform;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
A computer program or a medium storing such a computer program is disclosed, wherein the computer program comprises software code instructions for performing the decoding method when the computer program is executed by a processor.
A machine readable medium is disclosed that has stored thereon machine executable instructions that, when executed, implement a decoding method, the method comprising:
- decoding information identifying a transform in a set of transforms;
- decoding a block of transform coefficients; and
- transforming the block of transform coefficients into a block of residuals using the identified transform;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms. In one embodiment, the identified transform is obtained from a set of at least a first transform and a second transform by one or more of a sign change operation and an order reverse operation.
In one embodiment, the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type- VIII.
In one embodiment, wherein the identified transform being a discrete sine transform of type-I, the identified transform is obtained by:
- reversing order of transform coefficients of the block of transform coefficients;
- applying an inverse discrete cosine transform of type-II on the block of transform coefficients after order reversing to obtain a block of residuals; and
- changing the sign of odd ordered residuals of the block of residuals.
In one embodiment, wherein the identified transform being a discrete sine transform of type- VII, the identified transform is obtained by:
- changing the sign of odd ordered transform coefficients of the block of transform coefficients;
- applying a forward discrete cosine transform of type- VIII on the block of transform coefficients after sign change to obtain a block of residuals; and
- reversing order of residuals in the block of residuals.
In one embodiment, wherein the identified transform being a discrete sine transform of type-I, the identified transform is obtained by:
- reversing order of the transform coefficients of the block of transform coefficients;
- applying a forward discrete cosine transform of type- VIII on the block of transform coefficients after reversing order to obtain a block of residuals; and
- changing the sign of odd ordered residuals of the block of residuals.
In one embodiment, the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type-IV.
An encoding method is disclosed that comprising: - obtaining a block of residuals;
- identifying a transform in a set of transforms;
- transforming the block of residuals into a block of transform coefficients using the identified transform; and
- encoding the block of transform coefficients and information identifying the transform in the set of transforms;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
An encoding device is disclosed that comprises:
- means for obtaining a block of residuals;
- means for identifying a transform in a set of transforms;
- means for transforming the block of residuals into a block of transform coefficients using the identified transform;
- means for encoding the block of transform coefficients and information identifying the transform in the set of transforms;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
An encoding device is disclosed that comprises a communication interface configured to access at least an image block and at least one processor configured to:
- obtain a block of residuals from the accessed image block;
- identify a transform in a set of transforms;
- transform the block of residuals into a block of transform coefficients using the identified transform;
- encode the block of transform coefficients and information identifying the transform in the set of transforms;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms. A computer program or a medium storing such a computer program is disclosed, wherein the computer program comprises software code instructions for performing the encoding method when the computer program is executed by a processor.
A machine readable medium is disclosed that has stored thereon machine executable instructions that, when executed, implement an encoding method, the method comprising:
- obtaining a block of residuals;
- identifying a transform in a set of transforms;
- transforming the block of residuals into a block of transform coefficients using the identified transform; and
- encoding the block of transform coefficients and information identifying the transform in the set of transforms;
wherein the identified transform is derived from a set of at least a first transform and a second transform, wherein the identified transform is different from the first and second transforms.
A bitstream formatted to include encoded data representative of a block of a picture, the encoded data encoded according to the encoding method according to any one of the embodiments disclosed.
In one embodiment, the identified transform is obtained from a set of at least a first transform and a second transform by one or more of a sign change operation and an order reverse operation.
In one embodiment, the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type- VIII.
In one embodiment, wherein the identified transform being a discrete sine transform of type-I, the identified transform is obtained by:
- changing the sign of odd ordered residuals;
- applying a forward of discrete cosine transform of type-II on the block of residuals after sign change to obtain a block of transform coefficients; and
- reversing order of the transform coefficients in the block of transform coefficients. In one embodiment, wherein the identified transform being a discrete sine transform of type- VII, the identified transform is obtained by:
- reversing order of the residuals in the block of residuals;
- applying a forward discrete cosine transform of type- VIII on the block of residuals after reversing order to obtain a block of transform coefficients; and
- changing the sign of odd ordered transform coefficients.
In one embodiment, wherein the identified transform being a discrete sine transform of type-I, the identified transform is obtained by:
- changing the sign of odd ordered residuals;
- applying a forward of discrete cosine transform of type- VIII on the block of residuals after sign change to obtain a block of transform coefficients; and
- reversing order of the transform coefficients in the block of transform coefficients.
In one embodiment, the first transform is a discrete cosine transform of type-II and the second transform is a discrete cosine transform of type-IV.
4. BRIEF SUMMARY OF THE DRAWINGS
- Figure 1 represents an exemplary architecture of a transmitter configured to encode a picture in a bitstream according to a specific and non-limiting embodiment;
- Figure 2 illustrates an exemplary video encoder, e.g. an encoder of HEVC type, adapted to execute the encoding method;
- Figure 3 represents a flowchart of a method for encoding a picture block in a bitstream according to a specific and non-limiting embodiment;
Figure 4 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to an exemplary embodiment;
- Figure 5 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to another exemplary embodiment;
- Figure 6 represents an exemplary architecture of a receiver 2000 configured to decode a picture from a bitstream to obtain a decoded picture according to a specific and non-limiting embodiment; - Figure 7 illustrates a block diagram of an exemplary video decoder 200, e.g. of the HEVC type, adapted to execute the decoding method;
- Figure 8 represents a flowchart of a method for decoding a picture block from a bitstream according to a specific and non-limiting embodiment;
- Figure 9 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to an exemplary embodiment; and
- Figure 10 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to another exemplary embodiment.
5. DETAILED DESCRIPTION
It is to be understood that the figures and descriptions have been simplified to illustrate elements that are relevant for a clear understanding of the present embodiments, while eliminating, for purposes of clarity, many other elements found in typical encoding and/or decoding devices.
Various methods are described below, and each of the methods comprises one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and/or use of specific steps and/or actions may be modified or combined.
Reference to“one embodiment” or“an embodiment” of the present principles, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase“in one embodiment” or “in an embodiment” or“in one implementation” or“in an implementation”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment.
It will be understood that, although the terms first and second may be used herein to describe various elements, these elements should not be limited by these terms. These terms are only used to distinguish one element from another.
It is to be appreciated that the use of any of the following“/”,“and/or”,“at least one of’, and“one or more of A, B, and C”, for example, in the cases of“A/B”,“A and/or B” and“at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of“A, B, and/or C” and“at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as readily apparent by one of ordinary skill in this and related arts, for as many items listed. A picture is an array of luma samples in monochrome format or an array of luma samples and two corresponding arrays of chroma samples (or three arrays of tri chromatic color samples such as RGB) in 4:2:0, 4:2:2, and 4:4:4 colour format. Generally, a“block” addresses a specific area in a sample array (e.g., luma Y), and a “unit” includes the collocated block of all color components (luma Y and possibly chroma Cb and chroma Cr). A slice is an integer number of basic coding units such as HEVC coding tree units or H.264 macroblock units. A slice may consist of a complete picture as well as part thereof. Each slice may include one or more slice segments.
In the following, the word “reconstructed” and “decoded” can be used interchangeably. Usually but not necessarily“reconstructed” is used on the encoder side while“decoded” is used on the decoder side. It should be noted that the term“decoded” or“reconstructed” may mean that a bitstream is partially“decoded” or“reconstructed,” for example, the signals obtained after deblocking filtering but before SAO filtering, and the reconstructed samples may be different from the final decoded output that is used for display. We may also use the terms“image,” “picture,” and“frame” interchangeably.
Various embodiments are described with respect to the HEVC standard. However, the present embodiments are not limited to HEVC, and can be applied to other standards, recommendations, and extensions thereof, including for example HEVC or HEVC extensions like Format Range (RExt), Scalability (SHVC), Multi- View (MV-HEVC) Extensions and future video coding standard developed by JVET (Joint Video Experts Team). The various embodiments are described with respect to the encoding/decoding of a picture block. They may be applied to encode/decode a whole picture or a whole sequence of pictures. Figure 1 represents an exemplary architecture of a transmitter 1000 configured to encode a picture in a bitstream according to a specific and non-limiting embodiment.
The transmitter 1000 comprises one or more processor(s) 1005, which could comprise, for example, a CPU, a GPU and/or a DSP (English acronym of Digital Signal Processor), along with internal memory 1030 (e.g. RAM, ROM, and/or EPROM). The transmitter 1000 comprises one or more communication interface(s) 1010 (e.g. a keyboard, a mouse, a touchpad, a webcam), each adapted to display output information and/or allow a user to enter commands and/or data; and a power source 1020 which may be external to the transmitter 1000. The transmitter 1000 may also comprise one or more network interface(s) (not shown). Encoder module 1040 represents the module that may be included in a device to perform the coding functions. Additionally, encoder module 1040 may be implemented as a separate element of the transmitter 1000 or may be incorporated within processor(s) 1005 as a combination of hardware and software as known to those skilled in the art.
The picture may be obtained from a source. According to different embodiments, the source can be, but is not limited to:
a local memory, e.g. a video memory, a RAM, a flash memory, a hard disk; a storage interface, e.g. an interface with a mass storage, a ROM, an optical disc or a magnetic support;
a communication interface, e.g. a wireline interface (for example a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as a IEEE 802.11 interface or a Bluetooth interface); and
a picture capturing circuit (e.g. a sensor such as, for example, a CCD (or Charge-Coupled Device) or CMOS (or Complementary Metal-Oxide- Semiconductor)).
According to different embodiments, the bitstream may be sent to a destination. As an example, the bitstream is stored in a remote or in a local memory, e.g. a video memory or a RAM, a hard disk. In a variant, the bitstream is sent to a storage interface, e.g. an interface with a mass storage, a ROM, a flash memory, an optical disc or a magnetic support and/or transmitted over a communication interface, e.g. an interface to a point to point link, a communication bus, a point to multipoint link or a broadcast network. According to an exemplary and non-limiting embodiment, the transmitter 1000 further comprises a computer program stored in the memory 1030. The computer program comprises instructions which, when executed by the transmitter 1000, in particular by the processor 1005, enable the transmitter 1000 to execute the encoding method described with reference to any of the Figures 3, 4, and 5. According to a variant, the computer program is stored externally to the transmitter 1000 on a non-transitory digital data support, e g. on an external storage medium such as a HDD, CD-ROM, DVD, a read-only and/or DVD drive and/or a DVD Read/Write drive, all known in the art. The transmitter 1000 thus comprises a mechanism to read the computer program. Further, the transmitter 1000 could access one or more Universal Serial Bus (USB)-type storage devices (e g.,“memory sticks.”) through corresponding USB ports (not shown).
According to exemplary and non-limiting embodiments, the transmitter 1000 can be, but is not limited to:
a mobile device;
a communication device;
a game device;
a tablet (or tablet computer);
a laptop;
a still picture camera;
a video camera;
an encoding chip or encoding device/apparatus;
a still picture server; and
a video server (e.g. a broadcast server, a video-on-demand server or a web server).
Figure 2 illustrates an exemplary video encoder 100, e.g. an encoder of HEVC type, adapted to execute the encoding method described with reference to any of the Figures 3, 4, and 5. The encoder 100 is an example of a transmitter 1000 or part of such a transmitter 1000.
For coding, a picture is usually partitioned into basic coding units, e.g. into coding tree units (CTU) in FIEVC or into macroblock units in H.264. A set of possibly consecutive basic coding units is grouped into a slice. A basic coding unit contains the basic coding blocks of all color components. In HEVC, the smallest coding tree block (CTB) size 16x16 corresponds to a macroblock size as used in previous video coding standards. It will be understood that, although the terms CTU and CTB are used herein to describe encoding/decoding methods and encoding/decoding devices, these methods and apparatus should not be limited by these specific terms that may be worded differently (e.g. macroblock) in other standards such as H.264.
In HEVC coding, a picture is partitioned into CTUs of square shape with a configurable size typically 64x64, 128x128, or 256x256. A CTU is the root of a quad- tree partitioning into 4 square Coding Units (CU) of equal size, i.e. half of the parent block size in width and in height. A quad-tree is a tree in which a parent node can be split into four child nodes, each of which may become parent node for another split into four child nodes. In HEVC, a coding Block (CB) is partitioned into one or more Prediction Blocks (PB) and forms the root of a quadtree partitioning into Transform Blocks (TBs). Corresponding to the Coding Block, Prediction Block and Transform Block, a Coding Unit (CU) includes the Prediction Units (PUs) and the tree- structured set of Transform Units (TUs), a PU includes the prediction information for all color components, and a TU includes residual coding syntax structure for each color component. The size of a CB, PB and TB of the luma component applies to the corresponding CU, PU and TU.
In more recent encoding systems such as in loint Exploration Model (IEM) described in the document JVET-Fl00l-v3 entitled“ Algorithm Description of Joint Exploration Test Model 6 (JEM 6/ a CTU is the root of a coding tree partitioning into Coding Units (CU). A coding tree is a tree in which a parent node (usually corresponding to a CU) can be split into child nodes (e.g. into 2, 3 or 4 child nodes), each of which may become parent node for another split into child nodes. In addition to the quad-tree split mode, new split modes (binary tree symmetric split modes, binary tree asymmetric split modes and triple tree split modes) are also defined that increase the total number of possible split modes. The coding tree has a unique root node, e.g. a CTU. A leaf of the coding tree is a terminating node of the tree. Each node of the coding tree represents a CU that may be further split into smaller CUs also named sub-CUs or more generally sub-blocks. Once the partitioning of a CTU into CUs is determined, CUs corresponding to the leaves of the coding tree are encoded. The partitioning of a CTU into CUs and the coding parameters used for encoding each CU (corresponding to a leaf of the coding tree) may be determined on the encoder side through a rate distortion optimization procedure. There is no partitioning of a CB into PBs and TBs, i.e. a CU is made of a single PU and a single TU.
In the following, the term“block” or“picture block” can be used to refer to any one of a CTU, a CU, a PU, a TU, a CB, a PB and a TB. In addition, the term“block” or“picture block” can be used to refer to a macroblock, a partition and a sub-block as specified in H.264/AVC or in other video coding standards, and more generally to refer to an array of samples of numerous sizes.
Back to figure 2, in the exemplary encoder 100, a picture is encoded by the encoder elements as described below. The picture to be encoded is processed in units of CUs. Each CU is encoded using either an intra or inter mode. When a CU is encoded in an intra mode, it performs intra prediction (160). In an inter mode, motion estimation (175) and compensation (170) are performed. The encoder decides (105) which one of the intra mode or inter mode to use for encoding the CU, and indicates the intra/inter decision by a prediction mode flag. Residuals are calculated by subtracting (110) a predicted block (also known as a predictor) from the original picture block.
CUs in intra mode are predicted from reconstructed neighboring samples, e.g. within the same slice. A set of 35 intra prediction modes is available in HEVC, including a DC, a planar, and 33 angular prediction modes. The intra prediction reference may thus be reconstructed from the row and column adj acent to the current block. CUs in inter mode are predicted from reconstructed samples of a reference picture stored in a reference picture buffer (180).
The residuals are transformed (125) into transform coefficients, also sometimes denoted as residual coefficients. In former video compression schemes, e.g. in HEYC, DCT-II is most often used. In more recent video compression schemes, a new transform scheme is disclosed that uses multiple selected transforms from the DCT/DST families other than the current transforms (i.e. DCT-II and 4x4 DST VII) in HEVC. The newly introduced transforms are DST-VII, DCT-VIII, DST-I and DCT-V. Table 1 shows the basis functions of the newly introduced DST/DCT. This set includes a transform DCT- VIII with a decreasing lowest frequency basis function, a transform DST-VII with an increasing lowest frequency basis function, a transform DCT-V with a quasi-constant lowest frequency basis function and a transform DST-VII with a centrally oriented lowest basis function. Other transforms with an increasing basis functions are DST-III, DST-IV and DST-VIII. The lowest frequency basis functions are the most important ones, since the typical residual signals are encoded by the first few coefficients.
Figure imgf000015_0001
Table 1
Adding these transforms increases the encoder and decoder complexity and memory requirement. Indeed, the implementation of the transform process is achieved either by specific fast implementations, each one being specific to each transform type and block size, or by matrix multiplications which require loading forward and inverse transform matrices for each transform type and block size. The transforms of Table 1 have the following properties (more details are given in the Annex section):
1. DCT-VIII is the reverse of DST-VII with some appropriate sign change;
2. DST-II is obtained from DCT-II by appropriate sign changing and then reversing;
3. The inverse of DST-VII is DST-VI;
4. DCT-VIII is self-inverse;
5. DCT-V basis functions are very similar to those of DCT-II.
For a vector of N elements, its reverse is achieved by scanning it from its end to its beginning. Mathematically speaking, for a vector A(i), i e [0;N-1], the vector B(i) = A(N-l-i) is the reverse of A(i). According to an embodiment, these properties are used to decrease the number of additional transforms to be implemented, while preserving the coding efficiency at least partially. In a specific embodiment, the DCT-VIII is used as the single additional transform. In a variant, two additional transforms. As a result, the number of additional transforms is 1 or 2 while JEM design uses 4 additional transforms.
The transform coefficients are then quantized (130). The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy coded (145) to output a bitstream. The encoder may also skip the transform or bypass both transform and quantization, i.e., the residual is coded directly without the application of the transform or quantization processes. In direct PCM coding, no prediction is applied and the coding unit samples are directly coded into the bitstream.
The entropy coding may be, e.g., Context Adaptive Binary Arithmetic Coding (CAB AC), Context Adaptive Variable Length Coding (CAVLC), Huffman, arithmetic, exp-Golomb, etc. CABAC is a method of entropy coding first introduced in H.264 and also used in HEVC. CABAC involves binarization, context modeling and binary arithmetic coding. Binarization maps the syntax elements to binary symbols (bins). Context modeling determines the probability of each regularly coded bin (i.e. non- bypassed) based on some specific context Finally, binary arithmetic coding compresses the bins to bits according to the determined probability.
The encoder comprises a decoding loop and thus decodes an encoded block to provide a reference for further predictions. The quantized transform coefficients are de-quantized (140) and inverse transformed (150) to decode residuals. A picture block is reconstructed by combining (155) the decoded residuals and the predicted block. An in-loop filter (165) is applied to the reconstructed picture, for example, to perform deblocking/S AO (Sample Adaptive Offset) filtering to reduce coding artifacts. The filtered picture may be stored in a reference picture buffer (180) and used as reference for other pictures.
Figure 3 represents a flowchart of a method for encoding a picture block in a bitstream according to a specific and non-limiting embodiment.
The method starts at step S100. At step S110, a transmitter 1000, e g. such as the encoder 100, accesses a picture block. At step S120, a block of residuals is obtained, e.g. by subtracting a predictor from the accessed picture block. At step S130, the transmitter 1000 identifies a transform in a first set of several transforms. In a specific embodiment, the first set of transforms comprises the following transforms: DCT-II, DVT-V, DCT-VIII, DST-I and DST-VII as in JEM. The transform may be selected by rate-distortion optimization and identified by an index. At step S140, the block of residuals is transformed into a block of transform coefficients using the identified transform wherein the identified transform is derived from a second set of at least a first transform and a second transform. The second set is a sub-set of the first set. In an exemplary embodiment, the second set comprises two transforms, e.g. forward DCT-II and a single additional transform such as the forward DCT-VIII. In a variant, the second set comprises the following transforms: forward DCT-II and forward DCT-IV. The forward DCT-IV has a decreasing basis function at lowest frequency. In a variant, the second set comprises three transforms, e g. the forward DCT-II and two additional transforms, e g. DCT-V and DCT-VIII. In the case where the identified transform is not in the second set, i.e. the identified transform is different from the transforms in the second set, the identified transform is reproduced by the following additional steps: reversing the order of input data (residuals or transform coefficients) and changing their signs according to their index in the block or in a line (respectively column of the block).
At step S150, the transmitter 1000 encodes the block of transform coefficients in a bitstream. Encoding of transform coefficients usually comprises quantizing and entropy coding.
The method ends at step S160. Figure 4 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to an exemplary embodiment. In this embodiment, a single transform is used (e.g. forward DCT-VIII) to transform a block of residuals in addition to the classical forward DCT-II. The other transforms of the first set are either replaced by the single additional transform or the classical forward DCT-II or derived from these two transforms by appropriate order reversing of input data and sign change. The method of Figure 4 may be applied successively on the lines of a block and on the column of the block in case of separable transforms or on the whole block in case of non-separable transforms.
At step SI 000, a transform is identified in the first set of several transforms. In the case where the forward DCT-II (S1002) or the forward DCT-V (S1004) is identified, the forward DCT-II is applied on the block of residuals (S1020). The forward DCT-V is advantageously replaced (S1020) by the forward DCT-II since their basis functions are similar. In the case where the forward DST-I (S1006) is identified, signs of residuals in the block of residuals are changed (S1022-1). More precisely, each residual in the block of residuals is multiplied by (-1)*, where j is the index of the residual in a line (respectively column) of the residual block in case where S1022-1 is applied on a line (respectively column). In a variant, j is the index of the residual in the residual block. In this latter case, the block may be scanned in a specific order (e.g. in a raster scan order) to obtain a vector of residuals, j being the index of the residual in the obtained vector. The forward DCT-II is then applied (S 1024-1) on the block of residuals after sign change to obtain a block of transform coefficients. The order of transform coefficients in the block of transform coefficient is then reversed (S1026-1). DST-I is thus replaced by DST-II which is derived from DCT-II.
In the case where the forward DCT-VIII (SI 008) is identified, the forward DCT-
VIII is applied on the block of residuals (S1028). Finally, in the case where the forward DST-VII (S1010) is identified, the order of residuals in the block of residuals is reversed (S1030). The forward DCT-VIII is then applied (S1032) on the block of residuals after order reversing to obtain a block of transform coefficients. Signs of transform coefficients are changed (S1034). More precisely, each transform coefficient in the block is multiplied by (-1)1 , where i is the order of the frequency. More precisely, the sign of the odd ordered transform coefficients is changed.
Usually forward transforms are used on the encoder side while their corresponding inverse versions are used on the decoder side. Note that some of the selected transform matrices are symmetric and thus self-inverse, that is, for an orthonormal transform matrix A, the following equalities hold:
A-1 = AT, AAT = I
where / is the identity matrix and T is the transpose operator. If A is symmetric, then A = AT = A~l. This means that the inverse transform can be computed by using forward transform matrix, and no extra matrix for inverse transform needs to be stored. DCT-VIII is self-inverse.
According to the present embodiment, a single transform needs to be explicitly implemented in addition to the forward DCT-II while in JEM four additional transforms needs to be explicitly implemented. In a variant, two transforms are explicitly implemented in addition to the forward DCT-II. Therefore, the complexity and memory requirement are decreased while the coding efficiency is maintained since the other additional transforms of JEM are derived from the transforms of the second set by simple operations (sign change and order reversing). Figure 5 represents a flowchart of a method for obtaining a block of transform coefficients from a block of residuals according to another exemplary embodiment. In this embodiment, a single transform is used (e g. forward DCT-VIII) to transform a block of residuals in addition to the classical forward DCT-II. The other transforms of the first set are either replaced by the single additional transform or the classical forward DCT-II or derived from one of these two transforms by appropriate order reversing of input data and sign change. The steps of Figure 4 identical to the steps of Figure 3 are identified with the same numerical reference and are not further disclosed.
The difference with the embodiment of Figure 3 is for the case where the forward DST- I (S1006) is identified. In the case where the forward DST-I (S1006) is identified, signs of residuals in the block of residuals are changed (S 1022-2). More precisely, each residual in the block of residuals is multiplied by (-1)’, where j is the index of the residual in a line (respectively column) of the residual block in case where S 1022-2 is applied on a line (respectively column). More precisely, the sign of the odd ordered transform coefficients is changed. In a variant, j is the index of the residual in the residual block. In this latter case, the block may be scanned in a specific order (e.g. in a raster scan order) to obtain a vector of residuals, j being the index of the residual in the obtained vector. The forward DCT-VIII is then applied (SI 024-2) on the block of residuals after sign change to obtain a block of transform coefficients. The order of transform coefficients in the block of transform coefficient is then reversed (S1026-2). DST-I is replaced by DST-VI which is derived from DCT-VIII.
Other transforms than the forward DCT-VIII may be used in addition to the classical forward DCT-II to transform a block of residuals. For example, DCT-IV may be used. This transform, like DCT-VIII, has a decreasing basis function at lowest frequency. The reversed DCT-IV transform is DST-IV, which is like DST-VII.
More generally, some transforms can obtained from others by simple operations of sign changing and reverse ordering. For a transform T, two matrices R and S are defined as a reverse order matrix and sign change matrix respectively, such that
Figure imgf000019_0001
where i,j E (0, 1V— 1).
As an example, let Tl and T2 be the transform matrices of DST-VII and DCT-VIII respectively. The following relation holds: T2=SxTlxR. In other words, to compute the DST-VII transform from the existing DCT-VIII transform, the following procedure is performed: reverse the order of the input data, transform the data using the existing DCT-VIII algorithm, and then change the sign of the odd ordered coefficients.
Table 2 provides a summary about all possible transforms that can be obtained from a base transform using R and D. Tc is the transpose of T, which is the inverse of the transform. As used herein, regular numbers are used interchangeably with roman numerals for brevity. Therefore, for example, DCT-II, DCT-V, DCT-VIII, DST-I, DST-IV and DST-VII are also referred respectively as DCT2, DCT5, DCT8, DST1, DST4 and DST7.
Figure imgf000020_0001
Table 2
All the considered base transforms have a decreasing basis function at lowest frequency, while the first derived transforms have an increasing one. The second derived transform is either with quasi-constant basis function or centrally oriented one The centrally oriented transform can be either obtained from DCT-VIII or DCT-II. From those transforms, either DST-VI or DST-II can be obtained (Table 2), where both are very similar to centrally oriented transform of DST-I. Finally, the quasi constant transform of DCT-V can be replaced by DCT-II, which has a constant lowest frequency basis function. In a specific embodiment, a single additional transform, namely DCT- VIII, is implemented in addition to the existing DCT-II. DST-VII is directly computed by reverse ordering and sign changing, while DST-I is either replaced by DST-II (computed from DCT-II) or DST-VI (computed from) DST-VIII.
In a specific embodiment, the choice of the base transform(s) to be used in addition to the classical DCT-II is dependent on the block size.
For example, for small blocks, transforms with some discontinuities are preferred to well-match the characteristics of the residual signals. On the other hand, for large blocks, transforms which are smooth are preferred. As an example, DCT-VII is advantageously used as a base transform for small blocks (e.g. 4xN or Nx4). DST-VIII and DCT-V are thus derived from DCT-VII as indicated in Table 2. DCT-IV or DST- IV may also be used for small blocks. DCT-VIII or DCT IV are advantageously used as a base transform for larger blocks.
This embodiment does not require adding extra memory or hardware/software architecture.
In a variant, the number of additional transforms depends on the block size. As an example, up to a block size of , two additional transforms are used in addition to DCT- II, e.g. DCT-V and DCT-VIII, and for block sizes’ larger than N a single additional transform is used, e.g. DCT-VIII or DCT IV. In this latter case, DCT-V is replaced by DCT-II. In another example, up to a block size of N, a single additional transform is used in addition to DCT-II, e.g. DCT-V. In yet another example, up to a block size of N, more than two additional transforms are used in addition to DCT-II. N can be for example equal to 4, 8 or 16.
The various embodiments allow reducing the number of additional transforms while being efficient. These embodiments thus simplify the transform design and consequently both the encoder and decoder hardware/software design. In the case where the transform design is implemented by matrix multiplications, the solution requires adding a single transform or two transforms (e.g. per transform size) to emulate the original JVET additional transforms {DCT-V, DST-I, DST-VII, DCT-VIII}. Table 3 provides a summary of each number of transform matrices or hardware architecture needed for each transform size for both the proposed method and the JVET’s one. Note that some transforms require storing 2 matrices as they are not self-inverse. For self inverse transforms only one single matrix needs to be stored.
Figure imgf000022_0001
Table 3
In addition, JVET supports a block sizes from 4 to 128 for the multiple transform up to 64. If matrix multiplication is used for implementing the transforms, this requires loading 21840 matrix coefficients (see table 4). For a 2 bytes representation, this requires 218.4 KBytes (2*5*21840) for JVET, whereas the proposed method requires 43.68 KBytes (2* 1*21840). Thus, the proposed solution provides 174.72 KBytes reduction. This reduction may even be more important when considering further transforms sizes that might be used in future standards.
Figure imgf000022_0002
Table 4 Figure 6 represents an exemplary architecture of a receiver 2000 configured to decode a picture from a bitstream to obtain a decoded picture according to a specific and non-limiting embodiment.
The receiver 2000 comprises one or more processor(s) 2005, which could comprise, for example, a CPU, a GPU and/or a DSP (English acronym of Digital Signal Processor), along with internal memory 2030 (e.g. RAM, ROM and/or EPROM). The receiver 2000 comprises one or more communication interface(s) 2010 (e.g. a keyboard, a mouse, a touchpad, a webcam), each adapted to display output information and/or allow a user to enter commands and/or data (e.g. the decoded picture); and a power source 2020 which may be external to the receiver 2000. The receiver 2000 may also comprise one or more network interface(s) (not shown). The decoder module 2040 represents the module that may be included in a device to perform the decoding functions. Additionally, the decoder module 2040 may be implemented as a separate element of the receiver 2000 or may be incorporated within processor(s) 2005 as a combination of hardware and software as known to those skilled in the art
The bitstream may be obtained from a source. According to different embodiments, the source can be, but is not limited to:
a local memory, e.g. a video memory, a RAM, a flash memory, a hard disk; a storage interface, e.g. an interface with a mass storage, a ROM, an optical disc or a magnetic support;
a communication interface, e.g. a wireline interface (for example a bus interface, a wide area network interface, a local area network interface) or a wireless interface (such as a IEEE 802.11 interface or a Bluetooth interface); and
- an image capturing circuit (e.g. a sensor such as, for example, a CCD (or
Charge-Coupled Device) or CMOS (or Complementary Metal-Oxide- Semiconductor)).
According to different embodiments, the decoded picture may be sent to a destination, e.g. a display device. As an example, the decoded picture is stored in a remote or in a local memory, e.g. a video memory or a RAM, a hard disk. In a variant, the decoded picture is sent to a storage interface, e.g. an interface with a mass storage, a ROM, a flash memory, an optical disc or a magnetic support and/or transmitted over a communication interface, e.g. an interface to a point to point link, a communication bus, a point to multipoint link or a broadcast network. According to a specific and non-limiting embodiment, the receiver 2000 further comprises a computer program stored in the memory 2030. The computer program comprises instructions which, when executed by the receiver 2000, in particular by the processor 2005, enable the receiver to execute the decoding method described with reference to any one of Figures 8, 9, and 10. According to a variant, the computer program is stored externally to the receiver 2000 on a non-transitory digital data support, e g. on an external storage medium such as a HDD, CD-ROM, DVD, a read only and/or DVD drive and/or a DVD Read/Write drive, all known in the art. The receiver 2000 thus comprises a mechanism to read the computer program. Further, the receiver 2000 could access one or more Universal Serial Bus (USB)-type storage devices (e.g.,“memory sticks”) through corresponding USB ports (not shown).
According to exemplary and non-limiting embodiments, the receiver 2000 can be, but is not limited to:
a mobile device;
a communication device;
a game device;
a set top box;
a TV set;
a tablet (or tablet computer);
a laptop;
a video player, e.g. a Blu-ray player, a DVD player;
a display; and
a decoding chip or decoding device/apparatus.
Figure 7 illustrates a block diagram of an exemplary video decoder 200, e.g. of the HEVC type, adapted to execute the decoding method with reference to any one of Figures 8, 9, and 10. The video decoder 200 is an example of a receiver 2000 or part of such a receiver 2000. In the exemplary decoder 200, a bitstream is decoded by the decoder elements as described below. Video decoder 200 generally performs a decoding pass reciprocal to the encoding pass as described in Figure 2, which performs video decoding as part of encoding video data.
In particular, the input of the decoder includes a bitstream, which may be generated by the video encoder 100. The bitstream is first entropy decoded (230) to obtain transform coefficients, motion vectors, and other coded information. The transform coefficients are de-quantized (240) and inverse transformed (250) to decode residuals. The decoded residuals are then combined (255) with a predicted block (also known as a predictor) to obtain a decoded/reconstructed picture block. The predicted block may be obtained (270) from intra prediction (260) or motion-compensated prediction (i.e., inter prediction) (275). As described above, AMVP and merge mode techniques may be used during motion compensation, which may use interpolation filters to calculate interpolated values for sub-integer samples of a reference block. An in-loop filter (265) is applied to the reconstructed picture. The in-loop filter may comprise a deblocking filter and a SAO filter. The filtered picture is stored at a reference picture buffer (280).
Figure 8 represents a flowchart of a method for decoding a picture block from a bitstream according to a specific and non-limiting embodiment.
The method starts at step S200. At step S210, a receiver 2000 such as the decoder 200 accesses a bitstream At step S220, the receiver decodes information identifying a transform from the accessed bitstream. The information identifies a transform in a first set of transforms. In a specific embodiment, the set of transforms comprises the following transforms: DCT-II, DVT-V, DCT-VIII, DST-I and DST-VII as in JEM. The transform may be identified by an index decoded from the bitstream.
At step S230, a block of transform coefficients is decoded from the accessed bitstream. Decoding a block of transform coefficients usually comprises entropy decoding and inverse quantization.
At step S240, the block of transform coefficients is transformed into a block of residuals using the identified transform wherein the identified transform is derived from a second set of at least a first transform and a second transform. The second set is a sub-set of the first set. It comprises at least a first transform and a second transform. In an exemplary embodiment, the second set comprises the following transforms: Inverse DCT-II and forward DCT-VIII. Since the DCT-VIII is a self-inverse transform, there is no need to use an inverse DCT-VIII on the decoder side. Thus, forward DCT-VIII is also used in the decoder.
In a variant, the second set comprises the following transforms: inverse DCT-II and forward DCT-IV. In another variant, the second set comprises three transforms, e.g. the inverse DCT-II and two additional transforms, e.g. DCT-V and DCT-VIII. In the case where the identified transform is not in the second set, i.e. the identified transform is different from the transforms in the second set, the identified transform is reproduced by additional steps such as reversing the order of input data (residuals or transform coefficients) and changing their signs according to their position in the block.
At step S250, a decoded picture block is obtained for example by adding a predictor to the block of residuals.
The method ends at step S260.
Figure 9 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to an exemplary embodiment. In this embodiment, a single transform is used (e.g. forward DCT-VIII) to transform a block of transform coefficients in addition to the classical Inverse DCT-II. The other transforms of the first set are either replaced by the single additional transform or the classical Inverse DCT-II or derived from these two transforms by appropriate order’s reversing of input data and sign change.
At step S2000, a transform is identified in the first set of several transforms. In the case where the Inverse DCT-II (S2002) or the inverse DCT-V (S1004) is identified, the inverse DCT-II is applied on the block of transform coefficients (S2020). The inverse DCT-V is advantageously replaced (S2020) by the inverse DCT-II since their basis functions are similar. In the case where the inverse DST-I (S2006) is identified, the order of residuals in the block of residuals is reversed (S2022-1). The inverse DCT- II is then applied (S1024-1) on the block of residuals after order reversing to obtain a block of transform coefficients. Signs of transform coefficients are changed (S2026-1). More precisely, each transform coefficient in the block is multiplied by (-1)1 , where i is the order of the frequency. DST-I is replaced by DST-II which is derived from DCT- II.
In the case where the inverse DCT-VIII (S2008) is identified, the forward DCT- VIII is applied on the block of transform coefficients (S2028). Usually forward transforms are used on the encoder side while their corresponding inverse versions are used on the decoder side. However, DCT-VIII is self-inverse and thus forward DCT- VIII may be used instead of inverse DCT-VIII. Finally, in the case where the inverse DST-VII (S2010) is identified, the signs of transform coefficients are changed (S2030). More precisely, each transform coefficient in the block is multiplied by (-1)1. The forward DCT-VIII is then applied (S2032) on the block of transform coefficients after sign change to obtain a block of residuals. The order of the residuals in the residual block are then reversed (S2034).
According to the present embodiment, a single transform needs to be explicitly implemented in addition to the inverse DCT-II while in JEM four additional transforms needs to be explicitly implemented. Therefore, the complexity and memory requirement are decreased while the coding efficiency is maintained since the other additional transforms of JEM are derived from the transforms of the second set by simple operations (sign change and order reversing). Figure 10 represents a flowchart of a method for obtaining a block of residuals from a block of transform coefficients according to another exemplary embodiment. In this embodiment, a single transform is used (e g. forward DCT-VIII) to transform a block of residual in addition to the classical inverse DCT-II. The other transforms of the first set are either replaced by the single additional transform or the classical forward DCT-II or derived from these two transforms by appropriate order’ s reversing of input data and sign change. The steps of Figure 10 identical to the steps of Figure 9 are identified with the same numerical reference and are not further disclosed.
The difference with the embodiment of Figure 9 is for the case where the inverse DST-I (S2006) is identified. In this case, the order of residuals in the block of residuals is reversed (S2022-2). The inverse DCT-VIII is then applied (S2024-2) on the block of residuals after order reversing to obtain a block of transform coefficients. Signs of transform coefficients are changed (S2026-2). More precisely, each transform coefficient in the block is multiplied by (-1)1 , where i is the order of the frequency.
DST-I is replaced by DST-VI which is derived from DCT-VIII.
The implementations described herein may be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method or a device), the implementation of features discussed may also be implemented in other forms (for example a program). An apparatus may be implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.
Implementations of the various processes and features described herein may be embodied in a variety of different equipment or applications, particularly, for example, equipment or applications. Examples of such equipment include an encoder, a decoder, a post-processor processing output from a decoder, a pre-processor providing input to an encoder, a video coder, a video decoder, a video codec, a web server, a set-top box, a laptop, a personal computer, a cell phone, a PDA, and other communication devices. As should be clear, the equipment may be mobile and even installed in a mobile vehicle.
Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions (and/or data values produced by an implementation) may be stored on a processor-readable medium such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette (“CD”), an optical disc (such as, for example, a DVD, often referred to as a digital versatile disc or a digital video disc), a random access memory (“RAM”), or a read-only memory (“ROM”). The instructions may form an application program tangibly embodied on a processor-readable medium. Instructions may be, for example, in hardware, firmware, software, or a combination. Instructions may be found in, for example, an operating system, a separate application, or a combination of the two. A processor may be characterized, therefore, as, for example, both a device configured to carry out a process and a device that includes a processor- readable medium (such as a storage device) having instructions for carrying out a process. Further, a processor-readable medium may store, in addition to or in lieu of instructions, data values produced by an implementation.
As will be evident to one of skill in the art, implementations may produce a variety of signals formatted to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal may be formatted to carry as data the rules for writing or reading the syntax of a described embodiment, or to carry as data the actual syntax-values written by a described embodiment. Such a signal may be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries may be, for example, analog or digital information. The signal may be transmitted over a variety of different wired or wireless links, as is known. The signal may be stored on a processor-readable medium.
A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, elements of different implementations may be combined, supplemented, modified, or removed to produce other implementations. Additionally, one of ordinary skill will understand that other structures and processes may be substituted for those disclosed and the resulting implementations will perform at least substantially the same iunction(s), in at least substantially the same way(s), to achieve at least substantially the same result(s) as the implementations disclosed. Accordingly, these and other implementations are contemplated by this application.
ANNEX
Mathematically, the following properties hold:
1. DCT-VIII is the reverse of DST-VII with some appropriate sign change.
By reverse, we mean reversing the index j, which is from 0 to N-l, by a new index l = N— 1— j . For DST-VII, the basis functions are:
Figure imgf000030_0001
Now, by replacing j by l
Figure imgf000030_0002
Since sin(a— b) = sin(a) cos (b)— cos (a) sin (b), then
N
Figure imgf000030_0003
Figure imgf000031_0001
Which is exactly the form of DCT-VIII.
2. DST-II is the reverse of DCT-II with some appropriate sign change.
The basis functions for DST-II is given by:
Figure imgf000031_0002
This form can be obtained from DCT-II, where:
Figure imgf000031_0003
In other words, DST-II can be obtained from DCT-II by first negating input data with odd indexes, perform DCT-II, and then reverse the order of the coefficients.
3. The inverse of DST-VII is DST-VI: It should be noted that the Discrete Trigonometric transforms are orthogonal transforms. With this property, the inverse transform matrix is obtained by transposing the forward transform matrix. For DST-VI, the basis functions are given by the following mathematical form:
Figure imgf000032_0001
By swapping i and j we can obtain DST-VII from DST-VI and vice-versa.
On the other hand, DST-VI can be obtained from DCT-VII using this formula
Figure imgf000032_0002
Where l— N— 1— j

Claims

Claims
1. A decoding method comprising :
- decoding (S220) information identifying a transform in a set of transforms comprising at least a discrete cosine transform of type-II and an additional base transform;
- decoding (S230) a block of transform coefficients;
- transforming (S240) said block of transform coefficients into a block of residuals using said identified transform;
wherein, in the case where said identified transform is different from both said discrete cosine transform of type-II and said additional base transform, said method further comprises deriving said identified transform from either said discrete cosine transform of type-II or said additional base transform by one or more of a sign change operation and an order reverse operation.
2. The method of claim 1, wherein said additional base transform belongs to a set of transforms comprising a discrete cosine transform of type-III, a discrete cosine transform of type-IV, a discrete cosine transform of type-V, a discrete cosine transform of type- VI, a discrete cosine transform of type- VII, a discrete cosine transform of type- VIII, a discrete sine transform of type-III, a discrete sine transform of type-IV, a discrete sine transform of type-V, a discrete sine transform of type- VI, a discrete sine transform of type- VII, a discrete sine transform of type- VIII.
3. The method of claim 1 or 2, wherein said additional base transform is selected depending on the size of the block.
4. The method of claim 1 or 2, wherein, for small blocks, said additional base transform belongs to a set of transforms comprising a discrete cosine transform of type- VII, discrete cosine transform of type-IV, a discrete sine transform of type-IV.
5. The method of claim 1 or 2, wherein, for large blocks, said additional base transform belongs to the set of transforms comprising a discrete cosine transform of type- VIII, a discrete cosine transform of type-IV.
6. The method according to any one of claims 1-5, wherein said additional base transform is a discrete cosine transform of type- VIII and wherein said set of transforms further comprises a discrete sine transform of type- VII.
7. The method according to any one of claims 1-5, wherein said additional base transform is a discrete sine transform of type- VII and wherein said set of transforms further comprises a discrete cosine transform of type- VIII.
8. The method according to any one of claims 1-5, wherein said additional base transform is a discrete cosine transform of type-IV and wherein said set of transforms further comprises a discrete sine transform of type-IV.
9. The method according to any one of claims 1-5, wherein said additional base transform is a discrete sine transform of type-IV and wherein said set of transforms further comprises a discrete cosine transform of type-IV.
10. The method according to any one of claims 1 to 3, wherein said identified transform being a discrete sine transform of type-I, said identified transform is obtained by:
- reversing order of transform coefficients of said block of transform coefficients;
- applying an inverse discrete cosine transform of type-II on said block of transform coefficients after order reversing to obtain a block of residuals; and
- changing the sign of odd ordered residuals of said block of residuals.
11. The method according to any one of claims 1 to 3, wherein said additional base transform being a discrete cosine transform of type-VIII and said identified transform being a discrete sine transform of type- VII, said identified transform is obtained by:
- changing the sign of odd ordered transform coefficients of said block of transform coefficients;
- applying a forward discrete cosine transform of type-VIII on said block of transform coefficients after sign change to obtain a block of residuals; and
- reversing order of residuals in said block of residuals.
12. The method according to any one of claims 1 to 3, wherein said additional base transform being a discrete cosine transform of type-VIII and said identified transform being a discrete sine transform of type-I, said identified transform is obtained by:
- reversing order of said transform coefficients of said block of transform coefficients;
- applying a forward discrete cosine transform of type-VIII on said block of transform coefficients after reversing order to obtain a block of residuals; and
- changing the sign of odd ordered residuals of said block of residuals.
13. An encoding method comprising:
- obtaining (S120) a block of residuals;
- identifying (S130) a transform in a set of transforms comprising at least a discrete cosine transform of type-II and an additional base transform;
- transforming (S140) said block of residuals into a block of transform coefficients using said identified transform; and
- encoding (S150) said block of transform coefficients and information identifying a transform in a set of transforms;
wherein, in the case where said identified transform is different from both said discrete cosine transform of type-II and said additional base transform, said method further comprises deriving said identified transform from either said discrete cosine transform of type-II or said additional base transform by one or more of a sign change operation and an order reverse operation.
14. The method of claim 13, wherein said additional base transform belongs to a set of transforms comprising a discrete cosine transform of type-III, a discrete cosine transform of type-IV, a discrete cosine transform of type-V, a discrete cosine transform of type- VI, a discrete cosine transform of type- VII, a discrete cosine transform of type-VIII, a discrete sine transform of type-III, a discrete sine transform of type-IV, a discrete sine transform of type-V, a discrete sine transform of type- VI, a discrete sine transform of type- VII, a discrete sine transform of type-VIII.
15. The method of claim 13 or 14, wherein said additional base transform is selected depending on the size of the block.
16. The method of claim 13 or 14 wherein, for small blocks, said additional base transform belongs to a set of transforms comprising a discrete cosine transform of type- VII, discrete cosine transform of type-IV, a discrete sine transform of type-IV.
17. The method of claim 13 or 14, wherein, for large blocks, said additional base transform belongs to the set of transforms comprising a discrete cosine transform of type- VIII, a discrete cosine transform of type-IV.
18. The method according to any one of claims 13-17, wherein said additional base transform is a discrete cosine transform of type- VIII and wherein said set of transforms further comprises a discrete sine transform of type- VII.
19. The method according to any one of claims 13-17, wherein said additional base transform is a discrete sine transform of type- VII and wherein said set of transforms further comprises a discrete cosine transform of type- VIII.
20. The method according to any one of claims 13-17, wherein said additional base transform is a discrete cosine transform of type-IV and wherein said set of transforms further comprises a discrete sine transform of type-IV.
21. The method according to any one of claims 13-17, wherein said additional base transform is a discrete sine transform of type-IV and wherein said set of transforms further comprises a discrete cosine transform of type-IV.
22. The method according to any one of claims 13 to 15, wherein said identified transform being a discrete sine transform of type-I, said identified transform is obtained by:
- reversing order of transform coefficients of said block of transform coefficients;
- applying an inverse discrete cosine transform of type-II on said block of transform coefficients after order reversing to obtain a block of residuals; and
- changing the sign of odd ordered residuals of said block of residuals.
23. The method according to any one of claims 13 to 15, wherein said additional base transform being a discrete cosine transform of type-VIII and said identified transform being a discrete sine transform of type- VII, said identified transform is obtained by:
- reversing order of said residuals in said block of residuals;
- applying a forward discrete cosine transform of type-VIII on said block of residuals after reversing order to obtain a block of transform coefficients; and
- changing the sign of odd ordered transform coefficients.
24. The method according to any one of claims 13 to 15, wherein said additional base transform being a discrete cosine transform of type-VIII and said identified transform being a discrete sine transform of type-I, said identified transform is obtained by:
- changing the sign of odd ordered residuals;
- applying a forward of discrete cosine transform of type-VIII on said block of residuals after sign change to obtain a block of transform coefficients; and
- reversing order of said transform coefficients in said block of transform coefficients.
25. A decoding device comprising :
- means for decoding information identifying a transform in a set of transforms comprising at least a discrete cosine transform of type-II and an additional base transform;
- means for decoding a block of transform coefficients;
- means for transforming said block of transform coefficients into a block of residuals using said identified transform;
wherein, in the case where said identified transform is different from both said discrete cosine transform of type-II and said additional base transform, said decoding device further comprises means for deriving said identified transform from either said discrete cosine transform of type-II or said additional base transform by one or more of a sign change operation and an order reverse operation.
26. An encoding device comprising:
- means for obtaining a block of residuals;
- means for identifying a transform in a set of transforms comprising at least a discrete cosine transform of type-II and an additional base transform; - means for transforming said block of residuals into a block of transform coefficients using said identified transform; and
- means for encoding said block of transform coefficients and information identifying a transform in a set of transforms;
wherein, in the case where said identified transform is different from both said discrete cosine transform of type-II and said additional base transform, said encoding device further comprises means for deriving said identified transform from either said discrete cosine transform of type-II or said additional base transform by one or more of a sign change operation and an order reverse operation.
PCT/US2019/012277 2018-01-30 2019-01-04 Methods and devices for picture encoding and decoding using multiple transforms WO2019152131A1 (en)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
EP18305085.5A EP3518542A1 (en) 2018-01-30 2018-01-30 Methods and devices for picture encoding and decoding using multiple transforms
EP18305085.5 2018-01-30
EP18305386 2018-03-30
EP18305386.7 2018-03-30
EP18305808 2018-06-26
EP18305808.0 2018-06-26

Publications (1)

Publication Number Publication Date
WO2019152131A1 true WO2019152131A1 (en) 2019-08-08

Family

ID=65228645

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2019/012277 WO2019152131A1 (en) 2018-01-30 2019-01-04 Methods and devices for picture encoding and decoding using multiple transforms

Country Status (1)

Country Link
WO (1) WO2019152131A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021102424A1 (en) * 2019-11-21 2021-05-27 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus on transform and coefficient signaling

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180020218A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Look-up table for enhanced multiple transform

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180020218A1 (en) * 2016-07-15 2018-01-18 Qualcomm Incorporated Look-up table for enhanced multiple transform

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Algorithm Description of Joint Exploration Test Model 6 (JEM 6)", JVET-F1001-V3
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> *
REZNIK YURIY A: "Relationship between DCT-II, DCT-VI, and DST-VII transforms", INTERNATIONAL WORKSHOP ON ACOUSTIC SIGNAL ENHANCEMENT 2012, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, PISCATAWAY, NJ, US, 26 May 2013 (2013-05-26), pages 5642 - 5646, XP032508092, ISSN: 1520-6149, [retrieved on 20131018], DOI: 10.1109/ICASSP.2013.6638744 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021102424A1 (en) * 2019-11-21 2021-05-27 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus on transform and coefficient signaling

Similar Documents

Publication Publication Date Title
CN110720218B (en) Intra-frame filtering applied with transform processing in video coding
CN110393010B (en) Intra-filtering flags in video coding
CN109716772B (en) Transform selection for video coding
JP6396439B2 (en) Residual differential pulse code modulation (DPCM) expansion and harmony with conversion skip, rotation, and scanning
JP7209829B2 (en) Method, Apparatus, and Program for Single-Level Transform Partitioning and Adaptive Sub-Block Transform
JP2019525575A (en) Lookup table for extended multiple conversion
KR20170107452A (en) Enhanced multiple transforms for prediction residual
CN112352429B (en) Method, apparatus and storage medium for encoding and decoding video data
US11570478B2 (en) Video signal processing method and apparatus using multiple transform kernels
WO2019191090A1 (en) Minimization of transform memory and latency via parallel factorizations
JP2022524055A (en) Boundary handling for adaptive loop filtering
EP3568982B1 (en) Scaling of transform coefficients for non-dyadic transform blocks
CN112425164B (en) Transform variants of multiple separable transform choices
EP3955578A1 (en) Image coding using transform index
CN113545053A (en) Implicit transform selection in video coding
CN113016180A (en) Virtual pipeline for video encoding and decoding
KR20200096227A (en) Method and apparatus for video encoding and decoding based on block shape
TW202038617A (en) Tree-based transform unit (tu) partition for video coding
CN116325729A (en) Activation function design in neural network-based filtering process for video coding
WO2019152131A1 (en) Methods and devices for picture encoding and decoding using multiple transforms
CN115550666A (en) Encoding method, decoding method, computing device, and medium for video data
EP3518542A1 (en) Methods and devices for picture encoding and decoding using multiple transforms
CN115315947A (en) Low frequency non-separable transform processing in video coding
CN114175653B (en) Method and apparatus for lossless codec mode in video codec
RU2812248C2 (en) Image encoding method based on transformation and device for its implementation

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

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

Country of ref document: EP

Kind code of ref document: A1