WO2011042945A1 - 画像処理システムおよび画像処理プログラム - Google Patents

画像処理システムおよび画像処理プログラム Download PDF

Info

Publication number
WO2011042945A1
WO2011042945A1 PCT/JP2009/067344 JP2009067344W WO2011042945A1 WO 2011042945 A1 WO2011042945 A1 WO 2011042945A1 JP 2009067344 W JP2009067344 W JP 2009067344W WO 2011042945 A1 WO2011042945 A1 WO 2011042945A1
Authority
WO
WIPO (PCT)
Prior art keywords
pixel value
inclination
block
image processing
image
Prior art date
Application number
PCT/JP2009/067344
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 PCT/JP2009/067344 priority Critical patent/WO2011042945A1/ja
Priority to CN200980161822.5A priority patent/CN102577344B/zh
Priority to KR1020127008725A priority patent/KR101297862B1/ko
Priority to JP2011535222A priority patent/JP5007432B2/ja
Publication of WO2011042945A1 publication Critical patent/WO2011042945A1/ja
Priority to HK13100055.7A priority patent/HK1173011A1/xx

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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Definitions

  • the present invention relates to an image processing system and an image processing program, and more particularly to countermeasures against ringing noise in AC component prediction (ACP: AC Component Prediction).
  • ACP AC Component Prediction
  • AC component prediction refers to the information L and R of the peripheral areas PB1 and PBr of the target block PBs to be processed, and the subblocks sb0 and sb1 obtained by subdividing the block PBs.
  • the spatial resolution is improved while maintaining the DC value S of the target block PBs by using the spatial correlation between the target block PBs and the surrounding areas PBl and PBr located in the vicinity thereof. High AC values c0 and c1 are calculated.
  • Patent Documents 1 to 3 disclose recursive AC component predictive coding (RACP) that sequentially subdivides a target block and hierarchically encodes image data. Specifically, first, the predicted pixel values of sub-blocks obtained by subdividing the target block are sequentially calculated while sequentially shifting the target block in a predetermined direction on the image plane. Next, a difference between the predicted pixel value and the original pixel value (true value) is calculated as a prediction residual. Then, an irreversible transformation and entropy coding are performed on the prediction residual, thereby generating an AC component of an image that is a part of the compressed data.
  • RACP recursive AC component predictive coding
  • the above processing is performed by, for example, an 8 ⁇ 8 pixel block (top layer), a 4 ⁇ 4 pixel block (second layer), a 2 ⁇ 2 pixel block (third layer), and 1 ⁇ 1. It is recursively repeated in a hierarchical structure consisting of pixel blocks (lowest hierarchy).
  • ringing noise that is, striped noise along the edge may occur around the edge of an image outline or character.
  • ringing noise occurs when the pixel values L, C, and R arranged in a one-dimensional direction change monotonously (monotonically decreasing or monotonically increasing), or when they are flat. Is difficult to recognize visually.
  • FIG. 2 in the vicinity of an edge where the difference between the pixel values L and S is large and the pixel values S and R are equal (including the case where the difference between S and R is small), the characteristic unique to AC component prediction As shown in FIG.
  • an object of the present invention is to suppress ringing noise effectively by suppressing overshoot and undershoot due to AC component prediction.
  • the first invention provides an image processing system that includes an inclination calculation unit, a threshold setting unit, an inclination correction unit, and a prediction unit, and performs AC component prediction of a block.
  • the inclination calculation unit calculates an inclination representing a change amount of the pixel value per unit distance in the one-dimensional direction based on the plurality of pixel values specified as the reference area information regarding the block. These pixel values are opposed to each other on the block on the image plane.
  • the threshold value setting unit includes a change amount of the pixel value and the pixel value of the block located in one direction in the one-dimensional direction, and a change amount of the pixel value and the pixel value of the block located in the other direction in the one-dimensional direction.
  • the smaller one of them is selected, and the inclination threshold value is set based on the selected smaller change amount.
  • the inclination correction unit corrects and outputs the inclination in the one-dimensional direction so that the value of the inclination in the one-dimensional direction becomes smaller when the inclination in the one-dimensional direction is larger than the inclination threshold value.
  • the prediction unit calculates predicted pixel values of a plurality of sub-blocks obtained by subdividing the block, using the output one-dimensional direction inclination.
  • the one-dimensional inclination is preferably at least one of a horizontal inclination and a vertical inclination on the image plane. Therefore, the tilt correction may be performed for both the horizontal tilt and the vertical tilt, or the tilt correction for an oblique direction other than this may be added.
  • the inclination correction unit corrects the inclination in the one-dimensional direction to be equal to or less than the inclination threshold when the inclination in the one-dimensional direction is larger than the inclination threshold.
  • an adder for calculating a pixel value of the sub-block by adding a prediction residual corresponding to a difference from the true pixel value to the prediction pixel value calculated by the prediction unit. Also good.
  • the first invention can also be applied to a hierarchical structure in which the block size gradually decreases as the hierarchy becomes lower.
  • the pixel value of the sub-block calculated in the upper layer is supplied to the lower layer as the pixel value of the block in the lower layer located immediately below the upper layer.
  • the first invention can also be applied to an encoder that compresses an image.
  • the encoder includes a subtractor that calculates a difference between a prediction pixel value calculated by the prediction unit and a true pixel value as a prediction residual, and performs an irreversible conversion on the prediction residual calculated by the subtractor.
  • An irreversible transforming unit, an entropy coding unit that generates an alternating current component of the image as a part of the compressed data by performing entropy coding on the prediction residual subjected to the irreversible transform The image processing apparatus further includes an inverse conversion unit that generates a prediction residual to be supplied to the adder by performing an irreversible conversion inverse process on the prediction residual subjected to the lossless conversion.
  • the first invention can also be applied to a decoder that expands an image.
  • the decoder further includes an inverse transform unit that restores a prediction residual to be supplied to the adder by performing inverse processing of lossy transform and entropy coding performed at the time of image compression on the compressed data of the image. Have.
  • 2nd invention provides the image processing program which performs the alternating current component prediction of a block.
  • This image processing program is specified as information on a reference area related to a block, and based on a plurality of pixel values opposed to the block on the image plane, an inclination representing a change amount of a pixel value per unit distance in a one-dimensional direction.
  • the block is subdivided using the step of correcting and outputting the one-dimensional inclination so that the value of the inclination is smaller and the output one-dimensional inclination.
  • the one-dimensional inclination is preferably at least one of a horizontal inclination and a vertical inclination on the image plane, as in the first invention.
  • the step of correcting and outputting the inclination in the one-dimensional direction is configured such that the inclination in the one-dimensional direction is less than or equal to the inclination threshold when the inclination in the one-dimensional direction is larger than the inclination threshold. It is preferable that it is a step of correcting and outputting.
  • a step of calculating a pixel value of the sub-block by adding a prediction residual corresponding to a difference from the true pixel value to the calculated prediction pixel value may be further provided.
  • the second invention can also be applied to a hierarchical structure in which the block size gradually decreases as the hierarchy becomes lower.
  • the image processing method is recursively executed, and the pixel value of the sub-block calculated in the upper layer is supplied to the lower layer as the pixel value of the block in the lower layer located immediately below the upper layer.
  • the second invention can also be applied to an encoding program for compressing an image.
  • the encoding program includes a step of calculating a difference between the calculated predicted pixel value and a true pixel value as a prediction residual, performing an irreversible conversion on the calculated prediction residual, By performing entropy coding on the transformed prediction residual, the step of generating the AC component of the image as a part of the compressed data and the prediction residual subjected to the irreversible transformation And a step of generating a prediction residual to be supplied to the sixth step by performing reverse processing of the irreversible transformation.
  • the second invention can also be applied to a decoding program for expanding an image.
  • the decoding program further includes a step of restoring a prediction residual by performing inverse processing of irreversible transformation and entropy encoding performed at the time of image compression on the compressed data of the image.
  • the one-dimensional inclination is corrected so that the value of the one-dimensional inclination is small around the edge where the one-dimensional inclination is larger than the inclination threshold. Suppression of the inclination in the one-dimensional direction acts in a direction in which overshoot and undershoot due to AC component prediction are suppressed, and thus contributes to reduction of ringing noise.
  • AC component prediction according to the present invention is applied, recursive AC component prediction coding (RACP: Recursive ACP) will be described as an example.
  • RACP Recursive ACP
  • FIG. 3 is an overall configuration diagram of the RACP encoder.
  • This encoder includes a DC calculation unit 1, a DC encoding unit 2, and hierarchical processing units 3a to 3c, and is configured by four layers as an example.
  • the DC calculation unit 1 divides the input image to be compressed into blocks of a preset size, and outputs the average pixel value of each block, that is, the average value of the pixels included in the block, as TDC0 to TDC3.
  • TDC0 is an average pixel value of a block of 8 ⁇ 8 pixels (hereinafter referred to as “8 ⁇ 8 block”)
  • TDC1 is an average pixel value of a block of 4 ⁇ 4 pixels (hereinafter referred to as “4 ⁇ 4 block”)
  • TDC2 Is an average pixel value of a 2 ⁇ 2 pixel block (hereinafter referred to as “2 ⁇ 2 block”).
  • TDC3 is an average pixel value of a 1 ⁇ 1 pixel block (hereinafter referred to as “1 ⁇ 1 block”), that is, a pixel value itself of a pixel which is a minimum unit of an image.
  • the average pixel values TDC0 to TDC3 (true values) directly calculated from the input image are distinguished from the average pixel values DC0 to DC2 (restoration values) restored through the processing in the units 2, 3a to 3c. Please note that Since both values are accompanied by irreversible transformation in the process of encoding, they do not exactly match.
  • the DC encoding unit 2 and the hierarchical processing units 3a to 3c are composed of 8 ⁇ 8 blocks (the highest layer), 4 ⁇ 4 blocks (the second layer), 2 ⁇ 2 blocks (the third layer), and 1 ⁇ 1 block.
  • the layer processing assigned to itself is performed in the four-layer structure composed of (the lowest layer).
  • the DC encoding unit 2 at the highest layer performs differential pulse code modulation (DPCM) and entropy encoding on the average pixel value TDC0 for each 8 ⁇ 8 block read from the buffer.
  • Difference pulse code modulation encodes the difference between the average pixel values TDC0 for blocks adjacent to each other on the image plane.
  • entropy coding such as Huffman coding or arithmetic coding is performed on the coded difference after quantization.
  • the data that has undergone such processing is output as a DC component DC0 of an image that is a part of the compressed data, and an average pixel value of an 8 ⁇ 8 block so as to be supplied to the hierarchical processing unit 3a of the immediately lower hierarchy. Is output as a value DC0 restored (inverse quantized).
  • the AC component ACn of the image is output by the process including the AC component prediction.
  • the hierarchical processing units 3a and 3b (except 3c) restore the average pixel value DCn from the AC component ACn.
  • the restored average pixel values DC0, 1, 2 are output for supply to the immediately lower hierarchy.
  • the hierarchical processing unit 3a in the second hierarchical level undergoes processing such as AC component prediction and prediction residual calculation for 8 ⁇ 8 blocks, and 4 ⁇ 4 blocks of AC components AC1 and 4
  • the average pixel value DC1 of x4 blocks is output.
  • the average pixel value DC0 of 8 ⁇ 8 blocks generated in the highest hierarchy is used as information to be referenced in the AC component prediction.
  • an average pixel value TDC1 of 4 ⁇ 4 blocks calculated by the DC calculation unit 1 is input to calculate a prediction residual.
  • the hierarchical processing unit 3b of the third hierarchical level performs processing such as AC component prediction on 4 ⁇ 4 blocks as processing targets, and outputs 2 ⁇ 2 blocks of AC components AC2 and 2 ⁇ 2 blocks of average pixel values DC2. Output.
  • the average pixel value DC1 of 4 ⁇ 4 blocks generated in the second hierarchy is used as reference information for AC component prediction.
  • an average pixel value TDC2 of 2 ⁇ 2 blocks calculated by the DC calculation unit 1 is input to calculate a prediction residual.
  • the hierarchy processing unit 3c in the lowest hierarchy outputs an AC component AC3 of 1 ⁇ 1 block through processing such as AC component prediction for 2 ⁇ 2 blocks (calculation of DC3 is not necessary).
  • the average pixel value DC2 of 2 ⁇ 2 blocks generated in the third hierarchy is used as reference information for AC component prediction.
  • the average pixel value TDC3 of 1 ⁇ 1 block calculated by the DC calculation unit 1 is used to calculate the prediction residual.
  • the DC encoding unit 2 and the hierarchical processing units 3a to 3c are linked together, so that image processing mainly based on AC component prediction is executed recursively. Is done.
  • the DC component DC0 of the image and its AC components AC1 to AC3 are output as compressed data.
  • the compressed data includes accompanying information such as a Huffman table in addition to these.
  • FIG. 4 is an explanatory diagram of blocks set on the image plane.
  • a plurality of blocks PB are set on the image plane by dividing an image to be compressed (for example, an image of one frame or a partial image thereof) vertically and horizontally, and processed in units of blocks.
  • the size of the block PB is set so as to gradually decrease as the hierarchy becomes lower.
  • the size of the block PB in a certain hierarchy matches the size of the sub-block sb subdivided in the hierarchy located immediately above it.
  • the size of the upper layer sub-block sb matches the size of the lower layer block PB located immediately below it.
  • the processing of the entire image in a certain hierarchy is achieved by repeating the processing while sequentially shifting the target block PBs to be processed on the screen and processing all the blocks in the image.
  • the shift direction (scan direction) may be a line-sequential scan along the horizontal direction, but may be arbitrarily set including the one along the vertical direction. Further, the shift directions in the respective hierarchies are not necessarily the same.
  • the upper side of the horizontal line to which the target block PBs belongs is the processed area, and the lower side is the unprocessed area.
  • the left side is a processed area
  • the right side is an unprocessed area.
  • the left and right blocks PBl, PBr are opposed in the horizontal direction with the target block PBs as the center, and the upper and lower blocks PBt, PBb are opposed in the vertical direction with the target block PBs as the center.
  • the average pixel value of the sub-blocks sb00, sb01, sb10, sb11 obtained by dividing the target block PBs into four is calculated by the AC component prediction of the target block PBs.
  • the upper left sub-block sb is identified by the subscript “00”, the upper right is “01”, the lower left is “10”, and the lower right is “11”.
  • FIG. 5 is an operation timing chart in the parallel processing.
  • the DC calculation unit 1 operates to generate average pixel values TDC0 to TDC3.
  • the DC encoding unit 2 and the layer processing units 3a to 3c operate in parallel.
  • the timing at which these operations start is not the same, and the lower the hierarchy, the later the start timing. This delay is caused by processing delay due to sequential shift of the upper layer.
  • processing start condition When processing of the target block PBs is started in a certain hierarchy, it is a condition that the processing of the reference blocks PBt to PBr is finished in the immediately higher hierarchy (processing start condition).
  • the process of the block PBs in the lower hierarchy cannot be started unless the sequential shift proceeds and the process up to the block PBb is completed. This is the reason why the operation delay occurs in the lower layer.
  • the pipeline parallel processing shown in FIG. 5 is faster than the sequential processing shown in FIG.
  • the sequential processing of FIG. 6 the processing of the immediately lower layer is started when all of the processing of a certain layer is completed. Accordingly, the above-described processing start condition is naturally satisfied even in the sequential processing.
  • FIG. 7 is a configuration diagram of the hierarchical processing unit 3 (generic name of 3a to 3c) in the RACP encoder.
  • the hierarchy processing unit 3 in each hierarchy is basically the same in configuration and processing flow except that the handled block sizes are different. However, since the lowest hierarchy processing unit 3c has no lower hierarchy, the DC3 generation systems 36 and 37 are not required.
  • the hierarchical processing unit 3 includes a pixel value reading unit 31, an AC component prediction unit 32, a subtractor 33, an irreversible conversion unit 34, an entropy encoding unit 35, an inverse conversion unit 36, and an adder 37. Have.
  • the pixel value reading unit 31 identifies the target block PBs to be processed this time and the reference blocks PBt to PBr to be referred to, and reads the average pixel value DCn-1 from the buffer.
  • the information of the reference blocks PBt to PBr is not related to whether the block has been processed or not processed, in other words, regardless of whether or not the information of the sub-block in the block is calculated.
  • the average pixel value DCn ⁇ 1 calculated in the immediately higher hierarchy is uniformly used.
  • the average pixel value DCn calculated in the same hierarchy is read from the buffer.
  • the average pixel value DCn ⁇ 1 read from the buffer is supplied to the AC component prediction unit 32.
  • the AC component prediction unit 32 includes an average pixel value DCn ⁇ 1 (hereinafter referred to as “S”) of the target block PBs and an average pixel value DCn ⁇ 1 (hereinafter referred to as “T” and “L” respectively) of the reference blocks PBt to PBr. ”,“ B ”, and“ R ”) are used to predict the AC component of the target block PBs.
  • the predicted pixel values C ⁇ c00, c01, c10, c11 ⁇ of the four sub-blocks sb00 to sb11 obtained by subdividing the target block PBs are calculated.
  • FIG. 8 is a configuration diagram of the AC component prediction unit 32.
  • the AC component prediction unit 32 includes an inclination calculation unit 32a, a threshold setting unit 32b, an inclination correction unit 32c, and a prediction unit 32d.
  • the inclination calculation unit 32a calculates the inclination in the one-dimensional direction, that is, the change amount of the pixel value per unit distance in the one-dimensional direction, based on the information on the reference area of the target block PBs.
  • both the horizontal direction inclination ⁇ and the vertical direction inclination ⁇ are calculated as the one-dimensional direction inclination. However, either one of them may be calculated, or an oblique direction or the like may be added to these. Also good.
  • the horizontal inclination ⁇ is calculated based on the left and right pixel values L and R facing in the horizontal direction around the target block PBs on the image plane.
  • the vertical inclination ⁇ is calculated based on the upper and lower pixel values T and B opposed in the vertical direction around the target block PBs on the image plane.
  • a formula for calculating these inclinations ⁇ and ⁇ is shown in Formula 1.
  • FIG. 9 is a diagram showing a distance relationship between the reference blocks PBt to PBr with the target block PBs as the center.
  • the center pixel value at the center position of each block PB is regarded as the average pixel value DCn-1 of the block itself.
  • the length of one side of the square (subblock sb) when the block PB is divided into four is set to 1, and the length of one side of the square when the subblock sb is further divided into four is set to 1 ⁇ 2.
  • the center-to-center distance between adjacent blocks is 2, and the center-to-center distance between the block and the sub-blocks inside the block is 1/2 (normalization coefficient).
  • the divisor 8 in the above equation 1 is a value obtained by normalizing the center-to-center distance 4 between the left and right center pixel values L and R by a normalization coefficient 1/2.
  • FIG. 10 is a diagram for explaining the calculation of the lateral inclination ⁇ .
  • the difference between the center pixel values L and R of the left and right reference blocks PBl and PBr is divided by the distance 4 between the centers.
  • the value ⁇ thus obtained is normalized by a normalization coefficient 1 ⁇ 2, thereby calculating the horizontal inclination ⁇ .
  • the difference between the center pixel values T and B of the upper and lower reference blocks PBt and PBb is divided by the distance 4 between the centers, and the division value is normalized by a normalization coefficient 1/2. It becomes.
  • the inclinations ⁇ and ⁇ calculated by the inclination calculation unit 32a are output to the inclination correction unit 32c.
  • Threshold value setting unit 32b calculates inclination threshold values ⁇ th and ⁇ th for inclinations ⁇ and ⁇ , respectively.
  • LS ⁇ between the pixel value L on the left side of the target block PBs and the pixel value S of the target block PBs itself is calculated, and the right side of the target block PBs A change amount
  • between the pixel value T on the upper side of the target block PBs and the pixel value S of the target block PBs itself is calculated, and the value of the target block PBs
  • between the lower pixel value B and the pixel value S of the target block PBs itself is calculated.
  • is selected, and this is set as the vertical inclination threshold value ⁇ th.
  • the inclination threshold values ⁇ th and ⁇ th set by the threshold setting unit 32b are output to the inclination correction unit 32c.
  • the inclination ⁇ is corrected so that the value of the inclination ⁇ becomes smaller (output value ⁇ > output value ⁇ ′).
  • the vertical gradient ⁇ is output as it is (input value
  • output value
  • Equation 2 the inclinations ⁇ and ⁇ are corrected based on Equation 2 below.
  • FIG. 11 is an input / output characteristic diagram of the horizontal inclination ⁇ in the inclination correction unit 32c.
  • is directly used as the output value
  • is limited to the slope threshold value ⁇ th (constant) regardless of the value of the input value
  • the inclination threshold value ⁇ th may be used as it is, or a value obtained by multiplying this by a predetermined coefficient n (0 ⁇ n ⁇ 1) may be used.
  • the output value ⁇ ′ in the correction area constant instead of making the output value ⁇ ′ in the correction area constant, as shown in FIG. 12, the output value increases as the input value
  • may be increased in a curved line.
  • the correction of the inclination ⁇ may be performed by referring to a table describing the correspondence relationship between the input value ⁇ and the output value ⁇ ′, in addition to using the arithmetic expression. The same applies to the vertical inclination ⁇ .
  • the inclinations ⁇ ′ and ⁇ ′ calculated by the inclination correction unit 32c are output to the prediction unit 32d.
  • the prediction unit 32d performs Hadamard inverse transformation (Formula 3) using both the horizontal inclination ⁇ ′ and the vertical inclination ⁇ ′ as inputs, and each of the sub-blocks sb00 to sb11 obtained by subdividing the target block PBs.
  • the predicted pixel value C ⁇ c00, c01, c10, c11 ⁇ is calculated.
  • the predicted pixel value C calculated by the prediction unit 32d is supplied to the subtracter 33 and the adder 37 in FIG.
  • the subtractor 33 calculates the predicted pixel value C (for example, 4 ⁇ 4 block unit) calculated by the AC component prediction unit 32 and the corresponding average pixel value TDCn (for example, 4 ⁇ 4 block unit). ), That is, the difference from the true pixel value calculated based on the input image is calculated as the prediction residual PR.
  • the prediction residual PR becomes smaller. Since the correction of the inclinations ⁇ and ⁇ in the inclination correction unit 32c acts in the direction in which the prediction error is eliminated, the prediction residual PR becomes smaller than when the inclinations ⁇ and ⁇ are used as they are.
  • the smaller the prediction residual PR the more likely the appearance frequency of the prediction residual statistically tends to be close to 0, which is advantageous in performing entropy coding (contributes to improving the compression ratio).
  • the irreversible transformation unit 34 performs irreversible transformation such as Hadamard transformation and quantization on the prediction residual PR calculated by the subtractor 33.
  • the entropy coding unit 35 performs entropy coding such as Huffman coding or arithmetic coding on the prediction residual PR subjected to the irreversible transformation, thereby, for example, alternating current component ACn (4 ⁇ 4 block unit ACn ( Compressed data).
  • the inverse transform unit 36 calculates a prediction residual PR ′ by performing reverse processing of the lossy transformation on the prediction residual PR subjected to the lossy transformation.
  • This prediction residual PR ′ is a restoration of the original prediction residual PR, but due to the irreversible transformation (the original value cannot be completely restored), the original prediction residual PR. Is slightly different.
  • the adder 37 calculates the average pixel value DCn of the sub-block (for example, 4 ⁇ 4 block) by adding the prediction residual PR ′ to the prediction pixel value C calculated by the AC component prediction unit 32.
  • the reason why the restored prediction residual PR ′ is used as the input of the adder 37 instead of the original prediction residual PR is that accumulation of errors is prevented by iterative processing during decoding, and the reproducibility of the expanded image is ensured. It is to do.
  • the average pixel value DCn output from the adder 37 is temporarily stored in the buffer, and is read out as needed in the processing in the immediately lower hierarchy.
  • the overshoot of the predicted pixel value c0 and the undershoot of the predicted pixel value c1 are suppressed, and the occurrence of ringing noise can be effectively reduced.
  • are replaced with values of gradient threshold values ⁇ th and ⁇ th or less than that, ringing noise can be completely eliminated theoretically. Further, if pipeline parallel processing as shown in FIG. 5 is performed, overall processing time can be shortened.
  • the upper, lower, left, and right blocks PBt to PBr that are directly adjacent to the target block PBs are set as reference areas.
  • the present invention can be applied to various settings including the following setting examples.
  • the same pixel values T, L, B, and R reference information
  • may be calculated as a large block
  • slope threshold values ⁇ th and ⁇ th may be calculated as a small block
  • the reference information used in the calculation of both may be different.
  • eight blocks PBt, PBtt, PB1, PBll, PBb, PBbb, PBr, PBrr having the same block size are used as the reference area of the target block PBs.
  • the reference blocks PBt, PBl, PBb, PBr are directly adjacent to the target block PBs in the vertical and horizontal directions. Further, the reference blocks PBtt, PBll, PBbb, and PBrr are adjacent to the target block PBs by one jumping up and down and left and right.
  • the calculation of the slopes ⁇ and ⁇ remains as in Formula 1, and the predicted pixel values T ′, L ′, B ′, and R ′ are used only for the calculation of the slope threshold values ⁇ th and ⁇ th (Formula 5).
  • Predicted pixel values T ′, L ′, B ′, and R ′ are predicted using the pixel value S of the target block PBs and the pixel values of two blocks existing in that direction (for example, L and LL in the left direction). Is done.
  • the processing after calculating the inclinations ⁇ , ⁇ , etc. is the same as in the above-described embodiment.
  • the center pixel values t0, t1, l0, and l1 of the sub-blocks sb (T) and sb (L) are used for the upper left blocks PBt and PBl. These center pixel values t0 to l1 have been processed as DCn in the previous processing in the same hierarchy, and the values are fed back.
  • the predicted pixel values T ′, L ′, B ′, and R ′ are used for both the calculation of the inclinations ⁇ and ⁇ and the calculation of the inclination threshold values ⁇ th and ⁇ th (Formula 6).
  • FIG. 16 is a flowchart of the RACP encoding program.
  • Software processing by a computer is based on sequential processing as shown in FIG.
  • step 1 a plurality of blocks (4 types) are set on the image plane of the input image, and average pixel values TDC0 to TDC3 of each block are calculated.
  • the calculated average pixel values TDC0 to TDC3 are stored in the buffer as needed.
  • Step 2 the process proceeds to Step 2.
  • Step 2 DC coding, that is, differential pulse width modulation and entropy coding is performed on the average pixel value TDC0 of the 8 ⁇ 8 block, and thereby the DC component of the image that becomes part of the compressed data. DC0 is generated and output. The restored value is stored in the buffer as DC0.
  • step 3 the hierarchy number LN is set to 1 (initial value).
  • step 14 the process proceeds in order to the lower hierarchy.
  • step 4 the block number BN is set to 1 (initial value).
  • the size of the block to be processed in that layer is uniquely specified, and the end block number BNend corresponding to the total number of blocks is also specified.
  • the block number BN is incremented by 1 (step 12), and the processing target is sequentially shifted in a predetermined direction. Then, when the processing of the block corresponding to the end block number BNend is finished, the processing in the hierarchy is finished (step 11).
  • step 7 the difference between the predicted pixel value C calculated in the previous step 6 and the true pixel value TDCn is calculated as the prediction residual PR.
  • step 8 irreversible transformation and entropy coding are performed on the prediction residual PR calculated in the previous step 7. As a result, an AC component ACn of the image as a part of the compressed data is generated.
  • step 9 the prediction error PR subjected to the irreversible transformation is subjected to the inverse process to calculate a prediction error PR ′ (restored value) obtained by restoring the original prediction error PR.
  • step 11 it is determined whether or not the block number BN has reached the end block number BNend. Until the end block number BNend is reached, the block number BN is incremented by 1 in step 12, and the processing in steps 5 to 11 is repeated. When the end block number BNend is reached, that is, when the processing of all the blocks in the image plane is completed, the process exits the loop and proceeds to step 13.
  • step 13 it is determined whether or not the hierarchy number LN has reached 3 (the lowest hierarchy). Until it reaches 3, the layer number LN is incremented by 1 in step 14, and the loop of steps 5 to 12 is repeated. As a result, the size of the target block PBs gradually decreases as the hierarchy becomes lower, and the above-described series of processing is recursively executed.
  • the average pixel value DCn (output) of the sub-block calculated on the upper layer side is used as the average pixel value DCn-1 (input) on the lower layer side.
  • the RACP encoding program it is possible to suppress a decrease in image quality due to ringing noise as well as the above-described RACP encoder, and it is possible to prevent a decrease in compression rate due to an increase in prediction error.
  • FIG. 17 is an overall configuration diagram of a RACP decoder that decompresses compressed data generated by the above-described RACP encoder or RACP encoding program.
  • the DC decoding 5 and the layer processing units 6a to 6c are configured to have 8 ⁇ 8 blocks (the highest layer), 4 ⁇ 4 blocks (the second layer), 2 ⁇ 2 blocks (the third layer), 1 ⁇ 1 block ( In the hierarchical structure of the lowest hierarchy, the hierarchical processing assigned to itself is performed.
  • the DC decoding unit 5 in the highest hierarchy generates an average pixel value DC0 of 8 ⁇ 8 blocks by performing reverse processing of the processing applied at the time of image compression on the compressed data related to the DC component DC0 of the image. This is supplied to the hierarchy processing unit 6a of the second hierarchy.
  • the hierarchical structure of the RACP decoder is almost the same as that of the RACP encoder, but the AC components AC1 to AC3 that are the outputs of the hierarchical processing units 3a to 3c in the encoder are input to the hierarchical processing units 6a to 6c in the decoder. Is different.
  • These hierarchical processing units 6a to 6c restore the average pixel value DCn based on the compressed data related to the AC components AC1 to AC3 of the image and the average pixel value DCn-1 supplied from the immediately higher hierarchy.
  • the restored average pixel value DCn is output for supply to the immediately lower hierarchy as necessary, and is stored in the buffer.
  • a set of average pixel values DC3 of 1 ⁇ 1 blocks calculated by the lowest-level hierarchy processing unit 6c is the final decompressed image.
  • the decoder processing may be either parallel processing or sequential processing.
  • FIG. 18 is a configuration diagram of the hierarchical processing unit 6 (generic name of 6a to 6c) in the RACP decoder.
  • the hierarchy processing unit 6 in each hierarchy has the same basic configuration and operation except that the size of blocks to be handled is different.
  • the hierarchy processing unit 6 includes a pixel value reading unit 61, an AC component prediction unit 62, an adder 63, and an inverse conversion unit 64.
  • This average pixel value DCn-1 has already been calculated in the immediately higher hierarchy and is supplied from the immediately higher hierarchy via a buffer.
  • the average pixel value DCn ⁇ 1 read from the buffer is supplied to the AC component prediction unit 62.
  • the inverse transform unit 64 should supply the adder 63 by performing inverse processing of lossy transformation and entropy encoding performed at the time of image compression on the compressed data of the AC component ACn of 4 ⁇ 4 blocks, for example.
  • the prediction residual PR ′ is restored.
  • the adder 63 adds the prediction residual PR ′ restored by the inverse transformation unit 64 to the prediction pixel value C calculated by the AC component prediction unit 62, thereby averaging the sub blocks (for example, 4 ⁇ 4 blocks).
  • Pixel value DCn is calculated and temporarily stored in the buffer.
  • the average pixel value DCn stored in the buffer is also supplied to the AC component prediction unit 62 in the immediately lower hierarchy as an average pixel value of a block (for example, 4 ⁇ 4 block) in the immediately lower hierarchy.
  • the compressed data generated by the above-described RACP decoder or RACP encoding program can be appropriately decompressed.
  • overall processing time can be shortened.
  • FIG. 19 is a flowchart of the RACP decoding program.
  • Software processing by a computer is based on sequential processing as shown in FIG.
  • step 21 the DC data DC0 compressed data of the image is subjected to DC decoding, that is, the reverse processing of the encoding processing performed at the time of data compression, thereby the average pixel of the 8 ⁇ 8 block.
  • the value DC0 is restored and stored in the buffer.
  • the layer number LN is set to 1 (initial value) and the block number BN is set to 1 (initial value).
  • step 24 the reference information T, L, B, R of the target block PBs designated by the block number BN is read from the buffer.
  • step 26 the compressed data of the AC component ACn of the image is expanded, thereby restoring the prediction residual PR '.
  • step 27 the average pixel value DCn of the sub-block is calculated by adding the prediction residual PR ′ calculated in step 27 to the prediction pixel value C calculated in step 25, and is stored in the buffer.
  • step 28 it is determined whether or not the block number BN has reached the end block number BNend. Until the end block number BNend is reached, the block number BN is incremented by 1 in step 29, and the processing in steps 24 to 27 is repeated. When the end block number BNend is reached, that is, when the processing of all the blocks in the image plane is completed, the process exits the loop from the determination result of step 28 and proceeds to step 30.
  • step 30 it is determined whether or not the hierarchy number LN has reached 3 (the lowest hierarchy). Until it reaches 3, the layer number LN is incremented by 1 in step 31, and the loop of steps 23 to 29 is repeated. As a result, the size of the block PB gradually decreases as the hierarchy becomes lower, and the above-described series of processing is recursively executed.
  • the average pixel value DCn (output) of the sub-block calculated on the upper layer side is used as the average pixel value DCn-1 (input) of the block to be processed on the lower layer side and the unprocessed peripheral region.
  • the same effects as the above-described RACP decoder can be obtained.
  • the image processing system and the image processing program according to the present invention are not only used for AC component prediction encoding (including recursive AC component prediction encoding) but also for image processing that generates an image with high resolution using AC component prediction.
  • the present invention is also widely applicable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

交流成分予測によるオーバーシュートおよびアンダーシュートを抑制して、リンギングノイズを有効に低減する。 傾き算出部32aは、一次元方向の傾きαを算出する。しきい値設定部32bは、横方向の画素値の変化量|L-C|,|R-C|のうちの小さい方を選択し、この選択された小さい方の変化量に基づいて傾きしきい値αthを設定する。傾き補正部32cは、一次元方向の傾きαが傾きしきい値αthよりも大きい場合には、傾きαの値が小さくなるように、傾きαを補正して出力する。予測部は、出力された一次元方向の傾きα'を用いて、ブロックを細分化した複数のサブブロックのそれぞれの予測画素値Cを算出する。

Description

画像処理システムおよび画像処理プログラム
 本発明は、画像処理システムおよび画像処理プログラムに係り、特に、交流成分予測(ACP:AC Component Prediction)のリンギングノイズ対策に関する。
 従来より、交流成分予測(ACP)と呼ばれる画像処理手法が知られている。交流成分予測とは、図1に例示すように、処理対象となる対象ブロックPBsの周辺領域PBl,PBrの情報L,Rを参照して、このブロックPBsを細分化したサブブロックsb0,sb1の情報c0,c1を求める手法をいう。交流成分予測では、対象ブロックPBsと、その近傍に位置する周辺領域PBl,PBrとの間における空間的な相関性を利用して、対象ブロックPBsのDC値Sを保持しつつ、空間分解能がより高いAC値c0,c1が算出される。特許文献1~3には、対象ブロックを順次細分化し、画像データを階層的に符号化する再帰的交流成分予測符号化(RACP)が開示されている。具体的には、まず画像平面上において対象ブロックを所定方向に順次シフトさせながら、これを細分化したサブブロックの予測画素値が順次算出される。つぎに、予測画素値と本来の画素値(真値)との差分が予測残差として算出される。そして、この予測残差に対して、非可逆変換およびエントロピー符号化を施すことによって、圧縮データの一部となる画像の交流成分が生成される。以上のような処理が、例えば、8×8画素のブロック(最上位階層)、4×4画素のブロック(第2位階層)、2×2画素のブロック(第3位階層)および1×1画素のブロック(最下位階層)よりなる階層構造において、再帰的に繰り返される。
日本特許第4000157号公報 日本特許第3774201号公報 日本特許第3700976号公報
 従来の交流成分予測では、画像の輪郭や文字等のエッジ周辺にリンギングノイズ、すなわち、エッジに沿った縞状のノイズが生じることがあった。図1に例示するように、リンギングノイズは、一次元方向に並んだ画素値L,C,Rが単調的に変化している場合(単調減少や単調増加)、または、これらがフラットな場合には、視覚的に認識され難い。しかしながら、図2に例示するように、画素値L,Sの差が大きく、画素値S,Rが等しい(S,Rの差が微小の場合も含む)エッジ周辺では、交流成分予測固有の特性として横方向の傾きαが急になる。その結果、予測画素値c0が+α分だけオーバーシュートするとともに、予測画素値c1が-α分だけアンダーシュートして、交流成分予測前における一次元方向の画素値の大小関係が損なわれる。このような現象は、視覚的なノイズとなって画質の低下に繋がるほか、交流成分予測を用いた符号化では、予測誤差が増大して圧縮率の低下にも繋がる。
 そこで、本発明の目的は、交流成分予測によるオーバーシュートおよびアンダーシュートを抑制して、リンギングノイズを有効に低減することである。
 かかる課題を解決すべく、第1の発明は、傾き算出部と、しきい値設定部と、傾き補正部と、予測部とを有し、ブロックの交流成分予測を行う画像処理システムを提供する。傾き算出部は、ブロックに関する参照領域の情報として特定された複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出する。これらの画素値は、画像平面上においてブロックを中心に対向している。しきい値設定部は、一次元方向における一方の方向に位置する画素値およびブロックの画素値の変化量と、一次元方向における他方の方向に位置する画素値およびブロックの画素値の変化量とのうちの小さい方を選択し、この選択された小さい方の変化量に基づいて傾きしきい値を設定する。傾き補正部は、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きの値が小さくなるように、一次元方向の傾きを補正して出力する。予測部は、出力された一次元方向の傾きを用いて、ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出する。
 ここで、第1の発明において、一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることが好ましい。したがって、横方向の傾きおよび縦方向の傾きの双方に関して上記傾き補正を行ってもよいし、これ以外の斜め方向に関する上記傾き補正を追加してもよい。
 第1の発明において、傾き補正部は、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きを傾きしきい値以下に補正して出力することが好ましい。
 第1の発明において、予測部によって算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、サブブロックの画素値を算出する加算器をさらに設けてもよい。
 第1の発明は、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造に適用することもできる。この場合、上位階層において算出されたサブブロックの画素値は、上位階層の直下に位置する下位階層におけるブロックの画素値として、下位階層に供給される。
 第1の発明は、画像を圧縮するエンコーダに適用することもできる。このエンコーダは、予測部によって算出された予測画素値と、真の画素値との差分を予測残差として算出する減算器と、減算器によって算出された予測残差に対して、非可逆変換を施す非可逆変換部と、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、加算器に供給すべき予測残差を生成する逆変換部と
をさらに有する。
 第1の発明は、画像を伸張するデコーダに適用することもできる。このデコーダは、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器に供給すべき予測残差を復元する逆変換部をさらに有する。
 第2の発明は、ブロックの交流成分予測を行う画像処理プログラムを提供する。この画像処理プログラムは、ブロックに関する参照領域の情報として特定され、画像平面上においてブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出するステップと、一次元方向における一方の方向に位置する画素値およびブロックの画素値の変化量と、一次元方向における他方の方向に位置する画素値およびブロックの画素値の変化量とのうちの小さい方を選択し、この選択された小さい方の変化量に基づいて傾きしきい値を設定するステップと、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きの値が小さくなるように、一次元方向の傾きを補正して出力するステップと、出力された一次元方向の傾きを用いて、ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出するステップとを有する画像処理方法をコンピュータに実行させる。
 ここで、第2の発明において、一次元方向の傾きは、第1の発明と同様、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることが好ましい。
 第2の発明において、上記一次元方向の傾きを補正して出力するステップは、一次元方向の傾きが傾きしきい値よりも大きい場合には、一次元方向の傾きを傾きしきい値以下に補正して出力するステップであることが好ましい。
 第2の発明において、算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、サブブロックの画素値を算出するステップをさらに設けてもよい。
 第2の発明は、階層が下位になるにしたがって、ブロックのサイズが段階的に小さくなる階層構造に適用することもできる。この場合、上記画像処理方法が再帰的に実行され、上位階層において算出されたサブブロックの画素値は、上位階層の直下に位置する下位階層におけるブロックの画素値として、下位階層に供給される。
 第2の発明は、画像を圧縮するエンコードプログラムに適用することもできる。このエンコードプログラムは、算出された予測画素値と、真の画素値との差分を予測残差として算出するステップと、算出された予測残差に対して、非可逆変換を施すステップと、非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するステップと、非可逆変換が施された予測残差に対して、非可逆変換の逆処理を行うことによって、第6のステップに供給すべき予測残差を生成するステップとをさらに有する。
 第2の発明は、画像を伸張するデコードプログラムに適用することもできる。このデコードプログラムは、画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、予測残差を復元するステップをさらに有する。
 第1および第2の発明によれば、一次元方向の傾きが傾きしきい値よりも大きいエッジ周辺では、一次元方向の傾きの値が小さくなるように一次元方向の傾きが補正される。一次元方向の傾きの抑制は、交流成分予測によるオーバーシュートおよびアンダーシュートが抑制される方向に作用するので、リンギングノイズの低減に寄与する。
エッジ周辺以外の領域における横方向の画素値の特性図 エッジ周辺における横方向の画素値の特性図 RACPエンコーダの全体構成図 画像平面上に設定されるブロックの説明図 並行処理における動作タイミングチャート- 逐次処理における動作タイミングチャート RACPエンコーダにおける階層処理部の構成図 交流成分予測部の構成図 対象ブロックを中心とした参照ブロックの距離的関係を示す図 横方向の傾きαの算出説明図 一例としての横方向の傾きαの入出力特性図 別の一例としての横方向の傾きαの入出力特性図 オーバー/アンダーシュートが抑制された横方向の画素値の特性図 参照ブロックの別の設定例を示す図 参照ブロックの別の設定例を示す図 RACPエンコードプログラムのフローチャート RACPデコーダの全体構成図 RACPデコーダにおける階層処理部の構成図 RACPデコードプログラムのフローチャート
 以下、本発明に係る交流成分予測を適用した実施形態として、再帰的交流成分予測符号化(RACP:Recursive ACP)を例に説明する。
(RACPエンコーダ)
 図3は、RACPエンコーダの全体構成図である。このエンコーダは、DC算出部1と、DC符号化部2と、階層処理部3a~3cとを有し、一例として4階層で構成されている。これらのユニット1,2,3a~3cより出力されたデータTDCn,DCn(n=0,1,2)は、図示しないバッファ(記憶部)に一時的に随時格納される。
 DC算出部1は、圧縮対象となる入力画像を予め設定されたサイズのブロックに分割し、それぞれのブロックの平均画素値、すなわち、ブロック内に含まれる画素の平均値をTDC0~TDC3として出力する。ここで、TDC0は8×8画素のブロック(以下「8×8ブロック」という)の平均画素値、TDC1は4×4画素のブロック(以下「4×4ブロック」という)の平均画素値、TDC2は2×2画素のブロック(以下「2×2ブロック」という)の平均画素値である。また、TDC3は1×1画素のブロック(以下「1×1ブロック」という)の平均画素値、すなわち、画像の最小単位である画素の画素値そのものである。なお、入力画像から直接算出される平均画素値TDC0~TDC3(真の値)は、ユニット2,3a~3c内での処理を経て復元される平均画素値DC0~DC2(復元値)とは区別される点に留意されたい。両者の値は、符号化の過程で非可逆変換をともなうので、厳密には一致しない。
 DC符号化部2および階層処理部3a~3cは、8×8ブロック(最上位階層)、4×4ブロック(第2位階層)、2×2ブロック(第3位階層)、1×1ブロック(最下位階層)よりなる4階層構造において、自己に割り当てられた階層処理を行う。
 最上位階層のDC符号化部2は、バッファから読み出された8×8ブロック毎の平均画素値TDC0に対して、差分パルス符号変調(DPCM:Differential Pulse Code Modulation)およびエントロピー符号化を施す。差分パルス符号変調によって、画像平面上において互いに隣接したブロックに関する平均画素値TDC0の差分が符号化される。そして、この符号化された差分に対して、量子化後、ハフマン符号化や算術符号化といったエントロピー符号化が施される。このような処理を経たデータは、圧縮データの一部となる画像の直流成分DC0として出力されるとともに、直下位の階層の階層処理部3aにも供給すべく、8×8ブロックの平均画素値を復元(逆量子化)した値DC0として出力される。
 3つの階層処理部3a~3cは、DC算出部1によって生成された平均画素値TDCn(n=1,2,3、以下同様)と、直上位の階層によって生成された平均画素値DCn-1とを入力とした交流成分予測を含む処理によって、圧縮データの一部としての画像の交流成分ACnを出力する。それとともに、階層処理部3a,3b(3cは除く)は、交流成分ACnより平均画素値DCnを復元する。復元された平均画素値DC0,1,2は、直下位の階層に供給するために出力される。
 具体的には、第2位階層の階層処理部3aは、8×8ブロックを処理対象とした交流成分予測および予測残差の算出といった処理を経て、4×4ブロックの交流成分AC1と、4×4ブロックの平均画素値DC1とを出力する。この階層では、交流成分予測で参照すべき情報として、最上位階層で生成された8×8ブロックの平均画素値DC0が用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された4×4ブロックの平均画素値TDC1が入力される。第3位階層の階層処理部3bは、4×4ブロックを処理対象とした交流成分予測等の処理を経て、2×2ブロックの交流成分AC2と、2×2ブロックの平均画素値DC2とを出力する。この階層では、交流成分予測の参照情報として、第2位階層で生成された4×4ブロックの平均画素値DC1とが用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された2×2ブロックの平均画素値TDC2が入力される。最下位階層の階層処理部3cは、2×2ブロックを処理対象とした交流成分予測等の処理を経て、1×1ブロックの交流成分AC3を出力する(DC3の算出は不要)。この階層では、交流成分予測の参照情報として、第3位階層で生成された2×2ブロックの平均画素値DC2が用いられる。それとともに、予測残差を算出するために、DC算出部1によって算出された1×1ブロックの平均画素値TDC3が用いられる。
 このように、処理対象となるブロックのサイズが異なる階層構造において、DC符号化部2および階層処理部3a~3cが互いに連係することによって、交流成分予測を主体とした画像処理が再帰的に実行される。これによって、圧縮データとして、画像の直流成分DC0と、その交流成分AC1~AC3とが出力される。なお、圧縮データには、これら以外にもハフマンテーブル等の付随情報も含まれる。
 図4は、画像平面上に設定されるブロックの説明図である。ブロックPBは、圧縮対象となる画像(例えば1フレームの画像またはその部分画像)を縦横に分割することで、画像平面上に複数設定され、ブロック単位で処理される。ブロックPBのサイズは、階層が下位になるにしたがって段階的に小さくなるように設定されている。ある階層におけるブロックPBのサイズは、その直上位に位置する階層で細分化されたサブブロックsbのサイズと一致する。逆にいえば、上位階層のサブブロックsbのサイズは、その直下に位置する下位階層のブロックPBのサイズと一致する。ある階層における画像全体の処理は、処理対象となる対象ブロックPBsを画面上で順次シフトさせながら処理を繰り返し、画像中の全ブロックを処理することによって達成される。このシフト方向(スキャン方向)は、図示したように、水平方向に沿った線順次走査的なものであってもよいが、垂直方向に沿ったものも含めて任意に設定してよい。また、それぞれの階層におけるシフトの方向は、必ずしも同一である必要もない。図示したシフト方向の場合、対象ブロックPBsが属する水平ラインよりも上側が処理済領域となり、これよりも下側が未処理領域となる。また、対象ブロックPBsの水平ラインについては、その左側が処理済領域となり、その右側が未処理領域となる。対象ブロックPBsの処理で参照される参照領域として、ブロックサイズが同一である4つのブロックPBt,PBl,PBb,PBrが用いられる。左右のブロックPBl,PBrは、対象ブロックPBsを中心として横方向に対向しており、上下のブロックPBt,PBbは、対象ブロックPBsを中心として縦方向に対向している。対象ブロックPBsの交流成分予測によって、これを4つに分割したサブブロックsb00,sb01,sb10,sb11の平均画素値が算出される。以下、あるブロックPBを細分化した際、左上のサブブロックsbを”00”、右上を”01”、左下を”10”、右下を”11”の添字を以て識別する。
 RACPエンコーダの処理は、並行処理および逐次処理のどちらで行ってもよい。図5は、並行処理における動作タイミングチャートである。まず、DC算出部1が動作して、平均画素値TDC0~TDC3を生成する。そして、すべての平均画素値TDC0~TDC3の生成が終了したことを以て、DC符号化部2および階層処理部3a~3cが並行して動作する。ただし、これらの動作が開始するタイミングは同じではなく、階層が下位になるほど開始タイミングが遅くなる。この遅延は、上位階層の順次シフトによる処理遅延に起因して生じる。ある階層で対象ブロックPBsの処理を開始する場合、その参照ブロックPBt~PBrの処理が直上位の階層で終了していることが条件となる(処理開始条件)。したがって、上位階層において、順次シフトが進行してブロックPBbまでの処理が終了しない限り、下位階層におけるブロックPBsの処理が開始できない。これが下位階層における動作遅延が生じる所以である。ただし、図6に示すような逐次処理と比較すると、図5に示したパイプライン的な並行処理の方が高速である。一方、図6の逐次処理では、ある階層の処理が全て終了した時点で、直下位の階層の処理が開始される。したがって、逐次処理においても、上記処理開始条件を当然に満たす。
 図7は、RACPエンコーダにおける階層処理部3(3a~3cの総称)の構成図である。それぞれの階層における階層処理部3は、取り扱うブロックサイズが異なる点を除けば、構成および処理の流れは基本的に同一である。ただし、最下位の階層処理部3cについては、これよりも下位の階層が存在しないため、DC3の生成系36,37が不要となる。階層処理部3は、画素値読出部31と、交流成分予測部32と、減算器33と、非可逆変換部34と、エントロピー符号化部35と、逆変換部36と、加算器37とを有する。
 画素値読出部31は、今回の処理対象となる対象ブロックPBsと、その参照すべき領域となる参照ブロックPBt~PBrとを特定し、これらの平均画素値DCn-1をバッファから読み出す。本実施形態において、参照ブロックPBt~PBrの情報は、そのブロックが処理済/未処理の区別に関わりなく、換言すれば、そのブロック内のサブブロックの情報が算出されているか否かに関わりなく、直上位の階層で算出済みの平均画素値DCn-1が一律に用いられる。なお、後述する図14および図15のようにサブブロックも参照する場合には、同一階層で算出済みの平均画素値DCnがバッファより読み出される。バッファから読み出された平均画素値DCn-1は、交流成分予測部32に供給される。
 交流成分予測部32は、対象ブロックPBsの平均画素値DCn-1(以下、「S」という)と、参照ブロックPBt~PBrの平均画素値DCn-1(以下、それぞれを「T」,「L」,「B」,「R」という)とを用いて、対象ブロックPBsの交流成分予測を行う。これにより、対象ブロックPBsを細分化した4つのサブブロックsb00~sb11の予測画素値C={c00,c01,c10,c11}が算出される。
 図8は、交流成分予測部32の構成図である。交流成分予測部32は、傾き算出部32aと、しきい値設定部32bと、傾き補正部32cと、予測部32dとを有する。傾き算出部32aは、対象ブロックPBsの参照領域の情報に基づいて、一次元方向の傾き、すなわち、一次元方向における単位距離あたりの画素値の変化量を算出する。本実施形態では、一次元方向の傾きとして、横方向の傾きαおよび縦方向の傾きβの双方を算出しているが、いずれか一方のみでもよく、或いは、これらに斜め方向等を追加してもよい。横方向の傾きαは、画像平面上において対象ブロックPBsを中心に横方向に対向した左右の画素値L,Rに基づいて算出される。また、縦方向の傾きβは、画像平面上において対象ブロックPBsを中心に縦方向に対向した上下の画素値T,Bに基づいて算出される。これらの傾きα,βの算出式を数式1に示す。
(数式1)
 α = (L-R)/8
 β = (T-B)/8
 図9は、対象ブロックPBsを中心とした参照ブロックPBt~PBrの距離的関係を示す図である。それぞれのブロックPBの中心位置における中心画素値は、そのブロック自体の平均画素値DCn-1とみなす。ブロックPBを4分割したときの正方形(サブブロックsb)の1辺の長さを1とし、サブブロックsbを更に4分割したときの正方形の1辺の長さを1/2とする。隣り合ったブロック同士の中心間距離は2となり、ブロックおよびその内部のサブブロックの中心間距離は1/2(正規化係数)となる。上記数式1における除数8は、左右の中心画素値L,Rの中心間距離4を正規化係数1/2で正規化した値である。
 図10は、横方向の傾きαの算出説明図である。まず、左右の参照ブロックPBl,PBrの中心画素値L,Rの差を両者の中心間距離4で除算する。そして、これによって得られた値を正規化係数1/2で正規化することで、横方向の傾きαが算出される。縦方向の傾きβについても同様であり、上下の参照ブロックPBt,PBbの中心画素値T,Bの差を両者の中心間距離4で除算し、その除算値が正規化係数1/2で正規化される。傾き算出部32aにて算出された傾きα,βは、傾き補正部32cに出力される。
 しきい値設定部32bは、傾きα,βのそれぞれに関して、傾きしきい値αth,βthを算出する。横方向の傾きαに関しては、対象ブロックPBsの左側の画素値Lと、対象ブロックPBs自体の画素値Sとの間の変化量|L-S|が算出されるとともに、対象ブロックPBsの右側の画素値Rと、対象ブロックPBs自体の画素値Sとの間の変化量|R-S|が算出される。そして、これらの変化量|L-S|,|R-S|の内の小さい方が選択され、これが横方向の傾きしきい値αthとして設定される。一方、縦方向の傾きβに関しては、対象ブロックPBsの上側の画素値Tと、対象ブロックPBs自体の画素値Sとの間の変化量|T-S|が算出されるとともに、対象ブロックPBsの下側の画素値Bと、対象ブロックPBs自体の画素値Sとの間の変化量|B-S|が算出される。そして、これらの変化量|T-S|,|B-S|の内の小さい方が選択され、これが縦方向の傾きしきい値βthとして設定される。しきい値設定部32bにて設定された傾きしきい値αth,βthは、傾き補正部32cに出力される。
 傾き補正部32cは、横方向の傾きαが傾きしきい値αth以下の場合には、横方向の傾きαを補正することなくそのまま予測部32dに出力するとともに(入力値α=出力値α’)、これが傾きしきい値αthよりも大きい場合には、この傾きαの値が小さくなるように傾きαを補正して出力する(入力値α>出力値α’)。同様に、縦方向の傾きβが傾きしきい値βth以下の場合には、縦方向の傾きβがそのまま出力され(入力値|β|=出力値|β’|)、これが傾きしきい値βthよりも大きい場合には、この傾きβの値が小さくなるように傾きβが補正・出力される(入力値|β|>出力値|β’|)。
 本実施形態では、一例として以下の数式2に基づいて傾きα,βを補正する。ここで、sign(x)は、傾きの符号を指定する符号関数であり、x>0で出力1、x=0で出力0、x<0で出力-1のいずれかを返す。
(数式2)
 α’ = sign(α) × αth
 β’ = sigin(β) × βth
 図11は、傾き補正部32cにおける横方向の傾きαの入出力特性図である。|α|≦αthの非補正領域では、交流成分予測によるオーバー/アンダーシュートが生じないので、入力値|α|をそのまま出力値|α’|とする。これに対して、|α|>αthの補正領域では、入力値|α|の値に関わりなく、出力値|α’|を傾きしきい値αth(一定)に制限する。傾き|α|が傾きしきい値αthよりも大きいということは、その方向の傾きが急であるがゆえに、そのままだとオーバー/アンダーシュートが生じることを意味する。このような場合、入力値|α|に対して出力値|α’|を小さくすれば、本来の値αとの差に相当する分だけオーバー/アンダーシュートが緩和される。特に、出力値|α’|を傾きしきい値αth以下に制限すれば、理論上、オーバー/アンダーシュートを完全に解消できる。なお、補正値として、傾きしきい値αthをそのまま用いてもよいが、これに所定の係数n(0<n≦1)を乗じたものを用いてもよい。また、補正領域における出力値α’を一定値にするのではなく、図12に示すように、|α|>|α’|の条件を維持しながら、入力値|α|の増加と共に出力値|α’|を曲線状に増加させてもよい。入出力特性の設定に際しては、入力値|α|よりも出力値|α’|を小さくするという条件を最低限満たす必要があり、この条件を満たす限りどのような入出力特性を設定してもよい。さらに、傾きαの補正は、演算式を用いて行う以外に、入力値αおよび出力値α’の対応関係を記述したテーブルを参照して行ってもよい。以上の点は縦方向の傾きβについても同様である。傾き補正部32cによって算出された傾きα’,β’は、予測部32dに出力される。
 予測部32dは、横方向の傾きα’および縦方向の傾きβ’の双方を入力としたアダマール逆変換(数式3)を行い、対象ブロックPBsを細分化した複数のサブブロックsb00~sb11のそれぞれの予測画素値C={c00,c01,c10,c11}を算出する。また、数式4は、非補正領域の処理結果であるα’=α,β’=βを入力とした予測画素値Cの算出式である(数式1,3を単一式で表現したもの)。予測部32dにおいて算出された予測画素値Cは、図7の減算器33および加算器37に供給される。
(数式3)
 c00 = T+(α’+β’)
 c01 = T+(-α’+β’)
 c10 = T+(α’-β’)
 c11 = T+(-α’-β’)
(数式4)
 c00 = T+(L-R+T-B)/8
 c01 = T+(-L+R+T-B)/8
 c10 = T+(L-R-T+B)/8
 c11 = T+(-L+R-T+B)/8
 再び図7を参照すると、減算器33は、交流成分予測部32によって算出された予測画素値C(例えば4×4ブロック単位)と、これに対応する平均画素値TDCn(例えば4×4ブロック単位)、すなわち、入力画像に基づいて算出された真の画素値との差分を予測残差PRとして算出する。交流成分予測によって生成された予測画像(予測画素値c00~c11の集合)が本来の画像(真の画素値)に近いほど予測残差PRが小さくなる。傾き補正部32cにおける傾きα,βの補正によって、予測外れが解消する方向に作用するため、傾きα,βをそのまま用いる場合よりも予測残差PRが小さくなる。予測残差PRが小さくなるほど、統計的に見た予測残差の出現頻度が0近傍に偏る傾向が高まるので、エントロピー符号化を施す上で有利になる(圧縮率の向上に貢献する)。
 非可逆変換部34は、減算器33によって算出された予測残差PRに対して、例えばアダマール変換および量子化といった非可逆変換を施す。エントロピー符号化部35は、非可逆変換が施された予測残差PRに対して、ハフマン符号化や算術符号化といったエントロピー符号化を施すことによって、例えば4×4ブロック単位での交流成分ACn(圧縮データ)を生成する。逆変換部36は、非可逆変換が施された予測残差PRに対して、この非可逆変換の逆処理を施すことによって予測残差PR’を算出する。この予測残差PR'は、本来の予測残差PRを復元したものだが、非可逆変換(元の値を完全に復元することはできない)が施されている関係上、本来の予測残差PRとは僅かに相違している。加算器37は、交流成分予測部32によって算出された予測画素値Cに、予測残差PR’を加算することによって、サブブロック(例えば4×4ブロック)の平均画素値DCnを算出する。加算器37の入力として本来の予測残差PRではなく、復元された予測残差PR’を用いる理由は、デコード時の繰り返し処理によって誤差の累積することを防止し、伸張画像の再現性を担保するためである。加算器37より出力された平均画素値DCnは、バッファに一時的に格納され、直下位の階層での処理において随時読み出される。
 このように、本実施形態に係るRACPエンコーダによれば、一次元方向の傾きα,βが傾きしきい値αth,βth以下の場合、非補正領域の処理として、α,βの値がそのまま傾きα’,β’として出力される。そして、これらの傾きα’(=α),β’(=β)に基づいて予測画素値Cが算出される。この場合、例えば横方向の傾きαに関しては、図1で例示した従来技術と同様、本来的にオーバー/アンダーシュートを招くことなく、S±αの予測画素値c0,c1(AC値)が算出される。これに対して、エッジ周辺のように、一次元方向の傾きα,βが傾きしきい値αth,βthよりも大きい場合、補正領域の処理として、α,βの値が小さくなるように補正されたものが傾きα’,β’として出力される。そして、これらの傾き|α’|(<|α|),|β’|(<|β|)に基づいて予測画素値Cが算出される。この場合、例えば横方向の傾きαに関しては、図13に例示するように、S(DC値)に対する変化量を規定する|α’|が傾きしきい値αth相当に規制される。これにより、交流成分予測前の大小関係(L>S≧R)が交流成分予測後の大小関係(L>c0>c1=R)として、或いは、それに近い形で維持される。これにより、予測画素値c0のオーバーシュートおよび予測画素値c1のアンダーシュートが抑制され、リンギングノイズの発生を有効に低減できる。その結果、画質の低下を抑制できるとともに、予測誤差の増大に起因した圧縮率の低下も防止できる。特に、傾きの大きさ|α|,|β|を傾きしきい値αth,βthの値、或いは、それ以下の値に置き換えれば、理論上、リンギングノイズを完全に解消できる。また、図5に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
 なお、上述した実施形態では、対象ブロックPBsの参照領域として、これに直接隣接した上下左右のブロックPBt~PBrを設定しているが、以下に示す設定例を含めて様々な設定に適用できる。また、上述した実施形態では、傾きα,βの計算と傾きしきい値αth,βthの計算とで同一の画素値T,L,B,R(参照情報)を用いているが、例えば傾きα,βの計算を大ブロック、傾きしきい値αth,βthの計算を小ブロックといった如く、両者の計算で用いる参照情報を相違させてもよい。
 図14の設定例では、対象ブロックPBsの参照領域として、ブロックサイズが同一である8つのブロックPBt,PBtt,PBl,PBll,PBb,PBbb,PBr,PBrrが用いられる。参照ブロックPBt,PBl,PBb,PBrは、対象ブロックPBsの上下左右に直接隣接している。また、参照ブロックPBtt,PBll,PBbb,PBrrは、対象ブロックPBsの上下左右に一つ飛びで隣接している。本設定例において、傾きα,βの計算を数式1のままとし、傾きしきい値αth,βthの計算に関してのみ、予測画素値T’,L’,B’,R’を用いる(数式5)。予測画素値T’,L’,B’,R’は、対象ブロックPBsの画素値Sと、その方向に存在する2つのブロックの画素値(例えば左方向はL,LL)とを用いて予測される。傾きα,β等を算出した後の処理は、上述した実施形態と同様である。
(数式5)
 L’ = L+(S-LL)/4
 R’ = R+(S-RR)/4
 T’ = T+(S-TT)/4
 B’ = B+(S-BB)/4
 α = (L-R)/8
 β = (T-B)/8
 αth = min(|L’-S|,|R’-S|)
 βth = min(|T’-S|,|B’-S|)
 図15の設定例では、上左のブロックPBt,PBlについては、サブブロックsb(T),sb(L)の中心画素値t0,t1,l0,l1が用いられる。これらの中心画素値t0~l1は、同一階層における従前の処理でDCnとして処理済であり、その値がフィードバックされる。本設定例において、傾きα,βの計算および傾きしきい値αth,βthの計算の双方に関して、予測画素値T’,L’,B’,R’を用いる(数式6)。この場合、対象ブロックPBsを中心に一次元方向に対向した予測画素値が予測され、これらを用いて傾きα,βが算出される。傾きα,β等を算出した後の処理は、上述した実施形態と同様である。
(数式6)
 T’ = (t0+t1)/2
 L’ = (l0+l1)/2
 B’ = B+(S-BB)/8
 R’ = R+(S-RR)/8
 α = (L’-R’)/6
 β = (T’-B’)/6
 αth = min(|L’-S|,|R’-S|)
 βth = min(|T’-S|,|B’-S|)
(RACPエンコードプログラム)
 つぎに、ハードウェアとして実現されるRACPエンコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのRACPエンコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載に譲るものとする。
 図16は、RACPエンコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図6に示したような逐次処理が基本となる。まず、ステップ1において、入力画像の画像平面上にブロック(4タイプ)を複数設定し、それぞれのブロックの平均画素値TDC0~TDC3が算出される。算出された平均画素値TDC0~3は、バッファに随時格納される。すべてのブロックの処理が終了するとステップ2に進む。
 ステップ2において、8×8ブロックの平均画素値TDC0に対して、DC符号化、すなわち、差分パルス幅変調とエントロピー符号化とが施され、これによって、圧縮データの一部となる画像の直流成分DC0が生成・出力される。また、その復元値がDC0としてバッファに格納される。
 ステップ3において、階層番号LNが1(初期値)にセットされる。LN=1は、処理を行うべき階層が最上位階層であることを示す。そして、1つの階層処理が終了する毎に1ずつインクリメントされ(ステップ14)、下位の階層へと順番に推移していく。そして、LN=3、すなわち最下位階層の処理が終わった時点で、全ての処理が終了する(ステップ13)。
 ステップ4において、ブロック番号BNが1(初期値)にセットされる。先のステップ3における階層番号LNの設定にともない、その階層で処理対象となるブロックのサイズは一義的に特定され、全体のブロック数に応じた終了ブロック番号BNendも特定される。同一階層内におけるブロックの処理が終了する毎にブロック番号BNが1ずつインクリメントされ(ステップ12)、処理対象が所定の方向に順次シフトしていく。そして、終了ブロック番号BNendに相当するブロックの処理が終了した時点で、その階層における処理が終了する(ステップ11)。
 ステップ5において、ブロック番号BNによって指定された対象ブロックPBsに関して、参照ブロックの画素値DCn(=T,L,B,R)が読み出される。
 ステップ6において、ブロック番号BNによって指定された対象ブロックPBsに関して、上述した数式1~3に基づいて交流成分予測が行われ、これによって、予測画素値C(=c00~c11)が算出される。そして、これに続くステップ7において、先のステップ6で算出された予測画素値Cと真の画素値TDCnとの差分が予測残差PRとして算出される。
 ステップ8において、先のステップ7で算出された予測残差PRに対して、非可逆変換およびエントロピー符号化を施す。これによって、圧縮データの一部としての画像の交流成分ACnが生成される。これに続くステップ9において、非可逆変換が施された予測誤差PRに対して、その逆処理を行い、本来の予測誤差PRを復元した予測誤差PR’(復元値)が算出される。そして、ステップ10において、ステップ6で算出された予測画素値Cに、予測残差PR’を加算することによって、サブブロックの平均画素値DCnが算出され、バッファに格納される。なお、ステップ9,10の処理は、LN=3、すなわち最下位の階層処理ではスキップされる。
 ステップ11において、ブロック番号BNが終了ブロック番号BNendに到達したか否かが判断される。終了ブロック番号BNendに到達するまでは、ステップ12においてブロック番号BNが1ずつインクリメントされていき、ステップ5~11の処理が繰り返される。そして、終了ブロック番号BNendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ループを抜けてステップ13に進む。
 ステップ13において、階層番号LNが3(最下位階層)に到達したか否かが判断される。3に到達するまでは、ステップ14において階層番号LNが1ずつインクリメントされていき、ステップ5~12のループが繰り返される。これにより、階層が下位になるにしたがって、対象ブロックPBsのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値DCn(出力)は、下位階層側の平均画素値DCn-1(入力)として用いられる。そして、LN=3で、かつ、BN=BNendに到達した場合、すなわち、最下位階層の全処理が終了した場合には、ステップ11,13の判断結果よりループを抜け、これによって、本プログラムの処理が終了する。
 本実施形態に係るRACPエンコードプログラムによれば、上述したRACPエンコーダと同様、リンギングノイズによる画質の低下を抑制できるとともに、予測誤差の増大に起因した圧縮率の低下も防止できる。
(RACPデコーダ)
 図17は、上述したRACPエンコーダまたはRACPエンコードプログラムによって生成された圧縮データを伸張するRACPデコーダの全体構成図である。このデコーダは、DC復号化5と、3つの階層処理部6a~6cとを主体に構成されている。これらのユニット5,6a~6cより出力されたデータDCn(n=0,1,2,3)は、図示しないバッファ(記憶部)に一時的に格納される。
 DC復号化5および階層処理部6a~6cは、8×8ブロック(最上位階層)、4×4ブロック(第2位階層)、2×2ブロック(第3位階層)、1×1ブロック(最下位階層)の階層構造において、自己に割り当てられた階層処理を行う。最上位階層のDC復号化部5は、画像の直流成分DC0に関する圧縮データに対して、画像圧縮時に施された処理の逆処理を行うことによって、8×8ブロックの平均画素値DC0を生成し、これを第2位階層の階層処理部6aに供給する。
 RACPデコーダの階層構造自体は、RACPエンコーダのそれとほぼ同様であるが、エンコーダにおける階層処理部3a~3cの出力となる交流成分AC1~AC3が、デコーダにおける階層処理部6a~6cの入力となる点が相違する。これらの階層処理部6a~6cは、画像の交流成分AC1~AC3に関する圧縮データと、直上位の階層より供給された平均画素値DCn-1とに基づいて、平均画素値DCnを復元する。復元された平均画素値DCnは、必要に応じて直下位の階層に供給するために出力され、バッファに格納される。そして、最下位階層の階層処理部6cによって算出された1×1ブロックの平均画素値DC3の集合が最終的な伸張画像となる。なお、デコーダにおける順次シフトの方向は、エンコーダのそれに準じるものとする。また、デコーダの処理は、並列処理および逐次処理のどちらであってもよい。
 図18は、RACPデコーダにおける階層処理部6(6a~6cの総称)の構成図である。それぞれの階層における階層処理部6は、取り扱うブロックのサイズが異なる点を除けば、基本構成および動作は同一である。階層処理部6は、画素値読出部61と、交流成分予測部62と、加算器63と、逆変換部64とを有する。
 画素値読出部61は、RACPエンコーダと同様、対象ブロックPBsの周辺に存在する参照ブロックPBt~rrの平均画素値DCn(=T,L,B,R)をバッファから読み出す。この平均画素値DCn-1は、直上位の階層において既に算出されており、直上位の階層よりバッファを介して供給される。バッファより読み出された平均画素値DCn-1が交流成分予測部62に供給される。
 交流成分予測部62は、図8に示した構造を有し、バッファより供給されたDCn-1を用いて、対象ブロックPBsの交流成分予測を行う。これによって、対象ブロックPBsの予測画素値C(=c00~c11)が算出される。算出された予測画素値Cは、加算器63に供給される。なお、画像平面上の縁部のように周辺領域の一部が欠落している場合には、デコーダとの間で予め取り決められた規則にしたがって処理される。例えば、対象ブロックPBsの平均画素値DCn-1をその部分の情報として補うといった如くである。
 逆変換部64は、例えば4×4ブロックの交流成分ACnの圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、加算器63に供給すべき予測残差PR’を復元する。加算器63は、交流成分予測部62によって算出された予測画素値Cに、逆変換部64によって復元された予測残差PR’を加算することによって、サブブロック(例えば4×4ブロック)の平均画素値DCnを算出し、バッファに一時的に格納する。バッファの格納された平均画素値DCnは、直下位の階層でのブロック(例えば4×4ブロック)の平均画素値として、直下位の階層における交流成分予測部62にも供給される。
 このように、本実施形態に係るRACPデコーダによれば、上述したRACPデコーダまたはRACPエンコードプログラムによって生成された圧縮データを適切に伸張することができる。特に、図5に示したようなパイプライン的な並行処理を行えば、全体的な処理時間の短縮を図ることができる。
(RACPデコードプログラム)
 つぎに、ハードウェアとして実現されるRACPデコーダと同等の処理を、コンピュータのソフトウェア処理によって実現するためのRACPデコードプログラムについて説明する。なお、ハードウェア処理とソフトウェア処理との間には本質的な相違はないので、ここでは概略的な説明に留め、その詳細は上述した記載を参照するものとする。
 図19は、RACPデコードプログラムのフローチャートである。コンピュータによるソフトウェア処理では、図6に示したような逐次処理が基本となる。まず、ステップ21において、画像の直流成分DC0の圧縮データに対して、DC復号化、すなわち、データ圧縮時に施された符号化処理の逆処理が施され、これによって、8×8ブロックの平均画素値DC0が復元され、これがバッファに格納される。
 ステップ22,23において、RACPエンコードプログラムと同様に、階層番号LNが1(初期値)、ブロック番号BNが1(初期値)にそれぞれセットされる。
 ステップ24において、ブロック番号BNによって指定された対象ブロックPBsの参照情報T,L,B,Rがバッファより読み出される。
 ステップ25において、ブロック番号BNによって指定された対象ブロックPBsに関して、上述した数式1~3に基づき交流成分予測が行われ、これによって、対象ブロックPBsに関する予測画素値C(=c00~c11)が算出される。そして、これに続くステップ26において、画像の交流成分ACnの圧縮データが伸張され、これによって、予測残差PR’が復元される。そして、ステップ27において、ステップ25で算出された予測画素値Cに、ステップ27で算出された予測残差PR’を加算することによって、サブブロックの平均画素値DCnが算出され、バッファに格納される。
 ステップ28において、ブロック番号BNが終了ブロック番号BNendに到達したか否かが判断される。終了ブロック番号BNendに到達するまでは、ステップ29においてブロック番号BNが1ずつインクリメントされていき、ステップ24~27の処理が繰り返される。そして、終了ブロック番号BNendに到達した場合、すなわち、画像平面内の全ブロックの処理が終了した場合には、ステップ28の判断結果よりループを抜け、ステップ30に進む。
 ステップ30において、階層番号LNが3(最下位階層)に到達したか否かが判断される。3に到達するまでは、ステップ31において階層番号LNが1ずつインクリメントされていき、ステップ23~29のループが繰り返される。これにより、階層が下位になるにしたがって、ブロックPBのサイズが段階的に小さくなっていき、上述した一連の処理が再帰的に実行される。上位階層側において算出されたサブブロックの平均画素値DCn(出力)は、下位階層側の処理対象および未処理周辺領域となるブロックの平均画素値DCn-1(入力)として用いられる。そして、LN=3で、かつ、BN=BNendに到達した場合、すなわち、最下位階層の処理が終了した場合には、ループを抜け、これによって、本プログラムの処理が終了する。
 本実施形態に係るRACPデコードプログラムによれば、上述したRACPデコーダと同様の効果を奏する。
 本発明に係る画像処理システムおよび画像処理プログラムは、交流成分予測符号化(再帰的交流成分予測符号化を含む)のみならず、交流成分予測を用いて解像度の高い画像を生成する画像処理等に対しても広く適用可能である。
 1 DC算出部
 2 DC符号化部
 3(3a~3c) 階層処理部
 5 DC復号化部
 6(6a~6c) 階層処理部
 31,61 画素値読出部
 32,62 交流成分予測部
 32a 傾き算出部
 32b しきい値設定部
 32c 傾き補正部
 32d 予測部
 33 減算器
 34 非可逆変換部
 35 エントロピー符号化部
 36,64 逆変換部
 37,63 加算器

Claims (14)

  1.  ブロックの交流成分予測を行う画像処理システムにおいて、
     前記ブロックに関する参照領域の情報として特定され、画像平面上において前記ブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出する傾き算出部と、
     前記一次元方向における一方の方向に位置する画素値および前記ブロックの画素値の変化量と、前記一次元方向における他方の方向に位置する画素値および前記ブロックの画素値の変化量とのうちの小さい方を選択し、当該選択された小さい方の変化量に基づいて傾きしきい値を設定するしきい値設定部と、
     前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きの値が小さくなるように、前記一次元方向の傾きを補正して出力する傾き補正部と、
     前記出力された一次元方向の傾きを用いて、前記ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出する予測部と
    を有することを特徴とする画像処理システム。
  2.  前記一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることを特徴とする請求項1に記載された画像処理システム。
  3.  前記傾き補正部は、前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きを前記傾きしきい値以下に補正して出力することを特徴とする請求項1または2に記載された画像処理システム。
  4.  前記予測部によって算出された前記予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記サブブロックの画素値を算出する加算器をさらに有することを特徴とする請求項1から3のいずれかに記載された画像処理システム。
  5.  階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、
     上位階層において算出された前記サブブロックの画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの画素値として、当該下位階層に供給されることを特徴とする請求項4に記載された画像処理システム。
  6.  前記画像処理システムは、画像を圧縮するエンコーダであって、
     前記予測部によって算出された前記予測画素値と、真の画素値との差分を予測残差として算出する減算器と、
     前記減算器によって算出された前記予測残差に対して、非可逆変換を施す非可逆変換部と、
     前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するエントロピー符号化部と、
     前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を生成する逆変換部と
    をさらに有することを特徴とする請求項4または5に記載された画像処理システム。
  7.  前記画像処理システムは、画像を伸張するデコーダであって、
     画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記加算器に供給すべき前記予測残差を復元する逆変換部をさらに有することを特徴とする請求項4または5に記載された画像処理システム。
  8.  ブロックの交流成分予測を行う画像処理プログラムにおいて、
     前記ブロックに関する参照領域の情報として特定され、画像平面上において前記ブロックを中心に対向した複数の画素値に基づいて、一次元方向における単位距離あたりの画素値の変化量を表す傾きを算出するステップと、
     前記一次元方向における一方の方向に位置する画素値および前記ブロックの画素値の変化量と、前記一次元方向における他方の方向に位置する画素値および前記ブロックの画素値の変化量とのうちの小さい方を選択し、当該選択された小さい方の変化量に基づいて傾きしきい値を設定するステップと、
     前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きの値が小さくなるように、前記一次元方向の傾きを補正して出力するステップと、
     前記出力された一次元方向の傾きを用いて、前記ブロックを細分化した複数のサブブロックのそれぞれの予測画素値を算出するステップと
    を有する画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
  9.  前記一次元方向の傾きは、画像平面上における横方向の傾きおよび縦方向の傾きの少なくとも一方であることを特徴とする請求項8に記載された画像処理プログラム。
  10.  前記一次元方向の傾きを補正して出力するステップは、前記一次元方向の傾きが前記傾きしきい値よりも大きい場合には、前記一次元方向の傾きを前記傾きしきい値以下に補正して出力するステップであることを特徴とする請求項8または9に記載された画像処理プログラム。
  11.  前記算出された予測画素値に、真の画素値との差分に相当する予測残差を加算することによって、前記サブブロックの画素値を算出するステップをさらに有することを特徴とする請求項8から10のいずれかに記載された画像処理プログラム。
  12.  階層が下位になるにしたがって、前記ブロックのサイズが段階的に小さくなる階層構造において、前記画像処理方法が再帰的に実行され、
     上位階層において算出された前記サブブロックの画素値は、当該上位階層の直下に位置する下位階層における前記ブロックの画素値として、当該下位階層に供給されることを特徴とする請求項11に記載された画像処理プログラム。
  13.  前記画像処理プログラムは、画像を圧縮するエンコードプログラムであって、
     前記算出された予測画素値と、真の画素値との差分を予測残差として算出するステップと、
     前記算出された予測残差に対して、非可逆変換を施すステップと、
     前記非可逆変換が施された予測残差に対して、エントロピー符号化を施すことによって、圧縮データの一部としての画像の交流成分を生成するステップと、
     前記非可逆変換が施された前記予測残差に対して、当該非可逆変換の逆処理を行うことによって、前記第6のステップに供給すべき前記予測残差を生成するステップと
    をさらに有することを特徴とする請求項11または12に記載された画像処理プログラム。
  14.  前記画像処理プログラムは、画像を伸張するデコードプログラムであって、
     画像の圧縮データに対して、画像圧縮時に施された非可逆変換およびエントロピー符号化の逆処理を行うことによって、前記予測残差を復元するステップをさらに有することを特徴とする請求項11または12に記載された画像処理プログラム。
PCT/JP2009/067344 2009-10-05 2009-10-05 画像処理システムおよび画像処理プログラム WO2011042945A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
PCT/JP2009/067344 WO2011042945A1 (ja) 2009-10-05 2009-10-05 画像処理システムおよび画像処理プログラム
CN200980161822.5A CN102577344B (zh) 2009-10-05 2009-10-05 图像处理系统和图像处理方法
KR1020127008725A KR101297862B1 (ko) 2009-10-05 2009-10-05 화상 처리 시스템 및 화상 처리 프로그램
JP2011535222A JP5007432B2 (ja) 2009-10-05 2009-10-05 画像処理システムおよび画像処理プログラム
HK13100055.7A HK1173011A1 (en) 2009-10-05 2013-01-03 Image processing system and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/067344 WO2011042945A1 (ja) 2009-10-05 2009-10-05 画像処理システムおよび画像処理プログラム

Publications (1)

Publication Number Publication Date
WO2011042945A1 true WO2011042945A1 (ja) 2011-04-14

Family

ID=43856446

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/067344 WO2011042945A1 (ja) 2009-10-05 2009-10-05 画像処理システムおよび画像処理プログラム

Country Status (5)

Country Link
JP (1) JP5007432B2 (ja)
KR (1) KR101297862B1 (ja)
CN (1) CN102577344B (ja)
HK (1) HK1173011A1 (ja)
WO (1) WO2011042945A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021072510A (ja) * 2019-10-30 2021-05-06 株式会社アクセル 画像処理装置、画像処理方法、画像処理プログラム、及び画像処理システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02154572A (ja) * 1988-12-06 1990-06-13 Nec Corp 画像信号の復号化方式
JP2008123349A (ja) * 2006-11-14 2008-05-29 Akuseru:Kk 画像ノイズ低減システム、画像ノイズ低減方法およびコンピュータ・プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3700976B2 (ja) * 2002-08-14 2005-09-28 株式会社アクセル 画像処理装置および画像処理方法
JP3774201B2 (ja) * 2003-03-19 2006-05-10 株式会社アクセル 画像処理装置
US7936941B2 (en) * 2004-10-08 2011-05-03 Panasonic Corporation Apparatus for clearing an image and method thereof
JP2008283341A (ja) * 2007-05-09 2008-11-20 Matsushita Electric Ind Co Ltd 圧縮符号化画像のノイズ除去装置及びノイズ除去方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02154572A (ja) * 1988-12-06 1990-06-13 Nec Corp 画像信号の復号化方式
JP2008123349A (ja) * 2006-11-14 2008-05-29 Akuseru:Kk 画像ノイズ低減システム、画像ノイズ低減方法およびコンピュータ・プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUSUKE HOSHIZUKI: "Improving AC Component Prediction in terms of Block Center Value Compensation and DC Component Conservation Filter", THE TRANSACTIONS OF THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS (J92-A), NO.1, THE IEICE TRANSACTIONS ON FUNDAMENTALS OF ELECTRONICS, COMMUNICATIONS AND COMPUTER SCIENCES (JAPANESE, vol. J92-A, 1 January 2009 (2009-01-01), pages 62 - 66 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021072510A (ja) * 2019-10-30 2021-05-06 株式会社アクセル 画像処理装置、画像処理方法、画像処理プログラム、及び画像処理システム
JP7040793B2 (ja) 2019-10-30 2022-03-23 株式会社アクセル 画像処理装置、画像処理方法、画像処理プログラム、及び画像処理システム

Also Published As

Publication number Publication date
HK1173011A1 (en) 2013-05-03
JP5007432B2 (ja) 2012-08-22
CN102577344A (zh) 2012-07-11
KR20120058608A (ko) 2012-06-07
JPWO2011042945A1 (ja) 2013-02-28
CN102577344B (zh) 2014-09-10
KR101297862B1 (ko) 2013-08-19

Similar Documents

Publication Publication Date Title
JP5133290B2 (ja) 動画像符号化装置および復号装置
US8891892B2 (en) Image encoding method using adaptive preprocessing scheme
JPWO2009084340A1 (ja) 動画像符号化装置、および、動画像復号装置
JP5594841B2 (ja) 画像符号化装置及び画像復号装置
JP2008167449A (ja) 映像の符号化、復号化方法及び装置
JP4785678B2 (ja) 画像符号化装置および画像符号化方法
US8447104B2 (en) Method, medium and system adjusting predicted values based on similarities between color values for image compressing/recovering
JP5139995B2 (ja) ストリームに透かしを入れる方法及び装置
JP5007432B2 (ja) 画像処理システムおよび画像処理プログラム
JP4660698B2 (ja) 画像処理システムおよび画像処理プログラム
JP6564315B2 (ja) 符号化装置、復号装置、及びプログラム
JP5007431B2 (ja) 交流成分予測システムおよび交流成分予測プログラム
JP4784386B2 (ja) 復号化装置、逆量子化方法及びプログラム
JP5007430B2 (ja) 交流成分予測システムおよび交流成分予測プログラム
JP4789020B2 (ja) 画像処理システムおよび画像処理プログラム
JP3200200B2 (ja) 画像符号化制御方法
JP4223577B2 (ja) 画像符号化装置とその方法、および、画像復号化装置とその方法
JPH03167962A (ja) ブロック歪み改善方式
JP4160513B2 (ja) 動画像の輝度変化パラメータ推定方法,動画像の輝度変化パラメータ推定プログラムおよびその記録媒体,並びに,動画像符号化装置,動画像符号化方法,動画像符号化プログラムおよびその記録媒体
JP4008846B2 (ja) 画像符号化装置、画像符号化方法、画像符号化プログラム及びそのプログラムを記録した記録媒体
JP2011049942A (ja) 画像処理システムおよび画像処理プログラム
JP6012307B2 (ja) 動画像符号化装置及びその制御方法、並びに、プログラム
JP2024000443A (ja) 映像符号化装置及びプログラム
JP4643736B2 (ja) 映像符号化装置、映像符号化方法、映像符号化プログラム及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2007027805A (ja) 映像符号化装置、映像符号化方法、映像符号化プログラム及びそのプログラムを記録したコンピュータ読取可能な記録媒体

Legal Events

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

Ref document number: 200980161822.5

Country of ref document: CN

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

Ref document number: 09850218

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011535222

Country of ref document: JP

ENP Entry into the national phase

Ref document number: 20127008725

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09850218

Country of ref document: EP

Kind code of ref document: A1