Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING
Document Type and Number:
WIPO Patent Application WO/2019/029951
Kind Code:
A1
Abstract:
Methods and apparatuses for video coding and decoding are provided. The method of video encoding includes accessing a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy encoding the syntax element based on the context model and providing the entropy encoded syntax element. A bitstream formatted to include encoded data, a computer-readable storage medium and a computer-readable program product are also described.

Inventors:
LELEANNEC FABRICE (FR)
POIRIER TANGI (FR)
CHEN YA (FR)
Application Number:
PCT/EP2018/069313
Publication Date:
February 14, 2019
Filing Date:
July 16, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
THOMSON LICENSING (FR)
International Classes:
H04N19/13; H04N19/18
Domestic Patent References:
WO2013006446A12013-01-10
Foreign References:
EP2800368A12014-11-05
US20130003824A12013-01-03
EP16306308A2016-10-05
Other References:
"Algorithm Description of Joint Exploration Test Model 3", JOINT VIDEO EXPLORATION TEAM, 26 May 2015 (2015-05-26)
Attorney, Agent or Firm:
LORETTE, Anne et al. (FR)
Download PDF:
Claims:
CLAIMS

1. A method of video encoding comprising:

accessing (1710) a block of a picture;

determining (1720) a context mode! for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one;

entropy encoding (1730) the syntax element based on the context model; and providing (1740) the entropy encoded syntax element.

2. An apparatus for video encoding comprising:

means for accessing a block of a picture;

means for determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one;

means for entropy encoding the syntax element based on the context model; and means for providing the entropy encoded syntax element.

3. A method of video decoding comprising:

accessing (2010) encoded data representative of a block of a picture;

determi nin (2020) a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one;

entropy decoding (2030) the syntax element based on the context model; and providing (2040) the entropy decoded syntax element.

4. An apparatus for video decoding comprising:

means for accessing encoded data representative of a block of a picture; means for determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one;

means for entropy decoding the syntax element based on the context model; and means for providing the entropy decoded syntax element.

The method according to claim 1 or 3, or the apparatus according to claim 2 or 4 wherein a first weight of a position coordinate along a first axis is greater than a second weight of a position coordinate along a second axis if a first dimension of the block along the first axis is smaller than a second dimension of the block along the second axis.

The method according to any of claims 1, 3 and 5, or the apparatus according to any of claims 2, 4 and 5 wherein a context increment for the context model of the syntax element is determined based on the weighted sum of position coordinates of the transform coefficient in the block.

The method according to claim 6 or the apparatus according to claim 6 wherein the weighted sum determines at least two regions in the block, each region including at least one transform coefficient and being associated with a plurality of context increments, the context increment for the syntax element being one of the plurality of context increments of a region including the transform coefficient.

The method according to claim 7 or the apparatus according to claim 7 wherein said at least two regions are determined by comparing said weighted sum against at least one region boundary value.

The method according to any of claims 6 to 8, or the apparatus according to any of the claims 6 to 8 wherein said context increment for said syntax element is further a function of a sum of syntax elements for a plurality of neighboring transform coefficients of said transform coefficient.

10. The method according to any of claims 1, 3 and 5-9 or the apparatus according to any of claims 2, 4 and 5-9 wherein said syntax element determines at least one of whether said transform coefficient is non-zero, whether said transform coefficient is greater than one, whether said transform coefficient is greater than two, a sign of said transform coefficient and an absolute value remaining of said transform coefficient.

11. The method according to any of claims 1 , 3 and 5-10 or the apparatus according to any of claims 2, 4 and 5-10 wherein said transform coefficient is transformed according to one of a discrete cosine transform and a discrete sine transform.

12. The method according to any of claims 1 , 3 and 5- 1 1 or the apparatus according to any of claims 2, 4 and 5- 10 wherein said entropy encoding is a context adaptive binary arithmetic coding, CA BAC.

1 3. A computer program product including program code instructions for performing the method according to any of claims 1 , 3. and 5 to 12.

14. A computer-readable storage medium carrying a software program including program code instructions for the method according to any of claims 1 ,3 and 5 to 12.

1 5. A bitstream formatted to include encoded data representativ e of a block of a picture, the encoded data encoded according to any of claims 1 and 5 to 12.

Description:
METHOD AND APPARATUS FOR VIDEO ENCODING AND DECODING

TECHNICAL FIELD

[0001] The present embodiments generally relate to video encoding and decoding, particularly, entropy encoding and decoding based on block shape.

BACKGROUND

[0002] Any background information described herein is intended to introduce the reader to various aspects of art, which may be related to the present embodiments that are described below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present disclosure. Accordingly, it should be understood that these statements are to be read in this light.

[0003] 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 image and the predicted image, often denoted as prediction errors or prediction 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.

[0004] In the High Efficiency Video Coding (HEVC) standard ("ITU-T H.265 Telecommunication standardization sector of ITU (10/2014), series H: audiovisual and multimedia systems, infrastructure of audiovisual services - coding of moving video, High efficiency video coding, Recommendation ITU-T H.265"), a picture is partitioned into coding tree units (CTU) of square shape with a configurable size typically 64x64, 128x128, or 256x256. As illustrated in Figure 1, a CTU 110 is the root of a quad-tree partitioning into leaves called Coding Units (CU). For each CU, a prediction mode is signaled which indicates whether the CU is coded using intra or inter prediction. As illustrated in Figure 2, a consecutive set of CTUs (e.g., CTU 220) may be grouped into a slice 210. A CU (e.g., CU 230) may be partitioned into one or more Prediction Units (PU) and forms the root of a quad-tree (known as transform tree) partitioning into Transform Units (TUs). Asymmetric subdivision of the CU into PUs is also possible in inter prediction, that is if a CU has a size NxN, a PU may have a size N/4xN, 3N/4xN, NxN/4, Nx3N/4. Each PU is assigned some prediction information, for instance motion information, spatial intra prediction, etc. [0005] The Quad-Tree plus Binary-Tree ( QTBT) coding tool (Document JVET-C I 0 1 _v 3, ent itled "Algorithm Description of Joint Exploration Test Model 3", Joint Video Exploration Team of ISO/I EC JTC 1/SC29/WG11 , 3rd meeting, 26th May- 1 st June 2015, Geneva, CH) is a new video coding tool that provides a more flexible CTU representation and increased compression efficiency compared to the CU/PU/TU arrangement of the HEVC standard. As illustrated in Figure 3. the Quad-Tree plus Binary-Tree ( QTBT) coding tool defines a coding tree 310 where coding units can be split both in a quad-tree and in a binary-tree fashion. An exemplary coding tree representation of a Coding Tree Unit 320 is illustrated in Figure 3, where solid lines indicate quad-tree partitioning and dotted l ines indicate binary partitioning of a CU 330 within CTU 320, which is spat ial ly embedded in the quad-tree leaves.

1 0061 The splitting of a CTU into coding units is decided on the encoder side, e.g. through a rate distortion optimization procedure wh ich consists in determining the QTBT representation of the CTU w ith minimal rate distortion cost, i n the QTBT representation, a CU has either a square or a rectangular shape. The si/e of a coding unit is always a power of 2, and typically goes from 4 to 128. The QTBT decomposition of a CTU comprises two stages: the CTU is first split into 4 CUs in a quad-tree fashion, then each quad-tree leaf can be further div ided into two CUs in a binary fashion or into 4 CUs in a quad-tree fashion, as illustrated in Figure 3.

[0007] With the QTBT representation, a CU may not be further partit ioned into PUs or TUs. In other words, each CU is considered as a single prediction unit and a single transform unit. However, such a QTBT representation only allows for symmetric splitting of a CU as illustrated by Figure 3. The four split modes allowed by QTBT are: NO SPLIT (the CU is not split), QT SPLIT (split into 4 quadrants), HOR (split horizontally into two CUs of equal size) and VER (split vert ical ly into two CUs of equal size).

[0008] Recently, the EP appl ication No. 16306308.4, fi led on October 05, 2016 and entit led "ENCODING AND DECODING METHODS AND CORRESPONDING DEVICES " describes CUs with new rectangular shapes which result from a new Binary Spl itting Mode cal led asymmetric splittin mode, as illustrated in Figures 4 and 5. Figure 4 i llustrates a CU binary splitting mode in QTBT called asymmetric spl itt ing mode and depicts 4 exemplary spl it modes 410 to 440. i n Figure 4, the new rectangular shapes include sizes equal to 3 2 n in width and/or height. Moreov er, a CU with a si/e multiple of 3 in width or height can be further spl it in a binary fashion, horizontally or vertical ly.

[0009] A square CU with size (w, h) (width and height) that is split through one of the proposed asymmetric binary spl itting modes, for example HOR UP (horizontal-up) 410, results into 2 sub-coding units with respective rectangular si/es w, -j and \ w,— . Therefore, a CU with width or height equal to 3 2 n may be selected by the encoder. In such a case, an Intra prediction or Inter prediction process of a rectangular block with si/e multiple of 3 is performed. Additionally, a 2D transform with si/e 3 - 2 " in width or height, and the subsequent transform coefficient entropy coding process are performed.

[0010] Other CU splitting modes, as illustrated in Figure 5, called the horizontal 510 and vertical520 triple tree splitting modes, consist in dividing a CU into 3 sub-coding-units (sub- CUs), with respective si/es equal ¼, ½ and ¼ of the parent CU si/e i n the direction of the considered spatial division.

[0011] It is therefore of interest to propose encoding strategies that take into consideration the different shapes of the coding and sub-coding units. The present disclosure describes such a system.

SUMMARY

[0012] According to an aspect of the present disclosure, a method of video encoding is provided including accessing a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherei n at least one weight in the weighted sum is different than one, entropy encoding the syntax element based on the context model and providing the entropy encoded syntax element.

[0013] According to an aspect of the present disclosure, an apparatus for video encoding is provided, the apparatus including means for accessing a block of a picture, means for determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight i n the weighted sum is different than one, means for entropy encoding the syntax element based on the context model and means for providing the entropy encoded syntax element.

