WO2013001886A1 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
WO2013001886A1
WO2013001886A1 PCT/JP2012/059675 JP2012059675W WO2013001886A1 WO 2013001886 A1 WO2013001886 A1 WO 2013001886A1 JP 2012059675 W JP2012059675 W JP 2012059675W WO 2013001886 A1 WO2013001886 A1 WO 2013001886A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
filter
image
block
boundary
Prior art date
Application number
PCT/JP2012/059675
Other languages
English (en)
French (fr)
Inventor
優 池田
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Publication of WO2013001886A1 publication Critical patent/WO2013001886A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing

Definitions

  • the present disclosure relates to an image processing apparatus and an image processing method.
  • H.264 which is one of the standard specifications of the image coding method.
  • a deblock filter is applied to block boundaries for each 4 ⁇ 4 pixel block, for example, in order to suppress deterioration in image quality caused by block distortion that occurs during image coding.
  • the amount of processing required for this deblocking filter is large, and it is said that, for example, it may account for 50% of the total amount of processing when decoding an image.
  • JCTVC-A119 In standardization work of HEVC (High Efficiency Video Coding), a next-generation image coding method, a deblock filter is applied to each block of 8 ⁇ 8 pixels or more in JCT VC-A119 (see Non-Patent Document 1 below) It has been proposed to do.
  • JCTVC-A119 the block size of the minimum unit to which the deblocking filter is applied is expanded, and filtering processing is performed in parallel for a plurality of block boundaries in the same direction within one macroblock. It is possible to
  • JCT-VC Joint Collaborative Team on Video Coding
  • the technology according to the present disclosure is to provide an image processing device and an image processing method that enable further parallelization of processing upon application of a deblocking filter.
  • a decoding unit that decodes an encoded stream to generate an image, and a filter strength of a deblocking filter applied to an adjacent block adjacent to a block boundary in the image generated by the decoding unit
  • An image processing apparatus comprising: a selection unit that selects using a pixel value input to a deblocking filter; and a filtering unit that applies a deblocking filter having the filter strength selected by the selecting unit to the adjacent block Provided.
  • the image processing apparatus can be typically realized as an image decoding apparatus that decodes an image.
  • decoding of a coded stream to generate an image and deblocking of a filter strength of a deblocking filter applied to an adjacent block adjacent to a block boundary in the generated image is performed.
  • An image processing method is provided comprising selecting using input pixel values to a filter and applying a deblock filter having the selected filter strength to the neighboring blocks.
  • the filter strength of the deblocking filter applied to the adjacent block adjacent to the block boundary in the locally decoded image when encoding the encoding target image is input to the deblocking filter.
  • the selection unit selected using a pixel value, the filtering unit applying the deblock filter having the filter strength selected by the selection unit to the adjacent block, and the image filtered by the filtering unit
  • An image processing apparatus comprising: an encoding unit that encodes an image to be encoded.
  • the image processing apparatus can be typically realized as an image coding apparatus that codes an image.
  • the filter strength of the deblocking filter applied to the adjacent block adjacent to the block boundary in the locally decoded image when encoding the encoding target image is input to the deblocking filter.
  • applying a deblocking filter having the selected filter strength to the adjacent block, and coding the image to be encoded using the image filtered by the filter strength And providing an image processing method.
  • the image processing device and the image processing method according to the present disclosure it is possible to further parallelize the processing when applying the deblocking filter.
  • FIG. 8 is a first explanatory diagram for describing reference pixels in the filtering necessity determination process according to the first embodiment. It is a 2nd explanatory view for explaining the reference pixel in the filtering necessity judging processing concerning a 1st example.
  • FIGS. 1 and 2 An outline of an example of an apparatus to which the technology disclosed in this specification can be applied will be described using FIGS. 1 and 2.
  • the technology disclosed herein is applicable to, for example, an image coding apparatus and an image decoding apparatus.
  • FIG. 1 is a block diagram showing an example of the configuration of an image coding apparatus 10 according to an embodiment.
  • the image coding apparatus 10 includes an A / D (Analogue to Digital) conversion unit 11, a rearrangement buffer 12, a subtraction unit 13, an orthogonal conversion unit 14, a quantization unit 15, a lossless encoding unit 16, Storage buffer 17, rate control unit 18, inverse quantization unit 21, inverse orthogonal transformation unit 22, addition unit 23, deblock filter 24a, frame memory 25, selector 26, intra prediction unit 30, motion search unit 40, and mode selection A unit 50 is provided.
  • a / D Analogue to Digital
  • the A / D conversion unit 11 converts an image signal input in an analog form into image data in a digital form, and outputs a series of digital image data to the rearrangement buffer 12.
  • the image data input to the rearrangement buffer 12 is image data of an image to be encoded.
  • the rearrangement buffer 12 rearranges the images included in the series of image data input from the A / D converter 11.
  • the rearrangement buffer 12 rearranges the images according to the GOP (Group of Pictures) structure related to the encoding process, and then outputs the rearranged image data to the subtraction unit 13, the intra prediction unit 30, and the motion search unit 40. Do.
  • GOP Group of Pictures
  • the subtraction unit 13 is supplied with the image data input from the reordering buffer 12 and predicted image data selected by the mode selection unit 50 described later.
  • Subtraction unit 13 calculates prediction error data, which is the difference between the image data input from reordering buffer 12 and the prediction image data input from mode selection unit 50, and sends the calculated prediction error data to orthogonal transform unit 14. Output.
  • the orthogonal transformation unit 14 performs orthogonal transformation on the prediction error data input from the subtraction unit 13.
  • the orthogonal transformation performed by the orthogonal transformation unit 14 may be, for example, Discrete Cosine Transform (DCT) or Karhunen-Loeve Transform.
  • the orthogonal transform unit 14 outputs transform coefficient data acquired by the orthogonal transform process to the quantization unit 15.
  • the quantization unit 15 is supplied with transform coefficient data input from the orthogonal transform unit 14 and a rate control signal from the rate control unit 18 described later.
  • the quantizing unit 15 quantizes the transform coefficient data, and outputs the quantized transform coefficient data (hereinafter, referred to as quantized data) to the lossless encoding unit 16 and the inverse quantization unit 21. Further, the quantization unit 15 changes the bit rate of the quantized data input to the lossless encoding unit 16 by switching the quantization parameter (quantization scale) based on the rate control signal from the rate control unit 18 Let
  • the lossless encoding unit 16 includes quantized data input from the quantization unit 15 and intra prediction or inter prediction generated by the intra prediction unit 30 or the motion search unit 40 described later and selected by the mode selection unit 50.
  • Information about the The information on intra prediction may include, for example, prediction mode information indicating an optimal intra prediction mode for each block.
  • information on inter prediction may include, for example, prediction mode information for prediction of a motion vector for each block, differential motion vector information, and reference image information.
  • the lossless encoding unit 16 generates an encoded stream by performing lossless encoding processing on the quantized data.
  • the lossless coding by the lossless coding unit 16 may be, for example, variable length coding or arithmetic coding.
  • the lossless encoding unit 16 multiplexes the information related to intra prediction or the information related to inter prediction described above in a header (for example, a block header or a slice header) of the encoded stream. Then, the lossless encoding unit 16 outputs the generated encoded stream to the accumulation buffer 17.
  • the accumulation buffer 17 temporarily accumulates the encoded stream input from the lossless encoding unit 16. Then, the accumulation buffer 17 outputs the accumulated encoded stream at a rate according to the band of the transmission path (or the output line from the image encoding device 10).
  • the rate control unit 18 monitors the free space of the accumulation buffer 17. Then, the rate control unit 18 generates a rate control signal according to the free space of the accumulation buffer 17, and outputs the generated rate control signal to the quantization unit 15. For example, when the free space of the accumulation buffer 17 is small, the rate control unit 18 generates a rate control signal for reducing the bit rate of the quantized data. Also, for example, when the free space of the accumulation buffer 17 is sufficiently large, the rate control unit 18 generates a rate control signal for increasing the bit rate of the quantized data.
  • the processing by the inverse quantization unit 21, the inverse orthogonal transform unit 22 and the addition unit 23 constitutes a so-called local decoding process at the time of coding.
  • the encoding of the image to be encoded by the image encoding device 10 is performed using the image decoded by the local decoding process, as described below.
  • the inverse quantization unit 21 performs inverse quantization processing on the quantized data input from the quantization unit 15. Then, the inverse quantization unit 21 outputs the transform coefficient data acquired by the inverse quantization process to the inverse orthogonal transformation unit 22.
  • the inverse orthogonal transform unit 22 restores prediction error data by performing inverse orthogonal transform processing on the transform coefficient data input from the inverse quantization unit 21. Then, the inverse orthogonal transform unit 22 outputs the restored prediction error data to the addition unit 23.
  • the addition unit 23 generates decoded image data by adding the restored prediction error data input from the inverse orthogonal transform unit 22 and the predicted image data input from the mode selection unit 50. Then, the adding unit 23 outputs the generated decoded image data to the deblocking filter 24 a and the frame memory 25.
  • the deblocking filter 24a performs filtering processing to reduce block distortion that occurs during image coding.
  • the image filtered by the deblocking filter 24 a is used for encoding the image to be encoded in the image encoding device 10.
  • the deblocking filter 24a determines whether or not filtering is necessary for each of the block boundaries for the decoded image data input from the adding unit 23, and applies the deblocking filter to the boundaries determined to apply the filter. .
  • the deblocking filter 24a also receives information (for example, mode information, transform coefficient information, and motion vector information) used to determine whether or not filtering is necessary. .
  • the deblocking filter 24 a outputs the decoded image data after filtering from which block distortion has been removed to the frame memory 25. The process performed by the deblocking filter 24a will be described in detail later.
  • the frame memory 25 stores the decoded image data input from the adding unit 23 and the decoded image data after filtering input from the deblocking filter 24 a.
  • the selector 26 reads the decoded image data before filtering used for intra prediction from the frame memory 25 and supplies the read decoded image data to the intra prediction unit 30 as reference image data. Further, the selector 26 reads the decoded image data after filtering used for inter prediction from the frame memory 25 and supplies the read decoded image data to the motion search unit 40 as reference image data.
  • the intra prediction unit 30 performs intra prediction processing in each intra prediction mode based on the image data to be encoded input from the reordering buffer 12 and the decoded image data supplied via the selector 26. For example, the intra prediction unit 30 evaluates the prediction result in each intra prediction mode using a predetermined cost function. Then, the intra prediction unit 30 selects the intra prediction mode in which the cost function value is the smallest, that is, the intra prediction mode in which the compression rate is the highest, as the optimal intra prediction mode. Furthermore, the intra prediction unit 30 outputs information on intra prediction including prediction mode information indicating the optimal intra prediction mode, predicted image data, and a cost function value to the mode selection unit 50.
  • the motion search unit 40 performs inter prediction processing (inter-frame prediction processing) based on the image data to be encoded input from the reordering buffer 12 and the decoded image data supplied via the selector 26. For example, the motion search unit 40 evaluates the prediction result in each prediction mode using a predetermined cost function. Next, the motion search unit 40 selects the prediction mode in which the cost function value is the smallest, that is, the prediction mode in which the compression rate is the highest, as the optimal prediction mode. The motion search unit 40 also generates predicted image data according to the optimal prediction mode. Then, the motion search unit 40 outputs, to the mode selection unit 50, information on inter prediction including prediction mode information indicating the selected optimal prediction mode, prediction image data, and a cost function value.
  • inter prediction processing inter-frame prediction processing
  • the mode selection unit 50 compares the cost function value for intra prediction input from the intra prediction unit 30 with the cost function value for inter prediction input from the motion search unit 40. Then, the mode selection unit 50 selects a prediction method having a smaller cost function value from intra prediction and inter prediction. When intra prediction is selected, the mode selection unit 50 outputs information on intra prediction to the lossless encoding unit 16 and outputs predicted image data to the subtraction unit 13 and the addition unit 23. In addition, when the inter prediction is selected, the mode selection unit 50 outputs the above-described information on inter prediction to the lossless encoding unit 16 and outputs prediction image data to the subtraction unit 13 and the addition unit 23.
  • FIG. 2 is a block diagram showing an example of the configuration of the image decoding apparatus 60 according to an embodiment.
  • the image decoding apparatus 60 includes an accumulation buffer 61, a lossless decoding unit 62, an inverse quantization unit 63, an inverse orthogonal transformation unit 64, an addition unit 65, a deblocking filter 24b, a rearrangement buffer 67, and D / A. (Digital to Analogue) conversion unit 68, frame memory 69, selectors 70 and 71, intra prediction unit 80, and motion compensation unit 90.
  • D / A. (Digital to Analogue) conversion unit 68 Digital to Analogue conversion unit 68
  • frame memory 69 selectors 70 and 71
  • intra prediction unit 80 intra prediction unit 80
  • motion compensation unit 90 D / A.
  • the accumulation buffer 61 temporarily accumulates the coded stream input through the transmission path.
  • the lossless decoding unit 62 decodes the encoded stream input from the accumulation buffer 61 according to the encoding scheme used during encoding. Further, the lossless decoding unit 62 decodes the information multiplexed in the header area of the encoded stream.
  • the information multiplexed in the header area of the encoded stream may include, for example, information on intra prediction in the block header and information on inter prediction.
  • the lossless decoding unit 62 outputs information on intra prediction to the intra prediction unit 80. In addition, the lossless decoding unit 62 outputs information on inter prediction to the motion compensation unit 90.
  • the inverse quantization unit 63 inversely quantizes the quantized data after being decoded by the lossless decoding unit 62.
  • the inverse orthogonal transform unit 64 generates prediction error data by performing inverse orthogonal transform on the transform coefficient data input from the dequantization unit 63 according to the orthogonal transform scheme used at the time of encoding. Then, the inverse orthogonal transform unit 64 outputs the generated prediction error data to the addition unit 65.
  • the addition unit 65 adds the prediction error data input from the inverse orthogonal transform unit 64 and the prediction image data input from the selector 71 to generate decoded image data. Then, the adding unit 65 outputs the generated decoded image data to the deblocking filter 24b and the frame memory 69.
  • the deblocking filter 24 b performs filtering processing to reduce block distortion appearing in the decoded image.
  • the deblocking filter 24b determines, for example, whether or not filtering is necessary for each of the block boundaries in the decoded image data input from the adding unit 65, and applies the deblocking filter to the boundaries determined to apply the filter. .
  • information used for determining whether or not filtering is necessary is also input to the deblocking filter 24b.
  • the deblocking filter 24 b outputs the decoded image data after filtering, from which block distortion has been removed, to the rearrangement buffer 67 and the frame memory 69. The process performed by the deblocking filter 24b will be described in detail later.
  • the rearrangement buffer 67 rearranges the images input from the deblocking filter 24 b to generate a series of time-series image data. Then, the rearrangement buffer 67 outputs the generated image data to the D / A converter 68.
  • the D / A converter 68 converts the digital image data input from the reordering buffer 67 into an analog image signal. Then, the D / A conversion unit 68 displays an image, for example, by outputting an analog image signal to a display (not shown) connected to the image decoding device 60.
  • the frame memory 69 stores decoded image data before filtering input from the adding unit 65 and decoded image data after filtering input from the deblocking filter 24 b.
  • the selector 70 switches the output destination of the image data from the frame memory 69 between the intra prediction unit 80 and the motion compensation unit 90 for each block in the image according to the mode information acquired by the lossless decoding unit 62. .
  • the selector 70 outputs the decoded image data before filtering supplied from the frame memory 69 to the intra prediction unit 80 as reference image data.
  • the selector 70 outputs the decoded image data after filtering supplied from the frame memory 69 to the motion compensation unit 90 as reference image data.
  • the selector 71 outputs an output source of predicted image data to be supplied to the adding unit 65 for each block in the image in accordance with the mode information acquired by the lossless decoding unit 62 between the intra predicting unit 80 and the motion compensating unit 90. Switch between. For example, when the intra prediction mode is designated, the selector 71 supplies predicted image data output from the intra prediction unit 80 to the addition unit 65. The selector 71 supplies predicted image data output from the motion compensation unit 90 to the addition unit 65 when the inter prediction mode is specified.
  • the intra prediction unit 80 performs intra prediction of pixel values based on the information on the intra prediction input from the lossless decoding unit 62 and the reference image data from the frame memory 69, and generates predicted image data. Then, the intra prediction unit 80 outputs the generated predicted image data to the selector 71.
  • the motion compensation unit 90 performs motion compensation processing based on the information on inter prediction input from the lossless decoding unit 62 and the reference image data from the frame memory 69 to generate predicted image data. Then, the motion compensation unit 90 outputs the generated predicted image data to the selector 71.
  • H The processing by the deblocking filter in the existing image coding method such as H.264 / AVC or HEVC includes three types of processing of filtering necessity determination processing, filter strength selection processing, and filtering processing. Hereinafter, these three processes will be described by taking HEVC as an example.
  • the filtering necessity determination process is a process of determining whether or not to apply the deblocking filter for each block boundary in the input image.
  • the block boundaries include the vertical boundaries between the left and right adjacent blocks and the horizontal boundaries between the upper and lower adjacent blocks.
  • a block size of 8 ⁇ 8 pixels is the smallest processing unit.
  • there are four 8x8 pixel blocks within a 16x16 pixel macroblock, and one (left) vertical boundary and one (upper) horizontal boundary per block, ie a total of 4 + 4 Eight boundaries are to be judged.
  • the term "macroblock” also includes a coding unit (CU: Coding Unit) in the context of HEVC.
  • CU Coding Unit
  • FIG. 3 is an explanatory view showing an example of pixels in two adjacent blocks Ba and Bb across block boundaries.
  • the pixels in the block Ba are indicated by the symbol p ij .
  • i is the column index and j is the row index.
  • the column index i is numbered 0, 1, 2, 3 sequentially from right to left from the column near the vertical boundary.
  • the row index j is numbered from top to bottom as 0, 1, 2,.
  • the left half of the block Ba is omitted in the figure.
  • the pixels in the block Bb are indicated by the symbol q kj .
  • k is the column index and j is the row index.
  • the column index k is numbered 0, 1, 2, 3 (from left to right) sequentially from the column near the vertical boundary.
  • the right half of the block Bb is also omitted in the figure.
  • condition A (A1) block Ba or Bb is in intra prediction mode; (A2) block Ba or Bb has non-zero orthogonal transformation coefficients; or (A3)
  • condition A3 the motion vector of the block Ba with Qpel (1/4 pixel) accuracy is (MVAx, MVAy), and the motion vector of the block Bb is (MVBx, MVBy).
  • ⁇ in the condition B is an edge determination threshold. The initial value of ⁇ is given according to the quantization parameter. Also, the value of ⁇ can be designated by the user by the parameter in the slice header.
  • the filtering necessity determination processing for the general boundary in particular, determination of the determination condition B of the luminance component
  • the second and fifth of each block The pixel of the line (the top row is the 0th) is referred to.
  • the boundary of the object is a vertical boundary
  • the line corresponds to a row orthogonal to the boundary.
  • the boundary of the object is a horizontal boundary
  • the line corresponds to a column orthogonal to the boundary.
  • Filter strength selection processing If it is determined that the deblock filter should be applied to a certain boundary, filtering processing is performed on the pixels on the left and right of the boundary for the vertical boundary and pixels above and below the boundary for the horizontal boundary. It will be. For the luminance component, the filter strength may be switched between strong and weak filters depending on the pixel value.
  • a strong filter is selected if all of the following conditions C1 to C3 are satisfied, and a weak filter is selected if any one of the following conditions is not satisfied: (C1) d ⁇ ( ⁇ >> 2) (C2) (
  • j is the index of the line.
  • p 0 j Clip 0-255 (p 0 j + ⁇ )
  • q 0j Clip 0-255 (q 0j-? )
  • p 1j Clip 0-255 (p 1j + ⁇ / 2)
  • q 1j Clip 0-255 (q 1j- ⁇ / 2)
  • p 0j Clip 0-255 ((p 2j + 2p 1j + 2p 0j + 2q 0j + q 1j +4) >> 3)
  • q 0j Clip 0-255 ((p 1j + 2p 0j + 2q 0j + 2q 1j + q 2j +4) >> 3)
  • p 1j Clip 0-255 ((p 2j + p 1j + p 0j + q 0j +2) >> 2)
  • q 1j Clip 0-255 ((p 0j + q 0j + q 1j + q 2j +2) >> 2)
  • p 2j Clip 0-255 ((2p 3j + 3p 2j + p 1j + p 0j + q 0j +4) >> 3)
  • q 2j Clip 0-255 ((p 0j + q 0j + 3q 2j + 2q 3j +4) >> 3)
  • Clip (a, b, c) clips the value c in the range of a ⁇ c ⁇ b
  • Clip 0-255 (c) clips the value c in the range of 0 ⁇ c ⁇ 255.
  • Clip (-t C, t C, ((((q 0j -p 0j) ⁇ 2) + p 1j -q 1j +4) >> 3))
  • p 0 j Clip 0-255 (p 0 j + ⁇ )
  • q 0j Clip 0-255 (q 0j-? )
  • the filter strength selection process S V0,0 for the vertical boundary V0,0 is the filtering process F V0,1 , F V0,2 and F for the other vertical boundaries. It is understood that the pixels updated by V0 , 3 are not referred to and do not depend on these filtering processes.
  • the filter strength selection process S V0,1 in the vertical boundaries V0,1 is filtering F V0,0 on the other vertical boundary, does not refer to the pixel to be updated by F V0,2 and F V0,3 .
  • Filter strength selection process S V0,2 in the vertical boundaries V0,2 is filtering F V0,0 on the other vertical boundary, it does not refer to the pixel to be updated by F V0,1 and F V0,3.
  • Filter strength selection process S V0,3 in the vertical boundaries V0,3 is filtering F V0,0 on the other vertical boundary, it does not refer to the pixel to be updated by F V0,1 and F V0,2.
  • the dependency between the filtering process for the vertical boundary and the filtering necessity determination process and the filter strength selection process for the horizontal boundary is left.
  • the dependency between the filtering process for the horizontal boundary and the filtering necessity determination process and the filter strength selection process for the vertical boundary is also left. Therefore, for example, when processing the vertical boundary prior to the horizontal boundary, processing on the horizontal boundary in a certain macro block is performed after the end of processing on the vertical boundary. As an example, referring to FIG.
  • filtering necessity determination processing S H0,0 depends on the result of filtering processing F V0,0 and F V0,1 , and the result of filtering processing F V0,1 It is shown that the filter strength selection processing S H 0 , 1 depends on As another example, referring to FIG. 10, the filtering necessity determination process J H0,0 depends on the result of the filtering processes F V0,0 and F V0,1 in the macroblock MB0, and the filtering process F V0 It is shown that the filtering necessity determination process J H 0 , 1 depends on the results of 1 and 2.
  • FIG. 11 is an explanatory diagram for describing an example of the order of processing of the deblocking filter in the existing method.
  • an image having a size of 32 ⁇ 32 pixels is input to the deblocking filter.
  • the input image includes four macroblocks MB0 to MB3 each having a size of 16 ⁇ 16 pixels.
  • processes that can be executed in parallel are shown in respective dotted lines.
  • filtering necessity determination processing J V0,0 , J V0,1 , J V0,2 and J V0,3 for four vertical boundaries of the macroblock MB0 are executed in parallel.
  • filter strength selection processing S V0,0 , S V0,1 , S V0,2 and S V0,3 for the four vertical boundaries of the macroblock MB0 are executed in parallel.
  • the filtering processes F V0,0 , F V0,1 , F V0,2 and F V0,3 on the four vertical boundaries of the macroblock MB0 are executed in parallel.
  • the filtering necessity determining process J for the four horizontal boundaries of macro blocks MB0 H0,0, J H0,1, J H0,2 and J H0,3 Are executed in parallel.
  • the filter strength selection process S H0,0 for four horizontal boundaries of macro blocks MB0, S H0,1, S H0,2 and S H0,3 are executed in parallel.
  • the filtering process F H0,0 for four horizontal boundaries of macro blocks MB0, F H0,1, F H0,2 and F H0,3 are executed in parallel.
  • the processing (seventh step to the twelfth step) for the macroblock MB1 is sequentially performed.
  • the processing for the macroblock MB1 is completed, the processing (the thirteenth step to the eighteenth step) for the macroblock MB2 is sequentially performed.
  • the processes (the 19th to 24th steps) for the macroblock MB3 are sequentially performed.
  • the processing by the deblocking filter 24 includes the three types of processing of the above-described filtering necessity determination processing, the filter strength selection processing, and the filtering processing.
  • the deblocking filter 24 performs filter strength selection processing based on the pixel value of the reference pixel different from the existing method. More specifically, the deblocking filter 24 does not update the filter strength of the deblocking filter applied to a certain boundary (each line orthogonal to a certain boundary) by the filtering process for the other boundary orthogonal to the certain boundary It selects based on the pixel value of the pixel which belongs to a line.
  • the non-updated line here is typically a line in the central portion of the boundary. As understood from FIG. 5 or FIG.
  • FIG. 12 and 13 are explanatory diagrams for describing reference pixels in the filter strength selection process by the deblocking filter 24.
  • FIG. Referring to FIG. 12, a macroblock MB0 having a size of 16 ⁇ 16 pixels is shown.
  • the deblocking filter 24 sets the filter strength for eight lines orthogonal to the vertical boundary V0,0 of the macroblock MB0, and at least one of the third line R3 and the fourth line R4 orthogonal to the vertical boundary V0,0. Are selected as reference pixels ( SV0, 0 ).
  • the lines R3 and R4 are lines which are neither updated by the filtering process on the horizontal boundary H0, 0 nor by the filtering process on the horizontal boundary H0,2.
  • the deblocking filter 24 sets the filter strength for eight lines orthogonal to the vertical boundaries V0, 2 to at least the third line R3 and the fourth line R4 of the lines orthogonal to the vertical boundaries V0, 2.
  • a pixel belonging to one is selected as a reference pixel (S V0,2 ).
  • the deblocking filter 24 sets the filter strength for eight lines orthogonal to the horizontal boundary H0,0 of the macroblock MB0, and at least one of the third line C3 and the fourth line C4 orthogonal to the horizontal boundary H0,0. Are selected as reference pixels (S H0,0 ).
  • the lines C3 and C4 are lines which are neither updated by the filtering process for the vertical boundary V0, 0 nor by the filtering process for the vertical boundary V0,1.
  • the deblocking filter 24 sets the filter strength for eight lines orthogonal to the horizontal boundaries H0, 1 to at least the third line C3 and the fourth line C4 of the lines orthogonal to the horizontal boundaries H0, H2.
  • a pixel belonging to one is selected as a reference pixel (S H0,1 ).
  • the deblocking filter 24 further performs filtering necessity determination processing based on the pixel values of reference pixels belonging to the same line as the filter strength determination processing. This means that the determination as to whether or not to apply a deblocking filter to each line is performed using input pixel values to the deblocking filter.
  • the filtering necessity determination processing J V0,0 for the vertical boundary V0,0 of the macroblock MB0 is performed using pixels belonging to lines R3 and R4 orthogonal to the vertical boundary V0,0 as a reference pixel It is shown.
  • the filtering necessity determination processing J V0,2 for the vertical boundaries V0,2 is performed using pixels belonging to the lines R3 and R4 orthogonal to the vertical boundaries V0,2 as reference pixels.
  • the filtering necessity determination process J H0,0 for the horizontal boundary H0,0 of the macroblock MB0 is a row using pixels belonging to lines C3 and C4 orthogonal to the horizontal boundary H0,0 as reference pixels. It will be. Similarly, the filtering necessity determination processing J H0,1 for the horizontal boundaries H0,1 is performed using pixels belonging to the lines C3 and C4 orthogonal to the horizontal boundaries H0,1 as reference pixels. Such a configuration eliminates the dependency between the filtering process on the vertical boundary and the filtering necessity determination process on the horizontal boundary.
  • FIG. 16 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the present embodiment.
  • the deblocking filter 24 includes a determination block 110, an intensity selection block 130, a filtering block 150, and a control unit 160.
  • the determination block 110 includes a plurality of boundary determination units 112-1 to 112-n. Each boundary determination unit 112 is supplied with an input image to the deblocking filter 24 and determination information used to determine the necessity of filtering.
  • the plurality of boundary determination units 112-1 to 112-n execute the filtering necessity determination process described below in parallel for a plurality of boundaries.
  • the boundary determination unit 112-1 is a first vertical boundary
  • the boundary determination unit 112-2 is a first horizontal boundary
  • the boundary determination unit 112-3 is a second vertical boundary
  • the boundary determination unit 112-4 is a second.
  • the filtering necessity determination process may be performed in parallel on the horizontal boundaries of.
  • Each boundary determination unit 112 determines whether or not the deblock filter should be applied to each block boundary, based on reference pixels belonging to a line (hereinafter referred to as a basic line) not updated by the filtering process on other boundaries orthogonal to the boundary. The determination is made using pixel values.
  • the basic line referred to here is a line in the central part of each boundary, and the pixel value referred to is an input pixel value to the deblocking filter 24.
  • each boundary determination unit 112 extracts information indicating the determination result for each boundary (for example, binary information indicating the determination result that “1” should apply the deblocking filter) into the intensity selection block 130 and the filtering. Output to block 150.
  • FIG. 17 is a block diagram showing an example of a more detailed configuration of each boundary determination unit 112. As shown in FIG. Referring to FIG. 17, each boundary determination unit 112 includes a tap construction unit 121, an operation unit 122, a threshold comparison unit 123, a distortion evaluation unit 124, and a filtering determination unit 125.
  • the tap constructing unit 121 obtains the pixel value of the reference pixel of the basic line from the pixel values of two blocks adjacent to each other across the target boundary in the input image, and determines the above-mentioned determination condition B of the luminance component. Construct a tap (a set of reference pixel values).
  • the calculation unit 122 substitutes the tap constructed by the tap construction unit 121 into the left side of the determination formula of the determination condition B, and calculates a determination parameter to be compared with the edge determination threshold value ⁇ .
  • the threshold comparison unit 123 compares the value calculated by the calculation unit 122 with the edge determination threshold value ⁇ , and outputs the comparison result to the filtering determination unit 125.
  • the calculation by the calculation unit 122 and the comparison with the threshold by the threshold comparison unit 123 may be expressed, for example, by the following equation. -Condition B:
  • the calculation by the calculation unit 122 and the comparison with the threshold value by the threshold comparison unit 123 may be expressed by the following equation. -Condition B ':
  • Condition B ′ is a condition that is more difficult to determine that the deblocking filter should be applied (if the reference pixel value does not change) as compared to condition B.
  • the value of the determination parameter (the left side of the expression of the condition B) is often reduced and it is easy to determine that the deblocking filter should be applied.
  • the condition B 'instead of the condition B it is possible to prevent the decrease in the accuracy of the determination accompanying the change of the reference line.
  • the value of the threshold value ⁇ on the right side of the condition B may be prevented.
  • the distortion evaluation unit 124 evaluates the above-described determination condition A of the luminance component using the mode information (MB mode), the conversion coefficient information, and the motion vector information supplied as the determination information. Then, the distortion evaluation unit 124 outputs the evaluation result to the filtering determination unit 125. For the color difference component, only the determination on the determination condition A1 based on the mode information by the distortion evaluation unit 124 may be performed.
  • the filtering determination unit 125 determines a block boundary to which attention is paid based on the comparison result of the determination condition B or B ′ input from the threshold comparison unit 123 and the evaluation result of the determination condition A input from the distortion evaluation unit 124. It is determined whether or not the deblocking filter should be applied to Then, the filtering determination unit 125 outputs information indicating the determination result.
  • the intensity selection block 130 includes a plurality of intensity selection units 132-1 to 132-n. Each intensity selection unit 132 is supplied with the input image and the determination result of each boundary from the determination block 110.
  • the plurality of strength selection units 132-1 to 132-n execute the filter strength selection processing described below in parallel with a plurality of boundaries as targets.
  • the intensity selecting unit 132-1 is a first vertical boundary
  • the intensity selecting unit 132-2 is a first horizontal boundary
  • the intensity selecting unit 132-3 is a second vertical boundary
  • the intensity selecting unit 132-4 is a second.
  • the filter strength selection process may be performed in parallel on the horizontal boundaries of.
  • Each strength selection unit 132 belongs to a basic line that is not updated by the filtering process for the other boundary orthogonal to the boundary, which is the filter strength of the deblock filter applied to neighboring blocks adjacent to each block boundary. It selects using the pixel value of a reference pixel.
  • the basic line referred to here is a line in the central part of each boundary, and the pixel value referred to is an input pixel value to the deblocking filter 24.
  • each strength selection unit 132 outputs, to the filtering block 150, information indicating the selection result of each boundary (for example, binary information in which “1” indicates the selection of the strong filter).
  • each strength selection unit 132 selects the filter strength for the corresponding boundary only when the determination result input from the corresponding boundary determination unit 112 indicates that the deblocking filter should be applied. Processing may be performed. In this case, unnecessary execution of the filter strength selection process can be avoided, and the processing cost can be suppressed. On the other hand, each strength selection unit 132 may execute the filter strength selection process in parallel with the determination by each boundary determination unit 112. In this case, the overall processing time can be shortened.
  • FIG. 18 is a block diagram showing an example of a further detailed configuration of each strength selection unit 132. As shown in FIG. Referring to FIG. 18, each strength selection unit 132 includes a tap construction unit 141, a parameter calculation unit 142, a selection unit 143, and a buffer 144.
  • the tap constructing unit 141 recognizes the basic line orthogonal to each boundary according to the line control signal from the control unit 160, and the expressions of the conditions C1 to C3 for intensity selection described above from the pixel values of the reference pixels of the basic line. Build a tap to evaluate.
  • the basic lines are the third and fourth lines that are orthogonal to the boundary at the center of each boundary.
  • the parameter calculation unit 142 substitutes the taps constructed by the tap construction unit 141 into the left side of the conditions C1 to C3 and calculates the following three types of parameters d1 to d3 depending on the strength of the block distortion.
  • the parameters d2 and d3 are calculated for each basic line. These parameters are referred to herein as intensity selection parameters.
  • the selection unit 143 selects the filter strength of the deblocking filter applied to each basic line by evaluating the intensity selection parameters calculated by the parameter calculation unit 142 according to the conditions C1 to C3 for the basic line. A strong filter is selected if all the following conditions C1 to C3 are fulfilled, and a weak filter is chosen if none of the following conditions C1 to C3 are fulfilled: (C1) d1 ⁇ ( ⁇ >> 2) (C2) d2 ⁇ ( ⁇ >> 3) (C3) d3 ⁇ ((5t C +1) >> 1) Then, the selection unit 143 outputs information indicating the selection result of each basic line to the filtering block 150. Further, the selection unit 143 outputs information indicating the selection result of each basic line (or the values of the strength selection parameters d1 to d3) to the buffer 144 for storage.
  • the selection unit 143 selects the filter strength by evaluating the strength selection parameter calculated for at least one of the basic lines for each line other than the basic line.
  • the evaluation pattern for each line other than the basic lines may be, for example, any of the following three.
  • -Pattern P1 A strong filter if both of the intensity selection parameters calculated for the two base lines indicate that the block distortion is strong (ie if both strong filters are selected for the two base lines) choose.
  • -Pattern P2 A strong filter is selected when an intensity selection parameter calculated for a basic line (hereinafter referred to as a near line) close to the line to be selected indicates that block distortion is strong.
  • Pattern P3 A strong filter is selected when one or both of the intensity selection parameters calculated for two basic lines indicate that block distortion is strong.
  • the selection unit 143 may use the same pattern for all lines other than the basic line, or may change the evaluation pattern according to the line position.
  • the selection unit 143 uses the evaluation pattern P2 for all lines other than the basic line, as shown in Table 1 below.
  • the evaluation pattern P2 is an evaluation pattern using the spatial correlation between the image of the line to be selected and the neighboring lines, and a reasonable strength to a certain extent while suppressing the processing cost by the simple reuse of the selection result of the filter strength. The choice can be realized.
  • the selection unit 143 uses the evaluation pattern P1 for all lines other than the basic line, as shown in Table 2 below.
  • the evaluation pattern P1 is an evaluation pattern for which the strongest filter is hard to be selected among the three evaluation patterns described above.
  • the evaluation pattern P1 can be employed in a situation where it is desired to actively prevent adverse effects such as deterioration of image quality due to excessive application of a strong filter.
  • the selection unit 143 uses the evaluation pattern P3 for all lines other than the basic line, as shown in Table 3 below.
  • the evaluation pattern P3 is an evaluation pattern that is most likely to select the strongest filter among the three evaluation patterns described above.
  • the evaluation pattern P3 can be employed in a situation where it is desired to positively select a strong filter to greatly reduce block distortion.
  • the selection unit 143 uses the evaluation pattern P2 for the two lines (# 2 and # 5) adjacent to the basic line as shown in Table 4 below, and uses the other lines (# 0).
  • the evaluation pattern P1 is used for # 1, # 6 and # 7).
  • the spatial correlation of the image with the basic line decreases as the distance from the basic line increases. Therefore, as in the fourth scenario, it is possible to select an appropriate filter strength for each line by adaptively changing the evaluation pattern according to the line position.
  • the selection unit 143 may change the evaluation pattern for lines other than the basic line orthogonal to the boundary according to the BS (Boundary Strength) value of each boundary.
  • the BS value is, for example, H. In H.264 / AVC, it is a five-step numerical value given according to intra / inter type of two blocks in contact with each boundary, presence / absence of orthogonal transformation coefficient, difference of reference picture, difference of motion vector, and the like. The higher the BS value, the stronger the block distortion.
  • the selection unit 143 switches the evaluation pattern according to the BS value for lines # 0, # 1, # 6, and # 7 as shown in Table 5 below.
  • the BS value is divided into “low” and “high”, and the evaluation pattern P1 is used if the BS value is "low”, and the evaluation pattern P2 is used if the BS value is "high”.
  • the evaluation pattern may be switched according to a standard other than the line position and the BS value, or an evaluation pattern other than the above-described three evaluation patterns may be used.
  • a flag for switching the evaluation pattern used by the selection unit 143 among a plurality of evaluation patterns may be encoded in a sequence parameter set, a picture parameter set, or a slice header.
  • the selection unit 143 also outputs information indicating the selection result of the filter strength to the filtering block 150 for each line other than the basic line.
  • the filtering block 150 includes a plurality of filtering units 152-1 to 152-n. Each filtering unit 152 is supplied with the input image, the determination result of each boundary from the determination block 110, and the selection result of the filter strength of each boundary from the intensity selection block 130.
  • Each filtering unit 152 corresponds to the deblocking filter having the filter strength selected by the corresponding strength selection unit 132 when the determination result by the corresponding boundary determination unit 112 indicates that the filter should be applied. Apply to each line orthogonal to the boundary. Then, each filtering unit 152 outputs the pixel value after filtering for the pixel to which the filter is applied, and outputs the pixel value of the input image for the other pixels.
  • the output from each filtering unit 152 may constitute an output image from the deblocking filter 24.
  • control unit 160 controls processing in each unit of the deblocking filter 24 shown in FIG. For example, the control unit 160 outputs a line control signal to the intensity selection block 130, and branches the processing for the basic line and the processing for lines other than the basic line for each line.
  • control unit 160 controls the degree of parallelism of the filtering necessity determination process, the filter strength selection process, and the filtering process. If a high degree of parallelism is desired, each process may be parallelized across multiple macroblocks (or multiple LCUs (Largest Coding Units)). In addition, when sequential processing is performed for each macroblock, the processing may be parallelized for a plurality of vertical boundaries and a plurality of horizontal boundaries in each macroblock. The control of the degree of parallelism may be performed based on the size of the input image. For example, when the size of the input image is relatively large, the control unit 160 may increase the degree of parallel processing.
  • control unit 160 may control the degree of parallelism of each process based on parameters included in the sequence parameter set, the picture parameter set, or the slice header.
  • the degree of parallelism can be set flexibly according to the requirements of each user who develops the device.
  • the degree of parallelism may be set according to the constraints of the implementation environment such as the number of processor cores or the number of software threads.
  • FIG. 19 is a flowchart showing a first example of the flow of processing by the deblocking filter 24 according to this embodiment. In the first example, sequential processing is performed for each macroblock (MB).
  • MB macroblock
  • the boundary determination units 112-1 to 112-n determine whether or not filtering is necessary in parallel for a plurality of vertical boundaries and a plurality of horizontal boundaries included in one focused MB in the input image. It determines (step S110).
  • the intensity selection units 132-1 to 132-n select the filter intensities of the respective lines orthogonal to the boundaries in parallel for the boundaries determined to require filtering in step S110 (step S120).
  • each filtering unit 152 targeting the vertical boundary has a filter strength selected by the corresponding intensity selection unit 132 for each of the lines orthogonal to the vertical boundary determined to require filtering in step S110.
  • a block filter is applied (step S130).
  • each filtering unit 152 targeting the horizontal boundary applies the filter strength selected by the intensity selection unit 132 to each of the lines orthogonal to the horizontal boundary determined to require filtering for the previous target MB.
  • the deblocking filter that it has is applied (step S140).
  • steps S110 to S140 are repeated with the next MB as a new focused MB (step S150).
  • each filtering unit 152 for the horizontal boundary targets each of the lines orthogonal to the horizontal boundary determined to require filtering for the last target MB.
  • the deblocking filter having the filter strength selected by the corresponding strength selecting unit 132 is applied to the (step S160).
  • FIG. 20 is a flowchart showing an example of the flow of the filter strength selection process, which corresponds to step S120 in FIG. Note that FIG. 20 shows an example of the flow of the filter strength selection process for one boundary.
  • the parameter calculation unit 142 calculates an intensity selection parameter for the basic line (step S121).
  • the selection unit 143 selects the filter strength for each basic line by evaluating the strength selection parameter calculated in step S121 with a threshold value (step S122). Then, the selection unit 143 outputs the selection result of the filter strength for each basic line to the buffer 144 for storage (step S123).
  • steps S125 to S129 is repeated for each line orthogonal to the boundary of the processing target (hereinafter, referred to as a line of interest) (step S124).
  • step S125 the selection unit 143 determines whether the target line is a basic line (step S125).
  • the selection unit 143 determines an evaluation pattern (for example, any of the above-described evaluation patterns P1 to P3) for the attention line (step S126). Then, the selection unit 143 selects the filter strength for the target line using the selection result of the filter strength for the basic line according to the determined evaluation pattern (step S127).
  • the selection unit 143 acquires the selection result of the filter strength for the line of interest buffered by the buffer 144 (step S128). Then, the selection unit 143 outputs the selection result of the filter strength for the target line to the filtering block 150 (step S129).
  • FIG. 21 is a flowchart showing a second example of the flow of processing by the deblocking filter 24 according to this embodiment. In the second example, parallel processing across all boundaries in the input image is realized.
  • the boundary determination units 112-1 to 112-n determine the necessity of filtering in parallel for all vertical boundaries and all horizontal boundaries in the input image (step S210).
  • the intensity selection units 132-1 to 132-n select the filter intensities of the respective lines orthogonal to the boundaries in parallel for the boundaries determined to require filtering in step S210 (step S220).
  • the filtering units 152-1 to 152-n have the filter strengths selected by the intensity selection units 132-1 to 132-n on a line orthogonal to the vertical boundary determined to require filtering in step S210.
  • a deblocking filter is applied (step S230).
  • the filtering units 152-1 to 152-n have the filter strengths selected by the intensity selection units 132-1 to 132-n on the line orthogonal to the horizontal boundary determined to require filtering in step S210.
  • a deblocking filter is applied (step S240).
  • FIG. 22 is a flowchart showing a third example of the flow of processing by the deblocking filter 24 according to the present embodiment.
  • sequential processing is performed for each macroblock.
  • the boundary determination units 112-1 to 112-n determine whether or not filtering is necessary in parallel for a plurality of vertical boundaries and a plurality of horizontal boundaries included in one focused MB in the input image. It determines (step S310).
  • the intensity selecting units 132-1 to 132-n respectively filter intensity of each of the lines orthogonal to each of the plurality of vertical boundaries and the plurality of horizontal boundaries included in the same attention MB. It selects (step S320).
  • steps S130 to S160 are the same as the first example of the process flow of the deblocking filter 24 described with reference to FIG.
  • processing by the deblocking filter 24 is not limited to such an example, for example, in various units such as a specific number (such as two or four) of macroblocks or a group of blocks arranged horizontally or vertically. May be parallelized.
  • Second embodiment> in order to improve the accuracy of selection of the filter strength, a mechanism for estimation of strength selection parameters as described below is introduced.
  • the new dependency between the filtering necessity determination process, the filter strength selection process and the filtering process introduced in the first embodiment is also utilized in the present embodiment.
  • each strength selection unit 132 includes a tap construction unit 141, a parameter calculation unit 142, a buffer 243, a parameter estimation unit 244, and a selection unit 245.
  • the selection unit 245 causes the buffer 243 to store the calculation results of the intensity selection parameters d1, d2 and d3 input from the parameter calculation unit 142 for each basic line.
  • the basic line here may be the third and fourth two lines in the central portion of each boundary when the block size of each block is 8 ⁇ 8 pixels, as in the first embodiment. .
  • the parameter estimation unit 244 sets the value of the intensity selection parameter for each line other than the basic line (referred to as an estimated line in this embodiment) to the value of the intensity selection parameter for the basic line stored by the buffer 243. Use to estimate.
  • FIG. 24 is an explanatory diagram for describing estimation of a strength selection parameter. The estimation of the strength selection parameter for each estimation line by the parameter estimation unit 244 may be performed, for example, by extrapolating the parameter value calculated for the basic line as follows.
  • dX i is either d1 i, d2 i and d3 i, i is the index of the line.
  • the selection unit 245 selects the filter strength by evaluating the values of the intensity selection parameters calculated by the parameter calculation unit 142 in accordance with the conditions C1 to C3 described above. Further, for the estimation line, the selection unit 245 selects the filter strength by evaluating the value of the parameter for intensity selection estimated by the parameter estimation unit 244 according to the conditions C1 to C3 described above. Then, the selection unit 245 outputs information indicating the selection result of the filter strength for each line to the filtering block 150.
  • FIG. 25 is a flowchart showing an example of the flow of the filter strength selection process according to the present embodiment. Note that FIG. 25 shows an example of the flow of the filter strength selection process for one boundary.
  • the parameter calculation unit 142 calculates an intensity selection parameter for the basic line (step S221).
  • the selection unit 245 outputs the value of the parameter for strength selection for the basic line calculated in step S221 to the buffer 243 for storage (step S222).
  • steps S224 to S228 are repeated for each line orthogonal to the boundary of the processing target (hereinafter referred to as a line of interest) (step S223).
  • step S224 the selection unit 245 determines whether the target line is a basic line (step S224).
  • the parameter estimation unit 244 estimates the value of the intensity selection parameter for the attention line from the parameter value for the basic line (step S225).
  • the selection unit 245 acquires the value of the intensity selection parameter for the attention line buffered by the buffer 243 (step S226).
  • the selection unit 245 selects the filter strength for the target line using the strength selection parameter estimated by the parameter estimation unit 244 or acquired from the buffer 243 (step S227).
  • the selection unit 245 outputs the selection result of the filter strength for the target line to the filtering block 150 (step S228).
  • the value of the intensity selection parameter for the estimation line is estimated from the value of the intensity selection parameter for the basic line, and the filter intensity is selected based on the estimated value. Therefore, the accuracy of the selection of the filter strength can be improved.
  • the image encoding device 10 and the image decoding device 60 according to the embodiments described above are transmitters or receivers for satellite broadcasting, cable broadcasting such as cable TV, distribution over the Internet, distribution to terminals by cellular communication, etc.
  • the present invention can be applied to various electronic devices such as a recording device which records an image on a medium such as an optical disk, a magnetic disk and a flash memory, or a reproducing device which reproduces an image from the storage medium.
  • a recording device which records an image on a medium such as an optical disk, a magnetic disk and a flash memory
  • a reproducing device which reproduces an image from the storage medium.
  • FIG. 26 shows an example of a schematic configuration of a television set to which the embodiment described above is applied.
  • the television device 900 includes an antenna 901, a tuner 902, a demultiplexer 903, a decoder 904, a video signal processing unit 905, a display unit 906, an audio signal processing unit 907, a speaker 908, an external interface 909, a control unit 910, a user interface 911, And a bus 912.
  • the tuner 902 extracts a signal of a desired channel from a broadcast signal received via the antenna 901, and demodulates the extracted signal. Then, the tuner 902 outputs the coded bit stream obtained by demodulation to the demultiplexer 903. That is, the tuner 902 has a role as a transmission means in the television apparatus 900 for receiving a coded stream in which an image is coded.
  • the demultiplexer 903 separates the video stream and audio stream of the program to be viewed from the coded bit stream, and outputs the separated streams to the decoder 904. Also, the demultiplexer 903 extracts auxiliary data such as an EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. When the coded bit stream is scrambled, the demultiplexer 903 may perform descrambling.
  • EPG Electronic Program Guide
  • the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. Further, the decoder 904 outputs the audio data generated by the decoding process to the audio signal processing unit 907.
  • the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display a video. Also, the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via the network. Further, the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting. Furthermore, the video signal processing unit 905 may generate an image of a graphical user interface (GUI) such as a menu, a button, or a cursor, for example, and may superimpose the generated image on the output image.
  • GUI graphical user interface
  • the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays a video or an image on the video surface of a display device (for example, a liquid crystal display, a plasma display, or an OLED).
  • a display device for example, a liquid crystal display, a plasma display, or an OLED.
  • the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on audio data input from the decoder 904, and causes the speaker 908 to output audio. Further, the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
  • the external interface 909 is an interface for connecting the television device 900 to an external device or a network.
  • a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also serves as a transmission means in the television apparatus 900 for receiving the coded stream in which the image is coded.
  • the control unit 910 includes a processor such as a central processing unit (CPU) and memories such as a random access memory (RAM) and a read only memory (ROM).
  • the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
  • the program stored by the memory is read and executed by the CPU, for example, when the television device 900 is started.
  • the CPU controls the operation of the television apparatus 900 according to an operation signal input from, for example, the user interface 911 by executing a program.
  • the user interface 911 is connected to the control unit 910.
  • the user interface 911 has, for example, buttons and switches for the user to operate the television device 900, a receiver of remote control signals, and the like.
  • the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
  • the bus 912 mutually connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910.
  • the decoder 904 has the function of the image decoding device 60 according to the above-described embodiment.
  • the degree of parallelism of the processing of the deblocking filter can be increased to speed up the processing.
  • FIG. 27 shows an example of a schematic configuration of a mobile phone to which the embodiment described above is applied.
  • the mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a multiplexing and separating unit 928, a recording and reproducing unit 929, a display unit 930, a control unit 931, an operation.
  • a unit 932 and a bus 933 are provided.
  • the antenna 921 is connected to the communication unit 922.
  • the speaker 924 and the microphone 925 are connected to the audio codec 923.
  • the operation unit 932 is connected to the control unit 931.
  • the bus 933 mutually connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931.
  • the cellular phone 920 can transmit and receive audio signals, transmit and receive electronic mail or image data, capture an image, and record data in various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode. Do the action.
  • the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
  • the audio codec 923 converts an analog audio signal into audio data, and A / D converts and compresses the converted audio data. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
  • the communication unit 922 encodes and modulates audio data to generate a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
  • the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
  • the audio codec 923 decompresses and D / A converts audio data to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the control unit 931 generates character data constituting an electronic mail in accordance with an operation by the user via the operation unit 932. Further, the control unit 931 causes the display unit 930 to display characters. Further, the control unit 931 generates electronic mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated electronic mail data to the communication unit 922.
  • a communication unit 922 encodes and modulates electronic mail data to generate a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. The communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
  • the communication unit 922 demodulates and decodes the received signal to restore the e-mail data, and outputs the restored e-mail data to the control unit 931.
  • the control unit 931 causes the display unit 930 to display the content of the e-mail, and stores the e-mail data in the storage medium of the recording and reproduction unit 929.
  • the recording and reproducing unit 929 includes an arbitrary readable and writable storage medium.
  • the storage medium may be a built-in storage medium such as a RAM or a flash memory, or an externally mounted storage medium such as a hard disk, a magnetic disk, a magnetooptical disk, an optical disk, a USB memory, or a memory card. May be
  • the camera unit 926 captures an image of a subject to generate image data, and outputs the generated image data to the image processing unit 927.
  • the image processing unit 927 encodes the image data input from the camera unit 926, and stores the encoded stream in the storage medium of the recording and reproduction unit 929.
  • the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the communication unit 922 multiplexes the multiplexed stream.
  • Output to The communication unit 922 encodes and modulates the stream to generate a transmission signal.
  • the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
  • the transmission signal and the reception signal may include a coded bit stream.
  • the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
  • the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
  • the image processing unit 927 decodes the video stream to generate video data.
  • the video data is supplied to the display unit 930, and the display unit 930 displays a series of images.
  • the audio codec 923 decompresses and D / A converts the audio stream to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the image processing unit 927 has the functions of the image encoding device 10 and the image decoding device 60 according to the above-described embodiment. As a result, when encoding and decoding an image in the mobile phone 920, the degree of parallelism of the processing of the deblocking filter can be increased to speed up the processing.
  • FIG. 28 shows an example of a schematic configuration of a recording and reproducing device to which the embodiment described above is applied.
  • the recording / reproducing device 940 encodes, for example, audio data and video data of the received broadcast program, and records the encoded data on a recording medium.
  • the recording and reproduction device 940 may encode, for example, audio data and video data acquired from another device and record the encoded data on a recording medium.
  • the recording / reproducing device 940 reproduces the data recorded on the recording medium on the monitor and the speaker, for example, in accordance with the user's instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
  • the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. And 950.
  • the tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown) and demodulates the extracted signal. Then, the tuner 941 outputs the coded bit stream obtained by demodulation to the selector 946. That is, the tuner 941 has a role as a transmission means in the recording / reproducing device 940.
  • the external interface 942 is an interface for connecting the recording and reproducing device 940 to an external device or a network.
  • the external interface 942 may be, for example, an IEEE 1394 interface, a network interface, a USB interface, or a flash memory interface.
  • video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 has a role as a transmission unit in the recording / reproducing device 940.
  • the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the coded bit stream to the selector 946.
  • the HDD 944 records an encoded bit stream obtained by compressing content data such as video and audio, various programs, and other data in an internal hard disk. Also, the HDD 944 reads these data from the hard disk when reproducing video and audio.
  • the disk drive 945 records and reads data on the attached recording medium.
  • the recording medium mounted on the disk drive 945 may be, 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, etc. .
  • the selector 946 selects the coded bit stream input from the tuner 941 or the encoder 943 at the time of recording video and audio, and outputs the selected coded bit stream to the HDD 944 or the disk drive 945. Also, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 at the time of reproduction of video and audio.
  • the decoder 947 decodes the coded bit stream to generate video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. Also, the decoder 904 outputs the generated audio data to an external speaker.
  • the OSD 948 reproduces the video data input from the decoder 947 and displays the video.
  • the OSD 948 may superimpose an image of a GUI such as a menu, a button, or a cursor on the video to be displayed.
  • the control unit 949 includes a processor such as a CPU, and memories such as a RAM and a ROM.
  • the memory stores programs executed by the CPU, program data, and the like.
  • the program stored by the memory is read and executed by the CPU, for example, when the recording and reproducing device 940 is started.
  • the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from, for example, the user interface 950 by executing a program.
  • the user interface 950 is connected to the control unit 949.
  • the user interface 950 includes, for example, buttons and switches for the user to operate the recording and reproducing device 940, a receiver of a remote control signal, and the like.
  • the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
  • the encoder 943 has the function of the image coding apparatus 10 according to the embodiment described above.
  • the decoder 947 has the function of the image decoding device 60 according to the above-described embodiment.
  • FIG. 29 shows an example of a schematic configuration of an imaging device to which the embodiment described above is applied.
  • the imaging device 960 captures an object to generate an image, encodes image data, and records the image data in a recording medium.
  • the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972 is provided.
  • the optical block 961 is connected to the imaging unit 962.
  • the imaging unit 962 is connected to the signal processing unit 963.
  • the display unit 965 is connected to the image processing unit 964.
  • the user interface 971 is connected to the control unit 970.
  • the bus 972 mutually connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970.
  • the optical block 961 has a focus lens, an aperture mechanism, and the like.
  • the optical block 961 forms an optical image of a subject on the imaging surface of the imaging unit 962.
  • the imaging unit 962 includes an image sensor such as a CCD or a CMOS, and converts an optical image formed on an imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
  • the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
  • the signal processing unit 963 outputs the image data after camera signal processing to the image processing unit 964.
  • the image processing unit 964 encodes the image data input from the signal processing unit 963 to generate encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965.
  • the image processing unit 964 may output the image data input from the signal processing unit 963 to the display unit 965 to display an image. The image processing unit 964 may superimpose the display data acquired from the OSD 969 on the image to be output to the display unit 965.
  • the OSD 969 generates an image of a GUI such as a menu, a button, or a cursor, for example, and outputs the generated image to the image processing unit 964.
  • a GUI such as a menu, a button, or a cursor
  • the external interface 966 is configured as, for example, a USB input / output terminal.
  • the external interface 966 connects the imaging device 960 and the printer, for example, when printing an image.
  • a drive is connected to the external interface 966 as necessary.
  • removable media such as a magnetic disk or an optical disk may be attached to the drive, and a program read from the removable media may be installed in the imaging device 960.
  • the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
  • the recording medium mounted in the media drive 968 may be, for example, any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
  • the recording medium may be fixedly attached to the media drive 968, and a non-portable storage unit such as, for example, a built-in hard disk drive or a solid state drive (SSD) may be configured.
  • SSD solid state drive
  • the control unit 970 includes a processor such as a CPU, and memories such as a RAM and a ROM.
  • the memory stores programs executed by the CPU, program data, and the like.
  • the program stored by the memory is read and executed by the CPU, for example, when the imaging device 960 starts up.
  • the CPU controls the operation of the imaging device 960 according to an operation signal input from, for example, the user interface 971 by executing a program.
  • the user interface 971 is connected to the control unit 970.
  • the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
  • the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
  • the image processing unit 964 has the functions of the image encoding device 10 and the image decoding device 60 according to the above-described embodiment. As a result, when encoding and decoding an image in the imaging device 960, the degree of parallelism of processing of the deblocking filter can be increased to speed up the processing.
  • the filter strength of the deblocking filter applied to each boundary in the image decoded for each block is selected using the input pixel values to the deblocking filter and the selected filter strength
  • the lines orthogonal to the boundary are filtered at. Therefore, it becomes possible to select the filter strength for one boundary without depending on the result of the filtering process for the other boundary.
  • further parallelization of processing upon application of the deblocking filter is realized. As a result, it is possible to alleviate the delay or the decrease in data rate due to the large amount of processing of the deblocking filter, and to speed up the processing.
  • the filter strengths of each of the lines orthogonal to the boundaries are selected by evaluating the intensity selection parameters calculated for the base line of the central portion of the boundaries. That is, it is not necessary to calculate the intensity selection parameters for all lines for the selection of filter intensities. Therefore, it is possible to select the filter strength with a low processing cost and to easily implement the processing.
  • the values of the intensity selection parameters for lines other than the basic line are estimated using the intensity selection parameters calculated for the basic line at the central portion of each boundary. Therefore, it is possible to improve the selection accuracy of the filter strength for lines other than the basic line.
  • the present disclosure may be applied to the case where the filtering process for the horizontal boundary is performed first.
  • the above-mentioned effects of the technique according to the present invention can be equally enjoyed.
  • the size of the processing unit of the deblocking filter or the size of the macroblock is not limited to the example described herein, and may be another size.
  • the method of transmitting information used for parallelization of the deblocking filter process from the encoding side to the decoding side is not limited to the method of multiplexing the information in the header of the encoded stream.
  • the information may be transmitted or recorded as separate data associated with the coded bit stream without being multiplexed into the coded bit stream.
  • the term “associate” allows an image (a slice or a block, which may be a part of an image) included in a bitstream to be linked at the time of decoding with information corresponding to the image. Means That is, the information may be transmitted on a different transmission path from the image (or bit stream).
  • the information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream).
  • the information and the image (or bit stream) may be associated with each other in any unit such as, for example, a plurality of frames, one frame, or a part in a frame.
  • a decoding unit that decodes the encoded stream to generate an image
  • a selection unit that selects the filter strength of the deblock filter applied to the adjacent block adjacent to the block boundary in the image generated by the decoding unit using an input pixel value to the deblock filter
  • a filtering unit that applies a deblocking filter having the filter strength selected by the selection unit to the adjacent block
  • An image processing apparatus comprising: (2) The image processing apparatus according to (1), wherein the selection unit selects the filter strength using pixel values of pixels belonging to a plurality of lines orthogonal to the block boundary.
  • the block size of each of the adjacent blocks is 8 ⁇ 8 pixels
  • the selection unit selects the filter strength by evaluating a parameter depending on the strength of block distortion, which is calculated for at least one of the two lines in the central portion.
  • the image processing apparatus according to (7).
  • the image processing apparatus according to (8), wherein the selection unit selects a strong filter for each line when both of the parameters calculated for the two lines indicate that block distortion is strong.
  • the selection unit may select a strong filter for each line when the parameter calculated for a line close to each line among the two lines indicates that block distortion is strong.
  • Image processing device (11) The image processing apparatus according to (8), wherein the selection unit changes a pattern of evaluation of the parameter according to a line position.
  • the image processing apparatus changes a pattern of evaluation of the parameter according to a BS (Boundary Strength) value of the block boundary.
  • the selection unit is Calculating a parameter depending on the magnitude of block distortion for a basic line which is a plurality of lines orthogonal to the block boundary; Estimating the parameters for an estimated line which is a line other than the base line using the calculated parameters; Selecting the filter strength by evaluating the estimated parameters; The image processing apparatus according to (3).
  • the block size of each block is 8 ⁇ 8 pixels, The selection unit estimates the parameter for each of the estimated lines by extrapolating the value of the parameter calculated for the base line.
  • the image processing apparatus 13).
  • a determination unit that determines whether the deblock filter is to be applied to the block boundary using the input pixel value to the deblock filter;
  • the filtering unit applies the deblocking filter to the block boundary only when the determining unit determines that the deblocking filter is to be applied.
  • the image processing apparatus according to any one of the above (1) to (14).
  • the determination unit performs the determination using pixel values of pixels belonging to a plurality of lines orthogonal to the block boundary, The condition of the determination by the determination unit is a condition that the deblocking filter is more difficult to apply compared to the condition in the case where the pixel value of the pixel belonging to the line in the non-central portion of the block boundary is used.
  • the image processing apparatus according to (15).
  • the selection of the filter strength for the first boundary by the selection unit is performed without waiting for the filtering by the filtering unit for a second boundary orthogonal to the first boundary.
  • Image processing device (18) Decoding the encoded stream to generate an image; Selecting a filter strength of a deblock filter applied to an adjacent block adjacent to a block boundary in the generated image using an input pixel value to the deblock filter; Applying a deblocking filter having the selected filter strength to the adjacent block; Image processing method including: (19) Selection of the filter strength of the deblock filter applied to the adjacent block adjacent to the block boundary in the locally decoded image when encoding the image to be encoded using the input pixel value to the deblock filter Department, A filtering unit that applies a deblocking filter having the filter strength selected by the selection unit to the adjacent block; An encoding unit that encodes the image to be encoded using the image filtered by the filtering unit; An image processing apparatus comprising: (20) Selecting a filter strength of a deblocking filter applied to an adjacent block adjacent to a

