Image coding apparatus, image coding method and program, image decoding apparatus, and image decoding method and program

An image coding method according to one aspect includes dividing an input image into processing target block(s), determining a mode of an intra-picture prediction of the processing target block in units of the divided processing target block(s), holding the prediction mode into a holding unit, estimating the intra prediction mode of the processing target block, comparing the result of the prediction mode determination and the result of the prediction mode estimation to determine whether they match each other, coding the result of the comparison, and further, when the result of the comparison indicates a mismatch, coding the result of the prediction mode determination. An intra prediction mode of one or more predetermined processing units surrounding the processing target block from the holding unit is acquired and compared, and the coding is controlled based on the result of the mode comparison.

TECHNICAL FIELD

The present invention relates to an image coding apparatus, an image coding method and a program, an image decoding apparatus, and an image decoding method and a program, and in particular, to an intra-picture prediction coding method in an image.

BACKGROUND ART

There is known a method for recording a moving image while compressing it such as H.264/Moving Picture Experts Group-4 Advanced Video Coding (MPEG-4 AVC) (hereinafter referred to as “H.264”) (International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) 14496-10: 2004, “Information technology—Coding of audio-visual objects—Part 10: Advanced Video Coding”). The H.264 coding method is widely used in, for example, one-segment digital terrestrial broadcasting. The H.264 coding method is characterized in that this method performs an integer transform per unit of four-by-four pixels and prepares a plurality of types of intra predictions (intra-picture predictions), in addition to the conventional coding method. Other characteristics of the H.264 coding method are that this method uses a loop filter, allows reference to a plurality of previous and subsequent frames, and provides motion compensation with use of seven types of sub blocks. Further, as is the case with the MPEG-4 method, the H.264 coding method can perform motion compensation with quarter pixel precision. Further, the H.264 coding method is characterized by use of, for example, universal variable length coding and context-adaptive variable length coding as entropy coding (“H.264: Advanced video coding for generic audiovisual services” published by International Telecommunication Union Telecommunication Standardization Sector (ITU-T))

The H.264 method has a plurality of modes for an intra prediction, and therefore bits should be assigned and coded for intra prediction mode information for identification of a selected mode as side information. For example, an intra prediction predicts a block from the surrounding blocks for each block constituted by four-by-four pixels in a macro block, and further estimates the prediction mode of the pixel block from the prediction modes of the surrounding blocks. Then, one bit is assigned to a flag (prev_intra4×4_pred_mode_flag) indicating a match/mismatch between the predicted mode and the estimated mode. Subsequently, in a case where the predicted mode does not match the estimated mode, three bits are assigned to a flag (rem_intra4×4_pred_mode) indicating the predicted mode for each block.

SUMMARY OF INVENTION

The present invention is directed to realizing highly efficient coding/decoding of intra prediction mode information by reducing a coded amount required for identification of a mode.

According to an aspect of the present invention, an image coding apparatus includes a division unit configured to divide an input image into a processing target block, a prediction mode determination unit configured, in units of the processing target block divided by the division unit, to determine a mode of an intra-picture prediction of the processing target block, a holding unit configured to hold the intra prediction mode determined by the prediction mode determination unit, a prediction mode estimation unit configured to estimate the intra prediction mode of the processing target block based on an intra prediction mode of a surrounding block around the processing target block, which are held by the holding unit, a determination unit configured to determine whether the result of the prediction mode determination unit and the result of the prediction mode estimation unit match each other, a coding unit configured to code the result of the determination unit, and further, when the result of the determination unit indicates a mismatch, to code the result of the prediction mode determination unit, a mode comparison unit configured to acquire an intra prediction mode of one or more predetermined processing unit surrounding the processing target block from the holding unit to compare the modes, and a control unit configured to control the coding unit based on the result of the mode comparison unit.

According to the aspect of the present invention, it is possible to realize highly efficient coding/decoding of intra prediction mode information by referring to the intra prediction modes of the inside or vicinity of a processing unit and omitting unnecessary coding to reduce a coded amount required for mode identification.

DESCRIPTION OF EMBODIMENTS

The configurations of exemplary embodiments which will be described below are merely examples, and the present invention is not limited to the illustrated configurations.

A first exemplary embodiment will be described. In the following, the present exemplary embodiment will be described with reference to the drawings.FIG. 1is a block diagram illustrating an image coding apparatus to which the present invention is applied.

Referring toFIG. 1, a block division unit101divides an input video image into a plurality of blocks. A mode determination/coding unit102determines, for each of the divided blocks, a size of a processing unit, which will be a unit of prediction and is the same as or smaller than the block in size. Further, the mode determination/coding unit102determines an intra prediction mode (intra-picture prediction mode) of each processing unit and then codes the intra prediction mode. A prediction unit103performs an intra prediction by processing unit based on the determined intra prediction mode. A transform/quantization unit104transforms and quantizes the difference between the input video image and the prediction. An entropy coding unit105codes the result of the transform/quantization unit104.