[0014] According to an aspect of the present disclosure, an apparatus for video encoding is prov ided, the apparatus including a processor, and at least one memory coupled to the processor, the processor being configured to access a block of a picture, determine a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight i n the weighted sum is different than one, entropy encode the syntax element based on the context model and provide the entropy encoded syntax element.

10015] According to an aspect of the present disclosure, a bitstream formatted to include encoded data representati ve of a block of a picture, the encoded data encoded by accessing a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherei n at least one weight in the weighted sum is different than one, entropy encoding the syntax element based on the context model and providing the entropy encoded syntax element.

[0016] According to an aspect of the present disclosure, a signal including a bitstream formatted to include encoded data representative of a block of a picture, the encoded data encoded by accessing a block of a picture, determ in ing a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy encoding the syntax element based on the context model and prov iding the entropy encoded syntax element.

[0017] According to an aspect of the present disclosure, a method of video decoding is prov ided including accessing encoded data representative of a block of a picture, determ ining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of posit ion coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy decoding the syntax element based on the context model, and providing the entropy decoded syntax element.

[0018] According to an aspect of the present disclosure, an apparatus for video decoding is prov ided, the apparatus including means for accessing encoded data representativ e of a block of a picture, means for determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is di ferent than one, means for entropy decoding the syntax element based on the context model and means for prov iding the entropy decoded syntax element.

[0019] According to an aspect of the present disclosure, an apparatus for video decoding is prov ided, the apparatus including a processor, and at least one memory coupled to the processor, the processor being configured to access encoded data representative of a block of a picture, determ ine a context model for a syntax element associated ith a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy decode the syntax element based on the context model, and provide the entropy decoded syntax element.

[0020] According to an aspect of the present disclosure, a computer-readable program product is provided including program code instructions for accessing a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy encoding the syntax element based on the context model and providing the entropy encoded syntax element.

[0021] According to an aspect of the present disclosure, a computer program product is provided including program code instructions for accessing encoded data representative of a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy decoding the syntax element based on the context model, and providing the entropy decoded syntax element.

[0022] According to an aspect of the present disclosure, a computer-readable storage medium carrying a software program is provided including program code instructions for accessing a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy encoding the syntax element based on the context model and providing the entropy encoded syntax element.

[0023] According to an aspect of the present disclosure, a computer-readable storage medium carrying a software program is provided including program code instructions for accessing encoded data representative of a block of a picture, determining a context model for a syntax element associated with a transform coefficient of the block, based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, entropy decoding the syntax element based on the context model, and providing the entropy decoded syntax element.

[0024] The above presents a simplified summary of the subject matter in order to provide a basic understanding of some aspects of subject matter embodiments. This summary is not an extensive overview of the subject matter. It is not intended to identify key/critical elements of the embodiments or to delineate the scope of the subject matter. Its sole purpose is to present some concepts of the subject matter in a simpl ified form as a prelude to the more detailed description that is presented later.

[0025] Additional features and advantages of the present disclosure will be made apparent from the following detailed description of illustrative embodiments which proceeds with reference to the accompanying figures.

BRI EF DESCRIPTION OF TH E DRAWI GS

[0026] The present disclosure may be better understood in accordance with the following exemplary figures brie ly described below:

Figure 1 illustrates a CTU split into CUs in accordance with the HEVC standard;

Figure 2 illustrates the splitting of a CTU into CUs, PUs and TUs in accordance with the H EVC standard;

Figure 3 illustrates a CTU in accordance with the QTBT tool;

Figure 4 illustrates a CU binary splitting mode in QTBT called asymmetric splitting mode; Figure 5 illustrates the horizontal (left) and vertical (right) triple tree CU splitting modes in QTBT;

Figure 6 illustrates an exemplary set of CU splitting modes in accordance with an embodiment of the present disclosure;

Figure 7 illustrates a simplified block diagram of an exemplary video encoder in accordance with an embodiment of the present disclosure;

Figure 8 illustrates the scanning order of transform blocks in accordance with the HEVC standard and an embodiment of the present disclosure;

Figure 9 illustrates a flowchart of an exemplary method of entropy encoding a significant coefficient flag in accordance with an embodiment of the present disclosure;

Figure 10 il lustrates a context model template used for entropy coding syntax elements in accordance with the prior art;

Figure 1 1 illustrates a flowchart of a method of determining the significant coefficient context increment in accordance with the prior art;

Figure 12 illustrates exemplary context model templates used for entropy coding syntax elements in accordance with the prior art;

Figure 1 3 illustrates exemplary context model templates used for entropy coding syntax elements in accordance with an embodiment of the present disclosure;

Figure 14 illustrates an exemplary context model template used for entropy coding syntax elements in accordance with an embodiment of the present disclosure; Figure 15 illustrates an exemplary context model template used for entropy coding syntax elements in accordance with an embodiment of the present disclosure;

Figure 16 illustrates a flowchart of a method of determining the significant coefficient context increment in accordance with an embodiment of the present disclosure;

Figure 17 illustrates a flowchart of an exemplary method of encoding in accordance with an embodiment of the present disclosure;

Figure 18 illustrates a simplified block diagram of an exemplary video decoder in accordance with an embodiment of the present disclosure;

Figure 19 illustrates a flowchart of an exemplar}' method of entropy decoding a significant coefficient flag in accordance with an embodiment of the present disclosure;

Figure 20 illustrates a flowchart of an exemplary method of decoding in accordance with an embodiment of the present disclosure; and

Figure 21 illustrates a block diagram of a computing environment within which aspects of the present disclosure can be implemented and executed.

DETAILED DISCUSSION OF THE EMBODIMENTS

100271 It should be understood that the elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input/output interfaces. Herein, the phrase "coupled" is defined to mean directly connected to or indirectly connected with through one or more intermediate components. Such intermediate components may include both hardware and software based components.

[0028] The present description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.

[0029] All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions.

[0030] Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

|0031 ] Thus, for example, it will be appreciated by those ski lled in the art that the block diagrams presented herein represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudocode, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

[0032] The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared. Moreover, explicit use of the term "processor" or "controller" should not be construed to refer exclusively to hardware capable of executing software, and may impl icitly include, without lim itation, digital signal processor (DSP) hardware, read only memory ( ROM ) for storing software, random access memory ( RAM ), and nonvolatile storage.

100331 Other hardware, conventional and/or custom, may also be included. Similarly, any switches shown in the figures are conceptual only. Thei r function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more speci ically understood from the context.

10034] In the claims hereof, any element expressed as a means for performing a speci ied function is intended to encompass any way of performing that function including, for example, a) a combination of circuit elements that performs that function or b) software in any form, including, therefore, firmware, microcode or the like, combined with appropriate circuitry for executing that software to perform the function. The disclosure as defined by such claims resides in the fact that the functionalities provided by the various recited means are combined and brought together in the manner wh ich the claims call for. It is thus regarded that any means that can provide those functionalities are equivalent to those shown herein.

[0035] It is to be understood that the figures and descriptions hav e been simpl ified to i l lustrate elements that are relevant for a clear understanding of the present disclosure, while eliminating, for purposes of clarity, many other elements found in typical encoding and/or decoding devices. [0036] 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. Various methods are described above, 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.

[0037] It is to be understood that a picture is an array of luma samples in monochrome format, or an array of luma samples and two corresponding arrays of chroma samples in 4:2:0, 4:2:2, and 4:4:4 color format. In HEVC, a "block" addresses a speci ic area in a sample array (e.g., luma Y), and a "unit" includes the collocated block of all encoded color components (luma Y and possibly chroma Cb and chroma Cr), syntax elements and prediction data that are associated with the block (e.g., motion vectors). However, the term "block" is more generally used herein to refer to a block (e.g. a coding block (CB), transform block (TB), coding group (CG), etc.) or a unit (e.g. a CU).

[0038] It is to be understood that a picture or block of pixels or transform coefficients is a two- dimensional array or matrix. The horizontal or x direction (or axis) represents a width and the vertical or y direction (or axis) represents a height. The indexes start at 0. The x direction represents columns and the y direction represents rows. The maximum x index is the width - 1. The maximum y index is the height - 1.

[0039] In the following sections, the word "reconstructed" and "decoded" may be used interchangeably. Usually but not necessarily ' reconstructed " is used on the encoder side while "decoded" is used on the decoder side. Also, the words "coded" and "encoded" may be used interchangeably. Moreover, the words "image", "'picture " and "frame " may be used interchangeably. Furthermore, the words "coding", "source coding" and "compression" may be used interchangeably.

[0040] The present disclosure is directed to techniques for video or image encoding and decoding (also known as source coding and decoding) where blocks of a plurality of shapes and splitting modes (e.g., all or a subset of the CU splitting modes illustrated in Figures 3, 4 and 5 ) may be allowed in the video coding, that is, the encoder may choose any of these shapes and splitting modes and signal them to the decoder. Figure 6 illustrates an exemplary set of CU splittin modes accordin to the present disclosure. The rich set of CU topologies result in coding structures that spatially match the structures and discontinuities contained in the images of a bitstream. Moreover, the present disclosure is directed to entropy coding of transform coefficients for the various CU splitting modes in order to prov ide increased compression efficiency (or rate distortion performance) with a small increase in complexity.

Encoding

[0041] Figure 7 i llustrates a simpl i ied block diagram of exemplary video encoder 700 in accordance with an embodiment of the present disclosure. The encoder 700 may be included in a transmitter or headend in a communication system. To encode a video sequence with one or more pictures, a picture may be partit ioned into CTUs of square shape with a configurable si/e. A consecutive set of CTUs may be grouped into a slice. A CTU is the root of a QTBT partitioning into CUs. In the exemplary encoder 700, a picture is encoded by the encoder modules as described below. Each block is encoded using either an intra mode or inter mode. When a block is encoded in an intra mode, the encoder 700 performs intra prediction (module 760). In an inter mode, motion est imation (module 775) and compensation (module 770) are performed. The encoder decides (module 705) which one of the intra mode or inter mode to use for encoding the block, and indicates the intra/inter decision by a prediction mode flag. Residuals are calculated by subtracting (module 710) a predicted sample block (also known as a predictor) from the original image block.