Landscapes

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

Abstract

【課題】デブロックフィルタの適用に際しての処理のさらなる並列化を可能とすること。 【解決手段】符号化ストリームを復号して画像を生成する復号部と、前記復号部により生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、を備える画像処理装置を提供する。

Description

画像処理装置及び画像処理方法
 本開示は、画像処理装置及び画像処理方法に関する。
 画像符号化方式の標準仕様の1つであるH.264/AVCでは、画像の符号化の際に生じるブロック歪みに起因する画質の劣化を抑制するために、例えば4×4画素のブロックごとにブロック境界にデブロックフィルタが適用される。このデブロックフィルタのために要する処理量は多大であり、例えば、画像の復号の際の全処理量の50%を占めることもあると言われている。
 次世代の画像符号化方式であるHEVC(High Efficiency Video Coding)の標準化作業では、JCTVC-A119(下記非特許文献1参照)において、8×8画素以上のサイズのブロックごとにデブロックフィルタを適用することが提案されている。JCTVC-A119において提案された手法では、デブロックフィルタを適用する最小単位のブロックサイズが拡大されることで、1つのマクロブロック内で同一方向の複数のブロック境界についてのフィルタリング処理を並列的に実行することが可能となる。
K.Ugur (Nokia), K.R.Andersson (LM Ericsson), A.Fuldseth (Tandberg Telecom), "JCTVC-A119:Video coding technology proposal by Tandberg, Nokia, and Ericsson", Documents of the first meeting of the Joint Collaborative Team on Video Coding (JCT-VC), Dresden, Germany, 15-23 April, 2010.
 しかしながら、JCTVC-A119において提案された手法を採用したとしても、垂直方向のブロック境界についての処理と水平方向のブロック境界についての処理との間の依存関係は残される。よって、1つのマクロブロック(あるいは1つの符号化単位)内で異なる方向のブロック境界についての処理を並列化すること、及びマクロブロック間で処理を並列化することは、依然として困難である。従って、上記手法でも、デブロックフィルタの適用に際しての多大な処理量を原因とする遅延又はデータレートの低下などの課題が十分に解決されるとは言い難い。
 そこで、本開示に係る技術は、デブロックフィルタの適用に際しての処理のさらなる並列化を可能とする、画像処理装置及び画像処理方法を提供しようとするものである。
 本開示によれば、符号化ストリームを復号して画像を生成する復号部と、前記復号部により生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、を備える画像処理装置が提供される。
 上記画像処理装置は、典型的には、画像を復号する画像復号装置として実現され得る。
 また、本開示によれば、符号化ストリームを復号して画像を生成することと、生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択することと、選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用することと、を含む画像処理方法が提供される。
 また、本開示によれば、符号化対象画像を符号化する際にローカルデコードされた画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、前記フィルタリング部によりフィルタリングされた画像を用いて、前記符号化対象画像を符号化する符号化部と、を備える画像処理装置が提供される。
 上記画像処理装置は、典型的には、画像を符号化する画像符号化装置として実現され得る。
 また、本開示によれば、符号化対象画像を符号化する際にローカルデコードされた画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択することと、選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用することと、前記フィルタ強度でフィルタリングされた画像を用いて、前記符号化対象画像を符号化することと、を含む画像処理方法が提供される。
 本開示に係る画像処理装置及び画像処理方法によれば、デブロックフィルタの適用に際しての処理のさらなる並列化が可能となる。