In the following, the image coding operation of the image coding apparatus will be described. For convenience of description, the present exemplary embodiment will be described focusing on only intra prediction coding processing, but this does not limit the present exemplary embodiment. The present exemplary embodiment can be also applied to inter prediction coding processing.

Input image data corresponding to one frame is input into the block division unit101to be divided in units of block, and then is output to the mode determination/coding unit102. The mode determination/coding unit102first determines, for the image data divided in units of block, whether a size of a processing unit, which will be a unit of prediction, should be set to smaller than or the same as the block in size, by dividing the block.

Subsequently, the mode determination/coding unit102determines an intra prediction mode for the determined processing unit, and codes the determined intra prediction mode. The determined intra prediction mode is output into the prediction unit103, and the coded data is output to the entropy coding unit105. The intra prediction mode determined by the mode determination/coding unit102is input into the prediction unit103, which performs a prediction by determined processing unit. The difference between the input image and the prediction is input into the transform/quantization unit104, and is transformed and quantized therein. The quantized coefficient data is transmitted to the entropy coding unit105to be entropy-coded therein, and after that, is output together with the coded data of the intra prediction mode.

FIG. 2is a detailed block diagram illustrating the mode determination/coding unit102to which the present invention is applied. A division/mode determination unit201receives image data divided in units of block as an input, and determines an optimum size of a processing unit, which will be a unit of prediction. Further, the division/mode determination unit201determines an optimum intra prediction mode for each processing unit. Generally, the method for determining an optimum intra prediction mode may be calculating a prediction value according to each intra prediction mode and determining the intra prediction mode from the mode that generates a prediction value closest to an input pixel. However, any method can be used to determine an optimum intra prediction mode.

An intra prediction mode holding unit202holds the information of the intra prediction mode determined by the division/mode determination unit201. An intra prediction mode estimation unit203acquires intra prediction modes of processing units surrounding the current target processing unit from the intra prediction mode holding unit202, and estimates the intra prediction mode of the current target processing unit. A estimation determination unit204compares the result of the intra prediction mode determination unit201or the result of a division/mode redetermination unit207, which will be described later, with the result of the intra prediction mode estimation unit203to determine whether they match each other.

A coding unit205codes the result of the estimation determination unit204, and further codes the result of the division/mode determination unit201in a case where the result of the estimation determination unit204indicates a mismatch. An intra-block mode comparison unit206acquires intra prediction modes of predetermined surrounding processing units belonging to each block unit divided by the block division unit101from the intra prediction mode holding unit202, and compares the intra prediction modes of the surrounding processing units with one another. A division/mode redetermination unit207re-determines the size of the processing unit and the intra prediction mode in the block based on the result of the intra-block mode comparison unit206.

FIG. 3illustrates an example of an arrangement of processing units for use in a estimation of an intra prediction mode. This example will be described assuming that the coding method is the H.264 method, but this does not limit the present invention. According to the H.264 method, if X represents a current target processing unit to be coded, the intra prediction mode of the processing unit X is estimated from the intra prediction modes of a processing unit B located immediately above the processing unit X, and a processing unit E located on the left of the processing unit X. If the processing units B and E have the same prediction mode (mode0) that performs a prediction from an upper pixel, the intra prediction mode of the current target processing unit X is estimated as the same prediction mode that performs a prediction from an upper pixel, i.e., the mode0.

Returning toFIG. 2, the estimation determination unit204receives, as inputs, the output result of the division/mode determination unit201or the division/mode redetermination unit207which will be described later, and the output result of the intra prediction mode estimation unit203to compare them, and then outputs the information indicating whether they match each other to the coding unit205. The estimation determination unit204compares the output result of the division/mode redetermination unit207and the result of the intra prediction mode estimation unit203, in a case where the output result of the division/mode redetermination unit207, which will be described later, indicates that the block is re-divided and the resetting of the intra prediction mode is performed.

The intra-block mode comparison unit206reads the results of the intra prediction modes of the surrounding processing units belonging to the same block from the intra prediction mode holding unit202, and compares them. For example, referring toFIG. 3, if the processing units A, B, E, and X belong to the same block, the intra-block mode comparison unit206compares the intra prediction modes of the processing unit A located on the upper left of the processing unit X, the processing unit B located immediately above the processing unit X, and the processing unit E located on the left of the processing unit X, when coding of the processing unit X is performed. The intra-block mode comparison unit206generates surrounding mode matching information indicating that they match one another if these surrounding processing units are the same intra prediction mode, or indicating that they do not match one another if there is even one different intra prediction mode among them. The generated surrounding mode matching information is output to the coding unit205.

One example of the processing order in which processing units in a block are processed will be described now. For example, referring toFIG. 3, if the processing units A, B, E, and X belong to the same block, the upper left processing unit A, the upper right processing unit B, the lower left processing unit E, and the lower right processing unit X are processed in this order. More specifically, the coding unit205operates according to the following control method. The coding unit205performs control so as to code the matching information, which is the output of the estimation determination unit204, if the current target processing unit is not the final processing unit in one block unit (the processing units A, B, and E inFIG. 3). Further, in addition to this control, the coding unit205performs control so as to code the index indicating the intra prediction mode, which is the output of the division/mode determination unit201, if the matching information indicates a mismatch. This coding is omitted, if the matching information indicates a match.