1 0421 As an example, blocks in intra mode are predicted from reconstructed neighboring samples. Inter prediction is performed by performing motion estimat ion (module 775) and motion-compensating (in module 770) a reference block stored i n a reference picture buffer 780.

[0043] The residuals are transformed (module 725) and quantized (module 730). The transform module 725 may transform the image from the pixel or time domain to the transform or frequency domain. The transform may be may be, e.g., a cosine transform, a sine transform, a wavelet transform, etc. Quantization, may be performed according to, e.g., a rate distortion criterion. The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy coded (module 745 ) to output a bitstream. The entropy coding may be, e.g., Context Adaptiv e B inary Arithmetic Coding ( CABAC), Context Adaptive Variable Length Coding (CAVLC), Huffman, arithmetic, exp-Golomb, etc. The encoder may also skip the transform and apply quantization directly to the non-transformed residual signal. The encoder may also bypass both transform and quantization, i.e., the residual is coded directly without the appl ication of the transform or quantization process. In direct PCM coding, no prediction is appl ied and the block samples are directly coded into the bitstream. [0044] 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 (module 740) and inverse transformed (module 750) to decode residuals. An image block is reconstructed by combining (module 755 ) the decoded residuals and the predicted sample block. An in-loop filter (765) may be appl ied to the reconstructed picture, for example, to perform deblocking/Sample Adaptive Offset ( SAO) filtering to reduce coding artifacts. The filtered image is stored in the reference picture buffer 780.

[0045] The modules of video encoder 700 may be implemented in software and executed by a processor, or may be implemented by well-known circuits by one skilled in the art of compression. In particular, video encoder 700 may be implemented as an integrated circuit (IC).

[0046] The modules of video encoder 700 are also present in other video encoders (e.g., HEVC encoders), except for the differences described in the present disclosure, particularly, differences in the block sizes and shapes, as in Figure 6, and differences in the entropy coding module 745, as will be described in greater detail in the following paragraphs and figures.

Entropy Encoding

[0047] In the HEVC standard and in the document JVET-O 00 1 v3 of the Joint Video

Exploration Team of 1 SO/I EC JTC 1/SC29/WG11 , quantized coefficients contained in a so- called transform-block ( TB ) may be entropy coded and decoded using CAB AC according to the exemplary patterns in Figure 8, which illustrates an exemplary 8x8 TB.

[0048] A TB may be a rectangular block of samples on which the same transform is applied.

A TB results from the optional partitioning of a Coding Block ( CB ). A CB may be a rectangular set of samples contained in a same color component. In case a CB is not partitioned, then the TB and CB have same si/e and spatially coincide. A CU may be made of one CB of luma samples, and two CBs of chroma samples (in the case of a color picture with three color components).

[0049] CAB AC is based on arithmetic coding and has been adopted by the H EVC standard.

CAB AC has multiple probability models for different contexts. It first converts all non-binary symbols to binary. I n particular, syntax elements are binari/ed (i.e. represented as a sequence of binary symbols called bins, each equal to a '0' or T). Then, for each bit, the encoder selects which probability model to use (identifying the probability of a bit being a '0' or a T), and utilizes information from nearby elements (or context) to optimize the probabi lity estimate. An H EVC CAB AC encoder has two main modes: regular coding and bypass coding. The bypass coding mode may be chosen for bins related to sign information or for lower significant bins, which are assumed to be uniformly distributed and for which, consequently, the regular binary arithmetic encoding process is bypassed. The regular coding mode, each bin value is encoded by using the regular arithmetic encoding process, where the associated probability model is either determined by a fixed choice, without any context modeling, or adaptively chosen depending on the related context model.

[0050] For context-based coding, a conditional probability model is used to skew the distribution of the data. Instead of estimating these probabilities ahead of time, the probabilities are estimated as the coding proceeds. Arithmetic coding is finally applied to compress the data. A proper choice of the context, hence the probability model for each bit allows for an increased compression efficiency. The context models may be indexed and identified by the context index. CAB AC and other context-based encoders and decoders are well-known by those sk illed in the art of compression and are not herein described in detail.

10051 ] The present disclosure applies to general context-based entropy encoders (e.g. , CABAC encoders) and relates to determining the context (e.g., context index ) used for the entropy compression of elements (e.g., syntax elements) as a function of the shape of a TB, which may provide more compression efficiency, particularly, when the CUs are asymmetric.

10052] The TB in Figure 8 is div ided into 4x4 sub-blocks of quantized coefficients called Coding Groups (CG). The entropy coding/decoding is made of several scanning passes, which scan the TB according to a scan pattern selected among several possible scan patterns, e.g., diagonal 810, horizontal 820 and vertical 830.

[0053] Transform coefficient coding may involve fiv e main steps: scanning, last significant coefficient coding, significance map coding, coefficient level coding and sign data coding. The fiv e main steps correspond to t he different types of processing used to encode the samples of a transform block. Scanning corresponds to a loop over the CG according to a given CG scanning order, and a loop on coefficients inside each CG according to a coefficient scanning order. The last significant coefficient position is the position (X,Y) of the last non-zero transform coefficient in the TB.

|0054] The significance map is the coded information that allows the decoder to identify the position of non-zero coefficients in the TB. The information includes the significance or significant flag of a CG (e.g., a 4x4 subset of transform coefficients) and the significance of transform coefficients in the CG. The CG significant flag indicates if a CG contains at least one significant coefficient or not. If the CG significant flag is equal to zero, then it implies that there are no significant coefficients contained in this CG, and the significant coefficient flags are not signaled for the coefficients contained in this CG; otherwise they are signaled (coded). Significance map coding then stands for the coding of all the information that is related to the significance of the CG and the significance of the coefficients, which includes the two syntax elements previously mentioned: the significant coding group flag and the significant coefficient flag. Coefficient level coding corresponds to coding the magnitude of the transform coefficient. Sign data coding corresponds to coding the sign of a transform coefficient.

[0055] For inter blocks, the diagonal scanning on the left of Figure 8 may be used, while for 4x4 and 8x8 intra block, the scanning order may depend on the Intra Prediction mode active for that block.

[0056] A scan pass over a TB then consists in processing each CG sequentially according to one of the scanning orders (diagonal, horizontal, vertical), and the 16 coefficients inside each CG are scanned according to the considered scanning order as well. A scanning pass starts at the last significant coefficient in the TB, and processes all coefficients until the DC coefficient (top left coefficient in the TBs of Figure 8).

[0057] The entropy coding of transform coefficients comprises up to five scan passes, respectively dedicated to the coding of each syntax element in the following list:

• Significant coefficient flag (sigrnficant-coeff-flag): significance of a coefficient (zero/non-zero).

• Coefficient absolute level greater than one flag ( oe IT a bs I eve I g rea re r I f i a ) : indicates if the absolute value of a coefficient level is greater than I

• Coefficient absolute level greater than two flag (coeff-abs-level-greater2-flag): indicates i the absolute value of a coefficient level is greater than 2

• Coefficient sign flag (coeff-sign-flag): sign of a significant coefficient (0: positive, 1 :

negative)

· Coefficient absolute level remaining (coe f abs level remaini ng ): remaining value for absolute value of a coefficient lev el (if val ue is larger than that coded in previous passes). The magnitude of a transform coefficient to code/decode is always a positive integer value. The coeff abs level remaining corresponds to the absolute value of the coefficient minus 3 (if it is known the coefficient is greater than 2). Moreover, at most 8 coe f abs level greater2 Hags may be coded in a given CG. Therefore, when the coeff ~ abs ~ level-greater2 ~ flag is not signaled, then the decoder only knows i the coefficient is greater than 1 . I n this case, the coeff abs lev el remai nin corresponds to the absolute value of the coefficient minus 2 (if it is known the coefficient is greater than D-

[0058] Once the absolute value of a transform coefficient is known by decoding a subset of the four fi st passes above, then further syntax elements are coded in the remaining passes for that coefficient, with regards to its absolute value. The same is performed for the sign coding: the coeff-sign-flag is sent only for non-zero coefficients.

[0059] All scan passes are coded for a given CG until all the quantized coefficients in that CG can be reconstructed, before going to next CG. The overall decoding TB parsing process is made of the following main steps:

1. Decode the Last Significant Coordinate, which includes the following synta elements: last significant coefficient prefix in the x direction or axis ( last _sig _coe f f _xj>re fix ), last significant coefficient prefix in the y direction ( last _sig _c e f f _y_pre fix ), last significant coefficient suffix in the x direction ( last_sig_coef f _x_suf fix), and last significant coefficient suffix in the y direction ( last_sig _coe f f _y_su ffix). which provides the decoder with the spatial position (x- and y-coordinates) of the last nonzero coefficients in the whole TB. The y direction or ax is may be the vertical direction and the x direction or axis may be the horizontal direction. The opposite may also hold true.

[0060] Then for each successive CG from the CG containing the last significant coefficient in the TB to the top-left CG in the TB, the following steps apply.

2. Decode the CG significance flag, which is called coded sub-block flag ( coded _sub _block_f lag ) in the HEVC specification.

3. Decode the significant coefficient flag for each coefficient in the considered CG, which corresponds to the syntax element sig_coeff_flag in the HEVC standard, indicating which coefficient is non-zero in the CG.

[0061] Next, the parsing stages aim at parsing and signaling the coefficient level, for coefficients known as non-zero in the considered CG, which involve the following syntax elements.

4. Decode coef f _abs_level_greaterl_flag, which indicates if a current coefficient absolute value is greater than 1 or not. If not, the absolute value if equal to I .

5. Decode coeff_abs_le vel_g re ate rl ' jlag , which indicates if a current coefficient absolute value is greater than 2 or not. I not, the absolute value if equal to 2. 6. Decode coeff_sign_flag, which indicates the sign of the non-zero coefficients.

7. Decode coef f _abs_level_remaining , which encodes the absolute value of the coefficient higher than 2 in absolute value.

[0062] According to an embodiment of the present disclosure, video encoder 700 generally follows the method of entropy encoding described above, associated with steps 1 to 7, with modifications in the encoding (and corresponding decoding) of the last significant coefficient coordinates, and/or the encoding (and corresponding decoding) of the significant coefficient flag. Indeed, the context-based coding of the syntax elements depends on the size of the TB. Some adaptation based on the shape of the TB is brought to the coding/decoding of these syntax elements. The modifications will be described in greater detail in the following paragraphs and figures.

[0063] Figure 9 illustrates a flowchart 900 of a method of entropy encoding the significant coefficient flag according to an embodiment of the present disclosure. The method 900 is similar to the one described in document JVET-C I I v3 of the Joint Video Exploration Team of ISO/IEC JTC 1/SC29/WG11.

[0064] The inputs to the process are the TB 901 to encode, with size (width, height) , and the current CG ( currCG ) 902 in the considered TB. The two first steps 910, 920 of the process aim at initializing the computation of the index of the base context index used to encode the significant coefficient flag. In step 910, ctxOffset is equal to 0 i the TB is of Chroma component, and is equal to IndexOnTBSize if the TB is not Chroma (i.e., Luma). As shown in Figure 9, the computation depends on the TB si/e, more precisely, on the TB area. Indeed, the following value is calculated and associated with IndexOnTBSize:

uiLogZ BlkSize = (logl ' {width) + logl ' ieight)) » 1 (1)