一実施形態に係る画像符号化装置の構成の一例を示すブロック図である。 一実施形態に係る画像復号装置の構成の一例を示すブロック図である。 ブロック境界を挟んで隣接する画素の一例を示す説明図である。 既存の手法におけるフィルタリング要否判定処理での参照画素について説明するための説明図である。 既存の手法におけるフィルタ強度選択処理での参照画素について説明するための説明図である。 フィルタリング処理により更新される画素について説明するための説明図である。 実施形態の説明のためのエッジの呼び方について説明するための説明図である。 既存の手法における並列処理について説明するための説明図である。 既存の手法における処理間の依存関係について説明するための第1の説明図である。 既存の手法における処理間の依存関係について説明するための第2の説明図である。 既存の手法における処理の順序の一例について説明するための説明図である。 第1の実施例に係るフィルタ強度選択処理における参照画素について説明するための第1の説明図である。 第1の実施例に係るフィルタ強度選択処理における参照画素について説明するための第2の説明図である。 第1の実施例に係るフィルタリング要否判定処理における参照画素について説明するための第1の説明図である。 第1の実施例に係るフィルタリング要否判定処理における参照画素について説明するための第2の説明図である。 第1の実施例に係るデブロックフィルタの詳細な構成の一例を示すブロック図である。 図16に示した境界判定部の詳細な構成の一例を示すブロック図である。 図16に示した強度選択部の詳細な構成の一例を示すブロック図である。 第1の実施例に係るデブロックフィルタによる処理の流れの第1の例を示すフローチャートである。 図19に示したフィルタ強度選択処理の詳細な流れの一例を示すフローチャートである。 第1の実施例に係るデブロックフィルタによる処理の流れの第2の例を示すフローチャートである。 第1の実施例に係るデブロックフィルタによる処理の流れの第3の例を示すフローチャートである。 第2の実施例に係る強度選択部の詳細な構成の一例を示すブロック図である。 強度選択用パラメータの推定について説明するための説明図である。 第2の実施例に係るフィルタ強度選択処理の詳細な流れの一例を示すフローチャートである。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
 また、以下の順序で説明を行う。
  1.装置の概要
   1-1.画像符号化装置
   1-2.画像復号装置
  2.既存の手法の説明
   2-1.デブロックフィルタの基本的な構成
   2-2.既存の手法における処理間の依存関係
  3.第1の実施例
   3-1.デブロックフィルタの構成例
   3-2.処理の流れ
  4.第2の実施例
   4-1.デブロックフィルタの構成例
   4-2.処理の流れ
  5.応用例
  6.まとめ
 <1.装置の概要>
 まず、図1及び図2を用いて、本明細書で開示する技術を適用可能な一例としての装置の概要を説明する。本明細書で開示する技術は、例えば、画像符号化装置及び画像復号装置に適用可能である。
  [1-1.画像符号化装置]
 図1は、一実施形態に係る画像符号化装置10の構成の一例を示すブロック図である。図1を参照すると、画像符号化装置10は、A/D(Analogue to Digital)変換部11、並べ替えバッファ12、減算部13、直交変換部14、量子化部15、可逆符号化部16、蓄積バッファ17、レート制御部18、逆量子化部21、逆直交変換部22、加算部23、デブロックフィルタ24a、フレームメモリ25、セレクタ26、イントラ予測部30、動き探索部40、及びモード選択部50を備える。
 A/D変換部11には、A/D変換部11は、アナログ形式で入力される画像信号をデジタル形式の画像データに変換し、一連のデジタル画像データを並べ替えバッファ12へ出力する。
 並べ替えバッファ12に入力される画像データは、符号化対象画像の画像データである。並べ替えバッファ12は、A/D変換部11から入力される一連の画像データに含まれる画像を並べ替える。並べ替えバッファ12は、符号化処理に係るGOP(Group of Pictures)構造に応じて画像を並べ替えた後、並べ替え後の画像データを減算部13、イントラ予測部30及び動き探索部40へ出力する。
 減算部13には、並べ替えバッファ12から入力される画像データ、及び後に説明するモード選択部50により選択される予測画像データが供給される。減算部13は、並べ替えバッファ12から入力される画像データとモード選択部50から入力される予測画像データとの差分である予測誤差データを算出し、算出した予測誤差データを直交変換部14へ出力する。
 直交変換部14は、減算部13から入力される予測誤差データについて直交変換を行う。直交変換部14により実行される直交変換は、例えば、離散コサイン変換(Discrete Cosine Transform:DCT)又はカルーネン・レーベ変換などであってよい。直交変換部14は、直交変換処理により取得される変換係数データを量子化部15へ出力する。
 量子化部15には、直交変換部14から入力される変換係数データ、及び後に説明するレート制御部18からのレート制御信号が供給される。量子化部15は、変換係数データを量子化し、量子化後の変換係数データ(以下、量子化データという)を可逆符号化部16及び逆量子化部21へ出力する。また、量子化部15は、レート制御部18からのレート制御信号に基づいて量子化パラメータ(量子化スケール)を切替えることにより、可逆符号化部16に入力される量子化データのビットレートを変化させる。
 可逆符号化部16には、量子化部15から入力される量子化データ、及び、後に説明するイントラ予測部30又は動き探索部40により生成されモード選択部50により選択されるイントラ予測又はインター予測に関する情報が供給される。イントラ予測に関する情報は、例えば、ブロックごとの最適なイントラ予測モードを示す予測モード情報を含み得る。また、インター予測に関する情報は、例えば、ブロックごとの動きベクトルの予測のための予測モード情報、差分動きベクトル情報、及び参照画像情報などを含み得る。
 可逆符号化部16は、量子化データについて可逆符号化処理を行うことにより、符号化ストリームを生成する。可逆符号化部16による可逆符号化は、例えば、可変長符号化、又は算術符号化などであってよい。また、可逆符号化部16は、上述したイントラ予測に関する情報又はインター予測に関する情報を、符号化ストリームのヘッダ(例えばブロックヘッダ又はスライスヘッダなど)内に多重化する。そして、可逆符号化部16は、生成した符号化ストリームを蓄積バッファ17へ出力する。
 蓄積バッファ17は、可逆符号化部16から入力される符号化ストリームを一時的に蓄積する。そして、蓄積バッファ17は、蓄積した符号化ストリームを、伝送路(又は画像符号化装置10からの出力線)の帯域に応じたレートで出力する。
 レート制御部18は、蓄積バッファ17の空き容量を監視する。そして、レート制御部18は、蓄積バッファ17の空き容量に応じてレート制御信号を生成し、生成したレート制御信号を量子化部15へ出力する。例えば、レート制御部18は、蓄積バッファ17の空き容量が少ない時には、量子化データのビットレートを低下させるためのレート制御信号を生成する。また、例えば、レート制御部18は、蓄積バッファ17の空き容量が十分大きい時には、量子化データのビットレートを高めるためのレート制御信号を生成する。
 逆量子化部21、逆直交変換部22及び加算部23による処理は、いわゆる符号化の際のローカルデコード処理を構成する。画像符号化装置10による符号化対象画像の符号化は、以下に説明するように、ローカルデコード処理によって復号された画像を用いて行われる。
 逆量子化部21は、量子化部15から入力される量子化データについて逆量子化処理を行う。そして、逆量子化部21は、逆量子化処理により取得される変換係数データを、逆直交変換部22へ出力する。
 逆直交変換部22は、逆量子化部21から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。そして、逆直交変換部22は、復元した予測誤差データを加算部23へ出力する。
 加算部23は、逆直交変換部22から入力される復元された予測誤差データとモード選択部50から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部23は、生成した復号画像データをデブロックフィルタ24a及びフレームメモリ25へ出力する。
 デブロックフィルタ24aは、画像の符号化の際に生じるブロック歪みを減少させるためのフィルタリング処理を行う。デブロックフィルタ24aによりフィルタリングされた画像は、画像符号化装置10における符号化対象画像の符号化のために使用される。例えば、デブロックフィルタ24aは、加算部23から入力される復号画像データについてブロックの境界ごとにフィルタリングの要否を判定し、フィルタを適用すべきであると判定した境界にデブロックフィルタを適用する。デブロックフィルタ24aには、加算部23からの復号画像データに加えて、フィルタリングの要否の判定のために使用される情報(例えば、モード情報、変換係数情報及び動きベクトル情報)も入力される。そして、デブロックフィルタ24aは、ブロック歪みの除去されたフィルタリング後の復号画像データをフレームメモリ25へ出力する。なお、デブロックフィルタ24aによる処理について、後に詳細に説明する。
 フレームメモリ25は、加算部23から入力される復号画像データ、及びデブロックフィルタ24aから入力されるフィルタリング後の復号画像データを記憶する。
 セレクタ26は、イントラ予測のために使用されるフィルタリング前の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとしてイントラ予測部30に供給する。また、セレクタ26は、インター予測のために使用されるフィルタリング後の復号画像データをフレームメモリ25から読み出し、読み出した復号画像データを参照画像データとして動き探索部40に供給する。
 イントラ予測部30は、並べ替えバッファ12から入力される符号化対象の画像データ、及びセレクタ26を介して供給される復号画像データに基づいて、各イントラ予測モードのイントラ予測処理を行う。例えば、イントラ予測部30は、各イントラ予測モードによる予測結果を所定のコスト関数を用いて評価する。そして、イントラ予測部30は、コスト関数値が最小となるイントラ予測モード、即ち圧縮率が最も高くなるイントラ予測モードを、最適なイントラ予測モードとして選択する。さらに、イントラ予測部30は、当該最適なイントラ予測モードを示す予測モード情報を含むイントラ予測に関する情報、予測画像データ、及びコスト関数値を、モード選択部50へ出力する。
 動き探索部40は、並べ替えバッファ12から入力される符号化対象の画像データ、及びセレクタ26を介して供給される復号画像データに基づいて、インター予測処理(フレーム間予測処理)を行う。例えば、動き探索部40は、各予測モードによる予測結果を所定のコスト関数を用いて評価する。次に、動き探索部40は、コスト関数値が最小となる予測モード、即ち圧縮率が最も高くなる予測モードを、最適な予測モードとして選択する。また、動き探索部40は、当該最適な予測モードに従って予測画像データを生成する。そして、動き探索部40は、選択した最適な予測モードを示す予測モード情報を含むインター予測に関する情報、予測画像データ、及びコスト関数値を、モード選択部50へ出力する。
 モード選択部50は、イントラ予測部30から入力されるイントラ予測に関するコスト関数値と動き探索部40から入力されるインター予測に関するコスト関数値とを比較する。そして、モード選択部50は、イントラ予測及びインター予測のうちコスト関数値がより少ない予測手法を選択する。モード選択部50は、イントラ予測を選択した場合には、イントラ予測に関する情報を可逆符号化部16へ出力すると共に、予測画像データを減算部13及び加算部23へ出力する。また、モード選択部50は、インター予測を選択した場合には、インター予測に関する上述した情報を可逆符号化部16へ出力すると共に、予測画像データを減算部13及び加算部23へ出力する。
  [1-2.画像復号装置]
 図2は、一実施形態に係る画像復号装置60の構成の一例を示すブロック図である。図2を参照すると、画像復号装置60は、蓄積バッファ61、可逆復号部62、逆量子化部63、逆直交変換部64、加算部65、デブロックフィルタ24b、並べ替えバッファ67、D/A(Digital to Analogue)変換部68、フレームメモリ69、セレクタ70及び71、イントラ予測部80、並びに動き補償部90を備える。
 蓄積バッファ61は、伝送路を介して入力される符号化ストリームを一時的に蓄積する。
 可逆復号部62は、蓄積バッファ61から入力される符号化ストリームを、符号化の際に使用された符号化方式に従って復号する。また、可逆復号部62は、符号化ストリームのヘッダ領域に多重化されている情報を復号する。符号化ストリームのヘッダ領域に多重化されている情報とは、例えば、ブロックヘッダ内のイントラ予測に関する情報及びインター予測に関する情報を含み得る。可逆復号部62は、イントラ予測に関する情報をイントラ予測部80へ出力する。また、可逆復号部62は、インター予測に関する情報を動き補償部90へ出力する。
 逆量子化部63は、可逆復号部62による復号後の量子化データを逆量子化する。逆直交変換部64は、符号化の際に使用された直交変換方式に従い、逆量子化部63から入力される変換係数データについて逆直交変換を行うことにより、予測誤差データを生成する。そして、逆直交変換部64は、生成した予測誤差データを加算部65へ出力する。
 加算部65は、逆直交変換部64から入力される予測誤差データと、セレクタ71から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部65は、生成した復号画像データをデブロックフィルタ24b及びフレームメモリ69へ出力する。
 デブロックフィルタ24bは、復号された画像に現れるブロック歪みを減少させるためのフィルタリング処理を行う。デブロックフィルタ24bは、例えば、加算部65から入力される復号画像データについてブロックの境界ごとにフィルタリングの要否を判定し、フィルタを適用すべきであると判定した境界にデブロックフィルタを適用する。デブロックフィルタ24bには、加算部65からの復号画像データに加えて、フィルタリングの要否の判定のために使用される情報も入力される。そして、デブロックフィルタ24bは、ブロック歪みの除去されたフィルタリング後の復号画像データを並べ替えバッファ67及びフレームメモリ69へ出力する。なお、デブロックフィルタ24bによる処理について、後に詳細に説明する。
 並べ替えバッファ67は、デブロックフィルタ24bから入力される画像を並べ替えることにより、時系列の一連の画像データを生成する。そして、並べ替えバッファ67は、生成した画像データをD/A変換部68へ出力する。
 D/A変換部68は、並べ替えバッファ67から入力されるデジタル形式の画像データをアナログ形式の画像信号に変換する。そして、D/A変換部68は、例えば、画像復号装置60と接続されるディスプレイ(図示せず)にアナログ画像信号を出力することにより、画像を表示させる。
 フレームメモリ69は、加算部65から入力されるフィルタリング前の復号画像データ、及びデブロックフィルタ24bから入力されるフィルタリング後の復号画像データを記憶する。
 セレクタ70は、可逆復号部62により取得されるモード情報に応じて、画像内のブロックごとに、フレームメモリ69からの画像データの出力先をイントラ予測部80と動き補償部90との間で切り替える。例えば、セレクタ70は、イントラ予測モードが指定された場合には、フレームメモリ69から供給されるフィルタリング前の復号画像データを参照画像データとしてイントラ予測部80へ出力する。また、セレクタ70は、インター予測モードが指定された場合には、フレームメモリ69から供給されるフィルタリング後の復号画像データを参照画像データとして動き補償部90へ出力する。
 セレクタ71は、可逆復号部62により取得されるモード情報に応じて、画像内のブロックごとに、加算部65へ供給すべき予測画像データの出力元をイントラ予測部80と動き補償部90との間で切り替える。例えば、セレクタ71は、イントラ予測モードが指定された場合には、イントラ予測部80から出力される予測画像データを加算部65へ供給する。セレクタ71は、インター予測モードが指定された場合には、動き補償部90から出力される予測画像データを加算部65へ供給する。
 イントラ予測部80は、可逆復号部62から入力されるイントラ予測に関する情報とフレームメモリ69からの参照画像データとに基づいて画素値の画面内予測を行い、予測画像データを生成する。そして、イントラ予測部80は、生成した予測画像データをセレクタ71へ出力する。
 動き補償部90は、可逆復号部62から入力されるインター予測に関する情報とフレームメモリ69からの参照画像データとに基づいて動き補償処理を行い、予測画像データを生成する。そして、動き補償部90は、生成した予測画像データをセレクタ71へ出力する。
 <2.既存の手法の説明>
  [2-1.デブロックフィルタの基本的な構成]
 一般的に、H.264/AVC又はHEVCなどの既存の画像符号化方式におけるデブロックフィルタによる処理は、フィルタリング要否判定処理、フィルタ強度選択処理及びフィルタリング処理という3種類の処理を含む。以下、HEVCを例にとって、これら3つの処理について説明する。
   (1)フィルタリング要否判定処理
 フィルタリング要否判定処理は、入力画像内のブロック境界ごとにデブロックフィルタを適用すべきか否かを判定する処理である。ブロック境界は、左右に隣接するブロック間の垂直境界と、上下に隣接するブロック間の水平境界とを含む。JCTVC-A119では、8×8画素のブロックサイズが最小の処理単位である。例えば、16×16画素のマクロブロック内には4つの8×8画素のブロックが存在し、ブロックごとに1つの(左の)垂直境界及び1つの(上の)水平境界、即ち合計で4+4=8個の境界が判定の対象となる。なお、本明細書において、マクロブロックとの用語は、HEVCの文脈における符号化単位(CU:Coding Unit)をも含むものとする。
 図3は、ブロック境界を挟んで隣接する2つのブロックBa及びBb内の画素の一例を示す説明図である。ここでは垂直境界を例にとって説明するが、当然ながら、ここで説明される事項は水平境界にも同等に適用可能である。図3の例において、ブロックBa内の画素は、pijという記号で示されている。iは列のインデックス、jは行のインデックスである。列のインデックスiは、垂直境界に近い列から順に(右から左へ)0,1,2,3と付番されている。行のインデックスjは、上から下へ0,1,2,…,7と付番されている。なお、ブロックBaの左半分は図中で省略されている。一方、ブロックBb内の画素は、qkjという記号で示されている。kは列のインデックス、jは行のインデックスである。列のインデックスkは、垂直境界に近い列から順に(左から右へ)0,1,2,3と付番されている。なお、ブロックBbの右半分もまた図中で省略されている。
 図3に示したブロックBa及びBbの間の垂直境界について、デブロックフィルタを適用すべきか否かは、次のような条件に従って判定され得る:
 ・輝度成分(Luma)の判定条件・・・条件A及び条件Bがいずれも真なら適用
  -条件A:
   (A1)ブロックBa若しくはBbがイントラ予測モードである;
   (A2)ブロックBa若しくはBbが非ゼロの直交変換係数を有する;又は
   (A3)|MVAx-MVBx|≧4若しくは|MVAy-MVBy|≧4
  -条件B:
   |p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05|<β
 なお、条件A3に関し、Qpel(1/4画素)精度のブロックBaの動きベクトルを(MVAx,MVAy)、ブロックBbの動きベクトルを(MVBx,MVBy)とする。また、条件Bにおけるβは、エッジ判定閾値である。βの初期値は量子化パラメータに応じて与えられる。また、βの値は、スライスヘッダ内のパラメータでユーザにより指定可能である。
 ・色差成分(Chroma)の判定条件・・・条件A1が真なら適用
  -条件A1:ブロックBa又はBbがイントラ予測モードである
 即ち、図4において点線枠L2及びL5で示しているように、一般的な境界についてのフィルタリング要否判定処理(特に、輝度成分の判定条件Bの判定)では、各ブロックの2番目及び5番目のライン(最も上の行を0番目とする)の画素が参照される。なお、対象の境界が垂直境界である場合には、ラインとは、当該境界と直交する行に相当する。対象の境界が水平境界である場合には、ラインとは、当該境界と直交する列に相当する。そして、上述した判定条件に従ってデブロックフィルタを適用すべきと判定された境界について、次に説明するフィルタ強度選択処理及びフィルタリング処理が行われる。
   (2)フィルタ強度選択処理
 ある境界についてデブロックフィルタを適用すべきと判定されると、垂直境界については当該境界の左右の画素、水平境界については当該境界の上下の画素に、フィルタリング処理が行われる。輝度成分については、画素値に応じてフィルタ強度が強(strong)フィルタと弱(weak)フィルタとの間で切り替えられ得る。
  -強度選択・・・1ラインごとにフィルタ強度を選択。以下の条件C1~C3が全て満たされる場合には強フィルタ、いずれか1つでも満たされない場合には弱フィルタが選択される:
   (C1)d<(β>>2)
   (C2)(|p3j-p0j|+|q0j-q3j|)<(β>>3)
   (C3)|p0j-q0j|<((5t+1)>>1)
