[go: up one dir, main page]

WO2013051452A1 - 画像処理装置および方法 - Google Patents

画像処理装置および方法 Download PDF

Info

Publication number
WO2013051452A1
WO2013051452A1 PCT/JP2012/074852 JP2012074852W WO2013051452A1 WO 2013051452 A1 WO2013051452 A1 WO 2013051452A1 JP 2012074852 W JP2012074852 W JP 2012074852W WO 2013051452 A1 WO2013051452 A1 WO 2013051452A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
unit
pixel
processing
filter
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP2012/074852
Other languages
English (en)
French (fr)
Inventor
優 池田
田中 潤一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of WO2013051452A1 publication Critical patent/WO2013051452A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Definitions

  • the present disclosure relates to an image processing apparatus and method, and more particularly, to an image processing apparatus and method capable of preventing an increase in line memory required for encoding or decoding.
  • the HEVC draft employs a deblocking filter, adaptive offset filter, and adaptive loop filter.
  • the adaptive loop filter performs processing after the deblocking filter and the adaptive offset filter.
  • the block-based adaptive loop filter classifies the pixels by calculating the variance (variance) of all pixels in units of 4 ⁇ 4 pixels.
  • Non-Patent Document 1 proposes that the variance is calculated only for the subsampled 4 pixels within 4 ⁇ 4 pixels, and the block classification of 4 ⁇ 4 pixels is performed. According to this proposal, the reduction of calculation in the classification is realized.
  • the present disclosure has been made in view of such a situation, and can prevent an increase in line memory in the lower part of the LCU.
  • An image processing apparatus performs a filtering process on a decoding unit that decodes an encoded stream to generate an image, and pixels that form a block of the image generated by the decoding unit.
  • a class classification processing unit that classifies a class to be performed on a pixel basis, and a filter process that performs pixel-based filter processing on an image generated by the decoding unit according to the class classified by the class classification processing unit A part.
  • control unit that controls the filter processing unit so as to perform a filter processing operation on the current pixel after performing the class classification processing on the current pixel.
  • the class classification processing unit or the filter processing unit so as to align a reference range to be referred to when calculating an evaluation value of the class classification processing for the current pixel and a reference range to be referred to when performing filter processing on the current pixel. It is possible to further include a control unit for controlling the above.
  • the control unit is configured to extend the reference range referred to when calculating the evaluation value of the class classification processing for the current pixel to the reference range referred to when performing the filter processing for the current pixel. Can be controlled.
  • the class classification processing unit classifies the current pixel class when the current pixel position is a predetermined pixel position for the image generated by the decoding unit, and is generated by the decoding unit. If the position of the current pixel is not the predetermined pixel position for the image, the current pixel can be classified into a class classified for the pixel located at the predetermined pixel position.
  • the class classification processing unit can perform class classification processing according to a pattern indicating the position of a pixel to be referred to when calculating an evaluation value of class classification processing.
  • the class classification processing unit acquires identification data for identifying a pattern indicating a pixel position to be referred to when calculating an evaluation value of class classification processing from the encoded stream, and refers to the acquired identification data, Classification processing can be performed.
  • the image processing apparatus further includes an adaptive offset filter processing unit that performs an adaptive offset filter process on the image decoded by the decoding unit, and the class classification processing unit targets pixels constituting a block of the image on which the adaptive offset filter process has been performed.
  • the class classification process can be performed on a pixel basis.
  • the image processing apparatus further includes a deblocking filter processing unit that performs a deblocking filter process on the image decoded by the decoding unit, and the adaptive offset filter unit applies the adaptive image to the image that has been subjected to the deblocking filter process by the deblocking filter processing unit. Offset filter processing can be performed.
  • an image processing apparatus generates an image by decoding an encoded stream, and performs a filtering process on pixels that form a block of the generated image. Are classified on a pixel basis, and the generated image is filtered on a pixel basis according to the classified class.
  • the image processing apparatus is configured to perform pixel classification on a pixel-based class classification basis for pixels constituting a block of an image subjected to local decoding processing when an image is encoded.
  • a class classification processing unit a filter processing unit that performs pixel-based filter processing on an image that has been subjected to local decoding processing according to the class that has been classified by the class classification processing unit, and the filter processing unit performs filtering processing.
  • an encoding unit that encodes the image using the generated image to generate an encoded stream.
  • control unit that controls the filter processing unit so as to perform a filter processing operation on the current pixel after performing the class classification processing on the current pixel.
  • the class classification processing unit or the filter processing unit so as to align a reference range to be referred to when calculating an evaluation value of the class classification processing for the current pixel and a reference range to be referred to when performing filter processing on the current pixel. It is possible to further include a control unit for controlling the above.
  • the control unit is configured to extend the reference range referred to when calculating the evaluation value of the class classification processing for the current pixel to the reference range referred to when performing the filter processing for the current pixel. Can be controlled.
  • the class classification processing unit is configured to classify the class of the current pixel and target the image subjected to the local decoding process when the current pixel position is a predetermined pixel position for the image subjected to the local decoding process. As described above, when the position of the current pixel is not the predetermined pixel position, the current pixel can be classified into a class classified with respect to the pixel located at the predetermined pixel position.
  • the class classification processing unit can perform class classification processing according to a pattern indicating the position of a pixel to be referred to when calculating an evaluation value of class classification processing.
  • the class classification processing unit performs class classification processing with reference to a pattern indicating a position of a pixel referred to when calculating an evaluation value of the class classification processing, generates identification data for identifying the pattern, and performs the encoding Can be added to the encoded stream generated by the unit.
  • the image processing apparatus further includes an adaptive offset filter processing unit that performs an adaptive offset filter process on the image decoded by the decoding unit, and the class classification processing unit targets pixels constituting a block of the image on which the adaptive offset filter process has been performed.
  • the class classification process can be performed on a pixel basis.
  • the image processing apparatus further includes a deblocking filter processing unit that performs a deblocking filter process on the image decoded by the decoding unit, and the adaptive offset filter unit applies the adaptive image to the image that has been subjected to the deblocking filter process by the deblocking filter processing unit. Offset filter processing can be performed.
  • the class when performing a filtering process on a pixel constituting a block of an image subjected to local decoding processing when the image processing apparatus encodes the image is set as a pixel.
  • a class classification process based on the class, a pixel-based filter process is performed on the locally decoded image according to the class subjected to the classification process, the image is encoded using the filtered image, and an encoded stream Is generated.
  • an image is generated by decoding an encoded stream, and a class for performing a filtering process on a pixel constituting a block of the generated image is classified on a pixel basis. Then, the generated image is subjected to pixel-based filtering according to the classified class.
  • a class for performing filter processing is subjected to classification processing for pixels constituting a block of an image subjected to local decoding processing when an image is encoded. Accordingly, a pixel-based filter process is performed on the locally decoded image, and the image is encoded using the image subjected to the filter process to generate an encoded stream.
  • the above-described image processing apparatus may be an independent apparatus, or may be an internal block constituting one image encoding apparatus or image decoding apparatus.
  • an image can be decoded.
  • an increase in line memory can be prevented.
  • an image can be encoded.
  • an increase in line memory can be prevented.
  • FIG. 20 is a block diagram illustrating a main configuration example of a computer. It is a block diagram which shows an example of a schematic structure of a television apparatus. It is a block diagram which shows an example of a schematic structure of a mobile telephone. It is a block diagram which shows an example of a schematic structure of a recording / reproducing apparatus. It is a block diagram which shows an example of a schematic structure of an imaging device.
  • FIG. 1 illustrates a configuration of an embodiment of an image encoding device as an image processing device to which the present disclosure is applied.
  • the image encoding device 11 shown in FIG. 1 encodes image data using a prediction process.
  • a prediction process for example, HEVC (High) Efficiency Video Coding) method or the like is used.
  • the image encoding device 11 includes an A / D (Analog / Digital) conversion unit 21, a screen rearrangement buffer 22, a calculation unit 23, an orthogonal transformation unit 24, a quantization unit 25, and a lossless encoding unit 26. And a storage buffer 27.
  • the image encoding device 11 includes an inverse quantization unit 28, an inverse orthogonal transform unit 29, a calculation unit 30, a deblocking filter 31, a frame memory 32, a selection unit 33, an intra prediction unit 34, a motion prediction / compensation unit 35, A predicted image selection unit 36 and a rate control unit 37 are included.
  • the image encoding device 11 includes an adaptive offset filter 41 and an adaptive loop filter 42a between the deblocking filter 31 and the frame memory 32.
  • the A / D converter 21 A / D converts the input image data, outputs it to the screen rearrangement buffer 22, and stores it.
  • the screen rearrangement buffer 22 rearranges the stored frame images in the display order in the order of frames for encoding according to the GOP (Group of Picture) structure.
  • the screen rearrangement buffer 22 supplies the image with the rearranged frame order to the arithmetic unit 23.
  • the screen rearrangement buffer 22 also supplies the image in which the frame order is rearranged to the intra prediction unit 34 and the motion prediction / compensation unit 35.
  • the calculation unit 23 subtracts the predicted image supplied from the intra prediction unit 34 or the motion prediction / compensation unit 35 via the predicted image selection unit 36 from the image read from the screen rearrangement buffer 22, and the difference information Is output to the orthogonal transform unit 24.
  • the calculation unit 23 subtracts the prediction image supplied from the intra prediction unit 34 from the image read from the screen rearrangement buffer 22.
  • the calculation unit 23 subtracts the prediction image supplied from the motion prediction / compensation unit 35 from the image read from the screen rearrangement buffer 22.
  • the orthogonal transform unit 24 performs orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform on the difference information supplied from the computation unit 23 and supplies the transform coefficient to the quantization unit 25.
  • the quantization unit 25 quantizes the transform coefficient output from the orthogonal transform unit 24.
  • the quantization unit 25 supplies the quantized transform coefficient to the lossless encoding unit 26.
  • the lossless encoding unit 26 performs lossless encoding such as variable length encoding and arithmetic encoding on the quantized transform coefficient.
  • the lossless encoding unit 26 acquires parameters such as information indicating the intra prediction mode from the intra prediction unit 34, and acquires parameters such as information indicating the inter prediction mode and motion vector information from the motion prediction / compensation unit 35.
  • the lossless encoding unit 26 encodes the quantized transform coefficient, encodes each acquired parameter (syntax element), and uses it as part of the header information of the encoded data (multiplexes).
  • the lossless encoding unit 26 supplies the encoded data obtained by encoding to the accumulation buffer 27 for accumulation.
  • lossless encoding processing such as variable length encoding or arithmetic encoding is performed.
  • variable length coding include CAVLC (Context-Adaptive Variable Length Coding).
  • arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
  • the accumulation buffer 27 temporarily stores the encoded data supplied from the lossless encoding unit 26, and, for example, as a coded image encoded at a predetermined timing, for example, a recording device (not shown) or a transmission in the subsequent stage. Output to the road.
  • the transform coefficient quantized by the quantization unit 25 is also supplied to the inverse quantization unit 28.
  • the inverse quantization unit 28 inversely quantizes the quantized transform coefficient by a method corresponding to the quantization by the quantization unit 25.
  • the inverse quantization unit 28 supplies the obtained transform coefficient to the inverse orthogonal transform unit 29.
  • the inverse orthogonal transform unit 29 performs inverse orthogonal transform on the supplied transform coefficient by a method corresponding to the orthogonal transform processing by the orthogonal transform unit 24.
  • the inversely orthogonally transformed output (restored difference information) is supplied to the arithmetic unit 30.
  • the calculation unit 30 is supplied from the intra prediction unit 34 or the motion prediction / compensation unit 35 to the inverse orthogonal transform result supplied from the inverse orthogonal transform unit 29, that is, the restored difference information, via the predicted image selection unit 36. Predicted images are added to obtain a locally decoded image (decoded image).
  • the calculation unit 30 adds the prediction image supplied from the intra prediction unit 34 to the difference information.
  • the calculation unit 30 adds the predicted image supplied from the motion prediction / compensation unit 35 to the difference information.
  • the decoded image as the addition result is supplied to the deblocking filter 31 and the frame memory 32.
  • the deblocking filter 31 removes block distortion of the decoded image by appropriately performing deblocking filter processing.
  • the deblocking filter 31 supplies the filter processing result to the adaptive offset filter 41.
  • the adaptive offset filter 41 performs an offset filter (SAO: Sample adaptive ⁇ offset) process that mainly removes ringing on the image after filtering by the deblocking filter 31.
  • SAO Sample adaptive ⁇ offset
  • the adaptive offset filter 41 applies a quad-tree structure in which the type of the offset filter is determined for each divided region and the offset value for each divided region to the image after filtering by the deblocking filter 31. Apply processing.
  • the quad-tree structure and the offset value for each divided region are calculated by the adaptive offset filter 41 and used in the image encoding device 11.
  • the calculated quad-tree structure and the offset value for each divided region are encoded by the lossless encoding unit 26 and transmitted to the image decoding device 51 of FIG.
  • the adaptive offset filter 41 supplies the filtered image to the adaptive loop filter 42a.
  • the adaptive loop filter 42a performs a classification process on a pixel basis (pixel basis), and performs an adaptive loop filter (ALF: Adaptive Loop Filter) process.
  • ALF Adaptive Loop Filter
  • a two-dimensional Wiener filter is used as a filter.
  • filters other than the Wiener filter may be used.
  • the adaptive loop filter 42a performs class classification in units of pixels in the image after filtering by the adaptive offset filter 41.
  • the adaptive loop filter 42 a performs a filter process on the image after filtering by the adaptive offset filter 41 with a filter coefficient corresponding to the class classified in units of pixels, and supplies the filter process result to the frame memory 32. Details of the adaptive loop filter 42a will be described later with reference to FIG.
  • the filter coefficient is calculated by the adaptive loop filter 42a so as to minimize the residual from the original image from the screen rearrangement buffer 12. Used.
  • the calculated filter coefficient is encoded by the lossless encoding unit 26 and transmitted to the image decoding device 51 of FIG. 3 to be described later.
  • the frame memory 32 outputs the stored reference image to the intra prediction unit 34 or the motion prediction / compensation unit 35 via the selection unit 33 at a predetermined timing.
  • the frame memory 32 supplies the reference image to the intra prediction unit 34 via the selection unit 33.
  • the frame memory 32 supplies the reference image to the motion prediction / compensation unit 35 via the selection unit 33.
  • the selection unit 33 supplies the reference image to the intra prediction unit 34 when the reference image supplied from the frame memory 32 is an image to be subjected to intra coding.
  • the selection unit 33 also supplies the reference image to the motion prediction / compensation unit 35 when the reference image supplied from the frame memory 32 is an image to be inter-encoded.
  • the intra prediction unit 34 performs intra prediction (intra-screen prediction) for generating a predicted image using pixel values in the screen.
  • the intra prediction unit 34 performs intra prediction in a plurality of modes (intra prediction modes).
  • the intra prediction unit 34 generates prediction images in all intra prediction modes, evaluates each prediction image, and selects an optimal mode. When the optimal intra prediction mode is selected, the intra prediction unit 34 supplies the prediction image generated in the optimal mode to the calculation unit 23 and the calculation unit 30 via the predicted image selection unit 36.
  • the intra prediction unit 34 supplies parameters such as intra prediction mode information indicating the adopted intra prediction mode to the lossless encoding unit 26 as appropriate.
  • the motion prediction / compensation unit 35 uses the input image supplied from the screen rearrangement buffer 22 and the reference image supplied from the frame memory 32 via the selection unit 33 for the image to be inter-coded, Perform motion prediction. In addition, the motion prediction / compensation unit 35 performs a motion compensation process according to the motion vector detected by the motion prediction, and generates a predicted image (inter predicted image information).
  • the motion prediction / compensation unit 35 performs inter prediction processing in all candidate inter prediction modes, and generates a prediction image.
  • the motion prediction / compensation unit 35 supplies the generated predicted image to the calculation unit 23 and the calculation unit 30 via the predicted image selection unit 36.
  • the motion prediction / compensation unit 35 supplies parameters such as inter prediction mode information indicating the employed inter prediction mode and motion vector information indicating the calculated motion vector to the lossless encoding unit 26.
  • the predicted image selection unit 36 supplies the output of the intra prediction unit 34 to the calculation unit 23 and the calculation unit 30 in the case of an image to be subjected to intra coding, and in the case of an image to be subjected to inter coding, the motion prediction / compensation unit 35.
  • the output is supplied to the calculation unit 23 and the calculation unit 30.
  • the rate control unit 37 controls the quantization operation rate of the quantization unit 25 based on the compressed image stored in the storage buffer 27 so that overflow or underflow does not occur.
  • step S11 the A / D converter 21 A / D converts the input image.
  • step S12 the screen rearrangement buffer 22 stores the A / D converted images, and rearranges them from the display order of each picture to the encoding order.
  • a decoded image to be referred to is read from the frame memory 32 and the intra prediction unit via the selection unit 33 34.
  • the intra prediction unit 34 performs intra prediction on the pixels of the block to be processed in all candidate intra prediction modes. Note that pixels that have not been filtered by the deblocking filter 31 are used as decoded pixels that are referred to.
  • intra prediction is performed in all candidate intra prediction modes, and cost function values are calculated for all candidate intra prediction modes. Then, based on the calculated cost function value, the optimal intra prediction mode is selected, and the predicted image generated by the intra prediction of the optimal intra prediction mode and its cost function value are supplied to the predicted image selection unit 36.
  • the processing target image supplied from the screen rearrangement buffer 22 is an inter-processed image
  • the referenced image is read from the frame memory 32 and supplied to the motion prediction / compensation unit 35 via the selection unit 33. Is done.
  • the motion prediction / compensation unit 35 performs motion prediction / compensation processing.
  • motion prediction processing is performed in all candidate inter prediction modes, cost function values are calculated for all candidate inter prediction modes, and optimal inter prediction is performed based on the calculated cost function values. The mode is determined. Then, the predicted image generated in the optimal inter prediction mode and its cost function value are supplied to the predicted image selection unit 36.
  • step S15 the predicted image selection unit 36 selects one of the optimal intra prediction mode and the optimal inter prediction mode based on the cost function values output from the intra prediction unit 34 and the motion prediction / compensation unit 35. Determine the prediction mode. Then, the predicted image selection unit 36 selects a predicted image in the determined optimal prediction mode and supplies it to the calculation units 23 and 30. This predicted image is used for calculations in steps S16 and S21 described later.
  • the prediction image selection information is supplied to the intra prediction unit 34 or the motion prediction / compensation unit 35.
  • the intra prediction unit 34 supplies information indicating the optimal intra prediction mode (that is, a parameter related to intra prediction) to the lossless encoding unit 26.
  • the motion prediction / compensation unit 35 When a prediction image in the optimal inter prediction mode is selected, the motion prediction / compensation unit 35 performs lossless encoding of information indicating the optimal inter prediction mode and information corresponding to the optimal inter prediction mode (that is, parameters relating to motion prediction). To the unit 26.
  • Information according to the optimal inter prediction mode includes motion vector information and reference frame information.
  • step S16 the calculation unit 23 calculates a difference between the image rearranged in step S12 and the predicted image selected in step S15.
  • the predicted image is supplied from the motion prediction / compensation unit 35 in the case of inter prediction, and from the intra prediction unit 34 in the case of intra prediction, to the calculation unit 23 via the predicted image selection unit 36, respectively.
  • ⁇ Difference data has a smaller data volume than the original image data. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
  • step S17 the orthogonal transformation unit 24 orthogonally transforms the difference information supplied from the calculation unit 23. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
  • orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
  • step S18 the quantization unit 25 quantizes the transform coefficient.
  • the rate is controlled as will be described in the process of step S28 described later.
  • step S19 the inverse quantization unit 28 inversely quantizes the transform coefficient quantized by the quantization unit 25 with characteristics corresponding to the characteristics of the quantization unit 25.
  • step S ⁇ b> 20 the inverse orthogonal transform unit 29 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 28 with characteristics corresponding to the characteristics of the orthogonal transform unit 24.
  • step S21 the calculation unit 30 adds the predicted image input via the predicted image selection unit 36 to the locally decoded difference information, and locally decoded (ie, locally decoded) image. (Image corresponding to the input to the calculation unit 23) is generated.
  • step S22 the deblocking filter 31 performs a deblocking filter process on the image output from the calculation unit 30. Thereby, block distortion is removed.
  • the filtered image from the deblocking filter 31 is output to the adaptive offset filter 41.
  • step S23 the adaptive offset filter 41 performs adaptive offset filter processing.
  • the filtering process is performed on the image after filtering by the deblocking filter 31 using the quad-tree structure in which the type of the offset filter is determined for each divided region and the offset value for each divided region. Applied.
  • the filtered image is supplied to the adaptive loop filter 42a.
  • the adaptive loop filter 42a performs an adaptive loop filter process on the image after filtering by the adaptive offset filter 41.
  • the adaptive loop filter 42a performs class classification in units of pixels in the image after filtering by the adaptive offset filter 41.
  • the adaptive loop filter 42a performs a filtering process on the image after filtering by the adaptive offset filter 41 with a filter coefficient corresponding to a class classified in units of pixels.
  • the adaptive loop filter 42 a supplies the filter processing result to the frame memory 32. Details of the adaptive loop filter processing will be described later with reference to FIG.
  • step S25 the frame memory 32 stores the filtered image.
  • images not filtered by the deblocking filter 31, the adaptive offset filter 41, and the adaptive loop filter 42a are also supplied from the arithmetic unit 30 and stored.
  • the transform coefficient quantized in step S18 described above is also supplied to the lossless encoding unit 26.
  • the lossless encoding unit 26 encodes the quantized transform coefficient output from the quantization unit 25 and each supplied parameter. That is, the difference image is subjected to lossless encoding such as variable length encoding and arithmetic encoding, and is compressed.
  • step S27 the accumulation buffer 27 accumulates the encoded difference image (that is, the encoded stream) as a compressed image.
  • the compressed image stored in the storage buffer 27 is appropriately read out and transmitted to the decoding side via the transmission path.
  • step S28 the rate control unit 37 controls the quantization operation rate of the quantization unit 25 based on the compressed image stored in the storage buffer 27 so that overflow or underflow does not occur.
  • step S28 ends, the encoding process ends.
  • FIG. 3 illustrates a configuration of an embodiment of an image decoding device as an image processing device to which the present disclosure is applied.
  • An image decoding device 51 shown in FIG. 3 is a decoding device corresponding to the image encoding device 11 of FIG.
  • encoded data encoded by the image encoding device 11 is transmitted to an image decoding device 51 corresponding to the image encoding device 11 via a predetermined transmission path and decoded.
  • the image decoding device 51 includes a storage buffer 61, a lossless decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transform unit 64, a calculation unit 65, a deblocking filter 66, a screen rearrangement buffer 67, And a D / A converter 68.
  • the image decoding device 51 includes a frame memory 69, a selection unit 70, an intra prediction unit 71, a motion prediction / compensation unit 72, and a selection unit 73.
  • the image decoding device 51 includes an adaptive offset filter 81 and an adaptive loop filter 42b between the deblocking filter 66, the screen rearrangement buffer 67, and the frame memory 69.
  • the accumulation buffer 61 accumulates the transmitted encoded data. This encoded data is encoded by the image encoding device 11.
  • the lossless decoding unit 62 decodes the encoded data read from the accumulation buffer 61 at a predetermined timing by a method corresponding to the encoding method of the lossless encoding unit 26 in FIG.
  • the lossless decoding unit 62 supplies parameters such as information indicating the decoded intra prediction mode to the intra prediction unit 71, and supplies parameters such as information indicating the inter prediction mode and motion vector information to the motion prediction / compensation unit 72. .
  • the inverse quantization unit 63 inversely quantizes the coefficient data (quantization coefficient) obtained by decoding by the lossless decoding unit 62 by a method corresponding to the quantization method of the quantization unit 25 in FIG. That is, the inverse quantization unit 63 uses the quantization parameter supplied from the image encoding device 11 to perform inverse quantization of the quantization coefficient by the same method as the inverse quantization unit 28 in FIG.
  • the inverse quantization unit 63 supplies the inversely quantized coefficient data, that is, the orthogonal transform coefficient, to the inverse orthogonal transform unit 64.
  • the inverse orthogonal transform unit 64 is a method corresponding to the orthogonal transform method of the orthogonal transform unit 24 in FIG. 1, performs inverse orthogonal transform on the orthogonal transform coefficient, and converts the residual data before the orthogonal transform in the image encoding device 11 Corresponding decoding residual data is obtained.
  • the decoded residual data obtained by the inverse orthogonal transform is supplied to the arithmetic unit 65. Further, a prediction image is supplied to the calculation unit 65 from the intra prediction unit 71 or the motion prediction / compensation unit 72 via the selection unit 73.
  • the calculating unit 65 adds the decoded residual data and the predicted image, and obtains decoded image data corresponding to the image data before the predicted image is subtracted by the calculating unit 23 of the image encoding device 11.
  • the arithmetic unit 65 supplies the decoded image data to the deblocking filter 66.
  • the deblocking filter 66 removes block distortion of the decoded image by appropriately performing deblocking filter processing.
  • the deblocking filter 66 supplies the filter processing result to the adaptive offset filter 81.
  • the adaptive offset filter 81 performs an offset filter (SAO) process that mainly removes ringing on the image after filtering by the deblocking filter 66.
  • SAO offset filter
  • the adaptive offset filter 81 uses the quad-tree structure in which the type of the offset filter is determined for each divided region and the offset value for each divided region, and performs filtering on the image after filtering by the deblocking filter 66. Apply processing.
  • the adaptive offset filter 81 supplies the filtered image to the adaptive loop filter 42b.
  • the quad-tree structure and the offset value for each divided region are calculated and encoded by the adaptive offset filter 41 of the image encoding device 11. Is sent to the lossless decoding unit 62 and used.
  • the adaptive loop filter 42b performs class classification in units of pixels in the image after filtering by the adaptive offset filter 81.
  • the adaptive loop filter 42 b performs filter processing on the image after filtering by the adaptive offset filter 81 with filter coefficients corresponding to the class classified in units of pixels, and supplies the filter processing result to the screen rearrangement buffer 67. . Details of the adaptive loop filter 42b will be described later with reference to FIG.
  • the filter coefficient is calculated by the adaptive loop filter 42a of the image encoding device 11, and is encoded and sent. Decoded by the unit 62 and used.
  • the screen rearrangement buffer 67 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer 22 in FIG. 1 is rearranged in the original display order.
  • the D / A converter 68 performs D / A conversion on the image supplied from the screen rearrangement buffer 67, and outputs and displays the image on a display (not shown).
  • the output of the adaptive loop filter 42 b is further supplied to the frame memory 69.
  • the frame memory 69, the selection unit 70, the intra prediction unit 71, the motion prediction / compensation unit 72, and the selection unit 73 are the frame memory 32, the selection unit 33, the intra prediction unit 34, and the motion prediction / compensation unit of the image encoding device 11. 35 and the predicted image selection unit 36, respectively.
  • the selection unit 70 reads out the inter-processed image and the referenced image from the frame memory 69 and supplies the image to the motion prediction / compensation unit 72.
  • the selection unit 70 reads an image used for intra prediction from the frame memory 69 and supplies the image to the intra prediction unit 71.
  • the intra prediction unit 71 is appropriately supplied with information indicating the intra prediction mode obtained by decoding the header information from the lossless decoding unit 62. Based on this information, the intra prediction unit 71 generates a prediction image from the reference image acquired from the frame memory 69 and supplies the generated prediction image to the selection unit 73.
  • the motion prediction / compensation unit 72 is supplied with information (prediction mode information, motion vector information, reference frame information, flags, various parameters, etc.) obtained by decoding the header information from the lossless decoding unit 62.
  • the motion prediction / compensation unit 72 generates a prediction image from the reference image acquired from the frame memory 69 based on the information supplied from the lossless decoding unit 62 and supplies the generated prediction image to the selection unit 73.
  • the selection unit 73 selects the prediction image generated by the motion prediction / compensation unit 72 or the intra prediction unit 71 and supplies the selected prediction image to the calculation unit 65.
  • the storage buffer 61 stores the transmitted encoded data in step S51.
  • the lossless decoding unit 62 decodes the encoded data supplied from the accumulation buffer 61.
  • the I picture, P picture, and B picture encoded by the lossless encoding unit 26 in FIG. 1 are decoded.
  • parameter information such as motion vector information, reference frame information, and prediction mode information (intra prediction mode or inter prediction mode) is also decoded.
  • the prediction mode information is intra prediction mode information
  • the prediction mode information is supplied to the intra prediction unit 71.
  • the prediction mode information is inter prediction mode information
  • motion vector information corresponding to the prediction mode information is supplied to the motion prediction / compensation unit 72.
  • step S53 the intra prediction unit 71 or the motion prediction / compensation unit 72 performs a prediction image generation process corresponding to the prediction mode information supplied from the lossless decoding unit 62, respectively.
  • the intra prediction unit 71 when the intra prediction mode information is supplied from the lossless decoding unit 62, the intra prediction unit 71 generates Most Probable Mode, and generates an intra prediction image of the intra prediction mode by parallel processing.
  • the motion prediction / compensation unit 72 performs an inter prediction mode motion prediction / compensation process to generate an inter prediction image.
  • the prediction image (intra prediction image) generated by the intra prediction unit 71 or the prediction image (inter prediction image) generated by the motion prediction / compensation unit 72 is supplied to the selection unit 73.
  • step S54 the selection unit 73 selects a predicted image. That is, a prediction image generated by the intra prediction unit 71 or a prediction image generated by the motion prediction / compensation unit 72 is supplied. Therefore, the supplied predicted image is selected and supplied to the calculation unit 65, and is added to the output of the inverse orthogonal transform unit 64 in step S57 described later.
  • step S52 the transform coefficient decoded by the lossless decoding unit 62 is also supplied to the inverse quantization unit 63.
  • step S55 the inverse quantization unit 63 inversely quantizes the transform coefficient decoded by the lossless decoding unit 62 with characteristics corresponding to the characteristics of the quantization unit 25 in FIG.
  • step S56 the inverse orthogonal transform unit 29 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 28 with characteristics corresponding to the characteristics of the orthogonal transform unit 24 of FIG. As a result, the difference information corresponding to the input of the orthogonal transform unit 24 of FIG. 1 (the output of the calculation unit 23) is decoded.
  • step S57 the calculation unit 65 adds the prediction image selected in the process of step S54 described above and input via the selection unit 73 to the difference information. As a result, the original image is decoded.
  • step S58 the deblocking filter 66 performs deblocking filter processing on the image output from the calculation unit 65. Thereby, block distortion is removed.
  • the decoded image from the deblocking filter 66 is output to the adaptive offset filter 81.
  • step S59 the adaptive offset filter 81 performs adaptive offset filter processing.
  • the filtering process is performed on the image after filtering by the deblocking filter 66 using the quad-tree structure in which the type of the offset filter is determined for each divided region and the offset value for each divided region. Applied.
  • the filtered image is supplied to the adaptive loop filter 42b.
  • the adaptive loop filter 42b performs an adaptive loop filter process on the image after filtering by the adaptive offset filter 81.
  • the adaptive loop filter 42 b performs class classification in units of pixels in the image after filtering by the adaptive offset filter 81.
  • the adaptive loop filter 42 b performs a filter process on the image after filtering by the adaptive offset filter 81 with a filter coefficient corresponding to the class classified in units of pixels. Then, the adaptive loop filter 42 b supplies the filter processing result to the screen rearrangement buffer 67 and the frame memory 69. Details of the adaptive loop filter processing will be described later with reference to FIG.
  • step S61 the frame memory 69 stores the filtered image.
  • step S62 the screen rearrangement buffer 67 rearranges the images after the adaptive loop filter 42b. That is, the order of frames rearranged for encoding by the screen rearrangement buffer 22 of the image encoding device 11 is rearranged to the original display order.
  • step S63 the D / A conversion unit 68 D / A converts the image from the screen rearrangement buffer 67. This image is output to a display (not shown), and the image is displayed.
  • step S63 ends, the decoding process ends.
  • the method in the HEVC (High Efficiency Video Coding) method is shown on the left side, and the method in the proposal of Non-Patent Document 1 is shown on the right side.
  • a circle represents a pixel
  • a black circle represents a pixel on which a variance is calculated.
  • a solid line represents a block for performing classification.
  • the variance (variance) of all the pixels is calculated and the class is calculated. Classification was done.
  • a dotted square indicates a reference range for obtaining a variance of an upper left pixel in a 4 ⁇ 4 pixel block.
  • Non-Patent Document 1 As shown on the right side of FIG. 5, 4 pixels are subsampled from 16 pixels of a 4 ⁇ 4 pixel block, and only the 4 subsampled pixels are displayed.
  • the classification is performed by calculating the variance.
  • the four pixels to be subsampled are the pixels in the first and third columns from the left in the first row from the top, and the pixels in the first and third columns from the left in the third row from the top in the block. .
  • H.264 and MPEG (Moving Picture Experts Group) 4 Part 10 AVC (Advanced Video Coding)
  • AVC Advanced Video Coding
  • one macroblock is divided into a plurality of motion compensation blocks. It was possible to have different motion information. That is, H. In the H.264 / AVC format, a hierarchical structure is defined by macroblocks and sub-macroblocks.
  • a coding unit (CU) is defined in the HEVC (High Efficiency Video Coding) method.
  • CU is also called Coding Tree Block (CTB).
  • CTB Coding Tree Block
  • This is an area (partial area of an image in picture units) serving as an encoding (decoding) processing unit that plays the same role as a macroblock in the H.264 / AVC format.
  • the latter is fixed to a size of 16 ⁇ 16 pixels, whereas the size of the former is not fixed, and is specified in the image compression information in each sequence.
  • the maximum size (LCU (Largest Coding Unit)) and the minimum size ((SCU (Smallest Coding Unit)) are specified. Is done.
  • the CU division line is not shown, but the size of the LCU is 16 ⁇ 16 pixels, and four 8 ⁇ 8 pixel CUs are included therein. An example is shown.
  • H In the case of an encoding method in which a CU is defined and various processes are performed in units of the CU as in the HEVC method above, H. It can be considered that a macroblock in the H.264 / AVC format corresponds to an LCU, and a block (subblock) corresponds to a CU. However, since the CU has a hierarchical structure, the size of the LCU in the highest hierarchy is H.264, for example, 128 ⁇ 128 pixels. Generally, it is set larger than the macroblock of the H.264 / AVC format.
  • LCU It also includes macroblocks in the H.264 / AVC format. It also includes blocks (sub-blocks) in the H.264 / AVC format.
  • the bottom thick line indicates the LCU boundary
  • the circle indicates the pixel
  • the circles in the first to third lines from the LCU boundary represent pixels at which deblocking V (vertical) filter processing at the horizontal boundary is started when the next LCU is input to the deblocking filter.
  • the circles indicated by hatching in the first to third lines represent pixels that have been subjected to deblocking H (horizontal) filter processing at the vertical boundary of the CUs included in the LCU.
  • white circles are pixels that are not subjected to deblocking H filter processing because they are not vertical boundaries of CUs.
  • the horizontal boundary deblocking V (vertical) filter processing refers to a deblocking filter that removes block noise at the horizontal boundary between vertically adjacent blocks.
  • the deblocking H (horizontal) filter processing at the vertical boundary refers to a deblocking filter that removes block noise at the vertical boundary between blocks adjacent to the left and right (horizontal direction).
  • FIG. 6 an example in which the deblocking filter is performed in the order of the deblocking H filter process and the deblocking V filter process is shown.
  • the pixels on the 4th and 5th lines from the LCU boundary are pixels that have been subjected to the deblocking V filter process and that have not been subjected to the adaptive offset filter process.
  • the pixels on the fourth line are also referred to in the deblocking V filter processing on the first to third lines.
  • Pixels on the 6th to 8th lines from the LCU boundary are pixels that have been subjected to adaptive offset filter processing and have not been subjected to adaptive loop filter processing.
  • the circles on the 9th to 12th lines from the LCU boundary represent pixels after adaptive loop filter (ALF) processing.
  • ALF adaptive loop filter
  • the deblocking filter processes the pixels on the first to third lines from the LCU boundary at the LCU boundary, the LCU pixels (pixels for the next four lines) that are in contact below the LCU boundary are not input.
  • the deblocking V filter process cannot be started.
  • the deblocking filter waits (temporarily stops) in the processing of the pixels on the first to third lines to be processed next.
  • the adaptive offset filter requires the pixels in the 4th to 6th lines from the LCU boundary in the line memory in order to perform the filter processing of the pixels in the 5th line from the LCU boundary held in the line memory of the adaptive offset filter.
  • the adaptive offset filter may not be able to perform the filtering process on the pixel on the fifth line from the LCU boundary. . In such a case, the adaptive offset filter stands by for processing the pixels on the fifth line to be processed next.
  • the adaptive loop filter performs class classification processing in units of blocks by the method described in Non-Patent Document 1, for example.
  • the pixels of the 4 ⁇ 4 pixel block indicated by the solid line from the 9th line to the 12th line from the LCU boundary are pixels that have been subjected to adaptive offset filter processing, including the pixel that is referenced at that time.
  • adaptive loop filters can complete their classification and filtering.
  • the class classification processing of the 4 ⁇ 4 pixel block indicated by the solid line from the 5th line to the 8th line from the LCU boundary is performed based on the calculation result of the variance for the pixels P1 to P4.
  • the pixel P1 is a pixel in the first column from the left in the first row from the top in the 4 ⁇ 4 pixel block.
  • the pixel P2 is a pixel in the third column from the left in the first row from the top in the 4 ⁇ 4 pixel block.
  • the pixel P3 is a pixel in the first column from the left in the third row from the top in the 4 ⁇ 4 pixel block.
  • the pixel P4 is a pixel in the third column from the left in the third row from the top in the 4 ⁇ 4 pixel block.
  • the calculation of the variance is performed by referring to the eight pixels around each pixel, so the pixels in the range indicated by the dotted lines are the pixels necessary for calculating the variance of the pixels P1 to P4.
  • the pixels necessary for calculating the variance of the pixels P1 and P2 have already been subjected to the adaptive offset filter.
  • a part of the pixels necessary for calculating the variance of the pixels P3 and P4 (the pixels on the fifth line from the LCU boundary) cannot be used for calculating the variance because the adaptive offset filter has not been finished yet. Therefore, the adaptive loop filter waits in the class classification process of the 4 ⁇ 4 pixel block in the fifth to eighth lines from the LCU boundary.
  • the filter processing of the adaptive loop filter is performed with, for example, 5 taps in the vertical direction, but cannot be started until the block classification processing is completed. Therefore, in order to classify and filter the 4 ⁇ 4 pixel block from the 5th line to the 8th line from the LCU boundary, the line memory of the adaptive loop filter includes the 6th to 10th lines after the adaptive offset filter. Pixels are retained.
  • FIG. 6 is an example of processing of the deblocking filter, adaptive offset filter, and adaptive loop filter, and the number of lines and line memories that can be processed may vary depending on the architecture.
  • the block filtering process cannot be performed unless the block classification process is completed.
  • the class classification process is performed on a pixel basis (pixel base) to prevent an increase in line memory.
  • FIG. 7 is a block diagram illustrating a configuration example of an adaptive loop filter to which the present disclosure is applied.
  • the adaptive loop filter 42 is configured to include a line memory 101, an ALF class classification processing unit 102, an ALF filter calculation unit 103, and a control unit 104.
  • the pixels after the adaptive offset filter from the previous stage are input to the line memory 101, the ALF class classification processing unit 102, and the ALF filter calculation unit 103.
  • the preceding stage is the adaptive offset filter 41 in the case of the image encoding device 11 in FIG. 1, and the adaptive offset filter 81 in the case of the image decoding device 51 in FIG.
  • the line memory 101 In response to a control signal from the control unit 104, the line memory 101 temporarily holds a pixel that has been subjected to the adaptive offset filter and is input from the previous stage when processing waits at the LCU boundary as described above with reference to FIG. To do.
  • the ALF class classification processing unit 102 performs class classification processing in units of pixels, using the adaptive offset filtered pixels input from the previous stage as processing target pixels in accordance with a control signal from the control unit 104.
  • the ALF class classification processing unit 102 uses the adaptive offset filtered pixel held in the line memory 101 as a pixel to be processed. Class classification processing is performed on a pixel basis.
  • the ALF class classification processing unit 102 for example, eight pixels around the pixel to be processed are used as reference pixels when classifying.
  • the ALF class classification processing unit 102 supplies the classified class value for each pixel to the ALF filter calculation unit 103.
  • the ALF filter operation unit 103 performs a filter operation on the adaptive offset filtered pixels input from the previous stage according to the control signal from the control unit 104.
  • the ALF filter calculation unit 103 performs a filter calculation on the adaptive offset filter-completed pixels held in the line memory 101 when processing is waiting at the LCU boundary.
  • a cross-shaped tap or a snowflake-shaped tap is used around the pixel to be processed in the filter calculation.
  • the cross-shaped tap is formed of 5 pixels in the vertical direction and 7 pixels in the horizontal direction.
  • the snowflake-shaped tap is formed in a range of 5 pixels in the vertical direction and 5 pixels in the horizontal direction, centering on the pixel to be processed.
  • the ALF filter operation unit 103 performs a filter operation using the filter coefficient corresponding to the class value from the ALF class classification processing unit 102, and supplies the output pixel after the filter operation to the subsequent stage.
  • the latter stage is the frame memory 32 in the case of the image encoding device 11 in FIG. 1, and the screen rearrangement buffer 67 or the frame memory 69 in the case of the image decoding device 51 in FIG.
  • the control unit 104 supplies control signals that control input pixel selection (switching), processing timing, and the like to the line memory 101, the ALF class classification processing unit 102, and the ALF filter calculation unit 103, respectively.
  • FIG. 8 is an example of the adaptive loop filter process of step S24 of FIG. 2 described above, and is an example of the adaptive loop filter process of step S60 of FIG.
  • the pixels after the adaptive offset filter from the previous stage are input to the line memory 101, the ALF class classification processing unit 102, and the ALF filter calculation unit 103.
  • step S101 the ALF class classification processing unit 102 selects an adaptive offset filtered pixel as a pixel to be processed.
  • the pixel to be processed means a pixel that is currently processed, and is also referred to as a current pixel.
  • the ALF class classification processing unit 102 selects an adaptive offset filtered pixel input from the previous stage as a pixel to be processed in response to a control signal from the control unit 104.
  • the ALF class classification processing unit 102 uses the adaptive offset filtered pixel held in the line memory 101 as a pixel to be processed. Choose as.
  • step S102 the ALF class classification processing unit 102 performs pixel-based class classification processing on the pixel to be processed.
  • the ALF class classification processing unit 102 acquires reference pixels (for example, surrounding eight pixels centered on the processing target pixel) of the processing target pixel from the previous stage or from the line memory 101, and the processing target pixel variance ( Variance).
  • the ALF classification processing unit 102 calculates a horizontal variance value H (i, j), a vertical variance value V (i, j), and a Laplacian substitute variance value L (i, j) by the following equation: Calculate as in (1).
  • abs represents an absolute value.
  • i represents the x coordinate of the pixel to be processed
  • j represents the y coordinate of the pixel to be processed.
  • the equation (1) is an example, and the method for obtaining the variance is not limited to this.
  • the ALF class classification processing unit 102 obtains the class value of the pixel to be processed according to the calculated variance, and supplies the obtained class value to the ALF filter operation unit 103.
  • step S103 the ALF filter calculation unit 103 performs a filter calculation on the pixel that has been subjected to the adaptive offset filter, using a filter coefficient corresponding to the class value from the ALF class classification processing unit 102.
  • the ALF filter calculation unit 103 performs filter calculation on taps centered on pixels that have been subjected to adaptive offset filtering and are input from the previous stage, in accordance with a control signal from the control unit 104. That is, since the process of step S102 is a pixel-based class classification process, the ALF filter calculation unit 103 can use the class classification result of the ALF class classification process unit 102 without waiting for the processing of other pixels. it can.
  • the ALF filter arithmetic unit 103 applies a tap centered on the adaptive offset filtered pixel held in the line memory 101 when waiting for processing at the LCU boundary according to the control signal from the control unit 104.
  • a filter operation is performed on the filter.
  • the ALF filter calculation unit 103 supplies the output pixel after the filter calculation to the subsequent stage.
  • step S104 the ALF class classification processing unit 102 and the ALF filter calculation unit 103 determine whether or not the pixel to be processed is the last pixel in the block. If it is determined in step S104 that the pixel is the last pixel in the screen, the process proceeds to step S105.
  • step S105 the ALF class classification processing unit 102 and the ALF filter calculation unit 103 determine whether or not the pixel to be processed is the last pixel in the screen. If it is determined in step S105 that the pixel is the last pixel in the screen, the adaptive loop filter in FIG. 8 ends.
  • step S104 If it is determined in step S104 that the pixel is not the last pixel in the block, the process returns to step S101, and the subsequent processes are repeated. If it is determined in step S105 that the pixel is not the last pixel in the screen, the next block is selected in the raster scan order, the process returns to step S101, and the subsequent processes are repeated.
  • step S104 shown by the dotted line is a process when it is made to correspond to the process in a block unit. Therefore, in this case, class classification processing is performed in units of pixels for each block in the raster scan order, and filter calculation is performed in units of pixels for each block. If it is not necessary to correspond to the processing in block units, step S104 is skipped (omitted), and the adaptive loop filter processing is performed in the raster scan order, for example, when one line is completed, the next line of pixels is processed. This is performed on a pixel-by-pixel basis.
  • the circle represents a pixel
  • the black circle represents a pixel to be processed at the center thereof
  • the other represents a reference pixel.
  • the class classification process is performed using eight pixels around the pixel to be processed that is the center
  • the filter calculation process is performed on a snowflake-shaped pixel centered on the process target block. Done with.
  • a square surrounded by a dotted line in the example of FIG. 9 indicates a block to be processed in the block unit process.
  • a square surrounded by a dotted line in the example of FIG. 10 is not actually required, but is shown to correspond to the conventional block unit processing.
  • the class classification processing of the first (1st) pixel C1 is performed using the surrounding eight pixels. Thereafter, class classification processing for each pixel in the block is performed in the order of raster scan in the block. The class classification process is continued until the process for the 16th (16th) pixel C16, which is the last pixel of the block, is completed.
  • the filter operation of the first (1st) pixel C1 is finally performed for the block. Thereafter, the filter calculation process for each pixel in the block is continued in the raster scan order in the block until the 16th (16th) pixel C16 which is the last pixel in the block is completed. Thereafter, the class classification process and the filter calculation process are executed for each block. In the example of FIG. 9, the filter calculation process for the eleventh pixel C11 in the block is shown.
  • the ALF class classification processing unit 102 performs the class classification processing of the first (1st) pixel C1 using the surrounding eight pixels.
  • the ALF filter calculation unit 103 performs the filter calculation process for the first (1st) pixel C1 using the class value of the pixel C1 that is the result of the class classification process.
  • the ALF class classification processing unit 102 performs the class classification process of the second (2nd) pixel C2 in the order of raster scanning in the screen of the pixel C1, using the surrounding eight pixels.
  • the ALF filter calculation unit 103 performs the filter calculation process for the second (2nd) pixel C2 using the class value of the pixel C2 that is the result of the class classification process. Thereafter, the process is executed in units of pixels.
  • Non-Patent Document 1 In the proposal of Non-Patent Document 1, as described above with reference to FIG. 5, four pixels in the 4 ⁇ 4 pixel block are subsampled as variance calculation targets for class classification, and the subsampled four pixels The variance is calculated only for, and classification is performed.
  • the four pixels to be subsampled are pixels in the first and third columns from the left in the first row from the top, and 1 from the left in the third row from the top in the block. It is the pixel in the column and the third column.
  • the range of pixels referred to in the above-described calculation of variance of 4 pixels is a range of 5 ⁇ 5 pixels indicated by a dotted line.
  • the pixels necessary for calculating the variance of the pixels P1 and P2 have already been subjected to the adaptive offset filter.
  • a part of the pixels necessary for calculating the variance of the pixels P3 and P4 (the pixels on the fifth line from the LCU boundary) cannot be used for calculating the variance because the adaptive offset filter has not been finished yet. Therefore, the adaptive loop filter waits in the class classification process of the 4 ⁇ 4 pixel block in the fifth to eighth lines from the LCU boundary.
  • the filter coefficients are undetermined at the pixels on the first to eighth lines from the LCU boundary.
  • the line memory of the conventional adaptive loop filter needs to hold the pixels of the 6th to 10th lines after the adaptive offset filter.
  • class classification processing is performed on a pixel basis.
  • the filter coefficients of the LCU boundary are undetermined in the pixels on the first to sixth lines from the LCU boundary.
  • the line memory of the adaptive loop filter 42 only needs to hold the pixels of the 6th to 9th lines that have been subjected to the adaptive offset filter. Thus, it can be reduced by one line.
  • the reference pixel readout method in the conventional block unit processing for comparison is shown on the left side
  • the reference pixel readout method in the pixel unit processing of the present technology is shown on the right side. Yes.
  • the filter calculation process for the first (1st) pixel C1 is performed after the class classification process for all the pixels in the block is completed, so the class classification process and the filter calculation process are performed twice. It was necessary to read out the pixels from the line memory.
  • the filter calculation processing of the first (1st) pixel C1 is performed immediately after the class classification processing of the first (1st) pixel C1. be able to.
  • the reference range of the classification processing of the first (1st) pixel C1 is aligned with the range indicated by the solid line of 5 pixels in the vertical direction and 5 pixels in the horizontal direction around the first (1st) pixel C1.
  • the pixels read out in the classification process can be used for the filter operation.
  • FIG. 13 shows an example of a pattern indicating the position (pixel position) of a calculation point for performing class classification within a predetermined range.
  • the square indicates a predetermined range
  • the position of a predetermined pixel indicated by arrows on the lower and left sides is set as a calculation point for performing the class classification process.
  • the pattern 121 is a pattern in which the position of one pixel is set as a calculation point in the range of one pixel.
  • the pattern 122 is a pattern in which the position of the upper left pixel in the 2 ⁇ 2 pixel range is set as a calculation point. In the pattern 122, the class classification process is performed for the upper left pixel, but the class classification process is not performed for the other three pixels, and the class value determined for the upper left pixel is the class value of each pixel. It is said.
  • the upper left pixel in the pattern 122 is a pixel that is processed first in the range of 2 ⁇ 2 pixels, even if the class value obtained thereby is used as the class value of the other three pixels, It can be processed smoothly without waiting.
  • the pattern 123 is a pattern in which the position of the upper left pixel in the 4 ⁇ 4 pixel range is set as a calculation point. In the pattern 123, the class classification process is performed on the upper left pixel, but the class classification process is not performed on the other 15 pixels, and the class value determined for the upper left pixel is the class value of each pixel. It is said.
  • the upper left pixel in the pattern 123 is a pixel that is processed first in the range of 4 ⁇ 4 pixels, even if the class value obtained thereby is used as the class value of the other 15 pixels, It can be processed smoothly without waiting.
  • all of the patterns 121 to 123 shown above in FIG. 13 are patterns for processing in units of pixels. However, it is assumed that a predetermined range indicated by a square indicates a block, and is performed in units of blocks. However, basically the same processing can be performed. This is because the calculation points in the patterns 121 to 123 are one point, and therefore, it is not necessary to add the variances of a plurality of calculation points in a block (predetermined range) even when the calculation is performed in units of blocks. .
  • the pixel unit processing of the pattern 121 is basically the same processing as the block unit processing in which one calculation point is set in a 1 ⁇ 1 pixel block.
  • the pixel unit processing of the pattern 122 is basically the same processing as the block unit processing in which one calculation point is set in a 2 ⁇ 2 pixel block.
  • the pixel unit processing of the pattern 123 is basically the same processing as the block unit processing in which one calculation point is set in a 4 ⁇ 4 pixel block.
  • the pattern 124 is a pattern in which the positions of four pixels in the first row from the top in the range of 4 ⁇ 4 pixels are set as calculation points.
  • the class classification process is performed on the four pixels in the first row from the top, but the class classification process is not performed on the other 12 pixels.
  • the class values of the pixels in the first row from the top in the first column from the left are used.
  • the class values of the pixels in the first row from the top in the second column from the left are used.
  • the class values of the pixels in the first row from the top in the third column from the left are used.
  • the class values of the pixels in the first row from the top in the third column from the left are used.
  • the class values of the pixels in the first row from the top in the fourth column from the left are used.
  • the four pixels in the first row from the top in the pattern 124 are pixels that are processed first in the range of 4 ⁇ 4 pixels, and therefore the class value obtained thereby is used as the class value of other pixels. However, it is possible to process smoothly without waiting for processing.
  • the pattern 125 is a pattern in which the positions of four pixels in the first column from the left in the range of 4 ⁇ 4 pixels are set as calculation points. In the pattern 125, the class classification process is performed on the four pixels in the first column from the left, but the class classification process is not performed on the other 12 pixels.
  • the class value of the pixel in the first row from the top in the first column from the left is used for the three pixels located in the first row from the top in the second to fourth columns from the left.
  • the class value of the pixel in the second row from the top in the first column from the left is used for the three pixels located in the second row from the top in the second to fourth columns from the left.
  • the class value of the pixel in the third row from the top in the first column from the left is used.
  • the class value of the pixel in the fourth row from the top in the first column from the left is used for the three pixels located in the fourth row from the top in the second to fourth columns from the left.
  • the pixel in the first row from the top in the first column from the left in the pattern 125 is a pixel processed before the three pixels located in the first row from the top in the second to fourth columns from the left.
  • the pixels in the second row from the top in the first column from the left in the pattern 125 are pixels that are processed before the three pixels located in the second row from the top in the second to fourth columns from the left.
  • the pixel in the third row from the top in the first column from the left in the pattern 125 is a pixel processed before the three pixels located in the third row from the top in the second to fourth columns from the left.
  • the pixel in the fourth row from the top in the first column from the left in the pattern 125 is a pixel processed before the three pixels located in the fourth row from the top in the second to fourth columns from the left.
  • the pattern 126 is a 4 ⁇ 4 pixel range, the pixel positions in the first and third rows from the top in the first column in the range, and the pixel positions in the first and third rows from the top in the third row from the left. Is a pattern set as a calculation point. In the pattern 126, the class classification process is performed on the pixels at those calculation points, but the class classification process is not performed on the 12 pixels other than the calculation points.
  • the pixels in the second row from the top in the first column from the left and the pixels in the first and second rows from the top in the second column from the left are the pixels in the first row from the top in the first column from the left.
  • Class values are used.
  • the pattern 126 is a pattern in which the four patterns 122 that are the patterns in the 2 ⁇ 2 pixel range described above are configured.
  • the pixels in the first row from the top in the first column from the left in the pattern 126 are the pixels in the second row from the top in the first column, and the pixels in the first and second rows from the top in the second column from the left.
  • the pixels in the first row from the top in the third column from the left in the pattern 126 are more than the pixels in the second row from the top in the third column from the left, and the pixels in the first and second rows from the top in the fourth column from the left. This is the pixel to be processed first.
  • the pixel in the third row from the top in the first column from the left in the pattern 126 is more than the pixel in the fourth row from the top in the first column from the left, and the pixels in the third and fourth rows from the top in the second column from the left. This is the pixel to be processed first.
  • the pixels in the third row from the top in the third column from the left in the pattern 126 are the pixels in the fourth row from the top in the third column from the left, and the pixels in the third and fourth rows from the top in the fourth column from the left. This is the pixel to be processed first.
  • FIG. 14 is a block diagram illustrating an adaptive loop filter to which the present disclosure is applied and a configuration example of a lossless encoding unit.
  • FIG. 14 illustrates a configuration example of the adaptive loop filter 42a and the lossless encoding unit 26 of the image encoding device 11.
  • the adaptive loop filter 42a includes a line memory 101, a control unit 151, an ALF class classification processing unit 152, an ALF filter calculation unit 153, a class value storage buffer 154, and a cost function value calculation unit 155. It is configured.
  • the adaptive loop filter 42a of FIG. 14 is the same as the adaptive loop filter 42 of FIG. 7 in that the adaptive loop filter 42a of FIG.
  • the adaptive loop filter 42a of FIG. 14 is different from the adaptive loop filter 42 of FIG. 7 in that the control unit 104 and the ALF class classification processing unit 102 are replaced with a control unit 151 and an ALF class classification processing unit 152, respectively.
  • 14 is different from the adaptive loop filter 42 of FIG. 7 in that the ALF filter calculation unit 103 is replaced with an ALF filter calculation unit 153.
  • the adaptive loop filter 42a of FIG. Furthermore, the adaptive loop filter 42a of FIG. 14 differs from the adaptive loop filter 42 of FIG. 7 in that a class value storage buffer 154 and a cost function value calculation unit 155 are added.
  • control unit 151 outputs control signals for controlling selection of input pixels, processing timing, and the like to the line memory 101, the ALF class classification processing unit 152, and the ALF filter calculation unit 153. To supply each.
  • control unit 151 includes a class classification availability determination unit 161 and a pattern determination unit 162.
  • the class classification availability determination unit 161 stores, for example, the patterns 124 to 126 shown in FIG.
  • the class classification availability determination unit 161 calculates a calculation point where a pixel to be processed performs class classification in a pattern to be processed among stored patterns (that is, a pixel at a predetermined pixel position set as a calculation point). It is determined whether or not.
  • the class classification availability determination unit 161 controls the ALF class classification processing unit 152 and the class value storage buffer 154 according to the determination result of whether or not the point is a calculation point.
  • the class classification availability determination unit 161 causes the ALF class classification processing unit 152 to perform class classification on the pixel to be processed. Further, the class classification availability determination unit 161 stores the class value obtained by the class classification processing by the ALF class classification processing unit 152 in the class value storage buffer 154 for the pixel to be processed.
  • the class classification availability determination unit 161 prohibits the ALF class classification processing unit 152 from performing class classification processing on the pixel to be processed. .
  • the class classification availability determination unit 161 stores the class value obtained for the calculation point indicated by the pattern in the class value storage buffer 154 for the pixel to be processed.
  • the pattern determination unit 162 compares the cost function values corresponding to the patterns calculated by the cost function value calculation unit 155, and determines which is the optimum pattern indicated by the minimum cost function value.
  • the pattern determination unit 162 supplies an optimal pattern determination result to the ALF filter calculation unit 153. Further, the pattern determination unit 162 generates additional bits indicating an optimal pattern, and supplies the generated additional bits to the additional bit setting unit 171 of the lossless encoding unit 26. That is, the additional bits are identification data for identifying an optimum pattern, that is, a pattern used on the encoding side.
  • the ALF class classification processing unit 152 uses the pixel that has been subjected to the adaptive offset filter that is input from the previous stage or is held in the line memory 101 as a pixel to be processed. Perform classification processing in units.
  • the ALF class classification processing unit 152 targets only the pixel to be processed, which is the calculation point, under the control of the class classification availability determination unit 161. Perform the class classification process.
  • the ALF class classification processing unit 152 supplies the class value of the pixel (calculation point) to be processed, which is the result of the class classification processing, to the ALF filter calculation unit 103 and stores it in the class value storage buffer 154.
  • the ALF filter calculation unit 153 performs the filter calculation using the pixel that has been subjected to the adaptive offset filter that is input from the previous stage or is held in the line memory 101 as the pixel to be processed. Do.
  • the ALF filter calculation unit 153 calculates a filter coefficient corresponding to the class value from the ALF class classification processing unit 152 or the class value stored in the class value storage buffer 154. To perform the filter operation.
  • the ALF filter calculation unit 153 outputs the output pixel after the filter calculation to the cost function value calculation unit 155. Further, the ALF filter calculation unit 153 outputs the output pixel after the filter calculation using the pattern determined to be the optimum pattern by the pattern determination unit 162 to the subsequent stage.
  • the class value storage buffer 154 stores the class value obtained by the ALF class classification processing unit 152 or the class value of the stored calculation point under the control of the class classification availability determination unit 161 of the pixel to be processed. Store as class value.
  • the cost function value calculation unit 155 calculates the cost function value for each pattern using the output pixel after the filter calculation of each pattern from the ALF filter calculation unit 153.
  • the cost function value calculation unit 155 supplies the cost function value for each pattern to the pattern determination unit 162.
  • the lossless encoding unit 26 is configured to include an additional bit setting unit 171.
  • the additional bit setting unit 171 sets the additional bits generated by the pattern determination unit 162 in a part of the header of the encoded data.
  • step S151 the class classification availability determination unit 161 selects, for example, one pattern from the patterns 124 to 126 shown in FIG.
  • step S152 the adaptive loop filter 42a performs pixel-based adaptive loop filter processing on the selected pattern.
  • This pixel-based adaptive loop filter processing will be described later with reference to FIG.
  • class selection processing is performed on a selected pattern for each screen for each screen, and filter calculation processing is performed.
  • the pixel value after the filter operation is supplied to the cost function value calculation unit 155.
  • step S153 the class classification availability determination unit 161 determines whether all the patterns have been processed. If it is determined that all the patterns have not been completed, the process returns to step S151, and the subsequent processing. repeat.
  • step S153 If it is determined in step S153 that all patterns have been processed, the process proceeds to step S154.
  • step S154 the cost function value calculation unit 155 calculates the cost function value for each pattern using the output pixel after the filter calculation of each pattern from the ALF filter calculation unit 153.
  • the cost function value calculation unit 155 supplies the cost function value for each pattern to the pattern determination unit 162.
  • step S155 the pattern determination unit 162 determines the optimum pattern by comparing the cost function values corresponding to the patterns calculated by the cost function value calculation unit 155, and generates additional bits indicating the optimum pattern. .
  • the pattern determination unit 162 supplies the generated additional bits to the additional bit setting unit 171 of the lossless encoding unit 26.
  • the additional bit setting unit 171 converts the additional bits generated by the pattern determination unit 162 during the encoding process by the lossless encoding unit 26 in step S26 of FIG. Set as part of the header.
  • the additional bits are transmitted, for example, for each frame or each slice as identification data for identifying a pattern used on the encoding side.
  • the optimal pattern determination result by the pattern determination unit 162 is supplied to the ALF filter calculation unit 153.
  • step S156 the ALF filter calculation unit 153 outputs the pixel after the filter calculation using the pattern determined to be the optimum pattern by the pattern determination unit 162 to the subsequent stage.
  • the adaptive loop filter processing in units of pixels in the case of a plurality of patterns is performed, the cost function values after the filter processing are compared, and after the filter calculation by the optimum pattern Pixels are output.
  • additional bits indicating the optimum pattern are set in the header of the encoded data and transmitted to the image decoding device 51 side.
  • the adaptive offset filtered pixels from the previous stage are input to the line memory 101, the ALF class classification processing unit 152, and the ALF filter calculation unit 153.
  • step S171 the class classification availability determination unit 161 selects a pixel that has been subjected to the adaptive offset filter as a pixel to be processed.
  • step S171 the class classification availability determination unit 161 determines whether or not the selected pixel to be processed is a pixel that performs the class classification process in the pattern selected in step S151 in FIG.
  • step S172 If the pixel to be processed is set as a calculation point in the selected pattern, it is determined in step S172 that the pixel is to be subjected to class classification processing, and the process proceeds to step S173.
  • step S ⁇ b> 173 the ALF class classification processing unit 152 performs class classification processing on the pixel to be processed under the control of the class classification availability determination unit 161.
  • the ALF class classification processing unit 152 acquires the reference pixel of the pixel to be processed (for example, eight surrounding pixels centering on the pixel to be processed) from the previous stage or from the line memory 101. Note that the ALF class classification processing unit 152 also uses the pixels that have been subjected to the adaptive offset filter and are held in the previous stage or the line memory 101 in accordance with the control signal from the control unit 151.
  • the ALF class classification processing unit 152 calculates the variance (dispersion) of the pixel to be processed as in the above-described equation (1).
  • the ALF class classification processing unit 152 obtains the class value of the pixel to be processed according to the calculated variance, and supplies the obtained class value to the ALF filter operation unit 153 and the class value storage buffer 154.
  • the class value storage buffer 154 stores the class value from the ALF class classification processing unit 152 as the class value of the pixel to be processed.
  • step S172 if the pixel to be processed is not set as a calculation point in the selected pattern, it is determined in step S172 that the pixel is not subjected to class classification processing, and the process proceeds to step S174.
  • step S174 the class classification availability determination unit 161 causes the class value storage buffer 154 to refer to the class value of the pixel that is the calculation point.
  • the class value storage buffer 154 stores the class value of the calculated calculation point as the class value of the pixel to be processed.
  • step S175 the ALF filter calculation unit 153 uses the filter coefficient corresponding to the class value from the ALF class classification processing unit 152 or the class value read from the class value storage buffer 154 for the pixel that has been subjected to the adaptive offset filter. , Perform filter operation.
  • the pixels after the adaptive offset filter held in the previous stage or the line memory 101 are used in accordance with the control signal from the control unit 201.
  • the ALF filter calculation unit 153 applies a tap centered on the adaptive offset filtered pixel held in the line memory 101 when the process waits at the LCU boundary according to the control signal from the control unit 201. A filter operation is performed on the filter. The ALF filter calculation unit 153 supplies the output pixel after the filter calculation to the cost function value calculation unit 155.
  • step S176 the class classification availability determination unit 161 determines whether the pixel to be processed is the last pixel in the block. If it is determined in step S176 that the pixel is the last pixel in the screen, the process proceeds to step S177.
  • step S177 the class classification availability determination unit 161 determines whether the pixel to be processed is the last pixel in the screen. If it is determined in step S177 that the pixel is the last pixel in the screen, the adaptive loop filter process in FIG. 16 ends.
  • step S176 If it is determined in step S176 that the pixel is not the last pixel in the block, the process returns to step S171, and the subsequent processes are repeated. If it is determined in step S177 that the pixel is the last pixel in the screen, the next block is selected in the raster scan order, the process returns to step S171, and the subsequent processes are repeated.
  • the process in step S176 indicated by the dotted line is a process in the case where the process is performed in units of blocks. Therefore, in this case, class classification processing is performed in units of pixels for each block in the raster scan order, and filter calculation is performed in units of pixels for each block. If it is not necessary to correspond to the processing in block units, the processing in step S176 is omitted, and the adaptive loop filter processing is performed in the raster scan order, for example, after one line is completed, the pixels in the next line are processed. This is performed on a pixel-by-pixel basis.
  • one or more calculation points are set in a predetermined range, and class classification is performed only for pixels at the calculation points, so that the number of calculations can be reduced.
  • FIG. 17 is a block diagram illustrating a configuration example of an adaptive loop filter to which the present disclosure is applied and a configuration example of a lossless decoding unit.
  • FIG. 17 shows a configuration example of the adaptive loop filter 42b and the lossless decoding unit 62 of the image decoding device 51 corresponding to the image encoding device 11 of FIG.
  • the adaptive loop filter 42b is configured to include a line memory 101, an ALF class classification processing unit 152, an ALF filter operation unit 153, a class value storage buffer 154, and a control unit 201.
  • the adaptive loop filter 42b of FIG. 17 is common to the adaptive loop filter 42a of FIG. 14 in that the adaptive loop filter 42b of FIG. 17 includes a line memory 101, an ALF class classification processing unit 152, an ALF filter calculation unit 153, and a class value storage buffer 154.
  • the adaptive loop filter 42b in FIG. 17 differs from the adaptive loop filter 42a in FIG. 14 in that the control unit 151 is replaced with the control unit 201 and the cost function value calculation unit 155 is removed.
  • control unit 201 is common to the control unit 151 of FIG. 14 in that it includes a class classification availability determination unit 161, but is different in that the pattern determination unit 162 is excluded.
  • the class classification availability determination unit 161 stores, for example, the patterns 124 to 126 shown in FIG.
  • the class classification availability determination unit 161 is a calculation point that receives the additional bits supplied from the lossless decoding unit 62 and performs class classification on the pixel to be processed in the pattern indicated by the additional bits among the stored patterns. It is determined whether or not.
  • the class classification availability determination unit 161 controls the ALF class classification processing unit 152 and the class value storage buffer 154 according to the determination result of whether or not the point is a calculation point.
  • the ALF class classification processing unit 152 controls only the pixel to be processed, which is a calculation point, under the control of the class classification availability determination unit 161. Perform the classification process.
  • the ALF class classification processing unit 152 supplies the class value of the processing target pixel (calculation point), which is the result of the class classification processing, to the ALF filter calculation unit 153 and stores it in the class value storage buffer 154.
  • the ALF filter calculation unit 153 performs the filter calculation using a pixel that has been subjected to the adaptive offset filter input from the previous stage or held in the line memory 101 as a processing target pixel. Do.
  • the ALF filter calculation unit 153 outputs the output pixel after the filter calculation to the subsequent stage.
  • the lossless decoding unit 62 is configured to include an additional bit acquisition unit 211.
  • the additional bit acquisition unit 211 acquires the decoded additional bits and supplies the class classification availability determination unit 161.
  • the adaptive loop filter 42a of FIG. 14 performs adaptive loop filter processing of a plurality of patterns, obtains cost function values, and compares them to select an optimal pattern.
  • the adaptive loop filter 42b in FIG. 17 receives an additional bit (that is, pattern identification data) indicating an optimum pattern from the image encoding device 11, and uses it to use the adaptive loop filter with the optimum pattern. The processing is performed.
  • the lossless decoding unit 62 decodes the parameter information as well as the encoded data.
  • the additional bit acquisition unit 211 acquires the decoded additional bits and supplies the decoded additional bits to the class classification availability determination unit 161.
  • the class classification availability determination unit 161 selects a pattern indicated by the additional bit in step S201.
  • step S202 the adaptive loop filter 42b performs pixel-based adaptive loop filter processing on the selected pattern (indicated by the additional bits).
  • the adaptive loop filter processing for each pixel is basically the same as the adaptive loop filter processing described above with reference to FIG.
  • the selected pattern is subjected to class classification processing in units of pixels for one screen, and filter calculation processing is performed.
  • step S203 the ALF filter calculation unit 153 outputs the pixel value after the filter calculation to the subsequent stage.
  • the additional bits from the image encoding device 11 are received, and the adaptive loop filter processing in units of pixels in the pattern indicated by the additional bits is performed. Pixels are output.
  • FIG. 19 is a block diagram illustrating a configuration example of an adaptive loop filter to which the present disclosure is applied.
  • the configuration of the adaptive loop filter 42 in the example of FIG. 19 is common to the image encoding device 11 and the image decoding device 51.
  • the adaptive loop filter 42 includes a line memory 101, an ALF class classification processing unit 152, an ALF filter calculation unit 153, a class value storage buffer 154, a control unit 201, and an image information acquisition unit 251. It is configured.
  • the adaptive loop filter 42 of FIG. 19 is common to the adaptive loop filter 42b of FIG. 17 in that it includes a line memory 101, an ALF class classification processing unit 152, an ALF filter calculation unit 153, a class value storage buffer 154, and a control unit 201. is doing.
  • the adaptive loop filter 42 of FIG. 19 is different from the adaptive loop filter 42b of FIG. 17 in that an image information acquisition unit 251 is added.
  • the input pixels from the previous stage are supplied to the image information acquisition unit 251 in addition to the line memory 101, the ALF class classification processing unit 152, and the ALF filter calculation unit 153.
  • the image information acquisition unit 251 acquires, for example, image information such as an edge activity value from the input image.
  • image information acquired here is not limited to the edge activity value.
  • whether or not the pixel to be processed is similar to the surrounding pixels, such as a difference distribution and a difference value from adjacent pixels. Any evaluation value that can be determined may be used.
  • the image information acquisition unit 251 supplies the acquired image information to the class classification availability determination unit 161.
  • the class classification availability determination unit 161 stores the image information from the image information acquisition unit 251 and determines whether or not the same pixel information as the pixel information of the pixel to be processed exists around it.
  • the class classification availability determination unit 161 controls the ALF class classification processing unit 152 and the class value storage buffer 154 according to the determination result of whether or not there is the same pixel information around.
  • the position of a pixel having the same pixel information around is often a flat part of the image. Therefore, when the position of the pixel to be processed is a pixel position having the same pixel information in the surrounding area, the class classification availability determination unit 161 does not perform the class classification process on the pixel at the pixel position, and the same pixel. The class value of the pixel position having information is referred to. Then, the class classification availability determination unit 161 stores the referenced class value in the class value storage buffer 154 for the pixel to be processed.
  • the position of a pixel that does not have the same pixel information in the surrounding area is often an edge portion of the image or a portion having a high activity value. Therefore, when the position of the pixel to be processed is a pixel position that does not have the same pixel information in the surrounding area, the class classification availability determination unit 161 performs the class classification process using the pixel position as a calculation point. Then, the class classification availability determination unit 161 stores the class value obtained for this pixel position (calculation point) in the class value storage buffer 154 for the pixel to be processed.
  • FIG. 20 is an example of the adaptive loop filter process in step S24 in FIG. 2 described above, and is an example of the adaptive loop filter process in step S60 in FIG.
  • the adaptive offset filtered pixels from the previous stage are input to the line memory 101, the ALF class classification processing unit 152, the ALF filter calculation unit 153, and the image information acquisition unit 251.
  • step S251 the image information acquisition unit 251 acquires, for example, image information such as an edge activity value from the input image, and supplies the acquired image information to the class classification availability determination unit 161.
  • step S252 the class classification availability determination unit 161 selects a pixel that has been subjected to the adaptive offset filter as a pixel to be processed.
  • the class classification availability determination unit 161 refers to the image information from the image information acquisition unit 251, and whether there is image information that is the same as the image information of the processing target pixel around the selected processing target pixel. Determine whether or not. That is, it is determined whether or not the pixel position to be processed is a pixel position around which the same image information as the pixel to be processed is located (a flat portion).
  • step S253 the same pixel information does not exist in the surrounding area, that is, the pixel position to be processed is a pixel position that does not have the same image information as the pixel to be processed in the surrounding area (the edge portion or the portion having a high activity value). If determined, the process proceeds to step S254. In step S254, the ALF class classification processing unit 152 performs class classification processing on the pixel to be processed under the control of the class classification availability determination unit 161.
  • the ALF class classification processing unit 152 acquires the reference pixel of the pixel to be processed (for example, eight surrounding pixels centering on the pixel to be processed) from the previous stage or from the line memory 101. Note that the ALF class classification processing unit 152 also uses pixels that have been subjected to the adaptive offset filter that are held in the previous stage or the line memory 101 in accordance with a control signal from the control unit 201.
  • the ALF class classification processing unit 152 calculates the variance (dispersion) of the pixel to be processed as in the above-described equation (1).
  • the ALF class classification processing unit 152 obtains the class value of the pixel to be processed according to the calculated variance, and supplies the obtained class value to the ALF filter operation unit 153 and the class value storage buffer 154.
  • the class value storage buffer 154 stores the class value from the ALF class classification processing unit 152 as the class value of the pixel to be processed.
  • step S253 when it is determined in step S253 that the same pixel information is not present in the periphery, that is, the pixel position to be processed is a pixel position in which the same image information as the pixel to be processed is present (flat portion). The process proceeds to step S255.
  • step S255 the class classification availability determination unit 161 causes the class value storage buffer 154 to refer to class values of pixels (positions) having the same pixel information.
  • the class value storage buffer 154 stores the class value of pixels having the same pixel information as the class value of the pixel to be processed.
  • step S256 the ALF filter calculation unit 153 uses the filter coefficient corresponding to the class value from the ALF class classification processing unit 152 or the class value read from the class value storage buffer 154 for the pixel that has been subjected to the adaptive offset filter. , Perform filter operation.
  • the pixels after the adaptive offset filter held in the previous stage or the line memory 101 are used in accordance with the control signal from the control unit 201.
  • the ALF filter calculation unit 153 applies a tap centered on the adaptive offset filtered pixel held in the line memory 101 when the process waits at the LCU boundary according to the control signal from the control unit 201.
  • a filter operation is performed on the filter.
  • step S257 the class classification availability determination unit 161 determines whether the pixel to be processed is the last pixel in the block. If it is determined in step S257 that the pixel is the last pixel in the screen, the process proceeds to step S258.
  • step S258 the class classification availability determination unit 161 determines whether the processing target pixel is the last pixel in the screen. If it is determined in step S258 that the pixel is the last pixel in the screen, the adaptive loop filter process in FIG. 20 ends.
  • step S257 If it is determined in step S257 that it is not the last pixel in the block, the process returns to step S252, and the subsequent processes are repeated. If it is determined in step S258 that the pixel is the last pixel in the screen, the next block is selected in the raster scan order, the process proceeds to step S252, and the subsequent processes are repeated.
  • step S257 indicated by the dotted line is a process in the case where the process is performed in units of blocks. Therefore, in this case, class classification processing is performed in units of pixels for each block in the raster scan order, and filter calculation is performed in units of pixels for each block. If it is not necessary to correspond to the processing in block units, step S257 is skipped (omitted), and the adaptive loop filter processing is performed in the raster scan order, for example, processing pixels of the next line when one line is completed. This is performed in units of pixels for each pixel.
  • the image information is acquired, and using the acquired image information, class classification is performed only for pixel positions that do not have the same pixel information around as a predetermined pixel position. be able to.
  • these patterns can be made variable using additional bits and image information.
  • the classification is performed by obtaining the variance.
  • the classification is not limited to the variance.
  • the activity value that is, the sum of the difference values with adjacent pixels, the difference value, the distribution of the differences, etc.
  • another method (evaluation value) for obtaining a correlation with an adjacent pixel may be used.
  • the HEVC method is used as the encoding method.
  • the present disclosure is not limited to this, and other encoding schemes / decoding schemes including at least a deblocking filter and an adaptive loop filter can be applied as the in-loop filter.
  • the present disclosure discloses, for example, image information (bitstream) compressed by orthogonal transformation such as discrete cosine transformation and motion compensation, such as HEVC, satellite broadcasting, cable television, the Internet, or a mobile phone.
  • the present invention can be applied to an image encoding device and an image decoding device used when receiving via a network medium.
  • the present disclosure can be applied to an image encoding device and an image decoding device that are used when processing on a storage medium such as an optical disk, a magnetic disk, and a flash memory.
  • FIG. 21 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processing by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input / output interface 505 is further connected to the bus 504.
  • An input unit 506, an output unit 507, a storage unit 508, a communication unit 509, and a drive 510 are connected to the input / output interface 505.
  • the input unit 506 includes a keyboard, a mouse, a microphone, and the like.
  • the output unit 507 includes a display, a speaker, and the like.
  • the storage unit 508 includes a hard disk, a nonvolatile memory, and the like.
  • the communication unit 509 includes a network interface or the like.
  • the drive 510 drives a removable medium 511 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
  • the CPU 501 loads the program stored in the storage unit 508 to the RAM 503 via the input / output interface 505 and the bus 504 and executes the program, for example. Is performed.
  • the program executed by the computer 500 can be provided by being recorded on a removable medium 511 as a package medium, for example.
  • the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the storage unit 508 via the input / output interface 505 by attaching the removable medium 511 to the drive 510. Further, the program can be received by the communication unit 509 via a wired or wireless transmission medium and installed in the storage unit 508. In addition, the program can be installed in the ROM 502 or the storage unit 508 in advance.
  • the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
  • the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
  • system represents the entire apparatus composed of a plurality of devices (apparatuses).
  • the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configurations described above as a plurality of devices (or processing units) may be combined into a single device (or processing unit).
  • a configuration other than that described above may be added to the configuration of each device (or each processing unit).
  • a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). . That is, the present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present technology.
  • An image encoding device and an image decoding device include a transmitter or a receiver in optical broadcasting, satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, etc.
  • the present invention can be applied to various electronic devices such as a recording device that records an image on a medium such as a magnetic disk and a flash memory, or a playback device that reproduces an image from these storage media.
  • a recording device that records an image on a medium such as a magnetic disk and a flash memory
  • a playback device that reproduces an image from these storage media.
  • FIG. 22 shows an example of a schematic configuration of a television apparatus to which the above-described embodiment is applied.
  • the television apparatus 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface 909, a control unit 910, a user interface 911, And a bus 912.
  • Tuner 902 extracts a signal of a desired channel from a broadcast signal received via antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the encoded bit stream obtained by the demodulation to the demultiplexer 903. In other words, the tuner 902 serves as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
  • the demultiplexer 903 separates the video stream and audio stream of the viewing target program from the encoded bit stream, and outputs each separated stream to the decoder 904. Further, the demultiplexer 903 extracts auxiliary data such as EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may perform descrambling when the encoded bit stream is scrambled.
  • EPG Electronic Program Guide
  • the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. In addition, the decoder 904 outputs audio data generated by the decoding process to the audio signal processing unit 907.
  • the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display the video.
  • the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network.
  • the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting.
  • the video signal processing unit 905 may generate a GUI (Graphical User Interface) image such as a menu, a button, or a cursor, and superimpose the generated image on the output image.
  • GUI Graphic User Interface
  • the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays an image on a video screen of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
  • a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
  • the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on the audio data input from the decoder 904, and outputs audio from the speaker 908.
  • the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
  • the external interface 909 is an interface for connecting the television apparatus 900 to an external device or a network.
  • a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also has a role as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
  • the control unit 910 includes a processor such as a CPU and memories such as a RAM and a ROM.
  • the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
  • the program stored in the memory is read and executed by the CPU when the television apparatus 900 is activated.
  • the CPU executes the program to control the operation of the television device 900 according to an operation signal input from the user interface 911, for example.
  • the user interface 911 is connected to the control unit 910.
  • the user interface 911 includes, for example, buttons and switches for the user to operate the television device 900, a remote control signal receiving unit, and the like.
  • the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
  • the bus 912 connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910 to each other.
  • the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment. Thereby, it is possible to reduce the line memory required in the lower part of the LCU when the image is decoded by the television device 900.
  • FIG. 23 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
  • a mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, a control unit 931, an operation A portion 932 and a bus 933.
  • the antenna 921 is connected to the communication unit 922.
  • the speaker 924 and the microphone 925 are connected to the audio codec 923.
  • the operation unit 932 is connected to the control unit 931.
  • the bus 933 connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931 to each other.
  • the mobile phone 920 has various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and is used for sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data. Perform the action.
  • the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
  • the audio codec 923 converts an analog audio signal into audio data, A / D converts the compressed audio data, and compresses it. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
  • the communication unit 922 encodes and modulates the audio data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. In addition, the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
  • the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
  • the audio codec 923 decompresses the audio data and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the control unit 931 generates character data constituting the e-mail in response to an operation by the user via the operation unit 932.
  • the control unit 931 causes the display unit 930 to display characters.
  • the control unit 931 generates e-mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated e-mail data to the communication unit 922.
  • the communication unit 922 encodes and modulates email data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
  • the communication unit 922 demodulates and decodes the received signal to restore the email data, and outputs the restored email data to the control unit 931.
  • the control unit 931 displays the content of the electronic mail on the display unit 930 and stores the electronic mail data in the storage medium of the recording / reproducing unit 929.
  • the recording / reproducing unit 929 has an arbitrary readable / writable storage medium.
  • the storage medium may be a built-in storage medium such as RAM or flash memory, and is externally mounted such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Unallocated Space Space Bitmap) memory, or memory card. It may be a storage medium.
  • the camera unit 926 images a subject to generate image data, and outputs the generated image data to the image processing unit 927.
  • the image processing unit 927 encodes the image data input from the camera unit 926 and stores the encoded stream in the storage medium of the storage / playback unit 929.
  • the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the multiplexed stream is the communication unit 922. Output to.
  • the communication unit 922 encodes and modulates the stream and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
  • These transmission signal and reception signal may include an encoded bit stream.
  • the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
  • the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
  • the image processing unit 927 decodes the video stream and generates video data.
  • the video data is supplied to the display unit 930, and a series of images is displayed on the display unit 930.
  • the audio codec 923 decompresses the audio stream and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the image processing unit 927 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. Thereby, it is possible to reduce the line memory required in the lower part of the LCU when the mobile phone 920 encodes and decodes an image.
  • FIG. 24 shows an example of a schematic configuration of a recording / reproducing apparatus to which the above-described embodiment is applied.
  • the recording / reproducing device 940 encodes audio data and video data of a received broadcast program and records the encoded data on a recording medium.
  • the recording / reproducing device 940 may encode audio data and video data acquired from another device and record them on a recording medium, for example.
  • the recording / reproducing device 940 reproduces data recorded on the recording medium on a monitor and a speaker, for example, in accordance with a user instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
  • the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. 950.
  • Tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown), and demodulates the extracted signal. Then, the tuner 941 outputs the encoded bit stream obtained by the demodulation to the selector 946. That is, the tuner 941 has a role as a transmission unit in the recording / reproducing apparatus 940.
  • the external interface 942 is an interface for connecting the recording / reproducing apparatus 940 to an external device or a network.
  • the external interface 942 may be, for example, an IEEE1394 interface, a network interface, a USB interface, or a flash memory interface.
  • video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 serves as a transmission unit in the recording / reproducing device 940.
  • the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the encoded bit stream to the selector 946.
  • the HDD 944 records an encoded bit stream in which content data such as video and audio is compressed, various programs, and other data on an internal hard disk. Further, the HDD 944 reads out these data from the hard disk when reproducing video and audio.
  • the disk drive 945 performs recording and reading of data to and from the mounted recording medium.
  • the recording medium mounted on the disk drive 945 is, for example, a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.) or a Blu-ray (registered trademark) disk. It may be.
  • the selector 946 selects an encoded bit stream input from the tuner 941 or the encoder 943 when recording video and audio, and outputs the selected encoded bit stream to the HDD 944 or the disk drive 945. In addition, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 during video and audio reproduction.
  • the decoder 947 decodes the encoded bit stream and generates video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. The decoder 904 outputs the generated audio data to an external speaker.
  • OSD 948 reproduces the video data input from the decoder 947 and displays the video. Further, the OSD 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
  • the control unit 949 includes a processor such as a CPU and memories such as a RAM and a ROM.
  • the memory stores a program executed by the CPU, program data, and the like.
  • the program stored in the memory is read and executed by the CPU when the recording / reproducing apparatus 940 is activated, for example.
  • the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from the user interface 950, for example, by executing the program.
  • the user interface 950 is connected to the control unit 949.
  • the user interface 950 includes, for example, buttons and switches for the user to operate the recording / reproducing device 940, a remote control signal receiving unit, and the like.
  • the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
  • the encoder 943 has the function of the image encoding apparatus according to the above-described embodiment.
  • the decoder 947 has the function of the image decoding apparatus according to the above-described embodiment.
  • FIG. 25 illustrates an example of a schematic configuration of an imaging apparatus to which the above-described embodiment is applied.
  • the imaging device 960 images a subject to generate an image, encodes the image data, and records it on a recording medium.
  • the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972.
  • the optical block 961 is connected to the imaging unit 962.
  • the imaging unit 962 is connected to the signal processing unit 963.
  • the display unit 965 is connected to the image processing unit 964.
  • the user interface 971 is connected to the control unit 970.
  • the bus 972 connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970 to each other.
  • the optical block 961 includes a focus lens and a diaphragm mechanism.
  • the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
  • the imaging unit 962 includes an image sensor such as a CCD (Charge-Coupled Device) or a CMOS (Complementary Metal-Oxide Semiconductor), and converts an optical image formed on the imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
  • CCD Charge-Coupled Device
  • CMOS Complementary Metal-Oxide Semiconductor
  • the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
  • the signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.
  • the image processing unit 964 encodes the image data input from the signal processing unit 963 and generates encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. In addition, the image processing unit 964 may display the image by outputting the image data input from the signal processing unit 963 to the display unit 965. Further, the image processing unit 964 may superimpose display data acquired from the OSD 969 on an image output to the display unit 965.
  • the OSD 969 generates a GUI image such as a menu, a button, or a cursor, and outputs the generated image to the image processing unit 964.
  • the external interface 966 is configured as a USB input / output terminal, for example.
  • the external interface 966 connects the imaging device 960 and a printer, for example, when printing an image.
  • a drive is connected to the external interface 966 as necessary.
  • a removable medium such as a magnetic disk or an optical disk is attached to the drive, and a program read from the removable medium can be installed in the imaging device 960.
  • the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
  • the recording medium mounted on the media drive 968 may be any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
  • a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive) may be configured.
  • the control unit 970 includes a processor such as a CPU and memories such as a RAM and a ROM.
  • the memory stores a program executed by the CPU, program data, and the like.
  • the program stored in the memory is read and executed by the CPU when the imaging device 960 is activated, for example.
  • the CPU controls the operation of the imaging device 960 according to an operation signal input from the user interface 971 by executing the program.
  • the user interface 971 is connected to the control unit 970.
  • the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
  • the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
  • the image processing unit 964 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. Thereby, it is possible to reduce the line memory required in the lower part of the LCU when the image capturing apparatus 960 encodes and decodes an image.
  • the filtering process for the vertical boundary is mainly performed before the filtering process for the horizontal boundary has been described.
  • the present invention is also applicable when the filtering process for the horizontal boundary is performed first.
  • the above-described effects of the technology according to the disclosure can be enjoyed equally.
  • the size of the processing unit of the deblocking filter or the size of the LCU is not limited to the example described in the present specification, and may be other sizes.
  • the filter for the filtering process for the vertical boundary is expressed as “H (horizontal) filter”.
  • the filter taps of the filtering process for the horizontal boundary are arranged along the vertical direction, the filter of the filtering process for the horizontal boundary is expressed as “V (vertical) filter”.
  • V (vertical) filter the filtering process for the vertical boundary
  • H (horizontal) filter the filtering process for the horizontal boundary
  • various types of information such as additional bits (that is, pattern identification data), prediction mode, adaptive offset filter, and adaptive loop filter parameters are multiplexed into an encoded stream to be encoded.
  • additional bits that is, pattern identification data
  • prediction mode that is, prediction mode
  • adaptive offset filter adaptive loop filter parameters
  • adaptive loop filter parameters are multiplexed into an encoded stream to be encoded.
  • An example of transmission from the side to the decoding side has been described.
  • the method for transmitting such information is not limited to such an example.
  • these pieces of information may be transmitted or recorded as separate data associated with the encoded bitstream without being multiplexed into the encoded bitstream.
  • the term “associate” means that an image (which may be a part of an image such as a slice or a block) included in the bitstream and information corresponding to the image can be linked at the time of decoding. Means.
  • information may be transmitted on a transmission path different from that of the image (or bit stream).
  • Information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream).
  • the information and the image (or bit stream) may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
  • this technique can also take the following structures.
  • a decoding unit that decodes an encoded stream to generate an image
  • a class classification processing unit that performs pixel classification on a pixel basis for a class when performing a filtering process on pixels constituting a block of an image generated by the decoding unit
  • An image processing apparatus comprising: a filter processing unit that performs pixel-based filter processing on an image generated by the decoding unit in accordance with the class classified by the class classification processing unit.
  • the class classification processing unit or the above-described classifying unit so as to align a reference range to be referred to when calculating an evaluation value of the class classification processing for the current pixel and a reference range to be referred to when performing a filter processing operation on the current pixel.
  • the image processing apparatus according to (1) further including a control unit that controls the filter processing unit.
  • the control unit extends the reference range referred to when calculating the evaluation value of the class classification processing for the current pixel to the reference range referred to when performing the filter processing for the current pixel.
  • the image processing apparatus according to (3) wherein the image processing apparatus controls a classification processing unit.
  • the class classification processing unit classifies the class of the current pixel, and the decoding unit When the position of the current pixel is not the predetermined pixel position for the generated image, the current pixel is classified into a class classified with respect to the pixel located at the predetermined pixel position (1)
  • the image processing device according to any one of (4) to (4).
  • the class classification processing unit performs class classification processing according to a pattern indicating a position of a pixel referred to when calculating an evaluation value of the class classification processing. Any one of (1) to (4) Image processing apparatus.
  • the class classification processing unit acquires identification data for identifying a pattern indicating a position of a pixel to be referred to when calculating an evaluation value of the class classification processing from the encoded stream, and refers to the acquired identification data Then, the classification processing is performed.
  • An adaptive offset filter processing unit that performs adaptive offset filter processing on the image decoded by the decoding unit, The image processing apparatus according to (7), wherein the class classification processing unit performs a class classification process on a pixel basis for pixels constituting a block of an image on which the adaptive offset filter process has been performed.
  • a deblocking filter processing unit that performs deblocking filter processing on the image decoded by the decoding unit, The image processing apparatus according to (8), wherein the adaptive offset filter unit performs the adaptive offset filter process on an image that has been subjected to deblocking filter processing by the deblocking filter processing unit.
  • the image processing apparatus is Decoding the encoded stream to generate an image, For the pixels that make up the block of the generated image, the class when performing the filtering process is classified on a pixel basis, An image processing method for performing pixel-based filter processing on a generated image according to a classified class.
  • a class classification processing unit that performs class classification processing on a pixel basis for a class for performing filter processing for pixels constituting a block of an image subjected to local decoding processing when an image is encoded;
  • a filter processing unit that performs a pixel-based filter process on the locally decoded image according to the class classified by the class classification processing unit;
  • An image processing apparatus comprising: an encoding unit that encodes the image using an image that has been subjected to filter processing by the filter processing unit, and generates an encoded stream.
  • the image according to (11) further including a control unit that controls the filter processing unit so as to perform filtering processing on the current pixel after performing the class classification processing on the current pixel. Processing equipment.
  • the class classification processing unit or the above-described classifying unit so as to align a reference range to be referred to when calculating an evaluation value of the class classification processing for the current pixel and a reference range to be referred to when performing a filter processing operation on the current pixel.
  • the control unit may expand the reference range referred to when calculating the evaluation value of the class classification processing for the current pixel to the reference range referred to when performing the filter processing for the current pixel.
  • the class classification processing unit classifies the class of the current pixel when the position of the current pixel is a predetermined pixel position for the image subjected to the local decoding process, and performs the local decoding process If the position of the current pixel is not the predetermined pixel position for the image, the current pixel is classified into a class classified for the pixel located at the predetermined pixel position.
  • (11) to (14) An image processing apparatus according to any one of the above.
  • the class classification processing unit performs class classification processing according to a pattern indicating a position of a pixel to be referred to when calculating an evaluation value of the class classification processing. Any one of (11) to (14) Image processing apparatus.
  • the class classification processing unit performs class classification processing with reference to a pattern indicating a position of a pixel referred to when calculating an evaluation value of the class classification processing, and generates identification data for identifying the pattern,
  • the image processing device according to (16) which is added to the encoded stream generated by the encoding unit.
  • An adaptive offset filter processing unit that performs adaptive offset filter processing on the image decoded by the decoding unit,
  • a deblocking filter processing unit that performs a deblocking filter process on the image decoded by the decoding unit, The image processing apparatus according to (18), wherein the adaptive offset filter unit performs the adaptive offset filter process on an image that has been subjected to deblocking filter processing by the deblocking filter processing unit.
  • the image processing apparatus is For pixels constituting the block of the image subjected to local decoding processing when the image is encoded, the class at the time of performing the filtering processing is classified on a pixel basis, and the local decoding is performed according to the classified processing class.
  • 11 Image coding device 26 Lossless encoding unit, 31 Deblocking filter, 41 Adaptive offset filter, 42, 42a, 42b Adaptive loop filter, 51 Image decoding device, 62 Lossless decoding unit, 81 Adaptive offset filter, 101 Line memory, 102 ALF class classification processing unit, 103 ALF filter calculation unit, 104 control unit, 151 control unit, 152 ALF class classification processing unit, 153 ALF filter calculation unit, 154 class value storage buffer, 161 class classification availability determination unit, 162 pattern determination Part, 171 additional bit setting part, 201 control part, 211 additional bit acquisition part, 251 image information acquisition part