[0065] If the current TB is in the Luma component, then the set of contexts that are used to code the significant coefficient flag are set as a function of this value uiLogZBlkSize. As a result, separated sets of contexts (e.g., CABAC contexts) are employed to code the significant coefficient flag of TB with different areas for Luma components. These different sets of contexts are represented by the context offset (ctxOffset), which is an address in a global set of contexts useful for the coding of the significant coefficient flag.

[0066] Step 920 initializes the current scan position (currScanPos) and the first position in the current CG (firstPosInCG), that is, the last coefficient index and the first coefficient index in the current CG, respect ively, since the scan proceeds from last to first coefficient in the current CG, as in Figure 8. [0067] Steps 930-980 of the coding process of Figure 9 consist in a loop over each coefficient in the current CG of the current TB, from the last coefficient towards the lowest frequency coefficient. Step 930 determines the significant coefficient flag or significance (also, sig_coeff_flag) as variable uiSig, which is 1 if the coefficient in the currScanPos is non-zero, and 0 otherwise. Then, step 940 computes the significant coefficient flag context increment (ctxlncrement) as will be described in greater detail in the following paragraphs and figures, in particular, Figures 10-12 for the prior art and Figure 13- 1 7 for embodiments according to the present disclosure.

[0068] For each coefficient, a context index (currCtxIdx) for the coding of its significance is computed at step 950, as a function of the context offset (ctxOffset) and the context increment (ctxlncrement). In one embodiment according to the present disclosure, the function may be an addition, as in step 950, or another linear or nonlinear function. Once the context index for the current coefficient (defined by currScanPos) is obtained, its significance bin, represented by variable uiSig is entropy encoded (e.g., CABAC encoded) in step 960 as a function of the context index. In step 970, the process checks whether CurrScanPos greater than first PoslnCG. I f the check in step 970 is true, the process decrements CurrScanPos by 1 in step 980 and returns to step 930. If the check in step 970 is false, the process ends in step 990. The process is over once the loop reaches the coefficient with lowest frequency (or DC coefficient) in the current CG, that is, the top left coefficient in Figure 8, represented by firstPoslnCG.

[0069] In the following, step 940 of computing or determinin the significant coefficient content increment (ctxlncrement) will be described in detail, starting with the prior art method described in document JVET-O O l v 3 of the Joint Video Exploration Team of I SO/I EC JTC1/SC29/WG11 (Figure 10) and followed by an exemplary method according to the present disclosure (Figure 12).

[0070] The context increment computation in step 940 of Figure 9 in accordance with document JVET-C 1001 v3 depends on the values of the significant coefficient flag of previously coded coefficients in the neighborhood covered by a local template. More specifically, the context index is determined based on the sum of the significant coefficient flags of neighboring coefficients (each flag with a value of 0 or 1). The local template (c 0 , ... , c 4 ) is depicted in Figure 10 illustrating an exemplary 8x8 TB 1000. To capture the characteristics of transform coefficients at different frequencies, one TB is split into up to three context regions (1010, 1020 and 1030) and the splitting method is fixed regardless of the TB size, as illustrated in Figure 10. The context model template 1000 includes the three context regions. The context increments assigned to each region are as follows: 1 2- 1 7 for region 1010, 6-11 for region 1020 and 0-5 for region 1030.

[0071] The context increment associated with any given transform coefficient C 1040 in block 1000 is computed or determined as follows:

1. The number of significant coefficients 1050A-E in the set of neighboring coefficients

(c 0 , ... , c 4 ) is computed by:

num SIG =∑f = 0 sig(Cj) (2)

where sig(ci) is the significance or significant coefficient flag of coefficient q.

2. The index of the diagonal to which coefficient C belongs to is computed as the sum of its coordinates:

diag = posX(C) + posY(C) (3)

where posX(C) and posY(C) are the respective positions of the coefficient according to the X and y axis.

3. Finally, the context increment for current coefficient C is computed as:

ctxlncrement = {diag < 2? 6: 0) + {diag < 5? 6: 0) + num SIG (4) where diag is compared against threshold values 2 and 5, and values of 6 or 0 are assigned to the comparisons depending on whether or not diag is smaller than the respective threshold values.

1 0721 Luma and Chroma components are treated in a similar way but with separate sets of context models.

[0073] Figure 11 illustrates a flowchart 1100 of a method of determining the significant coefficient context increment for a current transform coefficient C in accordance with document JVET-C I OO l v3 of the Joint Video Exploration Team of ISO/I EC JTC1/SC29/WG11, as explained in equations 2-4 above. In method 1100, the two diag variable comparisons are defined by the variable region2off S et, since region 2 (1020 in Figure 10) is defined between the two threshold values (2 and 5). Steps 1110 and 1120 of Figure 1 1 perform equation 2. Step 1030 performs equation 3. Steps 1140-1190 perform equation 4. The computation for a current coefficient C ends at step I 1 5.

100741 The context model template 1000 in Figure 10 illustrates the three context regions used to assign CAB AC contexts to each transform coefficient, when coding the significance flag of that coefficient, conforming to the significant coefficient flag coding described in Figure 1 1. One may appreciate that the regions defined according to the prior art method of Figure 1 1 are independent of the differences in width and height of the block. In fact, the three regions are more appropriate for square TBs. This is illustrated in Figure 12, which shows exemplary context model templates 1200 (for a 16x4 TB) and 1250 (for a 8x16 TB) with the three regions derived according to the method of Figure 11. However, one knows that the magnitude of transform coefficients statistically decreases as a function of the frequency level associated with the coefficient. Moreover, the transform of a block may generally consist in a separable combination of two 1 D transforms, respectively in the vertical and the horizontal directions. Therefore, an efficient grouping of coefficient positions into separate regions may depend on the block shape (more specifically in this case, the dimensions of the block). Intuitively, it is expected that in the case of a rectangular block, a higher number of significant coefficients is significant along the direction that corresponds to the largest dimension among the width and the height of considered block.

[0075] According to the present disclosure, the shape of a TB, e.g., the width and height of a rectangular TB, are taken into consideration in determining the regions of transform coefficients for the assignment of context models (e.g., CAB AC contexts) used to encode/decode the transform coefficient syntax elements, e.g., the significance information. 1 07 1 According to one embodiment of the present disclosure, at least one region or section of the TB may include a maximum transform coefficient index value along a direction of a longest length of the TB, whether the longest length is width (x direction) or height (y direction). The rule particularly appl ies when the at least one region is not truncated in the shortest direction by the shortest dimension of the TB. For example, in Figure 12, the 16x4 TB 1200 is short enough in the y or vertical direction that the context model template is not symmetric or even in both direct ions. The short dimension in the y direction results in truncation of the context model template i n that direction. As a result, the maximum transform coefficient index value in the x direction of the second region (x index 4 on row 0) is larger than the maximum transform coefficient index value in the y direction of the second region (y index 3 on column 0). On the other hand, in the 8x16 TB 1250, the template of the context regions is symmetric or ev en in both x and y directions and the maximum index value in the y direction and in the x direction of the second region is the same (y index 4 on row 0 and x index 4 of column 0).

[0077] Figure 13 illustrates exemplary 16x4 TB 1300 and 8x16 TB 1350 context model templates according to an embodiment of the present disclosure. As can be seen, the second region 1320 is modified compared to the prior art approach of Figure 12 (resulting in the modification of the third region 1330 as well). I n this case, the second region is made longer along the longest block direction and/or shorter in the other direction. For the 1 6x4 TB in Figure 13, the longest block direction is the horizontal or x direction and the maximum transform coefficient index value increases from 4 on the first row in Figure 12 (coefficient indexes x,y = 4,0) to 6 on the first row in Figure 13 (coefficient indexes x,y = 6,0). For the 8x16 TB in Figure 13, the longest block direction is the vertical or y direction and the maximum transform coefficient index value increases from 4 on the first column in Figure 12 (coefficient indexes x,y = 0,4) to 7 on the first column in Figure 13 (coefficient indexes x,y = 0,7).

[0078] According to one embodiment of the present disclosure, at least one region or section of the TB may include a maximum number of transform coefficients per row or per column that is largest along a direction of a longest length of the TB, whether the longest length is in the direction of a row or a column, respectively. In other words, for at least one region of the TB, when the horizontal or x direction is the longest length of the TB, the maximum number of transform coefficients per row (among all rows) is larger than the maximum number of transform coefficients per column (among all columns). Conversely, for at least one region of the TB, when the vertical or y direction is the longest length of the TB, the maximum number of transform coefficients per column (among all columns) is larger than the maximum number of transform coefficients per row (among all rows). The rule particularly applies when the at least one region is not truncated in the shortest direction by the shortest dimension of the TB.