ここで、jは、ラインのインデックスである。また、d=|p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05|である。
 即ち、図5において点線枠C4~C7及びC0~C3で示しているように、一般的なフィルタ強度選択処理では、各ブロックの0~7番目の全てのラインの画素値が参照される。
   (3)フィルタリング処理
 選択されたフィルタ強度を有するデブロックフィルタのフィルタリング処理は、次のような計算式により表現され得る。
 ・輝度成分のフィルタリング
  -弱フィルタリング:
   Δ=Clip(-t,t,(13(q0j-p0j)+4(q1j-p1j)-5(q2j-p2j)+16)>>5))
   p0j=Clip0-255(p0j+Δ)
   q0j=Clip0-255(q0j-Δ)
   p1j=Clip0-255(p1j+Δ/2)
   q1j=Clip0-255(q1j-Δ/2)
  -強フィルタリング:
   p0j=Clip0-255((p2j+2p1j+2p0j+2q0j+q1j+4)>>3)
   q0j=Clip0-255((p1j+2p0j+2q0j+2q1j+q2j+4)>>3)
   p1j=Clip0-255((p2j+p1j+p0j+q0j+2)>>2)
   q1j=Clip0-255((p0j+q0j+q1j+q2j+2)>>2)
   p2j=Clip0-255((2p3j+3p2j+p1j+p0j+q0j+4)>>3)
   q2j=Clip0-255((p0j+q0j+q1j+3q2j+2q3j+4)>>3)
 なお、Clip(a,b,c)は値cをa≦c≦bの範囲でクリップする処理、Clip0-255(c)は値cを0≦c≦255の範囲でクリップする処理をそれぞれ表す。
 ・色差成分のフィルタリング:
   Δ=Clip(-t,t,((((q0j-p0j)<<2)+p1j-q1j+4)>>3))
   p0j=Clip0-255(p0j+Δ)
   q0j=Clip0-255(q0j-Δ)
 即ち、図6において点線枠C5~C7及びC0~C2で示しているように、一般的なフィルタリング処理(特に、輝度成分の強フィルタリング)では、各ブロックの0~2番目及び5~7番目のラインの画素値が更新される。
  [2-2.既存の手法における処理間の依存関係]
 ここで、説明のために、図7に示したように、16×16画素のサイズを有するマクロブロックMBx(MB0、MB1…)の左上の垂直境界をVx,0、中央上の垂直境界をVx,1、左下の垂直境界をVx,2、中央下の垂直境界をVx,3、左上の水平境界をHx,0、右上の水平境界をHx,1、左中央の水平境界をHx,2、右中央の水平境界をHx,3、と表すものとする。また、例えば境界Zについてのフィルタリング要否判定処理をJ、フィルタ強度選択処理をS、フィルタリング処理をFなどと表すものとする。
 上述した既存の手法では、1つのマクロブロック内で同一方向の複数の境界についての処理の間に依存関係が存在しない。そのため、例えば1つのマクロブロック内で複数の垂直境界についての強度選択処理及びフィルタリング処理を並列的に実行することが可能であり、複数の水平境界についての強度選択処理及びフィルタリング処理を並列的に実行することも可能である。例えば、図8を参照すると、マクロブロックMB0内で、垂直境界V0,0についてのフィルタ強度選択処理SV0,0が、他の垂直境界についてのフィルタリング処理FV0,1、FV0,2及びFV0,3により更新される画素を参照しておらず、これらフィルタリング処理に依存しないことが分かる。同様に、垂直境界V0,1についてのフィルタ強度選択処理SV0,1は、他の垂直境界についてのフィルタリング処理FV0,0、FV0,2及びFV0,3により更新される画素を参照しない。垂直境界V0,2についてのフィルタ強度選択処理SV0,2は、他の垂直境界についてのフィルタリング処理FV0,0、FV0,1及びFV0,3により更新される画素を参照しない。垂直境界V0,3についてのフィルタ強度選択処理SV0,3は、他の垂直境界についてのフィルタリング処理FV0,0、FV0,1及びFV0,2により更新される画素を参照しない。
 しかし、上述した既存の手法では、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング要否判定処理及びフィルタ強度選択処理との間の依存関係は残される。また、水平境界についてのフィルタリング処理と垂直境界についてのフィルタリング要否判定処理及びフィルタ強度選択処理との間の依存関係も残される。従って、例えば垂直境界を水平境界よりも先に処理する場合、あるマクロブロック内での水平境界についての処理は、垂直境界についての処理の終了を待って実行されることになる。一例として、図9を参照すると、マクロブロックMB0内で、フィルタリング処理FV0,0及びFV0,1の結果にフィルタリング要否判定処理SH0,0が依存し、フィルタリング処理FV0,1の結果にフィルタ強度選択処理SH0,1が依存することが示されている。また、別の例として、図10を参照すると、マクロブロックMB0内で、フィルタリング処理FV0,0及びFV0,1の結果にフィルタリング要否判定処理JH0,0が依存し、フィルタリング処理FV0,1の結果にフィルタリング要否判定処理JH0,1が依存することが示されている。
 既存の手法は、このような処理間の依存関係を有しているため、例えばJCTVC-A119において提案された手法を採用したとしても、非常に限られた範囲でしかデブロックフィルタの処理の並列化を達成することができない。
 図11は、既存の手法におけるデブロックフィルタの処理の順序の一例について説明するための説明図である。ここでは、一例として、32×32画素のサイズを有する画像がデブロックフィルタに入力されるものとする。当該入力画像は、それぞれ16×16画素のサイズを有する4つのマクロブロックMB0~MB3を含む。
 図11を参照すると、並列的に実行され得る処理が各点線枠内にそれぞれ示されている。例えば、第1ステップでは、マクロブロックMB0の4つの垂直境界についてのフィルタリング要否判定処理JV0,0、JV0,1、JV0,2及びJV0,3が並列的に実行される。次に、第2ステップでは、マクロブロックMB0の4つの垂直境界についてのフィルタ強度選択処理SV0,0、SV0,1、SV0,2及びSV0,3が並列的に実行される。次に、第3ステップでは、マクロブロックMB0の4つの垂直境界についてのフィルタリング処理FV0,0、FV0,1、FV0,2及びFV0,3が並列的に実行される。次に、第3ステップが終了した後、第4ステップにおいて、マクロブロックMB0の4つの水平境界についてのフィルタリング要否判定処理JH0,0、JH0,1、JH0,2及びJH0,3が並列的に実行される。次に、第5ステップでは、マクロブロックMB0の4つの水平境界についてのフィルタ強度選択処理SH0,0、SH0,1、SH0,2及びSH0,3が並列的に実行される。次に、第6ステップでは、マクロブロックMB0の4つの水平境界についてのフィルタリング処理FH0,0、FH0,1、FH0,2及びFH0,3が並列的に実行される。次に、第6ステップが終了した後、マクロブロックMB1についての処理(第7ステップ~第12ステップ)が順次行われる。次に、マクロブロックMB1についての処理が終了した後、マクロブロックMB2についての処理(第13ステップ~第18ステップ)が順次行われる。次に、マクロブロックMB2についての処理が終了した後、マクロブロックMB3についての処理(第19ステップ~第24ステップ)が順次行われる。
 このような限られた範囲での処理の並列化では、デブロックフィルタの適用に際しての多大な処理量を原因とする遅延又はデータレートの低下などの課題が十分に解決されるとは言い難い。そこで、以下に説明するデブロックフィルタの2つの実施例により、デブロックフィルタの適用に際しての処理のさらなる並列化を実現する。
 <3.第1の実施例>
  [3-1.デブロックフィルタの構成例]
 本節では、図1に示した画像符号化装置10のデブロックフィルタ24a及び図2に示した画像復号装置60のデブロックフィルタ24bの第1の実施例に係る構成の一例を説明する。なお、デブロックフィルタ24a及びデブロックフィルタ24bの構成は、共通であってよい。従って、これ以降の説明では、特に両者を区別する必要が無い場合には、デブロックフィルタ24a及びデブロックフィルタ24bをデブロックフィルタ24と総称する。
  (1)新たな処理間の依存関係
 本実施例においても、デブロックフィルタ24による処理は、上述したフィルタリング要否判定処理、フィルタ強度選択処理及びフィルタリング処理という3種類の処理を含む。但し、デブロックフィルタ24は、既存の手法とは異なる参照画素の画素値に基づいて、フィルタ強度選択処理を行う。より具体的には、デブロックフィルタ24は、ある境界(ある境界と直交する各ライン)に適用されるデブロックフィルタのフィルタ強度を、当該境界と直交する他の境界についてのフィルタリング処理によって更新されないラインに属する画素の画素値に基づいて選択する。ここでの更新されないラインとは、典型的には、当該境界の中央部分のラインである。図5又は図9などから理解されるように、各ブロックのブロックサイズが8×8画素である場合には、各境界の中央部分の3番目及び4番目(上端又は左端のラインを0番目とする)の2つのラインの画素値は、当該境界と直交する境界についてのフィルタリング処理において更新されない。従って、各ラインに適用されるデブロックフィルタのフィルタ強度は、デブロックフィルタへの入力画素値を用いて選択されることになる。
 図12及び図13は、デブロックフィルタ24によるフィルタ強度選択処理における参照画素について説明するための説明図である。図12を参照すると、16×16画素のサイズを有するマクロブロックMB0が示されている。デブロックフィルタ24は、マクロブロックMB0の垂直境界V0,0と直交する8つのラインについてのフィルタ強度を、垂直境界V0,0と直交する3番目のラインR3及び4番目のラインR4の少なくとも1つに属する画素を参照画素として用いて選択する(SV0,0)。ラインR3及びR4は、水平境界H0,0についてのフィルタリング処理によっても、水平境界H0,2についてのフィルタリング処理によっても更新されないラインである。同様に、デブロックフィルタ24は、垂直境界V0,2と直交する8つのラインについてのフィルタ強度を、垂直境界V0,2と直交するラインのうち3番目のラインR3及び4番目のラインR4の少なくとも1つに属する画素を参照画素として用いて選択する(SV0,2)。このような構成により、水平境界についてのフィルタリング処理と垂直境界についてのフィルタ強度選択処理との間の依存関係は解消される。
 図13を参照すると、図12と同様のマクロブロックMB0が示されている。デブロックフィルタ24は、マクロブロックMB0の水平境界H0,0と直交する8つのラインについてのフィルタ強度を、水平境界H0,0と直交する3番目のラインC3及び4番目のラインC4の少なくとも1つに属する画素を参照画素として用いて選択する(SH0,0)。ラインC3及びC4は、垂直境界V0,0についてのフィルタリング処理によっても、垂直境界V0,1についてのフィルタリング処理によっても更新されないラインである。同様に、デブロックフィルタ24は、水平境界H0,1と直交する8つのラインについてのフィルタ強度を、水平境界H0,2と直交するラインのうち3番目のラインC3及び4番目のラインC4の少なくとも1つに属する画素を参照画素として用いて選択する(SH0,1)。このような構成により、垂直境界についてのフィルタリング処理と水平境界についてのフィルタ強度選択処理との間の依存関係は解消される。
 このように処理間の依存関係が解消される結果として、ある境界についてのフィルタ強度選択処理を、他の境界についてのフィルタリング処理の終了を待つことなく行うことが可能となる。従って、垂直境界及び水平境界の双方についてのフィルタ強度判定処理を並列化することができる。また、マクロブロック間で処理を並列化することも可能となる。
 本実施例において、デブロックフィルタ24は、さらに、フィルタ強度判定処理と同様のラインに属する参照画素の画素値に基づいて、フィルタリング要否判定処理を行う。これは、各ラインにデブロックフィルタを適用するか否かの判定が、デブロックフィルタへの入力画素値を用いて行われることを意味する。
 図14を参照すると、マクロブロックMB0の垂直境界V0,0についてのフィルタリング要否判定処理JV0,0が垂直境界V0,0と直交するラインR3及びR4に属する画素を参照画素として用いて行われることが示されている。同様に、垂直境界V0,2についてのフィルタリング要否判定処理JV0,2は、垂直境界V0,2と直交するラインR3及びR4に属する画素を参照画素として用いて行われる。このような構成により、水平境界についてのフィルタリング処理と垂直境界についてのフィルタリング要否判定処理との間の依存関係は解消される。
 図15を参照すると、マクロブロックMB0の水平境界H0,0についてのフィルタリング要否判定処理JH0,0は、水平境界H0,0と直交するラインC3及びC4に属する画素を参照画素として用いて行われる。同様に、水平境界H0,1についてのフィルタリング要否判定処理JH0,1は、水平境界H0,1と直交するラインC3及びC4に属する画素を参照画素として用いて行われる。このような構成により、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング要否判定処理との間の依存関係は解消される。
 このように処理間の依存関係が解消される結果として、ある境界についてのフィルタリング要否判定処理を、他の境界についてのフィルタリング処理の終了を待つことなく行うことが可能となる。垂直境界及び水平境界の双方についてのフィルタリング要否判定処理を並列化することもできる。
  (2)デブロックフィルタの詳細な構成
 図16は、本実施例に係るデブロックフィルタ24の詳細な構成の一例を示すブロック図である。図16を参照すると、デブロックフィルタ24は、判定ブロック110、強度選択ブロック130、フィルタリングブロック150、及び制御部160を有する。
  (2-1)判定ブロック
 判定ブロック110は、複数の境界判定部112-1~112-nを含む。各境界判定部112には、デブロックフィルタ24への入力画像、及びフィルタリングの要否の判定のために使用される判定情報が供給される。
 複数の境界判定部112-1~112-nは、以下に説明するフィルタリング要否判定処理を、複数の境界を対象として並列的に実行する。例えば、境界判定部112-1は第1の垂直境界、境界判定部112-2は第1の水平境界、境界判定部112-3は第2の垂直境界、境界判定部112-4は第2の水平境界について、並列的にフィルタリング要否判定処理を実行し得る。
 各境界判定部112は、各ブロック境界にデブロックフィルタを適用すべきか否かを、当該境界と直交する他の境界についてのフィルタリング処理により更新されないライン(以下、基本ラインという)に属する参照画素の画素値を用いて判定する。ここで参照される基本ラインは各境界の中央部分のラインであり、参照される画素値はデブロックフィルタ24への入力画素値である。そして、各境界判定部112は、各境界についての判定結果を示す情報(例えば、“1”がデブロックフィルタを適用すべきとの判定結果を示す二値情報)を、強度選択ブロック130及びフィルタリングブロック150へ出力する。
 図17は、各境界判定部112のさらに詳細な構成の一例を示すブロック図である。図17を参照すると、各境界判定部112は、タップ構築部121、演算部122、閾値比較部123、歪み評価部124及びフィルタリング判定部125を含む。
 タップ構築部121は、入力画像内の注目する境界を挟んで隣接する2つのブロックの画素値から基本ラインの参照画素の画素値を取得し、上述した輝度成分の判定条件Bの判定のためのタップ(参照画素値のセット)を構築する。演算部122は、タップ構築部121により構築されたタップを判定条件Bの判定式の左辺に代入し、エッジ判定閾値βと比較される判定用パラメータを計算する。閾値比較部123は、演算部122により計算された値をエッジ判定閾値βと比較し、比較結果をフィルタリング判定部125へ出力する。
 演算部122による演算及び閾値比較部123による閾値との比較は、例えば、次の式により表現されてもよい。
  -条件B:
   |p23-2p13+p03|+|q23-2q13+q03|+|p24-2p14+p04|+|q24-2q14+q04|<β
 その代わりに、演算部122による演算及び閾値比較部123による閾値との比較は、次の式により表現されてもよい。
  -条件B´:
   |p23-2p13+p03|+|q23-2q13+q03|<(β>>1);かつ
   |p24-2p14+p04|+|q24-2q14+q04|<(β>>1)
 条件B´は、条件Bと比較して、(参照画素値が変わらなければ)デブロックフィルタを適用すべきと判定されにくい条件である。発明者らは、参照ラインを境界の中央部分へ寄せると、多くの場合上記判定用パラメータの値(条件Bの式の左辺)が小さくなり、デブロックフィルタを適用すべきという判定がされ易くなるという傾向があることを、経験的に把握している。そこで、条件Bの代わりに条件B´を用いることにより、参照ラインの変更に伴う判定の精度の低下を防止することができる。なお、他の手法として、条件Bの右辺の閾値βの値をより小さく設定することにより、参照ラインの変更に伴う判定の精度の低下が防止されてもよい。
 歪み評価部124は、判定情報として供給されるモード情報(MBモード)、変換係数情報及び動きベクトル情報を用いて、上述した輝度成分の判定条件Aを評価する。そして、歪み評価部124は、評価結果をフィルタリング判定部125へ出力する。なお、色差成分については、歪み評価部124によるモード情報に基づく判定条件A1についての判定のみが行われ得る。
 フィルタリング判定部125は、閾値比較部123から入力される判定条件B又はB´についての比較結果と、歪み評価部124から入力される判定条件Aについての評価結果とに基づいて、注目するブロック境界にデブロックフィルタを適用すべきか否かを判定する。そして、フィルタリング判定部125は、判定結果を示す情報を出力する。
  (2-2)強度選択ブロック
 図16に戻り、デブロックフィルタ24の構成の説明を継続する。強度選択ブロック130は、複数の強度選択部132-1~132-nを含む。各強度選択部132には、入力画像及び判定ブロック110からの各境界についての判定結果が供給される。
 複数の強度選択部132-1~132-nは、以下に説明するフィルタ強度選択処理を、複数の境界を対象として並列的に実行する。例えば、強度選択部132-1は第1の垂直境界、強度選択部132-2は第1の水平境界、強度選択部132-3は第2の垂直境界、強度選択部132-4は第2の水平境界について、並列的にフィルタ強度選択処理を実行し得る。
 各強度選択部132は、各ブロック境界に隣接する隣接ブロック(neighboring blocks)に適用されるデブロックフィルタのフィルタ強度を、当該境界と直交する他の境界についてのフィルタリング処理により更新されない基本ラインに属する参照画素の画素値を用いて選択する。ここで参照される基本ラインは各境界の中央部分のラインであり、参照される画素値はデブロックフィルタ24への入力画素値である。そして、各強度選択部132は、各境界についての選択結果を示す情報(例えば、“1”が強フィルタの選択を示す二値情報)を、フィルタリングブロック150へ出力する。
 なお、本実施例では、各強度選択部132は、対応する境界判定部112から入力される判定結果がデブロックフィルタを適用すべきことを示している場合にのみ、対応する境界についてフィルタ強度選択処理を実行し得る。この場合には、不要なフィルタ強度選択処理の実行を回避し、処理コストを抑制することができる。一方、各強度選択部132は、各境界判定部112による判定と並列的にフィルタ強度選択処理を実行してもよい。この場合には、全体としての処理時間を短縮することができる。
 図18は、各強度選択部132のさらに詳細な構成の一例を示すブロック図である。図18を参照すると、各強度選択部132は、タップ構築部141、パラメータ計算部142、選択部143及びバッファ144を含む。
 タップ構築部141は、各境界と直交する基本ラインを制御部160からのライン制御信号に従って認識し、基本ラインの参照画素の画素値から、上述した強度選択のための条件C1~C3の式を評価するためのタップを構築する。以下の説明において、基本ラインとは、各境界の中央部分で当該境界と直交する、3番目及び4番目のラインである。
 パラメータ計算部142は、タップ構築部141により構築されたタップを条件C1~C3の式の左辺に代入し、ブロック歪みの強さに依存する次の3種類のパラメータd1~d3を計算する。なお、パラメータd2及びd3は、基本ラインごとに計算される。これらパラメータを、本明細書では強度選択用パラメータという。
   d1=|p23-2p13+p03|+|q23-2q13+q03|+|p24-2p14+p04|+|q24-2q14+q04
   d2=|p3j-p0j|+|q0j-q3j| (j=3,4)
   d3=|p0j-q0j| (j=3,4)
 選択部143は、基本ラインについては、パラメータ計算部142により計算された強度選択用パラメータを条件C1~C3に従って評価することにより、各基本ラインに適用されるデブロックフィルタのフィルタ強度を選択する。
  -以下の条件C1~C3が全て満たされる場合には強フィルタ、いずれか1つでも満たされない場合には弱フィルタが選択される:
   (C1)d1<(β>>2)
   (C2)d2<(β>>3)
   (C3)d3<((5t+1)>>1)
