WO2011080925A1 - 画像符号化装置および方法 - Google Patents

画像符号化装置および方法 Download PDF

Info

Publication number
WO2011080925A1
WO2011080925A1 PCT/JP2010/007592 JP2010007592W WO2011080925A1 WO 2011080925 A1 WO2011080925 A1 WO 2011080925A1 JP 2010007592 W JP2010007592 W JP 2010007592W WO 2011080925 A1 WO2011080925 A1 WO 2011080925A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel
value
block size
image
unit
Prior art date
Application number
PCT/JP2010/007592
Other languages
English (en)
French (fr)
Inventor
秀之 大古瀬
克紀 浦野
安倍 清史
荒川 博
悠樹 丸山
Original Assignee
パナソニック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニック株式会社 filed Critical パナソニック株式会社
Priority to JP2011547337A priority Critical patent/JP5470405B2/ja
Priority to US13/148,111 priority patent/US9369720B2/en
Publication of WO2011080925A1 publication Critical patent/WO2011080925A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock

Definitions

  • moving images are converted to H.264 images.
  • the present invention relates to an image encoding apparatus and method for encoding according to the H.264 standard.
  • FIG. 12A is a diagram illustrating a prediction mode of a 4 ⁇ 4 pixel block
  • FIG. 12B is a diagram illustrating a prediction mode of a 16 ⁇ 16 pixel block.
  • nine prediction directions including the average value prediction are determined for the prediction direction of the luminance signal 4 ⁇ 4 pixel block.
  • FIG. 12B four prediction directions are determined in the prediction of the 16 ⁇ 16 pixel block of the luminance signal and the 8 ⁇ 8 pixel block of the color difference signal, and one direction is set for each prediction block. select.
  • the amount of information in the prediction direction required for one macroblock increases or decreases depending on the prediction block size. When the prediction block size decreases, the number of prediction blocks in the macroblock increases, and thus the amount of information increases.
  • the generated code amount is controlled by controlling the quantization width.
  • the quantization width In order to rapidly suppress the generated code amount, it is sometimes insufficient to simply increase the quantization width. In order to suppress the generated code amount, it is necessary to reduce information other than the image signal (hereinafter referred to as “overhead”).
  • Patent Document 1 discloses a method of suppressing the amount of code by reducing the overhead due to the intra prediction encoding.
  • the input image has a checkered pattern of white and black for each pixel
  • the overhead is reduced but the prediction is not performed at all.
  • the difference component becomes very large, and the code amount cannot be suppressed.
  • the quantization width is increased in order to suppress the code amount, significant image quality degradation is caused.
  • An object of the present invention is to provide an image encoding apparatus and method capable of selecting an intra prediction mode.
  • an image coding apparatus is an image code that performs intra-frame predictive coding on an encoding target macroblock in an input image in units of intra-prediction blocks having a plurality of sizes.
  • a feature amount calculation unit that calculates statistical information of the pixel value based on a pixel value of a pixel belonging to the encoding target macroblock in the input image, and based on the calculated statistical information
  • the intra-prediction block size is determined according to a predetermined criterion so that the smaller the degree of change in the pixel value in a predetermined direction in the encoding target macroblock, the larger the intra-prediction block size is selected.
  • the present invention can be realized not only as an image encoding device, but also as a method using a mobile information terminal, a broadcasting device, and a processing unit constituting the image encoding device as a step.
  • These programs, information, data, and signals may be distributed via a communication network such as the Internet.
  • FIG. 1 is a block diagram showing the configuration of the image coding apparatus according to the first embodiment.
  • FIG. 2 is a block diagram showing a detailed configuration of the in-plane prediction block size determination unit shown in FIG.
  • FIG. 3 is a flowchart for explaining an example of processing for determining the in-plane prediction block size in the first embodiment.
  • FIG. 4 is a flowchart for explaining another example of the process of determining the in-plane prediction block size in the first embodiment.
  • FIG. 5 is a diagram illustrating changes in pixel values representing edges and gradation.
  • FIG. 6 is a conceptual diagram illustrating a method for calculating a difference between pixel values between adjacent pixels in the horizontal direction and the vertical direction.
  • FIG. 1 is a block diagram showing the configuration of the image coding apparatus according to the first embodiment.
  • FIG. 2 is a block diagram showing a detailed configuration of the in-plane prediction block size determination unit shown in FIG.
  • FIG. 3 is a flowchart for explaining an example of processing for
  • FIG. 7 is a flowchart for explaining processing for calculating the threshold value of the luminance dispersion value using the threshold value 0 to the threshold value 3 and the quantization parameter QP.
  • FIG. 8 shows that in-plane prediction is performed in units of 4 ⁇ 4 pixel blocks when the number of 4 ⁇ 4 pixel blocks whose luminance variance is smaller than that of a 16 ⁇ 16 pixel macroblock is large in the second embodiment. It is a figure which shows an example of the image which can reduce the generated code amount.
  • FIG. 9 is a diagram illustrating luminance that is a residual of each pixel when the image in the macroblock illustrated in FIG. 8 is scanned in the horizontal direction at a position of 16 pixels from the top of the macroblock.
  • FIG. 8 shows that in-plane prediction is performed in units of 4 ⁇ 4 pixel blocks when the number of 4 ⁇ 4 pixel blocks whose luminance variance is smaller than that of a 16 ⁇ 16 pixel macroblock is large in the second embodiment. It is a figure which shows an example
  • FIG. 10 is a flowchart for explaining an example of processing for determining the in-plane prediction block size in the second embodiment.
  • FIG. 11 is a diagram for explaining control of the generated code amount in the buffer simulation of the decoder according to the third embodiment.
  • FIG. It is a figure which shows the prediction mode of the in-plane prediction encoding system prescribed
  • FIG. 1 is a block diagram showing the configuration of the image coding apparatus according to the first embodiment.
  • the image encoding device 100 includes a block feature amount calculation unit 102, an in-plane prediction block size determination unit 103, an encoding unit 105, and a rate control unit 106.
  • the encoding unit 105 includes a subtractor 1051, an in-plane prediction unit 1052, an in-plane prediction direction determination unit 1053, a T • Q (Transformation and Quantization) unit 1054, and an IQ • IT (Inverse Quantization and Inverse Transformation).
  • the image encoding apparatus 100 calculates a block feature amount of the input image 101 acquired from the outside, and uses the calculated block feature amount and a control parameter 104 set in an external register or memory by an external input.
  • An image encoding device that determines in which plane the input image 101 is to be predicted in-plane, predicts the input image 101 in-plane with the determined block size, and outputs a stream 107 obtained by further encoding It is.
  • the block feature amount is statistical information of pixel values, and is, for example, a dispersion value of luminance values, an average value, an adjacent pixel difference value sum, an adjacent pixel difference absolute value sum, and a dynamic range.
  • the main point of the present invention is the processing in the in-plane prediction, description of the configuration of a processing unit that is not related to the in-plane prediction, for example, a processing unit that performs inter-plane prediction, is omitted.
  • the in-plane prediction block size of the luminance signal is either 16 ⁇ 16 pixels or 4 ⁇ 4 pixels.
  • a method for determining a prediction direction after determining a block size is assumed as a method for determining an in-plane prediction mode. That is, H.I.
  • the 8 ⁇ 8 pixel block size of the luminance signal used in the H.264 high profile is not used.
  • the description regarding the encoding process using prediction between screens is omitted.
  • an input image 101 corresponding to one screen is sequentially divided into 16 ⁇ 16 pixel rectangular regions (macroblocks, hereinafter referred to as “MB”) in the horizontal direction from the upper left to the lower right of the image. Encoding processing is performed in units of divided MBs.
  • the block feature amount calculation unit 102 calculates a feature of the encoding target MB, that is, a block feature amount indicating a tendency of change in pixel value in the MB.
  • the block feature quantity calculation unit 102 as the block feature quantity, for example, average brightness value, variance value, dynamic range, and adjacent pixel difference in MB (16 ⁇ 16 pixels) units or orthogonal transform block (4 ⁇ 4 pixels) units.
  • the sum of absolute values is calculated and output as a block feature amount.
  • the block feature value calculation unit 102 calculates the block feature value in MB units.
  • the average value a ′ of the luminance values is obtained by the following (Equation 1).
  • M is the number of pixels in the horizontal direction in the block
  • N is the number of pixels in the vertical direction in the block
  • i is an integer that increases from 1 to 1 and takes values up to N
  • j is 1 to 1 It indicates an integer that increases gradually and takes a value up to M
  • a (i, j) indicates the luminance value of the pixel in i row and j column.
  • the block feature quantity calculation unit 102 calculates the average value a ′ of the luminance values of each block by performing the calculation of (Equation 1) for each block.
  • equation 1 since the calculation of the following arithmetic expression using a computer is a well-known technique, description about the specific process of calculation is abbreviate
  • the luminance dispersion value S 2 is obtained by the following (Equation 2).
  • M is the number of pixels in the horizontal direction in the block
  • N is the number of pixels in the vertical direction in the block
  • a ′ is the average value of the luminance values
  • a (i, j) is i row j in the block.
  • the luminance value of the pixel in the column i is an integer that increases from 1 to 1 and takes a value up to N, and j is an integer that increases from 1 to 1 and takes a value up to M.
  • Block feature quantity calculation unit 102 for each block, by performing the following calculation, to calculate the variance value S 2 of the luminance values of each block.
  • the dynamic range is obtained by the width from the minimum value to the maximum value of the luminance value or the ratio (dB) between the minimum value and the maximum value of the luminance value.
  • the adjacent pixel difference absolute value sum a h of luminance values in the horizontal direction (row direction) is obtained by the following (Equation 3), and the adjacent pixel difference absolute value sum of luminance values in the vertical direction (column direction) is calculated.
  • a v is obtained by the following (formula 4).
  • K represents the number of pixels on one side of the block
  • a (i, j) represents the luminance value of the pixel located in i row and j column in the block.
  • i represents an integer that increases from 1 to 1 and takes a value up to K
  • j represents an integer that increases from 1 to 1 and takes a value up to (K ⁇ 1).
  • i represents an integer that increases from 1 to 1 and takes a value up to (K ⁇ 1)
  • j represents an integer that increases from 1 to 1 and takes a value up to K. Yes.
  • the in-plane prediction block size determination unit 103 uses the block feature amount calculated by the block feature amount calculation unit 102, the control parameter 104 input from the outside, and the rate control information calculated by the rate control unit 106 described later.
  • the in-plane prediction block size is determined as either 4 ⁇ 4 or 16 ⁇ 16. Details will be described later.
  • Encoding unit 105 is an H.264 standard. The encoding process is performed in accordance with the H.264 standard Baseline profile or Main profile.
  • the in-plane prediction direction determination unit 1053 selects one prediction per MB from the four prediction directions from mode 0 to mode 3 shown in FIG. Select the direction. If the in-plane prediction block size is 4 ⁇ 4, one prediction direction is selected for each 4 ⁇ 4 pixel block from the nine prediction directions from mode 0 to mode 8 shown in FIG. . If the block size is 4 ⁇ 4, there are 16 4 ⁇ 4 pixel blocks per MB, and it is necessary to determine the respective prediction directions.
  • a method for determining the prediction direction is not defined here, a general method is, for example, a method of selecting a prediction direction in which the sum of absolute differences between the pixel value in the block and the predicted image is the smallest.
  • the in-plane prediction unit 1052 uses the in-plane prediction block size determined by the in-plane prediction block size determination unit 103 and the prediction direction determined by the in-plane prediction direction determination unit 1053 according to FIGS. 12A and 12B. As shown in FIG. 4, a prediction image is generated using the peripheral pixels of the target block. The generation method is described in detail in Non-Patent Document 1.
  • the subtractor 1051 generates a difference image between the image of the encoding target MB and the prediction image generated by the in-plane prediction unit 1052.
  • the TQ unit 1054 performs orthogonal transform on the difference image, performs quantization, and calculates a quantization coefficient.
  • orthogonal transform for example, DCT transform (Discrete Cosine Transform) is used.
  • T ⁇ Q unit 1054 calculates a quantized coefficient by quantizing the orthogonal transform coefficient obtained by the orthogonal transform.
  • the entropy encoding unit 1050 includes a quantization coefficient calculated by the T / Q unit 1054, a quantization width (also referred to as a “quantization step”) used for quantization, a block size for in-plane prediction, Side information (also referred to as “additional information”) such as a prediction direction is encoded and a stream 107 is output.
  • a quantization width also referred to as a “quantization step”
  • Side information also referred to as “additional information” such as a prediction direction is encoded and a stream 107 is output.
  • the local decoding process for reconstructing an image from the quantization coefficient calculated by the TQ unit 1054 performs the following process.
  • the IQ / IT unit 1055 performs inverse quantization and inverse orthogonal transform processing on the quantization coefficient to generate a reconstructed difference image.
  • the IQ / IT unit 1055 performs IDCT conversion (Inverse Discrete Cosine Transform), which is the inverse process of DCT conversion, corresponding to the DCT conversion in the T / Q unit 1054.
  • IDCT conversion Inverse Discrete Cosine Transform
  • the adder 1056 adds the reconstructed difference image generated by the IQ / IT unit 1055 to the predicted image generated by the in-plane prediction unit 1052, and generates a reconstructed image.
  • the DBF unit 1057 performs a deblocking filter process on the reconstructed image to generate a reconstructed filter image.
  • in-plane prediction is performed using peripheral pixels of a block for which in-plane prediction is performed, but it is defined that pixels before deblocking filter processing are used. Therefore, the peripheral pixel memory 1059 holds only pixels that can be used for in-plane prediction in the reconstructed image.
  • the frame memory 1058 holds the reconstructed filter image generated by the DBF unit 1057 as a reference image when performing inter-screen prediction.
  • the rate control unit 106 calculates an average quantization width, a generated code amount transition, a buffer occupancy status, and the like as rate control information from the encoding result of the encoding unit 105, and encodes the next input image. A target code amount, a quantization width, etc. are determined.
  • in-plane prediction mode In the 4 ⁇ 4 in-plane prediction mode, in-plane prediction is performed in units of 4 ⁇ 4 pixel blocks. Therefore, in-plane prediction can be performed more finely than in-plane prediction in units of 16 ⁇ 16 pixel blocks. Since one of nine prediction directions can be selected for each 4 ⁇ 4 pixel block, there is an advantage that prediction performance is improved and residual components of pixel values can be reduced. However, there are 16 4 ⁇ 4 pixel blocks per MB, and it is necessary to embed information indicating the prediction direction for each block in the stream.
  • in-plane prediction is performed in units of 16 ⁇ 16 pixel blocks, so that residual components such as MBs with uniform pixel values or MBs with gradation or horizontal or vertical edges are used.
  • residual components such as MBs with uniform pixel values or MBs with gradation or horizontal or vertical edges are used.
  • the uniform pixel value means that there is little variation in the pixel value, the change width of the pixel value is small, that is, the image is flat.
  • unlike 4 ⁇ 4 in-plane prediction only one prediction direction information is required per MB, which has an advantage that overhead can be reduced.
  • the quantization width becomes larger (coarse)
  • the high frequency component of the orthogonal transform coefficient is deleted, that is, the pixel value of the difference image is flattened, so that the 16 ⁇ 16 in-plane prediction mode with less overhead is performed.
  • the selection is advantageous from the viewpoint of code amount suppression.
  • an image with a pixel value in the MB that is a checkered pattern of white and black Is more advantageous in that the amount of code can be suppressed than selecting the 16 ⁇ 16 in-plane prediction mode because the selection of the 4 ⁇ 4 in-plane prediction mode can select a prediction mode that can reduce the residual component.
  • FIG. 2 is a block diagram showing a detailed configuration of the in-plane prediction block size determination unit shown in FIG.
  • the in-plane prediction block size determination unit 103 includes a block size determination unit 1031 and a parameter adjustment unit 1032.
  • the block size determination unit 1031 determines the block size by comparing with a threshold value using, for example, a luminance variance value as a feature amount for determining the predicted block size.
  • FIG. 3 is a flowchart for explaining an example of processing for determining the in-plane prediction block size in the present embodiment. The flowchart of the process for determining the predicted block size is as shown in FIG.
  • FIG. 3 illustrates the simplest example in which whether or not the luminance of the MB is uniform is determined by comparing the luminance dispersion value with a threshold value, and the predicted block size is determined according to the determination result. .
  • FIG. 4 is a flowchart for explaining another example of the process of determining the in-plane prediction block size in the present embodiment.
  • the block size determination unit 1031 first determines whether the MB luminance is uniform (S401). Note that the determination method of the block size determination unit 1031 in S401 is the same as S301 in FIG.
  • the block size determination unit 1031 compares the MB luminance variance value calculated by the block feature quantity calculation unit 102 with a threshold value, and if the luminance variance value is less than or equal to the threshold value, the MB luminance value is uniform. Judge that there is. If the luminance dispersion value exceeds the threshold, it is determined that the MB luminance is not uniform.
  • the block size determination unit 1031 determines that the luminance of the MB is uniform (Yes in S401), the block size determination unit 1031 selects a 16 ⁇ 16 pixel block as the predicted block size (S404), and otherwise (in S401). No) Further, it is determined whether the MB is gradation (S402). The determination of gradation will be described in detail later with reference to FIGS.
  • the block size determining unit 1031 determines that the MB is gradation (Yes in S402)
  • the block size determining unit 1031 selects a 16 ⁇ 16 pixel block as the predicted block size (S404), and otherwise (No in S402). Further, it is determined whether or not there is a horizontal or vertical edge in the MB (S403). The determination of the presence or absence of an edge will be described in detail later with reference to FIG.
  • the block size determination unit 1031 determines that there is a horizontal or vertical edge in the MB (Yes in S403), the block size determination unit 1031 selects a 16 ⁇ 16 pixel block as the predicted block size (S404), and otherwise (No in S403), a 4 ⁇ 4 pixel block is selected as the predicted block size (S405).
  • FIG. 5 is a diagram showing changes in pixel values representing edges and gradation.
  • FIG. 5A is a diagram showing an example of an edge by a change in luminance, using a 3 ⁇ 3 pixel block as an example.
  • the left side of FIG. 5A shows the luminance of each pixel in the block as a numerical value.
  • BT Assume that a value between 16 and 235 is used with 8-bit precision of the 709 standard.
  • the right side of FIG. 5A represents the change in the luminance of each pixel in the block on the left side of FIG.
  • the luminance value changes abruptly between an adjacent pixel and a pixel corresponding to the edge in a direction perpendicular to the edge direction.
  • adjacent pixels have similar luminance values in the edge direction.
  • the luminance value of the pixel in the second column changes more rapidly than the pixel in the first column, and is close to the maximum luminance value. ing.
  • the luminance values of the pixels in the second column are almost the same in the column direction. Therefore, it can be seen that the pixels in the second column correspond to edges.
  • FIG. 5A shows an example in which the edge has a width of one pixel in the vertical direction, but even if the third column has the same value as the second column, the pixel in the second column is the edge. It corresponds to.
  • edge features can be detected using the sum of absolute values of adjacent pixel differences in the vertical and horizontal directions calculated by the block feature quantity calculation unit 102. That is, as shown in FIG. 5 (a) right, if there is an edge in the vertical direction, adjacent pixel difference absolute value sum a v of the luminance value in the vertical direction (column direction) becomes a value close to 0, the horizontal direction The adjacent pixel difference absolute value sum a h of luminance values in the (row direction) tends to be very large.
  • whether or not there is an edge in the vertical direction is determined by whether or not the sum of absolute values of adjacent pixel differences a v in the vertical direction is equal to or smaller than a predetermined threshold Th v (a v ) and the adjacent pixel difference absolute value in the horizontal direction. This can be determined by determining whether or not the sum a h exceeds a predetermined threshold Th v (a h ).
  • FIG. 5B is a diagram showing an example of gradation by a change in luminance, taking a 3 ⁇ 3 pixel block as an example.
  • the left side of FIG. 5B shows the luminance of each pixel in the block as a numerical value.
  • the right side of FIG. 5B represents the change in the luminance of each pixel in the left block of FIG.
  • the luminance value (which may be a color difference) tends to gradually increase or decrease gradually in one direction.
  • the luminance value of each pixel hardly changes in the vertical direction and gradually increases in the horizontal direction to the right. I understand that.
  • Such edge and gradation features are the sum of absolute values of adjacent pixel differences in the vertical and horizontal directions calculated by the block feature amount calculation unit 102, or the block feature amount calculation unit 102 adjacent to each MB in the vertical direction and horizontal direction. Detection can be performed using a value in the middle of calculating the pixel difference absolute value sum.
  • FIG. 6 is a conceptual diagram illustrating a method of calculating a difference in pixel values between adjacent pixels in the horizontal direction and the vertical direction.
  • 6A shows that a difference in pixel value is calculated between adjacent pixels in the horizontal direction (row direction) indicated by an arrow
  • FIG. 6B shows an adjacent in the vertical direction (column direction) indicated by an arrow. It shows that a difference in pixel value between pixels is calculated.
  • the adjacent pixel difference in the horizontal direction for luminance is calculated for each row in the block.
  • the difference in luminance value between adjacent pixels in the horizontal direction is represented by ⁇ a (i, j) ⁇ a (i, j + 1) ⁇ .
  • the adjacent pixel difference in the vertical direction is calculated for each column in the block.
  • a difference in luminance value between adjacent pixels in the vertical direction is represented by ⁇ a (i, j) ⁇ a (i + 1, j) ⁇ .
  • the difference in luminance value between adjacent pixels is a value that is uniformly close to 0 in a certain direction, and in the direction perpendicular to that direction, the magnitude of the difference is substantially a constant value that is less than or equal to a threshold value. Tend. Therefore, the block size determination unit 1031 detects whether or not there is a direction in which the difference in luminance value between these adjacent pixels calculated by the block feature amount calculation unit 102 is close to zero. That is, the block size determination unit 1031 detects whether or not the degree of change in pixel value between adjacent pixels is small in the vertical or horizontal direction.
  • the sign of the luminance value difference between adjacent pixels is constant in a direction perpendicular to the detected direction, or the luminance value difference between adjacent pixels is predetermined.
  • the width is equal to or less than the predetermined threshold value, it is possible to determine whether there is a gradation in the vertical direction or the horizontal direction.
  • gradation a case where the luminance value of each pixel in the block changes in a linear curve in the horizontal direction, that is, a case where it has a constant inclination is shown, but this is not limited thereto. Alternatively, it may be a quadratic curve or a cubic curve. Further, here, gradation determination is performed using the difference in luminance value between adjacent pixels, but the degree of change in luminance value in each direction in the block may be calculated using primary differentiation. Further, gradation may be detected using a conventional technique in graphic processing.
  • the prediction block size is determined based on whether the luminance of the MB is uniform, that is, whether the variation in the luminance value of the MB is equal to or less than the threshold value.
  • the predicted block size can be determined based on whether the MB is horizontally or vertically grading and whether there are horizontal or vertical edges in the MB.
  • the coding unit 105 As described above, according to the image coding apparatus 100 of the first embodiment, the coding unit 105, the block feature amount calculation unit 102, and the in-plane prediction block size determination unit 103 illustrated in FIG. It is apparent that the configuration can sufficiently solve the conventional problems in the in-plane prediction in units of pixel blocks.
  • the generated code amount when the generated code amount is large, in order to make it easier to select a 16 ⁇ 16 pixel block as the predicted block size, whether or not the luminance of the MB is uniform is determined.
  • a threshold for determining whether or not is set in accordance with the quantization width in units of pictures.
  • the parameter adjustment unit 1032 uses the rate control information to adjust the control parameter 104, which is a threshold used for the determination in S301 in FIG. 3 or S401 in FIG. 4, and generates a threshold for the block size determination unit 1031.
  • the threshold value is determined as follows will be described.
  • a list of threshold values corresponding to the quantization width is included in the control parameter 104 and is set in units of pictures.
  • the parameter adjustment unit 1032 holds in advance a list of threshold values such as the following that fluctuate in association with the quantization width (QP) that is one of the rate control information.
  • the threshold value 0 to the threshold value 3 are set so that the threshold value becomes larger as the quantization width QP becomes larger, that is, the threshold value 0 ⁇ threshold value 1 ⁇ threshold value 2 ⁇ threshold value 3 is satisfied.
  • the selection rate at which the block size determination unit 1031 selects the 16 ⁇ 16 pixel block can be increased.
  • the selection rate of the 16 ⁇ 16 pixel block can be further increased by further increasing the increase amount of the threshold value 2 to the threshold value 3 as approaching this.
  • FIG. 7 is a flowchart for explaining processing for calculating the threshold value of the luminance dispersion value using the threshold value 0 to the threshold value 3 and the quantization parameter QP.
  • the parameter adjustment unit 1032 acquires the control parameter 104 from an external register or the like, and extracts a list of threshold values included in the control parameter 104 (S701).
  • the parameter adjustment unit 1032 acquires the quantization parameter QP from the rate control unit 106 (S702).
  • the setting is made (S704). That is, the value “0” is stored in the register for holding the threshold number for identifying the threshold determined in step S704.
  • control parameter 104 includes a list of threshold values that increases as the quantization width increases, but the present invention is not limited to this.
  • the list of threshold values is stored in an arbitrary memory, for example, a recording medium and an external memory, in a format such as a look-up table, by combining a quantization width range and a threshold value calculated in advance. It may be left.
  • a list of threshold values is not stored, but a weighting coefficient corresponding to the quantization width is determined in advance, and an operation represented by a linear expression or other function using a coefficient corresponding to the quantization width
  • the threshold value may be calculated using an equation.
  • the threshold value is controlled to increase in accordance with the increase in the quantization width, but instead of controlling the threshold value, that is, without changing the threshold value, the threshold value is changed.
  • the weighting coefficient may be multiplied by the luminance dispersion value.
  • the reference for comparison between the threshold value and the variance value (that is, the list of threshold values) is changed in accordance with the increase in the quantization width, but the present invention is not limited to this, and for example, the pixel value
  • the probability that a large prediction block size is selected according to the variance value and the increase in the quantization width is determined in advance, and the prediction block size with a large probability according to the combination of the variance value and the quantization width May be selected.
  • Control when setting so that a large predicted block size is selected with a probability of 70% when QP is 40 or more and 45 or less, for example, a natural number from 1 to 10 is randomly generated, and the generated random value is Control may be performed so that a large prediction block size is selected if the value is 1 or more and 7 or less, and a small prediction block size is selected if the value is 8 or more and 10 or less.
  • a large prediction block size is selected if the value is 1 or more and 7 or less
  • a small prediction block size is selected if the value is 8 or more and 10 or less.
  • the larger the quantization width the larger the prediction block size is selected even with the same variance value.
  • a standard may be set so that it can be easily done. For example, a table in which a prediction block size to be selected is associated with a luminance variance value in an encoding target macroblock is prepared for each predetermined quantization width. In this case, a table is prepared in which a larger prediction block size is assigned to a smaller variance value as the quantization width increases.
  • the threshold value may be changed according to the recording mode or the target code amount, for example. That is, in the recording mode in which the bit rate for recording the encoded data is low, the 16 ⁇ 16 pixel MB size is easily selected, thereby reducing the overhead and reducing the generated code amount, and in the recording mode in which the recording bit rate is high. Encoding accuracy (resolution) may be improved by facilitating selection of a 4 ⁇ 4 pixel block size. Also, when the target code amount is low, the 16 ⁇ 16 pixel MB size is easily selected to reduce the generated code amount, and when the target code amount is high, the 4 ⁇ 4 pixel block size is easily selected to encode accuracy. It is good to raise.
  • the predicted block size is determined by detecting both whether there is an edge in the horizontal or vertical direction and whether there is a gradation in the horizontal or vertical direction.
  • the predicted block size may be determined by detecting either one of the edge and the gradation.
  • the MB luminance dispersion value is given as an example.
  • a color difference dispersion value may be used, and the adjacent pixel difference absolute value sum of the color difference and the sign of the color difference are considered.
  • the block size is determined by determining whether the pixel value (luminance and color difference) is uniform, gradation, or has an edge as shown in FIG. It is possible.
  • a method of determining whether or not the MB brightness is uniform by comparing the brightness dispersion value of the MB with a threshold value and determining the prediction block size according to the determination result is given as an example.
  • the present invention is not limited to this.
  • the MB includes a partial image with a high contrast in the background consisting of a flat image
  • each image is compared with the in-plane predictive coding with the 16 ⁇ 16 pixel MB size.
  • the luminance variance value of the entire 16 ⁇ 16 pixel MB is compared with the luminance variance value for each 4 ⁇ 4 pixel block in the MB, and 16 ⁇ 16 pixels are compared.
  • the number of 4 ⁇ 4 pixel blocks whose variance value is smaller than the variance value of the entire MB is counted, and when the counted number is larger than a certain number, the MB is predicted in the plane with a 4 ⁇ 4 pixel block size. Decide what to do.
  • a threshold value Th (n) regarding the number of blocks is included in the control parameter 104 and stored in an external memory. Further, the block feature amount calculation unit 102 calculates a block feature amount, here, a luminance dispersion value not only for the MB but also for all 4 ⁇ 4 pixel blocks in the MB.
  • the block size determining unit 1031 compares the luminance dispersion value of the MB with the luminance dispersion value of each 4 ⁇ 4 pixel block in the MB, and the luminance dispersion value of the 4 ⁇ 4 pixel block is smaller than the luminance dispersion value of the MB. The number of 4 ⁇ 4 pixel blocks is calculated.
  • the calculated number of 4 ⁇ 4 pixel blocks is compared with a threshold value Th (n) regarding the number of blocks read from the control parameter 104, and if the number of 4 ⁇ 4 pixel blocks exceeds the threshold value Th (n).
  • Th (n) the threshold value regarding the number of blocks read from the control parameter 104
  • a 4 ⁇ 4 pixel block is selected as the predicted block size
  • a 16 ⁇ 16 pixel block is selected as the predicted block size.
  • FIG. 8 shows that when the number of 4 ⁇ 4 pixel blocks having a luminance variance value smaller than 16 ⁇ 16 pixel MB is large, the amount of generated code is reduced by performing in-plane prediction in units of 4 ⁇ 4 pixel blocks.
  • the 16 ⁇ 16 pixel MB is considerably larger than the 4 ⁇ 4 pixel block.
  • the MB may include a high-contrast image such as a human head or face with a uniform image such as the sky as a background. In such a case, the dispersion value of the luminance of MB tends to be a large value due to the influence of an image with high contrast contained therein.
  • the luminance is uniform in both the background and the human head image except for the block including the boundary between the sky and the head image.
  • the number of blocks with a small value is counted.
  • the residual component can be reduced more accurately and the generated code amount can be reduced by performing in-plane prediction in units of 4 ⁇ 4 pixel blocks having a small luminance dispersion value rather than in units of MB. can do.
  • FIG. 9 is a diagram illustrating the luminance of each pixel on a horizontal line across the head image in the 16 ⁇ 16 pixel MB representing the image of FIG. Further, in the figure, when an image including an edge as shown in FIG. 8 is subjected to intra prediction prediction in the horizontal direction with a 16 ⁇ 16 pixel block size, the quantization noise of the edge portion is the entire decoded image of MB. The dotted line shows how it spreads. In FIG. 9, the separation for each 4 ⁇ 4 pixel block from the left is indicated by a vertical broken line, and the luminance value, which is the horizontal pixel value of each pixel, is indicated by a solid line.
  • the luminance of each pixel shows a constant high value (luminance representing sky blue) from the first pixel to the eleventh pixel in the horizontal direction from the left end.
  • the luminance suddenly becomes a low value (luminance representing the head black), and the constant value is shown as it is up to the sixteenth pixel. Therefore, since the luminance is constant in the first 4 ⁇ 4 pixel block and the second 4 ⁇ 4 pixel block from the left, the variance is low, and the third 4 ⁇ 4 pixel block from the left includes an edge. Therefore, the luminance variance becomes a large value, and in the next fourth 4 ⁇ 4 pixel block, the luminance becomes constant again, and the variance becomes a low value.
  • the prediction residual can be kept low by performing in-plane prediction with a prediction block size of 16 ⁇ 16 pixels. Can do.
  • the predicted direction in the vertical direction of FIG. 12B is simply applied. Can not do it.
  • the 4 ⁇ 4 pixel block in the fourth column from the left and the second from the top includes a horizontal edge.
  • FIG. 10 is a flowchart for explaining an example of processing for determining the predicted block size in the second embodiment.
  • the threshold Th (n) related to the number of blocks is included in the control parameter 104 and stored in the external memory in advance, and the parameter adjustment unit 1032 reads the threshold Th (n) from the external memory.
  • the initial value of a register for counting the number of blocks is set to 0.
  • the block feature amount calculation unit 102 calculates the variance value of the MB luminance (S901).
  • the block size determination unit 1031 calculates a luminance variance value of one 4 ⁇ 4 pixel block in the MB (S902), and the calculated luminance variance value of the 4 ⁇ 4 pixel block is calculated as a block feature amount calculation unit. It is determined whether or not it is smaller than the dispersion value of the luminance of MB calculated in 102 (S903).
  • the block size determination unit 1031 sequentially compares the MB luminance variance value with the 4 ⁇ 4 pixel block luminance variance value for all 4 ⁇ 4 pixel blocks in the MB, and The number of 4 ⁇ 4 pixel blocks having a smaller luminance dispersion value is counted.
  • the block size determination unit 1031 determines that the counted number of blocks is from the parameter adjustment unit 1032. It is determined whether or not it is equal to or less than the acquired threshold value Th (n) (S905). If the counted number of blocks is equal to or smaller than the threshold Th (n) (Yes in S905), it is determined to perform in-plane prediction with a 16 ⁇ 16 pixel MB size (S906). If the counted number of blocks exceeds the threshold Th (n) (No in S905), it is determined to perform in-plane prediction with a 4 ⁇ 4 pixel block size (S907).
  • the feature amount calculating unit when the 16 ⁇ 16 pixel block size is selected by the size determining unit, the feature amount calculating unit further includes all 4 ⁇ included in the encoding target macroblock.
  • a variance value is calculated based on pixel values of pixels belonging to the 4 ⁇ 4 pixel block, and the size determining unit calculates the variance value calculated for the 16 ⁇ 16 pixel block, The variance values calculated for the ⁇ 4 pixel block are compared, and the 16 ⁇ 16 pixel block and the 4 ⁇ 4 pixel block are selectively switched based on the comparison result.
  • all the 4 ⁇ 4 pixel blocks included in the encoding target macroblock are further included in the encoding target macroblock.
  • the number of all the 4 ⁇ 4 pixel blocks having a pixel value variance smaller than the pixel value variance is counted, and if the counted number of 4 ⁇ 4 pixel blocks is equal to or less than a predetermined number, 16 ⁇ 16 pixels
  • the 4 ⁇ 4 pixel block size can be selected.
  • the intra prediction encoding can be performed with the 4 ⁇ 4 pixel prediction block size.
  • the intra prediction encoding it is possible to accurately reduce the amount of generated code by intra-prediction encoding, and because the encoding target macroblock includes an image with a strong contrast, noise due to quantization error may be caused by the encoding target macro. It is possible to prevent the entire decoded image of the block from spreading and obtain a decoded image closer to the input image.
  • the offset of the luminance dispersion value of the 4 ⁇ 4 pixel block may be adjusted in conjunction with the quantization parameter QP, similarly to the method described in the first embodiment. Specifically, the offset offset (n) adjusted in conjunction with the quantization parameter QP in S902 in FIG. 10 is added to the luminance dispersion value of the 4 ⁇ 4 pixel block, and the offset offset (n) is added in S903. You may make it compare the luminance dispersion value of * 4 pixel block, and the luminance dispersion value of MB.
  • the probability (frequency or ratio) of selecting the 16 ⁇ 16 pixel MB size when the generated code amount is large. can be high.
  • the MB luminance dispersion value is given as an example.
  • a color difference dispersion value may be used, and the adjacent pixel difference absolute value sum of the color difference and the sign of the color difference are considered.
  • the block size is determined by determining whether the pixel value (luminance and color difference) is uniform, gradation, or has an edge as shown in FIG. It is possible.
  • control is performed to increase the multiplier to be multiplied by the threshold as the buffer occupancy of the encoded data on the decoder side approaches the underflow level.
  • the code amount actually generated by CAVLC Context-Adaptive Variable Length Coding
  • VBR Very Bit Rate
  • FIG. 11 is a diagram for explaining the control of the generated code amount in the decoder buffer simulation. More specifically, as shown in FIG. 11, the vertical axis indicates the amount of encoded data occupied by the buffer, and the horizontal axis indicates time.
  • encoded data read from an external medium, network, or the like is accumulated at a constant bit rate.
  • the decoder virtually instantly reads out the encoded data to be decoded, one picture at a time, as shown by the upward arrow in FIG. It should be noted that the reading of the encoded data from the buffer is not actually instantaneously read as shown in the figure, but is simulated as being virtually instantaneously performed.
  • the third embodiment suppresses the generated code amount when the remaining amount of encoded data in the buffer reaches the control line so as not to cause underflow. Therefore, the threshold multiplier is increased to facilitate selection of the 16 ⁇ 16 pixel prediction block size.
  • control is performed so that the 16 ⁇ 16 pixel prediction block size is easily selected as the remaining encoded data amount in the buffer decreases, and the threshold multiplier is increased as the remaining encoded data amount decreases.
  • the control line is divided into several stages and the underflow is approached. Control may be performed to increase the threshold value.
  • a list indicating the correspondence between the remaining amount of encoded data in the buffer and the threshold value may be stored in the parameter adjustment unit 1032 as a lookup table or the like.
  • a threshold value corresponding to the remaining amount of encoded data in the buffer when performing the in-plane prediction of the target MB is read from the table, the read threshold value is compared with the variance of the luminance value of the target MB, and the comparison result Thus, the predicted block size of the target MB may be determined. Further, the thresholds corresponding to the remaining amount of encoded data in the buffer and the quantization width at that time may be determined in advance by combining the first and third embodiments. Thus, by determining the prediction block size of the target MB using a threshold that is set so that the smaller the remaining amount of encoded data in the buffer, the larger the value, the remaining amount of encoded data in the buffer is reduced. The smaller the number, the easier it is to select a larger block size, so that the amount of generated code of the next picture can be suppressed, and the remaining amount of encoded data in the buffer can be quickly returned to an appropriate amount. is there.
  • the threshold value or the increase amount of the threshold value may be increased as the average code amount generated for each picture increases with respect to the target code amount in all the pictures encoded so far.
  • the threshold or the amount of increase of the threshold increases as the generated code amount for each picture exceeds the target code amount, the 16 ⁇ 16 MB block size is more easily selected as the predicted block size, There is an effect that the amount of generated codes can be reduced with good timing.
  • the block size in the in-plane prediction is determined based on the actual generated code amount by CAVLC.
  • CABAC Context
  • the block size may be determined on the basis of the actual generated code amount by based Adaptive Binary Arithmetic Coding).
  • the present invention does not need to determine the block size based on the actually generated code amount, and instead of the actual generated code amount, for example, an intermediate stage of encoding such as binary data before arithmetic encoding
  • the predicted block size may be determined based on the amount of data generated in step (b).
  • the generated code amount may be estimated from the binarized data, and the predicted block size may be determined based on the estimated code amount.
  • the generated code amount may be estimated from the binarized data, and the predicted block size may be determined based on the estimated code amount.
  • the present invention can also be applied to a case where data transfer is performed by CBR control.
  • CBR control since overflow should not occur, the predicted block size is adaptively selected so that overflow does not occur. Specifically, as the remaining code amount in the buffer approaches the overflow, for example, the control is performed such that the 16 ⁇ 16 pixel prediction block size is less likely to be selected by decreasing the threshold value.
  • the amount of generated code in a predetermined number of pictures encoded immediately before the encoding target picture is encoded increases with respect to the target code amount. It may be calculated by increasing the coefficient in the arithmetic expression for calculating the threshold value. It is also possible to control the threshold value by combining these alone or in combination. For example, an average of a threshold value set according to the quantization parameter QP and a threshold value set according to the remaining amount of encoded data in the buffer may be obtained, and the obtained average value may be used as the threshold value.
  • the threshold value is controlled based on the generated code amount so that the 16 ⁇ 16 pixel prediction block size is easily selected as the generated code amount increases. It is not limited to.
  • a look-up table showing the correspondence between the luminance value distribution of the target MB and the predicted block size to be selected corresponding thereto is prepared. That is, as the generated code amount in the simulation increases, a table that is set so that a predicted block size of 16 ⁇ 16 pixels is selected for a lower luminance variance value is prepared. Needless to say, the prediction block size corresponding to the variance of the luminance values may be selected with reference to the lookup table corresponding to the generated code amount.
  • the first embodiment, the second embodiment, and the third embodiment may be implemented in any combination as long as they do not contradict each other. That is, the present invention is not limited to the above-described embodiments, and various improvements and modifications can be made without departing from the scope of the present invention.
  • each functional block in the block diagrams is typically realized as an LSI that is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them. For example, the functional blocks other than the memory may be integrated into one chip.
  • LSI is used, but it may be called IC, system LSI, super LSI, or ultra LSI depending on the degree of integration.
  • the method of circuit integration is not limited to LSI, and may be realized by a dedicated circuit or a general-purpose processor.
  • An FPGA Field Programmable Gate Array
  • a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.
  • only the means for storing the data to be encoded or decoded may be configured separately instead of being integrated into one chip.
  • the image encoding apparatus and method according to the present invention can convert moving image data into H.264 format.
  • H.264 standard Main profile or Baseline profile encoded encoded video data is broadcast, uploaded to a server device on a network, or recorded, for use in a broadcast device, recording device, portable information terminal, etc. Useful.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

 符号化対象マクロブロック内の画像に応じて、発生符号量を抑制するのに最適な面内予測モードを選択する事が可能な画像符号化装置および方法を提供する。 入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、当該画素値の統計情報を算出するブロック特徴量算出部(102)と、算出された統計情報に基づいて、符号化対象マクロブロック内で所定の方向に対する画素値の変化の度合いが小さいほど、より大きい面内予測ブロックサイズが選択されるよう所定の基準に従って、面内予測ブロックサイズを決定する面内予測ブロックサイズ決定部(103)と、決定されたサイズの面内予測ブロックを単位として、符号化対象マクロブロックを面内予測符号化する符号化部(105)とを備える。

