Patent Description:
Video applications are continuously moving towards higher resolution. A large quantity of video material is already distributed in digital form over broadcast channels, digital networks and packaged media, with a continuous evolution towards higher quality and resolution (e.g. higher number of pixels per frame, higher frame rate, higher bit-depth or extended color gamut). This technology evolution brings higher pressure on the distribution networks that are already facing difficulties to carry HDTV resolution and data rates economically to the end user. Therefore, any further data rate increase will put additional pressure on the networks. To handle this challenge, ITU-T and ISO/MPEG decided to launch in January <NUM> a new video coding standard project, named High Efficiency Video Coding (HEVC).

The HEVC codec design is similar to that of most previous so-called block-based hybrid transform codecs such as H. <NUM>, MPEG-<NUM>, MPEG-<NUM>, MPEG-<NUM>, SVC. Video compression algorithms such as those standardized by the standardization bodies ITU, ISO and SMPTE use the spatial and temporal redundancies of the images in order to generate data bit streams of reduced size compared with these video sequences. Such compressions make the transmission and/or storage of the video sequences more effective.

During video compression in the proposed HEVC encoder, each block of an image being processed is predicted spatially by an "Intra" predictor (so-called "Intra" coding mode), or temporally by an "Inter" predictor (so-called "Inter" coding mode). Each predictor is a block of pixels issued from the same image or another image, from which a difference block (or "residual") is derived. In the Intra coding mode the predictor (Intra predictor) used for the current block is a block of pixels constructed from the information already encoded of the current image. By virtue of the identification of the predictor block and the coding of the residual, it is possible to reduce the quantity of information actually to be encoded.

The encoded frames are of two types: temporal predicted frames (either predicted from one reference frame called P-frames or predicted from two reference frames called B-frames) and non-temporal predicted frames (called Intra frames or I-frames). In I-frames, only Intra prediction is considered for coding blocks. In P-frames and B-frames, Intra and Inter prediction are considered for coding blocks.

If "Intra" coding is selected, an item of information for describing the "Intra" predictor used is coded before being inserted in the bit stream to be sent to a corresponding decoder.

In the current HEVC design, as well as in previous designs such as MPEG-<NUM> AVC/H. <NUM>, intra coding involves deriving an intra prediction block from reconstructed neighboring samples <NUM> of the block to be encoded (decoded), as illustrated schematically in <FIG> Multiple prediction modes are supported, either directional or non-directional. In HEVC the number of supported modes depends on the size of a coding unit (CU). As at the filing date of the present application the HEVC specification is still subject to change but presently the following supported modes are contemplated: <NUM> modes for 64x64 CU, <NUM> modes for 4x4 CU, <NUM> modes for CU of other sizes (8x8 to 32x32).

When a CU is intra coded, its related intra prediction mode has to be coded. Referring to <FIG>, when coding a current CU <NUM>, Intra mode coding makes use of two neighbouring CUs that have already been coded, namely the Top and Left CUs <NUM> and <NUM>.

<FIG> illustrates intra prediction modes considered in HEVC. The intra prediction modes include a planar prediction mode identified by a mode prediction value <NUM>, a DC mode having a mode prediction value <NUM> and a number of directional prediction modes identified by mode prediction values <NUM> to <NUM> for predicting directional structures in an image corresponding to different angles. Also included are horizontal prediction mode <NUM> and vertical prediction mode <NUM>.

<FIG> is a flowchart for use in explaining how Intra mode coding is performed in the current HEVC design. In a first step S201 the Intra prediction modes of the neighboring Top and Left CUs <NUM> and <NUM>, as illustrated in <FIG>, are identified. The two CUs may share the same Intra prediction mode or may have different Intra prediction modes. Accordingly, in step S201 one or two different intra prediction modes can be identified. In step S202, two 'Most Probable Modes' (MPMs), are derived from the identified intra prediction modes. If the prediction modes of the Top and Left CUs <NUM> and <NUM> are different, then two MPMs, MPM0 and MPM1, are set to respectively the minimum and maximum value of the Top and Left CU prediction modes. If the prediction modes from the Top and Left CUs <NUM> and <NUM> are equal, and if they do not correspond to the Planar prediction mode, then MPM0 is set equal to Planar mode and MPM1 is set to the prediction mode of the Top or Left CUs prediction mode. If the prediction modes of the Top and Left CUs <NUM> and <NUM> both correspond to the Planar mode, then MPM0 is set equal to the Planar mode and MPM1 is set to the DC mode. MPM0 and MPM1 are thus ordered according to their prediction mode values, the prediction mode having the smaller mode value being referred to as MPM0 and the prediction mode having the greater mode value being referred to as MPM1. In step S203 the prediction mode of the current coding unit is then compared to the two MPMs. If the prediction mode of the current coding unit is equal to either MPM0 or MPM1 then in step S204 a first coding process (process <NUM>) is applied.