Landscapes

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

Abstract

本開示は、符号化または復号する際に必要となるラインメモリの増加を防ぐことができるようにする画像処理装置および方法に関する。 ALFクラス分類処理部は、左上の画素C1のクラス分類処理を行う。画素C1のクラス分類処理が終わると、ALFフィルタ演算部は、クラス分類処理の結果である画素C1のクラス値を用いて、画素C1のフィルタ演算処理を行う。次に、ALFクラス分類処理部102は、画素C1の、画面内におけるラスタスキャン順に次である画素C2のクラス分類処理を行う。ALFフィルタ演算部103は、クラス分類処理の結果である画素C2のクラス値を用いて、画素C2のフィルタ演算処理を行う。本開示は、例えば、画像処理装置に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、符号化または復号する際に必要となるラインメモリの増加を防ぐことができるようにした画像処理装置および方法に関する。
 近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮する符号化方式を採用して画像を圧縮符号する装置が普及しつつある。この符号化方式には、例えば、MPEG(Moving Picture Experts Group)やH.264及びMPEG-4 Part10 (Advanced Video Coding、以下H.264/AVCと記す)などがある。
 そして、現在、H.264/AVCより更なる符号化効率の向上を目的として、ITU-TとISO/IECとの共同の標準化団体であるJCTVC (Joint Collaboration Team - Video Coding) により、HEVC (High Efficiency Video Coding) と呼ばれる符号化方式の標準化が進められている。
 現時点におけるHEVCのドラフトでは、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタが採用されている。適応ループフィルタは、デブロッキングフィルタ、および適応オフセットフィルタの後に処理を行う。適応ループフィルタのうち、ブロックベースの適応ループフィルタでは、4×4画素単位に全ての画素のバリアンス(分散)を計算してクラス分類が行われている。
 これに対して、非特許文献1においては、4×4画素内のサブサンプルした4画素についてのみバリアンスを計算し、4×4画素のブロックのクラス分類を行うことが提案されている。この提案によれば、クラス分類における計算の削減が実現される。