Description

画像符号化装置および方法
 本発明は、動画像をH.264規格に従って符号化する画像符号化装置および方法に関するものである。
 近年、BD/DVDレコーダ等の録画機器やカムコーダなどの撮像機器でハイビジョン動画像を記録する際、従来のMPEG-2よりも符号化効率が高いH.264規格を用いた記録方式が主流となりつつある。
 H.264規格では、非特許文献1に記載されているように、面内予測符号化方式が採用されている。この面内予測符号化方式では、(1)予測ブロックサイズ、(2)予測方向の情報(これらをあわせて「予測モード」と記す。)、および(3)ブロック画像と予測画像との残差信号が符号化される。さらに、H.264規格のBaseline profileおよびMain profileにおいては、面内予測符号化の単位となる予測ブロックサイズは、輝度信号に対しては、符号化対象マクロブロック単位である16×16画素ブロック、直交変換単位である4×4画素ブロックの2種類が定められており、色差信号に関しては、8×8画素ブロックのみが定められている。図12は、H.264規格のBaseline profileで規定されている面内予測符号化方式の予測モードを示す図である。図12(a)は、4×4画素ブロックの予測モードを示す図であり、図12(b)は、16×16画素ブロックの予測モードを示す図である。予測方向は、図12(a)に示すように、輝度信号の4×4画素ブロックの予測では平均値予測を含めて9通りの予測方向が定められている。また、図12(b)に示すように、輝度信号の16×16画素ブロックと色差信号の8×8画素ブロックの予測では4通りの予測方向が定められており、予測ブロック毎に1方向を選択する。1つのマクロブロックで必要な予測方向の情報量は、予測ブロックサイズに依存して増減し、予測ブロックサイズが小さくなるとマクロブロック内の予測ブロックの数が増えるために情報量が増えることになる。
 H.264規格に基づいて符号化する際、システム的に設定される符号量の上限を超えないように発生符号量を制御する必要があり、種々の制御方式が提案されている。その一方式として、次のピクチャ符号量が上限を超えそうなときに面内予測の予測サイズを16×16画素ブロックの固定とし、かつ予測方向を周辺画素の平均値予測に固定することで発生する符号量を抑制する方式が提案されている(特許文献1参照)。