On the other hand, if the current target processing unit is the final processing unit in one block unit, and the surrounding mode matching information, which is the output of the intra-block mode comparison unit206, indicates a mismatch, the coding unit205processes this processing unit in the same manner as the above-described processing for a processing unit that is not a final processing unit. In other words, the coding unit205performs control to code the matching information, which is the output of the estimation determination unit204. Further, in addition to this coding, the coding unit205performs control to code the index indicating the intra prediction mode, which is the output of the division/mode determination unit201, if the matching information indicates a mismatch. This coding is omitted, if the matching information indicates a match.

On the other hand, if the current target processing unit is the final processing unit in one block unit, and the surrounding mode matching information, which is the output of the intra-block mode comparison unit206, indicates a match, the coding unit205performs control in the following manner. The coding unit205performs control to code the index indicating the intra prediction mode, which is the output of the division/mode determination unit201, without coding the matching information, which is the output of the estimation determination unit204.

The coding unit205codes the matching information as a prediction mode flag, and codes information required for identification of the intra prediction mode as a prediction mode index if necessary.

On the other hand, the division/mode redetermination unit207receives an input of intra-block mode matching information, which is the output of the intra-block mode comparison unit206, and re-determines the division of processing units in the block and the intra prediction mode. More specifically, the division/mode redetermination unit207makes a redetermination so that an intra prediction is performed based on the same size as the size of the block without a division of the block to which the current target processing unit belongs, if the current target processing unit is the final processing unit in one block, and the intra-block mode matching information indicates a match. Further, the division/mode redetermination unit207performs resetting of the division of processing units in the block and the intra prediction mode to use the intra prediction that matches in the block. The information of the intra prediction mode, in which resetting is performed, is output to the intra prediction mode holding unit202, the estimation determination unit204, and the coding unit205. In the following, the flow of the coding processing will be described with reference to the drawings.

FIG. 4is a flowchart illustrating the image coding processing performed by the image coding apparatus according to the first exemplary embodiment. In step S401, the block division unit101divides an input image in frame unit into block units. In step S402, the mode determination/coding unit102determines, for each of the divided blocks, a size of a processing unit, which will be a unit of prediction and is the same as or smaller than the block in size. Further, the mode determination/coding unit102determines and codes the intra prediction mode of each processing unit.

In step S403, the prediction unit103performs a prediction based on the intra prediction mode determined in step S402. In step S404, the transform/quantization unit104calculates the difference between the input image and the prediction, and transforms and quantizes the result thereof. Further, in step S405, the entropy coding unit105applies entropy coding to the quantized coefficient. In step S406, the image coding apparatus determines whether coding is completed for all of the blocks in the frame. If the coding is completed for all of the blocks in the frame (COMPLETED in step S406), all operations are stopped and the processing is ended. If the coding is not completed for all of the blocks in the frame (NOT COMPLETED in step S406), the processing proceeds to step S401again with the next block set as the next processing target.

FIG. 5is a flowchart illustrating the detailed processing of step S402according to the first exemplary embodiment. In step S501, the mode determination/coding unit102determines, for a block that is a current coding target, an optimum size of a processing unit, which will be a unit prediction, and an optimum intra prediction mode of each processing unit. The intra prediction mode is determined from, for example, the characteristics of surrounding pixel values or pixel values in the block to be coded.

In step S502, the mode determination/coding unit102determines whether the current target block to be coded can be divided into a plurality of processing units as a result of step S501. If the division is possible (YES in step S502), the processing proceeds to step S503. If the division is impossible (NO in step S502), the processing proceeds to step S504.

In step S503, the mode determination/coding unit102estimates the intra prediction mode of the current target processing unit to be coded from the intra prediction modes of the surrounding processing units.

In step S505, the mode determination/coding unit102determines whether the current target processing unit to be coded is the final processing unit in the block. If this processing unit is the final processing unit (FINAL in step S505), the processing proceeds to step S506. If this processing unit is not the final processing unit (NOT FINAL in step S505), the processing proceeds to step S507.

In step S506, the mode determination/coding unit102determines whether all of the previously coded processing units in the block have the same intra prediction mode. If their intra prediction modes match one another (MATCH in step S506), the processing proceeds to step S508. If there is a different intra prediction mode among them (MISMATCH in step S506), the processing proceeds to step S507.

In step S507, the mode determination/coding unit102determines whether the intra prediction mode determined in step S501matches the intra prediction mode estimated in step S503. If they match each other (MATCH in step S507), the processing proceeds to step S509. If they do not match each other (MISMATCH in step S507), the processing proceeds to step S510.