" Block-based filter adaptation with features on subset of pixels", Wang (PoLin) Lai, Felix C. A. Fernandes, Il-Koo Kim, JCTVC-F301,July 2011
 上述したように、従来においては、クラス分類処理を4×4画素のブロック単位で行っているため、4×4画素のブロックのバリアンスの計算が完了しないと、そのブロックのフィルタ処理を開始することができなかった。
 このため、最大の符号化単位であるLCUの下部(水平境界)のデブロックフィルタおよび適応オフセットフィルタの進捗が、適応ループフィルタのブロック単位のクラス分類処理に影響を与える恐れが高くなり、ラインメモリの増加につながってしまっていた。
 本開示は、このような状況に鑑みてなされたものであり、LCUの下部においてラインメモリの増加を防ぐことができるものである。
 本開示の第1の側面の画像処理装置は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理するクラス分類処理部と、前記クラス分類処理部により分類処理されたクラスに従って、前記復号部により生成された画像に、画素ベースでフィルタ処理を行うフィルタ処理部とを備える。
 カレント画素に対してクラス分類処理を行った後に、カレント画素に対してフィルタ処理の演算を行うように、前記フィルタ処理部を制御する制御部をさらに備えることができる。
 カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲とカレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲とを揃えるように、前記クラス分類処理部または前記フィルタ処理部を制御する制御部をさらに備えることができる。
 前記制御部は、カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲を、カレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲まで広げるように、前記クラス分類処理部を制御することができる。
 前記クラス分類処理部は、前記復号部により生成された画像を対象として、カレント画素の位置が、所定の画素位置である場合、前記カレント画素のクラスを分類処理し、前記復号部により生成された画像を対象として、カレント画素の位置が、前記所定の画素位置ではない場合、前記カレント画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類処理することができる。
 前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンに応じて、クラス分類処理することができる。
 前記クラス分類処理部は、前記符号化ストリームから、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンを識別する識別データを取得し、取得した識別データを参照して、クラス分類処理することができる。
 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部をさらに備え、前記クラス分類処理部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、画素ベースでクラス分類処理を行うことができる。
 前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部をさらに備え、前記適応オフセットフィルタ部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行うことができる。
 本開示の第1の側面の画像処理方法は、画像処理装置が、符号化ストリームを復号処理して画像を生成し、生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理し、分類処理されたクラスに従って、生成された画像に、画素ベースでフィルタ処理を行う。
 本開示の第2の側面の画像処理装置は、画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理するクラス分類処理部と、前記クラス分類処理部により分類処理されたクラスに従って、ローカル復号処理された画像に、画素ベースでフィルタ処理を行うフィルタ処理部と、前記フィルタ処理部によりフィルタ処理が行われた画像を用いて、前記画像を符号化して、符号化ストリームを生成する符号化部とを備える。
 カレント画素に対してクラス分類処理を行った後に、カレント画素に対してフィルタ処理の演算を行うように、前記フィルタ処理部を制御する制御部をさらに備えることができる。
 カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲とカレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲とを揃えるように、前記クラス分類処理部または前記フィルタ処理部を制御する制御部をさらに備えることができる。
 前記制御部は、カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲を、カレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲まで広げるように、前記クラス分類処理部を制御することができる。
 前記クラス分類処理部は、前記ローカル復号処理された画像を対象として、カレント画素の位置が、所定の画素位置である場合、前記カレント画素のクラスを分類し、前記ローカル復号処理された画像を対象として、カレント画素の位置が、前記所定の画素位置ではない場合、前記カレント画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類することができる。
 前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンに応じて、クラス分類処理することができる。
 前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンを参照してクラス分類処理し、前記パターンを識別する識別データを生成して、前記符号化部により生成された符号化ストリームに付加させることができる。
 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部をさらに備え、前記クラス分類処理部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、画素ベースでクラス分類処理を行うことができる。
 前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部をさらに備え、前記適応オフセットフィルタ部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行うことができる。
 本開示の第2の側面の画像処理方法は、画像処理装置が、画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理し、分類処理されたクラスに従って、ローカル復号された画像に、画素ベースでフィルタ処理を行い、フィルタ処理が行われた画像を用いて、前記画像を符号化して、符号化ストリームを生成する。
 本開示の第1の側面においては、符号化ストリームを復号処理して画像が生成され、生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスが画素ベースで分類処理され、分類処理されたクラスに従って、生成された画像に、画素ベースでフィルタ処理が行われる。
 本開示の第2の側面においては、画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスが分類処理され、分類処理されたクラスに従って、ローカル復号された画像に、画素ベースでフィルタ処理が行われ、フィルタ処理が行われた画像を用いて、前記画像が符号化されて、符号化ストリームが生成される。
 なお、上述の画像処理装置は、独立した装置であっても良いし、1つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
 本開示の第1側面によれば、画像を復号することができる。特に、ラインメモリの増加を防ぐことができる。
 本開示の第2の側面によれば、画像を符号化することができる。特に、ラインメモリの増加を防ぐことができる。
