WO2013047335A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- Publication number
- WO2013047335A1 WO2013047335A1 PCT/JP2012/074144 JP2012074144W WO2013047335A1 WO 2013047335 A1 WO2013047335 A1 WO 2013047335A1 JP 2012074144 W JP2012074144 W JP 2012074144W WO 2013047335 A1 WO2013047335 A1 WO 2013047335A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image
- unit
- block
- pixels
- pixel
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Definitions
- the present disclosure relates to an image processing apparatus and method, and more particularly to an image processing apparatus and method capable of reducing the line memory required for encoding or decoding.
- H. Joint Collaboration Team-Video Coding a joint standardization body of ITU-T and ISO / IEC, is called High Efficiency Video Coding (HEVC), aiming to improve coding efficiency further than H.264 / AVC. Standardization of coding schemes is in progress.
- an adaptive loop filter is adopted.
- classification is performed by calculating the variance (variance) of all the pixels in units of 4 ⁇ 4 pixels.
- Non-Patent Document 1 proposes that the variance be calculated only for the four subsampled pixels in 4 ⁇ 4 pixels, and the classification of the 4 ⁇ 4 pixel block be performed. According to this proposal, reduction of calculation in class classification is realized.
- the present disclosure has been made in view of such a situation, and aims to reduce the line memory required in the lower part of the LCU.
- the image processing apparatus includes a decoding unit that decodes an encoded stream to generate an image, and pixels constituting the block of the image generated by the decoding unit as the target of the block.
- a setting unit configured to set a pixel located in the upper part as a sample pixel used when calculating an evaluation value serving as a reference when performing class classification on a block basis, and based on the evaluation value of the sample pixel set by the setting unit
- a classification unit that classifies the blocks of the image generated by the decoding unit as a target on a block basis, and the classification unit generates the decoding unit according to the classes classified by the classification unit.
- a filter processing unit that filters the image on a block basis.
- the block is configured of 4 ⁇ 4 pixels, and the setting unit can set four pixels located at the top of the block as sample pixels.
- the setting unit sets, as sample pixels, pixels in the first column and the third column from the left in the first row from the top and pixels in the first column and the third column from the left in the third row from the top in the block. can do.
- the setting unit may set, as the sample pixels, the pixels in the first to fourth rows from the left in the first column from the top in the block.
- the image processing apparatus may further include evaluation value calculation means for calculating the evaluation value of the sample pixel set by the setting unit.
- the evaluation value is a variance (variance value).
- the image processing apparatus decodes an encoded stream to generate an image, and the pixels constituting the block of the generated image are targeted at the top of the block.
- the pixel located is set as a sample pixel used when calculating an evaluation value to be a reference when performing classification on a block basis, and a block of the generated image is calculated based on the set evaluation value of the sample pixel.
- the pixels formed are classified on a block basis, and the generated image is filtered on a block basis according to the classified class.
- the image processing apparatus classifies, on a block basis, a pixel located in the upper part of the block with respect to pixels constituting an image subjected to a local decoding process when encoding an image.
- a block of an image subjected to local decoding processing is configured based on a setting unit set as a sample pixel used when calculating an evaluation value as a reference when performing, and the evaluation value of the sample pixel set by the setting unit.
- a classification unit that classifies pixels on a block basis; a filter processing unit that filters an image that has been locally decoded according to classes classified by the classification unit; and the filter process And an encoding unit that encodes the image using the image filtered by the unit.
- the block is composed of 4 ⁇ 4 pixels, and the setting unit can set four pixels located at the top of the block as sample pixels.
- the setting unit sets, as sample pixels, pixels in the first column and the third column from the left in the first row from the top and pixels in the first column and the third column from the left in the third row from the top in the block. can do.
- the setting unit may set, as the sample pixels, the pixels in the first to fourth rows from the left in the first column from the top in the block.
- the image processing apparatus may further include evaluation value calculation means for calculating the evaluation value of the sample pixel set by the setting unit.
- the evaluation value is a variance (variance value).
- the pixels located in the upper part of the block are processed for the pixels constituting the block of the image subjected to the local decoding process.
- Set as a sample pixel to be used when calculating an evaluation value as a reference when performing classification on a block basis and configure a block of a locally decoded image based on the set evaluation value of the sample pixel
- the pixels are classified on a block basis, and the locally decoded image is filtered on a block basis according to the classified class, and the image is encoded using the filtered image.
- the image processing apparatus is block-based 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.
- Setting that limits the position of the sample pixel used when calculating the evaluation value that is the basis for performing classification and the reference range that is used when calculating the evaluation value that is the basis for performing classification on a block basis Block based on the pixels constituting the block of the image generated by the decoding unit based on the evaluation value calculated by the setting unit, the position of the sample pixel limited by the setting unit, and the reference range
- a filter processing unit that sense.
- the image processing apparatus further includes an adaptive offset filter processing unit that performs adaptive offset filter processing on the image decoded by the decoding unit, and the setting unit targets the pixels forming the block of the image on which the adaptive offset filter processing has been performed.
- the position of the sample pixel and the reference range can be limited.
- the setting unit may set, as the sample pixel, a pixel for which the adaptive offset filter process has been completed.
- the image processing apparatus may further include a deblocking filter processing unit that performs deblocking filter processing on the image decoded by the decoding unit, and the adaptive offset filter processing unit may perform the deblocking filter processing on the image on which the deblocking filter processing unit is performed. Adaptive offset filtering can be performed.
- the image processing apparatus decodes the encoded stream to generate an image, and class-wise classifies the pixels constituting the block of the generated image as a target. Limits the position of the sample pixel used when calculating the evaluation value that is the basis for performing evaluation and the reference range that is referred when calculating the evaluation value that is the basis for performing classification on a block basis. Based on the evaluation value calculated by the position of the sample pixel and the reference range, the pixels forming the block of the generated image are classified on a block basis and classified according to the classified classes. Filter the image on a block basis.
- a coded stream is decoded to generate an image, and for pixels constituting a block of the generated image, pixels located at the top of the block are block-based. It is set as a sample pixel used when calculating an evaluation value which is a reference when performing classification. Then, based on the set evaluation value of the sample pixel, the pixels constituting the block of the generated image are classified as a target on the block basis, and the image generated according to the classified class is block based. Filtered by
- pixels located at the upper part of the block when encoding an image, perform class classification on the basis of pixels constituting a block of a locally decoded image. It is set as a sample pixel used when calculating an evaluation value as a reference at the time. Then, based on the set evaluation value of the sample pixel, the pixels constituting the block of the image subjected to the local decoding process are classified as a target on a block basis, and the image subjected to the local decoding process according to the classified class.
- the image is encoded using a block-based filtered and filtered image.
- an image is generated by decoding an image coding stream, and the image is generated, and is used as a reference in performing block classification on a basis of pixels forming a block of the generated image.
- the positions of sample pixels used when calculating the evaluation value and the reference range to be referred when calculating the evaluation value serving as a reference when performing classification on a block basis are limited. Then, based on the evaluation value calculated by the position of the limited sample pixel and the reference range, the pixels constituting the block of the generated image are targeted, classified on a block basis, and classified. According to the class, the generated image is filtered on a block basis.
- the above-described image processing apparatus may be an independent apparatus, or may be an image coding apparatus or an internal block constituting an image decoding apparatus.
- an image can be decoded.
- the line memory can be reduced.
- an image can be encoded.
- the line memory can be reduced.
- FIG. 1 shows a configuration of an embodiment of an image coding apparatus as an image processing apparatus to which the present disclosure is applied.
- the image coding apparatus 11 shown in FIG. 1 codes image data using a prediction process.
- a coding method for example, a high efficiency video coding (HEVC) method or the like is used.
- HEVC high efficiency video coding
- the image encoding device 11 includes an A / D (Analog / Digital) converter 21, a screen rearrangement buffer 22, an arithmetic unit 23, an orthogonal transformer 24, a quantizer 25, and a lossless encoder 26. , And a storage buffer 27.
- the image coding apparatus 11 further includes an inverse quantization unit 28, an inverse orthogonal transformation unit 29, an operation 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, The prediction image selection unit 36 and the rate control unit 37 are provided.
- the image coding device 11 includes an adaptive offset filter 41 and an adaptive loop filter 42 a between the deblocking filter 31 and the frame memory 32.
- the A / D converter 21 A / D converts the input image data, and outputs the image data to the screen rearrangement buffer 22 for storage.
- the screen rearrangement buffer 22 rearranges the images of frames in the stored display order into the order of frames for encoding in accordance with the GOP (Group of Picture) structure.
- the screen rearrangement buffer 22 supplies the image in which the order of the frames is rearranged to the calculation unit 23.
- the screen rearrangement buffer 22 also supplies the image in which the order of the frames is rearranged to the intra prediction unit 34 and the motion prediction / compensation unit 35.
- the arithmetic unit 23 subtracts the predicted image supplied from the intra prediction unit 34 or the motion prediction / compensation unit 35 from the image read from the screen rearrangement buffer 22 via the predicted image selection unit 36, and the difference information thereof Are output to the orthogonal transformation unit 24.
- the operation unit 23 subtracts the predicted image supplied from the intra prediction unit 34 from the image read from the screen rearrangement buffer 22. Also, for example, in the case of an image on which inter coding is performed, the operation unit 23 subtracts the predicted image supplied from the motion prediction / compensation unit 35 from the image read from the screen rearrangement buffer 22.
- the orthogonal transformation unit 24 performs orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation on the difference information supplied from the calculation unit 23, and supplies the transformation 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 an intra prediction mode from the intra prediction unit 34, and acquires parameters such as information indicating an inter prediction mode or motion vector information from the motion prediction / compensation unit 35.
- the lossless encoding unit 26 encodes the quantized transform coefficients, and encodes each acquired parameter (syntax element) to be part of header information of encoded data (multiplexing).
- the lossless encoding unit 26 supplies the encoded data obtained by the encoding to the accumulation buffer 27 for accumulation.
- variable-length coding examples include CAVLC (Context-Adaptive Variable Length Coding).
- arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
- the accumulation buffer 27 temporarily holds the encoded data supplied from the lossless encoding unit 26, and at a predetermined timing, for example, a recording apparatus or transmission (not shown) at a later stage as an encoded image which has been encoded. Output to the road etc.
- the transform coefficient quantized in 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 orthogonal transform processing by the orthogonal transform unit 24.
- the inverse orthogonal transform output (restored difference information) is supplied to the calculation unit 30.
- Arithmetic unit 30 is supplied from intra prediction unit 34 or motion prediction / compensation unit 35 via predicted image selection unit 36 to the inverse orthogonal transformation result supplied from inverse orthogonal transformation unit 29, that is, the restored difference information. Prediction images are added to obtain a locally decoded image (decoded image).
- the calculation unit 30 adds the predicted image supplied from the intra prediction unit 34 to the difference information. Also, for example, when the difference information corresponds to an image on which inter coding is performed, the calculation unit 30 adds the predicted image supplied from the motion prediction / compensation unit 35 to the difference information.
- the decoded image that is 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 filtered by the deblocking filter 31.
- SAO Sample adaptive offset
- the adaptive offset filter 41 filters the image filtered by the deblocking filter 31 using the quad-tree structure in which the type of offset filter is determined for each divided area and the offset value for each divided area. Apply processing
- the quad-tree structure and the offset value for each divided area are calculated by the adaptive offset filter 41 and used.
- the calculated quad-tree structure and the offset value for each divided area are encoded by the lossless encoding unit 26 and transmitted to the image decoding apparatus 51 of FIG. 3 described later.
- the adaptive offset filter 41 supplies the filtered image to the adaptive loop filter 42a.
- the adaptive loop filter 42 a performs class classification on a block basis (unit) and performs adaptive loop filter (ALF: Adaptive Loop Filter) processing.
- ALF Adaptive Loop Filter
- a two-dimensional Wiener filter is used as a filter.
- filters other than the winner filter may be used.
- the adaptive loop filter 42a sets four pixels from the top of the block of the image filtered by the adaptive offset filter 41 as sample points (pixels), and performs classification by the variance (dispersion) calculated at the set sample points. .
- the adaptive loop filter 42 a performs filter processing on the image with filter coefficients corresponding to the classified class, and supplies the filter processing result to the frame memory 32. Details of the adaptive loop filter 42a will be described later with reference to FIG.
- the filter coefficients are calculated by the adaptive loop filter 42a so as to minimize the residual with the original image from the screen rearrangement buffer 12. Used.
- the calculated filter coefficients are encoded by the lossless encoding unit 26 and transmitted to the image decoding apparatus 51 of FIG. 3 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. Also, for example, when inter coding is performed, 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.
- the selection unit 33 supplies the reference image to the motion prediction / compensation unit 35.
- the intra prediction unit 34 performs intra prediction (in-screen prediction) that generates 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 predicted images in all intra prediction modes, evaluates each predicted image, and selects an optimal mode. When the optimal intra prediction mode is selected, the intra prediction unit 34 supplies the predicted 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 appropriately supplies the lossless encoding unit 26 with parameters such as intra prediction mode information indicating the adopted intra prediction mode.
- 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. Make motion predictions. Further, the motion prediction / compensation unit 35 performs motion compensation processing 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 of all the candidate inter prediction modes to generate 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 the lossless encoding unit 26 with parameters such as inter prediction mode information indicating the adopted inter prediction mode, and motion vector information indicating the calculated motion vector.
- 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 the image of the motion prediction / compensation unit 35 in the case of an image to be subjected to inter coding.
- the output is supplied to the arithmetic unit 23 and the arithmetic unit 30.
- the rate control unit 37 controls the rate of the quantization operation of the quantization unit 25 based on the compressed image stored in the storage buffer 27 so that an overflow or an 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 image, and performs rearrangement from the display order of each picture to the coding order.
- the decoded image to be referred to is read from the frame memory 32 and the intra prediction unit via the selection unit 33 It is supplied to 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 as the decoded pixels to be referenced, pixels not filtered by the deblocking filter 31 are used.
- 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 intra prediction in the optimal intra prediction mode and its cost function value are supplied to the predicted image selection unit 36.
- the image to be processed supplied from the screen rearrangement buffer 22 is an image to be inter processed
- the image to be referred to is read from the frame memory 32 and supplied to the motion prediction / compensation unit 35 through the selection unit 33. Be done.
- the motion prediction / compensation unit 35 performs motion prediction / compensation processing based on these images.
- motion prediction processing is performed in all the 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 the cost function value thereof are supplied to the predicted image selection unit 36.
- step S15 the predicted image selection unit 36 optimizes 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. Decide on prediction mode. Then, the prediction image selection unit 36 selects the prediction image of the determined optimal prediction mode, and supplies it to the calculation units 23 and 30. This predicted image is used for the calculation of steps S16 and S21 described later.
- the selection information of the predicted image is supplied to the intra prediction unit 34 or the motion prediction / compensation unit 35.
- the intra prediction unit 34 supplies the information indicating the optimal intra prediction mode (that is, the parameter related to the intra prediction) to the lossless encoding unit 26.
- the motion prediction / compensation unit 35 losslessly encodes information indicating the optimal inter prediction mode and information according to the optimal inter prediction mode (that is, parameters related to motion prediction) Output to section 26.
- information according to the optimal inter prediction mode include motion vector information and reference frame information.
- step S16 the computing unit 23 computes the 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.
- the difference data has a smaller amount of data than the original image data. Therefore, the amount of data can be compressed as compared to the case of encoding the image 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 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 a characteristic corresponding to the characteristic of the quantization unit 25.
- step S ⁇ b> 20 the inverse orthogonal transformation unit 29 inversely orthogonally transforms the transform coefficient inversely quantized by the inverse quantization unit 28 with the characteristic corresponding to the characteristic of the orthogonal transformation unit 24.
- step S21 the operation unit 30 adds the predicted image input via the predicted image selection unit 36 to the locally decoded difference information, and the locally decoded (that is, locally decoded) image (The image corresponding to the input to the operation unit 23) is generated.
- step S22 the deblocking filter 31 performs deblocking filter processing on the image output from the computing unit 30. This removes blockiness.
- 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.
- filtering processing is performed on the image after filtering by the deblocking filter 31. Applied.
- the filtered image is supplied to the adaptive loop filter 42a.
- the adaptive loop filter 42a performs adaptive loop filter processing on the image filtered by the adaptive offset filter 41.
- the adaptive loop filter 42a sets four pixels from the top of the block of the input image as sample points, and performs block-based classification by the variance (variance) calculated at the set sample points.
- the adaptive loop filter 42 a performs filter processing on the input image according to the classified class, and supplies the filter processing result to the frame memory 32. The details of this adaptive loop filter process will be described later with reference to FIG.
- the frame memory 32 stores the filtered image.
- the frame memory 32 is also supplied with an image not filtered by the deblocking filter 31, the adaptive offset filter 41, and the adaptive loop filter 42a from the arithmetic unit 30, and is 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 losslessly encoded such as variable length coding, arithmetic coding or the like and 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 and transmitted to the decoding side via the transmission path.
- step S28 the rate control unit 37 controls the rate of the quantization operation 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 shows a configuration of an embodiment of an image decoding apparatus as an image processing apparatus to which the present disclosure is applied.
- the image decoding device 51 shown in FIG. 3 is a decoding device corresponding to the image coding 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 an accumulation buffer 61, a lossless decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transformation unit 64, an operation unit 65, a deblocking filter 66, a screen rearrangement buffer 67, And a D / A converter 68.
- the image decoding apparatus 51 further 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 42 b between the deblocking filter 66 and the screen rearrangement buffer 67 and the frame memory 69.
- the accumulation buffer 61 accumulates the transmitted encoded data.
- the 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 in a method corresponding to the encoding method of the lossless encoding unit 26 in FIG. 1.
- 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 being decoded by the lossless decoding unit 62 by a method corresponding to the quantization method of the quantization unit 25 in FIG. 1. That is, the inverse quantization unit 63 performs inverse quantization of the quantization coefficient by the same method as the inverse quantization unit 28 in FIG. 1 using the quantization parameter supplied from the image coding device 11.
- the inverse quantization unit 63 supplies the inversely quantized coefficient data, that is, the orthogonal transformation coefficient to the inverse orthogonal transformation unit 64.
- the inverse orthogonal transformation unit 64 performs inverse orthogonal transformation on the orthogonal transformation coefficient by a method corresponding to the orthogonal transformation method of the orthogonal transformation unit 24 in FIG. 1, and generates residual data before orthogonal transformation in the image encoding device 11. Obtain the corresponding decoded residual data.
- the decoded residual data obtained by the inverse orthogonal transform is supplied to the arithmetic unit 65. Further, the 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 operation unit 65 adds the decoded residual data and the predicted image to obtain decoded image data corresponding to image data before the predicted image is subtracted by the operation unit 23 of the image coding device 11.
- the operation 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 filtering result to the adaptive offset filter 81.
- the adaptive offset filter 81 performs offset filter (SAO) processing that mainly removes ringing on the image filtered by the deblocking filter 66.
- SAO offset filter
- the adaptive offset filter 81 filters the image filtered by the deblocking filter 66 using the quad-tree structure in which the type of the offset filter is determined for each divided area and the offset value for each divided area. 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 area are calculated by the adaptive offset filter 41 of the image coding device 11, coded and sent. It is a thing.
- the quad-tree structure encoded by the image encoding device 11 and the offset value for each divided area are received by the image decoding device 51, decoded by the lossless decoding unit 62, and used by the adaptive offset filter 81. .
- the adaptive loop filter 42b is configured basically in the same manner as the adaptive loop filter 42a of the image coding device 11 of FIG. 1, performs class classification on a block basis, and performs adaptive loop filter processing.
- the adaptive loop filter 42 b sets four pixels from the top of the block of the image filtered by the adaptive offset filter 81 as sample points, and performs classification by the variance (dispersion) calculated at the set sample points.
- the adaptive loop filter 42 b performs filter processing on the image with the filter coefficient corresponding to the classified class, 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 coding device 11, and is transmitted after being encoded losslessly It is decoded by the part 62 and used.
- the screen rearrangement buffer 67 rearranges the images. That is, the order of the frames rearranged for the order of encoding by the screen rearrangement buffer 22 in FIG. 1 is rearranged in the order of the original display.
- the D / A conversion unit 68 D / A converts the image supplied from the screen rearrangement buffer 67, and outputs the image to a display (not shown) for display.
- the output of the adaptive loop filter 42b is further supplied to a 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, the motion prediction / compensation unit of the image coding device 11. 35 and the predicted image selection unit 36 respectively.
- the selection unit 70 reads out the image to be inter-processed and the image to be referred to from the frame memory 69 and supplies the same to the motion prediction / compensation unit 72. Further, 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 generates a prediction image from the reference image acquired from the frame memory 69 based on this information, and supplies the generated prediction image to the selection unit 73.
- the motion prediction / compensation unit 72 is supplied from the lossless decoding unit 62 with information (prediction mode information, motion vector information, reference frame information, flags, various parameters, and the like) obtained by decoding header information.
- 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 prediction image to the calculation unit 65.
- step S51 the accumulation buffer 61 accumulates the transmitted encoded data.
- step S ⁇ b> 52 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 of FIG. 1 are decoded.
- parameter information such as motion vector information, reference frame information, 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 and the like corresponding to the prediction mode information are supplied to the motion prediction / compensation unit 72.
- step S53 the intra prediction unit 71 or the motion prediction / compensation unit 72 performs predicted image generation processing corresponding to the prediction mode information supplied from the lossless decoding unit 62.
- 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 in the intra prediction mode by parallel processing.
- the motion prediction / compensation unit 72 performs motion prediction / compensation processing in the inter prediction mode 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, the predicted image generated by the intra prediction unit 71 or the predicted image generated by the motion prediction / compensation unit 72 is supplied. Therefore, the supplied prediction image is selected and supplied to the calculation unit 65, and is added to the output of the inverse orthogonal transformation unit 64 in step S57 described later.
- the transform coefficient decoded by the lossless decoding unit 62 in step S52 described above is also supplied to the inverse quantization unit 63.
- the inverse quantization unit 63 inversely quantizes the transform coefficient decoded by the lossless decoding unit 62 with a characteristic corresponding to the characteristic of the quantization unit 25 in FIG.
- step S56 the inverse orthogonal transformation unit 29 inversely orthogonally transforms the transform coefficient inversely quantized by the inverse quantization unit 28 with the characteristic corresponding to the characteristic of the orthogonal transformation unit 24 in FIG.
- the difference information corresponding to the input (the output of the arithmetic unit 23) of the orthogonal transform unit 24 in FIG. 1 is decoded.
- step S57 the calculation unit 65 adds the prediction image selected in the process of step S54 described above and input through the selection unit 73 to the difference information. The original image is thus decoded.
- step S58 the deblocking filter 66 performs deblocking filter processing on the image output from the computing unit 65. This removes blockiness.
- 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 offset filter is determined for each divided area and the offset value for each divided area. Applied.
- the filtered image is supplied to the adaptive loop filter 42b.
- step S60 the adaptive loop filter 42b performs adaptive loop filter processing on the image filtered by the adaptive offset filter 81.
- the adaptive loop filter 42 b sets four sample points from the top of the block of the input image, and performs classification on a block basis based on the variance (variance) calculated at the set sample points.
- the adaptive loop filter 42 b performs filter processing on the input image according to the classified class, and supplies the filter processing result to the screen rearrangement buffer 67 and the frame memory 69. Note that this adaptive loop filter process is basically the same process as the adaptive loop filter process of step S24 in FIG. 2, and the details thereof 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 image after the adaptive loop filter 42b. That is, the order of the frames rearranged for encoding by the screen rearrangement buffer 22 of the image encoding device 11 is rearranged in 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 variance (variance) of all pixels is calculated for each 4 ⁇ 4 pixel block indicated by a solid line. It was calculated and classified.
- the dotted square indicates the reference range when determining the variance of the upper left pixel in the 4 ⁇ 4 pixel block.
- Non-Patent Document 1 As shown on the right side of FIG. 5, four pixels are subsampled from 16 pixels of the 4 ⁇ 4 pixel block, and only the four subsampled pixels are subsampled. Classification is performed by calculating variances.
- the four subsampled pixels are the pixels in the first row from the left in the first row from the top in the block, and the pixels in the third row from the top, and the pixels in the first row from the left 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
- HEVC High Efficiency Video Coding
- CU coding unit
- CU is also referred to as Coding Tree Block (CTB). It is an area (partial area of an image in a picture unit) serving as a processing unit of encoding (decoding), which plays the same role as a macroblock in the H.264 / AVC system.
- CTB Coding Tree Block
- the latter is fixed at a size of 16 ⁇ 16 pixels, whereas the size of the former is not fixed, and is designated in the image compression information in each sequence.
- a CU maximum size (Largest Coding Unit)
- a minimum size ((SCU (Smallest Coding Unit))
- the size of the LCU is 16 ⁇ 16 pixels, and four CUs of 8 ⁇ 8 pixels are included therein. An example is shown.
- H.264 is used.
- a macroblock in the H.264 / AVC system may correspond to an LCU, and a block (subblock) may correspond to a CU.
- the size of the LCU in the top layer is, for example, 128.times.128 pixels. Generally, it is set larger than the H.264 / AVC macroblocks.
- LCU refers to H. H.264 also includes macroblocks in the H.264 / AVC format, and CU includes H.264 / AVC. It also includes blocks (sub blocks) in the H.264 / AVC system.
- the bottom indicates the LCU boundary, and the circle indicates a pixel.
- Circles from the first line to the third line from the LCU boundary indicate pixels at which deblocking V (vertical) filtering of the horizontal boundary is started when the next LCU is input to the deblocking filter.
- a circle indicated by hatching in the first to third lines represents a pixel that has been subjected to deblocking H (horizontal) filtering at the vertical boundary of the CU included in the LCU.
- the white circle is not a vertical boundary of the CU, and therefore, actually represents a pixel to which the deblocking H filter process is not applied.
- deblocking V (vertical) filter processing of the horizontal boundary refers to a deblocking filter that removes block noise of the horizontal boundary between blocks adjacent in the vertical direction (vertical direction).
- deblocking H (horizontal) filtering of the vertical boundary refers to a deblocking filter that removes block noise of the vertical boundary between adjacent blocks in the left and right (horizontal direction).
- the deblocking filter is performed in the order of the deblocking H filter processing and the deblocking V filter processing.
- the pixels in the fourth and fifth lines from the LCU boundary are pixels that have been deblocking V-filtered and are pixels before adaptive offset filtering.
- the pixel of the fourth line is also a pixel referred to in the deblocking V filter process of the first to third lines.
- the pixels in the sixth to eighth lines from the LCU boundary are pixels that have been subjected to adaptive offset filtering and that have not been subjected to adaptive loop filtering.
- Circles from the LCU boundary to the 9th to 12th lines represent pixels after the adaptive loop filter (ALF) processing.
- ALF adaptive loop filter
- Deblocking V filtering When the deblocking filter processes pixels on the first to third lines from the LCU boundary at the LCU boundary, the pixel of the LCU (pixel for the next four lines) in contact with the lower side through the LCU boundary is not input Deblocking V filtering can not be started.
- the deblocking filter waits (temporarily stops) in the processing of the first to third line pixels to be processed next.
- the adaptive offset filter needs pixels in the fourth to sixth lines from the LCU boundary in the line memory in order to filter the fifth line from the LCU boundary held in the line memory of the adaptive offset filter.
- the adaptive offset filter may not be able to filter the pixel at the fifth line from the LCU boundary. . In such a case, the adaptive offset filter waits for processing of the fifth line pixel to be processed next.
- the adaptive loop filter performs classification processing, for example, by the method described in Non-Patent Document 1.
- the pixels of the 4 ⁇ 4 pixel block indicated by the solid line in the 9th to 12th lines from the LCU boundary are pixels that have been subjected to adaptive offset filtering, including the pixels referred to at that time.
- the adaptive loop filter can complete their classification and filtering.
- the classification process of the 4 ⁇ 4 pixel block indicated by the solid line on the fifth to eighth lines from the LCU boundary is performed based on the calculation result of 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 row from the left in the first row from the top in the 4 ⁇ 4 pixel block.
- the pixel P3 is the 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 variance is performed with reference to eight pixels around each pixel, so the pixel in the range indicated by the dotted line is a pixel necessary for calculation of variance of pixel P1 to pixel P4.
- the pixels necessary for calculating the variance of the pixel P1 and the pixel P2 have already undergone the adaptive offset filter.
- a part of the pixels necessary for calculating the variance of the pixel P3 and the pixel P4 (the pixel on the fifth line from the LCU boundary) can not be used for the calculation of variance because the adaptive offset filter has not ended yet. Therefore, the adaptive loop filter waits in the classification process of the 4 ⁇ 4 pixel block of the fifth to eighth lines from the LCU boundary.
- the filtering process of the adaptive loop filter is performed, for example, with 5 taps in the vertical direction. Therefore, for classification processing and filtering of 4 ⁇ 4 pixel blocks of the fifth to eighth lines from the LCU boundary, the line memory of the adaptive loop filter includes sixth to tenth lines after adaptive offset filtering. Pixels are retained.
- FIG. 6 is an example of processing of the deblocking filter, the adaptive offset filter, and the adaptive loop filter, and the number of processable lines and line memories may differ depending on the architecture.
- the line memory is reduced by changing the sample points in the block for which variances are calculated to pixels located at the top of the block.
- to be located at the top of the block means to be located above the half of the block size.
- the pixel located at the top of the block may be a pixel located above the reference with respect to the 2-pixel sample position in the vertical direction.
- the pixel located at the top of the block may be a pixel located above the reference with respect to the 4-pixel sample position in the vertical direction.
- the pixel used as a sample point should just be a pixel located in the upper half of a block.
- the method in the proposal of Non-Patent Document 1 for comparison and on the right side, the method by the adaptive loop filter 42 is shown.
- the circles represent pixels, and the black circles represent pixels for which variance calculations are performed.
- the solid line represents a 4 ⁇ 4 pixel block to be classified, and the dotted line represents the range of pixels referred to in the variance calculation.
- 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 targets for 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 one from the left in the third row, as shown on the left side of FIG. It is a pixel of a row and a 3rd row.
- the range of pixels referred to in the above-described 4 pixel variance calculation is the range of 5 ⁇ 5 pixels indicated by a dotted line.
- the pixels in the first column and the third column from the left in the first row from the top and the The pixels in the first column and the third column from the left of are set as sample points.
- the calculation of variances for classification requires eight peripheral pixels, so in the case of the adaptive loop filter 42, the range of pixels referred to in the variance calculation of four pixels is in the vertical direction indicated by the dotted line.
- the range is 4 pixels ⁇ 5 pixels in the horizontal direction.
- the adaptive loop filter 42 among the sample points for calculating the variance of 4 ⁇ 4 pixels, the position of the sample point located below the block is changed to one line in the vertical direction compared to the conventional case ( Setting).
- the vertical reference range in the variance calculation is also changed to one line in the vertical direction as compared with the conventional case. That is, the reference range in the vertical direction at the time of variance calculation can be reduced by one line as compared with the conventional case, and the line memory can be reduced accordingly.
- the deblocking filter processes pixels on the first through third lines from the LCU boundary at the LCU boundary, the pixels of the LCU that are in contact below via the LCU boundary (next four lines
- the deblocking V filter process can not be started unless a minute pixel is input.
- the deblocking filter waits (temporarily stops) in the processing of the first to third line pixels to be processed next.
- the adaptive offset filter needs the pixel of the fourth line from the LCU boundary in the line memory in order to filter the pixel of the fifth line from the LCU boundary held in the line memory of the adaptive offset filter.
- the adaptive offset filter may not be able to filter the pixel of the fifth line from the LCU boundary. In such a case, the adaptive offset filter waits for processing of the pixel of the fifth line to be processed.
- the adaptive loop filter described in Non-Patent Document 1 filters the 4 ⁇ 4 pixel block on the ninth to twelfth lines from the LCU boundary, and then on the fifth line from the LCU boundary.
- Class classification processing of the 4 ⁇ 4 pixel block of the eighth line is performed.
- Class classification processing of 4 ⁇ 4 pixel blocks on the fifth to eighth lines from the LCU boundary, which is indicated by a solid line, is performed based on the calculation result of variances 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 row from the left in the first row from the top in the 4 ⁇ 4 pixel block.
- the pixel P3 is the 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 variance is performed with reference to eight pixels around each pixel, so the pixel in the range indicated by the dotted line is a pixel necessary for calculation of variance of pixel P1 to pixel P4.
- the pixel necessary for calculation of the variance of the pixel P1 and the pixel P2 is the pixel on the seventh to ninth lines from the LCU boundary, so the adaptive offset filter has already ended.
- a part of the pixels necessary for the calculation of the variance of the pixel P3 and the pixel P4 (the pixel on the fifth line from the LCU boundary) can not be used because the adaptive offset filter has not ended yet. Therefore, the adaptive loop filter waits in the classification process of the 4 ⁇ 4 pixel block of the fifth to eighth lines from the LCU boundary.
- the filtering process of the adaptive loop filter is performed, for example, with 5 taps in the vertical direction. Therefore, for classification processing and filtering of 4 ⁇ 4 pixel blocks of the fifth to eighth lines from the LCU boundary, the line memory of the adaptive loop filter includes sixth to tenth lines after adaptive offset filtering. Pixels are retained.
- the adaptive loop filter 42 to which the present technology is applied performs classification processing of 4 ⁇ 4 pixel blocks of the fifth to eighth lines from the LCU boundary, as shown on the right side of FIG.
- the classification process of the 4 ⁇ 4 pixel block shown by the solid line is performed based on the calculation result of variance for the pixel P1, the pixel P2, the pixel Q1, and the pixel Q2.
- 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 row from the left in the first row from the top in the 4 ⁇ 4 pixel block.
- the pixel Q1 is a pixel in the first column from the left in the second row from the top in the 4 ⁇ 4 pixel block.
- the pixel Q2 is a pixel in the third column from the left in the second row from the top in the 4 ⁇ 4 pixel block.
- the pixel P3 which is a conventional sample point is changed to the pixel Q1 one column in the 4 ⁇ 4 pixel block
- the pixel P4 which is a conventional sample point is a 4 ⁇ 4 pixel block
- the four sample points are all pixels located at the top (the first or second line from the top) in the 4 ⁇ 4 pixel block.
- the pixel necessary for calculation of the variance of the pixel P1 and the pixel P2 is the pixel on the seventh to ninth lines from the LCU boundary, so the adaptive offset filter has already ended. Further, since the pixels necessary for calculation of the variance of the pixel Q1 and the pixel Q2 are the pixels in the sixth to eighth lines from the LCU boundary, the adaptive offset filter has already been completed.
- the adaptive loop filter 42 can perform class classification processing of 4 ⁇ 4 pixel blocks on the fifth to eighth lines from the LCU boundary.
- the filtering process of the adaptive loop filter 42 is performed, for example, with 5 taps in the vertical direction.
- the adaptive offset filter has already been completed for the pixels in the sixth to tenth lines from the LCU boundary necessary for the filter processing of the first column of the adaptive loop filter 42 in the 4 ⁇ 4 pixel block, and the filter processing should be performed. Can. Therefore, the pixel at the 10th line from the LCU boundary can be released (released) from the line memory, and as a result, the line memory of the adaptive loop filter 42 is the sixth to ninth lines where the adaptive offset filter is finished. It suffices that the pixel of is held.
- the number of lines to be held can be smaller than that of the line memory of the conventional adaptive loop filter.
- the image size in the HEVC system is 4k ⁇ 2k, and the line memory 1 line of the HEVC system has a screen size of 1920 ⁇ 1080. It corresponds to the line memory 2 line of the H.264 / AVC deblocking. H. Since H.264 / AVC is equipped with four line memory lines, the reduction of one line memory of the HEVC scheme can be performed using H.264 / AVC. This corresponds to a 50% reduction of the H.264 / AVC line memory.
- FIG. 9 is a block diagram showing 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 unit 102, an ALF filter operation unit 103, and a control unit 104.
- the adaptive offset filtered pixels from the previous stage are input to the line memory 101, the ALF classification unit 102, and the ALF filter operation unit 103.
- the former stage is the adaptive offset filter 41 in the case of the image coding device 11 of FIG. 1 and the adaptive offset filter 81 in the case of the image decoding device 51 of FIG.
- the line memory 101 temporarily holds the adaptive offset filtered pixel input from the previous stage at the LCU boundary.
- the ALF class classification unit 102 uses the pixel after the adaptive offset filter input from the previous stage. Class classification is performed for each ⁇ 4 pixel block.
- the ALF class classification unit 102 uses the adaptive offset filtered pixels held in the line memory 101. Class classification is performed every 4 ⁇ 4 pixel block.
- the ALF classification unit 102 During classification, in the ALF classification unit 102, four pixels from the top of the 4 ⁇ 4 pixel block are sampled, and eight peripheral pixels are used for each pixel to calculate variance. Ru.
- the ALF classification unit 102 supplies the classified class value to the ALF filter calculation unit 103.
- the ALF filter operation unit 103 When the block to be processed is not at the LCU boundary (below the LCU) according to the control signal from the control unit 104, the ALF filter operation unit 103 performs a filter operation on the adaptive offset filtered pixel input from the previous stage I do.
- the ALF filter calculation unit 103 applies to the adaptive offset filtered pixels stored in the line memory 101. Perform the filter operation.
- a cross-shaped tap or a snowflake-shaped tap is used around the pixel to be processed.
- the cross-shaped tap has a shape formed by five pixels in the vertical direction and seven 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 the filter operation using the filter coefficient corresponding to the class value from the ALF class classification 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 of FIG. 1 and the screen rearrangement buffer 67 or the frame memory 69 in the case of the image decoding device 51 of FIG.
- the control unit 104 supplies control signals for controlling selection (switching) of input pixels, processing timing, and the like to the line memory 101, the ALF classification unit 102, and the ALF filter operation unit 103.
- FIG. 10 is a block diagram showing a configuration example of the ALF classification unit of FIG.
- the ALF class classification unit 102 is configured to include an image memory 121, a horizontal / vertical variance calculation unit 122, a variance addition unit 123, a class value determination unit 124, and a control unit 125.
- the image memory 121 receives the pixel subjected to the adaptive offset filter from the preceding stage or the line memory 101 and is held.
- the horizontal / vertical variance calculation unit 122 calculates the variance value H in the horizontal direction for the pixel at the sample point among the pixels in the 4 ⁇ 4 pixel block B stored in the image memory 121.
- the variance value V (i, j) in the direction perpendicular to (i, j) is calculated.
- the pixels which are sample points are the pixel P1, the pixel P2, the pixel Q1, and the pixel Q2.
- the horizontal / vertical variance calculation unit 122 supplies the variance value H (i, j) in the horizontal direction and the variance value V (i, j) in the vertical direction to the variance addition unit 123.
- the variance addition unit 123 uses the horizontal variance value H (i, j) and the vertical variance value V (i, j) to generate a horizontal variance addition value H B , vertical
- the variance addition value V B and the Laplacian substitute variance addition value L B are obtained.
- the variance addition unit 123 supplies the obtained horizontal variance addition value H B , vertical variance addition value V B , and Laplacian substitute variance addition value L B to the class value determination unit 124.
- the horizontal variance value H (i, j), the vertical variance value V (i, j), the horizontal variance addition value H B , the vertical variance addition value V B , and the case of the example of FIG. Laplacian substitute variance sum value L B is calculated by the following equation (1).
- abs represents an absolute value.
- i indicates the x coordinate of the sample point in the 4 ⁇ 4 pixel block B
- j indicates the y coordinate of the sample point in the 4 ⁇ 4 pixel block B. Note that this equation (1) is an example, and how to obtain variance is not limited to this.
- the class value determination unit 124 determines the class value of the 4 ⁇ 4 pixel block B based on the horizontal variance addition value H B , the vertical variance addition value V B , and the Laplacian substitute variance addition value L B for the pixel that is the sample point. Ask for The class value determination unit 124 supplies the obtained class value to the ALF filter operation unit 103.
- the control unit 125 is configured to include the target pixel determination unit 131 and the end determination unit 132, and controls each unit of the ALF class classification unit 102.
- the target pixel determination unit 131 determines the pixels in the 4 ⁇ 4 pixel block B accumulated in the image memory 121, and controls the horizontal / vertical variance calculation unit 122 and the variance addition unit 123. That is, the target pixel determination unit 131 determines whether the pixel in the 4 ⁇ 4 pixel block B stored in the image memory 121 is, for example, a pixel at the predetermined position described above with reference to FIG. . Then, the target pixel determination unit 131 sets a pixel determined to be a pixel at a predetermined position as a sample point, and controls the horizontal / vertical variance calculation unit 122 and the variance addition unit 123 for the set sample point, Calculate the variance.
- the end determination unit 132 determines the end of the process in the ALF class classification unit 102. For example, the end determination unit 132 determines whether the pixel to be processed is the last pixel of the 4 ⁇ 4 pixel block B or the block B to be processed is the last 4 ⁇ 4 pixel block in the screen. It judges and controls processing of class value deciding part 124.
- FIG. 11 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 adaptive offset filtered pixels from the previous stage are input to the line memory 101, the ALF classification unit 102, and the ALF filter operation unit 103.
- step S101 the ALF class classification unit 102 performs class classification processing for each 4 ⁇ 4 pixel block B using the pixels subjected to the adaptive offset filter. The details of the classification process will be described later.
- the ALF class classification unit 102 uses the adaptive offset filter-completed pixel input from the previous stage. Class classification is performed for each 4 ⁇ 4 pixel block B.
- the ALF class classification unit 102 uses the adaptive offset filtered pixels stored in the line memory 101. Using this, class classification is performed for each 4 ⁇ 4 pixel block B.
- the class value of the 4 ⁇ 4 pixel block B as a result of the classification is supplied to the ALF filter operation unit 103.
- step S102 the ALF filter operation unit 103 performs a filter operation on the pixel subjected to the adaptive offset filter, using a filter coefficient corresponding to the class value from the ALF class classification unit 102.
- the ALF filter operation unit 103 centers on the adaptive offset filter input pixel from the previous stage. Perform a filter operation on the taps.
- the ALF filter operation unit 103 centers on the adaptive offset filter-held pixels held in the line memory 101. Perform a filter operation on the tap.
- the ALF filter operation unit 103 supplies the output pixel after the filter operation to the subsequent stage.
- step S121 the target pixel determination unit 131 selects one target pixel selected from the 4 ⁇ 4 pixel block B from the image memory 121 in the first row or second row (Row: 1 or 2) in the 4 ⁇ 4 pixel block B. It is determined whether or not the pixel is in the first column or the second column (Col: 1 or 2).
- step S121 In the case where it is determined in step S121 that the target pixel is a pixel in the first row or second row (Col: 1 or 2) of the first row or the second row (Row: 1 or 2) in the 4 ⁇ 4 pixel block B The process proceeds to step S122.
- step S122 under the control of the target pixel determination unit 131, the horizontal / vertical variance calculation unit 122 sets the target pixel as a sample point, and calculates variance for the sample point.
- the horizontal / vertical variance calculation unit 122 supplies the calculated variance values H (i, j) and the variance values V (i, j) in the vertical direction to the variance addition unit 123.
- step S123 under the control of the control unit 125, the variance addition unit 123 adds the calculation result of variance to each element according to the above-described equation (1). That is, the variance addition unit 123 uses the variance value H (i, j) in the horizontal direction and the variance value V (i, j) in the vertical direction to calculate the horizontal variance addition value H B and the vertical variance addition value. Find V B and the Laplacian substitute variance addition value L B. The variance addition unit 123 supplies the obtained horizontal variance addition value H B , vertical variance addition value V B , and Laplacian substitute variance addition value L B to the class value determination unit 124.
- step S121 In the case where it is determined in step S121 that the target pixel is not the pixel in the first row or second row (Col: 1 or 2) of the first row or the second row (Row: 1 or 2) in the 4 ⁇ 4 pixel block B The process skips steps S122 and S123, and proceeds to step S124.
- step S124 the target pixel determination unit 131 determines whether the target pixel is the last target pixel (that is, the sixteenth pixel) in the 4 ⁇ 4 pixel block B. If it is determined in step S124 that the target pixel is not the last target pixel in the 4 ⁇ 4 pixel block B, the process returns to step S121, and the subsequent processing is repeated for the target pixel selected next in raster scan order.
- step S124 determines a class value from the calculated value of variance. That is, the class value determination unit 124 determines the class value of the 4 ⁇ 4 pixel block B based on the horizontal variance addition value H B , the vertical variance addition value V B , and the Laplacian substitution variance addition value L B.
- the class value is supplied to the ALF filter operation unit 103.
- step S126 the end determination unit 132 determines whether the 4 ⁇ 4 pixel block B is the last 4 ⁇ 4 pixel block in the screen. If it is determined in step S126 that the 4 ⁇ 4 pixel block B is not the last 4 ⁇ 4 pixel block in the screen, the process returns to step S121, and the next 4 ⁇ 4 pixel block B in raster scan order. , And the subsequent processing is repeated.
- step S126 If it is determined in step S126 that the 4 ⁇ 4 pixel block B is the last 4 ⁇ 4 pixel block in the screen, the class classification process of FIG. 12 ends.
- the position of the pixel serving as the sample point may be the upper part of the 4 ⁇ 4 pixel block, and is not limited to the example of FIG.
- the position of the pixel used as the sample point may be, for example, as shown in FIG.
- the method in the proposal of Non-Patent Document 1 for comparison and on the right side, the method by the adaptive loop filter 42 is shown.
- the circles represent pixels, and the black circles represent pixels for which variance calculations are performed.
- the solid line represents a 4 ⁇ 4 pixel block to be classified, and the dotted line represents the range of pixels referred to in the variance calculation.
- Non-Patent Document 1 In the proposal of Non-Patent Document 1, as described above with reference to FIG. 5, four pixels in a block of 4 ⁇ 4 pixels are subsampled for calculation of variances for class classification, and the subsampled four Classification is performed by calculating variance only for pixels.
- the four subsampled pixels are the pixels in the first row from the left in the first column and the third column in the block, and the pixels in the block from the left in the third row from the top. It is a pixel of a row and a 3rd row.
- the range of pixels referred to in the above-described 4 pixel variance calculation is the range of 5 ⁇ 5 pixels indicated by a dotted line.
- the pixels in the first to fourth columns in the first row from the top in the block are set as sample points.
- the calculation of variances for classification requires eight peripheral pixels, so in the case of the adaptive loop filter 42, the range of pixels referred to in the variance calculation of four pixels is in the vertical direction indicated by the dotted line.
- the range is 3 pixels ⁇ 6 pixels in the horizontal direction.
- the adaptive loop filter 42 among the sample points for calculating the variance of 4 ⁇ 4 pixels, the position of the sample point located below the block is changed to two lines in the vertical direction compared to the conventional case ( Setting).
- the vertical reference range in the variance calculation is also changed to two lines as compared with the conventional case. It can be made smaller. That is, the reference range in the vertical direction at the time of variance calculation can be made smaller by two lines compared to the conventional case, and by one line as compared with the example of FIG. Can.
- step S141 the target pixel determination unit 131 determines that one target pixel selected from the 4 ⁇ 4 pixel block B from the image memory 121 is a pixel in the first row (Row: 1) in the 4 ⁇ 4 pixel block B. It is determined whether or not.
- step S141 If it is determined in step S141 that the target pixel is a pixel in the first row (Row: 1) in the 4 ⁇ 4 pixel block B, the process proceeds to step S142.
- step S142 under the control of the target pixel determination unit 131, the horizontal / vertical variance calculation unit 122 sets the target pixel as the sample point, and calculates the variance for the sample point.
- the horizontal / vertical variance calculation unit 122 supplies the calculated variance values H (i, j) and the variance values V (i, j) in the vertical direction to the variance addition unit 123.
- step S143 under the control of the control unit 125, the variance addition unit 123 adds the calculation result of variance to each element according to the following equation (2). That is, the variance addition unit 123 uses the variance value H (i, j) in the horizontal direction and the variance value V (i, j) in the vertical direction to calculate the horizontal variance addition value H B and the vertical variance addition value. Find V B and the Laplacian substitute variance addition value L B.
- abs represents an absolute value.
- i indicates the x-coordinate of the sample point in the 4 ⁇ 4 pixel block
- j indicates the y-coordinate of the sample point in the 4 ⁇ 4 pixel block.
- the variance addition unit 123 supplies the obtained horizontal variance addition value H B , vertical variance addition value V B , and Laplacian substitute variance addition value L B to the class value determination unit 124.
- step S141 If it is determined in step S141 that the target pixel is not the pixel in the first row (Row: 1) in the 4 ⁇ 4 pixel block B, the process skips steps S142 and S143, and proceeds to step S144.
- step S144 the target pixel determination unit 131 determines whether the target pixel is the last target pixel (that is, the sixteenth pixel) in the 4 ⁇ 4 pixel block B. If it is determined in step S144 that the target pixel is not the last target pixel in the 4 ⁇ 4 pixel block B, the process returns to step S141, and the subsequent processing is repeated for the target pixel selected next in raster scan order.
- step S145 the class value determination unit 124 determines a class value from the calculated value of variance. That is, the class value determination unit 124 determines the class value of the 4 ⁇ 4 pixel block B based on the horizontal variance addition value H B , the vertical variance addition value V B , and the Laplacian substitution variance addition value L B. The class value is supplied to the ALF filter operation unit 103.
- step S146 the end determination unit 132 determines whether the 4 ⁇ 4 pixel block B is the last 4 ⁇ 4 pixel block in the screen. If it is determined in step S146 that the 4 ⁇ 4 pixel block B is not the last 4 ⁇ 4 pixel block in the screen, the process returns to step S141 to process the next 4 ⁇ 4 pixel block in raster scan order. The subsequent processing is repeated.
- step S146 If it is determined in step S146 that this 4 ⁇ 4 pixel block B is the last 4 ⁇ 4 pixel block in the screen, the class classification process of FIG. 14 ends.
- the variance has been described as a representative value of the evaluation value serving as an index (reference) when performing class classification, it is not limited to the variance and an index when performing class classification ( Any other value may be used as long as it is a representative value serving as a reference.
- Other values include, for example, the sum of difference values with adjacent pixels, the difference value, the distribution of differences, the correlation with adjacent pixels, and the like.
- the block size is not limited to 4 ⁇ 4 pixels, and for example, 2 ⁇ 2 pixels or 8 ⁇ It may be eight pixels.
- the HEVC scheme is used as a coding scheme.
- 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 an in-loop filter.
- the present disclosure is, for example, satellite broadcasting, cable television, the Internet, mobile phones, etc. of image information (bit stream) compressed by orthogonal transformation such as discrete cosine transformation and motion compensation as in the HEVC system etc.
- the present invention can be applied to an image encoding device and an image decoding device that are used when receiving via the network media of
- the present disclosure can be applied to an image encoding device and an image decoding device used when processing on storage media such as an optical disk, a magnetic disk, and a flash memory.
- FIG. 15 is a block diagram showing an example of a hardware configuration of a computer that executes the series of processes described above according to a program.
- a central processing unit (CPU) 501 a read only memory (ROM) 502, and a random access memory (RAM) 503 are mutually connected by a bus 504.
- CPU central processing unit
- ROM read only memory
- RAM random access memory
- an input / output interface 505 is 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 non-volatile memory, and the like.
- the communication unit 509 includes a network interface and the like.
- the drive 510 drives removable media 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 into the RAM 503 via the input / output interface 505 and the bus 504 and executes the program. Processing is performed.
- the program executed by the computer 500 can be provided by being recorded on, for example, a removable medium 511 as a package medium or the like. Also, 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 media 511 to the drive 510.
- the program can be received by the communication unit 509 via a wired or wireless transmission medium and installed in the storage unit 508.
- the program can be installed in advance in the ROM 502 or the storage unit 508.
- the program executed by the computer may be a program that performs processing in chronological order according to the order described in this specification, in parallel, or when necessary, such as when a call is made. It may be a program to be processed.
- the step of describing the program to be recorded on the recording medium is not limited to processing performed chronologically in the order described, but not necessarily parallel processing It also includes processing to be executed individually.
- system represents the entire apparatus configured by a plurality of devices (apparatus).
- the configuration described above as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
- the configuration described as a plurality of devices (or processing units) in the above may be collectively configured as one device (or processing unit).
- configurations other than those described above may be added to the configuration of each device (or each processing unit).
- part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) if the configuration or operation of the entire system is substantially the same. . That is, the present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the present technology.
- the image encoding device and the image decoding device include a transmitter or a receiver in optical satellite, 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 apparatus which records an image on a medium such as a magnetic disk and a flash memory, or a reproduction apparatus which reproduces an image from the storage medium.
- a recording apparatus which records an image on a medium such as a magnetic disk and a flash memory
- a reproduction apparatus which reproduces an image from the storage medium.
- FIG. 16 shows an example of a schematic configuration of a television set to which the embodiment described above is applied.
- the television device 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.
- the tuner 902 extracts a signal of a desired channel from a broadcast signal received via the antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the coded bit stream obtained by demodulation to the demultiplexer 903. That is, the tuner 902 has a role as a transmission means in the television apparatus 900 for receiving a coded stream in which an image is coded.
- the demultiplexer 903 separates the video stream and audio stream of the program to be viewed from the coded bit stream, and outputs the separated streams to the decoder 904. Also, the demultiplexer 903 extracts auxiliary data such as an EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. When the coded bit stream is scrambled, the demultiplexer 903 may perform descrambling.
- 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. Further, the decoder 904 outputs the 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 a video. Also, the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via the network. Further, the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting. Furthermore, the video signal processing unit 905 may generate an image of a graphical user interface (GUI) such as a menu, a button, or a cursor, for example, and may superimpose the generated image on the output image.
- GUI graphical 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 the image surface of a display device (for example, a liquid crystal display, a plasma display, or OELD (Organic ElectroLuminescence Display) (organic EL display)). Or display an image.
- a display device for example, a liquid crystal display, a plasma display, or OELD (Organic ElectroLuminescence Display) (organic EL display)). Or display an image.
- the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on audio data input from the decoder 904, and causes the speaker 908 to output audio. Further, 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 device 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 serves as a transmission means in the television apparatus 900 for receiving the coded stream in which the image is coded.
- 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 by the memory is read and executed by the CPU, for example, when the television device 900 is started.
- the CPU controls the operation of the television apparatus 900 according to an operation signal input from, for example, the user interface 911 by executing a program.
- the user interface 911 is connected to the control unit 910.
- the user interface 911 has, for example, buttons and switches for the user to operate the television device 900, a receiver of remote control signals, 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 mutually 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.
- the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment. As a result, when decoding an image in the television apparatus 900, it is possible to reduce the line memory required in the lower part of the LCU.
- FIG. 17 shows an example of a schematic configuration of a mobile phone to which the embodiment described above is applied.
- the 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 multiplexing and separating unit 928, a recording and reproducing unit 929, a display unit 930, a control unit 931, an operation.
- a unit 932 and a bus 933 are provided.
- 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 mutually 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.
- the cellular phone 920 can transmit and receive audio signals, transmit and receive electronic mail or image data, capture an image, and record data in various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode. Do 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, and A / D converts and compresses the converted audio data. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
- the communication unit 922 encodes and modulates audio data to generate 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 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception 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 and D / A converts audio data 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 an electronic mail in accordance with an operation by the user via the operation unit 932. Further, the control unit 931 causes the display unit 930 to display characters. Further, the control unit 931 generates electronic mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated electronic mail data to the communication unit 922.
- a communication unit 922 encodes and modulates electronic mail data to generate 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 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
- the communication unit 922 demodulates and decodes the received signal to restore the e-mail data, and outputs the restored e-mail data to the control unit 931.
- the control unit 931 causes the display unit 930 to display the content of the e-mail, and stores the e-mail data in the storage medium of the recording and reproduction unit 929.
- the recording and reproducing unit 929 includes an arbitrary readable and writable storage medium.
- the storage medium may be a built-in storage medium such as RAM or flash memory, and may be an externally mounted type such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Unallocated Space Bitmap) memory, or memory card Storage media.
- the camera unit 926 captures an image of 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 and reproduction 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 communication unit 922 multiplexes the multiplexed stream.
- Output to The communication unit 922 encodes and modulates the stream to generate a transmission signal.
- the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
- the transmission signal and the reception signal may include a coded 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 to generate video data.
- the video data is supplied to the display unit 930, and the display unit 930 displays a series of images.
- the audio codec 923 decompresses and D / A converts the audio stream 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 functions of the image encoding device and the image decoding device according to the above-described embodiment. As a result, reduction of line memory required in the lower part of the LCU can be achieved when encoding and decoding an image in the mobile phone 920.
- FIG. 18 shows an example of a schematic configuration of a recording and reproducing apparatus to which the embodiment described above is applied.
- the recording / reproducing device 940 encodes, for example, audio data and video data of the received broadcast program, and records the encoded data on a recording medium.
- the recording and reproduction device 940 may encode, for example, audio data and video data acquired from another device and record the encoded data on a recording medium.
- the recording / reproducing device 940 reproduces the data recorded on the recording medium on the monitor and the speaker, for example, in accordance with the user's 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. And 950.
- the 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 coded bit stream obtained by demodulation to the selector 946. That is, the tuner 941 has a role as a transmission means in the recording / reproducing device 940.
- the external interface 942 is an interface for connecting the recording and reproducing device 940 to an external device or a network.
- the external interface 942 may be, for example, an IEEE 1394 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 has a role 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 coded bit stream to the selector 946.
- the HDD 944 records an encoded bit stream obtained by compressing content data such as video and audio, various programs, and other data in an internal hard disk. Also, the HDD 944 reads these data from the hard disk when reproducing video and audio.
- the disk drive 945 records and reads data on the attached 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 Blu-ray (registered trademark) disk, etc. It may be.
- the selector 946 selects the coded bit stream input from the tuner 941 or the encoder 943 at the time of recording video and audio, and outputs the selected coded bit stream to the HDD 944 or the disk drive 945. Also, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 at the time of reproduction of video and audio.
- the decoder 947 decodes the coded bit stream to generate video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. Also, the decoder 904 outputs the generated audio data to an external speaker.
- the OSD 948 reproduces the video data input from the decoder 947 and displays the video.
- the OSD 948 may superimpose an image of a GUI 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 programs executed by the CPU, program data, and the like.
- the program stored by the memory is read and executed by the CPU, for example, when the recording and reproducing device 940 is started.
- the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from, for example, the user interface 950 by executing a 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 and reproducing device 940, a receiver of a remote control signal, 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 coding apparatus according to the embodiment described above.
- the decoder 947 has the function of the image decoding apparatus according to the above-described embodiment. As a result, it is possible to reduce the line memory required in the lower part of the LCU when encoding and decoding an image in the recording and reproducing device 940.
- FIG. 19 shows an example of a schematic configuration of an imaging device to which the embodiment described above is applied.
- the imaging device 960 captures an object to generate an image, encodes image data, and records the image data in 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 is provided.
- 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 mutually 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.
- the optical block 961 has a focus lens, an aperture mechanism, and the like.
- the optical block 961 forms an optical image of a subject on the imaging surface of the imaging unit 962.
- the imaging unit 962 includes an image sensor such as a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS), and converts an optical image formed on an 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 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 to generate 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.
- the image processing unit 964 may output the image data input from the signal processing unit 963 to the display unit 965 to display an image. The image processing unit 964 may superimpose the display data acquired from the OSD 969 on the image to be output to the display unit 965.
- the OSD 969 generates an image of a GUI such as a menu, a button, or a cursor, for example, and outputs the generated image to the image processing unit 964.
- a GUI such as a menu, a button, or a cursor
- the external interface 966 is configured as, for example, a USB input / output terminal.
- the external interface 966 connects the imaging device 960 and the printer, for example, when printing an image.
- a drive is connected to the external interface 966 as necessary.
- removable media such as a magnetic disk or an optical disk may be attached to the drive, and a program read from the removable media may 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 in the media drive 968 may be, for example, any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
- the recording medium may be fixedly attached to the media drive 968, and a non-portable storage unit such as, for example, a built-in hard disk drive or a solid state drive (SSD) may be configured.
- SSD solid state drive
- the control unit 970 includes a processor such as a CPU, and memories such as a RAM and a ROM.
- the memory stores programs executed by the CPU, program data, and the like.
- the program stored by the memory is read and executed by the CPU, for example, when the imaging device 960 starts up.
- the CPU controls the operation of the imaging device 960 according to an operation signal input from, for example, the user interface 971 by executing a 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 functions of the image coding device and the image decoding device according to the above-described embodiment. As a result, it is possible to reduce the line memory required in the lower part of the LCU when encoding and decoding an image in the imaging device 960.
- the filtering process for the vertical boundary is mainly performed prior to the filtering process for the horizontal boundary has been described, but the present embodiment is also applicable to the case where the filtering process for the horizontal boundary is performed first.
- the size of the processing unit of the deblocking filter or the size of the LCU is not limited to the example described herein, and may be another size.
- the filter for the filtering process for the vertical boundary is expressed as “H (horizontal) filter”.
- the filter taps of the filtering process on the horizontal boundary are arranged along the vertical direction, the filter of the filtering process on the horizontal boundary is expressed as "V (vertical) filter”.
- V (vertical) filter the filter of the filtering process for the vertical boundary
- H (horizontal) filter the filter of the filtering process for the horizontal boundary
- the method of transmitting such information is not limited to such an example.
- the information may be transmitted or recorded as separate data associated with the coded bit stream without being multiplexed into the coded bit stream.
- the term “associate” allows an image (a slice or a block, which may be a part of an image) included in a bitstream to be linked at the time of decoding with information corresponding to the image. Means That is, the information may be transmitted on a different transmission path from the image (or bit stream).
- the 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 any unit such as, for example, a plurality of frames, one frame, or a part in a frame.
- the present technology can also have the following configurations.
- a decoding unit that decodes an encoded stream to generate an image
- a sample pixel used when calculating an evaluation value serving as a reference when performing block classification on a block basis, with respect to pixels forming a block of an image generated by the decoding unit as a target Setting section to set as A class classification unit that classifies, on a block basis, the pixels constituting the block of the image generated by the decoding unit based on the evaluation value of the sample pixel set by the setting unit;
- An image processing apparatus comprising: a filter processing unit that performs filter processing on a block basis on an image generated by the decoding unit according to a class classified by the classification unit.
- the block is composed of 4 ⁇ 4 pixels
- the image processing apparatus according to (1) wherein the setting unit sets four pixels located at an upper part of the block as sample pixels.
- the setting unit samples the pixels in the first column and the third column from the left in the first row from the top, and the pixels in the first column and the third column from the left in the third row from the top in the block
- the image processing apparatus according to (2) which is set as a pixel.
- the image processing apparatus according to (2) wherein the setting unit sets, as sample pixels, pixels in the first to fourth rows from the left in the first column from the top in the block.
- the image processing apparatus wherein the evaluation value is a variance (dispersion value).
- the image processing device Decode the encoded stream to generate an image, The pixel located at the upper part of the block is set as a sample pixel to be used when calculating an evaluation value as a reference when performing class classification on a block basis, with respect to pixels forming the block of the generated image Based on the evaluation value of the set sample pixel, class-based classification is performed on a block basis for pixels constituting the block of the generated image, An image processing method for filtering a generated image on a block basis according to a classified class.
- a setting unit configured to set sample pixels to be used when A classification unit that classifies, on a block basis, pixels that make up a block of a locally decoded image based on the evaluation value of the sample pixel set by the setting unit;
- a filter processing unit that performs block-based filtering on the locally decoded image according to the class classified by the classification unit;
- An encoding unit that encodes the image using the image filtered by the filter processing unit.
- the block is composed of 4 ⁇ 4 pixels
- the image processing apparatus according to (8) wherein the setting unit sets four pixels located at an upper part of the block as sample pixels.
- the setting unit samples 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.
- (12) The image processing apparatus according to any one of (8) to (11), further including an evaluation value calculation unit that calculates an evaluation value of the sample pixel set by the setting unit.
- the image processing apparatus When coding an image, an evaluation value is calculated which serves as a reference when performing block classification on a pixel basis, for pixels constituting a block of a locally decoded image as a target. Set as the sample pixel to be used Based on the set evaluation value of sample pixels, class classification is performed on a block basis for pixels constituting a block of a locally decoded image, Block-wise filter the locally decoded image according to the classified class, An image processing method for encoding an image using a filtered image.
- a decoding unit that decodes the coded stream to generate an image;
- the class classification is performed on the basis of the position of the sample pixel used when calculating the evaluation value to be a reference when performing the class classification on a block basis, with respect to the pixels constituting the block of the image generated by the decoding unit.
- An image processing apparatus comprising: a filter processing unit that performs filter processing on a block basis on an image generated by the decoding unit according to a class classified by the classification unit.
- the image processing apparatus further includes 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 (15), wherein the setting unit restricts the position of the sample pixel and the reference range with respect to pixels that configure a block of the image subjected to the adaptive offset filter process.
- the setting unit sets, as the sample pixel, a pixel for which the adaptive offset filter process has been completed.
- a deblocking filter processing unit for performing deblocking filter processing on the image decoded by the decoding unit further comprising: The image processing apparatus according to (16), wherein the adaptive offset filter processing unit performs the adaptive offset filter processing on the image on which the deblocking filter processing has been performed by the deblocking filter processing unit.
- the image processing apparatus Decode the encoded stream to generate an image, A position of a sample pixel used when calculating an evaluation value as a reference when performing classification based on a block basis on pixels forming a block of the generated image, and a reference when performing classification based on the block Limit the reference range to be referred to when calculating the evaluation value Classify on a block basis the pixels making up a block of the generated image based on the evaluation value calculated with the position of the limited sample pixel and the reference range, An image processing method for filtering a generated image on a block basis according to a classified class.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本開示は、LCUの下部において必要なラインメモリの削減を図ることができるようにする画像処理装置および方法に関する。 適応ループフィルタにおいては、ブロック内における、上から1行目の左から1列目および3列目の画素と、上から2行目の左から1列目および3列目の画素が、サンプル点として設定される。したがって、4画素のバリアンス計算の際に参照される画素の範囲は、垂直方向に4画素×水平方向に5画素の範囲となり、従来と比して垂直方向に1ライン分小さくすることができる。本開示は、例えば、画像処理装置に適用することができる。
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画素のブロックのフィルタ係数の決定が困難となって、フィルタ処理が実行できなくなることがある。このため、アーキテクチャによって、最大の符号化単位であるLCUの下部においてラインメモリを多く持つ必要があった。
本開示は、このような状況に鑑みてなされたものであり、LCUの下部において必要なラインメモリの削減を図る。
本開示の第1の側面の画像処理装置は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、前記設定部により設定されたサンプル画素の評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部とを備える。
前記ブロックは、4×4の画素で構成されており、前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素として設定することができる。
前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定することができる。
前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定することができる。
前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段をさらに備えることができる。
前記評価値は、バリアンス(分散値)である。
本開示の第1の側面の画像処理方法は、画像処理装置が、符号化ストリームを復号処理して画像を生成し、生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、設定されたサンプル画素の評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する。
本開示の第2の側面の画像処理装置は、画像を符号化する際にローカル復号処理された画像を構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、前記設定部により設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、前記クラス分類部によりクラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理するフィルタ処理部と、前記フィルタ処理部によりフィルタ処理された画像を用いて、前記画像を符号化する符号化部とを備える。
前記ブロックは、4×4の画素で構成されており、前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素に設定することができる。
前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定することができる。
前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定することができる。
前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段をさらに備えることができる。
前記評価値は、バリアンス(分散値)である。
本開示の第2の側面の画像処理方法は、画像処理装置が、画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、クラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理し、フィルタ処理された画像を用いて、前記画像を符号化する。
本開示の第3の側面の画像処理装置は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限する設定部と、前記設定部により制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部とを備える。
前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部をさらに備え、前記設定部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、前記サンプル画素の位置と前記参照範囲とを制限することができる。
前記設定部は、前記適応オフセットフィルタ処理が終了した画素を、前記サンプル画素として設定することができる。
前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部をさらに備え、前記適応オフセットフィルタ処理部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行うことができる。
本開示の第3の側面の画像処理方法は、画像処理装置が、符号化ストリームを復号処理して画像を生成し、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限し、制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する。
本開示の第1の側面においては、符号化ストリームを復号処理して画像が生成され、生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素が、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定される。そして、設定されたサンプル画素の評価値に基づいて、生成された画像のブロックを構成する画素が対象として、ブロックベースでクラス分類され、クラス分類されたクラスに従って、生成された画像が、ブロックベースでフィルタ処理される。
本開示の第2の側面においては、画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素が、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定される。そして、設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素が対象として、ブロックベースでクラス分類され、クラス分類されたクラスに従って、ローカル復号処理された画像が、ブロックベースでフィルタ処理され、フィルタ処理された画像を用いて、前記画像が符号化される。
本開示の第3の側面においては、画符号化ストリームを復号処理して画像が生成され、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とが制限される。そして、制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、生成された画像のブロックを構成する画素が対象とされて、ブロックベースでクラス分類され、クラス分類されたクラスに従って、生成された画像が、ブロックベースでフィルタ処理される。
なお、上述の画像処理装置は、独立した装置であっても良いし、1つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
本開示の第1および第3の側面によれば、画像を復号することができる。特に、ラインメモリの削減を図ることができる。
本開示の第2の側面によれば、画像を符号化することができる。特に、ラインメモリの削減を図ることができる。
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.装置および動作の概要
2.従来の手法の説明
3.第1の実施の形態
4.第2の実施の形態
5.第3の実施の形態
6.応用例
1.装置および動作の概要
2.従来の手法の説明
3.第1の実施の形態
4.第2の実施の形態
5.第3の実施の形態
6.応用例
<1.装置および動作の概要>
[画像符号化装置の構成例]
図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によるフィルタ後の画像のブロックの上部から4つの画素をサンプル点(画素)として設定し、設定したサンプル点で計算されたバリアンス(分散)によりクラス分類を行う。適応ループフィルタ42aは、分類されたクラスに応じたフィルタ係数で、画像に対してフィルタ処理を行い、フィルタ処理結果を、フレームメモリ32に供給する。適応ループフィルタ42aの詳細については、図9を参照して後述される。
なお、本明細書において詳細な説明は省略するが、画像符号化装置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により実行される符号化処理の流れについて説明する。
図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は、入力画像のブロックの上部から4つの画素をサンプル点として設定し、設定したサンプル点で計算されたバリアンス(分散)により、ブロックベースのクラス分類を行う。適応ループフィルタ42aは、分類されたクラスに応じて、入力画像に対してフィルタ処理を行い、フィルタ処理結果を、フレームメモリ32に供給する。なお、この適応ループフィルタ処理の詳細は、図11を参照して後述される。
ステップ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に対応する復号装置である。
図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に供給する。
なお、本明細書において詳細な説明は省略するが、このquad-tree構造と分割領域毎のオフセット値は、画像符号化装置11の適応オフセットフィルタ41により算出され、符号化されて送られてきたものである。そして、画像符号化装置11により符号化されたquad-tree構造と分割領域毎のオフセット値は、画像復号装置51において受信されて、可逆復号部62により復号されて、適応オフセットフィルタ81により用いられる。
適応ループフィルタ42bは、図1の画像符号化装置11の適応ループフィルタ42aと基本的に同様に構成され、ブロックベースでクラス分類を行い、適応ループフィルタ処理を行う。適応ループフィルタ42bは、適応オフセットフィルタ81によるフィルタ後の画像のブロックの上部から4つの画素をサンプル点として設定し、設定したサンプル点で計算されたバリアンス(分散)によりクラス分類を行う。適応ループフィルタ42bは、分類されたクラスに応じたフィルタ係数で、画像に対してフィルタ処理を行い、フィルタ処理結果を、画面並べ替えバッファ67に供給する。適応ループフィルタ42bの詳細については、図9を参照して後述される。
なお、本明細書において詳細な説明は省略するが、画像復号装置51において、フィルタ係数は、画像符号化装置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により実行される復号処理の流れの例を説明する。
図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は、入力画像のブロックの上部から4つのサンプル点を設定し、設定したサンプル点で計算されたバリアンス(分散)によりブロックベースでクラス分類を行う。適応ループフィルタ42bは、分類されたクラスに応じて、入力画像に対してフィルタ処理を行い、フィルタ処理結果を、画面並べ替えバッファ67およびフレームメモリ69に供給する。なお、この適応ループフィルタ処理は、図2のステップS24の適応ループフィルタ処理と基本的に同じ処理であり、その詳細は、図11を参照して後述される。
ステップS61においてフレームメモリ69は、フィルタリングされた画像を記憶する。
ステップS62において、画面並べ替えバッファ67は、適応ループフィルタ42b後の画像の並べ替えを行う。すなわち画像符号化装置11の画面並べ替えバッファ22により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS63において、D/A変換部68は、画面並べ替えバッファ67からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS63の処理が終了すると、復号処理が終了される。
<従来の手法の説明>
[従来の適応ループフィルタの説明]
図5を参照して、従来のブロックベースの適応ループフィルタについて説明する。図5の例においては、左側に、HEVC(High Efficiency Video Coding)方式における手法、右側に、非特許文献1の提案における手法が示されている。丸は、画素を表し、黒丸は、バリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行うブロックを表している。
[従来の適応ループフィルタの説明]
図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列目の画素である。
この提案により、クラス分類の計算が削減される。
ところで、このようなブロックベースでクラス分類を行う適応ループフィルタにおいては、クラス分類のためのバリアンスを計算する際に、垂直方向の参照が大きいと、LCU(Largest Coding Unit)の下部では、ラインメモリを多く持つ必要があった。
ここで、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境界と称する場合、それは、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画素のブロックのクラス分類が行うことができない。このため、4×4画素のブロックのフィルタ係数を決定することが困難であり、その結果、フィルタ処理も行うことができないので、アーキテクチャによっては、LCUの下部では、ラインメモリを多く保持しなければならなかった。
そこで、以下に説明する適応ループフィルタにおいては、バリアンスを計算するブロックにおけるサンプル点を、ブロックの上部に位置する画素に変更することにより、ラインメモリの削減を図る。
ここで、ブロックの上部に位置するとは、ブロックサイズの半分のサイズよりも上の部分に位置することを意味する。
ブロックの上部に位置する画素は、例えば、ブロックサイズが4×4画素であれば、垂直方向に2画素サンプルポジションを基準として、その基準よりも上に位置する画素であればよい。また、ブロックの上部に位置する画素は、例えば、ブロックサイズが8×8画素であれば、垂直方向に4画素サンプルポジションを基準として、その基準よりも上に位置する画素であればよい。要するに、サンプル点とする画素は、ブロックの上半分内に位置する画素であればよい。
<3.第1の実施の形態>
[適応ループフィルタにおけるサンプル点の例]
まず、図7を参照して、本技術の適応ループフィルタの処理について説明する。なお、図1に示した画像符号化装置11の適応ループフィルタ42aおよび図3に示した画像復号装置51の適応ループフィルタ42bの構成は、共通であってよい。したがって、これ以降の説明においては、個々に区別する必要がない場合、適応ループフィルタ42aおよび適応ループフィルタ42bを適応ループフィルタ42と総称する。
[適応ループフィルタにおけるサンプル点の例]
まず、図7を参照して、本技術の適応ループフィルタの処理について説明する。なお、図1に示した画像符号化装置11の適応ループフィルタ42aおよび図3に示した画像復号装置51の適応ループフィルタ42bの構成は、共通であってよい。したがって、これ以降の説明においては、個々に区別する必要がない場合、適応ループフィルタ42aおよび適応ループフィルタ42bを適応ループフィルタ42と総称する。
図7の例においては、左側に、比較のための非特許文献1の提案における手法、右側に、適応ループフィルタ42による手法が示されている。丸は、画素を表し、黒丸は、バリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行う4×4画素ブロックを表しており、点線は、バリアンスの計算の際に参照される画素の範囲を表している。
非特許文献1の提案では、図5を参照して上述したように4×4画素ブロック内の4画素が、クラス分類のためのバリアンスの計算対象としてサブサンプリングされ、そのサブサンプリングされた4画素についてのみバリアンスを計算してクラス分類が行われる。
サブサンプリングされる4画素は、図7の左側に示されるように、ブロック内における、上から1行目における左から1列目および3列目の画素と、上から3行目における左から1列目および3列目の画素である。
バリアンスの計算には、周辺8画素が必要となるので、上述した4画素のバリアンス計算の際に参照される画素の範囲は、点線に示される5×5画素の範囲となる。
これに対して、適応ループフィルタ42においては、図7の右側に示されるように、ブロック内における、上から1行目の左から1列目および3列目の画素と、上から2行目の左から1列目および3列目の画素が、サンプル点として設定される。
クラス分類のためのバリアンスの計算には、周辺8画素が必要となるので、適応ループフィルタ42の場合、4画素のバリアンス計算の際に参照される画素の範囲は、点線に示される垂直方向に4画素×水平方向に5画素の範囲となる。
すなわち、適応ループフィルタ42においては、4×4画素のバリアンスの計算を行うサンプル点のうち、ブロックの下に位置するサンプル点の位置が、従来と比して垂直方向に1ライン上に変更(設定)される。
これにより、バリアンス計算の際の垂直方向の参照範囲も、従来と比して垂直方向に1ライン上に変更される。すなわち、バリアンス計算の際の垂直方向の参照範囲を、従来と比して1ライン分小さくすることができ、その分、ラインメモリを削減することができる。
[LCU境界における適応ループフィルタの説明]
図8を参照して、適応ループフィルタ42のLCUの水平境界での処理について説明する。図8の例においては、左側に、図6を参照して上述した非特許文献1の提案における手法が比較のために示されている。また、右側に、適応ループフィルタ42による本技術の手法が示されている。なお、図8に示されるLCUの下部は、図6と基本的に同様であるので、その詳細な説明は省略される。
図8を参照して、適応ループフィルタ42のLCUの水平境界での処理について説明する。図8の例においては、左側に、図6を参照して上述した非特許文献1の提案における手法が比較のために示されている。また、右側に、適応ループフィルタ42による本技術の手法が示されている。なお、図8に示されるLCUの下部は、図6と基本的に同様であるので、その詳細な説明は省略される。
図6の場合と同様に、デブロッキングフィルタは、LCU境界において、LCU境界から1ライン目乃至3ライン目の画素を処理する際、LCU境界を介して下に接するLCUの画素(次の4ライン分の画素)が入力されないとデブロッキングVフィルタ処理を開始できない。
したがって、デブロッキングフィルタは、次に処理される対象の1乃至3ライン目の画素の処理で待機(一時停止)することになる。
適応オフセットフィルタは、適応オフセットフィルタのラインメモリに保持されているLCU境界から5ライン目の画素のフィルタ処理を行うには、LCU境界から4ライン目の画素がラインメモリに必要である。しかしながら、LCU境界から4ライン目の画素は、デブロッキングフィルタのラインメモリに保持されているので、適応オフセットフィルタは、LCU境界から5ライン目の画素のフィルタ処理を行うことができない場合がある。このような場合、適応オフセットフィルタは、処理される対象の5ライン目の画素の処理で待機することになる。
非特許文献1に記載の適応ループフィルタは、図8の左側に示されるように、LCU境界から9ライン目乃至12ライン目の4×4画素ブロックのフィルタ処理の後、LCU境界から5ライン目乃至8ライン目の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のバリアンスの計算に必要な画素は、LCU境界から7乃至9ライン目の画素であるので、すでに適応オフセットフィルタが終わっている。しかしながら、画素P3および画素P4のバリアンスの計算に必要な画素の一部(LCU境界から5ライン目の画素)は、まだ適応オフセットフィルタが終わってないので、用いることができない。したがって、適応ループフィルタは、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理で待機することになる。
また、適応ループフィルタのフィルタ処理は、例えば、垂直方向については5タップで行われる。したがって、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理およびフィルタ処理のために、適応ループフィルタのラインメモリには、適応オフセットフィルタ済みの6ライン目乃至10ライン目の画素が保持される。
これに対して、本技術を適用した適応ループフィルタ42は、図8の右側に示されるように、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理を行う。その際、実線に示される4×4画素ブロックのクラス分類処理は、画素P1、画素P2、画素Q1、および画素Q2についてのバリアンスの計算結果により行われる。
画素P1は、4×4画素ブロックにおける上から1行目の左から1列目の画素である。画素P2は、4×4画素ブロックにおける上から1行目の左から3列目の画素である。画素Q1は、4×4画素ブロックにおける上から2行目の左から1列目の画素である。画素Q2は、4×4画素ブロックにおける上から2行目の左から3列目の画素である。
すなわち、適応ループフィルタ42においては、従来のサンプル点である画素P3が、4×4画素ブロックにおける1列上の画素Q1に変更され、従来のサンプル点である画素P4が、4×4画素ブロックにおける1列上の画素Q2に変更されている。すなわち、4つのサンプル点は、すべて4×4画素ブロックにおける上部(上から1または2行目のライン)に位置する画素となる。
画素P1および画素P2のバリアンスの計算に必要な画素は、LCU境界から7乃至9ライン目の画素であるので、すでに適応オフセットフィルタが終わっている。また、画素Q1および画素Q2のバリアンスの計算に必要な画素は、LCU境界から6乃至8ライン目の画素であるので、すでに適応オフセットフィルタが終わっている。
以上により、適応ループフィルタ42は、LCU境界から5ライン目乃至8ライン目の4×4画素ブロックのクラス分類処理を行うことができる。ここで、適応ループフィルタ42のフィルタ処理は、例えば、垂直方向5タップで行われる。
すなわち、4×4画素ブロックにおける1列目の適応ループフィルタ42のフィルタ処理に必要なLCU境界から6ライン目乃至10ライン目の画素についてはすでに適応オフセットフィルタが終わっており、フィルタ処理を行うことができる。したがって、LCU境界から10ライン目の画素は、ラインメモリからリリース(解放)することができ、結果、適応ループフィルタ42のラインメモリには、適応オフセットフィルタが終わっている6ライン目乃至9ライン目の画素が保持されていればよい。
以上のように、適応ループフィルタ42のラインメモリにおいては、従来の適応ループフィルタのラインメモリより、保持するラインを1ライン少なくすることができる。
HEVC方式における画像サイズは、4k×2kであり、HEVC方式のラインメモリ1ラインは、画面サイズが1920×1080であるH.264/AVCのデブロッキングのラインメモリ2ラインに相当する。H.264/AVCでは、ラインメモリ4ラインを搭載しているので、HEVC方式のラインメモリ1ラインの削減は、H.264/AVCのラインメモリの50%の削減に相当する。
すなわち、ラインメモリ1ラインの削減は、効果が大きい。
[適応ループフィルタの構成例]
図9は、本開示を適用した適応ループフィルタの構成例を示すブロック図である。
図9は、本開示を適用した適応ループフィルタの構成例を示すブロック図である。
図9の例において、適応ループフィルタ42は、ラインメモリ101、ALFクラス分類部102、ALFフィルタ演算部103、および制御部104を含むように構成される。
前段からの適応オフセットフィルタ済みの画素は、ラインメモリ101、ALFクラス分類部102、およびALFフィルタ演算部103に入力される。なお、前段とは、図1の画像符号化装置11の場合、適応オフセットフィルタ41であり、図3の画像復号装置51の場合、適応オフセットフィルタ81である。
ラインメモリ101は、LCU境界において、前段から入力される適応オフセットフィルタ済みの画素を一旦保持する。
ALFクラス分類部102は、制御部104からの制御信号に応じて、処理対象のブロックがLCU境界(LCUの下部)ではない場合、前段から入力される適応オフセットフィルタ済みの画素を用いて、4×4画素ブロック毎にクラス分類を行う。
ALFクラス分類部102は、制御部104からの制御信号に応じて、処理対象のブロックがLCU境界(LCUの下部)である場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を用いて、4×4画素ブロック毎にクラス分類を行う。
クラス分類の際、ALFクラス分類部102においては、4×4画素ブロックのうち、そのブロックの上部から4つの画素がサンプルされて、その画素毎に周辺8画素が用いられて、バリアンスが計算される。
ALFクラス分類部102は、分類したクラス値を、ALFフィルタ演算部103に供給する。
ALFフィルタ演算部103は、制御部104からの制御信号に応じて、処理対象のブロックがLCU境界(LCUの下部)ではない場合、前段から入力される適応オフセットフィルタ済みの画素に対してフィルタ演算を行う。
ALFフィルタ演算部103は、制御部104からの制御信号に応じて、処理対象のブロックがLCU境界(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にそれぞれ供給する。
[ALFクラス分類部の構成例]
図10は、図9のALFクラス分類部の構成例を示すブロック図である。
図10は、図9のALFクラス分類部の構成例を示すブロック図である。
図10の例において、ALFクラス分類部102は、画像メモリ121、水平・垂直バリアンス算出部122、バリアンス加算部123、クラス値決定部124、および制御部125を含むように構成される。
画像メモリ121には、前段あるいはラインメモリ101からの適応オフセットフィルタ済みの画素が入力され、保持される。
水平・垂直バリアンス算出部122は、制御部125の制御のもと、画像メモリ121に蓄積された4×4画素ブロックB内の画素のうち、サンプル点である画素について、水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)を算出する。サンプル点である画素は、上述した図7の場合、画素P1,画素P2,画素Q1,画素Q2である。
水平・垂直バリアンス算出部122は、水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)をバリアンス加算部123に供給する。
バリアンス加算部123は、制御部125の制御のもと、水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)を用いて、水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBを求める。バリアンス加算部123は、求めた水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBを、クラス値決定部124に供給する。
ここで、図7の例の場合の、水平方向のバリアンス値H(i,j)、垂直方向のバリアンス値V(i,j)、水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBは、次の式(1)で求められる。
クラス値決定部124は、サンプル点である画素についての水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBに基づいて、この4×4画素ブロックBのクラス値を求める。クラス値決定部124は、求めたクラス値を、ALFフィルタ演算部103に供給する。
制御部125は、対象画素判定部131および終了判定部132を含むように構成されており、ALFクラス分類部102の各部を制御する。
対象画素判定部131は、画像メモリ121に蓄積された4×4画素ブロックB内の画素を判定し、水平・垂直バリアンス算出部122およびバリアンス加算部123を制御する。すなわち、対象画素判定部131は、画像メモリ121に蓄積された4×4画素ブロックB内の画素が、例えば、図7を参照して上述した所定の位置の画素であるか否かを判定する。そして、対象画素判定部131は、所定の位置の画素であると判定した画素をサンプル点に設定して、設定したサンプル点について、水平・垂直バリアンス算出部122およびバリアンス加算部123を制御し、バリアンスを計算させる。
終了判定部132は、ALFクラス分類部102における処理の終了を判定する。終了判定部132は、例えば、処理対象の画素が、4×4画素ブロックBの最後の画素であるか、あるいは、処理対象のブロックBが、画面内最後の4×4画素ブロックであるかを判定し、クラス値決定部124の処理を制御する。
[適応ループフィルタの処理例]
次に、図11のフローチャートを参照して、適応ループフィルタ42の適応ループフィルタ処理を説明する。なお、図11の処理は、上述した図2のステップS24の適応ループフィルタ処理の例であって、図4のステップS60の適応ループフィルタ処理の例である。
次に、図11のフローチャートを参照して、適応ループフィルタ42の適応ループフィルタ処理を説明する。なお、図11の処理は、上述した図2のステップS24の適応ループフィルタ処理の例であって、図4のステップS60の適応ループフィルタ処理の例である。
前段からの適応オフセットフィルタ済みの画素は、ラインメモリ101、ALFクラス分類部102、およびALFフィルタ演算部103に入力される。
ステップS101において、ALFクラス分類部102は、適応オフセットフィルタ済みの画素を用いて、4×4画素ブロックB毎にクラス分類処理を行う。なお、このクラス分類処理の詳細は後述される。
なお、ALFクラス分類部102は、制御部104からの制御信号に応じて、処理対象のブロックBがLCU境界(LCUの下部)ではない場合、前段から入力される適応オフセットフィルタ済みの画素を用いて、4×4画素ブロックB毎にクラス分類を行う。
ALFクラス分類部102は、制御部104からの制御信号に応じて、処理対象のブロックBがLCU境界(LCUの下部)である場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を用いて、4×4画素ブロックB毎にクラス分類を行う。
クラス分類された結果の4×4画素ブロックB毎のクラス値は、ALFフィルタ演算部103に供給される。
ステップS102において、ALFフィルタ演算部103は、適応オフセットフィルタ済みの画素に対して、ALFクラス分類部102からのクラス値に応じたフィルタ係数を用いて、フィルタ演算を行う。
ALFフィルタ演算部103は、制御部104からの制御信号に応じて、処理対象のブロックBがLCU境界(LCUの下部)ではない場合、前段から入力される適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。
ALFフィルタ演算部103は、制御部104からの制御信号に応じて、処理対象のブロックがLCU境界(LCUの下部)である場合、ラインメモリ101に保持されている適応オフセットフィルタ済みの画素を中心としたタップに対してフィルタ演算を行う。
ALFフィルタ演算部103は、フィルタ演算後の出力画素を、後段へ供給する。
[クラス分類の処理例]
次に、図12のフローチャートを参照して、図11のステップS101におけるクラス分類処理を説明する。図12の例においては、図7を参照して上述した4画素が、サンプル点として設定される例を説明する。
次に、図12のフローチャートを参照して、図11のステップS101におけるクラス分類処理を説明する。図12の例においては、図7を参照して上述した4画素が、サンプル点として設定される例を説明する。
ステップS121において、対象画素判定部131は、画像メモリ121から4×4画素ブロックBから選択した1つの対象画素が、4×4画素ブロックB内の1行目または2行目(Row:1or2)の1列目または2列目(Col:1or2)の画素であるか否かを判定する。
ステップS121において、対象画素が、4×4画素ブロックB内の1行目または2行目(Row:1or2)の1列目または2列目(Col:1or2)の画素であると判定された場合、処理は、ステップS122に進む。
ステップS122において、水平・垂直バリアンス算出部122は、対象画素判定部131の制御のもと、対象画素をサンプル点に設定して、サンプル点についてバリアンスを計算する。水平・垂直バリアンス算出部122は、計算した水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)をバリアンス加算部123に供給する。
ステップS123において、バリアンス加算部123は、制御部125の制御のもと、上述した式(1)により、バリアンスの計算結果を各要素についてそれぞれ加算する。すなわち、バリアンス加算部123は、計算結果である水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)を用いて、水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBを求める。バリアンス加算部123は、求めた水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBを、クラス値決定部124に供給する。
ステップS121において、対象画素が、4×4画素ブロックB内の1行目または2行目(Row:1or2)の1列目または2列目(Col:1or2)の画素ではないと判定された場合、処理は、ステップS122およびS123をスキップし、ステップS124に進む。
ステップS124において、対象画素判定部131は、対象画素が、4×4画素ブロックB内の最後の対象画素(すなわち、16個目の画素)であるか否かを判定する。ステップS124において、4×4画素ブロックB内の最後の対象画素ではないと判定された場合、処理は、ステップS121に戻り、次にラスタスキャン順に選択された対象画素について、それ以降の処理が繰り返される。
ステップS124において、4×4画素ブロックB内の最後の対象画素であると判定された場合、処理は、ステップS125に進む。ステップS125において、クラス値決定部124は、バリアンスの計算値からクラス値を決定する。すなわち、クラス値決定部124は、水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBに基づいて、この4×4画素ブロックBのクラス値を求め、求めたクラス値を、ALFフィルタ演算部103に供給する。
ステップS126において、終了判定部132は、この4×4画素ブロックBが、画面内最後の4×4画素ブロックであるか否かを判定する。ステップS126において、この4×4画素ブロックBが、画面内最後の4×4画素ブロックではないと判定された場合、処理は、ステップS121に戻り、ラスタスキャン順に次の4×4画素ブロックBについて、それ以降の処理が繰り返される。
ステップS126において、この4×4画素ブロックBが、画面内最後の4×4画素ブロックであると判定された場合、図12のクラス分類処理は終了する。
以上のように、クラス分類のためのバリアンス計算対象のサンプル点とする画素の位置を、4×4画素ブロックの上部分に変更したので、ラインメモリ数を減らすことが可能である。
なお、上述したように、サンプル点とする画素の位置は、4×4画素ブロックの上部分であればよく、図7の例に限らない。サンプル点とする画素の位置は、例えば、図13に示すようにしてもよい。
<4.第2の実施の形態>
[適応ループフィルタにおけるサンプル点の例]
次に、図13を参照して、本技術の適応ループフィルタの処理の他の例について説明する。なお、図13の例のサンプル点を用いる場合の適応ループフィルタ42の構成も、図9を参照して上述した構成と基本的に同様であるので、その説明は省略される。
[適応ループフィルタにおけるサンプル点の例]
次に、図13を参照して、本技術の適応ループフィルタの処理の他の例について説明する。なお、図13の例のサンプル点を用いる場合の適応ループフィルタ42の構成も、図9を参照して上述した構成と基本的に同様であるので、その説明は省略される。
図13の例においては、左側に、比較のための非特許文献1の提案における手法、右側に、適応ループフィルタ42による手法が示されている。丸は、画素を表し、黒丸は、バリアンスの計算が行われる画素を示している。また、実線は、クラス分類を行う4×4画素ブロックを表しており、点線は、バリアンスの計算の際に参照される画素の範囲を表している。
非特許文献1の提案では、図5を参照して上述したように4×4画素のブロック内の4画素が、クラス分類のためのバリアンスの計算対象としてサブサンプリングされ、そのサブサンプリングされた4画素についてのみバリアンスを計算してクラス分類が行われる。
サブサンプリングされる4画素は、図13の左側に示されるように、ブロック内における、上から1行目の左から1列目および3列目の画素と、上から3行目の左から1列目および3列目の画素である。
バリアンスの計算には、周辺8画素が必要となるので、上述した4画素のバリアンス計算の際に参照される画素の範囲は、点線に示される5×5画素の範囲となる。
これに対して、適応ループフィルタ42においては、図13の右側に示されるように、ブロック内における、上から1行目における左から1乃至4列目の画素が、サンプル点として設定される。
クラス分類のためのバリアンスの計算には、周辺8画素が必要となるので、適応ループフィルタ42の場合、4画素のバリアンス計算の際に参照される画素の範囲は、点線に示される垂直方向に3画素×水平方向に6画素の範囲となる。
すなわち、適応ループフィルタ42においては、4×4画素のバリアンスの計算を行うサンプル点のうち、ブロックの下に位置するサンプル点の位置が、従来と比して垂直方向に2ライン上に変更(設定)される。
これにより、バリアンス計算の際の垂直方向の参照範囲も、従来と比して2ライン上に変更される。小さくすることができる。すなわち、バリアンス計算の際の垂直方向の参照範囲を、従来に比して2ライン、図7の例の場合と比してさらに1ライン小さくすることができ、その分、ラインメモリを削減することができる。
[クラス分類の処理例]
次に、図14のフローチャートを参照して、図13の例のサンプル点を用いて行われるクラス分類処理を説明する。なお、このクラス分類処理は、図11のステップS101におけるクラス分類処理の他の例である。図14の例においては、図13を参照して上述した4画素が、サンプル点として設定される例を説明する。
次に、図14のフローチャートを参照して、図13の例のサンプル点を用いて行われるクラス分類処理を説明する。なお、このクラス分類処理は、図11のステップS101におけるクラス分類処理の他の例である。図14の例においては、図13を参照して上述した4画素が、サンプル点として設定される例を説明する。
ステップS141において、対象画素判定部131は、画像メモリ121から4×4画素ブロックBから選択した1つの対象画素が、4×4画素ブロックB内の1行目(Row:1)の画素であるか否かを判定する。
ステップS141において、対象画素が、4×4画素ブロックB内の1行目(Row:1)の画素であると判定された場合、処理は、ステップS142に進む。
ステップS142において、水平・垂直バリアンス算出部122は、対象画素判定部131の制御のもと、対象画素をサンプル点に設定して、サンプル点についてバリアンスを計算する。水平・垂直バリアンス算出部122は、計算した水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)をバリアンス加算部123に供給する。
ステップS143において、バリアンス加算部123は、制御部125の制御のもと、次の式(2)により、バリアンスの計算結果を各要素についてそれぞれ加算する。すなわち、バリアンス加算部123は、計算結果である水平方向のバリアンス値H(i,j)と垂直方向のバリアンス値V(i,j)を用いて、水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBを求める。
バリアンス加算部123は、求めた水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBを、クラス値決定部124に供給する。
ステップS141において、対象画素が、4×4画素ブロックB内の1行目(Row:1)の画素ではないと判定された場合、処理は、ステップS142およびS143をスキップし、ステップS144に進む。
ステップS144において、対象画素判定部131は、対象画素が、4×4画素ブロックB内の最後の対象画素(すなわち、16個目の画素)であるか否かを判定する。ステップS144において、4×4画素ブロックB内の最後の対象画素ではないと判定された場合、処理は、ステップS141に戻り、次にラスタスキャン順に選択された対象画素について、それ以降の処理が繰り返される。
ステップS144において、4×4画素ブロックB内の最後の対象画素であると判定された場合、処理は、ステップS145に進む。ステップS145において、クラス値決定部124は、バリアンスの計算値からクラス値を決定する。すなわち、クラス値決定部124は、水平バリアンス加算値HB、垂直バリアンス加算値VB、およびラプラシアン代用バリアンス加算値LBに基づいて、この4×4画素ブロックBのクラス値を求め、求めたクラス値を、ALFフィルタ演算部103に供給する。
ステップS146において、終了判定部132は、この4×4画素ブロックBが、画面内最後の4×4画素ブロックであるか否かを判定する。ステップS146において、この4×4画素ブロックBが、画面内最後の4×4画素ブロックではないと判定された場合、処理は、ステップS141に戻り、ラスタスキャン順に次の4×4画素ブロックについて、それ以降の処理が繰り返される。
ステップS146において、この4×4画素ブロックBが、画面内最後の4×4画素ブロックであると判定された場合、図14のクラス分類処理は終了する。
以上のように、バリアンス計算対象のサンプル点とする画素の位置を、4×4画素ブロックの上部分に変更したので、ラインメモリ数を減らすことが可能である。
なお、上記説明においては、クラス分類を行う際の指標(基準)となる評価値の代表的な値として、バリアンスを用いて説明したが、バリアンスに限定されず、クラス分類を行う際の指標(基準)となる代表値であれば、他の値を用いてもよい。他の値の例としては、例えば、隣接画素との差分値の和、差分値、差分の分布、隣接画素との相関などがあげられる。
また、上記説明においては、クラス分類を行うブロックサイズとして、4×4画素の例を用いて説明したが、ブロックサイズは、4×4画素に限定されず、例えば、2×2画素や8×8画素としてもよい。
以上においては、符号化方式としてHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、インループフィルタとして、少なくともデブロッキングフィルタと適応ループフィルタを含む、その他の符号化方式/復号方式を適用することができる。
なお、本開示は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<5.第3の実施の形態>
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
[コンピュータの構成例]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図15は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータ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の応用例:テレビジョン受像機]
図16は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
[第1の応用例:テレビジョン受像機]
図16は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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の応用例:携帯電話機]
図17は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
図17は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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の応用例:記録再生装置]
図18は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
図18は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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の応用例:撮像装置]
図19は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
図19は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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) 前記ブロックは、4×4の画素で構成されており、
前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素として設定する
前記(1)に記載の画像処理装置。
(3) 前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定する
前記(2)に記載の画像処理装置。
(4) 前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定する
前記(2)に記載の画像処理装置。
(5) 前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段を
さらに備える前記(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記評価値は、バリアンス(分散値)である
前記(5)に記載の画像処理装置。
(7) 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、
設定されたサンプル画素の評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する
画像処理方法。
(8) 画像を符号化する際にローカル復号処理された画像を構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、
前記設定部により設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理するフィルタ処理部と、
前記フィルタ処理部によりフィルタ処理された画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
(9) 前記ブロックは、4×4の画素で構成されており、
前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素に設定する
前記(8)に記載の画像処理装置。
(10) 前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定する
前記(9)に記載の画像処理装置。
(11) 前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定する
前記(9)に記載の画像処理装置。
(12) 前前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段を
さらに備える前記(8)乃至(11)のいずれかに記載の画像処理装置。
(13) 前記評価値は、バリアンス(分散値)である
前記(12)に記載の画像処理装置。
(14) 画像処理装置が、
画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、
設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理し、
フィルタ処理された画像を用いて、前記画像を符号化する
画像処理方法。
(15) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限する設定部と、
前記設定部により制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部と
を備える画像処理装置。
(16) 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
さらに備え、
前記設定部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、前記サンプル画素の位置と前記参照範囲とを制限する
前記(15)に記載の画像処理装置。
(17) 前記設定部は、前記適応オフセットフィルタ処理が終了した画素を、前記サンプル画素として設定する
前記(16)に記載の画像処理装置。
(18) 前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
さらに備え、
前記適応オフセットフィルタ処理部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
前記(16)に記載の画像処理装置。
(19) 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限し、
制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する
画像処理方法。
(1) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、
前記設定部により設定されたサンプル画素の評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部と
を備える画像処理装置。
(2) 前記ブロックは、4×4の画素で構成されており、
前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素として設定する
前記(1)に記載の画像処理装置。
(3) 前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定する
前記(2)に記載の画像処理装置。
(4) 前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定する
前記(2)に記載の画像処理装置。
(5) 前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段を
さらに備える前記(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記評価値は、バリアンス(分散値)である
前記(5)に記載の画像処理装置。
(7) 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、
設定されたサンプル画素の評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する
画像処理方法。
(8) 画像を符号化する際にローカル復号処理された画像を構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、
前記設定部により設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理するフィルタ処理部と、
前記フィルタ処理部によりフィルタ処理された画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
(9) 前記ブロックは、4×4の画素で構成されており、
前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素に設定する
前記(8)に記載の画像処理装置。
(10) 前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定する
前記(9)に記載の画像処理装置。
(11) 前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定する
前記(9)に記載の画像処理装置。
(12) 前前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段を
さらに備える前記(8)乃至(11)のいずれかに記載の画像処理装置。
(13) 前記評価値は、バリアンス(分散値)である
前記(12)に記載の画像処理装置。
(14) 画像処理装置が、
画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、
設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理し、
フィルタ処理された画像を用いて、前記画像を符号化する
画像処理方法。
(15) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限する設定部と、
前記設定部により制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部と
を備える画像処理装置。
(16) 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
さらに備え、
前記設定部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、前記サンプル画素の位置と前記参照範囲とを制限する
前記(15)に記載の画像処理装置。
(17) 前記設定部は、前記適応オフセットフィルタ処理が終了した画素を、前記サンプル画素として設定する
前記(16)に記載の画像処理装置。
(18) 前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
さらに備え、
前記適応オフセットフィルタ処理部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
前記(16)に記載の画像処理装置。
(19) 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限し、
制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する
画像処理方法。
11 画像符号化装置, 26 可逆符号化部, 31 デブロッキングフィルタ, 41 適応オフセットフィルタ, 42,42a,42b 適応ループフィルタ, 51 画像復号装置, 62 可逆復号部, 81 適応オフセットフィルタ, 101 ラインメモリ, 102 ALFクラス分類部, 103 ALFフィルタ演算部, 104 制御部, 121 画素メモリ, 122 水平・垂直バリアンス算出部, 123 バリアンス加算部, 124 クラス値決定部, 125 制御部, 131 対象画素判定部, 132 終了判定部
Claims (19)
- 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、
前記設定部により設定されたサンプル画素の評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部と
を備える画像処理装置。 - 前記ブロックは、4×4の画素で構成されており、
前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素として設定する
請求項1に記載の画像処理装置。 - 前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定する
請求項2に記載の画像処理装置。 - 前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定する
請求項2に記載の画像処理装置。 - 前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段を
さらに備える請求項2に記載の画像処理装置。 - 前記評価値は、バリアンス(分散値)である
請求項5に記載の画像処理装置。 - 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、
設定されたサンプル画素の評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する
画像処理方法。 - 画像を符号化する際にローカル復号処理された画像を構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定する設定部と、
前記設定部により設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理するフィルタ処理部と、
前記フィルタ処理部によりフィルタ処理された画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。 - 前記ブロックは、4×4の画素で構成されており、
前記設定部は、前記ブロックの上部に位置する4つの画素をサンプル画素に設定する
請求項8に記載の画像処理装置。 - 前記設定部は、前記ブロックにおいて、上から1行目の左から1列目および3列目の画素、並びに上から3行目の左から1列目および3列目の画素をサンプル画素として設定する
請求項9に記載の画像処理装置。 - 前記設定部は、前記ブロックにおいて、上から1列目の左から1乃至4行目の画素をサンプル画素として設定する
請求項9に記載の画像処理装置。 - 前記設定部により設定されたサンプル画素の評価値を算出する評価値算出手段を
さらに備える請求項9に記載の画像処理装置。 - 前記評価値は、バリアンス(分散値)である
請求項12に記載の画像処理装置。 - 画像処理装置が、
画像を符号化する際にローカル復号処理された画像のブロックを構成する画素を対象として、前記ブロックの上部に位置する画素を、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素として設定し、
設定されたサンプル画素の評価値に基づいて、ローカル復号処理された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、ローカル復号処理された画像を、ブロックベースでフィルタ処理し、
フィルタ処理された画像を用いて、前記画像を符号化する
画像処理方法。 - 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限する設定部と、
前記設定部により制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、前記復号部により生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類するクラス分類部と、
前記クラス分類部によりクラス分類されたクラスに従って、前記復号部により生成された画像を、ブロックベースでフィルタ処理するフィルタ処理部と
を備える画像処理装置。 - 前記復号部により復号された画像に適応オフセットフィルタ処理を行う適応オフセットフィルタ処理部を
さらに備え、
前記設定部は、前記適応オフセットフィルタ処理が行われた画像のブロックを構成する画素を対象として、前記サンプル画素の位置と前記参照範囲とを制限する
請求項15に記載の画像処理装置。 - 前記設定部は、前記適応オフセットフィルタ処理が終了した画素を、前記サンプル画素として設定する
請求項16に記載の画像処理装置。 - 前記復号部により復号された画像にデブロッキングフィルタ処理を行うデブロッキングフィルタ処理部を
さらに備え、
前記適応オフセットフィルタ処理部は、前記デブロッキングフィルタ処理部によりデブロッキングフィルタ処理が行われた画像に前記適応オフセットフィルタ処理を行う
請求項16に記載の画像処理装置。 - 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類を行う際の基準となる評価値を計算する際に用いるサンプル画素の位置とブロックベースでクラス分類を行う際の基準となる評価値を計算する際に参照する参照範囲とを制限し、
制限されたサンプル画素の位置と参照範囲とで計算される評価値に基づいて、生成された画像のブロックを構成する画素を対象として、ブロックベースでクラス分類し、
クラス分類されたクラスに従って、生成された画像を、ブロックベースでフィルタ処理する
画像処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011212551A JP2013074491A (ja) | 2011-09-28 | 2011-09-28 | 画像処理装置および方法 |
JP2011-212551 | 2011-09-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013047335A1 true WO2013047335A1 (ja) | 2013-04-04 |
Family
ID=47995367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/074144 WO2013047335A1 (ja) | 2011-09-28 | 2012-09-21 | 画像処理装置および方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2013074491A (ja) |
WO (1) | WO2013047335A1 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592537A (zh) * | 2017-10-20 | 2018-01-16 | 东华大学 | 一种面向航拍图像集的自适应压缩采样分配方法 |
CN113873237A (zh) * | 2016-12-01 | 2021-12-31 | 谷歌有限责任公司 | 用于恢复由重构产生的劣化帧的劣化图块的方法和装置 |
CN115119046A (zh) * | 2022-06-02 | 2022-09-27 | 绍兴市北大信息技术科创中心 | 一种参考像素集的图像编解码方法、装置及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011013580A1 (ja) * | 2009-07-31 | 2011-02-03 | ソニー株式会社 | 画像処理装置および方法 |
-
2011
- 2011-09-28 JP JP2011212551A patent/JP2013074491A/ja not_active Withdrawn
-
2012
- 2012-09-21 WO PCT/JP2012/074144 patent/WO2013047335A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011013580A1 (ja) * | 2009-07-31 | 2011-02-03 | ソニー株式会社 | 画像処理装置および方法 |
Non-Patent Citations (5)
Title |
---|
CHING-YEH CHEN ET AL.: "Adaptive Loop Filter with Zero Pixel Line Buffers for LCU-based Decoding", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-F054, 6TH MEETING, 14 July 2011 (2011-07-14) - 22 July 2011 (2011-07-22), TORINO, IT, pages 1 - 11, XP030009077 * |
EHSAN MAANI ET AL.: "Modification of ALF classification", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-G351, 7TH MEETING, 21 November 2011 (2011-11-21) - 30 November 2011 (2011-11-30), GENEVA, CH, pages 1 - 6, XP030050476 * |
SEMIH ESENLIK ET AL.: "CE8 subtest 3: Line memory reduction for in-loop filtering", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-F272, 6TH MEETING, 14 July 2011 (2011-07-14) - 22 July 2011 (2011-07-22), TORINO, pages 1 - 9, XP030009295 * |
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, 6TH MEETING, 14 July 2011 (2011-07-14) - 22 July 2011 (2011-07-22), TORINO, ITALY, pages 1 - 5, XP030009324 * |
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, 5TH MEETING, 16 March 2011 (2011-03-16) - 23 March 2011 (2011-03-23), GENEVA, CH, pages 1 - 2, XP030008794 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113873237A (zh) * | 2016-12-01 | 2021-12-31 | 谷歌有限责任公司 | 用于恢复由重构产生的劣化帧的劣化图块的方法和装置 |
CN113873237B (zh) * | 2016-12-01 | 2023-12-29 | 谷歌有限责任公司 | 用于恢复由重构产生的劣化帧的劣化图块的方法和装置 |
CN107592537A (zh) * | 2017-10-20 | 2018-01-16 | 东华大学 | 一种面向航拍图像集的自适应压缩采样分配方法 |
CN107592537B (zh) * | 2017-10-20 | 2019-11-08 | 东华大学 | 一种面向航拍图像集的自适应压缩采样分配方法 |
CN115119046A (zh) * | 2022-06-02 | 2022-09-27 | 绍兴市北大信息技术科创中心 | 一种参考像素集的图像编解码方法、装置及系统 |
CN115119046B (zh) * | 2022-06-02 | 2024-04-16 | 绍兴市北大信息技术科创中心 | 一种参考像素集的图像编解码方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
JP2013074491A (ja) | 2013-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6521013B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
JP5942990B2 (ja) | 画像処理装置および方法 | |
JP2019083545A (ja) | 画像処理装置及び画像処理方法 | |
US10412418B2 (en) | Image processing apparatus and method | |
US20230055659A1 (en) | Image processing device and method using adaptive offset filter in units of largest coding unit | |
JP5810700B2 (ja) | 画像処理装置及び画像処理方法 | |
WO2015005367A1 (ja) | 画像復号装置および方法 | |
US20140286436A1 (en) | Image processing apparatus and image processing method | |
JP2014207536A (ja) | 画像処理装置および方法 | |
WO2013051452A1 (ja) | 画像処理装置および方法 | |
WO2014156708A1 (ja) | 画像復号装置および方法 | |
WO2013047325A1 (ja) | 画像処理装置および方法 | |
WO2013047335A1 (ja) | 画像処理装置および方法 | |
WO2013051453A1 (ja) | 画像処理装置および方法 | |
JP5999449B2 (ja) | 画像処理装置および方法、プログラム、並びに記録媒体 | |
WO2013105458A1 (ja) | 画像処理装置および方法 | |
WO2013105457A1 (ja) | 画像処理装置および方法 | |
JP2012175615A (ja) | 画像処理装置及び画像処理方法 | |
JP2013150124A (ja) | 画像処理装置および方法 | |
US20160037184A1 (en) | Image processing device and method |
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: 12834718 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: 12834718 Country of ref document: EP Kind code of ref document: A1 |