In step S508, the mode determination/coding unit102determines whether the intra prediction mode determined in step S501matches the intra prediction mode estimated in step S503, in the same manner as step S507. If they match each other (MATCH in step S508), the processing proceeds to step S511. If they do not match each other (MISMATCH in step S508), the processing proceeds to step S512.

In step S509, the mode determination/coding unit102codes the prediction mode flag indicating a match. In step S510, the mode determination/coding unit102codes the prediction mode flag indicating a mismatch. After that, the processing proceeds to step S512.

In step S512, the mode determination/coding unit102codes the index for identification of the intra prediction mode, and then the processing proceeds to step S513. On the other hand, in step S509, after the mode determination/coding unit102codes the prediction mode flag indicating a match, the processing proceeds to step S513.

In step S513, the mode determination/coding unit102determines whether coding is completed for all of the processing units in the block. If the coding is completed for all of the processing units in the block (COMPLETED in step S513), all operations are stopped and the processing is ended. If the coding is not completed for all of the processing units in the block (NOT COMPLETED in step S513), the processing proceeds to step S503again with the next processing unit in the block set as the next target.

In step S511, the mode determination/coding unit102resets the size of the processing unit to the same size as the size of the block, and resets the intra prediction mode to the intra prediction modes of the processing units in the block, which match one another in step S506. Then, the processing proceeds to step S504.

On the other hand, in a case where the mode determination/coding unit102determines that the current target block to be coded cannot be divided into a plurality of processing units in step S502(NO in step S502), the mode determination/coding unit102performs the following processing. In step S504, the mode determination/coding unit102estimates the intra prediction mode of the processing unit to be coded from the intra prediction modes of the surrounding processing units as the target processing unit which are the same as the block to be coded in size.

In step S514, the mode determination/coding unit102determines whether the intra prediction mode determined in step S501matches the intra prediction mode estimated in step S504. If they match each other (MATCH in step S514), the processing proceeds to step S515. If they do not match each other (MISMATCH in step S514), the processing proceeds to step S516.

In step S515, the mode determination/coding unit102codes the prediction mode flag indicating a match, and after that, the processing is ended. On the other hand, in step S516, the mode determination/coding unit102codes the prediction mode flag indicating a mismatch. Then, in step S517, the mode determination/coding unit102codes the index for identification of the intra prediction mode. After that, the processing is ended.

FIG. 13Aillustrates an example of a coded data arrangement encoded according to a conventional coding method such as the H.264 method. On the other hand,FIG. 13Billustrates a corresponding example of a coded data arrangement encoded according to the present invention. In the example, intra prediction modes of all the processing units in a block are assumed to be the same, so that the number of bits corresponding to the prediction mode flags can be reduced except for the prediction mode flag of the first processing unit in the block.

Further,FIG. 13Cillustrates another example of a coded data arrangement encoded according to a conventional coding method such as the H.264 method. On the other hand,FIG. 13Dillustrates a corresponding example of a coded data arrangement encoded according to the present invention. In the example, it is assumed that intra prediction modes of all the processing units except for the final processing unit in a block are the same, but only the final processing unit has a different intra prediction mode. Accordingly, the number of bits corresponding to the prediction mode flag of the final processing unit in the block can be reduced.

In the present exemplary embodiment, the intra prediction mode estimation unit203estimates the intra prediction mode of a processing unit to be coded from adjacent processing units, but this does not limit the present exemplary embodiment. For example, as illustrated inFIG. 3, when the processing unit X is the coding target, the intra prediction mode estimation unit203may estimate the intra prediction mode of the processing unit X by also taking into consideration the intra prediction mode of the processing unit C located on the right of the processing unit above the processing unit X, and even the intra prediction modes of processing units that are not adjacent to but surrounding the processing unit X, such as the processing unit D located on the left of the processing unit E.

The present exemplary embodiment has been described based on an example of a frame using only an intra prediction, but it is obvious that the present exemplary embodiment can be also applied to a frame capable of using an inter prediction.

Further, in the present exemplary embodiment, block sizes have been described based on two types, i.e., the type that a block is divided and the type that a block is not divided. However, this does not limit the present exemplary embodiment. The processing unit may be further divided. Further, the shape of a block is not limited to the described and illustrated one, and the present exemplary embodiment keeps its essence unchanged, even if a block has a rectangular shape, or there is an overlap portion between blocks.

A second exemplary embodiment will be described. The second exemplary embodiment will be described as a modification of the first exemplary embodiment. A difference between the first exemplary embodiment and the second exemplary embodiment is that, in the second exemplary embodiment, the intra prediction mode estimation unit203outputs the estimated intra prediction mode to not only the estimation determination unit204but also the intra-block mode comparison unit206(not illustrated). In the following, the coding operation of the mode determination/coding unit102will be described. Referring toFIG. 2, the operations of the division/mode determination unit201and the intra prediction mode holding unit202are the same as those in the first exemplary embodiment, and therefore the descriptions thereof will be omitted here. The intra prediction mode estimation unit203inputs the information of the intra prediction modes of predetermined surrounding processing units around the current target processing unit to estimate the intra prediction mode of the current target processing unit, from the intra prediction mode holding unit202. The intra prediction mode estimation unit203estimates the intra prediction mode of the current target processing unit from the intra prediction modes of the surrounding processing units, and outputs the result thereof to the estimation determination unit204and the intra-block mode comparison unit206.