画像符号化装置の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 従来の適応ループフィルタのクラス分類について説明する図である。 LCU境界における従来の適応ループフィルタを説明する図である。 本開示を適用した適応ループフィルタの構成例を示すブロック図である。 適応ループフィルタ処理を説明するフローチャートである。 本技術と比較するための従来のブロック単位処理を説明する図である。 本技術の画素単位処理の効果について説明する図である。 本技術の画素単位処理の他の効果について説明する図である。 本技術の画素単位処理のさらに他の効果について説明する図である。 クラス分類を行う算出点の位置を示すパターンの例を示す図である。 本開示を適用した適応ループフィルタの他の構成例を示すブロック図である。 画像符号化装置の適応ループフィルタ処理を説明するフローチャートである。 画素単位の適応ループフィルタ処理を説明するフローチャートである。 本開示を適用した適応ループフィルタの他の構成例を示すブロック図である。 画像復号装置の適応ループフィルタ処理を説明するフローチャートである。 本開示を適用した適応ループフィルタのさらに他の構成例を示すブロック図である。 適応ループフィルタ処理の他の例を説明するフローチャートである。 コンピュータの主な構成例を示すブロック図である。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。
 以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.装置および動作の概要
2.従来の手法の説明
3.第1の実施の形態
4.第2の実施の形態
5.第3の実施の形態
6.応用例
<1.装置および動作の概要>
[画像符号化装置の構成例]
 図1は、本開示を適用した画像処理装置としての画像符号化装置の一実施の形態の構成を表している。
 図1に示される画像符号化装置11は、予測処理を用いて画像データを符号化する。ここで、符号化方式としては、例えば、HEVC(High Efficiency Video Coding)方式などが用いられる。
 図1の例において、画像符号化装置11は、A/D(Analog / Digital)変換部21、画面並べ替えバッファ22、演算部23、直交変換部24、量子化部25、可逆符号化部26、および蓄積バッファ27を有する。また、画像符号化装置11は、逆量子化部28、逆直交変換部29、演算部30、デブロッキングフィルタ31、フレームメモリ32、選択部33、イントラ予測部34、動き予測・補償部35、予測画像選択部36、およびレート制御部37を有する。
 さらに、画像符号化装置11は、デブロッキングフィルタ31とフレームメモリ32との間に、適応オフセットフィルタ41および適応ループフィルタ42aを有する。
 A/D変換部21は、入力された画像データをA/D変換し、画面並べ替えバッファ22に出力し、記憶させる。
 画面並べ替えバッファ22は、記憶した表示の順番のフレームの画像を、GOP(Group of Picture)構造に応じて、符号化のためのフレームの順番に並べ替える。画面並べ替えバッファ22は、フレームの順番を並び替えた画像を、演算部23に供給する。また、画面並べ替えバッファ22は、フレームの順番を並び替えた画像を、イントラ予測部34および動き予測・補償部35にも供給する。
 演算部23は、画面並べ替えバッファ22から読み出された画像から、予測画像選択部36を介してイントラ予測部34若しくは動き予測・補償部35から供給される予測画像を減算し、その差分情報を直交変換部24に出力する。
 例えば、イントラ符号化が行われる画像の場合、演算部23は、画面並べ替えバッファ22から読み出された画像から、イントラ予測部34から供給される予測画像を減算する。また、例えば、インター符号化が行われる画像の場合、演算部23は、画面並べ替えバッファ22から読み出された画像から、動き予測・補償部35から供給される予測画像を減算する。
 直交変換部24は、演算部23から供給される差分情報に対して、離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その変換係数を量子化部25に供給する。
 量子化部25は、直交変換部24が出力する変換係数を量子化する。量子化部25は、量子化された変換係数を可逆符号化部26に供給する。
 可逆符号化部26は、その量子化された変換係数に対して、可変長符号化、算術符号化等の可逆符号化を施す。
 可逆符号化部26は、イントラ予測モードを示す情報などのパラメータをイントラ予測部34から取得し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部35から取得する。
 可逆符号化部26は、量子化された変換係数を符号化するとともに、取得した各パラメータ(シンタクス要素)を符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部26は、符号化して得られた符号化データを蓄積バッファ27に供給して蓄積させる。
 例えば、可逆符号化部26においては、可変長符号化または算術符号化等の可逆符号化処理が行われる。可変長符号化としては、CAVLC(Context-Adaptive Variable Length Coding)などがあげられる。算術符号化としては、CABAC(Context-Adaptive Binary Arithmetic Coding)などがあげられる。
 蓄積バッファ27は、可逆符号化部26から供給された符号化データを、一時的に保持し、所定のタイミングにおいて、符号化された符号化画像として、例えば、後段の図示せぬ記録装置や伝送路などに出力する。
 また、量子化部25において量子化された変換係数は、逆量子化部28にも供給される。逆量子化部28は、その量子化された変換係数を、量子化部25による量子化に対応する方法で逆量子化する。逆量子化部28は、得られた変換係数を、逆直交変換部29に供給する。
 逆直交変換部29は、供給された変換係数を、直交変換部24による直交変換処理に対応する方法で逆直交変換する。逆直交変換された出力(復元された差分情報)は、演算部30に供給される。
 演算部30は、逆直交変換部29より供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部36を介してイントラ予測部34若しくは動き予測・補償部35から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。
 例えば、差分情報が、イントラ符号化が行われる画像に対応する場合、演算部30は、その差分情報にイントラ予測部34から供給される予測画像を加算する。また、例えば、差分情報が、インター符号化が行われる画像に対応する場合、演算部30は、その差分情報に動き予測・補償部35から供給される予測画像を加算する。
 その加算結果である復号画像は、デブロッキングフィルタ31およびフレームメモリ32に供給される。
 デブロッキングフィルタ31は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロッキングフィルタ31は、そのフィルタ処理結果を適応オフセットフィルタ41に供給する。
 適応オフセットフィルタ41は、デブロッキングフィルタ31によるフィルタ後の画像に対して、主にリンギングを除去するオフセットフィルタ(SAO: Sample adaptive offset)処理を行う。
 オフセットフィルタの種類は、バンドオフセット2種類、エッジオフセット6種類、オフセットなしの計9種類がある。適応オフセットフィルタ41は、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ31によるフィルタ後の画像に対して、フィルタ処理を施す。
 なお、本明細書において詳細な説明は省略するが、画像符号化装置11において、quad-tree構造と分割領域毎のオフセット値は、適応オフセットフィルタ41により算出されて用いられる。算出されたquad-tree構造と分割領域毎のオフセット値は、可逆符号化部26において符号化され、後述する図3の画像復号装置51に送信される。
 適応オフセットフィルタ41は、フィルタ処理後の画像を、適応ループフィルタ42aに供給する。
 適応ループフィルタ42aは、画素単位(画素ベース)でクラス分類処理を行って、適応ループフィルタ(ALF:AdaptiveLoop Filter)処理を行う。適応ループフィルタ42aにおいては、フィルタとして、例えば、2次元のウィナーフィルタ(Wiener Filter)が用いられる。もちろん、ウィナーフィルタ以外のフィルタが用いられてもよい。
 適応ループフィルタ42aは、適応オフセットフィルタ41によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ42aは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ41によるフィルタ後の画像に対してフィルタ処理を行い、フィルタ処理結果を、フレームメモリ32に供給する。適応ループフィルタ42aの詳細については、図7を参照して後述される。
 なお、本明細書において詳細な説明は省略するが、画像符号化装置11において、フィルタ係数は、画面並べ替えバッファ12からの原画像との残差を最小とするよう適応ループフィルタ42aにより算出されて用いられる。算出されたフィルタ係数は、可逆符号化部26において符号化され、後述する図3の画像復号装置51に送信される。
 フレームメモリ32は、所定のタイミングにおいて、蓄積されている参照画像を、選択部33を介してイントラ予測部34または動き予測・補償部35に出力する。
 例えば、イントラ符号化が行われる画像の場合、フレームメモリ32は、参照画像を、選択部33を介してイントラ予測部34に供給する。また、例えば、インター符号化が行われる場合、フレームメモリ32は、参照画像を、選択部33を介して動き予測・補償部35に供給する。
 選択部33は、フレームメモリ32から供給される参照画像がイントラ符号化を行う画像である場合、その参照画像をイントラ予測部34に供給する。また、選択部33は、フレームメモリ32から供給される参照画像がインター符号化を行う画像である場合、その参照画像を動き予測・補償部35に供給する。
 イントラ予測部34は、画面内の画素値を用いて予測画像を生成するイントラ予測(画面内予測)を行う。イントラ予測部34は、複数のモード(イントラ予測モード)によりイントラ予測を行う。
 イントラ予測部34は、全てのイントラ予測モードで予測画像を生成し、各予測画像を評価し、最適なモードを選択する。イントラ予測部34は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部36を介して演算部23や演算部30に供給する。
 また、上述したように、イントラ予測部34は、採用したイントラ予測モードを示すイントラ予測モード情報等のパラメータを、適宜可逆符号化部26に供給する。
 動き予測・補償部35は、インター符号化が行われる画像について、画面並べ替えバッファ22から供給される入力画像と、選択部33を介してフレームメモリ32から供給される参照画像とを用いて、動き予測を行う。また、動き予測・補償部35は、動き予測により検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。
 動き予測・補償部35は、候補となる全てのインター予測モードのインター予測処理を行い、予測画像を生成する。動き予測・補償部35は、生成された予測画像を、予測画像選択部36を介して演算部23や演算部30に供給する。
 また、動き予測・補償部35は、採用されたインター予測モードを示すインター予測モード情報や、算出した動きベクトルを示す動きベクトル情報などのパラメータを可逆符号化部26に供給する。
 予測画像選択部36は、イントラ符号化を行う画像の場合、イントラ予測部34の出力を演算部23や演算部30に供給し、インター符号化を行う画像の場合、動き予測・補償部35の出力を演算部23や演算部30に供給する。
 レート制御部37は、蓄積バッファ27に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部25の量子化動作のレートを制御する。