This first coding process involves coding a flag signaling that the mode of the current block is equal to one of the MPMs, and then, coding the index of the MPM concerned (<NUM> if MPM0, <NUM> if MPM1).

If in step S203 it is determined that the prediction mode of the current block is not equal to one of the two MPMs, then in step S205 a second coding process (process <NUM>) is applied.

Unlike the first coding process, the second coding process involves coding the mode value of the current block.

Statistically process <NUM> is more often used than process <NUM>. Statistically, a prediction mode is more often equal to one of its MPMs than different from all of the MPMs. The entropy coding engine benefits from this property, either by using shorter codewords in process <NUM> than in process <NUM>, or by exploiting the higher probability of being equal to one of the MPMs (arithmetic coding as used in CABAC efficiently exploits the probability to improve the encoding and reduce the coding cost). The present invention has been devised to address one or more of the foregoing concerns and desires. It is desirable to improve the coding efficiency of methods for encoding prediction mode information. <NPL>, discloses the use of <NUM> MPMs, the 4th MPM being set to planar prediction mode if none of the 1st and 2nd MPMs is the planar prediction mode.

<NPL>, discloses the use of <NUM> MPMs, where the 3rd MPM is set either to DC prediction mode if none of the 1st and 2nd MPMs is the DC prediction mode, to the vertical prediction mode if none of the 1st and 2nd MPMs is the vertical prediction mode or to the horizontal prediction mode otherwise.

According to a first aspect of the invention there is provided a method of encoding mode information representing a prediction mode related to a current coding unit as set out in claim <NUM>.

By deriving three MPMs instead of two for comparison with the prediction mode of the current coding block the coding efficiency is improved. This is due to the increase in the probability that the prediction mode of the current coding block corresponds to one of the derived most probable modes. Since this enables a more economical encoding process to be used to encode the prediction mode of the current coding block, the overall coding cost is reduced.

According to a second aspect of the invention there is provided a device for encoding mode information representing a prediction mode related to a current coding unit, as set out in claim <NUM>.

According to a third aspect of the invention there is provided a method of decoding a mode value representing a prediction mode related to a current decoding unit to be decoded, as set out in claim <NUM>.

According to a fourth aspect of the invention there is provided a device for decoding a mode value representing a prediction mode related to a current decoding unit to be decoded, as set out in claim <NUM>.

Embodiments relate only to claimed combinations of features. In the following, when the term "embodiment" relates to unclaimed combinations of features, said term has to be understood as referring to examples of the present invention.

Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.

Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which:-.

<FIG> is a flowchart for use in explaining a principle of an intra mode coding method embodying the present invention. The intra mode coding method according to this flowchart is applicable to any entropy coding engines such as CABAC or CAVLC.

In <FIG>, steps S401 and S402 are the same as steps S201 and S202, respectively, in <FIG>, and the description of these steps is not repeated here.

In step S403 a third most probable mode (MPM2) is derived from the first and second most probable modes MPM0 and MPM1 derived from the prediction modes of the neighbouring top and left CUs in step S402.

<FIG> is a flow chart illustrating in more detail the steps for deriving the third most probable mode MPM2 according to a first embodiment of the invention. In step S501 first and second most probable modes values MPM0 and MPM1 as derived in step S402 are identified. In step S502 it is checked as to whether one of the most probable mode values MPM0 and MPM1 corresponds to a planar prediction mode. This step may involve checking both most probable mode values to check if they correspond to a planar prediction mode. In an alternative embodiment of the invention when the most probable mode values MPM0 and MPM1 have been ordered according to their prediction mode values it may only be necessary to check if MPM0 corresponds to a planar mode since MPM0 will correspond to the lower order prediction mode. If neither MPM0 nor MPM1 correspond to a planar prediction mode, the further most probable mode MPM2 is set at a mode value corresponding to a planar prediction mode in step S506. Since a planar mode is statistically the most frequently used prediction mode, it is beneficial to insert it into the set of MPMs for the later comparison step, since it is a more likely to correspond to the prediction mode of the current block.