[0079] For the 16x4 TB in Figure 13, the longest block direction is the horizontal or x direction and the maximum number of coefficient indexes increases from 3 on the first row in Figure 12 (indexes x,y = 2,0; 3,0 and 4,0) to 5 on the first row in Figure 13 (indexes x,y = 2,0; 3,0;4,0; 5,0 and 6,0). For the 8x16 TB in Figure 13, the longest block direction is the vertical or y direction and the maximum number of coefficient indexes increases from 3 on the first column in Figure 12 (indexes x,y = 0,2; 0,3 and 0,4) to 6 on the first column in Figure 13 (indexes x,y = 0,2; 0,3; 0,4; 0.5; 0,6 and 0,7).

[0080] Figure 13 illustrates exemplary context model templates reflecting a basic premise of the present disclosure: a higher number of significant coefficients are more likely to exist along the direction with longest or largest length (width or height), in the case of a rectangular transform block. As a result, according to the present disclosure, adapting the context model template regions as a function of a shape of the TBs permit an increase in compression efficiency.

[0081] In one embodiment according to the present disclosure, context model template changes similar to the changes in the second region 1320 may also be applied to the first region 1310, or to both regions 1310 and 1320 at once. It is to be appreciated that regions 1 and 2 have the most significant transform coefficients, that is, lower frequency transform coefficients. [0082] It is to be understood that the concepts of the present disclosure may be extended to TB shapes other than a rectangular shape, as long as the longest versus shortest dimensions are taken in consideration in the determination of the context model template regions.

[0083] Figure 14 illustrates an exemplary context model template 1400 used for entropy coding syntax elements in accordance with an embodiment of the present disclosure. The context increment in step 940 of Figure 9 associated with a given transform coefficient C is computed or determ ined as follows:

1. The number of significant coefficients 1050A-E in the set of neighboring coefficients (c 0 , ... , c 4 ) is computed:

num SIG =∑ = 0 sig(Ci) (5)

where sig(Ci ) is the significance or significant coefficient flag of coefficient .

2. The index of the diagonal to which coefficient C belongs to is computed as:

diag i = posX (C) + posY (C) (6)

diag 2 = 0.8 * posX (C) + 1.5 * posY (C) (7)

where posX(C) and posY(C) are the respect ive positions of the coefficient according to the x and y axis.

3. Final ly, the context increment for current coefficient C is computed as:

ctxlncrement = (diag 1 < 2? 6: 0) + (diag 2 < 5? 6: 0) + num SIG (8) where diagi and diag2 is compared against threshold values 2 and 5, respectively, and values of 6 or 0 are assigned to the comparisons depending on whether or not diagi and diag2 are smaller than the respective threshold values. Other threshold values and comparison values may be assigned.

1 0841 Liima and Chroma components are treated in a similar way but with separate sets of context models.

[0085] Equations 6 and 7 above identify two diag functions, diagi and diag2, each being used to generated one of the two borders for the three context model template regions. The first border between the first region 1410 (symbol +) and the second region 1420 (symbol *) is created by the inequal ity {diag v < 2) and the second border between the second region 1420 (symbol *) and the third region 1430 (no symbol) is created by the inequal ity (diag 2 < 5) . The function diag2 includes a weighting of the position coordinates of a transform coefficient C in the block of Figure 1 4. This weighting may be associated with any number of l inear and nonl inear functions. I n particular, diag2 is a weighted sum of the position coordinates of a transform coefficient C in the block of Figure 14, with weights 1.5 and 0.8 for the coordinates in the y and x directions. The weight values may be positive real or integer numbers. And the weights may have different values.

100861 One may observe that the weighted sum on the position coordinates of diag2 results in the second region extending towards the direction y, which is the direction for which the length of the block in Figure 14 is the longest. Moreover, the weights are an inverse function of the lengths in the respective directions, i.e., the weight on the position posX(C) of direction x is smaller than the weight on the position posY (C) of direction y, since the length on direction x is larger than then length on direction y. As a result, the context model template in Figure 1 4 took into consideration the shape of the block in Figure 14.

100871 Figure 15 illustrates an exemplary context model template 1500 used for entropy coding syntax elements in accordance with an embodiment of the present disclosure. The context increment in step 940 of Figure 9 associated with a given transform coefficient C is computed or determined as follows:

1. The number of significant coefficients 1050A-E in the set of neighboring coefficients (c 0 , ... , c 4 ) is computed:

num slG =∑f = 0 sig(Ci ) (9)

where sig (Cj ) is the significance or significant coefficient flag of coefficient q.

2. The index of the diagonal to which coefficient C belongs to is computed as:

diag v = posX (C) + posY (C) ( 10)

diag 2 = 1 * posX(C) + 2 * posY (C) (1 1)

where posX( C ) and posY(C) are the respectiv e positions of the coefficient according to the x and y axis.

3. Finally, the context increment for current coefficient C is computed as:

ctxlncrement = (diag 1 < 21 6: 0) + (diag 2 < 8? 6: 0) + num SIG (12) where diagi and diag2 is compared against threshold values 2 and 8, respectiv ely, and values of 6 or 0 are assigned to the comparisons depending on whether or not diagi and diag2 are smaller than the respective threshold values. Other threshold values and comparison values may be assigned.

10088] Equations 10 and 1 1 above ident ify two diag functions, diagi and diag2, each being used to generated one of the two borders for the three context model template regions. The first border between the first region 1 5 10 (symbol +) and the second region 1 520 (symbol *) is created by the inequality (diag 1 < 2) and the second border between the second region 1420 (symbol *) and the third region 1430 (no symbol) is created by the inequality (diag 2 < 8) . I n particular, diag2 is a weighted sum of the position coordinates of a transform coefficient C in the block of Figure 15, with weights values 2 and 1 for the coordinates in the y and x directions.

[0089] One may observe that the weighted sum on the position coordinates of diag2, this time with integer weight values, combined with the increase on the second threshold value to 8 results in the second region extending towards the direction y, which is the direction for which the length of the block in Figure 1 5 is the longest. Moreover, the weights are an inverse function of the lengths in the respective directions, i.e., the weight on direction x is smaller than the weight on direction y, since the length on direction x is larger than then length on direction y. As a result, the context model template in Figure 15 took into consideration the shape of the block in Figure 15.

[0090] The examples of Figures 14 and 15 of the present disclosure may be generalized according to the equations below:

1. The number of significant coefficients 1050A-E in the set of neighboring coefficients (c 0 , ... , c 4 ) is computed:

num S]G =∑ 4 i= 0 sig(c i ) (13)