特開2008-22405号公報
ISO/IEC 14496-10:2005
 画像を符号化する際、前述の通り発生符号量を制御する必要があり、通常は量子化幅を制御することで発生符号量を制御する。しかし、発生符号量を急激に抑制するためには量子化幅を大きくするだけでは不十分な場合がある。発生符号量を抑制するため、画像信号以外の情報(以下、「オーバーヘッド」と記す。)を減らす必要がある。
 そこで、前述の特許文献1では、面内予測符号化によるオーバーヘッドを削減して符号量を抑制する方式が開示されている。しかし、例えば入力画像が画素毎に白と黒の市松模様になっている場合、斜め方向の予測ができない16×16画素ブロック予測モードに固定すると、オーバーヘッドは減るものの、予測が全く当たらないため残差成分が非常に大きくなってしまい、符号量を抑制することができない。或いは、符号量を抑制するために量子化幅を大きくすると、著しい画質劣化を引き起こす事になる。
 そこで、本発明は上記の事情に鑑みてなされたものであり、入力画像のパターンにかかわらず、画質劣化を抑制し、かつ、面内予測符号化における発生符号量を抑制するのに最適な面内予測モードを選択する事が可能な画像符号化装置および方法を提供することを目的とする。
 上記の課題を解決するために、本発明に係る画像符号化装置は、入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化装置であって、前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、当該画素値の統計情報を算出する特徴量算出部と、算出された前記統計情報に基づいて、前記符号化対象マクロブロック内で所定の方向に対する画素値の変化の度合いが小さいほど、より大きい面内予測ブロックサイズが選択されるよう所定の基準に従って、前記面内予測ブロックサイズを決定するサイズ決定部と、決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する符号化部とを備える。
 なお、本発明は、画像符号化装置として実現できるだけでなく、画像符号化装置を備える携帯情報端末や放送装置、画像符号化装置を構成する処理手段をステップとする方法として実現したり、それらステップをコンピュータに実行させるプログラムとして実現したり、そのプログラムを記録したコンピュータ読み取り可能なCD-ROMなどの記録媒体として実現したり、そのプログラムを示す情報、データ又は信号として実現したりすることもできる。そして、それらプログラム、情報、データ及び信号は、インターネット等の通信ネットワークを介して配信してもよい。
 以上のように本発明によれば、入力画像の画像パターンにかかわらず、面内予測符号化における発生符号量を抑制するのに最適な面内予測モードを選択することが可能となる。