そして、選択部143は、各基本ラインについての選択結果を示す情報をフィルタリングブロック150へ出力する。また、選択部143は、各基本ラインについての選択結果を示す情報(又は上記強度選択用パラメータd1~d3の値)をバッファ144へ出力して記憶させる。
 選択部143は、基本ライン以外の各ラインについては、基本ラインの少なくとも1つについて計算された強度選択用パラメータを評価することにより、フィルタ強度を選択する。本実施例のように、基本ラインが2つのラインである場合には、基本ライン以外の各ラインについての評価のパターンは、例えば次の3つのいずれかであってよい。
  -パターンP1: 2つの基本ラインについて計算される強度選択用パラメータの双方がブロック歪みが強いことを示している場合(即ち、2つの基本ラインについて共に強フィルタが選択される場合)に、強フィルタを選択。
  -パターンP2: 選択対象のラインに近い基本ライン(以下、近傍ラインという)について計算される強度選択用パラメータがブロック歪みが強いことを示している場合に、強フィルタを選択。
  -パターンP3: 2つの基本ラインについて計算される強度選択用パラメータのいずれか一方又は双方がブロック歪みが強いことを示している場合に、強フィルタを選択。
 選択部143は、基本ライン以外の全てのラインについて同じパターンを使用してもよく、又はライン位置に応じて評価パターンを変更してもよい。例えば、第1のシナリオにおいて、選択部143は、次の表1のように、基本ライン以外の全てのラインについて評価パターンP2を用いる。評価パターンP2は、選択対象のラインと近傍ラインとの画像の空間的相関を利用した評価パターンであり、フィルタ強度の選択結果の簡易な再利用によって処理コストを抑制しながら、ある程度合理的な強度選択を実現できる。