[画像符号化装置の動作]
 図2を参照して、以上のような画像符号化装置11により実行される符号化処理の流れについて説明する。
 ステップS11において、A/D変換部21は入力された画像をA/D変換する。ステップS12において、画面並べ替えバッファ22は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
 画面並べ替えバッファ22から供給される処理対象の画像がイントラ処理されるブロックの画像である場合、参照される復号済みの画像がフレームメモリ32から読み出され、選択部33を介してイントラ予測部34に供給される。
 これらの画像に基づいて、ステップS13において、イントラ予測部34は処理対象のブロックの画素を、候補となる全てのイントラ予測モードでイントラ予測する。なお、参照される復号済みの画素としては、デブロッキングフィルタ31によりフィルタされていない画素が用いられる。
 この処理により、候補となる全てのイントラ予測モードでイントラ予測が行われ、候補となる全てのイントラ予測モードに対してコスト関数値が算出される。そして、算出されたコスト関数値に基づいて、最適イントラ予測モードが選択され、最適イントラ予測モードのイントラ予測により生成された予測画像とそのコスト関数値が予測画像選択部36に供給される。
 画面並べ替えバッファ22から供給される処理対象の画像がインター処理される画像である場合、参照される画像がフレームメモリ32から読み出され、選択部33を介して動き予測・補償部35に供給される。これらの画像に基づいて、ステップS14において、動き予測・補償部35は、動き予測・補償処理を行う。
 この処理により、候補となる全てのインター予測モードで動き予測処理が行われ、候補となる全てのインター予測モードに対してコスト関数値が算出され、算出したコスト関数値に基づいて、最適インター予測モードが決定される。そして、最適インター予測モードにより生成された予測画像とそのコスト関数値が予測画像選択部36に供給される。
 ステップS15において、予測画像選択部36は、イントラ予測部34および動き予測・補償部35より出力された各コスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの一方を、最適予測モードに決定する。そして、予測画像選択部36は、決定した最適予測モードの予測画像を選択し、演算部23,30に供給する。この予測画像は、後述するステップS16,S21の演算に利用される。
 なお、この予測画像の選択情報は、イントラ予測部34または動き予測・補償部35に供給される。最適イントラ予測モードの予測画像が選択された場合、イントラ予測部34は、最適イントラ予測モードを示す情報(すなわち、イントラ予測に関するパラメータ)を、可逆符号化部26に供給する。
 最適インター予測モードの予測画像が選択された場合、動き予測・補償部35は、最適インター予測モードを示す情報と、最適インター予測モードに応じた情報(すなわち、動き予測に関するパラメータ)を可逆符号化部26に出力する。最適インター予測モードに応じた情報としては、動きベクトル情報や参照フレーム情報などがあげられる。
 ステップS16において、演算部23は、ステップS12で並び替えられた画像と、ステップS15で選択された予測画像との差分を演算する。予測画像は、インター予測する場合は動き予測・補償部35から、イントラ予測する場合はイントラ予測部34から、それぞれ予測画像選択部36を介して演算部23に供給される。
 差分データは元の画像データに較べてデータ量が小さくなっている。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
 ステップS17において、直交変換部24は演算部23から供給された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
 ステップS18において、量子化部25は変換係数を量子化する。この量子化に際しては、後述するステップS28の処理で説明されるように、レートが制御される。
 以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS19において、逆量子化部28は、量子化部25により量子化された変換係数を量子化部25の特性に対応する特性で逆量子化する。ステップS20において、逆直交変換部29は、逆量子化部28により逆量子化された変換係数を直交変換部24の特性に対応する特性で逆直交変換する。
 ステップS21において、演算部30は、予測画像選択部36を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された(すなわち、ローカルデコードされた)画像(演算部23への入力に対応する画像)を生成する。
 ステップS22においてデブロッキングフィルタ31は、演算部30より出力された画像に対して、デブロッキングフィルタ処理を行う。これによりブロック歪みが除去される。デブロッキングフィルタ31からのフィルタ後の画像は、適応オフセットフィルタ41に出力される。
 ステップS23において、適応オフセットフィルタ41は、適応オフセットフィルタ処理を行う。この処理により、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ31によるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ42aに供給される。
 ステップS24において、適応ループフィルタ42aは、適応オフセットフィルタ41によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。適応ループフィルタ42aは、適応オフセットフィルタ41によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ42aは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ41によるフィルタ後の画像に対してフィルタ処理を行う。そして、適応ループフィルタ42aは、フィルタ処理結果を、フレームメモリ32に供給する。なお、この適応ループフィルタ処理の詳細は、図8を参照して後述される。
 ステップS25においてフレームメモリ32は、フィルタリングされた画像を記憶する。なお、フレームメモリ32には、デブロッキングフィルタ31、適応オフセットフィルタ41、および適応ループフィルタ42aによりフィルタされていない画像も演算部30から供給され、記憶される。
 一方、上述したステップS18において量子化された変換係数は、可逆符号化部26にも供給される。ステップS26において、可逆符号化部26は、量子化部25より出力された量子化された変換係数と、供給された各パラメータを符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。
 ステップS27において蓄積バッファ27は、符号化された差分画像(すなわち、符号化ストリーム)を、圧縮画像として蓄積する。蓄積バッファ27に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
 ステップS28においてレート制御部37は、蓄積バッファ27に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部25の量子化動作のレートを制御する。
 ステップS28の処理が終了すると、符号化処理が終了される。
[画像復号装置の構成例]
 図3は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図3に示される画像復号装置51は、図1の画像符号化装置11に対応する復号装置である。
 画像符号化装置11より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置11に対応する画像復号装置51に伝送され、復号されるものとする。
 図3に示されるように、画像復号装置51は、蓄積バッファ61、可逆復号部62、逆量子化部63、逆直交変換部64、演算部65、デブロッキングフィルタ66、画面並べ替えバッファ67、およびD/A変換部68を有する。また、画像復号装置51は、フレームメモリ69、選択部70、イントラ予測部71、動き予測・補償部72、および選択部73を有する。
 さらに、画像復号装置51は、デブロッキングフィルタ66と、画面並べ替えバッファ67およびフレームメモリ69との間に、適応オフセットフィルタ81および適応ループフィルタ42bを有する。
 蓄積バッファ61は、伝送されてきた符号化データを蓄積する。この符号化データは、画像符号化装置11により符号化されたものである。可逆復号部62は、蓄積バッファ61から所定のタイミングで読み出された符号化データを、図1の可逆符号化部26の符号化方式に対応する方式で復号する。
 可逆復号部62は、復号されたイントラ予測モードを示す情報などのパラメータをイントラ予測部71に供給し、インター予測モードを示す情報や動きベクトル情報などのパラメータを動き予測・補償部72に供給する。
 逆量子化部63は、可逆復号部62により復号されて得られた係数データ(量子化係数)を、図1の量子化部25の量子化方式に対応する方式で逆量子化する。つまり、逆量子化部63は、画像符号化装置11から供給された量子化パラメータを用いて、図1の逆量子化部28と同様の方法で量子化係数の逆量子化を行う。
 逆量子化部63は、逆量子化された係数データ、つまり、直交変換係数を、逆直交変換部64に供給する。逆直交変換部64は、図1の直交変換部24の直交変換方式に対応する方式で、その直交変換係数を逆直交変換し、画像符号化装置11において直交変換される前の残差データに対応する復号残差データを得る。
 逆直交変換されて得られた復号残差データは、演算部65に供給される。また、演算部65には、選択部73を介して、イントラ予測部71若しくは動き予測・補償部72から予測画像が供給される。
 演算部65は、その復号残差データと予測画像とを加算し、画像符号化装置11の演算部23により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部65は、その復号画像データをデブロッキングフィルタ66に供給する。
 デブロッキングフィルタ66は、適宜デブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロッキングフィルタ66は、そのフィルタ処理結果を適応オフセットフィルタ81に供給する。
 適応オフセットフィルタ81は、デブロッキングフィルタ66によるフィルタ後の画像に対して、主にリンギングを除去するオフセットフィルタ(SAO)処理を行う。
 適応オフセットフィルタ81は、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ66によるフィルタ後の画像に対して、フィルタ処理を施す。適応オフセットフィルタ81は、フィルタ処理後の画像を、適応ループフィルタ42bに供給する。
 なお、本明細書において詳細な説明は省略するが、適応オフセットフィルタ81において、quad-tree構造と分割領域毎のオフセット値は、画像符号化装置11の適応オフセットフィルタ41により算出され、符号化されて送られてきたものが可逆復号部62により復号されて用いられる。
 適応ループフィルタ42bは、適応オフセットフィルタ81によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ42bは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ81によるフィルタ後の画像に対してフィルタ処理を行い、フィルタ処理結果を、画面並べ替えバッファ67に供給する。適応ループフィルタ42bの詳細については、図7を参照して後述される。
 なお、本明細書において詳細な説明は省略するが、適応ループフィルタ42bにおいて、フィルタ係数は、画像符号化装置11の適応ループフィルタ42aにより算出され、符号化されて送られてきたものが可逆復号部62により復号されて用いられる。
 画面並べ替えバッファ67は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ22により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部68は、画面並べ替えバッファ67から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
 適応ループフィルタ42bの出力は、さらに、フレームメモリ69に供給される。
 フレームメモリ69、選択部70、イントラ予測部71、動き予測・補償部72、および選択部73は、画像符号化装置11のフレームメモリ32、選択部33、イントラ予測部34、動き予測・補償部35、および予測画像選択部36にそれぞれ対応する。
 選択部70は、インター処理される画像と参照される画像をフレームメモリ69から読み出し、動き予測・補償部72に供給する。また、選択部70は、イントラ予測に用いられる画像をフレームメモリ69から読み出し、イントラ予測部71に供給する。
 イントラ予測部71には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部62から適宜供給される。イントラ予測部71は、この情報に基づいて、フレームメモリ69から取得した参照画像から予測画像を生成し、生成した予測画像を選択部73に供給する。
 動き予測・補償部72には、ヘッダ情報を復号して得られた情報(予測モード情報、動きベクトル情報、参照フレーム情報、フラグ、および各種パラメータ等)が可逆復号部62から供給される。
 動き予測・補償部72は、可逆復号部62から供給されるそれらの情報に基づいて、フレームメモリ69から取得した参照画像から予測画像を生成し、生成した予測画像を選択部73に供給する。
 選択部73は、動き予測・補償部72またはイントラ予測部71により生成された予測画像を選択し、演算部65に供給する。
