WO2013047325A1 - 画像処理装置および方法 - Google Patents
画像処理装置および方法 Download PDFInfo
- Publication number
- WO2013047325A1 WO2013047325A1 PCT/JP2012/074092 JP2012074092W WO2013047325A1 WO 2013047325 A1 WO2013047325 A1 WO 2013047325A1 JP 2012074092 W JP2012074092 W JP 2012074092W WO 2013047325 A1 WO2013047325 A1 WO 2013047325A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- filter
- image
- unit
- processing
- deblocking
- 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/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
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 line memory with a simple processing structure.
- a deblocking filter, an adaptive loop filter, and an adaptive offset filter are employed as in-loop filters.
- processing is performed in the order of a deblocking filter, an adaptive offset filter, and an adaptive loop filter.
- LCU boundary On the horizontal boundary of the LCU, which is the largest coding unit (hereinafter also simply referred to as an LCU boundary), each line It is necessary to have a memory, and in total, a large amount of line memory is required.
- Non-Patent Document 1 the adaptive offset filter processing (tap reference pixel) for a line held for deblocking uses a reconstructed pixel (that is, a pixel before deblocking).
- a reconstructed pixel that is, a pixel before deblocking
- Non-Patent Document 1 is processing specialized for LCU-based processing. Therefore, when the deblocking filter, the adaptive offset filter, and the adaptive offset filter each perform frame processing by software or the like, the control becomes quite complicated.
- the present disclosure has been made in view of such a situation, and can reduce the line memory with a simple processing structure.
- An image processing device includes a decoding unit that decodes an encoded stream to generate an image, and a first filter process for a reconstructed image of the image generated by the decoding unit.
- a first filter for performing a second filter process different from the first filter process for the reconstructed image of the image generated by the decoding unit, and the first filter An arithmetic unit that performs arithmetic processing using the image on which the filter processing has been performed and the image on which the second filter processing has been performed is provided.
- a control unit that controls the first filter and the second filter may be further provided so that the first filter processing and the second filter processing are performed in parallel.
- the control unit can control to match the output phases of the first filter and the second filter.
- the image processing apparatus further includes a memory that holds a reconstructed image of the image generated by the decoding unit, and the first filter and the second filter can acquire the reconstructed image from the memory.
- the first filter is a filter that removes block boundary noise.
- the first filter is a deblocking filter.
- the deblocking filter may include a filter applied to the left and right pixels of the vertical boundary and a filter applied to the pixels above and below the horizontal boundary.
- the control unit can perform control so that the filter processing applied to the left and right pixels of the vertical boundary and the filter processing applied to the pixels above and below the horizontal boundary are performed in parallel.
- the second filter may include at least one of a third filter that removes ringing and a fourth filter that performs class classification on a block basis.
- the third filter is an adaptive offset filter
- the fourth filter is an adaptive loop filter
- the calculation unit includes an image on which the first filter processing has been performed and an image on which the second filter processing has been performed with a first calculation coefficient corresponding to the first filter processing and the second It is possible to perform arithmetic processing so that addition is performed as a linear sum using the second arithmetic coefficient corresponding to the filter processing.
- the first calculation coefficient and the second calculation coefficient are set according to the distance from the vertical boundary and the horizontal boundary.
- an image processing apparatus generates an image by decoding an encoded stream, and performs a first filter process on a reconstructed image of the generated image. Then, a second filter process different from the first filter process is performed on the reconstructed image of the generated image, and the image subjected to the first filter process and the second filter process are performed. An arithmetic process is performed using the broken image.
- An image processing device includes a first filter that performs a first filter process on a reconstructed image of an image that has been subjected to local decoding processing when the image is encoded, and the local decoding For a reconstructed image of the processed image, a second filter that performs a second filter process different from the first filter process, an image that has been subjected to the first filter process, and the second filter process
- arithmetic unit that performs arithmetic processing using an image that has been subjected to filter processing
- an encoding unit that encodes the image using an image that is a result of arithmetic processing performed by the arithmetic unit.
- a control unit that controls the first filter and the second filter may be further provided so that the first filter processing and the second filter processing are performed in parallel.
- the control unit can control to match the output phases of the first filter and the second filter.
- the image processing apparatus further includes a memory that holds a reconstructed image of the image generated by the decoding unit, and the first filter and the second filter can acquire the reconstructed image from the memory.
- the image processing apparatus performs first filter processing on a reconstructed image of an image that has been locally decoded when the image is encoded, and performs the local decoding
- a second filter process different from the first filter process is performed on the reconstructed image of the processed image, and the image subjected to the first filter process and the second filter process are performed.
- the image is subjected to arithmetic processing, and the image is encoded using the image that is the result of the arithmetic processing.
- An image processing device includes a decoding unit that decodes an encoded stream to generate an image, and a first filter process for a reconstructed image of the image generated by the decoding unit. And a second filter that performs a second filter process different from the first filter process on the image that has been subjected to the first filter process by the first filter. And an arithmetic unit that performs arithmetic processing using the image on which the first filter processing has been performed and the image on which the second filter processing has been performed.
- an image processing apparatus generates an image by decoding an encoded stream, and performs a first filter process on a reconstructed image of the generated image.
- the second filter processing different from the first filter processing is performed on the image on which the first filter processing has been performed, and the image on which the first filter processing has been performed and the second filter
- An arithmetic process is performed using the processed image.
- an image is generated by decoding an encoded stream, and a first filter process is performed on a reconstructed image of the generated image.
- a second filter process different from the first filter process is performed on the reconstructed image of the generated image. Then, arithmetic processing is performed using the image on which the first filter processing has been performed and the image on which the second filter processing has been performed.
- the first filter processing is performed on the reconstructed image of the image that has been locally decoded when the image is encoded.
- a second filter process different from the first filter process is performed on the reconstructed image of the image subjected to the local decoding process.
- arithmetic processing is performed using the image that has been subjected to the first filter processing and the image that has been subjected to the second filter processing, and the image is encoded using the image that is the result of the arithmetic processing. It becomes.
- an image is generated by decoding an encoded stream, and a first filter process is performed on a reconstructed image of the generated image.
- a second filter process different from the first filter process is performed on the image on which the first filter process has been performed.
- arithmetic processing is performed using the image on which the first filter processing has been performed and the image on which the second filter processing has been performed.
- the above-described image processing apparatus may be an independent apparatus, or may be an internal block constituting one image encoding apparatus or image decoding apparatus.
- an image can be decoded.
- the line memory can be reduced with a simple processing structure.
- an image can be encoded.
- the line memory can be reduced with a simple processing structure.
- FIG. 1 It is a block diagram which shows the main structural examples of an image coding apparatus. It is a flowchart explaining the example of the flow of an encoding process. It is a block diagram which shows the main structural examples of an image decoding apparatus. It is a flowchart explaining the example of the flow of a decoding process. It is a figure explaining each line memory number required in the LCU boundary of the conventional in-loop filter. It is a block diagram which shows the structural example of the conventional in-loop filter. It is a block diagram which shows the structural example of the in-loop filter to which this indication is applied. It is a figure which shows the example of the pixel of a LCU boundary. FIG.
- FIG. 8 is a block diagram illustrating a more detailed configuration example of the in-loop filter of FIG. 7. It is a flowchart explaining the process of the in-loop filter of FIG. It is a figure explaining the determination of the weight for a weighted average. It is a figure which shows an example of the weight for a weighted average. It is a figure which shows the output pixel value from the calculating part according to the determination result of the necessity of filtering in a vertical boundary and a horizontal boundary. It is a figure which shows the pattern of the parallel processing which can comprise an in-loop filter. It is a block diagram showing other examples of composition of an in-loop filter to which this indication is applied.
- FIG. 26 is a block diagram illustrating a main configuration example of a personal computer. It is a block diagram which shows an example of a schematic structure of a television apparatus. It is a block diagram which shows an example of a schematic structure of a mobile telephone. It is a block diagram which shows an example of a schematic structure of a recording / reproducing apparatus. It is a block diagram which shows an example of a schematic structure of an imaging device.
- FIG. 1 illustrates a configuration of an embodiment of an image encoding device as an image processing device to which the present disclosure is applied.
- the image encoding device 11 shown in FIG. 1 encodes image data using a prediction process.
- a prediction process for example, HEVC (High) Efficiency Video Coding) method or the like is used.
- the image encoding device 11 includes an A / D (Analog / Digital) conversion unit 21, a screen rearrangement buffer 22, a calculation unit 23, an orthogonal transformation unit 24, a quantization unit 25, and a lossless encoding unit 26. And a storage buffer 27.
- the image encoding device 11 includes an inverse quantization unit 28, an inverse orthogonal transform unit 29, a calculation unit 30, an in-loop filter 31a, a frame memory 32, a selection unit 33, an intra prediction unit 34, a motion prediction / compensation unit 35, A predicted image selection unit 36 and a rate control unit 37 are included.
- the A / D converter 21 A / D converts the input image data, outputs it to the screen rearrangement buffer 22, and stores it.
- the screen rearrangement buffer 22 rearranges the stored frame images in the display order in the order of frames for encoding according to the GOP (Group of Picture) structure.
- the screen rearrangement buffer 22 supplies the image with the rearranged frame order to the arithmetic unit 23.
- the screen rearrangement buffer 22 also supplies the image in which the frame order is rearranged to the intra prediction unit 34 and the motion prediction / compensation unit 35.
- the calculation unit 23 subtracts the predicted image supplied from the intra prediction unit 34 or the motion prediction / compensation unit 35 via the predicted image selection unit 36 from the image read from the screen rearrangement buffer 22, and the difference information Is output to the orthogonal transform unit 24.
- the calculation unit 23 subtracts the prediction image supplied from the intra prediction unit 34 from the image read from the screen rearrangement buffer 22.
- the calculation unit 23 subtracts the prediction image supplied from the motion prediction / compensation unit 35 from the image read from the screen rearrangement buffer 22.
- the orthogonal transform unit 24 performs orthogonal transform such as discrete cosine transform and Karhunen-Loeve transform on the difference information supplied from the computation unit 23 and supplies the transform coefficient to the quantization unit 25.
- the quantization unit 25 quantizes the transform coefficient output from the orthogonal transform unit 24.
- the quantization unit 25 supplies the quantized transform coefficient to the lossless encoding unit 26.
- the lossless encoding unit 26 performs lossless encoding such as variable length encoding and arithmetic encoding on the quantized transform coefficient.
- the lossless encoding unit 26 acquires parameters such as information indicating the intra prediction mode from the intra prediction unit 34, and acquires parameters such as information indicating the inter prediction mode and motion vector information from the motion prediction / compensation unit 35.
- the lossless encoding unit 26 encodes the quantized transform coefficient, encodes each acquired parameter (syntax element), and uses it as part of the header information of the encoded data (multiplexes).
- the lossless encoding unit 26 supplies the encoded data obtained by encoding to the accumulation buffer 27 for accumulation.
- lossless encoding processing such as variable length encoding or arithmetic encoding is performed.
- variable length coding include CAVLC (Context-Adaptive Variable Length Coding).
- arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
- the accumulation buffer 27 temporarily stores the encoded data supplied from the lossless encoding unit 26, and, for example, as a coded image encoded at a predetermined timing, for example, a recording device (not shown) or a transmission in the subsequent stage. Output to the road.
- the transform coefficient quantized by the quantization unit 25 is also supplied to the inverse quantization unit 28.
- the inverse quantization unit 28 inversely quantizes the quantized transform coefficient by a method corresponding to the quantization by the quantization unit 25.
- the inverse quantization unit 28 supplies the obtained transform coefficient to the inverse orthogonal transform unit 29.
- the inverse orthogonal transform unit 29 performs inverse orthogonal transform on the supplied transform coefficient by a method corresponding to the orthogonal transform processing by the orthogonal transform unit 24.
- the inversely orthogonally transformed output (restored difference information) is supplied to the arithmetic unit 30.
- the calculation unit 30 is supplied from the intra prediction unit 34 or the motion prediction / compensation unit 35 to the inverse orthogonal transform result supplied from the inverse orthogonal transform unit 29, that is, the restored difference information, via the predicted image selection unit 36. Predicted images are added to obtain a locally decoded image (decoded image).
- the calculation unit 30 adds the prediction image supplied from the intra prediction unit 34 to the difference information.
- the calculation unit 30 adds the predicted image supplied from the motion prediction / compensation unit 35 to the difference information.
- the decoded image as the addition result is supplied to the in-loop filter 31a and the frame memory 32.
- the in-loop filter 31a is configured to include a deblock filter, an adaptive offset filter, and an adaptive loop filter.
- the in-loop filter 31a applies a process of a deblocking filter, an adaptive offset filter, and an adaptive loop filter to a decoded image pixel (that is, a reconstructed pixel), and an image obtained by adding the filter processing results to the frame memory 32. To supply.
- the in-loop filter 31a At least two processes of the deblocking filter vertical and horizontal, the adaptive offset filter, and the adaptive loop filter are performed in parallel. Details of the configuration and operation of the in-loop filter 31a will be described later with reference to FIG.
- the frame memory 32 outputs the stored reference image to the intra prediction unit 34 or the motion prediction / compensation unit 35 via the selection unit 33 at a predetermined timing.
- the frame memory 32 supplies the reference image to the intra prediction unit 34 via the selection unit 33.
- the frame memory 32 supplies the reference image to the motion prediction / compensation unit 35 via the selection unit 33.
- the selection unit 33 supplies the reference image to the intra prediction unit 34 when the reference image supplied from the frame memory 32 is an image to be subjected to intra coding.
- the selection unit 33 also supplies the reference image to the motion prediction / compensation unit 35 when the reference image supplied from the frame memory 32 is an image to be inter-encoded.
- the intra prediction unit 34 performs intra prediction (intra-screen prediction) for generating a predicted image using pixel values in the screen.
- the intra prediction unit 34 performs intra prediction in a plurality of modes (intra prediction modes).
- the intra prediction unit 34 generates prediction images in all intra prediction modes, evaluates each prediction image, and selects an optimal mode. When the optimal intra prediction mode is selected, the intra prediction unit 34 supplies the prediction image generated in the optimal mode to the calculation unit 23 and the calculation unit 30 via the predicted image selection unit 36.
- the intra prediction unit 34 supplies parameters such as intra prediction mode information indicating the adopted intra prediction mode to the lossless encoding unit 26 as appropriate.
- the motion prediction / compensation unit 35 uses the input image supplied from the screen rearrangement buffer 22 and the reference image supplied from the frame memory 32 via the selection unit 33 for the image to be inter-coded, Motion prediction is performed, motion compensation processing is performed according to the detected motion vector, and a predicted image (inter predicted image information) is generated.
- the motion prediction / compensation unit 35 performs inter prediction processing in all candidate inter prediction modes, and generates a prediction image.
- the motion prediction / compensation unit 35 supplies the generated predicted image to the calculation unit 23 and the calculation unit 30 via the predicted image selection unit 36.
- the motion prediction / compensation unit 35 supplies parameters such as inter prediction mode information indicating the employed inter prediction mode and motion vector information indicating the calculated motion vector to the lossless encoding unit 26.
- the predicted image selection unit 36 supplies the output of the intra prediction unit 34 to the calculation unit 23 and the calculation unit 30 in the case of an image to be subjected to intra coding, and in the case of an image to be subjected to inter coding, the motion prediction / compensation unit 35.
- the output is supplied to the calculation unit 23 and the calculation unit 30.
- the rate control unit 37 controls the quantization operation rate of the quantization unit 25 based on the compressed image stored in the storage buffer 27 so that overflow or underflow does not occur.
- step S11 the A / D converter 21 A / D converts the input image.
- step S12 the screen rearrangement buffer 22 stores the A / D converted images, and rearranges them from the display order of each picture to the encoding order.
- a decoded image to be referred to is read from the frame memory 32 and the intra prediction unit via the selection unit 33 34.
- the intra prediction unit 34 performs intra prediction on the pixels of the block to be processed in all candidate intra prediction modes. Note that pixels that are not filtered by the in-loop filter 31 are used as the decoded pixels that are referred to.
- intra prediction is performed in all candidate intra prediction modes, and cost function values are calculated for all candidate intra prediction modes. Then, based on the calculated cost function value, the optimal intra prediction mode is selected, and the predicted image generated by the intra prediction of the optimal intra prediction mode and its cost function value are supplied to the predicted image selection unit 36.
- the processing target image supplied from the screen rearrangement buffer 22 is an inter-processed image
- the referenced image is read from the frame memory 32 and supplied to the motion prediction / compensation unit 35 via the selection unit 33. Is done.
- the motion prediction / compensation unit 35 performs motion prediction / compensation processing.
- motion prediction processing is performed in all candidate inter prediction modes, cost function values are calculated for all candidate inter prediction modes, and optimal inter prediction is performed based on the calculated cost function values. The mode is determined. Then, the predicted image generated in the optimal inter prediction mode and its cost function value are supplied to the predicted image selection unit 36.
- step S15 the predicted image selection unit 36 selects one of the optimal intra prediction mode and the optimal inter prediction mode based on the cost function values output from the intra prediction unit 34 and the motion prediction / compensation unit 35. Determine the prediction mode. Then, the predicted image selection unit 36 selects a predicted image in the determined optimal prediction mode and supplies it to the calculation units 23 and 30. This predicted image is used for calculations in steps S16 and S21 described later.
- the prediction image selection information is supplied to the intra prediction unit 34 or the motion prediction / compensation unit 35.
- the intra prediction unit 34 supplies information indicating the optimal intra prediction mode (that is, a parameter related to intra prediction) to the lossless encoding unit 26.
- the motion prediction / compensation unit 35 When a prediction image in the optimal inter prediction mode is selected, the motion prediction / compensation unit 35 performs lossless encoding of information indicating the optimal inter prediction mode and information corresponding to the optimal inter prediction mode (that is, parameters relating to motion prediction). To the unit 26.
- Information according to the optimal inter prediction mode includes motion vector information and reference frame information.
- step S16 the calculation unit 23 calculates a difference between the image rearranged in step S12 and the predicted image selected in step S15.
- the predicted image is supplied from the motion prediction / compensation unit 35 in the case of inter prediction, and from the intra prediction unit 34 in the case of intra prediction, to the calculation unit 23 via the predicted image selection unit 36, respectively.
- ⁇ Difference data has a smaller data volume than the original image data. Therefore, the data amount can be compressed as compared with the case where the image is encoded as it is.
- step S17 the orthogonal transformation unit 24 orthogonally transforms the difference information supplied from the calculation unit 23. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
- orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
- step S18 the quantization unit 25 quantizes the transform coefficient.
- the rate is controlled as described in the process of step S26 described later.
- step S19 the inverse quantization unit 28 inversely quantizes the transform coefficient quantized by the quantization unit 25 with characteristics corresponding to the characteristics of the quantization unit 25.
- step S ⁇ b> 20 the inverse orthogonal transform unit 29 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 28 with characteristics corresponding to the characteristics of the orthogonal transform unit 24.
- step S21 the calculation unit 30 adds the predicted image input via the predicted image selection unit 36 to the locally decoded difference information, and locally decoded (ie, locally decoded) image. (Image corresponding to the input to the calculation unit 23) is generated.
- step S ⁇ b> 22 the in-loop filter 31 a performs a filter process including a deblocking filter, an adaptive offset filter, and an adaptive loop filter on the image output from the calculation unit 30. At this time, at least two processes of the vertical and horizontal deblocking filters, the adaptive offset filter, and the adaptive loop filter are performed in parallel. Details of the in-loop filter processing will be described later with reference to FIG.
- the decoded image from the in-loop filter 31a is output to the frame memory 32.
- step S23 the frame memory 32 stores the filtered image.
- an image not filtered by the in-loop filter 31a is also supplied from the arithmetic unit 30 and stored.
- the transform coefficient quantized in step S18 described above is also supplied to the lossless encoding unit 26.
- the lossless encoding unit 26 encodes the quantized transform coefficient output from the quantization unit 25 and each supplied parameter. That is, the difference image is subjected to lossless encoding such as variable length encoding and arithmetic encoding, and is compressed.
- step S25 the accumulation buffer 27 accumulates the encoded difference image (that is, the encoded stream) as a compressed image.
- the compressed image stored in the storage buffer 27 is appropriately read out and transmitted to the decoding side via the transmission path.
- step S26 the rate control unit 37 controls the quantization operation rate of the quantization unit 25 based on the compressed image stored in the storage buffer 27 so that overflow or underflow does not occur.
- step S26 ends, the encoding process ends.
- FIG. 3 illustrates a configuration of an embodiment of an image decoding device as an image processing device to which the present disclosure is applied.
- An image decoding device 51 shown in FIG. 3 is a decoding device corresponding to the image encoding device 11 of FIG.
- encoded data encoded by the image encoding device 11 is transmitted to an image decoding device 51 corresponding to the image encoding device 11 via a predetermined transmission path and decoded.
- the image decoding device 51 includes a storage buffer 61, a lossless decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transform unit 64, a calculation unit 65, an in-loop filter 31b, a screen rearrangement buffer 67, And a D / A converter 68.
- the image decoding device 51 includes a frame memory 69, a selection unit 70, an intra prediction unit 71, a motion prediction / compensation unit 72, and a selection unit 73.
- the accumulation buffer 61 accumulates the transmitted encoded data. This encoded data is encoded by the image encoding device 11.
- the lossless decoding unit 62 decodes the encoded data read from the accumulation buffer 61 at a predetermined timing by a method corresponding to the encoding method of the lossless encoding unit 26 in FIG.
- the lossless decoding unit 62 supplies parameters such as information indicating the decoded intra prediction mode to the intra prediction unit 71, and supplies parameters such as information indicating the inter prediction mode and motion vector information to the motion prediction / compensation unit 72. .
- the inverse quantization unit 63 inversely quantizes the coefficient data (quantization coefficient) obtained by decoding by the lossless decoding unit 62 by a method corresponding to the quantization method of the quantization unit 25 in FIG. That is, the inverse quantization unit 63 uses the quantization parameter supplied from the image encoding device 11 to perform inverse quantization of the quantization coefficient by the same method as the inverse quantization unit 28 in FIG.
- the inverse quantization unit 63 supplies the inversely quantized coefficient data, that is, the orthogonal transform coefficient, to the inverse orthogonal transform unit 64.
- the inverse orthogonal transform unit 64 is a method corresponding to the orthogonal transform method of the orthogonal transform unit 24 in FIG. 1, performs inverse orthogonal transform on the orthogonal transform coefficient, and converts the residual data before the orthogonal transform in the image encoding device 11 Corresponding decoding residual data is obtained.
- the decoded residual data obtained by the inverse orthogonal transform is supplied to the arithmetic unit 65. Further, a prediction image is supplied to the calculation unit 65 from the intra prediction unit 71 or the motion prediction / compensation unit 72 via the selection unit 73.
- the calculating unit 65 adds the decoded residual data and the predicted image, and obtains decoded image data corresponding to the image data before the predicted image is subtracted by the calculating unit 23 of the image encoding device 11.
- the arithmetic unit 65 supplies the decoded image data to the in-loop filter 31b.
- the in-loop filter 31b is configured to include a deblocking filter, an adaptive offset filter, and an adaptive loop filter, similarly to the in-loop filter 31a of the image encoding device 11.
- the in-loop filter 31b performs processing of a deblocking filter, an adaptive offset filter, and an adaptive loop filter on a pixel (that is, a reconstructed pixel) of the decoded image, and rearranges the image obtained by adding the filter processing results. This is supplied to the buffer 67.
- the in-loop filter 31b At least two processes of the deblocking filter vertical and horizontal, the adaptive offset filter, and the adaptive loop filter are performed in parallel. Details of the configuration and operation of the in-loop filter 31b will be described later with reference to FIG.
- the screen rearrangement buffer 67 rearranges images. That is, the order of frames rearranged for the encoding order by the screen rearrangement buffer 22 in FIG. 1 is rearranged in the original display order.
- the D / A converter 68 performs D / A conversion on the image supplied from the screen rearrangement buffer 67, and outputs and displays the image on a display (not shown).
- the output of the in-loop filter 31b is further supplied to the frame memory 69.
- the frame memory 69, the selection unit 70, the intra prediction unit 71, the motion prediction / compensation unit 72, and the selection unit 73 are the frame memory 32, the selection unit 33, the intra prediction unit 34, and the motion prediction / compensation unit of the image encoding device 11. 35 and the predicted image selection unit 36, respectively.
- the selection unit 70 reads out the inter-processed image and the referenced image from the frame memory 69 and supplies the image to the motion prediction / compensation unit 72.
- the selection unit 70 reads an image used for intra prediction from the frame memory 69 and supplies the image to the intra prediction unit 71.
- the intra prediction unit 71 is appropriately supplied with information indicating the intra prediction mode obtained by decoding the header information from the lossless decoding unit 62. Based on this information, the intra prediction unit 71 generates a prediction image from the reference image acquired from the frame memory 69 and supplies the generated prediction image to the selection unit 73.
- the motion prediction / compensation unit 72 is supplied with information (prediction mode information, motion vector information, reference frame information, flags, various parameters, etc.) obtained by decoding the header information from the lossless decoding unit 62.
- the motion prediction / compensation unit 72 generates a prediction image from the reference image acquired from the frame memory 69 based on the information supplied from the lossless decoding unit 62 and supplies the generated prediction image to the selection unit 73.
- the selection unit 73 selects the prediction image generated by the motion prediction / compensation unit 72 or the intra prediction unit 71 and supplies the selected prediction image to the calculation unit 65.
- the storage buffer 61 stores the transmitted encoded data in step S51.
- the lossless decoding unit 62 decodes the encoded data supplied from the accumulation buffer 61.
- the I picture, P picture, and B picture encoded by the lossless encoding unit 26 in FIG. 1 are decoded.
- parameter information such as motion vector information, reference frame information, and prediction mode information (intra prediction mode or inter prediction mode) is also decoded.
- the prediction mode information is intra prediction mode information
- the prediction mode information is supplied to the intra prediction unit 71.
- the prediction mode information is inter prediction mode information
- motion vector information corresponding to the prediction mode information is supplied to the motion prediction / compensation unit 72.
- step S53 the intra prediction unit 71 or the motion prediction / compensation unit 72 performs a prediction image generation process corresponding to the prediction mode information supplied from the lossless decoding unit 62, respectively.
- the intra prediction unit 71 when the intra prediction mode information is supplied from the lossless decoding unit 62, the intra prediction unit 71 generates Most Probable Mode, and generates an intra prediction image of the intra prediction mode by parallel processing.
- the motion prediction / compensation unit 72 performs an inter prediction mode motion prediction / compensation process to generate an inter prediction image.
- the prediction image (intra prediction image) generated by the intra prediction unit 71 or the prediction image (inter prediction image) generated by the motion prediction / compensation unit 72 is supplied to the selection unit 73.
- step S54 the selection unit 73 selects a predicted image. That is, a prediction image generated by the intra prediction unit 71 or a prediction image generated by the motion prediction / compensation unit 72 is supplied. Therefore, the supplied predicted image is selected and supplied to the calculation unit 65, and is added to the output of the inverse orthogonal transform unit 64 in step S57 described later.
- step S52 the transform coefficient decoded by the lossless decoding unit 62 is also supplied to the inverse quantization unit 63.
- step S55 the inverse quantization unit 63 inversely quantizes the transform coefficient decoded by the lossless decoding unit 62 with characteristics corresponding to the characteristics of the quantization unit 25 in FIG.
- step S56 the inverse orthogonal transform unit 29 performs inverse orthogonal transform on the transform coefficient inversely quantized by the inverse quantization unit 28 with characteristics corresponding to the characteristics of the orthogonal transform unit 24 of FIG. As a result, the difference information corresponding to the input of the orthogonal transform unit 24 of FIG. 1 (the output of the calculation unit 23) is decoded.
- step S57 the calculation unit 65 adds the prediction image selected in the process of step S54 described above and input via the selection unit 73 to the difference information. As a result, the original image is decoded.
- step S58 the in-loop filter 31b performs a filter process including a deblocking filter, an adaptive offset filter, and an adaptive loop filter on the image output from the calculation unit 30. At this time, at least two processes of the vertical and horizontal deblocking filters, the adaptive offset filter, and the adaptive loop filter are performed in parallel. Details of the in-loop filter processing will be described later with reference to FIG.
- the decoded image from the in-loop filter 31 b is output to the frame memory 69 and the screen rearrangement buffer 67.
- step S59 the frame memory 69 stores the filtered image.
- step S60 the screen rearrangement buffer 67 rearranges the images after the in-loop filter 31b. That is, the order of frames rearranged for encoding by the screen rearrangement buffer 22 of the image encoding device 11 is rearranged to the original display order.
- step S61 the D / A converter 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 S61 ends, the decryption process ends.
- a conventional in-loop filter processes in series in the order of a deblocking filter, an adaptive offset filter, and an adaptive loop filter, so that line memory is not used at the horizontal boundary of the LCU (Largest Coding Unit) (that is, at the bottom of the LCU). I had to have each.
- LCU Large Coding Unit
- H.264 and MPEG (Moving Picture Experts Group) 4 Part 10 AVC (Advanced Video Coding)
- AVC Advanced Video Coding
- one macroblock is divided into a plurality of motion compensation blocks. It was possible to have different motion information. That is, H. In the H.264 / AVC format, a hierarchical structure is defined by macroblocks and sub-macroblocks.
- a coding unit (CU) is defined in the HEVC (High Efficiency Video Coding) method.
- CU is also called Coding Tree Block (CTB).
- CTB Coding Tree Block
- This is an area (partial area of an image in picture units) serving as an encoding (decoding) processing unit that plays the same role as a macroblock in the H.264 / AVC format.
- the latter is fixed to a size of 16 ⁇ 16 pixels, whereas the size of the former is not fixed, and is specified in the image compression information in each sequence.
- the maximum size (LCU (Largest Coding Unit)) and the minimum size ((SCU (Smallest Coding Unit)) are specified. Is done.
- the CU division line is not shown, but the size of the LCU is 16 ⁇ 16 pixels, and four 8 ⁇ 8 pixel CUs are included therein. An example is shown.
- H In the case of an encoding method in which a CU is defined and various processes are performed in units of the CU as in the HEVC method above, H. It can be considered that a macroblock in the H.264 / AVC format corresponds to an LCU, and a block (subblock) corresponds to a CU. However, since the CU has a hierarchical structure, the size of the LCU in the highest hierarchy is H.264, for example, 128 ⁇ 128 pixels. Generally, it is set larger than the macroblock of the H.264 / AVC format.
- LCU It also includes macroblocks in the H.264 / AVC format. It also includes blocks (sub-blocks) in the H.264 / AVC format.
- FIG. 5 an example of a luminance signal is shown.
- the bottom indicates the LCU boundary, and the circle indicates a pixel.
- the circles in the first to third lines from the LCU boundary represent pixels at which deblocking V (vertical) filter processing at the horizontal boundary is started when the next LCU is input to the deblocking filter.
- the circles indicated by hatching in the first to third lines represent pixels that have been partially deblocked H (horizontal) filtered at the vertical boundary of the CUs included in the LCU.
- white circles represent pixels that are not actually subjected to deblocking H filter processing at the vertical boundary of the CU.
- the pixel on the fourth line from the LCU boundary is a pixel that has been subjected to deblocking V filter processing and that has not been subjected to adaptive offset filter (SAO: “Sample” adaptive ”offset) processing.
- the pixels on the fourth line are also referred to in the deblocking V filter processing on the first to third lines.
- Pixels on the fifth line from the LCU boundary are pixels that have been subjected to deblocking V filter processing and adaptive offset filtering.
- the pixel on the sixth line from the LCU boundary is a pixel that has been subjected to the adaptive offset filter process and has not been subjected to an adaptive loop filter (ALF).
- ALF adaptive loop filter
- the circles on the 7th to 16th lines from the LCU boundary represent pixels after adaptive loop filter (ALF) processing.
- ALF adaptive loop filter
- the deblocking filter processes the pixels on the first to third lines from the LCU boundary at the LCU boundary, the LCU pixels (pixels for the next four lines) that are in contact below the LCU boundary are not input.
- the deblocking V filter process cannot be started.
- the deblocking filter line memory holds pixels for a total of four lines, that is, the pixels of the first to third lines to be processed next and the pixels of the fourth line as reference pixels, as shown in FIG.
- the deblocking V filter process is on standby (temporarily stopped).
- the adaptive offset filter refers to the filter processing of the pixel on the fifth line from the LCU boundary held in the line memory of the adaptive offset filter, and refers to the pixel on the fourth line from the LCU boundary held in the line memory of the deblocking filter. To complete.
- the adaptive offset filter cannot start processing the pixel on the fourth line from the next LCU boundary. Therefore, the adaptive offset filter processing also waits in the state of FIG. 5 in which the pixel of the fifth line from the LCU boundary is held in the line memory of the adaptive offset filter.
- the adaptive loop filter completes the filtering process (for example, 5 taps) of the pixel on the seventh line from the LCU boundary with reference to the pixels on the fifth and sixth lines and the pixel on the eighth and ninth lines from the LCU boundary. At this time, the adaptive loop filter releases from the line memory of the adaptive loop filter the 9th line pixel that is not necessary for the filter processing of the 6th line pixel from the next LCU boundary. Pixels for 4th to 8th lines are held.
- the deblocking filter for the pixel on the fourth line is not completed for the pixel on the fourth line, which is referred to for filtering the pixel on the sixth line from the next LCU boundary
- the deblocking filter cannot be released, and the adaptive loop filter Is not input to the line memory. Therefore, the adaptive loop filter cannot start the next process. Therefore, the adaptive loop filter processing also waits in the state shown in FIG. 5 in which the pixels of the fourth to fifth lines from the LCU boundary are held in the line memory of the adaptive loop filter.
- FIG. 6 is a block diagram illustrating a configuration example of a conventional in-loop filter.
- the in-loop filter shown in FIG. 6 includes a deblocking filter unit 101, an adaptive offset filter unit 102, and an adaptive loop filter unit 103.
- the deblocking filter unit 101 is configured to include an H (horizontal) filter 111, a V (vertical) filter 112, and a line memory 113, and removes noise at a block CU (LCU) boundary from an input pixel. Blocking filter processing is performed.
- the H filter 111 is a deblocking filter applied to the left and right (horizontal direction) pixels of the vertical boundary between the left and right adjacent CUs (LCUs) in the input image.
- the V filter 112 is a deblocking filter that is applied to pixels above and below (vertically) a horizontal boundary between CUs (LCUs) adjacent to each other in the input image.
- the line memory 113 temporarily holds a reconstructed pixel that is an input pixel input from the previous stage at the LCU boundary. As described above with reference to FIG. 5, the line memory 113 holds pixels for four lines for luminance (Y) and pixels for two lines for color difference (C) at the LCU boundary.
- the deblocking filter unit 101 normally performs the filtering process by the H filter 111 and the filtering process by the V filter 112 on the reconstructed pixel that is the input pixel from the previous stage (except for the LCU boundary).
- the deblocking filter unit 101 outputs the filtered pixel to the adaptive offset filter unit 102.
- the deblocking filter unit 101 once holds the reconstructed pixel, which is the input pixel from the previous stage, in the line memory 113.
- the deblocking filter unit 101 performs filtering using the H filter 111 using the input pixels and the pixels held in the line memory 113, and the V filter 112. Filter processing is performed.
- the deblocking filter unit 101 outputs the filtered pixel to the adaptive offset filter unit 102.
- the adaptive offset filter unit 102 is configured to include an offset filter 121 and a line memory 122, and performs an offset filter process that mainly removes ringing on the decoded image from the deblocking filter unit 101.
- the line memory 122 holds pixels for one line for luminance (Y) and holds pixels for one line for color difference (C) at the LCU boundary.
- the adaptive offset filter unit 102 normally performs a filter process using the offset filter 121 on the pixels subjected to the filter process by the deblocking filter unit 101, and outputs the filtered pixels to the adaptive loop filter unit 103. .
- the adaptive offset filter unit 102 temporarily holds the reconstructed pixel that is an input pixel from the deblocking filter unit 101 in the line memory 122.
- the adaptive offset filter unit 102 performs a filtering process by the offset filter 121 using the input pixel and the pixel held in the line memory 122.
- the adaptive offset filter unit 102 outputs the filtered pixel to the adaptive offset filter unit 102.
- the adaptive loop filter unit 103 is configured to include a loop filter 131 and a line memory 132, performs class classification on a block basis on the decoded image from the adaptive offset filter unit 102, and performs adaptive loop filter processing.
- the loop filter 131 is composed of, for example, a two-dimensional Wiener filter. As described above with reference to FIG. 5, the line memory 132 holds pixels for four lines for luminance (Y) and pixels for four lines for color difference (C) at the LCU boundary.
- the adaptive loop filter unit 103 normally performs a filter process by the loop filter 131 on the pixels subjected to the filter process by the adaptive offset filter unit 102, and outputs the filtered pixels to a subsequent frame memory or the like. .
- the adaptive loop filter unit 103 temporarily holds the reconstructed pixel, which is an input pixel from the adaptive offset filter unit 102, in the line memory 132.
- the adaptive loop filter unit 103 performs a filtering process by the loop filter 131 using the input pixel and the pixel held in the line memory 132.
- the adaptive loop filter unit 103 outputs the filtered pixel to a subsequent frame memory or the like.
- the deblocking filter requires a line memory that holds pixels for four lines, and the adaptive offset filter has a line that holds pixels for one line. Memory was needed. Furthermore, the adaptive loop filter requires a line memory that holds pixels for four lines and includes overlapping pixels, but a line memory that holds pixels for nine lines in total is required.
- the deblocking filter requires a line memory that holds pixels for two lines, and the adaptive offset filter has one line.
- a line memory for holding the pixels was required.
- the adaptive loop filter requires a line memory that holds pixels for four lines and includes overlapping pixels, but a line memory that holds pixels for seven lines in total is required.
- Non-Patent Document 1 the adaptive offset filter processing (tap reference pixel) for a line held for deblocking uses a reconstructed pixel (that is, a pixel before deblocking).
- a reconstructed pixel that is, a pixel before deblocking
- Non-Patent Document 1 is processing specialized for LCU-based processing. Therefore, when the deblocking filter, the adaptive offset filter, and the adaptive offset filter each perform frame processing by software or the like, the control becomes quite complicated.
- At least two of the deblocking filter, the adaptive offset filter, and the adaptive loop filter are parallelized to share the line memory, thereby reducing the line memory with a simple processing structure. Plan.
- FIG. 7 is a block diagram illustrating a configuration example of an in-loop filter to which the present disclosure is applied.
- the configurations of the in-loop filter 31a of the image encoding device 11 shown in FIG. 1 and the in-loop filter 31b of the image decoding device 51 shown in FIG. 3 may be common. Therefore, in the following description, the in-loop filter 31a and the in-loop filter 31b are collectively referred to as the in-loop filter 31 when it is not necessary to distinguish them individually.
- the in-loop filter 31 includes a line memory 151, a deblocking H (horizontal) filter unit 152, a deblocking V (vertical) filter unit 153, an adaptive offset filter unit 154, an adaptive loop filter unit 155, and an arithmetic operation. It is comprised so that the part 156 may be included.
- a configuration example of the in-loop filter 31 at the LCU boundary is shown.
- the line memory 151 temporarily holds the reconstructed pixel input from the previous stage at the LCU boundary.
- the preceding stage is the arithmetic unit 30 in the case of the image encoding device 11 in FIG. 1, and the arithmetic unit 65 in the case of the image decoding device 51 in FIG.
- the line memory 151 holds pixels for five lines for luminance (Y) and holds pixels for three lines for color difference (C). Note that the number of lines to be held is not limited because it depends on the architecture and the like.
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 share the line memory 151 in which the reconstructed pixels are held.
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 perform each filter process in parallel on the reconstructed pixels held in the line memory 151. Then, the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 output the filtered pixels to the calculation unit 156, respectively.
- the deblocking H filter unit 152 is configured to include the H filter 111 of FIG. 6, and performs a deblocking H filter process that removes block noise at a vertical boundary between adjacent blocks on the left and right.
- the H filter 111 is a deblocking filter that is applied to the left and right pixels at the vertical boundary between blocks adjacent to the left and right in the input image.
- the deblocking H filter unit 152 reads out the reconstructed pixel held in the line memory 151 and performs the filtering process by the H filter 111 on the read out reconstructed pixel.
- the deblocking H filter unit 152 outputs the pixel after the filter processing by the H filter 111 to the calculation unit 156.
- the deblocking V filter unit 153 is configured to include the V filter 112 of FIG. 6, and performs a deblocking V filter process that removes block noise at the horizontal boundary between vertically adjacent blocks.
- the V filter 112 is a deblocking filter that is applied to the upper and lower pixels of the horizontal boundary between the upper and lower adjacent blocks in the input image.
- the deblocking V filter unit 153 reads out the reconstructed pixel held in the line memory 151, and performs a filtering process by the V filter 112 on the read out reconstructed pixel.
- the deblocking V filter unit 153 outputs the pixel after the filtering process by the V filter 112 to the calculation unit 156.
- the adaptive offset filter unit 154 is configured to include the offset filter 121 of FIG. 6, and performs an offset filter process that mainly removes ringing on the input image.
- the offset filter 121 is applied using a quad-tree structure in which the type of the offset filter 121 is determined for each divided region and the offset value for each divided region.
- the quad-tree structure and the offset value are calculated in the case of the image encoding device 11 in FIG. 1, and are calculated by the image encoding device 11 in FIG. 1 in the case of the image decoding device 51 in FIG. Are decrypted and used.
- the adaptive offset filter unit 154 reads the reconstructed pixel held in the line memory 151, and performs the filtering process by the offset filter 121 on the read reconstructed pixel.
- the adaptive offset filter unit 154 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 156.
- the adaptive loop filter unit 155 is configured to include the loop filter 131 of FIG. 6, performs class classification on an input image on a block basis, and performs adaptive loop filter processing.
- the loop filter 131 is configured by, for example, a two-dimensional Wiener filter. Specifically, the loop filter 131 is applied using an adaptive loop filter coefficient.
- the adaptive loop filter coefficients are classified into blocks on a block basis, and the residual from the original image from the screen rearrangement buffer 22 is minimized for each classified class. The calculated value is used.
- the adaptive loop filter coefficient is decoded and used as calculated by the image encoding device 11 in FIG.
- the adaptive loop filter unit 155 reads out the reconstructed pixel held in the line memory 151, and performs the filtering process by the loop filter 131 on the read out reconstructed pixel.
- the adaptive loop filter unit 155 outputs the pixel after the filter processing by the loop filter 131 to the calculation unit 156.
- the arithmetic unit 156 adds, for example, addition to the pixels after filtering by the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 at the LCU boundary.
- the arithmetic processing is performed. Note that this arithmetic processing may include not only addition but also processing such as subtraction and multiplication.
- the calculating part 156 outputs a calculation result to a back
- 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 and the frame memory 69 in the case of the image decoding device 51 of FIG.
- FIG. 8 shows an example of pixels at the LCU boundary.
- a circle represents a reconstructed pixel input to the in-loop filter 31, and a lower line in the figure represents an LCU boundary.
- the deblocking V filter unit 153 performs the first line from the LCU boundary until pixels for four lines of the next LCU are input. In the processing of the pixels on the third to third lines, a standby state is entered. That is, since the deblocking V filter unit 153 can process only up to the fourth line from the LCU boundary, the other filter units in parallel need to align the output phase with the deblocking V filter unit 153.
- both the adaptive offset filter unit 154 and the adaptive loop filter unit 155 complete the processing from the LCU boundary to the fourth line, and enter the standby state in the processing of the pixel on the third line from the next LCU boundary.
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 are set to three lines from the LCU boundary. The process is started so as to output from the eye pixel.
- the deblocking H filter unit 152 needs to hold the pixels in the first to third lines from the LCU boundary in the line memory 151.
- the deblocking V filter unit 153 the pixels in the first to fourth lines from the LCU boundary need to be held in the line memory 151.
- the adaptive offset filter unit 154 the pixels in the first to fourth lines from the LCU boundary need to be held in the line memory 151.
- the adaptive loop filter unit 155 needs to hold the pixels in the first to fifth lines from the LCU boundary in the line memory 151.
- the line memory 151 holds pixels for five lines from the first to fifth lines from the LCU boundary.
- the number of line memories can be reduced by 4 lines as compared with the conventional 9 lines of pixels described above with reference to FIG.
- the deblocking V filter unit 153 waits in the processing of the pixels on the first line and the second line from the LCU boundary until the two lines of pixels of the next LCU are input. It becomes a state. That is, since the deblocking V filter unit 153 can process only the third line from the LCU boundary, it is necessary to align the output phase with the deblocking V filter unit 153.
- both the adaptive offset filter unit 154 and the adaptive loop filter unit 155 complete the processing from the LCU boundary to the third line, and enter the standby state in the processing of the pixel on the second line from the next LCU boundary.
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 are also two lines from the LCU boundary. The process is started so as to output from the eye pixel.
- the deblocking H filter unit 152 needs to hold the pixels on the first and second lines from the LCU boundary in the line memory 151.
- the deblocking V filter unit 153 the pixels in the first and second lines from the LCU boundary need to be held in the line memory 151.
- the adaptive offset filter unit 154 needs to hold the pixels in the first to third lines from the LCU boundary in the line memory 151.
- the adaptive loop filter unit 155 for example, when the color difference is a 5-tap process, the pixels in the first to fourth lines from the LCU boundary need to be held in the line memory 151.
- the line memory 151 holds pixels for four lines from the first to fourth lines from the LCU boundary.
- the number of line memories can be reduced by 3 lines as compared with the conventional 7 lines of pixels described above with reference to FIG.
- FIG. 9 is a block diagram illustrating a more detailed configuration example of the in-loop filter of FIG.
- the in-loop filter 31 in FIG. 7 shows a configuration in the case of an LCU boundary
- the in-loop filter 31 in the example in FIG. 9 shows a detailed configuration including the case of an LCU boundary.
- the in-loop filter 31 is configured to include a line memory 151, a deblocking H filter unit 152, and a deblocking V filter unit 153.
- the in-loop filter 31 is configured to include an adaptive offset filter unit 154, an adaptive loop filter unit 155, a calculation unit 156, and a coefficient memory 171.
- the in-loop filter 31 is different from the in-loop filter 31 of FIG. 7 only in that a coefficient memory 171 is added.
- the reconstructed pixel that is an input pixel from the previous stage is input to the line memory 151, the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, the adaptive loop filter unit 155, and the calculation unit 156. .
- the line memory 151 is configured to hold the reconstructed pixels for five lines from the LCU boundary for the luminance signal, and to hold the reconstructed pixels for three lines from the LCU boundary for the color difference signal. .
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 are arranged for each reconstructed pixel input from the previous stage. Apply filtering. Then, the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 output the filtered pixels to the calculation unit 156.
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 perform filter processing on the reconstructed pixels held in the line memory 151. Apply. Then, the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 output the filtered pixels to the calculation unit 156.
- the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 Resume processing after aligning the phases.
- the calculation unit 156 includes subtraction units 181-1 to 181-4, multiplication units 182-1 to 182-4, and an addition unit 183, and calculates the output P after each filter process as a linear sum. Note that as the input pixel in the calculation unit 156, the reconstructed pixel from the previous stage is usually used, but the pixel held in the line memory 151 is read and used at the LCU boundary.
- Subtraction unit 181-1 subtracts the input pixel P in the pixel P DB_H after filtering from the deblocking H filter unit 152, and outputs to the multiplier 182-1.
- the multiplication unit 182-1 multiplies the input (P DB_H ⁇ P in ) from the subtraction unit 181-1 by the coefficient C DB_H corresponding to the deblocking H filter unit 152 from the coefficient memory 171, and adds the addition unit 183. Output to.
- Subtraction unit 181-2 subtracts the input pixel P in the pixel P DB_V after filtering from the deblocking V filter unit 153, and outputs to the multiplier 182-2.
- the multiplication unit 182-2 multiplies the input (P DB_H ⁇ P in ) from the subtraction unit 181-2 by the coefficient C DB_V corresponding to the deblocking V filter unit 153 from the coefficient memory 171, and adds the addition unit 183. Output to.
- Subtraction unit 181-3 subtracts the input pixel P in the pixel P SAO after filtering from the adaptive offset filter unit 154, and outputs to the multiplier 182-3.
- the multiplier 182-3 multiplies the input (P SAO ⁇ P in ) from the subtractor 181-3 by the coefficient C SAO corresponding to the adaptive offset filter unit 154 from the coefficient memory 171, and causes the adder 183 to Output.
- Subtraction unit 181-4 subtracts the input pixel P in the pixel P ALF after filtering from the adaptive loop filter unit 155, and outputs to the multiplier 182-4.
- the multiplication unit 182-4 multiplies the input (P ALF ⁇ P in ) from the subtraction unit 181-3 by the coefficient C ALF corresponding to the adaptive loop filter unit 155 from the coefficient memory 171, and the addition unit 183 Output.
- the input pixel P in the multiplication result from the multiplying unit 182-1 through 182-4 adds the equation (1), the P is the addition result is output to the frame memory.
- the coefficient memory 171 stores a coefficient corresponding to each filter.
- coefficient memory 171 coefficient C DB_V corresponding to the coefficient C DB_H and deblocking V filter unit 153 corresponds to the deblocking H filter 152 are stored.
- the coefficient memory 171 stores a coefficient C SAO corresponding to the adaptive offset filter unit 154 and a coefficient C ALF corresponding to the adaptive loop filter unit 155.
- coefficients may be settable by the user via an operation input unit (not shown). These coefficients may be set according to the characteristics of the image.
- the coefficient C DB_V corresponding to the coefficient C DB_H and deblocking V filter unit 153 corresponds to the deblocking H filter 152, than other coefficients Is also set larger.
- the coefficient C SAO corresponding to the adaptive offset filter unit 154 is set larger than the other coefficients.
- the coefficient CALF corresponding to the adaptive loop filter unit 155 is set larger than the other coefficients.
- FIG. 10 is an example of the in-loop filter process in step S22 in FIG. 2 described above, and is an example of the in-loop filter process in step S58 in FIG.
- This in-loop filter process starts from the upper left LCU in the screen.
- the reconstructed pixels constituting the LCU are input to each part of the in-loop filter 31 from the previous stage.
- the processes of steps S111 to S114 are executed in parallel using the reconstructed pixels input from the previous stage.
- the reconstructed pixels constituting the LCU are input to the line memory 151 from the previous stage.
- the processes in steps S111 to S114 are executed in parallel using the reconstructed pixels held in the line memory 151.
- the processing is started with the output phases aligned.
- the input to each part is used by being switched by a switch or the like in each part of the in-loop filter 31.
- the deblocking H filter unit 152 performs a filtering process by the H filter 111 on the line memory 151 or the reconstructed pixel from the previous stage in step S111.
- the deblocking H filter unit 152 outputs the pixel after the filter processing by the H filter 111 to the calculation unit 156.
- step S112 the deblocking V filter unit 153 performs a filtering process by the V filter 112 on the line memory 151 or the reconstructed pixel from the previous stage.
- the deblocking V filter unit 153 outputs the pixel after the filtering process by the V filter 112 to the calculation unit 156.
- step S113 the adaptive offset filter unit 154 performs filter processing by the offset filter 121 on the line memory 151 or the reconstructed pixel from the previous stage.
- the adaptive offset filter unit 154 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 156.
- step S114 the adaptive loop filter unit 155 performs filter processing by the loop filter 131 on the line memory 151 or the reconstructed pixel from the previous stage.
- the adaptive loop filter unit 155 outputs the pixel after the filter processing by the loop filter 131 to the calculation unit 156.
- step S115 the calculation unit 156 calculates four results after each filter processing by the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155.
- the calculation unit 156 calculates the four results from the four filter units by, for example, the linear sum as in the above-described equation (1), and outputs the calculation result to the subsequent stage.
- step S116 the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 determine whether it is the last pixel in the LCU. If it is determined in step S116 that the pixel is not the last pixel in the LCU, the process returns to step S111, and the subsequent processes are repeated.
- step S116 If it is determined in step S116 that it is the last pixel in the LCU, the process proceeds to step S117.
- step S117 the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 determine whether or not it is the last pixel in the screen. If it is determined in step S117 that the pixel is not the last pixel in the screen, the process proceeds to step S118.
- step S118 the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155 select the next LCU, and the process returns to step S111. That is, the processing from step S111 onward is repeated for the LCU selected in step S118.
- step S117 If it is determined in step S117 that it is not the last pixel in the screen, the in-loop filter process is terminated.
- the input of the four filter processes constituting the in-loop filter 31 is processed in parallel as a reconstructed pixel, and the line memory is shared at the LCU boundary. Therefore, as described above with reference to FIG. As described above, the number of line memories can be reduced.
- the in-loop filter 31 has a simple configuration in which switching between normal processing and LCU boundary processing is performed only by switching whether a pixel from the previous stage or a pixel from the line memory is input. Thereby, control when the deblocking filter, the adaptive offset filter, and the adaptive offset filter each perform frame processing by software or the like can be easily performed.
- the coefficient corresponding to each filter is set in the calculation unit 156 according to the characteristics of the image, it is possible to obtain a better image according to the characteristics of the image than simply outputting at a fixed rate. Is possible.
- the calculation unit 156 calculates the linear sum of each filter output and outputs the result.
- a simple average of each filter output may be used, or the output of each filter output may be calculated.
- a weighted average may be calculated.
- the arithmetic unit 156 can determine the weight of the weighted average for each pixel according to the distance to the vertical boundary and the distance to the horizontal boundary for each pixel.
- FIG. 11 is an explanatory diagram for explaining the determination of the weight for the weighted average by the calculation unit 156.
- the weighted average of the output of the deblocking H filter unit 152 for the vertical boundary Vz and the output of the deblocking V filter unit 153 for the horizontal boundary Hz will be described as an example.
- the distance Dv between the target pixel Pz and the nearest vertical boundary Vz is 3 pixels.
- a distance Dh between the target pixel Pz and the nearest horizontal boundary Hz is two pixels.
- the distance Dh is smaller than the distance Dv.
- the calculation unit 156 can determine the weight for the output of the deblocking V filter unit 153 for the horizontal boundary Hz larger than the weight for the output of the deblocking H filter unit 152 for the vertical boundary Vz.
- the weight ratio between the H filter output P DB_H for the vertical boundary Vz and the V filter output P DB_V for the horizontal boundary Hz is determined to be 2: 3.
- the in-loop filter 31 may include a V filter, an H filter, and one two-dimensional filter that calculates a weighted average at the same time.
- the implementation becomes extremely complicated.
- the weighted average is calculated after the two one-dimensional filters are executed in parallel as in the example of FIG. 11, the two-dimensional filter is substantially used while utilizing the existing deblocking filter mechanism. Can be easily realized.
- FIG. 12 is an explanatory diagram for explaining an example of the weight for the weighted average determined according to the example of FIG.
- 6 ⁇ 6 36 pixels (pixels at the above-described overlapping positions) located around one intersection of the vertical boundary and the horizontal boundary are shown.
- the weight ratio between the filter output P DB_H and the filter output P DB_V is 1 to 1 (or 2 to 2 or 3 to 3). It is.
- the calculation unit 156 weights each pixel according to the edge strength of the vertical boundary and the horizontal boundary corresponding to each pixel.
- An average weight may be determined.
- the filter output weight for the stronger edge boundary may be determined to be greater than the filter output weight for the weaker edge boundary.
- FIG. 13 shows output pixel values from the calculation unit 156 according to the determination result of necessity of filtering at the vertical boundary and the horizontal boundary.
- the calculation unit 156 selects, for example, the output from the filter unit that has actually performed filtering for pixels that are filtered by one of the deblocking H filter unit 152 and the deblocking V filter unit 153. Further, the calculation unit 156 outputs the input pixel value to the in-loop filter 31 as it is for pixels that are not filtered by either the deblocking H filter unit 152 or the deblocking V filter unit 153.
- the above weighted average can also be applied to the four filters of the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the adaptive loop filter unit 155.
- the weights of the outputs to the adaptive offset filter unit 154 and the adaptive loop filter unit 155 are set to 1, and the outputs of the deblocking H filter unit 152 and the deblocking V filter unit 153 are the above weights. Average is adopted. Thereby, an image from which block distortion has been optimally removed can be obtained.
- the configuration of the in-loop filter 31 is not limited to the four parallels described above, and may be configured as shown in FIG.
- FIG. 14 a pattern of parallel processing that can constitute the in-loop filter 31 is shown.
- FIG. 14 will be described in order from the left.
- the in-loop filter 31 includes a deblocking H filter (DH), a deblocking V filter (DV), an adaptive offset filter (SAO), and an adaptive loop filter (ALF) 4. Configured in parallel.
- DH deblocking H filter
- DV deblocking V filter
- SAO adaptive offset filter
- ALF adaptive loop filter
- the deblocking H filter (D-H), deblocking V filter (D-V), adaptive offset filter (SAO), and adaptive loop filter (ALF) perform processing using the reconstructed pixels. Then, the four filter results are output to the calculation unit 156 in phase.
- the in-loop filter 31 is configured in three parallels including a deblocking H filter (D-H), a deblocking V filter (D-V), and an adaptive offset filter (SAO) ⁇ adaptive loop filter (ALF).
- D-H deblocking H filter
- D-V deblocking V filter
- SAO adaptive offset filter
- ALF adaptive loop filter
- the deblocking H filter (D-H), the deblocking V filter (D-V), and the adaptive offset filter (SAO) perform processing using the reconstructed pixel.
- the adaptive loop filter (ALF) performs processing using the pixels after filtering by the adaptive offset filter (SAO). Then, the three filter results from the deblocking H filter (D-H), the deblocking V filter (D-V), and the adaptive loop filter (ALF) are matched in phase and output to the computing unit 156. Note that a configuration example of the in-loop filter 31 configured in parallel is described later with reference to FIG.
- the in-loop filter 31 is configured in three parallels including a deblocking H filter (D-H) ⁇ deblocking V filter (D-V), an adaptive offset filter (SAO), and an adaptive loop filter (ALF).
- D-H deblocking H filter
- D-V deblocking V filter
- SAO adaptive offset filter
- ALF adaptive loop filter
- the deblocking H filter (D-H), adaptive offset filter (SAO), and adaptive loop filter (ALF) perform processing using the reconstructed pixels.
- the deblocking V filter (D-V) performs processing using pixels after filtering by the deblocking H filter (D-H). Then, the three filter results from the deblocking V filter (D-V), the adaptive offset filter (SAO), and the adaptive loop filter (ALF) are matched in phase and output to the computing unit 156.
- the in-loop filter 31 is configured in two parallels including a deblocking H filter (D-H) ⁇ deblocking V filter (D-V) and an adaptive offset filter (SAO) ⁇ adaptive loop filter (ALF).
- D-H deblocking H filter
- D-V deblocking V filter
- SAO adaptive offset filter
- ALF adaptive loop filter
- the deblocking H filter (D-H) and the adaptive offset filter (SAO) perform processing using the reconstructed pixels.
- the deblocking V filter (DV) performs processing using the pixels after filtering by the deblocking H filter (DH), and the adaptive loop filter (ALF) uses pixels after filtering by the adaptive offset filter (SAO). Process. Then, the two filter results from the deblocking V filter (D-V) and the adaptive loop filter (ALF) are matched in phase and output to the arithmetic unit 156.
- the in-loop filter 31 is configured in two parallels consisting of an adaptive offset filter (SAO) for inputting pixels from the deblocking H filter (D-H) ⁇ deblocking V filter (D-V) and an adaptive loop filter (ALF).
- SAO adaptive offset filter
- D-H deblocking H filter
- D-V deblocking V filter
- ALF adaptive loop filter
- the deblocking H filter (D-H) and the adaptive loop filter (ALF) perform processing using the reconstructed pixels.
- the deblocking V filter (DV) performs processing using pixels after filtering by the deblocking H filter (DH), and the adaptive offset filter (SAO) uses pixels after filtering by the deblocking V filter (DV). Process. Then, two filter results from the adaptive offset filter (SAO) and the adaptive loop filter (ALF) are output in phase to the arithmetic unit 156 in phase.
- the in-loop filter 31 is configured in two parallels including a deblocking filter (D-H) ⁇ a deblocking V filter (D-V) ⁇ an adaptive offset filter (SAO) and an adaptive loop filter (ALF).
- D-H deblocking filter
- D-V deblocking V filter
- ALF adaptive loop filter
- the deblocking H filter (DH) performs processing using the reconstructed pixel
- the deblocking V filter (DV) performs processing using the pixel after filtering by the deblocking H filter (DH).
- the adaptive offset filter (SAO) and the adaptive loop filter (ALF) perform processing using pixels after filtering by the deblocking V filter (D-V). Then, two filter results from the adaptive offset filter (SAO) and the adaptive loop filter (ALF) are output in phase to the arithmetic unit 156 in phase.
- the difference between the fifth and sixth components from the left is that the pixel input to the fifth adaptive loop filter (ALF) is the reconstructed pixel, whereas the sixth adaptive loop filter ( ALF) is a pixel after the deblocking filter.
- ALF adaptive loop filter
- the adaptive offset filter (SAO) and the adaptive loop filter (ALF) that are processed in series are adaptive loop filters ( ALF) can be arranged after the calculation unit 156.
- the adaptive loop filter (ALF) is arranged after the arithmetic unit 156 in the third parallel configuration from the left, the deblocking H filter (DH), the deblocking V filter (DV), and the adaptive offset filter (SAO)
- the three filter results from are matched in phase and output to the calculation unit 156.
- an adaptive loop filter (ALF) processes using the pixel after the calculation by the calculating part 156, and outputs it to a back
- FIG. 15 is a block diagram illustrating a configuration example of the in-loop filter.
- the in-loop filter 31 shown in FIG. 15 is a configuration example in the case of 3 parallel shown second from the left in FIG.
- the in-loop filter 31 in FIG. 15 is common to the in-loop filter 31 in FIG. 9 in that the in-loop filter 31 in FIG. 15 includes an adaptive offset filter unit 154, a deblocking H filter unit 152, and a deblocking V filter unit 153.
- the in-loop filter 31 of FIG. 15 includes a line memory 201, an adaptive loop filter unit 202, a calculation unit 203, and a coefficient memory 204 instead of the line memory 151, the adaptive loop filter unit 155, the calculation unit 156, and the coefficient memory 171.
- the point provided is different from the in-loop filter 31 of FIG.
- the reconstructed pixels that are input pixels from the previous stage are input to the line memory 201, the deblocking H filter unit 152, the deblocking V filter unit 153, the adaptive offset filter unit 154, and the calculation unit 203.
- the line memory 201 is configured to hold the reconstructed pixels for four lines from the LCU boundary for the luminance signal, and to hold the reconstructed pixels for three lines from the LCU boundary for the color difference signal. .
- the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 share the line memory 201 in which the reconstructed pixels are held.
- the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 perform each filter processing in parallel on the reconstructed pixels input from the previous stage. I do. Then, the deblocking H filter unit 152 and the deblocking V filter unit 153 output the pixel after the filter processing to the calculation unit 203, respectively. Further, the adaptive offset filter unit 154 outputs the pixel after filter processing to the adaptive loop filter unit 202.
- the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 perform filter processing on the reconstructed pixels held in the line memory 201 in parallel. Then, the deblocking H filter unit 152 and the deblocking V filter unit 153 output the pixel after the filter processing to the calculation unit 203, respectively. Further, the adaptive offset filter unit 154 outputs the pixel after filter processing to the adaptive loop filter unit 202.
- the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive loop filter unit 202 align the output phases and restart the processing. For this reason, the adaptive offset filter unit 154 resumes the process with an output phase that allows the adaptive loop filter unit 202 to align the output phase with the other filter units.
- the adaptive loop filter unit 202 is provided between the adaptive offset filter unit 154 and the arithmetic unit 203, and is configured to include the loop filter 131 and the line memory 211 of FIG.
- the line memory 211 holds the pixels after the adaptive offset filter for four lines from the LCU boundary for the luminance signal, and holds the pixels after the adaptive offset filter for four lines from the LCU boundary for the color difference signal. It is configured.
- the adaptive loop filter unit 202 classifies the pixels from the adaptive offset filter unit 154 on a block basis, and performs an adaptive loop filter process by the loop filter 131.
- the adaptive loop filter unit 202 temporarily holds the pixels from the adaptive offset filter unit 154 in the line memory 211.
- the adaptive loop filter unit 202 classifies the pixels in the line memory 211 on a block basis, and performs adaptive loop filter processing by the loop filter 131.
- the adaptive loop filter unit 202 outputs the pixels after the filter processing by the loop filter 131 to the calculation unit 203.
- the calculation unit 203 includes subtraction units 181-1 to 181-3, multiplication units 182-1 to 182-3, and an addition unit 183, and calculates the output P after each filter process by a linear sum. Note that as the input pixel in the arithmetic unit 203, a reconstructed pixel from the previous stage is usually used, but a pixel held in the line memory 201 is read and used at the LCU boundary.
- Subtraction unit 181-1 subtracts the input pixel P in the pixel P DB_H after filtering from the deblocking H filter unit 152, and outputs to the multiplier 182-1.
- the multiplication unit 182-1 multiplies the input (P DB_H ⁇ P in ) from the subtraction unit 181-1 by the coefficient C DB_H corresponding to the deblocking H filter unit 152 from the coefficient memory 204, and adds the addition unit 183. Output to.
- Subtraction unit 181-2 subtracts the input pixel P in the pixel P DB_V after filtering from the deblocking V filter unit 153, and outputs to the multiplier 182-2.
- the multiplication unit 182-2 multiplies the input (P DB_H ⁇ P in ) from the subtraction unit 181-2 by the coefficient C DB_V corresponding to the deblocking V filter unit 153 from the coefficient memory 204, and adds the addition unit 183. Output to.
- Subtraction unit 181-3 subtracts the input pixel P in the pixel P ALF after filtering from the adaptive loop filter unit 202, and outputs to the multiplier 182-3.
- the multiplication unit 182-3 receives the coefficient C SAO / ALF corresponding to the adaptive offset filter unit 154 and the adaptive loop filter unit 202 from the coefficient memory 204 with respect to the input (P ALF ⁇ P in ) from the subtraction unit 181-3. And output to the adder 183.
- the coefficient memory 204 stores a coefficient corresponding to each filter.
- the coefficient memory 204, coefficient C DB_V corresponding to the coefficient C DB_H and deblocking V filter unit 153 corresponds to the deblocking H filter 152 are stored.
- the coefficient memory 204 stores a coefficient C SAO / ALF corresponding to the adaptive offset filter unit 154 and the adaptive loop filter unit 202. These coefficients can also be set by the user via an operation input unit (not shown), similarly to the coefficients in the coefficient memory 204.
- FIG. 16 shows an example of LCU boundary pixels in the case of a luminance signal.
- the circles on the first to fourth lines from the LCU boundary are non-deblocking V pixels and are pixels that need to be stored in the line memory 201 at the LCU boundary.
- Circles on the second to fifth lines from the LCU boundary represent pixels after the offset filter (SAO) and need to be stored in the line memory 211.
- a circle above the fourth line from the LCU boundary represents a pixel after the loop filter (ALF).
- the deblocking V filter unit 153 performs the first line through the LCU boundary until the four lines of pixels of the next LCU are input. A standby state is entered in the processing of the pixels on the third line. That is, since the deblocking V filter unit 153 can process only the fourth line from the LCU boundary, the deblocking H filter unit 152 and the adaptive loop filter unit 202 align the output phase with the deblocking V filter unit 153. It will be necessary.
- the adaptive loop filter unit 202 processes the pixel after the filter (SAO) by the adaptive offset filter unit 154. Therefore, the adaptive offset filter unit 154 completes the processing from the LCU boundary to the second line so that the adaptive loop filter unit 202 can process from the third line. Then, as shown in the post-SAO pixel in FIG. 16, the adaptive offset filter unit 154 enters a standby state in the processing of the pixel on the first line from the next LCU boundary.
- the deblocking H filter unit 152 and the deblocking V filter unit 153 start processing so as to output from the pixels on the third line from the LCU boundary. Further, the adaptive offset filter unit 154 starts processing so as to output from the pixels on the first line from the LCU boundary.
- the deblocking H filter unit 152 needs to hold the pixels in the first to third lines from the LCU boundary in the line memory 201.
- the deblocking V filter unit 153 the pixels in the first to fourth lines from the LCU boundary need to be held in the line memory 201.
- the adaptive offset filter unit 154 the pixels in the first and second lines from the LCU boundary need to be held in the line memory 201.
- the line memory 201 only needs to hold pixels for four lines from the first to fourth lines from the LCU boundary.
- the adaptive offset filter unit 154 performs processing from the LCU boundary to the second line. Therefore, the adaptive loop filter unit 202 completes the process from the LCU boundary to the fourth line, and enters a standby state in the process of the pixel on the third line from the next LCU boundary.
- the adaptive loop filter unit 202 receives the pixels on the first line from the LCU boundary after the filter processing by the adaptive offset filter unit 154, so that the adaptive loop filter unit 202 From the pixel on the third line.
- the adaptive loop filter unit 202 needs to hold the pixels for four lines from the second to fifth lines from the LCU boundary in the line memory 211.
- the in-loop filter 31 of FIG. 15 requires the line memory 201 for four lines and the line memory 211 for four lines, which is compared with the conventional nine lines of pixels. It is possible to reduce the number of line memories for one line.
- FIG. 17 shows an example of LCU boundary pixels in the case of a color difference signal.
- the circles in the first to third lines from the LCU boundary are non-deblocking V pixels and represent pixels that need to be stored in the line memory 201 at the LCU boundary.
- Circles on the second to fifth lines from the LCU boundary represent pixels after the offset filter (SAO) and need to be stored in the line memory 211.
- a circle above the fourth line from the LCU boundary represents a pixel after the loop filter (ALF).
- the deblocking V filter unit 153 is in a standby state in processing of the pixels on the first line and the second line from the LCU boundary until the pixels for the next two lines of the LCU are input. It becomes.
- the adaptive offset filter unit 154 can only complete the processing from the LCU boundary to the second line
- the adaptive loop filter unit 202 can only complete the processing from the LCU boundary to the fourth line, and the three lines from the LCU boundary.
- a standby state is entered in the processing of the eye pixel.
- the deblocking H filter unit 152 and the deblocking V filter unit 153 can process from the pixels on the second line from the LCU boundary.
- the adaptive loop filter unit 202 can process only from the third line from the LCU boundary, it is necessary to align the output phase with the adaptive loop filter unit 202.
- the deblocking H filter unit 152 and the deblocking V filter unit 153 start processing so as to output from the pixels on the third line from the LCU boundary. Further, the adaptive offset filter unit 154 starts processing so as to output from the pixels on the first line from the LCU boundary.
- the deblocking H filter unit 152 needs to hold the pixels in the first and third lines from the LCU boundary in the line memory 201.
- the deblocking V filter unit 153 the pixels in the first and third lines from the LCU boundary need to be held in the line memory 201.
- the adaptive offset filter unit 154 the pixels in the first and second lines from the LCU boundary need to be held in the line memory 201.
- the line memory 201 only needs to hold pixels for three lines from the first to third lines from the LCU boundary.
- the first line of pixels from the LCU boundary after the filter processing by the adaptive offset filter unit 154 is input to the adaptive loop filter unit 202. Will be output.
- the adaptive loop filter unit 202 needs to hold the pixels for four lines from the second to fifth lines from the LCU boundary in the line memory 211.
- the in-loop filter 31 of FIG. 15 requires the line memory 201 for three lines and the line memory 211 for four lines. This is a line memory equivalent to a conventional pixel for seven lines, but the number of line memories is reduced in the case of a luminance signal, so that the effect of the in-loop filter 31 of FIG. It is done.
- FIG. 10 is an example of the in-loop filter process in step S22 in FIG. 2 described above, and is an example of the in-loop filter process in step S58 in FIG.
- This in-loop filter process starts from the upper left LCU in the screen.
- the reconstructed pixels constituting the LCU are input to each part of the in-loop filter 31 from the previous stage.
- the processes in steps S201 to S203 are executed in parallel using the reconstructed pixels input from the previous stage.
- the reconstructed pixels constituting the LCU are input to the line memory 201 from the previous stage.
- the processes in steps S201 to S203 are executed in parallel using the reconstructed pixels held in the line memory 201.
- steps S201, S202, and S204 processing is started with the output phases aligned.
- step S203 processing is started at a timing such that the output phases are aligned in steps S201, S202, and S204.
- the input to each part is used by being switched by a switch or the like in each part of the in-loop filter 31.
- step S201 the deblocking H filter unit 152 performs a filtering process by the H filter 111 on the line memory 201 or the reconstructed pixel from the previous stage.
- the deblocking H filter unit 152 outputs the pixel after the filtering process by the H filter 111 to the calculation unit 203.
- step S202 the deblocking V filter unit 153 performs a filtering process by the V filter 112 on the line memory 201 or the reconstructed pixel from the previous stage.
- the deblocking V filter unit 153 outputs the pixel after the filter processing by the V filter 112 to the calculation unit 203.
- step S203 the adaptive offset filter unit 154 performs filter processing by the offset filter 121 on the reconstructed pixels from the line memory 201 or the previous stage.
- the adaptive offset filter unit 154 outputs the pixel after the filter processing by the offset filter 121 to the adaptive loop filter unit 202.
- step S204 the adaptive loop filter unit 202 performs a filtering process by the loop filter 131 on the pixels that have already undergone the offset filter 121 from the line memory 211 or the adaptive offset filter unit 154.
- the adaptive loop filter unit 202 outputs the pixels after the filter processing by the loop filter 131 to the calculation unit 203.
- step S205 the calculation unit 203 calculates three results after each filter process by the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive loop filter unit 202.
- the calculation unit 203 calculates the three results obtained by the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive loop filter unit 202 by, for example, a linear sum, and outputs the calculation result to the subsequent stage.
- step S206 the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive loop filter unit 202 determine whether it is the last pixel in the LCU. If it is determined in step S206 that the pixel is not the last pixel in the LCU, the process returns to step S201, and the subsequent processes are repeated.
- step S206 If it is determined in step S206 that the pixel is the last pixel in the LCU, the process proceeds to step S207.
- step S207 the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive loop filter unit 202 determine whether or not the pixel is the last pixel in the screen. If it is determined in step S207 that the pixel is not the last pixel in the screen, the process proceeds to step S208.
- step S208 the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive loop filter unit 202 select the next LCU, and the process returns to step S201. That is, the processing after step S201 is repeated for the LCU selected in step S208.
- step S207 If it is determined in step S207 that the pixel is not the last pixel in the screen, the in-loop filter process is terminated.
- the inputs of the three filter processes constituting the in-loop filter 31 are processed in parallel as reconstructed pixels, and the line memory is shared at the LCU boundary. It is possible to reduce the number of line memories.
- the in-loop filter 31 has a simple configuration in which switching between normal processing and LCU boundary processing is performed only by switching whether a pixel from the previous stage or a pixel from the line memory is input. Thereby, control when the deblocking filter, the adaptive offset filter, and the adaptive offset filter each perform frame processing by software or the like can be easily performed.
- the adaptive loop filter unit 202 is disposed before the calculation unit 203 has been described.
- the adaptive loop filter unit 202 is added after the addition by the calculation unit 203.
- the unit 202 can also be configured.
- An example of the in-loop filter 31 constituting the adaptive loop filter after the addition will be described with reference to FIG.
- FIG. 19 is a block diagram illustrating a configuration example of the in-loop filter.
- the in-loop filter 31 shown in FIG. 19 is an example when an adaptive loop filter is configured after addition.
- the in-loop filter 31 in FIG. 19 is common to the in-loop filter 31 of FIG. 15 in that it includes a deblocking H filter unit 152, a deblocking V filter unit 153, and an adaptive offset filter unit 154.
- the in-loop filter 31 in FIG. 19 is common to the in-loop filter 31 in FIG. 15 in that it includes a line memory 201, a calculation unit 203, and a coefficient memory 204.
- the in-loop filter 31 of FIG. 19 is different from the in-loop filter 31 of FIG. 15 in that an adaptive loop filter unit 221 is provided instead of the adaptive loop filter unit 202.
- the adaptive offset filter unit 154 outputs the pixel after the filter processing to the arithmetic unit 203, similarly to the deblocking H filter unit 152 and the deblocking V filter unit 153.
- Subtraction unit 181-3 of the operation unit 203 subtracts the input pixel P in the pixel P SAO after filtering from the adaptive offset filter unit 154, and outputs to the multiplier 182-3.
- the multiplication unit 182-3 multiplies the input (P SAO ⁇ P in ) from the subtraction unit 181-3 by the coefficient C SAO corresponding to the adaptive offset filter unit 154 from the coefficient memory 204, and Output.
- the coefficient memory 204 stores a coefficient C SAO corresponding to the adaptive offset filter unit 154.
- the adaptive loop filter unit 221 is provided in the subsequent stage of the arithmetic unit 203 and is configured to include the loop filter 131 and the line memory 211 of FIG. 6, similarly to the adaptive loop filter unit 202 of FIG. 15.
- the line memory 211 holds the pixels after the adaptive offset filter for four lines from the LCU boundary for the luminance signal, and holds the pixels after the adaptive offset filter for four lines from the LCU boundary for the color difference signal. It is configured.
- the adaptive loop filter unit 221 performs block classification on the pixel from the adder 183 on a block basis and performs an adaptive loop filter process by the loop filter 131.
- the adaptive loop filter unit 221 temporarily holds the pixels from the adder 183 in the line memory 211, classifies the pixels in the line memory 211 on a block basis, and performs an adaptive loop filter by the loop filter 131.
- the adaptive loop filter unit 221 outputs the pixels after the filter processing by the loop filter 131 to a subsequent frame memory or the like.
- the deblocking V filter unit 153 performs the first line through the LCU boundary until the four lines of pixels of the next LCU are input. A standby state is entered in the processing of the pixels on the third line. That is, since the deblocking V filter unit 153 can process only up to the fourth line from the LCU boundary, the other filter units in parallel need to align the output phase with the deblocking V filter unit 153.
- the adaptive offset filter unit 154 also completes the process from the LCU boundary to the fourth line, and enters a standby state in the process of the pixel on the third line from the next LCU boundary.
- the deblocking H filter unit 152 When the four lines of pixels of the next LCU are input, the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 output from the pixels on the third line from the LCU boundary. Start processing.
- the deblocking H filter unit 152 needs to hold the pixels in the first to third lines from the LCU boundary in the line memory 201.
- the deblocking V filter unit 153 the pixels in the first to fourth lines from the LCU boundary need to be held in the line memory 201.
- the adaptive offset filter unit 154 needs to hold the pixels in the first to fourth lines from the LCU boundary in the line memory 201.
- the line memory 201 only needs to hold pixels for four lines from the first to fourth lines from the LCU boundary.
- the adaptive loop filter unit 202 processes the pixels after the filter processing by the adaptive offset filter unit 154, the processing from the LCU boundary to the sixth line is completed, and the processing of the pixels on the fifth line from the next LCU boundary is completed. In the standby state.
- the pixel on the third line from the LCU boundary after the filter processing by the adaptive offset filter unit 154 is input to the adaptive loop filter unit 202. Therefore, from the pixel on the fifth line from the LCU boundary. Will be output.
- the adaptive loop filter unit 202 needs to hold the pixels for four lines of the fourth to seventh lines from the LCU boundary in the line memory 211.
- the in-loop filter 31 of FIG. 15 requires the line memory 201 for four lines and the line memory 211 for four lines, which is compared with the conventional nine lines of pixels described above with reference to FIG. Thus, the number of line memories for one line can be reduced.
- the deblocking V filter unit 153 performs processing of pixels on the first line and the second line from the LCU boundary until pixels for two lines of the next LCU are input. It will be in a standby state. That is, since the deblocking V filter unit 153 can process only up to the third line from the LCU boundary, the other filter units in parallel need to align the output phase with the deblocking V filter unit 153.
- the adaptive offset filter unit 154 completes the processing from the LCU boundary to the third line, and enters a standby state in the processing of the pixel on the second line from the next LCU boundary.
- the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 output the pixels from the second line from the LCU boundary. Start processing.
- the deblocking H filter unit 152 needs to hold the pixels on the first and second lines from the LCU boundary in the line memory 201.
- the deblocking V filter unit 153 the pixels in the first and second lines from the LCU boundary need to be held in the line memory 201.
- the adaptive offset filter unit 154 the pixels in the first and second lines from the LCU boundary need to be held in the line memory 201.
- the line memory 201 only needs to hold pixels for two lines from the first to second lines from the LCU boundary.
- the adaptive loop filter unit 202 processes the pixels after the filter processing by the adaptive offset filter unit 154, the processing from the LCU boundary to the fifth line is completed, and the processing of the pixels on the fourth line from the next LCU boundary is completed. In the standby state.
- the second loop pixel from the LCU boundary after the filter processing by the adaptive offset filter unit 154 is input to the adaptive loop filter unit 202. Will be output.
- the adaptive loop filter unit 202 needs to hold the pixels for four lines from the third to sixth lines from the LCU boundary in the line memory 211.
- the in-loop filter 31 of FIG. 15 requires the line memory 201 for two lines and the line memory 211 for four lines, which is compared with the conventional pixel for seven lines described above with reference to FIG. Thus, the number of line memories for one line can be reduced.
- the number of line memories can be reduced by one line as compared with the conventional pixels for seven lines described above with reference to FIG. .
- FIG. 20 is an example of the in-loop filter process in step S22 of FIG. 2 described above, and is an example of the in-loop filter process in step S58 of FIG.
- This in-loop filter process starts from the upper left LCU in the screen.
- the reconstructed pixels constituting the LCU are input to each part of the in-loop filter 31 from the previous stage.
- the processes in steps S231 to S233 are executed in parallel using the reconstructed pixels input from the previous stage.
- the reconstructed pixels constituting the LCU are input to the line memory 201 from the previous stage.
- the processes in steps S231 to S233 are executed in parallel using the reconstructed pixels held in the line memory 201.
- steps S231 to S233 processing is started with the output phases aligned.
- the input to each part is used by being switched by a switch or the like in each part of the in-loop filter 31.
- step S231 the deblocking H filter unit 152 performs a filtering process by the H filter 111 on the line memory 201 or the reconstructed pixel from the previous stage.
- the deblocking H filter unit 152 outputs the pixel after the filtering process by the H filter 111 to the calculation unit 203.
- step S232 the deblocking V filter unit 153 performs a filtering process by the V filter 112 on the line memory 201 or the reconstructed pixel from the previous stage.
- the deblocking V filter unit 153 outputs the pixel after the filter processing by the V filter 112 to the calculation unit 203.
- step S233 the adaptive offset filter unit 154 performs filter processing by the offset filter 121 on the line memory 201 or the reconstructed pixel from the previous stage.
- the adaptive offset filter unit 154 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 203.
- step S234 the calculation unit 203 calculates three results after each filter process by the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154.
- the calculation unit 203 calculates the three results obtained by the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154, for example, by linear sum, and outputs the calculation result to the adaptive loop filter unit 221. To do.
- step S235 the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 determine whether it is the last pixel in the LCU. If it is determined in step S235 that the pixel is not the last pixel in the LCU, the process returns to step S231, and the subsequent processes are repeated.
- step S235 If it is determined in step S235 that the pixel is the last pixel in the LCU, the process proceeds to step S236.
- step S236 the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 determine whether or not it is the last pixel in the screen. If it is determined in step S236 that the pixel is not the last pixel in the screen, the process proceeds to step S237.
- step S237 the deblocking H filter unit 152, the deblocking V filter unit 153, and the adaptive offset filter unit 154 select the next LCU, and the process returns to step S231. That is, the processing from step S231 onward is repeated for the LCU selected in step S237.
- step S237 If it is determined in step S237 that the pixel is the last pixel in the screen, the process proceeds to step S238.
- step S238 the adaptive loop filter unit 221 performs a filtering process by the loop filter 131 on the pixel having undergone the offset filter 121 from the line memory 211 or the calculation unit 203 (adding unit 183).
- the adaptive loop filter unit 221 outputs the pixels after the filter processing by the loop filter 131 to a subsequent frame memory or the like.
- step S239 the adaptive loop filter unit 221 determines whether it is the last pixel in the LCU. If it is determined in step S239 that the pixel is not the last pixel in the LCU, the processing returns to step S238, and the subsequent processing is repeated.
- step S239 If it is determined in step S239 that the pixel is the last pixel in the LCU, the process proceeds to step S240.
- step S240 the adaptive loop filter unit 221 determines whether it is the last pixel in the screen. If it is determined in step S240 that the pixel is not the last pixel in the screen, the process proceeds to step S241.
- step S241 the adaptive loop filter unit 221 selects the next LCU, and the process returns to step S238. That is, the processing from step S238 onward is repeated for the LCU selected in step S241.
- step S240 If it is determined in step S240 that the pixel is the last pixel in the screen, the in-loop filter process in FIG. 20 is terminated.
- the inputs of the three filter processes constituting the in-loop filter 31 are processed in parallel as reconstructed pixels, and the line memory is shared at the LCU boundary. It is possible to reduce the number of line memories.
- the in-loop filter 31 has a simple configuration in which switching between normal processing and LCU boundary processing is performed only by switching whether a pixel from the previous stage or a pixel from the line memory is input. Thereby, control when the deblocking filter, the adaptive offset filter, and the adaptive offset filter each perform frame processing by software or the like can be easily performed.
- FIG. 21 is a block diagram illustrating a configuration example of the in-loop filter.
- the in-loop filter 31 shown in FIG. 21 is a configuration example in the case of two parallels shown sixth from the left in FIG.
- the in-loop filter 31 in FIG. 21 is configured to include the deblocking filter unit 101 in FIG. 6, the line memory 251, the adaptive offset filter unit 252, the adaptive loop filter unit 253, the calculation unit 254, and the coefficient memory 255. ing.
- the deblocking filter unit 101 is configured to include an H (horizontal) filter 111, a V (vertical) filter 112, and a line memory 113.
- the line memory 113 holds four lines of pixels for luminance (Y) and two lines of pixels for color difference (C) at the LCU boundary.
- the deblocking filter unit 101 normally performs the filtering process by the H filter 111 and the filtering process by the V filter 112 on the reconstructed pixel that is the input pixel from the previous stage (except for the LCU boundary).
- the deblocking filter unit 101 outputs the filtered pixels to the line memory 251 and the calculation unit 254.
- the deblocking filter unit 101 once holds the reconstructed pixel, which is the input pixel from the previous stage, in the line memory 113.
- the deblocking filter unit 101 performs filtering using the H filter 111 using the input pixels and the pixels held in the line memory 113, and the V filter 112. Filter processing is performed.
- the deblocking filter unit 101 outputs the filtered pixels to the line memory 251 and the calculation unit 254.
- the deblocking filter unit 101 performs filter processing using the H filter 111 and filter processing using the V filter 112 using the reconstructed pixels that are input pixels from the previous stage.
- the deblocking filter unit 101 outputs the filtered pixels to the line memory 251 and the calculation unit 254.
- the line memory 251 once holds the pixels after filtering by the deblocking filter unit 101.
- the line memory 251 holds pixels for three lines for luminance (Y) and holds pixels for three lines for color difference (C). Note that the number of lines to be held is not limited because it depends on the architecture and the like.
- the adaptive offset filter unit 252 and the adaptive loop filter unit 253 share the line memory 251 in which the pixels after filtering by the deblocking filter unit 101 are held.
- the adaptive offset filter unit 252 is basically configured with the adaptive offset filter unit 154 of FIG. 7 so as to include the offset filter 121 of FIG.
- the adaptive offset filter unit 252 reads out the pixels held in the line memory 251 and applies the filter processing by the offset filter 121 to the read out pixels.
- the adaptive offset filter unit 252 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 254.
- the adaptive offset filter unit 252 performs the filter process by the offset filter 121 on the pixels from the deblocking filter unit 101.
- the adaptive offset filter unit 252 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 254.
- the adaptive loop filter unit 253 is basically configured similarly to the adaptive loop filter unit 155 of FIG. 7 so as to include the loop filter 131 of FIG.
- the adaptive loop filter unit 253 reads out the pixels held in the line memory 251 and applies the filter processing by the loop filter 131 to the read out pixels.
- the adaptive loop filter unit 253 outputs the pixel after the filter processing by the loop filter 131 to the calculation unit 254.
- the adaptive loop filter unit 253 performs filter processing by the loop filter 131 on the pixels from the deblocking filter unit 101.
- the adaptive loop filter unit 253 outputs the pixel after the filter processing by the loop filter 131 to the calculation unit 254.
- the adaptive offset filter unit 252 and the adaptive loop filter unit 253 align the output phases and restart the processing.
- the calculation unit 254 is composed of subtraction units 181-1 and 181-2, multiplication units 182-1 and 182-2, and an addition unit 183, and calculates the output P after each filter processing by a linear sum. Note that as the input pixel in the arithmetic unit 254, the pixel after filtering from the deblocking filter unit 101 is normally used, but the pixel held in the line memory 251 is read and used at the LCU boundary. .
- the subtracting unit 181-1 subtracts the pixel P DB after the deblocking filter from the filtered pixel P SAO from the adaptive offset filter unit 252, and outputs the result to the multiplying unit 182-1.
- the multiplication unit 182-1 multiplies the input (P SAO ⁇ P DB ) from the subtraction unit 181-1 by the coefficient C SAO corresponding to the adaptive offset filter unit 252 from the coefficient memory 255, and the addition unit 183 Output.
- the subtracting unit 181-2 subtracts the pixel P DB after the deblocking filter from the filtered pixel P ALF from the adaptive loop filter unit 253, and outputs the result to the multiplying unit 182-2.
- the multiplication unit 182-2 multiplies the input (P ALF ⁇ P DB ) from the subtraction unit 181-2 by the coefficient C ALF corresponding to the adaptive loop filter unit P DB from the coefficient memory 255, and adds the addition unit 183. Output to.
- Addition unit 183 the pixel P DB after deblocking filter, adds the multiplication result from the multiplying unit 182-1 and 182-2, a P is the addition result is output to the frame memory.
- the coefficient memory 255 stores a coefficient corresponding to each filter.
- the coefficient memory 255 stores a coefficient C SAO corresponding to the adaptive offset filter unit 154 and a coefficient C ALF corresponding to the adaptive loop filter unit 155.
- the coefficient C SAO and the coefficient C ALF in the case of FIG. 21 are coefficients that are multiplied by the pixel subjected to the filtering process for the pixel after the deblocking filter unit 101, and therefore correspond to the deblocking filter unit 101, respectively. You may do it.
- coefficients may also be set by the user via an operation input unit (not shown). These coefficients may also be set according to the characteristics of the image.
- the deblocking filter unit 101 sequentially applies the filter processing by the H filter 111 and the V filter 112 to the reconstructed pixel that is the input pixel from the previous stage, and the filtered pixel is stored in the line memory 251. Output.
- the pixels held in the line memory 251 are filtered in parallel by the adaptive offset filter unit 252 and the adaptive loop filter unit 253.
- the adaptive offset filter unit 252 reads out the pixel after the deblocking filter held in the line memory 251, and performs a filter process by the offset filter 121 on the read out pixel.
- the adaptive offset filter unit 252 performs filter processing by the offset filter 121 on the processing target pixel using eight pixels (SAO reference pixels in FIG. 22) around the processing target pixel.
- the adaptive offset filter unit 252 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 254.
- the adaptive loop filter unit 253 reads out the pixel after the deblocking filter held in the line memory 251, and performs a filtering process by the loop filter 131 on the read out pixel.
- the adaptive loop filter unit 253 performs filter processing by the loop filter 131 on the processing target pixel, using 16 pixels of the 5-tap snowflake shape (ALF tap shown in FIG. 22) centering on the processing target pixel. .
- the adaptive loop filter unit 253 outputs the pixel after the filter processing by the loop filter 131 to the calculation unit 254.
- the calculation unit 254 calculates the pixel after the filter processing from the adaptive offset filter unit 252 and the pixel after the filter processing from the adaptive loop filter unit 253 as a linear sum, and outputs the result to the subsequent stage.
- FIG. 23 shows an example of LCU boundary pixels in the case of a luminance signal.
- the deblocking V (vertical) filter processing at the horizontal boundary is started when the next LCU is input to the deblocking filter. Represents a pixel.
- the circles indicated by hatching in the first to third lines represent pixels that have been partially deblocked H (horizontal) filtered at the vertical boundary of the CUs included in the LCU.
- white circles represent pixels that are not actually subjected to deblocking H filter processing at the vertical boundary of the CU.
- Pixels on the 4th to 7th lines from the LCU boundary are pixels that have been subjected to deblocking V filter processing.
- the pixel on the fourth line from the LCU boundary is a pixel referred to in the deblocking V filter processing on the first line to the third line.
- a circle above the sixth line from the LCU boundary represents a pixel after the loop filter (ALF).
- the deblocking filter unit 101 At the LCU boundary, as described above with reference to FIG. 5, in the case of a luminance signal, the deblocking filter unit 101 first to third lines from the LCU boundary until the four lines of pixels of the next LCU are input. A standby state is entered in the processing of the pixels on the line. That is, the deblocking filter unit 101 can process only up to the fourth line from the LCU boundary.
- the adaptive offset filter unit 252 and the adaptive loop filter unit 253 process the pixels after the filter (DF) by the deblocking filter unit 101. Therefore, the adaptive loop filter unit 253 can process only up to the sixth line from the LCU boundary. For this reason, the adaptive offset filter unit 252 also enters a standby state in the processing of the pixel on the sixth line from the LCU boundary so that the process can be started from the sixth line from the LCU boundary.
- the deblocking filter unit 101 starts processing to output from the pixels of the third line from the LCU boundary. Since the pixel on the third line from the LCU boundary is input from the deblocking filter unit 101, the adaptive loop filter unit 253 starts processing to output from the pixel on the fifth line from the LCU boundary. The adaptive offset filter unit 252 also starts processing so as to match the output phase with the adaptive loop filter unit 253 and output from the pixels on the fifth line from the LCU boundary.
- the deblocking filter unit 101 needs to hold the pixels in the first to fourth lines from the LCU boundary in the line memory 113.
- the pixels in the fifth and sixth lines from the LCU boundary need to be held in the line memory 251.
- the pixels in the fifth to seventh lines from the LCU boundary need to be held in the line memory 251.
- the line memory 251 only needs to hold pixels for three lines from the fifth to seventh lines from the LCU boundary.
- the in-loop filter 31 of FIG. 21 requires the line memory 113 for 4 lines and the line memory 251 for 3 lines, which is compared with the conventional 9 lines of pixels. It is possible to reduce the number of line memories for two lines.
- FIG. 24 shows an example of LCU boundary pixels in the case of a color difference signal.
- the circle on the first line from the LCU boundary represents a pixel where the deblocking V (vertical) filter processing at the horizontal boundary is started when the next LCU is input to the deblocking filter. ing.
- a circle indicated by hatching in the first line represents a pixel that has been partially deblocked H (horizontal) filtered at the vertical boundary of the CU included in the LCU.
- white circles represent pixels that are not actually subjected to deblocking H filter processing at the vertical boundary of the CU.
- Pixels on the 2nd to 5th lines from the LCU boundary are pixels that have been subjected to deblocking V filter processing.
- the pixel on the second line from the LCU boundary is a pixel referred to in the deblocking V filter process on the first line.
- a circle above the fourth line from the LCU boundary represents a pixel after the loop filter (ALF).
- the deblocking filter unit 101 starts the first line from the LCU boundary until pixels for two lines of the next LCU are input. A standby state is entered in pixel processing. That is, the deblocking filter unit 101 can process only the second line from the LCU boundary.
- the adaptive offset filter unit 252 and the adaptive loop filter unit 253 process the pixels after the filter (DF) by the deblocking filter unit 101. Therefore, the adaptive loop filter unit 253 can process only the fourth line from the LCU boundary. For this reason, the adaptive offset filter unit 252 also enters a standby state in the processing of the pixel on the third line from the LCU boundary so that the process can be started from the third line from the LCU boundary.
- the deblocking filter unit 101 starts processing so as to output from the pixels on the first line from the LCU boundary. Since the pixel on the first line from the LCU boundary is input from the deblocking filter unit 101, the adaptive loop filter unit 253 starts processing so as to output from the pixel on the third line from the LCU boundary. The adaptive offset filter unit 252 also starts processing so as to match the output phase with the adaptive loop filter unit 253 and output from the pixels on the third line from the LCU boundary.
- the deblocking filter unit 101 needs to hold the pixels on the first and second lines from the LCU boundary in the line memory 113.
- the pixels in the third and fourth lines from the LCU boundary need to be held in the line memory 251.
- the pixels in the third to fifth lines from the LCU boundary need to be held in the line memory 251.
- the line memory 251 only needs to hold pixels for three lines from the third to fifth lines from the LCU boundary.
- the in-loop filter 31 of FIG. 21 requires the line memory 113 for two lines and the line memory 251 for three lines, which are compared with the conventional pixels for seven lines. It is possible to reduce the number of line memories for two lines.
- step S251 the deblocking filter unit 101 performs a deblocking filter process. That is, the deblocking filter unit 101 performs filter processing by the H filter 111 and filter processing by the V filter 112 on the reconstructed pixel.
- the pixel after the filter processing is output to the line memory 251, the adaptive offset filter unit 252, the adaptive loop filter unit 253, and the calculation unit 254.
- the deblocking filter unit 101 normally performs a filtering process by the H filter 111 on the reconstructed pixel that is an input pixel from the previous stage (other than the LCU boundary).
- the deblocking filter unit 101 once holds the reconstructed pixel, which is the input pixel from the previous stage, in the line memory 113.
- the deblocking filter unit 101 performs filtering using the H filter 111 using the input pixels and the pixels held in the line memory 113, and the V filter 112. Filter processing is performed.
- step S252 the deblocking filter unit 101 determines whether it is the last pixel in the LCU. If it is determined in step S252 that the pixel is not the last pixel in the LCU, the process returns to step S251, and the subsequent processes are repeated.
- step S252 If it is determined in step S252 that it is the last pixel in the LCU, the process proceeds to step S253.
- step S253 the deblocking filter unit 101 determines whether it is the last pixel in the screen. If it is determined in step S253 that the pixel is not the last pixel in the screen, the process proceeds to step S254.
- step S254 the deblocking filter unit 101 selects the next LCU, and the process returns to step S251. That is, the processing from step S251 onward is repeated for the LCU selected in step S254.
- step S253 If it is determined in step S253 that the pixel is not the last pixel in the screen, the process proceeds to steps S255 and S256.
- steps S255 and S256 are executed in parallel using the pixels held in the line memory 251.
- processing is started with the output phases aligned in steps S255 and S256.
- the adaptive offset filter unit 252 performs a filtering process by the offset filter 121 on the pixels from the line memory 251 or the deblocking filter unit 101 in step S255.
- the adaptive offset filter unit 252 outputs the pixel after the filter processing by the offset filter 121 to the calculation unit 254.
- the adaptive loop filter unit 253 performs filter processing by the loop filter 131 on the pixels from the line memory 251 or the deblocking filter unit 101 in step S256.
- the adaptive loop filter unit 253 outputs the pixel after the filter processing by the loop filter 131 to the calculation unit 254.
- step S257 the calculation unit 254 calculates two results after each filter processing by the adaptive offset filter unit 252 and the adaptive loop filter unit 253. The result after the calculation is output to the subsequent stage.
- step S258 the adaptive offset filter unit 252 and the adaptive loop filter unit 253 determine whether it is the last pixel in the LCU. If it is determined in step S258 that the pixel is not the last pixel in the LCU, the processing returns to steps S255 and S256, and the subsequent processing is repeated.
- step S258 If it is determined in step S258 that the pixel is the last pixel in the LCU, the process proceeds to step S259.
- step S259 the adaptive offset filter unit 252 and the adaptive loop filter unit 253 determine whether or not it is the last pixel in the screen. If it is determined in step S259 that the pixel is not the last pixel in the screen, the process proceeds to step S260.
- step S260 the adaptive offset filter unit 252 and the adaptive loop filter unit 253 select the next LCU, and the process returns to steps S255 and S256. That is, the processes after steps S255 and S256 are repeated for the LCU selected at step S260.
- step S259 If it is determined in step S259 that the pixel is not the last pixel in the screen, the in-loop filter process is terminated.
- the input of the two filter processes constituting the in-loop filter 31 is processed in parallel as the pixel after the deblocking filter, and the line memory is shared at the LCU boundary. Therefore, the number of line memories can be reduced.
- the in-loop filter 31 has a simple configuration in which switching between normal processing and LCU boundary processing is performed only by switching whether a pixel from the previous stage or a pixel from the line memory is input. Accordingly, control when the adaptive offset filter and the adaptive offset filter each perform frame processing can be easily performed by software or the like.
- the in-loop filter 31 is controlled to process each filter unit in parallel. It can also comprise so that the control part to perform may be provided.
- the control unit also performs control such that the output phases from the filter units that perform processing in parallel are matched.
- the HEVC method is used as the encoding method.
- the present disclosure is not limited to this, and other encoding schemes / decoding schemes including at least two of a deblocking filter, an adaptive offset filter, and an adaptive loop filter can be applied as the in-loop filter. .
- the present disclosure discloses, for example, image information (bitstream) compressed by orthogonal transformation such as discrete cosine transformation and motion compensation, such as HEVC, satellite broadcasting, cable television, the Internet, or a mobile phone.
- the present invention can be applied to an image encoding device and an image decoding device used when receiving via a network medium.
- the present disclosure can be applied to an image encoding device and an image decoding device that are used when processing on a storage medium such as an optical disk, a magnetic disk, and a flash memory.
- FIG. 26 is a block diagram showing a hardware configuration example of a personal computer that executes the above-described series of processing by a program.
- a CPU Central Processing Unit
- ROM Read Only Memory
- RAM Random Access Memory
- An input / output interface 505 is further connected to the bus 504.
- the input / output interface 505 includes an input unit 506 made up of a keyboard, mouse, microphone, etc., an output unit 507 made up of a display, a speaker, etc., a storage unit 508 made up of a hard disk or nonvolatile memory, and a communication unit 509 made up of a network interface.
- a drive 510 is connected to drive a removable medium 211 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
- the input unit 506 includes a keyboard, a mouse, a microphone, and the like.
- the output unit 507 includes a display, a speaker, and the like.
- the storage unit 508 includes a hard disk, a nonvolatile memory, and the like.
- the communication unit 509 includes a network interface or the like.
- the drive 510 drives a removable medium 511 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory.
- the CPU 501 loads the program stored in the storage unit 508 to the RAM 503 via the input / output interface 505 and the bus 504 and executes the program, for example. A series of processes are performed.
- Programs executed by the computer (CPU 501) are, for example, a magnetic disk (including a flexible disk), an optical disk (CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc), etc.), a magneto-optical disc, or a semiconductor.
- the program can be provided by being recorded on a removable medium 511 as a package medium including a memory.
- the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
- the program can be installed in the storage unit 508 via the input / output interface 505 by attaching the removable medium 511 to the drive 510. Further, the program can be received by the communication unit 509 via a wired or wireless transmission medium and installed in the storage unit 508. In addition, the program can be installed in the ROM 502 or the storage unit 508 in advance.
- the program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
- the step of describing the program recorded on the recording medium is not limited to the processing performed in chronological order according to the described order, but may be performed in parallel or It also includes processes that are executed individually.
- system represents the entire apparatus composed of a plurality of devices (apparatuses).
- the configuration described as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
- the configurations described above as a plurality of devices (or processing units) may be combined into a single device (or processing unit).
- a configuration other than that described above may be added to the configuration of each device (or each processing unit).
- a part of the configuration of a certain device (or processing unit) may be included in the configuration of another device (or other processing unit). . That is, the present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the gist of the present technology.
- An image encoding device and an image decoding device include a transmitter or a receiver in optical broadcasting, satellite broadcasting, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, etc.
- the present invention can be applied to various electronic devices such as a recording device that records an image on a medium such as a magnetic disk and a flash memory, or a playback device that reproduces an image from these storage media.
- a recording device that records an image on a medium such as a magnetic disk and a flash memory
- a playback device that reproduces an image from these storage media.
- FIG. 27 illustrates an example of a schematic configuration of a television apparatus to which the above-described embodiment is applied.
- the television apparatus 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface 909, a control unit 910, a user interface 911, And a bus 912.
- Tuner 902 extracts a signal of a desired channel from a broadcast signal received via antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the encoded bit stream obtained by the demodulation to the demultiplexer 903. In other words, the tuner 902 serves as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the demultiplexer 903 separates the video stream and audio stream of the viewing target program from the encoded bit stream, and outputs each separated stream to the decoder 904. Further, the demultiplexer 903 extracts auxiliary data such as EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. Note that the demultiplexer 903 may perform descrambling when the encoded bit stream is scrambled.
- EPG Electronic Program Guide
- the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. In addition, the decoder 904 outputs audio data generated by the decoding process to the audio signal processing unit 907.
- the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display the video.
- the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via a network.
- the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting.
- the video signal processing unit 905 may generate a GUI (Graphical User Interface) image such as a menu, a button, or a cursor, and superimpose the generated image on the output image.
- GUI Graphic User Interface
- the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays an image on a video screen of a display device (for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- a display device for example, a liquid crystal display, a plasma display, or an OELD (Organic ElectroLuminescence Display) (organic EL display)). Or an image is displayed.
- the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on the audio data input from the decoder 904, and outputs audio from the speaker 908.
- the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
- the external interface 909 is an interface for connecting the television apparatus 900 to an external device or a network.
- a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also has a role as a transmission unit in the television apparatus 900 that receives an encoded stream in which an image is encoded.
- the control unit 910 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
- the program stored in the memory is read and executed by the CPU when the television apparatus 900 is activated.
- the CPU executes the program to control the operation of the television device 900 according to an operation signal input from the user interface 911, for example.
- the user interface 911 is connected to the control unit 910.
- the user interface 911 includes, for example, buttons and switches for the user to operate the television device 900, a remote control signal receiving unit, and the like.
- the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
- the bus 912 connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910 to each other.
- the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment. As a result, when decoding an image on the television device 900, the line memory can be reduced with a simple processing structure.
- FIG. 28 shows an example of a schematic configuration of a mobile phone to which the above-described embodiment is applied.
- a mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a demultiplexing unit 928, a recording / reproducing unit 929, a display unit 930, a control unit 931, an operation A portion 932 and a bus 933.
- the antenna 921 is connected to the communication unit 922.
- the speaker 924 and the microphone 925 are connected to the audio codec 923.
- the operation unit 932 is connected to the control unit 931.
- the bus 933 connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931 to each other.
- the mobile phone 920 has various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode, and is used for sending and receiving voice signals, sending and receiving e-mail or image data, taking images, and recording data. Perform the action.
- the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
- the audio codec 923 converts an analog audio signal into audio data, A / D converts the compressed audio data, and compresses it. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
- the communication unit 922 encodes and modulates the audio data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. In addition, the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
- the audio codec 923 decompresses the audio data and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the control unit 931 generates character data constituting the e-mail in response to an operation by the user via the operation unit 932.
- the control unit 931 causes the display unit 930 to display characters.
- the control unit 931 generates e-mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated e-mail data to the communication unit 922.
- the communication unit 922 encodes and modulates email data and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- the communication unit 922 demodulates and decodes the received signal to restore the email data, and outputs the restored email data to the control unit 931.
- the control unit 931 displays the content of the electronic mail on the display unit 930 and stores the electronic mail data in the storage medium of the recording / reproducing unit 929.
- the recording / reproducing unit 929 has an arbitrary readable / writable storage medium.
- the storage medium may be a built-in storage medium such as RAM or flash memory, and is externally mounted such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Unallocated Space Space Bitmap) memory, or memory card. It may be a storage medium.
- the camera unit 926 images a subject to generate image data, and outputs the generated image data to the image processing unit 927.
- the image processing unit 927 encodes the image data input from the camera unit 926 and stores the encoded stream in the storage medium of the storage / playback unit 929.
- the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the multiplexed stream is the communication unit 922. Output to.
- the communication unit 922 encodes and modulates the stream and generates a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
- the communication unit 922 amplifies a radio signal received via the antenna 921 and performs frequency conversion to acquire a received signal.
- These transmission signal and reception signal may include an encoded bit stream.
- the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
- the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
- the image processing unit 927 decodes the video stream and generates video data.
- the video data is supplied to the display unit 930, and a series of images is displayed on the display unit 930.
- the audio codec 923 decompresses the audio stream and performs D / A conversion to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
- the image processing unit 927 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. As a result, line memory can be reduced with a simple processing structure when encoding and decoding images with the mobile phone 920.
- FIG. 29 shows an example of a schematic configuration of a recording / reproducing apparatus to which the above-described embodiment is applied.
- the recording / reproducing device 940 encodes audio data and video data of a received broadcast program and records the encoded data on a recording medium.
- the recording / reproducing device 940 may encode audio data and video data acquired from another device and record them on a recording medium, for example.
- the recording / reproducing device 940 reproduces data recorded on the recording medium on a monitor and a speaker, for example, in accordance with a user instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
- the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. 950.
- Tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown), and demodulates the extracted signal. Then, the tuner 941 outputs the encoded bit stream obtained by the demodulation to the selector 946. That is, the tuner 941 has a role as a transmission unit in the recording / reproducing apparatus 940.
- the external interface 942 is an interface for connecting the recording / reproducing apparatus 940 to an external device or a network.
- the external interface 942 may be, for example, an IEEE1394 interface, a network interface, a USB interface, or a flash memory interface.
- video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 serves as a transmission unit in the recording / reproducing device 940.
- the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the encoded bit stream to the selector 946.
- the HDD 944 records an encoded bit stream in which content data such as video and audio is compressed, various programs, and other data on an internal hard disk. Further, the HDD 944 reads out these data from the hard disk when reproducing video and audio.
- the disk drive 945 performs recording and reading of data to and from the mounted recording medium.
- the recording medium mounted on the disk drive 945 is, for example, a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.) or a Blu-ray (registered trademark) disk. It may be.
- the selector 946 selects an encoded bit stream input from the tuner 941 or the encoder 943 when recording video and audio, and outputs the selected encoded bit stream to the HDD 944 or the disk drive 945. In addition, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 during video and audio reproduction.
- the decoder 947 decodes the encoded bit stream and generates video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. The decoder 904 outputs the generated audio data to an external speaker.
- OSD 948 reproduces the video data input from the decoder 947 and displays the video. Further, the OSD 948 may superimpose a GUI image such as a menu, a button, or a cursor on the video to be displayed.
- the control unit 949 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the recording / reproducing apparatus 940 is activated, for example.
- the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from the user interface 950, for example, by executing the program.
- the user interface 950 is connected to the control unit 949.
- the user interface 950 includes, for example, buttons and switches for the user to operate the recording / reproducing device 940, a remote control signal receiving unit, and the like.
- the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
- the encoder 943 has the function of the image encoding apparatus according to the above-described embodiment.
- the decoder 947 has the function of the image decoding apparatus according to the above-described embodiment.
- FIG. 30 illustrates an example of a schematic configuration of an imaging apparatus to which the above-described embodiment is applied.
- the imaging device 960 images a subject to generate an image, encodes the image data, and records it on a recording medium.
- the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972.
- the optical block 961 is connected to the imaging unit 962.
- the imaging unit 962 is connected to the signal processing unit 963.
- the display unit 965 is connected to the image processing unit 964.
- the user interface 971 is connected to the control unit 970.
- the bus 972 connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970 to each other.
- the optical block 961 includes a focus lens and a diaphragm mechanism.
- the optical block 961 forms an optical image of the subject on the imaging surface of the imaging unit 962.
- the imaging unit 962 includes an image sensor such as a CCD (Charge-Coupled Device) or a CMOS (Complementary Metal-Oxide Semiconductor), and converts an optical image formed on the imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
- CCD Charge-Coupled Device
- CMOS Complementary Metal-Oxide Semiconductor
- the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
- the signal processing unit 963 outputs the image data after the camera signal processing to the image processing unit 964.
- the image processing unit 964 encodes the image data input from the signal processing unit 963 and generates encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965. In addition, the image processing unit 964 may display the image by outputting the image data input from the signal processing unit 963 to the display unit 965. Further, the image processing unit 964 may superimpose display data acquired from the OSD 969 on an image output to the display unit 965.
- the OSD 969 generates a GUI image such as a menu, a button, or a cursor, and outputs the generated image to the image processing unit 964.
- the external interface 966 is configured as a USB input / output terminal, for example.
- the external interface 966 connects the imaging device 960 and a printer, for example, when printing an image.
- a drive is connected to the external interface 966 as necessary.
- a removable medium such as a magnetic disk or an optical disk is attached to the drive, and a program read from the removable medium can be installed in the imaging device 960.
- the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
- the recording medium mounted on the media drive 968 may be any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
- a recording medium may be fixedly mounted on the media drive 968, and a non-portable storage unit such as an internal hard disk drive or an SSD (Solid State Drive) may be configured.
- the control unit 970 includes a processor such as a CPU and memories such as a RAM and a ROM.
- the memory stores a program executed by the CPU, program data, and the like.
- the program stored in the memory is read and executed by the CPU when the imaging device 960 is activated, for example.
- the CPU controls the operation of the imaging device 960 according to an operation signal input from the user interface 971 by executing the program.
- the user interface 971 is connected to the control unit 970.
- the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
- the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
- the image processing unit 964 has the functions of the image encoding device and the image decoding device according to the above-described embodiment. As a result, when the image is encoded and decoded by the imaging device 960, the line memory can be reduced with a simple processing structure.
- the filtering process for the vertical boundary is mainly performed before the filtering process for the horizontal boundary has been described.
- the present invention is also applicable when the filtering process for the horizontal boundary is performed first.
- the above-described effects of the technology according to the disclosure can be enjoyed equally.
- the size of the processing unit of the deblocking filter or the size of the LCU is not limited to the example described in the present specification, and may be other sizes.
- the filter for the filtering process for the vertical boundary is expressed as “H (horizontal) filter”.
- the filter taps of the filtering process for the horizontal boundary are arranged along the vertical direction, the filter of the filtering process for the horizontal boundary is expressed as “V (vertical) filter”.
- V (vertical) filter the filtering process for the vertical boundary
- H (horizontal) filter the filtering process for the horizontal boundary
- the method for transmitting such information is not limited to such an example.
- these pieces of information may be transmitted or recorded as separate data associated with the encoded bitstream without being multiplexed into the encoded bitstream.
- the term “associate” means that an image (which may be a part of an image such as a slice or a block) included in the bitstream and information corresponding to the image can be linked at the time of decoding. Means. That is, information may be transmitted on a transmission path different from that of the image (or bit stream).
- Information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream). Furthermore, the information and the image (or bit stream) may be associated with each other in an arbitrary unit such as a plurality of frames, one frame, or a part of the frame.
- this technique can also take the following structures.
- a decoding unit that decodes an encoded stream to generate an image;
- a first filter that performs a first filter process on the reconstructed image of the image generated by the decoding unit;
- a second filter that performs a second filter process different from the first filter process on the reconstructed image of the image generated by the decoding unit;
- An image processing apparatus comprising: an arithmetic unit that performs arithmetic processing using the image on which the first filter processing has been performed and the image on which the second filter processing has been performed.
- the above (1) further includes a control unit that controls the first filter and the second filter so that the first filter processing and the second filter processing are performed in parallel. The image processing apparatus described.
- the image processing device wherein the control unit performs control so as to match output phases of the first filter and the second filter.
- a memory for holding a reconstructed image of the image generated by the decoding unit is further provided.
- the image processing apparatus according to any one of (1) to (3), wherein the first filter and the second filter acquire the reconstructed image from the memory.
- the first filter is a filter that removes noise at a block boundary.
- the first filter is a deblocking filter.
- the deblocking filter includes a filter applied to left and right pixels of a vertical boundary, and a filter applied to pixels above and below a horizontal boundary.
- the control unit performs control so that a filter process applied to pixels on the left and right of the vertical boundary and a filter process applied to pixels above and below the horizontal boundary are performed in parallel.
- Image processing device (9) The image processing apparatus according to any one of (1) to (7), wherein the second filter includes a third filter that removes ringing or a fourth filter that performs class classification on a block basis. . (10) The image processing device according to (9), wherein the third filter is an adaptive offset filter, and the fourth filter is an adaptive loop filter.
- the calculation unit may use the first calculation coefficient corresponding to the first filter processing as an image on which the first filter processing has been performed and an image on which the second filter processing has been performed.
- the image processing device according to any one of (1) to (10), wherein arithmetic processing is performed such that addition is performed as a linear sum using a second arithmetic coefficient corresponding to the second filter processing.
- (12) The image processing device according to (11), wherein the first calculation coefficient and the second calculation coefficient are set according to a distance from a vertical boundary and a horizontal boundary.
- the image processing apparatus Decoding the encoded stream to generate an image, For the reconstructed image of the generated image, the first filter processing is performed, For the reconstructed image of the generated image, a second filter process different from the first filter process is performed, An image processing method for performing arithmetic processing using an image on which the first filter processing has been performed and an image on which the second filter processing has been performed.
- a first filter that performs a first filter process on a reconstructed image of an image that has been locally decoded when the image is encoded;
- a second filter that performs a second filter process different from the first filter process on the reconstructed image of the locally decoded image;
- An arithmetic unit that performs arithmetic processing using the image subjected to the first filter processing and the image subjected to the second filter processing;
- An image processing apparatus comprising: an encoding unit that encodes the image using an image that is a result of the arithmetic processing performed by the arithmetic unit.
- the above (14) further comprising a control unit that controls the first filter and the second filter so that the first filter processing and the second filter processing are performed in parallel.
- the image processing apparatus The first filter processing is performed on the reconstructed image of the image that has been subjected to local decoding processing when the image is encoded, A second filter process different from the first filter process is performed on the reconstructed image of the image subjected to the local decoding process, Using the image on which the first filter processing has been performed and the image on which the second filter processing has been performed, arithmetic processing is performed, An image processing method for encoding an image using an image that is a result of arithmetic processing.
- a decoding unit that generates an image by decoding the encoded stream; A first filter that performs a first filter process on the reconstructed image of the image generated by the decoding unit; A second filter that performs a second filter process different from the first filter process for an image on which the first filter process has been performed by the first filter;
- An image processing apparatus comprising: an arithmetic unit that performs arithmetic processing using the image on which the first filter processing has been performed and the image on which the second filter processing has been performed.
- the image processing apparatus is Decoding the encoded stream to generate an image, For the reconstructed image of the generated image, the first filter processing is performed, For the image on which the first filter processing has been performed, a second filter processing different from the first filter processing is performed, An image processing method for performing arithmetic processing using an image on which the first filter processing has been performed and an image on which the second filter processing has been performed.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
本技術は、簡単な処理構造で、ラインメモリの削減を図ることができるようにする画像処理装置および方法に関する。 LCU境界において、デブロッキングHフィルタ部、デブロッキングVフィルタ部、適応オフセットフィルタ部、および適応ループフィルタ部は、ラインメモリを共有し、ラインメモリに保持されたリコンストラクト画素に対して、並列に各フィルタ処理を行う。演算部は、各フィルタ処理後の画素に対して加算などの演算行い、演算結果を後段に出力する。本開示は、例えば、画像処理装置に適用することができる。
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のドラフトでは、インループフィルタとして、デブロッキングフィルタ、適応ループフィルタ、および適応オフセットフィルタが採用されている。インループフィルタにおいては、デブロッキングフィルタ、適応オフセットフィルタ、適応ループフィルタの順に処理が行われるが、最大の符号化単位であるLCUの水平境界(以下、単にLCU境界とも称する)においては、それぞれラインメモリを持つ必要があり、トータルすると、大量のラインメモリが必要になる。
そこで、この大量のラインメモリを削減するために、さまざまな提案がなされている。例えば、非特許文献1においては、デブロッキングのために保持するラインにかかる適応オフセットフィルタの処理(タップ参照画素)は、リコンストラクト画素(すなわち、デブロッキング前の画素)を利用する。これにより、デブロッキング用に保持するラインまでの適応ループフィルタ処理を行い、保持するラインメモリを削減することが提案されている。
" Line Memory Reduction for ALF Decoding", Semih Esenlik, Matthias Narroschke, Thomas Wedi, JCTVC-E225,March 2011
しかしながら、非特許文献1において提案されている方法は、LCUベース処理に特化した処理である。したがって、ソフトウエアなどで、デブロッキングフィルタ、適応オフセットフィルタ、および適応オフセットフィルタがそれぞれフレーム処理をする場合にかなり複雑な制御になってしまう。
本開示は、このような状況に鑑みてなされたものであり、簡単な処理構造で、ラインメモリの削減を図ることができるものである。
本開示の第1の側面の画像処理装置は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、前記復号部により生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部とを備える。
前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部をさらに備えることができる。
前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御することができる。
前記復号部により生成された画像のリコンストラクト画像を保持するメモリをさらに備え、前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得することができる。
前記第1のフィルタは、ブロック境界のノイズを除去するフィルタである。
前記第1のフィルタは、デブロッキングフィルタである。
前記デブロックフィルタは、垂直境界の左右の画素にかけるフィルタ、および水平境界の上下の画素にかけるフィルタを含むことができる。
前記制御部は、前記垂直境界の左右の画素にかけるフィルタの処理と前記水平境界の上下の画素にかけるフィルタの処理とを並列的に行うように制御することができる。
前記第2のフィルタは、リンギングを除去する第3のフィルタ、およびブロックベースでクラス分類を行う第4のフィルタの少なくとも一方を含むことができる。
前記第3のフィルタは、適応オフセットフィルタであって、前記第4のフィルタは、適応ループフィルタである。
前記演算部は、前記第1のフィルタ処理が行われた画像と、前記第2のフィルタ処理が行われた画像とを、前記第1のフィルタ処理に対応する第1の演算係数と前記第2のフィルタ処理に対応する第2の演算係数とを用いた線形和で加算するように演算処理することができる。
前記第1の演算係数と前記第2の演算係数とは、垂直境界および水平境界からの距離に応じて設定される。
本開示の第1の側面の画像処理方法は、画像処理装置が、符号化ストリームを復号処理して画像を生成し、生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する。
本開示の第2の側面の画像処理装置は、画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と、前記演算部により演算処理された結果である画像を用いて、前記画像を符号化する符号化部とを備える。
前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部をさらに備えることができる。
前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御することができる。
前記復号部により生成された画像のリコンストラクト画像を保持するメモリをさらに備え、前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得することができる。
本開示の第2の側面の画像処理方法は、画像処理装置が、画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理し、演算処理された結果である画像を用いて、前記画像を符号化する。
本開示の第3の側面の画像処理装置は、符号化ストリームを復号処理して画像を生成する復号部と、前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、前記第1のフィルタにより前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部とを備える。
本開示の第3の側面の画像処理方法は、画像処理装置が、符号化ストリームを復号処理して画像を生成し、生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する。
本開示の第1の側面においては、符号化ストリームを復号処理して画像が生成され、生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理が行われる。また、生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理が行われる。そして、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理される。
本開示の第2の側面においては、画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理が行われる。また、前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理が行われる。そして、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理され、演算処理された結果である画像を用いて、前記画像が符号化される。
本開示の第3の側面においては、符号化ストリームを復号処理して画像が生成され、生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理が行われる。また、前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理が行われる。そして、前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理される。
なお、上述の画像処理装置は、独立した装置であっても良いし、1つの画像符号化装置または画像復号装置を構成している内部ブロックであってもよい。
本開示の第1の側面および第3の側面によれば、画像を復号することができる。特に、簡単な処理構造で、ラインメモリの削減を図ることができる。
本開示の第2の側面によれば、画像を符号化することができる。特に、簡単な処理構造で、ラインメモリの削減を図ることができる。
以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.装置および動作の概要
2.従来の手法の説明
3.第1の実施の形態
4.第2の実施の形態
5.第3の実施の形態
6.第4の実施の形態
7.第5の実施の形態
8.応用例
1.装置および動作の概要
2.従来の手法の説明
3.第1の実施の形態
4.第2の実施の形態
5.第3の実施の形態
6.第4の実施の形態
7.第5の実施の形態
8.応用例
<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、インループフィルタ31a、フレームメモリ32、選択部33、イントラ予測部34、動き予測・補償部35、予測画像選択部36、およびレート制御部37を有する。
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から供給される予測画像を加算する。
その加算結果である復号画像は、インループフィルタ31aおよびフレームメモリ32に供給される。
インループフィルタ31aは、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタを含むように構成される。インループフィルタ31aは、復号画像の画素(すなわち、リコンストラクト画素)を対象として、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタの処理を施し、フィルタ処理結果を加算した画像を、フレームメモリ32に供給する。
なお、インループフィルタ31aにおいては、デブロックフィルタの垂直および水平、適応オフセットフィルタ、並びに適応ループフィルタの少なくとも2つの処理が並列で行われる。このインループフィルタ31aの構成および動作の詳細は図7を参照して後述される。
フレームメモリ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は、生成された予測画像を、予測画像選択部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は変換係数を量子化する。この量子化に際しては、後述するステップS26の処理で説明されるように、レートが制御される。
以上のようにして量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS19において、逆量子化部28は、量子化部25により量子化された変換係数を量子化部25の特性に対応する特性で逆量子化する。ステップS20において、逆直交変換部29は、逆量子化部28により逆量子化された変換係数を直交変換部24の特性に対応する特性で逆直交変換する。
ステップS21において、演算部30は、予測画像選択部36を介して入力される予測画像を局部的に復号された差分情報に加算し、局部的に復号された(すなわち、ローカルデコードされた)画像(演算部23への入力に対応する画像)を生成する。
ステップS22においてインループフィルタ31aは、演算部30より出力された画像に対して、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタからなるフィルタ処理を行う。このとき、デブロックフィルタの垂直および水平、適応オフセットフィルタ、並びに適応ループフィルタの少なくとも2つの処理が並列で行われる。このインループフィルタ処理の詳細は、図10を参照して後述される。インループフィルタ31aからの復号画像は、フレームメモリ32に出力される。
ステップS23においてフレームメモリ32は、フィルタリングされた画像を記憶する。なお、フレームメモリ32には、インループフィルタ31aによりフィルタされていない画像も演算部30から供給され、記憶される。
一方、上述したステップS18において量子化された変換係数は、可逆符号化部26にも供給される。ステップS24において、可逆符号化部26は、量子化部25より出力された量子化された変換係数と、供給された各パラメータを符号化する。すなわち、差分画像が可変長符号化、算術符号化等の可逆符号化され、圧縮される。
ステップS25において蓄積バッファ27は、符号化された差分画像(すなわち、符号化ストリーム)を、圧縮画像として蓄積する。蓄積バッファ27に蓄積された圧縮画像が適宜読み出され、伝送路を介して復号側に伝送される。
ステップS26においてレート制御部37は、蓄積バッファ27に蓄積された圧縮画像に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部25の量子化動作のレートを制御する。
ステップS26の処理が終了すると、符号化処理が終了される。
[画像復号装置の構成例]
図3は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図3に示される画像復号装置51は、図1の画像符号化装置11に対応する復号装置である。
図3は、本開示を適用した画像処理装置としての画像復号装置の一実施の形態の構成を表している。図3に示される画像復号装置51は、図1の画像符号化装置11に対応する復号装置である。
画像符号化装置11より符号化された符号化データは、所定の伝送路を介して、この画像符号化装置11に対応する画像復号装置51に伝送され、復号されるものとする。
図3に示されるように、画像復号装置51は、蓄積バッファ61、可逆復号部62、逆量子化部63、逆直交変換部64、演算部65、インループフィルタ31b、画面並べ替えバッファ67、およびD/A変換部68を有する。また、画像復号装置51は、フレームメモリ69、選択部70、イントラ予測部71、動き予測・補償部72、および選択部73を有する。
蓄積バッファ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は、その復号画像データをインループフィルタ31bに供給する。
インループフィルタ31bは、画像符号化装置11のインループフィルタ31aと同様に、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタを含むように構成される。インループフィルタ31bは、復号画像の画素(すなわち、リコンストラクト画素)を対象として、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタの処理を施し、フィルタ処理結果を加算した画像を、画面並べ替えバッファ67に供給する。
なお、インループフィルタ31bにおいては、デブロックフィルタの垂直および水平、適応オフセットフィルタ、並びに適応ループフィルタの少なくとも2つの処理が並列で行われる。このインループフィルタ31bの構成および動作の詳細は図7を参照して後述される。
画面並べ替えバッファ67は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ22により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部68は、画面並べ替えバッファ67から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
インループフィルタ31bの出力は、さらに、フレームメモリ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においてインループフィルタ31bは、演算部30より出力された画像に対して、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタからなるフィルタ処理を行う。このとき、デブロックフィルタの垂直および水平、適応オフセットフィルタ、並びに適応ループフィルタの少なくとも2つの処理が並列で行われる。このインループフィルタ処理の詳細は、図10を参照して後述される。インループフィルタ31bからの復号画像は、フレームメモリ69および画面並べ替えバッファ67に出力される。
ステップS59においてフレームメモリ69は、フィルタリングされた画像を記憶する。
ステップS60において、画面並べ替えバッファ67は、インループフィルタ31b後の画像の並べ替えを行う。すなわち画像符号化装置11の画面並べ替えバッファ22により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
ステップS61において、D/A変換部68は、画面並べ替えバッファ67からの画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
ステップS61の処理が終了すると、復号処理が終了される。
<従来の手法の説明>
従来のインループフィルタは、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタの順に、直列で処理するため、LCU(Largest Coding Unit)の水平境界(すなわち、LCUの下部)においては、ラインメモリをそれぞれ持つ必要があった。
従来のインループフィルタは、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタの順に、直列で処理するため、LCU(Largest Coding Unit)の水平境界(すなわち、LCUの下部)においては、ラインメモリをそれぞれ持つ必要があった。
ここで、LCU(Largest Coding Unit)とCU(Coding Unit)について簡単に説明する。H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))(以下H.264/AVCと称する)においては、1つのマクロブロックを、複数の動き補償ブロックに分割し、それぞれに対して異なる動き情報を持たせることが可能であった。すなわち、H.264/AVC方式においては、マクロブロックとサブマクロブロックによる階層構造が規定されていた。これに対して、HEVC(High Efficiency Video Coding)方式においては、コーディングユニット(CU)が規定されている。
CUは、Coding Tree Block(CTB)とも呼ばれ、H.264/AVC方式におけるマクロブロックと同様の役割を果たす、符号化(復号)の処理単位となる領域(ピクチャ単位の画像の部分領域)である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。例えば、後述する図5の例では、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境界における従来のインループフィルタの説明]
図5を参照して、HEVC方式におけるインループフィルタを構成する各フィルタのLCUの水平境界で必要な各ラインメモリ数について説明する。なお、以下、単にLCU境界と称する場合、それは、LCUの水平境界を表すものとして説明する。また、LCU境界からのラインの数は、LCU境界からの上に向かってのラインの数を示すものとして説明する。
図5を参照して、HEVC方式におけるインループフィルタを構成する各フィルタのLCUの水平境界で必要な各ラインメモリ数について説明する。なお、以下、単にLCU境界と称する場合、それは、LCUの水平境界を表すものとして説明する。また、LCU境界からのラインの数は、LCU境界からの上に向かってのラインの数を示すものとして説明する。
図5の例においては、輝度信号の例が示されている。図5の例において、一番下がLCU境界を示しており、丸は画素を表している。
LCU境界から1ライン目乃至3ライン目の丸は、次のLCUがデブロッキングフィルタに入力されたときに、水平境界のデブロッキングV(垂直)フィルタ処理が開始される画素を表している。なお、1ライン目乃至3ライン目のハッチングで示される丸は、LCUに含まれるCUの垂直境界において部分的にデブロッキングH(水平)フィルタ処理された画素を表している。1行目乃至3行目の丸のうち、白丸は、CUの垂直境界において、実際には、デブロッキングHフィルタ処理が施されない画素を表している。
LCU境界から4ライン目の画素は、デブロッキングVフィルタ処理済みの画素であって、かつ、適応オフセットフィルタ(SAO: Sample adaptive offset)処理前の画素である。この4ライン目の画素は、1ライン目乃至3ライン目のデブロッキングVフィルタ処理において参照される画素でもある。LCU境界から5ライン目の画素は、デブロッキングVフィルタ処理および適応オフセットフィルタ済みの画素である。
LCU境界から6ライン目の画素は、適応オフセットフィルタ処理済みの画素であって、かつ、適応ループフィルタ(ALF: Adaptive Loop Filter)処理がなされていない画素である。
LCU境界から7ライン目乃至16ライン行目の丸は、適応ループフィルタ(ALF)処理後の画素を表している。
デブロッキングフィルタは、LCU境界において、LCU境界から1ライン目乃至3ライン目の画素を処理する際、LCU境界を介して下に接するLCUの画素(次の4ライン分の画素)が入力されないとデブロッキングVフィルタ処理を開始できない。
したがって、デブロッキングフィルタのラインメモリに、次に処理される対象の1乃至3ライン目の画素と参照画素である4ライン目の画素との計4ライン分の画素が保持された図5の状態で、デブロッキングVフィルタ処理は待機(一時停止)することになる。
適応オフセットフィルタは、適応オフセットフィルタのラインメモリに保持されているLCU境界から5ライン目の画素のフィルタ処理を、デブロッキングフィルタのラインメモリに保持されているLCU境界から4ライン目の画素を参照して完了させる。
しかしながら、LCU境界から3ライン目の画素のデブロッキングフィルタが完了しないために、適応オフセットフィルタは、次のLCU境界から4ライン目の画素の処理を開始することができない。したがって、適応オフセットフィルタのラインメモリにLCU境界から5ライン目の画素が保持された図5の状態で、適応オフセットフィルタの処理も待機することになる。
適応ループフィルタは、LCU境界から7ライン目の画素のフィルタ処理(例えば、5タップ)を、LCU境界から5および6ライン目の画素と8および9ライン目の画素を参照して完了させる。このとき、適応ループフィルタは、次のLCU境界から6ライン目の画素のフィルタ処理に必要のない9ライン目の画素を、適応ループフィルタのラインメモリから手放し、ラインメモリには、LCU境界から5乃至8ライン目の4ライン分の画素が保持されている。
しかしながら、次のLCU境界から6ライン目の画素のフィルタ処理に参照される4ライン目の画素が、3ライン目の画素のデブロッキングフィルタが完了しないためにデブロッキングフィルタが手放せず、適応ループフィルタのラインメモリに入力されない。それゆえ、適応ループフィルタは、次の処理を開始することができない。したがって、適応ループフィルタのラインメモリにLCU境界から5乃至8ライン目の4ライン分の画素が保持された図5の状態で、適応ループフィルタの処理も待機することになる。
[従来のインループフィルタの構成]
図6は、従来のインループフィルタの構成例を示すブロック図である。
図6は、従来のインループフィルタの構成例を示すブロック図である。
図6に示されるインループフィルタは、デブロッキングフィルタ部101、適応オフセットフィルタ部102、および適応ループフィルタ部103を含むように構成されている。
デブロッキングフィルタ部101は、H(水平)フィルタ111、V(垂直)フィルタ112、およびラインメモリ113を含むように構成され、入力画素に対して、ブロックCU(LCU)境界のノイズを除去するデブロッキングフィルタ処理を施す。
Hフィルタ111は、入力画像内の左右に隣接するCU(LCU)間の垂直境界の左右(水平方向)の画素にかけるデブロッキングフィルタである。また、Vフィルタ112は、入力画像内の上下に隣接するCU(LCU)間の水平境界の上下(垂直方向)の画素にかけるデブロッキングフィルタである。ラインメモリ113は、LCU境界において、前段から入力される入力画素であるリコンストラクト画素を一旦保持する。ラインメモリ113は、図5を参照して上述したように、LCU境界において、輝度(Y)について4ライン分の画素を保持し、色差(C)について2ライン分の画素を保持する。
デブロッキングフィルタ部101は、通常(LCU境界以外)、前段からの入力画素であるリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。デブロッキングフィルタ部101は、フィルタ処理後の画素を、適応オフセットフィルタ部102に出力する。
LCU境界においては、デブロッキングフィルタ部101は、前段からの入力画素であるリコンストラクト画素を、一旦ラインメモリ113に保持する。そして、必要な画素が入力されると、デブロッキングフィルタ部101は、入力された画素と、ラインメモリ113に保持されている画素とを用いて、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。デブロッキングフィルタ部101は、フィルタ処理後の画素を、適応オフセットフィルタ部102に出力する。
適応オフセットフィルタ部102は、オフセットフィルタ121およびラインメモリ122を含むように構成され、デブロッキングフィルタ部101からの復号画像に対して、主にリンギングを除去するオフセットフィルタ処理を行う。
オフセットフィルタ121の種類は、バンドオフセット2種類、エッジオフセット6種類、オフセットなしの計9種類がある。ラインメモリ122は、図5を参照して上述したように、LCU境界において、輝度(Y)について1ライン分の画素を保持し、色差(C)について1ライン分の画素を保持する。
適応オフセットフィルタ部102は、通常、デブロッキングフィルタ部101によりフィルタ処理が施された画素に対して、オフセットフィルタ121によるフィルタ処理を行い、フィルタ処理後の画素を、適応ループフィルタ部103に出力する。
LCU境界においては、適応オフセットフィルタ部102は、デブロッキングフィルタ部101からの入力画素であるリコンストラクト画素を、一旦ラインメモリ122に保持する。そして、必要な画素が入力されると、適応オフセットフィルタ部102は、入力された画素とラインメモリ122に保持されている画素とを用いて、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部102は、フィルタ処理後の画素を、適応オフセットフィルタ部102に出力する。
適応ループフィルタ部103は、ループフィルタ131およびラインメモリ132を含むように構成され、適応オフセットフィルタ部102からの復号画像に対して、ブロックベースでクラス分類を行い、適応ループフィルタ処理を行う。
ループフィルタ131は、例えば、2次元のウィナーフィルタ(Wiener Filter)で構成される。ラインメモリ132は、図5を参照して上述したように、LCU境界において、輝度(Y)について4ライン分の画素を保持し、色差(C)について4ライン分の画素を保持する。
適応ループフィルタ部103は、通常、適応オフセットフィルタ部102によりフィルタ処理が施された画素に対して、ループフィルタ131によるフィルタ処理を行い、フィルタ処理後の画素を、後段のフレームメモリなどに出力する。
LCU境界においては、適応ループフィルタ部103は、適応オフセットフィルタ部102からの入力画素であるリコンストラクト画素を、一旦ラインメモリ132に保持する。そして、必要な画素が入力されると、適応ループフィルタ部103は、入力された画素とラインメモリ132に保持されている画素とを用いて、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部103は、フィルタ処理後の画素を、後段のフレームメモリなどに出力する。
以上のように、輝度信号の場合、LCU境界において、デブロッキングフィルタには、4ライン分の画素を保持するラインメモリが必要であり、適応オフセットフィルタには、1ライン分の画素を保持するラインメモリが必要であった。さらに、適応ループフィルタには、4ライン分の画素を保持するラインメモリが必要であり、重複する画素もあるが、トータルで、9ライン分の画素を保持するラインメモリが必要であった。
また、色差信号の場合には、その説明を省略するが、LCU境界において、デブロッキングフィルタには、2ライン分の画素を保持するラインメモリが必要であり、適応オフセットフィルタには、1ライン分の画素を保持するラインメモリが必要であった。さらに、適応ループフィルタには、4ライン分の画素を保持するラインメモリが必要であり、重複する画素もあるが、トータルで、7ライン分の画素を保持するラインメモリが必要であった。
そこで、このような大量のラインメモリを削減するために、さまざまな提案がなされている。例えば、非特許文献1においては、デブロッキングのために保持するラインにかかる適応オフセットフィルタの処理(タップ参照画素)は、リコンストラクト画素(すなわち、デブロッキング前の画素)を利用する。これにより、デブロッキング用に保持するラインまでの適応ループフィルタ処理を行い、保持するラインメモリを削減することが提案されている。
しかしながら、非特許文献1に記載の提案は、LCUベース処理に特化した処理である。したがって、ソフトウエアなどで、デブロッキングフィルタ、適応オフセットフィルタ、および適応オフセットフィルタがそれぞれフレーム処理をする場合にかなり複雑な制御になってしまう。
そこで、以下に説明するインループフィルタにおいては、デブロッキングフィルタ、適応オフセットフィルタ、および適応ループフィルタの少なくとも2つを並列化して、ラインメモリを共有することにより、簡単な処理構造でラインメモリの削減を図る。
<3.第1の実施の形態>
[インループフィルタの構成例]
図7は、本開示を適用したインループフィルタの構成例を示すブロック図である。なお、図1に示した画像符号化装置11のインループフィルタ31aおよび図3に示した画像復号装置51のインループフィルタ31bの構成は、共通であってよい。したがって、これ以降の説明においては、個々に区別する必要がない場合、インループフィルタ31aおよびインループフィルタ31bをインループフィルタ31と総称する。
[インループフィルタの構成例]
図7は、本開示を適用したインループフィルタの構成例を示すブロック図である。なお、図1に示した画像符号化装置11のインループフィルタ31aおよび図3に示した画像復号装置51のインループフィルタ31bの構成は、共通であってよい。したがって、これ以降の説明においては、個々に区別する必要がない場合、インループフィルタ31aおよびインループフィルタ31bをインループフィルタ31と総称する。
図7の例において、インループフィルタ31は、ラインメモリ151、デブロッキングH(水平)フィルタ部152、デブロッキングV(垂直)フィルタ部153、適応オフセットフィルタ部154、適応ループフィルタ部155、および演算部156を含むように構成されている。なお、図7の例においては、LCU境界におけるインループフィルタ31の構成例が示されている。
ラインメモリ151は、LCU境界において、前段から入力されるリコンストラクト画素を一旦保持する。なお、前段とは、図1の画像符号化装置11の場合、演算部30であり、図3の画像復号装置51の場合、演算部65である。
図7の例においては、ラインメモリ151は、輝度(Y)について、5ライン分の画素を保持し、色差(C)について、3ライン分の画素を保持する。なお、保持するライン数は、アーキテクチャなどに依存されるため、限定されない。
LCU境界において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、リコンストラクト画素が保持されたラインメモリ151を共有している。
デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、ラインメモリ151に保持されたリコンストラクト画素に対して、並列に各フィルタ処理を行う。そして、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、演算部156にフィルタ処理後の画素をそれぞれ出力する。
すなわち、デブロッキングHフィルタ部152は、図6のHフィルタ111を含むように構成され、左右に隣接するブロック間の垂直境界のブロックノイズを除去するデブロッキングHフィルタ処理を施す。Hフィルタ111は、図6を参照して上述したように、入力画像内の左右に隣接するブロック間の垂直境界の左右の画素にかけるデブロッキングフィルタである。
LCU境界において、デブロッキングHフィルタ部152は、ラインメモリ151に保持されているリコンストラクト画素を読み出し、読み出したリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施す。デブロッキングHフィルタ部152は、Hフィルタ111によるフィルタ処理後の画素を、演算部156に出力する。
デブロッキングVフィルタ部153は、図6のVフィルタ112を含むように構成され、上下に隣接するブロック間の水平境界のブロックノイズを除去するデブロッキングVフィルタ処理を施す。Vフィルタ112は、図6を参照して上述したように、入力画像内の上下に隣接するブロック間の水平境界の上下の画素にかけるデブロッキングフィルタである。
LCU境界において、デブロッキングVフィルタ部153は、ラインメモリ151に保持されているリコンストラクト画素を読み出し、読み出したリコンストラクト画素に対して、Vフィルタ112によるフィルタ処理を施す。デブロッキングVフィルタ部153は、Vフィルタ112によるフィルタ処理後の画素を、演算部156に出力する。
適応オフセットフィルタ部154は、図6のオフセットフィルタ121を含むように構成され、入力画像に対して、主にリンギングを除去するオフセットフィルタ処理を行う。
オフセットフィルタ121の種類は、図6を参照して上述したように、バンドオフセット2種類、エッジオフセット6種類、オフセットなしの計9種類がある。オフセットフィルタ121は、具体的には、分割領域毎にオフセットフィルタ121の種類が決定されたものであるquad-tree構造と分割領域毎のオフセット値を用いて施される。このquad-tree構造とオフセット値は、図1の画像符号化装置11の場合、算出されたものが用いられ、図3の画像復号装置51の場合、図1の画像符号化装置11により算出されたものが復号されて用いられる。
LCU境界において、適応オフセットフィルタ部154は、ラインメモリ151に保持されているリコンストラクト画素を読み出し、読み出したリコンストラクト画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部154は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部156に出力する。
適応ループフィルタ部155は、図6のループフィルタ131を含むように構成され、入力画像に対して、ブロックベースでクラス分類を行い、適応ループフィルタ処理を行う。
ループフィルタ131は、図6を参照して上述したように、例えば、2次元のウィナーフィルタ(Wiener Filter)で構成される。ループフィルタ131は、具体的には、適応ループフィルタ係数を用いて施される。この適応ループフィルタ係数は、図1の画像符号化装置11の場合、ブロックベースでクラス分類を行い、分類されたクラス毎に、画面並べ替えバッファ22からの原画像との残差を最小とするよう算出されたものが用いられる。また、適応ループフィルタ係数は、図3の画像復号装置51の場合、図1の画像符号化装置11により算出されたものが復号されて用いられる。
LCU境界において、適応ループフィルタ部155は、ラインメモリ151に保持されているリコンストラクト画素を読み出し、読み出したリコンストラクト画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部155は、ループフィルタ131によるフィルタ処理後の画素を、演算部156に出力する。
演算部156は、LCU境界において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155による各フィルタ処理後の画素に対して、例えば、加算などの演算処理を行う。なお、この演算処理には、加算だけでなく、例えば、減算、乗算などの処理も含むようにしてよい。そして、演算部156は、演算結果を後段に出力する。後段とは、図1の画像符号化装置11の場合、フレームメモリ32であり、図3の画像復号装置51の場合、画面並べ替えバッファ67およびフレームメモリ69である。
[LCU境界における各フィルタの詳細]
図8は、LCU境界の画素の例を示している。図8の例において、丸は、インループフィルタ31に入力されるリコンストラクト画素を表し、図中下のラインがLCU境界を表している。
図8は、LCU境界の画素の例を示している。図8の例において、丸は、インループフィルタ31に入力されるリコンストラクト画素を表し、図中下のラインがLCU境界を表している。
LCU境界においては、デブロッキングVフィルタ部153は、図5を参照して上述したように、輝度信号の場合、次のLCUの4ライン分の画素が入力されるまで、LCU境界から1ライン目乃至3ライン目の画素の処理において待機状態となる。すなわち、デブロッキングVフィルタ部153が、LCU境界から4ライン目までしか処理することができないので、並列する他のフィルタ部は、デブロッキングVフィルタ部153に出力位相を揃えることが必要となる。
したがって、適応オフセットフィルタ部154も、適応ループフィルタ部155も、LCU境界から4ライン目までの処理を完了させ、次のLCU境界から3ライン目の画素の処理において待機状態となる。
そして、次のLCUの4ライン分の画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、LCU境界から3ライン目の画素から出力するように処理を開始する。
その際、デブロッキングHフィルタ部152においては、LCU境界から1乃至3ライン目の画素がラインメモリ151に保持されている必要がある。デブロッキングVフィルタ部153においては、LCU境界から1乃至4ライン目の画素がラインメモリ151に保持されている必要がある。適応オフセットフィルタ部154においては、LCU境界から1乃至4ライン目の画素がラインメモリ151に保持されている必要がある。また、適応ループフィルタ部155においては、LCU境界から1乃至5ライン目の画素がラインメモリ151に保持されている必要がある。
以上により、輝度信号の場合、ラインメモリ151には、LCU境界から1乃至5ライン目の5ライン分の画素が保持されていればよい。
したがって、図5を参照して上述した従来の9ライン分の画素と比して、4ライン分もラインメモリ数を減らすことが可能である。
なお、色差信号の場合、LCU境界においては、デブロッキングVフィルタ部153は、次のLCUの2ラインの画素が入力されるまで、LCU境界から1ライン目および2ライン目の画素の処理において待機状態となる。すなわち、デブロッキングVフィルタ部153は、LCU境界から3ライン目までしか処理することができないので、デブロッキングVフィルタ部153に出力位相を揃えることが必要となる。
したがって、適応オフセットフィルタ部154も、適応ループフィルタ部155も、LCU境界から3ライン目までの処理を完了させ、次のLCU境界から2ライン目の画素の処理において待機状態となる。
そして、次のLCUの2ライン分の画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155も、LCU境界から2ライン目の画素から出力するように処理を開始する。
その際、デブロッキングHフィルタ部152においては、LCU境界から1および2ライン目の画素がラインメモリ151に保持されている必要がある。デブロッキングVフィルタ部153においては、LCU境界から1および2ライン目の画素がラインメモリ151に保持されている必要がある。適応オフセットフィルタ部154においては、LCU境界から1乃至3ライン目の画素がラインメモリ151に保持されている必要がある。また、適応ループフィルタ部155においては、例えば、色差が5タップの処理である場合、LCU境界から1乃至4ライン目の画素がラインメモリ151に保持されている必要がある。
以上により、色差信号の場合の場合、ラインメモリ151には、LCU境界から1乃至4ライン目の4ライン分の画素が保持されていればよい。
したがって、図5を参照して上述した従来の7ライン分の画素と比して、3ライン分もラインメモリ数を減らすことが可能である。
[インループフィルタの詳細な構成例]
図9は、図7のインループフィルタのさらに詳細な構成例を示すブロック図である。図7のインループフィルタ31が、LCU境界の場合の構成を示しているのに対して、図9の例のインループフィルタ31は、LCU境界の場合も含む詳細な構成を示している。
図9は、図7のインループフィルタのさらに詳細な構成例を示すブロック図である。図7のインループフィルタ31が、LCU境界の場合の構成を示しているのに対して、図9の例のインループフィルタ31は、LCU境界の場合も含む詳細な構成を示している。
図9の例において、インループフィルタ31は、ラインメモリ151、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153を含むように構成されている。また、インループフィルタ31は、適応オフセットフィルタ部154、適応ループフィルタ部155、演算部156、および係数メモリ171を含むように構成されている。
すなわち、インループフィルタ31は、係数メモリ171が追加されたのみ点が、図7のインループフィルタ31と異なっている。
前段からの入力画素であるリコンストラクト画素は、ラインメモリ151、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、適応ループフィルタ部155、および演算部156に入力される。
LCU境界において、ラインメモリ151は、輝度信号について、LCU境界から5ライン分のリコンストラクト画素を保持し、色差信号について、LCU境界から3ライン分のリコンストラクト画素を保持するように構成されている。
通常(LCU境界以外)の処理においては、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、適応ループフィルタ部155は、前段から入力されるリコンストラクト画素に対して各フィルタ処理を施す。そして、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、適応ループフィルタ部155は、フィルタ処理後の画素を、演算部156に出力する。
LCU境界においては、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、ラインメモリ151に保持されているリコンストラクト画素に対して各フィルタ処理を施す。そして、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、フィルタ処理後の画素を、演算部156に出力する。
なお、上述したように、LCU境界において必要なラインの画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、出力位相を揃えて処理を再開する。
演算部156は、減算部181-1乃至181-4、乗算部182-1乃至182-4、および加算部183により構成されており、各フィルタ処理後の出力Pを線形和で演算する。なお、演算部156における入力画素としては、通常、前段からのリコンストラクト画素が用いられるが、LCU境界においては、ラインメモリ151に保持されている画素が読み出されて用いられる。
減算部181-1は、デブロッキングHフィルタ部152からのフィルタ後の画素PDB_Hから入力画素Pinを減算し、乗算部182-1に出力する。乗算部182-1は、減算部181-1からの入力(PDB_H-Pin)に対して、係数メモリ171からのデブロッキングHフィルタ部152に対応する係数CDB_Hを乗算し、加算部183に出力する。
減算部181-2は、デブロッキングVフィルタ部153からのフィルタ後の画素PDB_Vから入力画素Pinを減算し、乗算部182-2に出力する。乗算部182-2は、減算部181-2からの入力(PDB_H-Pin)に対して、係数メモリ171からのデブロッキングVフィルタ部153に対応する係数CDB_Vを乗算し、加算部183に出力する。
減算部181-3は、適応オフセットフィルタ部154からのフィルタ後の画素PSAOから入力画素Pinを減算し、乗算部182-3に出力する。乗算部182-3は、減算部181-3からの入力(PSAO-Pin)に対して、係数メモリ171からの適応オフセットフィルタ部154に対応する係数CSAOを乗算し、加算部183に出力する。
減算部181-4は、適応ループフィルタ部155からのフィルタ後の画素PALFから入力画素Pinを減算し、乗算部182-4に出力する。乗算部182-4は、減算部181-3からの入力(PALF-Pin)に対して、係数メモリ171からの適応ループフィルタ部155に対応する係数CALFを乗算し、加算部183に出力する。
加算部183は、入力画素Pinに、乗算部182-1乃至182-4からの乗算結果を、式(1)のように加算し、加算結果であるPを、フレームメモリに出力する。
P = Pin+CDB_H×(PDB_H-Pin)+CDB_V×(PDB_V-Pin)
+CSAO×(PSAO-Pin)+CALF×(PALF-Pin)
・・・(1)
+CSAO×(PSAO-Pin)+CALF×(PALF-Pin)
・・・(1)
係数メモリ171は、各フィルタに対応する係数を記憶している。例えば、係数メモリ171には、デブロッキングHフィルタ部152に対応する係数CDB_H、およびデブロッキングVフィルタ部153に対応する係数CDB_Vが記憶されている。また、係数メモリ171には、適応オフセットフィルタ部154に対応する係数CSAO、および適応ループフィルタ部155に対応する係数CALFが記憶されている。
なお、これらの係数は、図示せぬ操作入力部を介してユーザにより設定可能にしてもよい。また、これらの係数は、画像の特性に応じて設定されてもよい。
具体的には、ブロックノイズが多めの画像であるならば、例えば、デブロッキングHフィルタ部152に対応する係数CDB_H、およびデブロッキングVフィルタ部153に対応する係数CDB_Vが、他の係数よりも大きめに設定される。
リンギングの多い画像であるならば、例えば、適応オフセットフィルタ部154に対応する係数CSAOが、他の係数よりも大きめに設定される。
上述したような特性が特にない画像であるならば、例えば、適応ループフィルタ部155に対応する係数CALFが、他の係数よりも大きめに設定される。
これにより、単に決まった割合で出力するよりも、画像の特性に応じたよりよい画像を得ることが可能になる。
[インループフィルタの処理例]
次に、図10のフローチャートを参照して、図9のインループフィルタ31の処理について説明する。なお、図10の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
次に、図10のフローチャートを参照して、図9のインループフィルタ31の処理について説明する。なお、図10の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
このインループフィルタ処理は、画面内の左上のLCUから処理が開始される。通常、LCUを構成するリコンストラクト画素は、前段からインループフィルタ31の各部に入力される。これに対応して、ステップS111乃至S114の処理は、前段から入力されるリコンストラクト画素を用いて並行で実行される。
一方、LCU境界において、LCUを構成するリコンストラクト画素は、前段からラインメモリ151に入力される。これに対応して、ステップS111乃至S114の処理は、ラインメモリ151に保持されたリコンストラクト画素を用いて並行で実行される。なお、上述したように、LCU境界において必要なラインの画素が入力された場合、ステップS111乃至S114においては、出力位相を揃えて処理が開始される。
また、各部への入力は、インループフィルタ31の各部においてそれぞれスイッチなどで切り替えられて用いられる。
すなわち、デブロッキングHフィルタ部152は、ステップS111において、ラインメモリ151または前段からのリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施す。デブロッキングHフィルタ部152は、Hフィルタ111によるフィルタ処理後の画素を、演算部156に出力する。
デブロッキングVフィルタ部153は、ステップS112において、ラインメモリ151または前段からのリコンストラクト画素に対して、Vフィルタ112によるフィルタ処理を施す。デブロッキングVフィルタ部153は、Vフィルタ112によるフィルタ処理後の画素を、演算部156に出力する。
適応オフセットフィルタ部154は、ステップS113において、ラインメモリ151または前段からのリコンストラクト画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部154は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部156に出力する。
適応ループフィルタ部155は、ステップS114において、ラインメモリ151または前段からのリコンストラクト画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部155は、ループフィルタ131によるフィルタ処理後の画素を、演算部156に出力する。
ステップS115において、演算部156は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155による各フィルタ処理後の4つの結果を演算する。
演算部156は、4つのフィルタ部による4つの結果を、例えば、上述した式(1)のような線形和で演算し、演算結果を後段に出力する。
ステップS116において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、LCU内の最後の画素であるかを判定する。ステップS116において、LCU内の最後の画素ではないと判定された場合、処理は、ステップS111に戻り、それ以降の処理が繰り返される。
ステップS116において、LCU内の最後の画素であると判定された場合、処理は、ステップS117に進む。ステップS117において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、画面内の最後の画素であるか否かを判定する。ステップS117において、画面内の最後の画素ではないと判定された場合、処理は、ステップS118に進む。
ステップS118において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155は、次のLCUを選択し、処理は、ステップS111に戻る。すなわち、ステップS118で選択されたLCUに対して、ステップS111以降の処理が繰り返される。
ステップS117において、画面内の最後の画素ではないと判定された場合、インループフィルタ処理は終了される。
以上のように、インループフィルタ31を構成する4つのフィルタ処理の入力を、リコンストラクト画素として並列処理し、LCU境界においてはラインメモリを共有するようにしたので、図8を参照して上述したように、ラインメモリ数を減らすことが可能である。
また、インループフィルタ31は、前段からの画素またはラインメモリからの画素のどちらの画素を入力するかを切り替えるだけで、通常の処理とLCU境界の処理の切り替えを行うというシンプルな構成である。これにより、ソフトウエアなどで、デブロッキングフィルタ、適応オフセットフィルタ、および適応オフセットフィルタがそれぞれフレーム処理をする場合の制御も容易に行うことができる。
さらに、演算部156においては、画像の特性に応じて、各フィルタに対応する係数を設定するようにしたので、単に決まった割合で出力するよりも、画像の特性に応じたよりよい画像を得ることが可能になる。
なお、上記説明においては、演算部156は、各フィルタ出力の線形和を演算し、それを出力する例を説明したが、各フィルタ出力の単純な平均であってもよいし、各フィルタ出力の加重平均を演算するようにしてもよい。この場合、演算部156は、例えば、各画素についての加重平均の重みを、各画素のCUに対する垂直境界までの距離および水平境界までの距離に応じて決定することができる。
図11は、演算部156による加重平均のための重みの決定について説明するための説明図である。図11の例においては、垂直境界VzについてのデブロッキングHフィルタ部152の出力および水平境界HzについてのデブロッキングVフィルタ部153の出力との加重平均を例に説明する。
注目画素Pzと最も近くの垂直境界Vzとの間の距離Dvは、3画素である。注目画素Pzと最も近くの水平境界Hzとの間の距離Dhは2画素である。距離Dhは、距離Dvよりも小さい。この場合、演算部156は、水平境界HzについてのデブロッキングVフィルタ部153の出力についての重みを、垂直境界VzについてのデブロッキングHフィルタ部152の出力についての重みよりも大きく決定し得る。図11の例の場合、垂直境界VzについてのHフィルタ出力PDB_Hと水平境界HzについてのVフィルタ出力PDB_Vとの間の重みの比は、2:3と決定されている。
図11から理解されるように、2つのフィルタ出力の加重平均が計算される結果として、水平方向に沿ったフィルタタップと垂直方向に沿ったフィルタタップとを有する1つの2次元フィルタが適用された場合と同等の出力画素値を、各注目画素について得ることができる。それにより、垂直境界及び水平境界についてのフィルタリング処理を並列化させた場合にも、垂直境界及び水平境界の双方に現れるブロック歪みを適切に減少させることができる。
なお、他の例として、インループフィルタ31は、Vフィルタ、Hフィルタ、および加重平均を同時に計算する1つの2次元フィルタを有していてもよい。ただし、その場合には、フィルタ係数を画素ごとに様々に変化させる必要性が生じるため、実装が極めて複雑となる。これに対し、図11の例のように2つの1次元フィルタを並列的に実行した後に加重平均を計算することとすれば、既存のデブロッキングフィルタの仕組みを活かしながら、2次元フィルタに実質的に等しい処理を容易に実現することができる。
図12は、図11の例に従って決定される加重平均のための重みの一例について説明するための説明図である。図12の例においては、垂直境界と水平境界との1つの交点の周囲に位置する6×6=36個の画素(上述した重複位置の画素)が示されている。これら画素のうち、垂直境界及び水平境界から等距離に位置する画素については、フィルタ出力PDB_Hとフィルタ出力PDB_Vとの間の重みの比は1対1(又は2対2若しくは3対3)である。垂直境界により近い画素については、フィルタ出力PDB_Hへの重みの方がフィルタ出力PDB_Vへの重みよりも大きく決定されている(例えば、画素P1の重みの比はPDB_H:PDB_V=3:1)。一方、水平境界により近い画素については、フィルタ出力PDB_Hへの重みの方がフィルタ出力PDB_Vへの重みよりも小さく決定されている(例えば、画素P2の重みの比はPDB_H:PDB_V=1:3)。
このように各画素と境界との間の距離に応じて加重平均の重みを変化させることで、ブロック歪みをより効果的に抑制して画質を改善することができる。
なお、上述した重みは一例に過ぎない。例えば、演算部156は、各画素と境界との間の距離の代わりに(又はそれに加えて)、各画素に対応する垂直境界及び水平境界のエッジの強さに応じて、各画素についての加重平均の重みを決定してもよい。この場合、よりエッジの強い境界についてのフィルタ出力の重みが、よりエッジの弱い境界についてのフィルタ出力の重みよりも大きく決定され得る。このようにエッジの強さに応じて加重平均の重みを変化させることで、ブロック歪みが強く現れている境界について適応的にデブロックフィルタの効果を高めることができる。
図13は、垂直境界および水平境界におけるフィルタリング要否の判定結果に応じた演算部156からの出力画素値を示している。
演算部156は、例えば、デブロッキングHフィルタ部152およびデブロッキングVフィルタ部153のいずれか一方によりフィルタリングされる画素については、実際にフィルタリングを行ったフィルタ部からの出力を選択する。また、演算部156は、デブロッキングHフィルタ部152およびデブロッキングVフィルタ部153のいずれによってもフィルタリングされない画素については、インループフィルタ31への入力画素値をそのまま出力する。
以上の加重平均は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155の4つのフィルタについても適用することができる。
例えば、垂直境界および水平境界においては、適応オフセットフィルタ部154および適応ループフィルタ部155への出力の加重が1とされ、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153の出力については上記加重平均が採用される。これにより、ブロック歪みが最適に除去された画像を得ることができる。
なお、上記説明においては、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および適応ループフィルタ部155が並列に構成されるインループフィルタ31の例について説明した。
しかしながら、インループフィルタ31の構成は、上述した4並列に限らず、図14に示されるように構成することも可能である。
図14の例においては、インループフィルタ31を構成し得る並列処理のパターンが示されている。左から順に図14を説明する。
インループフィルタ31は、図7を参照して上述したように、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)からなる4並列で構成される。
この場合、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)はリコンストラクト画素を用いて処理を行う。そして、4つのフィルタ結果が位相を合わせて、演算部156に出力される。
インループフィルタ31は、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、および適応オフセットフィルタ(SAO)→適応ループフィルタ(ALF)からなる3並列で構成される。なお、図14における→は、直列処理を表し、適応オフセットフィルタ(SAO)と適応ループフィルタ(ALF)は、従来のように直列で処理される。
この場合、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、および適応オフセットフィルタ(SAO)はリコンストラクト画素を用いて処理を行う。適応ループフィルタ(ALF)は、適応オフセットフィルタ(SAO)によるフィルタ後の画素を用いて処理を行う。そして、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、および適応ループフィルタ(ALF)からの3つのフィルタ結果が位相を合わせて、演算部156に出力される。なお、この3並列で構成されるインループフィルタ31の構成例は、図15を参照して後述される。
インループフィルタ31は、デブロッキングHフィルタ(D-H)→デブロッキングVフィルタ(D-V)、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)からなる3並列で構成される。なお、この場合、デブロッキングHフィルタ(D-H)およびデブロッキングVフィルタ(D-V)は、従来のように直列で処理される。
また、この場合、デブロッキングHフィルタ(D-H)、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)はリコンストラクト画素を用いて処理を行う。デブロッキングVフィルタ(D-V)は、デブロッキングHフィルタ(D-H)によるフィルタ後の画素を用いて処理を行う。そして、デブロッキングVフィルタ(D-V)、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)からの3つのフィルタ結果が位相を合わせて、演算部156に出力される。
インループフィルタ31は、デブロッキングHフィルタ(D-H)→デブロッキングVフィルタ(D-V)、並びに、適応オフセットフィルタ(SAO)→適応ループフィルタ(ALF)からなる2並列で構成される。この場合、デブロッキングHフィルタ(D-H)およびデブロッキングVフィルタ(D-V)は、従来のように直列で処理され、適応オフセットフィルタ(SAO)と適応ループフィルタ(ALF)は、従来のように直列で処理される。
また、この場合、デブロッキングHフィルタ(D-H)、および適応オフセットフィルタ(SAO)はリコンストラクト画素を用いて処理を行う。デブロッキングVフィルタ(D-V)は、デブロッキングHフィルタ(D-H)によるフィルタ後の画素を用いて処理を行い、適応ループフィルタ(ALF)は、適応オフセットフィルタ(SAO)によるフィルタ後の画素を用いて処理を行う。そして、デブロッキングVフィルタ(D-V)、および適応ループフィルタ(ALF)からの2つのフィルタ結果が位相を合わせて、演算部156に出力される。
インループフィルタ31は、デブロッキングHフィルタ(D-H)→デブロッキングVフィルタ(D-V)からの画素を入力する適応オフセットフィルタ(SAO)および適応ループフィルタ(ALF)からなる2並列で構成される。この場合、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、および適応オフセットフィルタ(SAO)は、従来のように直列で処理される。
また、この場合、デブロッキングHフィルタ(D-H)、および適応ループフィルタ(ALF)はリコンストラクト画素を用いて処理を行う。デブロッキングVフィルタ(D-V)は、デブロッキングHフィルタ(D-H)によるフィルタ後の画素を用いて処理を行い、適応オフセットフィルタ(SAO)は、デブロッキングVフィルタ(D-V)によるフィルタ後の画素を用いて処理を行う。そして、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)からの2つのフィルタ結果が位相を合わせて、演算部156に出力される。
インループフィルタ31は、デブロッキングフィルタ(D-H)→デブロッキングVフィルタ(D-V)→適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)からなる2並列で構成される。この場合、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)は、従来のように直列で処理される。
また、この場合、デブロッキングHフィルタ(D-H)はリコンストラクト画素を用いて処理を行い、デブロッキングVフィルタ(D-V)は、デブロッキングHフィルタ(D-H)によるフィルタ後の画素を用いて処理を行う。適応オフセットフィルタ(SAO)および適応ループフィルタ(ALF)は、デブロッキングVフィルタ(D-V)によるフィルタ後の画素を用いて処理を行う。そして、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)からの2つのフィルタ結果が位相を合わせて、演算部156に出力される。
なお、図中、左から5番目と6番目の構成の違いは、5番目の適応ループフィルタ(ALF)に入力される画素がリコンストラクト画素であるのに対して、6番目の適応ループフィルタ(ALF)に入力される画素がデブロッキングフィルタ後の画素であることである。
また、図14の例において、適応オフセットフィルタ(SAO)、および適応ループフィルタ(ALF)が直列に処理されるもの(図中、左から2番目と4番目の構成)については、適応ループフィルタ(ALF)を演算部156の後に配置することも可能である。
左から2番目の3並列の構成において、適応ループフィルタ(ALF)を演算部156の後に配置する場合、デブロッキングHフィルタ(D-H)、デブロッキングVフィルタ(D-V)、および適応オフセットフィルタ(SAO)からの3つのフィルタ結果が位相を合わせて、演算部156に出力される。そして、適応ループフィルタ(ALF)は、演算部156による演算後の画素を用いて処理を行い、後段に出力する。この場合の例としては、図19を参照して後述される。
左から4番目の2並列の構成において、適応ループフィルタ(ALF)を演算部156の後に配置する場合、デブロッキングVフィルタ(D-V)、および適応オフセットフィルタ(SAO)からの2つのフィルタ結果が位相を合わせて、演算部156に出力される。そして、適応ループフィルタ(ALF)は、演算部156による演算後の画素を用いて処理を行い、後段に出力する。
<4.第2の実施の形態>
[インループフィルタの詳細な構成例]
図15は、インループフィルタの構成例を示すブロック図である。図15に示されるインループフィルタ31は、図14の左から2番目に示された3並列の場合の構成例である。
[インループフィルタの詳細な構成例]
図15は、インループフィルタの構成例を示すブロック図である。図15に示されるインループフィルタ31は、図14の左から2番目に示された3並列の場合の構成例である。
図15のインループフィルタ31は、適応オフセットフィルタ部154、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153を含む点が、図9のインループフィルタ31と共通している。
図15のインループフィルタ31は、ラインメモリ151、適応ループフィルタ部155、演算部156、および係数メモリ171の代わりに、ラインメモリ201、適応ループフィルタ部202、演算部203、および係数メモリ204を備える点が、図9のインループフィルタ31と異なる。
前段からの入力画素であるリコンストラクト画素は、ラインメモリ201、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、適応オフセットフィルタ部154、および演算部203に入力される。
LCU境界において、ラインメモリ201は、輝度信号について、LCU境界から4ライン分のリコンストラクト画素を保持し、色差信号について、LCU境界から3ライン分のリコンストラクト画素を保持するように構成されている。
LCU境界において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、リコンストラクト画素が保持されたラインメモリ201を共有している。
通常(LCU境界以外)の処理においては、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、前段から入力されるリコンストラクト画素に対して、並列に各フィルタ処理を行う。そして、デブロッキングHフィルタ部152、およびデブロッキングVフィルタ部153は、演算部203にフィルタ処理後の画素をそれぞれ出力する。また、適応オフセットフィルタ部154は、適応ループフィルタ部202にフィルタ処理後の画素を出力する。
LCU境界においては、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、ラインメモリ201に保持されたリコンストラクト画素に対して、並列に各フィルタ処理を行う。そして、デブロッキングHフィルタ部152、およびデブロッキングVフィルタ部153は、演算部203にフィルタ処理後の画素をそれぞれ出力する。また、適応オフセットフィルタ部154は、適応ループフィルタ部202にフィルタ処理後の画素を出力する。
なお、LCU境界において必要なラインの画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応ループフィルタ部202は、出力位相を揃えて処理を再開する。このため、適応オフセットフィルタ部154は、適応ループフィルタ部202が他のフィルタ部と出力位相を揃えられるような出力位相で処理を再開する。
適応ループフィルタ部202は、適応オフセットフィルタ部154と演算部203の間に設けられ、図6のループフィルタ131およびラインメモリ211を含むように構成される。
LCU境界において、ラインメモリ211は、輝度信号について、LCU境界から4ライン分の適応オフセットフィルタ後の画素を保持し、色差信号について、LCU境界から4ライン分の適応オフセットフィルタ後画素を保持するように構成されている。
通常、適応ループフィルタ部202は、適応オフセットフィルタ部154からの画素に対して、ブロックベースでクラス分類を行い、ループフィルタ131による適応ループフィルタ処理を行う。LCU境界において、適応ループフィルタ部202は、適応オフセットフィルタ部154からの画素をラインメモリ211に一旦保持する。そして、適応ループフィルタ部202は、ラインメモリ211の画素に対して、ブロックベースでクラス分類を行い、ループフィルタ131による適応ループフィルタ処理を行う。適応ループフィルタ部202は、ループフィルタ131によるフィルタ処理後の画素を、演算部203に出力する。
演算部203は、減算部181-1乃至181-3、乗算部182-1乃至182-3、および加算部183により構成されており、各フィルタ処理後の出力Pを線形和で演算する。なお、演算部203における入力画素としては、通常、前段からのリコンストラクト画素が用いられるが、LCU境界においては、ラインメモリ201に保持されている画素が読み出されて用いられる。
減算部181-1は、デブロッキングHフィルタ部152からのフィルタ後の画素PDB_Hから入力画素Pinを減算し、乗算部182-1に出力する。乗算部182-1は、減算部181-1からの入力(PDB_H-Pin)に対して、係数メモリ204からのデブロッキングHフィルタ部152に対応する係数CDB_Hを乗算し、加算部183に出力する。
減算部181-2は、デブロッキングVフィルタ部153からのフィルタ後の画素PDB_Vから入力画素Pinを減算し、乗算部182-2に出力する。乗算部182-2は、減算部181-2からの入力(PDB_H-Pin)に対して、係数メモリ204からのデブロッキングVフィルタ部153に対応する係数CDB_Vを乗算し、加算部183に出力する。
減算部181-3は、適応ループフィルタ部202からのフィルタ後の画素PALFから入力画素Pinを減算し、乗算部182-3に出力する。乗算部182-3は、減算部181-3からの入力(PALF-Pin)に対して、係数メモリ204からの適応オフセットフィルタ部154および適応ループフィルタ部202に対応する係数CSAO/ALFを乗算し、加算部183に出力する。
加算部183は、入力画素Pinに、乗算部182-1乃至182-3からの乗算結果を加算し、加算結果であるPを、フレームメモリに出力する。
係数メモリ204は、各フィルタに対応する係数を記憶している。例えば、係数メモリ204には、デブロッキングHフィルタ部152に対応する係数CDB_H、およびデブロッキングVフィルタ部153に対応する係数CDB_Vが記憶されている。また、係数メモリ204には、適応オフセットフィルタ部154および適応ループフィルタ部202に対応する係数CSAO/ALFが記憶されている。なお、これらの係数も、係数メモリ204における係数と同様に、図示せぬ操作入力部を介してユーザにより設定可能である。
ここで、図16および図17を参照して、図15の例のインループフィルタ31の場合に必要なラインメモリ数について説明する。図16および図17の例において、丸は、画素を表し、図中下のラインがLCU境界を表している。
図16は、輝度信号の場合のLCU境界の画素の例を示している。図16の輝度信号の場合、LCU境界から1ライン目乃至4ライン目の丸は、未デブロッキングV画素であって、LCU境界においてラインメモリ201への保持が必要な画素である。LCU境界から2ライン目乃至5ライン目の丸は、オフセットフィルタ(SAO)後画素であって、ラインメモリ211への保持が必要な画素を表している。LCU境界から4ライン目より上の丸は、ループフィルタ(ALF)後画素を表している。
LCU境界においては、デブロッキングVフィルタ部153は、図5を参照して上述したように、輝度信号の場合、次のLCUの4ラインの画素が入力されるまで、LCU境界から1ライン目乃至3ライン目の画素の処理において待機状態となる。すなわち、デブロッキングVフィルタ部153が、LCU境界から4ライン目までしか処理することができないので、デブロッキングHフィルタ部152と適応ループフィルタ部202は、デブロッキングVフィルタ部153に出力位相を揃えることが必要となる。
ここで、適応ループフィルタ部202は、適応オフセットフィルタ部154によるフィルタ(SAO)後の画素を処理する。したがって、適応ループフィルタ部202が3ライン目から処理できるように、適応オフセットフィルタ部154は、LCU境界から2ライン目までの処理を完了させる。そして、適応オフセットフィルタ部154は、図16のSAO後画素に示されるように、次のLCU境界から1ライン目の画素の処理において待機状態となる。
そして、次のLCUの4ラインの画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153は、LCU境界から3ライン目の画素から出力するように処理を開始する。また、適応オフセットフィルタ部154は、LCU境界から1ライン目の画素から出力するように処理を開始する。
その際、デブロッキングHフィルタ部152においては、LCU境界から1乃至3ライン目の画素がラインメモリ201に保持されている必要がある。デブロッキングVフィルタ部153においては、LCU境界から1乃至4ライン目の画素がラインメモリ201に保持されている必要がある。適応オフセットフィルタ部154においては、LCU境界から1および2ライン目の画素がラインメモリ201に保持されている必要がある。
したがって、輝度信号の場合、ラインメモリ201には、LCU境界から1乃至4ライン目の4ライン分の画素が保持されていればよい。
一方、上述したように、適応オフセットフィルタ部154においては、LCU境界から2ライン目までは処理がなされる。よって、適応ループフィルタ部202は、LCU境界から4ライン目までの処理を完了させ、次のLCU境界から3ライン目の画素の処理において待機状態となる。
そして、処理が再開されたとき、適応ループフィルタ部202には、適応オフセットフィルタ部154によるフィルタ処理後のLCU境界から1ライン目の画素が入力されるので、適応ループフィルタ部202は、LCU境界から3ライン目の画素から出力する。
その際、適応ループフィルタ部202においては、LCU境界から2乃至5ライン目の4ライン分の画素がラインメモリ211に保持されている必要がある。
以上により、図15のインループフィルタ31においては、輝度信号の場合には、4ライン分のラインメモリ201および4ライン分のラインメモリ211が必要となり、従来の9ライン分の画素と比して、1ライン分のラインメモリ数を減らすことが可能である。
図17は、色差信号の場合のLCU境界の画素の例を示している。図17の色差信号の場合、LCU境界から1ライン目乃至3ライン目の丸は、未デブロッキングV画素であって、LCU境界においてラインメモリ201への保持が必要な画素を表している。LCU境界から2ライン目乃至5ライン目の丸は、オフセットフィルタ(SAO)後画素であって、ラインメモリ211への保持が必要な画素を表している。LCU境界から4ライン目より上の丸は、ループフィルタ(ALF)後画素を表している。
色差信号の場合のLCU境界においては、デブロッキングVフィルタ部153は、次のLCUの2ライン分の画素が入力されるまで、LCU境界から1ライン目および2ライン目の画素の処理において待機状態となる。
このため、適応オフセットフィルタ部154は、LCU境界から2ライン目までの処理しか完了できないので、適応ループフィルタ部202は、LCU境界から4ライン目までの処理しか完了できず、LCU境界から3ライン目の画素の処理において待機状態となる。
すなわち、デブロッキングHフィルタ部152、およびデブロッキングVフィルタ部153は、LCU境界から2ライン目の画素から処理可能である。しかしながら、適応ループフィルタ部202がLCU境界から3ライン目からしか処理することができないので、適応ループフィルタ部202に出力位相を揃えることが必要となる。
したがって、次のLCUの2ラインの画素が入力されると、デブロッキングHフィルタ部152、およびデブロッキングVフィルタ部153は、LCU境界から3ライン目の画素から出力するように処理を開始する。また、適応オフセットフィルタ部154は、LCU境界から1ライン目の画素から出力するように処理を開始する。
その際、デブロッキングHフィルタ部152においては、LCU境界から1および3ライン目の画素がラインメモリ201に保持されている必要がある。デブロッキングVフィルタ部153においては、LCU境界から1および3ライン目の画素がラインメモリ201に保持されている必要がある。適応オフセットフィルタ部154においては、LCU境界から1および2ライン目の画素がラインメモリ201に保持されている必要がある。
したがって、色差信号の場合の場合、ラインメモリ201には、LCU境界から1乃至3ライン目の3ライン分の画素が保持されていればよい。
一方、処理が再開されたとき、適応ループフィルタ部202には、適応オフセットフィルタ部154によるフィルタ処理後のLCU境界から1ライン目の画素が入力されるので、LCU境界から3ライン目の画素から出力することになる。
その際、適応ループフィルタ部202においては、LCU境界から2乃至5ライン目の4ライン分の画素がラインメモリ211に保持されている必要がある。
以上により、図15のインループフィルタ31においては、色差信号の場合には、3ライン分のラインメモリ201および4ライン分のラインメモリ211が必要となる。これは、従来の7ライン分の画素と同等のラインメモリであるが、輝度信号の場合にラインメモリ数が減るので、図15のインループフィルタ31の場合も、総合的に見て効果が得られる。
[インループフィルタの処理例]
次に、図18を参照して、図15のインループフィルタ31の処理について説明する。なお、図10の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
次に、図18を参照して、図15のインループフィルタ31の処理について説明する。なお、図10の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
このインループフィルタ処理は、画面内の左上のLCUから処理が開始される。通常、LCUを構成するリコンストラクト画素は、前段からインループフィルタ31の各部に入力される。これに対応して、ステップS201乃至S203の処理は、前段から入力されるリコンストラクト画素を用いて並行で実行される。
一方、LCU境界において、LCUを構成するリコンストラクト画素は、前段からラインメモリ201に入力される。これに対応して、ステップS201乃至S203の処理は、ラインメモリ201に保持されたリコンストラクト画素を用いて並行で実行される。なお、上述したように、LCU境界において必要なラインの画素が入力された場合、ステップS201、S202、およびS204においては、出力位相を揃えて処理が開始される。そして、ステップS203においては、ステップS201、S202、およびS204において出力位相が揃うようなタイミングで処理が開始される。
また、各部への入力は、インループフィルタ31の各部においてそれぞれスイッチなどで切り替えられて用いられる。
すなわち、デブロッキングHフィルタ部152は、ステップS201において、ラインメモリ201または前段からのリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施す。デブロッキングHフィルタ部152は、Hフィルタ111によるフィルタ処理後の画素を、演算部203に出力する。
デブロッキングVフィルタ部153は、ステップS202において、ラインメモリ201または前段からのリコンストラクト画素に対して、Vフィルタ112によるフィルタ処理を施す。デブロッキングVフィルタ部153は、Vフィルタ112によるフィルタ処理後の画素を、演算部203に出力する。
適応オフセットフィルタ部154は、ステップS203において、ラインメモリ201または前段からのリコンストラクト画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部154は、オフセットフィルタ121によるフィルタ処理後の画素を、適応ループフィルタ部202に出力する。
適応ループフィルタ部202は、ステップS204において、ラインメモリ211または適応オフセットフィルタ部154からのオフセットフィルタ121済みの画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部202は、ループフィルタ131によるフィルタ処理後の画素を、演算部203に出力する。
ステップS205において、演算部203は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応ループフィルタ部202による各フィルタ処理後の3つの結果を演算する。
演算部203は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応ループフィルタ部202による3つの結果を、例えば、線形和で演算し、演算結果を後段に出力する。
ステップS206において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応ループフィルタ部202は、LCU内の最後の画素であるかを判定する。ステップS206において、LCU内の最後の画素ではないと判定された場合、処理は、ステップS201に戻り、それ以降の処理が繰り返される。
ステップS206において、LCU内の最後の画素であると判定された場合、処理は、ステップS207に進む。ステップS207において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応ループフィルタ部202は、画面内の最後の画素であるか否かを判定する。ステップS207において、画面内の最後の画素ではないと判定された場合、処理は、ステップS208に進む。
ステップS208において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応ループフィルタ部202は、次のLCUを選択し、処理は、ステップS201に戻る。すなわち、ステップS208で選択されたLCUに対して、ステップS201以降の処理が繰り返される。
ステップS207において、画面内の最後の画素ではないと判定された場合、インループフィルタ処理は終了される。
以上のように、図15の例の場合も、インループフィルタ31を構成する3つのフィルタ処理の入力を、リコンストラクト画素として並列処理し、LCU境界においてはラインメモリを共有するようにしたので、ラインメモリ数を減らすことが可能である。
また、インループフィルタ31は、前段からの画素またはラインメモリからの画素のどちらの画素を入力するかを切り替えるだけで、通常の処理とLCU境界の処理の切り替えを行うというシンプルな構成である。これにより、ソフトウエアなどで、デブロッキングフィルタ、適応オフセットフィルタ、および適応オフセットフィルタがそれぞれフレーム処理をする場合の制御も容易に行うことができる。
なお、図15の例においては、適応ループフィルタ部202を演算部203の前に配置する例を説明したが、図14を参照して上述したように、演算部203による加算後に、適応ループフィルタ部202を構成することも可能である。加算後に適応ループフィルタを構成するインループフィルタ31の例を、次の図19を参照して説明する。
<5.第3の実施の形態>
[インループフィルタの詳細な構成例]
図19は、インループフィルタの構成例を示すブロック図である。図19に示されるインループフィルタ31は、加算後に適応ループフィルタを構成する場合の例である。
[インループフィルタの詳細な構成例]
図19は、インループフィルタの構成例を示すブロック図である。図19に示されるインループフィルタ31は、加算後に適応ループフィルタを構成する場合の例である。
図19のインループフィルタ31は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154を含む点が、図15のインループフィルタ31と共通している。図19のインループフィルタ31は、ラインメモリ201、演算部203、および係数メモリ204を含む点が、図15のインループフィルタ31と共通している。
これに対して、図19のインループフィルタ31は、適応ループフィルタ部202の代わりに、適応ループフィルタ部221を備える点が、図15のインループフィルタ31と異なる。
すなわち、適応オフセットフィルタ部154は、デブロッキングHフィルタ部152、およびデブロッキングVフィルタ部153と同様に、フィルタ処理後の画素を、演算部203に出力する。
演算部203の減算部181-3は、適応オフセットフィルタ部154からのフィルタ後の画素PSAOから入力画素Pinを減算し、乗算部182-3に出力する。乗算部182-3は、減算部181-3からの入力(PSAO-Pin)に対して、係数メモリ204からの適応オフセットフィルタ部154に対応する係数CSAOを乗算し、加算部183に出力する。なお、図19の例においては、係数メモリ204には、適応オフセットフィルタ部154に対応する係数CSAOが記憶されている。
加算部183は、入力画素Pinに、乗算部182-1乃至182-3からの乗算結果を加算し、加算結果であるPを、適応ループフィルタ部221に出力する。
適応ループフィルタ部221は、演算部203の後段に設けられ、図15の適応ループフィルタ部202と同様に、図6のループフィルタ131およびラインメモリ211を含むように構成される。
LCU境界において、ラインメモリ211は、輝度信号について、LCU境界から4ライン分の適応オフセットフィルタ後の画素を保持し、色差信号について、LCU境界から4ライン分の適応オフセットフィルタ後画素を保持するように構成されている。
通常、適応ループフィルタ部221は、加算部183からの画素に対して、ブロックベースでクラス分類を行い、ループフィルタ131による適応ループフィルタ処理を行う。LCU境界において、適応ループフィルタ部221は、加算部183からの画素をラインメモリ211に一旦保持し、ラインメモリ211の画素に対して、ブロックベースでクラス分類を行い、ループフィルタ131による適応ループフィルタ処理を行う。適応ループフィルタ部221は、ループフィルタ131によるフィルタ処理後の画素を、後段のフレームメモリなどに出力する。
ここで、図19の例のインループフィルタ31の場合に必要なラインメモリ数について説明する。
LCU境界においては、デブロッキングVフィルタ部153は、図5を参照して上述したように、輝度信号の場合、次のLCUの4ラインの画素が入力されるまで、LCU境界から1ライン目乃至3ライン目の画素の処理において待機状態となる。すなわち、デブロッキングVフィルタ部153が、LCU境界から4ライン目までしか処理することができないので、並列する他のフィルタ部は、デブロッキングVフィルタ部153に出力位相を揃えることが必要となる。
したがって、適応オフセットフィルタ部154も、LCU境界から4ライン目までの処理を完了し、次のLCU境界から3ライン目の画素の処理において待機状態となる。
そして、次のLCUの4ラインの画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、LCU境界から3ライン目の画素から出力するように処理を開始する。
その際、デブロッキングHフィルタ部152においては、LCU境界から1乃至3ライン目の画素がラインメモリ201に保持されている必要がある。デブロッキングVフィルタ部153においては、LCU境界から1乃至4ライン目の画素がラインメモリ201に保持されている必要がある。適応オフセットフィルタ部154においては、LCU境界から1乃至4ライン目の画素がラインメモリ201に保持されている必要がある。
したがって、輝度信号の場合、ラインメモリ201には、LCU境界から1乃至4ライン目の4ライン分の画素が保持されていればよい。
一方、適応ループフィルタ部202は、適応オフセットフィルタ部154によるフィルタ処理後の画素を処理するので、LCU境界から6ライン目までの処理を完了し、次のLCU境界から5ライン目の画素の処理において待機状態となる。
そして、処理が再開されたとき、適応ループフィルタ部202には、適応オフセットフィルタ部154によるフィルタ処理後のLCU境界から3ライン目の画素が入力されるので、LCU境界から5ライン目の画素から出力することになる。
その際、適応ループフィルタ部202においては、LCU境界から4乃至7ライン目の4ライン分の画素がラインメモリ211に保持されている必要がある。
以上により、図15のインループフィルタ31においては、4ライン分のラインメモリ201および4ライン分のラインメモリ211が必要となり、図5を参照して上述した従来の9ライン分の画素と比して、1ライン分のラインメモリ数を減らすことが可能である。
なお、色差信号の場合、LCU境界においては、デブロッキングVフィルタ部153は、次のLCUの2ライン分の画素が入力されるまで、LCU境界から1ライン目および2ライン目の画素の処理において待機状態となる。すなわち、デブロッキングVフィルタ部153は、LCU境界から3ライン目までしか処理することができないので、並列する他のフィルタ部は、デブロッキングVフィルタ部153に出力位相を揃えることが必要となる。
したがって、適応オフセットフィルタ部154は、LCU境界から3ライン目までの処理を完了させ、次のLCU境界から2ライン目の画素の処理において待機状態となる。
そして、次のLCUの2ラインの画素が入力されると、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、LCU境界から2ライン目の画素から出力するように処理を開始する。
その際、デブロッキングHフィルタ部152においては、LCU境界から1および2ライン目の画素がラインメモリ201に保持されている必要がある。デブロッキングVフィルタ部153においては、LCU境界から1および2ライン目の画素がラインメモリ201に保持されている必要がある。適応オフセットフィルタ部154においては、LCU境界から1および2ライン目の画素がラインメモリ201に保持されている必要がある。
したがって、色差信号の場合の場合、ラインメモリ201には、LCU境界から1乃至2ライン目の2ライン分の画素が保持されていればよい。
一方、適応ループフィルタ部202は、適応オフセットフィルタ部154によるフィルタ処理後の画素を処理するので、LCU境界から5ライン目までの処理が完了し、次のLCU境界から4ライン目の画素の処理において待機状態となる。
そして、処理が再開されたとき、適応ループフィルタ部202には、適応オフセットフィルタ部154によるフィルタ処理後のLCU境界から2ライン目の画素が入力されるので、LCU境界から4ライン目の画素から出力することになる。
その際、適応ループフィルタ部202においては、LCU境界から3乃至6ライン目の4ライン分の画素がラインメモリ211に保持されている必要がある。
以上により、図15のインループフィルタ31においては、2ライン分のラインメモリ201および4ライン分のラインメモリ211が必要となり、図5を参照して上述した従来の7ライン分の画素と比して、1ライン分のラインメモリ数を減らすことが可能である。
すなわち、図15のインループフィルタ31においては、色差信号の場合、図5を参照して上述した従来の7ライン分の画素と比して、1ライン分ラインメモリ数を減らすことが可能である。
[インループフィルタの処理例]
次に、図20を参照して、図19のインループフィルタ31の処理について説明する。なお、図20の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
次に、図20を参照して、図19のインループフィルタ31の処理について説明する。なお、図20の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
このインループフィルタ処理は、画面内の左上のLCUから処理が開始される。通常、LCUを構成するリコンストラクト画素は、前段からインループフィルタ31の各部に入力される。これに対応して、ステップS231乃至S233の処理は、前段から入力されるリコンストラクト画素を用いて並行で実行される。
一方、LCU境界において、LCUを構成するリコンストラクト画素は、前段からラインメモリ201に入力される。これに対応して、ステップS231乃至S233の処理は、ラインメモリ201に保持されたリコンストラクト画素を用いて並行で実行される。なお、上述したように、LCU境界において必要なラインの画素が入力された場合、ステップS231乃至S233においては、出力位相を揃えて処理が開始される。
また、各部への入力は、インループフィルタ31の各部においてそれぞれスイッチなどで切り替えられて用いられる。
すなわち、デブロッキングHフィルタ部152は、ステップS231において、ラインメモリ201または前段からのリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施す。デブロッキングHフィルタ部152は、Hフィルタ111によるフィルタ処理後の画素を、演算部203に出力する。
デブロッキングVフィルタ部153は、ステップS232において、ラインメモリ201または前段からのリコンストラクト画素に対して、Vフィルタ112によるフィルタ処理を施す。デブロッキングVフィルタ部153は、Vフィルタ112によるフィルタ処理後の画素を、演算部203に出力する。
適応オフセットフィルタ部154は、ステップS233において、ラインメモリ201または前段からのリコンストラクト画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部154は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部203に出力する。
ステップS234において、演算部203は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154による各フィルタ処理後の3つの結果を演算する。
演算部203は、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154による3つの結果を、例えば、線形和で演算し、演算結果を、適応ループフィルタ部221に出力する。
ステップS235において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、LCU内の最後の画素であるかを判定する。ステップS235において、LCU内の最後の画素ではないと判定された場合、処理は、ステップS231に戻り、それ以降の処理が繰り返される。
ステップS235において、LCU内の最後の画素であると判定された場合、処理は、ステップS236に進む。ステップS236において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、画面内の最後の画素であるか否かを判定する。ステップS236において、画面内の最後の画素ではないと判定された場合、処理は、ステップS237に進む。
ステップS237において、デブロッキングHフィルタ部152、デブロッキングVフィルタ部153、および適応オフセットフィルタ部154は、次のLCUを選択し、処理は、ステップS231に戻る。すなわち、ステップS237で選択されたLCUに対して、ステップS231以降の処理が繰り返される。
ステップS237において、画面内の最後の画素であると判定された場合、処理は、ステップS238に進む。
適応ループフィルタ部221は、ステップS238において、ラインメモリ211または演算部203(加算部183)からのオフセットフィルタ121済みの画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部221は、ループフィルタ131によるフィルタ処理後の画素を、後段のフレームメモリなどに出力する。
ステップS239において、適応ループフィルタ部221は、LCU内の最後の画素であるかを判定する。ステップS239において、LCU内の最後の画素ではないと判定された場合、処理は、ステップS238に戻り、それ以降の処理が繰り返される。
ステップS239において、LCU内の最後の画素であると判定された場合、処理は、ステップS240に進む。ステップS240において、適応ループフィルタ部221は、画面内の最後の画素であるか否かを判定する。ステップS240において、画面内の最後の画素ではないと判定された場合、処理は、ステップS241に進む。
ステップS241において、適応ループフィルタ部221は、次のLCUを選択し、処理は、ステップS238に戻る。すなわち、ステップS241で選択されたLCUに対して、ステップS238以降の処理が繰り返される。
ステップS240において、画面内の最後の画素であると判定された場合、図20のインループフィルタ処理は終了される。
以上のように、図19の例の場合も、インループフィルタ31を構成する3つのフィルタ処理の入力を、リコンストラクト画素として並列処理し、LCU境界においてはラインメモリを共有するようにしたので、ラインメモリ数を減らすことが可能である。
また、インループフィルタ31は、前段からの画素またはラインメモリからの画素のどちらの画素を入力するかを切り替えるだけで、通常の処理とLCU境界の処理の切り替えを行うというシンプルな構成である。これにより、ソフトウエアなどで、デブロッキングフィルタ、適応オフセットフィルタ、および適応オフセットフィルタがそれぞれフレーム処理をする場合の制御も容易に行うことができる。
<5.第3の実施の形態>
[インループフィルタの他の構成例]
図21は、インループフィルタの構成例を示すブロック図である。図21に示されるインループフィルタ31は、図14の左から6番目に示された2並列の場合の構成例である。
[インループフィルタの他の構成例]
図21は、インループフィルタの構成例を示すブロック図である。図21に示されるインループフィルタ31は、図14の左から6番目に示された2並列の場合の構成例である。
図21のインループフィルタ31は、図6のデブロッキングフィルタ部101、並びに、ラインメモリ251、適応オフセットフィルタ部252、適応ループフィルタ部253、演算部254、および係数メモリ255を含むように構成されている。
前段からの入力画素であるリコンストラクト画素は、デブロッキングフィルタ部101に入力される。デブロッキングフィルタ部101は、図6を参照して上述したように、H(水平)フィルタ111、V(垂直)フィルタ112、およびラインメモリ113を含むように構成されている。ラインメモリ113は、LCU境界において、輝度(Y)について4ライン分の画素を保持し、色差(C)について2ライン分の画素を保持する。
デブロッキングフィルタ部101は、通常(LCU境界以外)、前段からの入力画素であるリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。デブロッキングフィルタ部101は、フィルタ処理後の画素を、ラインメモリ251および演算部254に出力する。
LCU境界においては、デブロッキングフィルタ部101は、前段からの入力画素であるリコンストラクト画素を、一旦ラインメモリ113に保持する。そして、必要な画素が入力されると、デブロッキングフィルタ部101は、入力された画素と、ラインメモリ113に保持されている画素とを用いて、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。デブロッキングフィルタ部101は、フィルタ処理後の画素を、ラインメモリ251および演算部254に出力する。
通常(LCU境界以外)の処理においては、デブロッキングフィルタ部101は、前段からの入力画素であるリコンストラクト画素を用いて、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。デブロッキングフィルタ部101は、フィルタ処理後の画素を、ラインメモリ251および演算部254に出力する。
ラインメモリ251は、デブロッキングフィルタ部101によるフィルタ後の画素を一旦保持する。図7の例においては、ラインメモリ251は、輝度(Y)について、3ライン分の画素を保持し、色差(C)について、3ライン分の画素を保持する。なお、保持するライン数は、アーキテクチャなどに依存されるため、限定されない。
LCU境界において、適応オフセットフィルタ部252、および適応ループフィルタ部253は、デブロッキングフィルタ部101によるフィルタ後の画素が保持されたラインメモリ251を共有している。
適応オフセットフィルタ部252は、図6のオフセットフィルタ121を含むように、図7の適応オフセットフィルタ部154と基本的に構成される。
LCU境界において、適応オフセットフィルタ部252は、ラインメモリ251に保持されている画素を読み出し、読み出した画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部252は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部254に出力する。
通常(LCU境界以外)の処理においては、適応オフセットフィルタ部252は、デブロッキングフィルタ部101からの画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部252は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部254に出力する。
適応ループフィルタ部253は、図6のループフィルタ131を含むように、図7の適応ループフィルタ部155と基本的に同様に構成される。
LCU境界において、適応ループフィルタ部253は、ラインメモリ251に保持されている画素を読み出し、読み出した画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部253は、ループフィルタ131によるフィルタ処理後の画素を、演算部254に出力する。
通常(LCU境界以外)の処理においては、適応ループフィルタ部253は、デブロッキングフィルタ部101からの画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部253は、ループフィルタ131によるフィルタ処理後の画素を、演算部254に出力する。
なお、LCU境界において必要なラインの画素が入力されると、適応オフセットフィルタ部252および適応ループフィルタ部253は、出力位相を揃えて処理を再開する。
演算部254は、減算部181-1および181-2、乗算部182-1および182-2、および加算部183により構成されており、各フィルタ処理後の出力Pを線形和で演算する。なお、演算部254における入力画素としては、通常、デブロッキングフィルタ部101からのフィルタ後の画素が用いられるが、LCU境界においては、ラインメモリ251に保持されている画素が読み出されて用いられる。
減算部181-1は、適応オフセットフィルタ部252からのフィルタ後の画素PSAOからデブロッキングフィルタ後の画素PDBを減算し、乗算部182-1に出力する。乗算部182-1は、減算部181-1からの入力(PSAO-PDB)に対して、係数メモリ255からの適応オフセットフィルタ部252に対応する係数CSAOを乗算し、加算部183に出力する。
減算部181-2は、適応ループフィルタ部253からのフィルタ後の画素PALFからデブロッキングフィルタ後の画素PDBを減算し、乗算部182-2に出力する。乗算部182-2は、減算部181-2からの入力(PALF-PDB)に対して、係数メモリ255からの適応ループフィルタ部PDBに対応する係数CALFを乗算し、加算部183に出力する。
加算部183は、デブロッキングフィルタ後の画素PDBに、乗算部182-1および182-2からの乗算結果を加算し、加算結果であるPを、フレームメモリに出力する。
係数メモリ255は、各フィルタに対応する係数を記憶している。例えば、係数メモリ255には、適応オフセットフィルタ部154に対応する係数CSAO、および適応ループフィルタ部155に対応する係数CALFが記憶されている。なお、図21の場合の係数CSAOと係数CALFは、デブロッキングフィルタ部101後の画素についてフィルタ処理された画素に乗算される係数であるので、それぞれ、デブロッキングフィルタ部101にも対応させるようにしてもよい。
なお、これらの係数も、図示せぬ操作入力部を介してユーザにより設定可能にしてもよい。また、これらの係数も、画像の特性に応じて設定されてもよい。
[LCU境界における各フィルタの詳細]
次に、図22を参照して、図21のインループフィルタ31のLCU境界における具体的な処理について説明する。
次に、図22を参照して、図21のインループフィルタ31のLCU境界における具体的な処理について説明する。
デブロッキングフィルタ部101は、LCU境界では、前段からの入力画素であるリコンストラクト画素に対して、Hフィルタ111およびVフィルタ112によるフィルタ処理を順に施し、フィルタ処理後の画素を、ラインメモリ251に出力する。
このラインメモリ251に保持されている画素に対して、適応オフセットフィルタ部252および適応ループフィルタ部253により並列でフィルタ処理が行われる。
適応オフセットフィルタ部252は、ラインメモリ251に保持されているデブロッキングフィルタ後の画素を読み出し、読み出した画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部252は、処理対象画素の周囲8画素(図22のSAO参照画素)を用いて、処理対象画素に対してのオフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部252は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部254に出力する。
適応ループフィルタ部253は、ラインメモリ251に保持されているデブロッキングフィルタ後の画素を読み出し、読み出した画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部253は、処理対象画素を中心とした5タップのスノーフレーク形状の16画素(図22に示されるALFタップ)を用いて、処理対象画素に対してのループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部253は、ループフィルタ131によるフィルタ処理後の画素を、演算部254に出力する。
演算部254は、適応オフセットフィルタ部252からのフィルタ処理後の画素と、適応ループフィルタ部253からのフィルタ処理後の画素とを線形和で演算し、後段に出力する。
ここで、図23および図24を参照して、図21の例のインループフィルタ31の場合に必要なラインメモリ数について説明する。図23および図24の例において、丸は、画素を表し、図中下のラインがLCU境界を表している。
図23は、輝度信号の場合のLCU境界の画素の例を示している。図23の輝度信号の場合、LCU境界から1ライン目乃至3ライン目の丸は、次のLCUがデブロッキングフィルタに入力されたときに、水平境界のデブロッキングV(垂直)フィルタ処理が開始される画素を表している。
なお、1ライン目乃至3ライン目のハッチングで示される丸は、LCUに含まれるCUの垂直境界において部分的にデブロッキングH(水平)フィルタ処理された画素を表している。1行目乃至3行目の丸のうち、白丸は、CUの垂直境界において、実際には、デブロッキングHフィルタ処理が施されない画素を表している。
LCU境界から4乃至7ライン目の画素は、デブロッキングVフィルタ処理済みの画素である。そのうち、LCU境界から4ライン目の画素は、1ライン目乃至3ライン目のデブロッキングVフィルタ処理において参照される画素である。LCU境界から6ライン目より上の丸は、ループフィルタ(ALF)後画素を表している。
LCU境界においては、デブロッキングフィルタ部101は、図5を参照して上述したように、輝度信号の場合、次のLCUの4ラインの画素が入力されるまで、LCU境界から1ライン目乃至3ライン目の画素の処理において待機状態となる。すなわち、デブロッキングフィルタ部101が、LCU境界から4ライン目までしか処理することができない。
適応オフセットフィルタ部252と適応ループフィルタ部253は、デブロッキングフィルタ部101によるフィルタ(DF)後画素を処理する。したがって、適応ループフィルタ部253は、LCU境界から6ライン目までしか処理することができない。このため、適応オフセットフィルタ部252も、LCU境界から6ライン目から処理開始できるように、LCU境界から6ライン目の画素の処理において待機状態となる。
次のLCUの4ラインの画素が入力されると、デブロッキングフィルタ部101は、LCU境界から3ライン目の画素から出力するように処理を開始する。LCU境界から3ライン目の画素がデブロッキングフィルタ部101から入力されるので、適応ループフィルタ部253は、LCU境界から5ライン目の画素から出力するように処理を開始する。適応オフセットフィルタ部252も、適応ループフィルタ部253に出力位相を合わせて、LCU境界から5ライン目の画素から出力するように処理を開始する。
その際、デブロッキングフィルタ部101においては、LCU境界から1乃至4ライン目の画素がラインメモリ113に保持されている必要がある。
また、適応オフセットフィルタ部252においては、LCU境界から5および6ライン目の画素がラインメモリ251に保持されている必要がある。適応ループフィルタ部253においては、LCU境界から5乃至7ライン目の画素がラインメモリ251に保持されている必要がある。
したがって、輝度信号の場合、ラインメモリ251には、LCU境界から5乃至7ライン目の3ライン分の画素が保持されていればよい。
以上により、図21のインループフィルタ31においては、輝度信号の場合には、4ライン分のラインメモリ113および3ライン分のラインメモリ251が必要となり、従来の9ライン分の画素と比して、2ライン分のラインメモリ数を減らすことが可能である。
図24は、色差信号の場合のLCU境界の画素の例を示している。図24の色差信号の場合、LCU境界から1ライン目の丸は、次のLCUがデブロッキングフィルタに入力されたときに、水平境界のデブロッキングV(垂直)フィルタ処理が開始される画素を表している。
なお、1ライン目のハッチングで示される丸は、LCUに含まれるCUの垂直境界において部分的にデブロッキングH(水平)フィルタ処理された画素を表している。1行目の丸のうち、白丸は、CUの垂直境界において、実際には、デブロッキングHフィルタ処理が施されない画素を表している。
LCU境界から2乃至5ライン目の画素は、デブロッキングVフィルタ処理済みの画素である。そのうち、LCU境界から2ライン目の画素は、1ライン目のデブロッキングVフィルタ処理において参照される画素である。LCU境界から4ライン目より上の丸は、ループフィルタ(ALF)後画素を表している。
LCU境界においては、デブロッキングフィルタ部101は、図5を参照して上述したように、色差信号の場合、次のLCUの2ライン分の画素が入力されるまで、LCU境界から1ライン目の画素の処理において待機状態となる。すなわち、デブロッキングフィルタ部101は、LCU境界から2ライン目までしか処理することができない。
適応オフセットフィルタ部252と適応ループフィルタ部253は、デブロッキングフィルタ部101によるフィルタ(DF)後画素を処理する。したがって、適応ループフィルタ部253は、LCU境界から4ライン目までしか処理することができない。このため、適応オフセットフィルタ部252も、LCU境界から3ライン目から処理開始できるように、LCU境界から3ライン目の画素の処理において待機状態となる。
次のLCUの2ライン分の画素が入力されると、デブロッキングフィルタ部101は、LCU境界から1ライン目の画素から出力するように処理を開始する。LCU境界から1ライン目の画素がデブロッキングフィルタ部101から入力されるので、適応ループフィルタ部253は、LCU境界から3ライン目の画素から出力するように処理を開始する。適応オフセットフィルタ部252も、適応ループフィルタ部253に出力位相を合わせて、LCU境界から3ライン目の画素から出力するように処理を開始する。
その際、デブロッキングフィルタ部101においては、LCU境界から1および2ライン目の画素がラインメモリ113に保持されている必要がある。
また、適応オフセットフィルタ部252においては、LCU境界から3および4ライン目の画素がラインメモリ251に保持されている必要がある。適応ループフィルタ部253においては、LCU境界から3乃至5ライン目の画素がラインメモリ251に保持されている必要がある。
したがって、輝度信号の場合、ラインメモリ251には、LCU境界から3乃至5ライン目の3ライン分の画素が保持されていればよい。
以上により、図21のインループフィルタ31においては、色差信号の場合には、2ライン分のラインメモリ113および3ライン分のラインメモリ251が必要となり、従来の7ライン分の画素と比して、2ライン分のラインメモリ数を減らすことが可能である。
[インループフィルタの処理例]
次に、図25のフローチャートを参照して、図21のインループフィルタ31の処理について説明する。なお、図25の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
次に、図25のフローチャートを参照して、図21のインループフィルタ31の処理について説明する。なお、図25の処理は、上述した図2のステップS22のインループフィルタ処理の例であって、図4のステップS58のインループフィルタ処理の例である。
ステップS251において、デブロッキングフィルタ部101は、デブロッキングフィルタ処理を行う。すなわち、デブロッキングフィルタ部101は、リコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。フィルタ処理後の画素は、ラインメモリ251、適応オフセットフィルタ部252、適応ループフィルタ部253、および演算部254に出力される。
なお、詳細には、デブロッキングフィルタ部101は、通常(LCU境界以外)、前段からの入力画素であるリコンストラクト画素に対して、Hフィルタ111によるフィルタ処理を施す。
LCU境界においては、デブロッキングフィルタ部101は、前段からの入力画素であるリコンストラクト画素を、一旦ラインメモリ113に保持する。そして、必要な画素が入力されると、デブロッキングフィルタ部101は、入力された画素と、ラインメモリ113に保持されている画素とを用いて、Hフィルタ111によるフィルタ処理を施し、Vフィルタ112によるフィルタ処理を施す。
ステップS252において、デブロッキングフィルタ部101は、LCU内の最後の画素であるかを判定する。ステップS252において、LCU内の最後の画素ではないと判定された場合、処理は、ステップS251に戻り、それ以降の処理が繰り返される。
ステップS252において、LCU内の最後の画素であると判定された場合、処理は、ステップS253に進む。ステップS253において、デブロッキングフィルタ部101は、画面内の最後の画素であるか否かを判定する。ステップS253において、画面内の最後の画素ではないと判定された場合、処理は、ステップS254に進む。
ステップS254において、デブロッキングフィルタ部101は、次のLCUを選択し、処理は、ステップS251に戻る。すなわち、ステップS254で選択されたLCUに対して、ステップS251以降の処理が繰り返される。
ステップS253において、画面内の最後の画素ではないと判定された場合、処理は、ステップS255およびS256に進む。
LCU境界において、ステップS255およびS256の処理は、ラインメモリ251に保持された画素を用いて並行で実行される。なお、上述したように、LCU境界において必要なラインの画素が入力された場合、ステップS255およびS256においては、出力位相を揃えて処理が開始される。
適応オフセットフィルタ部252は、ステップS255において、ラインメモリ251またはデブロッキングフィルタ部101からの画素に対して、オフセットフィルタ121によるフィルタ処理を施す。適応オフセットフィルタ部252は、オフセットフィルタ121によるフィルタ処理後の画素を、演算部254に出力する。
適応ループフィルタ部253は、ステップS256において、ラインメモリ251またはデブロッキングフィルタ部101からの画素に対して、ループフィルタ131によるフィルタ処理を施す。適応ループフィルタ部253は、ループフィルタ131によるフィルタ処理後の画素を、演算部254に出力する。
ステップS257において、演算部254は、適応オフセットフィルタ部252および適応ループフィルタ部253による各フィルタ処理後の2つの結果を演算する。演算後の結果は、後段に出力される。
ステップS258において、適応オフセットフィルタ部252および適応ループフィルタ部253は、LCU内の最後の画素であるかを判定する。ステップS258において、LCU内の最後の画素ではないと判定された場合、処理は、ステップS255およびS256に戻り、それ以降の処理が繰り返される。
ステップS258において、LCU内の最後の画素であると判定された場合、処理は、ステップS259に進む。ステップS259において、適応オフセットフィルタ部252および適応ループフィルタ部253は、画面内の最後の画素であるか否かを判定する。ステップS259において、画面内の最後の画素ではないと判定された場合、処理は、ステップS260に進む。
ステップS260において、適応オフセットフィルタ部252および適応ループフィルタ部253は、次のLCUを選択し、処理は、ステップS255およびS256に戻る。すなわち、ステップS260で選択されたLCUに対して、ステップS255およびS256以降の処理が繰り返される。
ステップS259において、画面内の最後の画素ではないと判定された場合、インループフィルタ処理は終了される。
以上のように、図21の例の場合、インループフィルタ31を構成する2つのフィルタ処理の入力を、デブロッキングフィルタ後の画素として並列処理し、LCU境界においてはラインメモリを共有するようにしたので、ラインメモリ数を減らすことが可能である。
また、インループフィルタ31は、前段からの画素またはラインメモリからの画素のどちらの画素を入力するかを切り替えるだけで、通常の処理とLCU境界の処理の切り替えを行うというシンプルな構成である。これにより、ソフトウエアなどで、適応オフセットフィルタおよび適応オフセットフィルタがそれぞれフレーム処理をする場合の制御も容易に行うことができる。
なお、上述したLCU境界において処理可能なライン、および必要なラインメモリ数(効果)については、アーキテクチャによって異なるため、上述した例に限定されない。
また、上記説明においては、その図示は省略されているが、例えば、図9、図15、図19、および図21において、インループフィルタ31を、各フィルタ部を並列的に処理するように制御する制御部を備えるように構成することもできる。インループフィルタ31に制御部が含まれる場合、例えば、その制御部は、並列的に処理をする各フィルタ部からの出力位相を合わせるような制御も行うものとする。
以上においては、符号化方式としてHEVC方式をベースに用いるようにした。ただし、本開示はこれに限らず、インループフィルタとして、デブロックフィルタ、適応オフセットフィルタ、および適応ループフィルタのうちの少なくとも2つを含む、その他の符号化方式/復号方式を適用することができる。
なお、本開示は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。
<7.第5の実施の形態>
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
[パーソナルコンピュータ]
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
図26は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータのハードウエアの構成例を示すブロック図である。
パーソナルコンピュータ500において、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
バス504には、さらに、入出力インタフェース505が接続されている。入出力インタフェース505には、キーボード、マウス、マイクロホンなどよりなる入力部506、ディスプレイ、スピーカなどよりなる出力部507、ハードディスクや不揮発性のメモリなどよりなる記憶部508、ネットワークインタフェースなどよりなる通信部509、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア211を駆動する及びドライブ510が接続されている。
入力部506は、キーボード、マウス、マイクロホンなどよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記憶部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインタフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア511を駆動する。
以上のように構成されるパーソナルコンピュータ500では、CPU501が、例えば、記憶部508に記憶されているプログラムを、入出力インタフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU501)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディア等としてのリムーバブルメディア511に記録して提供することができる。また、あるいは、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータではそして、プログラムは、リムーバブルメディア511をドライブ510に装着することにより、入出力インタフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
<8.応用例>
[第1の応用例:テレビジョン受像機]
図27は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
[第1の応用例:テレビジョン受像機]
図27は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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での画像の復号に際して、簡単な処理構造で、ラインメモリの削減を図ることができることができる。
[第2の応用例:携帯電話機]
図28は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
図28は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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での画像の符号化及び復号に際して、簡単な処理構造で、ラインメモリの削減を図ることができる。
[第3の応用例:記録再生装置]
図29は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
図29は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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での画像の符号化及び復号に際して、簡単な処理構造で、ラインメモリの削減を図ることができる。
[第4の応用例:撮像装置]
図30は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
図30は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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のサイズは、本明細書で説明した例に限定されず、他のサイズであってもよい。
また、本明細書においては、垂直境界についてのフィルタリング処理のフィルタタップは水平方向に沿って並ぶことから、垂直境界についてのフィルタリング処理のフィルタを「H(水平)フィルタ」と表現した。同様に、水平境界についてのフィルタリング処理のフィルタタップは垂直方向に沿って並ぶことから、水平境界についてのフィルタリング処理のフィルタを「V(垂直)フィルタ」と表現した。しかしながら、一般に、垂直境界についてのフィルタリング処理のフィルタをが「V(垂直)フィルタ」、水平境界についてのフィルタリング処理のフィルタが「H(水平)フィルタ」とそれぞれ呼ばれる場合もあることに留意されたい。
なお、本明細書では、予測モード、適応オフセットフィルタ、および、適応ループフィルタの各パラメータ等の各種情報が、符号化ストリームに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記復号部により生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と
を備える画像処理装置。
(2) 前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部を
さらに備える前記(1)に記載の画像処理装置。
(3) 前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御する
前記(2)に記載の画像処理装置。
(4) 前記復号部により生成された画像のリコンストラクト画像を保持するメモリを
さらに備え、
前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得する前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記第1のフィルタは、ブロック境界のノイズを除去するフィルタである
前記(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記第1のフィルタは、デブロッキングフィルタである
前記(5)に記載の画像処理装置。
(7) 前記デブロックフィルタは、垂直境界の左右の画素にかけるフィルタ、および水平境界の上下の画素にかけるフィルタを含む
前記(6)に記載の画像処理装置。
(8) 前記制御部は、前記垂直境界の左右の画素にかけるフィルタの処理と前記水平境界の上下の画素にかけるフィルタの処理とを並列的に行うように制御する
前記(7)に記載の画像処理装置。
(9) 前記第2のフィルタは、リンギングを除去する第3のフィルタ、またはブロックベースでクラス分類を行う第4のフィルタを含む
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(10) 前記第3のフィルタは、適応オフセットフィルタであって、前記第4のフィルタは、適応ループフィルタである
前記(9)に記載の画像処理装置。
(11) 前記演算部は、前記第1のフィルタ処理が行われた画像と、前記第2のフィルタ処理が行われた画像とを、前記第1のフィルタ処理に対応する第1の演算係数と前記第2のフィルタ処理に対応する第2の演算係数とを用いた線形和で加算するように演算処理する
前記(1)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記第1の演算係数と前記第2の演算係数とは、垂直境界および水平境界からの距離に応じて設定される
前記(11)に記載の画像処理装置。
(13) 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する
画像処理方法。
(14) 画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と、
前記演算部により演算処理された結果である画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
(15) 前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部を
さらに備える前記(14)に記載の画像処理装置。
(16) 前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御する
前記(15)に記載の画像処理装置。
(17) 前記復号部により生成された画像のリコンストラクト画像を保持するメモリを
さらに備え、
前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得する前記(14)乃至(16)のいずれかに記載の画像処理装置。
(18) 画像処理装置が、
画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理し、
演算処理された結果である画像を用いて、前記画像を符号化する
画像処理方法。
(19) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記第1のフィルタにより前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と
を備える画像処理装置。
(20)画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する
画像処理方法。
(1) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記復号部により生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と
を備える画像処理装置。
(2) 前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部を
さらに備える前記(1)に記載の画像処理装置。
(3) 前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御する
前記(2)に記載の画像処理装置。
(4) 前記復号部により生成された画像のリコンストラクト画像を保持するメモリを
さらに備え、
前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得する前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記第1のフィルタは、ブロック境界のノイズを除去するフィルタである
前記(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記第1のフィルタは、デブロッキングフィルタである
前記(5)に記載の画像処理装置。
(7) 前記デブロックフィルタは、垂直境界の左右の画素にかけるフィルタ、および水平境界の上下の画素にかけるフィルタを含む
前記(6)に記載の画像処理装置。
(8) 前記制御部は、前記垂直境界の左右の画素にかけるフィルタの処理と前記水平境界の上下の画素にかけるフィルタの処理とを並列的に行うように制御する
前記(7)に記載の画像処理装置。
(9) 前記第2のフィルタは、リンギングを除去する第3のフィルタ、またはブロックベースでクラス分類を行う第4のフィルタを含む
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(10) 前記第3のフィルタは、適応オフセットフィルタであって、前記第4のフィルタは、適応ループフィルタである
前記(9)に記載の画像処理装置。
(11) 前記演算部は、前記第1のフィルタ処理が行われた画像と、前記第2のフィルタ処理が行われた画像とを、前記第1のフィルタ処理に対応する第1の演算係数と前記第2のフィルタ処理に対応する第2の演算係数とを用いた線形和で加算するように演算処理する
前記(1)乃至(10)のいずれかに記載の画像処理装置。
(12) 前記第1の演算係数と前記第2の演算係数とは、垂直境界および水平境界からの距離に応じて設定される
前記(11)に記載の画像処理装置。
(13) 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する
画像処理方法。
(14) 画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と、
前記演算部により演算処理された結果である画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。
(15) 前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部を
さらに備える前記(14)に記載の画像処理装置。
(16) 前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御する
前記(15)に記載の画像処理装置。
(17) 前記復号部により生成された画像のリコンストラクト画像を保持するメモリを
さらに備え、
前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得する前記(14)乃至(16)のいずれかに記載の画像処理装置。
(18) 画像処理装置が、
画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理し、
演算処理された結果である画像を用いて、前記画像を符号化する
画像処理方法。
(19) 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記第1のフィルタにより前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と
を備える画像処理装置。
(20)画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する
画像処理方法。
11 画像符号化装置, 26 可逆符号化部, 31,31a,31b インループフィルタ,51 画像復号装置, 62 可逆復号部, 111 Hフィルタ, 112 Vフィルタ, 121 オフセットフィルタ, 131 ループフィルタ, 151 ラインメモリ, 152 デブロッキングHフィルタ部, 153 デブロッキングVフィルタ部, 154 適応オフセットフィルタ部, 155 適応ループフィルタ部, 156 演算部, 171 係数メモリ, 201 ラインメモリ, 202 適応ループフィルタ部, 203 演算部, 204 係数メモリ, 211 ラインメモリ, 221 適応ループフィルタ部, 251 ラインメモリ, 252 適応オフセットフィルタ部, 253 適応ループフィルタ部, 254 演算部, 255 係数メモリ
Claims (20)
- 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記復号部により生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と
を備える画像処理装置。 - 前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部を
さらに備える請求項1に記載の画像処理装置。 - 前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御する
請求項2に記載の画像処理装置。 - 前記復号部により生成された画像のリコンストラクト画像を保持するメモリを
さらに備え、
前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得する
請求項3に記載の画像処理装置。 - 前記第1のフィルタは、ブロック境界のノイズを除去するフィルタである
請求項3に記載の画像処理装置。 - 前記第1のフィルタは、デブロッキングフィルタである
請求項5に記載の画像処理装置。 - 前記デブロックフィルタは、垂直境界の左右の画素にかけるフィルタ、および水平境界の上下の画素にかけるフィルタを含む
請求項6に記載の画像処理装置。 - 前記制御部は、前記垂直境界の左右の画素にかけるフィルタの処理と前記水平境界の上下の画素にかけるフィルタの処理とを並列的に行うように制御する
請求項7に記載の画像処理装置。 - 前記第2のフィルタは、リンギングを除去する第3のフィルタ、またはブロックベースでクラス分類を行う第4のフィルタを含む
請求項5に記載の画像処理装置。 - 前記第3のフィルタは、適応オフセットフィルタであって、前記第4のフィルタは、適応ループフィルタである
請求項9に記載の画像処理装置。 - 前記演算部は、前記第1のフィルタ処理が行われた画像と、前記第2のフィルタ処理が行われた画像とを、前記第1のフィルタ処理に対応する第1の演算係数と前記第2のフィルタ処理に対応する第2の演算係数とを用いた線形和で加算するように演算処理する
請求項9に記載の画像処理装置。 - 前記第1の演算係数と前記第2の演算係数とは、垂直境界および水平境界からの距離に応じて設定される
請求項11に記載の画像処理装置。 - 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
生成された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する
画像処理方法。 - 画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と、
前記演算部により演算処理された結果である画像を用いて、前記画像を符号化する符号化部と
を備える画像処理装置。 - 前記第1のフィルタ処理と前記第2のフィルタ処理とを並列的に行うように、前記第1のフィルタと前記第2のフィルタとを制御する制御部を
さらに備える請求項14に記載の画像処理装置。 - 前記制御部は、前記第1のフィルタと前記第2のフィルタとの出力位相とを合わせるように制御する
請求項15に記載の画像処理装置。 - 前記復号部により生成された画像のリコンストラクト画像を保持するメモリを
さらに備え、
前記第1のフィルタと前記第2のフィルタは、前記メモリから前記リコンストラクト画像を取得する
請求項16に記載の画像処理装置。 - 画像処理装置が、
画像を符号化する際にローカル復号処理された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
前記ローカル復号処理された画像のリコンストラクト画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理し、
演算処理された結果である画像を用いて、前記画像を符号化する
画像処理方法。 - 符号化ストリームを復号処理して画像を生成する復号部と、
前記復号部により生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行う第1のフィルタと、
前記第1のフィルタにより前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行う第2のフィルタと、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する演算部と
を備える画像処理装置。 - 画像処理装置が、
符号化ストリームを復号処理して画像を生成し、
生成された画像のリコンストラクト画像を対象として、第1のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像を対象として、前記第1のフィルタ処理とは異なる第2のフィルタ処理を行い、
前記第1のフィルタ処理が行われた画像と前記第2のフィルタ処理が行われた画像とを用いて、演算処理する
画像処理方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011211226A JP2013074416A (ja) | 2011-09-27 | 2011-09-27 | 画像処理装置および方法 |
JP2011-211226 | 2011-09-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2013047325A1 true WO2013047325A1 (ja) | 2013-04-04 |
Family
ID=47995357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2012/074092 WO2013047325A1 (ja) | 2011-09-27 | 2012-09-20 | 画像処理装置および方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP2013074416A (ja) |
WO (1) | WO2013047325A1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019182159A1 (ja) * | 2018-03-23 | 2019-09-26 | シャープ株式会社 | 画像フィルタ装置、画像復号装置、及び画像符号化装置 |
WO2019182429A1 (en) * | 2018-03-23 | 2019-09-26 | Samsung Electronics Co., Ltd. | Method and apparatus for beam management for multi-stream transmission |
CN113489998A (zh) * | 2021-05-27 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 一种去块效应滤波方法、装置、电子设备及介质 |
WO2023077427A1 (en) * | 2021-11-05 | 2023-05-11 | Apple Inc. | Configuration and default beam techniques at high movement speeds |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101517806B1 (ko) * | 2014-02-18 | 2015-05-06 | 전자부품연구원 | 영상 복호화 방법 및 이를 적용한 영상 기기 |
US12058314B2 (en) | 2021-04-30 | 2024-08-06 | Tencent America LLC | Block-wise content-adaptive online training in neural image compression with post filtering |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011152425A1 (ja) * | 2010-06-03 | 2011-12-08 | シャープ株式会社 | フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 |
-
2011
- 2011-09-27 JP JP2011211226A patent/JP2013074416A/ja not_active Withdrawn
-
2012
- 2012-09-20 WO PCT/JP2012/074092 patent/WO2013047325A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011152425A1 (ja) * | 2010-06-03 | 2011-12-08 | シャープ株式会社 | フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 |
Non-Patent Citations (4)
Title |
---|
MASARU IKEDA ET AL.: "CE12 Subset2: Parallel deblocking filter", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-E181, 5TH MEETING, 16 March 2011 (2011-03-16) - 23 March 2011 (2011-03-23), GENEVA, CH, pages 1 - 9, XP030008687 * |
MASARU IKEDA ET AL.: "Parallel deblocking improvement", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-F214, 14 July 2011 (2011-07-14) - 22 July 2011 (2011-07-22), TORINO, IT, pages 1 - 7, XP030009237 * |
SEMIH ESENLIK ET AL.: "Line Memory Reduction for ALF Decoding", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-E225, 5TH MEETING, 16 March 2011 (2011-03-16) - 23 March 2011 (2011-03-23), GENEVA, CH, pages 1 - 10, XP030008731 * |
TOMOHIRO IKAI ET AL.: "A parallel adaptive loop filter", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11, JCTVC-B064, 2ND MEETING, 21 July 2010 (2010-07-21) - 28 July 2010 (2010-07-28), GENEVA, CH, pages 1 - 11, XP030007644 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019182159A1 (ja) * | 2018-03-23 | 2019-09-26 | シャープ株式会社 | 画像フィルタ装置、画像復号装置、及び画像符号化装置 |
WO2019182429A1 (en) * | 2018-03-23 | 2019-09-26 | Samsung Electronics Co., Ltd. | Method and apparatus for beam management for multi-stream transmission |
US11889070B2 (en) | 2018-03-23 | 2024-01-30 | Sharp Kabushiki Kaisha | Image filtering apparatus, image decoding apparatus, and image coding apparatus |
CN113489998A (zh) * | 2021-05-27 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 一种去块效应滤波方法、装置、电子设备及介质 |
WO2023077427A1 (en) * | 2021-11-05 | 2023-05-11 | Apple Inc. | Configuration and default beam techniques at high movement speeds |
Also Published As
Publication number | Publication date |
---|---|
JP2013074416A (ja) | 2013-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102005209B1 (ko) | 화상 처리 장치와 화상 처리 방법 | |
TWI749530B (zh) | 資訊處理設備及資訊處理方法 | |
JP5942990B2 (ja) | 画像処理装置および方法 | |
US10419756B2 (en) | Image processing device and method | |
JP5464435B2 (ja) | 画像復号装置および方法 | |
WO2014002896A1 (ja) | 符号化装置および符号化方法、復号装置および復号方法 | |
WO2011089972A1 (ja) | 画像処理装置および方法 | |
JP5884313B2 (ja) | 画像処理装置、画像処理方法、プログラム及び記録媒体 | |
US20140086501A1 (en) | Image processing device and image processing method | |
WO2011125866A1 (ja) | 画像処理装置および方法 | |
WO2014050676A1 (ja) | 画像処理装置および方法 | |
JP5556996B2 (ja) | 画像処理装置および方法 | |
JP2014207536A (ja) | 画像処理装置および方法 | |
WO2013108688A1 (ja) | 画像処理装置および方法 | |
WO2013065570A1 (ja) | 画像処理装置および方法 | |
WO2013047325A1 (ja) | 画像処理装置および方法 | |
WO2014156708A1 (ja) | 画像復号装置および方法 | |
WO2013051452A1 (ja) | 画像処理装置および方法 | |
JP6217826B2 (ja) | 画像処理装置及び画像処理方法 | |
WO2013065567A1 (ja) | 画像処理装置および方法 | |
JP2013074491A (ja) | 画像処理装置および方法 | |
WO2014002900A1 (ja) | 画像処理装置および画像処理方法 | |
WO2013105457A1 (ja) | 画像処理装置および方法 | |
WO2014103765A1 (ja) | 復号装置および復号方法、並びに、符号化装置および符号化方法 | |
JP2013012996A (ja) | 画像処理装置および方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 12836257 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: 12836257 Country of ref document: EP Kind code of ref document: A1 |