If, however, it is determined in step S502 that either one of the first and second MPMs, MPM0 or MPM1, corresponds to a planar mode, it is then checked in step S503 if the other MPM0 or MPM1 corresponds to a DC prediction mode. If it is determined that one of the first and second MPMs MPM0 or MPM1 corresponds to a planar prediction mode and the other of the first and second MPMs MPM0 and MPM1 corresponds to a DC prediction mode, the third MPM MPM2 is set at a pre-defined mode value.

Practically, prediction modes with a small prediction mode value are used because they are more likely to correspond to the prediction mode of the current block. In the example illustrated in <FIG>, MPM2 is set at a prediction mode value <NUM> corresponding to the vertical prediction mode.

It may be noted that a prediction mode value <NUM>, corresponding to horizontal direction prediction could also be chosen, but the vertical direction is statistically more present in natural images than horizontal structures and so is more likely to correspond to the prediction mode of the current block.

In some embodiments of the invention the pre-defined prediction mode may be signaled in the slice or picture header, since it may be dependent on the picture content, for instance depending on the statistics of the modes distribution in the image.

In another embodiment of the invention the pre-defined prediction mode can be adaptively derived, based on mode probabilities representative of the probability of occurrence of respective prediction modes that are regularly computed In this case, probability tables are defined. Each time a mode is coded, its probability is updated. When MPM0 and MPM1 are Planar and DC, MPM2 is computed as the mode different from Planar and DC which has the highest probability value. Therefore the MPM2 is, in this specific case of Planar and DC as the two first MPMs, adaptively computed depending on the image content.

If, however it is determined in step S503 that neither of the first MPM MPM0 and the second MPM MPM1 correspond to a DC prediction mode and that thus one of the first and second MPMs, MPM0 or MPM1 corresponds to a directional prediction mode MPM_dir, the third MPM MPM2 is set to the directional prediction mode with the nearest authorized superior angular direction to the direction of MPM_dir in step S505. With reference to <FIG> which illustrates this process in more detail. In step S601 the prediction mode of the neighbouring coding units which is not a planar mode is identified. In step S602 it is determined if the identified prediction mode is DC. If yes MPM2 is set at a vertical prediction mode, otherwise if the identified prediction mode is not a DC MPM2 is set at the nearest authorized superior angular direction to the direction (MPM_dir) of mode m in step S604.

For example, if MPM_dir is equal to <NUM>, with reference to <FIG>, MPM2 is set to <NUM> if the current coding unit is of size 8x8 to 32x32, or <NUM> if the current coding unit is of size 4x4 (in the current HEVC design, in 4x4 CU, modes with value higher to <NUM> are forbidden). Using the nearest superior angular direction has been experimentally shown to be the most performing solution.

It will be appreciated that in some embodiments of the invention the order of most probable prediction modes MPM0 and MPM1 may be ordered according to their prediction values before the third most probable prediction mode MPM2 is derived. In alternative embodiments of the invention step S402 may no include the process of reordering MPM0 and MPM1 according to their prediction mode value, and then MPM0, MPM1 and MPM2 may be ordered according to their prediction mode value after MPM2 has been derived.

Returning to <FIG> it is verified in step S404 if the prediction mode related to the current coding block is equal to the first MPM MPM0, the second MPM MPM1 or the third MPM MPM2 derived in steps S402 and S403 in order to determine whether encoding Process <NUM> or encoding Process <NUM> will be applied to encode the prediction mode value of the current coding block. Process <NUM>, which is carried out when the mode of the current block is equal to one of the three MPMs MPM0, MPM1 or MPM2, is implemented in step S405. In some embodiments of the present invention step S405 can be the same as step S204 in <FIG> and will not be described in detail here.

Process <NUM>, which is carried out when the mode of the current block is different from each of the first MPM MPM0, the second MPM MPM1, and the third MPM, MPM2 is implemented in step S406. Step S406 is the same as the corresponding step S205 in <FIG>, and will not be described in detail here.

Using three MPMs instead of two for comparing with the prediction mode of the current coding block improves the coding efficiency since the probability that the prediction mode of the current coding block corresponds to one of the derived most probable modes is increased. This in turn increases the likelihood that the more economical encoding process <NUM>, which requires less bits to signal the prediction mode of the current coding block, will be used to encode the prediction mode of the current coding block. Consequently the overall coding cost is reduced. At the same time the complexity of the overall process is not over-increased by deriving a large number of MPMs.

