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

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

Info

Publication number
WO2012077607A1
WO2012077607A1 PCT/JP2011/077953 JP2011077953W WO2012077607A1 WO 2012077607 A1 WO2012077607 A1 WO 2012077607A1 JP 2011077953 W JP2011077953 W JP 2011077953W WO 2012077607 A1 WO2012077607 A1 WO 2012077607A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
filtering
image
determination
deblocking filter
Prior art date
Application number
PCT/JP2011/077953
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
Priority to EP20185680.4A priority Critical patent/EP3748963B1/en
Priority to EP20185677.0A priority patent/EP3748962A1/en
Priority to MX2016005041A priority patent/MX355896B/es
Priority to AU2011339460A priority patent/AU2011339460B2/en
Priority to EP11846148.2A priority patent/EP2651127B1/en
Priority to KR1020187019829A priority patent/KR101963096B1/ko
Priority to US13/990,893 priority patent/US9973763B2/en
Priority to JP2012547833A priority patent/JP6011341B2/ja
Priority to MX2013006131A priority patent/MX2013006131A/es
Priority to EP20185688.7A priority patent/EP3748964A1/en
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to RU2013125498/07A priority patent/RU2585662C2/ru
Priority to ES11846148T priority patent/ES2856823T3/es
Priority to KR1020137013869A priority patent/KR101879890B1/ko
Priority to KR1020187019836A priority patent/KR101963097B1/ko
Priority to CA2815819A priority patent/CA2815819C/en
Priority to CN201180057815.8A priority patent/CN103229506B/zh
Priority to BR112013013509-3A priority patent/BR112013013509B1/pt
Publication of WO2012077607A1 publication Critical patent/WO2012077607A1/ja
Priority to US15/902,870 priority patent/US10362318B2/en
Priority to US16/391,314 priority patent/US10582202B2/en
Priority to US16/693,374 priority patent/US10931955B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

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-A 119 Video coding technology proposal by Tandberg, Nokia, and Ericsson
  • 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 image from a coded stream and a determination process that determines whether a deblock filter is to be applied to an adjacent block adjacent to a block boundary in an image decoded by the decoding unit are performed.
  • the image processing apparatus can be typically realized as an image decoding apparatus that decodes an image.
  • an image processing method including: controlling the determination process so as to be performed using as a pixel.
  • a determination unit that performs a determination process of determining whether to apply a deblock filter to an adjacent block adjacent to a block boundary in an image to be locally decoded when encoding an image to be encoded
  • a filtering unit for applying a deblock filter to an adjacent block determined to apply the deblock filter by the determination unit, and the determination process for a vertical block boundary and a horizontal block boundary, which corresponds to the adjacent block of the reconstruct image
  • An image processing apparatus comprising: a control unit that is executed by the determination unit using pixels as reference pixels; and an encoding unit that encodes the image to be encoded using an image filtered by the filtering unit.
  • the image processing apparatus can be typically realized as an image coding apparatus that codes an image.
  • a process of determining whether to apply a deblocking filter to an adjacent block adjacent to a block boundary in an image to be locally decoded when encoding an image to be encoded is performed.
  • Applying a deblock filter to an adjacent block determined to apply the deblock filter in the determination process, and the determination process on a vertical block boundary and a horizontal block boundary refers to pixels of the adjacent block in the reconstitute image
  • An image processing method comprising: controlling the determination process so as to be performed using as a pixel; and encoding the image to be encoded using an image filtered by 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. It is an explanatory view for explaining the 1st example of the order of processing. It is an explanatory view for explaining the 2nd example of the order of processing. It is a block diagram which shows an example of a detailed structure of the deblocking filter which concerns on a 1st Example.
  • FIG. 14 is an explanatory diagram for describing third and fourth examples of a determination method that can be implemented in the second embodiment.
  • FIG. 18 is an explanatory diagram for describing fifth and sixth examples of a determination method that can be implemented in the second embodiment. It is an explanatory view for explaining the order of processing for every LCU. It is a flowchart which shows an example of the flow of the process for every LCU. It is an explanatory view for explaining an outline of a 3rd example.
  • FIG. 18 is an explanatory diagram for describing a first example of the order of processing implemented in the third embodiment; It is explanatory drawing for demonstrating the 2nd example of the order of the process for a comparison.
  • FIG. 18 is an explanatory diagram for describing a second example of the order of processing implemented in the third embodiment; It is a flowchart which shows an example of the flow of the process by the deblocking filter which concerns on a 3rd Example. It is a flowchart which shows an example of the flow of the pixel value calculation process shown in FIG. It is an explanatory view for explaining a multiview codec. It is explanatory drawing for demonstrating the application to the multi view codec of the image coding process concerning one Embodiment. It is an explanatory view for explaining application to a multi view codec of image decoding processing concerning one embodiment. It is an explanatory view for explaining a scalable codec.
  • 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 converter 11 converts an image signal input in an analog format into image data in a digital format, and outputs a series of digital image data to the sorting buffer 12.
  • 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 using a storage medium such as a semiconductor memory. 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 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. For example, 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. . In addition to the decoded image data from the adding unit 23, 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. . Then, 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 using a storage medium.
  • 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, to the mode selection unit 50, prediction mode information indicating the optimal intra prediction mode, predicted image data, and information on intra prediction such as a cost function value.
  • 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 information on inter prediction such as prediction mode information indicating the selected optimal prediction mode, prediction image data, and cost function value to the mode selection unit 50.
  • 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 using a storage medium.
  • 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 the decoded image data before filtering input from the adding unit 65 and the decoded image data after filtering input from the deblocking filter 24 b using a storage medium.
  • 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 two types of processing of filtering necessity determination processing and filtering processing. Hereinafter, these two processes will be described by taking HEVC as an example.
  • the filtering necessity determination process is a process of determining whether or not the deblocking filter should be applied, for each block boundary in the input image.
  • Block boundaries include vertical boundaries between adjacent blocks on the left and right, and horizontal boundaries between blocks adjacent on the top and bottom.
  • 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 blocks (adjacent blocks) Ba and Bb adjacent to each other across a boundary.
  • 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 process described below is performed on the boundary determined to apply the deblocking filter according to the above-described determination condition.
  • 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 row index for vertical boundaries and the column index for horizontal boundaries.
  • Clip (-t C, t C, (13 (q 0j -p 0j) +4 (q 1j -p 1j) -5 (q 2j -p 2j) +16) >> 5))
  • 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 dependency between the filtering process for the vertical boundary and the filtering necessity determination process for the horizontal boundary is left. Also, the dependency between the filtering process on the horizontal boundary and the filtering necessity determination process on the vertical boundary is also left. Therefore, for example, when processing the vertical boundary before the horizontal boundary, the filtering necessity determination processing for the horizontal boundary in a certain macroblock is performed after the end of the filtering processing for the vertical boundary. . As an example, referring to FIG.
  • the filtering necessity determination process J H0,0 depends on the result of the filtering process F V0,0 and F V0,1 , and the result of the filtering process F V0,1 It is shown that the filtering necessity determination process J H 0 , 1 depends on Similarly, the filtering necessity determination process for the vertical boundary in a certain macroblock is executed after the end of the filtering process for the horizontal boundary of the adjacent macroblock. As an example, referring to FIG.
  • the macro on the result of the filtering process F H0,1 and F H0,3 blocks MB0 dependent filtering necessity determining process J V1,0 macroblock MB1, filtering of macroblocks MB0 filtering necessity determining process J V1,2 macroblocks MB1 to results F H0,3 is shown to be dependent.
  • FIG. 10 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.
  • 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 (fifth step to eighth step) for the macroblock MB1 is sequentially performed.
  • the processing (the ninth to twelfth steps) for the macroblock MB2 is sequentially performed.
  • the processing (the thirteenth step to the sixteenth step) for the macroblock MB3 is sequentially performed.
  • the processing by the deblocking filter 24 includes two types of processing, the above-described filtering necessity determination processing and the filtering processing.
  • the deblocking filter 24 determines whether to apply the deblocking filter to each vertical boundary and each horizontal boundary based on the pixel value of the reference pixel different from the existing method. More specifically, when determining the vertical boundary, the deblocking filter 24 determines, among the pixels of adjacent blocks across the vertical boundary, pixels belonging to a row to which the deblocking filter for the horizontal boundary is not applied as a reference pixel. Do.
  • the deblocking filter 24 determines, as the reference pixel, among the pixels of the blocks adjacent to each other across the horizontal boundary, the deblocking filter 24 belongs to a column to which the deblocking filter for the vertical boundary is not applied. Also in this section, as an example, it is assumed that the processing by the deblocking filter 24 has a block size of 8 ⁇ 8 pixels as one processing unit.
  • FIG. 11 is an explanatory diagram for describing reference pixels in the filtering necessity determination processing for the vertical boundary by the deblocking filter 24.
  • FIG. Referring to FIG. 11, a macroblock MB0 having a size of 16 ⁇ 16 pixels is shown.
  • the deblocking filter 24 uses the pixels belonging to at least one of the fourth and fifth rows (L4 and L5) of each block as a reference pixel as to whether the filtering for the four vertical boundaries of the macroblock MB0 is necessary or not. Use to judge.
  • These two rows are rows to which the deblock filter for the horizontal boundary is not applied (see FIG. 9).
  • Such a configuration eliminates the dependency between the filtering process on the horizontal boundary and the filtering necessity determination process on the vertical boundary.
  • FIG. 12 is an explanatory diagram for describing reference pixels in the filtering necessity determination processing for the horizontal boundary by the deblocking filter 24.
  • FIG. Referring to FIG. 12, the macroblock MB0 is shown again.
  • the deblocking filter 24 determines whether or not the filtering for the four horizontal boundaries of the macroblock MB0 is necessary, using pixels belonging to at least one of the fourth and fifth columns (C4 and C5) of each block as reference pixels. Use to judge. These two columns are columns to which the deblock filter for the vertical boundary is not applied (see FIG. 7 or 8).
  • Such a configuration also eliminates the dependency between the filtering process on the vertical boundary and the filtering necessity determination process on the horizontal boundary.
  • filtering necessity determination processing can be performed in parallel for vertical boundaries and horizontal boundaries of all macroblocks in the input image.
  • FIG. 13 is an explanatory diagram for describing a first example of an order of processing that can be realized by the deblocking filter 24.
  • 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.
  • FIG. 13 is an example of maximizing the degree of parallelism (the number of processes executed in parallel) by parallelizing processing between macroblocks
  • the deblocking filter 24 is, as in the example of FIG. Processing for each macroblock can also be realized.
  • the same number of processes as in FIGS. 10 and 13 are integrated into 12 process steps. That is, in the first step, the filtering necessity determination process for four vertical boundaries and four horizontal boundaries of the macroblock MB0 are performed in parallel J V0,0 to J V0,3 and J H0,0 to J H0,3 in parallel. To be executed. Next, in the second step, filtering processes F V0,0 to F V0,3 on the four vertical boundaries of the macroblock MB0 are executed in parallel. Next, in the third step, filtering necessity determination processing for four vertical boundaries and four horizontal boundaries of the macroblock MB1 J V1,0 to J V1,3 and J H1,0 to J H1,3 are parallel. To be executed.
  • filtering processes F V1,0 to F V1,3 for the four vertical boundaries of the macroblock MB1 are executed in parallel.
  • filtering processes F H0,0 to F H0,3 on the four horizontal boundaries of the macroblock MB0 are executed in parallel.
  • filtering necessity determination processing for four vertical boundaries and four horizontal boundaries of the macroblock MB2 J V2,0 to J V2,3 and J H2,0 to J H2,3 are parallel.
  • filtering processes F V2,0 to F V2,3 on the four vertical boundaries of the macroblock MB2 are executed in parallel.
  • filtering processes F H1,0 to F H1,3 on the four horizontal boundaries of the macroblock MB1 are executed in parallel.
  • filtering necessity determination processing for four vertical boundaries and four horizontal boundaries of the macroblock MB3 J V3,0 to J V3,3 and J H3,0 to J H3,3 are parallel.
  • filtering processes F V3,0 to F V3,3 on the four vertical boundaries of the macroblock MB3 are executed in parallel.
  • filtering processes F H2,0 to F H2,3 for the four horizontal boundaries of the macroblock MB2 are executed in parallel.
  • filtering processes F H3,0 to F H3,3 on the four horizontal boundaries of the macroblock MB3 are executed in parallel.
  • the degree of parallelism is lower than in the example of FIG. 13, the processing of the deblocking filter 24 for the entire input image can be performed with a smaller number of processing steps than the existing method.
  • FIG. 15 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the first embodiment for realizing the parallel processing described above.
  • the deblocking filter 24 includes a determination block 110, a horizontal filtering block 130, a vertical filtering block 140, and a parallelization control unit 150.
  • the determination block 110 includes a plurality of vertical boundary determination units 112-1 to 112-n and a plurality of horizontal boundary determination units 114-1 to 114-n. Each vertical boundary determination unit 112 and each horizontal boundary determination unit 114 are supplied with an input image to the deblocking filter 24 and determination information used to determine whether or not filtering is necessary.
  • each demarcation filter should be applied to each vertical boundary using the pixel values of the reference pixels belonging to the row to which the deblocking filter for the horizontal boundary as illustrated in FIG. 11 is not applied.
  • Determine The pixel value of the reference pixel here is an input pixel value to the deblocking filter 24.
  • each vertical boundary determination unit 112 generates information (for example, binary information indicating a determination result that "1" should apply the deblocking filter ") indicating the determination result about each vertical boundary, the horizontal filtering block 130.
  • each demarcation filter should be applied to each horizontal boundary using each pixel value of the reference pixel belonging to the column to which the deblock filter for the vertical boundary as illustrated in FIG. 12 is not applied.
  • Determine The pixel value of the reference pixel here is also an input pixel value to the deblocking filter 24.
  • the determination process by each horizontal boundary determination unit 114 is performed in parallel with the determination process by each vertical boundary determination unit 112. Then, each horizontal boundary determination unit 114 outputs information indicating the determination result for each horizontal boundary to the vertical filtering block 140.
  • FIG. 16 is a block diagram showing an example of a more detailed configuration of each vertical boundary determination unit 112 and each horizontal boundary determination unit 114.
  • each determination unit 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 acquires the pixel value of the reference pixel from the pixel values of two blocks adjacent to each other across the boundary of interest in the input image, and taps for determination of the determination condition B of the luminance component described above (see Construct a set of pixel values). For example, in the case where the size of each block is 8 ⁇ 8 pixels, when the boundary of interest is a vertical boundary, the tap constructing unit 121 sets one or both of the fourth and fifth rows of the two left and right blocks. Construct a tap from the pixel values to which it belongs. Also, when the boundary of interest is a horizontal boundary, the tap construction unit 121 constructs a tap from pixel values belonging to one or both of the fourth and fifth columns of the upper and lower two blocks.
  • the calculation unit 122 substitutes the tap constructed by the tap construction unit 121 into the left side of the judgment formula of the judgment condition B, and calculates the value of the edge to be compared with the edge judgment 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 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 deblocks the focused boundary based on the comparison result of the determination condition B input from the threshold comparison unit 123 and the evaluation result of the determination condition A input from the distortion evaluation unit 124. To determine if it should apply. Then, the filtering determination unit 125 outputs information indicating the determination result.
  • the horizontal filtering block 130 includes a plurality of horizontal filtering units 132-1 to 132-n. Each horizontal filtering unit 132 is supplied with the input image and the determination result of each vertical boundary from the determination block 110.
  • Each horizontal filtering unit 132 applies the deblocking filter for the vertical boundary to the pixels on the left and right of the corresponding vertical boundary when the determination result by the corresponding vertical boundary determination unit 112 indicates that the filter should be applied. . Then, each horizontal filtering unit 132 outputs the pixel value after filtering for the pixel to which the filter is applied and the pixel value of the input image for the other pixels to the vertical filtering block 140.
  • the vertical filtering block 140 includes a plurality of vertical filtering units 142-1 to 142-n. Each vertical filtering unit 142 is supplied with the input image and the determination result for each horizontal boundary from the determination block 110.
  • Each vertical filtering unit 142 applies the deblock filter for the horizontal boundary to the pixels above and below the corresponding horizontal boundary when the determination result by the corresponding horizontal boundary determination unit 114 indicates that the filter should be applied. . Then, each vertical filtering unit 142 outputs the pixel value after filtering for the pixel to which the filter is applied, and outputs the pixel value supplied from the horizontal filtering block 130 for the other pixels.
  • the output from each vertical filtering unit 142 may constitute the output image from the deblocking filter 24.
  • the parallelization control unit 150 controls the degree of parallelism of the filtering necessity determination process in the determination block 110 and the degree of parallelism of the filtering process in the horizontal filtering block 130 and the vertical filtering block 140.
  • the parallelization control unit 150 may control the degree of parallelism of processing of each block based on the size of the input image. More specifically, when the size of the input image is relatively large, the parallelization control unit 150 increases the degree of parallelism of processing of each block. Thereby, it is possible to adaptively prevent a delay or a decrease in data rate due to an increase in processing amount according to the size of the image. Also, for example, the parallelization control unit 150 may control the degree of parallelism of processing of each block based on parameters included in the sequence parameter set, the picture parameter set, or the slice header. Thus, the degree of parallelism can be set flexibly according to the requirements of each user who develops the device. For example, 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.
  • the parallelization control unit 150 can control the order of the filtering necessity determination process in the determination block 110 and the order of the filtering process in the horizontal filtering block 130 and the vertical filtering block 140 for each block.
  • the parallelization control unit 150 may control the order of the filtering process in accordance with the dependency of the filtering process between macroblocks. For example, when attempting to implement parallel processing for each slice in an image in the existing method, processing dependencies between adjacent macroblocks across slice boundaries may cause processing delays. However, in the present embodiment, the parallelization control unit 150 can perform the filtering process on the macroblock adjacent to the slice boundary prior to the other macroblocks.
  • FIG. 17 shows eight macro blocks MB10 to MB13 and MB20 to MB23 adjacent to each other across a slice boundary.
  • the macroblocks MB10 to MB13 belong to the slice SL1.
  • the macroblocks MB20 to MB23 belong to the slice SL2.
  • the filtering process on the horizontal boundary of the macroblock MB20 of the slice SL2 among the macroblocks depends on the filtering process on the vertical boundary of the macroblock MB12 of the slice SL1.
  • the filtering process on the horizontal boundary of the macroblock MB21 of the slice SL2 depends on the filtering process on the vertical boundary of the macroblock MB13 of the slice SL1.
  • the parallelization control unit 150 performs the filtering process on the vertical boundaries of the macroblocks MB12 and MB13 in the filtering process of the slice SL1 from the process on other boundaries. Also give priority to execution. As a result, in the filtering process of slice SL2, a large delay in the filtering process on the horizontal boundaries of macroblocks MB20 and MB21 can be prevented. Also, as in the example of FIG. 19, the horizontal boundaries of macroblocks MB20 and MB21 of slice SL2 are also obtained when the filtering process on the vertical boundaries of all the macroblocks included in slice SL1 is initially performed in parallel. There is no delay in the filtering process for.
  • FIG. 20 is a flowchart showing an example of the flow of processing in a first scenario by the deblocking filter 24.
  • the first scenario is a scenario corresponding to the example of FIG. 13 with a large degree of parallelism.
  • the vertical boundary determination units 112-1 to 112-n determine the necessity of filtering in parallel for all vertical boundaries included in a plurality of macroblocks in the input image (steps S102). Also, the horizontal boundary determination units 114-1 to 114-n determine in parallel whether or not it is necessary to filter all horizontal boundaries included in a plurality of macroblocks in the input image (step S104). The steps S102 and S104 are also performed in parallel.
  • the horizontal filtering units 132-1 to 132-n apply deblocking filters in parallel for all vertical boundaries determined to apply the deblocking filter in step S102 (step S110).
  • the vertical filtering units 142-1 to 142-n apply deblocking filters in parallel to all horizontal boundaries determined to apply the deblocking filter in step S104 (step S120).
  • FIG. 21 is a flow chart showing an example of the flow of processing in a second scenario by the deblocking filter 24.
  • the second scenario is a scenario corresponding to the example of FIG. 14 with a lower degree of parallelism.
  • the vertical boundary determination units 112-1 to 112-n determine in parallel whether or not filtering is necessary for all vertical boundaries included in one target macroblock in the input image (see FIG. 21).
  • Step S202 the horizontal boundary determination units 114-1 to 114-n determine in parallel whether or not it is necessary to filter all horizontal boundaries included in the target macro block (step S204). These steps S202 and S204 are also performed in parallel.
  • the horizontal filtering units 132-1 to 132-n apply the deblocking filter in parallel to the vertical boundaries in the macroblock of interest determined to apply the deblocking filter in step S202 (step S210). ).
  • step S220 The process of the next step S220 is performed on the target macro block in the previous loop.
  • the process of step S220 may be skipped.
  • the vertical filtering units 142-1 to 142-n apply deblocking filters in parallel to horizontal boundaries determined to apply the deblocking filter in step S204 of the immediately preceding loop (step S220).
  • steps S202 to S220 is repeated for a new target macroblock (step S230).
  • the vertical filtering units 142-1 to 142-n determine that the target block in the final loop should be applied to the deblocking filter. Deblock filters are applied in parallel for horizontal boundaries (step S240). Then, the process ends.
  • the processing by the deblocking filter 24 may be parallelized in various units such as a specific number (such as 2 or 4) of macroblocks or a group of blocks arranged horizontally or vertically.
  • FIG. 22 is a flowchart showing an example of the flow of the filtering necessity determination process corresponding to steps S102 and S104 of FIG. 21 and steps S202 and S204 of FIG.
  • the distortion evaluation unit 124 evaluates the distortion of each boundary based on the mode information, transform coefficient information, and motion vector information (step S130).
  • the process proceeds to step S134.
  • the process proceeds to step S140 (step S132).
  • step S134 the value of the edge is calculated by the calculation unit 122 based on the tap of the reference pixel constructed by the tap construction unit 121 (step S134). Then, the threshold comparison unit 123 compares the calculated value with the edge determination threshold ⁇ (step S136). Here, when the edge value is smaller than the threshold value ⁇ (when the determination condition B is true), the process proceeds to step S138. On the other hand, if the edge value is not smaller than the threshold value ⁇ , the process proceeds to step S140.
  • step S138 the filtering determination unit 125 determines that the deblocking filter should be applied to the boundary of the determination target (step S138).
  • step S140 the filtering determination unit 125 determines that the deblocking filter should not be applied to the boundary of the determination target (step S140).
  • Second embodiment> In the first embodiment, pixel values of pixels not updated by the filtering process for other blocks are used for the filtering necessity determination process for one block.
  • the memory for holding the input pixel value to the deblocking filter is provided to eliminate the restriction of the filtering necessity determination process and to use more various determination conditions. Make it possible.
  • FIG. 23 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the second embodiment.
  • the deblocking filter 24 includes a line memory 208, a determination block 210, a horizontal filtering block 130, a vertical filtering block 140, and a parallelization control unit 150.
  • the line memory 208 stores pixel values of the input image input to the deblocking filter 24.
  • the pixel values stored by line memory 208 are not updated by the filtering process in horizontal filtering block 130 and vertical filtering block 140.
  • the pixel values stored in the line memory 208 are referred to in the filtering necessity determination process by each unit in the determination block 210 described below.
  • a memory provided in the apparatus for the purpose different from the processing of the deblocking filter 24 may be reused (shared) as the line memory 208.
  • the determination block 210 includes a plurality of vertical boundary determination units 212-1 to 212-n and a plurality of horizontal boundary determination units 214-1 to 214-n.
  • each vertical boundary determination unit 212 and each horizontal boundary determination unit 214 the pixel value of the input image to the deblocking filter 24 stored by the line memory 208, and the determination information used for determining the necessity of the filtering Is supplied.
  • Each vertical boundary determination unit 212 uses the input pixel value to the deblocking filter 24 to determine whether or not the deblocking filter should be applied to each vertical boundary. Then, each vertical boundary determination unit 212 outputs information indicating the determination result on each vertical boundary to the horizontal filtering block 130.
  • Each horizontal boundary determination unit 214 also uses the input pixel value to the deblocking filter 24 to determine whether or not the deblocking filter should be applied to each horizontal boundary. The determination process by each horizontal boundary determination unit 214 is performed in parallel with the determination process by each vertical boundary determination unit 212. Then, each horizontal boundary determination unit 214 outputs information indicating the determination result on each horizontal boundary to the vertical filtering block 140.
  • each vertical boundary judgment unit 212 refers to the pixels in the third and sixth rows of the block as in the existing method shown in FIG. It may be determined whether or not filtering is required for the vertical boundary of However, the pixel value to be referred to is the pixel value of the input image to the deblocking filter 24 stored by the line memory 208. Similarly, each horizontal boundary determination unit 214 may determine whether or not the filtering of the horizontal boundary of each block is necessary with reference to the pixels of the third and sixth columns of the block. In this case, the configuration according to the present embodiment can be easily realized without changing the determination condition of the filtering necessity determination process implemented in the existing apparatus.
  • each vertical boundary determination unit 212 may refer to pixels in three or more rows of the block at the time of determination.
  • each horizontal boundary determination unit 214 may refer to pixels in three or more columns of the block at the time of determination.
  • each vertical boundary determination unit 212 and each horizontal boundary determination unit 214 may use a determination condition expression different from the existing method.
  • FIGS. 24 to 26 six examples of determination methods that can be realized in the present embodiment will be described using FIGS. 24 to 26, respectively.
  • FIG. 24 is an explanatory view for respectively explaining first and second examples of the determination method.
  • the pixels of all the first to eighth columns of each block are referred to.
  • the determination condition of the luminance component may be defined as follows: -Judgment condition of luminance component (Luma) ... if both condition A and condition B are true-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 B: iD 0
  • iD 1
  • iD 2
  • the determination condition of the color difference component may be the same as the existing method described above.
  • a weighted average may be calculated when calculating the average value iDave of the four determination parameters iD 0 to iD 3 .
  • iD 1
  • iD 2
  • iD 3
  • Formulas for calculating the four determination parameters iD 0 to iD 3 are the same as in the first example.
  • a condition may be used that not all of the four determination parameters iD 0 to iD 3 but at least three, two or one fall below the edge determination threshold ⁇ .
  • FIG. 25 is an explanatory diagram for describing third and fourth examples of the determination method.
  • pixels in four rows L1, L3, L6, and L8 of each block are referred to in the filtering necessity determination processing (especially determination of the luminance component determination condition B) for the vertical boundary. Ru. Also in the filtering necessity determination process for the horizontal boundary, the pixels in the four columns of each block are referred to.
  • the determination condition of the luminance component may be defined as follows: -Judgment condition of luminance component (Luma) ... if both condition A and condition B are true-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 B: iD 0
  • iD 2
  • iD ave (iD 0
  • the determination condition of the color difference component may be the same as the existing method described above. Note that when two determination parameter iD 0 and calculating the average value iD ave of iD 2, weighted average may be calculated.
  • iD 2
  • Formulas for calculating the two determination parameters iD 0 and iD 2 are the same as in the third example. Note that the condition that at least one of the two determination parameters iD 0 and iD 2 but not at least one of them falls below the edge determination threshold ⁇ may be used.
  • first, third, sixth and eighth rows (or columns) L1, L3, L6 and L8 of the block are referred to in the determination, the example has been described. Combinations may be referenced.
  • FIG. 26 is an explanatory view for respectively explaining fifth and sixth examples of the determination method.
  • pixels in four rows L1, L3, L5 and L7 of each block are referred to in the filtering necessity determination processing for the vertical boundary.
  • the pixels in the four columns of each block are referred to.
  • the determination condition of the luminance component may be defined as follows: -Judgment condition of luminance component (Luma) ... if both condition A and condition B are true-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 B: iD 0
  • iD 2
  • iD ave (iD 0 +
  • the determination condition of the color difference component may be the same as the existing method described above. Note that when two determination parameter iD 0 and calculating the average value iD ave of iD 2, weighted average may be calculated.
  • iD 2
  • Formulas for calculating the two determination parameters iD 0 and iD 2 are the same as in the fifth example. Note that the condition that at least one of the two determination parameters iD 0 and iD 2 but not at least one of them falls below the edge determination threshold ⁇ may be used.
  • the variation of the parameter for each row or column may be excessively affected by comparing the average value iD ave of the determination parameter with the edge determination threshold value ⁇ . Instead, appropriate determination can be made on a block basis.
  • the deblocking filter 24 can operate at different degrees of parallelism.
  • the vertical boundary determination units 212-1 to 212-n parallelize necessity / non-necessity of filtering for all vertical boundaries included in a plurality of macroblocks in the input image. judge. Also, the horizontal boundary determination units 214-1 to 214-n determine in parallel whether or not it is necessary to filter all horizontal boundaries included in a plurality of macroblocks in the input image. The determination processing for these vertical boundaries and horizontal boundaries is also performed in parallel. Thereafter, the horizontal filtering units 132-1 to 132-n and the vertical filtering units 142-1 to 142-n apply the deblocking filter to the vertical boundary and the horizontal boundary determined to apply the deblocking filter, respectively ( See Figure 20).
  • the vertical boundary determination units 212-1 to 212-n parallelize the necessity of filtering for all vertical boundaries included in one target macroblock in the input image.
  • the horizontal boundary determination units 214-1 to 214-n determine the necessity of the filtering in parallel for all horizontal boundaries included in the target macroblock. The determination processing for these vertical boundaries and horizontal boundaries is also performed in parallel.
  • the horizontal filtering units 132-1 to 132-n apply the deblocking filter to the vertical boundary determined to apply the deblocking filter.
  • the vertical filtering units 142-1 to 142-n apply the deblocking filter to the horizontal boundary determined to apply the deblocking filter. Such processing is repeated for all macroblocks in the input image (see FIG. 21).
  • processing by the deblocking filter 24 is parallelized in various units such as a specific number (such as 2 or 4) of macroblocks or a group of blocks arranged horizontally or vertically. May be done. Also in the second embodiment, as in the first embodiment, the parallelism and the order of the processes in the deblocking filter 24 may be controlled by the parallelization control unit 150.
  • HEVC High Efficiency Video Coding Unit
  • LCU Large Coding Unit
  • an LCU of 64 ⁇ 64 pixels can be selected.
  • the smallest selectable CU size is 8 ⁇ 8 pixels.
  • processing is usually performed for each LCU in accordance with the order of raster scanning, starting from the LCU at the upper left of the picture (or slice). Therefore, in this section, an example of such processing for each LCU in the deblocking filter 24 will be described.
  • FIG. 27 is an explanatory diagram for describing an order of processing for each LCU related to the second embodiment described above.
  • the size of the LCU is 16 ⁇ 16 pixels
  • the size of the CU is 8 ⁇ 8 pixels.
  • the processes of the second stage on the upper right and the third stage on the lower left in FIG. 27 are processes for the n-th LCU.
  • filtering necessity determination processing for all vertical boundaries and all horizontal boundaries belonging to the n-th LCU is performed in parallel using input pixel values to the deblocking filter 24. It will be.
  • the filtering process for the vertical boundary determined to apply the deblock filter among the vertical boundaries belonging to the n-th LCU uses the input pixel value to the deblock filter 24. It is done in parallel.
  • the filtering process is performed in parallel on the horizontal boundaries determined to apply the deblock filter using the pixel values after the second stage processing. .
  • the fourth stage processing at the lower right of FIG. 27 is processing for the (n + 1) th LCU.
  • the filtering necessity determination processing for all vertical boundaries and all horizontal boundaries belonging to the (n + 1) th LCU is performed in parallel, in the fourth stage, the vertical boundaries determined to apply the deblocking filter The filtering process for is performed in parallel.
  • the size of the LCU is 16 ⁇ 16 pixels as an example, but the size of the LCU may be 32 ⁇ 32 pixels or 64 ⁇ 64 pixels.
  • the size of the selected LCU is larger, the number of vertical boundaries and horizontal boundaries belonging to one LCU also increases, so the effect of shortening the processing time by parallelization is further enhanced.
  • FIG. 28 is a flowchart showing an example of the flow of processing for each LCU by the deblocking filter 24.
  • the vertical boundary determination units 212-1 to 212-n determine the necessity of filtering in parallel for all vertical boundaries included in one target LCU in the input image (steps S252). Also, the horizontal boundary determination units 214-1 to 214-n determine in parallel whether or not it is necessary to filter all horizontal boundaries included in the target LCU (step S254). These steps S252 and S254 are also performed in parallel.
  • the horizontal filtering units 132-1 to 132-n apply the deblocking filter in parallel to the vertical boundaries in the target LCU determined to apply the deblocking filter in step S252 (step S260). .
  • the vertical filtering units 142-1 to 142-n apply deblocking filters in parallel to horizontal boundaries in the target LCU determined to apply the deblocking filter in step S254 (step S270). .
  • FIG. 29 is an explanatory diagram for describing an outline of this embodiment.
  • a graphic representing an input pixel also referred to as a “reconstruct pixel”
  • the input pixel to the deblocking filter is referenced not only in the filtering necessity determination process for the vertical border and the horizontal border but also in both the filtering process for the vertical border and the filtering process for the horizontal border. .
  • the dependency between these two filtering processes is eliminated. Also, these two filtering processes are performed in parallel.
  • the deblocking filter calculates one output pixel value from two filter outputs for pixels that are redundantly updated by two filters operating in parallel.
  • FIG. 30 is a block diagram showing an example of a detailed configuration of the deblocking filter 24 according to the third embodiment.
  • the deblocking filter 24 includes a line memory 208, a determination block 210, a horizontal filtering block 330, a vertical filtering block 340, a parallelization control unit 150, and a calculation unit 360.
  • the determination block 210 includes a plurality of vertical boundary determination units 212-1 to 212-n and a plurality of horizontal boundary determination units 214-1 to 214-n.
  • Each vertical boundary determination unit 212 and each horizontal boundary determination unit 214 may determine the necessity of filtering for each boundary according to various determination conditions as exemplified in the second embodiment.
  • the horizontal filtering block 330 includes a plurality of horizontal filtering units 332-1 to 332-n. Each horizontal filtering unit 332 is supplied with the input pixel value from the line memory 208 and the determination result of each vertical boundary from the determination block 210.
  • Each horizontal filtering unit 332 applies the deblock filter for the vertical boundary to the pixels on the left and right of the corresponding vertical boundary when the determination result by the corresponding vertical boundary determination unit 212 indicates that the filter should be applied. . Then, each horizontal filtering unit 332 outputs the pixel value after filtering for the pixel to which the filter is applied and the input pixel value for the other pixels to the calculation unit 360.
  • the vertical filtering block 340 includes a plurality of vertical filtering units 342-1 to 342-n. Each vertical filtering unit 342 is supplied with the input pixel value from the line memory 208 and the determination result on each horizontal boundary from the determination block 210.
  • Each vertical filtering unit 342 applies the deblock filter for the horizontal boundary to the pixels above and below the corresponding horizontal boundary when the determination result by the corresponding horizontal boundary determination unit 214 indicates that the filter should be applied. .
  • the filtering process by the vertical filtering units 342-1 to 342-n is performed in parallel with the filtering process by the horizontal filtering units 332-1 to 332-n. Then, each vertical filtering unit 342 outputs the pixel value after filtering for the pixel to which the filter is applied and the input pixel value for the other pixels to the calculation unit 360.
  • the output pixel value from the horizontal filtering block 330 and the output pixel value from the vertical filtering block 340 are supplied to the calculation unit 360 in parallel. Furthermore, the determination results from the vertical boundary determination unit 212 and the horizontal boundary determination unit 214 are supplied to the calculation unit 360.
  • the calculator 360 outputs the filter output from the horizontal filtering block 330 and the filter output from the vertical filtering block 340 for pixels filtered by both the horizontal filtering block 330 and the vertical filtering block 340 according to the supplied determination result. Calculate the output pixel value based on it.
  • the calculation unit 360 calculates an average of two filter outputs for pixels to be redundantly filtered.
  • the average of the two filter outputs calculated by the calculation unit 360 may be a simple average.
  • the calculator 360 may calculate a weighted average of the two filter outputs.
  • the calculator 360 may determine, for example, the weight of the weighted average for each pixel according to the distance to the vertical boundary of each pixel and the distance to the horizontal boundary.
  • FIG. 31 is an explanatory diagram for describing determination of weights for weighted averaging by the calculation unit 360.
  • the pixel of interest P Z is located in one of the overlapping position shown in FIG. 29 is shown in black.
  • the distance D V between the pixel of interest P Z and the nearest vertical boundary V Z is three pixels.
  • the distance D H between the pixel of interest P Z and the nearest horizontal boundary H Z is two pixels.
  • the distance D H is smaller than the distance D V.
  • calculation unit 360 a weight for the output of the deblock filter for horizontal boundary H Z, may be determined larger than the weight for the output of the deblock filter for vertical boundary V Z.
  • the weight ratio between the filter output V out for the vertical boundary V Z and the filter output H out for the horizontal boundary H Z is determined to be 2: 3.
  • the deblocking filter 24 may have one two-dimensional filter that simultaneously calculates horizontal filtering, vertical filtering and weighted average. However, in such a case, there is a need to vary the filter coefficients for each pixel, which makes the implementation extremely complicated.
  • the two-dimensional filter is substantially used while utilizing the existing deblocking filter mechanism. Equal processing can be easily realized.
  • the calculator 360 may weight each pixel according to the strength of the edge of the vertical boundary and the horizontal boundary corresponding to each pixel.
  • the weight of the average may be determined.
  • the edge strength here can be expressed by a parameter such as the value of the edge calculated by the calculation unit 122 shown in FIG. 16, for example.
  • the weight of the filter output for stronger edge boundaries may be determined to be greater than the weight of the filter output for weaker edge boundaries.
  • the calculation unit 360 selects the output from the block actually subjected to the filtering for the pixels filtered by one of the horizontal filtering block 330 and the vertical filtering block 340. In addition, for the pixels that are not filtered by any of the horizontal filtering block 330 and the vertical filtering block 340, the calculation unit 360 outputs the input pixel value to the deblocking filter 24 as it is.
  • the output pixel values from the calculation unit 360 according to the determination result of the necessity of filtering are shown in the table of FIG.
  • Example of order of processing Hereinafter, two examples of the processing order that can be realized by the deblocking filter 24 in the present embodiment will be described.
  • the input image includes four macroblocks MB0 to MB3 each having a size of 16 ⁇ 16 pixels.
  • FIG. 34 shows the order of processing when the dependency between the filtering processing for the vertical boundary and the filtering processing for the horizontal boundary remains.
  • the order of the processes shown in FIG. 34 is substantially the same as the order of the processes shown in FIG. 13 in relation to the first embodiment.
  • the filtering necessity determination process for all vertical boundaries and all horizontal boundaries of four macroblocks MB0 to MB3 J V0,0 to J V3,3 and J H0,0 to J H3 , 3 are executed in parallel.
  • filtering processes F V0,0 to F V3,3 are performed on 16 vertical boundaries of four macroblocks MB0 to MB3.
  • each pixel value after the filtering process for the horizontal boundary is stored in a memory for output from the deblocking filter 24.
  • FIG. 35 shows a first example of the order of processing implemented in the present embodiment.
  • the first step filtering necessity determining process J V0,0 on all four vertical boundary and all horizontal boundaries of macro blocks MB0 ⁇ MB3 ⁇ J V3,3 and J H0,0 ⁇ J H3 , 3 are executed in parallel.
  • the filtering processing F V0,0 to F V3,3 and F H0,0 to F H3,3 for all vertical boundaries and all horizontal boundaries of the four macroblocks MB0 to MB3 are performed in parallel. (In fact, only the boundaries determined to require filtering are filtered).
  • each pixel value is stored in a memory for output from the deblocking filter 24. In that case, for pixels filtered by both the horizontal filtering block 330 and the vertical filtering block 340, a weighted average of the two filter outputs may be calculated as an output pixel value.
  • FIG. 36 shows the order of processing for each macroblock in the case where the dependency between the filtering processing for the vertical boundary and the filtering processing for the horizontal boundary remains.
  • the order of the processes shown in FIG. 36 is substantially the same as the order of the processes shown in FIG. 14 in relation to the first embodiment.
  • four processing steps (sixth, tenth, fourteenth and sixteenth steps) for storing the pixel values in the memory for output, which are not shown for simplicity of explanation in FIG. It is clearly stated.
  • the process of FIG. 36 is composed of 16 process steps including these four process steps.
  • FIG. 37 shows a second example of the order of processing implemented in the present embodiment.
  • filtering necessity determination processing for four vertical boundaries and four horizontal boundaries of the macroblock MB0 are paralleled in parallel J V0,0 to J V0,3 and J H0,0 to J H0,3.
  • filtering processes F V0,0 to F V0,3 and F H0,0 to F H0,3 for four vertical boundaries and four horizontal boundaries of the macroblock MB0 are executed in parallel. Ru.
  • each pixel value of the macroblock MB0 is stored in the memory for output from the deblocking filter 24.
  • a weighted average of the two filter outputs may then be calculated as the output pixel value for pixels that have been redundantly filtered by the two filters.
  • the macroblock MB1 is processed in the fourth to sixth steps, the macroblock MB2 in the seventh to ninth steps, and the macroblock MB3 in the tenth to twelfth steps.
  • the process of FIG. 37 is composed of 12 process steps less than the process of FIG.
  • the processing in the deblocking filter 24 can be performed with fewer processing steps.
  • one of the advantages of referencing only the input pixel to the deblocking filter in the filtering process is that the filtering process for the vertical boundary and the filtering process for the horizontal boundary are performed regardless of how the filter taps are configured. There is no dependency between them. Therefore, it is possible to improve the image quality by configuring the filter taps from more pixels than the existing method. For example, in the existing approach, three pixels of filter taps were used on each side of each boundary, as described in connection with FIG.
  • the degree of parallelism and the order of processing in the deblocking filter 24 may be controlled by the parallelization control unit 150.
  • FIG. 38 is a flow chart showing an example of the flow of processing by the deblocking filter according to the third embodiment.
  • FIG. 39 is a flowchart showing an example of the flow of the pixel value calculation process shown in FIG.
  • the vertical boundary determination units 212-1 to 212-n determine in parallel whether or not filtering is necessary for all vertical boundaries in the input image (or in the macro block) (step S302). ). Also, the horizontal boundary determination units 214-1 to 214-n determine in parallel whether or not it is necessary to filter all horizontal boundaries in the input image (or in the macro block) (step S304). These steps S302 and S304 are also performed in parallel.
  • the horizontal filtering units 332-1 to 332-n apply deblocking filters in parallel to all vertical boundaries determined to apply the deblocking filter in step S302 (step S306). Also, the vertical filtering units 342-1 to 342-n apply deblocking filters in parallel to all the horizontal boundaries determined to apply the deblocking filter in step S304 (step S308). These steps S306 and S308 are also performed in parallel.
  • step S310 the pixel value calculation process shown in FIG. 39 is performed by the calculation unit 360 (step S310).
  • step S310 the processing from step S314 to step S326 is looped for each pixel to be processed (step S312).
  • step S314 the calculation unit 360 determines whether the pixel of interest has been filtered by both of the vertical and horizontal filters (step S314). Here, if the pixel of interest is filtered by both of the two filters, the process proceeds to step S322. On the other hand, when the pixel of interest is not filtered by both of the two filters, the process proceeds to step S316.
  • step S316 the calculation unit 360 determines whether the pixel of interest has been filtered by one of the two filters for the vertical boundary and the horizontal boundary (step S316). Here, if the pixel of interest is filtered by one of the two filters, the process proceeds to step S320. On the other hand, when the pixel of interest is not filtered by any filter, the process proceeds to step S318.
  • step S318 the calculation unit 360 acquires an input pixel value to the deblocking filter 24 (step S318).
  • step S320 the calculation unit 360 obtains the filter output from the filter that has actually performed the filtering on the target pixel (step S320).
  • step S322 the calculator 360 calculates the weight value for calculating the weighted average of the filter outputs from the two filters for the pixel of interest, for example, the distance to the vertical boundary of the pixel of interest and the distance to the horizontal boundary, or It is determined according to the strength of the edge of the vertical boundary and the horizontal boundary corresponding to the pixel (step S322). The calculator 360 then uses the determined weights to calculate a weighted average of the filter outputs from the two filters (step S324).
  • the calculation unit 360 stores the pixel value of the pixel of interest acquired in step S318 or step S320 or calculated in step S324 in the memory (step S326).
  • the series of processing shown in FIGS. 38 and 39 is finished.
  • a multi-view codec is an image coding scheme for coding and decoding so-called multi-view video.
  • FIG. 40 is an explanatory diagram for describing a multiview codec. Referring to FIG. 40, a sequence of frames of three views taken respectively at three viewpoints is shown. Each view is assigned a view ID (view_id). One of these multiple views is designated as a base view. Views other than the base view are called non-base views. In the example of FIG. 40, a view whose view ID is "0" is a base view, and two views whose view ID is "1" or "2" are non-base views.
  • the data size of the encoded stream as a whole may be compressed by encoding the non-baseview frame based on the encoding information for the baseview frame.
  • a deblocking filter may be applied to each view in the encoding and decoding processes according to the multiview codec described above.
  • the filtering necessity determination process for vertical block boundaries and horizontal block boundaries in each view may be parallelized in accordance with the technology according to the present disclosure.
  • the filtering necessity determination process and the filtering process in each view may be parallelized.
  • parameters for controlling the filtering necessity determination process or the filtering process may be set for each view.
  • parameters set in the base view may be reused in the non-base view.
  • the filtering necessity determination process or the filtering process may be parallelized across multiple views.
  • Parameters for controlling the filtering necessity determination process or the filtering process may be standardized across a plurality of views.
  • a flag may be additionally specified to indicate whether or not parameters are shared across multiple views.
  • FIG. 41 is an explanatory diagram for describing an application of the image coding process described above to a multiview codec. Referring to FIG. 41, the configuration of an exemplary multi-view coding device 710 is shown.
  • the multiview coding apparatus 710 includes a first coding unit 720, a second coding unit 730, and a multiplexing unit 740.
  • the first encoding unit 720 encodes the base view image to generate a base view encoded stream.
  • the second encoding unit 730 encodes the non-base view image to generate a non-base view encoded stream.
  • the multiplexing unit 740 multiplexes the coded stream of the base view generated by the first coding unit 720 and the coded stream of one or more non-base views generated by the second coding unit 730, Generate a multiview multiplexed stream.
  • the first encoding unit 720 and the second encoding unit 730 illustrated in FIG. 41 have the same configuration as the image encoding device 10 according to the above-described embodiment. Thereby, upon application of the deblocking filter to each view, it is possible to parallelize the filtering necessity determination process for vertical block boundaries and horizontal block boundaries, or to parallelize the filtering necessity determination process and the filtering process. Become. Parameters for controlling these processes may be inserted into the header area of the coded stream of each view, or may be inserted into a common header area in the multiplexed stream.
  • FIG. 42 is an explanatory diagram for describing an application of the image decoding processing described above to a multiview codec.
  • the multiview decoding device 760 includes an inverse multiplexing unit 770, a first decoding unit 780, and a second decoding unit 790.
  • the demultiplexing unit 770 demultiplexes the multiview multiplexed stream into a baseview coded stream and one or more non-base view coded streams.
  • the first decoding unit 780 decodes a base view image from the base view coded stream.
  • the second decoding unit 730 decodes the non-base view image from the non-base view coded stream.
  • the first decoding unit 780 and the second decoding unit 790 illustrated in FIG. 42 have the same configuration as the image decoding device 60 according to the above-described embodiment. Thereby, upon application of the deblocking filter to each view, it is possible to parallelize the filtering necessity determination process for vertical block boundaries and horizontal block boundaries, or to parallelize the filtering necessity determination process and the filtering process. Become. Parameters for controlling these processes may be obtained from the header area of the coded stream of each view, or may be obtained from a common header area in the multiplexed stream.
  • FIG. 43 is an explanatory diagram for describing a scalable codec.
  • a sequence of frames of three layers different in spatial resolution, temporal resolution or image quality is shown.
  • Each layer is assigned a layer ID (layer_id).
  • the layer having the lowest resolution (or image quality) among the plurality of layers is a base layer.
  • Layers other than the base layer are called enhancement layers.
  • a layer whose layer ID is “0” is a base layer
  • two layers whose layer ID is “1” or “2” are enhancement layers.
  • a deblocking filter may be applied to each layer in the encoding process and the decoding process according to the scalable codec described above.
  • the filtering necessity determination process for vertical block boundaries and horizontal block boundaries in each layer may be parallelized according to the technology according to the present disclosure.
  • the filtering necessity determination process and the filtering process in each layer may be parallelized.
  • parameters for controlling the filtering necessity determination process or the filtering process may be set for each layer.
  • parameters set in the base layer may be reused in the enhancement layer.
  • the filtering necessity determination process or the filtering process may be parallelized across multiple layers.
  • Parameters for controlling the filtering necessity determination process or the filtering process may be standardized across multiple layers.
  • a flag indicating whether parameters are shared across multiple layers may be additionally specified.
  • FIG. 44 is an explanatory diagram for describing an application of the image coding process described above to a scalable codec.
  • the scalable coding apparatus 810 includes a first coding unit 820, a second coding unit 830, and a multiplexing unit 840.
  • the first coding unit 820 codes the base layer image to generate a coded stream of the base layer.
  • the second coding unit 830 codes the enhancement layer image to generate a coded stream of the enhancement layer.
  • the multiplexing unit 840 multiplexes the base layer coded stream generated by the first coding unit 820 and the coded stream of one or more enhancement layers generated by the second coding unit 830, Generate a multiplexed stream of layers.
  • the first encoding unit 820 and the second encoding unit 830 illustrated in FIG. 44 have the same configuration as the image encoding device 10 according to the above-described embodiment.
  • Parameters for controlling these processes may be inserted into the header area of the encoded stream of each layer, or may be inserted into a common header area in the multiplexed stream.
  • FIG. 45 is an explanatory diagram for describing an application of the image decoding process described above to a scalable codec.
  • the scalable decoding device 860 includes a demultiplexer 870, a first decoding unit 880, and a second decoding unit 890.
  • the demultiplexing unit 870 demultiplexes the multiplexed stream of the multilayer into the coded stream of the base layer and the coded stream of one or more enhancement layers.
  • the first decoding unit 880 decodes a base layer image from the coded stream of the base layer.
  • the second decoding unit 830 decodes the enhancement layer image from the enhancement layer coded stream.
  • the first decoding unit 880 and the second decoding unit 890 illustrated in FIG. 45 have the same configuration as the image decoding device 60 according to the above-described embodiment.
  • the deblocking filter upon application of the deblocking filter to each layer, it is possible to parallelize filtering necessity determination processing for vertical block boundaries and horizontal block boundaries or to parallelize filtering necessity determination processing and filtering processing.
  • Parameters for controlling these processes may be obtained from the header area of the coded stream of each layer, or may be obtained from a common header area in the multiplexed stream.
  • 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. 46 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. 47 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. 48 shows an example of a schematic configuration of a recording and reproducing apparatus to which the embodiment described above is applied.
  • the recording / reproducing device 940 encodes, for example, audio data and video data of the received broadcast program, and records the encoded data on a recording medium.
  • the recording and reproduction device 940 may encode, for example, audio data and video data acquired from another device and record the encoded data on a recording medium.
  • the recording / reproducing device 940 reproduces the data recorded on the recording medium on the monitor and the speaker, for example, in accordance with the user's instruction. At this time, the recording / reproducing device 940 decodes the audio data and the video data.
  • the recording / reproducing apparatus 940 includes a tuner 941, an external interface 942, an encoder 943, an HDD (Hard Disk Drive) 944, a disk drive 945, a selector 946, a decoder 947, an OSD (On-Screen Display) 948, a control unit 949, and a user interface. And 950.
  • the tuner 941 extracts a signal of a desired channel from a broadcast signal received via an antenna (not shown) and demodulates the extracted signal. Then, the tuner 941 outputs the coded bit stream obtained by demodulation to the selector 946. That is, the tuner 941 has a role as a transmission means in the recording / reproducing device 940.
  • the external interface 942 is an interface for connecting the recording and reproducing device 940 to an external device or a network.
  • the external interface 942 may be, for example, an IEEE 1394 interface, a network interface, a USB interface, or a flash memory interface.
  • video data and audio data received via the external interface 942 are input to the encoder 943. That is, the external interface 942 has a role as a transmission unit in the recording / reproducing device 940.
  • the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the coded bit stream to the selector 946.
  • the HDD 944 records an encoded bit stream obtained by compressing content data such as video and audio, various programs, and other data in an internal hard disk. Also, the HDD 944 reads these data from the hard disk when reproducing video and audio.
  • the disk drive 945 records and reads data on the attached recording medium.
  • the recording medium mounted on the disk drive 945 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. 49 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 pixel values used for determining the necessity of applying the deblock filter for the vertical boundary are the pixel values of the pixels belonging to the row to which the deblock filter for the horizontal boundary is not applied. It is a pixel value.
  • the pixel values used for determining the necessity of application of the deblock filter for the horizontal boundary are pixel values of pixels belonging to the row to which the deblock filter for the vertical boundary is not applied. That is, the pixel values used for the filtering necessity determination process for one block are not updated by the filtering process for another block. Therefore, even when the filtering process for another block is performed before the filtering necessity determination process for a certain block, it is not necessary to hold the input pixel value to the deblocking filter in a separate memory. Thus, the cost of hardware required to implement the device can be saved.
  • the input pixel value to the deblocking filter is stored in the memory not updated in the filtering process, and the input pixel value is referred to in the filtering necessity determination process.
  • the filtering necessity determination process there is no restriction on the position of the pixel to be referred to in the filtering necessity determination process, and therefore, for various purposes (for example, more accurate determination of the necessity of filtering or determination with less processing cost) It is possible to use flexible judgment conditions according to the situation.
  • input pixels to the deblocking filter are filtered in both the filtering process for the vertical boundary and the horizontal boundary.
  • the processing in the deblocking filter can be further speeded up.
  • an output pixel value is calculated based on the two filter outputs.
  • the output pixel value may be calculated as a weighted average of the two filter outputs.
  • 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.
  • the filtering process on the vertical boundary is expressed as “horizontal filtering”, and the filtering process on the horizontal boundary is expressed as “vertical filtering”.
  • the filter taps of the filtering process for the vertical boundary are arranged along the horizontal direction, and the filter taps of the filtering process for the horizontal boundary are arranged along the vertical direction. Therefore, the name of the filtering process as described above is adopted.

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の例について説明するための説明図である。 処理の順序の第2の例について説明するための説明図である。 第1の実施例に係るデブロックフィルタの詳細な構成の一例を示すブロック図である。 判定部のさらに詳細な構成の一例を示すブロック図である。 スライス境界を挟んで隣接するブロックの一例について説明するための説明図である。 スライスごとの処理の順序の第1の例について説明するための説明図である。 スライスごとの処理の順序の第2の例について説明するための説明図である。 一実施形態に係るデブロックフィルタによる処理の流れの第1の例を示すフローチャートである。 一実施形態に係るデブロックフィルタによる処理の流れの第2の例を示すフローチャートである。 一実施形態に係るフィルタリング要否判定処理の流れの一例を示すフローチャートである。 第2の実施例に係るデブロックフィルタの詳細な構成の一例を示すブロック図である。 第2の実施例において実現され得る判定の手法の第1及び第2の例について説明するための説明図である。 第2の実施例において実現され得る判定の手法の第3及び第4の例について説明するための説明図である。 第2の実施例において実現され得る判定の手法の第5及び第6の例について説明するための説明図である。 LCUごとの処理の順序について説明するための説明図である。 LCUごとの処理の流れの一例を示すフローチャートである。 第3の実施例の概略について説明するための説明図である。 第3の実施例に係るデブロックフィルタの詳細な構成の一例を示すブロック図である。 加重平均のための重みの決定について説明するための説明図である。 加重平均のための重みの一例について説明するための説明図である。 第3の実施例に係る計算部からの出力画素値について説明するための説明図である。 比較のための処理の順序の第1の例について説明するための説明図である。 第3の実施例において実現される処理の順序の第1の例について説明するための説明図である。 比較のための処理の順序の第2の例について説明するための説明図である。 第3の実施例において実現される処理の順序の第2の例について説明するための説明図である。 第3の実施例に係るデブロックフィルタによる処理の流れの一例を示すフローチャートである。 図38に示した画素値計算処理の流れの一例を示すフローチャートである。 マルチビューコーデックについて説明するための説明図である。 一実施形態に係る画像符号化処理のマルチビューコーデックへの適用について説明するための説明図である。 一実施形態に係る画像復号処理のマルチビューコーデックへの適用について説明するための説明図である。 スケーラブルコーデックについて説明するための説明図である。 一実施形態に係る画像符号化処理のスケーラブルコーデックへの適用について説明するための説明図である。 一実施形態に係る画像復号処理のスケーラブルコーデックへの適用について説明するための説明図である。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。
 以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付すことにより重複説明を省略する。
 また、以下の順序にしたがって当該「発明を実施するための形態」を説明する。
  1.装置の概要
   1-1.画像符号化装置
   1-2.画像復号装置
  2.既存の手法の説明
   2-1.デブロックフィルタの基本的な構成
   2-2.既存の手法における処理間の依存関係
  3.第1の実施例
   3-1.デブロックフィルタの構成例
   3-2.処理の流れ
  4.第2の実施例
   4-1.デブロックフィルタの構成例
   4-2.処理の流れ
   4-3.LCUごとの処理の例
  5.第3の実施例
   5-1.概略
   5-2.デブロックフィルタの構成例
   5-3.処理の順序の例
   5-4.処理の流れ
  6.様々なコーデックへの適用
   6-1.マルチビューコーデック
   6-2.スケーラブルコーデック
  7.応用例
  8.まとめ
 <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は、アナログ形式で入力される画像信号をデジタル形式の画像データに変換し、一連のデジタル画像データを並べ替えバッファ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は、量子化部15から入力される量子化データについて逆量子化処理を行う。そして、逆量子化部21は、逆量子化処理により取得される変換係数データを、逆直交変換部22へ出力する。
 逆直交変換部22は、逆量子化部21から入力される変換係数データについて逆直交変換処理を行うことにより、予測誤差データを復元する。そして、逆直交変換部22は、復元した予測誤差データを加算部23へ出力する。
 加算部23は、逆直交変換部22から入力される復元された予測誤差データとモード選択部50から入力される予測画像データとを加算することにより、復号画像データを生成する。そして、加算部23は、生成した復号画像データをデブロックフィルタ24a及びフレームメモリ25へ出力する。
 デブロックフィルタ24aは、画像の符号化の際に生じるブロック歪みを減少させるためのフィルタリング処理を行う。例えば、デブロックフィルタ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などの既存の画像符号化方式におけるデブロックフィルタによる処理は、フィルタリング要否判定処理及びフィルタリング処理という2種類の処理を含む。以下、HEVCを例にとって、これら2つの処理について説明する。
   (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において点線枠L3及びL6で示しているように、一般的な垂直境界についてのフィルタリング要否判定処理(特に、輝度成分の判定条件Bの判定)では、各ブロックの3番目及び6番目の行(最も上の行を1番目とする)の画素が参照される。同様に、水平境界についてのフィルタリング要否判定処理では、各ブロックの3番目及び6番目の列の画素(図4には示していない)が参照される。そして、上述した判定条件に従ってデブロックフィルタを適用すべきと判定された境界について、次に説明するフィルタリング処理が行われる。
   (2)フィルタリング処理
 ある境界についてデブロックフィルタを適用すべきと判定されると、垂直境界については当該境界の左右の画素、水平境界については当該境界の上下の画素に、フィルタリング処理が行われる。輝度成分については、画素値に応じてフィルタ強度が強(strong)フィルタと弱(weak)フィルタとの間で切り替えられ得る。
 ・輝度成分のフィルタリング
  -強度選択・・・1行ごと(又は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|である。
  -弱フィルタリング:
   Δ=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-Δ)
 即ち、図5において点線枠C6~C8及びC1~C3で示しているように、一般的な垂直境界についてのフィルタリング処理(特に、輝度成分の強フィルタリング)では、各ブロックの1~3番目及び6~8番目の列の画素値が更新される。同様に、水平境界についてのフィルタリング処理では、各ブロックの1~3番目及び6~8番目の行の画素値が更新される。
  [2-2.既存の手法における処理間の依存関係]
 ここで、説明のために、図6に示したように、16×16画素のサイズを有するマクロブロックMBx(MB0、MB1…)の左上の垂直境界をVx,0、中央上の垂直境界をVx,1、左下の垂直境界をVx,2、中央下の垂直境界をVx,3、左上の水平境界をHx,0、右上の水平境界をHx,1、左中央の水平境界をHx,2、右中央の水平境界をHx,3、と表すものとする。また、例えば境界Zについてのフィルタリング要否判定処理をJ、フィルタリング処理をFなどと表すものとする。
 上述した既存の手法では、1つのマクロブロック内で同一方向の複数の境界についての処理の間に依存関係が存在しない。そのため、例えば1つのマクロブロック内で複数の垂直境界についてのフィルタリングを並列的に実行し、及び複数の水平境界についてのフィルタリングを並列的に実行することができる。一例として、図7を参照すると、マクロブロックMB0内で、4つのフィルタリング処理FV0,0、FV0,1、FV0,2及びFV0,3の間に依存関係がなく(即ち、重複して更新される画素がなく)、これらを並列的に実行できることが分かる。
 しかし、上述した既存の手法では、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング要否判定処理との間の依存関係は残される。また、水平境界についてのフィルタリング処理と垂直境界についてのフィルタリング要否判定処理との間の依存関係も残される。従って、例えば垂直境界を水平境界よりも先に処理する場合、あるマクロブロック内での水平境界についてのフィルタリング要否判定処理は、垂直境界についてのフィルタリング処理の終了を待って実行されることになる。一例として、図8を参照すると、マクロブロックMB0内で、フィルタリング処理FV0,0及びFV0,1の結果にフィルタリング要否判定処理JH0,0が依存し、フィルタリング処理FV0,1の結果にフィルタリング要否判定処理JH0,1が依存することが示されている。同様に、あるマクロブロック内での垂直境界についてのフィルタリング要否判定処理は、隣りのマクロブロックの水平境界についてのフィルタリング処理の終了を待って実行されることになる。一例として、図9を参照すると、マクロブロックMB0のフィルタリング処理FH0,1及びFH0,3の結果にマクロブロックMB1のフィルタリング要否判定処理JV1,0が依存し、マクロブロックMB0のフィルタリング処理FH0,3の結果にマクロブロックMB1のフィルタリング要否判定処理JV1,2が依存することが示されている。
 既存の手法は、このような処理間の依存関係を有しているため、例えばJCTVC-A119において提案された手法を採用したとしても、非常に限られた範囲でしかデブロックフィルタの処理の並列化を達成することができない。
 図10は、既存の手法におけるデブロックフィルタの処理の順序の一例について説明するための説明図である。ここでは、一例として、32×32画素のサイズを有する画像がデブロックフィルタに入力されるものとする。当該入力画像は、それぞれ16×16画素のサイズを有する4つのマクロブロックMB0~MB3を含む。
 図10を参照すると、並列的に実行され得る処理が各点線枠内にそれぞれ示されている。例えば、第1ステップでは、マクロブロックMB0の4つの垂直境界についてのフィルタリング要否判定処理JV0,0、JV0,1、JV0,2及びJV0,3が並列的に実行される。次に、第2ステップでは、マクロブロックMB0の4つの垂直境界についてのフィルタリング処理FV0,0、FV0,1、FV0,2及びFV0,3が並列的に実行される。次に、第2ステップが終了した後、第3ステップにおいて、マクロブロックMB0の4つの水平境界についてのフィルタリング要否判定処理JH0,0、JH0,1、JH0,2及びJH0,3が並列的に実行される。次に、第4ステップでは、マクロブロックMB0の4つの水平境界についてのフィルタリング処理FH0,0、FH0,1、FH0,2及びFH0,3が並列的に実行される。次に、第4ステップが終了した後、マクロブロックMB1についての処理(第5ステップ~第8ステップ)が順次行われる。次に、マクロブロックMB1についての処理が終了した後、マクロブロックMB2についての処理(第9ステップ~第12ステップ)が順次行われる。次に、マクロブロックMB2についての処理が終了した後、マクロブロックMB3についての処理(第13ステップ~第16ステップ)が順次行われる。
 このような限られた範囲での処理の並列化では、デブロックフィルタの適用に際しての多大な処理量を原因とする遅延又はデータレートの低下などの課題が十分に解決されるとは言い難い。そこで、以下に説明するデブロックフィルタの3つの実施例により、デブロックフィルタの適用に際しての処理のさらなる並列化を実現する。
 <3.第1の実施例>
  [3-1.デブロックフィルタの構成例]
 本節では、図1に示した画像符号化装置10のデブロックフィルタ24a及び図2に示した画像復号装置60のデブロックフィルタ24bの第1の実施例に係る構成の一例を説明する。なお、デブロックフィルタ24a及びデブロックフィルタ24bの構成は、共通であってよい。従って、これ以降の説明では、特に両者を区別する必要が無い場合には、デブロックフィルタ24a及びデブロックフィルタ24bをデブロックフィルタ24と総称する。
  (1)新たな処理間の依存関係
 本実施例においても、デブロックフィルタ24による処理は、上述したフィルタリング要否判定処理及びフィルタリング処理という2種類の処理を含む。但し、デブロックフィルタ24は、既存の手法とは異なる参照画素の画素値に基づいて、各垂直境界及び各水平境界についてデブロックフィルタを適用すべきか否かを判定する。より具体的には、デブロックフィルタ24は、垂直境界についての判定に際しては、垂直境界を挟んで隣接するブロックの画素のうち水平境界についてのデブロックフィルタが適用されない行に属する画素を参照画素とする。また、デブロックフィルタ24は、水平境界についての判定に際しては、水平境界を挟んで隣接するブロックの画素のうち垂直境界についてのデブロックフィルタが適用されない列に属する画素を参照画素とする。なお、本項においても、一例として、デブロックフィルタ24による処理は8×8画素のブロックサイズを1つの処理単位とするものとする。
 図11は、デブロックフィルタ24による垂直境界についてのフィルタリング要否判定処理における参照画素について説明するための説明図である。図11を参照すると、16×16画素のサイズを有するマクロブロックMB0が示されている。デブロックフィルタ24は、このようなマクロブロックMB0の4つの垂直境界についてのフィルタリングの要否を、各ブロックの4番目及び5番目の行(L4及びL5)の少なくとも一方に属する画素を参照画素として用いて判定する。これら2つの行は、水平境界についてのデブロックフィルタが適用されない行である(図9参照)。このような構成により、水平境界についてのフィルタリング処理と垂直境界についてのフィルタリング要否判定処理との間の依存関係は解消される。
 図12は、デブロックフィルタ24による水平境界についてのフィルタリング要否判定処理における参照画素について説明するための説明図である。図12を参照すると、再びマクロブロックMB0が示されている。デブロックフィルタ24は、このようなマクロブロックMB0の4つの水平境界についてのフィルタリングの要否を、各ブロックの4番目及び5番目の列(C4及びC5)の少なくとも一方に属する画素を参照画素として用いて判定する。これら2つの列は、垂直境界についてのデブロックフィルタが適用されない列である(図7又は図8参照)。このような構成により、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング要否判定処理との間の依存関係も解消される。
 このように処理間の依存関係が解消される結果として、1つのマクロブロック内で垂直境界及び水平境界についてのフィルタリング要否判定処理を並列化することが可能となる。また、マクロブロック間で処理を並列化することも可能となる。例えば、入力画像内の全てのマクロブロックの垂直境界及び水平境界についてのフィルタリング要否判定処理を並列的に行うこともできる。
 図13は、デブロックフィルタ24により実現可能な処理の順序の第1の例について説明するための説明図である。ここでも、一例として、32×32画素のサイズを有する画像がデブロックフィルタに入力されるものとする。当該入力画像は、それぞれ16×16画素のサイズを有する4つのマクロブロックMB0~MB3を含む。
 図13を参照すると、並列的に実行され得る処理が各点線枠内にそれぞれ示されている。図10の例では一連の処理に16個の処理ステップを要していたのに対し、図13の例では、同じ数の処理が3個の処理ステップに集約されている。即ち、第1ステップでは、全てのマクロブロックMB0~MB3の全ての垂直境界及び全ての水平境界についてのフィルタリング要否判定処理JV0,0~JV3,3及びJH0,0~JH3,3が並列的に実行される。次に、第2ステップでは、全てのマクロブロックMB0~MB3の16個の垂直境界についてのフィルタリング処理FV0,0~FV3,3が並列的に実行される。次に、第3ステップでは、全てのマクロブロックMB0~MB3の16個の水平境界についてのフィルタリング処理FH0,0~FH3,3が並列的に実行される。なお、第2ステップと第3ステップとは、順序が逆であってもよい。
 図13はマクロブロック間の処理の並列化により並列度(並列的に実行される処理の多さ)を最大限に高める例である一方、デブロックフィルタ24は、図14の例のように、マクロブロックごとの処理を実現することもできる。
 図14の例では、図10及び図13と同じ数の処理が、12個の処理ステップに集約されている。即ち、第1ステップでは、マクロブロックMB0の4つの垂直境界及び4つの水平境界についてのフィルタリング要否判定処理JV0,0~JV0,3及びJH0,0~JH0,3が並列的に実行される。次に、第2ステップでは、マクロブロックMB0の4つの垂直境界についてのフィルタリング処理FV0,0~FV0,3が並列的に実行される。次に、第3ステップでは、マクロブロックMB1の4つの垂直境界及び4つの水平境界についてのフィルタリング要否判定処理JV1,0~JV1,3及びJH1,0~JH1,3が並列的に実行される。次に、第4ステップでは、マクロブロックMB1の4つの垂直境界についてのフィルタリング処理FV1,0~FV1,3が並列的に実行される。次に、第5ステップでは、マクロブロックMB0の4つの水平境界についてのフィルタリング処理FH0,0~FH0,3が並列的に実行される。次に、第6ステップでは、マクロブロックMB2の4つの垂直境界及び4つの水平境界についてのフィルタリング要否判定処理JV2,0~JV2,3及びJH2,0~JH2,3が並列的に実行される。次に、第7ステップでは、マクロブロックMB2の4つの垂直境界についてのフィルタリング処理FV2,0~FV2,3が並列的に実行される。次に、第8ステップでは、マクロブロックMB1の4つの水平境界についてのフィルタリング処理FH1,0~FH1,3が並列的に実行される。次に、第9ステップでは、マクロブロックMB3の4つの垂直境界及び4つの水平境界についてのフィルタリング要否判定処理JV3,0~JV3,3及びJH3,0~JH3,3が並列的に実行される。次に、第10ステップでは、マクロブロックMB3の4つの垂直境界についてのフィルタリング処理FV3,0~FV3,3が並列的に実行される。次に、第11ステップでは、マクロブロックMB2の4つの水平境界についてのフィルタリング処理FH2,0~FH2,3が並列的に実行される。次に、第12ステップでは、マクロブロックMB3の4つの水平境界についてのフィルタリング処理FH3,0~FH3,3が並列的に実行される。この場合にも、図13の例よりは並列度は下がるものの、既存の手法よりも少ない数の処理ステップで入力画像全体についてのデブロックフィルタ24の処理を実行することができる。
  (2)デブロックフィルタの詳細な構成
 図15は、上述した並列処理を実現する第1の実施例に係るデブロックフィルタ24の詳細な構成の一例を示すブロック図である。図15を参照すると、デブロックフィルタ24は、判定ブロック110、水平フィルタリングブロック130、垂直フィルタリングブロック140及び並列化制御部150を有する。
  (2-1)判定ブロック
 判定ブロック110は、複数の垂直境界判定部112-1~112-n及び複数の水平境界判定部114-1~114-nを含む。各垂直境界判定部112及び各水平境界判定部114には、デブロックフィルタ24への入力画像、及びフィルタリングの要否の判定のために使用される判定情報が供給される。
 各垂直境界判定部112は、図11に例示したような水平境界についてのデブロックフィルタが適用されない行に属する参照画素の画素値を用いて、各垂直境界についてデブロックフィルタを適用すべきか否かを判定する。ここでの参照画素の画素値は、デブロックフィルタ24への入力画素値である。そして、各垂直境界判定部112は、各垂直境界についての判定結果を示す情報(例えば、"1"がデブロックフィルタを適用すべきとの判定結果を示す二値情報)を、水平フィルタリングブロック130へ出力する。
 各水平境界判定部114は、図12に例示したような垂直境界についてのデブロックフィルタが適用されない列に属する参照画素の画素値を用いて、各水平境界についてデブロックフィルタを適用すべきか否かを判定する。ここでの参照画素の画素値もまた、デブロックフィルタ24への入力画素値である。各水平境界判定部114による判定処理は、各垂直境界判定部112による判定処理と並列的に行われる。そして、各水平境界判定部114は、各水平境界についての判定結果を示す情報を、垂直フィルタリングブロック140へ出力する。
 図16は、各垂直境界判定部112及び各水平境界判定部114のさらに詳細な構成の一例を示すブロック図である。図16を参照すると、各判定部は、タップ構築部121、演算部122、閾値比較部123、歪み評価部124及びフィルタリング判定部125を含む。
 タップ構築部121は、入力画像内で注目する境界を挟んで隣接する2つのブロックの画素値から参照画素の画素値を取得し、上述した輝度成分の判定条件Bの判定のためのタップ(参照画素値のセット)を構築する。例えば、各ブロックのサイズが8×8画素である場合において、注目する境界が垂直境界であるときは、タップ構築部121は、左右2つのブロックの4番目及び5番目の行の一方又は双方に属する画素値からタップを構築する。また、注目する境界が水平境界であるときは、タップ構築部121は、上下2つのブロックの4番目及び5番目の列の一方又は双方に属する画素値からタップを構築する。演算部122は、タップ構築部121により構築されたタップを判定条件Bの判定式の左辺に代入し、エッジ判定閾値βと比較されるエッジの値を算出する。閾値比較部123は、演算部122により算出された値をエッジ判定閾値βと比較し、比較結果をフィルタリング判定部125へ出力する。
 歪み評価部124は、判定情報として供給されるモード情報(MBモード)、変換係数情報及び動きベクトル情報を用いて、上述した輝度成分の判定条件Aを評価する。そして、歪み評価部124は、評価結果をフィルタリング判定部125へ出力する。なお、色差成分については、歪み評価部124によるモード情報に基づく判定条件A1についての判定のみが行われ得る。
 フィルタリング判定部125は、閾値比較部123から入力される判定条件Bについての比較結果と、歪み評価部124から入力される判定条件Aについての評価結果とに基づいて、注目する境界についてデブロックフィルタを適用すべきか否かを判定する。そして、フィルタリング判定部125は、判定結果を示す情報を出力する。
  (2-2)水平フィルタリングブロック
 図15に戻り、デブロックフィルタ24の構成の説明を継続する。水平フィルタリングブロック130は、複数の水平フィルタリング部132-1~132-nを含む。各水平フィルタリング部132には、入力画像及び判定ブロック110からの各垂直境界についての判定結果が供給される。
 各水平フィルタリング部132は、対応する垂直境界判定部112による判定結果がフィルタを適用すべきことを示している場合に、対応する垂直境界の左右の画素に垂直境界についてのデブロックフィルタを適用する。そして、各水平フィルタリング部132は、フィルタを適用した画素についてはフィルタリング後の画素値、その他の画素については入力画像の画素値を、垂直フィルタリングブロック140へ出力する。
  (2-3)垂直フィルタリングブロック
 垂直フィルタリングブロック140は、複数の垂直フィルタリング部142-1~142-nを含む。各垂直フィルタリング部142には、入力画像及び判定ブロック110からの各水平境界についての判定結果が供給される。
 各垂直フィルタリング部142は、対応する水平境界判定部114による判定結果がフィルタを適用すべきことを示している場合に、対応する水平境界の上下の画素に水平境界についてのデブロックフィルタを適用する。そして、各垂直フィルタリング部142は、フィルタを適用した画素についてはフィルタリング後の画素値、その他の画素については水平フィルタリングブロック130から供給された画素値を出力する。各垂直フィルタリング部142からの出力は、デブロックフィルタ24からの出力画像を構成し得る。
  (2-4)並列化制御部
 並列化制御部150は、判定ブロック110におけるフィルタリング要否判定処理の並列度、並びに水平フィルタリングブロック130及び垂直フィルタリングブロック140におけるフィルタリング処理の並列度を制御する。
 例えば、並列化制御部150は、入力画像のサイズに基づいて、各ブロックの処理の並列度を制御してもよい。より具体的には、並列化制御部150は、入力画像のサイズが相対的に大きい場合に、各ブロックの処理の並列度を高める。それにより、画像のサイズに応じて増加する処理量を原因とする遅延又はデータレートの低下を適応的に防止することができる。また、例えば、並列化制御部150は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ内に含まれるパラメータに基づいて、各ブロックの処理の並列度を制御してもよい。それにより、装置を開発するユーザごとの要件に応じて柔軟に並列度を設定することが可能となる。例えば、プロセッサのコア数又はソフトウェアのスレッド数などの実装環境の制約に応じて並列度が設定されてもよい。
 さらに、本実施例において、マクロブロック間の処理の並列化が可能ということは、画像内のブロックごとの処理の順序をどのように設定しても最終的に出力される結果に影響がないことを意味する。そこで、並列化制御部150は、判定ブロック110におけるフィルタリング要否判定処理の順序、並びに水平フィルタリングブロック130及び垂直フィルタリングブロック140におけるフィルタリング処理の順序をブロックごとに制御し得る。
 より具体的には、並列化制御部150は、マクロブロック間のフィルタリング処理の依存関係に応じて、フィルタリング処理の順序を制御してもよい。例えば、既存の手法において、画像内のスライスごとの並列処理を実装しようとすると、スライス境界を挟んで隣接するマクロブロック間の処理の依存関係が処理の遅延を引き起こす場合がある。しかし、本実施例では、並列化制御部150は、スライス境界に隣接するマクロブロックについてのフィルタリング処理を他のマクロブロックよりも先に行わせることができる。
 例えば、図17には、スライス境界を挟んで隣接する8つのマクロブロックMB10~MB13及びMB20~MB23が示されている。このうち、マクロブロックMB10~MB13は、スライスSL1に属する。マクロブロックMB20~MB23は、スライスSL2に属する。これらマクロブロックのうち、スライスSL2のマクロブロックMB20の水平境界についてのフィルタリング処理は、スライスSL1のマクロブロックMB12の垂直境界についてのフィルタリング処理に依存する。同様に、スライスSL2のマクロブロックMB21の水平境界についてのフィルタリング処理は、スライスSL1のマクロブロックMB13の垂直境界についてのフィルタリング処理に依存する。
 このような状況において、図18の例のように、並列化制御部150は、例えば、スライスSL1のフィルタリング処理のうちマクロブロックMB12及びMB13の垂直境界についてのフィルタリング処理を他の境界についての処理よりも優先的に実行させる。その結果、スライスSL2のフィルタリング処理において、マクロブロックMB20及びMB21の水平境界についてのフィルタリング処理に大きな遅延が生じることが防がれる。また、図19の例のように、スライスSL1に含まれる全てのマクロブロックの垂直境界についてのフィルタリング処理が並列的に最初に実行される場合にも、スライスSL2のマクロブロックMB20及びMB21の水平境界についてのフィルタリング処理に遅延は生じない。
  [3-2.処理の流れ]
 次に、図20~図22を用いて、デブロックフィルタ24による処理の流れを説明する。
   (1)第1のシナリオ
 図20は、デブロックフィルタ24による第1のシナリオにおける処理の流れ一例を示すフローチャートである。第1のシナリオは、並列度の大きい図13の例に対応するシナリオである。
 図20を参照すると、まず、垂直境界判定部112-1~112-nは、入力画像内の複数のマクロブロックに含まれる全ての垂直境界について、フィルタリングの要否を並列的に判定する(ステップS102)。また、水平境界判定部114-1~114-nは、入力画像内の複数のマクロブロックに含まれる全ての水平境界について、フィルタリングの要否を並列的に判定する(ステップS104)。これらステップS102及びステップS104もまた並列的に行われる。
 次に、水平フィルタリング部132-1~132-nは、ステップS102においてデブロックフィルタを適用すべきと判定された全ての垂直境界について、デブロックフィルタを並列的に適用する(ステップS110)。次に、垂直フィルタリング部142-1~142-nは、ステップS104においてデブロックフィルタを適用すべきと判定された全ての水平境界について、デブロックフィルタを並列的に適用する(ステップS120)。
   (2)第2のシナリオ
 図21は、デブロックフィルタ24による第2のシナリオにおける処理の流れ一例を示すフローチャートである。第2のシナリオは、並列度のより小さい図14の例に対応するシナリオである。
 図21を参照すると、まず、垂直境界判定部112-1~112-nは、入力画像内の1つの注目マクロブロックに含まれる全ての垂直境界について、フィルタリングの要否を並列的に判定する(ステップS202)。また、水平境界判定部114-1~114-nは、当該注目マクロブロックに含まれる全ての水平境界について、フィルタリングの要否を並列的に判定する(ステップS204)。これらステップS202及びステップS204もまた並列的に行われる。
 次に、水平フィルタリング部132-1~132-nは、ステップS202においてデブロックフィルタを適用すべきと判定された注目マクロブロック内の垂直境界について、デブロックフィルタを並列的に適用する(ステップS210)。
 次のステップS220の処理は、1つ前のループにおける注目マクロブロックを対象として行われる。最初の注目マクロブロックについては、ステップS220の処理はスキップされてよい。垂直フィルタリング部142-1~142-nは、1つ前のループのステップS204においてデブロックフィルタを適用すべきと判定された水平境界について、デブロックフィルタを並列的に適用する(ステップS220)。
 その後、入力画像内に未処理の注目マクロブロックが残っている場合には、新たな注目マクロブロックについてステップS202~S220の処理が繰り返される(ステップS230)。
 一方、未処理の注目マクロブロックが残っていない場合には、垂直フィルタリング部142-1~142-nは、最後のループの注目マクロブロックを対象とし、デブロックフィルタを適用すべきと判定された水平境界について、デブロックフィルタを並列的に適用する(ステップS240)。そして、処理は終了する。
 なお、ここでは画像単位及びマクロブロック単位でそれぞれ処理が並列化される典型的な2つのシナリオについて説明したが、これら2つのシナリオは、説明のための例に過ぎない。例えば、特定の数(2つ若しくは4つなど)のマクロブロック、又は水平方向若しくは垂直方向に並ぶ一群のブロックなどの様々な単位で、デブロックフィルタ24による処理は並列化されてよい。
   (3)フィルタリング要否判定処理
 図22は、図21のステップS102及びS104並びに図22のステップS202及びS204に相当する、フィルタリング要否判定処理の流れの一例を示すフローチャートである。
 図22を参照すると、まず、歪み評価部124は、モード情報、変換係数情報及び動きベクトル情報に基づいて、各境界の歪みを評価する(ステップS130)。ここで、歪みがあると評価された場合(判定条件Aが真であった場合)には、処理はステップS134へ進む。一方、歪みがないと評価された場合には、処理はステップS140へ進む(ステップS132)。
 ステップS134では、タップ構築部121により構築された参照画素のタップに基づいて、演算部122により、エッジの値が算出される(ステップS134)。そして、閾値比較部123は、算出された値をエッジ判定閾値βと比較する(ステップS136)。ここで、エッジの値が閾値βよりも小さい場合(判定条件Bが真であった場合)には、処理はステップS138へ進む。一方、エッジの値が閾値βよりも小さくない場合には、処理はステップS140へ進む。
 ステップS138では、フィルタリング判定部125は、判定の対象の境界にデブロックフィルタを適用すべきであると判定する(ステップS138)。一方、ステップS140では、フィルタリング判定部125は、判定の対象の境界にデブロックフィルタを適用すべきでないと判定する(ステップS140)。
 <4.第2の実施例>
 第1の実施例では、あるブロックについてのフィルタリング要否判定処理のために、他のブロックについてのフィルタリング処理によって更新されない画素の画素値が使用された。これに対し、本節で説明する第2の実施例では、デブロックフィルタへの入力画素値を保持するメモリを設けることで、フィルタリング要否判定処理の制約をなくし、より多様な判定条件を用いることを可能とする。
  [4-1.デブロックフィルタの構成例]
  (1)各部の説明
 図23は、第2の実施例に係るデブロックフィルタ24の詳細な構成の一例を示すブロック図である。図23を参照すると、デブロックフィルタ24は、ラインメモリ208、判定ブロック210、水平フィルタリングブロック130、垂直フィルタリングブロック140及び並列化制御部150を有する。
 ラインメモリ208は、デブロックフィルタ24へ入力される入力画像の画素値を記憶する。ラインメモリ208により記憶される画素値は、水平フィルタリングブロック130及び垂直フィルタリングブロック140におけるフィルタリング処理によって更新されない。ラインメモリ208により記憶される画素値は、次に説明する判定ブロック210内の各部によるフィルタリング要否判定処理において参照される。なお、デブロックフィルタ24の処理とは異なる目的で装置内に設けられるメモリが、ラインメモリ208として再利用(共用)されてもよい。
 判定ブロック210は、複数の垂直境界判定部212-1~212-n及び複数の水平境界判定部214-1~214-nを含む。各垂直境界判定部212及び各水平境界判定部214には、ラインメモリ208により記憶されるデブロックフィルタ24への入力画像の画素値、及びフィルタリングの要否の判定のために使用される判定情報が供給される。
 各垂直境界判定部212は、デブロックフィルタ24への入力画素値を用いて、各垂直境界についてデブロックフィルタを適用すべきか否かを判定する。そして、各垂直境界判定部212は、各垂直境界についての判定結果を示す情報を、水平フィルタリングブロック130へ出力する。
 各水平境界判定部214もまた、デブロックフィルタ24への入力画素値を用いて、各水平境界についてデブロックフィルタを適用すべきか否かを判定する。各水平境界判定部214による判定処理は、各垂直境界判定部212による判定処理と並列的に行われる。そして、各水平境界判定部214は、各水平境界についての判定結果を示す情報を、垂直フィルタリングブロック140へ出力する。
  (2)多様な判定条件
 本実施例において、各垂直境界判定部212は、図4に示した既存の手法のように、ブロックの3番目及び6番目の行の画素を参照して、各ブロックの垂直境界についてのフィルタリングの要否を判定してもよい。但し、参照される画素値は、ラインメモリ208により記憶されているデブロックフィルタ24への入力画像の画素値である。同様に、各水平境界判定部214は、ブロックの3番目及び6番目の列の画素を参照して、各ブロックの水平境界についてのフィルタリングの要否を判定してもよい。この場合には、既存の装置に実装されているフィルタリング要否判定処理の判定条件を変えることなく、本実施例に係る構成を容易に実現することができる。
 また、各垂直境界判定部212は、判定に際して、ブロックの3つ以上の行の画素を参照してもよい。同様に、各水平境界判定部214は、判定に際して、ブロックの3つ以上の列の画素を参照してもよい。さらに、各垂直境界判定部212及び各水平境界判定部214は、既存の手法とは異なる判定条件式を使用してもよい。以下、図24~図26を用いて、本実施例において実現され得る判定の手法の6つの例をそれぞれ説明する。
  (2-1)第1の例
 図24は、判定の手法の第1及び第2の例をそれぞれ説明するための説明図である。第1及び第2の例では、垂直境界についてのフィルタリング要否判定処理(特に、輝度成分の判定条件Bの判定)において、各ブロックの1番目から8番目までの全ての行L1~L8の画素が参照される。水平境界についてのフィルタリング要否判定処理においても、各ブロックの1番目から8番目までの全ての列の画素が参照される。
 第1の例において、輝度成分の判定条件は、次のように定義され得る:
 ・輝度成分(Luma)の判定条件・・・条件A及び条件Bがいずれも真なら適用
  -条件A:
   (A1)ブロックBa若しくはBbがイントラ予測モードである;
   (A2)ブロックBa若しくはBbが非ゼロの直交変換係数を有する;又は
   (A3)|MVAx-MVBx|≧4若しくは|MVAy-MVBy|≧4
  -条件B:
   iD=|p20-2p10+p00|+|q20-2q10+q00|+|p27-2p17+p07|+|q27-2q17+q07
   iD=|p21-2p11+p01|+|q21-2q11+q01|+|p26-2p16+p06|+|q26-2q16+q06
   iD=|p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05
   iD=|p23-2p13+p03|+|q23-2q13+q03|+|p24-2p14+p04|+|q24-2q14+q04
   iDave=(iD+iD+iD+iD)>>2
   とした場合に、iDave<β
 色差成分の判定条件は、既に説明した既存の手法と同様であってよい。なお、4つの判定用パラメータiD~iDの平均値iDaveの算出に際して、重み付け平均が計算されてもよい。
  (2-2)第2の例
 第2の例において、輝度成分の判定条件Bは、次のように定義され得る:
  -条件B:
   iD=|p20-2p10+p00|+|q20-2q10+q00|+|p27-2p17+p07|+|q27-2q17+q07
   iD=|p21-2p11+p01|+|q21-2q11+q01|+|p26-2p16+p06|+|q26-2q16+q06
   iD=|p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05
   iD=|p23-2p13+p03|+|q23-2q13+q03|+|p24-2p14+p04|+|q24-2q14+q04
   とした場合に、
   iD<β かつ iD<β かつ iD<β かつ iD<β 
 4つの判定用パラメータiD~iDの算出式は、第1の例と同様である。なお、4つの判定用パラメータiD~iDの全てではなく少なくとも3つ、2つ又は1つがエッジ判定閾値βを下回る、という条件が使用されてもよい。
  (2-3)第3の例
 図25は、判定の手法の第3及び第4の例をそれぞれ説明するための説明図である。第3及び第4の例では、垂直境界についてのフィルタリング要否判定処理(特に、輝度成分の判定条件Bの判定)において、各ブロックの4つの行L1、L3、L6及びL8の画素が参照される。水平境界についてのフィルタリング要否判定処理においても、各ブロックの4つの列の画素が参照される。
 第3の例において、輝度成分の判定条件は、次のように定義され得る:
 ・輝度成分(Luma)の判定条件・・・条件A及び条件Bがいずれも真なら適用
  -条件A:
   (A1)ブロックBa若しくはBbがイントラ予測モードである;
   (A2)ブロックBa若しくはBbが非ゼロの直交変換係数を有する;又は
   (A3)|MVAx-MVBx|≧4若しくは|MVAy-MVBy|≧4
  -条件B:
   iD=|p20-2p10+p00|+|q20-2q10+q00|+|p27-2p17+p07|+|q27-2q17+q07
   iD=|p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05
   iDave=(iD+iD)>>1
   とした場合に、iDave<β
 色差成分の判定条件は、既に説明した既存の手法と同様であってよい。なお、2つの判定用パラメータiD及びiDの平均値iDaveの算出に際して、重み付け平均が計算されてもよい。
  (2-4)第4の例
 第4の例において、輝度成分の判定条件Bは、次のように定義され得る:
  -条件B:
   iD=|p20-2p10+p00|+|q20-2q10+q00|+|p27-2p17+p07|+|q27-2q17+q07
   iD=|p22-2p12+p02|+|q22-2q12+q02|+|p25-2p15+p05|+|q25-2q15+q05
   とした場合に、
   iD<β かつ iD<β
 2つの判定用パラメータiD及びiDの算出式は、第3の例と同様である。なお、2つの判定用パラメータiD及びiDの双方ではなく少なくとも一方がエッジ判定閾値βを下回る、という条件が使用されてもよい。
 なお、ここではブロックの1番目、3番目、6番目及び8番目の行(又は列)L1、L3、L6及びL8が判定の際に参照される例を説明したが、行又は列の他の組合せが参照されてもよい。
  (2-5)第5の例
 図26は、判定の手法の第5及び第6の例をそれぞれ説明するための説明図である。第5及び第6の例では、垂直境界についてのフィルタリング要否判定処理において、各ブロックの4つの行L1、L3、L5及びL7の画素が参照される。水平境界についてのフィルタリング要否判定処理においても、各ブロックの4つの列の画素が参照される。
 第5の例において、輝度成分の判定条件は、次のように定義され得る:
 ・輝度成分(Luma)の判定条件・・・条件A及び条件Bがいずれも真なら適用
  -条件A:
   (A1)ブロックBa若しくはBbがイントラ予測モードである;
   (A2)ブロックBa若しくはBbが非ゼロの直交変換係数を有する;又は
   (A3)|MVAx-MVBx|≧4若しくは|MVAy-MVBy|≧4
  -条件B:
   iD=|p20-2p10+p00|+|q20-2q10+q00|+|p26-2p16+p06|+|q26-2q16+q06
   iD=|p22-2p12+p02|+|q22-2q12+q02|+|p24-2p14+p04|+|q24-2q14+q04
   iDave=(iD+iD)>>1
   とした場合に、iDave<β
 色差成分の判定条件は、既に説明した既存の手法と同様であってよい。なお、2つの判定用パラメータiD及びiDの平均値iDaveの算出に際して、重み付け平均が計算されてもよい。
  (2-6)第6の例
 第6の例において、輝度成分の判定条件Bは、次のように定義され得る:
  -条件B:
   iD=|p20-2p10+p00|+|q20-2q10+q00|+|p26-2p16+p06|+|q26-2q16+q06
   iD=|p22-2p12+p02|+|q22-2q12+q02|+|p24-2p14+p04|+|q24-2q14+q04
   とした場合に、
   iD<β かつ iD<β
 2つの判定用パラメータiD及びiDの算出式は、第5の例と同様である。なお、2つの判定用パラメータiD及びiDの双方ではなく少なくとも一方がエッジ判定閾値βを下回る、という条件が使用されてもよい。
 一般的に、判定の際に参照される行及び列の数が多い程、判定の正確性は向上する。従って、8つの行及び列が参照される第1の例及び第2の例では、本来デブロックフィルタを適用すべきでないブロックがフィルタリングされる可能性、及び本来デブロックフィルタを適用すべきブロックがフィルタリングされない可能性を最小化することができる。その結果、符号化され及び復号される画像の画質が高められる。一方、判定の際に参照される行及び列の数を少なくすれば、処理コストを低減することができる。画質と処理コストとはトレードオフの関係にあるため、判定の際に参照すべき行及び列の数は、装置の用途又は実装の制約などに応じて適応的に選択されてもよい。また、参照すべき行の組合せ及び列の組合せが適応的に選択されてもよい。
 また、第1、第3及び第5の例のように、判定用パラメータの平均値iDaveをエッジ判定閾値βと比較することで、行又は列ごとのパラメータのばらつきに過度に影響を受けることなく、ブロック単位で適切な判定を行うことができる。
  [4-2.処理の流れ]
 第2の実施例においても、第1の実施例と同様、デブロックフィルタ24は異なる並列度で動作することができる。
 即ち、並列度の大きい第1のシナリオにおいて、垂直境界判定部212-1~212-nは、入力画像内の複数のマクロブロックに含まれる全ての垂直境界について、フィルタリングの要否を並列的に判定する。また、水平境界判定部214-1~214-nは、入力画像内の複数のマクロブロックに含まれる全ての水平境界について、フィルタリングの要否を並列的に判定する。これら垂直境界及び水平境界についての判定処理もまた並列的に行われる。その後、水平フィルタリング部132-1~132-n及び垂直フィルタリング部142-1~142-nは、デブロックフィルタを適用すべきと判定された垂直境界及び水平境界についてデブロックフィルタをそれぞれ適用する(図20参照)。
 また、並列度の小さい第2のシナリオにおいて、垂直境界判定部212-1~212-nは、入力画像内の1つの注目マクロブロックに含まれる全ての垂直境界について、フィルタリングの要否を並列的に判定する。また、水平境界判定部214-1~214-nは、当該注目マクロブロックに含まれる全ての水平境界について、フィルタリングの要否を並列的に判定する。これら垂直境界及び水平境界についての判定処理もまた並列的に行われる。その後、水平フィルタリング部132-1~132-nは、デブロックフィルタを適用すべきと判定された垂直境界についてデブロックフィルタを適用する。垂直フィルタリング部142-1~142-nは、デブロックフィルタを適用すべきと判定された水平境界についてデブロックフィルタを適用する。このような処理が、入力画像内の全てのマクロブロックについて繰り返される(図21参照)。
 なお、これら2つのシナリオは、説明のための例に過ぎない。第2の実施例においても、特定の数(2つ若しくは4つなど)のマクロブロック、又は水平方向若しくは垂直方向に並ぶ一群のブロックなどの様々な単位で、デブロックフィルタ24による処理は並列化されてよい。また、第2の実施例においても、第1の実施例と同様、デブロックフィルタ24における処理の並列度及び順序は、並列化制御部150により制御されてよい。
  [4-3.LCUごとの処理の例]
 上述したように、本明細書で説明される様々な実施例に係る技術は、HEVCの符号化単位(CU)に基づく処理として実現されてもよい。HEVCにおいて、サイズの最も大きい符号化単位はLCU(Largest Coding Unit)と呼ばれ、例えば64×64画素のLCUが選択可能である。選択可能な最小のCUのサイズは、8×8画素である。画像の符号化及び復号に際しては、通常、ピクチャ(又はスライス)の左上のLCUを起点とし、ラスタスキャンの順序に従って、LCUごとに処理が行われる。そこで、本項では、デブロックフィルタ24におけるこのようなLCUごとの処理の例について説明する。
 図27は、上述した第2の実施例に関連するLCUごとの処理の順序について説明するための説明図である。ここでは、LCUのサイズは16×16画素、CUのサイズは8×8画素であるものとする。
 図27を参照すると、左上の第1段階において、第n-1番目のLCUまでの各LCUのフィルタリングが終了している。なお、垂直境界についてのフィルタリングの対象画素は斜線で網掛けされ、水平境界についてのフィルタリングの対象画素は塗りつぶされている。
 図27の右上の第2段階及び左下の第3段階の処理は、第n番目のLCUを対象とする処理である。まず、第2段階の前に、第n番目のLCUに属する全ての垂直境界及び全ての水平境界についてのフィルタリング要否判定処理が、デブロックフィルタ24への入力画素値を用いて並列的に行われる。次に、第2段階では、第n番目のLCUに属する垂直境界のうちデブロックフィルタを適用すべきと判定された垂直境界についてのフィルタリング処理が、デブロックフィルタ24への入力画素値を用いて並列的に行われる。次に、第n番目のLCUに属する水平境界のうちデブロックフィルタを適用すべきと判定された水平境界についてのフィルタリング処理が、第2段階の処理後の画素値を用いて並列的に行われる。
 その後、図27の右下の第4段階の処理は、第n+1番目のLCUを対象とする処理である。第n+1番目のLCUに属する全ての垂直境界及び全ての水平境界についてのフィルタリング要否判定処理が並列的に行われた後、第4段階では、デブロックフィルタを適用すべきと判定された垂直境界についてのフィルタリング処理が並列的に行われる。
 なお、ここでは一例としてLCUのサイズを16×16画素としたが、LCUのサイズは32×32画素又は64×64画素などであってもよい。特に、選択されるLCUのサイズがより大きければ、1つのLCUに属する垂直境界及び水平境界の数も多くなることから、並列化による処理時間の短縮の効果はより高められる。
 図28は、デブロックフィルタ24によるLCUごとの処理の流れの一例を示すフローチャートである。
 図28を参照すると、まず、垂直境界判定部212-1~212-nは、入力画像内の1つの注目LCUに含まれる全ての垂直境界について、フィルタリングの要否を並列的に判定する(ステップS252)。また、水平境界判定部214-1~214-nは、当該注目LCUに含まれる全ての水平境界について、フィルタリングの要否を並列的に判定する(ステップS254)。これらステップS252及びステップS254もまた並列的に行われる。
 次に、水平フィルタリング部132-1~132-nは、ステップS252においてデブロックフィルタを適用すべきと判定された注目LCU内の垂直境界について、デブロックフィルタを並列的に適用する(ステップS260)。
 次に、垂直フィルタリング部142-1~142-nは、ステップS254においてデブロックフィルタを適用すべきと判定された注目LCU内の水平境界について、デブロックフィルタを並列的に適用する(ステップS270)。
 その後、入力画像内に未処理のLCUが残っている場合には、新たな注目LCUについてステップS252~S270の処理が繰り返される(ステップS280)。一方、未処理のLCUが残っていない場合には、処理は終了する。
 <5.第3の実施例>
  [5-1.概略]
 第2の実施例では、垂直境界及び水平境界の双方についてのフィルタリング要否判定処理においてデブロックフィルタへの入力画素値を参照することで、これらフィルタリング要否判定処理の間の依存関係が解消され、判定処理の並列化が可能となる。本節で説明する第3の実施例では、第2の実施例の考え方をフィルタリング処理にも適用する。即ち、垂直境界及び水平境界の双方についてのフィルタリング処理においても、デブロックフィルタへの入力画素値をフィルタリングすることとする。
 図29は、本実施例の概略について説明するための説明図である。図29の左下には、デブロックフィルタにより処理される前の入力画素(リコンストラクト画素ともいう)を表す図形が示されている。本実施例において、デブロックフィルタへの入力画素は、垂直境界及び水平境界についてのフィルタリング要否判定処理のみならず、垂直境界についてのフィルタリング処理及び水平境界についてのフィルタリング処理の双方においても参照される。従って、これら2つのフィルタリング処理の間の依存関係は解消される。また、これら2つのフィルタリング処理は並列的に行われる。
 但し、垂直境界についてのフィルタリング処理及び水平境界についてのフィルタリング処理において、重複する画素の値が更新される可能性がある。そのような可能性を有する画素の位置が、図29において黒く塗りつぶされた画素によって示されている。そこで、本実施例に係るデブロックフィルタは、並列的に動作する2つのフィルタにより重複して更新される画素について、2つのフィルタ出力から1つの出力画素値を計算する。
  [5-2.デブロックフィルタの構成例]
 図30は、第3の実施例に係るデブロックフィルタ24の詳細な構成の一例を示すブロック図である。図30を参照すると、デブロックフィルタ24は、ラインメモリ208、判定ブロック210、水平フィルタリングブロック330、垂直フィルタリングブロック340、並列化制御部150及び計算部360を有する。判定ブロック210は、複数の垂直境界判定部212-1~212-n及び複数の水平境界判定部214-1~214-nを含む。各垂直境界判定部212及び各水平境界判定部214は、第2の実施例において例示したような様々な判定条件に従って、各境界についてのフィルタリングの要否を判定してよい。
 水平フィルタリングブロック330は、複数の水平フィルタリング部332-1~332-nを含む。各水平フィルタリング部332には、ラインメモリ208からの入力画素値及び判定ブロック210からの各垂直境界についての判定結果が供給される。
 各水平フィルタリング部332は、対応する垂直境界判定部212による判定結果がフィルタを適用すべきことを示している場合に、対応する垂直境界の左右の画素に垂直境界についてのデブロックフィルタを適用する。そして、各水平フィルタリング部332は、フィルタを適用した画素についてはフィルタリング後の画素値、その他の画素については入力画素値を、計算部360へ出力する。
 垂直フィルタリングブロック340は、複数の垂直フィルタリング部342-1~342-nを含む。各垂直フィルタリング部342には、ラインメモリ208からの入力画素値及び判定ブロック210からの各水平境界についての判定結果が供給される。
 各垂直フィルタリング部342は、対応する水平境界判定部214による判定結果がフィルタを適用すべきことを示している場合に、対応する水平境界の上下の画素に水平境界についてのデブロックフィルタを適用する。垂直フィルタリング部342-1~342-nによるフィルタリング処理は、水平フィルタリング部332-1~332-nによるフィルタリング処理と並列的に行われる。そして、各垂直フィルタリング部342は、フィルタを適用した画素についてはフィルタリング後の画素値、その他の画素については入力画素値を、計算部360へ出力する。
 計算部360には、水平フィルタリングブロック330からの出力画素値と垂直フィルタリングブロック340からの出力画素値とが並列的に供給される。さらに、計算部360には、垂直境界判定部212及び水平境界判定部214による判定結果が供給される。計算部360は、供給される判定結果に応じて、水平フィルタリングブロック330及び垂直フィルタリングブロック340の双方によりフィルタリングされる画素について、水平フィルタリングブロック330からのフィルタ出力及び垂直フィルタリングブロック340からのフィルタ出力に基づいて出力画素値を計算する。
 例えば、本実施例において、計算部360は、重複してフィルタリングされる画素について、2つのフィルタ出力の平均を計算する。計算部360により計算される2つのフィルタ出力の平均は、単純な平均であってもよい。その代わりに、計算部360は、2つのフィルタ出力の加重平均を計算してもよい。計算部360は、例えば、各画素についての加重平均の重みを、各画素の垂直境界までの距離及び水平境界までの距離に応じて決定し得る。
 図31は、計算部360による加重平均のための重みの決定について説明するための説明図である。図31を参照すると、図29に示した重複位置の1つに位置する注目画素Pが黒く示されている。注目画素Pと最も近くの垂直境界Vとの間の距離Dは、3画素である。注目画素Pと最も近くの水平境界Hとの間の距離Dは2画素である。距離Dは、距離Dよりも小さい。この場合、計算部360は、水平境界Hについてのデブロックフィルタの出力についての重みを、垂直境界Vについてのデブロックフィルタの出力についての重みよりも大きく決定し得る。図31の例では、垂直境界Vについてのフィルタ出力Voutと水平境界Hについてのフィルタ出力Houtとの間の重みの比は、2:3と決定されている。
 図31から理解されるように、2つのフィルタ出力の加重平均が計算される結果として、水平方向に沿ったフィルタタップと垂直方向に沿ったフィルタタップとを有する1つの2次元フィルタが適用された場合と同等の出力画素値を、各注目画素について得ることができる。それにより、垂直境界及び水平境界についてのフィルタリング処理を並列化させた場合にも、垂直境界及び水平境界の双方に現れるブロック歪みを適切に減少させることができる。他の実施例として、デブロックフィルタ24は、水平フィルタリング、垂直フィルタリング及び加重平均を同時に計算する1つの2次元フィルタを有していてもよい。但し、その場合には、フィルタ係数を画素ごとに様々に変化させる必要性が生じるため、実装が極めて複雑となる。これに対し、第3の実施例のように2つの1次元フィルタを並列的に実行した後に加重平均を計算することとすれば、既存のデブロックフィルタの仕組みを活かしながら、2次元フィルタに実質的に等しい処理を容易に実現することができる。
 図32は、図31の例に従って決定される加重平均のための重みの一例について説明するための説明図である。図32を参照すると、垂直境界と水平境界との1つの交点の周囲に位置する6×6=36個の画素(上述した重複位置の画素)が示されている。これら画素のうち、垂直境界及び水平境界から等距離に位置する画素については、フィルタ出力Voutとフィルタ出力Houtとの間の重みの比は1対1(又は2対2若しくは3対3)である。垂直境界により近い画素については、フィルタ出力Voutへの重みの方がフィルタ出力Houtへの重みよりも大きく決定されている(例えば、画素Pの重みの比はVout:Hout=3:1)。一方、水平境界により近い画素については、フィルタ出力Voutへの重みの方がフィルタ出力Houtへの重みよりも小さく決定されている(例えば、画素Pの重みの比はVout:Hout=1:3)。
 このように各画素と境界との間の距離に応じて加重平均の重みを変化させることで、ブロック歪みをより効果的に抑制して画質を改善することができる。
 なお、上述した重みは一例に過ぎない。例えば、計算部360は、各画素と境界との間の距離の代わりに(又はそれに加えて)、各画素に対応する垂直境界及び水平境界のエッジの強さに応じて、各画素についての加重平均の重みを決定してもよい。ここでのエッジの強さとは、例えば、図16に示した演算部122により算出されるエッジの値のようなパラメータで表現され得る。この場合、よりエッジの強い境界についてのフィルタ出力の重みが、よりエッジの弱い境界についてのフィルタ出力の重みよりも大きく決定され得る。このようにエッジの強さに応じて加重平均の重みを変化させることで、ブロック歪みが強く現れている境界について適応的にデブロックフィルタの効果を高めることができる。
 計算部360は、水平フィルタリングブロック330及び垂直フィルタリングブロック340のいずれか一方によりフィルタリングされる画素については、実際にフィルタリングを行ったブロックからの出力を選択する。また、計算部360は、水平フィルタリングブロック330及び垂直フィルタリングブロック340のいずれによってもフィルタリングされない画素については、デブロックフィルタ24への入力画素値をそのまま出力する。フィルタリング要否の判定結果に応じた計算部360からの出力画素値を、図33の表に示す。
  [5-3.処理の順序の例]
 以下、本実施例においてデブロックフィルタ24により実現可能な処理の順序の2つの例を説明する。ここでも、一例として、32×32画素のサイズを有する画像がデブロックフィルタに入力されるものとする。当該入力画像は、それぞれ16×16画素のサイズを有する4つのマクロブロックMB0~MB3を含む。
  (1)第1の例
 まず、比較のために、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング処理との間の依存関係が残っている場合の処理の順序を図34に示す。なお、図34に示した処理の順序は、第1の実施例に関連して図13に示した処理の順序と実質的に同じである。図34において、第1ステップでは、4つのマクロブロックMB0~MB3の全ての垂直境界及び全ての水平境界についてのフィルタリング要否判定処理JV0,0~JV3,3及びJH0,0~JH3,3が並列的に実行される。次に、第2ステップでは、4つのマクロブロックMB0~MB3の16個の垂直境界についてのフィルタリング処理FV0,0~FV3,3が実行される。次に、第3ステップでは、4つのマクロブロックMB0~MB3の16個の水平境界についてのフィルタリング処理FH0,0~FH3,3が実行される。その後、第4ステップ(図13では省略されている)では、水平境界についてのフィルタリング処理後の各画素値が、デブロックフィルタ24からの出力用のメモリへ格納される。
 図35は、本実施例において実現される処理の順序の第1の例を示している。図35において、第1ステップでは、4つのマクロブロックMB0~MB3の全ての垂直境界及び全ての水平境界についてのフィルタリング要否判定処理JV0,0~JV3,3及びJH0,0~JH3,3が並列的に実行される。次に、第2ステップでは、4つのマクロブロックMB0~MB3の全ての垂直境界及び全ての水平境界についてのフィルタリング処理FV0,0~FV3,3及びFH0,0~FH3,3が並列的に実行され得る(実際には、フィルタリングが必要と判定された境界のみがフィルタリングされる)。その後、第3ステップでは、各画素値がデブロックフィルタ24からの出力用のメモリへ格納される。その際、水平フィルタリングブロック330及び垂直フィルタリングブロック340の双方によりフィルタリングされた画素については、2つのフィルタ出力の加重平均が出力画素値として計算され得る。
  (2)第2の例
 上述した第1の例は並列度を最大限に高める例である一方、本実施例においても、デブロックフィルタ24は、マクロブロックごとの処理を実現することもできる。
 まず、比較のために、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング処理との間の依存関係が残っている場合のマクロブロックごとの処理の順序を図36に示す。なお、図36に示した処理の順序は、第1の実施例に関連して図14に示した処理の順序と実質的に同じである。図14において説明の簡明さの観点から図示を省略した、出力用のメモリへの画素値の格納についての4つの処理ステップ(第6、第10、第14及び第16ステップ)が、図36では明示されている。図36の処理は、これら4つの処理ステップを含む16個の処理ステップで構成される。
 図37は、本実施例において実現される処理の順序の第2の例を示している。図37において、第1ステップでは、マクロブロックMB0の4つの垂直境界及び4つの水平境界についてのフィルタリング要否判定処理JV0,0~JV0,3及びJH0,0~JH0,3が並列的に実行される。次に、第2ステップでは、マクロブロックMB0の4つの垂直境界及び4つの水平境界についてのフィルタリング処理FV0,0~FV0,3及びFH0,0~FH0,3が並列的に実行される。次に、第3ステップでは、マクロブロックMB0の各画素値がデブロックフィルタ24からの出力用のメモリへ格納される。その際、2つのフィルタにより重複してフィルタリングされた画素については、2つのフィルタ出力の加重平均が出力画素値として計算され得る。その後、第4ステップから第6ステップにおいてマクロブロックMB1、第7ステップから第9ステップにおいてマクロブロックMB2、第10ステップから第12ステップにおいてマクロブロックMB3が同様に処理される。図37の処理は、図36の処理よりも少ない12個の処理ステップで構成されている。
 このように、第3の実施例では、垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング処理との間の依存関係も解消されることから、第1及び第2の実施形態と比較して、デブロックフィルタ24における処理をより少ない処理ステップで実行することができる。なお、フィルタリング処理においてデブロックフィルタへの入力画素のみが参照されることの利点の1つは、フィルタタップをどのように構成しても垂直境界についてのフィルタリング処理と水平境界についてのフィルタリング処理との間の依存関係が生じないことである。そのため、既存の手法よりも多くの画素からフィルタタップを構成して画質の向上を図ることも可能となる。例えば、既存の手法では、図7に関連して説明したように、各境界の各側につき3画素分のフィルタタップが使用された。しかし、本実施例では、例えば各境界の各画素につき5画素以上のフィルタタップを使用しても、処理間に依存関係が生じることがない。また、デブロックフィルタの処理単位のブロックサイズをより小さくしても、やはり処理間に依存関係が生じることがない。
 第3の実施例においても、第1及び第2の実施例と同様、デブロックフィルタ24における処理の並列度及び順序は、並列化制御部150により制御されてよい。
  [5-4.処理の流れ]
 図38は、第3の実施例に係るデブロックフィルタによる処理の流れの一例を示すフローチャートである。また、図39は、図38に示した画素値計算処理の流れの一例を示すフローチャートである。
 図38を参照すると、まず、垂直境界判定部212-1~212-nは、入力画像内(又はマクロブロック内)の全ての垂直境界について、フィルタリングの要否を並列的に判定する(ステップS302)。また、水平境界判定部214-1~214-nは、入力画像内(又はマクロブロック内)の全ての水平境界について、フィルタリングの要否を並列的に判定する(ステップS304)。これらステップS302及びステップS304もまた並列的に行われる。
 次に、水平フィルタリング部332-1~332-nは、ステップS302においてデブロックフィルタを適用すべきと判定された全ての垂直境界について、デブロックフィルタを並列的に適用する(ステップS306)。また、垂直フィルタリング部342-1~342-nは、ステップS304においてデブロックフィルタを適用すべきと判定された全ての水平境界について、デブロックフィルタを並列的に適用する(ステップS308)。これらステップS306及びステップS308もまた並列的に行われる。
 次に、計算部360により、図39に示す画素値計算処理が行われる(ステップS310)。図39を参照すると、ステップS314からステップS326までの処理は、処理対象の画素ごとにループされる(ステップS312)。
 ステップS314において、計算部360は、注目画素が垂直境界及び水平境界についての2つのフィルタの双方によりフィルタリングされたか否かを判定する(ステップS314)。ここで、注目画素が2つのフィルタの双方によりフィルタリングされた場合には、処理はステップS322へ進む。一方、注目画素が2つのフィルタの双方によりフィルタリングされてはいない場合には、処理はステップS316へ進む。
 ステップS316において、計算部360は、注目画素が垂直境界及び水平境界についての2つのフィルタのいずれか一方によりフィルタリングされたか否かを判定する(ステップS316)。ここで、注目画素が2つのフィルタのいずれか一方によりフィルタリングされた場合には、処理はステップS320へ進む。一方、注目画素がいずれのフィルタによってもフィルタリングされていない場合には、処理はステップS318へ進む。
 ステップS318では、計算部360は、デブロックフィルタ24への入力画素値を取得する(ステップS318)。ステップS320では、計算部360は、注目画素について実際にフィルタリングを行ったフィルタからのフィルタ出力を取得する(ステップS320)。
 ステップS322では、計算部360は、注目画素について2つのフィルタからのフィルタ出力の加重平均を計算するための重みの値を、例えば注目画素の垂直境界までの距離及び水平境界までの距離、又は注目画素に対応する垂直境界及び水平境界のエッジの強さに応じて決定する(ステップS322)。そして、計算部360は、決定した重みを用いて、2つのフィルタからのフィルタ出力の加重平均を計算する(ステップS324)。
 その後、計算部360は、ステップS318若しくはステップS320において取得し、又はステップS324において計算した注目画素の画素値をメモリに格納する(ステップS326)。このような処理が処理対象の全ての画素について行われると、図38及び図39に示した一連の処理は終了する。
 <6.様々なコーデックへの適用>
 本開示に係る技術は、画像の符号化及び復号に関連する様々なコーデックに適用可能である。本節では、本開示に係る技術がマルチビューコーデック及びスケーラブルコーデックにそれぞれ適用される例について説明する。
  [6-1.マルチビューコーデック]
 マルチビューコーデックは、いわゆる多視点映像を符号化し及び復号するための画像符号化方式である。図40は、マルチビューコーデックについて説明するための説明図である。図40を参照すると、3つの視点においてそれぞれ撮影される3つのビューのフレームのシーケンスが示されている。各ビューには、ビューID(view_id)が付与される。これら複数のビューのうちいずれか1つのビューが、ベースビュー(base view)に指定される。ベースビュー以外のビューは、ノンベースビューと呼ばれる。図40の例では、ビューIDが"0"であるビューがベースビューであり、ビューIDが"1"又は"2"である2つのビューがノンベースビューである。これらマルチビューの画像データを符号化する際、ベースビューのフレームについての符号化情報に基づいてノンベースビューのフレームを符号化することにより、全体としての符号化ストリームのデータサイズが圧縮され得る。
 上述したマルチビューコーデックに従った符号化処理及び復号処理において、各ビューにデブロックフィルタが適用され得る。各ビューへのデブロックフィルタの適用にあたり、本開示に係る技術に従って、各ビューにおける垂直ブロック境界及び水平ブロック境界についてのフィルタリング要否判定処理が並列化されてもよい。また、各ビューにおけるフィルタリング要否判定処理とフィルタリング処理とが並列化されてもよい。さらに、フィルタリング要否判定処理又はフィルタリング処理を制御するためのパラメータ(例えば、段落0094において説明したパラメータ)が、ビューごとに設定されてもよい。また、ベースビューにおいて設定されたパラメータが、ノンベースビューにおいて再利用されてもよい。
 また、複数のビューにわたってフィルタリング要否判定処理又はフィルタリング処理が並列化されてもよい。フィルタリング要否判定処理又はフィルタリング処理を制御するためのパラメータ(例えば、段落0094において説明したパラメータ)は、複数のビューにわたって共通化されてもよい。また、複数のビューにわたってパラメータが共通化されているか否かを示すフラグが、追加的に指定されてもよい
 図41は、上述した画像符号化処理のマルチビューコーデックへの適用について説明するための説明図である。図41を参照すると、一例としてのマルチビュー符号化装置710の構成が示されている。マルチビュー符号化装置710は、第1符号化部720、第2符号化部730及び多重化部740を備える。
 第1符号化部720は、ベースビュー画像を符号化し、ベースビューの符号化ストリームを生成する。第2符号化部730は、ノンベースビュー画像を符号化し、ノンベースビューの符号化ストリームを生成する。多重化部740は、第1符号化部720により生成されるベースビューの符号化ストリームと、第2符号化部730により生成される1つ以上のノンベースビューの符号化ストリームとを多重化し、マルチビューの多重化ストリームを生成する。
 図41に例示した第1符号化部720及び第2符号化部730は、上述した実施形態に係る画像符号化装置10と同等の構成を有する。それにより、各ビューへのデブロックフィルタの適用に際して、垂直ブロック境界及び水平ブロック境界についてのフィルタリング要否判定処理を並列化し、又はフィルタリング要否判定処理とフィルタリング処理とを並列化することが可能となる。これら処理を制御するパラメータは、各ビューの符号化ストリームのヘッダ領域に挿入されてもよく、又は多重化ストリーム内の共通的なヘッダ領域に挿入されてもよい。
 図42は、上述した画像復号処理のマルチビューコーデックへの適用について説明するための説明図である。図42を参照すると、一例としてのマルチビュー復号装置760の構成が示されている。マルチビュー復号装置760は、逆多重化部770、第1復号部780及び第2復号部790を備える。
 逆多重化部770は、マルチビューの多重化ストリームをベースビューの符号化ストリーム及び1つ以上のノンベースビューの符号化ストリームに逆多重化する。第1復号部780は、ベースビューの符号化ストリームからベースビュー画像を復号する。第2復号部730は、ノンベースビューの符号化ストリームからノンベースビュー画像を復号する。
 図42に例示した第1復号部780及び第2復号部790は、上述した実施形態に係る画像復号装置60と同等の構成を有する。それにより、各ビューへのデブロックフィルタの適用に際して、垂直ブロック境界及び水平ブロック境界についてのフィルタリング要否判定処理を並列化し、又はフィルタリング要否判定処理とフィルタリング処理とを並列化することが可能となる。これら処理を制御するパラメータは、各ビューの符号化ストリームのヘッダ領域から取得されてもよく、又は多重化ストリーム内の共通的なヘッダ領域から取得されてもよい。
  [6-2.スケーラブルコーデック]
 スケーラブルコーデックは、いわゆる階層符号化を実現するための画像符号化方式である。図43は、スケーラブルコーデックについて説明するための説明図である。図43を参照すると、空間解像度、時間解像度又は画質の異なる3つのレイヤのフレームのシーケンスが示されている。各レイヤには、レイヤID(layer_id)が付与される。これら複数のレイヤのうち、最も解像度(又は画質)の低いレイヤが、ベースレイヤ(base layer)である。ベースレイヤ以外のレイヤは、エンハンスメントレイヤと呼ばれる。図43の例では、レイヤIDが"0"であるレイヤがベースレイヤであり、レイヤIDが"1"又は"2"である2つのレイヤがエンハンスメントレイヤである。これらマルチレイヤの画像データを符号化する際、ベースレイヤのフレームについての符号化情報に基づいてエンハンスメントレイヤのフレームを符号化することにより、全体としての符号化ストリームのデータサイズが圧縮され得る。
 上述したスケーラブルコーデックに従った符号化処理及び復号処理において、各レイヤにデブロックフィルタが適用され得る。各レイヤへのデブロックフィルタの適用にあたり、本開示に係る技術に従って、各レイヤにおける垂直ブロック境界及び水平ブロック境界についてのフィルタリング要否判定処理が並列化されてもよい。また、各レイヤにおけるフィルタリング要否判定処理とフィルタリング処理とが並列化されてもよい。さらに、フィルタリング要否判定処理又はフィルタリング処理を制御するためのパラメータ(例えば、段落0094において説明したパラメータ)が、レイヤごとに設定されてもよい。また、ベースレイヤにおいて設定されたパラメータが、エンハンスメントレイヤにおいて再利用されてもよい。
 また、複数のレイヤにわたってフィルタリング要否判定処理又はフィルタリング処理が並列化されてもよい。フィルタリング要否判定処理又はフィルタリング処理を制御するためのパラメータ(例えば、段落0094において説明したパラメータ)は、複数のレイヤにわたって共通化されてもよい。また、複数のレイヤにわたってパラメータが共通化されているか否かを示すフラグが、追加的に指定されてもよい
 図44は、上述した画像符号化処理のスケーラブルコーデックへの適用について説明するための説明図である。図44を参照すると、一例としてのスケーラブル符号化装置810の構成が示されている。スケーラブル符号化装置810は、第1符号化部820、第2符号化部830及び多重化部840を備える。
 第1符号化部820は、ベースレイヤ画像を符号化し、ベースレイヤの符号化ストリームを生成する。第2符号化部830は、エンハンスメントレイヤ画像を符号化し、エンハンスメントレイヤの符号化ストリームを生成する。多重化部840は、第1符号化部820により生成されるベースレイヤの符号化ストリームと、第2符号化部830により生成される1つ以上のエンハンスメントレイヤの符号化ストリームとを多重化し、マルチレイヤの多重化ストリームを生成する。
 図44に例示した第1符号化部820及び第2符号化部830は、上述した実施形態に係る画像符号化装置10と同等の構成を有する。それにより、各レイヤへのデブロックフィルタの適用に際して、垂直ブロック境界及び水平ブロック境界についてのフィルタリング要否判定処理を並列化し、又はフィルタリング要否判定処理とフィルタリング処理とを並列化することが可能となる。これら処理を制御するパラメータは、各レイヤの符号化ストリームのヘッダ領域に挿入されてもよく、又は多重化ストリーム内の共通的なヘッダ領域に挿入されてもよい。
 図45は、上述した画像復号処理のスケーラブルコーデックへの適用について説明するための説明図である。図45を参照すると、一例としてのスケーラブル復号装置860の構成が示されている。スケーラブル復号装置860は、逆多重化部870、第1復号部880及び第2復号部890を備える。
 逆多重化部870は、マルチレイヤの多重化ストリームをベースレイヤの符号化ストリーム及び1つ以上のエンハンスメントレイヤの符号化ストリームに逆多重化する。第1復号部880は、ベースレイヤの符号化ストリームからベースレイヤ画像を復号する。第2復号部830は、エンハンスメントレイヤの符号化ストリームからエンハンスメントレイヤ画像を復号する。
 図45に例示した第1復号部880及び第2復号部890は、上述した実施形態に係る画像復号装置60と同等の構成を有する。それにより、各レイヤへのデブロックフィルタの適用に際して、垂直ブロック境界及び水平ブロック境界についてのフィルタリング要否判定処理を並列化し、又はフィルタリング要否判定処理とフィルタリング処理とを並列化することが可能となる。これら処理を制御するパラメータは、各レイヤの符号化ストリームのヘッダ領域から取得されてもよく、又は多重化ストリーム内の共通的なヘッダ領域から取得されてもよい。
 <7.応用例>
 上述した実施形態に係る画像符号化装置10及び画像復号装置60は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
  [7-1.第1の応用例]
 図46は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置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での画像の復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
  [7-2.第2の応用例]
 図47は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機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での画像の符号化及び復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
  [7-3.第3の応用例]
 図48は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置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での画像の符号化及び復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
  [7-4.第4の応用例]
 図49は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置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での画像の符号化及び復号に際して、デブロックフィルタの処理の並列度を高めて処理を高速化することができる。
 <8.まとめ>
 ここまで、図1~図49を用いて、一実施形態に係る画像符号化装置10及び画像復号装置60のデブロックフィルタの3つの実施例について詳しく説明した。これら3つの実施例によれば、垂直境界についてのデブロックフィルタの適用の要否の判定及び水平境界についてのデブロックフィルタの適用の要否の判定が、共にデブロックフィルタへの入力画素値を用いて行われる。従って、フィルタリング処理の結果に依存することなく、これら判定処理を並列的に実行することができる。また、マクロブロック間の処理の依存関係も解消され、複数のマクロブロックについての処理の並列化も可能となる。その結果、デブロックフィルタの多大な処理量を原因とする遅延又はデータレートの低下を回避し、処理を高速化することができる。また、画像のサイズ又は実装環境の制約などの様々な条件に応じてデブロックフィルタの処理の並列度及び順序を柔軟に設定することも可能となる。
 また、第1の実施例によれば、垂直境界についてのデブロックフィルタの適用の要否の判定のために使用される画素値は、水平境界についてのデブロックフィルタが適用されない行に属する画素の画素値である。水平境界についてのデブロックフィルタの適用の要否の判定のために使用される画素値は、垂直境界についてのデブロックフィルタが適用されない行に属する画素の画素値である。即ち、あるブロックについてのフィルタリング要否判定処理のために使用される画素値は、他のブロックについてのフィルタリング処理によって更新されない。そのため、あるブロックについてのフィルタリング要否判定処理の前に他のブロックについてのフィルタリング処理が実行される場合にも、デブロックフィルタへの入力画素値を別途のメモリに保持しておく必要がない。従って、装置の実装に要するハードウェアのコストを節約することができる。
 また、第2の実施例によれば、フィルタリング処理において更新されないメモリ内にデブロックフィルタへの入力画素値が記憶され、当該入力画素値がフィルタリング要否判定処理において参照される。この場合には、フィルタリング要否判定処理において参照すべき画素の位置に制約が生じないため、様々な目的(例えば、フィルタリングの要否のより正確な判定、又は少ない処理コストでの判定など)に応じた柔軟な判定条件の利用が可能となる。
 また、第3の実施例によれば、垂直境界及び水平境界についてのフィルタリング処理の双方において、デブロックフィルタへの入力画素がフィルタリングされる。かかる構成によれば、垂直境界及び水平境界についてのフィルタリング処理をも互いに並列化することが可能となる。それにより、デブロックフィルタにおける処理を一層高速化することができる。また、並列的に実行される2つのフィルタリング処理の双方により更新される画素については、2つのフィルタ出力に基づいて出力画素値が計算される。それにより、上記2つのフィルタリング処理を並列化させた場合にも、垂直境界及び水平境界の双方に現れるブロック歪みを適切に減少させることができる。また、出力画素値は、2つのフィルタ出力の加重平均として計算され得る。それにより、デブロックフィルタによるブロック歪みの除去の効果を高め、画質をさらに向上させることもできる。
 なお、本明細書では、主に垂直境界についてのフィルタリング処理が水平境界についてのフィルタリング処理よりも先に行われる例を説明したが、水平境界についてのフィルタリング処理が先に行われる場合にも本開示に係る技術による上述した効果は同等に享受され得る。また、デブロックフィルタの処理単位のサイズ又はマクロブロックのサイズは、本明細書で説明した例に限定されず、他のサイズであってもよい。また、1つの手法として、フィルタリング要否判定処理自体を省略した上で、複数の垂直境界及び複数の水平境界へのデブロックフィルタの適用を並列化することも可能である。
 また、デブロックフィルタの処理の並列化のために使用される情報を符号化側から復号側に伝送する手法は、これら情報を符号化ストリームのヘッダに多重化する手法に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、本明細書では、垂直境界についてのフィルタリング処理を「水平フィルタリング」、水平境界についてのフィルタリング処理を「垂直フィルタリング」と表現している。一般に、垂直境界についてのフィルタリング処理のフィルタタップは水平方向に沿って並び、水平境界についてのフィルタリング処理のフィルタタップは垂直方向に沿って並ぶ。そのため、上述したようなフィルタリング処理の呼称が採用される。
 10, 60          画像処理装置
 112-1~n,212-1~n 第1判定部(垂直境界判定部)
 114-1~n,214-1~n 第2判定部(水平境界判定部)
 132-1~n,332-1~n 第1フィルタリング部(水平フィルタリング部)
 142-1~n,342-1~n 第2フィルタリング部(垂直フィルタリング部)
 150             並列化制御部
 208             ラインメモリ(メモリ)
 360             計算部
 

Claims (12)

  1.  符号化ストリームから画像を復号する復号部と、
     前記復号部により復号される画像内のブロック境界に隣接する隣接ブロックにデブロックフィルタを適用するかを判定する判定処理を実行する判定部と、
     前記判定部によりデブロックフィルタを適用すると判定された隣接ブロックにデブロックフィルタを適用するフィルタリング部と、
     垂直ブロック境界及び水平ブロック境界についての前記判定処理を、リコンストラクト画像の前記隣接ブロックの画素を参照画素として用いて、前記判定部に実行させる制御部と、
     を備える画像処理装置。
  2.  前記制御部は、
     前記垂直ブロック境界についての前記判定処理の前記参照画素として、前記フィルタリング部による前記水平ブロック境界についてのフィルタリングにおいて更新されない位置の画素を前記判定部に使用させ、
     前記水平ブロック境界についての前記判定処理の前記参照画素として、前記フィルタリング部による前記垂直ブロック境界についてのフィルタリングにおいて更新されない位置の画素を前記判定部に使用させる、
     請求項1に記載の画像処理装置。
  3.  前記制御部は、前記垂直ブロック境界及び前記水平ブロック境界についての前記判定処理を並列的に前記判定部に実行させる、請求項2に記載の画像処理装置。
  4.  前記制御部は、
     前記垂直ブロック境界についての前記判定処理の前記参照画素として、前記垂直ブロック境界の中央近傍で前記垂直ブロック境界と直交する水平ラインに含まれる画素を前記判定部に使用させ、
     前記水平ブロック境界についての前記判定処理の前記参照画素として、前記水平ブロック境界の中央近傍で前記水平ブロック境界と直交する垂直ラインに含まれる画素を前記判定部に使用させる、
     請求項3に記載の画像処理装置。
  5.  前記制御部は、
     前記水平ラインとして、前記垂直ブロック境界の中央近傍で前記垂直ブロック境界と直交する2つのラインを前記判定部に使用させ、
     前記垂直ラインとして、前記水平ブロック境界の中央近傍で前記水平ブロック境界と直交する2つのラインを前記判定部に使用させる、
     請求項4に記載の画像処理装置。
  6.  前記制御部は、シーケンスパラメータセット、ピクチャパラメータセット又はスライスヘッダ内に含まれるパラメータに基づいて、前記判定部による前記判定処理の並列度、又は前記フィルタリング部によるフィルタリングの並列度を制御する、請求項3に記載の画像処理装置。
  7.  前記制御部は、前記画像のサイズに基づいて、前記判定部による前記判定処理の並列度、又は前記フィルタリング部によるフィルタリングの並列度を制御する、請求項3に記載の画像処理装置。
  8.  符号化ストリームから画像を復号することと、
     復号される画像内のブロック境界に隣接する隣接ブロックにデブロックフィルタを適用するかを判定する判定処理を実行することと、
     前記判定処理においてデブロックフィルタを適用すると判定された隣接ブロックにデブロックフィルタを適用することと、
     垂直ブロック境界及び水平ブロック境界についての前記判定処理がリコンストラクト画像の前記隣接ブロックの画素を参照画素として用いて実行されるように、前記判定処理を制御することと、
     を含む画像処理方法。
  9.  符号化対象画像を符号化する際にローカルデコードされる画像内のブロック境界に隣接する隣接ブロックにデブロックフィルタを適用するかを判定する判定処理を実行する判定部と、
     前記判定部によりデブロックフィルタを適用すると判定された隣接ブロックにデブロックフィルタを適用するフィルタリング部と、
     垂直ブロック境界及び水平ブロック境界についての前記判定処理を、リコンストラクト画像の前記隣接ブロックの画素を参照画素として用いて、前記判定部に実行させる制御部と、
     前記フィルタリング部によりフィルタリングされた画像を用いて、前記符号化対象画像を符号化する符号化部と、
     を備える画像処理装置。
  10.  前記制御部は、
     前記垂直ブロック境界についての前記判定処理の前記参照画素として、前記フィルタリング部による前記水平ブロック境界についてのフィルタリングにおいて更新されない位置の画素を前記判定部に使用させ、
     前記水平ブロック境界についての前記判定処理の前記参照画素として、前記フィルタリング部による前記垂直ブロック境界についてのフィルタリングにおいて更新されない位置の画素を前記判定部に使用させる、
     請求項9に記載の画像処理装置。
  11.  前記制御部は、前記垂直ブロック境界及び前記水平ブロック境界についての前記判定処理を並列的に前記判定部に実行させる、請求項10に記載の画像処理装置。
  12.  符号化対象画像を符号化する際にローカルデコードされる画像内のブロック境界に隣接する隣接ブロックにデブロックフィルタを適用するかを判定する判定処理を実行することと、
     前記判定処理においてデブロックフィルタを適用すると判定された隣接ブロックにデブロックフィルタを適用することと、
     垂直ブロック境界及び水平ブロック境界についての前記判定処理がリコンストラクト画像の前記隣接ブロックの画素を参照画素として用いて実行されるように、前記判定処理を制御することと、
     前記デブロックフィルタによりフィルタリングされた画像を用いて、前記符号化対象画像を符号化することと、
     を含む画像処理方法。
     
PCT/JP2011/077953 2010-12-07 2011-12-02 画像処理装置及び画像処理方法 WO2012077607A1 (ja)

Priority Applications (20)

Application Number Priority Date Filing Date Title
RU2013125498/07A RU2585662C2 (ru) 2010-12-07 2011-12-02 Устройство обработки изображений и способ обработки изображений
EP20185677.0A EP3748962A1 (en) 2010-12-07 2011-12-02 Image processing device and image processing method
AU2011339460A AU2011339460B2 (en) 2010-12-07 2011-12-02 Image processing device and image processing method
EP11846148.2A EP2651127B1 (en) 2010-12-07 2011-12-02 Image processing device and image processing method
KR1020187019829A KR101963096B1 (ko) 2010-12-07 2011-12-02 화상 처리 장치, 화상 처리 방법 및 기록 매체
US13/990,893 US9973763B2 (en) 2010-12-07 2011-12-02 Image processing device and image processing method for applying filtering determination processes in parallel
JP2012547833A JP6011341B2 (ja) 2010-12-07 2011-12-02 画像処理装置、画像処理方法、プログラム及び記録媒体
ES11846148T ES2856823T3 (es) 2010-12-07 2011-12-02 Dispositivo de procesamiento de imágenes y método de procesamiento de imágenes
EP20185688.7A EP3748964A1 (en) 2010-12-07 2011-12-02 Image processing device and image processing method
EP20185680.4A EP3748963B1 (en) 2010-12-07 2011-12-02 Image processing device and image processing method
MX2016005041A MX355896B (es) 2010-12-07 2011-12-02 Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
MX2013006131A MX2013006131A (es) 2010-12-07 2011-12-02 Dispositivo de procesamiento de imagenes y metodo de procesamiento de imagenes.
KR1020137013869A KR101879890B1 (ko) 2010-12-07 2011-12-02 화상 처리 장치, 화상 처리 방법 및 기록 매체
KR1020187019836A KR101963097B1 (ko) 2010-12-07 2011-12-02 화상 처리 장치 및 화상 처리 방법
CA2815819A CA2815819C (en) 2010-12-07 2011-12-02 Image processing device and image processing method for applying filtering determination processes in parallel
CN201180057815.8A CN103229506B (zh) 2010-12-07 2011-12-02 图像处理设备和图像处理方法
BR112013013509-3A BR112013013509B1 (pt) 2010-12-07 2011-12-02 Dispositivo de processamento de imagem, e, método de processamento de imagem
US15/902,870 US10362318B2 (en) 2010-12-07 2018-02-22 Image processing device and image processing method that horizontal filtering on pixel blocks
US16/391,314 US10582202B2 (en) 2010-12-07 2019-04-23 Image processing device and image processing method that horizontal filtering on pixel blocks
US16/693,374 US10931955B2 (en) 2010-12-07 2019-11-25 Image processing device and image processing method that horizontal filtering on pixel blocks

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2010-272907 2010-12-07
JP2010272907 2010-12-07
JP2011004391 2011-01-12
JP2011-004391 2011-01-12
JP2011-045652 2011-03-02
JP2011045652 2011-03-02
JP2011117557 2011-05-26
JP2011-117557 2011-05-26

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US13/990,893 A-371-Of-International US9973763B2 (en) 2010-12-07 2011-12-02 Image processing device and image processing method for applying filtering determination processes in parallel
US15/902,870 Continuation US10362318B2 (en) 2010-12-07 2018-02-22 Image processing device and image processing method that horizontal filtering on pixel blocks

Publications (1)

Publication Number Publication Date
WO2012077607A1 true WO2012077607A1 (ja) 2012-06-14

Family

ID=46207095

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/077953 WO2012077607A1 (ja) 2010-12-07 2011-12-02 画像処理装置及び画像処理方法

Country Status (13)

Country Link
US (4) US9973763B2 (ja)
EP (4) EP2651127B1 (ja)
JP (3) JP6011341B2 (ja)
KR (3) KR101963097B1 (ja)
CN (4) CN103229506B (ja)
AU (1) AU2011339460B2 (ja)
CA (1) CA2815819C (ja)
ES (1) ES2856823T3 (ja)
MX (3) MX355896B (ja)
MY (1) MY163146A (ja)
RU (2) RU2691962C2 (ja)
TW (4) TWI520504B (ja)
WO (1) WO2012077607A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2014087861A1 (ja) * 2012-12-06 2017-01-05 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
JP2018014743A (ja) * 2010-12-07 2018-01-25 ソニー株式会社 画像処理装置及び画像処理方法
US10334279B2 (en) 2010-12-07 2019-06-25 Sony Corporation Image processing device and image processing method
WO2023047950A1 (ja) * 2021-09-22 2023-03-30 シャープ株式会社 動画像符号化装置、動画像復号装置
JP7386883B2 (ja) 2019-02-27 2023-11-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) サブペル動きベクトルしきい値を使用するデブロッキング

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
JP5359657B2 (ja) 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
TWI508534B (zh) 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
AU2011259939B2 (en) 2010-06-04 2015-07-30 Sony Corporation Image processing device and method
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
JP5884313B2 (ja) 2011-01-18 2016-03-15 ソニー株式会社 画像処理装置、画像処理方法、プログラム及び記録媒体
SG10201606972VA (en) 2011-02-10 2016-10-28 Sony Corp Image processing device and image processing method
BR122020013609B1 (pt) 2011-03-11 2023-02-23 Sony Corporation Aparelho e método de processamento de imagem
TWI530161B (zh) 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
CN107318019B (zh) 2011-06-28 2020-02-28 索尼公司 图像处理装置和图像处理方法
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
TWI667913B (zh) * 2012-04-06 2019-08-01 日商新力股份有限公司 Image processing device, image processing method, computer program, and recording medium
CN105451025B (zh) * 2014-07-31 2019-03-01 富士通株式会社 图像处理方法以及装置
US20160173897A1 (en) * 2014-12-10 2016-06-16 Haihua Wu High Parallelism Dependency Pattern for GPU Based Deblock
KR102597231B1 (ko) * 2016-09-30 2023-11-03 삼성디스플레이 주식회사 영상 처리 장치, 표시 장치 및 두부 장착 표시 장치
WO2018137190A1 (en) * 2017-01-25 2018-08-02 Shanghai United Imaging Healthcare Co., Ltd. System and method for image reconstruction
KR102517616B1 (ko) * 2017-04-06 2023-04-04 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
JP2019074967A (ja) * 2017-10-17 2019-05-16 キヤノン株式会社 フィルタ処理装置およびその制御方法
US11153607B2 (en) * 2018-01-29 2021-10-19 Mediatek Inc. Length-adaptive deblocking filtering in video coding
JP7155568B2 (ja) 2018-03-26 2022-10-19 東洋製罐グループホールディングス株式会社 金属加工物
CA3094818A1 (en) * 2018-03-29 2019-10-03 Sony Corporation Image processing apparatus and image processing method
CN113545041A (zh) * 2019-03-07 2021-10-22 数字洞察力有限公司 图像编码/解码方法和设备
JP7026065B2 (ja) * 2019-03-12 2022-02-25 Kddi株式会社 画像復号装置、画像復号方法及びプログラム
CN110213579A (zh) * 2019-06-11 2019-09-06 上海富瀚微电子股份有限公司 双核心计算单元实现环路滤波的方法
CN113965764B (zh) * 2020-07-21 2023-04-07 Oppo广东移动通信有限公司 图像编码方法、图像解码方法及相关装置
CN116114245A (zh) 2021-09-02 2023-05-12 辉达公司 在视频编码过程中视频帧的并行处理
CN116097649A (zh) * 2021-09-06 2023-05-09 辉达公司 无滤波相依性的视频帧的并行编码

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63104586A (ja) * 1986-10-21 1988-05-10 Sony Corp ブロツク符号化された画像信号の復号装置
JP2003333597A (ja) * 2002-03-07 2003-11-21 Seiko Epson Corp 画像処理装置及び画像処理プログラム、並びに画像処理方法
JP2006174138A (ja) * 2004-12-16 2006-06-29 Sony Corp データ処理装置、画像処理装置、それらの方法およびプログラム
JP2006174486A (ja) * 2004-12-17 2006-06-29 Samsung Electronics Co Ltd ビデオデータの水平及び垂直フィルタリングを同時に行うデブロッキングフィルタ及び動作方法
JP2008048181A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd デブロッキングフィルタ、画像符号化装置および画像復号化装置

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2757297B1 (fr) * 1996-12-18 1999-03-05 Thomson Multimedia Sa Procede et dispositif d'etiquetage de region
CN1239021C (zh) * 2000-04-21 2006-01-25 索尼公司 信息处理设备及方法、程序和记录介质
US7295609B2 (en) 2001-11-30 2007-11-13 Sony Corporation Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information
CN101448162B (zh) * 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
JP4404639B2 (ja) 2002-02-15 2010-01-27 ソニー株式会社 脚式移動ロボットの脚装置並びに脚式移動ロボットの制御方法
US7620109B2 (en) * 2002-04-10 2009-11-17 Microsoft Corporation Sub-pixel interpolation in motion estimation and compensation
WO2003098929A1 (fr) * 2002-05-20 2003-11-27 Sony Corporation Appareil et procede de traitement de signal video
EP1845529B1 (en) * 2003-02-19 2011-05-04 Panasonic Corporation Recording medium, playback apparatus and recording method
KR100644618B1 (ko) * 2004-07-02 2006-11-10 삼성전자주식회사 블록 단위로 부호화된 영상의 블록경계에서의 불연속성제거필터 및 방법
US8116379B2 (en) 2004-10-08 2012-02-14 Stmicroelectronics, Inc. Method and apparatus for parallel processing of in-loop deblocking filter for H.264 video compression standard
KR100679035B1 (ko) * 2005-01-04 2007-02-06 삼성전자주식회사 인트라 bl 모드를 고려한 디블록 필터링 방법, 및 상기방법을 이용하는 다 계층 비디오 인코더/디코더
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
JP2006270851A (ja) * 2005-03-25 2006-10-05 Victor Co Of Japan Ltd 画像符号化装置及び画像復号装置
CN100420269C (zh) * 2005-12-09 2008-09-17 逐点半导体(上海)有限公司 一种图像增强处理系统和处理方法
JP4591405B2 (ja) * 2006-05-10 2010-12-01 ソニー株式会社 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
US20080123750A1 (en) * 2006-11-29 2008-05-29 Michael Bronstein Parallel deblocking filter for H.264 video codec
WO2008090793A1 (ja) * 2007-01-22 2008-07-31 Nec Corporation 画像再符号化装置、画像再符号化方法及び画像符号化プログラム
US8204129B2 (en) * 2007-03-27 2012-06-19 Freescale Semiconductor, Inc. Simplified deblock filtering for reduced memory access and computational complexity
US20110002395A1 (en) * 2008-03-31 2011-01-06 Nec Corporation Deblocking filtering processor and deblocking filtering method
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
JP2010014513A (ja) * 2008-07-03 2010-01-21 Fuji Electric Holdings Co Ltd はんだフラックス中の金属成分分析方法
CN101321290B (zh) * 2008-07-17 2010-12-15 北京数码视讯科技股份有限公司 基于数字信号处理器的去块滤波方法
JPWO2010035403A1 (ja) * 2008-09-25 2012-02-16 パナソニック株式会社 フィルタ装置およびフィルタ方法
US8861586B2 (en) * 2008-10-14 2014-10-14 Nvidia Corporation Adaptive deblocking in a decoding pipeline
JP2010136245A (ja) * 2008-12-08 2010-06-17 Toshiba Corp 動画像処理装置及び方法
JP2010141513A (ja) * 2008-12-10 2010-06-24 Toshiba Corp 演算装置及び動画像符号化装置
JP5344238B2 (ja) 2009-07-31 2013-11-20 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
JP5359657B2 (ja) 2009-07-31 2013-12-04 ソニー株式会社 画像符号化装置および方法、記録媒体、並びにプログラム
CN102860005B (zh) * 2010-02-05 2016-07-06 瑞典爱立信有限公司 去块滤波控制
US9185430B2 (en) * 2010-03-15 2015-11-10 Mediatek Singapore Pte. Ltd. Deblocking filtering method and deblocking filter
JP5914962B2 (ja) 2010-04-09 2016-05-11 ソニー株式会社 画像処理装置および方法、プログラム、並びに、記録媒体
JPWO2011129090A1 (ja) 2010-04-13 2013-07-11 パナソニック株式会社 符号化歪み除去方法、符号化方法、復号化方法、符号化歪み除去装置、符号化装置、および復号化装置
TWI508534B (zh) 2010-05-18 2015-11-11 Sony Corp Image processing apparatus and image processing method
AU2011259939B2 (en) 2010-06-04 2015-07-30 Sony Corporation Image processing device and method
CN106713934B (zh) 2010-12-07 2019-04-16 索尼公司 图像处理设备和图像处理方法
MY163146A (en) * 2010-12-07 2017-08-15 Sony Corp Image processing device and image processing method
JP5741076B2 (ja) 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
SG10201606972VA (en) 2011-02-10 2016-10-28 Sony Corp Image processing device and image processing method
BR122020013609B1 (pt) 2011-03-11 2023-02-23 Sony Corporation Aparelho e método de processamento de imagem
TWI530161B (zh) 2011-06-07 2016-04-11 Sony Corp Image processing apparatus and method
JP5907367B2 (ja) 2011-06-28 2016-04-26 ソニー株式会社 画像処理装置および方法、プログラム、並びに記録媒体
MX342497B (es) 2012-06-29 2016-10-03 Sony Corp Dispositivo de codificacion y metodo de codificacion.

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63104586A (ja) * 1986-10-21 1988-05-10 Sony Corp ブロツク符号化された画像信号の復号装置
JP2003333597A (ja) * 2002-03-07 2003-11-21 Seiko Epson Corp 画像処理装置及び画像処理プログラム、並びに画像処理方法
JP2006174138A (ja) * 2004-12-16 2006-06-29 Sony Corp データ処理装置、画像処理装置、それらの方法およびプログラム
JP2006174486A (ja) * 2004-12-17 2006-06-29 Samsung Electronics Co Ltd ビデオデータの水平及び垂直フィルタリングを同時に行うデブロッキングフィルタ及び動作方法
JP2008048181A (ja) * 2006-08-17 2008-02-28 Fujitsu Ltd デブロッキングフィルタ、画像符号化装置および画像復号化装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
K.UGUR; K.R.ANDERSSON; A.FULDSETH: "JCTVC-A119:Video coding technology proposal", DOCUMENTS OF THE FIRST MEETING OF THE JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC, 15 April 2010 (2010-04-15)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018014743A (ja) * 2010-12-07 2018-01-25 ソニー株式会社 画像処理装置及び画像処理方法
US10334279B2 (en) 2010-12-07 2019-06-25 Sony Corporation Image processing device and image processing method
US10362318B2 (en) 2010-12-07 2019-07-23 Sony Corporation Image processing device and image processing method that horizontal filtering on pixel blocks
US10582202B2 (en) 2010-12-07 2020-03-03 Sony Corporation Image processing device and image processing method that horizontal filtering on pixel blocks
US10785504B2 (en) 2010-12-07 2020-09-22 Sony Corporation Image processing device and image processing method
US10931955B2 (en) 2010-12-07 2021-02-23 Sony Corporation Image processing device and image processing method that horizontal filtering on pixel blocks
US11381846B2 (en) 2010-12-07 2022-07-05 Sony Corporation Image processing device and image processing method
JPWO2014087861A1 (ja) * 2012-12-06 2017-01-05 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
JP7386883B2 (ja) 2019-02-27 2023-11-27 テレフオンアクチーボラゲット エルエム エリクソン(パブル) サブペル動きベクトルしきい値を使用するデブロッキング
US11902516B2 (en) 2019-02-27 2024-02-13 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking using sub-pel motion vector threshold
WO2023047950A1 (ja) * 2021-09-22 2023-03-30 シャープ株式会社 動画像符号化装置、動画像復号装置

Also Published As

Publication number Publication date
CN106454359B (zh) 2020-05-19
EP2651127A1 (en) 2013-10-16
JP6222305B2 (ja) 2017-11-01
TWI520504B (zh) 2016-02-01
RU2585662C2 (ru) 2016-06-10
US20190253721A1 (en) 2019-08-15
CA2815819A1 (en) 2012-06-04
US20180184095A1 (en) 2018-06-28
TW201528780A (zh) 2015-07-16
TW201528779A (zh) 2015-07-16
US9973763B2 (en) 2018-05-15
US10582202B2 (en) 2020-03-03
CN106385586A (zh) 2017-02-08
BR112013013509A2 (pt) 2020-07-28
ES2856823T3 (es) 2021-09-28
CN103229506A (zh) 2013-07-31
JP2016208533A (ja) 2016-12-08
AU2011339460A2 (en) 2013-07-11
TWI569627B (zh) 2017-02-01
EP3748964A1 (en) 2020-12-09
TW201528778A (zh) 2015-07-16
RU2016105120A3 (ja) 2019-05-23
US20130259142A1 (en) 2013-10-03
RU2016105120A (ru) 2018-11-22
KR101963097B1 (ko) 2019-03-27
JP6011341B2 (ja) 2016-10-19
TWI580249B (zh) 2017-04-21
EP2651127A4 (en) 2015-03-25
US10362318B2 (en) 2019-07-23
CN103229506B (zh) 2016-11-09
EP3748962A1 (en) 2020-12-09
US10931955B2 (en) 2021-02-23
EP3748963A1 (en) 2020-12-09
TW201233188A (en) 2012-08-01
KR101963096B1 (ko) 2019-03-27
JPWO2012077607A1 (ja) 2014-05-19
CN106454358A (zh) 2017-02-22
MX338737B (es) 2016-04-29
RU2691962C2 (ru) 2019-06-19
AU2011339460B2 (en) 2015-10-29
AU2011339460A1 (en) 2013-06-13
MX355896B (es) 2018-05-04
CN106454358B (zh) 2020-03-17
MY163146A (en) 2017-08-15
EP3748963B1 (en) 2022-03-02
CA2815819C (en) 2019-12-24
KR20180085039A (ko) 2018-07-25
US20200092568A1 (en) 2020-03-19
RU2013125498A (ru) 2014-12-10
JP2018014743A (ja) 2018-01-25
KR20180085040A (ko) 2018-07-25
KR20130129381A (ko) 2013-11-28
KR101879890B1 (ko) 2018-07-18
JP6471787B2 (ja) 2019-02-20
MX2013006131A (es) 2013-06-28
EP2651127B1 (en) 2021-02-03
CN106454359A (zh) 2017-02-22
TWI580250B (zh) 2017-04-21

Similar Documents

Publication Publication Date Title
JP6471787B2 (ja) 画像処理装置及び画像処理方法
JP6471786B2 (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: 11846148

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012547833

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2815819

Country of ref document: CA

ENP Entry into the national phase

Ref document number: 20137013869

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 13990893

Country of ref document: US

Ref document number: 2013125498

Country of ref document: RU

Ref document number: MX/A/2013/006131

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2011339460

Country of ref document: AU

Date of ref document: 20111202

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112013013509

Country of ref document: BR

ENP Entry into the national phase

Ref document number: 112013013509

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20130531