HK1243258A1 - Video decoding apparatus - Google Patents
Video decoding apparatus Download PDFInfo
- Publication number
- HK1243258A1 HK1243258A1 HK18102445.7A HK18102445A HK1243258A1 HK 1243258 A1 HK1243258 A1 HK 1243258A1 HK 18102445 A HK18102445 A HK 18102445A HK 1243258 A1 HK1243258 A1 HK 1243258A1
- Authority
- HK
- Hong Kong
- Prior art keywords
- prediction mode
- mode
- unit
- mpm
- neighbor
- Prior art date
Links
Description
This patent application is a divisional application of the following invention patent applications:
application No.: 201180068084.7
Application date: 2011 12 months and 21 days
The invention name is as follows: intra prediction mode encoding/decoding method and apparatus therefor
Technical Field
The present invention relates to image processing, and more particularly, to a method and apparatus for encoding/decoding an intra prediction mode.
Background
Recently, as a broadcasting service having a High Definition (HD) resolution is expanded nationwide and worldwide, many users have become accustomed to high-resolution and high-definition images, so that many organizations have made many attempts to develop next-generation image devices. In addition, interest in HDTV and Ultra High Definition (UHD) having a resolution four times higher than that of HDTV has increased, and thus compression techniques for higher resolution and higher definition images have been required.
With regard to image compression, an inter prediction technique of predicting pixel values included in a current picture from pictures before and/or after the current picture, an intra prediction technique of predicting pixel values included in the current picture using pixel information in the current picture, an entropy encoding technique of allocating a short code to a symbol having a high frequency of occurrence and a long code to a symbol having a low frequency of occurrence, and the like may be used.
Disclosure of Invention
[ problem ] to provide a method for producing a semiconductor device
The present invention provides an image encoding method and apparatus capable of improving image encoding/decoding efficiency.
The present invention also provides an image decoding method and apparatus capable of improving image encoding/decoding efficiency.
The present invention also provides an intra prediction method and apparatus capable of improving image encoding/decoding efficiency. .
The present invention also provides a method and apparatus for encoding an intra prediction mode capable of improving image encoding/decoding efficiency.
The present invention also provides a method and apparatus for decoding an intra prediction mode capable of improving image encoding/decoding efficiency.
[ technical solution ] A
In an aspect, there is provided an intra prediction method, including: deriving neighbor prediction mode information from the left neighbor prediction mode and the upper neighbor prediction mode; deriving an intra prediction mode for the decoding target unit by using the derived neighbor prediction mode information; and performing intra prediction on the decoding target unit based on the derived intra prediction mode, wherein the left neighboring prediction mode is an intra prediction mode of a left neighboring unit adjacent to a left side of the decoding target unit, and the upper neighboring prediction mode is an intra prediction mode of an upper neighboring unit adjacent to an upper side of the decoding target unit, and the neighboring prediction mode information includes at least one of angle difference information and mode number information, the angle difference information including an angle difference between an angle of the left neighboring prediction mode and an angle of the upper neighboring prediction mode, and the mode number information including a mode number of the left neighboring prediction mode and a mode number of the upper neighboring prediction mode.
The deriving of the intra prediction mode may further comprise: receiving and decoding an MPM index for the decoding target unit; determining a Most Probable Mode (MPM) candidate for the decoding target unit by using the neighbor prediction mode information; generating an MPM list by using the determined MPM candidates; and deriving an intra prediction mode of the decoding target unit by using the decoded MPM index and the generated MPM list, wherein the MPM index is an index indicating a same candidate as the intra prediction mode of the decoding target unit among MPM candidates included in the MPM list.
The determining of the MPM candidate may further comprise: determining the left neighbor prediction mode and the upper neighbor prediction mode as the MPM candidates, wherein the number of MPM candidates included in the MPM list is a predetermined fixed number.
The determining of the MPM candidates may further include determining the predetermined intra prediction mode as an additional MPM candidate when the left neighbor prediction mode and the upper neighbor prediction mode are the same.
The predetermined intra prediction mode may be a planar mode.
When the left neighbor prediction mode and the upper neighbor prediction mode are planar modes, the predetermined intra prediction mode may be a DC mode.
The determining of the MPM candidates further includes determining the predetermined intra prediction mode as an additional MPM candidate when the left neighboring unit or the upper neighboring unit is unavailable.
The predetermined intra prediction mode may be a planar mode.
The deriving of the intra prediction mode may include: selecting a context model for the decoding target unit among the plurality of context models by using the neighbor prediction mode information; and performing entropy decoding on the intra prediction mode information of the decoding target unit by using the selected context model, wherein the intra prediction mode information includes at least one of an MPM flag, an MPM index, and a remaining mode.
The selecting of the context model may select the context model corresponding to the angle difference information as the context model for the decoding target unit.
The selecting of the context model may select the context model corresponding to the mode number information as the context model for the decoding target unit.
The selecting of the context model may select a context model corresponding to the angle difference information and the mode number information as the context model for the decoding target unit.
The deriving of the intra prediction mode may further comprise: selecting a length coding (VLC) table for the decoding target unit among a plurality of available VLC tables by using the neighbor prediction mode information; and performing entropy decoding on the intra prediction mode information of the decoding target unit by using the selected VLC table, wherein the intra prediction mode includes at least one of an MPM flag, an MPM index, and a remaining mode.
The selecting of the VLC table may select the VLC table corresponding to the angle difference information as the VLC table for the decoding target unit.
The selecting of the VLC table may select the VLC table corresponding to the mode number information as the VLC table for the decoding target unit.
The selecting of the VLC table may select the VLC table corresponding to the angle difference information and the mode number information as the VLC table for the decoding target unit.
In another aspect, there is provided a method for decoding an intra prediction mode, including: deriving neighbor prediction mode information from the left neighbor prediction mode and the upper neighbor prediction mode; and deriving an intra prediction mode for the decoding target unit by using the derived neighbor mode information, wherein the left neighbor prediction mode is an intra prediction mode of a left neighbor unit adjacent to a left side of the decoding target unit, and the upper neighbor prediction mode is an intra prediction mode of an upper neighbor unit adjacent to an upper side of the decoding target unit, and the neighbor prediction mode information includes at least one of angle difference information and mode number information, the angle difference information includes an angle difference value between an angle of the left neighbor prediction mode and an angle of the upper neighbor prediction mode, and the mode number information includes a mode number of the left neighbor prediction mode and a mode number of the upper neighbor prediction mode.
The deriving of the intra prediction mode may further comprise: receiving and decoding an MPM index for the decoding target unit; determining a Most Probable Mode (MPM) candidate for the decoding target unit by using the neighbor prediction mode information; generating an MPM list by using the determined MPM candidates; and deriving an intra prediction mode of the decoding target unit by using the decoded MPM index and the generated MPM list, wherein the MPM index is an index indicating a same candidate as the intra prediction mode of the decoding target unit among MPM candidates included in the MPM list.
The deriving of the intra prediction mode may include: selecting a context model for the decoding target unit among the plurality of context models by using the neighbor prediction mode information; and performing entropy decoding on the intra prediction mode information of the decoding target unit by using the selected context model, wherein the intra prediction mode information includes at least one of an MPM flag, an MPM index, and a remaining mode.
The deriving of the intra prediction mode may further comprise: selecting a length coding (VLC) table for the decoding target unit among a plurality of available VLC tables by using the neighbor prediction mode information; and performing entropy decoding on the intra prediction mode information of the decoding target unit by using the selected VLC table, wherein the intra prediction mode information includes at least one of an MPM flag, an MPM index, and a remaining mode.
Another aspect of the present invention provides a video decoding apparatus including: an entropy decoding module to perform entropy decoding on the input bitstream to derive quantized transform coefficients associated with a target decoding unit; an inverse quantization module for performing inverse quantization on the quantized transform coefficients to derive transform coefficients; a prediction module for deriving neighbor prediction mode information from a left neighbor prediction mode and an upper neighbor prediction mode, deriving an intra prediction mode for a target decoding unit by using the derived neighbor prediction mode information, and performing intra prediction on the target decoding unit based on the derived intra prediction mode; and an adder for adding a residual block generated based on the transform coefficients and a predicted block generated by intra prediction to generate a reconstructed block, wherein the left neighboring prediction mode is an intra prediction mode of a left neighboring unit adjacent to a left side of the target decoding unit, and the upper neighboring prediction mode is an intra prediction mode of an upper neighboring unit adjacent to an upper side of the target decoding unit, and the neighboring prediction mode information includes a mode number of the left neighboring prediction mode and a mode number of the upper neighboring prediction mode, wherein the prediction module receives and decodes a Most Probable Mode (MPM) flag and an MPM index for the target decoding unit, determines an MPM candidate for the target decoding unit by using the neighboring prediction mode information, generates an MPM list by using the determined MPM candidate, and derives the intra prediction mode of the target decoding unit by using the decoded MPM index and the generated MPM list, and the MPM index is an index indicating a candidate identical to an intra prediction mode of the target decoding unit among MPM candidates included in the MPM list, wherein the prediction module determines the left neighbor prediction mode and the upper neighbor prediction mode as the MPM candidates, and wherein the prediction module determines a predetermined intra prediction mode as an additional MPM candidate when the left neighbor prediction mode and the upper neighbor prediction mode are identical.
[ advantageous effects ]
The image encoding method according to the exemplary embodiment of the present invention can improve image encoding/decoding efficiency.
Furthermore, the image decoding method according to the exemplary embodiment of the present invention can improve image encoding/decoding efficiency.
The intra prediction method according to the exemplary embodiment of the present invention can improve image encoding/decoding efficiency.
The method for encoding an intra prediction mode according to an exemplary embodiment of the present invention can improve image encoding/decoding efficiency.
The method for decoding an intra prediction mode according to an exemplary embodiment of the present invention can improve image encoding/decoding efficiency.
Drawings
Fig. 1 is a block diagram showing a configuration of an image encoding apparatus according to an exemplary embodiment of the present invention.
Fig. 2 is a block diagram showing a configuration of an image decoding apparatus according to an exemplary embodiment of the present invention.
Fig. 3 is a conceptual diagram schematically illustrating an exemplary embodiment of reconstructing a neighboring unit for an encoding/decoding target unit.
Fig. 4 is a flowchart schematically illustrating a method for encoding an intra prediction mode according to an exemplary embodiment of the present invention.
Fig. 5 is a flowchart illustrating an exemplary embodiment of a method for performing entropy encoding using neighbor prediction mode information.
FIG. 6 is a table illustrating an exemplary embodiment of a method for selecting a context model based on angle difference information.
Fig. 7 is a table showing an exemplary embodiment of a method for selecting a VLC table according to angle difference information.
Fig. 8 is a table showing an example of codewords allocated to each of a plurality of VLC tables.
Fig. 9 is a table illustrating an exemplary embodiment of a method for selecting a context model according to a mode number of a neighbor prediction mode.
Fig. 10 is a table showing an exemplary embodiment of a method for selecting a VLC table according to a mode number of a neighbor prediction mode.
Fig. 11 is a table illustrating an exemplary embodiment of a method for selecting a context model by using angle difference information between neighbor prediction modes and mode number information on the neighbor prediction modes.
Fig. 12 is a table showing an exemplary embodiment of a method for selecting a VLC table by using angle difference information between neighbor prediction modes and mode number information on the neighbor prediction modes.
Fig. 13 is a flowchart schematically illustrating a method for decoding an intra prediction mode according to an exemplary embodiment of the present invention.
Fig. 14 is a flowchart illustrating an exemplary embodiment of a method for performing entropy decoding using neighbor prediction mode information.
Detailed Description
Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In describing exemplary embodiments of the present invention, well-known functions or constructions will not be described in detail since they would unnecessarily obscure the understanding of the present invention.
It will be understood that, when an element is referred to in this specification as being "connected to" or "coupled to" another element simply without being "directly connected to" or "directly coupled to" the other element, the element may be "directly connected to" or "directly coupled to" the other element, or connected to or coupled to the other element with the other element interposed therebetween. Further, in the present invention, "including" a specific configuration will be understood as including additional configurations also within the scope of the embodiment or the technical idea of the present invention.
The terms "first", "second", and the like, as used in this specification may be used to describe various components, but these components should not be construed as limited to these terms. These terms are only used to distinguish one component from another. For example, a "first" component may be termed a "second" component without departing from the scope of the present invention, and a "second" component may also be similarly termed a "first" component.
Further, constituent portions shown in the embodiments of the present invention are independently shown so as to represent characteristic functions different from each other. Thus, this does not mean that each constituent part is constituted in a constituent unit of separate hardware or software. In other words, for convenience, each constituent includes each of the enumerated constituents. Thus, at least two constituent parts of each constituent part may be combined to form one constituent part, or one constituent part may be divided into a plurality of constituent parts to perform each function. An embodiment in which each constituent is combined and an embodiment in which one constituent is divided are also included in the scope of the present invention unless the essence of the present invention is left.
In addition, some constituent elements may not be essential constituent elements that perform essential functions of the present invention, but are merely optional constituent elements that improve the performance thereof. The present invention can be implemented by including only necessary constituent parts for implementing the essence of the present invention, in addition to constituent parts used in improving the performance. A structure including only necessary constituent components other than the selective constituent components used only when improving the performance is also included in the scope of the present invention.
Fig. 1 is a block diagram showing a configuration of an image encoding apparatus according to an exemplary embodiment of the present invention.
Referring to fig. 1, the image encoding apparatus 100 includes a motion estimator 111, a motion compensator 112, an intra predictor 120, a switch 115, a subtractor 125, a transformer 130, a quantizer 140, an entropy encoder 150, an inverse quantizer 160, an inverse transformer 170, an adder 175, a filter unit 180, and a reference picture buffer 190.
The image encoding apparatus 100 may perform encoding on an input image using an intra mode or an inter mode to output a bitstream. Intra prediction means intra prediction, and inter prediction means inter prediction. In the case of the intra mode, the switch 115 may be switched to intra, and in the case of the inter mode, the switch 115 may be switched to inter. The image encoding apparatus 100 may generate a prediction block for an input block of an input image and then encode a residual between the input block and the prediction block.
In the case of the intra mode, the intra predictor 120 may perform spatial prediction using pixel values of previously encoded blocks surrounding the current block to generate a prediction block.
In the case of the inter mode, the motion estimator 111 may obtain a motion vector by searching for an area best matching an input block in a reference picture stored in the reference picture buffer 190 during a motion prediction process. The motion compensator 112 may perform motion compensation by using the motion vector to generate the prediction block.
The subtractor 125 may generate a residual block due to the residuals of the input block and the generated prediction block. The transformer 130 may output the transform coefficient by performing a transform on the residual block. Further, the quantizer 140 may quantize the input transform coefficients according to a quantization parameter to output quantized coefficients.
The entropy encoder 150 may perform entropy encoding on the symbols according to the probability distribution based on a value calculated in the quantizer 140 or a coding parameter value calculated during the coding process, etc., to output a bitstream. The entropy coding method is a method of receiving symbols having various values and representing input symbols by a decodable bin (binary code) sequence/string while removing statistical redundancy.
In this case, the symbol means a coding/decoding target syntax element, a coding parameter, a value of a residual signal, and the like. The encoding parameters, which are parameters necessary for encoding and decoding, may include information, such as syntax elements, encoded in an encoder and delivered to a decoder, and information that can be derived during an encoding or decoding process and means necessary information when encoding and decoding an image. The encoding parameters may include, for example, values or statistics such as intra/inter prediction modes, motion/motion vectors, reference picture indices, coded block patterns, presence and absence of residual signals, quantization parameters, unit sizes, unit partition information, and the like.
When applying entropy coding, entropy coding may represent symbols by allocating a small number of bits to symbols having a high occurrence probability and allocating a large number of bits to symbols having a low occurrence probability to reduce the size of a bit stream for the encoding target symbols. Therefore, the compression performance of image coding can be increased by entropy coding.
For entropy encoding, methods such as exponential golomb, Context Adaptive Variable Length Coding (CAVLC), Context Adaptive Binary Arithmetic Coding (CABAC), and the like may be used. For example, the entropy encoder 150 may store a table for performing entropy encoding, such as a variable length coding/code (VLC) table, and the entropy encoder 150 may perform entropy encoding using the stored variable length coding/code (VLC) table. In addition, the entropy encoder 150 may also perform entropy encoding by deriving a binarization method of the target symbol and a target symbol/bin probability model, and then using the derived binarization method or probability model.
In this case, binarization means that the value of a symbol is represented by a bin sequence/string. In this case, when a symbol is represented by a bin sequence/string by binarization, bin means each bin value (0 or 1). The probability model means a prediction probability of an encoding/decoding target symbol/bin that can be derived by a context model. The context model is a probability pattern for the bins of one or more binarized symbols and may be selected by statistics of the most recently encoded data symbols.
In more detail, the CABAC entropy encoding method binarizes symbols that are not binarized and transforms the binarized symbols into bins, determines a context model by using encoding information on neighboring and encoding target blocks or information on symbols/bins encoded in a previous step, and generates a bitstream by performing arithmetic encoding of bins by predicting the occurrence probability of bins according to the determined context model. In this case, the CABAC entropy encoding method may determine the context model and then update the context model by using information on the symbols/bins coded for the context model of the symbols/bins.
The image encoding apparatus according to the exemplary embodiment of fig. 1 performs inter prediction encoding (i.e., inter-picture prediction encoding) and thus, a currently encoded image needs to be decoded and stored in order to be used as a reference picture. Therefore, the quantized coefficients may be inverse quantized in the inverse quantizer 160 and inverse transformed in the inverse transformer 180. The inversely quantized and inversely transformed coefficients are added to the prediction block by the adder 175, and a reconstructed block is generated.
The reconstructed block passes through the filter unit 180, and the filter unit 180 may apply at least one of a deblocking filter, a Sample Adaptive Offset (SAO), and an Adaptive Loop Filter (ALF) to the reconstructed block or the reconstructed picture. The reconstructed block passing through the filter unit 180 may be stored in the reference picture buffer 190.
Fig. 2 is a block diagram showing a configuration of an image decoding apparatus according to an exemplary embodiment of the present invention.
Referring to fig. 2, the image decoding apparatus 200 includes an entropy decoder 210, an inverse quantizer 220, an inverse transformer 230, an intra predictor 240, a motion compensator 250, an adder 255, a filter unit 260, and a reference picture buffer 270.
The image decoding apparatus 200 may receive a bitstream output from an encoder to perform decoding using an intra mode or an inter mode, and output a reconstructed image (i.e., a reconstructed image). In the case of the intra mode, the switch may be switched to the intra mode, and in the case of the inter mode, the switch may be switched to the inter mode. The image decoding apparatus 200 obtains a residual block from the received bitstream and generates a prediction block, and then adds the residual block and the prediction block, thereby generating a reconstructed block (i.e., a reconstructed block).
The entropy decoder 210 may perform entropy encoding on the input bitstream according to the probability distribution to generate symbols having quantized coefficient type symbols. The entropy coding method is a method of receiving a bin sequence/string and generating each symbol. The entropy decoding method is similar to the entropy encoding method described above.
In more detail, the CABAC entropy decoding method may receive a bin corresponding to each syntax element in a bitstream, determine a context model using decoding target syntax element information and decoding information on neighboring and decoding target blocks, or information on symbols/bins decoded in a previous step, and predict an occurrence probability of the bin according to the determined context model and perform arithmetic decoding of the bin to generate a symbol corresponding to a value of each syntax element. In this case, the CABAC entropy decoding method may determine a context model and then update the context model by using information on the symbols/bins decoded for the context model of the symbols/bins.
When the entropy decoding method is applied, the entropy decoding method represents symbols by allocating a small number of bits to symbols having a high occurrence probability and allocating a large number of bits to symbols having a low occurrence probability, thereby reducing the size of a bitstream for each symbol. Therefore, the compression performance of image decoding can be increased by the entropy decoding method.
The quantized coefficients are dequantized in an inverse quantizer 220 and inverse-transformed in an inverse transformer 230. The quantized coefficients may be inverse quantized/inverse transformed to generate a residual block.
In the case of the intra mode, the intra predictor 240 may perform spatial prediction using pixel values of previously encoded blocks surrounding the current block to generate a prediction block. In the case of the inter mode, the motion compensator 250 performs motion compensation by using the motion vector and the reference picture stored in the reference picture buffer 270, thereby generating a prediction block.
The residual block and the predicted block are added by an adder 255, and the added block passes through a filter unit 260. The filter unit 260 may apply at least one of a deblocking filter, SAO, and ALF to the reconstructed block or the reconstructed picture. The filter unit 260 outputs the reconstructed image (i.e., reconstructed image). The reconstructed image may be stored in the reference picture buffer 270 to be used for inter prediction.
Hereinafter, a unit means a unit of image encoding and decoding. In image encoding and decoding, an encoding or decoding unit means a unit divided when encoding and decoding are performed by dividing an image, and may be referred to as a block, a Coding Unit (CU), a coding block, a Prediction Unit (PU), a prediction block, a Transform Unit (TU), a transform block, and the like. A single cell may be subdivided into smaller cells having smaller dimensions.
Here, the prediction unit means a basic unit that is a unit performing prediction and/or motion compensation. The prediction unit may be divided into a plurality of partitions, and each partition may be referred to as a prediction unit partition. When the prediction unit is divided into a plurality of partitions, each of the plurality of partitions may be a basic unit that is a unit performing prediction and/or motion compensation. Hereinafter, in exemplary embodiments of the present invention, each partition in which the prediction unit is divided may also be referred to as a prediction unit.
Meanwhile, intra prediction may be performed according to an intra prediction mode of the encoding/decoding target unit. In this case, each of the intra prediction modes may have a prediction direction corresponding thereto, and each prediction direction may have a predetermined angle value. Therefore, the intra prediction mode of the encoding/decoding target unit may also represent prediction direction information regarding the encoding/decoding target unit.
The encoder may encode the intra prediction mode and transmit the encoded intra prediction mode to the decoder. When an encoder encodes and transmits an intra prediction mode for an encoding target unit, in order to reduce the number of transmitted bits and increase encoding efficiency, a method for predicting the intra prediction mode may be used.
The prediction mode of the encoding target unit has a high probability equal to that of the reconstructed neighboring unit, and therefore, the prediction mode of the encoding target unit can be encoded by using the prediction mode of the reconstructed neighboring unit neighboring the encoding target unit. Hereinafter, a prediction mode serving as a prediction value of an intra prediction mode of an encoding target unit is referred to as a Most Probable Mode (MPM). In this case, the reconstruction neighboring unit, which is a unit previously encoded or decoded and reconstructed, may include a unit neighboring the encoding/decoding target unit, a unit arranged at the upper right corner of the encoding/decoding target unit, a unit arranged at the upper left corner of the encoding/decoding target unit, and/or a unit arranged at the lower left corner of the encoding/decoding target unit.
Fig. 3 is a conceptual diagram schematically illustrating an exemplary embodiment of reconstructing a neighboring unit for an encoding/decoding target unit.
Referring to fig. 3, as the reconstructed neighbor unit for the encoding/decoding target unit E, there may be a left neighbor unit a adjacent to the left of the E unit, an upper neighbor unit B adjacent to the upper side of the E unit, an upper right cell C arranged at the upper right corner of the E unit, an upper left cell D arranged at the upper left corner of the E unit, and the like.
Thereafter, in an exemplary embodiment of the present invention to be described later, the left neighboring cell is referred to as a cell a, the upper neighboring cell is referred to as a cell B, the upper right cell is referred to as a cell C, and the upper left cell is referred to as a cell D. In addition, the encoding/decoding target unit is referred to as unit E.
Fig. 4 is a flowchart schematically illustrating a method for encoding an intra prediction mode according to an exemplary embodiment of the present invention.
Referring to fig. 4, the encoder may determine an intra prediction mode of an encoding target unit (S410).
In addition, the encoder may derive information on the neighbor prediction mode (S420). Here, the neighbor prediction mode may mean an intra prediction mode in which the neighbor unit is reconstructed. Hereinafter, information on the neighbor prediction mode is referred to as neighbor prediction mode information.
Each of the reconstructed neighbor units may have an intra prediction mode. In this case, the encoder may derive neighbor prediction mode information on a unit having an intra prediction mode among the reconstructed neighbor units. An angle difference between the neighbor prediction modes and/or a mode number of the neighbor prediction mode, etc. may be in the neighbor prediction mode information.
As described above, each of the intra prediction modes may have a prediction direction corresponding thereto, and each prediction direction may have a predetermined angle value. Therefore, each neighbor prediction mode may have a predetermined angular value, and the encoder may derive an angular difference between the neighbor prediction modes. Thereafter, the information on the angle difference between the neighboring prediction modes is angle difference information.
In addition, each of the intra-prediction modes may have a mode number corresponding thereto, and the encoder may derive and/or distinguish the mode numbers of the neighboring prediction modes. The mode number allocated to the intra prediction mode may be determined according to the occurrence probability of the intra prediction mode. For example, a prediction mode having a high occurrence probability may be assigned a low mode number. Therefore, the mode number of the neighbor prediction mode derived by the encoder may also indicate the mode order of the neighbor prediction mode. Hereinafter, information regarding the mode number of the neighbor prediction mode is referred to as mode number information.
Referring again to fig. 4, the encoder may encode the intra prediction mode for the encoding target unit using the derived neighbor prediction mode information (S430).
The encoder may derive an MPM candidate for the encoding target unit in order to encode the intra prediction mode for the encoding target unit. The MPM candidates may be derived using the intra prediction mode of the reconstructed neighboring unit. In this case, the encoder may use at least one of the prediction modes of units A, B, C and D.
When there is an unavailable unit in the reconstructed neighboring units, the encoder may not use the unavailable unit for deriving the MPM candidate. In addition, among the reconstructed neighbor units, an encoding/decoding unit by a Pulse Code Modulation (PCM) scheme and/or an encoding/decoding unit by intra prediction may not include information related to an intra prediction mode. Therefore, the MPM candidates may not be derived using the encoding/decoding unit by the PCM scheme and/or the intra prediction. In addition, among the reconstructed neighbor units, the encoding/decoding unit may be presented by a Constrained Intra Prediction (CIP) scheme, and when the reconstructed neighbor unit is CIP and its intra prediction mode is DC mode, the encoder may not use that neighbor unit as an MPM candidate. According to an exemplary embodiment of the method for deriving an MPM candidate, the encoder may select a prediction mode (e.g., Min (a, B)) to which a minimum table index is allocated, among a prediction mode of a left neighboring unit a and a prediction mode of an upper neighboring unit B, as an MPM candidate included in the MPM list. In this case, when the angle difference information indicates that the prediction mode angle of the unit a is the same as the prediction mode angle of the unit B, that is, when the mode number of the unit a is the same as the mode number of the unit B, the encoder may select the prediction mode regardless of the table index.
Table indices may be assigned to prediction modes based on their frequency of occurrence and statistics. For example, a prediction mode having the highest frequency of occurrence may be assigned the smallest table index value, and a prediction mode having the lowest frequency of occurrence may be assigned the highest table index value.
Table indices may not be assigned to satisfy the frequency of occurrence of the prediction mode. That is, the table index may not be aligned according to the frequency of occurrence. In this case, the encoder may select a prediction mode having a higher frequency of occurrence, among the prediction modes of the unit a and the prediction modes of the unit B, as the MPM candidates included in the MPM list, regardless of the table index value.
The encoder may also use a predetermined fixed number (N) of MPM candidates in order to encode the intra prediction mode. Here, N may be a positive integer.
As an exemplary embodiment, the number of MPM candidates included in the MPM list may be 2. For example, the encoder may select a prediction mode of the left neighboring unit a and a prediction mode of the upper neighboring unit B as MPM candidates.
In this case, the number of MPM candidates derived from the unit a and the unit B may be less than 2. For example, when the angle difference information indicates that the prediction mode angle of the unit a and the prediction mode angle of the unit B are the same, i.e., when the mode number of the unit a and the mode number of the unit B are the same, the number of MPM candidates derived from the encoder may be 1. In this case, the remaining MPM candidates other than the MPM candidates derived from the unit a and the unit B may be set and/or derived as the predetermined pattern. That is, the encoder may select a predetermined mode as an additional MPM candidate. For example, the predetermined pattern may be fixed to DC. In addition, when the prediction modes of the unit a and the unit B are not the planar mode, the predetermined mode may be the planar mode, and when the prediction modes of the unit a and the unit B are the planar mode, the predetermined mode may be the DC mode.
In addition, when there is an unavailable unit among the reconstructed neighboring units, the number of MPM candidates derived from the encoder may be 1. In this case, the remaining MPM candidates other than the MPM candidates derived from the unit a and the unit B may be set and/or derived as the predetermined pattern. That is, the encoder may select a predetermined mode as an additional MPM candidate. Here, the predetermined mode may be, for example, a DC mode or a planar mode.
As another exemplary embodiment of the present invention, the number of MPM candidates included in the MPM list may be 3. For example, the encoder may select a prediction mode having the highest frequency of occurrence among the prediction mode of the left neighboring unit a, the prediction mode of the upper neighboring unit B, and the prediction mode of the previous coding unit as the MPM candidate.
In this case, the number of MPM candidates derived from the unit a and the unit B may be less than 2. For example, when the angle difference information indicates that the prediction mode angle of the unit a and the prediction mode angle of the unit B are the same, i.e., when the mode number of the unit a and the mode number of the unit B are the same, the number of MPM candidates derived from the encoder may be 1. In addition, there may be an unavailable cell among the reconstructed neighboring cells. When the number of MPM candidates derived from the unit a and the unit B is less than 2, the encoder may also select a plurality of prediction modes as the MPM candidates in order of frequency of occurrence among the prediction modes of the previously encoded units.
The prediction mode selection unit having a high occurrence frequency, i.e., the prediction mode selection unit, may be a coding target picture including a coding target unit, a coding target slice, a Largest Coding Unit (LCU), a Coding Unit (CU), and/or a Prediction Unit (PU). The encoder may also use a counter to calculate the frequency of occurrence of the prediction mode. When the counter is used, the encoder may perform encoding on the prediction mode selection unit and then initialize the counter. That is, the counter may be initialized to the prediction mode selection unit.
When the MPM candidates are derived by the above-described method, the encoder may generate an MPM list by using the derived MPM candidates. The encoder may determine whether an MPM candidate identical to the prediction mode of the encoding target unit may exist within the MPM list. In this case, the encoder may transmit a flag indicating whether the same MPM candidate as the prediction mode of the encoding target unit may exist within the MPM list to the decoder. Hereinafter, the marker is referred to as an MPM marker.
According to an exemplary embodiment of the present invention, the MPM flag transmitted to the decoder may be represented by prev _ intra _ luma _ pred _ flag. For example, when an MPM candidate identical to the prediction mode of the encoding target unit exists within the MPM list, the MPM flag may be allocated to 1, or otherwise allocated to 0.
When an MPM candidate identical to the prediction mode of the encoding target unit exists within the MPM list, the encoder may transmit an index indicating whether the prediction mode of the encoding target unit is identical to any MPM candidate in the MPM list to the decoder. Hereinafter, the index is referred to as an MPM index. In this case, the encoder and the decoder may use an MPM candidate indicating the MPM index as an intra prediction mode of the encoding target unit.
When the number of MPM candidates included in the MPM list is 1, the encoder may not encode the MPM index. In addition, even when the decoder can know the same MPM candidate as the prediction mode of the decoding target unit, the encoder may not encode the MPM index. In this case, the encoder may encode only the MPM flag and transmit the encoded MPM flag to the decoder.
When there is no MPM candidate identical to the prediction mode of the encoding target unit within the MPM list, the encoder may derive the remaining mode by using the prediction mode of the current encoding target unit and the MPM list. Here, the remaining mode may be derived using an intra prediction mode other than the MPM candidate. The encoder may encode the generated residual mode and transmit the encoded residual mode to the decoder. According to an exemplary embodiment of the present invention, the remaining mode may be represented by rem _ intra _ luma _ pred _ mode.
When encoding the intra prediction mode of the encoding target unit, the encoder may not use the reconstructed neighbor unit and/or the MPM candidate. In this case, the encoder may perform entropy encoding on the intra prediction mode of the encoding target unit, and may transmit the encoded intra prediction mode to the decoder.
Meanwhile, the encoder may perform entropy encoding on the above-described MPM flag, MPM index, residual mode, and/or intra prediction mode and transmit them to the decoder. In this case, when entropy encoding is performed on each syntax element, the encoder may perform arithmetic encoding by using only the context mode, and may also use fixed-bit encoding. However, in this case, intra prediction mode information on the reconstructed neighbor unit is not used, and so coding efficiency may be low. Therefore, a method for performing entropy encoding by using information on an intra prediction mode for reconstructing a neighboring unit (i.e., neighboring prediction mode information) may be provided. As described above, the angular difference between the neighbor prediction modes and/or the mode number of the neighbor prediction mode, etc. may be in the neighbor prediction mode information. Hereinafter, an exemplary embodiment of a method for performing entropy encoding on the encoding target unit by using the neighbor prediction mode information will be described.
Fig. 5 is a flowchart illustrating an exemplary embodiment of a method for performing entropy encoding using neighbor prediction mode information.
Referring to fig. 5, the encoder may select a context model and/or a VLC table for the encoding target unit by using the neighbor mode information (S510). Here, the Variable Length Coding (VLC) table may have the same meaning as the variable length coding table.
When performing entropy encoding, the encoder may select and use one of a plurality of context models. In this case, the encoder may select the context model by using angle difference information between the neighbor prediction modes, and may select the context model by using a mode number and/or a mode order of the neighbor prediction modes. In addition, the encoder may also select a context model by using the angle difference information and the mode number information.
In addition, the encoder may select and use one of the plurality of VLC tables when performing entropy encoding. In this case, the encoder may select the VLC table by using the angle difference information between the neighbor prediction modes, and may select the context model by using the mode number and/or the mode order of the neighbor prediction modes. In addition, the encoder may also select a context model by using the angle difference information and the mode number information.
The encoder may perform entropy encoding on the intra prediction mode of the encoding target unit by using the selected context model and/or VLC table (S520). In this case, as described above, the syntax elements for performing entropy encoding may include an MPM flag, an MPM index, a residual mode, and/or an intra mode, etc., as described above.
FIG. 6 is a table illustrating an exemplary embodiment of a method for selecting a context model based on angle difference information.
Reference numeral 610 of fig. 6 is a table indicating an example of angle difference information between neighboring prediction modes. Reference numeral 610 of fig. 6, VER may denote vertical direction prediction, HOR may denote horizontal direction prediction, and DC may denote DC prediction.
As described above, each of the intra prediction modes may have a prediction direction corresponding thereto, and each prediction direction may have a predetermined angle value. Therefore, a prediction direction difference between the neighboring prediction modes may be defined by an angle difference between the neighboring prediction modes. The encoder and the decoder may also store a table including angle difference information, and the encoder and the decoder may derive an angle difference between neighboring prediction modes by using the stored table.
Reference numeral 620 of fig. 6 is a table indicating an example of context categories of angle differences between neighboring prediction modes. At reference numeral 620 of fig. 6, d denotes an angle difference value, and ctxN (N is 1, 2, 3, or 4) may denote a context model applied to a syntax element of the encoding target unit. In addition, each of Th1 (threshold 1), Th2 (threshold 2), Th3 (threshold 3), Th4 (threshold 4) may represent a threshold value of the angle difference.
Referring to reference numeral 620 of fig. 6, the encoder may select one of four different context models by using the angle difference information. For example, when the angle difference between the neighboring prediction modes is greater than Th1 and less than Th2, the encoder may select ctx2 as the context model of the encoding target unit.
Reference numeral 630 of fig. 6 is a table indicating another example of context categories according to an angle difference between neighboring prediction modes. Referring to reference numeral 630 of fig. 6, the encoder may select one of four different context models by using the angle difference information.
For example, assume that the intra prediction mode of the left neighboring unit a is 1(HOR) and the intra prediction mode of the upper neighboring unit B is 33(HOR + 7). Here, 1(HOR) may represent a prediction mode whose mode number is 1, and 33(HOR +7) may represent a prediction mode whose mode number is 33. In this case, referring to reference numeral 610 of fig. 6, the angle difference between the neighboring prediction modes may be 35. Therefore, the encoder may select ctx1 as the context model for the encoding target unit.
Although the above-described exemplary embodiment describes a case in which the angle difference information is derived by using the left neighboring cell a and the upper neighboring cell B, the method for deriving the angle difference information is not limited to this exemplary embodiment. The angular difference information between the neighboring prediction modes may be derived through various methods using available units among the reconstructed neighboring units.
In addition, in the above-described exemplary embodiment, each of the context models ctx1 through ctx4 may have different initial values. In this case, the Most Probable State (MPS) and probability values of the Most Probable State (MPS) may be determined by using different initial values in each context model, and encoding parameters of a quantization parameter or the like may be used to determine the MPS and MPS probability values.
Fig. 7 is a table showing an exemplary embodiment of a method for selecting a VLC table according to angle difference information.
Reference numeral 710 of fig. 7 is a table indicating an example of angle difference information. As described above, each of the intra prediction modes may have a prediction direction corresponding thereto, and each prediction direction may have a predetermined angle value. Therefore, a prediction direction difference between the neighboring prediction modes may be defined by an angle difference between the neighboring prediction modes. The encoder and the decoder may store a table including the angular difference information, and the encoder and the decoder may derive the angular difference between the neighboring prediction modes by using the stored table.
Reference numeral 720 of fig. 7 is a table indicating an example of VLC table category according to an angle difference between neighbor prediction modes. At reference numeral 720 of fig. 7, d denotes an angle difference value, and VLCN (N is 1, 2, 3, or 4) may denote a VLC table applied to a syntax element of the encoding target unit. In addition, each of Th1 (threshold 1), Th2 (threshold 2), Th3 (threshold 3), Th4 (threshold 4) may represent a threshold value of the angle difference.
Referring to reference numeral 720 of fig. 7, the encoder may select one of four different VLC tables through the angle difference information. For example, when the angle difference between the neighboring prediction modes is greater than Th1 and less than Th2, the encoder may select VLC2 as the VLC table of the encoding target unit.
Reference numeral 730 of fig. 7 is a table indicating another example of VLC table categories according to an angle difference between neighbor prediction modes. Referring to reference numeral 730 of fig. 7, the encoder may select one of four different VLC tables by using the angle difference information. In reference numeral 730 of fig. 7, when the angular difference value is 45 or less, VLC1 may be selected as the VLC table for the encoding target unit, when the angular difference value is greater than 45 and less than 90, VLC2 may be selected as the VLC table for the encoding target unit, when the angular difference value is greater than 90 and less than 135, VLC3 may be selected as the VLC table for the encoding target unit, and when the angular difference value is greater than 135, VLC4 may be selected as the VLC table for the encoding target unit.
For example, assume that the intra prediction mode of the left neighboring unit a is 1(HOR) and the intra prediction mode of the upper neighboring unit B is 33(HOR + 7). Here, 1(HOR) may represent a prediction mode whose mode number is 1, and 33(HOR +7) may represent a prediction mode whose mode number is 33. In this case, referring to reference numeral 710 of fig. 7, the angle difference between the neighboring prediction modes may be 35. Therefore, the encoder may select the VLC1 as the VLC table for the encoding target unit.
Reference numeral 740 of fig. 7 is a table indicating another example of VLC table categories according to an angle difference between neighbor prediction modes. Referring to reference numeral 740 of fig. 7, the encoder may select one of two different VLC tables by using the angle difference information. At reference numeral 740 of fig. 7, when the angle difference value is 0, that is, when the neighbor prediction modes are the same (d ═ 0), VLC1 may be selected as the VLC table for the encoding target unit. In addition, when the angle difference is not 0, i.e., when the neighbor prediction modes are not the same (d | ═ 0), the VLC2 may be selected as the VLC used for the encoding target unit.
For example, assume that the intra prediction mode of the left neighboring unit a is 1(HOR) and the intra prediction mode of the upper neighboring unit B is 1 (HOR). Here, 1(HOR) may denote a prediction mode whose mode number is 1. In this case, the intra prediction mode of the left neighboring unit a and the intra prediction mode of the upper neighboring unit B are the same, and therefore, the angular difference between the neighboring prediction modes may be 0. Therefore, the encoder may select the VLC1 as the VLC table for the encoding target unit.
As another example, assume that the intra prediction mode of the left neighboring unit a is 1(HOR) and the intra prediction mode of the upper neighboring unit B is 33(HOR + 7). Here, 1(HOR) may represent a prediction mode whose mode number is 1, and 33(HOR +7) may represent a prediction mode whose mode number is 33. In this case, the intra prediction mode of the left neighboring unit a and the intra prediction mode of the upper neighboring unit B are not the same, and therefore, the angle difference between the neighboring prediction modes may not be 0. Therefore, the encoder may select the VLC2 as the VLC table for the encoding target unit.
Although the above-described exemplary embodiment describes the case in which the angle difference information is derived by using the left neighboring cell a and the upper neighboring cell B, the method for deriving the angle difference information is not limited to this exemplary embodiment. The angular difference information between the neighboring prediction modes may be derived through various methods using available units among the reconstructed neighboring units.
Fig. 8 is a table showing an exemplary embodiment of codewords allocated to each of a plurality of VLC tables.
Referring to fig. 8, in each VLC table, the allocated codeword may be different according to each symbol value and/or each syntax element in each VLC table. In this case, the encoder may improve encoding efficiency by allocating codewords having short lengths to symbols having high occurrence probabilities.
The encoder may update each VLC table during the encoding process. For example, the VLC1 of fig. 8, when the occurrence frequency of the symbol value 2 is higher than the occurrence frequency of the symbol value 1, the encoder may change the codeword "01" allocated to the symbol value 1 and the codeword "001" allocated to the symbol value 2. After performing the update, the encoder may perform entropy encoding by using the updated VLC table.
Fig. 9 is a table illustrating an exemplary embodiment of a method for selecting a context model according to a mode number of a neighbor prediction mode.
Reference numeral 910 of fig. 9 is a table indicating an example of a mode number assigned to the neighbor prediction mode. Reference numeral 910 of fig. 9 shows an embodiment of a case in which the number of intra prediction modes included in the reconstructed neighbor unit is 34.
As described above, the mode number allocated to the intra prediction mode may be determined according to the occurrence probability of the intra prediction mode. In this case, a low pattern number may be assigned to a prediction pattern having a high occurrence probability. For example, in the table at reference numeral 910 of fig. 9, the occurrence probability of the VER prediction mode may be highest. Therefore, the mode number of the neighbor prediction mode may also indicate the mode order of the neighbor prediction mode.
Reference numeral 920 of fig. 9 shows a table indicating an example of context classes according to the mode number of the neighbor prediction mode. At reference numeral 920 of fig. 9, ctxN (N is 1, 2, 3, or 4) may represent a context model applied to a syntax element of the encoding target unit. Referring to reference numeral 920 of fig. 9, the encoder may select one of four different context models by using a mode number of a neighbor prediction mode.
For example, assume that the intra prediction mode of the left neighboring unit a is 0(VER) and the intra prediction mode of the upper neighboring unit B is 6(VER + 6). Here, 0(VER) may represent a prediction mode whose mode number is 0, and 6(VER +6) may represent a prediction mode whose mode number is 6. In this case, referring to reference numeral 920 of fig. 9, the mode number of the unit a and the mode number of the unit B may be included in the same context class. Since the context model corresponding to the context class is ctx1, ctx1 may be selected as the context model for the encoding target unit.
As another example, assume that the intra prediction mode of the left neighboring unit a is 8(HOR +4) and the intra prediction mode of the upper neighboring unit B is 21 (VER-1). Here, 8(HOR +4) may represent a prediction mode whose mode number is 8, and 21 (VER-1) may represent a prediction mode whose mode number is 21. Referring to 920 of fig. 9, the mode number of the unit a and the mode number of the unit B may be included in different context categories. In this case, the encoder may select a context model corresponding to a smaller mode number (e.g., mode number 8). Since the context model corresponding to the mode number 8 is ctx2, ctx2 may be selected as the context model of the encoding target unit.
Although the above-described exemplary embodiment describes the case in which the context model is selected by using the left neighboring cell a and the upper neighboring cell B, the method for selecting the context model is not limited to this exemplary embodiment. The mode number information used to select the context mode may be derived through various methods using an available unit among the reconstructed neighboring units.
Fig. 10 is a table showing an exemplary embodiment of a method for selecting a VLC table according to a mode number of a neighbor prediction mode.
Reference numeral 1010 of fig. 10 is a table showing an example of a mode number assigned to the neighbor prediction mode. Reference numeral 1010 of fig. 10 shows an embodiment of a case in which the number of intra prediction modes included in the reconstructed neighbor unit is 34.
As described above, the mode number allocated to the intra prediction mode may be determined according to the occurrence probability of the intra prediction mode. In this case, a low pattern number may be assigned to a prediction pattern having a high occurrence probability. For example, in the table of reference numeral 1010 of fig. 10, the occurrence probability of the VER prediction mode may be highest. Therefore, the mode number of the neighbor prediction mode may also indicate the mode order of the neighbor prediction mode.
Reference numeral 1020 of fig. 10 shows a table indicating an example of VLC table categories according to the mode number of the neighbor prediction mode. At reference numeral 1020 of fig. 10, a VLCN (N is 1, 2, 3, or 4) may represent a VLC table applied to a syntax element of the encoding target unit. Referring to reference numeral 1020 of fig. 10, the encoder may select one of four different VLC tables by using a mode number of the neighbor prediction mode.
For example, assume that the intra prediction mode of the left neighboring unit a is 0(VER) and the intra prediction mode of the upper neighboring unit B is 6(VER + 6). Here, 0(VER) may represent a prediction mode whose mode number is 0, and 6(VER +6) may represent a prediction mode whose mode number is 6. In this case, referring to reference numeral 1020 of fig. 10, the mode number of the unit a and the mode number of the unit B may be included in the same context class. The VLC table corresponding to the category is VLC1, and therefore the encoder may select VLC1 as the VLC table for the encoding target unit.
As another example, assume that the intra prediction mode of the left neighboring unit a is 8(HOR +4) and the intra prediction mode of the upper neighboring unit B is 21 (VER-1). Here, 8(HOR +4) may represent a prediction mode whose mode number is 8, and 21 (VER-1) may represent a prediction mode whose mode number is 21. Referring to 1020 of fig. 10, the mode number of the unit a and the mode number of the unit B may be included in different context classes. In this case, the encoder may select the VLC table corresponding to the smaller mode number (e.g., mode number 8). The VLC table corresponding to the mode number 8 is VLC2, and therefore, the encoder may select VLC2 as the VLC table for the encoding target unit.
Although the above-described exemplary embodiment describes the case in which the context model is selected by using the left neighboring cell a and the upper neighboring cell B, the method for selecting the context model is not limited to this exemplary embodiment. The mode number information used to select the context mode may be derived through various methods using an available unit among the reconstructed neighboring units.
Fig. 11 is a table illustrating an exemplary embodiment of a method for selecting a context model by using angle difference information between neighbor prediction modes and mode number information on the neighbor prediction modes.
In fig. 11, ctxN (N is 1, 2, 3, or 4) may represent a context model applied to a syntax element of a coding target unit. Referring to fig. 11, an encoder may select one of four different context models by using an angle difference between neighboring prediction modes and a mode number of the neighboring prediction mode.
For example, assume that the intra prediction mode of the left neighboring unit a is 1(HOR) and the intra prediction mode of the upper neighboring unit B is 33(HOR + 7). Here, 1(HOR) may represent a prediction mode whose mode number is 1, and 33(HOR +7) may represent a prediction mode whose mode number is 33. In this case, the angle difference between the neighboring prediction modes may be 35. In addition, since the mode number of the unit a and the mode number of the unit B are included in different categories, the encoder may select a context model corresponding to a smaller mode number (e.g., mode number 1). Therefore, the encoder may select ctx1 as the context model for the encoding target unit.
Fig. 12 is a table showing an exemplary embodiment of a method for selecting a VLC table by using angle difference information between neighbor prediction modes and mode number information on the neighbor prediction modes.
In fig. 12, VLCN (N is 1, 2, 3 or 4) may represent a VLC table applied to a syntax element of the encoding target unit. Referring to fig. 12, the encoder may select one of four different VLC tables by using an angle difference between neighbor prediction modes and a mode number of the neighbor prediction mode.
For example, assume that the intra prediction mode of the left neighboring unit a is 0(VER) and the intra prediction mode of the upper neighboring unit B is 0(VER + 6). Here, 0(VER) may represent a prediction mode whose mode number is 0. In this case, the angle difference between the neighboring prediction modes may be 0. In addition, since the mode number of the unit a and the mode number of the unit B are included in the same category, the encoder may select a VLC table corresponding to the same category. Therefore, the encoder may select the VLC1 as the VLC table for the encoding target unit.
As another example, assume that the intra prediction mode of the left neighboring unit a is 1(HOR) and the intra prediction mode of the upper neighboring unit B is 33(HOR + 7). Here, 1(HOR) may represent a prediction mode whose mode number is 1, and 33(HOR +7) may represent a prediction mode whose mode number is 33. In this case, the angle difference between the neighboring prediction modes may be 35 instead of 0. In addition, since the mode number of the unit a and the mode number of the unit B are included in different categories, the encoder may select the VLC table corresponding to a smaller mode number (e.g., mode number 1). Therefore, the encoder may select the VLC2 as the VLC table for the encoding target unit.
Meanwhile, as described above, the encoder may derive the neighbor prediction mode information on the encoding target unit by using the reconstructed neighbor unit. Here, the angle difference between the neighbor prediction modes and/or the mode number of the neighbor prediction mode, etc. may be in the neighbor prediction mode information.
The number of reconstructed neighbor cells may be 2 or more. In this case, the encoder selects two units having the most similar encoding parameters to those of the encoding target prediction unit among the reconstructed neighboring units, which can be used to derive the neighboring prediction mode information.
In addition, the number of intra prediction modes included in the decoding target unit and the number of intra prediction modes included in the reconstructed neighbor unit may be different from each other. In this case, when deriving the neighbor prediction mode information, the encoder may also use only the intra prediction mode commonly included in the encoding target unit and the reconstructed neighbor unit.
In addition, a first syntax element related to an intra prediction mode and a predetermined second syntax element different from the first syntax element may be represented in the VLC table for entropy encoding. In this case, the VLC table may be referred to as an integrated VLC table. In this case, the encoder may encode the first syntax element and the second syntax element by using the integrated VLC table.
According to the method for encoding the above-described intra prediction mode, an encoder efficiently encodes the intra prediction mode by using information on neighboring prediction modes. Therefore, encoding can be efficiently performed according to changes in ambient conditions, and encoding efficiency can be improved.
Fig. 13 is a flowchart schematically illustrating a method for decoding an intra prediction mode according to an exemplary embodiment of the present invention.
Referring to fig. 13, the decoder may derive information on a neighbor prediction mode (S1310). Here, the angle difference between the neighbor prediction modes and/or the mode number of the neighbor prediction mode, etc. may be in the neighbor prediction mode information. The decoder may derive the neighbor prediction mode information by using the same method as the encoder.
When the neighbor prediction mode information is derived, the decoder may decode the intra prediction mode for the decoding target unit by using the derived neighbor prediction mode information (S1320).
The decoder may derive an MPM candidate for the decoding target unit in order to decode an intra prediction mode for the decoding target unit. The MPM candidates may be derived using the intra prediction mode of the reconstructed neighboring unit. The decoder may also use neighbor prediction mode information (e.g., an angle difference between neighbor prediction modes and/or a mode number of a neighbor prediction mode) when deriving the MPM candidates. The method for deriving the MPM candidates is the same as the method for deriving the MPM candidates in the encoder, and so a description thereof will be omitted. When deriving the MPM candidates, the decoder may generate an MPM list by using the derived MPM candidates.
As described above, the encoder may encode the MPM flag and transmit the encoded MPM flag to the decoder. Here, the MPM flag is a flag indicating whether an MPM candidate identical to the prediction mode of the encoding target unit exists in the MPM list. In this case, the decoder may receive and decode the MPM flag. The decoder may determine whether the MPM candidate identical to the prediction mode of the decoding target unit exists in the MPM list by using the decoded MPM flag.
When an MPM candidate identical to the prediction mode of the encoding target unit exists in the MPM list, the encoder may encode the MPM index and transmit the encoded MPM index to the decoder. Here, the MPM index is an index indicating whether the prediction mode of the encoding target unit is the same as any MPM candidate in the MPM list. In this case, the decoder may receive and decode the MPM index. The decoder may use an MPM candidate indicated by the decoded MPM index among MPM candidates in the MPM list as the intra prediction mode of the decoding target unit.
When the number of MPM candidates included in the MPM list is 1, the encoder may not encode the MPM index. In addition, even when the decoder can know the same MPM candidate as the prediction mode of the decoding target unit, the encoder may not encode the MPM index. In this case, the decoder can omit the process of receiving and decoding the MPM index.
When the same MPM candidate as the prediction mode of the encoding target unit exists in the MPM list, the encoder may encode the residual mode and transmit the encoded residual mode to the decoder. In this case, the decoder can receive and decode the remaining modes.
When encoding the intra prediction mode of the encoding target unit, the encoder may not use the reconstructed neighbor unit and/or the MPM candidate. In this case, the encoder may perform entropy encoding on the intra prediction mode of the encoding target unit, and may transmit the encoded intra prediction mode to the decoder. In this case, the decoder may receive the encoded intra prediction mode and perform entropy decoding thereon.
Meanwhile, the decoder may perform entropy decoding on the above-described MPM flag, MPM index, residual mode, and/or intra prediction mode. In this case, when entropy decoding is performed on each syntax element, the decoder may perform arithmetic coding by using only one context model, and may also use fixed-bit decoding. However, in this case, intra prediction mode information of the reconstructed neighbor unit is not used, and so decoding efficiency may be low. Therefore, a method for performing entropy decoding by using information on an intra prediction mode for reconstructing a neighboring unit (neighboring prediction mode information) may be provided.
Fig. 14 is a flowchart illustrating an exemplary embodiment of a method for performing entropy decoding using neighbor prediction mode information.
Referring to fig. 14, the decoder may select a context model and/or a VLC table for the decoding target unit by using the neighbor mode information (S1410).
In performing entropy decoding, the decoder may select and use one of the plurality of context models. In this case, the decoder may select the context model by using angle difference information between the neighbor prediction modes, and may select the context model by using mode numbers and/or mode orders of the neighbor prediction modes. In addition, the decoder may also select a context model by using the angle difference information and the mode number information.
In addition, the decoder may select and use one of the plurality of VLC tables when performing entropy decoding. In this case, the decoder may select the VLC table by using the angle difference information between the neighbor prediction modes, and may select the context model by using the mode number and/or the mode order of the neighbor prediction modes. In addition, the decoder may also select a context model by using the angle difference information and the mode number information.
The decoder may select a context model and/or a VLC table for the decoding target unit through the same method as the encoder. Detailed exemplary embodiments of the method for selecting the context model and the VLC table are described above, and thus detailed descriptions thereof will be omitted.
The decoder may perform entropy decoding on the intra prediction mode of the decoding target unit by using the selected context model and/or VLC table (S1420). In this case, as described above, the syntax elements for performing entropy decoding may include an MPM flag, an MPM index, a residual mode, and/or an intra mode, etc.
According to the method for decoding the above-described intra prediction mode, a decoder can efficiently decode the intra prediction mode by using information on the neighbor prediction mode. Therefore, decoding can be efficiently performed according to changes in ambient conditions, and decoding efficiency can be improved.
In the above-described exemplary systems, although the methods have been described as a series of steps or blocks based on flowcharts, the present invention is not limited to the order of steps, and any steps may be generated in a different order or simultaneously from other steps described above. Further, it will be understood by those skilled in the art that the steps shown in the flow chart are non-exclusive and therefore include other steps or delete one or more steps in the flow chart without affecting the scope of the present invention.
The above-described embodiments include examples of various aspects. While not all possible combinations of the various aspects shown are described, those skilled in the art will appreciate that other combinations may be made. Accordingly, the invention is to be construed as including all such other alternatives, modifications and variations that fall within the scope of the following claims.
Claims (4)
1. A video decoding apparatus, comprising:
an entropy decoding module to perform entropy decoding on the input bitstream to derive quantized transform coefficients associated with a target decoding unit;
an inverse quantization module for performing inverse quantization on the quantized transform coefficients to derive transform coefficients;
a prediction module for deriving neighbor prediction mode information from a left neighbor prediction mode and an upper neighbor prediction mode, deriving an intra prediction mode for a target decoding unit by using the derived neighbor prediction mode information, and performing intra prediction on the target decoding unit based on the derived intra prediction mode; and
an adder for adding a residual block generated based on the transform coefficient and a predicted block generated by intra prediction to generate a reconstructed block,
wherein the left neighboring prediction mode is an intra prediction mode of a left neighboring unit adjacent to the left of the target decoding unit, and the upper neighboring prediction mode is an intra prediction mode of an upper neighboring unit adjacent to the upper of the target decoding unit, an
The neighbor prediction mode information includes a mode number of the left neighbor prediction mode and a mode number of the upper neighbor prediction mode,
wherein the prediction module receives and decodes a Most Probable Mode (MPM) flag and an MPM index for the target decoding unit, determines MPM candidates for the target decoding unit by using the neighbor prediction mode information, generates an MPM list by using the determined MPM candidates, and derives an intra prediction mode of the target decoding unit by using the decoded MPM index and the generated MPM list, and the MPM index is an index indicating a same candidate as the intra prediction mode of the target decoding unit among the MPM candidates included in the MPM list,
wherein the prediction module determines the left neighbor prediction mode and the upper neighbor prediction mode as the MPM candidates, an
Wherein the prediction module determines a predetermined intra prediction mode as an additional MPM candidate when the left neighbor prediction mode and the upper neighbor prediction mode are the same.
2. The video decoding apparatus of claim 1, wherein the predetermined intra prediction mode is a DC mode or a planar mode.
3. The video decoding apparatus of claim 1, wherein the prediction module determines the DC mode as an additional MPM candidate when the left neighboring unit or the upper neighboring unit is unavailable.
4. The video decoding apparatus of claim 1, wherein the MPM list includes three MPM candidates.
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| KR10-2010-0131086 | 2010-12-21 | ||
| KR10-2011-0016610 | 2011-02-24 | ||
| KR10-2011-0046785 | 2011-05-18 | ||
| KR10-2011-0139469 | 2011-12-21 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1243258A1 true HK1243258A1 (en) | 2018-07-06 |
| HK1243258B HK1243258B (en) | 2021-01-29 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12382025B2 (en) | Intra prediction mode encoding/decoding method and apparatus for same | |
| HK1243258A1 (en) | Video decoding apparatus | |
| HK40003647A (en) | Intra prediction mode encoding/decoding method and appartus for same | |
| HK1243262B (en) | Video decoding apparatus and video coding apparatus | |
| HK1243263B (en) | Video decoding apparatus and video encoding apparatus | |
| HK1243261B (en) | Video decoding apparatus, video encoding apparatus, and computer-readable recording medium | |
| HK1243258B (en) | Video decoding apparatus |