<FIG> shows the image coding structure <NUM> used in HEVC. According to HEVC and one of its previous predecessors, the original video sequence <NUM> is a succession of digital images "images i". As is known per se, a digital image is represented by one or more matrices the coefficients of which represent pixels.

The images <NUM> are divided into slices <NUM>. A slice is a part of the image or the entire image. In HEVC these slices are divided into nonoverlapping Largest Coding Units (LCUs) <NUM>, generally blocks of size <NUM> pixels x <NUM> pixels. Each LCU may in its turn be iteratively divided into smaller variable size Coding Units (CUs) <NUM> using a quadtree decomposition. Each CU can be further partitioned into a maximum of <NUM> symmetric rectangular Partition Units <NUM>.

<FIG> illustrates a diagram of apparatus <NUM> adapted to implement an encoder according to an embodiment of the present invention or to implement a decoder. The apparatus <NUM> is for example a micro-computer, a workstation or a light portable device.

The apparatus <NUM> comprises a communication bus <NUM> to which there are preferably connected:.

Optionally, the apparatus <NUM> may also have the following components:.

The apparatus <NUM> can be connected to various peripherals, such as for example a digital camera <NUM> or a microphone <NUM>, each being connected to an input/output card (not shown) so as to supply multimedia data to the apparatus <NUM>.

The communication bus affords communication and interoperability between the various elements included in the apparatus <NUM> or connected to it. The representation of the bus is not limiting and in particular the central processing unit is able to communicate instructions to any element of the apparatus <NUM> directly or by means of another element of the apparatus <NUM>.

The disk <NUM> can be replaced by any information medium such as for example a compact disk (CD-ROM), rewritable or not, a ZIP disk or a memory card and, in general terms, by an information storage means that can be read by a microcomputer or by a microprocessor, integrated or not into the apparatus, possibly removable and adapted to store one or more programs whose execution enables the method of encoding a sequence of digital images and/or the method of decoding a bitstream according to the invention to be implemented.

The executable code may be stored either in read only memory <NUM>, on the hard disk <NUM> or on a removable digital medium such as for example a disk <NUM> as described previously. According to a variant, the executable code of the programs can be received by means of the communication network <NUM>, via the interface <NUM>, in order to be stored in one of the storage means of the apparatus <NUM> before being executed, such as the hard disk <NUM>.

The central processing unit <NUM> is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions that are stored in one of the aforementioned storage means. On powering up, the program or programs that are stored in a non-volatile memory, for example on the hard disk <NUM> or in the read only memory <NUM>, are transferred into the random access memory <NUM>, which then contains the executable code of the program or programs, as well as registers for storing the variables and parameters necessary for implementing the invention.

In this embodiment, the apparatus is a programmable apparatus which uses software to implement the invention. However, alternatively, the present invention may be implemented in hardware (for example, in the form of an Application Specific Integrated Circuit or ASIC).

<FIG> illustrates a block diagram of an encoder <NUM> according to an embodiment of the invention. The encoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by the CPU <NUM> of apparatus <NUM>, a corresponding step of a method implementing an embodiment of the invention.

An original sequence of digital images i<NUM> to in <NUM> is received as an input by the encoder <NUM>. Each digital image is represented by a set of samples, known as pixels.

A bitstream <NUM> is output by the encoder <NUM>.

Note that, in the following description we sometimes use the term "block" in place of the specific terminology CU and PU used in HEVC. A CU or PU is a block of pixels.

The input digital images i are divided into blocks by module <NUM>. These blocks are image portions and may be of variable sizes (e.g. 4x4, 8x8, 16x16, 32x32, 64x64).

During video compression, each block of an image being processed is predicted spatially by an "Intra" predictor module <NUM>, or temporally by an "Inter" predictor module comprising a motion estimation module <NUM> and a motion compensation module <NUM>. Each predictor is a block of pixels issued from the same image or another image, from which a difference block (or "residual") is derived. By virtue of the identification of the predictor block and the coding of the residual, it is possible to reduce the quantity of information actually to be encoded.

The encoded frames are of two types: temporal predicted frames (either predicted from one reference frame called P-frames or predicted from two reference frames called B-frames) and non-temporal predicted frames (called Intra frames or I-frames). In I-frames, only Intra prediction is considered for coding CUs/PUs. In P-frames and B-frames, Intra and Inter prediction are considered for coding CUs/PUs.

In the "Intra" prediction module <NUM>, the current block is predicted by means of an "Intra" predictor, a block of pixels constructed from the information already encoded of the current image.