The intra-block mode comparison unit206first inputs the intra prediction modes of predetermined surrounding processing units around the current target processing unit from the intra prediction mode holding unit202. In addition to this input, the intra-block mode comparison unit206also inputs the estimated intra prediction mode of the current target processing unit, which is the result of the intra prediction mode estimation unit203. The intra-block mode comparison unit206outputs estimated/surrounding mode matching information, which is information indicating whether the input intra prediction modes match one another, to the coding unit205. In other words, the estimated/surrounding mode matching information indicates a match when the intra prediction modes match one another among the predetermined surrounding processing units around the current target processing unit as is the case with the first exemplary embodiment, and further, the estimated intra prediction mode of the current target processing unit also matches them. The matching information indicates a mismatch when any of them, even only one of them has a different intra prediction mode.

Unlike the first exemplary embodiment, the coding unit205receives the estimated/surrounding mode matching information (match/mismatch) instead of the surrounding mode matching information (match/mismatch) in the first exemplary embodiment, but the operation thereof is the same as that of the first exemplary embodiment. Further, the intra-block mode comparison unit206reads out the intra prediction modes of the processing units belonging to the same block from the intra prediction mode holding unit202, generates the intra-block mode matching information, and outputs it to the division/mode redetermination unit207. The processing of step S402according to the second exemplary embodiment will be more specifically described with reference to the drawings.FIG. 6is a flowchart illustrating the detailed processing of step S402according to the second exemplary embodiment.

The steps except for steps S506and S601are the same as those in the first exemplary embodiment, and therefore the descriptions thereof will be omitted here. In step S506, the mode determination/coding unit102determines whether the intra prediction modes match one another among the already coded processing units in the block. If they match one another (MATCH in step S506), the processing proceeds to step S601. If they do not match one another (MISMATCH in step S506), the processing proceeds to step S507.

In step S601, the mode determination/coding unit102determines whether the intra prediction modes of the already coded processing units in the block, which match one another, further match the intra prediction mode of the processing unit estimated in step S503. If they match each other (MATCH in step S601), the processing proceeds to step S508. If they do not match each other (MISMATCH in step S601), the processing proceeds to step S507.

The above-described configuration and operation can reduce the amount of bits required for identification of an intra prediction mode, as is the case with the first exemplary embodiment. Further, it is possible to solve a problem arising when a block is divided into a small number of processing units, and the intra prediction mode of the final processing unit is estimated by referring to the intra prediction mode of a processing unit outside the corresponding block. More specifically, for example, when a block is divided into processing units as illustrated inFIG. 14, i.e., a block defined by the thick line is constituted by rectangular processing units B and X, the intra-block mode matching information should always indicate a match, since this information is generated by referring to only the processing unit B. Further, the intra prediction mode of the current target processing unit X is determined by referring to the processing unit B. On the other hand, the intra prediction mode of the current target processing unit X is estimated by referring to the intra prediction mode of the processing unit E outside the block and the intra prediction mode of the processing unit B. In this case, there is a possibility that the referred processing unit used for intra prediction mode determination may be different from that used for intra prediction mode estimation when processing unit X is the final processing unit of the block. In other words, the first exemplary embodiment cannot reduce the number of bits, despite that the intra prediction modes in the block match with each other, if there is another processing unit out of the current block used for the intra prediction mode estimation. The present exemplary embodiment can avoid this problem, thereby allowing an effective reduction in the number of bits.

It should be noted that, as is the case with the first exemplary embodiment, processing units that the intra prediction mode estimation unit203refers to are not limited to adjacent processing units, and the intra prediction mode estimation unit203may refer to the intra prediction mode of a processing unit that is not adjacent to but surrounding a target processing unit.

A third exemplary embodiment will be described.FIG. 7is a block diagram illustrating the configuration of an image decoding apparatus according to the third exemplary embodiment of the present invention. In the present exemplary embodiment, decoding of coded data generated by the first exemplary embodiment will be described. Referring toFIG. 7, a block decoding unit701decodes the information in units of block from an input stream. An intra prediction mode decoding unit702decodes the intra prediction mode of each processing unit. An entropy decoding unit703decodes the information and coefficient of each of processing units existing in each block. An inverse quantization/inverse transform unit704applies inverse quantization and inverse transform to the decoded coefficient. An image data reconstruction unit705reconstructs decoded pixel data from the result of the inverse quantization/inverse transform unit704and the result of the intra prediction mode decoding unit702.