Figure JPOXMLDOC01-appb-T000001
 また、第2のシナリオにおいて、選択部143は、次の表2のように、基本ライン以外の全てのラインについて評価パターンP1を用いる。評価パターンP1は、上述した3つの評価パターンのうち最も強フィルタが選択されにくい評価パターンである。評価パターンP1は、強フィルタが過剰に適用されることによる画質の劣化等の悪影響を積極的に防止したいような状況において採用され得る。
Figure JPOXMLDOC01-appb-T000002
 また、第3のシナリオにおいて、選択部143は、次の表3のように、基本ライン以外の全てのラインについて評価パターンP3を用いる。評価パターンP3は、上述した3つの評価パターンのうち最も強フィルタが選択され易い評価パターンである。評価パターンP3は、強フィルタを積極的に選択してブロック歪みを大きく減少させたいような状況において採用され得る。
Figure JPOXMLDOC01-appb-T000003
 また、第4のシナリオにおいて、選択部143は、次の表4のように、基本ラインに隣接する2つのライン(#2及び#5)については評価パターンP2を用い、その他のライン(#0、#1、#6及び#7)については評価パターンP1を用いる。基本ライン以外のラインの中でも、基本ラインからの距離が遠いほど基本ラインとの画像の空間的相関は低下する。そこで、第4のシナリオのように、ライン位置に応じて適応的に評価パターンを変更することにより、ラインごとにより適切なフィルタ強度を選択することができる。
Figure JPOXMLDOC01-appb-T000004
 また、選択部143は、各境界のBS(Boundary Strength)値に応じて、当該境界と直交する基本ライン以外のラインについての評価パターンを変更してもよい。BS値は、例えばH.264/AVCにおいては、各境界に接する2つのブロックのイントラ/インターの種別、直交変換係数の有無、参照ピクチャの差異及び動きベクトルの差異などに応じて与えられる5段階の数値である。BS値が高いほど、ブロック歪みは強いと判断される。そこで、第5のシナリオにおいて、選択部143は、次の表5のように、ライン#0、#1、#6及び#7について、評価パターンをBS値に応じて切り替える。例えば、BS値は「低」と「高」とに区分され、BS値が「低」であれば評価パターンP1が、BS値が「高」であれば評価パターンP2が用いられる。このように、BS値が低い場合にのみ適応的に強フィルタの過剰な適用を回避することで、フィルタリング後の画質を効果的に改善することが可能となる。
Figure JPOXMLDOC01-appb-T000005
 なお、ここで説明したシナリオは例に過ぎない。即ち、ライン位置及びBS値以外の基準に従って評価パターンが切り替えられてもよく、又は上述した3つの評価パターン以外の評価パターンが用いられてもよい。また、複数の評価パターンの間で選択部143により使用される評価パターンを切り替えるためのフラグが、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ内で符号化されてもよい。
 そして、選択部143は、基本ライン以外の各ラインについても、フィルタ強度の選択結果を示す情報をフィルタリングブロック150へ出力する。
  (2-3)フィルタリングブロック
 図16に戻り、デブロックフィルタ24の構成の説明を継続する。フィルタリングブロック150は、複数のフィルタリング部152-1~152-nを含む。各フィルタリング部152には、入力画像、判定ブロック110からの各境界についての判定結果、及び強度選択ブロック130からの各境界についてのフィルタ強度の選択結果が供給される。
 各フィルタリング部152は、対応する境界判定部112による判定結果がフィルタを適用すべきことを示している場合に、対応する強度選択部132により選択されたフィルタ強度を有するデブロックフィルタを、対応する境界と直交する各ラインに適用する。そして、各フィルタリング部152は、フィルタを適用した画素についてはフィルタリング後の画素値、その他の画素については入力画像の画素値を出力する。各フィルタリング部152からの出力は、デブロックフィルタ24からの出力画像を構成し得る。
  (2-4)制御部
 制御部160は、図16に示したデブロックフィルタ24の各部における処理を制御する。例えば、制御部160は、強度選択ブロック130にライン制御信号を出力し、ラインごとに基本ラインにいての処理と基本ライン以外のラインについての処理とを分岐させる。
 また、例えば、制御部160は、フィルタリング要否判定処理、フィルタ強度選択処理及びフィルタリング処理の並列度を制御する。高い並列度が望まれる場合には、複数のマクロブロック(あるいは複数のLCU(Largest Coding Unit))にわたって各処理が並列化されてもよい。また、マクロブロックごとの逐次処理が行われる場合には、個々のマクロブロック内の複数の垂直境界及び複数の水平境界を対象として、処理が並列化されてもよい。並列度の制御は、入力画像のサイズに基づいて行われてもよい。例えば、制御部160は、入力画像のサイズが相対的に大きい場合に、各処理の並列度を高めてもよい。それにより、画像のサイズに応じて増加する処理量を原因とする遅延又はデータレートの低下を適応的に防止することができる。また、例えば、制御部160は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ内に含まれるパラメータに基づいて、各処理の並列度を制御してもよい。それにより、装置を開発するユーザごとの要件に応じて柔軟に並列度を設定することが可能となる。例えば、プロセッサのコア数又はソフトウェアのスレッド数などの実装環境の制約に応じて並列度が設定されてもよい。
  [3-2.処理の流れ]
 次に、図19~図22を用いて、本実施例に係るデブロックフィルタ24による処理の流れを説明する。
   (1)第1の例
 図19は、本実施例に係るデブロックフィルタ24による処理の流れの第1の例を示すフローチャートである。第1の例では、マクロブロック(MB)ごとの逐次処理が行われる。
 図19を参照すると、まず、境界判定部112-1~112-nは、入力画像内の1つの注目MBに含まれる複数の垂直境界及び複数の水平境界について並列的に、フィルタリングの要否を判定する(ステップS110)。
 次に、強度選択部132-1~132-nは、ステップS110においてフィルタリングが必要と判定された境界について並列的に、各境界と直交するラインの各々のフィルタ強度を選択する(ステップS120)。
 次に、垂直境界を対象とする各フィルタリング部152は、ステップS110においてフィルタリングが必要と判定された垂直境界と直交するラインの各々に、対応する強度選択部132により選択されたフィルタ強度を有するデブロックフィルタを適用する(ステップS130)。
 次に、水平境界を対象とする各フィルタリング部152は、前の注目MBについてフィルタリングが必要と判定された水平境界と直交するラインの各々に、対応する強度選択部132により選択されたフィルタ強度を有するデブロックフィルタを適用する(ステップS140)。
 その後、入力画像内に未処理のMBが残っている場合には、次のMBを新たな注目MBとして、ステップS110~S140の処理が繰り返される(ステップS150)。
 一方、入力画像内に未処理のMBが残っていない場合には、水平境界を対象とする各フィルタリング部152により、最後の注目MBについてフィルタリングが必要と判定された水平境界と直交するラインの各々に、対応する強度選択部132により選択されたフィルタ強度を有するデブロックフィルタが適用される(ステップS160)。
 図20は、図19のステップS120に相当する、フィルタ強度選択処理の流れの一例を示すフローチャートである。なお、図20では、1つの境界についてのフィルタ強度選択処理の流れの一例が示されている。
 図20を参照すると、まず、タップ構築部141により構築される基本ラインの参照画素のタップに基づいて、パラメータ計算部142は、基本ラインについての強度選択用パラメータを計算する(ステップS121)。
 次に、選択部143は、ステップS121において計算された強度選択用パラメータを閾値と比較して評価することにより、各基本ラインについてのフィルタ強度を選択する(ステップS122)。そして、選択部143は、各基本ラインについてのフィルタ強度の選択結果をバッファ144へ出力して記憶させる(ステップS123)。
 その後のステップS125~S129の処理は、処理対象の境界と直交する各ライン(以下、注目ラインという)について繰り返される(ステップS124)。
 ステップS125において、選択部143は、注目ラインが基本ラインであるかを判定する(ステップS125)。ここで、注目ラインが基本ラインでなければ、選択部143は、注目ラインについての評価パターン(例えば、上述した評価パターンP1~P3のいずれか)を決定する(ステップS126)。そして、選択部143は、決定した評価パターンに従い、基本ラインについてのフィルタ強度の選択結果を用いて、注目ラインについてのフィルタ強度を選択する(ステップS127)。一方、注目ラインが基本ラインであれば、選択部143は、バッファ144によりバッファリングされている当該注目ラインについてのフィルタ強度の選択結果を取得する(ステップS128)。そして、選択部143は、注目ラインについてのフィルタ強度の選択結果をフィルタリングブロック150へ出力する(ステップS129)。
   (2)第2の例
 図21は、本実施例に係るデブロックフィルタ24による処理の流れの第2の例を示すフローチャートである。第2の例では、入力画像内の全ての境界にわたる並列処理が実現される。
 図21を参照すると、まず、境界判定部112-1~112-nは、入力画像内の全ての垂直境界及び全ての水平境界について並列的に、フィルタリングの要否を判定する(ステップS210)。
 次に、強度選択部132-1~132-nは、ステップS210においてフィルタリングが必要と判定された境界について並列的に、各境界と直交するラインの各々のフィルタ強度を選択する(ステップS220)。
 次に、フィルタリング部152-1~152-nは、ステップS210においてフィルタリングが必要と判定された垂直境界と直交するラインに、強度選択部132-1~132-nにより選択されたフィルタ強度を有するデブロックフィルタを適用する(ステップS230)。
 次に、フィルタリング部152-1~152-nは、ステップS210においてフィルタリングが必要と判定された水平境界と直交するラインに、強度選択部132-1~132-nにより選択されたフィルタ強度を有するデブロックフィルタを適用する(ステップS240)。
   (3)第3の例
 図22は、本実施例に係るデブロックフィルタ24による処理の流れの第3の例を示すフローチャートである。第3の例では、第1の例と同様、マクロブロックごとの逐次処理が行われる。
 図22を参照すると、まず、境界判定部112-1~112-nは、入力画像内の1つの注目MBに含まれる複数の垂直境界及び複数の水平境界について並列的に、フィルタリングの要否を判定する(ステップS310)。
 また、ステップS310と並列的に、強度選択部132-1~132-nは、同じ注目MBに含まれる複数の垂直境界及び複数の水平境界について、各境界と直交するラインの各々のフィルタ強度を選択する(ステップS320)。
 その後のステップS130~S160の処理は、図19に関連して説明したデブロックフィルタ24による処理の流れの第1の例と同様である。
 なお、ここではマクロブロック(あるいはLCU)単位及び画像単位でそれぞれ処理が並列化される典型的な例について説明した。しかしながら、かかる例に限定されず、例えば、特定の数(2つ若しくは4つなど)のマクロブロック、又は水平方向若しくは垂直方向に並ぶ一群のブロックなどの様々な単位で、デブロックフィルタ24による処理は並列化されてよい。
 <4.第2の実施例>
 第2の実施例では、フィルタ強度の選択の的確さを向上させるために、以下に説明するような強度選択用パラメータの推定の仕組みが導入される。第1の実施例において導入された、フィルタリング要否判定処理、フィルタ強度選択処理及びフィルタリング処理の間の新たな依存関係は、本実施例においても活用される。
  [4-1.デブロックフィルタの構成例]
 第2の実施例に係るデブロックフィルタ24の全体的な構成は、図16に示した第1の実施例に係るデブロックフィルタ24の構成と同様であってよい。図23は、第2の実施例に係る各強度選択部132の詳細な構成の一例を示すブロック図である。図23を参照すると、各強度選択部132は、タップ構築部141、パラメータ計算部142、バッファ243、パラメータ推定部244及び選択部245を含む。
 本実施例において、選択部245は、各基本ラインについてパラメータ計算部142から入力される強度選択用パラメータd1、d2及びd3の計算結果を、バッファ243に記憶させる。ここでの基本ラインは、第1の実施例と同様、各ブロックのブロックサイズが8×8画素である場合には、各境界の中央部分の3番目及び4番目の2つのラインであってよい。
 パラメータ推定部244は、基本ライン以外の各ライン(本実施例において、推定ラインという)についての強度選択用パラメータの値を、バッファ243により記憶されている基本ラインについての強度選択用パラメータの値を用いて推定する。図24は、強度選択用パラメータの推定について説明するための説明図である。パラメータ推定部244による各推定ラインについての強度選択用パラメータの推定は、例えば、基本ラインについて計算されたパラメータ値を次のように外挿することにより行われてよい。
   dX=4dX-3dX
   dX=3dX-2dX
   dX=2dX-1dX
   dX=2dX-1dX
   dX=3dX-2dX
   dX=4dX-3dX
なお、dXはd1、d2及びd3のいずれかであり、iはラインのインデックスである。
 選択部245は、基本ラインについては、パラメータ計算部142により計算された強度選択用パラメータの値を上述した条件C1~C3に従って評価することにより、フィルタ強度を選択する。また、選択部245は、推定ラインについては、パラメータ推定部244により推定された強度選択用パラメータの値を上述した条件C1~C3に従って評価することにより、フィルタ強度を選択する。そして、選択部245は、各ラインについてのフィルタ強度の選択結果を示す情報を、フィルタリングブロック150へ出力する。
  [4-2.処理の流れ]
 本実施例に係るデブロックフィルタ24による処理の全体的な流れは、図19、図21又は図22に例示したような流れであってよい。図25は、本実施例に係るフィルタ強度選択処理の流れの一例を示すフローチャートである。なお、図25では、1つの境界についてのフィルタ強度選択処理の流れの一例が示されている。
 図25を参照すると、まず、タップ構築部141により構築される基本ラインの参照画素のタップに基づいて、パラメータ計算部142は、基本ラインについての強度選択用パラメータを計算する(ステップS221)。
 次に、選択部245は、ステップS221において計算された基本ラインについての強度選択用パラメータの値をバッファ243へ出力して記憶させる(ステップS222)。
 その後のステップS224~S228の処理は、処理対象の境界と直交する各ライン(以下、注目ラインという)について繰り返される(ステップS223)。
 ステップS224において、選択部245は、注目ラインが基本ラインであるかを判定する(ステップS224)。ここで、注目ラインが基本ラインでなければ、パラメータ推定部244により、注目ラインについての強度選択用パラメータの値が基本ラインについてのパラメータ値から推定される(ステップS225)。一方、注目ラインが基本ラインであれば、選択部245は、バッファ243によりバッファリングされている当該注目ラインについての強度選択用パラメータの値を取得する(ステップS226)。そして、選択部245は、パラメータ推定部244により推定され又はバッファ243から取得された強度選択用パラメータを用いて、注目ラインについてのフィルタ強度を選択する(ステップS227)。そして、選択部245は、注目ラインについてのフィルタ強度の選択結果をフィルタリングブロック150へ出力する(ステップS228)。
 このような第2の実施例によれば、基本ラインについての強度選択用パラメータの値から推定ラインについての強度選択用パラメータの値が推定され、推定された値に基づいてフィルタ強度が選択されるため、フィルタ強度の選択の的確さを向上させることができる。
 <5.応用例>
 上述した実施形態に係る画像符号化装置10及び画像復号装置60は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
  [5-1.第1の応用例]
 図26は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOLEDなど)の映像面上に映像又は画像を表示する。
 音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
 外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送手段としての役割を有する。
 制御部910は、CPU(Central Processing Unit)などのプロセッサ、並びにRAM(Random Access Memory)及びROM(Read Only Memory)などのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
 ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
 バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
 このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置60の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
  [5-2.第2の応用例]
 図27は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
 また、撮影モードにおいて、例えば、カメラ部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は、上述した実施形態に係る画像符号化装置10及び画像復号装置60の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
  [5-3.第3の応用例]
 図28は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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は、上述した実施形態に係る画像符号化装置10の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置60の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
  [5-4.第4の応用例]
 図29は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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又はCMOSなどのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部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は、上述した実施形態に係る画像符号化装置10及び画像復号装置60の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
 <6.まとめ>
 ここまで、図1~図29を用いて、一実施形態に係る画像符号化装置10及び画像復号装置60のデブロックフィルタの2つの実施例について詳しく説明した。これら2つの実施例によれば、ブロックごとに復号される画像内の各境界に適用されるデブロックフィルタのフィルタ強度がデブロックフィルタへの入力画素値を用いて選択され、選択されたフィルタ強度で上記境界と直交するラインがフィルタリングされる。従って、ある境界についてのフィルタ強度の選択を、他の境界についてのフィルタリング処理の結果に依存することなく行うことが可能となる。よって、デブロックフィルタの適用に際しての処理のさらなる並列化が実現される。その結果、デブロックフィルタの多大な処理量を原因とする遅延又はデータレートの低下を緩和し、処理を高速化することができる。
 また、第1の実施例によれば、各境界と直交するラインの各々のフィルタ強度は、当該境界の中央部分の基本ラインについて計算される強度選択用パラメータを評価することにより選択される。即ち、フィルタ強度の選択のために全てのラインについて強度選択用パラメータを計算する必要がない。よって、少ない処理コストでのフィルタ強度の選択が可能であり、処理の実装も容易である。
 また、第2の実施例によれば、各境界の中央部分の基本ラインについて計算される強度選択用パラメータを用いて、基本ライン以外のラインについての強度選択用パラメータの値が推定される。従って、基本ライン以外のラインについてのフィルタ強度の選択の的確さを向上させることができる。
 なお、本明細書では、主に垂直境界についてのフィルタリング処理が水平境界についてのフィルタリング処理よりも先に行われる例を説明したが、水平境界についてのフィルタリング処理が先に行われる場合にも本開示に係る技術による上述した効果は同等に享受され得る。また、デブロックフィルタの処理単位のサイズ又はマクロブロックのサイズは、本明細書で説明した例に限定されず、他のサイズであってもよい。
 また、デブロックフィルタの処理の並列化のために使用される情報を符号化側から復号側に伝送する手法は、これら情報を符号化ストリームのヘッダに多重化する手法に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、以下のような構成も本開示の技術的範囲に属する。