where sig(C{) is the significance or significant coefficient flag of coefficient q.

2. The index of the diagonal to which coefficient C belongs to is computed as:

diagj = w x j * posX (C) + w yj - * posY (C), 1 < j < R (14) where posX(C) and posY(C) are the respective positions of the coefficient according to the x and y axis, and R is the number of regions in the context model template. I n addition, for any j = j* for which adjusted to the shape of the block:

(w X j* , Wyj* ) = f w (width, height, j*) (15)

where f w is & function of the width and height of the block, as well as the diagonal index j-

3. Final ly, the context increment for current coefficient C is computed as:

ctxlncrement = ∑ = \ (diag j < tj? Vj + : Vj_ + num SIG (16) where diagj is compared against threshold values tj (e.g., 2, 5, 8, etc.), respectively, and values of Vj + , Vj_ (e.g., 6, 0, etc.) are assigned to the comparisons depending on whether or not diagj is are smaller than the respectiv e threshold values. I n addition, for any j, the values tj , Vj + and i^may be determined. I n particular the value tj , or region boundary value, may enhance the adaptation based on the shape. [0091] According to one embodiment of the present disclosure, the function f w assigns a larger weight to the smaller dimension of the block, be it width (along the x axis) or height (along the y axis). In one embodiment, the ratio of weights w X j* /w y j* is an inverse function of the ratio of dimensions width /height. The inverse function may be linear or nonlinear. In one embodiment, the ratio w X j* /w y j* is inversely proportional to the ratio width/height, that is, proportional to the ratio heigth/ width .

[0092] One may observe that the larger the ratio of weights w y j* /w X j* > 1 , the more pronounced is the effect of extending t e context model template in the horizontal direction and/or truncating the context model template in the vertical direction. Extending the context model template in the horizontal direction means that the border j (between regions j and j + 1) moves to the right (in the horizontal direction). Figures 13 in block 1300, 14 and 15 represent cases of extension of t he context model template in t he horizontal direction compared with the prior art of Figure 10. Truncating the context model template in the vertical direction is the opposite of extending. Figures 1 3 in block 1300 and 14 represent cases of partial truncation in the vertical direction.

[0093] Similarly, the smaller the ratio of weights 0 < w y j* /w x j* < 1, the more pronounced is the effect of extending the context model template in the vertical direction and/or truncating the context model template in the horizontal direction. Extending the context model template in the vertical direction means that the border (between regions j and j + 1) moves downward (in the vertical direction). Figures 13 in block 1350 represent a case of extension of the context model template in the vertical direction and truncation of the context model template in the horizontal direction compared with the prior art of Figures 10 and 12.

[0094] Increasing the value tj generally results in extending the context model template in both directions but favors extension in the direction of the smaller weight when the ratio of weights is too large or too small. Figure 15 illustrates an example were an increase in t 2 favored an extension in the horizontal direction.

[0095] Figure 16 illustrates a flowchart 1600 of a method of determining the significant coefficient context increment for a current transform coefficient C in accordance with an embodiment of the present disclosure, as explained in equations 13- 1 above. Steps 1610 and 1615 of Figure 16 perform equation 1 3. Steps 1620- 1655 perform a loop for each value of j, 1 < j < R , used to calculate a temp value representing the summation in equation 16. For each j, if diagj < tj , then temp = temp + Vj + ; else, if diag^≥ tj , then temp = temp + Vj_ . Step 1625 performs equation 15 after the calculation of temp. Step 1630 performs equation 14. Step 1660 performs equation 1 6. The computation for a current coefficient C ends at step 1660.

100% I One may observe that the context model templates in Figures 14 and 15 are special cases of the method of Figure 1 6 for wh ich /? = 3, so there are only two sets of x and y weights and two diag functions. In addition, only diag 2 includes weights different than 1 , which represents the border, periphery or boundary between the second region (1420, 1520) and the third region (1430, 1530) of the context model template. The weights result in the diag 2 border extending in the horizontal direction with respect to the prior art in Figures 10 and 12, in order to better match the shape of the rectangle. Any (combination) of the diag functions may contain weights different than 1 , therefore, affecting the other borders of the context model template as well (e.g., diag ).

[0097] In one embodiment, the proposed region shape adjustment is performed only for some dedicated block si/es, e.g. 4x16, 16x4, 8x32 and 32x8.

[0098] In one embodiment, the context model templates according to the present disclosure may be utilized for the coding of other syntax elements, e.g., coeff_abs_le vel_g reate r 1 J lag , coeff_a bsje vel_g recite rl ' jlag , coeff_sig n ' lag , coef f _abs_level_remaining, CG significant flag, etc.

[0099] Encoder 700 may also implement method 1 100 and example i n Figure 10 selectable with a flag identifying the method used to create the context model template.

[00100] In practical implementations of encoder 700, the context model template may be generated in advance (or pre-processed) and stored in a look-up table defining the context region to which each coefficient in a block belongs (equivalent to steps 1620 to 1 655 in Figure 16). Therefore, for each transform coefficient C, the value of temp in Figure 1 6 is retrieved from the look-up table and only steps 1610, 1 6 1 5 and 1660 are implemented for each transform coefficient C. Encoder 700 may also include a similar look-up table associated with method 1 100 and example in Figure 10 selectable with a flag identifying the method used to create the context model template.

[00101] In one embodiment according to the present disclosure, the set of equations 13-16 may define a two dimensional (2D) array the si/e of the TB, where the 2D array provides the region index respectively associated with each sample position (posX, posY). Such a 2D array is assigned to some or all block shapes supported by the considered coding/decoding system. The values of the region offsets may be set, e.g., to 0, 6 or 1 2 (as in the cases of Figures 10, 1 4 and 1 5 ), and the context increment is calculated the same way as in the algorithm of Figure 1 6. I n one embodiment, the 2D array defining the context model template borders and regions may be generated by a non-linear function.

[00102] Figure 17 illustrates a flowchart 1700 of an exemplary method of video encoding in accordance with one embodiment of the present disclosure. The method 1700 includes, at step 1710, accessing a block of a picture. Then, at step 1720, the method 1700 includes determining an entropy encoding context model for a syntax element associated with a transform coefficient of the block based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one. The step of determining 1720 may be performed according to method 900, particularly step 950. The context model may be ident ified by a context model index as in step 950. Moreover, at step 1730, the method 1700 includes entropy encoding the syntax element based on the context model. The step of entropy encoding 1730 may be performed according to method 900, particularly step 960. Finally, at step 1740, the method 1700 includes providing the entropy encoded syntax element. Steps 1710 to 1740 may be performed, e.g., by encoder 700, in particular, by entropy coding block 745. The method 1700 may be performed for a plurality of syntax elements associated with a plurality of transform coefficients in the block, and for a plurality of blocks in the picture. The method 1700 may be performed for each syntax element associated with each transform coefficient i n the block, and for each block in the picture.

[00103] According to one embodiment of the method, the position coordinates may include a first coordinate according to a first axis and a second coordinate according to a second axis, and the weighted sum may include a sum of a first weight multiplied by the first coordinate and a second weight multiplied by the second coordinate.

[00104] According to one embodiment of the method, a first weight of a position coordinate along a first axis may be greater than a second weight of a position coordinate along a second axis if a first dimension of the block along the first axis is sma ller than a second dimension of the block along the second axis. I n one embodiment of the method, the first weight may be smaller than the second weight i a first dimension of the block along the first axis is greater than a second dimension of the block along the second ax is.

[00105] According to one embodiment of the method, the step of determining 1720 may further include determining a context model increment for the syntax element based on the weighted sum of position coordinates of the transform coefficient in the block. The step of determining a context model increment may be performed according to block 940 of method 900, which may be performed according to method 1600 and equations 1 3- 1 6 (e.g., equations 5-8 or 9- 1 2 ). The step of determining a context model increment may include using a look-up table storing the context model template of the block. The entropy encoding context model (index) may be the sum of the context model increment and a context offset (step 950 of method 900). The context offset may be a function of the type of block (e.g., chroma or luma) and the si/e of the block (item 901 of method 900 and equation 1).

[00106] According to one embodiment of the method, a context increment for the context model of the syntax element is determined based on the weighted sum of position coordinates of the transform coefficient in the block. The step of determining a context model increment may be performed according to block 940 of method 900, which may be performed according to method 1600 and equations 13-16 (e.g., equations 5-8 or 9-12). The step of determining a context model increment may include using a look-up table storing the context model template of the block. The entropy encoding context model (index) may be the sum of the context model increment and a context offset (step 950 of method 900). The context offset may be a function of the type of block (e.g., chroma or luma) and the size of the block (item 901 of method 900 and equation 1).

[00107] According to one embodiment of the method, the weighted sum may determine at least two regions in the block, each region including at least one transform coefficient and being associated with a plurality of context model increments, the context model increment for the syntax element being one of the plurality of context model increments of a region including the transform coefficient.

[00108] According to one embodiment of the method, the at least two regions in the plurality of regions may be determined by comparing the weighted sum against at least one region boundary value. The region boundary value for regions j and j+\ is t j in equation 16, for 1 < j < R.

[00109] According to one embodiment of the method, the context increment for the syntax element may further be a function of a sum of syntax elements for a plurality of neighboring transform coefficients of the transform coefficient.

[00110] According to one embodiment of the method, a ratio between the first weight and the second weight may be an inverse function of a ratio between the first dimension of the block and the second dimension of the block.

[00111] According to one embodiment of the method, the syntax element may determine at least one of:

whether the transform coefficient is non-zero (significant-coeff-flag), whether all the transform coefficients of the block are non-zero (e.g., CG significant flag),

whether the transform coefficient is greater than one (coe f abs level greater I fla ), whether the transform coefficient is greater than two (coefl ' -abs level greater2- flag). a sign of the transform coefficient (coeff-sign-flag) and

an absolute value remaining of the transform coefficient (coeff-abs-level-remairiing).

[00112j According to one embodiment of the method, the transform coefficient may be transformed according to one of a discrete cosine transform and a discrete sine transform.

[00113] According to one embodiment of the method, the entropy encoding may be a ( " ABAC entropy encoding.

[00114] According to one embodiment, the method may further include receiving the picture, partitioning the picture into a plurality of blocks including the block and transforming the block to obtain a plurality of transform coefficients. The transform coefficients may be further quantized. The steps of transforming and quantizing may be performed by blocks 725 and 730 of encoder 700. The steps of receiving, transforming and quantizing may be optional, bypassed or removed, since they may have been previously performed by another dev ice and/or the results may have been stored in memory.

[00115] It is to be understood that any of the embodiments of the method 1700 described above may be implemented by encoder 700. The blocks of encoder 700 may be implemented by hardware (e.g., integrated circuits) or in software, stored in memory and executed by a processor.

Decoding

[00116] Figure 18 illustrates a simplified block diagram of an exemplary video decoder 1800 in accordance with an embodiment of the present disclosure. The video decoder 1800 may be included in a receiver in a communication system. Video decoder 1800 generally performs a decoding pass reciprocal to the encoding pass performed by the video encoder 700 as described in Figure 7. In particular, the input of the decoder 1800 includes a video bitstream, which may be generated by the video encoder 700. The bitstream is first entropy decoded (module 1830) to obtain transform coefficients, motion vectors, syntax elements and other coded information. The transform coefficients are de-quantized (module 1840) and inverse transformed (module 1850) to decode residuals. The decoded residuals are then combined (module 1855) with a predicted sample block (also known as a predictor) to obtain a decoded/reconstructed image block. The predicted sample block may be obtained (module 1870) from intra prediction (module 1860) or motion-compensated prediction (i.e., inter prediction) (module 1875). An in-loop filter (module 1865) may be applied to the reconstructed image. The in-loop filter may comprise a deblocking filter and a SAO filter. The filtered image is stored in a reference picture buffer 1880.

[00117] The modules of video decoder 1800 may be implemented in software and executed by a processor, or may be implemented by well-known circuits by one skilled in the art of compression. I n particular, video encoder 1800 may be i mplemented as an integrated circuit (IC), alone or combined with video decoder 700 as a codec.

[00118] The modules of video encoder 1800 are also present in other video encoders (e.g., HEVC encoders), except for the differences described in the present disclosure, particularly, differences in the block sizes and shapes, as in Figure 6, and differences in the entropy decoding module 1830, as the reciprocal of module 745 of Figure 7 according to the present disclosure, and as will be described in greater detail in the following paragraphs and figures. Entropy decoding

[00119] As previously described, in the HEVC standard and i n the document JVET-O O l v3 of the Joint Video Exploration Team of ISO/I EC JTC 1/SC29/WG11 , quantized coefficients contained in a so-called transform-block (TB) may be entropy coded and decoded using ( " A BAC according to the exemplary patterns in Figure 8, which illustrates an exemplary 8x8 TB. At the CA B AC decoder the general reciprocal functions of the CA B AC encoder are performed. CAB AC and other context-based encoders and decoders are well-known by those skilled in the art of compression and are not herein described i n detai l. The present disclosure appl ies to general context-based entropy encoders and decoder (e.g., CAB AC encoders and decoders) and relates to entropy decoding syntax elements the context (e.g., context index) used for the entropy compression of elements (e.g., syntax elements ) as a function of the shape of a TB, which may provide more compression efficiency, particularly, when the CUs are asymmetric.

[00120] The input to the process of CA B AC decoding consists in the coded bitstream. typically conforming to the HEVC standard or a further evolution as in document JVET-C 1001 v3 of the Joint Video Exploration Team of ISO/I EC JTC 1/SC29/WG1 1. At any point of the decoding process, the decoder knows which syntax element is to be decoded next since it is fully speci ied in the standardized bitstream syntax and decoding process. Moreover, it also knows how the current syntax element to be decoded is binari/ed (i.e., represented as a sequence of binary symbols called bins, each equal to T or 'Ο'), and how each bin of the bin string has been encoded.

[00121] Therefore, the first stage of the CAB AC decoding process decodes a series of bins. For each bin, it knows if it has been encoded according to the bypass mode or the regular mode. The bypass mode consists in simply reading a bit in the bitstream and assigning the obtained bit value to the current bin. This mode has the advantage of being straightforward, hence fast, and typically used for bins that have a uniform statistical distribution, i.e. equal probability of being equal to T or 'Ο' .

[00122] I f the current bin has not been coded in bypass mode, then it has been coded in the regular mode, i.e. through context-based arithmetic coding. I n regular mode, fi rst, a context is obtained for the decoding of a current bin. The context is given by a context modeler module associated with the regular mode. The goal of the context is to obtain the conditional probabil ity that the current bin has value 'Ο' , given some contextual prior or information X. The prior X is the value of some already decoded syntax element, available both on the encoder and decoder side in a synchronous way, at the time current bin is being decoded.

[00123] Typically , the prior X used for the decoding of a bin is spe i fied in the standard, and is chosen because it is statistically correlated with the current bin to decode. The use of this contextual informat ion permits reducing the rate cost of coding the bi n, since the conditional entropy of the bin given X decreases as the bin and X correlation increases, as it is well-known in information theory( H (bi ' n \ X) < // (bin) , or the conditional entropy of bin knowing X is lower than the entropy of bin i bin and X are statistically correlated).

[00124] The contextual information X is thus used to obtain the probability of a current bin being '0' or T . Given these conditional probabilities, the regular decoding mode performs the arithmetic decoding of the binary value bin. The value of bin is then used to update the value of the condit ional probabilities associated with current bin, knowing the current contextual information X. This is called the context model updating. Updating the context model for each bin as long as the bins are being decoded (or coded), allows progressively refining the context modeling for each binary element. Thus, the CAB AC decoder progressively learns the statistical behavior of each regular encoded bi n. The regular arithmetic decoding of current bin or its bypass decoding, depending on how it was coded, leads to a series of decoded bins.

[00125] It is to be understood that the context modeler and the context model updating steps are strictly identical operations on the CAB AC encoder and on the decoder sides. [00126] The second phase of the CAB AC decoding, consists in converting this series of bina y symbols into higher level syntax elements. A syntax element may take the form of a flag, in which case it directly takes the value of current decoded bins. On the other hand, i the binarization of current syntax element corresponds to a set of several bins according to a considered standard specification, a conversion step, called "'Binary Codeword to Syntax Element" takes place. The conversion step is the reciprocal of the binarization step that was performed by the encoder. As an example, the standard binarization of the syntax elements results in the following encoded elements: last_sig_coeff_x_prefix, last _sig _c e ff _y _pre f ix, last_sig_coeff_x_suf ' fix, and last_sig_coef ' f_y_suffix. The inverse conversion performed by the decoder thus consists in obtaining the value of these syntax elements based on their respective decoded binari/ed versions.

[00127] Figure 19 illustrates a flowchart of an exemplary method of entropy decoding a significant coefficient flag i n accordance with an embodiment of the present disclosure. This section explai ns the decoding process performed to obtain significant coefficient flag information on the decoder side. Therefore, Figure 1 represents the reciprocal process of Figure 9. As can be seen, the decoding process is very similar to its corresponding encoding process, because it performs exactly the same loop over the transform coefficient contained in a CG of a TB. I n particular, the computation of the context used for the context adaptive binary adaptive decoding of the significant coefficient flags is strictly identical to the context computation achieved on the encoder side, in order to ensure synchronized entropy coding and decoding processes. Hence, elements and steps 1901 , 1902, 1910-1950 and 1970-1990 are similar to the respective elements and steps 901 , 902, 910-950 and 970-990 and are not described i n detail. Step 1960 is the reciprocal of step 960, that is, once the context i ndex for the current coefficient (defined by currScanPos) is obtained, its significance bin, represented by variable uiSig is entropy decoded (e.g., CAB AC decoded) in step 1 960 as a function of the context index.

[00128] Similar to step 940 in Figure 9, step 1940 includes modifications according to the present disclosure, as described in association with Figures 13-17, and similar methods are also performed at the decoder to recover the context increment in step 1940. Hence, the context increment computation step 1940 according to the present disclosure is exactly the same as the one performed by the encoder in step 940, including flowchart 1600 and examples in Figures 12- 1 5. Decoder 1800 may also implement method 1 100 and example in Figure 10 selectable with a flag identifying the method used to create the context model template. [00129] In practical implementations of decoder 1800, the context model template may be generated in advance (or pre-processed) and stored in a look-up table defining the context region to which each coefficient in a block belongs (equivalent to steps 1620 to 1655 in Figure 16). Therefore, for each transform coefficient C. the value of temp in Figure 16 is retrieved from the look-up table and only steps 1610, 1615 and 1660 are implemented for each transform coefficient C. Decoder 1800 may also include a similar look-up table associated with method 1100 and example in Figure 10 selectable with a flag identifying method used to create the context model template.

[00130] Figure 20 illustrates a flowchart 2000 of an exemplary method of video decoding in accordance with one embodiment of the present disclosure. The method 2000 includes, at step 2010, accessing encoded data representative of a block in a picture. Then, at step 2020, the method 2000 includes determining an entropy encoding context model for a syntax element associated with a transform coefficient of the block based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one. The step of determining 2020 may be performed according to method 1900, particularly step 1 50. The context model may be identified by a context model index as in step 1950. Moreover, at step 2030, the method 2000 includes entropy decoding the synta element based on the context model. The step of entropy decoding 2030 may be performed according to method 1900, particularly step 1960. Finally, at step 2040, the method 2000 includes providing the entropy decoded syntax element. Steps 2010 to 2040 may be performed, e.g., by decoder 1800, in particular, by entropy decoding block 1830. The method 2000 may be performed for a plurality of syntax elements associated with a plurality of transform coefficients in the block, and for a plurality of blocks in the picture. The method 2000 may be performed for each syntax element associated with each transform coefficient in the block, and for each block in the picture. However, in general, when an ent ire block has nonzero coefficients, only the significance of the block (e.g., CG significant flag) is entropy encoded and decoded.

[00131] According to one embodiment of the method, the position coordinates may include a first coordinate according to a first axis and a second coordinate according to a second axis, and the weighted sum may include a sum of a first weight multiplied by the first coordinate and a second weight multiplied by the second coordinate.

[00132] According to one embodiment of the method, a first weight of a position coordinate along a first axis may be greater than a second weight of a position coordinate along a second axis if a first dimension of the block along the first axis is smaller than a second dimension of the block along the second axis. In one embodiment of the method, the first weight may be smaller than the second weight if a first dimension of the block along the first axis is greater than a second dimension of the block along the second axis.

[00133] According to one embodiment of the method, the step of determining 1720 may further include determining a context model increment for the syntax element based on the weighted sum of position coordinates of the transform coefficient in the block. The step of determining a context model increment may be performed according to block 1940 of method 1900, which may be performed according to method 1600 and equations 13-16 (e.g., equations 5-8 or 9-12). The step of determining a context model increment may include using a look-up table storing the context model template of the block. The entropy decoding context model (index) may be the sum of the context model increment and a context offset ( step 1950 of method 1900). The context offset may be a function of the type of block (e.g., chroma or luma) and t he si/e of the block (item 1901 of method 1900 and equation 1).

[00134] According to one embodiment of the method, a context increment for t he context model of the syntax element is determined based on the weighted sum of position coordinates of the transform coefficient in the block. The step of determining a context model increment may be performed according to block 1940 of method 1900, which may be performed according to method 1600 and equations 13-16 (e.g., equations 5-8 or 9-12). The step of determining a context model increment may include using a look-up table storing the context model template of the block. The entropy decoding context model (index) may be the sum of the context model increment and a context offset (step 1 950 of method 1900). The context offset may be a function of the type of block (e.g., chroma or luma) and the si/e of the block (item 901 of method 1900 and equation 1 ).

[00135] According to one embodiment of the method, the weighted sum may determine at least two regions i n the block, each region including at least one transform coefficient and being associated with a plurality of context model increments, the context model increment for the syntax element being one of the plurality of context model increments of a region including the transform coefficient.

[00136] According to one embodiment of the method, the at least two regions in the plurality of regions may be determined by comparing the weighted sum against at least one region boundary value. The region boundary value for regions j and j+1 is tj in equation 16, for 1 < j < R . [00137] According to one embodiment of the method, the context increment for the syntax element may further be a function of a sum of syntax elements for a plurality of neighboring transform coefficients of the transform coefficient.

[00138] According to one embodiment of the method, a ratio between the first weight and the second weight may be an inverse function of a ratio between the first dimension of the block and the second dimension of the block.

[00139] According to one embodiment of the method, the syntax element may determine at least one of:

whether the transform coefficient is non-zero (sigrrificant-coeff-flag),

- whether all the transform coefficients of the block are non-zero (e.g., CG significant flag),

whether the transform coefficient is greater than one (coe f abs level greater ! (lag), whether the transform coefficient is greater than two (coeff-abs-level-greater2-flag), a sign of the transform coefficient (coeff-sign-flag) and

an absolute value remaining of the transform coefficient (coe f abs level remaining).

[00140] According to one embodiment of the method, the transform coefficient may be transformed according to one of a discrete cosine transform and a discrete sine transform.

[00141] According to one embodiment of the method, the entropy decoding may be a CAB AC entropy decoding.

[00142] According to one embodiment, the method may further include receiving the encoded picture, entropy decoding the transform coefficient of the block based on the entropy decoded syntax element , inverse transforming the block to obtain decoded residuals, combining the decoded residuals w ith a predicted sample block to obtain a decoded/reconstructed image block. The transform coefficients may be further inverse quantized prior to inverse transformed. The steps of inverse transforming and inverse quantizing may be performed by- blocks 1850 and 1840 of decoder 1800. The steps of receiving, entropy decoding the transform coefficient, inverse transforming and inverse quantizing, and combining may be optional, bypassed or removed, since they may have been previously performed by another device and/or prov ided to another device, or the results may have been retrieved from and/or stored in memory.

[00143] It is to be understood that any of the embodiments of the method 2000 described above may be implemented by decoder 1800. The blocks of decoder 1 800 may be implemented by hardware (e.g., integrated circuits) or in software, stored in memory and executed by a processor. [00144] Figure 21 illustrates a block diagram 2100 of an exemplary system in which various aspects of the exemplary embodiments of the present disclosure may be implemented. System 2100 may be embodied as a device including the various components described below and is configured to perform the processes described above. Examples of such devices, include, but are not limited to, personal computers, laptop computers, smartphones, smart watches, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. System 2100 may be communic ati vely coupled to other similar systems, and to a display via a communication channel as shown in Figure 2 1 and as known by those skilled in the art to implement the exemplary video system described above. System 2100 may implement encoder 700, decoder 1800 or both, independently or jointly. Moreover, system 2100 may implement and be configured to execute any of the processes of the present disclosure, including method 900, 1600, 1700, 1900 and/or 2000, independently or jointly.

[00145] The system 2100 may include at least one processor 2110 configured to execute instructions loaded therein for implementing the various processes as discussed above. Processor 2110 may include embedded memory, input output interface and various other circuitries as known in the art. The system 2100 may also include at least one memory 2120 (e.g., a volatile memory dev ice such as RAM, a non-volatile memory device such as ROM). System 2100 may additionally include a storage device 2140, which may include non- volatile memory, including, but not limited to, an erasable programmable read-only memory (EPROM), ROM, a programmable read-only memory (PROM), a dynamic RAM (DRAM), a static RAM (SRAM), flash memory, magnetic disk drive, and/or optical disk drive. The storage dev ice 2140 may comprise an internal storage dev ice, an attached storage dev ice and/or a network accessible storage dev ice, as non-limiting examples. System 2100 may also include an encoder/decoder module 2130 configured to process data to provide an encoded video or decoded video.

[00146] Encoder decoder module 2130 represents the module(s) that may be included in a dev ice to perform the encoding and/or decoding functions, for example, according to Figures 7 and 18, respectively. As is known in the art of compression, a device may include one or both of the encoding and decoding modules. Additionally, encoder/decoder module 2130 may be implemented as a separate element of system 2100 or may be incorporated within processors 2110 as a combination of hardware and software as known to those skilled in the art. For example, encoder/decoder module 2130 may be implemented as one or two separate integrated circuits and/or field-programmable gate array (FPGA). [00147] Program code to be loaded onto processors 2110 to perform the various processes described hereinabove may be stored in storage device 2140 and subsequently loaded onto memory 2120 for execution by processors 2110. In accordance with the exemplary embodiments of the present disclosure, one or more of the processor(s) 2110, memory 2120, storage device 2140 and encoder/decoder module 2130 may store one or more of the various items during the performance of the processes discussed herein above, including, but not limited to the input video, the decode video, the bitstream, equations, formula, matrices, variables, operations, and operational logic.

1001481 The system 2100 may also include communication interface 2150 that enables communication with other dev ices via communication channel 2160. The communication interface 2150 may include, but is not limited to a transceiver configured to transmit and receive data from communication channel 2160. The communication interface may include, but is not limited to, a modem or network card and the communication channel may be implemented within a wired and/or wireless medium. The various components of system 2100 may be connected or communicatively coupled together using various suitable connections, including, but not limited to internal buses, wires, and printed circuit boards.

1001491 The exemplary embodiments according to the present disclosure may be carried out by computer software executed by the processor 2110 or by hardware, or by a combination of hardware and software. As a non-limiting example, the exemplary embodiments according to the present disclosure may be implemented by one or more integrated circuits. The memory 2120 may be of any type appropriate to the technical environment and may be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory dev ices, fixed memory and remov able memory, as non-limiting examples. The processor 2110 may be of any type appropriate to the technical env ironment, and may encompass one or more of microprocessors, general purpose computers, special purpose computers and processors based on a multi-core architecture, as non-limiting examples.

[00150] 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), the implementation of features discussed may also be implemented in other forms (for example, an apparatus or 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.

[00151] According to an aspect of the present disclosure, an apparatus 2100 for video encoding is provided, the apparatus including a processor 2110, and at least one memory 2120, 2140 coupled to the processor, the processor 2110 being configured to perform any of the embodiments of the method of video encoding 1700 described above.

[00152] According to an aspect of the present disclosure, an apparatus 2100 for video decoding is provided, the apparatus including a processor 2110, and at least one memory 2120, 2140 coupled to the processor, the processor 2110 being configured to perform any of the embodiments of the method of video decoding 2000 described above.

[00153] According to an aspect of the present disclosure, an apparatus for video encoding is provided including means for accessing a block of a picture, means for determining a context model for a syntax element associated with a transform coefficient of the block based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, means for entropy encoding the syntax element based on the context model and means for providing the entropy encoded syntax element. The video encoders of Figures 7 and 21 may include the structure or means of the apparatus, particularly, blocks 745, 2110 and 2130.

[00154] According to an aspect of the present disclosure, an apparatus for video decoding is provided including means for accessing encoded data representative of a block of a picture, means for determining a context model for a syntax element associated with a transform coefficient of the block based on a weighted sum of position coordinates of the transform coefficient in the block, wherein at least one weight in the weighted sum is different than one, means for entropy decoding the syntax element based on the context model and means for providing the entropy decoded syntax element. Figures 18 and 2 1 may include the structure or means of the apparatus for video decoding, particularly, blocks 1830, 2110 and 2130.

[00155] 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 the bitstream of 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.

[00156] According to an aspect of the present disclosure, a signal including a bitstream formatted to include encoded data representative of a block of a picture, the encoded data encoded according to any of the embodiments of the method 1700 of video encoding.

[00157] According to an aspect of the present disclosure, a bitstream formatted to include encoded data representative of a block of a picture, the encoded data encoded according to any of the embodiments of the method 1700 of video encoding.

[00158] Moreover, any of the methods 900, 1600, 1700, 1900 and/or 2000 may be implemented as a computer program product (independently or jointly) comprising computer executable instructions which may be executed by a processor. The computer program product having the computer-executable instructions may be stored in the respective transitory or non-transitory computer-readable storage media of the system 2100, encoder 700 and/or decoder 1800.

[00159] According to an aspect of the present disclosure, a computer-readable program product is provided including program code instructions for performing any of the embodiments of any of the methods 900, 1600, 1700, 1900 and/or 2000 (independently or jointly) of the present disclosure.

[00160] It is important to note that one or more of the elements in the processes 900, 1600, 1700, 1900 and/or 2000 may be combined, performed in a different order, or excluded in some embodiments while still implementing the aspects of the present disclosure. Other steps may be performed in parallel, where the processor does not wait for a full completion of a step before starting another.

[00161] Furthermore, aspects of the present disclosure can take the form of a computer-readable storage medium. Any combination of one or more computer-readable storage medium(s) may be utilized. A computer-readable storage medium can take the form of a computer-readable program product embodied in one or more computer-readable medium(s) and having computer-readable program code embodied thereon that is executable by a computer. A computer-readable storage medium as used herein is considered a non-transitory storage medium given the inherent capabi lity to store the information therein as wel l as the inherent capability to prov ide retrieval of the information therefrom. A computer-readable storage medium may be, for example, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or dev ice, or any suitable combination of the foregoing.

[00162] It is to be appreciated that the following list, while providing more specific examples of computer-readable storage mediums to which the present disclosure may be applied, is merely an illustrative and not exhaustive listing as is readily appreciated by one of ordinary skill in the art. The list of examples includes a portable computer diskette, a hard disk, a ROM, EPROM, Flash memory, a portable compact disc read-only memory (CD-ROM ), an optical storage device, a magnetic storage dev ice, or any suitable combination of the foregoing.

[00163] According to an aspect of the present disclosure, a computer-readable storage medium carrying a software program is provided including program code instructions for performing any of the embodiments of any of the methods of the present disclosure, including methods 900, 1600, 1700, 1900 and/or 2000.

1 1641 It is to be understood that reference to "one embodiment" or "an embodiment" or "one implementation" or "an implementation" of the present disclosure, as well as other variations thereof, mean that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present disclosure. 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.

[00165] Additionally, the present disclosure or its claims may refer to "determining" various pieces of information. Determining the information may include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory.

[00166] Also, the present disclosure or its claims may refer to "providing" various pieces of information. Providing the information may include one or more of, for example, outputting the information, storing the information, transmitting the information, sending the information, displaying the information, showing the information, processing the information, or moving the information.

1 01671 Moreover, the present disclosure or its claims may refer to "accessing" various pieces of information. Accessing the information may include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, processing the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.

[00168] Further, the present disclosure or its claims may refer to "receiving" various pieces of information. Receiving is, as with "accessing", intended to be a broad term. Receiving the information may include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, "receiving" is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information.

[00169] It is to be appreciated that the various features shown and described are interchangeable. Unless otherwise indicated, a feature shown in one embodiment may be incorporated into another embodiment. Further, the features described in the various embodiments may be combined or separated unless otherwise indicated as inseparable or not combinable.

[00170] As noted before, the functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. Also, when provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared.

[00171] It is to be further understood that, because some of the constituent system components and methods depicted in the accompanying drawings are preferably implemented in software, the actual connections between the system components or the process function blocks may differ depending upon the manner in which the processes of present disclosure are programmed. Given the teachings herein, one of ordinary skill in the pertinent art will be able to contemplate these and similar implementations or configurations of the present disclosure.

[00172] Although the illustrative embodiments have been described herein with reference to the accompanying drawings, it is to be understood that the present disclosure is not limited to those precise embodiments, and that various changes and modifications may be effected therein by one of ordinary skill in the pertinent art without departing from the scope of the present disclosure. In addition, individual embodiments can be combined, without departing from the scope of the present disclosure. All such changes and modifications are intended to be included within the scope of the present disclosure as set forth in the appended claims.




 
Previous Patent: PACKAGING AND CLOSURE FOR A PACKAGING

Next Patent: HELMET