In the following, the image decoding operation performed by the image decoding apparatus will be described. Coded data corresponding to one frame is input into the image decoding apparatus, and then data in units of block is input into the block decoding unit701one by one, which decodes the information of each block. The block decoding unit701outputs coded data of each processing unit, based on the structure of a processing unit determined by the above-described information of each block. This coded data is input into the intra prediction mode decoding unit702, which decodes the information of the intra prediction mode to output it into the pixel data reconstruction unit705. On the other hand, the rest of the coded data is output into the entropy decoding unit703. The entropy decoding unit703decodes a coefficient value to output it. The coefficient value is input into the inverse quantization/inverse transform unit704, which outputs prediction error data through the processes of inverse quantization and inverse transform. The information of the intra prediction mode and the prediction error data are input into the image data reconstruction unit705, which calculates a prediction value from the information of the intra prediction mode, and reconstructs decoded pixel data by adding the prediction value and the coefficient data to output it.

FIG. 8is a detailed block diagram of the intra prediction mode decoding unit702to which the present invention is applied. Referring toFIG. 8, an intra prediction decoding unit801decodes an intra prediction mode. A mode holding unit802holds the intra prediction mode acquired by decoding. An intra prediction mode estimation unit803estimates the intra prediction mode of a processing unit to be decoded from the intra prediction modes of predetermined surrounding processing units. An intra-block mode comparison unit804acquires the intra prediction modes of predetermined surrounding processing units from the mode holding unit802to compare them. A final processing unit determination unit805determines whether a processing unit to be decoded is the final processing unit in the block. This is automatically determined from the decoded state of the block. A decoding control unit806controls the operation of the intra prediction decoding unit801based on the results of the intra-block mode comparison unit804and the final processing unit determination unit805.

In the following, the decoding operation of the intra prediction mode decoding unit702will be described. The intra prediction decoding unit801receives coded data of a current target processing unit and the output result of the intra prediction mode estimation unit803as inputs, and decodes the intra prediction mode to output it under the control of the decoding control unit806. The mode holding unit802holds the information of the intra prediction mode which is the output of the intra prediction decoding unit801, and outputs intra prediction mode information of predetermined surrounding processing units to the intra prediction mode estimation unit803and the intra-block mode comparison unit804as necessary.

The intra prediction mode estimation unit803inputs the intra prediction modes of predetermined surrounding processing units around the current target processing unit from the mode holding unit802to estimate the intra prediction mode of the processing unit to be decoded, and outputs the intra prediction mode of the current target processing unit estimated from these intra prediction modes to the intra prediction decoding unit801.

On the other hand, the intra-block mode comparison unit804inputs the intra prediction modes of predetermined surrounding processing units around the current target processing unit from the mode holding unit802, and outputs surrounding mode matching information, which is information indicating whether these modes match one another, to the decoding control unit806. The final processing unit determination unit805determines whether the current target processing unit to be decoded is the final processing unit in the block, and outputs the result of this determination to the decoding control unit806as final processing unit information.

The decoding control unit806inputs the final processing unit information, which is the output of the final processing unit determination unit805, and the surrounding mode matching information, which is the output of the intra-block mode comparison unit804, and controls the operation of the intra prediction decoding unit801.

First, if the final processing unit information indicates that the current target processing unit to be decoded is not the final processing unit in the block, or if the surrounding mode matching information indicates a mismatch, the decoding control unit806controls the intra prediction decoding unit801in the following manner. In such a case, first, the intra prediction decoding unit801decodes the prediction mode flag, which is the information indicating whether the intra prediction mode of the current target processing unit to be decoded matches the intra prediction mode estimated by the intra prediction mode estimation unit803, to acquire the matching information.

If the matching information indicates a match, the intra prediction decoding unit801outputs the estimated intra prediction mode, which is the output of the intra prediction mode estimation unit803, as the intra prediction mode of the current target processing unit. On the other hand, if the matching information indicates a mismatch, the intra prediction decoding unit801is controlled to further decode the index for identification of the intra prediction mode to calculate the intra prediction mode.

On the other hand, if the final processing unit information indicates that the current target processing unit is the final processing unit in the block, and if the surrounding mode matching information indicates a match, the decoding control unit806controls the intra prediction decoding unit801in the following manner. The intra prediction decoding unit801can assume that the prediction mode flag indicates a mismatch between the intra prediction mode of the current target processing unit and the estimated intra prediction mode, which is the output of the intra prediction mode estimation unit803. Therefore, the intra prediction decoding unit801is controlled to subsequently decode the index for identification of the intra prediction mode to calculate the intra prediction mode.

In the following, the flow of the decoding processing will be described with reference to the drawings.FIG. 9is a flowchart illustrating the image decoding processing performed by the image decoding apparatus according to the third exemplary embodiment.

First, in step S901, the block decoding unit701decodes the information in units of block from input coded data. In step S902, the intra prediction mode decoding unit702decodes the intra prediction mode of each processing unit existing in each block as a unit of prediction. In step S903, the entropy decoding unit703applies entropy decoding to the information and coefficient in units of processing unit.