(1)
 符号化ストリームを復号して画像を生成する復号部と、
 前記復号部により生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、
 前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、
 を備える画像処理装置。
(2)
 前記選択部は、前記フィルタ強度を、前記ブロック境界と直交する複数のラインに属する画素の画素値を用いて選択する、前記(1)に記載の画像処理装置。
(3)
 前記選択部は、ブロック歪みの強さに依存するパラメータを評価することにより、前記フィルタ強度を選択する、前記(2)に記載の画像処理装置。
(4)
 前記隣接ブロックの各々のブロックサイズは、8×8画素である、前記(3)に記載の画像処理装置。
(5)
 前記符号化ストリームは、階層的にブロック化される処理単位で符号化されており、
 前記復号部は、前記処理単位に従って前記符号化ストリームを復号する、
 前記(4)に記載の画像処理装置。
(6)
 前記選択部は、前記ブロック境界と直交する他の境界についてのフィルタリングによって更新されないラインに属する画素の画素値を用いて、前記フィルタ強度を選択する、前記(2)に記載の画像処理装置。
(7)
 前記選択部は、前記ブロック境界の中央部分のラインを用いて、前記フィルタ強度を選択する、前記(6)に記載の画像処理装置。
(8)
 前記隣接ブロックの各々のブロックサイズは、8×8画素であり、
 前記選択部は、前記中央部分の2つのラインの少なくとも1つについて計算される、ブロック歪みの強さに依存するパラメータを評価することにより、前記フィルタ強度を選択する、
 前記(7)に記載の画像処理装置。