図1は、本実施の形態1に係る画像符号化装置の構成を示すブロック図である。 図2は、図1に示した面内予測ブロックサイズ決定部の詳細な構成を示すブロック図である。 図3は、本実施の形態1において面内予測ブロックサイズを決定する処理の一例を説明するフローチャートである。 図4は、本実施の形態1において面内予測ブロックサイズを決定する処理の他の一例を説明するフローチャートである。 図5は、エッジおよびグラデーションを表す画素値の変化を示す図である。 図6は、水平方向および垂直方向の隣接画素間の画素値の差分の算出方法を示す概念図である。 図7は、閾値0から閾値3、および量子化パラメータQPを用いて、輝度の分散値の閾値を算出する処理を説明するフローチャートである。 図8は、実施の形態2において、輝度の分散値が16×16画素マクロブロックよりも小さい4×4画素ブロックの個数が多いときに、4×4画素ブロックを単位として面内予測を行った方が発生符号量を低減できる画像の一例を示す図である。 図9は、図8に示したマクロブロック内の画像を、マクロブロックの上から16画素の位置で水平方向にスキャンした場合の各画素の残差である輝度を示す図である。 図10は、本実施の形態2において面内予測ブロックサイズを決定する処理の一例を説明するフローチャートである。 図11は、実施の形態3のデコーダのバッファシミュレーションにおける発生符号量の制御を説明する図である。 図12は、H.264規格のBaseline profileで規定されている面内予測符号化方式の予測モードを示す図である。
 以下、本発明の実施形態について、図面を用いて説明する。なお、本発明について、以下の実施の形態および添付の図面を用いて説明を行うが、これは例示を目的としており、本発明がこれらに限定されることを意図しない。また、これらの実施の形態に示される技術内容を互いに組み合わせたものも本願発明に含まれることは言うまでもない。
 (実施の形態1)
 図1は、本実施の形態1に係る画像符号化装置の構成を示すブロック図である。図1に示すように画像符号化装置100は、ブロック特徴量算出部102、面内予測ブロックサイズ決定部103、符号化部105、およびレート制御部106を備える。さらに、符号化部105は、内部に、減算器1051、面内予測部1052、面内予測方向決定部1053、T・Q(Transformation and Quantization)部1054、IQ・IT(Inverse Quantization and Inverse Transformation)部1055、加算器1056、DBF(Deblocking Filter)部1057、フレームメモリ1058、周辺画素メモリ1059、およびエントロピー符号化部1050を備える。画像符号化装置100は、外部から取得した入力画像101のブロック特徴量を算出し、算出されたブロック特徴量と、外部からの入力により外部のレジスタまたはメモリに設定された制御パラメータ104とを用いて、入力画像101をどのブロックサイズで面内予測するかを決定し、決定されたブロックサイズで入力画像101を面内予測し、さらに符号化して得られたストリーム107を出力する画像符号化装置である。ここで、ブロック特徴量は、画素値の統計情報であり、例えば、輝度値の分散値、平均値、隣接画素差分値和、隣接画素差分絶対値和、およびダイナミックレンジなどである。なお、図1では、本願発明の主眼は面内予測における処理であるので、面内予測と関係がない処理部、例えば、面間予測を行う処理部などの構成の記載を省略している。
 本実施の形態においては、H.264規格のBaseline profileもしくはMain profileに基づいて符号化することを前提とする。H.264規格のBaseline profileもしくはMain profileの場合、輝度信号の面内予測ブロックサイズは16×16画素と4×4画素の何れかとなる。また、本実施の形態では、面内予測のモードを決定する方式として、ブロックサイズを決定した後に予測方向を決定する方式を前提とする。すなわち、H.264規格のHigh profileで用いられる輝度信号の8×8画素ブロックサイズは用いない。また、面内予測を用いた符号化処理に焦点をあてて説明するため、画面間の予測を用いた符号化処理に関する説明は省略する。
 H.264規格では、1画面に相当する入力画像101を画像の左上から右下に向かって水平方向に順次、16×16画素の矩形領域(マクロブロック、以下「MB」と記す。)に分割し、分割後のMBを単位として符号化処理を行う。
 ブロック特徴量算出部102は、符号化対象MBの特徴、すなわち、MB内における画素値の変化の傾向を示すブロック特徴量を算出する。ブロック特徴量算出部102は、ブロック特徴量として、例えば、MB(16×16画素)単位や直交変換ブロック(4×4画素)単位での輝度値の平均、分散値、ダイナミックレンジ、隣接画素差分絶対値和などを算出し、ブロック特徴量として出力する。なお、本実施の形態1では、ブロック特徴量算出部102はブロック特徴量をMB単位で算出するものとする。
 例えば、輝度値の平均値a´は、次の(式1)で求められる。ただし、Mはブロック内の水平方向の画素数、Nはブロック内の垂直方向の画素数を示し、iは1から1ずつ増加してNまでの値をとる整数を示し、jは1から1ずつ増加してMまでの値をとる整数を示し、a(i,j)はi行j列の画素の輝度値を示す。ここでは、N=M=16である。ブロック特徴量算出部102は、ブロックごとに、(式1)の演算を行うことにより、各ブロックの輝度値の平均値a´を算出する。なお、コンピュータを用いた以下のような演算式の計算は周知技術であるので、演算の具体的処理については説明を省略する。
Figure JPOXMLDOC01-appb-M000001
 また、輝度の分散値S2は、次の(式2)で求められる。(式2)において、Mはブロック内の水平方向の画素数、Nはブロック内の垂直方向の画素数、a´は輝度値の平均値、a(i,j)はブロック内のi行j列の画素の輝度値、iは1から1ずつ増加してNまでの値をとる整数、jは1から1ずつ増加してMまでの値をとる整数を示す。ブロック特徴量算出部102は、ブロックごとに、次式の演算を行うことにより、各ブロックの輝度値の分散値S2を算出する。
Figure JPOXMLDOC01-appb-M000002
 さらに、ブロック特徴量として、ダイナミックレンジは、例えば、輝度値の場合、輝度値の最小値から最大値までの幅、または輝度値の最小値と最大値との比率(dB)で求められる。
 また、例えば、水平方向(行方向)の輝度値の隣接画素差分絶対値和ahは、次の(式3)で求められ、垂直方向(列方向)の輝度値の隣接画素差分絶対値和avは、次の(式4)で求められる。なお、(式3)および(式4)において、Kはブロックの一辺の画素数を示し、a(i,j)はブロック内でi行j列に位置する画素の輝度値を示している。(式3)において、iは1から1ずつ増加してKまでの値をとる整数を示し、jは1から1ずつ増加して(K-1)までの値をとる整数を示している。また、(式4)において、iは1から1ずつ増加して(K-1)までの値をとる整数を示し、jは1から1ずつ増加してKまでの値をとる整数を示している。