With regard to the "Inter" coding, two prediction types are possible. Mono-prediction (P-type) consists of predicting the block by referring to one reference block from one reference picture. Biprediction (B-type) consists of predicting the block by referring to two reference blocks from one or two reference pictures. An estimation of motion is carried out by module <NUM> between the current CU or PU and reference images <NUM>. This motion estimation is made in order to identify, in one or several of these reference images, one (P-type) or several (B-type) blocks of pixels to use them as predictors of this current block. In a case where several block predictors are used (Btype), they are merged to generate one single prediction block. The reference images used consist of images in the video sequence that have already been coded and then reconstructed (by decoding).

Generally, the motion estimation carried out by module <NUM> is a block matching algorithm (BMA).

The predictor obtained by the algorithm is then subtracted from the current data block to be processed so as to obtain a difference block (block residual). This processing is called "motion compensation" and is carried out by module <NUM>.

These two types of coding thus supply several texture residuals (the difference between the current block and the predictor block), which are compared in a module <NUM> for selecting the best coding mode.

If "Intra" coding is selected, an item of information for describing the "Intra" predictor used is coded by an entropic encoding module <NUM> before being inserted in the bit stream <NUM>. Embodiments of the present invention described hereinbefore with reference to <FIG> are applicable to the entropic encoding module <NUM> in <FIG>.

If the module <NUM> for selecting the best coding mode chooses "Inter" coding, motion information is coded by the entropic encoding module <NUM> and inserted in the bit stream <NUM>. This motion information is in particular composed of one or several motion vectors (indicating the position of the predictor block in the reference images relative to the position of the block to be predicted) and an image index among the reference images.

The residual obtained according to the coding mode selected by the module <NUM> is then transformed by module <NUM>. The transform applies to a Transform Unit (TU), that is included into a CU. A TU can be further split into smaller TUs <NUM> using a so-called Residual QuadTree (RQT) decomposition. In HEVC, generally <NUM> or <NUM> levels of decompositions are used and authorized transform sizes are from 32x32, 16x16, 8x8 and 4x4. The transform basis is derived from a discrete cosine transform DCT.

The residual transformed coefficients are then quantized by a quantization module <NUM>. The coefficients of the quantized transformed residual are then coded by means of the entropic coding module <NUM> and then inserted in the compressed bit stream <NUM>.

In order to calculate the "Intra" predictors or to make an estimation of the motion for the "Inter" predictors, the encoder performs a decoding of the blocks already encoded by means of a so-called "decoding" loop <NUM>-<NUM>. This decoding loop makes it possible to reconstruct the blocks and images from the quantized transformed residuals.

The quantized transformed residual is dequantized in module <NUM> by applying the reverse quantization to that provided by module <NUM> and reconstructed in module <NUM> by applying the reverse transform to that of the module <NUM>.

If the residual comes from an "Intra" coding, then in module <NUM> the used "Intra" predictor is added to this residual in order to recover a reconstructed block corresponding to the original block modified by the losses resulting from a transformation with loss, here quantization operations.

If the residual on the other hand comes from an "Inter" coding, the blocks pointed to by the current motion vectors (these blocks belong to the reference images <NUM> referred to by the current image indices) are merged then added to this decoded residual in module <NUM>. In this way the original block, modified by the losses resulting from the quantization operations, is obtained.

A final loop filter <NUM> is applied to the reconstructed signal in order to reduce the effects created by heavy quantization of the residuals obtained and to improve the signal quality. The loop filter comprises two steps, a "deblocking" filter and a linear filtering. The deblocking filtering smoothes the borders between the blocks in order to visually attenuate these high frequencies created by the coding. The linear filtering further improves the signal using filter coefficients adaptively determined at the encoder. The filtering by module <NUM> is thus applied to an image when all the blocks of pixels of this image have been decoded.

The filtered images, also called reconstructed images, are then stored as reference images <NUM> in order to allow the subsequent "Inter" predictions taking place during the compression of the following images of the current video sequence.

In the context of HEVC, it is possible to use several reference images <NUM> for the estimation and motion compensation of the current image. In other words, the motion estimation is carried out on N images. Thus the best "Inter" predictors of the current block, for the motion compensation, are selected in some of the multiple reference images. Consequently two adjoining blocks may have two predictor blocks that come from two distinct reference images. This is in particular the reason why, in the compressed bit stream, the index of the reference image (in addition to the motion vector) used for the predictor block is indicated.