(9)
 前記選択部は、前記2つのラインについて計算される前記パラメータの双方がブロック歪みが強いことを示している場合に、各ラインについて強フィルタを選択する、前記(8)に記載の画像処理装置。
(10)
 前記選択部は、前記2つのラインのうち各ラインに近いラインについて計算される前記パラメータがブロック歪みが強いことを示している場合に、各ラインについて強フィルタを選択する、前記(8)に記載の画像処理装置。
(11)
 前記選択部は、前記パラメータの評価のパターンをライン位置に応じて変更する、前記(8)に記載の画像処理装置。
(12)
 前記選択部は、前記パラメータの評価のパターンを前記ブロック境界のBS(Boundary Strength)値に応じて変更する、前記(8)に記載の画像処理装置。
(13)
 前記選択部は、
 前記ブロック境界と直交する複数のラインである基本ラインについてブロック歪みの強さに依存するパラメータを計算し、
 計算されたパラメータを用いて前記基本ライン以外のラインである推定ラインについての前記パラメータを推定し、
 推定した前記パラメータを評価することにより、前記フィルタ強度を選択する、
 前記(3)に記載の画像処理装置。
(14)
 各ブロックのブロックサイズは、8×8画素であり、
 前記選択部は、前記基本ラインについて計算される前記パラメータの値を外挿することにより、前記推定ラインの各々についての前記パラメータを推定する、
 前記(13)に記載の画像処理装置。
(15)
 デブロックフィルタへの前記入力画素値を用いて、前記ブロック境界にデブロックフィルタを適用するかを判定する判定部、をさらに備え、
 前記フィルタリング部は、前記判定部によりデブロックフィルタを適用すると判定された場合にのみ、前記ブロック境界にデブロックフィルタを適用する、
 前記(1)~(14)のいずれか1項に記載の画像処理装置。
(16)
 前記判定部は、前記ブロック境界と直交する複数のラインに属する画素の画素値を用いて前記判定を行い、
 前記判定部による前記判定の条件は、前記ブロック境界の非中央部分のラインに属する画素の画素値が使用される場合の条件と比較して、よりデブロックフィルタが適用されにくい条件である、
 前記(15)に記載の画像処理装置。
(17)
 前記選択部による第1の境界についての前記フィルタ強度の選択は、前記第1の境界と直交する第2の境界についての前記フィルタリング部によるフィルタリングを待つことなく行われる、前記(1)に記載の画像処理装置。
(18)
 符号化ストリームを復号して画像を生成することと、
 生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択することと、
 選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用することと、
 を含む画像処理方法。
(19)
 符号化対象画像を符号化する際にローカルデコードされた画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、
 前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、
 前記フィルタリング部によりフィルタリングされた画像を用いて、前記符号化対象画像を符号化する符号化部と、
 を備える画像処理装置。
(20)
 符号化対象画像を符号化する際にローカルデコードされた画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択することと、
 選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用することと、
 前記フィルタ強度でフィルタリングされた画像を用いて、前記符号化対象画像を符号化することと、
 を含む画像処理方法。
 10, 60   画像処理装置
 112-1~n  判定部
 132-1~n  選択部
 152-1~n  フィルタリング部
 160      制御部
 

Claims (20)

  1.  符号化ストリームを復号して画像を生成する復号部と、
     前記復号部により生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、
     前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、
     を備える画像処理装置。
  2.  前記選択部は、前記フィルタ強度を、前記ブロック境界と直交する複数のラインに属する画素の画素値を用いて選択する、請求項1に記載の画像処理装置。
  3.  前記選択部は、ブロック歪みの強さに依存するパラメータを評価することにより、前記フィルタ強度を選択する、請求項2に記載の画像処理装置。
  4.  前記隣接ブロックの各々のブロックサイズは、8×8画素である、請求項3に記載の画像処理装置。
  5.  前記符号化ストリームは、階層的にブロック化される処理単位で符号化されており、
     前記復号部は、前記処理単位に従って前記符号化ストリームを復号する、
     請求項4に記載の画像処理装置。
  6.  前記選択部は、前記ブロック境界と直交する他の境界についてのフィルタリングによって更新されないラインに属する画素の画素値を用いて、前記フィルタ強度を選択する、請求項2に記載の画像処理装置。
  7.  前記選択部は、前記ブロック境界の中央部分のラインを用いて、前記フィルタ強度を選択する、請求項6に記載の画像処理装置。
  8.  前記隣接ブロックの各々のブロックサイズは、8×8画素であり、
     前記選択部は、前記中央部分の2つのラインの少なくとも1つについて計算される、ブロック歪みの強さに依存するパラメータを評価することにより、前記フィルタ強度を選択する、
     請求項7に記載の画像処理装置。
  9.  前記選択部は、前記2つのラインについて計算される前記パラメータの双方がブロック歪みが強いことを示している場合に、各ラインについて強フィルタを選択する、請求項8に記載の画像処理装置。
  10.  前記選択部は、前記2つのラインのうち各ラインに近いラインについて計算される前記パラメータがブロック歪みが強いことを示している場合に、各ラインについて強フィルタを選択する、請求項8に記載の画像処理装置。
  11.  前記選択部は、前記パラメータの評価のパターンをライン位置に応じて変更する、請求項8に記載の画像処理装置。
  12.  前記選択部は、前記パラメータの評価のパターンを前記ブロック境界のBS(Boundary Strength)値に応じて変更する、請求項8に記載の画像処理装置。
  13.  前記選択部は、
     前記ブロック境界と直交する複数のラインである基本ラインについてブロック歪みの強さに依存するパラメータを計算し、
     計算されたパラメータを用いて前記基本ライン以外のラインである推定ラインについての前記パラメータを推定し、
     推定した前記パラメータを評価することにより、前記フィルタ強度を選択する、
     請求項3に記載の画像処理装置。
  14.  各ブロックのブロックサイズは、8×8画素であり、
     前記選択部は、前記基本ラインについて計算される前記パラメータの値を外挿することにより、前記推定ラインの各々についての前記パラメータを推定する、
     請求項13に記載の画像処理装置。
  15.  デブロックフィルタへの前記入力画素値を用いて、前記ブロック境界にデブロックフィルタを適用するかを判定する判定部、をさらに備え、
     前記フィルタリング部は、前記判定部によりデブロックフィルタを適用すると判定された場合にのみ、前記ブロック境界にデブロックフィルタを適用する、
     請求項1に記載の画像処理装置。
  16.  前記判定部は、前記ブロック境界と直交する複数のラインに属する画素の画素値を用いて前記判定を行い、
     前記判定部による前記判定の条件は、前記ブロック境界の非中央部分のラインに属する画素の画素値が使用される場合の条件と比較して、よりデブロックフィルタが適用されにくい条件である、
     請求項15に記載の画像処理装置。
  17.  前記選択部による第1の境界についての前記フィルタ強度の選択は、前記第1の境界と直交する第2の境界についての前記フィルタリング部によるフィルタリングを待つことなく行われる、請求項1に記載の画像処理装置。
  18.  符号化ストリームを復号して画像を生成することと、
     生成された前記画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択することと、
     選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用することと、
     を含む画像処理方法。
  19.  符号化対象画像を符号化する際にローカルデコードされた画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択する選択部と、
     前記選択部により選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用するフィルタリング部と、
     前記フィルタリング部によりフィルタリングされた画像を用いて、前記符号化対象画像を符号化する符号化部と、
     を備える画像処理装置。
  20.  符号化対象画像を符号化する際にローカルデコードされた画像内のブロック境界に隣接する隣接ブロックに適用されるデブロックフィルタのフィルタ強度を、デブロックフィルタへの入力画素値を用いて選択することと、
     選択された前記フィルタ強度を有するデブロックフィルタを前記隣接ブロックに適用することと、
     前記フィルタ強度でフィルタリングされた画像を用いて、前記符号化対象画像を符号化することと、
     を含む画像処理方法。
     
PCT/JP2012/059675 2011-06-28 2012-04-09 画像処理装置及び画像処理方法 WO2013001886A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-142726 2011-06-28
JP2011142726A JP2013012815A (ja) 2011-06-28 2011-06-28 画像処理装置及び画像処理方法

Publications (1)

Publication Number Publication Date
WO2013001886A1 true WO2013001886A1 (ja) 2013-01-03

Family

ID=47423794

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/059675 WO2013001886A1 (ja) 2011-06-28 2012-04-09 画像処理装置及び画像処理方法

Country Status (2)

Country Link
JP (1) JP2013012815A (ja)
WO (1) WO2013001886A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9180188B2 (en) 2011-08-04 2015-11-10 Toray Industries, Inc. Pharmaceutical composition for treatment and/or prophylaxis of cancer
CN113491133A (zh) * 2019-02-27 2021-10-08 索尼集团公司 图像处理装置和图像处理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0965336A (ja) * 1995-08-24 1997-03-07 Graphics Commun Lab:Kk フィルタ装置
JP2004056190A (ja) * 2002-07-16 2004-02-19 Sharp Corp フィルタ装置
JP2007116580A (ja) * 2005-10-24 2007-05-10 Matsushita Electric Ind Co Ltd 画像処理方法および画像処理装置
JP2011066844A (ja) * 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0965336A (ja) * 1995-08-24 1997-03-07 Graphics Commun Lab:Kk フィルタ装置
JP2004056190A (ja) * 2002-07-16 2004-02-19 Sharp Corp フィルタ装置
JP2007116580A (ja) * 2005-10-24 2007-05-10 Matsushita Electric Ind Co Ltd 画像処理方法および画像処理装置
JP2011066844A (ja) * 2009-09-18 2011-03-31 Toshiba Corp 並列復号装置及びプログラム並びに符号化データの並列復号方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9180188B2 (en) 2011-08-04 2015-11-10 Toray Industries, Inc. Pharmaceutical composition for treatment and/or prophylaxis of cancer
CN113491133A (zh) * 2019-02-27 2021-10-08 索尼集团公司 图像处理装置和图像处理方法

Also Published As

Publication number Publication date
JP2013012815A (ja) 2013-01-17

Similar Documents

Publication Publication Date Title
JP6819702B2 (ja) テレビジョン装置、携帯電話機、再生装置、カメラ及び方法
JP6471787B2 (ja) 画像処理装置及び画像処理方法
US10972722B2 (en) Image processing device and image processing method
JP5884313B2 (ja) 画像処理装置、画像処理方法、プログラム及び記録媒体
CA2837043A1 (en) Image processing device and image processing method
JP6217826B2 (ja) 画像処理装置及び画像処理方法
WO2013001886A1 (ja) 画像処理装置及び画像処理方法
WO2012124406A1 (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: 12804647

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

Country of ref document: EP

Kind code of ref document: A1