In step S904, the inverse quantization/inverse transform unit704applies inverse quantization and inverse transform to the decoded prediction error. In step S905, the image data reconstruction unit705calculates a prediction value from the result of step S902, and calculates a reconstructed pixel by adding the prediction value and the coefficient value which is the result of step S904. In step S906, the image decoding apparatus determines whether decoding is completed for all of the processing units in the block. If decoding is completed for all of the processing units in the block (COMPLETED in step S906), the processing proceeds to step S907. If decoding is not completed for all of the processing units in the block (NOT COMPLETED in step S906), the processing proceeds to step S902again with the next processing unit in the block set as the next decoding target. In step S907, the image decoding apparatus determines whether decoding is completed for all of the blocks in the frame. If decoding is completed for all of the blocks in the frame (COMPLETED in step S907), all operations are stopped and the processing is ended. If decoding is not completed for all of the blocks in the frame (NOT COMPLETED in step S907), the processing proceeds to step S901again with the next block in the frame set as the next decoding target.

FIG. 10is a flowchart illustrating the detailed processing of step S902according to the third exemplary embodiment. In step S1001, the intra prediction mode decoding unit702estimates the intra prediction mode of a processing unit to be decoded from the intra prediction modes of the surrounding processing units.

In step S1002, the intra prediction mode decoding unit702determines whether the processing unit to be decoded is the final processing unit in the block. If the processing unit to be decoded is the final processing unit (FINAL in step S1002), the processing proceeds to step S1003. If the processing unit to be decoded is not the final processing unit (NOT FINAL in step S1002), the processing proceeds to step S1004.

In step S1003, the intra prediction mode decoding unit702determines whether the intra prediction modes match one another among all of predetermined processing units in the block which have been already decoded. If the intra prediction modes match one another among them (MATCH in step S1003), the processing proceeds to step S1006. If the intra prediction modes do not match one another among them (MISMATCH in step S1003), the processing proceeds to step S1004.

In step S1004, the intra prediction mode decoding unit702decodes the prediction mode flag which indicates whether the intra prediction mode of the processing unit to be decoded matches the intra prediction mode estimated in step S1001.

In step S1005, the intra prediction mode decoding unit702determines whether the prediction mode flag indicates a match. If the prediction mode flag indicates a match (MATCH in step S1005), the processing proceeds to step S1008. If the prediction mode flag indicates a mismatch (MISMATCH in step S1005), the processing proceeds to step S1006.

In step S1006, the intra prediction mode decoding unit702decodes the prediction mode index for identification of the intra prediction mode. On the other hand, in step S1008, the intra prediction mode decoding unit702sets the prediction mode estimated in step S1001as the intra prediction mode of the processing unit to be decoded. In step S1007, the intra prediction mode decoding unit702determines the intra prediction mode of the processing unit to be decoded based on the result of step S1006or step S1008, and after that, the processing of decoding the intra prediction mode is ended.

The above-described configuration and operation can decode coded data having a reduced amount of bits required for identification of the intra prediction mode, which is generated according to the first exemplary embodiment.

The present exemplary embodiment has been described based on an example of decoding of a frame using only an intra prediction, but it is obvious that the present exemplary embodiment can be also applied to decoding of a frame capable of using an inter prediction as well.

A fourth exemplary embodiment will be described. The present exemplary embodiment will be described as an example decoding coded data generated according to the second exemplary embodiment, with reference toFIG. 11. A difference between the third exemplary embodiment and the fourth exemplary embodiment is that, in the fourth exemplary embodiment, the intra prediction mode estimation unit803outputs an estimated intra prediction mode to not only the intra prediction decoding unit801but also the intra-block mode comparison unit804(not illustrated). In the following, the decoding operation of the intra prediction mode decoding unit702according to the fourth exemplary embodiment will be described with reference toFIG. 8. The operations of the intra prediction decoding unit801and the mode holding unit802are the same as those in the third exemplary embodiment, and therefore the descriptions thereof will be omitted here.

The intra prediction mode estimation unit803inputs the intra prediction modes of predetermined surrounding processing units around the current target processing unit from the mode holding unit802to estimate the intra prediction mode of the current target processing unit to be decoded. Further, the intra prediction mode estimation unit803estimates the intra prediction mode of the current target processing unit from the input intra prediction modes of the predetermined surrounding processing units, and outputs the estimated intra prediction mode to the intra prediction decoding unit801and the intra-block mode comparison unit804.

The intra-block mode comparison unit804inputs the intra prediction modes of predetermined surrounding processing units around the current target processing unit to be decoded from the mode holding unit802. At the same time, the intra-block mode comparison unit804also inputs the intra prediction mode of the current target processing unit estimated by the intra prediction mode estimation unit803, and outputs estimated/surrounding mode matching information, which indicates the estimated intra prediction mode and the intra prediction modes of the predetermined surrounding processing units match each other, to the decoding control unit806. The operations of the decoding control unit806and the final processing unit determination unit805are the same as those in the third exemplary embodiment, and therefore the descriptions thereof will be omitted here.