The use of multiple reference images is both a tool for resisting errors and a tool for improving the compression efficacy. The VCEG group recommends limiting the number of reference images to four.

<FIG> illustrates a block diagram of a decoder <NUM> according to an embodiment of the invention. The decoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by the CPU <NUM> of apparatus <NUM>, a corresponding step of a method implementing an embodiment of the invention.

The decoder <NUM> receives as an input a bit stream <NUM> corresponding to a video sequence <NUM> compressed by an encoder of the HEVC type, such as the one shown in <FIG>.

During the decoding process, the bit stream <NUM> is first of all decoded entropically by a module <NUM>.

The residual of the current block is then dequantized by a dequantization module <NUM>. This reverses the quantization carried out by the quantization module <NUM> in the encoder <NUM>. The dequantized data is then reconstructed by a reverse transform module <NUM> which performs a transformation the reverse of that carried out by the transform module <NUM> in the encoder <NUM>.

The decoding of the data in the video sequence is then carried out image by image and, within an image, block by block.

The "Inter" or "Intra" coding mode for the current block is extracted from the bit stream <NUM> and decoded entropically.

If the coding of the current block is of the "Intra" type, the number of the predictor is extracted from the bit stream and decoded entropically. The Intra predictor block associated with this index is recovered from the data already decoded of the current image.

The residual associated with the current block is recovered from the bit stream <NUM> and then decoded entropically. Finally, the Intra predictor block recovered is added to the residual thus dequantized and reconstructed in a reverse Intra prediction module <NUM> in order to obtain the decoded block.

If the coding mode of the current block indicates that this block is of the "Inter" type, the motion information is extracted from the bit stream <NUM> by the entropic decoding module <NUM> and decoded.

This motion information is used in a reverse motion compensation module <NUM> in order to determine the "Inter" predictor block contained in the reference images <NUM> of the decoder <NUM>. In a similar manner to the encoder, these reference images <NUM> are composed of images that precede the image currently being decoded and that are reconstructed from the bit stream (and therefore decoded previously).

The residual associated with the current block is, here also, recovered from the bit stream <NUM> and then decoded entropically by module <NUM>. The Inter predictor block determined is then added to the thus dequantized residual reconstructed in the reverse motion compensation module <NUM> in order to obtain the decoded block.

At the end of the decoding of all the blocks of the current image, the same loop filter <NUM> as the filter <NUM> provided at the encoder is used to eliminate the block effects and improve the signal quality in order to obtain the reference images <NUM>.

The images thus decoded constitute the output video signal <NUM> of the decoder, which can then be displayed and used.

The embodiments described above are based on block partitions of input images, but more generally, any type of image <NUM> portions to encode or decode can be considered, in particular rectangular portions or more generally geometrical portions.

More generally although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art.

Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.

Claim 1:
A method of encoding a mode value representing an intra prediction mode related to a current unit to be encoded using a plurality of most probable mode values, wherein the number of most probable mode values used is three, the method comprising:
deriving first and second most probable mode values from respective intra prediction modes of at least two neighbouring units of the current unit, the first and second most probable mode values being different from one another and the deriving comprising:
checking whether the respective intra prediction modes of the at least two neighbouring units of the current unit are the same or different;
when the respective intra prediction modes are different, setting the first most probable mode value to a mode value corresponding to one of said respective intra prediction modes, and setting the second most probable mode value to a mode value corresponding to another of said respective intra prediction modes; and
deriving a third most probable mode value from the first and second most probable mode values, the third most probable mode value being different from each of said first and second most probable mode values, by, when neither of said first and second most probable mode values corresponds to a planar prediction mode, setting the third most probable mode value to a mode value corresponding to the planar prediction mode;
comparing the mode value with at least one of the derived first, second and third most probable mode values;
selecting based on the comparison, a first encoding process, from among at least first and second encoding processes, to apply to the mode value to be encoded when the mode value to be encoded is equal to at least one of the first, second and third most probable mode values, and the second encoding process when the mode value to be encoded differs from each of the first, second and third most probable mode values; and
encoding the mode value using the selected encoding process, wherein
the first encoding process comprises encoding first information indicating the mode value to be encoded from one of the first, second and third most probable mode values, and the second encoding process comprises encoding second information representing the mode value to be encoded that is not equal to any of the first, second and third most probable mode values,
and wherein the at least two neighbouring units comprise the left neighbouring unit and the top neighbouring unit of the current unit