[画像復号装置の動作]
 図4を参照して、以上のような画像復号装置51により実行される復号処理の流れの例を説明する。
 復号処理が開始されると、ステップS51において、蓄積バッファ61は、伝送されてきた符号化データを蓄積する。ステップS52において、可逆復号部62は、蓄積バッファ61から供給される符号化データを復号する。図1の可逆符号化部26により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。
 ピクチャの復号に先立ち、動きベクトル情報、参照フレーム情報、予測モード情報(イントラ予測モード、またはインター予測モード)などのパラメータの情報も復号される。
 予測モード情報がイントラ予測モード情報である場合、予測モード情報は、イントラ予測部71に供給される。予測モード情報がインター予測モード情報である場合、予測モード情報と対応する動きベクトル情報などは、動き予測・補償部72に供給される。
 ステップS53において、イントラ予測部71または動き予測・補償部72は、可逆復号部62から供給される予測モード情報に対応して、それぞれ、予測画像生成処理を行う。
 すなわち、可逆復号部62からイントラ予測モード情報が供給された場合、イントラ予測部71は、Most Probable Modeの生成を行い、並列処理により、イントラ予測モードのイントラ予測画像を生成する。可逆復号部62からインター予測モード情報が供給された場合、動き予測・補償部72は、インター予測モードの動き予測・補償処理を行い、インター予測画像を生成する。
 この処理により、イントラ予測部71により生成された予測画像(イントラ予測画像)、または動き予測・補償部72により生成された予測画像(インター予測画像)が選択部73に供給される。
 ステップS54において、選択部73は予測画像を選択する。すなわち、イントラ予測部71により生成された予測画像、または動き予測・補償部72により生成された予測画像が供給される。したがって、供給された予測画像が選択されて演算部65に供給され、後述するステップS57において逆直交変換部64の出力と加算される。
 上述したステップS52において、可逆復号部62により復号された変換係数は、逆量子化部63にも供給される。ステップS55において、逆量子化部63は可逆復号部62により復号された変換係数を、図1の量子化部25の特性に対応する特性で逆量子化する。
 ステップS56において逆直交変換部29は、逆量子化部28により逆量子化された変換係数を、図1の直交変換部24の特性に対応する特性で逆直交変換する。これにより図1の直交変換部24の入力(演算部23の出力)に対応する差分情報が復号されたことになる。
 ステップS57において、演算部65は、上述したステップS54の処理で選択され、選択部73を介して入力される予測画像を差分情報と加算する。これにより元の画像が復号される。
 ステップS58においてデブロッキングフィルタ66は、演算部65より出力された画像に対して、デブロッキングフィルタ処理を行う。これによりブロック歪みが除去される。デブロッキングフィルタ66からの復号画像は、適応オフセットフィルタ81に出力される。
 ステップS59において、適応オフセットフィルタ81は、適応オフセットフィルタ処理を行う。この処理により、分割領域毎にオフセットフィルタの種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて、デブロッキングフィルタ66によるフィルタ後の画像に対して、フィルタ処理が施される。フィルタ後の画像は、適応ループフィルタ42bに供給される。
 ステップS60において、適応ループフィルタ42bは、適応オフセットフィルタ81によるフィルタ後の画像に対して、適応ループフィルタ処理を行う。適応ループフィルタ42bは、適応オフセットフィルタ81によるフィルタ後の画像において、画素単位でクラス分類を行う。適応ループフィルタ42bは、画素単位で分類されたクラスに応じたフィルタ係数で、適応オフセットフィルタ81によるフィルタ後の画像に対してフィルタ処理を行う。そして、適応ループフィルタ42bは、フィルタ処理結果を、画面並べ替えバッファ67およびフレームメモリ69に供給する。なお、この適応ループフィルタ処理の詳細は、図8を参照して後述される。
 ステップS61においてフレームメモリ69は、フィルタリングされた画像を記憶する。
 ステップS62において、画面並べ替えバッファ67は、適応ループフィルタ42b後の画像の並べ替えを行う。すなわち画像符号化装置11の画面並べ替えバッファ22により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
 ステップS63において、D/A変換部68は、画面並べ替えバッファ67からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
 ステップS63の処理が終了すると、復号処理が終了される。
 <従来の手法の説明>
[従来の適応ループフィルタの説明]
 図5を参照して、従来のブロック単位(ブロックベース)の適応ループフィルタについて説明する。このブロック単位とは、適応ループフィルタにおけるクラス分類処理がブロック単位に行われることを表している。
 図5の例においては、左側に、HEVC(High Efficiency Video Coding)方式における手法、右側に、非特許文献1の提案における手法が示されている。丸は、画素を表し、黒丸は、バリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行うブロックを表している。
 HEVC方式におけるブロック単位の適応ループフィルタにおいては、図5の左側に示されるように、実線で示される4×4画素のブロック毎に、全ての画素のバリアンス(Variance:分散)を計算してクラス分類が行われていた。点線の四角は、4×4画素のブロック内の左上の画素のバリアンスを求める際の参照範囲を示している。
 これに対して、非特許文献1の提案では、図5の右側に示されるように、4×4画素のブロックの16画素から、4画素がサブサンプリングされ、そのサブサンプリングされた4画素についてのみバリアンスを計算してクラス分類が行われる。
 サブサンプリングされる4画素は、ブロック内における、上から1行目の左から1列目および3列目の画素と、上から3行目の左から1列目および3列目の画素である。
 この提案により、クラス分類の計算が削減される。
 ところで、このようなブロック単位の適応ループフィルタにおいてはクラス分類処理を4×4画素のブロック単位で行っているため、4×4画素のブロックのバリアンスの計算が完了しないと、そのブロックのフィルタ処理を開始することができなかった。
 このため、LCUの下部(水平境界)のデブロックフィルタおよび適応オフセットフィルタの進捗が、垂直方向のブロックサイズ分、適応ループフィルタのブロック単位のクラス分類処理に影響を与える恐れが高くなり、ラインメモリの増加につながってしまっていた。
 ここで、LCU(Largest Coding Unit)とCU(Coding Unit)について簡単に説明する。H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))(以下H.264/AVCと称する)においては、1つのマクロブロックを、複数の動き補償ブロックに分割し、それぞれに対して異なる動き情報を持たせることが可能であった。すなわち、H.264/AVC方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されていた。これに対して、HEVC(High Efficiency Video Coding)方式においては、コーディングユニット(CU)が規定されている。
 CUは、Coding Tree Block(CTB)とも呼ばれ、H.264/AVC方式におけるマクロブロックと同様の役割を果たす、符号化(復号)の処理単位となる領域(ピクチャ単位の画像の部分領域)である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
 例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
 それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。例えば、後述する図6の例では、CUの分割ラインは示されていないが、LCUの大きさが16×16画素であり、その中に、8×8画素のCUが4つ含まれている例が示されている。
 以上のHEVC方式のように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、H.264/AVC方式におけるマクロブロックはLCUに相当し、ブロック(サブブロック)はCUに相当すると考えることができる。ただし、CUは、階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、H.264/AVC方式のマクロブロックより大きく設定されることが一般的である。
 よって、以下、LCUは、H.264/AVC方式におけるマクロブロックをも含むものとし、CUは、H.264/AVC方式におけるブロック(サブブロック)をも含むものとする。
[LCU境界における従来の適応ループフィルタの説明]
 図6を参照して、適応ループフィルタのLCUの水平境界での処理について説明する。なお、以下、単にLCU境界と称する場合、それは、LCUの水平境界を表すものとして説明する。また、LCU境界からのラインの数は、LCU境界からの上に向かってのラインの数を示すものとして説明する。
 図6の例において、一番下の太線がLCU境界を示しており、丸は画素を表している。
 LCU境界から1ライン目乃至3ライン目の丸は、次のLCUがデブロッキングフィルタに入力されたときに、水平境界のデブロッキングV(垂直)フィルタ処理が開始される画素を表している。なお、1ライン目乃至3ライン目のハッチングで示される丸は、LCUに含まれるCUの垂直境界においてデブロッキングH(水平)フィルタ処理された画素を表している。1行目乃至3行目の丸のうち、白丸は、CUの垂直境界ではないため、実際には、デブロッキングHフィルタ処理が施されない画素を表している。
 なお、ここで、水平境界のデブロッキングV(垂直)フィルタ処理とは、上下(垂直方向)に隣接するブロック間の水平境界のブロックノイズを除去するデブロッキングフィルタのことを言う。また、垂直境界のデブロッキングH(水平)フィルタ処理とは、左右(水平方向)に隣接するブロック間の垂直境界のブロックノイズを除去するデブロッキングフィルタのことを言う。図6の例においては、デブロッキングHフィルタ処理、デブロッキングVフィルタ処理の順にデブロッキングフィルタが行われる例が示されている。
 LCU境界から4ライン目および5ライン目の画素は、デブロッキングVフィルタ処理済みの画素であって、かつ、適応オフセットフィルタ処理前の画素である。この4ライン目の画素は、1ライン目乃至3ライン目のデブロッキングVフィルタ処理において参照される画素でもある。
 LCU境界から6ライン目乃至8ライン目の画素は、適応オフセットフィルタ処理済みの画素であって、かつ、適応ループフィルタ処理がなされていない画素である。
 LCU境界から9ライン目乃至12ライン目の丸は、適応ループフィルタ(ALF)処理後の画素を表している。
 デブロッキングフィルタは、LCU境界において、LCU境界から1ライン目乃至3ライン目の画素を処理する際、LCU境界を介して下に接するLCUの画素(次の4ライン分の画素)が入力されないとデブロッキングVフィルタ処理を開始できない。
 したがって、デブロッキングフィルタは、次に処理される対象の1乃至3ライン目の画素の処理で待機(一時停止)することになる。
 適応オフセットフィルタは、適応オフセットフィルタのラインメモリに保持されているLCU境界から5ライン目の画素のフィルタ処理を行うには、LCU境界から4乃至6ライン目の画素がラインメモリに必要である。しかしながら、LCU境界から4ライン目の画素は、デブロッキングフィルタのラインメモリに保持されているので、適応オフセットフィルタは、LCU境界から5ライン目の画素のフィルタ処理を行うことができない場合があり得る。このような場合、適応オフセットフィルタは、次に処理される対象の5ライン目の画素の処理で待機することになる。
 適応ループフィルタは、例えば、非特許文献1に記載の方法で、ブロック単位でクラス分類処理を行う。LCU境界から9ライン目乃至12ライン目に実線で示される4×4画素ブロックの画素については、そのとき参照される画素も含めて、適応オフセットフィルタ処理済みの画素である。したがって、適応ループフィルタは、それらのクラス分類およびフィルタ処理を完了することができる。
 そして、LCU境界から5ライン目乃至8ライン目に実線に示される4×4画素ブロックのクラス分類処理は、画素P1乃至画素P4についてのバリアンスの計算結果により行われる。
 画素P1は、4×4画素ブロックにおける上から1行目の左から1列目の画素である。画素P2は、4×4画素ブロックにおける上から1行目の左から3列目の画素である。画素P3は、4×4画素ブロックにおける上から3行目の左から1列目の画素である。画素P4は、4×4画素ブロックにおける上から3行目の左から3列目の画素である。
 バリアンスの計算は、各画素の周囲8画素が参照されて行われるので、点線で示される範囲の画素が、画素P1乃至画素P4のバリアンスの計算に必要な画素となる。それらの画素のうち、画素P1および画素P2のバリアンスの計算に必要な画素は、すでに適応オフセットフィルタが終わっている。しかしながら、画素P3および画素P4のバリアンスの計算に必要な画素の一部(LCU境界から5ライン目の画素)は、まだ適応オフセットフィルタが終わってないので、バリアンスの計算に用いることができない。したがって、適応ループフィルタは、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理で待機することになる。
 さらに、適応ループフィルタのフィルタ処理は、例えば、垂直方向については5タップで行われるが、ブロック単位のクラス分類処理が終了するまで、開始することができない。したがって、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理およびフィルタ処理のために、適応ループフィルタのラインメモリには、適応オフセットフィルタ済みの6ライン目乃至10ライン目の画素が保持される。
 なお、図6の例は、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタの処理の一例であり、処理可能なラインやラインメモリ数は、アーキテクチャによって異なる場合もある。
 以上のように、適応ループフィルタにおいては、クラス分類処理をブロック単位で行うので、ブロックのクラス分類処理が終わらないと、そのブロックのフィルタ処理を行うことができなかった。
 すなわち、デブロッキングフィルタおよび適応オフセットフィルタの進捗の影響により、例えば、LCU境界から8ライン目より下における4×4画素のブロックのクラス分類が行うことができない。その結果、フィルタ処理も行うことができないので、アーキテクチャによっては、LCUの下部では、ラインメモリを多く保持しなければならなかった。
 そこで、以下に説明する適応ループフィルタにおいては、クラス分類処理を画素単位(画素ベース)で行うことにより、ラインメモリの増加を防ぐようにする。
<3.第1の実施の形態>
[適応ループフィルタの構成例]
 これより、図1の画像符号化装置11の適応ループフィルタ42aおよび図3の画像復号装置51の適応ループフィルタ42bの詳細について説明する。なお、以下、適応ループフィルタ42aおよび適応ループフィルタ42bが基本的に同じ動作を行い、それらを個々に区別する必要がない場合、適応ループフィルタ42aおよび適応ループフィルタ42bを、単に適応ループフィルタ42と総称する。また、それらを個々に区別する必要がある場合、適応ループフィルタ42aおよび適応ループフィルタ42bについて、それぞれ個々に説明する。
 図7は、本開示を適用した適応ループフィルタの構成例を示すブロック図である。図7の例において、適応ループフィルタ42は、ラインメモリ101、ALFクラス分類処理部102、ALFフィルタ演算部103、および制御部104を含むように構成される。
 前段からの適応オフセットフィルタ済みの画素は、ラインメモリ101、ALFクラス分類処理部102、およびALFフィルタ演算部103に入力される。なお、前段とは、図1の画像符号化装置11の場合、適応オフセットフィルタ41であり、図3の画像復号装置51の場合、適応オフセットフィルタ81である。
 ラインメモリ101は、制御部104からの制御信号に応じて、図5を参照して上述したようにLCU境界において処理に待ちが生じる場合、前段から入力される適応オフセットフィルタ済みの画素を一旦保持する。
 ALFクラス分類処理部102は、制御部104からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素を処理対象の画素として、画素単位でクラス分類処理を行う。ALFクラス分類処理部102は、制御部104からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、画素単位でクラス分類処理を行う。
 なお、ALFクラス分類処理部102においては、クラス分類の際、例えば、処理対象となる画素を中心とした周囲8画素が、参照画素として用いられる。
 ALFクラス分類処理部102は、分類した画素毎のクラス値を、ALFフィルタ演算部103に供給する。
 ALFフィルタ演算部103は、制御部104からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素に対してフィルタ演算を行う。ALFフィルタ演算部103は、制御部104からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素に対してフィルタ演算を行う。
 ALFフィルタ演算部103においては、フィルタ演算の際、処理対象となる画素を中心として、十字形状のタップや、スノーフレーク形状のタップが用いられる。十字形状のタップは、垂直方向に5画素、水平方向に7画素で形成される。スノーフレーク形状のタップは、処理対象となる画素を中心として、垂直方向に5画素、水平方向に5画素の範囲で形成される。
 このとき、ALFフィルタ演算部103は、ALFクラス分類処理部102からのクラス値に応じたフィルタ係数を用いてフィルタ演算を行い、フィルタ演算後の出力画素を、後段へ供給する。なお、後段とは、図1の画像符号化装置11の場合、フレームメモリ32であり、図3の画像復号装置51の場合、画面並べ替えバッファ67またはフレームメモリ69である。
 制御部104は、入力画素の選択(スイッチング)や、処理タイミングなどを制御する制御信号を、ラインメモリ101、ALFクラス分類処理部102、およびALFフィルタ演算部103にそれぞれ供給する。
[適応ループフィルタの処理例]
 次に、図8のフローチャートを参照して、適応ループフィルタ42の適応ループフィルタ処理を説明する。なお、図8の処理は、上述した図2のステップS24の適応ループフィルタ処理の例であって、図4のステップS60の適応ループフィルタ処理の例である。
 前段からの適応オフセットフィルタ済みの画素は、ラインメモリ101、ALFクラス分類処理部102、およびALFフィルタ演算部103に入力される。
 ステップS101において、ALFクラス分類処理部102は、適応オフセットフィルタ済みの画素を、処理対象の画素として選択する。なお、処理対象の画素は、現在処理を行う画素を意味するので、カレント画素ともいう。
 ALFクラス分類処理部102は、制御部104からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素を処理対象の画素として選択する。
 なお、ALFクラス分類処理部102は、制御部104からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として選択する。
 ALFクラス分類処理部102は、ステップS102において、処理対象の画素に対して、画素単位のクラス分類処理を行う。
 すなわち、ALFクラス分類処理部102は、処理対象の画素の参照画素(例えば、処理対象画素を中心とした周囲8画素)を、前段からまたはラインメモリ101から取得し、処理対象の画素のバリアンス(分散)を計算する。
 ALFクラス分類処理部102は、例えば、水平方向のバリアンス値H(i,j)、垂直方向のバリアンス値V(i,j)、およびラプラシアン代用バリアンス値L(i,j)を、次の式(1)のように算出する。
Figure JPOXMLDOC01-appb-M000001
 ここで、absは、絶対値を表す。iは、処理対象の画素のx座標を示しており、jは、処理対象の画素のy座標を示している。なお、この式(1)は、例であり、バリアンスの求め方はこれに限らない。
 ALFクラス分類処理部102は、計算したバリアンスに応じて、処理対象の画素のクラス値を求め、求めたクラス値を、ALFフィルタ演算部103に供給する。
 ステップS103において、ALFフィルタ演算部103は、適応オフセットフィルタ済みの画素に対して、ALFクラス分類処理部102からのクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
 ALFフィルタ演算部103は、制御部104からの制御信号に応じて、前段から入力される適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。すなわち、ステップS102の処理は、画素単位のクラス分類処理であるので、ALFフィルタ演算部103は、ALFクラス分類処理部102のクラス分類結果を、他の画素の処理を待つことなく、用いることができる。
 なお、ALFフィルタ演算部103は、制御部104からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。
 ALFフィルタ演算部103は、フィルタ演算後の出力画素を、後段へ供給する。
 ALFクラス分類処理部102およびALFフィルタ演算部103は、ステップS104において、処理対象の画素が、ブロック内の最後の画素であるか否かを判定する。ステップS104において、画面内の最後の画素であると判定された場合、処理は、ステップS105に進む。
 ALFクラス分類処理部102およびALFフィルタ演算部103は、ステップS105において、処理対象の画素が、画面内の最後の画素であるか否かを判定する。ステップS105において、画面内の最後の画素であると判定された場合、図8の適応ループフィルタは終了する。
 ステップS104において、ブロック内の最後の画素ではないと判定された場合、処理は、ステップS101に戻り、それ以降の処理が繰り返される。また、ステップS105において、画面内の最後の画素ではないと判定された場合、ラスタスキャン順に次のブロックが選択されて、処理は、ステップS101に戻り、それ以降の処理が繰り返される。
 なお、図8の例において、点線で示されているステップS104の処理は、ブロック単位での処理に対応させた場合の処理である。したがって、この場合、ラスタスキャン順のブロック毎に画素単位でのクラス分類処理が行われ、ブロック毎に画素単位でのフィルタ演算が行われる。ブロック単位での処理に対応させる必要がない場合、ステップS104はスキップ(省略)され、適応ループフィルタ処理は、例えば、1ライン終了したら、次のラインの画素を処理するというように、ラスタスキャン順の画素毎に画素単位で行われる。
[画素単位の適応ループフィルタ処理の詳細]
 次に、図9および図10を参照して、従来のブロック単位処理と比較した場合の本技術の画素単位処理の効果について説明する。
 図9および図10の例において、丸は画素を表し、黒丸は、それらの中心が処理対象の画素であり、その他が参照画素を表している。なお、図9および図10の例において、クラス分類処理は、中心である処理対象の画素の周囲8画素を用いて行われ、フィルタ演算処理は、処理対象ブロックを中心としたスノーフレーク形状の画素を用いて行われる。また、図9の例の点線で囲まれた四角は、ブロック単位処理における処理対象のブロックを示している。これに対して、図10の例の点線で囲まれた四角は、実際には必要ないが、従来のブロック単位処理に対応させるために示されている。
 図9のブロック単位処理においては、まず、1番目(1st)の画素C1のクラス分類処理が、周囲8画素を用いて行われる。その後、ブロック内の各画素についてのクラス分類処理が、ブロック内におけるラスタスキャン順に行われる。クラス分類処理は、そのブロックの最後の画素である16番目(16th)の画素C16を対象とした処理が終了するまで続けられる。
 16番目の画素のクラス分類処理が終了したところで、ようやく、そのブロックを対象として1番目(1st)の画素C1のフィルタ演算が行われる。その後、ブロック内におけるラスタスキャン順に、ブロック内の各画素についてのフィルタ演算処理が、そのブロックの最後の画素である16番目(16th)の画素C16が終了するまで続けられる。それ以降も、ブロック単位に、クラス分類処理およびフィルタ演算処理が実行される。なお、図9の例においては、ブロック内の11番目の画素C11についてのフィルタ演算処理が示されている。
 これに対して、図10の画素単位処理においては、まず、ALFクラス分類処理部102は、1番目(1st)の画素C1のクラス分類処理を周囲8画素を用いて行う。画素C1のクラス分類処理が終わると、ALFフィルタ演算部103は、クラス分類処理の結果である画素C1のクラス値を用いて、1番目(1st)の画素C1のフィルタ演算処理を行う。次に、ALFクラス分類処理部102は、画素C1の、画面内におけるラスタスキャン順に次である2番目(2nd)の画素C2のクラス分類処理を周囲8画素を用いて行う。ALFフィルタ演算部103は、クラス分類処理の結果である画素C2のクラス値を用いて、2番目(2nd)の画素C2のフィルタ演算処理を行う。それ以降も、画素単位に処理が実行される。
 このように、クラス分類処理の単位を画素とすることで、ブロック単位の処理における、1番目乃至16番目の処理後に、再度、1番目乃至16番目の処理を行うような反復(iterative)処理が行われることを抑制することができる。これにより、次の図11を参照して説明するように、余計なメモリ(バッファ)や帯域増加を防ぐことが可能である。
[画素単位の適応ループフィルタ処理による効果]
 図11の例においては、左側に、比較のための非特許文献1の提案における手法、右側に、適応ループフィルタ42による手法が示されている。丸は、画素を表し、黒丸は、クラス分類処理においてバリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行う4×4画素ブロックを表しており、点線は、バリアンスの計算の際に参照される画素の範囲を表している。
 非特許文献1の提案では、図5を参照して上述したように4×4画素ブロック内の4画素が、クラス分類のためのバリアンスの計算対象としてサブサンプリングされ、そのサブサンプリングされた4画素についてのみバリアンスが計算されてクラス分類が行われる。
 サブサンプリングされる4画素は、図11の左側に示されるように、ブロック内における、上から1行目における左から1列目および3列目の画素と、上から3行目における左から1列目および3列目の画素である。
 バリアンスの計算には、周辺8画素が必要となるので、上述した4画素のバリアンス計算の際に参照される画素の範囲は、点線に示される5×5画素の範囲となる。それらの画素のうち、画素P1および画素P2のバリアンスの計算に必要な画素は、すでに適応オフセットフィルタが終わっている。しかしながら、画素P3および画素P4のバリアンスの計算に必要な画素の一部(LCU境界から5ライン目の画素)は、まだ適応オフセットフィルタが終わってないので、バリアンスの計算に用いることができない。したがって、適応ループフィルタは、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理で待機することになる。
 すなわち、従来のブロック単位のクラス分類の場合、LCU境界において処理に待ちが生じる際に、フィルタ係数が未決定となるのは、LCU境界から1ライン目乃至8ライン目の画素となってしまう。
 このため、LCU境界において処理に待ちが生じる際に、従来の適応ループフィルタのラインメモリには、適応オフセットフィルタ済みの6ライン目乃至10ライン目の画素を保持する必要がある。
 これに対して、適応ループフィルタ42においては、図11の右側に示されるように、画素単位でクラス分類処理が行われる。この場合、LCU境界から7ライン目までの画素については、バリアンスの計算に必要な参照画素の一部がLCU境界から5ライン目以下にかからないので、クラス分類が可能となる。すなわち、適応ループフィルタ42の画素単位のクラス分類の場合、LCU境界において、フィルタ係数が未決定となるのは、LCU境界から1ライン目乃至6ライン目の画素となる。
 また、フィルタ演算には処理対象の画素を中心とした5タップ(画素)が必要となるが、LCU境界から8ライン目の画素については、フィルタ演算に必要な参照画素の一部がLCU境界から5ライン目以下にかからないので、フィルタ演算も可能となる。
 これにより、LCU境界において処理に待ちが生じる際に、適応ループフィルタ42のラインメモリには、適応オフセットフィルタ済みの6ライン目乃至9ライン目の画素を保持すればよくなり、従来の場合と比して、1ライン分少なくすることができる。
 以上のように、画素単位でクラス分類を行うことにより、LCU境界において(処理に待ちが生じる際に)、デブロッキングフィルタや適応オフセットフィルタの進捗の影響により、ラインメモリが増えてしまうことを防ぐことができる。
 また、画素単位でクラス分類を行うことにより、次の図11を参照して説明するように、1つの画素に対するクラス分類処理とフィルタ演算の参照範囲を揃えることが可能になる。