In the following, the flow of the decoding processing will be described with reference to the drawings. The flowchart illustrating the image decoding processing performed by the image decoding apparatus according to the fourth exemplary embodiment is the same as that of the third exemplary embodiment, and therefore the description thereof will be omitted here.FIG. 11is a flowchart illustrating the detailed processing of step S902according to the present exemplary embodiment.

The steps other than steps S1003and S1101are the same as those in the third exemplary embodiment, and therefore the descriptions thereof will be omitted here.

In step S1003, the intra prediction mode decoding unit702determines whether the intra prediction modes match one another among all of the predetermined surrounding processing units in the block which have been already decoded. If the intra prediction modes match one another among them (MATCH in step S1003), the processing proceeds to step S1101. If the intra prediction modes do not match one another among them (MISMATCH in step S1003), the processing proceeds to step S1004.

In step S1101, the intra prediction mode decoding unit702determines whether the intra prediction modes of the decoded processing units in the block match the intra prediction mode of the processing unit estimated in step S1001. If they match each other (MATCH in step S1101), the processing proceeds to step S1006. If they do not match each other (MISMATCH in step S1101), the processing proceeds to step S1004. The above-described configuration and operation can decode coded data having a reduced amount of bits required for identification of an intra prediction mode, which is generated according to the second exemplary embodiment. In other words, during decoding of a final processing unit, it is possible to correctly decode even coded data generated by using the intra prediction mode of a processing unit outside the block for an intra prediction.

A fifth exemplary embodiment will be described. The above-described exemplary embodiments have been described, assuming that the respective operational units illustrated inFIGS. 1,2,7, and8are configured as hardware components. However, the processes performed by the respective operational units illustrated inFIGS. 1,2,7, and8may be realized by means of a computer program.

FIG. 12is a block diagram illustrating an exemplary hardware configuration of a computer applicable to the image display apparatuses according to the above-described exemplary embodiments.

A central processing unit (CPU)1201controls an entire computer by using a computer program and data stored in a random access memory (RAM)1202and a read only memory (ROM)1203, and also executes the respective processes that have been described above as processes to be performed by the image processing apparatuses according to the above-described exemplary embodiments. In other words, the CPU1201functions as the respective operational units illustrated inFIGS. 1,2,7, and8.

The RAM1202has an area for temporarily storing, for example, a computer program and data loaded from an external storage apparatus1206, and data acquired from the outside via an interface (I/F)1207. Further, the RAM1202has a work area that the CPU1201uses during execution of various kinds of processes. In other words, for example, the RAM1202can be allocated as a frame memory, or provide other various kinds of areas as necessary.

The ROM1203stores, for example, the setting data of the present computer and a boot program. An operation unit1204includes a keyboard and a mouse, and can input various kinds of instructions to the CPU1201by a user's operation of the present computer. A display unit1205displays the result of processing performed by the CPU1201. Further, the display unit1205includes, for example, a hold-type display apparatus such as a liquid crystal display or an impulse-type display apparatus such as a field emission type display apparatus.

The external storage apparatus1206is a mass information storage apparatus represented by a hard disc drive apparatus. The external storage apparatus1206stores an operating system (OS), and a computer program to allow the CPU1201to realize the functions of the respective units illustrated inFIGS. 1,2,7, and8. Further, the external storage apparatus1206may store each image data which will be a processing target.

The computer program and data stored in the external storage apparatus1206are loaded to the RAM1202according to the control of the CPU1201as necessary, and are processed by the CPU1201. A network such as a Local Area Network (LAN) and the Internet, and another apparatus such as a projection apparatus and a display apparatus can be connected to the I/F1207. The present computer can acquire and transmit various kinds of information via the I/F1207. A bus1208connects the above-described respective units to one another.

As the operations realized by the above-described configuration, the CPU1201plays a central role in controlling the operations illustrated in the above-described flowcharts.

Other exemplary embodiment will be described. Aspects of the present invention can be also achieved by supplying a storage medium storing codes of a computer program for realizing the above-described functions to a system, and causing the system to read and execute the codes of the computer program. In this case, the codes of the computer program read out from the storage medium realize the functions of the above-described exemplary embodiments, and the storage medium storing the codes of the computer program constitutes the present invention. Further, the embodiment also includes such a case that, for example, an operating system (OS) running on a computer executes a part or all of actual processing according to the instructions of the codes of the computer program, and this execution realizes the above-described functions.

Further, the present invention may be also realized in the following manner. The computer program codes read out from the storage medium are written into a memory provided to a function expansion card inserted into a computer or a function expansion unit connected to a computer. Then, for example, a CPU provided to the function expansion card or the function expansion unit executes a part or all of actual processing based on the instructions of the computer program codes to realize the above-described functions. Such a case is also included in the present invention.

When the present invention is applied to the above-described storage medium, the computer program codes corresponding to the above-described flowcharts are stored in the storage medium.

This application claims priority from Japanese Patent Application No. 2011-004646 filed Jan. 13, 2011, which is hereby incorporated by reference herein in its entirety.