Figure JPOXMLDOC01-appb-M000003
Figure JPOXMLDOC01-appb-M000004
 面内予測ブロックサイズ決定部103は、ブロック特徴量算出部102によって算出されたブロック特徴量、外部から入力される制御パラメータ104、および後述のレート制御部106によって算出されるレート制御情報を用いて、面内予測ブロックサイズを4×4と16×16の何れかに決定する。詳細は後述する。
 符号化部105は、H.264規格のBaseline profileもしくはMain profileに従って符号化処理を行う。
 面内予測方向決定部1053は、面内予測ブロックサイズが16×16であれば、図12(b)に示したモード0からモード3までの4つの予測方向の中から、MBあたり一つの予測方向を選択する。面内予測ブロックサイズが4×4であれば、図12(a)に示したモード0からモード8までの9つの予測方向の中から、4×4画素ブロック毎に一つの予測方向を選択する。ブロックサイズが4×4であれば、MBあたり16個の4×4画素ブロックが存在し、それぞれの予測方向を決定する必要がある。予測方向を決定する方式をここでは規定しないが、一般的な方式として例えば、ブロック内の画素値と予測画像の差分絶対値和が最も小さくなる予測方向を選ぶ方式がある。
 面内予測部1052は、面内予測ブロックサイズ決定部103が決定した面内予測ブロックサイズ、および面内予測方向決定部1053が決定した予測方向に従って、図12(a)および図12(b)に示したように、対象ブロックの周辺画素を用いて予測画像を生成する。その生成方式は非特許文献1に詳細が記述されている。
 減算器1051は、符号化対象MBの画像と面内予測部1052が生成した予測画像との差分画像を生成する。
 T・Q部1054は、差分画像を直交変換した後、量子化を行い、量子化係数を算出する。直交変換には、例えば、DCT変換(Discrete Cosine Transform)を用いる。さらに、T・Q部1054は、直交変換によって得られた直交変換係数を量子化することによって、量子化係数を算出する。
 エントロピー符号化部1050は、T・Q部1054によって算出された量子化係数と、量子化に用いられた量子化幅(「量子化ステップ」ともいう)、面内予測のブロックサイズ、各ブロックの予測方向等のサイド情報(「付加情報」ともいう)を符号化してストリーム107を出力する。
 T・Q部1054によって算出された量子化係数から、画像を再構成するローカルデコード処理は、以下の処理を行う。
 IQ・IT部1055は、量子化係数を逆量子化および逆直交変換処理を行い、再構成差分画像を生成する。なお、IQ・IT部1055では、T・Q部1054でのDCT変換に対応して、DCT変換の逆処理であるIDCT変換(Inverse Discrete Cosine Transform)を行う。
 加算器1056は、面内予測部1052で生成した予測画像に、IQ・IT部1055で生成された再構成差分画像を加算して、再構成画像を生成する。
 DBF部1057は、再構成画像に対してデブロックフィルタ処理を行い、再構成フィルタ画像を生成する。
 ところで、H.264規格では面内予測を行うブロックの周辺画素を用いて面内予測を行うが、デブロックフィルタ処理を行う前の画素を用いる事が規定されている。そのため、周辺画素メモリ1059では、再構成画像のうち面内予測に用いることができる画素のみを保持する。
 フレームメモリ1058は、画面間予測を行うときの参照画像として、DBF部1057で生成された再構成フィルタ画像を保持する。
 レート制御部106は、符号化部105の符号化結果から、レート制御情報として平均量子化幅、発生符号量の遷移、バッファの占有状況等を算出し、次の入力画像を符号化するときの目標符号量、量子化幅等を決定する。
 ここで、面内予測モードと符号量との関係を説明する。4×4面内予測モードは4×4画素ブロック単位で面内予測を行うため、16×16画素ブロック単位での面内予測に比べて、よりきめ細かく面内予測を行うことができるうえ、それぞれの4×4画素ブロック毎に9つの予測方向から1つを選ぶことができるため予測性能が向上し、画素値の残差成分を少なくする事ができるというメリットがある。しかし、MBあたり16個の4×4画素ブロックがあり、それぞれのブロックに対して予測方向を示す情報をストリームに埋め込む必要があるため、オーバーヘッドが増えるというデメリットがある。一方、16×16面内予測モードは16×16画素ブロック単位での面内予測を行うため、画素値が一様なMBや、グラデーション、水平もしくは垂直方向にエッジがあるMBなどで残差成分を少なくできるが、これ以外の画像では残差成分が多くなってしまうというデメリットがある。ここで、画素値が一様であるとは、画素値のばらつきが少ない、画素値の変化幅が小さい、すなわち、画像が平坦であることを意味する。しかし、4×4面内予測と異なり、予測方向の情報はMBあたり1つで良いため、オーバーヘッドを削減できるというメリットがある。符号化対象MBの画像の特徴に従って適切なサイズを選択することで、符号量を抑制しつつ画質を維持することができる。また、量子化幅が大きく(粗く)なるにつれて、直交変換係数の高域成分が削られるため、すなわち、差分画像の画素値が平坦化されるため、オーバーヘッドの少ない16×16面内予測モードを選ぶ方が符号量抑制の観点で有利となる。しかし、周辺画素との相関がほとんど無く、高域成分が十分に削られない場合や、例えばMB内の画素値が白と黒の市松模様の画像のように斜め方向からの予測が有効な場合などは、4×4面内予測モードを選択する方が残差成分をより少なくできる予測モードを選択できるので、16×16面内予測モードを選択するよりも符号量を抑制できる点で有利となる。
 図2は、図1に示した面内予測ブロックサイズ決定部の詳細な構成を示すブロック図である。次に図2を用いて面内予測ブロックサイズ決定部103の詳細を説明する。図2に示すとおり、面内予測ブロックサイズ決定部103は、ブロックサイズ決定部1031とパラメータ調整部1032とで構成される。ブロックサイズ決定部1031は、予測ブロックサイズを決定する特徴量として例えば輝度の分散値を用いて、閾値との比較を行うことでブロックサイズを決定する。図3は、本実施の形態において面内予測ブロックサイズを決定する処理の一例を説明するフローチャートである。予測ブロックサイズを決定する処理のフローチャートは図3に示すとおりである。ブロックサイズ決定部1031は、ブロック特徴量算出部102により、M=N=16として(式2)を用いて算出される、MBの輝度分散値と閾値とを比較して(S301)、MBの輝度分散値が閾値以下である場合は(S301でYes)、符号化対象MBを輝度が一様なMBであると判定して予測ブロックサイズに16×16画素ブロックを選び(S302)、それ以外(S301でNo)は4×4画素ブロックを選択する(S303)。
 図3では、MBの輝度が一様であるか否かを、輝度の分散値を閾値と大小比較することによって判定し、その判定結果に従って、予測ブロックサイズを決定する最も簡単な一例について説明した。しかし、さらに精度よく発生符号量を抑制するためには、入力画像のエッジの方向やグラデーションなども考慮に入れて予測ブロックサイズを決定するのが好ましい。図4は、本実施の形態において面内予測ブロックサイズを決定する処理の他の一例を説明するフローチャートである。ブロックサイズ決定部1031は、まず、MBの輝度が一様であるか否かを判定する(S401)。なお、S401におけるブロックサイズ決定部1031の判定方法は、図3のS301と同じである。すなわち、ブロックサイズ決定部1031は、ブロック特徴量算出部102によって算出されたMBの輝度の分散値を閾値と比較して、輝度の分散値が閾値以下であれば、MBの輝度が一様であると判定する。輝度の分散値が閾値を超えれば、MBの輝度が一様ではないと判定する。
 ブロックサイズ決定部1031は、MBの輝度が一様であると判定した場合には(S401でYes)、予測ブロックサイズに16×16画素ブロックを選び(S404)、それ以外の場合は(S401でNo)、さらに、MBがグラデーションであるか否かを判定する(S402)。グラデーションの判定については、後に、図5および図6を用いて詳しく説明する。
 ブロックサイズ決定部1031は、MBがグラデーションであると判定した場合には(S402でYes)、予測ブロックサイズに16×16画素ブロックを選び(S404)、それ以外の場合は(S402でNo)、さらに、MB内に水平方向または垂直方向のエッジがあるか否かを判定する(S403)。エッジの有無の判定については、後に、図5を用いて詳しく説明する。
 ブロックサイズ決定部1031は、MB内に水平方向又は垂直方向のエッジがあると判定した場合には(S403でYes)、予測ブロックサイズに16×16画素ブロックを選び(S404)、それ以外の場合は(S403でNo)、予測ブロックサイズに4×4画素ブロックを選択する(S405)。
 まず、MB内に垂直方向または水平方向のエッジがあるか否かを判定する方法について説明する。
 図5は、エッジおよびグラデーションを表す画素値の変化を示す図である。図5(a)は、3×3画素のブロックを例として、エッジの一例を輝度の変化で表した図である。図5(a)左は、ブロック内の各画素の輝度を数値で表したものである。ここでは、BT.709規格の8ビット精度で16から235の間の値を用いた場合を想定する。図5(a)右は、輝度を縦軸として、図5(a)左のブロックの各画素の輝度の変化を棒グラフで表したものである。MB内にエッジがある場合には、エッジの方向と垂直な方向で、隣接画素とエッジに相当する画素との間で急激に輝度値が変化する。さらに、エッジの方向で、隣接画素同士は同じような輝度値をとる。例えば、図5(a)右のグラフに示すように、第2列の画素では、第1列の画素と比較して、輝度値が急激に変化し、輝度値の最大値に近い値となっている。また、第2列の画素の輝度値は、列方向にほぼ同じ値をとっている。従って、第2列の画素がエッジに相当することが分かる。なお、図5(a)では、エッジが垂直方向に1画素の幅であるものを例としているが、第3列が第2列と同じ値をとった場合でも、第2列の画素がエッジに相当する。
 エッジの場合、エッジの方向には隣接画素間の輝度値の差分はほぼ0となり、エッジに垂直な方向には隣接画素間の輝度値の差分は非常に大きな値となる。このようなエッジの特徴は、ブロック特徴量算出部102が算出した垂直方向および水平方向の隣接画素差分絶対値和を用いて検出することができる。すなわち、図5(a)右に示すように、垂直方向にエッジがある場合には、垂直方向(列方向)の輝度値の隣接画素差分絶対値和avは0に近い値となり、水平方向(行方向)の輝度値の隣接画素差分絶対値和ahは、非常に大きい値となる傾向がある。従って、垂直方向にエッジがあるか否かは、垂直方向の隣接画素差分絶対値和avが、あらかじめ定めた閾値Thv(av)以下であり、かつ、水平方向の隣接画素差分絶対値和ahが、あらかじめ定めた閾値Thv(ah)を超えるか否かを判定することによって、判定することができる。逆に、水平方向にエッジがあるか否かは、水平方向の隣接画素差分絶対値和ahが、あらかじめ定めた閾値Thh(ah)以下であり、かつ、垂直方向の隣接画素差分絶対値和avが、あらかじめ定めた閾値Thh(av)を超えるか否かを判定することによって、判定することができる。
 次に、MBがグラデーションであるか否かを判定する方法について説明する。
 図5(b)は、3×3画素のブロックを例として、グラデーションの一例を輝度の変化で表した図である。図5(b)左は、ブロック内の各画素の輝度を数値で表したものである。図5(b)右は、輝度を縦軸として、図5(b)左のブロックの各画素の輝度の変化を棒グラフで表したものである。MB内の画像がグラデーションである場合は、輝度値(色差でもよい)が一方向に向かって徐々に増加または徐々に低減する傾向がある。図5(b)右のグラフに示すように、図5(b)左のブロックの例では、各画素の輝度値が垂直方向にはほとんど変化せず、水平方向右向きに徐々に増加していることがわかる。このようなエッジおよびグラデーションの特徴は、ブロック特徴量算出部102が算出した垂直方向および水平方向の隣接画素差分絶対値和、またはブロック特徴量算出部102が各MBの垂直方向および水平方向の隣接画素差分絶対値和を算出する途中の値を用いて検出することができる。
 図6は、水平方向および垂直方向の隣接画素間の画素値の差分の算出方法を示す概念図である。図6(a)では、矢印で示す水平方向(行方向)の隣接画素間で画素値の差分を算出することを示し、図6(b)では、矢印で示す垂直方向(列方向)の隣接画素間で画素値の差分を算出することを示している。輝度についての水平方向での隣接画素差分は、ブロック内の行ごとに計算される。式で表せば、水平方向の隣接画素間の輝度値の差分は、{a(i,j)-a(i,j+1)}で表される。また、垂直方向での隣接画素差分は、ブロック内の列ごとに計算される。式で表せば、垂直方向の隣接画素間の輝度値の差分は、{a(i,j)-a(i+1,j)}で表される。
 グラデーションの場合、隣接画素間の輝度値の差分は、ある方向では一様に0に近い値となり、かつ、その方向と垂直になる方向では差分の大きさが閾値以下でほぼ一定の値となる傾向がある。従って、ブロックサイズ決定部1031は、ブロック特徴量算出部102で算出されるこれらの隣接画素間の輝度値の差分がいずれも0に近くなる方向があるか否かを検出する。すなわち、ブロックサイズ決定部1031は、垂直または水平方向で隣接画素間の画素値の変化の度合いが小さくなるか否かを検出する。そのような方向が検出された場合には、検出された方向に対して垂直の方向で隣接画素間の輝度値の差分の符号が一定であるか、隣接画素間の輝度値の差分があらかじめ定めておいた閾値以下の幅であるかを判定することによって、垂直方向または水平方向にグラデーションがあるか否かを判定することができる。
 なお、図5(b)では、グラデーションの例として、ブロック内の各画素の輝度値が水平方向に一次曲線的に変化する場合、すなわち、一定の傾きを持つ場合を示したが、これに限らず、二次曲線または三次曲線的に変化する場合であってもよい。また、ここでは、隣接画素間の輝度値の差分を用いて、グラデーションの判定を行ったが、ブロック内における各方向の輝度値の変化の度合いを、一次微分を用いて計算するとしてもよい。また、グラフィック処理における従来技術を用いて、グラデーションを検出するとしてもよい。
 以上のようにして本実施の形態1によれば、MBの輝度が一様であるか否か、すなわち、MBの輝度値のばらつきが閾値以下であるか否かに基づいて予測ブロックサイズを決定できるだけでなく、さらに、MBが水平または垂直方向にグラデーションであるか否か、MB内に水平または垂直方向のエッジがあるか否かに基づいて、予測ブロックサイズを決定することができる。これにより、予測ブロックサイズを16×16画素ブロックとすることが原因で、予測が全く当たらないため残差成分が非常に大きくなるという問題が生じる場合には、予測ブロックサイズとして4×4画素ブロックを選択し、このような問題を生じない場合にのみ予測ブロックサイズとして16×16画素ブロックを選択することができるので、より精度よく発生符号量を抑制することができるという効果がある。
 このように、本実施の形態1の画像符号化装置100によれば、図1に示した符号化部105、ブロック特徴量算出部102および面内予測ブロックサイズ決定部103だけでも、16×16画素ブロックを単位とした面内予測における従来の課題を十分に解決できる構成であることが明らかである。
 これに加えて、さらに、実施の形態1では、発生符号量が多い場合には、予測ブロックサイズとして16×16画素ブロックがより選択されやすくするために、MBの輝度が一様であるか否かを判定するための閾値を、ピクチャ単位で量子化幅に応じて設定する。
 パラメータ調整部1032は、レート制御情報を用いて、図3のS301または図4のS401の判定に用いられる閾値である制御パラメータ104を調整し、ブロックサイズ決定部1031の閾値を生成する。例えば、以下のように閾値を決定する場合を説明する。量子化幅に応じた閾値のリストは制御パラメータ104に含まれており、ピクチャ単位で設定される。
 この場合、パラメータ調整部1032が、レート制御情報の一つである量子化幅(QP)に連動して変動する、以下のような閾値のリストをあらかじめ保持しておく。
    QP≦33・・・閾値0
 33<QP≦39・・・閾値1
 39<QP≦45・・・閾値2
 45<QP   ・・・閾値3
 上記のように、閾値のリストを量子化幅QPが大きくなるほど閾値が大きくなるように、すなわち、閾値0<閾値1<閾値2<閾値3となるように、閾値0から閾値3を設定することで、ブロックサイズ決定部1031が16×16画素ブロックを選択する選択率を、増加させることが可能となる。また、QPの上限が51であるため、これに近づくにつれて閾値2から閾値3の増加量をさらに大きくすることで16×16画素ブロックの選択率をさらに増加させる事が可能となる。
 図7は、閾値0から閾値3、および量子化パラメータQPを用いて、輝度の分散値の閾値を算出する処理を説明するフローチャートである。パラメータ調整部1032は、まず、外部のレジスタなどから制御パラメータ104を取得し、制御パラメータ104に含まれる閾値のリストを抽出する(S701)。次いで、パラメータ調整部1032は、レート制御部106から量子化パラメータQPを取得する(S702)。パラメータ調整部1032は、量子化パラメータQPの値が33以下であるか否かを判定し(S703)、量子化パラメータQPの値が33以下であれば(S703においてYes)、閾値=閾値0と設定する(S704)。すなわち、ステップS704で決定された閾値を識別するための閾値番号を保持するためのレジスタに、値「0」を格納する。
 量子化パラメータQPの値が33を超えていれば(S703においてNo)、パラメータ調整部1032は、さらに、量子化パラメータQPの値が39以下であるか否かを判定し(S705)、量子化パラメータQPの値が39以下であれば(S705においてYes)、閾値=閾値1と設定する(S706)。
 量子化パラメータQPの値が39を超えていれば(S705においてNo)、パラメータ調整部1032は、さらに、量子化パラメータQPの値が45以下であるか否かを判定し(S707)、量子化パラメータQPの値が45以下であれば(S707においてYes)、閾値=閾値2と設定する(S708)。
 量子化パラメータQPの値が45を超えていれば(S707においてNo)、パラメータ調整部1032は、閾値=閾値3と設定する(S709)。
 なお、ここでは、量子化幅の増加に応じて大きくなる閾値のリストを制御パラメータ104に含めて記憶しておく例を説明したが、本発明はこれに限定されない。閾値のリストは、例えば、ルックアップテーブルなどの形式で、量子化幅の範囲とあらかじめ計算しておいた閾値とを組にして、任意のメモリ、例えば、記録媒体及び外部メモリなどに記憶しておいてもよい。また、閾値のリストを記憶しておくのではなく、量子化幅に応じた重み係数をあらかじめ定めておき、量子化幅に応じた係数を用いた1次式又は他の関数で表される演算式を用いて、閾値を算出するとしてもよい。
 また、ここでは、量子化幅の増加に応じて閾値の大きさを大きくするよう制御したが、閾値を制御する代わりに、すなわち、閾値の値は変更しないで、量子化幅の増加に応じた重み付け係数を、輝度の分散値に対して乗じることとしてもよい。
 さらに、上記実施の形態では、量子化幅の増加に応じて閾値と分散値との比較の基準(すなわち、閾値のリスト)を変更したが、本発明はこれに限定されず、例えば、画素値の分散値と、量子化幅の増加とに応じて、大きい予測ブロックサイズが選択される確率をあらかじめ決めておき、分散値と量子化幅との組み合わせに応じて、前記確率で大きい予測ブロックサイズを選択するとしてもよい。例えば、QPが40以上45以下のときには大きい予測ブロックサイズを7割の確率で選択させるように設定する場合には、例えば、1から10までの自然数をランダムに発生させ、発生されたランダム値が1以上7以下のいずれかの値であれば大きい予測ブロックサイズを選択し、8以上10以下の値であれば小さい予測ブロックサイズを選択するというように制御してもよい。もちろん、このように制御した場合であっても、ここで例示した数値に限定されることはない。
 また、量子化幅に応じて、輝度の分散値に対応する予測ブロックサイズが定められたテーブルを用いることによって、量子化幅が大きくなるほど、同じ分散値であっても、大きい予測ブロックサイズが選択されやすくなるように基準を定めてもよい。例えば、符号化対象マクロブロック内の輝度の分散値に対して選択すべき予測ブロックサイズが対応付けられたテーブルを、あらかじめ定められた量子化幅ごとに用意しておく。この場合、量子化幅が大きくなるほど、より小さい分散値に対して、大きい予測ブロックサイズが割り当てられるテーブルを用意する。
 また、さらに他の例としては、閾値を量子化幅に連動して変化させる代わりに、例えば、記録モードや目標符号量に応じて閾値を変動させることとしてもよい。すなわち、符号化データを記録するビットレートが低くなる記録モードでは16×16画素MBサイズが選択されやすくすることによってオーバーヘッドを減らして発生符号量を低減し、記録するビットレートが高くなる記録モードでは4×4画素ブロックサイズが選択されやすくすることによって符号化精度(解像度)を高めるとしてもよい。また、目標符号量が低いときには16×16画素MBサイズが選択されやすくすることによって発生符号量を低減し、目標符号量が高いときには4×4画素ブロックサイズが選択されやすくすることによって符号化精度を高めるとしてもよい。
 なお、上記実施の形態1の他の例では、水平または垂直方向にエッジがあるか否か、および、水平または垂直方向にグラデーションか否かの両方を検出して予測ブロックサイズを決定したが、エッジとグラデーションのいずれか一方を検出して予測ブロックサイズを決定するとしてもよい。
 また、ブロックサイズ決定部1031で用いる指標として、MBの輝度分散値を例としてあげたが、色差の分散値を用いてもよいし、色差の隣接画素差分絶対値和、および色差の符号を考慮した隣接画素差分等の特徴量を用いることで、図4に示すように画素値(輝度、および色差)が一様か、グラデーションであるか、エッジがあるかを判定してブロックサイズを決定することが可能である。
 (実施の形態2)
 上記実施の形態1では、MBの輝度分散値と閾値とを比較することによってMBの輝度が一様であるか否かを判定し、判定結果に従って、予測ブロックサイズを決定する方式を例としてあげたが、本発明はこれに限定されない。例えば、MB内に、平坦な画像からなる背景の中にコントラストの高い部分画像を含んでいる場合には、16×16画素MBサイズで面内予測符号化を行うよりも、それぞれの画像ごとに小さいブロックサイズで面内予測符号化を行った方が、発生符号量を少なくすることが可能な場合がある。本実施の形態2では、このような場合に対し、16×16画素MB全体の輝度分散値と、当該MB内の4×4画素ブロックごとの輝度分散値とを比較して、16×16画素MB全体の分散値よりも分散値が小さい4×4画素ブロックの数を計数し、計数した数が一定数よりも多い場合には、当該MBを4×4画素ブロックサイズで面内予測符号化するものと決定する。
 より具体的には、まず、前記一定数として、ブロック数に関する閾値Th(n)を制御パラメータ104に含めて外部メモリに格納しておく。また、ブロック特徴量算出部102は、MBだけでなく、MB内のすべての4×4画素ブロックについてもブロック特徴量、ここでは輝度分散値を算出する。ブロックサイズ決定部1031は、MBの輝度分散値とMB内の各4×4画素ブロックの輝度分散値とを比較して、4×4画素ブロックの輝度分散値がMBの輝度分散値より小さい場合には、その4×4画素ブロックの数を算出する。次いで、算出した4×4画素ブロックの数と、制御パラメータ104から読み出したブロック数に関する閾値Th(n)とを比較し、4×4画素ブロックの数が閾値Th(n)を超えていれば予測ブロックサイズとして4×4画素ブロックを選択し、算出した4×4画素ブロックの数が閾値Th(n)以下であれば予測ブロックサイズとして16×16画素ブロックを選択する。
 図8は、輝度の分散値が16×16画素MBよりも小さい4×4画素ブロックの個数が多いときに、4×4画素ブロックを単位として面内予測を行った方が発生符号量を低減できる画像の一例を示す図である。同図に示すように、16×16画素MBは、4×4画素ブロックに比べてかなりサイズが大きい。その結果、MB内に、例えば、空のように一様な画像を背景として、人の頭部や顔などのコントラストの高い画像を含んでしまう場合がある。このような場合、MBの輝度の分散値が、内部に含まれるコントラストの高い画像の影響を受けて大きな値となりやすい。これに対し、4×4画素ブロックでは、背景においても、人の頭部の画像においても、空と頭部との画像の境界部分を含むブロック以外では輝度が一様であるので、輝度の分散が小さくなるブロックの数が多くカウントされることになる。このような場合、MBを単位とするよりも、輝度の分散値が小さい4×4画素ブロックを単位として面内予測を行った方が、残差成分を精度よく低減でき、発生符号量を抑制することができる。
 図9は、図8の画像を表す16×16画素MBにおいて頭部の画像を横切る水平方向のライン上の各画素の輝度を表す図である。同図は、さらに、図8のようなエッジを含んだ画像を16×16画素ブロックサイズで水平方向に面内予測符号化した場合に、エッジ部分の量子化ノイズがMBの復号化画像の全体に波及する様子を点線で示している。なお、図9では、左から4×4画素ブロックごとの区切りを縦の破線で示し、各画素の水平方向の画素値である輝度の値を実線で示している。同図において、各画素の輝度は、左端から右水平方向に、1番目の画素から11番目の画素まで一定の高い値(空の青色を表す輝度)を示している。これに対し、左から12番目の画素では、輝度が急に低い値(頭部の黒を表す輝度)となり、そのまま16番目の画素まで、一定の値を示している。従って、左から1番目の4×4画素ブロックと2番目の4×4画素ブロックとでは、輝度は一定なのでその分散は低い値となり、左から3番目の4×4画素ブロックでは、エッジを含むために輝度の分散が大きな値となり、次の4番目の4×4画素ブロックでは、再び輝度が一定となり、その分散は低い値となる。このような場合、空の画像と頭部の画像との境界にあたるエッジが、垂直方向だけであれば、16×16画素の予測ブロックサイズで面内予測を行えば、予測残差を低く抑えることができる。ところが、図8の頭部の画像に示すように、コントラストの高い頭部の画像がMB内の一部の画像である場合には、図12(b)の垂直方向の予測方向を単純に適用することができない。図8に示したような画像では、例えば、左から4列目、上から2番目の4×4画素ブロックでは、水平方向のエッジが含まれているからである。
 図8のような画像に対して、16×16画素ブロックサイズでの水平方向の面内予測符号化を適用した場合には、その画像を復号化しても、図9の実線で示した輝度値には復号化されず、図9に破線で示すように、左から3番目の4×4画素ブロック内のエッジに対して生じた量子化誤差が、本来、輝度が一様な平坦な画像である1番目、2番目、および4番目の4×4画素ブロックにまで波及してしまう。この結果、復号化された画像では、一面の青空のような平坦な画像の中に、量子化誤差の影響によるノイズが現れてしまうというような画像の劣化を生じてしまう。このような場合、特に、平坦な画像の中にノイズが生じるので、画像の不具合が余計に目に付くという問題がある。
 従って、このような画像の場合には、4×4画素ブロックを予測ブロックサイズとして面内予測した方が、エッジによる量子化誤差に起因した復号化画像内のノイズを4×4画素ブロックの範囲内に留めることができ、たとえエッジによる量子化誤差を生じたとしても、そのノイズが目に付かず、きれいな復号化画像を得ることができる。
 図10は、本実施の形態2において予測ブロックサイズを決定する処理の一例を説明するフローチャートである。以下、図10に示すフローチャートに従って、本実施の形態2の画像符号化装置のより詳細な動作を説明する。まず、前提として、あらかじめブロック数に関する閾値Th(n)を制御パラメータ104に含めて外部メモリに格納しておき、パラメータ調整部1032は、外部メモリから閾値Th(n)を読み出しておく。また、初期値として、ブロック数をカウントするレジスタの初期値を0としておく。
 ブロック特徴量算出部102は、MBの輝度の分散値を算出する(S901)。次いで、ブロックサイズ決定部1031は、MB内の1つの4×4画素ブロックの輝度の分散値を算出し(S902)、算出した4×4画素ブロックの輝度の分散値が、ブロック特徴量算出部102で算出されたMBの輝度の分散値よりも小さいか否かを判定する(S903)。4×4画素ブロックの輝度の分散値がMBの輝度の分散値よりも小さければ(S903でYes)、ブロック数をカウントするレジスタ内の値を1だけインクリメントし(S904)、4×4画素ブロックの輝度の分散値がMBの輝度の分散値以上であれば(S903でNo)、S904の処理をスキップして、次の4×4画素ブロックにつき、輝度の分散値を算出する(S902)。このようにして、ブロックサイズ決定部1031は、MB内のすべての4×4画素ブロックについて、順次、MBの輝度の分散値と4×4画素ブロックの輝度の分散値とを比較して、MBよりも輝度の分散値が小さい4×4画素ブロックの数をカウントする。
 MB内のすべての4×4画素ブロックについて、MBよりも輝度の分散値が小さい4×4画素ブロックの数をカウントしたら、ブロックサイズ決定部1031は、カウントしたブロック数が、パラメータ調整部1032から取得した閾値Th(n)以下であるか否かを判定する(S905)。カウントしたブロック数が閾値Th(n)以下であれば(S905でYes)、16×16画素MBサイズで面内予測を行うことを決定する(S906)。カウントしたブロック数が閾値Th(n)を超えていれば(S905でNo)、4×4画素ブロックサイズで面内予測を行うことを決定する(S907)。
 以上の処理により、1つのMBにつき、MB内に空などの一様な画像を背景として、人間の頭部や顔などのコントラストの高い画像が含まれる場合であっても、精度よく予測残差を低減できる予測ブロックサイズを決定することができる。
 すなわち、本発明の画像符号化装置では、前記特徴量算出部は、前記サイズ決定部によって16×16画素ブロックサイズが選択されたとき、さらに、前記符号化対象マクロブロックに含まれるすべての4×4画素ブロックについて、前記4×4画素ブロックに属する画素の画素値に基づいて分散値を算出し、前記サイズ決定部は、前記16×16画素ブロックに対して算出した分散値と、前記各4×4画素ブロックに対して算出した分散値とを比較し、当該比較の結果に基づいて、16×16画素ブロックと4×4画素ブロックとを選択的に切り替える。
 従って、ブロックサイズ決定部によって、一旦、16×16画素ブロックサイズが選択されたときでも、さらに、前記符号化対象マクロブロックに含まれるすべての4×4画素ブロックについて、当該符号化対象マクロブロックの画素値の分散値よりも画素値の分散値が小さいすべての前記4×4画素ブロックの数を計数し、計数した前記4×4画素ブロックの数が所定数以下の場合には16×16画素ブロックサイズを選択し、計数した前記4×4画素ブロックの数が前記所定数を超える場合には4×4画素ブロックサイズを選択することができる。これにより、一旦、16×16画素ブロックサイズが選択された場合であっても、当該符号化対象マクロブロックが4×4画素予測ブロックサイズで面内予測符号化した方が適切な画像であるか否かを判断し、4×4画素予測ブロックサイズで面内予測符号化した方が適切である場合には、4×4画素予測ブロックサイズで面内予測符号化を行うことができる。その結果、面内予測符号化による発生符号量を精度良く低減することができるとともに、符号化対象マクロブロック内にコントラストが強い画像が含まれることによって、量子化誤差によるノイズが当該符号化対象マクロブロックの復号化画像全体に波及することを防止し、入力画像により近い復号化画像を得ることができる。
 これに加えて、さらに上述の実施の形態1で示した方式と同様に、量子化パラメータQPに連動して4×4画素ブロックの輝度分散値のオフセットを調整するとしてもよい。具体的には、図10のS902で量子化パラメータQPに連動して調整したオフセットoffset(n)を4×4画素ブロックの輝度分散値に加算し、S903でオフセットoffset(n)を加算した4×4画素ブロックの輝度分散値と、MBの輝度分散値とを比較するようにしてもよい。このように、4×4画素ブロックの輝度分散値に対するオフセットを量子化パラメータQPと連動させることによって、発生符号量が多いときには、16×16画素MBサイズが選択される確率(頻度または割合)が高くなるようにすることができる。
 また、ブロックサイズ決定部1031で用いる指標として、MBの輝度分散値を例としてあげたが、色差の分散値を用いてもよいし、色差の隣接画素差分絶対値和、および色差の符号を考慮した隣接画素差分等の特徴量を用いることで、図4に示すように画素値(輝度、および色差)が一様か、グラデーションであるか、エッジがあるかを判定してブロックサイズを決定することが可能である。
 (実施の形態3)
 また、上述の実施の形態1では、量子化パラメータに応じて、面内予測符号化の単位となる面内予測ブロックのサイズを制御する方法を説明した。具体的には、量子化パラメータが大きくなるほど、大きいブロックサイズの面内予測ブロックが選択されやすくなるよう、量子化パラメータQPに連動して閾値を制御する方式を例とし、実施の形態2では4×4画素ブロックの輝度分散値に対するオフセットを制御する方式を例としたが、本発明はこれに限定されない。本実施の形態3では、デコーダモデルのバッファシミュレーションの値に基づき、デコーダ側での符号化データのバッファ占有量がアンダーフローレベルに近づくにつれて、閾値に乗算する乗数を大きくするという制御を行う。このバッファシミュレーションでは、例えば、直前に符号化されたピクチャ内で、CAVLC(Context-Adaptive Variable Length Coding)により実際に発生した符号量が用いられる。また、レート制御部106によるバッファへのデータ転送制御には、VBR(Variable Bit Rate)制御が採用される。
 図11は、デコーダのバッファシミュレーションにおける発生符号量の制御を説明する図である。より具体的には、図11に示すように、縦軸はバッファの符号化データ占有量を示し、横軸は時刻を示している。デコーダ側のバッファには、外部のメディア、ネットワーク等から読み込まれた符号化データが、一定ビットレートで蓄積される。これに対してデコーダは、同図において上方向の矢印で示すように、復号化対象となる符号化データを、仮想的に1ピクチャ分ずつ瞬時に読み出して復号化する。なお、バッファからの符号化データの読み出しは、実際には同図のように瞬間的には読み出せないが、仮想的に瞬時に行われるものとしてシミュレーションしている。従って、バッファにおける符号化データの蓄積量が少ないときに、符号量の大きなピクチャが復号化対象ピクチャとなった場合、一気に大量の符号化データが読み出され、アンダーフローを生じてしまう。その結果、1ピクチャ分の符号化データを正常に読み出せなかったピクチャのデータが不足することにより、画像が崩れてしまったり、駒落ちが発生したりという不具合が生じる。また、このようなアンダーフローにより、参照画像が駒落ちした場合には、次のIDRピクチャまたはIピクチャまで復号化が停止してしまうという不都合を生じる。オーバーフローの場合に関しては、VBR制御を採用しているDVD(Digital Versatile Disc)やBD(Blu-ray Disc)等では、バッファがいっぱいになったらデータ転送を止めればよいので、問題にならない。これに対し、データの伝送を途中で止められない放送などの場合には、CBR(Constant Bit Rate)制御を採用しているため、オーバーフローの場合にもアンダーフローと同様の問題が発生する。従来では、アンダーフローおよびオーバーフローのいずれの場合に対しても、バッファ内の符号データ残量が上下のコントロールラインに達したとき、発生符号量を抑制したり、外部からの符号化データの読み出しを停止したりするなどの方法がとられている。
 これに対し、このような不都合を解消するために、本実施の形態3では、アンダーフローを引き起こさないようにバッファ内の符号化データ残量がコントロールラインに達したとき、発生符号量を抑制するため、閾値の乗数を大きくし、16×16画素予測ブロックサイズを選択しやすくする。
 なお、ここでは、バッファ内の符号化データ残量が少なくなるほど16×16画素予測ブロックサイズが選択されやすくなるよう、符号化データ残量が少なくなるほど閾値の乗数を大きくするよう制御したが、閾値の乗数を大きくするのではなく、実施の形態1で示した量子化パラメータQPと閾値0~閾値3との対応関係と同様にして、コントロールラインを何段階かに分割し、アンダーフローに近づくにつれ閾値を大きくするよう制御するとしてもよい。例えば、パラメータ調整部1032の内部に、バッファ内の符号化データ残量と閾値との対応を示すリストを、ルックアップテーブルなどにして保持しておくとしてもよい。そして、対象MBの面内予測を行う際のバッファ内の符号化データ残量に応じた閾値をテーブルから読み出して、読み出した閾値と当該対象MBの輝度値の分散とを比較し、その比較結果に従って、当該対象MBの予測ブロックサイズを決定するとしてもよい。また、実施の形態1と実施の形態3とを組み合わせて、バッファ内の符号化データ残量と、そのときの量子化幅とに応じた閾値をあらかじめ定めておいてもよい。このように、バッファ内の符号化データ残量が少なくなるほど、値が大きくなるように定められた閾値を用いて対象MBの予測ブロックサイズを決定することによって、バッファ内の符号化データ残量が少なくなるほど、大きいブロックサイズを選択しやすくすることで、次のピクチャの発生符号量を抑制することができ、バッファ内の符号化データ残量をすみやかに適正な量に戻すことができるという効果がある。
 或いは、これまでに符号化した全ピクチャで、ピクチャ毎に発生した符号量の平均が目標符号量に対して多くなるにつれて閾値または閾値の増加量を大きくするとしてもよい。このようにすることで、ピクチャごとの発生符号量が目標符号量を超えて増加するにつれて閾値又は閾値の増加量が大きくなるため、予測ブロックサイズとして16×16MBブロックサイズがより選択されやすくなり、発生符号量をタイミングよく低減することができるという効果がある。
 なお、上記実施の形態では、バッファシミュレーションにおいて、CAVLCによる実際の発生符号量に基づいて、面内予測におけるブロックサイズの決定を行ったが、本発明はこれに限定されず、例えば、CABAC(Context-based Adaptive Binary Arithmetic Coding)による実際の発生符号量に基づいて、上記ブロックサイズの決定を行うとしてもよい。また、本発明は実際に発生した符号量に基づいてブロックサイズを決定する必要はなく、実際の発生符号量の代わりに、例えば、算術符号化前の2値化データなど、符号化の中間段階で発生したデータの量に基づいて予測ブロックサイズを決定するとしてもよい。さらにまた、2値化データから発生符号量を推定し、その推定符号量に基づいて予測ブロックサイズを決定するとしてもよい。このように、中間段階のデータ量に基づいてレート制御を行うことにより、CABACのような計算量の多い算術符号化を経て実際の発生符号量に基づいてレート制御を行う場合よりも、よりリアルタイムに発生符号量の制御を行うことができるというメリットがある。
 なお、上記実施の形態3では、VBR制御でデータ転送を行うことを前提としたバッファシミュレーションの場合について説明したが、本発明は、CBR制御でデータ転送を行う場合についても、適用可能である。CBR制御の場合には、オーバーフローも発生させてはいけないので、オーバーフローが発生しないように予測ブロックサイズを適応的に選択する。具体的には、バッファ内の残存符号量がオーバーフローに近づくほど、例えば、閾値を小さくすることによって16×16画素予測ブロックサイズが選択されにくくなるよう制御する。
 さらにまた、符号化対象ピクチャの直近、すなわち、符号化対象ピクチャが符号化される直前で符号化された符号化済みの所定枚数のピクチャにおける発生符号量が目標符号量に対して多くなるにつれて、閾値を算出するための演算式中の係数を大きくして算出するとしてもよい。また、これらを単独、或いは複合的に組み合わせて閾値を制御することも可能である。例えば、量子化パラメータQPに応じて設定される閾値と、バッファ内の符号化データ残量に応じて設定される閾値との平均を求め、求めた平均値を閾値としてもよい。
 さらに、本実施の形態においても、発生符号量に基づいて閾値を制御することによって、発生符号量が大きくなるほど16×16画素予測ブロックサイズが選択されやすくなるように制御したが、本発明はこれに限定されない。例えば、バッファシミュレーションにおける発生符号量に応じて、当該対象MBの輝度値の分散と、それに対応して選択されるべき予測ブロックサイズとの対応を示したルックアップテーブルを用意しておく。すなわち、シミュレーションにおける発生符号量が大きくなるほど、より低い輝度分散値に対して、16×16画素の予測ブロックサイズが選択されるように定められたテーブルを用意しておき、シミュレーションによる発生符号量ごとに、当該発生符号量に対応するルックアップテーブルを参照して、輝度値の分散に対応する予測ブロックサイズを選択するとしてもよいことは言うまでもない。
 また、上記の実施の形態1、実施の形態2、および実施の形態3は、互いに矛盾しない限り、任意に組み合わせて実施できることはいうまでもない。すなわち、本発明は、前記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の改良、変形が可能であることは勿論である。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 なお、ブロック図(図1および図2など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。例えばメモリ以外の機能ブロックが1チップ化されていても良い。
 ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
 また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
 さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
 また、各機能ブロックのうち、符号化または復号化の対象となるデータを格納する手段だけ1チップ化せずに別構成としても良い。
 本発明の画像符号化装置およびその方法は、動画像データをH.264規格のMain profileまたはBaseline profileで符号化し、符号化された符号化動画像データを放送し、ネットワーク上のサーバ装置にアップロードし、または録画する用途、放送装置、記録装置および携帯情報端末などに有用である。
  100  画像符号化装置
  101  入力画像
  102  ブロック特徴量算出部
  103  面内予測ブロックサイズ決定部
  104  制御パラメータ
  105  符号化部
  106  レート制御部
  107  ストリーム
  1031  ブロックサイズ決定部
  1032  パラメータ調整部
  1050  エントロピー符号化部
  1051  減算器
  1052  面内予測部
  1053  面内予測方向決定部
  1054  T・Q部
  1055  IQ・IT部
  1056  加算器
  1057  DBF部
  1058  フレームメモリ
  1059  周辺画素メモリ

Claims (9)

  1.  入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化装置であって、
     前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、当該画素値の統計情報を算出する特徴量算出部と、
     算出された前記統計情報に基づいて、前記符号化対象マクロブロック内で所定の方向に対する画素値の変化の度合いが小さいほど、より大きい面内予測ブロックサイズが選択されるよう所定の基準に従って、前記面内予測ブロックサイズを決定するサイズ決定部と、
     決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する符号化部とを備える
     画像符号化装置。
  2.  前記特徴量算出部は、前記符号化対象マクロブロックに属する画素の画素値の分散値を前記統計情報として算出し、
     前記サイズ決定部は、前記分散値が前記基準に従って小さいと判断された場合には、前記面内予測ブロックサイズとして、16×16画素ブロックサイズを選択する
     請求項1記載の画像符号化装置。
  3.  前記特徴量算出部は、さらに、前記符号化対象マクロブロックに属する画素の画素値に基づいて、隣接する画素値との差分絶対値を前記符号化対象マクロブロックに属するそれぞれの画素において算出し、算出した差分絶対値和の総和を前記統計情報として算出し、
     前記サイズ決定部は、前記分散値が前記基準に従って大きいと判断された場合には、前記総和に基づいて、前記面内予測ブロックサイズを16×16画素ブロックサイズとするか否かを選択する
     請求項2記載の画像符号化装置。
  4.  前記特徴量算出部は、記符号化対象マクロブロックに属する画素の画素値に基づいて、隣接する画素値との隣接差分値を前記符号化対象マクロブロックに属するそれぞれの画素において算出し、
     前記サイズ決定部は、前記分散値が前記基準に従って大きいと判断された場合には、前記隣接差分値に基づいて、前記面内予測ブロックサイズを16×16画素ブロックサイズとするか否かを選択する
     請求項2または3記載の画像符号化装置。
  5.  前記画像符号化装置は、さらに、前記符号化部から出力される出力信号の発生符号量を制御するためのレート制御情報を生成するレート制御部を備え、
     前記サイズ決定部は、前記レート制御部で生成された前記レート制御情報から発生符号量の抑制度合いを判定し、前記判定結果である前記抑制度合いに連動して、同一の前記統計情報に対して、大きい面内予測ブロックサイズがより選択されやすくなるように前記基準を制御する
     請求項1~4のいずれか1項に記載の画像符号化装置。
  6.  前記サイズ決定部は、前記レート制御部で生成された前記レート制御情報で示される量子化幅が大きいほど、同一の統計情報に対して、大きな面内予測ブロックサイズが選択されやすくなるように前記基準を制御する
     請求項5記載の画像符号化装置。
  7.  前記サイズ決定部は、前記レート制御部で前記レート制御情報として生成された、デコードシミュレーション用バッファにおける符号化データのバッファ占有量に連動して、前記バッファ占有量がアンダーフローに近づくほど、同一の前記統計情報に対して、大きな面内予測ブロックサイズが選択されやすくなるように前記基準を制御する
     請求項5記載の画像符号化装置。
  8.  前記特徴量算出部は、前記サイズ決定部によって16×16画素ブロックサイズが選択されたとき、さらに、前記符号化対象マクロブロックに含まれるすべての4×4画素ブロックについて、前記4×4画素ブロックに属する画素の画素値に基づいて分散値を算出し、
     前記サイズ決定部は、前記16×16画素ブロックに対して算出した分散値と、前記各4×4画素ブロックに対して算出した分散値とを比較し、当該比較の結果に基づいて、16×16画素ブロックサイズと4×4画素ブロックサイズを選択的に切り替える、
     請求項1または2記載の画像符号化装置。
  9.  入力画像内の符号化対象マクロブロックを、複数のサイズを有する面内予測ブロックを単位として面内予測符号化する画像符号化方法であって、
     前記入力画像内の前記符号化対象マクロブロックに属する画素の画素値に基づいて、当該画素値の統計情報を算出し、
     算出された前記統計情報に基づいて、前記符号化対象マクロブロック内で所定の方向に対する画素値の変化の度合いが小さいほど、より大きい面内予測ブロックサイズが選択されるよう所定の基準に従って、前記面内予測ブロックサイズを決定し、
     決定された前記サイズの面内予測ブロックを単位として、前記符号化対象マクロブロックを面内予測符号化する、
     画像符号化方法。
PCT/JP2010/007592 2009-12-28 2010-12-28 画像符号化装置および方法 WO2011080925A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011547337A JP5470405B2 (ja) 2009-12-28 2010-12-28 画像符号化装置および方法
US13/148,111 US9369720B2 (en) 2009-12-28 2010-12-28 Image coding apparatus and image coding method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009298928 2009-12-28
JP2009-298928 2009-12-28

Publications (1)

Publication Number Publication Date
WO2011080925A1 true WO2011080925A1 (ja) 2011-07-07

Family

ID=44226349

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/007592 WO2011080925A1 (ja) 2009-12-28 2010-12-28 画像符号化装置および方法

Country Status (3)

Country Link
US (1) US9369720B2 (ja)
JP (1) JP5470405B2 (ja)
WO (1) WO2011080925A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013258501A (ja) * 2012-06-11 2013-12-26 Canon Inc 画像処理装置、画像処理方法
JP2018093386A (ja) * 2016-12-05 2018-06-14 キヤノン株式会社 符号化装置及び符号化方法
JP2019102861A (ja) * 2017-11-29 2019-06-24 富士通株式会社 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
WO2021117091A1 (ja) * 2019-12-09 2021-06-17 日本電信電話株式会社 符号化方法、符号化装置、及びプログラム
WO2023005830A1 (zh) * 2021-07-29 2023-02-02 维沃移动通信有限公司 预测编码方法、装置和电子设备

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10897625B2 (en) * 2009-11-20 2021-01-19 Texas Instruments Incorporated Block artifact suppression in video coding
US8483272B2 (en) * 2010-09-24 2013-07-09 Intel Corporation System and method for frame level bit rate control without pre-analysis
JP2012169762A (ja) 2011-02-10 2012-09-06 Sony Corp 画像符号化装置と画像復号化装置およびその方法とプログラム
JP2012251785A (ja) * 2011-05-31 2012-12-20 Nuflare Technology Inc 検査装置および検査方法
US9241167B2 (en) * 2012-02-17 2016-01-19 Microsoft Technology Licensing, Llc Metadata assisted video decoding
IN2013MU01146A (ja) * 2013-03-26 2015-04-24 Tektronix Inc
US10003792B2 (en) * 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
US20150016509A1 (en) * 2013-07-09 2015-01-15 Magnum Semiconductor, Inc. Apparatuses and methods for adjusting a quantization parameter to improve subjective quality
WO2015015681A1 (ja) * 2013-07-31 2015-02-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像符号化方法および画像符号化装置
KR102169610B1 (ko) * 2013-08-21 2020-10-23 삼성전자주식회사 인트라 예측 모드 결정 방법 및 장치
US10136140B2 (en) 2014-03-17 2018-11-20 Microsoft Technology Licensing, Llc Encoder-side decisions for screen content encoding
JP6652068B2 (ja) * 2015-01-19 2020-02-19 日本電気株式会社 動画像符号化装置、動画像符号化方法および動画像符号化プログラム
US10924743B2 (en) 2015-02-06 2021-02-16 Microsoft Technology Licensing, Llc Skipping evaluation stages during media encoding
US10038917B2 (en) 2015-06-12 2018-07-31 Microsoft Technology Licensing, Llc Search strategies for intra-picture prediction modes
US10136132B2 (en) 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
US9955186B2 (en) * 2016-01-11 2018-04-24 Qualcomm Incorporated Block size decision for video coding
KR102287414B1 (ko) * 2016-12-23 2021-08-06 후아웨이 테크놀러지 컴퍼니 리미티드 손실 비디오 코딩을 위한 저복잡도 혼합 도메인 협력 인-루프 필터
US10924741B2 (en) * 2019-04-15 2021-02-16 Novatek Microelectronics Corp. Method of determining quantization parameters
WO2021191499A1 (en) * 2020-03-26 2021-09-30 Nokia Technologies Oy A method, an apparatus and a computer program product for video encoding and video decoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007201558A (ja) * 2006-01-23 2007-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置および動画像符号化方法
JP2008022405A (ja) * 2006-07-14 2008-01-31 Sony Corp 画像処理装置および方法、並びに、プログラム
WO2008044658A1 (en) * 2006-10-10 2008-04-17 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and device, its program, and storage medium containing program
JP2009232324A (ja) * 2008-03-25 2009-10-08 Panasonic Corp 画像符号化装置、画像符号化方法および画像符号化プログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05167998A (ja) * 1991-12-16 1993-07-02 Nippon Telegr & Teleph Corp <Ntt> 画像の符号化制御処理方法
US6870884B1 (en) * 1992-01-29 2005-03-22 Mitsubishi Denki Kabushiki Kaisha High-efficiency encoder and video information recording/reproducing apparatus
EP1404136B1 (en) * 2001-06-29 2018-04-04 NTT DoCoMo, Inc. Image encoder, image decoder, image encoding method, and image decoding method
JP2003319391A (ja) * 2002-04-26 2003-11-07 Sony Corp 符号化装置および方法、復号装置および方法、記録媒体、並びにプログラム
US9237347B2 (en) * 2005-03-21 2016-01-12 The Regents Of The University Of California Systems and methods for video compression for low bit rate and low latency video communications
US8000390B2 (en) * 2006-04-28 2011-08-16 Sharp Laboratories Of America, Inc. Methods and systems for efficient prediction-mode selection
US7653130B2 (en) * 2006-12-27 2010-01-26 General Instrument Corporation Method and apparatus for bit rate reduction in video telephony
JP2008263529A (ja) * 2007-04-13 2008-10-30 Sony Corp 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
KR100905059B1 (ko) * 2007-08-16 2009-06-30 한국전자통신연구원 동영상 부호화에 있어서 비트 발생 가능성 예측을 이용한블록 모드 결정 방법 및 장치
KR100952340B1 (ko) 2008-01-24 2010-04-09 에스케이 텔레콤주식회사 시공간적 복잡도를 이용한 부호화 모드 결정 방법 및 장치
KR20090090152A (ko) * 2008-02-20 2009-08-25 삼성전자주식회사 영상의 부호화, 복호화 방법 및 장치
KR20090097688A (ko) * 2008-03-12 2009-09-16 삼성전자주식회사 영상의 인트라 예측 부호화/복호화 방법 및 장치
US9137545B2 (en) * 2009-10-21 2015-09-15 Sk Telecom Co., Ltd. Image encoding and decoding apparatus and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007201558A (ja) * 2006-01-23 2007-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置および動画像符号化方法
JP2008022405A (ja) * 2006-07-14 2008-01-31 Sony Corp 画像処理装置および方法、並びに、プログラム
WO2008044658A1 (en) * 2006-10-10 2008-04-17 Nippon Telegraph And Telephone Corporation Intra prediction encoding control method and device, its program, and storage medium containing program
JP2009232324A (ja) * 2008-03-25 2009-10-08 Panasonic Corp 画像符号化装置、画像符号化方法および画像符号化プログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013258501A (ja) * 2012-06-11 2013-12-26 Canon Inc 画像処理装置、画像処理方法
US9363432B2 (en) 2012-06-11 2016-06-07 Canon Kabushiki Kaisha Image processing apparatus and image processing method
JP2018093386A (ja) * 2016-12-05 2018-06-14 キヤノン株式会社 符号化装置及び符号化方法
JP2019102861A (ja) * 2017-11-29 2019-06-24 富士通株式会社 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
WO2021117091A1 (ja) * 2019-12-09 2021-06-17 日本電信電話株式会社 符号化方法、符号化装置、及びプログラム
JPWO2021117091A1 (ja) * 2019-12-09 2021-06-17
JP7364936B2 (ja) 2019-12-09 2023-10-19 日本電信電話株式会社 符号化方法、符号化装置、及びプログラム
WO2023005830A1 (zh) * 2021-07-29 2023-02-02 维沃移动通信有限公司 预测编码方法、装置和电子设备

Also Published As

Publication number Publication date
US20110292998A1 (en) 2011-12-01
JP5470405B2 (ja) 2014-04-16
JPWO2011080925A1 (ja) 2013-05-09
US9369720B2 (en) 2016-06-14

Similar Documents

Publication Publication Date Title
JP5470405B2 (ja) 画像符号化装置および方法
EP3158751B1 (en) Encoder decisions based on results of hash-based block matching
CN1960495B (zh) 图像编码装置、图像编码方法和集成电路装置
JP5801032B2 (ja) インループのアーチファクト除去フィルタリングのための方法および装置
KR100677552B1 (ko) 루프 필터링 방법 및 루프 필터
EP1675402A1 (en) Optimisation of a quantisation matrix for image and video coding
US7388995B2 (en) Quantization matrix adjusting method for avoiding underflow of data
US20160330468A1 (en) Image encoding device, image decoding device, encoded stream conversion device, image encoding method, and image decoding method
WO2007055158A1 (ja) 動画像符号化方法、動画像復号化方法および装置
JP4804107B2 (ja) 画像符号化装置、画像符号化方法及びそのプログラム
JPH04196976A (ja) 画像符号化装置
JP2006519565A (ja) ビデオ符号化
KR101394209B1 (ko) 영상의 인트라 예측 부호화 방법
JP5133290B2 (ja) 動画像符号化装置および復号装置
KR20070110517A (ko) 부호화 장치 및 부호화 장치를 구비한 동화상 기록 시스템
CA2798354A1 (en) A video encoding bit rate control technique using a quantization statistic threshold to determine whether re-encoding of an encoding-order picture group is required
JP4532980B2 (ja) 動画像符号化装置及び方法、並びにコンピュータプログラム及びコンピュータ可読記憶媒体
JP2007336468A (ja) 再符号化装置、再符号化方法およびプログラム
US8687910B2 (en) Image filtering method using pseudo-random number filter and apparatus thereof
JP5178616B2 (ja) シーンチェンジ検出装置および映像記録装置
JP4911625B2 (ja) 画像処理装置、およびそれを搭載した撮像装置
EP1675405A1 (en) Optimisation of a quantisation matrix for image and video coding
KR20150096353A (ko) 이미지 인코딩 시스템, 디코딩 시스템 및 그 제공방법
JP4857243B2 (ja) 画像符号化装置及びその制御方法、コンピュータプログラム
JP3599909B2 (ja) 動画像符号化装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 13148111

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2011547337

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10840784

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10840784

Country of ref document: EP

Kind code of ref document: A1