[画素単位の適応ループフィルタ処理による効果]
 図12を参照して、画素単位の適応ループフィルタ処理によるさらなる効果について説明する。
 図12の例においては、左側に、比較のための従来のブロック単位処理における参照画素の読み出し方法が示されており、右側に、本技術の画素単位処理における参照画素の読み出し方法が示されている。
 従来においては、ブロック単位処理のため、1番目(1st)の画素C1のクラス分類処理においては、画素C1の周辺8画素(3×3画素の範囲)を参照画素として、ラインメモリから読み出す必要があった。また、1番目(1st)の画素C1のフィルタ演算処理においては、画素C1を中心として、垂直方向に5画素、水平方向に画素の範囲で形成されるスノーフレーク形状の画素を参照画素として、ラインメモリから読み出す必要があった。
 すなわち、従来においては、1番目(1st)の画素C1のフィルタ演算処理が、ブロックの全ての画素についてのクラス分類処理が終わった後で行われるので、クラス分類処理とフィルタ演算処理との2回、ラインメモリからの画素の読み出しが必要であった。
 これに対して、本技術の画素単位処理においては、画素単位処理のため、1番目(1st)の画素C1のクラス分類処理の後にすぐに1番目(1st)の画素C1のフィルタ演算処理を行うことができる。
 したがって、1番目(1st)の画素C1のクラス分類処理の参照範囲を、1番目(1st)の画素C1の周囲の垂直方向に5画素、水平方向に5画素の、実線で示される範囲に揃えれば、クラス分類処理において読み出した画素が、フィルタ演算にも使用可能である。
 これにより、ラインメモリからの読み出しが一度で済み、かつ、クラス分類処理の参照画素範囲(タップサイズ)を、フィルタ演算処理で参照する画素範囲まで広げることが可能になる。この結果、クラス分類処理の性能を向上させることが可能となる。
 なお、上記説明においては、全ての画素について、画素単位でクラス分類を行う例を説明してきたが、画素単位の場合にも、クラス分類を行う算出点(画素)を減らすことが可能である。
 図13は、所定の範囲におけるクラス分類を行う算出点の位置(画素位置)を示すパターンの例を示している。図13に示される各パターンにおいて、四角は、所定の範囲を示しており、下と左に矢印が示されている所定の画素の位置が、クラス分類処理を行う算出点として設定されている。
 パターン121は、1画素の範囲において、1画素の位置が算出点として設定されているパターンである。
 パターン122は、2×2画素の範囲において、その範囲における左上の画素の位置が算出点として設定されているパターンである。パターン122においては、左上の画素については、クラス分類処理が行われるが、それ以外の3つの画素については、クラス分類処理が行われず、左上の画素について決定されたクラス値が各画素のクラス値とされる。
 パターン122における左上の画素は、2×2画素の範囲において先に処理される画素であるので、それにより求められたクラス値を、他の3つの画素のクラス値として用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
 パターン123は、4×4画素の範囲において、その範囲における左上の画素の位置が算出点として設定されているパターンである。パターン123においては、左上の画素については、クラス分類処理が行われるが、それ以外の15の画素については、クラス分類処理が行われず、左上の画素について決定されたクラス値が各画素のクラス値とされる。
 パターン123における左上の画素は、4×4画素の範囲において先に処理される画素であるので、それにより求められたクラス値を、他の15の画素のクラス値として用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
 ここで、図13において上に示されているパターン121乃至123は、いずれも、画素単位の処理についてのパターンであるが、四角で示される所定の範囲がブロックを示すものとして、ブロック単位で行われても、基本的に同じ処理を行うことができる。これは、パターン121乃至123における算出点が1点のため、ブロック単位に行われる場合であっても、ブロック(所定の範囲)内における複数の算出点のバリアンスを加算する必要がないためである。
 したがって、パターン121の画素単位の処理は、1×1画素のブロックにおいて、1つの算出点が設定されているブロック単位の処理と基本的に同じ処理であるといえる。
 パターン122の画素単位の処理は、2×2画素のブロックにおいて、1つの算出点が設定されているブロック単位の処理と基本的に同じ処理であるといえる。
 パターン123の画素単位の処理は、4×4画素のブロックにおいて、1つの算出点が設定されているブロック単位の処理と基本的に同じ処理であるといえる。
 一方、パターン124は、4×4画素の範囲において、その範囲における上から1行目の4つの画素の位置が算出点として設定されているパターンである。パターン124においては、上から1行目の4つの画素については、クラス分類処理が行われるが、それ以外の12の画素については、クラス分類処理が行われない。
 この場合、左から1列目の上から2乃至4行目に位置する3つの画素については、左から1列目の上から1行目の画素のクラス値が用いられる。左から2列目の上から2乃至4行目に位置する3つの画素については、左から2列目の上から1行目の画素のクラス値が用いられる。左から3列目の上から2乃至4行目に位置する3つの画素については、左から3列目の上から1行目の画素のクラス値が用いられる。左から4列目の上から2乃至4行目に位置する3つの画素については、左から4列目の上から1行目の画素のクラス値が用いられる。
 パターン124における上から1行目の4つの画素は、4×4画素の範囲において先に処理される画素であるので、それにより求められたクラス値を、他の画素のクラス値として用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
 パターン125は、4×4画素の範囲において、その範囲における左から1列目の4つの画素の位置が算出点として設定されているパターンである。パターン125においては、左から1列目の4つの画素については、クラス分類処理が行われるが、それ以外の12の画素については、クラス分類処理が行われない。
 この場合、左から2乃至4列目の上から1行目に位置する3つの画素については、左から1列目の上から1行目の画素のクラス値が用いられる。左から2乃至4列目の上から2行目に位置する3つの画素については、左から1列目の上から2行目の画素のクラス値が用いられる。左から2乃至4列目の上から3行目に位置する3つの画素については、左から1列目の上から3行目の画素のクラス値が用いられる。左から2乃至4列目の上から4行目に位置する3つの画素については、左から1列目の上から4行目の画素のクラス値が用いられる。
 パターン125における左から1列目の上から1行目の画素は、左から2乃至4列目の上から1行目に位置する3つの画素よりも先に処理される画素である。パターン125における左から1列目の上から2行目の画素は、左から2乃至4列目の上から2行目に位置する3つの画素よりも先に処理される画素である。パターン125における左から1列目の上から3行目の画素は、左から2乃至4列目の上から3行目に位置する3つの画素よりも先に処理される画素である。パターン125における左から1列目の上から4行目の画素は、左から2乃至4列目の上から4行目に位置する3つの画素よりも先に処理される画素である。
 したがって、左から1列目において先に求められるクラス値を、同じ行に位置する左から2乃至4列目の他の画素のクラス値に用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
 パターン126は、4×4画素の範囲において、その範囲における左から1列目の上から1および3行目の画素の位置、左から3行目の上から1および3行目の画素の位置が算出点として設定されているパターンである。パターン126においては、それらの算出点の画素については、クラス分類処理が行われるが、算出点以外の12の画素については、クラス分類処理が行われない。
 この場合、左から1列目の上から2行目の画素と、左から2列目の上から1および2行目の画素とについては、左から1列目の上から1行目の画素のクラス値が用いられる。左から3列目の上から2行目の画素と、左から4列目の上から1および2行目の画素とについては、左から3列目の上から1行目の画素のクラス値が用いられる。左から1列目の上から4行目の画素と、左から2列目の上から3および4行目の画素とについては、左から1列目の上から3行目の画素のクラス値が用いられる。左から3列目の上から4行目の画素と、左から4列目の上から3および4行目の画素とについては、左から3列目の上から3行目の画素のクラス値が用いられる。
 すなわち、パターン126は、上述した2×2画素の範囲のパターンであるパターン122が4つ構成されるパターンであるともいえる。
 パターン126における左から1列目の上から1行目の画素は、1列目の上から2行目の画素と、左から2列目の上から1および2行目の画素よりも先に処理される画素である。パターン126における左から3列目の上から1行目の画素は、左から3列目の上から2行目の画素と、左から4列目の上から1および2行目の画素よりも先に処理される画素である。パターン126における左から1列目の上から3行目の画素は、左から1列目の上から4行目の画素と、左から2列目の上から3および4行目の画素よりも先に処理される画素である。パターン126における左から3列目の上から3行目の画素は、左から3列目の上から4行目の画素と、左から4列目の上から3および4行目の画素よりも先に処理される画素である。
 したがって、先に処理される画素について求められたクラス値を、後で処理される他の画素のクラス値に用いたとしても、処理の待ちを生じることがなく、スムーズに処理することができる。
 以上のように、画素単位の処理においても、クラス分類処理を行う算出点を減らして、演算回数を減らすことが可能である。
 次に、これらのパターンを用いて行われるクラス分類処理を行う適応ループフィルタについて詳しく説明していく。
<4.第2の実施の形態>
[画像符号化装置の適応ループフィルタの構成例]
 図14は、本開示を適用した適応ループフィルタと、可逆符号化部の構成例とを示すブロック図である。なお、図14においては、画像符号化装置11の適応ループフィルタ42aおよび可逆符号化部26の構成例が示されている。
 図14の例においては、適応ループフィルタ42aは、ラインメモリ101、制御部151、ALFクラス分類処理部152、ALFフィルタ演算部153、クラス値格納バッファ154、およびコスト関数値算出部155を含むように構成されている。
 図14の適応ループフィルタ42aは、ラインメモリ101を備える点が、図7の適応ループフィルタ42と共通している。図14の適応ループフィルタ42aは、制御部104およびALFクラス分類処理部102が、制御部151およびALFクラス分類処理部152にそれぞれ入れ替わった点が、図7の適応ループフィルタ42と異なっている。また、図14の適応ループフィルタ42aは、ALFフィルタ演算部103が、ALFフィルタ演算部153に入れ替わった点が、図7の適応ループフィルタ42と異なっている。さらに、図14の適応ループフィルタ42aは、クラス値格納バッファ154およびコスト関数値算出部155が追加された点が、図7の適応ループフィルタ42と異なっている。
 すなわち、制御部151は、図7の制御部104と同様に、入力画素の選択や、処理タイミングなどを制御する制御信号を、ラインメモリ101、ALFクラス分類処理部152、およびALFフィルタ演算部153にそれぞれ供給する。
 また、制御部151は、図7の制御部104と異なり、クラス分類可否判定部161およびパターン判定部162を含んで構成されている。
 クラス分類可否判定部161は、例えば、図12に示したパターン124乃至126を記憶している。クラス分類可否判定部161は、記憶しているパターンのうち、処理対象のパターンにおいて、処理対象の画素がクラス分類を行う算出点(すなわち、算出点として設定されている所定の画素位置の画素)であるか否かを判定する。クラス分類可否判定部161は、算出点であるか否かの判定結果に応じて、ALFクラス分類処理部152とクラス値格納バッファ154を制御する。
 すなわち、処理対象の画素がクラス分類を行う算出点であると判定した場合、クラス分類可否判定部161は、ALFクラス分類処理部152にその処理対象の画素を対象としてクラス分類を行わせる。また、クラス分類可否判定部161は、ALFクラス分類処理部152によるクラス分類処理によるクラス値を、処理対象の画素についてのクラス値格納バッファ154に記憶させる。
 また、処理対象の画素がクラス分類を行う算出点ではないと判定した場合、クラス分類可否判定部161は、ALFクラス分類処理部152にその処理対象の画素を対象としたクラス分類処理を禁止する。また、クラス分類可否判定部161は、パターンが示す算出点を対象として求められたクラス値を、処理対象の画素についてのクラス値格納バッファ154に記憶させる。
 パターン判定部162は、コスト関数値算出部155が算出した各パターンに対応するコスト関数値を比較し、最小のコスト関数値が示す最適なパターンがどれであるかを判定する。パターン判定部162は、最適なパターンの判定結果を、ALFフィルタ演算部153に供給する。また、パターン判定部162は、最適なパターンを示す付加ビットを生成し、生成した付加ビットを可逆符号化部26の付加ビット設定部171に供給する。すなわち、付加ビットは、最適なパターン、すなわち、符号化側で用いられるパターンを識別するための識別データである。
 ALFクラス分類処理部152は、図7のALFクラス分類処理部102と同様に、前段から入力される、またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、画素単位でクラス分類処理を行う。
 その際、ALFクラス分類処理部152は、図7のALFクラス分類処理部102と異なり、クラス分類可否判定部161の制御のもと、算出点である処理対象の画素のみを対象として、画素単位のクラス分類処理を行う。ALFクラス分類処理部152は、クラス分類処理の結果である処理対象の画素(算出点)のクラス値を、ALFフィルタ演算部103に供給するとともに、クラス値格納バッファ154に格納させる。
 ALFフィルタ演算部153は、図7のALFフィルタ演算部103と同様に、前段から入力される、またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、フィルタ演算を行う。
 その際、ALFフィルタ演算部153は、図7のALFフィルタ演算部103と異なり、ALFクラス分類処理部152からのクラス値またはクラス値格納バッファ154に格納されているクラス値に応じたフィルタ係数を用いてフィルタ演算を行う。
 ALFフィルタ演算部153は、フィルタ演算後の出力画素を、コスト関数値算出部155に出力する。また、ALFフィルタ演算部153は、パターン判定部162により最適なパターンであるとされたパターンを用いてのフィルタ演算後の出力画素を後段に出力する。
 クラス値格納バッファ154は、クラス分類可否判定部161の制御のもと、ALFクラス分類処理部152により求められたクラス値、または、格納されている算出点のクラス値を、処理対象の画素のクラス値として格納する。
 コスト関数値算出部155は、ALFフィルタ演算部153からの各パターンのフィルタ演算後の出力画素を用いて、パターン毎にコスト関数値を算出する。コスト関数値算出部155は、パターン毎のコスト関数値を、パターン判定部162に供給する。
 図14の例において、可逆符号化部26は、付加ビット設定部171を含むように構成される。付加ビット設定部171は、パターン判定部162により生成された付加ビットを、符号化データのヘッダの一部に設定する。
[適応ループフィルタの処理例]
 次に、図15のフローチャートを参照して、画像符号化装置11の適応ループフィルタ42aの適応ループフィルタ処理を説明する。なお、図15の処理は、上述した図2のステップS24の適応ループフィルタ処理の例である。
 ステップS151において、クラス分類可否判定部161は、例えば、図12に示したパターン124乃至126のうち、1つのパターンを選択する。
 ステップS152において、適応ループフィルタ42aは、選択したパターンについて、画素単位の適応ループフィルタ処理を行う。この画素単位の適応ループフィルタ処理については、図16を参照して後述する。ステップS152の処理により、選択したパターンについて、一画面分を対象として、画素単位でクラス分類処理が行われ、フィルタ演算処理が行われる。フィルタ演算後の画素値は、コスト関数値算出部155に供給される。
 クラス分類可否判定部161は、ステップS153において、すべてのパターンの処理が終了したか否かを判定し、すべてのパターンがまだ終了していないと判定した場合、ステップS151に戻り、それ以降の処理を繰り返す。
 ステップS153において、すべてのパターンの処理が終了したと判定された場合、処理は、ステップS154に進む。ステップS154において、コスト関数値算出部155は、ALFフィルタ演算部153からの各パターンのフィルタ演算後の出力画素を用いて、パターン毎にコスト関数値を算出する。コスト関数値算出部155は、パターン毎のコスト関数値を、パターン判定部162に供給する。
 ステップS155において、パターン判定部162は、コスト関数値算出部155が算出した各パターンに対応するコスト関数値を比較することで、最適なパターンを判定し、最適なパターンを示す付加ビットを生成する。パターン判定部162は、生成した付加ビットを可逆符号化部26の付加ビット設定部171に供給する。
 これに対応して、付加ビット設定部171は、上述した図2のステップS26における可逆符号化部26による符号化処理の際に、パターン判定部162により生成された付加ビットを、符号化データのヘッダの一部に設定する。なお、付加ビットは、符号化側で用いられるパターンを識別するための識別データとして、例えば、フレーム毎、またはスライス毎に送信される。
 また、パターン判定部162による最適なパターンの判定結果は、ALFフィルタ演算部153に供給される。
 ステップS156において、ALFフィルタ演算部153は、パターン判定部162により最適なパターンであるとされたパターンを用いてのフィルタ演算後の画素を後段に出力する。
 以上のように、画像符号化装置11側においては、複数のパターンの場合の画素単位の適応ループフィルタ処理が行われて、フィルタ処理後のコスト関数値が比較され、最適なパターンによるフィルタ演算後の画素が出力される。これとともに、最適なパターンを示す付加ビットが符号化データのヘッダに設定されて、画像復号装置51側に送信される。
 これにより、最適なパターンでの画素単位の適応ループフィルタを行うことができ、符号化効率を向上させることができる。
[画素単位の適応ループフィルタの処理例]
 次に、図16のフローチャートを参照して、図15のステップS152における画素単位の適応ループフィルタ処理について説明する。
 前段からの適応オフセットフィルタ済みの画素は、ラインメモリ101、ALFクラス分類処理部152、およびALFフィルタ演算部153に入力される。
 ステップS171において、クラス分類可否判定部161は、適応オフセットフィルタ済みの画素を、処理対象の画素として選択する。
 ステップS171において、クラス分類可否判定部161は、図15のステップS151で選択したパターンにおいて、選択した処理対象の画素がクラス分類処理を行う画素であるか否かを判定する。
 選択されているパターンにおいて、処理対象の画素が算出点として設定されている場合、ステップS172において、クラス分類処理を行う画素であると判定され、処理は、ステップS173に進む。ステップS173において、ALFクラス分類処理部152は、クラス分類可否判定部161の制御のもと、処理対象の画素を対象として、クラス分類処理を行う。
 すなわち、ALFクラス分類処理部152は、処理対象の画素の参照画素(例えば、処理対象画素を中心とした周囲8画素)を、前段からまたはラインメモリ101から取得する。なお、ALFクラス分類処理部152においても、制御部151からの制御信号に応じて、前段またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素が用いられる。
 ALFクラス分類処理部152は、処理対象の画素のバリアンス(分散)を、上述した式(1)のように計算する。ALFクラス分類処理部152は、計算したバリアンスに応じて、処理対象の画素のクラス値を求め、求めたクラス値を、ALFフィルタ演算部153およびクラス値格納バッファ154に供給する。
 クラス値格納バッファ154は、ALFクラス分類処理部152からのクラス値を、処理対象の画素のクラス値として格納する。
 一方、選択されているパターンにおいて、処理対象の画素が算出点として設定されていない場合、ステップS172において、クラス分類処理を行わない画素であると判定され、処理は、ステップS174に進む。
 ステップS174において、クラス分類可否判定部161は、クラス値格納バッファ154に、算出点である画素のクラス値を参照させる。クラス値格納バッファ154は、参照した算出点のクラス値を、処理対象の画素のクラス値として格納する。
 ステップS175において、ALFフィルタ演算部153は、適応オフセットフィルタ済みの画素を対象として、ALFクラス分類処理部152からのクラス値またはクラス値格納バッファ154から読み出したクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
 ALFフィルタ演算部153においても、制御部201からの制御信号に応じて、前段またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素が用いられる。
 なお、ALFフィルタ演算部153は、制御部201からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。ALFフィルタ演算部153は、フィルタ演算後の出力画素を、コスト関数値算出部155へ供給する。
 クラス分類可否判定部161は、ステップS176において、処理対象の画素が、ブロック内の最後の画素であるか否かを判定する。ステップS176において、画面内の最後の画素であると判定された場合、処理は、ステップS177に進む。
 クラス分類可否判定部161は、ステップS177において、処理対象の画素が、画面内の最後の画素であるか否かを判定する。ステップS177において、画面内の最後の画素であると判定された場合、図16の適応ループフィルタ処理は終了する。
 ステップS176において、ブロック内の最後の画素ではないと判定された場合、処理は、ステップS171に戻り、それ以降の処理が繰り返される。また、ステップS177において、画面内の最後の画素であると判定された場合、ラスタスキャン順に次のブロックが選択されて、処理は、ステップS171に戻り、それ以降の処理が繰り返される。
 なお、図16の例においても、点線で示されているステップS176の処理は、ブロック単位での処理に対応させた場合の処理である。したがって、この場合、ラスタスキャン順のブロック毎に画素単位でのクラス分類処理が行われ、ブロック毎に画素単位でのフィルタ演算が行われる。ブロック単位での処理に対応させる必要がない場合、ステップS176の処理は省略され、適応ループフィルタ処理は、例えば、1ライン終了したら、次のラインの画素を処理するというように、ラスタスキャン順の画素毎に画素単位で行われる。
 以上のように、所定の範囲において1以上いくつかの算出点(所定の画素位置)を設定しておき、その算出点の画素だけクラス分類を行うようにしたので、演算回数を減らすことができる。
[画像復号装置の適応ループフィルタの構成例]
 図17は、本開示を適用した適応ループフィルタの構成例と、可逆復号部の構成例とを示すブロック図である。なお、図17においては、図14の画像符号化装置11に対応する、画像復号装置51の適応ループフィルタ42bおよび可逆復号部62の構成例が示されている。
 図17の例においては、適応ループフィルタ42bは、ラインメモリ101、ALFクラス分類処理部152、ALFフィルタ演算部153、クラス値格納バッファ154、および制御部201を含むように構成されている。
 図17の適応ループフィルタ42bは、ラインメモリ101、ALFクラス分類処理部152、ALFフィルタ演算部153、およびクラス値格納バッファ154を備える点が、図14の適応ループフィルタ42aと共通している。図17の適応ループフィルタ42bは、制御部151が、制御部201に入れ替わった点と、コスト関数値算出部155が除かれた点が、図14の適応ループフィルタ42аと異なっている。
 また、制御部201は、クラス分類可否判定部161を備えている点が、図14の制御部151と共通しているが、パターン判定部162が除かれている点が異なっている。
 クラス分類可否判定部161は、例えば、図13に示したパターン124乃至126を記憶している。クラス分類可否判定部161は、可逆復号部62から供給される付加ビットを受け、記憶しているパターンのうち、付加ビットにより示されるパターンにおいて、処理対象の画素がクラス分類を行う算出点であるか否かを判定する。クラス分類可否判定部161は、算出点であるか否かの判定結果に応じて、ALFクラス分類処理部152とクラス値格納バッファ154を制御する。
 ALFクラス分類処理部152は、図14のALFクラス分類処理部152と同様に、クラス分類可否判定部161の制御のもと、算出点である処理対象の画素のみを対象として、画素単位のクラス分類処理を行う。ALFクラス分類処理部152は、クラス分類処理の結果である処理対象の画素(算出点)のクラス値を、ALFフィルタ演算部153に供給するとともに、クラス値格納バッファ154に格納させる。
 ALFフィルタ演算部153は、図14のALFフィルタ演算部153と同様に、前段から入力される、またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素を処理対象の画素として、フィルタ演算を行う。ALFフィルタ演算部153は、フィルタ演算後の出力画素を、後段に出力する。
 図17の例において、可逆復号部62は、付加ビット取得部211を含むように構成される。付加ビット取得部211は、復号された付加ビットを取得し、クラス分類可否判定部161供給する。
 すなわち、図14の適応ループフィルタ42aは、複数のパターンの適応ループフィルタ処理を行って、コスト関数値を求め、それを比較することにより最適なパターンを選ぶものであった。これに対して、図17の適応ループフィルタ42bは、最適なパターンを示す付加ビット(すなわち、パターンの識別データ)を画像符号化装置11から受け、それを用いて最適なパターンでの適応ループフィルタ処理を行うものである。
[適応ループフィルタの処理例]
 次に、図18のフローチャートを参照して、画像復号装置51の適応ループフィルタ42bの適応ループフィルタ処理を説明する。なお、図18の処理は、上述した図4のステップS60の適応ループフィルタ処理の例である。
 図4のステップS52において、可逆復号部62は、符号化データとともにパラメータの情報も復号する。このとき、付加ビット取得部211は、復号された付加ビットを取得し、クラス分類可否判定部161に供給してくる。
 クラス分類可否判定部161は、ステップS201において、付加ビットにより示されるパターンを選択する。
 ステップS202において、適応ループフィルタ42bは、選択した(付加ビットが示す)パターンについて、画素単位の適応ループフィルタ処理を行う。この画素単位の適応ループフィルタ処理については、図16を参照して上述した適応ループフィルタ処理と基本的に同じ処理を行うのでその説明を省略する。ステップS202の処理により、選択したパターンについて、一画面分を対象として、画素単位でクラス分類処理が行われ、フィルタ演算処理が行われる。
 ステップS203において、ALFフィルタ演算部153は、フィルタ演算後の画素値を後段に出力する。
 以上のように、画像復号装置51側においては、画像符号化装置11からの付加ビットが受信されて、付加ビットにより示されるパターンでの画素単位の適応ループフィルタ処理が行われて、フィルタ演算後の画素が出力される。
 これにより、最適なパターンでの画素単位の適応ループフィルタを行うことができ、符号化効率を向上させることができる。
 なお、上記説明においては、適応ループフィルタにおいて、付加ビットを用いてクラス分類を行う画素位置(のパターン)を可変にする例を説明したが、画像情報を用いても、クラス分類を行う画素位置を可変にすることが可能である。次に、画像情報を用いてクラス分類を行う画素位置を可変にする例を説明する。
<5.第3の実施の形態>
[適応ループフィルタの構成例]
 図19は、本開示を適用した適応ループフィルタの構成例を示すブロック図である。なお、図19の例における適応ループフィルタ42の構成は、画像符号化装置11および画像復号装置51において共通とされる。
 図19の例においては、適応ループフィルタ42は、ラインメモリ101、ALFクラス分類処理部152、ALFフィルタ演算部153、クラス値格納バッファ154、制御部201、および画像情報取得部251を含むように構成されている。
 図19の適応ループフィルタ42は、ラインメモリ101、ALFクラス分類処理部152、ALFフィルタ演算部153、クラス値格納バッファ154、および制御部201を備える点が、図17の適応ループフィルタ42bと共通している。図19の適応ループフィルタ42は、画像情報取得部251が追加された点が、図17の適応ループフィルタ42bと異なっている。
 すなわち、図19の例においては、前段からの入力画素は、ラインメモリ101、ALFクラス分類処理部152、およびALFフィルタ演算部153の他に、画像情報取得部251にも供給される。
 画像情報取得部251は、入力される画素からなる画像から、例えば、エッジ・アクティビティ値などの画像情報を取得する。なお、ここで取得する画像情報は、エッジ・アクティビティ値には限定されず、例えば他に、隣接画素との差分の分布や差分値など、処理対象の画素が周囲の画素と似ているかどうかの判定ができる評価値であればよい。
 画像情報取得部251は、取得した画像情報を、クラス分類可否判定部161に供給する。クラス分類可否判定部161は、画像情報取得部251からの画像情報を記憶し、処理対象の画素の画素情報と、同じ画素情報がその周囲にあるか否かを判定する。クラス分類可否判定部161は、周囲に同じ画素情報があるか否かの判定結果に応じて、ALFクラス分類処理部152とクラス値格納バッファ154を制御する。
 周囲に同じ画素情報がある画素の位置は、画像の平坦部であることが多い。したがって、処理対象の画素の位置が、周囲に同じ画素情報がある画素位置の場合、クラス分類可否判定部161は、その画素位置の画素に対しては、クラス分類処理を行わせず、同じ画素情報を有する画素位置のクラス値を参照させる。そして、クラス分類可否判定部161は、参照したクラス値を、処理対象の画素についてのクラス値格納バッファ154に記憶させる。
 一方、周囲に同じ画素情報がない画素の位置は、画像のエッジ部であったり、アクティビティ値が高い部分であることが多い。したがって、処理対象の画素の位置が、周囲に同じ画素情報がない画素位置の場合、クラス分類可否判定部161は、その画素位置を算出点として、クラス分類処理を行わせる。そして、クラス分類可否判定部161は、この画素位置(算出点)を対象として求められたクラス値を、処理対象の画素についてのクラス値格納バッファ154に記憶させる。
[適応ループフィルタの処理例]
 次に、図20のフローチャートを参照して、図19の適応ループフィルタ42の適応ループフィルタ処理を説明する。なお、図20の処理は、上述した図2のステップS24の適応ループフィルタ処理の例であって、図4のステップS60の適応ループフィルタ処理の例である。
 前段からの適応オフセットフィルタ済みの画素は、ラインメモリ101、ALFクラス分類処理部152、ALFフィルタ演算部153、および画像情報取得部251に入力される。
 ステップS251において、画像情報取得部251は、入力される画素からなる画像から、例えば、エッジ・アクティビティ値などの画像情報を取得し、取得した画像情報を、クラス分類可否判定部161に供給する。
 ステップS252において、クラス分類可否判定部161は、適応オフセットフィルタ済みの画素を、処理対象の画素として選択する。
 ステップS253において、クラス分類可否判定部161は、画像情報取得部251からの画像情報を参照して、選択した処理対象の画素の周囲に、処理対象の画素の画像情報と同じ画像情報があるか否かを判定する。すなわち、処理対象の画素位置が、処理対象の画素と同じ画像情報が周囲にある(平坦部である)画素位置であるか否かが判定される。
 ステップS253において、周囲に同じ画素情報がない、すなわち、処理対象の画素位置が、処理対象の画素と同じ画像情報が周囲にない(エッジ部、アクティビティ値が高い部分である)画素位置であると判定された場合、処理は、ステップS254に進む。ステップS254において、ALFクラス分類処理部152は、クラス分類可否判定部161の制御のもと、処理対象の画素を対象として、クラス分類処理を行う。
 すなわち、ALFクラス分類処理部152は、処理対象の画素の参照画素(例えば、処理対象画素を中心とした周囲8画素)を、前段からまたはラインメモリ101から取得する。なお、ALFクラス分類処理部152においても、制御部201からの制御信号に応じて、前段またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素が用いられる。
 ALFクラス分類処理部152は、処理対象の画素のバリアンス(分散)を、上述した式(1)のように計算する。ALFクラス分類処理部152は、計算したバリアンスに応じて、処理対象の画素のクラス値を求め、求めたクラス値を、ALFフィルタ演算部153およびクラス値格納バッファ154に供給する。
 クラス値格納バッファ154は、ALFクラス分類処理部152からのクラス値を、処理対象の画素のクラス値として格納する。
 一方、ステップS253において、周囲に同じ画素情報がない、すなわち、処理対象の画素位置が、処理対象の画素と同じ画像情報が周囲にある(平坦部である)画素位置であると判定された場合、処理は、ステップS255に進む。
 ステップS255において、クラス分類可否判定部161は、クラス値格納バッファ154に、同じ画素情報を持つ画素(位置)のクラス値を参照させる。クラス値格納バッファ154は、同じ画素情報を持つ画素のクラス値を、処理対象の画素のクラス値として格納する。
 ステップS256において、ALFフィルタ演算部153は、適応オフセットフィルタ済みの画素を対象として、ALFクラス分類処理部152からのクラス値またはクラス値格納バッファ154から読み出したクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
 ALFフィルタ演算部153においても、制御部201からの制御信号に応じて、前段またはラインメモリ101に保持されている適応オフセットフィルタ済みの画素が用いられる。
 なお、ALFフィルタ演算部153は、制御部201からの制御信号に応じて、LCU境界において処理に待ちが生じる場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。
 クラス分類可否判定部161は、ステップS257において、処理対象の画素が、ブロック内の最後の画素であるか否かを判定する。ステップS257において、画面内の最後の画素であると判定された場合、処理は、ステップS258に進む。
 クラス分類可否判定部161は、ステップS258において、処理対象の画素が、画面内の最後の画素であるか否かを判定する。ステップS258において、画面内の最後の画素であると判定された場合、図20の適応ループフィルタ処理は終了する。
 ステップS257において、ブロック内の最後の画素ではないと判定された場合、処理は、ステップS252に戻り、それ以降の処理が繰り返される。また、ステップS258において、画面内の最後の画素であると判定された場合、ラスタスキャン順に次のブロックが選択されて、処理は、ステップS252に進み、それ以降の処理が繰り返される。
 なお、図20の例においても、点線で示されているステップS257の処理は、ブロック単位での処理に対応させた場合の処理である。したがって、この場合、ラスタスキャン順のブロック毎に画素単位でのクラス分類処理が行われ、ブロック毎に画素単位でのフィルタ演算が行われる。ブロック単位での処理に対応させる必要がない場合、ステップS257はスキップ(省略)され、適応ループフィルタ処理は、例えば、1ライン終了したら、次のラインの画素を処理するというように、ラスタスキャン順の画素毎に画素単位で行われる。
 以上のように、画像情報を取得しておき、取得した画像情報を用いて、所定の画素位置として、周囲に同じ画素情報がない画素位置のみクラス分類を行うようにしたので、演算回数を減らすことができる。
 以上、説明したように、適応ループフィルタにおいては、付加ビットや画像情報を用いて、これらのパターン(クラス分類を行う画素位置)を可変にすることが可能である。
 なお、上記説明においては、バリアンスを求めることによりクラス分類を行うようにしたが、バリアンスに限定されず、例えば、アクティビティ値、すなわち、隣接画素との差分値の和、差分値、差分の分布など、隣接画素との相関などを求める他の方法(評価値)を用いてもよい。
 以上においては、符号化方式としてHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、インループフィルタとして、少なくともデブロッキングフィルタと適応ループフィルタを含む、その他の符号化方式/復号方式を適用することができる。
 なお、本開示は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
 <5.第3の実施の形態>
[コンピュータ]
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
 図21は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
 コンピュータ500において、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
 バス504には、さらに、入出力インタフェース505が接続されている。入出力インタフェース505には、入力部506、出力部507、記憶部508、通信部509、及びドライブ510が接続されている。
 入力部506は、キーボード、マウス、マイクロホンなどよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記憶部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインタフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア511を駆動する。
 以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを、入出力インタフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ500(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インタフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
 また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
 また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
 <6.応用例>
[第1の応用例:テレビジョン受像機]
 図22は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
 チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
 デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
 デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
 映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
 表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
 音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
 外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
 制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
 ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
 バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
 このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、LCUの下部において必要なラインメモリの削減を図ることができることができる。
[第2の応用例:携帯電話機]
 図23は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
 アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
 携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
 音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
 また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
 記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
 また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
 また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
 このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、LCUの下部において必要なラインメモリの削減を図ることができる。
[第3の応用例:記録再生装置]
 図24は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
 記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
 チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送手段としての役割を有する。
 外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送手段としての役割を有する。
 エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
 HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラムおよびその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
 ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
 セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
 デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
 OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
 制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
 ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
 このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、LCUの下部において必要なラインメモリの削減を図ることができる。
[第4の応用例:撮像装置]
 図25は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
 撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
 光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
 光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
 信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
 画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
 OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
 外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送手段としての役割を有する。
 メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
 制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
 ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
 このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、LCUの下部において必要なラインメモリの削減を図ることができる。
 なお、本明細書においては、主に垂直境界についてのフィルタリング処理が水平境界についてのフィルタリング処理よりも先に行われる例を説明したが、水平境界についてのフィルタリング処理が先に行われる場合にも本開示に係る技術による上述した効果は同等に享受され得る。また、デブロックフィルタの処理単位のサイズ又はLCUのサイズは、本明細書で説明した例に限定されず、他のサイズであってもよい。
 また、本明細書においては、垂直境界についてのフィルタリング処理のフィルタタップは水平方向に沿って並ぶことから、垂直境界についてのフィルタリング処理のフィルタを「H(水平)フィルタ」と表現した。同様に、水平境界についてのフィルタリング処理のフィルタタップは垂直方向に沿って並ぶことから、水平境界についてのフィルタリング処理のフィルタを「V(垂直)フィルタ」と表現した。しかしながら、一般に、垂直境界についてのフィルタリング処理のフィルタをが「V(垂直)フィルタ」、水平境界についてのフィルタリング処理のフィルタが「H(水平)フィルタ」とそれぞれ呼ばれる場合もあることに留意されたい。
 なお、本明細書では、付加ビット(すなわち、パターンの識別データ)、予測モード、適応オフセットフィルタ、および、適応ループフィルタの各パラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、本技術は以下のような構成も取ることができる。
 (1) 符号化ストリームを復号処理して画像を生成する復号部と、
 前記復号部により生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理するクラス分類処理部と、
 前記クラス分類処理部により分類処理されたクラスに従って、前記復号部により生成された画像に、画素ベースでフィルタ処理を行うフィルタ処理部と
 を備える画像処理装置。
 (2) カレント画素に対してクラス分類処理を行った後に、カレント画素に対してフィルタ処理の演算を行うように、前記フィルタ処理部を制御する制御部を
 さらに備える前記(1)に記載の画像処理装置。
 (3) カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲とカレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲とを揃えるように、前記クラス分類処理部または前記フィルタ処理部を制御する制御部を
 さらに備える前記(1)に記載の画像処理装置。
 (4) 前記制御部は、カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲を、カレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲まで広げるように、前記クラス分類処理部を制御する
 前記(3)に記載の画像処理装置。
 (5) 前記クラス分類処理部は、前記復号部により生成された画像を対象として、カレント画素の位置が、所定の画素位置である場合、前記カレント画素のクラスを分類処理し、前記復号部により生成された画像を対象として、カレント画素の位置が、前記所定の画素位置ではない場合、前記カレント画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類処理する
 前記(1)乃至(4)のいずれかに記載の画像処理装置。
 (6) 前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンに応じて、クラス分類処理する
 前記(1)乃至(4)のいずれかに記載の画像処理装置。
 (7) 前記クラス分類処理部は、前記符号化ストリームから、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンを識別する識別データを取得し、取得した識別データを参照して、クラス分類処理する
 前記(6)に記載の画像処理装置。
 (8) 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
 さらに備え、
 前記クラス分類処理部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、画素ベースでクラス分類処理を行う
 前記(7)に記載の画像処理装置。
 (9)前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
 さらに備え、
 前記適応オフセットフィルタ部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
 前記(8)に記載の画像処理装置。
 (10) 画像処理装置が、
  符号化ストリームを復号処理して画像を生成し、
 生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理し、
 分類処理されたクラスに従って、生成された画像に、画素ベースでフィルタ処理を行う
 画像処理方法。
 (11) 画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理するクラス分類処理部と、
 前記クラス分類処理部により分類処理されたクラスに従って、ローカル復号処理された画像に、画素ベースでフィルタ処理を行うフィルタ処理部と、
 前記フィルタ処理部によりフィルタ処理が行われた画像を用いて、前記画像を符号化して、符号化ストリームを生成する符号化部と
 を備える画像処理装置。
 (12) カレント画素に対してクラス分類処理を行った後に、カレント画素に対してフィルタ処理の演算を行うように、前記フィルタ処理部を制御する制御部を
 さらに備える前記(11)に記載の画像処理装置。
 (13) カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲とカレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲とを揃えるように、前記クラス分類処理部または前記フィルタ処理部を制御する制御部を
 さらに備える前記(12)に記載の画像処理装置。
 (14) 前記制御部は、カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲を、カレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲まで広げるように、前記クラス分類処理部を制御する
 前記(13)に記載の画像処理装置。
 (15) 前記クラス分類処理部は、前記ローカル復号処理された画像を対象として、カレント画素の位置が、所定の画素位置である場合、前記カレント画素のクラスを分類し、前記ローカル復号処理された画像を対象として、カレント画素の位置が、前記所定の画素位置ではない場合、前記カレント画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
 前記(11)乃至(14)のいずれかに記載の画像処理装置。
 (16) 前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンに応じて、クラス分類処理する
 前記(11)乃至(14)のいずれかに記載の画像処理装置。
 (17) 前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンを参照してクラス分類処理し、前記パターンを識別する識別データを生成して、前記符号化部により生成された符号化ストリームに付加させる
 前記(16)に記載の画像処理装置。
 (18) 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
 さらに備え、
 前記クラス分類処理部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、画素ベースでクラス分類処理を行う
 前記(17)に記載の画像処理装置。
 (19) 前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
 さらに備え、
 前記適応オフセットフィルタ部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
 前記(18)に記載の画像処理装置。
 (20) 画像処理装置が、
 画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理し、分類処理されたクラスに従って、ローカル復号された画像に、画素ベースでフィルタ処理を行いフィルタ処理が行われた画像を用いて、前記画像を符号化して、符号化ストリームを生成する
 画像処理方法。
  11 画像符号化装置, 26 可逆符号化部, 31 デブロッキングフィルタ, 41 適応オフセットフィルタ, 42,42a,42b 適応ループフィルタ, 51 画像復号装置, 62 可逆復号部, 81 適応オフセットフィルタ, 101 ラインメモリ, 102 ALFクラス分類処理部, 103 ALFフィルタ演算部, 104 制御部, 151 制御部, 152 ALFクラス分類処理部, 153 ALFフィルタ演算部, 154 クラス値格納バッファ, 161 クラス分類可否判定部, 162 パターン判定部, 171 付加ビット設定部, 201 制御部, 211 付加ビット取得部, 251 画像情報取得部

Claims (20)

  1.  符号化ストリームを復号処理して画像を生成する復号部と、
     前記復号部により生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理するクラス分類処理部と、
     前記クラス分類処理部により分類処理されたクラスに従って、前記復号部により生成された画像に、画素ベースでフィルタ処理を行うフィルタ処理部と
     を備える画像処理装置。
  2.  カレント画素に対してクラス分類処理を行った後に、カレント画素に対してフィルタ処理の演算を行うように、前記フィルタ処理部を制御する制御部を
     さらに備える請求項1に記載の画像処理装置。
  3.  カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲とカレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲とを揃えるように、前記クラス分類処理部または前記フィルタ処理部を制御する制御部を
     さらに備える請求項1に記載の画像処理装置。
  4.  前記制御部は、カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲を、カレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲まで広げるように、前記クラス分類処理部を制御する
     請求項3に記載の画像処理装置。
  5.  前記クラス分類処理部は、前記復号部により生成された画像を対象として、カレント画素の位置が、所定の画素位置である場合、前記カレント画素のクラスを分類処理し、前記復号部により生成された画像を対象として、カレント画素の位置が、前記所定の画素位置ではない場合、前記カレント画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類処理する
     請求項1に記載の画像処理装置。
  6.  前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンに応じて、クラス分類処理する
     請求項1に記載の画像処理装置。
  7.  前記クラス分類処理部は、前記符号化ストリームから、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンを識別する識別データを取得し、取得した識別データを参照して、クラス分類処理する
     請求項6に記載の画像処理装置。
  8.  前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
     さらに備え、
     前記クラス分類処理部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、画素ベースでクラス分類処理を行う
     請求項7に記載の画像処理装置。
  9.  前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
     さらに備え、
     前記適応オフセットフィルタ部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
     請求項8に記載の画像処理装置。
  10.  画像処理装置が、
     符号化ストリームを復号処理して画像を生成し、
     生成された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理し、
     分類処理されたクラスに従って、生成された画像に、画素ベースでフィルタ処理を行う
     画像処理方法。
  11.  画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理するクラス分類処理部と、
     前記クラス分類処理部により分類処理されたクラスに従って、ローカル復号処理された画像に、画素ベースでフィルタ処理を行うフィルタ処理部と、
     前記フィルタ処理部によりフィルタ処理が行われた画像を用いて、前記画像を符号化して、符号化ストリームを生成する符号化部と
     を備える画像処理装置。
  12.  カレント画素に対してクラス分類処理を行った後に、カレント画素に対してフィルタ処理の演算を行うように、前記フィルタ処理部を制御する制御部を
     さらに備える請求項11に記載の画像処理装置。
  13.  カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲とカレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲とを揃えるように、前記クラス分類処理部または前記フィルタ処理部を制御する制御部を
     さらに備える請求項11に記載の画像処理装置。
  14.  前記制御部は、カレント画素に対するクラス分類処理の評価値を算出する際に参照する参照範囲を、カレント画素に対するフィルタ処理の演算を行う際に参照する参照範囲まで広げるように、前記クラス分類処理部を制御する
     請求項13に記載の画像処理装置。
  15.  前記クラス分類処理部は、前記ローカル復号処理された画像を対象として、カレント画素の位置が、所定の画素位置である場合、前記カレント画素のクラスを分類し、前記ローカル復号処理された画像を対象として、カレント画素の位置が、前記所定の画素位置ではない場合、前記カレント画素を、前記所定の画素位置に位置する画素について分類されたクラスに分類する
     請求項11に記載の画像処理装置。
  16.  前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンに応じて、クラス分類処理する
     請求項11に記載の画像処理装置。
  17.  前記クラス分類処理部は、クラス分類処理の評価値を算出する際に参照する画素の位置を示すパターンを参照してクラス分類処理し、前記パターンを識別する識別データを生成して、前記符号化部により生成された符号化ストリームに付加させる
     請求項16に記載の画像処理装置。
  18.  前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
     さらに備え、
     前記クラス分類処理部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、画素ベースでクラス分類処理を行う
     請求項17に記載の画像処理装置。
  19.  前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
     さらに備え、
     前記適応オフセットフィルタ部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
     請求項18に記載の画像処理装置。
  20.  画像処理装置が、
     画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、フィルタ処理を行う際のクラスを画素ベースでクラス分類処理し、分類処理されたクラスに従って、ローカル復号された画像に、画素ベースでフィルタ処理を行いフィルタ処理が行われた画像を用いて、前記画像を符号化して、符号化ストリームを生成する画像処理方法。
PCT/JP2012/074852 2011-10-07 2012-09-27 画像処理装置および方法 Ceased WO2013051452A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-223447 2011-10-07
JP2011223447A JP2013085113A (ja) 2011-10-07 2011-10-07 画像処理装置および方法

Publications (1)

Publication Number Publication Date
WO2013051452A1 true WO2013051452A1 (ja) 2013-04-11

Family

ID=48043613

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/074852 Ceased WO2013051452A1 (ja) 2011-10-07 2012-09-27 画像処理装置および方法

Country Status (2)

Country Link
JP (1) JP2013085113A (ja)
WO (1) WO2013051452A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109660797A (zh) * 2018-11-09 2019-04-19 北京达佳互联信息技术有限公司 自适应滤波方法、装置、电子设备及计算机可读介质
CN115174938A (zh) * 2016-05-10 2022-10-11 三星电子株式会社 用于对图像进行编码/解码的方法及其装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190124327A1 (en) * 2016-05-02 2019-04-25 Sony Corporation Image processing apparatus and image processing method
US11190808B2 (en) * 2017-01-12 2021-11-30 Sony Corporation Image processing apparatus and image processing method
JP2019114896A (ja) * 2017-12-22 2019-07-11 ソニー株式会社 画像処理装置及び画像処理方法
CN116523914B (zh) * 2023-07-03 2023-09-19 智慧眼科技股份有限公司 一种动脉瘤分类识别装置、方法、设备、存储介质

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
POLIN LAI (WANG L. LAI) ET AL.: "Loop filter with directional similarity mapping (DSM)", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/ SC29/WG11, JCTVC-D221-R3, 4TH MEETING, 20 January 2011 (2011-01-20) - 28 January 2011 (2011-01-28), DAEGU, KR, pages 1 - 9, XP030008261 *
WANG (POLIN) LAI ET AL.: "CE8 Subtest 1: Block-based filter adaptation with features on subset of pixels", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-F301_R4, 6TH MEETING, July 2011 (2011-07-01), TORINO, ITALY, pages 1 - 5, XP030009324 *
WANG (POLIN) LAI ET AL.: "CE8 Subtest 3: Loop filter with directional similarity mapping by Samsung", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC)OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-E108_R2, 5TH MEETING, 16 March 2011 (2011-03-16) - 23 March 2011 (2011-03-23), GENEVA, CH, pages 1 - 5, XP030048190 *
WANG (POLIN) LAI ET AL.: "Loop filtering with directional features", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-E288_R3, 5TH MEETING, March 2011 (2011-03-01), GENEVA, CH, XP030048382 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174938A (zh) * 2016-05-10 2022-10-11 三星电子株式会社 用于对图像进行编码/解码的方法及其装置
CN115174938B (zh) * 2016-05-10 2024-07-09 三星电子株式会社 用于对图像进行编码/解码的方法及其装置
US12126801B2 (en) 2016-05-10 2024-10-22 Samsung Electronics Co., Ltd. Method for encoding/decoding image and device therefor
CN109660797A (zh) * 2018-11-09 2019-04-19 北京达佳互联信息技术有限公司 自适应滤波方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
JP2013085113A (ja) 2013-05-09

Similar Documents

Publication Publication Date Title
JP6580648B2 (ja) 画像処理装置および記録媒体
JP5597968B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
TWI749530B (zh) 資訊處理設備及資訊處理方法
JP5942990B2 (ja) 画像処理装置および方法
KR20190008205A (ko) 화상 처리 장치 및 방법
JP6256340B2 (ja) 画像処理装置および方法、並びにプログラム
WO2014002896A1 (ja) 符号化装置および符号化方法、復号装置および復号方法
US20150288986A1 (en) Image processing apparatus and method
WO2011018965A1 (ja) 画像処理装置および方法
JP2011223337A (ja) 画像処理装置および方法
JP2011259361A (ja) 画像処理装置および方法
JP2014207536A (ja) 画像処理装置および方法
WO2013047325A1 (ja) 画像処理装置および方法
WO2014156708A1 (ja) 画像復号装置および方法
WO2013051452A1 (ja) 画像処理装置および方法
WO2010101063A1 (ja) 画像処理装置および方法
WO2012105406A1 (ja) 画像処理装置および方法
JP2013074491A (ja) 画像処理装置および方法
JP6048774B2 (ja) 画像処理装置および方法
JP2012175615A (ja) 画像処理装置及び画像処理方法
JP2013150124A (ja) 画像処理装置および方法
JP2012129925A (ja) 画像処理装置および方法、並びに、プログラム

Legal Events

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

Ref document number: 12839136

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: 12839136

Country of ref document: EP

Kind code of ref document: A1