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

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

Info

Publication number
WO2012128191A1
WO2012128191A1 PCT/JP2012/056810 JP2012056810W WO2012128191A1 WO 2012128191 A1 WO2012128191 A1 WO 2012128191A1 JP 2012056810 W JP2012056810 W JP 2012056810W WO 2012128191 A1 WO2012128191 A1 WO 2012128191A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
pixel
slice
information
image processing
Prior art date
Application number
PCT/JP2012/056810
Other languages
English (en)
French (fr)
Inventor
健治 近藤
Original Assignee
ソニー株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ソニー株式会社 filed Critical ソニー株式会社
Priority to CN201280013677.8A priority Critical patent/CN103430544B/zh
Priority to US14/005,669 priority patent/US10306223B2/en
Publication of WO2012128191A1 publication Critical patent/WO2012128191A1/ja
Priority to US16/382,477 priority patent/US10623739B2/en
Priority to US16/821,553 priority patent/US11095889B2/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Definitions

  • the present disclosure relates to an image processing apparatus and method, and more particularly to an image processing apparatus and method capable of suppressing an increase in processing time.
  • image information is treated as digital, and at that time, it is an MPEG that is compressed by orthogonal transformation such as discrete cosine transformation and motion compensation for the purpose of efficient transmission and storage of information, using redundancy unique to image information.
  • orthogonal transformation such as discrete cosine transformation and motion compensation for the purpose of efficient transmission and storage of information, using redundancy unique to image information.
  • a device conforming to a method such as Moving Picture Experts Group) is spreading in both information distribution such as broadcasting station and information reception in general home.
  • MPEG2 International Organization for Standardization
  • IEC International Electrotechnical Commission
  • MPEG2 was mainly intended for high-quality coding suitable for broadcasting, it did not correspond to a coding amount (bit rate) lower than that of MPEG1, that is, a coding method with a higher compression rate.
  • bit rate bit rate
  • MPEG4 coding amount
  • the standard was approved as an international standard as ISO / IEC 14496-2 in December 1998.
  • H.26L International Telecommunication Union Telecommunication Standardization Sector (ITU-T Q6 / 16 Video Coding Expert Group)
  • ISO-T Q6 / 16 Video Coding Expert Group International Telecommunication Union Telecommunication Standardization Sector
  • AVC Advanced Video Coding
  • ITU-T and JCTVC Joint Collaboration Team-Video Coding
  • ISO / IEC Joint Collaboration Team-Video Coding
  • HEVC High Efficiency Video Coding
  • a coding unit (Coding Unit) is defined as a processing unit similar to a macroblock in AVC.
  • This CU is not fixed in size to 16 ⁇ 16 pixels like a macroblock of AVC, and is designated in image compression information in each sequence.
  • the Adaptive Loop Filter (ALF) used in such a coding method applies the Wiener filter to the reconstructed image, and improves the coding efficiency and the image quality by removing the noise contained in the reconstructed image. can do.
  • ALF Adaptive Loop Filter
  • classification ALF As one of the methods using ALF, there has been proposed a method called classification ALF that matches filter characteristics to local situations by switching filter characteristics using information that can be classified by a decoder.
  • information used for classification there is the size of SML (Sum-Modified Laplacian), which is an operator for obtaining the complexity of texture, as information used for classification considered in the next generation video coding standard HEVC.
  • SML Scal-Modified Laplacian
  • the method called the adaptive offset filter proposed by the nonpatent literature 2 is employ
  • an adaptive offset filter is provided between the deblocking filter and the adaptive loop filter.
  • types of adaptive offsets there are two types called band offsets, and six types called edge offsets. Furthermore, it is possible to not apply offsets. Then, the image can be divided into quad-trees, and for each region, it can be selected according to the type of adaptive offset described above. By using this method, coding efficiency can be improved.
  • peripheral pixel values are referred to for calculation of the offset value of the pixel of interest.
  • JCT VC-B 205 Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO / IEC JTC1 / SC29 / WG112nd Meeting: Geneva, CH, 21-28 July, 2010 “CE8 Subtest 3: Picture Quality Adaptive Offset”, JCTVC-D122, January 2011
  • the information used for ALF class classification for example, the pixel value of the reconstructed image
  • the information necessary for filtering the target pixel to be processed is other Since it is in the slice of (not in the slice of interest), the processing of the pixel of interest can not be started unless the processing of the slice is completed.
  • the offset value of the edge offset of the pixel of interest may be calculated until the processing of the slice of the peripheral pixel is completed. It will not be possible.
  • the pixel of interest when the pixel of interest is at the end of the slice of interest and the peripheral pixels to be referred to are located in other slices (peripheral slices), the pixel of interest (or the entire slice of interest) until processing of the peripheral slices is completed ) Can not start processing.
  • the processing time since the peripheral slice and the slice of interest can not be processed in parallel, the processing time may be increased and the throughput may be reduced.
  • the present disclosure has been made in view of such a situation, and in encoding of an image in which a picture is divided into a plurality of slices and processing is performed in parallel for each slice, a pixel of interest is referred to with reference to peripheral pixels.
  • An object of the present invention is to suppress an increase in processing time even in the case of processing.
  • One aspect of the present disclosure is information necessary for image processing on the pixel of interest determined using reference information belonging to another pixel different from the pixel of interest to be processed, only information belonging to the slice including the pixel of interest
  • An image processing apparatus comprising: an information control unit to be obtained using the image processing unit; and an image processing unit to perform the image processing using the information obtained by the information control unit.
  • the image processing is adaptive loop filter processing, and the information control unit obtains a filter coefficient used for the adaptive loop filter processing as information necessary for the image processing, and the image processing unit is configured to
  • the adaptive loop filter process can be performed on the pixel of interest using the filter coefficients obtained by
  • the image processing unit can perform the adaptive loop filter processing independently for each slice, and the information control unit can obtain the filter coefficient without using information outside the target slice to be processed. .
  • the information control unit is a position determination unit that determines whether or not a peripheral pixel of the target pixel is located in the target slice, and information indicating the complexity of the texture of the target pixel according to the determination result of the position determination unit Calculating unit, a classification unit for classifying the pixel of interest according to the size of the information indicating the complexity of the texture calculated by the calculation unit, and the class classified by the classification unit And a filter coefficient setting unit configured to set a value corresponding to the value as a filter coefficient of the pixel of interest.
  • the information indicating the complexity of the texture may be SML (Sum-Modified Laplacian).
  • the calculation unit sets the pixel value of the peripheral pixel to a predetermined fixed value determined in advance when the position determination unit determines that the peripheral pixel is not located in the slice of interest.
  • Information representing complexity can be calculated.
  • the calculation unit is configured to use the available pixels in the vicinity of the peripheral pixel instead of the pixel value of the peripheral pixel. Pixel values can be used to calculate information representing the complexity of the texture.
  • the calculation unit may use the pixel value of the target pixel instead of the pixel value of the peripheral pixel when the position determination unit determines that the peripheral pixel is not located in the target slice.
  • Information representing complexity can be calculated.
  • the calculation unit may calculate information representing the complexity of the texture, with four pixels adjacent to upper, lower, left, and right of the target pixel as the peripheral pixels.
  • the calculation unit may set a sum of absolute values of differences between the pixel value of the target pixel and the pixel values of the peripheral pixels as information indicating the complexity of the texture.
  • the filter coefficient setting unit can set a predetermined value determined in advance as a filter coefficient of the pixel of interest when the position determination unit determines that the peripheral pixels are not located in the slice of interest.
  • the image processing unit may omit adaptive loop filter processing on the target pixel when the position determination unit determines that the peripheral pixel is not located in the target slice.
  • the image processing unit further includes a flag generation unit that generates a flag indicating whether to perform the adaptive loop filter process on the target slice independently of the other slices, and the image processing unit further includes the flag generated by the flag generation unit.
  • Adaptive loop filtering may be performed on the pixel of interest in the slice of interest, depending on the value of.
  • the image processing is adaptive offset processing
  • the information control unit obtains peripheral pixel values used for the adaptive offset processing as information necessary for the image processing
  • the image processing unit uses the information control unit
  • the adaptive offset process can be performed on the target pixel using the determined peripheral pixel value.
  • the information control unit determines a peripheral pixel value that determines the peripheral pixel value according to the determination result of the position determination unit that determines whether the peripheral pixel of the target pixel is located in the target slice and the determination result of the position determination unit And a unit.
  • the peripheral pixel value determination unit may determine a predetermined fixed value determined in advance as the peripheral pixel value when the position determination unit determines that the peripheral pixel is not located in the slice of interest.
  • the peripheral pixel value determination unit determines the pixel value of an available pixel in the vicinity of the peripheral pixel as the peripheral pixel value when the position determination unit determines that the peripheral pixel is not located in the slice of interest. can do.
  • the peripheral pixel value determination unit may determine the pixel value of the target pixel as the peripheral pixel value when the position determination unit determines that the peripheral pixel is not located in the target slice.
  • the image processing unit further includes a flag generation unit that generates a flag indicating whether the adaptive offset process on the slice of interest is to be performed independently of other slices, and the image processing unit is configured to generate the flag of the flag generated by the flag generation unit. Depending on the value, adaptive offset processing can be performed on the target pixel in the target slice.
  • Another aspect of the present disclosure is the image processing method of the image processing apparatus, wherein the information control unit determines an image for the target pixel determined using reference information belonging to another pixel different from the target pixel to be processed. Information necessary for processing is obtained using only information belonging to the slice including the target pixel, and an image processing unit performs the image processing using the information obtained by the information control unit.
  • information necessary for image processing on a pixel of interest determined using reference information belonging to another pixel different from the pixel of interest to be processed uses only information belonging to a slice including the pixel of interest Image processing is performed using the obtained information and the obtained information.
  • an image can be processed.
  • an increase in processing time can be suppressed.
  • FIG. 1 is a block diagram showing an example of the main configuration of an image coding apparatus.
  • the image coding apparatus 100 shown in FIG. As in the H.264 and MPEG (Moving Picture Experts Group) 4 Part 10 (AVC (Advanced Video Coding)) encoding method, image data is encoded using prediction processing.
  • H.264 and MPEG Motion Picture Experts Group 4 Part 10 (AVC (Advanced Video Coding)
  • AVC Advanced Video Coding
  • the image coding apparatus 100 includes an A / D conversion unit 101, a screen rearrangement buffer 102, an operation unit 103, an orthogonal conversion unit 104, a quantization unit 105, a lossless coding unit 106, and an accumulation buffer. It has 107.
  • the image coding apparatus 100 further includes an inverse quantization unit 108, an inverse orthogonal transformation unit 109, an operation unit 110, a deblocking filter 111, an adaptive loop filter 112, a frame memory 113, a selection unit 114, an intra prediction unit 115, and motion estimation.
  • the compensation unit 116, the prediction image selection unit 117, and the rate control unit 118 are included.
  • the image coding apparatus 100 further includes a filter coefficient control unit 121.
  • the A / D conversion unit 101 A / D converts the input image data, supplies the converted image data (digital data) to the screen rearrangement buffer 102, and stores it.
  • the screen rearrangement buffer 102 rearranges the images of the stored display order in the frame order for encoding according to GOP (Group Of Picture), and arranges the images in which the frame order is rearranged,
  • the data is supplied to the calculation unit 103. Further, the screen rearrangement buffer 102 also supplies the image in which the order of the frames is rearranged to the intra prediction unit 115 and the motion prediction / compensation unit 116.
  • the operation unit 103 subtracts the predicted image supplied from the intra prediction unit 115 or the motion prediction / compensation unit 116 from the image read from the screen rearrangement buffer 102 via the predicted image selection unit 117, and the difference information thereof Are output to the orthogonal transformation unit 104.
  • the operation unit 103 subtracts the predicted image supplied from the motion prediction / compensation unit 116 from the image read from the screen rearrangement buffer 102.
  • the orthogonal transformation unit 104 performs orthogonal transformation such as discrete cosine transformation or Karhunen-Loeve transformation on the difference information supplied from the arithmetic unit 103. In addition, the method of this orthogonal transformation is arbitrary.
  • the orthogonal transform unit 104 supplies the transform coefficient to the quantization unit 105.
  • the quantization unit 105 quantizes the transform coefficient supplied from the orthogonal transform unit 104.
  • the quantization unit 105 sets a quantization parameter based on the information on the target value of the code amount supplied from the rate control unit 118, and performs the quantization. In addition, the method of this quantization is arbitrary.
  • the quantization unit 105 supplies the quantized transform coefficient to the lossless encoding unit 106.
  • the lossless encoding unit 106 encodes the transform coefficient quantized in the quantization unit 105 by an arbitrary encoding method. Since the coefficient data is quantized under the control of the rate control unit 118, this code amount is the target value set by the rate control unit 118 (or approximate to the target value).
  • the lossless encoding unit 106 acquires information indicating the mode of intra prediction from the intra prediction unit 115 and acquires information indicating the mode of inter prediction, motion vector information, or the like from the motion prediction / compensation unit 116. Furthermore, the lossless encoding unit 106 acquires alf_flag and the like supplied from the adaptive loop filter 112.
  • the lossless encoding unit 106 encodes these various pieces of information according to an arbitrary encoding method, and makes it part of header information of encoded data (multiplexing).
  • the lossless encoding unit 106 supplies the encoded data obtained by the encoding to the accumulation buffer 107 for accumulation.
  • Examples of the coding method of the lossless coding unit 106 include variable-length coding and arithmetic coding.
  • variable-length coding for example, H.264.
  • Examples include CAVLC (Context-Adaptive Variable Length Coding) defined by the H.264 / AVC system.
  • Examples of arithmetic coding include CABAC (Context-Adaptive Binary Arithmetic Coding).
  • the accumulation buffer 107 temporarily holds the encoded data supplied from the lossless encoding unit 106.
  • the accumulation buffer 107 outputs, at a predetermined timing, the held encoded data to, for example, a not-shown recording device (recording medium) or a transmission path at a later stage.
  • the transform coefficient quantized in the quantization unit 105 is also supplied to the inverse quantization unit 108.
  • the inverse quantization unit 108 inversely quantizes the quantized transform coefficient by a method corresponding to the quantization by the quantization unit 105.
  • the inverse quantization method may be any method as long as it corresponds to the quantization processing by the quantization unit 105.
  • the inverse quantization unit 108 supplies the obtained transform coefficient to the inverse orthogonal transform unit 109.
  • the inverse orthogonal transform unit 109 performs inverse orthogonal transform on the transform coefficient supplied from the inverse quantization unit 108 by a method corresponding to orthogonal transform processing by the orthogonal transform unit 104. Any method may be used as this inverse orthogonal transformation method as long as it corresponds to the orthogonal transformation processing by the orthogonal transformation unit 104.
  • the inverse orthogonal transform output (restored difference information) is supplied to the calculation unit 110.
  • the calculation unit 110 is supplied from the intra prediction unit 115 or the motion prediction / compensation unit 116 via the predicted image selection unit 117 to the inverse orthogonal transformation result supplied from the inverse orthogonal transformation unit 109, that is, the restored difference information. Prediction images are added to obtain a locally decoded image (decoded image). The decoded image is supplied to the deblocking filter 111 or the frame memory 113.
  • the deblocking filter 111 removes block distortion of the decoded image by performing deblocking filter processing on the decoded image.
  • the deblocking filter 111 supplies the decoded image after the filtering process to the adaptive loop filter 112.
  • the adaptive loop filter 112 improves the image quality by performing loop filter processing on the deblock filter processing result (decoded image subjected to removal of block distortion) using a Wiener filter.
  • the adaptive loop filter 112 classifies the target pixel to be processed, and performs class classification ALF that performs filter processing of the target pixel using a filter coefficient according to the class.
  • the adaptive loop filter 112 performs this filter process for each slice.
  • the adaptive loop filter 112 supplies the filter processing result (the decoded image after filter processing) to the frame memory 113.
  • the decoded image output from the calculation unit 110 can be supplied to the frame memory 113 without passing through the deblocking filter 111 and the adaptive loop filter 112.
  • a reference image used for intra prediction an image in which the filtering process by the deblocking filter 111 and the adaptive loop filter 112 is omitted is stored in the frame memory 113.
  • the frame memory 113 stores the supplied decoded image, and supplies the stored decoded image as a reference image to the selecting unit 114 at a predetermined timing.
  • the selection unit 114 selects the supply destination of the reference image supplied from the frame memory 113. For example, in the case of intra prediction, the selection unit 114 supplies the reference image supplied from the frame memory 113 to the intra prediction unit 115. Also, for example, in the case of inter prediction, the selection unit 114 supplies the reference image supplied from the frame memory 113 to the motion prediction / compensation unit 116.
  • the intra prediction unit 115 basically performs intra prediction using PU as a processing unit, using the input image supplied from the screen rearrangement buffer 102 and the reference image supplied from the frame memory 113 via the selection unit 114. Perform (in-screen prediction).
  • the intra prediction unit 115 supplies the predicted image generated in the optimal mode to the predicted image selection unit 117. Further, as described above, the intra prediction unit 115 appropriately supplies intra prediction mode information and the like indicating the adopted intra prediction mode to the lossless encoding unit 106, and causes the lossless encoding unit 106 to encode the information.
  • the motion prediction / compensation unit 116 basically uses PU as a processing unit using the input image supplied from the screen rearrangement buffer 102 and the reference image supplied from the frame memory 113 via the selection unit 114. Motion prediction (inter prediction) is performed, motion compensation processing is performed according to the detected motion vector, and a prediction image (inter prediction image information) is generated.
  • the motion prediction / compensation unit 116 performs such inter prediction in a plurality of modes (inter prediction modes) prepared in advance.
  • the motion prediction / compensation unit 116 generates prediction images in all the candidate inter prediction modes, evaluates the cost function value of each prediction image, and selects an optimal mode. When the motion prediction / compensation unit 116 selects the optimal inter prediction mode, the motion prediction / compensation unit 116 supplies the prediction image generated in the optimum mode to the prediction image selection unit 117.
  • the motion prediction / compensation unit 116 losslessly encodes the information indicating the adopted inter prediction mode, the information necessary for performing processing in the inter prediction mode when decoding encoded data, and the like. Feed and encode.
  • the prediction image selection unit 117 selects the supply source (the intra prediction unit 115 or the motion prediction / compensation unit 116) of the prediction image to be supplied to the calculation unit 103 or the calculation unit 110, and the prediction image supplied from the selected processing unit is selected. It is supplied to the calculation unit 103 and the calculation unit 110.
  • the rate control unit 118 controls the rate of the quantization operation of the quantization unit 105 based on the code amount of the encoded data accumulated in the accumulation buffer 107 so that the overflow or the underflow does not occur.
  • the filter coefficient control unit 121 sets the filter coefficient of the filter processing performed by the adaptive loop filter 112.
  • the filter coefficient control unit 121 classifies the target pixel to be processed, and sets a filter coefficient according to the class.
  • the filter coefficient control unit 121 performs the setting (class classification) of the filter coefficient without using information of other slices outside the target slice to which the target pixel to be processed belongs. That is, the filter coefficient control unit 121 secures the independence of the processing in units of slices when setting the filter coefficients.
  • Multi slice In an image coding method such as MPEG2 or AVC, one picture can be divided into a plurality of slices and each slice can be processed in parallel (multi slice).
  • the maximum size of a slice is one macroblock line, and all slices constituting a B picture must be B slices.
  • the slice may be larger than one macroblock line, and the slice boundary may not be the right end of the macroblock line (screen right end)
  • a single picture may be composed of different types of slices.
  • deblocking filtering can be performed across slice boundaries.
  • processing using adjacent information such as adaptive loop filter processing, intra prediction, CABAC, CAVLC, and motion vector prediction can not be performed across slice boundaries.
  • each slice since the coding process of each slice can be performed independently of each other, it is possible to divide one picture into a plurality of slices and code each slice in parallel. That is, by such slice division, it is possible to realize a reduction in encoding processing time (speeding up of encoding processing).
  • a macro block or a sub macro block obtained by dividing the macro block into a plurality of blocks is used as a processing unit such as prediction processing or coding processing.
  • setting the macroblock size to 16 pixels ⁇ 16 pixels is optimal for a large image frame such as UHD (Ultra High Definition; 4000 pixels ⁇ 2000 pixels), which is the target of the next-generation coding method. is not.
  • a joint standardization body of ITU-T International Telecommunication Union Telecommunication Standardization Sector
  • ISO International Organization for Standardization
  • IEC International Electrotechnical Commission
  • a joint collaboration team-video coding (JCTVC) is in the process of standardizing a coding method called high efficiency video coding (HEVC).
  • AVC a hierarchical structure of macroblocks and sub-macroblocks is defined.
  • a coding unit (CU (Coding Unit)) is defined.
  • the CU is also called a Coding Tree Block (CTB), and is a partial area of a picture-based image that plays a role similar to a macroblock in AVC.
  • CTB Coding Tree Block
  • the latter is fixed at a size of 16 ⁇ 16 pixels, whereas the size of the former is not fixed, and is designated in the image compression information in each sequence.
  • a CU maximum size (Largest Coding Unit)
  • a minimum size ((SCU (Smallest Coding Unit))
  • split-flag 1 within the range not exceeding the size of the SCU.
  • the size of LCU is 128, and the maximum hierarchical depth is 5.
  • split_flag is “1”
  • a 2N ⁇ 2N-sized CU is divided into an N ⁇ N-sized CU, which is one level lower.
  • a CU is divided into prediction units (Prediction Units (PUs)), which are regions serving as processing units for intra or inter prediction (partial regions of images in units of pictures), and regions serving as processing units for orthogonal transformation. It is divided into transform units (Transform Units (TUs)), which are (partial areas of an image in picture units).
  • Prediction Units PUs
  • transform units Transform Units (TUs)
  • TUs Transform Units
  • a macro block in AVC corresponds to an LCU.
  • the size of the LCU in the top layer is generally set larger than the AVC macroblock, for example, 128 ⁇ 128 pixels. is there.
  • the processing unit for performing the prediction processing may be an arbitrary area. That is, in the following, the area to be subjected to the prediction process (also referred to as the area or the area of interest) or the peripheral area that is the area located around the area of interest And CU, PU, and TU are included.
  • the LCU (CU, PU, and TU) as described above is obtained by dividing the area of a slice into a plurality of pieces, and belongs to the lower layer of the slice. That is, in the case of the multi slice as described in FIG. 2, the LCU is included in any slice, as shown in FIG.
  • the start address of the LCU is specified by the relative position from the start of each slice.
  • Each area (CU, PU, and TU) in the LCU has identification information and a size specified. That is, the position of each pixel can be identified from the information. Therefore, the position of the target pixel to be processed and its peripheral pixels, and the range of the target slice can be easily identified from the information. In other words, whether or not the surrounding pixels belong to the slice of interest (whether available or unavailable) can be easily identified.
  • the filter coefficient control unit 121 uses only available information to obtain a filter coefficient to be used for adaptive loop filter processing for the pixel of interest. More specifically, the filter coefficient control unit 121 classifies the pixel of interest and sets a value corresponding to the classified class as a filter coefficient for the pixel of interest. For this classification, the filter coefficient control unit 121 calculates SML (Sum-Modified Laplacian). SML is an operator that obtains the complexity of the texture. That is, the filter coefficient control unit 121 classifies the pixel of interest according to the size of the SML.
  • SML Sud-Modified Laplacian
  • the filter coefficient control unit 121 calculates this SML using only available information. For example, the filter coefficient control unit 121 performs calculation using the pixel value of the target pixel and the pixel values of available neighboring pixels located around the target pixel.
  • the peripheral pixels may be any available pixels, but basically, pixels closer to the target pixel are more correlated and desirable.
  • the filter coefficient control unit 121 may set the pixel value R (i, j) of the pixel of interest (i, j) and the pixel values R (i ⁇ j) of surrounding pixels adjacent to the left of the pixel of interest. 1, j), pixel values R (i + 1, j) of peripheral pixels adjacent to the right of the target pixel, pixel values R (i, j-1) of peripheral pixels adjacent above the target pixel, and
  • the SML (i, j) of the pixel of interest is calculated as shown by the following equation (1) using the pixel values R (i, j + 1) of the peripheral pixels adjacent below.
  • the pixel value of the pixel at the position (i, j) is R (i, j).
  • the filter coefficient control unit 121 classifies the pixel of interest based on the size of the SML (i, j), and sets a value corresponding to the class as a filter coefficient for the pixel of interest.
  • Multi-slice classification ALF As described above, in the class classification ALF, the pixel values of peripheral pixels are referred to at the time of class classification of the pixel of interest. However, in the case of multi-slice as described above, there is a possibility that peripheral pixels that may be referred to are located in slices different from the pixel of interest.
  • FIG. 7 shows a state in which the pixel of interest (i, j) and peripheral pixels adjacent to the upper, lower, left, and right sides thereof are all located in one slice (slice 1) (belong to the slice of interest).
  • i indicates the horizontal position of the pixel
  • j indicates the vertical position of the pixel.
  • the upper left end of the slice be the origin (0, 0).
  • the filter coefficient control unit 121 can refer to the pixel values of all the surrounding pixels (is available) in the class classification (SML calculation) of the target pixel.
  • FIG. 8 shows the pixel of interest (i, j), the peripheral pixel (i, j + 1) adjacent below the pixel of interest, the peripheral pixels (i-1, j) adjacent to the left of the pixel of interest, and the pixel to the right of the pixel of interest
  • the neighboring pixel (i + 1, j) adjacent to is located in slice 1 (belongs to the slice of interest), while the neighboring pixel (i, j-1) adjacent to the pixel of interest is located in slice 0 It shows that it does not belong to the target slice.
  • the filter coefficient control unit 121 can refer to the peripheral pixel (i, j + 1), the peripheral pixel (i ⁇ 1, j), and the peripheral pixel (i + 1, j) (which is available),
  • the peripheral pixel (i, j-1) can not be referred to (is unavailable).
  • FIG. 9 shows a target pixel (i, j), a peripheral pixel (i, j-1) adjacent to the target pixel, a peripheral pixel (i-1, j) adjacent to the left of the target pixel, and the target pixel
  • the neighboring pixel (i + 1, j) adjacent to the right of is located in slice 1 (belongs to the slice of interest), but the neighboring pixel (i, j + 1) adjacent below the pixel of interest is located outside the picture or frame It shows that it does (does not exist).
  • the filter coefficient control unit 121 can refer to the peripheral pixel (i, j-1), the peripheral pixel (i-1, j), and the peripheral pixel (i + 1, j) (which is available). However, it is impossible to refer to the peripheral pixel (i, j + 1).
  • FIG. 10 shows the pixel of interest (i, j), the peripheral pixel (i, j-1) adjacent above the pixel of interest, the peripheral pixel (i, j + 1) adjacent below the pixel of interest, and the pixel to the right of the pixel of interest.
  • the neighboring pixel (i + 1, j) adjacent to is located in slice 1 (belongs to the slice of interest) while the neighboring pixel (i-1, j) adjacent to the left of the pixel of interest is located in slice 0 It shows that it does not belong to the target slice.
  • the filter coefficient control unit 121 can refer to the peripheral pixel (i, j-1), the peripheral pixel (i, j + 1), and the peripheral pixel (i + 1, j) (which is available), The peripheral pixels (i-1, j) can not be referenced (unavailable).
  • the slice boundaries include the picture end in addition to the boundaries between the slices. What is important is whether the pixel value of the peripheral pixel is available, that is, whether the peripheral pixel is included in the slice of interest. Therefore, in the state where the pixel value of the peripheral pixel is unavailable (unavailable), the peripheral pixel does not exist in addition to the case where the peripheral pixel belongs to another slice (it will be located outside the picture) The case is also included.
  • peripheral pixels i, j-1
  • peripheral pixels i-1, j
  • the positional relationship between the slice boundary and the pixel of interest is not limited to the examples shown in FIGS.
  • the filter coefficient control unit 121 calculates the SML of the pixel of interest without using the pixel values. I do.
  • the filter coefficient control unit 121 can use, for example, the correlation of the pixel value between the pixels instead of the pixel values of the unavailable peripheral pixels to be available near the surrounding pixels.
  • the SML may be calculated using the pixel values of (available) pixels (including pixels adjacent to peripheral pixels).
  • the filter coefficient control unit 121 may calculate the SML using, for example, the pixel value of the pixel of interest as the pixel in the vicinity thereof.
  • the filter coefficient control unit 121 performs the SML calculation using a predetermined fixed value instead of the pixel values of the unavailable peripheral pixels. May be
  • the filter coefficient control unit 121 may use a pixel value of one or more other available pixels as a predetermined value instead of a pixel value of an unavailable (unavailable) peripheral pixel.
  • the SML may be calculated by using the above-mentioned value, and the SML may be calculated using that value.
  • the filter coefficient control unit 121 can perform the calculation of the SML of each pixel, that is, the class classification and the calculation of the filter coefficient without referring to information of other slices. That is, the filter coefficient control unit 121 can perform these processes independently for each slice. Therefore, the adaptive loop filter 112 can perform adaptive loop filter processing independently for each slice, and can suppress reduction in throughput of adaptive loop filter processing even in the case of multi-slice. That is, the image coding apparatus 100 can suppress an increase in processing time of the coding process.
  • FIG. 11 is a block diagram showing a main configuration example of the adaptive loop filter 112 and the filter coefficient control unit 121. As shown in FIG.
  • the adaptive loop filter 112 includes a control unit 131 and a filter processing unit 132.
  • the filter coefficient control unit 121 further includes a position determination unit 141, an SML calculation unit 142, a class classification unit 143, and a filter coefficient setting unit 144.
  • the control unit 131 controls the adaptive loop filter processing of the filter processing unit 132 based on the value of the flag alf_flag indicating whether to perform the adaptive loop filter processing. Further, when performing the adaptive loop filter process, the control unit 131 instructs the position determination unit 141 of the filter coefficient control unit 121 to start the process. Furthermore, the control unit 131 supplies alf_flag to the lossless encoding unit 106, causes it to be encoded, and causes the decoding side to transmit it.
  • the filter processing unit 132 performs filter processing on the pixel values after the deblocking filter processing supplied from the deblocking filter 111 using the filter coefficients supplied from the filter coefficient setting unit 144 according to the control of the control unit 131.
  • the filter processing unit 132 holds the pixel value after the filter processing, supplies the pixel value to the frame memory 113, and stores it as a reference image.
  • the held pixel value is reused as the pixel value of the peripheral pixel in the processing for other pixels processed after the target pixel.
  • the position determination unit 141 acquires, from the lossless encoding unit 106, address information indicating the position of a slice, a target pixel to be processed, or the like.
  • the address information is stored, for example, in a sequence parameter set (SPS (Sequence Parameter Set)) generated by the lossless encoding unit 106, a picture parameter set (PPS (Picture Parameter Set)), a slice header, or the like.
  • SPS Sequence Parameter Set
  • PPS Picture Parameter Set
  • the position determination unit 141 determines the position of the pixel of interest in the slice of interest using the acquired address information.
  • the SML calculation unit 142 uses the pixel value of the target pixel acquired from the filter processing unit 132 and the pixel values of the peripheral pixels acquired from the filter processing unit 132 based on the position determination result (position information) by the position determination unit 141 (information outside the target slice Calculate the SML of the pixel of interest (without reference).
  • the class classification unit 143 classifies the pixel of interest using the SML calculated by the SML calculation unit 142.
  • the filter coefficient setting unit 144 sets, for the pixel of interest, a filter coefficient according to the class in accordance with the class information (class classification result) acquired from the class classification unit 143.
  • the filter coefficient setting unit 144 supplies the set filter coefficient to the filter processing unit 132.
  • the filter processing unit 132 performs filter processing on the pixel of interest using the filter coefficient.
  • step S101 the A / D conversion unit 101 A / D converts the input image.
  • step S102 the screen rearrangement buffer 102 stores the A / D converted image, and performs rearrangement from the display order of each picture to the coding order.
  • step S103 the intra prediction unit 115 performs intra prediction processing in the intra prediction mode.
  • step S104 the motion prediction / compensation unit 116 performs inter motion prediction processing that performs motion prediction and motion compensation in the inter prediction mode.
  • step S105 the predicted image selection unit 117 determines the optimal mode based on the cost function values output from the intra prediction unit 115 and the motion prediction / compensation unit 116. That is, the prediction image selection unit 117 selects one of the prediction image generated by the intra prediction unit 115 and the prediction image generated by the motion prediction / compensation unit 116.
  • step S106 the computing unit 103 computes the difference between the image rearranged in the process of step S102 and the predicted image selected in the process of step S105.
  • the amount of difference data is reduced compared to the original image data. Therefore, the amount of data can be compressed as compared to the case of encoding the image as it is.
  • step S107 the orthogonal transformation unit 104 orthogonally transforms the difference information generated by the process of step S106. Specifically, orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
  • orthogonal transformation such as discrete cosine transformation and Karhunen-Loeve transformation is performed, and transformation coefficients are output.
  • step S108 the quantization unit 105 quantizes the orthogonal transformation coefficient obtained by the process of step S107.
  • step S109 the inverse quantization unit 108 inversely quantizes the quantized orthogonal transformation coefficient (also referred to as a quantization coefficient) generated by the process of step S108 with a characteristic corresponding to the characteristic of the quantization unit 105.
  • step S110 the inverse orthogonal transformation unit 109 performs inverse orthogonal transformation on the orthogonal transformation coefficient obtained by the process of step S107 with a characteristic corresponding to the characteristic of the orthogonal transformation unit 104.
  • step S111 the calculation unit 110 adds the prediction image to the locally decoded difference information to generate a locally decoded image (an image corresponding to an input to the calculation unit 103).
  • step S112 the deblocking filter 111 appropriately performs deblocking filter processing on the local decoded image obtained by the processing of step S111.
  • step S113 the adaptive loop filter 112 and the filter coefficient control unit 121 perform adaptive loop filter processing on the deblock-filtered decoded image independently for each slice.
  • step S114 the frame memory 113 stores the decoded image subjected to the adaptive loop filter processing by the process of step S113.
  • the image not subjected to filter processing by the deblocking filter 111 or the adaptive loop filter 112 is also supplied to the frame memory 113 from the arithmetic unit 110 and stored.
  • step S115 the lossless encoding unit 106 encodes the transform coefficient quantized in the process of step S108. That is, lossless coding such as variable-length coding or arithmetic coding is performed on the difference image.
  • the lossless encoding unit 106 encodes the quantization parameter calculated in step S108 and adds the encoded parameter to the encoded data.
  • the lossless encoding unit 106 encodes information on the prediction mode of the predicted image selected in the process of step S105, and adds the information to encoded data obtained by encoding a differential image. That is, the lossless encoding unit 106 also encodes the optimal intra prediction mode information supplied from the intra prediction unit 115 or the information according to the optimal inter prediction mode supplied from the motion prediction / compensation unit 116, etc. Append to data.
  • the lossless encoding unit 106 also encodes information on filter processing such as alf_flag, and adds the encoded information to the encoded data.
  • step S116 the accumulation buffer 107 accumulates the encoded data obtained by the process of step S115.
  • the encoded data stored in the storage buffer 107 is appropriately read and transmitted to the decoding side via a transmission path or a recording medium.
  • step S117 the rate control unit 118 prevents the overflow or underflow from occurring on the basis of the code amount (generated code amount) of the encoded data accumulated in the accumulation buffer 107 by the process of step S116. Control the rate of the quantization operation of
  • step S117 ends, the encoding process ends.
  • step S131 the control unit 131 sets the first pixel of the target slice to be processed as a processing target (target pixel).
  • step S132 the control unit 131 determines whether all the pixels have been processed. If it is determined that there is an unprocessed pixel, the process proceeds to step S133 to control the position determination unit 141.
  • the position determination unit 141 acquires address information of a slice of interest, a pixel of interest, or the like in step S133, and determines the positions of peripheral pixels in step S134. That is, the position determination unit 141 determines whether or not the peripheral pixels are located in the target slice (whether or not available), based on the position of the target pixel in the target slice.
  • step S135 the SML calculation unit 142 calculates the SML (i, j) of the region of interest according to the position determination result in step S134.
  • step S136 the class classification unit 143 classifies the pixel of interest according to the size of the SML (i, j) calculated in step S135.
  • step S137 the filter coefficient setting unit 144 sets a filter coefficient for the target pixel according to the class classified in step S136.
  • step S138 the control unit 131 determines whether the value of alf_flag, which is flag information indicating whether to perform the adaptive loop filter process, is one. If it is determined that the value is 1, the control unit 131 causes the process to proceed to step S139 and controls the filter processing unit 132.
  • step S139 the filter processing unit 132 performs filter processing on the pixel of interest using the filter coefficient set in step S137.
  • step S138 When it is determined in step S138 that the value of alf_flag is 0, the control unit 131 causes the process to proceed to step S140.
  • step S140 the control unit 131 supplies alf_flag to the lossless encoding unit 106 to encode it.
  • step S141 the control unit 131 updates the processing target to be the next pixel. After completing the process of step S141, the control unit 131 returns the process to step S132, and repeats the subsequent processes.
  • control unit 131 ends the adaptive loop filter processing, and the processing is shown in FIG. Return to 12.
  • step S161 the SML calculation unit 142 determines whether the peripheral pixel (i-1, j) is included in the slice of interest.
  • the SML calculation unit 142 proceeds to the process of step S 162, and the pixel of the peripheral pixel is processed as shown in the following equation (2) Used to calculate SML without updating the value.
  • step S161 if it is determined in step S161 that the peripheral pixel (i-1, j) is not included in the slice of interest, the SML calculation unit 142 proceeds to step S163, and the following equation (3) is obtained. As shown, the pixel values of its surrounding pixels are updated with the pixel value of the pixel of interest.
  • step S164 the SML calculating unit 142 determines whether the peripheral pixel (i + 1, j) is included in the slice of interest.
  • the SML calculation unit 142 proceeds to step S165, and the pixel value of the peripheral pixel is calculated as shown in equation (4) below. Used for SML calculation without updating.
  • step S164 if it is determined in step S164 that the peripheral pixel (i + 1, j) is not included in the slice of interest, the SML calculation unit 142 proceeds to step S166 and is expressed by the following equation (5). Thus, the pixel values of the peripheral pixels are updated using the pixel value of the pixel of interest.
  • step S167 the SML calculation unit 142 determines whether the peripheral pixel (i, j-1) is included in the slice of interest.
  • the SML calculation unit 142 proceeds to the process of step S168, and the pixel of the peripheral pixel is obtained as shown in the following equation (6). Used to calculate SML without updating the value.
  • step S167 if it is determined in step S167 that the peripheral pixel (i, j-1) is not included in the slice of interest, the SML calculation unit 142 proceeds to step S169, and the following equation (7) As shown, the pixel values of its surrounding pixels are updated with the pixel value of the pixel of interest.
  • R '(i, j-1) R (i, j) (7)
  • step S170 the SML calculating unit 142 determines whether the peripheral pixel (i, j + 1) is included in the slice of interest.
  • the SML calculation unit 142 proceeds to the process of step S 171, and calculates the pixel value of the peripheral pixel as shown in equation (8) below. Used for SML calculation without updating.
  • step S170 if it is determined in step S170 that the peripheral pixel (i, j + 1) is not included in the slice of interest, the SML calculation unit 142 proceeds to step S172 and is expressed by the following equation (9). Thus, the pixel values of the peripheral pixels are updated using the pixel value of the pixel of interest.
  • step S173 based on the processing result of each of the above-described processing, the SML calculating unit 142 uses the pixel value of each peripheral pixel to set the SML (i, j) of the pixel of interest as shown in the following equation (10). Calculate).
  • the SML calculating unit 142 After calculating the SML, the SML calculating unit 142 ends the SML calculating process and returns the process to FIG.
  • the image coding apparatus 100 can realize parallel processing of each slice, and suppress an increase in processing time due to generation of unnecessary delay time in adaptive loop filter processing. can do.
  • FIG. 15 is a block diagram showing a main configuration example of the image decoding apparatus.
  • the image decoding apparatus 200 shown in FIG. 15 decodes the encoded data generated by the image encoding apparatus 100 by a decoding method corresponding to the encoding method.
  • the image decoding apparatus 200 includes an accumulation buffer 201, a lossless decoding unit 202, an inverse quantization unit 203, an inverse orthogonal transformation unit 204, an operation unit 205, a deblocking filter 206, an adaptive loop filter 207, and screen alignment.
  • a replacement buffer 208 and a D / A converter 209 are included.
  • the image decoding apparatus 200 further includes a frame memory 210, a selection unit 211, an intra prediction unit 212, a motion prediction / compensation unit 213, and a selection unit 214.
  • the image decoding device 200 includes a filter coefficient control unit 221.
  • the accumulation buffer 201 accumulates the transmitted encoded data, and supplies the encoded data to the lossless decoding unit 202 at a predetermined timing.
  • the lossless decoding unit 202 decodes the information supplied from the accumulation buffer 201 and encoded by the lossless encoding unit 106 in FIG. 1 using a method corresponding to the encoding method of the lossless encoding unit 106.
  • the lossless decoding unit 202 supplies the quantized coefficient data of the differential image obtained by the decoding to the inverse quantization unit 203.
  • the lossless decoding unit 202 determines whether the intra prediction mode is selected or the inter prediction mode is selected as the optimum prediction mode, and the information on the optimum prediction mode can be obtained by the intra prediction unit 212 and the motion prediction / compensation unit Of the 213, it is supplied to the mode determined to be selected.
  • the inverse quantization unit 203 performs inverse quantization on the quantized coefficient data obtained by being decoded by the lossless decoding unit 202, using a method corresponding to the quantization method of the quantization unit 105 in FIG.
  • the data is supplied to the inverse orthogonal transform unit 204.
  • the inverse orthogonal transform unit 204 performs inverse orthogonal transform on the coefficient data supplied from the inverse quantization unit 203 according to a scheme corresponding to the orthogonal transform scheme of the orthogonal transform unit 104 in FIG. 1.
  • the inverse orthogonal transformation unit 204 obtains decoded residual data corresponding to residual data before orthogonal transformation in the image coding apparatus 100 by this inverse orthogonal transformation processing.
  • the decoded residual data obtained by the inverse orthogonal transform is supplied to the arithmetic unit 205. Further, the prediction image is supplied to the calculation unit 205 from the intra prediction unit 212 or the motion prediction / compensation unit 213 via the selection unit 214.
  • Arithmetic unit 205 adds the decoded residual data and the predicted image to obtain decoded image data corresponding to the image data before the predicted image is subtracted by arithmetic unit 103 of image coding apparatus 100.
  • the operation unit 205 supplies the decoded image data to the deblocking filter 206.
  • the deblocking filter 206 appropriately deblock-filters the supplied decoded image to remove block distortion of the decoded image.
  • the deblocking filter 206 supplies the decoded image data after filter processing to the adaptive loop filter 207.
  • the adaptive loop filter 207 improves the image quality by performing loop filter processing (class classification ALF) using the Wiener filter on the deblock filter processing result (decoded image subjected to removal of block distortion). I do.
  • the adaptive loop filter 207 supplies the decoded image data after filter processing to the screen rearrangement buffer 208 and the frame memory 210. Note that the decoded image (for example, a reference image used for intra prediction) output from the calculation unit 205 can be supplied to the frame memory 210 without passing through the deblocking filter 206 and the adaptive loop filter 207.
  • the screen sorting buffer 208 sorts the images. That is, the order of the frames rearranged for the order of encoding by the screen rearrangement buffer 102 in FIG. 1 is rearranged in the order of the original display.
  • the D / A converter 209 D / A converts the image supplied from the screen rearrangement buffer 208, and outputs the image to a display (not shown) for display.
  • the frame memory 210 stores the supplied decoded image, and at a predetermined timing or based on an external request such as the intra prediction unit 212 or the motion prediction / compensation unit 213, the stored decoded image is referred to as a reference image , And is supplied to the selection unit 211.
  • the selection unit 211 selects the supply destination of the reference image supplied from the frame memory 210.
  • the selection unit 211 supplies the reference image supplied from the frame memory 210 to the intra prediction unit 212.
  • the selection unit 211 supplies the reference image supplied from the frame memory 210 to the motion prediction / compensation unit 213.
  • the intra prediction unit 212 performs intra prediction using the reference image acquired from the frame memory 210 in the intra prediction mode used by the intra prediction unit 115 in FIG. 1, and generates a prediction image.
  • the intra prediction unit 212 supplies the generated predicted image to the selection unit 214.
  • the motion prediction / compensation unit 213 acquires, from the lossless decoding unit 202, information (optimum prediction mode information, difference information, code number of prediction motion vector information, and the like) obtained by decoding header information.
  • the motion prediction / compensation unit 213 performs inter prediction using the reference image acquired from the frame memory 210 in the inter prediction mode used in the motion prediction / compensation unit 116 in FIG. 1 to generate a prediction image.
  • the selection unit 214 supplies the predicted image supplied from the intra prediction unit 212 or the predicted image supplied from the motion prediction / compensation unit 213 to the calculation unit 205.
  • the filter coefficient control unit 221 classifies the pixel of interest based on the SML, sets the filter coefficient used by the adaptive loop filter 207, and supplies the filter coefficient to the adaptive loop filter 207. Note that the filter coefficient control unit 221 calculates the SML of the attention without referring to the information outside the attention slice.
  • the adaptive loop filter 207 can perform filtering independently for each slice.
  • FIG. 16 is a block diagram showing a main configuration example of the adaptive loop filter 207 and the filter coefficient control unit 221. As shown in FIG.
  • the adaptive loop filter 207 basically has the same configuration as the adaptive loop filter 112 (FIG. 11) of the image coding device 100 and performs the same processing. That is, as shown in FIG. 16, the adaptive loop filter 207 has a control unit 231 and a filter processing unit 232.
  • the filter coefficient control unit 221 basically has the same configuration as the filter coefficient control unit 121 (FIG. 11) of the image coding apparatus 100, and performs the same processing. That is, as shown in FIG. 16, the filter coefficient control unit 221 includes a position determination unit 241, an SML calculation unit 242, a class classification unit 243, and a filter coefficient setting unit 244.
  • the control unit 231 basically performs the same processing as the control unit 131 (FIG. 11). However, the control unit 231 acquires alf_flag supplied from the image encoding device 100 from the lossless decoding unit 202, and determines whether to perform class classification ALF according to the value of the alf_flag (filter coefficient control unit 221 and filter processing unit 232 Control the operation of
  • the filter processing unit 232 is controlled by the control unit 231, and uses the filter coefficients supplied from the filter coefficient setting unit 244, and defiltered from the deblock filter 206. Filter processing is performed on pixel values after block filter processing.
  • the filter processing unit 232 holds the pixel value after the filter processing, supplies the pixel value to the screen rearrangement buffer 208 and the frame memory 210, and stores the pixel value as a reference image. The held pixel value is reused as the pixel value of the peripheral pixel in the processing for other pixels processed after the target pixel.
  • the position determination unit 241 to the filter coefficient setting unit 244 of the filter coefficient control unit 221 correspond to the position determination unit 141 to the filter coefficient setting unit 144, respectively, and perform the same processing.
  • the position determination unit 241 acquires, from the lossless decoding unit 202, address information indicating a position of a slice, a target pixel to be processed, or the like according to the control of the control unit 231. These pieces of address information are stored, for example, in the SPS, PPS, slice header or the like of the bit stream transmitted from the image coding apparatus 100.
  • the position determination unit 241 obtains address information from among the information decoded by the lossless decoding unit 202, and determines the position of the target pixel in the target slice using the address information.
  • the SML calculation unit 242 uses the pixel value of the target pixel acquired from the filter processing unit 232 and the pixel values of the peripheral pixels acquired from the filter processing unit 232 based on the position determination result (position information) by the position determination unit 241 (information outside the target slice Calculate the SML of the pixel of interest (without reference).
  • the class classification unit 243 classifies the pixel of interest using the SML calculated by the SML calculation unit 242.
  • the filter coefficient setting unit 244 sets, according to the class information (class classification result) acquired from the class classification unit 243, a filter coefficient corresponding to the class for the pixel of interest.
  • the filter coefficient setting unit 244 supplies the set filter coefficient to the filter processing unit 232.
  • the filter processing unit 232 performs filter processing on the pixel of interest using the filter coefficient.
  • step S201 the accumulation buffer 201 accumulates the transmitted bit stream.
  • step S202 the lossless decoding unit 202 decodes the bit stream supplied from the accumulation buffer 201. That is, the I picture, P picture, and B picture encoded by the lossless encoding unit 106 in FIG. 1 are decoded.
  • various information other than differential image information included in the bit stream such as SPS, PPS, and slice header, is also decoded.
  • step S203 the inverse quantization unit 203 inversely quantizes the quantized orthogonal transformation coefficient obtained by the process of step S202.
  • step S204 the inverse orthogonal transformation unit 204 performs inverse orthogonal transformation on the orthogonal transformation coefficient that has been inversely quantized in step S203.
  • step S205 the intra prediction unit 212 or the motion prediction / compensation unit 213 performs prediction processing using the supplied information.
  • the selection unit 214 selects the predicted image generated in step S205.
  • the computing unit 205 adds the predicted image selected in step S206 to the difference image information obtained by the inverse orthogonal transformation in step S204. Thereby, a decoded image is obtained.
  • step S208 the deblocking filter 206 appropriately performs deblocking filter processing on the decoded image obtained in step S207.
  • step S209 the adaptive loop filter 207 and the filter coefficient control unit 221 appropriately perform adaptive loop filter processing on the decoded image after the deblock filter processing.
  • the adaptive loop filter 207 and the filter coefficient control unit 221 perform this adaptive loop filter process independently for each slice.
  • the details of the adaptive loop filter process are the same as the adaptive loop filter process by the image coding apparatus 100 described with reference to the flowchart of FIG. 13, and thus the description thereof will be omitted.
  • step S210 the screen rearrangement buffer 208 rearranges the image filtered in step S209. That is, the order of the frames rearranged for encoding by the screen rearrangement buffer 102 of the image encoding device 100 is rearranged in the original display order.
  • step S211 the D / A conversion unit 209 D / A converts the image in which the order of the frames is rearranged in step S210. This image is output to a display not shown, and the image is displayed.
  • step S212 the frame memory 210 stores the image filtered in step S209. This image is used as a reference image in step S205 to generate a predicted image.
  • step S212 ends, the decoding process ends.
  • the adaptive loop filter 207 and the filter coefficient control unit 221 need only refer to the information in the slice of interest, so it is necessary to wait until the processing of other slices is completed. Absent. Therefore, the image decoding apparatus 200 can realize parallelization of processing for each slice, and can suppress an increase in processing time due to occurrence of unnecessary delay time in adaptive loop filter processing.
  • the SML is calculated so as not to refer to information outside the slice of interest and classification is performed.
  • the target pixel whose pixel is not included in the target slice may omit the calculation for calculating the SML, and may be classified into a predetermined class (a predetermined filter coefficient is set). This makes the setting of filter coefficients easier.
  • filter processing may be omitted for a pixel of interest whose peripheral pixels are not included in the slice of interest.
  • each process of the adaptive loop filter process is basically performed as in the case of FIG. That is, each process of step S231 to step S234 is performed similarly to each process of step S131 to step S134 of FIG.
  • step S235 the position determination unit 141 determines whether or not the peripheral pixel is included in the slice of interest, and advances the process to step S236 only when determining that the peripheral pixel is included in the slice of interest.
  • steps S236 to S242 are performed in the same manner as the processes of steps S135 to S141 of FIG.
  • step S235 If it is determined in step S235 that a peripheral pixel is not included in the slice of interest, the position determination unit 141 returns the process to step S232 and sets the process target to the next pixel.
  • the adaptive loop filter 112 and the filter coefficient control unit 121 can more easily perform the adaptive loop filter process.
  • the adaptive loop-filter process which the image coding apparatus 100 performs above was demonstrated, the adaptive loop-filter process which the image decoding apparatus 200 performs can be performed similarly.
  • the pixels adjacent to the upper, lower, left, and right of the target pixel are described as peripheral pixels, but the present invention is not limited thereto.
  • a pixel adjacent to upper right of the target pixel, pixel adjacent to lower right, upper left Pixels adjacent to the pixel or pixels adjacent to the lower left may be set as peripheral pixels.
  • the peripheral pixels may not be adjacent to the target pixel.
  • the calculation method of SML may be except having mentioned above.
  • the number of peripheral pixels is arbitrary, and may be five or more, or three or less.
  • the image decoding apparatus 200 has been described to calculate the filter coefficients as in the image encoding apparatus 100.
  • the present invention is not limited to this, and image decoding may be performed on the filter coefficients used by the image encoding apparatus 100. It may be transmitted to the device 200, and the image decoding device 200 may perform adaptive loop filter processing using the filter coefficients supplied from the image coding device 100. In that case, the filter coefficient control unit 221 can be omitted.
  • control unit 131 generates a flag for controlling whether or not the class classification ALF is independently performed for each slice, and transmits the flag to the image decoding apparatus 200. It is also good.
  • the image coding apparatus 100 independently uses the available pixel information and classifies ALF independently for each slice. Do.
  • the image encoding device 100 may calculate the pixel values of all the surrounding pixels even if the surrounding pixels belong to other slices. Then, the SML is calculated, the pixel of interest is classified, and the filter coefficient is set.
  • the slice of interest is classified into class classification ALF independently of the other slices, and supplied from the image coding apparatus 100. If the value of this flag is 0, the slice of interest is classified into ALF without making it independent of other slices.
  • class classification is performed based on the size of SML, but the parameters used for class classification may be any parameter as long as it can be obtained by referring to pixels other than the pixel of interest. Good.
  • the variance value may be used, or the magnitude of the change amount of the pixel value may be used.
  • independence of processing in units of slices can be ensured by calculating parameters without using information outside the slice of interest.
  • Adaptive offset filter Although the adaptive loop filter has been described above, the present technology can be applied to any processing that refers to the neighboring pixels when processing the pixel of interest. For example, the present invention can also be applied to adaptive offset filtering employed in HEVC.
  • the adaptive offset filter in the HEVC system will be described below.
  • the Sample Adaptive Offset system described in Non-Patent Document 2 is adopted.
  • PQAO Picture Quality Adaptive Offset
  • band offsets there are two types called band offsets, and six types called edge offsets. Furthermore, it is possible to not apply offsets. Then, the image is divided into quad-trees, and it is possible to select for each region whether or not to encode with which type of adaptive offset described above.
  • This selection information is encoded as PQAO Info.
  • the encoding unit Entropy Coding
  • a bitstream is generated, and the generated bitstream is transmitted to the decoding side.
  • quad-tree structure will be described with reference to FIG. Although quad-tree division (quad-tree structuring) may be performed for each arbitrary region, it will be described below as being performed for each LCU.
  • An area 0 shown in A1 of FIG. 19 indicates a state in which the LCU is not divided (Level-0 (division depth 0)).
  • the image coding apparatus first calculates the cost function value J0 of this area 0 (that is, LCU).
  • Four areas 1 to 4 shown in A1 of FIG. 19 show a state in which the area 0 is divided into two vertically and horizontally (totally 4 divided) (Level-1 (division depth 1)).
  • the image coding apparatus calculates cost function values J1, J2, J3 and J4 of these areas 1 to 4, respectively.
  • the image coding apparatus Upon calculating the cost function value of each of the area 0 to the area 4, the image coding apparatus compares the cost function values for each Level (division depth) as shown in A2 of FIG. Select the smaller Level (division depth). For example, if J0> (J1 + J2 + J3 + J4), the image coding apparatus selects Level-1 partition areas (Partitions). That is, in this case, the LCU is divided into at least four regions 1 to 4.
  • the image coding apparatus selects Level-0 partition areas (Partitions).
  • Partitions Level-0 partition areas
  • the LCU is not divided (area 0).
  • the image coding apparatus repeats such area division for each area formed by area division. Areas 5 to 20 shown in A3 of FIG. 19 indicate that areas 1 to 4 shown in A2 of FIG. Division depth 2)). That is, the LCU is divided into 16 areas. The image coding apparatus calculates cost function values J5 to J20 of these areas 5 to 20, respectively.
  • the image coding apparatus can calculate the cost function value of Level-1 (division depth 1) and Level-2 (division depth 2) as shown in A4 of FIG. , These cost function values are compared, and the Level (division depth) with the smaller value is selected.
  • the image coding apparatus compares the cost function value J1 of the area 1 with the sum of the cost function values of the area 5, the area 6, the area 9, and the area 10. For example, if J1 ⁇ (J5 + J6 + J9 + J10), the image coding apparatus selects Level-1 partition areas (Partitions). In this case, area 1 is not divided further. Conversely, for example, when J1> (J5 + J6 + J9 + J10), the image coding apparatus selects Level-2 partition areas (Partitions). In this case, the region 1 is divided into at least four regions of the region 5, the region 6, the region 9, and the region 10.
  • the image coding apparatus compares the cost function value J2 of the area 2 with the sum of the cost function values of the area 7, the area 8, the area 11 and the area 12. For example, in the case of J2> (J7 + J8 + J11 + J12), the image coding apparatus selects Level-2 partition areas (Partitions). In this case, the area 2 is divided into at least four areas of the area 7, the area 8, the area 11 and the area 12. Conversely, for example, if J2 ⁇ (J7 + J8 + J11 + J12), the image coding apparatus selects Level-1 partition areas (Partitions). In this case, area 2 is not divided further.
  • the image coding apparatus compares the cost function value J3 of the area 3 with the sum of the cost function values of the area 13, the area 14, the area 17, and the area 18. For example, in the case of J3> (J13 + J14 + J17 + J18), the image coding apparatus selects Level-2 partition areas (Partitions). In this case, the region 3 is divided into at least four regions of the region 13, the region 14, the region 17, and the region 18. Conversely, for example, if J3 ⁇ (J13 + J14 + J17 + J18), the image coding apparatus selects Level-1 partition areas (Partitions). In this case, the area 3 is not divided further.
  • the image coding apparatus also compares the cost function value J4 of the area 4 with the sum of the cost function values of the area 15, the area 16, the area 19, and the area 20. For example, when J4 ⁇ (J15 + J16 + J19 + J20), the image coding apparatus selects Level-1 partition areas (Partitions). In this case, the area 4 is not divided further. Conversely, for example, in the case of J4> (J15 + J16 + J19 + J20), the image coding apparatus selects Level-2 partition areas (Partitions). In this case, the region 4 is divided into four regions of at least the region 15, the region 16, the region 19, and the region 20.
  • the image coding apparatus further repeats similar area division on Level-2 divided areas (Partitions).
  • the image coding apparatus repeats such area division until no division is performed or a predetermined SCU Level (division depth) is reached.
  • the image coding apparatus converts each area in this Quad-tree structure into a final Quad-tree structure. Determined as areas (Partitions).
  • selection of an offset mode is performed using a cost function value. That is, the image coding apparatus calculates cost function values for all types of two band offsets, six edge offsets, and no offset for each region, and selects the mode with the smallest cost function value. Do.
  • EO (4) that is, the fourth type of edge offset is determined for the region 1.
  • OFF that is, no offset is determined
  • EO (2) that is, the second of the edge offsets is determined.
  • OFF ie, no offset is determined.
  • BO (1) ie, the first type of band offset is determined
  • EO (2) ie, 2 of the edge offsets.
  • the type has been decided.
  • BO (2) that is, the second type of the band offset is determined
  • BO (1) that is, the first type of the band offset Has been determined.
  • EO (1) that is, the first type of edge offset is determined.
  • the pixel value (target pixel value) of the target pixel to be processed is compared with the pixel values (peripheral pixel values) of peripheral pixels located (for example, adjacent) around the target pixel. An offset value will be transmitted for the corresponding category.
  • edge offset there are four one-dimensional patterns shown in A to D in FIG. 20 and two two-dimensional patterns shown in E and F in FIG. 20, and the offsets in the categories shown in FIG. It is transmitted.
  • the peripheral pixels are arranged in one dimension on the left and right, that is, 1-D, 0-degree making 0 degrees with respect to the pattern of A of FIG. Represents a pattern.
  • the peripheral pixels are arranged one-dimensionally in the upper and lower directions, that is, 1-D, 90-degree forming 90 degrees with respect to the pattern of A in FIG. Represents a pattern.
  • the peripheral pixels are arranged in one dimension in the upper left and lower right, that is, 1-D, which makes 135 degrees with respect to the pattern of A in FIG. It represents the 135-degree pattern.
  • the peripheral pixels are arranged in one dimension in the upper right and lower left, that is, 45 degrees with respect to the pattern of A in FIG. -Represents the degree pattern.
  • E of FIG. 20 represents a 2-D, cross pattern in which peripheral pixels are arranged in the upper, lower, left, and right directions with respect to the pixel of interest C, that is, intersecting with the pixel of interest C.
  • the peripheral pixels are arranged in two dimensions such as upper right lower left and upper left lower right, that is, 2-D diagonally intersecting with the target pixel C Represents a pattern.
  • a in FIG. 21 shows a classification rule for 1-dimensional patterns (Classification rule for 1-D patterns).
  • the patterns in A of FIG. 20 to D of FIG. 20 are classified into five types of categories as shown in A of FIG. 21, offsets are calculated by the categories, and are sent to the decoding unit.
  • the pixel value of the target pixel C is smaller than the pixel values of the two peripheral pixels, it is classified into category 1. If the pixel value of the pixel of interest C is smaller than the pixel values of one peripheral pixel and matches the pixel value of the other peripheral pixel, it is classified into category 2. If the pixel value of the target pixel C is larger than the pixel values of one of the peripheral pixels and matches the pixel value of the other peripheral pixel, it is classified into Category 3. If the pixel value of the target pixel C is larger than the pixel values of the two peripheral pixels, it is classified into category 4. If none of the above, it is classified into category 0.
  • B of FIG. 21 shows a rule list (Classification rule for 2-D patterns) of a two-dimensional pattern.
  • the patterns of E of FIG. 20 and F of FIG. 20 are classified into seven types of categories as shown in B of FIG. 21, and the category sends an offset to the decoding unit.
  • the pixel value of the target pixel C is smaller than the pixel values of the four peripheral pixels, it is classified into category 1. If the pixel value of the target pixel C is smaller than the pixel values of the three peripheral pixels and matches the pixel value of the fourth peripheral pixel, it is classified into category 2. If the pixel value of the target pixel C is smaller than the pixel values of the three peripheral pixels and larger than the pixel value of the fourth peripheral pixel, the image is classified into category 3.
  • the pixel value of the target pixel C is larger than the pixel values of the three peripheral pixels and smaller than the pixel value of the fourth peripheral pixel, it is classified into category 4. If the pixel value of the target pixel C is larger than the pixel values of the three peripheral pixels and matches the pixel value of the fourth peripheral pixel, it is classified into category 5. If the pixel value of the target pixel C is larger than the pixel values of the four peripheral pixels, it is classified into category 6. If none of the above, it is classified into category 0.
  • the edge offset since the one-dimensional pattern only needs to compare two adjacent pixels, the amount of calculation is lower. Note that under the high efficiency coding condition, the value of the 1-bit offset is sent to the decoding side with high accuracy compared to the low delay coding condition.
  • edge offset when processing the pixel of interest, its peripheral pixels are referred to. Therefore, for example, as in the case of the calculation of SML described with reference to FIGS. 7 to 10, when the peripheral pixel to be referred to is in a slice different from the slice of interest, processing of the slice of the peripheral pixel is completed. It becomes impossible to calculate the offset value of the edge offset of the pixel of interest.
  • the pixel of interest to be processed is at the end of the slice of interest and the peripheral pixel to be referenced is located in another slice (peripheral slice), the pixel of interest (or the slice of interest) until processing of the peripheral slice is completed.
  • Process can not be started.
  • the peripheral slice and the slice of interest can not be processed independently of each other. Therefore, for example, the peripheral slice and the slice of interest can not be processed in parallel, which may increase the processing time and reduce the throughput.
  • peripheral pixels to be referenced are located outside the picture (outside the effective pixel area) (that is, virtually absent) It is also conceivable. Also in such a case, the peripheral pixels are unavailable as in the case of being present in other slices.
  • the pixel of interest is not processed normally, which may cause an increase in processing time due to error processing or the like.
  • it may contribute to the image quality deterioration of the decoded image.
  • FIG. 22 is a block diagram illustrating an exemplary main configuration of the image coding apparatus.
  • the image coding device 300 shown in FIG. 22 is basically the same image processing device as the image coding device 100 of FIG. As in the H.264 and MPEG4 Part 10 (AVC) encoding schemes, image data is encoded using prediction processing.
  • AVC MPEG4 Part 10
  • the image coding apparatus 300 basically has the same configuration as the image coding apparatus 100 and performs the same processing. However, in addition to the configuration of the image coding apparatus 100, the image coding apparatus 300 includes an adaptive offset unit 301 and a peripheral pixel value control unit 302. Although the filter coefficient control unit 121 is omitted in FIG. 22, it is needless to say that the filter coefficient control unit 121 may be provided as in FIG.
  • the deblocking filter 111 supplies the decoded image after filter processing to the adaptive offset unit 301.
  • the adaptive offset unit 301 performs area division on the deblock filter processing result (reconstructed image from which block distortion has been removed) to form a quad-tree structure, and adaptive offset processing (for each area) Perform an adaptive offset filter (Picture Quality Adaptive Offset (PQAO) process).
  • PQAO Picture Quality Adaptive Offset
  • the adaptive offset unit 301 uses the peripheral pixel value enabled by the control of the peripheral pixel value control unit 302 in a mode (for example, edge offset mode) in which the peripheral pixel value is referred to when processing the pixel of interest.
  • the offset value of the target pixel value is calculated.
  • the adaptive offset unit 301 obtains the cost function value of the offset processing result in each mode, and selects the mode with the smallest value.
  • the adaptive offset unit 301 performs offset processing in the selected mode, and supplies the result of the offset processing to the adaptive loop filter 112.
  • the adaptive offset unit 301 supplies the quad-tree structure indicating the region division result and selection information (PQAO Info.) which is information related to mode selection to the lossless encoding unit 106 and transmits it to the decoding side.
  • the adaptive offset unit 301 performs this offset process for each slice. More specifically, the adaptive offset unit 301 performs this offset process for each predetermined partial area (for example, LCU) obtained by dividing the slice into a plurality. That is, the adaptive offset unit 301 can process each slice independently of each other.
  • predetermined partial area for example, LCU
  • the adaptive loop filter 112 improves the image quality by performing loop filter processing on the adaptive offset processing result using a Wiener filter. Although the arrow from the adaptive loop filter 112 to the lossless encoding unit 106 is omitted in FIG. 22, the adaptive loop filter 112 supplies alf_flag, filter coefficients, and the like to the lossless encoding unit 106 and May be transmitted.
  • the lossless encoding unit 106 encodes these pieces of information supplied from the adaptive offset unit 301, includes the information in a bit stream, and transmits the information to the decoding side.
  • coding efficiency can be improved.
  • the peripheral pixel value control unit 302 controls peripheral pixel values to be referred to when the adaptive offset unit 301 calculates the offset value. That is, when the peripheral pixel value referred to in the adaptive offset unit 301 is unavailable, the peripheral pixel value control unit 302 sets an available value as the peripheral pixel value instead of the value. Set (replace non-referenceable values with referable values).
  • peripheral pixel to be referred to is not present in the slice of interest to be processed (the slice in which the pixel of interest is present).
  • the peripheral pixels may be located in a slice other than the slice of interest or may be located outside the picture (ie, not present).
  • the peripheral pixel value control unit 302 may use, for example, the correlation between the pixel values of the pixels instead of the pixel values of the unavailable peripheral pixels to locate the pixels in the vicinity of the peripheral pixels.
  • a pixel value of available pixels may be adopted as peripheral pixel values.
  • a pixel of interest may be adopted as a pixel in the vicinity thereof.
  • a predetermined fixed value may be used instead of the pixel value of the unavailable peripheral pixel.
  • the peripheral pixel value control unit 302 acquires, from the adaptive offset unit 301, information on the position (coordinates) of the pixel of interest. Further, the peripheral pixel value control unit 302 acquires, from the lossless encoding unit 106, address information including information on the position (coordinates) of the LCU, information on slice boundaries (inter-slice boundaries, picture ends, etc.).
  • the peripheral pixel value control unit 302 determines whether the peripheral pixel value corresponding to the target pixel designated by the adaptive offset unit 301 is available (whether available or not available). . For example, when the peripheral pixel value is available, the peripheral pixel value control unit 302 sets the pixel value of the peripheral pixel as the peripheral pixel value to be referred to by the adaptive offset unit 301, and the information (peripheral pixel specification information ) Is supplied to the adaptive offset unit 301.
  • the peripheral pixel value control unit 302 determines a value to be substituted for the peripheral pixel value, and the peripheral pixel value referred to by the adaptive offset unit 301 is that value. , And supplies the information (peripheral pixel designation information) to the adaptive offset unit 301.
  • the adaptive offset unit 301 can perform adaptive offset processing using peripheral pixel values that can be referred to at all times by performing processing using peripheral pixel values specified by the peripheral pixel value control unit 302. As a result, the image coding apparatus 300 can realize parallel processing of each slice, and can suppress an increase in processing time due to occurrence of unnecessary delay time or the like in adaptive offset processing.
  • FIG. 23 is a block diagram showing a main configuration example of the adaptive offset unit 301.
  • the adaptive offset unit 301 includes a quad-tree structure determination unit 311, a region of interest selection unit 312, an offset calculation unit 313, an offset unit 314, and a pixel buffer 315.
  • the quad-tree structure determination unit 311 divides a predetermined area (for example, LCU) into which a slice is divided into a plurality of areas, for example, as described with reference to FIG. 19, and forms a quad-tree.
  • the adaptive offset process performed by the adaptive offset unit 301 can be performed for each arbitrary area, but in the following, it is assumed to be performed for each LCU.
  • each partial area obtained by the LCU being quad-tree structured (area division) is a CU.
  • the quad-tree structure determination unit 311 makes the LCU a quad-tree structure, sets each CU, and supplies information indicating the quad-tree structure and the pixel value after deblocking to the region-of-interest selection unit 312.
  • the region-of-interest selection unit 312 sequentially selects each of the CUs as processing targets, based on the supplied quad-tree structure.
  • the attention area selection unit 312 finally selects all CUs in the LCU as processing targets.
  • the attention area selection unit 312 supplies, to the offset calculation unit 313, the quad-tree structure supplied from the quad-tree structure determination unit 311 and attention area designation information indicating the designated attention area (the attention CU). Further, the attention area selection unit 312 supplies the pixel value of the attention area after deblocking to the offset calculation unit 313. Note that the attention area selection unit 312 also supplies pixel values after deblocking other than the attention area to the offset calculation unit 313 as necessary.
  • the offset calculation unit 313 calculates the offset value of each pixel of the attention area specified by the attention area specification information supplied from the attention area selection unit 312.
  • the offset calculation unit 313 can calculate the offset value in any number of modes.
  • the offset calculation unit 313 obtains the cost function value of the offset processing result of each mode, and selects the mode with the smallest value.
  • the offset calculation unit 313 performs processing using the pixel value of the peripheral pixel specified by the peripheral pixel value control unit 302 in the mode of referring to the peripheral pixel value.
  • the offset calculation unit 313 supplies the offset value of the selected mode to the offset unit 314 together with the quad-tree structure.
  • the offset calculation unit 313 supplies selection information (PQAOinfo) indicating a mode selection result and the like to the lossless encoding unit 106 along with the quad-tree structure, and causes the lossless encoding unit 106 to encode the selection information.
  • PQAOinfo selection information
  • the offset calculation unit 313 includes an offset-free calculation unit 321, a band offset calculation unit 322, an edge offset calculation unit 323, and an offset selection unit 324.
  • the offset calculation unit 313 two types of modes called band offsets, six types of modes called edge offsets, and a mode in which the offsets are not applied are prepared in advance as types (modes) of adaptive offsets. .
  • the number and type of adaptive offset modes are arbitrary. For example, modes other than those described above may be included, or some or all of the modes described above may be omitted.
  • the offset calculation unit 313 has a processing unit corresponding to each mode serving as an option.
  • the offsetless operation unit 321 calculates a cost function value in a mode in which the offset is not applied.
  • the offsetless operation unit 321 supplies the calculated cost function value to the offset selection unit 324 together with the quad-tree structure.
  • the band offset calculation unit 322 obtains an offset value for each of two types of band offset, and further obtains a cost function value of the offset processing result using the offset value.
  • the band offset calculation unit 322 supplies the calculated offset value and cost function value to the offset selection unit 324 together with the quad-tree structure for each of the two types of band offset.
  • the edge offset calculation unit 323 obtains an offset value for each of six types of edge offset, and further obtains a cost function value of the offset processing result using the offset value.
  • the edge offset calculation unit 323 provides the peripheral pixel value control unit 302 with information on the pixel of interest and the peripheral pixels.
  • the peripheral pixel value control unit 302 designates peripheral pixels to be referred to based on the information and the address information acquired from the lossless encoding unit 106, and supplies the peripheral pixel designation information to the edge offset computing unit 323.
  • the edge offset calculation unit 323 calculates the offset value using the referenceable peripheral pixel value designated by the peripheral pixel designation information.
  • the edge offset calculation unit 323 supplies the calculated offset value and cost function value to the offset selection unit 324 together with the quad-tree structure for each of the six types of edge offset.
  • the offset selection unit 324 selects a mode to be adopted.
  • the offset selection unit 324 compares the cost function values of the supplied modes, and selects the mode having the smallest value.
  • the offset selection unit 324 supplies the offset value of the selected mode to the offset unit 314 together with the quad-tree structure.
  • the offset selection unit 324 supplies selection information (PQAOinfo) indicating the selected mode and the like to the lossless encoding unit 106 together with the quad-tree structure, causes it to be encoded, and transmits it to the decoding side.
  • PQAOinfo selection information
  • the offset unit 314 acquires the deblocked pixel value of the attention area from the attention area selection unit 312, and uses the offset value supplied from the offset calculation unit 313 (offset selection unit 324) to obtain the deblocked pixel value. Perform offset processing.
  • the offset unit 314 supplies the obtained pixel value after offset processing to the pixel buffer 315 for storage.
  • the pixel buffer 315 supplies the offset-processed pixel value stored therein to the adaptive loop filter 112 at a predetermined timing or in accordance with an external request.
  • FIG. 24 is a block diagram showing an example of a main configuration of the edge offset calculation unit 323 and the peripheral pixel value control unit 302.
  • the edge offset calculation unit 323 includes a buffer 331, a pattern selection unit 332, a pixel of interest selection unit 333, a category determination unit 334, an offset value calculation unit 335, an offset unit 336, and a cost function calculation unit 337.
  • a buffer 331 a pattern selection unit 332, a pixel of interest selection unit 333, a category determination unit 334, an offset value calculation unit 335, an offset unit 336, and a cost function calculation unit 337.
  • the buffer 331 acquires the quad-tree structure and the area-of-interest designation information supplied from the area-of-interest selection unit 312, and acquires and stores the post-deblocking pixel value.
  • the post-deblocking pixel value is held until it is not used as the target pixel value or the peripheral pixel value.
  • the buffer 331 controls the pattern selection unit 332 to execute processing.
  • the buffer 331 supplies information (area information) on the area of interest to the pixel of interest selection unit 333.
  • the buffer 331 supplies the deblocked pixel value stored therein to the category determination unit 334 and the offset unit 336.
  • the pattern selection unit 332 sequentially selects one of the patterns of the plurality of peripheral pixels as described with reference to FIG. That is, the pattern selection unit 332 selects one of the six edge offset modes one by one. The pattern selection unit 332 repeats such selection until all patterns are selected.
  • the pattern selection unit 332 supplies pattern designation information indicating the selected pattern to the target pixel selection unit 333 and the peripheral pixel value control unit 302 (peripheral pixel reference enable / disable determination unit 341).
  • the target pixel selection unit 333 acquires information (area information) on the target area from the buffer 331, and selects the target pixels to be processed one by one from the target area. The target pixel selection unit 333 repeats such selection until all pixels in the target area are selected.
  • the target pixel selection unit 333 supplies target pixel designation information indicating the target pixel to the category determination unit 334 together with the pattern designation information supplied from the pattern selection unit 332. Further, the target pixel selection unit 333 supplies target pixel specification information to the peripheral pixel value control unit 302 (peripheral pixel reference enable / disable determination unit 341).
  • the category determining unit 334 determines the category of the target pixel specified by the target pixel specification information, for example, based on the table shown in FIG. That is, the category determination unit 334 determines the category based on the surrounding pixel value and the target pixel value.
  • the category classification method is arbitrary and is not limited to the example of FIG.
  • the category determination unit 334 uses the pixel value of the peripheral pixel designated by the peripheral pixel designation information supplied from the peripheral pixel value control unit 302 (peripheral pixel value determination unit 342) as the peripheral pixel value. Do.
  • the peripheral pixel value control unit 302 (peripheral pixel value determination unit 342) specifies a referenceable value as a peripheral pixel value. Therefore, the pixel values of the peripheral pixels designated by the peripheral pixel designation information can always be referred to. Therefore, the category determining unit 334 can determine the category of the pixel of interest without having to wait until the processing of the other pixels is completed. That is, the category determining unit 334 can suppress an increase in unnecessary processing time in the adaptive offset processing.
  • the category determining unit 334 buffers the pixel value (post-deblock pixel value) of the target pixel and the pixel value (post-deblock pixel value) of the referenceable pixel (for example, target pixel) specified by the peripheral pixel designation information. Acquired from 331. The category determination unit 334 determines a category using those pixel values. The category determination unit 334 supplies category designation information indicating the determined category to the offset value calculation unit 335 together with the pixel of interest specification information supplied from the pixel of interest selection unit 333.
  • the offset value calculation unit 335 calculates the offset value of the category specified by the supplied category specification information. For example, an offset value may be set in advance for each category, or a method of calculating the offset value may be set in advance for each category.
  • the offset value calculation unit 335 supplies the calculated offset value to the offset unit 336 together with the target pixel specification information supplied from the category determination unit 334.
  • the offset unit 336 acquires from the buffer 331 the pixel value (post-deblock pixel value) of the target pixel specified by the supplied target pixel specification information.
  • the offset unit 336 offsets the target pixel value using the supplied offset value, and generates an offset pixel value.
  • the offset unit 336 also obtains a quad-tree structure from the buffer 331.
  • the offset unit 336 supplies the generated post-offset pixel value to the cost function calculation unit 337 together with the offset value supplied from the offset value calculation unit 335 and the quad-tree structure acquired from the buffer 331.
  • the target pixel selection unit 333 to the offset unit 336 repeat the above-described processing for all pixels in the target area (or all of the predetermined partial pixels), and the post-offset pixel values of all pixels in the target area Are supplied to the cost function calculation unit 337 together with the offset value and the quad-tree structure.
  • the cost function calculation unit 337 calculates the cost function value of the attention area using the post-offset pixel value.
  • the cost function calculation unit 337 supplies the calculated cost function value to the offset selection unit 324 together with the offset value supplied from the offset unit 336 and the quad-tree structure.
  • the pattern selection unit 332 to the cost function calculation unit 337 repeat the above-described processing for all types (types) of the edge offset mode, and supply a cost function value of each mode (each type) to the offset selection unit 324.
  • the peripheral pixel value control unit 302 includes a peripheral pixel referenceability determination unit 341 and a peripheral pixel value determination unit 342.
  • the peripheral pixel reference possibility determination unit 341 acquires address information on the LCU of interest, slice boundaries, and the like from the lossless encoding unit 106, and also receives pattern designation information from the pattern selection unit 332 and attention pixel designation information from the attention pixel selection unit 333. Get each one.
  • the peripheral pixel reference possibility determining unit 341 grasps the position of the target pixel from the target pixel designation information, and further grasps the position of the peripheral pixel with respect to the target pixel from the pattern designation information.
  • the peripheral pixel reference possibility determining unit 341 compares the position of the peripheral pixel with the slice boundary and the like indicated by the address information, and determines whether the peripheral pixel can be referred to based on the comparison result.
  • the surrounding pixel reference possibility determining unit 341 supplies the determination result to the surrounding pixel value determining unit 342.
  • the peripheral pixel value determining unit 342 determines peripheral pixels based on the determination result supplied from the peripheral pixel referenceability determining unit 341. For example, if it is determined in the determination result that the peripheral pixel specified by the pattern specification information is available (available), the peripheral pixel value determination unit 342 sets the peripheral pixel specified by the pattern specification information to a peripheral pixel. Decide on. In addition, for example, when it is determined that the peripheral pixel specified by the pattern specification information is not referable (unavailable) in the determination result, the peripheral pixel value determination unit 342 can make the accessible pixel (for example, attention Pixel) is determined to be a peripheral pixel.
  • the peripheral pixel value determination unit 342 can make the accessible pixel (for example, attention Pixel) is determined to be a peripheral pixel.
  • the value to be used in place of the non-referenceable pixel value is arbitrary as described above, and may be, for example, other than the pixel value such as a fixed value or an arithmetic expression. In that case, the surrounding pixel value determining unit 342 may specify those information (fixed value, arithmetic expression, etc.) instead of specifying the pixels.
  • the peripheral pixel value determination unit 342 generates peripheral pixel designation information indicating the peripheral pixels (or information corresponding thereto) determined by itself, and supplies the peripheral pixel specification information to the category determination unit 334.
  • the peripheral pixel value control unit 302 can make the peripheral pixel values always referenceable values. Therefore, the edge offset calculation unit 323 can suppress an increase in unnecessary processing time.
  • the adaptive offset unit 301 focuses on the peripheral pixel values with reference to other than the edge offset. It is also possible to have a mode for processing pixels. In that case, the processing unit corresponding to the mode in the edge offset calculation unit 323 uses the peripheral pixels specified by the peripheral pixel value control unit 302, as in the case of the edge offset calculation unit 323 shown in FIG. Just do it.
  • the image coding apparatus 300 can ensure the independence of processing for each slice in adaptive offset processing, and can suppress an increase in unnecessary processing time.
  • steps S301 to S312 are performed in the same manner as the processes of steps S101 to S112 of FIG.
  • the adaptive offset unit 301 After the deblocking filter processing is performed, the adaptive offset unit 301 performs adaptive offset processing in step S313.
  • step S315 to step S318 is performed similarly to the case of each process of step S114 to step S117 of FIG.
  • the encoding process ends.
  • the quad-tree structure determination unit 311 determines the quad-tree structure of the target LCU to be processed in step S331.
  • step S332 the attention area selection unit 312 selects one of the areas in the quad-tree structure in the LCU in the predetermined order as an attention area to be processed.
  • step S333 the no-offset calculating unit 321 obtains an offset value in the no-offset mode, performs offset processing using the offset value, and calculates a cost function value.
  • step S334 the band offset calculation unit 322 obtains an offset value in the band offset mode, performs offset processing using the offset value, and calculates a cost function value.
  • the band offset calculation unit 322 calculates cost function values for each of the two types of modes (two types).
  • step S335 the edge offset computing unit 323 obtains an offset value in the edge offset mode, performs offset processing using the offset value, and calculates a cost function value. Details of this process will be described later.
  • the edge offset calculation unit 323 calculates cost function values for each of the six types of modes (six types).
  • the offset calculation unit 313 thus calculates the cost function value in each mode. That is, when the offset calculation unit 313 corresponds to another mode, the processes of the other mode are added to the processes of steps S333 to S335.
  • the offset selection unit 324 selects the mode (offset type) having the smallest cost function value in step S336.
  • the offset selection unit 324 includes a quad-tree structure that is information indicating the quad-tree structure of the LCU of interest determined in step S 331, and the selection result in step S 336 (also includes information about the selected offset type Transmission of selection information, which is information indicating.
  • step S3308 the offset unit 314 offsets the deblocked pixel value of the region of interest using the offset value of the offset type selected in step S336.
  • step S339 the pixel buffer 315 stores the offset-processed pixel value obtained by the process of step S338.
  • step S340 the attention area selection unit 312 determines whether all areas (CU) in the attention LCU have been processed. If it is determined that there is an unprocessed area, the process returns to step S332. Repeat the subsequent processing. If it is determined in step S340 that there is no unprocessed area, the focused area selection unit 312 ends the adaptive offset process and returns the process to FIG.
  • the buffer 331 stores deblocked pixel values in step S361.
  • the pattern selection unit 332 selects a pattern to be processed.
  • the target pixel selection unit 333 selects a target pixel from the pixels in the target area.
  • step S364 the peripheral pixel reference possibility determining unit 341 acquires various address information regarding the area near the pixel of interest.
  • step S365 based on the information acquired in step S364, the peripheral pixel reference possibility determining unit 341 can refer to peripheral pixels in the pattern designated in step S362 of the pixel of interest selected in step S363. Determine if
  • step S366 the peripheral pixel value determination unit 342 designates the target pixel value as a peripheral pixel value.
  • step S368 the peripheral pixel value determining unit 342 advances the process to step S368.
  • step S365 If it is determined in step S365 that the peripheral pixels can be referred to, the peripheral pixel reference possibility determining unit 341 advances the process to step S367.
  • step S367 the peripheral pixel value determining unit 342 designates the pixel value of the referable peripheral pixel as the peripheral pixel value.
  • step S368 the peripheral pixel value determining unit 342 advances the process to step S368.
  • step S368 the category determining unit 334 determines a category based on the pixel value of interest and the neighboring pixel values determined in step S366 or step S367.
  • step S369 the offset value calculation unit 335 determines (including calculation and selection) an offset value corresponding to the category determined in step S368.
  • step S370 the offset unit 336 offsets the target pixel value using the offset value determined in step S369.
  • step S371 the target pixel selection unit 333 determines whether all the pixels have been processed. If it is determined that there is an unprocessed pixel in the attention area, the attention pixel selection unit 333 returns the process to step S363, and repeats the subsequent processes.
  • step S371 If it is determined in step S371 that all the pixels in the attention area have been processed, the attention pixel selection unit 333 advances the process to step S372.
  • step S372 the cost function calculation unit 337 calculates a cost function value using the post-offset pixel value of the attention area.
  • the pattern selection unit 332 determines whether all patterns of peripheral pixels (for example, FIG. 20) prepared in advance have been processed (whether all types have been processed). If it is determined that there is an unprocessed pattern, the pattern selection unit 332 returns the process to step S362 and repeats the subsequent processes. If it is determined in step S373 that all the patterns have been processed, the pattern selection unit 332 ends the edge offset processing, and returns the processing to FIG.
  • the image encoding apparatus 300 can set independence of processing for each slice in adaptive offset processing. Therefore, it is possible to prevent an increase in unnecessary processing time.
  • FIG. 28 is a block diagram illustrating an exemplary main configuration of an image decoding apparatus.
  • the image decoding apparatus 400 shown in FIG. 28 decodes the encoded data generated by the image encoding apparatus 300 by a decoding method corresponding to the encoding method.
  • the image decoding device 400 is basically the same as the image decoding device 200 of FIG. 15, has basically the same configuration, and performs the same processing.
  • the image decoding apparatus 400 includes an adaptive offset unit 401 in addition to the configuration of the image decoding apparatus 200. Also, the filter coefficient control unit 221 is omitted (may be included).
  • the deblocking filter 206 supplies the decoded image data after filter processing to the adaptive offset unit 401.
  • the adaptive offset unit 401 basically performs the same adaptive offset processing as that of the adaptive offset unit 301 on the decoded image after the deblocking filter processing. However, the adaptive offset unit 401 performs offset processing using the quad-tree structure and the selection information (PQAOinfo) extracted and extracted by the lossless decoding unit 202.
  • PQAOinfo selection information
  • the adaptive offset unit 401 processes the LCU of interest in a quad-tree structure similar to that used by the adaptive offset unit 301. Further, the adaptive offset unit 401 performs offset processing using the same mode (offset type, that is, offset value) as that used by the adaptive offset unit 301. That is, the adaptive offset unit 401 performs offset processing in a method corresponding to the adaptive offset unit 301. The adaptive offset unit 401 supplies the decoded image after the offset processing to the adaptive loop filter 207.
  • offset type that is, offset value
  • the adaptive loop filter 207 improves the image quality by performing loop filter processing (class classification ALF) on the decoded image after the offset processing using a Wiener filter.
  • FIG. 29 is a block diagram showing a main configuration example of the adaptive offset unit 401.
  • the adaptive offset unit 401 includes a quad-tree structure buffer 411, a selection information buffer 412, an offset unit 413, and a pixel buffer 414.
  • the quad-tree structure buffer 411 acquires and stores a quad-tree structure (for example, a quad-tree structure included in a bitstream and supplied from a device on the encoding side) supplied from the lossless decoding unit 202.
  • the quad-tree structure buffer 411 supplies the quad-tree structure stored therein to the offset unit 413 at a predetermined timing or according to an external request.
  • the selection information buffer 412 acquires and stores selection information (PQAOinfo) supplied from the lossless decoding unit 202 (for example, selection information (PQAOinfo) which is included in a bitstream and is supplied from a device on the encoding side).
  • the selection information buffer 412 supplies selection information (PQAOinfo) stored therein to the offset unit 413 at a predetermined timing or in accordance with an external request.
  • the offset unit 413 uses the quad-tree structure supplied from the quad-tree structure buffer 411 and the selection information (PQAOinfo) supplied from the selection information buffer 412 to use the LCU of the target LCU supplied from the deblock filter 206. Offset processing is performed on the deblocked pixel value. That is, using the offset type and offset value specified by the selection information (PQAOinfo), the offset unit 413 offsets the target LCU for each area (CU) according to the quad-tree structure. The offset unit 413 supplies the pixel value after the offset processing to the pixel buffer 414 for storage.
  • PQAOinfo selection information supplied from the selection information buffer 412
  • the pixel buffer 414 stores the offset-processed pixel value supplied from the offset unit 413, and adapts the offset-processed pixel value stored in itself at a predetermined timing or according to an external request.
  • the loop filter 207 is supplied.
  • the adaptive offset unit 401 can perform adaptive offset processing in a method corresponding to the adaptive offset unit 301 of the image coding apparatus 300. Therefore, the adaptive offset unit 401 can perform adaptive offset processing independently for each slice. Therefore, the image decoding apparatus 400 can ensure the independence of processing for each slice in the adaptive offset processing, and can suppress an increase in unnecessary processing time.
  • step S409 the adaptive offset unit 401 performs adaptive offset processing. Details of this process will be described later.
  • steps S410 to S413 are performed in the same manner as the processes of steps S209 to S212 of FIG.
  • the quad-tree structure buffer 411 stores the quad-tree structure in step S431.
  • the selection information buffer 412 stores the selection information.
  • step S433 the offset unit 413 selects an attention area from the attention LCU based on the quad-tree structure, and in step S434, an offset specified by the selection information on the pixel value after deblocking of the attention area. Perform offset processing using values.
  • step S435 the pixel buffer 414 stores the pixel value after the offset process obtained by the process of step S434.
  • step S436 the offset unit 413 determines whether all areas (CU) in the LCU of interest have been processed, and if it is determined that there is an unprocessed area, the process returns to step S433, and the subsequent steps Repeat the process.
  • step S436 If it is determined in step S436 that all the regions have been processed, the offset unit 413 ends the adaptive offset processing, and returns the processing to FIG.
  • the image decoding apparatus 400 can ensure the independence of the process for each slice in the adaptive offset process, and can suppress an increase in unnecessary processing time.
  • peripheral pixels can not be referenced (unavailable) due to positional factors
  • the reason why the pixels can not be referenced is arbitrary and is not limited to positional factors. That is, if reference is not possible for other reasons, neighboring pixel values may be present in the slice of interest.
  • adaptive offset processing may be omitted for a pixel of interest whose peripheral pixels are not included in the slice of interest.
  • both the image encoding device 300 and the image decoding device 400 omit the adaptive offset processing for the pixel of interest whose peripheral pixels are not included in the slice of interest.
  • the pattern of the peripheral pixels is arbitrary and is not limited to the example of FIG. Therefore, the position and number of peripheral pixels are arbitrary.
  • the image coding apparatus 300 (for example, the adaptive offset unit 301) generates, for each slice, a flag that controls whether to perform adaptive offset processing independently for each slice and causes the image decoding apparatus 400 to transmit the flag. You may do so.
  • the adaptive offset unit 301 performs adaptive offset processing independently for each slice using only information on available pixels. .
  • the adaptive offset unit 301 sets the pixel values of all the surrounding pixels even if the surrounding pixels belong to other slices. Adaptive offset processing is performed after completion.
  • the adaptive offset unit 401 of the image decoding apparatus 400 performs adaptive offset processing independently on the slice of interest and the other slices, and performs image coding.
  • adaptive offset processing is performed without making the slice of interest independent of other slices.
  • the present technology is, for example, MPEG, H.
  • image information bit stream
  • orthogonal transformation such as discrete cosine transformation and motion compensation as in 26x etc. via satellite broadcasting, cable television, the Internet, or network media such as a cellular phone
  • the present technology can be applied to an image coding apparatus and an image decoding apparatus used for
  • the present technology can be applied to an image encoding device and an image decoding device that are used when processing on storage media such as an optical disk, a magnetic disk, and a flash memory.
  • the present technology can also be applied to motion prediction / compensation devices included in such image coding devices and image decoding devices.
  • the above-described series of processes may be performed by hardware or software.
  • a program that configures the software is installed on a computer.
  • the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
  • a central processing unit (CPU) 501 of the personal computer 500 executes various programs according to a program stored in a read only memory (ROM) 502 or a program loaded from a storage unit 513 to a random access memory (RAM) 503. Execute the process of The RAM 503 also appropriately stores data and the like necessary for the CPU 501 to execute various processes.
  • ROM read only memory
  • RAM random access memory
  • the CPU 501, the ROM 502, and the RAM 503 are connected to one another via a bus 504.
  • An input / output interface 510 is also connected to the bus 504.
  • the input / output interface 510 includes an input unit 511 such as a keyboard and a mouse, a display such as a CRT (Cathode Ray Tube) or an LCD (Liquid Crystal Display), an output unit 512 such as a speaker, and a hard disk.
  • a communication unit 514 including a storage unit 513 and a modem is connected. The communication unit 514 performs communication processing via a network including the Internet.
  • a drive 515 is also connected to the input / output interface 510 as necessary, and removable media 521 such as a magnetic disk, an optical disk, a magneto-optical disk, or a semiconductor memory are appropriately attached, and a computer program read from them is It is installed in the storage unit 513 as necessary.
  • a program that configures the software is installed from a network or a recording medium.
  • this recording medium is a magnetic disk (including a flexible disk) on which a program is recorded, which is distributed for distributing the program to the user separately from the apparatus main body, an optical disk ( It consists only of removable media 521 such as CD-ROM (Compact Disc-Read Only Memory), DVD (Digital Versatile Disc), Magneto-Optical Disc (including MD (Mini Disc), or semiconductor memory etc. Instead, it is composed of the ROM 502 in which the program is recorded, which is distributed to the user in a state of being incorporated in the apparatus main body, a hard disk included in the storage unit 513, and the like.
  • the program executed by the computer may be a program that performs processing in chronological order according to the order described in this specification, in parallel, or when necessary, such as when a call is made. It may be a program to be processed.
  • the step of describing the program to be recorded on the recording medium is not limited to processing performed chronologically in the order described, but not necessarily parallel processing It also includes processing to be executed individually.
  • system represents the entire apparatus configured by a plurality of devices (apparatus).
  • the configuration described above as one device (or processing unit) may be divided and configured as a plurality of devices (or processing units).
  • the configuration described as a plurality of devices (or processing units) in the above may be collectively configured as one device (or processing unit).
  • configurations other than those described above may be added to the configuration of each device (or each processing unit).
  • part of the configuration of one device (or processing unit) may be included in the configuration of another device (or other processing unit) if the configuration or operation of the entire system is substantially the same. . That is, the present technology is not limited to the above-described embodiment, and various modifications can be made without departing from the scope of the present technology.
  • the image encoding device and the image decoding device include a transmitter or a receiver in optical satellite, cable broadcasting such as cable TV, distribution on the Internet, and distribution to terminals by cellular communication, etc.
  • the present invention can be applied to various electronic devices such as a recording apparatus which records an image on a medium such as a magnetic disk and a flash memory, or a reproduction apparatus which reproduces an image from the storage medium.
  • a recording apparatus which records an image on a medium such as a magnetic disk and a flash memory
  • a reproduction apparatus which reproduces an image from the storage medium.
  • FIG. 33 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 unit in the television apparatus 900 which receives a coded stream in which an image is coded.
  • the demultiplexer 903 separates the video stream and audio stream of the program to be viewed from the coded bit stream, and outputs the separated streams to the decoder 904. Also, the demultiplexer 903 extracts auxiliary data such as an EPG (Electronic Program Guide) from the encoded bit stream, and supplies the extracted data to the control unit 910. When the coded bit stream is scrambled, the demultiplexer 903 may perform descrambling.
  • EPG Electronic Program Guide
  • the decoder 904 decodes the video stream and audio stream input from the demultiplexer 903. Then, the decoder 904 outputs the video data generated by the decoding process to the video signal processing unit 905. Further, the decoder 904 outputs the audio data generated by the decoding process to the audio signal processing unit 907.
  • the video signal processing unit 905 reproduces the video data input from the decoder 904 and causes the display unit 906 to display a video. Also, the video signal processing unit 905 may cause the display unit 906 to display an application screen supplied via the network. Further, the video signal processing unit 905 may perform additional processing such as noise removal on the video data according to the setting. Furthermore, the video signal processing unit 905 may generate an image of a graphical user interface (GUI) such as a menu, a button, or a cursor, for example, and may superimpose the generated image on the output image.
  • GUI graphical user interface
  • the display unit 906 is driven by a drive signal supplied from the video signal processing unit 905, and displays an image on the image surface of a display device (for example, a liquid crystal display, a plasma display, or OELD (Organic ElectroLuminescence Display) (organic EL display)). Or display an image.
  • a display device for example, a liquid crystal display, a plasma display, or OELD (Organic ElectroLuminescence Display) (organic EL display)). Or display an image.
  • the audio signal processing unit 907 performs reproduction processing such as D / A conversion and amplification on audio data input from the decoder 904, and causes the speaker 908 to output audio. Further, the audio signal processing unit 907 may perform additional processing such as noise removal on the audio data.
  • the external interface 909 is an interface for connecting the television device 900 to an external device or a network.
  • a video stream or an audio stream received via the external interface 909 may be decoded by the decoder 904. That is, the external interface 909 also has a role as a transmission unit in the television apparatus 900 that receives the encoded stream in which the image is encoded.
  • the control unit 910 includes a processor such as a CPU, and memories such as a RAM and a ROM.
  • the memory stores a program executed by the CPU, program data, EPG data, data acquired via a network, and the like.
  • the program stored by the memory is read and executed by the CPU, for example, when the television device 900 is started.
  • the CPU controls the operation of the television apparatus 900 according to an operation signal input from, for example, the user interface 911 by executing a program.
  • the user interface 911 is connected to the control unit 910.
  • the user interface 911 has, for example, buttons and switches for the user to operate the television device 900, a receiver of remote control signals, and the like.
  • the user interface 911 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 910.
  • the bus 912 mutually connects the tuner 902, the demultiplexer 903, the decoder 904, the video signal processing unit 905, the audio signal processing unit 907, the external interface 909, and the control unit 910.
  • the decoder 904 has the function of the image decoding apparatus according to the above-described embodiment. Thereby, parallel processing of each slice can be realized when decoding an image in television apparatus 900, and increase in processing time due to generation of unnecessary delay time in adaptive loop filter processing can be suppressed. .
  • FIG. 34 shows an example of a schematic configuration of a mobile phone to which the embodiment described above is applied.
  • the mobile phone 920 includes an antenna 921, a communication unit 922, an audio codec 923, a speaker 924, a microphone 925, a camera unit 926, an image processing unit 927, a multiplexing and separating unit 928, a recording and reproducing unit 929, a display unit 930, a control unit 931, an operation.
  • a unit 932 and a bus 933 are provided.
  • the antenna 921 is connected to the communication unit 922.
  • the speaker 924 and the microphone 925 are connected to the audio codec 923.
  • the operation unit 932 is connected to the control unit 931.
  • the bus 933 mutually connects the communication unit 922, the audio codec 923, the camera unit 926, the image processing unit 927, the demultiplexing unit 928, the recording / reproducing unit 929, the display unit 930, and the control unit 931.
  • the cellular phone 920 can transmit and receive audio signals, transmit and receive electronic mail or image data, capture an image, and record data in various operation modes including a voice call mode, a data communication mode, a shooting mode, and a videophone mode. Do the action.
  • the analog voice signal generated by the microphone 925 is supplied to the voice codec 923.
  • the audio codec 923 converts an analog audio signal into audio data, and A / D converts and compresses the converted audio data. Then, the audio codec 923 outputs the compressed audio data to the communication unit 922.
  • the communication unit 922 encodes and modulates audio data to generate a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
  • the communication unit 922 demodulates and decodes the received signal to generate audio data, and outputs the generated audio data to the audio codec 923.
  • the audio codec 923 decompresses and D / A converts audio data to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the control unit 931 generates character data constituting an electronic mail in accordance with an operation by the user via the operation unit 932. Further, the control unit 931 causes the display unit 930 to display characters. Further, the control unit 931 generates electronic mail data in response to a transmission instruction from the user via the operation unit 932, and outputs the generated electronic mail data to the communication unit 922.
  • a communication unit 922 encodes and modulates electronic mail data to generate a transmission signal. Then, the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921. The communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
  • the communication unit 922 demodulates and decodes the received signal to restore the e-mail data, and outputs the restored e-mail data to the control unit 931.
  • the control unit 931 causes the display unit 930 to display the content of the e-mail, and stores the e-mail data in the storage medium of the recording and reproduction unit 929.
  • the recording and reproducing unit 929 includes an arbitrary readable and writable storage medium.
  • the storage medium may be a built-in storage medium such as RAM or flash memory, and may be an externally mounted type such as a hard disk, magnetic disk, magneto-optical disk, optical disk, USB (Unallocated Space Bitmap) memory, or memory card Storage media.
  • the camera unit 926 captures an image of a subject to generate image data, and outputs the generated image data to the image processing unit 927.
  • the image processing unit 927 encodes the image data input from the camera unit 926, and stores the encoded stream in the storage medium of the storage and reproduction unit 929.
  • the demultiplexing unit 928 multiplexes the video stream encoded by the image processing unit 927 and the audio stream input from the audio codec 923, and the communication unit 922 multiplexes the multiplexed stream.
  • Output to The communication unit 922 encodes and modulates the stream to generate a transmission signal.
  • the communication unit 922 transmits the generated transmission signal to a base station (not shown) via the antenna 921.
  • the communication unit 922 also amplifies and frequency-converts a radio signal received via the antenna 921 to obtain a reception signal.
  • the transmission signal and the reception signal may include a coded bit stream.
  • the communication unit 922 demodulates and decodes the received signal to restore the stream, and outputs the restored stream to the demultiplexing unit 928.
  • the demultiplexing unit 928 separates the video stream and the audio stream from the input stream, and outputs the video stream to the image processing unit 927 and the audio stream to the audio codec 923.
  • the image processing unit 927 decodes the video stream to generate video data.
  • the video data is supplied to the display unit 930, and the display unit 930 displays a series of images.
  • the audio codec 923 decompresses and D / A converts the audio stream to generate an analog audio signal. Then, the audio codec 923 supplies the generated audio signal to the speaker 924 to output audio.
  • the image processing unit 927 has functions of the image encoding device and the image decoding device according to the above-described embodiment. Thereby, parallel processing of each slice can be realized at the time of encoding and decoding of an image in the cellular phone 920, and an increase in processing time due to occurrence of unnecessary delay time in adaptive loop filter processing can be suppressed. Can.
  • FIG. 35 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 unit in the recording / reproducing apparatus 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 and reproducing device 940.
  • the encoder 943 encodes video data and audio data when the video data and audio data input from the external interface 942 are not encoded. Then, the encoder 943 outputs the coded bit stream to the selector 946.
  • the HDD 944 records an encoded bit stream obtained by compressing content data such as video and audio, various programs, and other data in an internal hard disk. Also, the HDD 944 reads these data from the hard disk when reproducing video and audio.
  • the disk drive 945 records and reads data on the attached recording medium.
  • the recording medium mounted on the disk drive 945 is, for example, a DVD disk (DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R, DVD + RW, etc.) or Blu-ray (registered trademark) disk, etc. It may be.
  • the selector 946 selects the coded bit stream input from the tuner 941 or the encoder 943 at the time of recording video and audio, and outputs the selected coded bit stream to the HDD 944 or the disk drive 945. Also, the selector 946 outputs the encoded bit stream input from the HDD 944 or the disk drive 945 to the decoder 947 at the time of reproduction of video and audio.
  • the decoder 947 decodes the coded bit stream to generate video data and audio data. Then, the decoder 947 outputs the generated video data to the OSD 948. Also, the decoder 904 outputs the generated audio data to an external speaker.
  • the OSD 948 reproduces the video data input from the decoder 947 and displays the video.
  • the OSD 948 may superimpose an image of a GUI such as a menu, a button, or a cursor on the video to be displayed.
  • the control unit 949 includes a processor such as a CPU, and memories such as a RAM and a ROM.
  • the memory stores programs executed by the CPU, program data, and the like.
  • the program stored by the memory is read and executed by the CPU, for example, when the recording and reproducing device 940 is started.
  • the CPU controls the operation of the recording / reproducing apparatus 940 in accordance with an operation signal input from, for example, the user interface 950 by executing a program.
  • the user interface 950 is connected to the control unit 949.
  • the user interface 950 includes, for example, buttons and switches for the user to operate the recording and reproducing device 940, a receiver of a remote control signal, and the like.
  • the user interface 950 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 949.
  • the encoder 943 has the function of the image coding apparatus according to the embodiment described above.
  • the decoder 947 has the function of the image decoding apparatus according to the above-described embodiment.
  • FIG. 36 shows an example of a schematic configuration of an imaging device to which the embodiment described above is applied.
  • the imaging device 960 captures an object to generate an image, encodes image data, and records the image data in a recording medium.
  • the imaging device 960 includes an optical block 961, an imaging unit 962, a signal processing unit 963, an image processing unit 964, a display unit 965, an external interface 966, a memory 967, a media drive 968, an OSD 969, a control unit 970, a user interface 971, and a bus. 972 is provided.
  • the optical block 961 is connected to the imaging unit 962.
  • the imaging unit 962 is connected to the signal processing unit 963.
  • the display unit 965 is connected to the image processing unit 964.
  • the user interface 971 is connected to the control unit 970.
  • the bus 972 mutually connects the image processing unit 964, the external interface 966, the memory 967, the media drive 968, the OSD 969, and the control unit 970.
  • the optical block 961 has a focus lens, an aperture mechanism, and the like.
  • the optical block 961 forms an optical image of a subject on the imaging surface of the imaging unit 962.
  • the imaging unit 962 includes an image sensor such as a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS), and converts an optical image formed on an imaging surface into an image signal as an electrical signal by photoelectric conversion. Then, the imaging unit 962 outputs the image signal to the signal processing unit 963.
  • CCD charge coupled device
  • CMOS complementary metal oxide semiconductor
  • the signal processing unit 963 performs various camera signal processing such as knee correction, gamma correction, and color correction on the image signal input from the imaging unit 962.
  • the signal processing unit 963 outputs the image data after camera signal processing to the image processing unit 964.
  • the image processing unit 964 encodes the image data input from the signal processing unit 963 to generate encoded data. Then, the image processing unit 964 outputs the generated encoded data to the external interface 966 or the media drive 968. The image processing unit 964 also decodes encoded data input from the external interface 966 or the media drive 968 to generate image data. Then, the image processing unit 964 outputs the generated image data to the display unit 965.
  • the image processing unit 964 may output the image data input from the signal processing unit 963 to the display unit 965 to display an image. The image processing unit 964 may superimpose the display data acquired from the OSD 969 on the image to be output to the display unit 965.
  • the OSD 969 generates an image of a GUI such as a menu, a button, or a cursor, for example, and outputs the generated image to the image processing unit 964.
  • a GUI such as a menu, a button, or a cursor
  • the external interface 966 is configured as, for example, a USB input / output terminal.
  • the external interface 966 connects the imaging device 960 and the printer, for example, when printing an image.
  • a drive is connected to the external interface 966 as necessary.
  • removable media such as a magnetic disk or an optical disk may be attached to the drive, and a program read from the removable media may be installed in the imaging device 960.
  • the external interface 966 may be configured as a network interface connected to a network such as a LAN or the Internet. That is, the external interface 966 has a role as a transmission unit in the imaging device 960.
  • the recording medium mounted in the media drive 968 may be, for example, any readable / writable removable medium such as a magnetic disk, a magneto-optical disk, an optical disk, or a semiconductor memory.
  • the recording medium may be fixedly attached to the media drive 968, and a non-portable storage unit such as, for example, a built-in hard disk drive or a solid state drive (SSD) may be configured.
  • SSD solid state drive
  • the control unit 970 includes a processor such as a CPU, and memories such as a RAM and a ROM.
  • the memory stores programs executed by the CPU, program data, and the like.
  • the program stored by the memory is read and executed by the CPU, for example, when the imaging device 960 starts up.
  • the CPU controls the operation of the imaging device 960 according to an operation signal input from, for example, the user interface 971 by executing a program.
  • the user interface 971 is connected to the control unit 970.
  • the user interface 971 includes, for example, buttons and switches for the user to operate the imaging device 960.
  • the user interface 971 detects an operation by the user via these components, generates an operation signal, and outputs the generated operation signal to the control unit 970.
  • the image processing unit 964 has functions of the image coding device and the image decoding device according to the above-described embodiment. Thereby, parallelization of processing for each slice can be realized at the time of encoding and decoding of an image in the imaging device 960, and an increase in processing time due to occurrence of unnecessary delay time in adaptive loop filter processing can be suppressed. Can.
  • the method of transmitting such information is not limited to such an example.
  • the information may be transmitted or recorded as separate data associated with the coded bit stream without being multiplexed into the coded bit stream.
  • the term “associate” allows an image (a slice or a block, which may be a part of an image) included in a bitstream to be linked at the time of decoding with information corresponding to the image. Means That is, the information may be transmitted on a different transmission path from the image (or bit stream).
  • the information may be recorded on a recording medium (or another recording area of the same recording medium) different from the image (or bit stream).
  • the information and the image (or bit stream) may be associated with each other in any unit such as, for example, a plurality of frames, one frame, or a part in a frame.
  • the present technology can also have the following configurations.
  • Information for obtaining information necessary for image processing on the target pixel obtained using reference information belonging to another pixel different from the target pixel to be processed using only information belonging to the slice including the target pixel A control unit, An image processing unit that performs the image processing using the information obtained by the information control unit.
  • the image processing is adaptive loop filter processing, The information control unit obtains a filter coefficient used for the adaptive loop filter processing as the information necessary for the image processing;
  • the image processing apparatus according to (1), wherein the image processing unit performs the adaptive loop filter process on the pixel of interest using the filter coefficient obtained by the information control unit.
  • the image processing unit performs the adaptive loop filter processing independently for each slice, The image processing apparatus according to (2), wherein the information control unit obtains the filter coefficient without using information outside the slice of interest to be processed.
  • the information control unit A position determination unit that determines whether a peripheral pixel of the target pixel is located in the target slice; A calculation unit that calculates information representing the complexity of the texture of the pixel of interest according to the determination result of the position determination unit; A class classification unit that classifies the pixel of interest according to the size of the information indicating the complexity of the texture calculated by the calculation unit; A filter coefficient setting unit configured to set, as a filter coefficient of the pixel of interest, a value according to the class classified by the class classification unit; and the image processing apparatus according to (3).
  • the image processing apparatus wherein the information indicating the complexity of the texture is SML (Sum-Modified Laplacian).
  • the calculation unit sets the pixel value of the peripheral pixel to a predetermined fixed value, when the position determination unit determines that the peripheral pixel is not located in the slice of interest.
  • the image processing apparatus which calculates information representing the complexity of the texture.
  • the calculation unit may use the neighborhood of the peripheral pixel, instead of the pixel value of the peripheral pixel.
  • information representing the complexity of the texture is calculated using pixel values of the pixels.
  • the calculation unit uses the pixel value of the target pixel instead of the pixel value of the peripheral pixel when the position determination unit determines that the peripheral pixel is not located in the target slice.
  • the image processing apparatus according to (4) which calculates information representing the complexity of the texture.
  • the image processing apparatus according to (4) wherein the calculation unit calculates information representing the complexity of the texture, with four pixels adjacent to the upper, lower, left, and right of the target pixel as the peripheral pixels.
  • the filter coefficient setting unit sets a predetermined value determined in advance as a filter coefficient of the pixel of interest, when the position determination unit determines that the peripheral pixels are not located in the slice of interest.
  • the image processing apparatus according to (4).
  • the image processing unit may omit the adaptive loop filter process for the target pixel if the position determination unit determines that the peripheral pixel is not located in the target slice. Processing unit.
  • the information processing apparatus further includes a flag generation unit that generates a flag indicating whether the adaptive loop filter process on the slice of interest is performed independently of other slices, The image processing unit performs adaptive loop filter processing on the pixel of interest in the slice of interest according to the value of the flag generated by the flag generation unit according to any one of (2) to (12). Image processing device.
  • the image processing is adaptive offset processing,
  • the information control unit determines peripheral pixel values used for the adaptive offset processing as the information necessary for the image processing;
  • the image processing apparatus according to (1) wherein the image processing unit performs the adaptive offset process on the pixel of interest using the peripheral pixel value obtained by the information control unit.
  • the image processing unit performs the adaptive offset processing independently for each slice,
  • the information control unit A position determination unit that determines whether a peripheral pixel of the target pixel is located in the target slice; A peripheral pixel value determination unit that determines the peripheral pixel value according to the determination result of the position determination unit;
  • the surrounding pixel value determining unit determines, as the surrounding pixel value, a predetermined fixed value determined in advance when the position determining unit determines that the surrounding pixel is not located in the slice of interest.
  • the image processing apparatus as described in (16).
  • the peripheral pixel value determination unit determines, when the position determination unit determines that the peripheral pixel is not located in the slice of interest, a pixel value of an available pixel in the vicinity of the peripheral pixel as the peripheral pixel
  • the image processing apparatus according to (16), wherein the value is determined.
  • the peripheral pixel value determination unit determines the pixel value of the target pixel as the peripheral pixel value when the position determination unit determines that the peripheral pixel is not located in the target slice.
  • the image processing apparatus as described in 2.
  • the information processing apparatus further includes a flag generation unit that generates a flag indicating whether to perform the adaptive offset process on the slice of interest independently of the other slices.
  • the image processing unit performs adaptive offset processing on the pixel of interest in the slice of interest in accordance with the value of the flag generated by the flag generator.
  • Image processing device (21) An image processing method of an image processing apparatus, Information necessary for image processing on the pixel of interest determined using reference information belonging to another pixel different from the pixel of interest to be processed by the information control unit using only information belonging to the slice including the pixel of interest Ask for An image processing unit performing the image processing using the information obtained by the information control unit.

Landscapes

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

Abstract

本技術は、処理時間の増大を抑制することができるようにする画像処理装置および方法に関する。処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求める情報制御部と、前記情報制御部により求められた前記情報を用いて前記画像処理を行う画像処理部とを備えるようにする。本開示は画像処理装置に適用することができる。

Description

画像処理装置および方法
 本開示は、画像処理装置および方法に関し、特に、処理時間の増大を抑制することができるようにした画像処理装置および方法に関する。
 近年、画像情報をデジタルとして取り扱い、その際、効率の高い情報の伝送、蓄積を目的とし、画像情報特有の冗長性を利用して、離散コサイン変換等の直交変換と動き補償により圧縮するMPEG(Moving Picture Experts Group)などの方式に準拠した装置が、放送局などの情報配信、及び一般家庭における情報受信の双方において普及しつつある。
 特に、MPEG2(ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission) 13818-2)は、汎用画像符号化方式として定義されており、飛び越し走査画像及び順次走査画像の双方、並びに標準解像度画像及び高精細画像を網羅する標準で、プロフェッショナル用途及びコンシューマ用途の広範なアプリケーションに現在広く用いられている。MPEG2圧縮方式を用いることにより、例えば720×480画素を持つ標準解像度の飛び越し走査画像であれば4~8Mbps、1920×1088画素を持つ高解像度の飛び越し走査画像であれば18~22Mbpsの符号量(ビットレート)を割り当てることで、高い圧縮率と良好な画質の実現が可能である。
 MPEG2は主として放送用に適合する高画質符号化を対象としていたが、MPEG1より低い符号量(ビットレート)、つまりより高い圧縮率の符号化方式には対応していなかった。携帯端末の普及により、今後そのような符号化方式のニーズは高まると思われ、これに対応してMPEG4符号化方式の標準化が行われた。画像符号化方式に関しては、1998年12月にISO/IEC 14496-2としてその規格が国際標準に承認された。
 更に、近年、当初テレビ会議用の画像符号化を目的として、H.26L (ITU-T(International Telecommunication Union Telecommunication Standardization Sector) Q6/16 VCEG(Video Coding Expert Group))という標準の規格化が進んでいる。H.26LはMPEG2やMPEG4といった従来の符号化方式に比べ、その符号化、復号化により多くの演算量が要求されるものの、より高い符号化効率が実現されることが知られている。また、現在、MPEG4の活動の一環として、このH.26Lをベースに、H.26Lではサポートされない機能をも取り入れ、より高い符号化効率を実現する標準化がJoint Model of Enhanced-Compression Video Codingとして行われている。
 標準化のスケジュールとしては、2003年3月にはH.264及びMPEG-4 Part10 (Advanced Video Coding、以下AVCと記す)という名の元に国際標準となった。
 しかしながら、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない恐れがあった。
 そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-Tと、ISO/IECの共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている(例えば、非特許文献1参照)。
 このHEVC符号化方式においては、AVCにおけるマクロブロックと同様の処理単位としてコーディングユニット(CU(Coding Unit))が定義されている。このCUは、AVCのマクロブロックのようにサイズが16×16画素に固定されず、それぞれのシーケンスにおいて、画像圧縮情報中において指定される。
 ところで、このようは符号化方式で用いられるAdaptive Loop Filter(ALF)は、再構成画像に対してWienerフィルタを適用し、再構成画像に含まれるノイズを除去することで符号化効率および画質を改善することができる。
 ALFを用いた手法の1つとして、デコーダでクラス分類が可能な情報を用いてフィルタ特性を切り替えることでフィルタの特性を局所的な状況に合わせるクラス分類ALFという方法が提案されている。クラス分類に用いる情報としては、次世代ビデオ符号化規格HEVC で検討されているクラス分類に用いる情報に、テクスチャの複雑さを得る演算子であるSML(Sum-Modified Laplacian)の大きさがある。SMLは、注目画素と周辺画素の差分を用いて算出される。
 また、HEVCにおいては、非特許文献2で提案されている適応オフセットフィルタという方法が採用されている。HEVCにおいて、適応オフセットフィルタは、デブロックフィルタと適応ループフィルタの間に設けられる。
 適応オフセットの種類としては、バンドオフセットと呼ばれるものが2種類、エッジオフセットと呼ばれるものが6種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどの適応オフセットの種類により符号化するかを選択することができる。この方法を用いることで、符号化効率を向上させることができる。
 このような適応オフセットフィルタのエッジオフセットにおいては、注目画素のオフセット値の算出に周辺画素値が参照される。
 ところで、上述したAVCやHEVCのような画像符号化方式においては、例えば処理を並列化させるために、ピクチャを複数のスライスに分割し、スライス毎に処理を行う方法が用意されている。
"Test Model under Consideration",JCTVC-B205,Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG112nd Meeting:Geneva,CH,21-28 July, 2010 "CE8 Subtest 3:Picture Quality Adaptive Offset",JCTVC-D122,2011年1月
 しかしながら、ALFのクラス分類のために用いる情報(例えば再構成画像の画素値)が、処理対象である注目スライスと異なるスライスにある場合、処理対象である注目画素のフィルタ処理に必要な情報が他のスライスにある(注目スライスにない)ため、そのスライスの処理が完了しないと注目画素の処理を開始することができなくなってしまう。
 また、同様に、適応オフセットフィルタ処理において、参照される周辺画素が注目スライスと異なるスライスにある場合、その周辺画素のスライスの処理が完了するまで注目画素のエッジオフセットのオフセット値を算出することができなくなってしまう。
 つまり、例えば、注目画素が注目スライスの端に存在し、参照される周辺画素が他のスライス(周辺スライス)に位置する場合、その周辺スライスの処理が終了するまで、注目画素(若しくは注目スライス全体)の処理を開始することができない。このような場合、周辺スライスと注目スライスとを並列に処理することができないので、処理時間が増大し、スループットが低減する恐れがあった。
 本開示は、このような状況に鑑みてなされたものであり、ピクチャを複数のスライスに分割し、そのスライス毎に並列に処理を行う画像の符号化において、周辺画素を参照して注目画素を処理する場合であっても処理時間の増大を抑制することができるようにすることを目的とする。
 本開示の一側面は、処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求める情報制御部と、前記情報制御部により求められた前記情報を用いて前記画像処理を行う画像処理部とを備える画像処理装置である。
 前記画像処理は、適応ループフィルタ処理であり、前記情報制御部は、前記画像処理に必要な情報として、前記適応ループフィルタ処理に用いられるフィルタ係数を求め、前記画像処理部は、前記情報制御部により求められた前記フィルタ係数を用いて、前記注目画素に対する前記適応ループフィルタ処理を行うことができる。
 前記画像処理部は、スライス毎に独立して、前記適応ループフィルタ処理を行い、前記情報制御部は、処理対象である注目スライスの外部の情報を用いずに、前記フィルタ係数を求めることができる。
 前記情報制御部は、前記注目画素の周辺画素が前記注目スライス内に位置するか否かを判定する位置判定部と、前記位置判定部の判定結果に従って前記注目画素のテクスチャの複雑さを表す情報を算出する算出部と、前記算出部により算出された前記テクスチャの複雑さを表す情報の大きさに応じて、前記注目画素をクラス分類するクラス分類部と、前記クラス分類部により分類されたクラスに応じた値を、前記注目画素のフィルタ係数として設定するフィルタ係数設定部とを備えることができる。
 前記テクスチャの複雑さを表す情報は、SML(Sum-Modified Laplacian)であるようにすることができる。
 前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値を、予め定められた所定の固定値に設定し、前記テクスチャの複雑さを表す情報を算出することができる。
 前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値の代わりに、前記周辺画素に近傍の、前記利用可能な画素の画素値を用いて、前記テクスチャの複雑さを表す情報を算出することができる。
 前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値の代わりに、前記注目画素の画素値を用いて、前記テクスチャの複雑さを表す情報を算出することができる。
 前記算出部は、前記注目画素の上下左右に隣接する4画素を前記周辺画素として前記テクスチャの複雑さを表す情報を算出することができる。
 前記算出部は、前記注目画素の画素値と各周辺画素の画素値との差分の絶対値の総和を前記テクスチャの複雑さを表す情報とすることができる。
 前記フィルタ係数設定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、予め定められた所定の値を前記注目画素のフィルタ係数として設定することができる。 
 前記画像処理部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記注目画素に対する適応ループフィルタ処理を省略することができる。
 前記注目スライスに対する適応ループフィルタ処理を、他のスライスと独立して行うか否かを示すフラグを生成するフラグ生成部をさらに備え、前記画像処理部は、前記フラグ生成部により生成された前記フラグの値に応じて、前記注目スライス内の前記注目画素に対する適応ループフィルタ処理を行うことができる。
 前記画像処理は、適応オフセット処理であり、前記情報制御部は、前記画像処理に必要な情報として、前記適応オフセット処理に用いられる周辺画素値を求め、前記画像処理部は、前記情報制御部により求められた前記周辺画素値を用いて、前記注目画素に対する前記適応オフセット処理を行うことができる。
 前記情報制御部は、前記注目画素の周辺画素が前記注目スライス内に位置するか否かを判定する位置判定部と、前記位置判定部の判定結果に従って前記周辺画素値を決定する周辺画素値決定部とを備えることができる。
 前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、予め定められた所定の固定値を前記周辺画素値に決定することができる。
 前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素に近傍の利用可能な画素の画素値を前記周辺画素値に決定することができる。
 前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記注目画素の画素値を前記周辺画素値に決定することができる。
 前記注目スライスに対する適応オフセット処理を、他のスライスと独立して行うか否かを示すフラグを生成するフラグ生成部をさらに備え、前記画像処理部は、前記フラグ生成部により生成された前記フラグの値に応じて、前記注目スライス内の前記注目画素に対する適応オフセット処理を行うことができる。
 本開示の一側面は、また、画像処理装置の画像処理方法であって、情報制御部が、処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求め、画像処理部が、前記情報制御部により求められた前記情報を用いて前記画像処理を行う。
 本開示の一側面においては、処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる注目画素に対する画像処理に必要な情報が、注目画素を含むスライスに属する情報のみを用いて求められ、その求められた情報を用いて画像処理が行われる。
 本開示によれば、画像を処理することができる。特に、処理時間の増大を抑制することができる。
画像符号化装置の主な構成例を示すブロック図である。 マルチスライスを説明する図である。 コーディングユニットを説明する図である。 スライスとコーディングユニットの関係を説明する図である。 スライスとコーディングユニットの関係を説明する図である。 クラス分類ALFを説明する図である。 マルチスライスにおけるクラス分類ALFの注目領域と周辺領域の位置の例を示す図である。 マルチスライスにおけるクラス分類ALFの注目領域と周辺領域の位置の、他の例を示す図である。 マルチスライスにおけるクラス分類ALFの注目領域と周辺領域の位置の、さらに他の例を示す図である。 マルチスライスにおけるクラス分類ALFの注目領域と周辺領域の位置の、さらに他の例を示す図である。 適応ループフィルタおよびフィルタ係数制御部の主な構成例を示すブロック図である。 符号化処理の流れの例を説明するフローチャートである。 適応ループフィルタ処理の流れの例を説明するフローチャートである。 SML算出処理の流れの例を説明するフローチャートである。 画像復号装置の主な構成例を示すブロック図である。 適応ループフィルタおよびフィルタ係数制御部の主な構成例を示すブロック図である。 復号処理の流れの例を説明するフローチャートである。 適応ループフィルタ処理の流れの例を説明するフローチャートである。 quad-tree構造を説明する図である。 エッジオフセットを説明する図である。 エッジオフセットの規則一覧表を示す図である。 画像符号化装置の他の構成例を示すブロック図である。 適応オフセット部の主な構成例を示すブロック図である。 エッジオフセット演算部および周辺画素値制御部の主な構成例を示すブロック図である。 符号化処理の流れの他の例を説明するフローチャートである。 適応オフセット処理の流れの例を説明するフローチャートである。 エッジオフセット処理の流れの例を説明するフローチャートである。 画像復号装置の他の構成例を示すブロック図である。 適応オフセット部の主な構成例を示すブロック図である。 復号処理の流れの他の例を説明するフローチャートである。 適応オフセット処理の流れの例を説明するフローチャートである。 パーソナルコンピュータの主な構成例を示すブロック図である。 テレビジョン装置の概略的な構成の一例を示すブロック図である。 携帯電話機の概略的な構成の一例を示すブロック図である。 記録再生装置の概略的な構成の一例を示すブロック図である。 撮像装置の概略的な構成の一例を示すブロック図である。
 以下、本技術を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.第1の実施の形態(画像符号化装置)
2.第2の実施の形態(画像復号装置)
3.第3の実施の形態(画像符号化装置)
4.第4の実施の形態(画像復号装置)
5.第5の実施の形態(パーソナルコンピュータ)
6.第6の実施の形態(テレビジョン受像機)
7.第7の実施の形態(携帯電話機)
8.第8の実施の形態(記録再生装置)
9.第9の実施の形態(撮像装置)
 <1.第1の実施の形態>
 [画像符号化装置]
 図1は、画像符号化装置の主な構成例を示すブロック図である。
 図1に示される画像符号化装置100は、H.264及びMPEG(Moving Picture Experts Group)4 Part10(AVC(Advanced Video Coding))符号化方式のように、予測処理を用いて画像データを符号化する。
 図1に示されるように画像符号化装置100は、A/D変換部101、画面並べ替えバッファ102、演算部103、直交変換部104、量子化部105、可逆符号化部106、および蓄積バッファ107を有する。また、画像符号化装置100は、逆量子化部108、逆直交変換部109、演算部110、デブロックフィルタ111、適応ループフィルタ112、フレームメモリ113、選択部114、イントラ予測部115、動き予測・補償部116、予測画像選択部117、およびレート制御部118を有する。
 画像符号化装置100は、さらに、フィルタ係数制御部121を有する。
 A/D変換部101は、入力された画像データをA/D変換し、変換後の画像データ(デジタルデータ)を、画面並べ替えバッファ102に供給し、記憶させる。画面並べ替えバッファ102は、記憶した表示の順番のフレームの画像を、GOP(Group Of Picture)に応じて、符号化のためのフレームの順番に並べ替え、フレームの順番を並び替えた画像を、演算部103に供給する。また、画面並べ替えバッファ102は、フレームの順番を並び替えた画像を、イントラ予測部115および動き予測・補償部116にも供給する。
 演算部103は、画面並べ替えバッファ102から読み出された画像から、予測画像選択部117を介してイントラ予測部115若しくは動き予測・補償部116から供給される予測画像を減算し、その差分情報を直交変換部104に出力する。
 例えば、インター符号化が行われる画像の場合、演算部103は、画面並べ替えバッファ102から読み出された画像から、動き予測・補償部116から供給される予測画像を減算する。
 直交変換部104は、演算部103から供給される差分情報に対して、離散コサイン変換やカルーネン・レーベ変換等の直交変換を施す。なお、この直交変換の方法は任意である。直交変換部104は、その変換係数を量子化部105に供給する。
 量子化部105は、直交変換部104から供給される変換係数を量子化する。量子化部105は、レート制御部118から供給される符号量の目標値に関する情報に基づいて量子化パラメータを設定し、その量子化を行う。なお、この量子化の方法は任意である。量子化部105は、量子化された変換係数を可逆符号化部106に供給する。
 可逆符号化部106は、量子化部105において量子化された変換係数を任意の符号化方式で符号化する。係数データは、レート制御部118の制御の下で量子化されているので、この符号量は、レート制御部118が設定した目標値となる(若しくは目標値に近似する)。
 また、可逆符号化部106は、イントラ予測のモードを示す情報などをイントラ予測部115から取得し、インター予測のモードを示す情報や動きベクトル情報などを動き予測・補償部116から取得する。さらに、可逆符号化部106は、適応ループフィルタ112から供給されるalf_flag等を取得する。
 可逆符号化部106は、これらの各種情報を任意の符号化方式で符号化し、符号化データのヘッダ情報の一部とする(多重化する)。可逆符号化部106は、符号化して得られた符号化データを蓄積バッファ107に供給して蓄積させる。
 可逆符号化部106の符号化方式としては、例えば、可変長符号化または算術符号化等が挙げられる。可変長符号化としては、例えば、H.264/AVC方式で定められているCAVLC(Context-Adaptive Variable Length Coding)などが挙げられる。算術符号化としては、例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)などが挙げられる。
 蓄積バッファ107は、可逆符号化部106から供給された符号化データを、一時的に保持する。蓄積バッファ107は、所定のタイミングにおいて、保持している符号化データを、例えば、後段の図示せぬ記録装置(記録媒体)や伝送路などに出力する。
 また、量子化部105において量子化された変換係数は、逆量子化部108にも供給される。逆量子化部108は、その量子化された変換係数を、量子化部105による量子化に対応する方法で逆量子化する。この逆量子化の方法は、量子化部105による量子化処理に対応する方法であればどのような方法であってもよい。逆量子化部108は、得られた変換係数を、逆直交変換部109に供給する。
 逆直交変換部109は、逆量子化部108から供給された変換係数を、直交変換部104による直交変換処理に対応する方法で逆直交変換する。この逆直交変換の方法は、直交変換部104による直交変換処理に対応する方法であればどのようなものであってもよい。逆直交変換された出力(復元された差分情報)は、演算部110に供給される。
 演算部110は、逆直交変換部109から供給された逆直交変換結果、すなわち、復元された差分情報に、予測画像選択部117を介してイントラ予測部115若しくは動き予測・補償部116から供給される予測画像を加算し、局部的に復号された画像(復号画像)を得る。その復号画像は、デブロックフィルタ111またはフレームメモリ113に供給される。
 デブロックフィルタ111は、復号画像に対してデブロックフィルタ処理を行うことにより復号画像のブロック歪を除去する。デブロックフィルタ111は、フィルタ処理後の復号画像を適応ループフィルタ112に供給する。
 適応ループフィルタ112は、デブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。適応ループフィルタ112は、処理対象である注目画素をクラス分類し、そのクラスに応じたフィルタ係数を用いて注目画素のフィルタ処理を行うクラス分類ALFを行う。なお、適応ループフィルタ112は、このフィルタ処理を、スライス毎に行う。
 適応ループフィルタ112は、フィルタ処理結果(フィルタ処理後の復号画像)をフレームメモリ113に供給する。なお、上述したように、演算部110から出力される復号画像は、デブロックフィルタ111および適応ループフィルタ112を介さずにフレームメモリ113に供給することができる。例えば、イントラ予測に用いられる参照画像用として、デブロックフィルタ111および適応ループフィルタ112によるフィルタ処理が省略された画像がフレームメモリ113に記憶される。
 フレームメモリ113は、供給される復号画像を記憶し、所定のタイミングにおいて、記憶している復号画像を参照画像として、選択部114に供給する。
 選択部114は、フレームメモリ113から供給される参照画像の供給先を選択する。例えば、イントラ予測の場合、選択部114は、フレームメモリ113から供給される参照画像をイントラ予測部115に供給する。また、例えば、インター予測の場合、選択部114は、フレームメモリ113から供給される参照画像を動き予測・補償部116に供給する。
 イントラ予測部115は、画面並べ替えバッファ102から供給される入力画像と、選択部114を介してフレームメモリ113から供給される参照画像とを用いて、基本的にPUを処理単位として、イントラ予測(画面内予測)を行う。イントラ予測部115は、最適なイントラ予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部117に供給する。また、上述したように、イントラ予測部115は、採用されたイントラ予測モードを示すイントラ予測モード情報等を、適宜可逆符号化部106に供給し、符号化させる。
 動き予測・補償部116は、画面並べ替えバッファ102から供給される入力画像と、選択部114を介してフレームメモリ113から供給される参照画像とを用いて、基本的にPUを処理単位として、動き予測(インター予測)を行い、検出された動きベクトルに応じて動き補償処理を行い、予測画像(インター予測画像情報)を生成する。動き予測・補償部116は、予め用意された複数のモード(インター予測モード)でこのようなインター予測を行う。
 動き予測・補償部116は、候補となる全てのインター予測モードで予測画像を生成し、各予測画像のコスト関数値を評価し、最適なモードを選択する。動き予測・補償部116は、最適なインター予測モードを選択すると、その最適なモードで生成された予測画像を、予測画像選択部117に供給する。
 また、動き予測・補償部116は、採用されたインター予測モードを示す情報や、符号化データを復号する際に、そのインター予測モードで処理を行うために必要な情報等を可逆符号化部106に供給し、符号化させる。
 予測画像選択部117は、演算部103や演算部110に供給する予測画像の供給元(イントラ予測部115若しくは動き予測・補償部116)を選択し、選択した処理部から供給される予測画像を演算部103や演算部110に供給する。
 レート制御部118は、蓄積バッファ107に蓄積された符号化データの符号量に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
 フィルタ係数制御部121は、適応ループフィルタ112が行うフィルタ処理のフィルタ係数の設定を行う。フィルタ係数制御部121は、処理対象である注目画素のクラス分類を行い、そのクラスに応じたフィルタ係数を設定する。フィルタ係数制御部121は、このフィルタ係数の設定(クラス分類)を、処理対象である注目画素が属する注目スライス外の他のスライスの情報を用いずに行う。つまり、フィルタ係数制御部121は、フィルタ係数の設定の際に、スライス単位の処理の独立性を確保する。
 [マルチスライス]
 MPEG2やAVC等の画像符号化方式においては、1ピクチャを複数のスライスに分割し、各スライスを並行して処理することができる(マルチスライス)。
MPEG2の場合、図2のAの例に示されるように、スライスの最大の大きさは1マクロブロックラインであり、また、Bピクチャを構成するスライスは全てBスライスでなければならない。
 これに対してAVCの場合、図2のBの例に示されるように、スライスは1マクロブロックラインより大きくてもよく、スライスの境界はマクロブロックラインの右端(画面右端)でなくてもよく、また、単一のピクチャが異なる種類のスライスにより構成されていても良い。
 AVCの場合、デブロックフィルタ処理はスライス境界を跨って実行することができる。ただし、適応ループフィルタ処理、イントラ予測、CABAC、CAVLC、および動きベクトルの予測等のような隣接情報を用いた処理は、スライス境界を跨って実行することが出来ない。
 換言するに、各スライスの符号化処理は互いに独立して実行することができるので、1ピクチャを複数のスライスに分割し、各スライスを並列に符号化することが可能になる。つまり、このようなスライス分割により、符号化処理時間の低減(符号化処理の高速化)を実現することができる。
 [コーディングユニット]
 ところで、AVC符号化方式においては、マクロブロックやそのマクロブロックを複数に分割したサブマクロブロックを予測処理や符号化処理等の処理単位としていた。しかしながら、マクロブロックサイズを16画素×16画素とするのは、次世代符号化方式の対象となるような、UHD(Ultra High Definition;4000画素×2000画素)といった大きな画枠に対しては、最適ではない。
 そこで、現在、AVCより更なる符号化効率の向上を目的として、ITU-T(International Telecommunication Union Telecommunication Standardization Sector)と、ISO(International Organization for Standardization)/IEC(International Electrotechnical Commission)の共同の標準化団体であるJCTVC(Joint Collaboration Team - Video Coding)により、HEVC(High Efficiency Video Coding)と呼ばれる符号化方式の標準化が進められている。
 AVCにおいては、マクロブロックとサブマクロブロックによる階層構造が規定されているが、HEVCにおいては、図3に示されるように、コーディングユニット(CU(Coding Unit))が規定されている。
 CUは、Coding Tree Block(CTB)とも呼ばれ、AVCにおけるマクロブロックと同様の役割を果たす、ピクチャ単位の画像の部分領域である。後者は、16×16画素の大きさに固定されているのに対し、前者の大きさは固定されておらず、それぞれのシーケンスにおいて、画像圧縮情報中において指定されることになる。
 例えば、出力となる符号化データに含まれるシーケンスパラメータセット(SPS(Sequence Parameter Set))において、CUの最大サイズ(LCU(Largest Coding Unit))と最小サイズ((SCU(Smallest Coding Unit))が規定される。
 それぞれのLCU内においては、SCUのサイズを下回らない範囲で、split-flag=1とすることにより、より小さなサイズのCUに分割することができる。図3の例では、LCUの大きさが128であり、最大階層深度が5となる。2N×2Nの大きさのCUは、split_flagの値が「1」である時、1つ下の階層となる、N×Nの大きさのCUに分割される。
 更に、CUは、イントラ若しくはインター予測の処理単位となる領域(ピクチャ単位の画像の部分領域)であるプレディクションユニット(Prediction Unit(PU))に分割され、また、直交変換の処理単位となる領域(ピクチャ単位の画像の部分領域)である、トランスフォームユニット(Transform Unit(TU))に分割される。現在、HEVCにおいては、4×4及び8×8に加え、16×16及び32×32直交変換を用いることが可能である。
 以上のHEVCのように、CUを定義し、そのCUを単位として各種処理を行うような符号化方式の場合、AVCにおけるマクロブロックはLCUに相当すると考えることができる。ただし、CUは図3に示されるように階層構造を有するので、その最上位階層のLCUのサイズは、例えば128×128画素のように、AVCのマクロブロックより大きく設定されることが一般的である。
 マクロブロックの代わりに、このようなCU、PU、およびTU等を用いる符号化方式にも、本開示を適用することができる。すなわち、予測処理を行う処理単位は任意の領域であってもよい。つまり、以下において、予測処理の処理対象の領域(当該領域や注目領域とも称する)や、その注目領域の周辺に位置する領域である周辺領域には、このようなマクロブロックやサブマクロブロックだけでなく、CU、PU、およびTU等が含まれる。
 以上のようなLCU(CU、PU、およびTU)は、スライスの領域を複数に分割したものであり、スライスの下位層に属する。つまり、図2に説明したようなマルチスライスの場合、図4に示されるように、LCUは、いずれかのスライス内に含まれる。
 図5に示されるように、LCUの先頭アドレスは、各スライスの先頭からの相対位置で指定される。LCU内の各領域(CU、PU、およびTU)は、識別情報とサイズが指定される。つまり、各画素の位置は、それらの情報から特定可能である。従って、処理対象である注目画素やその周辺画素の位置、並びに、注目スライスの範囲は、それらの情報から容易に特定することができる。換言するに、周辺画素が注目スライスに属するか否か(availableであるかunavailableであるか)は、容易に特定可能である。
 [フィルタ係数の演算]
 フィルタ係数制御部121は、利用可能(available)な情報のみを用いて、注目画素に対する適応ループフィルタ処理に用いられるフィルタ係数を求める。より具体的には、フィルタ係数制御部121は、注目画素をクラス分類し、その分類したクラスに応じた値を、注目画素に対するフィルタ係数として設定する。このクラス分類のために、フィルタ係数制御部121は、SML(Sum-Modified Laplacian)を算出する。SMLは、テクスチャの複雑さを得る演算子である。つまり、フィルタ係数制御部121は、このSMLの大きさに応じて注目画素をクラス分類する。
 フィルタ係数制御部121は、このSMLを、利用可能(available)な情報のみを用いて算出する。例えば、フィルタ係数制御部121は、注目画素の画素値と、注目画素の周辺に位置する利用可能(available)な周辺画素の画素値を用いて算出する。この周辺画素は、利用可能(available)なものであればどのような画素であってもよいが、基本的に、注目画素により近い位置の画素ほど相関性が高く、望ましい。 
 例えば、フィルタ係数制御部121は、図6に示されるように、注目画素(i,j)の画素値R(i,j)、注目画素の左に隣接する周辺画素の画素値R(i-1,j)、注目画素の右に隣接する周辺画素の画素値R(i+1,j)、注目画素の上に隣接する周辺画素の画素値R(i,j-1)、および、注目画素の下に隣接する周辺画素の画素値R(i,j+1)を用いて、注目画素のSML(i,j)を以下の式(1)のように算出する。なお、位置(i,j)の画素の画素値をR(i,j)とする。
 SML(i,j)=|2×R(i,j)-R(i-1,j)-R(i+1,j)|
        +|2×R(i,j)-R(i,j-1)-R(i,j+1)| ・・・(1)
 フィルタ係数制御部121は、このSML(i,j)の大きさに基づいて注目画素をクラス分類し、そのクラスに応じた値を、注目画素に対するフィルタ係数として設定する。
 [マルチスライスのクラス分類ALF]
 以上のように、クラス分類ALFにおいては、注目画素のクラス分類の際に周辺画素の画素値が参照される。しかしながら、上述したようなマルチスライスの場合、参照される可能性のある周辺画素が注目画素と異なるスライスに位置する可能性がある。
 図7乃至図10にマルチスライスと、クラス分類ALFの注目領域および周辺領域の位置関係の例を示す。
 図7は、注目画素(i,j)とその上下左右に隣接する周辺画素が、全て1つのスライス(スライス1)内に位置する(注目スライスに属する)様子を示している。なお、iは、画素の横方向の位置を示し、jは、画素の縦方向の位置を示す。また、スライスの左上端を原点(0,0)とする。
 この場合、フィルタ係数制御部121は、注目画素のクラス分類(SML算出)において、全ての周辺画素の画素値を参照することができる(availableである)。
 図8は、注目画素(i,j)、注目画素の下に隣接する周辺画素(i,j+1)、注目画素の左に隣接する周辺画素(i-1,j)、および、注目画素の右に隣接する周辺画素(i+1,j)、がスライス1内に位置する(注目スライスに属する)が、注目画素の上に隣接する周辺画素(i,j-1)は、スライス0内に位置する(注目スライスに属さない)様子を示している。
 この場合、フィルタ係数制御部121は、周辺画素(i,j+1)、周辺画素(i-1,j)、および、周辺画素(i+1,j)を参照することはできる(availableである)が、周辺画素(i,j-1)を参照することはできない(unavailableである)。
 図9は、注目画素(i,j)、注目画素の上に隣接する周辺画素(i,j-1)、注目画素の左に隣接する周辺画素(i-1,j)、および、注目画素の右に隣接する周辺画素(i+1,j)、がスライス1内に位置する(注目スライスに属する)が、注目画素の下に隣接する周辺画素(i,j+1)は、ピクチャまたはフレーム外に位置する(存在しない)様子を示している。
 この場合、フィルタ係数制御部121は、周辺画素(i,j-1)、周辺画素(i-1,j)、および、周辺画素(i+1,j)を参照することはできる(availableである)が、周辺画素(i,j+1)を参照することはできない(unavailableである)。
 図10は、注目画素(i,j)、注目画素の上に隣接する周辺画素(i,j-1)、注目画素の下に隣接する周辺画素(i,j+1)、および、注目画素の右に隣接する周辺画素(i+1,j)、がスライス1内に位置する(注目スライスに属する)が、注目画素の左に隣接する周辺画素(i-1,j)は、スライス0内に位置する(注目スライスに属さない)様子を示している。
 この場合、フィルタ係数制御部121は、周辺画素(i,j-1)、周辺画素(i,j+1)、および、周辺画素(i+1,j)を参照することはできる(availableである)が、周辺画素(i-1,j)を参照することはできない(unavailableである)。
 なお、図9に示されるように、スライス境界には、スライス間の境界の他に、ピクチャ端も含まれる。重要なことは、周辺画素の画素値が利用可能(available)であるか否か、すなわち、周辺画素が注目スライスに含まれるか否かということである。したがって、周辺画素の画素値が利用不可能(unavailable)な状態には、その周辺画素が他のスライスに属する場合の他に、その周辺画素が存在しない(ピクチャの外に位置することになる)場合も含まれる。
 なお、例えば、周辺画素(i,j-1)と周辺画素(i-1,j)とが利用不可能となる等、複数の周辺画素が注目スライスに含まれない場合も考えられる。つまり、スライス境界と注目画素との位置関係は、図7乃至図10に示される例に限定されない。
 図8乃至図10に示されるように、少なくとも一部の周辺画素の画素値が利用不可能(unavailable)な場合、フィルタ係数制御部121は、その画素値を用いずに注目画素のSMLの算出を行う。
 このSMLは、テクスチャの複雑さを得る演算子であるので、注目領域の周辺画素との画素値の相関性の強さを示すパラメータとも言える。そこで、フィルタ係数制御部121は、利用不可能(unavailable)な周辺画素の画素値の代わりに、例えば、画素間の画素値の相関性を利用して、その周辺画素の近傍に位置する利用可能(available)な画素(周辺画素に隣接する画素を含む)の画素値を用いてSMLを算出するようにしてもよい。さらに、その近傍の画素として、フィルタ係数制御部121は、例えば、注目画素の画素値を用いてSMLを算出するようにしてもよい。
 さらに、例えば、フィルタ係数制御部121は、演算を容易にするために、利用不可能(unavailable)な周辺画素の画素値の代わりに、所定の固定値を用いて、SMLの算出を行うようにしてもよい。
 もちろん、これら以外の方法であっても良い。例えば、フィルタ係数制御部121は、利用不可能(unavailable)な周辺画素の画素値の代わりとする値を、1つ若しくは複数の他の利用可能(available)な画素の画素値を用いて、所定の演算により算出するようにし、その値を用いてSMLを算出するようにしてもよい。
 このようにすることにより、フィルタ係数制御部121は、各画素のSMLの算出、すなわち、クラス分類やフィルタ係数の算出を、他のスライスの情報を参照せずに行うことができる。つまり、フィルタ係数制御部121は、これらの処理を、スライス毎に独立して行うことができる。従って、適応ループフィルタ112は、適応ループフィルタ処理を、スライス毎に独立に行うことができ、マルチスライスの場合であっても、適応ループフィルタ処理のスループットの低減を抑制することができる。つまり、画像符号化装置100は、符号化処理の処理時間の増大を抑制することができる。
 [適応ループフィルタおよびフィルタ係数制御部]
 図11は、適応ループフィルタ112およびフィルタ係数制御部121の主な構成例を示すブロック図である。 
 図11に示されるように、適応ループフィルタ112は、制御部131およびフィルタ処理部132を有する。
 また、フィルタ係数制御部121は、位置判定部141、SML算出部142、クラス分類部143、フィルタ係数設定部144を有する。
 制御部131は、適応ループフィルタ処理を行うか否かを示すフラグalf_flagの値に基づいて、フィルタ処理部132の適応ループフィルタ処理を制御する。また、制御部131は、適応ループフィルタ処理を行う際、フィルタ係数制御部121の位置判定部141に処理の開始を指示する。さらに、制御部131は、alf_flagを可逆符号化部106に供給し、符号化させ、復号側に伝送させる。
 フィルタ処理部132は、制御部131の制御に従って、フィルタ係数設定部144から供給されるフィルタ係数を用いて、デブロックフィルタ111から供給されるデブロックフィルタ処理後の画素値に対するフィルタ処理を行う。フィルタ処理部132は、フィルタ処理後の画素値を保持するとともに、フレームメモリ113に供給し、参照画像として記憶させる。保持した画素値は、注目画素より後に処理される他の画素に対する処理において、周辺画素の画素値として再利用される。
 位置判定部141は、制御部131の制御に従って、可逆符号化部106から、スライスや、処理対象である注目画素等の位置を示すアドレス情報を取得する。これらのアドレス情報は、例えば、可逆符号化部106が生成したシーケンスパラメータセット(SPS(Sequence Parameter Set))、ピクチャパラメータセット(PPS(Picture Parameter Set))、若しくはスライスヘッダ等に格納されている。位置判定部141は、取得したアドレス情報を用いて、注目画素の注目スライス内における位置を判定する。
 SML算出部142は、位置判定部141による位置判定結果(位置情報)に基づいて、フィルタ処理部132から取得した注目画素の画素値や周辺画素の画素値を用いて(注目スライス外の情報を参照せずに)、注目画素のSMLを算出する。
 クラス分類部143は、SML算出部142により算出されたSMLを用いて注目画素のクラス分類を行う。
 フィルタ係数設定部144は、クラス分類部143から取得したクラス情報(クラス分類結果)に従って、注目画素に対して、そのクラスに応じたフィルタ係数を設定する。フィルタ係数設定部144は、設定したフィルタ係数をフィルタ処理部132に供給する。フィルタ処理部132は、そのフィルタ係数を用いて注目画素に対するフィルタ処理を行う。
 [符号化処理の流れ]
 次に、以上のような画像符号化装置100により実行される各処理の流れについて説明する。最初に、図12のフローチャートを参照して、符号化処理の流れの例を説明する。なお、図12に示される各ステップの処理は、それぞれの処理単位毎に行われる。したがって、各処理の処理単位は互いに等しいとは限らない。したがって、各データは、以下に説明するような手順で処理されるが、実際に、各ステップの処理の処理順が、以下に説明するような順になるとは限らない。
 ステップS101において、A/D変換部101は入力された画像をA/D変換する。ステップS102において、画面並べ替えバッファ102は、A/D変換された画像を記憶し、各ピクチャの表示する順番から符号化する順番への並べ替えを行う。
 ステップS103において、イントラ予測部115は、イントラ予測モードのイントラ予測処理を行う。ステップS104において、動き予測・補償部116は、インター予測モードでの動き予測や動き補償を行うインター動き予測処理を行う。
 ステップS105において、予測画像選択部117は、イントラ予測部115および動き予測・補償部116から出力された各コスト関数値に基づいて、最適なモードを決定する。つまり、予測画像選択部117は、イントラ予測部115により生成された予測画像と、動き予測・補償部116により生成された予測画像のいずれか一方を選択する。
 ステップS106において、演算部103は、ステップS102の処理により並び替えられた画像と、ステップS105の処理により選択された予測画像との差分を演算する。差分データは元の画像データに較べてデータ量が低減される。したがって、画像をそのまま符号化する場合に較べて、データ量を圧縮することができる。
 ステップS107において、直交変換部104は、ステップS106の処理により生成された差分情報を直交変換する。具体的には、離散コサイン変換、カルーネン・レーベ変換等の直交変換が行われ、変換係数が出力される。
 ステップS108において、量子化部105は、ステップS107の処理により得られた直交変換係数を量子化する。
 ステップS108の処理により量子化された差分情報は、次のようにして局部的に復号される。すなわち、ステップS109において、逆量子化部108は、ステップS108の処理により生成された量子化された直交変換係数(量子化係数とも称する)を量子化部105の特性に対応する特性で逆量子化する。ステップS110において、逆直交変換部109は、ステップS107の処理により得られた直交変換係数を、直交変換部104の特性に対応する特性で逆直交変換する。
 ステップS111において、演算部110は、予測画像を局部的に復号された差分情報に加算し、局部的に復号された画像(演算部103への入力に対応する画像)を生成する。ステップS112においてデブロックフィルタ111は、ステップS111の処理により得られた局部的な復号画像に対して、デブロックフィルタ処理を適宜行う。
 ステップS113において、適応ループフィルタ112およびフィルタ係数制御部121は、デブロックフィルタ処理された復号画像に対して、スライス毎に独立して、適応ループフィルタ処理を行う。
 ステップS114において、フレームメモリ113は、ステップS113の処理により適応ループフィルタ処理が施された復号画像を記憶する。なお、フレームメモリ113にはデブロックフィルタ111や適応ループフィルタ112によりフィルタ処理されていない画像も演算部110から供給され、記憶される。
 ステップS115において、可逆符号化部106は、ステップS108の処理により量子化された変換係数を符号化する。すなわち、差分画像に対して、可変長符号化や算術符号化等の可逆符号化が行われる。
 なお、可逆符号化部106は、ステップS108において算出された量子化パラメータを符号化し、符号化データに付加する。また、可逆符号化部106は、ステップS105の処理により選択された予測画像の予測モードに関する情報を符号化し、差分画像を符号化して得られる符号化データに付加する。つまり、可逆符号化部106は、イントラ予測部115から供給される最適イントラ予測モード情報、または、動き予測・補償部116から供給される最適インター予測モードに応じた情報なども符号化し、符号化データに付加する。
 さらに、可逆符号化部106は、alf_flag等のフィルタ処理に関する情報も符号化し、符号化データに付加する。
 ステップS116において蓄積バッファ107は、ステップS115の処理により得られた符号化データを蓄積する。蓄積バッファ107に蓄積された符号化データは、適宜読み出され、伝送路や記録媒体を介して復号側に伝送される。
 ステップS117においてレート制御部118は、ステップS116の処理により蓄積バッファ107に蓄積された符号化データの符号量(発生符号量)に基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部105の量子化動作のレートを制御する。
 ステップS117の処理が終了すると、符号化処理が終了される。
 [適応ループフィルタ処理の流れ]
 次に、図13のフローチャートを参照して、図12のステップS113において実行される適応ループフィルタ処理の流れの例を説明する。
 適応ループフィルタ処理が開始されると、制御部131は、ステップS131において、処理対象である注目スライスの最初の画素を処理対象(注目画素)とする。ステップS132において、制御部131は、全ての画素を処理したか否かを判定し、未処理の画素が存在すると判定された場合、処理をステップS133に進め、位置判定部141を制御する。
 位置判定部141は、ステップS133において、注目スライスや注目画素等のアドレス情報を取得し、ステップS134において、周辺画素の位置を判定する。つまり、位置判定部141は、注目画素の注目スライス内における位置に基づいて、周辺画素が注目スライス内に位置するか否か(利用可能(available)であるか否か)を判定する。
 ステップS135において、SML算出部142は、ステップS134の位置判定結果に従って、注目領域のSML(i,j)の算出を行う。
 ステップS136において、クラス分類部143は、ステップS135において算出されたSML(i,j)の大きさに応じて注目画素をクラス分類する。
 ステップS137において、フィルタ係数設定部144は、ステップS136において分類されたクラスに応じて、注目画素に対するフィルタ係数を設定する。
 ステップS138において、制御部131は、適応ループフィルタ処理を行うか否かを示すフラグ情報であるalf_flagの値が1であるか否かを判定する。値が1であると判定した場合、制御部131は、処理をステップS139に進め、フィルタ処理部132を制御する。
 ステップS139において、フィルタ処理部132は、ステップS137において設定されたフィルタ係数を用いて、注目画素に対するフィルタ処理を行う。
 また、ステップS138において、alf_flagの値が0であると判定した場合、制御部131は、処理をステップS140に進める。ステップS140において、制御部131は、alf_flagを可逆符号化部106に供給し、符号化させる。
 ステップS141において、制御部131は、処理対象を更新して次の画素にする。制御部131は、ステップS141の処理を終了すると、処理をステップS132に戻し、それ以降の処理を繰り返す。
 以上のように、ステップS132乃至ステップS141の処理を繰り返し、ステップS132において、注目スライス内の全ての画素を処理したと判定した場合、制御部131は、適応ループフィルタ処理を終了し、処理を図12に戻す。
 [SML算出処理の流れ]
 次に、図14のフローチャートを参照して、図13のステップS135において実行されるSML算出処理の流れの例を説明する。
 SML算出処理が開始されると、SML算出部142は、ステップS161において、周辺画素(i-1,j)は、注目スライスに含まれるか否かを判定する。
 周辺画素(i-1,j)が注目スライスに含まれると判定した場合、SML算出部142は、ステップS162に処理を進め、以下の式(2)に示されるように、その周辺画素の画素値を更新せずに、SMLの算出に使用する。
 R’(i-1,j)=R(i-1,j) ・・・(2)
 これに対して、ステップS161において、周辺画素(i-1,j)が注目スライスに含まれないと判定した場合、SML算出部142は、ステップS163に処理を進め、以下の式(3)に示されるように、その周辺画素の画素値を、注目画素の画素値を用いて更新する。
 R’(i-1,j)=R(i,j) ・・・(3)
 ステップS164において、SML算出部142は、周辺画素(i+1,j)は、注目スライスに含まれるか否かを判定する。
 周辺画素(i+1,j)が注目スライスに含まれると判定した場合、SML算出部142は、ステップS165に処理を進め、以下の式(4)に示されるように、その周辺画素の画素値を更新せずに、SMLの算出に使用する。
 R’(i+1,j)=R(i+1,j) ・・・(4)
 これに対して、ステップS164において、周辺画素(i+1,j)が注目スライスに含まれないと判定した場合、SML算出部142は、ステップS166に処理を進め、以下の式(5)に示されるように、その周辺画素の画素値を、注目画素の画素値を用いて更新する。
 R’(i+1,j)=R(i,j) ・・・(5)
 ステップS167において、SML算出部142は、周辺画素(i,j-1)は、注目スライスに含まれるか否かを判定する。
 周辺画素(i,j-1)が注目スライスに含まれると判定した場合、SML算出部142は、ステップS168に処理を進め、以下の式(6)に示されるように、その周辺画素の画素値を更新せずに、SMLの算出に使用する。
 R’(i,j-1)=R(i,j-1) ・・・(6)
 これに対して、ステップS167において、周辺画素(i,j-1)が注目スライスに含まれないと判定した場合、SML算出部142は、ステップS169に処理を進め、以下の式(7)に示されるように、その周辺画素の画素値を、注目画素の画素値を用いて更新する。
 R’(i,j-1)=R(i,j) ・・・(7)
 ステップS170において、SML算出部142は、周辺画素(i,j+1)は、注目スライスに含まれるか否かを判定する。
 周辺画素(i,j+1)が注目スライスに含まれると判定した場合、SML算出部142は、ステップS171に処理を進め、以下の式(8)に示されるように、その周辺画素の画素値を更新せずに、SMLの算出に使用する。
 R’(i,j+1)=R(i,j+1) ・・・(8)
 これに対して、ステップS170において、周辺画素(i,j+1)が注目スライスに含まれないと判定した場合、SML算出部142は、ステップS172に処理を進め、以下の式(9)に示されるように、その周辺画素の画素値を、注目画素の画素値を用いて更新する。
 R’(i,j+1)=R(i,j) ・・・(9)
 ステップS173において、SML算出部142は、上述した各処理の処理結果を踏まえ、各周辺画素の画素値を用いて、以下の式(10)に示されるように、注目画素のSML(i,j)を算出する。
 SML(i,j)=|2×R’(i,j)-R’(i-1,j)-R’(i+1,j)|
        +|2×R’(i,j)-R’(i,j-1)-R’(i,j+1)|・・・(10)
 SMLを算出すると、SML算出部142は、SML算出処理を終了し、処理を図13に戻す。
 以上のように各種処理を行うことにより、画像符号化装置100は、スライス毎の処理の並列化を実現することができ、適応ループフィルタ処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
 <2.第2の実施の形態>
 [画像復号装置]
 図15は、画像復号装置の主な構成例を示すブロック図である。図15に示される画像復号装置200は、画像符号化装置100が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
 図15に示されるように画像復号装置200は、蓄積バッファ201、可逆復号部202、逆量子化部203、逆直交変換部204、演算部205、デブロックフィルタ206、適応ループフィルタ207、画面並べ替えバッファ208、およびD/A変換部209を有する。また、画像復号装置200は、フレームメモリ210、選択部211、イントラ予測部212、動き予測・補償部213、および選択部214を有する。
 さらに、画像復号装置200は、フィルタ係数制御部221を有する。
 蓄積バッファ201は伝送されてきた符号化データを蓄積し、所定のタイミングにおいてその符号化データを可逆復号部202に供給する。可逆復号部202は、蓄積バッファ201より供給された、図1の可逆符号化部106により符号化された情報を、可逆符号化部106の符号化方式に対応する方式で復号する。可逆復号部202は、復号して得られた差分画像の量子化された係数データを、逆量子化部203に供給する。
 また、可逆復号部202は、最適な予測モードにイントラ予測モードが選択されたかインター予測モードが選択されたかを判定し、その最適な予測モードに関する情報を、イントラ予測部212および動き予測・補償部213の内、選択されたと判定したモードの方に供給する。
 逆量子化部203は、可逆復号部202により復号されて得られた量子化された係数データを、図1の量子化部105の量子化方式に対応する方式で逆量子化し、得られた係数データを逆直交変換部204に供給する。
 逆直交変換部204は、図1の直交変換部104の直交変換方式に対応する方式で逆量子化部203から供給される係数データを逆直交変換する。逆直交変換部204は、この逆直交変換処理により、画像符号化装置100において直交変換される前の残差データに対応する復号残差データを得る。
 逆直交変換されて得られた復号残差データは、演算部205に供給される。また、演算部205には、選択部214を介して、イントラ予測部212若しくは動き予測・補償部213から予測画像が供給される。
 演算部205は、その復号残差データと予測画像とを加算し、画像符号化装置100の演算部103により予測画像が減算される前の画像データに対応する復号画像データを得る。演算部205は、その復号画像データをデブロックフィルタ206に供給する。
 デブロックフィルタ206は、供給された復号画像に対して、デブロックフィルタ処理を適宜施し、復号画像のブロック歪を除去する。デブロックフィルタ206は、フィルタ処理後の復号画像データを適応ループフィルタ207に供給する。
 適応ループフィルタ207は、デブロックフィルタ処理結果(ブロック歪みの除去が行われた復号画像)に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理(クラス分類ALF)を行うことにより画質改善を行う。適応ループフィルタ207は、フィルタ処理後の復号画像データを、画面並べ替えバッファ208およびフレームメモリ210に供給する。なお、演算部205から出力される復号画像(例えばイントラ予測に用いる参照画像)は、デブロックフィルタ206および適応ループフィルタ207を介さずにフレームメモリ210に供給することができる。
 画面並べ替えバッファ208は、画像の並べ替えを行う。すなわち、図1の画面並べ替えバッファ102により符号化の順番のために並べ替えられたフレームの順番が、元の表示の順番に並べ替えられる。D/A変換部209は、画面並べ替えバッファ208から供給された画像をD/A変換し、図示せぬディスプレイに出力し、表示させる。
 フレームメモリ210は、供給される復号画像を記憶し、所定のタイミングにおいて、若しくは、イントラ予測部212や動き予測・補償部213等の外部の要求に基づいて、記憶している復号画像を参照画像として、選択部211に供給する。
 選択部211は、フレームメモリ210から供給される参照画像の供給先を選択する。選択部211は、イントラ符号化された画像を復号する場合、フレームメモリ210から供給される参照画像をイントラ予測部212に供給する。また、選択部211は、インター符号化された画像を復号する場合、フレームメモリ210から供給される参照画像を動き予測・補償部213に供給する。
 イントラ予測部212には、ヘッダ情報を復号して得られたイントラ予測モードを示す情報等が可逆復号部202から適宜供給される。イントラ予測部212は、図1のイントラ予測部115において用いられたイントラ予測モードで、フレームメモリ210から取得した参照画像を用いてイントラ予測を行い、予測画像を生成する。イントラ予測部212は、生成した予測画像を選択部214に供給する。
 動き予測・補償部213は、ヘッダ情報を復号して得られた情報(最適予測モード情報、差分情報、および予測動きベクトル情報のコードナンバ等)を可逆復号部202から取得する。
 動き予測・補償部213は、図1の動き予測・補償部116において用いられたインター予測モードで、フレームメモリ210から取得した参照画像を用いてインター予測を行い、予測画像を生成する。
 選択部214は、イントラ予測部212から供給された予測画像、若しくは、動き予測・補償部213から供給された予測画像を演算部205に供給する。
 フィルタ係数制御部221は、注目画素を、そのSMLに基づいてクラス分類し、適応ループフィルタ207により用いられるフィルタ係数を設定し、それを適応ループフィルタ207に供給する。なお、フィルタ係数制御部221は、注目スライス外の情報を参照せずに、注目がそのSMLを算出する。
 このようにすることにより、適応ループフィルタ207は、スライス毎に独立してフィルタ処理を行うことができる。
 [適応ループフィルタおよびフィルタ係数制御部]
 図16は、適応ループフィルタ207およびフィルタ係数制御部221の主な構成例を示すブロック図である。
 適応ループフィルタ207は、基本的に、画像符号化装置100の適応ループフィルタ112(図11)と同様の構成を有し、同様の処理を行う。つまり、図16に示されるように、適応ループフィルタ207は、制御部231およびフィルタ処理部232を有する。
 フィルタ係数制御部221は、基本的に、画像符号化装置100のフィルタ係数制御部121(図11)と同様の構成を有し、同様の処理を行う。つまり、図16に示されるように、フィルタ係数制御部221は、位置判定部241、SML算出部242、クラス分類部243、およびフィルタ係数設定部244を有する。
 制御部231は、基本的に制御部131(図11)と同様の処理を行う。ただし、制御部231は、画像符号化装置100から供給されたalf_flagを可逆復号部202から取得し、そのalf_flagの値に従ってクラス分類ALFを行うか否か(フィルタ係数制御部221およびフィルタ処理部232の動作)を制御する。
 フィルタ処理部232は、フィルタ処理部132(図11)と同様に、制御部231に制御されて、フィルタ係数設定部244から供給されるフィルタ係数を用いて、デブロックフィルタ206から供給されるデブロックフィルタ処理後の画素値に対するフィルタ処理を行う。フィルタ処理部232は、フィルタ処理後の画素値を保持するとともに、画面並べ替えバッファ208およびフレームメモリ210にその画素値を供給し、参照画像として記憶させる。保持した画素値は、注目画素より後に処理される他の画素に対する処理において、周辺画素の画素値として再利用される。
 フィルタ係数制御部221の位置判定部241乃至フィルタ係数設定部244は、位置判定部141乃至フィルタ係数設定部144のそれぞれに対応し、同様の処理を行う。
 つまり、位置判定部241が、制御部231の制御に従って、可逆復号部202から、スライスや、処理対象である注目画素等の位置を示すアドレス情報を取得する。これらのアドレス情報は、例えば、画像符号化装置100から伝送されるビットストリームのSPS、PPS、若しくはスライスヘッダ等に格納されている。位置判定部241は、可逆復号部202が復号したこれらの情報の中からアドレス情報を取得し、そのアドレス情報を用いて、注目画素の注目スライス内における位置を判定する。
 SML算出部242は、位置判定部241による位置判定結果(位置情報)に基づいて、フィルタ処理部232から取得した注目画素の画素値や周辺画素の画素値を用いて(注目スライス外の情報を参照せずに)、注目画素のSMLを算出する。
 クラス分類部243は、SML算出部242により算出されたSMLを用いて注目画素のクラス分類を行う。
 フィルタ係数設定部244は、クラス分類部243から取得したクラス情報(クラス分類結果)に従って、注目画素に対して、そのクラスに応じたフィルタ係数を設定する。フィルタ係数設定部244は、設定したフィルタ係数をフィルタ処理部232に供給する。フィルタ処理部232は、そのフィルタ係数を用いて注目画素に対するフィルタ処理を行う。
 [復号処理の流れ]
 次に、図17のフローチャートを参照して、以上のような画像復号装置200により実行される復号処理の流れの例を説明する。
 復号処理が開始されると、ステップS201において、蓄積バッファ201は、伝送されてきたビットストリームを蓄積する。ステップS202において、可逆復号部202は、蓄積バッファ201から供給されるビットストリームを復号する。すなわち、図1の可逆符号化部106により符号化されたIピクチャ、Pピクチャ、並びにBピクチャが復号される。また、SPS、PPS、およびスライスヘッダなど、ビットストリームに含められた差分画像情報以外の各種情報も復号される。
 ステップS203において、逆量子化部203は、ステップS202の処理により得られた、量子化された直交変換係数を逆量子化する。ステップS204において逆直交変換部204は、ステップS203において逆量子化された直交変換係数を逆直交変換する。
 ステップS205において、イントラ予測部212若しくは動き予測・補償部213は、供給された情報を用いて予測処理を行う。ステップS206において、選択部214は、ステップS205において生成された予測画像を選択する。ステップS207において、演算部205は、ステップS204において逆直交変換されて得られた差分画像情報に、ステップS206において選択された予測画像を加算する。これにより復号画像が得られる。
 ステップS208において、デブロックフィルタ206は、ステップS207において得られた復号画像に対して、デブロックフィルタ処理を適宜行う。
 ステップS209において、適応ループフィルタ207およびフィルタ係数制御部221は、そのデブロックフィルタ処理後の復号画像に対して、適応ループフィルタ処理を適宜行う。なお、適応ループフィルタ207およびフィルタ係数制御部221は、この適応ループフィルタ処理を、スライス毎に独立して行う。
 この適応ループフィルタ処理の詳細は、図13のフローチャートを参照して説明した画像符号化装置100による適応ループフィルタ処理と同様であるので、その説明は省略する。
 ステップS210において、画面並べ替えバッファ208は、ステップS209においてフィルタ処理された画像の並べ替えを行う。すなわち画像符号化装置100の画面並べ替えバッファ102により符号化のために並べ替えられたフレームの順序が、元の表示の順序に並べ替えられる。
 ステップS211において、D/A変換部209は、ステップS210においてフレームの順序が並べ替えられた画像をD/A変換する。この画像が図示せぬディスプレイに出力され、画像が表示される。
 ステップS212において、フレームメモリ210は、ステップS209においてフィルタ処理された画像を記憶する。この画像は、ステップS205において、参照画像として、予測画像の生成に使用される。
 ステップS212の処理が終了すると、復号処理が終了される。
 以上のように、各種処理を行うことにより、適応ループフィルタ207およびフィルタ係数制御部221は、注目スライス内の情報のみを参照すればよいので、他のスライスの処理が終了するまで待機する必要がない。したがって、画像復号装置200は、スライス毎の処理の並列化を実現することができ、適応ループフィルタ処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
 [その他の例]
 なお、以上においては、周辺画素が注目スライスに含まれない場合、注目スライス外の情報を参照しないようにしてSMLを算出し、クラス分類するように説明したが、これに限らず、例えば、周辺画素が注目スライスに含まれない注目画素は、SMLを算出する演算を省略し、予め定められた所定のクラスに分類する(所定のフィルタ係数を設定する)ようにしてもよい。このようにすることによりフィルタ係数の設定がより容易になる。
 また、周辺画素が注目スライスに含まれない注目画素に対するフィルタ処理を省略するようにしてもよい。
 図18のフローチャートを参照して、その場合の適応ループフィルタ処理の流れの例を説明する。
 この場合も、適応ループフィルタ処理の各処理は、基本的に図13の場合と同様に実行される。すなわち、ステップS231乃至ステップS234の各処理が、図13のステップS131乃至ステップS134の各処理と同様に実行される。
 ただし、ステップS235において、位置判定部141は、周辺画素が注目スライスに含まれるか否かを判定し、周辺画素が注目スライスに含まれると判定した場合のみ、処理をステップS236に進める。この場合、ステップS236乃至ステップS242の各処理が、図13のステップS135乃至ステップS141の各処理と同様に実行される。
 また、ステップS235において、周辺画素が注目スライスに含まれないと判定した場合、位置判定部141は、処理をステップS232に戻し、処理対象を次の画素にする。
 このように、適応ループフィルタ処理を行うことにより、適応ループフィルタ112およびフィルタ係数制御部121は、より容易に適応ループフィルタ処理を行うことができる。
 なお、以上においては画像符号化装置100が行う適応ループフィルタ処理について説明したが、画像復号装置200が行う適応ループフィルタ処理も同様に行うことができる。
 また、以上においては、注目画素の上下左右に隣接する画素を周辺画素とするように説明したが、これに限らず、例えば、注目画素の右上に隣接する画素、右下に隣接する画素、左上に隣接する画素、または左下に隣接する画素等を周辺画素としてもよい。さらに、周辺画素は、注目画素に隣接していなくてもよい。また、SMLの算出方法は上述した以外であってもよい。例えば、周辺画素の数は任意であり、5画素以上であってもよいし、3画素以下であってもよい。
 さらに、以上においては、画像復号装置200が、画像符号化装置100と同様に、フィルタ係数を算出するように説明したが、これに限らず、画像符号化装置100が使用したフィルタ係数を画像復号装置200に伝送し、画像復号装置200が、その画像符号化装置100から供給されたフィルタ係数を用いて適応ループフィルタ処理を行うようにしてもよい。その場合、フィルタ係数制御部221は省略することができる。
 また、画像符号化装置100(制御部131)が、クラス分類ALFを、スライス毎に独立して行うか否かを制御するフラグをスライス毎に生成し、画像復号装置200に伝送させるようにしてもよい。
 このフラグがセットされた(例えば値が1の)スライスにおいては、画像符号化装置100は、上述したように、利用可能な画素の情報のみを用いて、クラス分類ALFをスライス毎に独立して行う。これに対して、フラグがセットされていない(例えば値が0の)スライスにおいては、画像符号化装置100は、周辺画素が他のスライスに属する場合であっても、全ての周辺画素の画素値が揃ってからSMLを算出し、注目画素をクラス分類してフィルタ係数を設定する。
 画像復号装置200においては、画像符号化装置100から供給されたこのフラグの値が1の場合、注目スライスを、他のスライスとは独立してクラス分類ALFを行い、画像符号化装置100から供給されたこのフラグの値が0の場合、注目スライスを、他のスライスとは独立させずにクラス分類ALFを行う。
 以上においては、クラス分類をSMLの大きさに基づいて行うように説明したが、クラス分類に用いるパラメータは、注目画素以外の画素を参照して求めるものであればどのようなパラメータであってもよい。例えば、分散値を用いるようにしてもよいし、画素値の変化量の大きさを用いるようにしてもよい。その場合も、上述したSMLの場合と同様に、注目スライス外の情報を用いずに、パラメータの算出が行われるようにすることにより、スライス単位の処理の独立性を確保することができる。
 <3.第3の実施の形態>
 [適応オフセットフィルタ]
 以上においては、適応ループフィルタについて説明したが、本技術は、注目画素を処理する際にその周辺画素を参照する処理であればどのような処理にも適用することができる。例えば、HEVCにおいて採用される適応オフセットフィルタ処理にも適用することができる。
 以下に、HEVC方式における適応オフセットフィルタについて説明する。HEVC方式においては、非特許文献2に記載のSample Adaptive Offset方式が採用されている。
 適応オフセットフィルタ(Picture Quality Adaptive Offset:PQAO)の処理は、デブロックフィルタの処理と、適応ループフィルタの処理との間で行われる。
 適応オフセットの種類としては、バンドオフセットと呼ばれるものが2種類、エッジオフセットと呼ばれるものが6種類あり、さらに、オフセットを適応しないことも可能である。そして、画像をquad-treeに分割し、それぞれの領域に、上述したどの適応オフセットの種類により符号化するか否かを選択することができる。
 この選択情報が、PQAO Info.として、符号化部(Entropy Coding)により符号化され、ビットストリームが生成され、生成されたビットストリームが復号側に送信される。この方法を用いることで、符号化効率を向上させることができる。
 ここで、図19を参照して、quad-tree構造について説明する。quad-tree分割(quad-tree構造化)は、任意の領域毎に行われるようにすることができるが、以下においてはLCU毎に行われるものとして説明する。
 図19のA1に示される領域0は、LCUが分割されていない状態を示す(Level-0(分割深度0))。画像符号化装置は、まず、この領域0(すなわちLCU)のコスト関数値J0を計算する。図19のA1に示される4つの領域1乃至領域4は、領域0が縦および横にそれぞれ2分割(合計4分割)された状態を示す(Level-1(分割深度1))。画像符号化装置は、これらの領域1乃至領域4のコスト関数値J1,J2,J3、およびJ4をそれぞれ算出する。
 領域0乃至領域4のそれぞれのコスト関数値を算出すると、画像符号化装置は、図19のA2に示されるように、それらのコスト関数値をLevel(分割深度)毎に比較し、その値が小さい方のLevel(分割深度)を選択する。例えば、J0>(J1+J2+J3+J4)の場合、画像符号化装置は、Level-1の分割領域(Partitions)を選択する。つまり、この場合、LCUは、少なくとも領域1乃至領域4の4つの領域に分割される。
 なお、例えば、J0<(J1+J2+J3+J4)の場合、画像符号化装置は、Level-0の分割領域(Partitions)を選択する。この場合、LCUは分割されない(領域0)。
 画像符号化装置は、このような領域分割を、領域分割により形成された各領域について繰り返す。図19のA3に示される領域5乃至領域20は、図19のA2に示される領域1乃至領域4がそれぞれ、縦および横に2分割(合計4分割)された状態を示す(Level-2(分割深度2))。つまり、LCUは、16個の領域に分割されている。画像符号化装置は、これらの領域5乃至領域20のコスト関数値J5乃至J20をそれぞれ算出する。
 領域5乃至領域20のそれぞれのコスト関数値を算出すると、画像符号化装置は、図19のA4に示されるように、Level-1(分割深度1)とLevel-2(分割深度2)とで、それらのコスト関数値を比較し、その値が小さい方のLevel(分割深度)を選択する。
 つまり、画像符号化装置は、領域1のコスト関数値J1と、領域5、領域6、領域9、および領域10の各コスト関数値の和とを比較する。例えば、J1<(J5+J6+J9+J10)の場合、画像符号化装置は、Level-1の分割領域(Partitions)を選択する。この場合、領域1はこれ以上分割されない。逆に、例えばJ1>(J5+J6+J9+J10)の場合、画像符号化装置は、Level-2の分割領域(Partitions)を選択する。この場合、領域1は、少なくとも領域5、領域6、領域9、および領域10の4つの領域に分割される。
 また、画像符号化装置は、領域2のコスト関数値J2と、領域7、領域8、領域11、および領域12の各コスト関数値の和とを比較する。例えば、J2>(J7+J8+J11+J12)の場合、画像符号化装置は、Level-2の分割領域(Partitions)を選択する。この場合、領域2は、少なくとも領域7、領域8、領域11、および領域12の4つの領域に分割される。逆に、例えばJ2<(J7+J8+J11+J12)の場合、画像符号化装置は、Level-1の分割領域(Partitions)を選択する。この場合、領域2はこれ以上分割されない。
 さらに、画像符号化装置は、領域3のコスト関数値J3と、領域13、領域14、領域17、および領域18の各コスト関数値の和とを比較する。例えば、J3>(J13+J14+J17+J18)の場合、画像符号化装置は、Level-2の分割領域(Partitions)を選択する。この場合、領域3は、少なくとも領域13、領域14、領域17、および領域18の4つの領域に分割される。逆に、例えばJ3<(J13+J14+J17+J18)の場合、画像符号化装置は、Level-1の分割領域(Partitions)を選択する。この場合、領域3はこれ以上分割されない。
 また、画像符号化装置は、領域4のコスト関数値J4と、領域15、領域16、領域19、および領域20の各コスト関数値の和とを比較する。例えばJ4<(J15+J16+J19+J20)の場合、画像符号化装置は、Level-1の分割領域(Partitions)を選択する。この場合、領域4はこれ以上分割されない。逆に、例えば、J4>(J15+J16+J19+J20)の場合、画像符号化装置は、Level-2の分割領域(Partitions)を選択する。この場合、領域4は、少なくとも領域15、領域16、領域19、および領域20の4つの領域に分割される。
 画像符号化装置は、さらに、Level-2の分割領域(Partitions)に対して同様の領域分割を繰り返す。画像符号化装置は、分割が行われなくなるか、若しくは、予め定められたSCUのLevel(分割深度)に達するまでこのような領域分割を繰り返す。
 このような領域分割の結果、例えば、図19のA4に示されるようなQuad-tree構造が得られると、画像符号化装置は、このQuad-tree構造における各領域を、最終的なQuad-tree領域(Partitions)として決定する。
 このように決定されたQuad-tree構造の領域毎に、コスト関数値を用いて、オフセットのモード(オフセットを行うか否かを含む)の選択が行われる。つまり、画像符号化装置は、各領域について、2種類のバンドオフセット、6種類のエッジオフセット、およびオフセットなしのすべてのモードについてのコスト関数値を算出し、そのコスト関数値が最小のモードを選択する。
 図19の例の場合、白矢印の右側に示されるように、領域1に対してEO(4)、すなわち、エッジオフセットのうちの4種類目が決定されている。領域7に対しては、OFF、すなわち、オフセットなしが決定されており、領域8に対しては、EO(2)、すなわち、エッジオフセットのうちの2種類目が決定されている。領域11および12に対しては、OFF、すなわち、オフセットなしが決定されている。
 また、領域13に対しては、BO(1)、すなわち、バンドオフセットのうちの1種類目が決定されており、領域14に対しては、EO(2)、すなわち、エッジオフセットのうちの2種類目が決定されている。領域17に対しては、BO(2)、すなわち、バンドオフセットのうちの2種類目が決定されており、領域18に対しては、BO(1)、すなわち、バンドオフセットのうちの1種類目が決定されている。領域4に対しては、EO(1)、すなわち、エッジオフセットのうちの1種類目が決定されている。
 次に、図20を参照して、エッジオフセットの詳細について説明する。
 エッジオフセットにおいては、処理対象である注目画素の画素値(注目画素値)と、注目画素周辺に位置する(例えば隣接する)周辺画素の画素値(周辺画素値)の比較が行われ、これに対応したカテゴリに対して、オフセット値が伝送されることになる。
 エッジオフセットには、図20のA乃至Dに示される4つの1次元パターンと、図20のEおよびFに示される2つの2次元パターンが存在し、それぞれ、図21に示されるカテゴリでオフセットが伝送される。
 図20のAは、注目画素Cに対して、周辺画素が左右の1次元に配置されている、すなわち、図20のAのパターンに対して0度をなしている1-D,0-degreeパターンを表している。図20のBは、注目画素Cに対して、周辺画素が上下の1次元に配置されている、すなわち、図20のAのパターンに対して90度をなしている1-D,90-degreeパターンを表している。
 図20のCは、注目画素Cに対して、周辺画素が左上と右下の1次元に配置されている、すなわち、図20のAのパターンに対して135度をなしている1-D,135-degreeパターンを表している。図20のDは、注目画素Cに対して、周辺画素が右上と左下の1次元に配置されている、すなわち、図20のAのパターンに対して45度をなしている1-D,135-degreeパターンを表している。
 図20のEは、注目画素Cに対して、周辺画素が上下左右2次元に配置されている、すなわち、注目画素Cに対して交差している2-D,crossパターンを表している。図20のFは、注目画素Cに対して、周辺画素が右上左下、左上右下の2次元に配置されている、すなわち、注目画素Cに対して斜めに交差している2-D,diagonalパターンを表している。
 図21のAは、1次元パターンの規則一覧表(Classification rule for 1-D patterns)を示している。図20のA乃至図20のDのパターンは、図21のAに示されるような5種類のカテゴリに分類され、そのカテゴリによりオフセットが算出されて、復号部に送られる。
 注目画素Cの画素値が2つの周辺画素の画素値より小さい場合、カテゴリ1に分類される。注目画素Cの画素値が一方の周辺画素の画素値より小さくて、他方の周辺画素の画素値と一致する場合、カテゴリ2に分類される。注目画素Cの画素値が一方の周辺画素の画素値より大きくて、他方の周辺画素の画素値と一致する場合、カテゴリ3に分類される。注目画素Cの画素値が2つの周辺画素の画素値より大きい場合、カテゴリ4に分類される。以上のどれでもない場合、カテゴリ0に分類される。
 図21のBは、2次元パターンの規則一覧表(Classification rule for 2-D patterns)を示している。図20のEおよび図20のFのパターンは、図21のBに示されるような7種類のカテゴリに分類され、そのカテゴリによりオフセットが復号部に送られる。
 注目画素Cの画素値が4つの周辺画素の画素値より小さい場合、カテゴリ1に分類される。注目画素Cの画素値が3つの周辺画素の画素値より小さくて、4番目の周辺画素の画素値と一致する場合、カテゴリ2に分類される。注目画素Cの画素値が3つの周辺画素の画素値より小さくて、4番目の周辺画素の画素値より大きい場合、カテゴリ3に分類される。
 注目画素Cの画素値が3つの周辺画素の画素値より大きくて、4番目の周辺画素の画素値より小さい場合、カテゴリ4に分類される。注目画素Cの画素値が3つの周辺画素の画素値より大きくて、4番目の周辺画素の画素値と一致する場合、カテゴリ5に分類される。注目画素Cの画素値が4つの周辺画素の画素値より大きい場合、カテゴリ6に分類される。以上のどれでもない場合、カテゴリ0に分類される。
 以上のように、エッジオフセットにおいては、1次元パターンの方が、隣接2画素のみに対する比較を行えばよいので、演算量は低くなる。なお、high efficiency 符号化条件においては、low delay 符号化条件に比して、1bitオフセットの値を高精度にして、復号側へ送られる。
 このようにエッジオフセットにおいては、注目画素を処理する際にその周辺画素が参照される。したがって、例えば、図7乃至図10を参照して説明したSMLの算出の場合と同様に、参照される周辺画素が注目スライスと異なるスライスにある場合、その周辺画素のスライスの処理が完了するまで注目画素のエッジオフセットのオフセット値を算出することができなくなってしまう。
 例えば、処理対象の注目画素が注目スライスの端に存在し、参照される周辺画素が他のスライス(周辺スライス)に位置する場合、その周辺スライスの処理が終了するまで、注目画素(若しくは注目スライス全体)の処理を開始することができない。このような場合、周辺スライスと注目スライスとを互いに独立に処理することができない。したがって、例えば、周辺スライスと注目スライスとを並列に処理することができず、処理時間が増大し、スループットが低減する恐れがあった。
 また、このようなスライス間の境界に限らず、例えば、注目画素がピクチャ端に存在する場合、参照される周辺画素が、ピクチャ外(有効画素領域外)に位置する(すなわち事実上存在しない)ことも考えられる。このような場合も、周辺画素は、他のスライスに存在する場合と同様に、利用不可能(unavailable)である。
 このような場合、注目画素が正常に処理されず、エラー処理等による処理時間の増大を招く恐れがあった。また、復号画像の画質劣化の一因となる恐れもあった。
 そこで、このような処理時間の増大を抑制するために、各スライスを互いに独立に処理することができるように、本技術を適用することにより、注目スライス外を参照せずに注目画素の適応オフセット処理を行うようにする。
 [画像符号化装置]
図22は、画像符号化装置の主な構成例を示すブロック図である。
 図22に示される画像符号化装置300は、基本的に図1の画像符号化装置100と同様の画像処理装置であり、H.264及びMPEG4 Part10(AVC)符号化方式のように、予測処理を用いて画像データを符号化する。
 図22に示されるように画像符号化装置300は、基本的に画像符号化装置100と同様の構成を有し、同様の処理を行う。ただし、画像符号化装置300は、画像符号化装置100の構成に加え、適応オフセット部301と周辺画素値制御部302を有する。なお、図22においては、フィルタ係数制御部121を省略しているが、図1と同様にフィルタ係数制御部121を設けるようにしてももちろんよい。
 図22の例の場合、デブロックフィルタ111は、フィルタ処理後の復号画像を適応オフセット部301に供給する。
 適応オフセット部301は、そのデブロックフィルタ処理結果(ブロック歪みの除去が行われた再構成画像)に対して、quad-tree構造化するように領域分割を行い、各領域毎に適応オフセット処理(適応オフセットフィルタ(Picture Quality Adaptive Offset:PQAO)処理)を行う。その際、適応オフセット部301は、注目画素の処理の際に周辺画素値を参照するモード(例えばエッジオフセットモード)において、周辺画素値制御部302の制御により利用可能化された周辺画素値を用いて注目画素値のオフセット値を算出する。
 適応オフセット部301は、各モードでオフセット処理結果のコスト関数値を求め、値が最小のモードを選択する。適応オフセット部301は、選択したモードでオフセット処理を行い、オフセット処理結果を適応ループフィルタ112に供給する。また、適応オフセット部301は、領域分割結果を示すquad-tree構造や、モード選択に関する情報である選択情報(PQAO Info.)を可逆符号化部106に供給し、復号側に伝送させる。
 なお、適応オフセット部301は、このオフセット処理を、スライス毎に行う。より具体的には、適応オフセット部301は、このオフセット処理を、スライスを複数に分割した所定の部分領域(例えばLCU)毎に行う。つまり、適応オフセット部301は、各スライスを互いに独立に処理することができる。
 適応ループフィルタ112は、適応オフセット処理結果に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理を行うことにより画質改善を行う。なお、図22においては、適応ループフィルタ112から可逆符号化部106への矢印を省略しているが、適応ループフィルタ112がalf_flagやフィルタ係数等を可逆符号化部106に供給して、復号側に伝送させるようにしてもよい。
 可逆符号化部106は、例えば、適応オフセット部301から供給されたこれらの情報を符号化し、ビットストリームに含めて復号側に送信する。この方法を用いることで、符号化効率を向上させることができる。
 周辺画素値制御部302は、適応オフセット部301がオフセット値を算出する際に参照する周辺画素値を制御する。つまり、周辺画素値制御部302は、適応オフセット部301において参照される周辺画素値が参照不可能(unavailable)である場合、その値の代わりに参照可能な(availableな)値を周辺画素値として設定する(参照不可能な値を参照可能な値に置き換える)。 
 ここで、参照不可能とは、参照される周辺画素が、処理対象である注目スライス(注目画素が存在するスライス)に存在しない場合のことを示す。例えば、周辺画素が注目スライス以外のスライスに位置する場合や、ピクチャ外に位置する(すなわち存在しない)場合である。
 例えば、周辺画素値制御部302は、利用不可能(unavailable)な周辺画素の画素値の代わりに、例えば、画素間の画素値の相関性を利用して、その周辺画素の近傍に位置する利用可能(available)な画素(周辺画素に隣接する画素を含む)の画素値が、周辺画素値として採用されるようにしてもよい。さらに、その近傍の画素として、注目画素が採用されるようにしてもよい。
 また、演算を容易にするために、利用不可能(unavailable)な周辺画素の画素値の代わりに、所定の固定値が用いられるようにしてもよい。
 もちろん、これら以外の方法であっても良い。例えば、1つ若しくは複数の他の利用可能(available)な画素の画素値等を用いた所定の演算の結果を、利用不可能(unavailable)な周辺画素の画素値の代わりとするようにしてもよい。
 周辺画素値制御部302は、適応オフセット部301から、注目画素の位置(座標)に関する情報を取得する。また、周辺画素値制御部302は、可逆符号化部106から、LCUの位置(座標)に関する情報や、スライス境界(スライス間境界およびピクチャ端等)に関する情報等を含むアドレス情報を取得する。
 周辺画素値制御部302は、そのアドレス情報に基づいて、適応オフセット部301に指定された注目画素に対応する周辺画素値が利用可能であるか否か(availableであるか否か)を判定する。例えば、周辺画素値が利用可能である場合、周辺画素値制御部302は、その周辺画素の画素値を、適応オフセット部301により参照される周辺画素値として設定し、その情報(周辺画素指定情報)を適応オフセット部301に供給する。
 また、例えば、周辺画素値が利用不可能である場合、周辺画素値制御部302は、その周辺画素値の代わりとする値を決定し、その値を適応オフセット部301により参照される周辺画素値として設定し、その情報(周辺画素指定情報)を適応オフセット部301に供給する。
 適応オフセット部301は、周辺画素値制御部302によって指定された周辺画素値を用いて処理を行うことにより、常に参照可能な周辺画素値を用いて適応オフセット処理を行うことができる。これにより画像符号化装置300は、スライス毎の処理の並列化を実現することができ、適応オフセット処理における不要な遅延時間の発生等による処理時間の増大を抑制することができる。
 [適応オフセット部]
 図23は、適応オフセット部301の主な構成例を示すブロック図である。図23に示されるように、適応オフセット部301は、quad-tree構造決定部311、注目領域選択部312、オフセット算出部313、オフセット部314、および画素バッファ315を有する。
 quad-tree構造決定部311は、スライスを複数に分割する所定の領域(例えばLCU)を、例えば図19を参照して説明したように領域分割し、quad-tree構造化する。なお、適応オフセット部301が行う適応オフセット処理は、任意の領域毎に行われるようにすることが可能であるが、以下においては、LCU毎に行われるものとする。この場合、LCUがquad-tree構造化(領域分割)されて得られた各部分領域は、CUである。
 quad-tree構造決定部311は、LCUをquad-tree構造化し、各CUを設定すると、そのquad-tree構造を示す情報と、デブロック後の画素値とを注目領域選択部312に供給する。
 注目領域選択部312は、供給されたquad-tree構造に基づいて、各CUを1つずつ順に処理対象として選択する。注目領域選択部312は、最終的にLCU内の全てのCUを処理対象として選択する。注目領域選択部312は、quad-tree構造決定部311から供給されたquad-tree構造と、指定した注目領域(注目CU)を示す注目領域指定情報とをオフセット算出部313に供給する。また、注目領域選択部312は、注目領域のデブロック後の画素値をオフセット算出部313に供給する。なお、注目領域選択部312は、必要に応じて、注目領域以外のデブロック後の画素値もオフセット算出部313に供給する。
 オフセット算出部313は、注目領域選択部312から供給された注目領域指定情報により指定される注目領域の各画素のオフセット値を算出する。オフセット算出部313は、任意の数のモードでオフセット値を算出することができる。オフセット算出部313は、各モードのオフセット処理結果のコスト関数値を求め、その値が最小のモードを選択する。
 その際、オフセット算出部313は、周辺画素値を参照するモードにおいて、周辺画素値制御部302により指定される周辺画素の画素値を用いて処理を行う。
 オフセット算出部313は、選択したモードのオフセット値を、quad-tree構造とともに、オフセット部314に供給する。また、オフセット算出部313は、モードの選択結果等を示す選択情報(PQAOinfo)を、quad-tree構造とともに、可逆符号化部106に供給し、符号化させる。
 図23に示されるように、オフセット算出部313は、オフセット無し演算部321、バンドオフセット演算部322、エッジオフセット演算部323、およびオフセット選択部324を有する。
 オフセット算出部313には、適応オフセットの種類(モード)として、バンドオフセットと呼ばれる2種類のモード、エッジオフセットと呼ばれる6種類のモード、さらに、オフセットを適応しないモードが予め用意されているものとする。適応オフセットのモードの数や種類は任意である。例えば、上述した以外のモードが含まれているようにしてもよいし、上述したモードの一部または全部が省略されるようにしても良い。オフセット算出部313は、選択肢となる各モードに対応する処理部を有する。
 オフセット無し演算部321は、オフセットを適応しないモードでコスト関数値を算出する。オフセット無し演算部321は、算出したコスト関数値を、quad-tree構造とともにオフセット選択部324に供給する。
 バンドオフセット演算部322は、バンドオフセットの2種類の各モードについて、オフセット値を求め、そのオフセット値を用いてオフセット処理結果のコスト関数値をさらに求める。バンドオフセット演算部322は、バンドオフセットの2種類のモードのそれぞれについて、算出したオフセット値とコスト関数値とを、quad-tree構造とともにオフセット選択部324に供給する。
 エッジオフセット演算部323は、エッジオフセットの6種類の各モードについて、オフセット値を求め、そのオフセット値を用いてオフセット処理結果のコスト関数値をさらに求める。
 その際、エッジオフセット演算部323は、周辺画素値制御部302に、注目画素や周辺画素に関する情報を提供する。周辺画素値制御部302は、それらの情報や、可逆符号化部106から取得したアドレス情報に基づいて、参照する周辺画素を指定し、その周辺画素指定情報をエッジオフセット演算部323に供給する。エッジオフセット演算部323は、周辺画素指定情報により指定される参照可能な周辺画素値を用いてオフセット値の算出を行う。
 エッジオフセット演算部323は、エッジオフセットの6種類のモードのそれぞれについて、算出したオフセット値とコスト関数値とを、quad-tree構造とともにオフセット選択部324に供給する。
 オフセット選択部324は、採用するモードを選択する。オフセット選択部324は、供給された各モードのコスト関数値を比較し、その値が最小のモードを選択する。オフセット選択部324は、選択したモードのオフセット値を、quad-tree構造とともにオフセット部314に供給する。また、オフセット選択部324は、選択したモード等を示す選択情報(PQAOinfo)を、quad-tree構造とともに可逆符号化部106に供給し、符号化させ、復号側に伝送させる。
 オフセット部314は、注目領域選択部312から注目領域のデブロック後画素値を取得し、オフセット算出部313(オフセット選択部324)から供給されるオフセット値を用いて、そのデブロック後画素値をオフセット処理する。オフセット部314は、得られたオフセット処理後画素値を画素バッファ315に供給し、記憶させる。
 画素バッファ315は、所定のタイミングにおいて、若しくは、外部からの要求に従って、自身が記憶しているオフセット処理後画素値を適応ループフィルタ112に供給する。
 [エッジオフセット演算部および周辺画素値制御部]
 図24は、エッジオフセット演算部323および周辺画素値制御部302の主な構成例を示すブロック図である。
 図24に示されるように、エッジオフセット演算部323は、バッファ331、パターン選択部332、注目画素選択部333、カテゴリ決定部334、オフセット値算出部335、オフセット部336、およびコスト関数算出部337を有する。
 バッファ331は、注目領域選択部312から供給される、quad-tree構造および注目領域指定情報を取得するとともに、デブロック後画素値を取得して記憶する。デブロック後画素値は、注目画素値若しくは周辺画素値として使用されなくなるまで保持される。バッファ331は、注目領域の画素値を取得すると、パターン選択部332を制御し、処理を実行させる。また、バッファ331は、注目領域に関する情報(領域情報)を注目画素選択部333に供給する。さらに、バッファ331は、自身が記憶しているデブロック画素値を、カテゴリ決定部334やオフセット部336に供給する。
 パターン選択部332は、図20を参照して説明したような複数の周辺画素のパターンの中から1つを順次選択する。すなわち、パターン選択部332は、エッジオフセットの6種類のモードを1つずつ選択する。パターン選択部332は、全てのパターンを選択するまで、このような選択を繰り返す。パターン選択部332は、選択したパターンを示すパターン指定情報を注目画素選択部333および周辺画素値制御部302(周辺画素参照可否判定部341)に供給する。
 注目画素選択部333は、バッファ331から注目領域に関する情報(領域情報)を取得し、注目領域の中から、処理対象とする注目画素を、1つずつ選択する。注目画素選択部333は、注目領域内の全ての画素を選択するまで、このような選択を繰り返す。注目画素選択部333は、その注目画素を示す注目画素指定情報を、パターン選択部332から供給されたパターン指定情報とともに、カテゴリ決定部334に供給する。また、注目画素選択部333は、注目画素指定情報を、周辺画素値制御部302(周辺画素参照可否判定部341)に供給する。
 カテゴリ決定部334は、注目画素指定情報により指定される注目画素について、例えば図21に示される表に基づいて、カテゴリを決定する。つまり、カテゴリ決定部334は、周辺画素値および注目画素値に基づいてカテゴリを決定する。なお、カテゴリの分類方法は任意であり、図21の例に限らない。このカテゴリ決定の際、カテゴリ決定部334は、周辺画素値制御部302(周辺画素値決定部342)から供給される周辺画素指定情報により指定される周辺画素の画素値を、周辺画素値として利用する。
 周辺画素値制御部302(周辺画素値決定部342)は、参照可能な値を周辺画素値として指定する。したがって、周辺画素指定情報により指定される周辺画素の画素値は、常に参照可能である。したがって、カテゴリ決定部334は、他の画素の処理が終了するまで待機する必要なく、注目画素のカテゴリを決定することができる。つまり、カテゴリ決定部334は、適応オフセット処理における不要な処理時間の増大を抑制することができる。
 カテゴリ決定部334は、注目画素の画素値(デブロック後画素値)と、周辺画素指定情報により指定される参照可能な画素(例えば注目画素)の画素値(デブロック後画素値)とをバッファ331から取得する。カテゴリ決定部334は、それらの画素値を用いてカテゴリを決定する。カテゴリ決定部334は、決定したカテゴリを示すカテゴリ指定情報を、注目画素選択部333から供給された注目画素指定情報とともに、オフセット値算出部335に供給する。
 オフセット値算出部335は、供給されたカテゴリ指定情報により指定されるカテゴリのオフセット値を算出する。例えば、カテゴリ毎にオフセット値が予め設定されていても良いし、カテゴリ毎にオフセット値の算出方法が予め設定されていても良い。オフセット値算出部335は、算出したオフセット値を、カテゴリ決定部334から供給された注目画素指定情報とともに、オフセット部336に供給する。
 オフセット部336は、供給された注目画素指定情報により指定される注目画素の画素値(デブロック後画素値)をバッファ331から取得する。オフセット部336は、その注目画素値を、供給されたオフセット値を用いてオフセット処理し、オフセット後画素値を生成する。オフセット部336は、また、バッファ331からquad-tree構造を取得する。オフセット部336は、生成したオフセット後画素値を、オフセット値算出部335から供給されたオフセット値、および、バッファ331から取得したquad-tree構造とともにコスト関数算出部337に供給する。
 注目画素選択部333乃至オフセット部336は、注目領域内の全ての画素(若しくは予め定められた一部の画素の全て)について、上述した処理を繰り返し、注目領域の全ての画素のオフセット後画素値を求め、オフセット値およびquad-tree構造とともにコスト関数算出部337に供給する。
 コスト関数算出部337は、オフセット後画素値を用いて、注目領域のコスト関数値を算出する。コスト関数算出部337は、算出したコスト関数値を、オフセット部336から供給されたオフセット値およびquad-tree構造とともにオフセット選択部324に供給する。
 パターン選択部332乃至コスト関数算出部337は、エッジオフセットモードの全ての種類(タイプ)について、上述した処理を繰り返し、各モード(各タイプ)のコスト関数値をオフセット選択部324に供給する。
 また、図24の例の場合、周辺画素値制御部302は、周辺画素参照可否判定部341および周辺画素値決定部342を有する。
 周辺画素参照可否判定部341は、可逆符号化部106から、注目LCUやスライス境界等に関するアドレス情報を取得するとともに、パターン選択部332からパターン指定情報を、注目画素選択部333から注目画素指定情報をそれぞれ取得する。周辺画素参照可否判定部341は、注目画素指定情報から注目画素の位置を把握し、さらに、パターン指定情報からその注目画素に対する周辺画素の位置を把握する。周辺画素参照可否判定部341は、その周辺画素の位置と、アドレス情報により示されるスライス境界等を比較し、その比較結果に基づいて、周辺画素が参照可能であるか否かを判定する。周辺画素参照可否判定部341は、その判定結果を周辺画素値決定部342に供給する。
 周辺画素値決定部342は、周辺画素参照可否判定部341から供給される判定結果に基づいて、周辺画素を決定する。例えば、判定結果において、パターン指定情報により特定される周辺画素が参照可能(available)であるとされている場合、周辺画素値決定部342は、そのパターン指定情報により特定される周辺画素を周辺画素に決定する。また、例えば、判定結果において、パターン指定情報により特定される周辺画素が参照不可能(unavailable)であるとされている場合、周辺画素値決定部342は、参照可能(available)な画素(例えば注目画素)を周辺画素に決定する。この参照不可能(unavailable)な画素値の代わりとする値は上述したように任意であり、例えば、固定値や演算式等の画素値以外であってもよい。その場合、周辺画素値決定部342は、画素を指定する代わりにそれらの情報(固定値や演算式等)を指定するようにしてもよい。周辺画素値決定部342は、自身が決定した周辺画素(若しくはそれに相当する情報)を示す周辺画素指定情報を生成し、カテゴリ決定部334に供給する。
 このように周辺画素を制御することにより、周辺画素値制御部302は、周辺画素値を常に参照可能な値にすることができる。したがって、エッジオフセット演算部323が不要な処理時間の増大を抑制することができるようにすることができる。
 以上においては、エッジオフセット演算部323が周辺画素値制御部302により指定される周辺画素を利用する場合について説明したが、適応オフセット部301は、エッジオフセット以外に、周辺画素値を参照して注目画素の処理を行うモードを有することもできる。その場合、エッジオフセット演算部323の、そのモードに対応する処理部が、図24に示されるエッジオフセット演算部323の場合と同様に、周辺画素値制御部302により指定される周辺画素を利用するようにすればよい。
 以上のように画像符号化装置300は、適応オフセット処理におけるスライス毎の処理の独立性を確保し、不要な処理時間の増大を抑止することができる。
 [符号化処理の流れ]
 次に、以上のような画像符号化装置300により実行される各処理の流れについて説明する。最初に、図25のフローチャートを参照して、符号化処理の流れの例を説明する。なお、図25に示される各ステップの処理は、それぞれの処理単位毎に行われる。したがって、各処理の処理単位は互いに等しいとは限らない。したがって、各データは、以下に説明するような手順で処理されるが、実際に、各ステップの処理の処理順が、以下に説明するような順になるとは限らない。
 ステップS301乃至ステップS312の各処理は、図12のステップS101乃至ステップS112の各処理の場合と同様に実行される。
 デブロックフィルタ処理が行われると、ステップS313において、適応オフセット部301は、適応オフセット処理を行う。
 ステップS315乃至ステップS318の各処理は、図12のステップS114乃至ステップS117の各処理の場合と同様に実行される。ステップS318の処理が終了すると、符号化処理が終了される。
 [適応オフセット処理の流れ]
 次に、図26のフローチャートを参照して、図25のステップS313において実行される適応オフセット処理の流れの例を説明する。なお、適応オフセット処理は、スライスが複数に分割された所定の部分領域(例えばLCU)毎に行われる。以下においては、適応オフセット処理がLCU毎に行われるものとする。
 適応オフセット処理が開始されると、quad-tree構造決定部311は、ステップS331において、処理対象である注目LCUのquad-tree構造を決定する。
 ステップS332において、注目領域選択部312は、そのLCU内のquad-tree構造の各領域の中から、所定順に1つを、処理対象とする注目領域として選択する。
 ステップS333において、オフセット無し演算部321は、オフセット無しモードでオフセット値を求め、そのオフセット値を用いてオフセット処理を行い、コスト関数値を算出する。
 ステップS334において、バンドオフセット演算部322は、バンドオフセットモードでオフセット値を求め、そのオフセット値を用いてオフセット処理を行い、コスト関数値を算出する。なお、以上に説明した例においては、バンドオフセットのモードは2種類(2タイプ)存在する。したがって、バンドオフセット演算部322は、その2種類のモード(2タイプ)のそれぞれについて、コスト関数値を算出する。
 ステップS335において、エッジオフセット演算部323は、エッジオフセットモードでオフセット値を求め、そのオフセット値を用いてオフセット処理を行い、コスト関数値を算出する。この処理の詳細については後述する。なお、以上に説明した例においては、エッジオフセットのモードは6種類(6タイプ)存在する。したがって、エッジオフセット演算部323は、その6種類のモード(6タイプ)のそれぞれについて、コスト関数値を算出する。
 オフセット算出部313は、このように各モードでコスト関数値を算出する。すなわち、オフセット算出部313が、その他のモードに対応する場合、ステップS333乃至ステップS335の各処理に、その他のモードの処理が追加される。
 全てのモードでコスト関数値が算出されると、ステップS336において、オフセット選択部324は、コスト関数値が最小のモード(オフセットタイプ)を選択する。
 ステップS337において、オフセット選択部324は、ステップS331において決定された注目LCUのquad-tree構造を示す情報であるquad-tree構造、および、ステップS336における選択結果(選択されたオフセットタイプに関する情報も含む)を示す情報である選択情報を復号側に伝送させる。
 ステップS338において、オフセット部314は、ステップS336において選択されたオフセットタイプのオフセット値を用いて、注目領域のデブロック画素値をオフセット処理する。ステップS339において、画素バッファ315は、ステップS338の処理により得られたオフセット処理後の画素値を記憶する。
 ステップS340において、注目領域選択部312は、注目LCU内の全ての領域(CU)を処理したか否かを判定し、未処理の領域が存在すると判定した場合、処理をステップS332に戻し、それ以降の処理を繰り返す。また、ステップS340において、未処理の領域が存在しないと判定した場合、注目領域選択部312は、適応オフセット処理を終了し、処理を図25に戻す。
 [エッジオフセット処理の流れ]
 次に、図27のフローチャートを参照して、図26のステップS335において実行されるエッジオフセット処理の流れの例を説明する。
 エッジオフセット処理が開始されると、バッファ331は、ステップS361において、デブロック後画素値を記憶する。ステップS362において、パターン選択部332は、処理対象とするパターンを選択する。ステップS363において、注目画素選択部333は、注目領域の画素の中から注目画素を選択する。
 ステップS364において、周辺画素参照可否判定部341は、注目画素近傍の領域に関する各種アドレス情報を取得する。ステップS365において、周辺画素参照可否判定部341は、ステップS364において取得した情報に基づいて、ステップS363において選択された注目画素の、ステップS362において指定されたパターンにおける周辺画素が参照可能であるか否かを判定する。
 周辺画素が参照可能でないと判定した場合、周辺画素参照可否判定部341は、処理をステップS366に進める。ステップS366において、周辺画素値決定部342は、注目画素値を周辺画素値に指定する。ステップS366の処理が終了すると、周辺画素値決定部342は、処理をステップS368に進める。
 また、ステップS365において、周辺画素が参照可能であると判定した場合、周辺画素参照可否判定部341は、処理をステップS367に進める。ステップS367において、周辺画素値決定部342は、その参照可能な周辺画素の画素値を周辺画素値に指定する。ステップS367の処理が終了すると、周辺画素値決定部342は、処理をステップS368に進める。
 ステップS368において、カテゴリ決定部334は、注目画素値と、ステップS366若しくはステップS367において決定された周辺画素値とに基づいて、カテゴリを決定する。
 ステップS369において、オフセット値算出部335は、ステップS368において決定されたカテゴリに対応するオフセット値を決定(算出および選択を含む)する。ステップS370において、オフセット部336は、ステップS369において決定されたオフセット値を用いて、注目画素値をオフセット処理する。
 ステップS371において、注目画素選択部333は、全ての画素を処理したか否かを判定する。注目領域内に未処理の画素が存在すると判定した場合、注目画素選択部333は、処理をステップS363に戻し、それ以降の処理を繰り返す。
 また、ステップS371において、注目領域内の全ての画素を処理したと判定した場合、注目画素選択部333は、処理をステップS372に進める。
 ステップS372において、コスト関数算出部337は、注目領域のオフセット後画素値を用いてコスト関数値を算出する。ステップS373において、パターン選択部332は、予め用意された周辺画素のパターン(例えば、図20)を全て処理したか(全てのタイプを処理したか)否かを判定する。未処理のパターンが存在すると判定した場合、パターン選択部332は、処理をステップS362に戻し、それ以降の処理を繰り返す。また、ステップS373において、全てのパターンを処理したと判定した場合、パターン選択部332は、エッジオフセット処理を終了し、処理を図26に戻す。
 以上のように各処理を実行することにより、常に参照可能な周辺画素を用いて適応オフセット処理を行うことができるので、画像符号化装置300は、適応オフセット処理におけるスライス毎の処理の独立性を確保し、不要な処理時間の増大を抑止することができる。
 <4.第4の実施の形態> [画像復号装置]
 図28は、画像復号装置の主な構成例を示すブロック図である。図28に示される画像復号装置400は、画像符号化装置300が生成した符号化データを、その符号化方法に対応する復号方法で復号する。
 したがって、画像復号装置400は、図28に示されるように、図15の画像復号装置200と基本的に同様の装置であり、基本的に同様の構成を有し、同様の処理を行う。ただし、図28に示されるように、画像復号装置400は、画像復号装置200の構成に加え、適応オフセット部401を有する。また、フィルタ係数制御部221は省略される(有していても良い)。
 デブロックフィルタ206は、フィルタ処理後の復号画像データを適応オフセット部401に供給する。
 適応オフセット部401は、デブロックフィルタ処理後の復号画像に対して、適応オフセット部301の場合と基本的に同様の適応オフセット処理を行う。ただし、適応オフセット部401は、可逆復号部202により復号されて抽出された、quad-tree構造や選択情報(PQAOinfo)を用いてオフセット処理を行う。
 これらの情報は、符号化側(画像符号化装置300)から供給される。すなわち、適応オフセット部401は、適応オフセット部301が用いたのと同様のquad-tree構造で注目LCUを処理する。また、適応オフセット部401は、適応オフセット部301が用いたのと同様のモード(オフセットタイプ、すなわち、オフセット値)を用いて、オフセット処理を行う。つまり、適応オフセット部401は、適応オフセット部301に対応する方法でオフセット処理を行う。適応オフセット部401は、オフセット処理後の復号画像を適応ループフィルタ207に供給する。
 適応ループフィルタ207は、オフセット処理後の復号画像に対して、ウィナーフィルタ(Wiener Filter)を用いてループフィルタ処理(クラス分類ALF)を行うことにより画質改善を行う。
 [適応オフセット部]
 図29は、適応オフセット部401の主な構成例を示すブロック図である。図29に示されるように、適応オフセット部401は、quad-tree構造バッファ411、選択情報バッファ412、オフセット部413、および画素バッファ414を有する。
 quad-tree構造バッファ411は、可逆復号部202から供給されるquad-tree構造(例えばビットストリームに含められて符号化側の装置から供給されたquad-tree構造)を取得し、記憶する。quad-tree構造バッファ411は、所定のタイミングにおいて、若しくは、外部からの要求に従って、自身が記憶しているquad-tree構造をオフセット部413に供給する。
 選択情報バッファ412は、可逆復号部202から供給される選択情報(PQAOinfo)(例えばビットストリームに含められて符号化側の装置から供給された選択情報(PQAOinfo))を取得し、記憶する。選択情報バッファ412は、所定のタイミングにおいて、若しくは、外部からの要求に従って、自身が記憶している選択情報(PQAOinfo)をオフセット部413に供給する。
 オフセット部413は、quad-tree構造バッファ411から供給されるquad-tree構造、および、選択情報バッファ412から供給される選択情報(PQAOinfo)を用いて、デブロックフィルタ206から供給される注目LCUのデブロック後画素値に対してオフセット処理を行う。つまり、オフセット部413は、選択情報(PQAOinfo)により特定されるオフセットタイプおよびオフセット値を用いて、quad-tree構造に従って、注目LCUを領域(CU)毎にオフセット処理する。オフセット部413は、オフセット処理後の画素値を画素バッファ414に供給し、記憶させる。
画素バッファ414は、オフセット部413から供給されるオフセット処理後の画素値を記憶し、所定のタイミングにおいて、若しくは、外部からの要求に従って、自身が記憶しているそのオフセット処理後の画素値を適応ループフィルタ207に供給する。
 したがって、適応オフセット部401は、画像符号化装置300の適応オフセット部301に対応する方法で適応オフセット処理を行うことができる。したがって、適応オフセット部401は、スライス毎に独立して適応オフセット処理を行うことができる。したがって、画像復号装置400は、適応オフセット処理におけるスライス毎の処理の独立性を確保し、不要な処理時間の増大を抑止することができる。
 [復号処理の流れ]
 次に、図30のフローチャートを参照して、以上のような画像復号装置400により実行される復号処理の流れの例を説明する。
 復号処理が開始されると、ステップS401乃至ステップS408の各処理が、図17のステップS201乃至S208の各処理と同様に実行される。ステップS409において、適応オフセット部401は、適応オフセット処理を行う。この処理の詳細は後述する。ステップS410乃至ステップS413の各処理は、図17のステップS209乃至ステップS212の各処理と同様に実行される。
 [適応オフセット処理の流れ]
 次に、図31のフローチャートを参照して、図30のステップS409において実行される適応オフセット処理の流れの例を説明する。
 適応オフセット処理が開始されると、ステップS431において、quad-tree構造バッファ411は、quad-tree構造を記憶する。ステップS432において、選択情報バッファ412は、選択情報を記憶する。
 ステップS433において、オフセット部413は、quad-tree構造に基づいて、注目LCUの中から注目領域を選択し、ステップS434において、その注目領域のデブロック後画素値を、選択情報により特定されるオフセット値を用いてオフセット処理する。
 ステップS435において、画素バッファ414は、ステップS434の処理により得られたオフセット処理後の画素値を記憶する。
 ステップS436において、オフセット部413は、注目LCU内の全ての領域(CU)を処理したか否かを判定し、未処理の領域が存在すると判定した場合、処理をステップS433に戻し、それ以降の処理を繰り返す。
 また、ステップS436において、全ての領域を処理したと判定した場合、オフセット部413は、適応オフセット処理を終了し、処理を図30に戻す。
 以上のように、各処理を実行することにより、画像復号装置400は、適応オフセット処理におけるスライス毎の処理の独立性を確保し、不要な処理時間の増大を抑止することができる。
 [その他の例]
 なお、以上においては、位置的要因により周辺画素が参照不可能(unavailable)な場合について説明したが、参照不可能(unavailable)となる理由は任意であり、位置的要因に限定されない。すなわち、他の理由で参照不可能であれば、周辺画素値が注目スライス内に存在していていも良い。
 また、周辺画素が注目スライスに含まれない注目画素に対する適応オフセット処理を省略するようにしてもよい。その場合、画像符号化装置300および画像復号装置400ともに、周辺画素が注目スライスに含まれない注目画素に対する適応オフセット処理を省略する。
 また、周辺画素のパターンは、任意であり、図20の例に限定されない。したがって、周辺画素の位置および数は任意である。
 また、画像符号化装置300(例えば、適応オフセット部301)が、適応オフセット処理を、スライス毎に独立して行うか否かを制御するフラグをスライス毎に生成し、画像復号装置400に伝送させるようにしてもよい。
 このフラグがセットされた(例えば値が1の)スライスにおいては、適応オフセット部301は、上述したように、利用可能な画素の情報のみを用いて、適応オフセット処理をスライス毎に独立して行う。これに対して、フラグがセットされていない(例えば値が0の)スライスにおいては、適応オフセット部301は、周辺画素が他のスライスに属する場合であっても、全ての周辺画素の画素値が揃ってから適応オフセット処理を行う。
 画像復号装置400の適応オフセット部401は、画像符号化装置300から供給されたこのフラグの値が1の場合、注目スライスを、他のスライスとは独立して適応オフセット処理を行い、画像符号化装置300から供給されたこのフラグの値が0の場合、注目スライスを、他のスライスとは独立させずに適応オフセット処理を行う。
 なお、本技術は、例えば、MPEG、H.26x等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置および画像復号装置に適用することができる。また、本技術は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置および画像復号装置に適用することができる。さらに、本技術は、それらの画像符号化装置および画像復号装置などに含まれる動き予測補償装置にも適用することができる。
 <5.第5の実施の形態>
 [パーソナルコンピュータ]
 上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。
 図32において、パーソナルコンピュータ500のCPU(Central Processing Unit)501は、ROM(Read Only Memory)502に記憶されているプログラム、または記憶部513からRAM(Random Access Memory)503にロードされたプログラムに従って各種の処理を実行する。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
 CPU501、ROM502、およびRAM503は、バス504を介して相互に接続されている。このバス504にはまた、入出力インタフェース510も接続されている。
 入出力インタフェース510には、キーボード、マウスなどよりなる入力部511、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部512、ハードディスクなどより構成される記憶部513、モデムなどより構成される通信部514が接続されている。通信部514は、インターネットを含むネットワークを介しての通信処理を行う。
 入出力インタフェース510にはまた、必要に応じてドライブ515が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア521が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部513にインストールされる。
 上述した一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、ネットワークや記録媒体からインストールされる。
 この記録媒体は、例えば、図32に示されるように、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc - Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、若しくは半導体メモリなどよりなるリムーバブルメディア521により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているROM502や、記憶部513に含まれるハードディスクなどで構成される。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
 また、本明細書において、システムとは、複数のデバイス(装置)により構成される装置全体を表すものである。
 また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 上述した実施形態に係る画像符号化装置及び画像復号装置は、衛星放送、ケーブルTVなどの有線放送、インターネット上での配信、及びセルラー通信による端末への配信などにおける送信機若しくは受信機、光ディスク、磁気ディスク及びフラッシュメモリなどの媒体に画像を記録する記録装置、又は、これら記憶媒体から画像を再生する再生装置などの様々な電子機器に応用され得る。以下、4つの応用例について説明する。
 <6.第6の実施の形態>
 [第1の応用例:テレビジョン受像機]
 図33は、上述した実施形態を適用したテレビジョン装置の概略的な構成の一例を示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース909、制御部910、ユーザインタフェース911、及びバス912を備える。
 チューナ902は、アンテナ901を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ902は、復調により得られた符号化ビットストリームをデマルチプレクサ903へ出力する。即ち、チューナ902は、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
 デマルチプレクサ903は、符号化ビットストリームから視聴対象の番組の映像ストリーム及び音声ストリームを分離し、分離した各ストリームをデコーダ904へ出力する。また、デマルチプレクサ903は、符号化ビットストリームからEPG(Electronic Program Guide)などの補助的なデータを抽出し、抽出したデータを制御部910に供給する。なお、デマルチプレクサ903は、符号化ビットストリームがスクランブルされている場合には、デスクランブルを行ってもよい。
 デコーダ904は、デマルチプレクサ903から入力される映像ストリーム及び音声ストリームを復号する。そして、デコーダ904は、復号処理により生成される映像データを映像信号処理部905へ出力する。また、デコーダ904は、復号処理により生成される音声データを音声信号処理部907へ出力する。
 映像信号処理部905は、デコーダ904から入力される映像データを再生し、表示部906に映像を表示させる。また、映像信号処理部905は、ネットワークを介して供給されるアプリケーション画面を表示部906に表示させてもよい。また、映像信号処理部905は、映像データについて、設定に応じて、例えばノイズ除去などの追加的な処理を行ってもよい。さらに、映像信号処理部905は、例えばメニュー、ボタン又はカーソルなどのGUI(Graphical User Interface)の画像を生成し、生成した画像を出力画像に重畳してもよい。
 表示部906は、映像信号処理部905から供給される駆動信号により駆動され、表示デバイス(例えば、液晶ディスプレイ、プラズマディスプレイ又はOELD(Organic ElectroLuminescence Display)(有機ELディスプレイ)など)の映像面上に映像又は画像を表示する。
 音声信号処理部907は、デコーダ904から入力される音声データについてD/A変換及び増幅などの再生処理を行い、スピーカ908から音声を出力させる。また、音声信号処理部907は、音声データについてノイズ除去などの追加的な処理を行ってもよい。
 外部インタフェース909は、テレビジョン装置900と外部機器又はネットワークとを接続するためのインタフェースである。例えば、外部インタフェース909を介して受信される映像ストリーム又は音声ストリームが、デコーダ904により復号されてもよい。即ち、外部インタフェース909もまた、画像が符号化されている符号化ストリームを受信する、テレビジョン装置900における伝送部としての役割を有する。
 制御部910は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、プログラムデータ、EPGデータ、及びネットワークを介して取得されるデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、テレビジョン装置900の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース911から入力される操作信号に応じて、テレビジョン装置900の動作を制御する。
 ユーザインタフェース911は、制御部910と接続される。ユーザインタフェース911は、例えば、ユーザがテレビジョン装置900を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース911は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部910へ出力する。
 バス912は、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、音声信号処理部907、外部インタフェース909及び制御部910を相互に接続する。
 このように構成されたテレビジョン装置900において、デコーダ904は、上述した実施形態に係る画像復号装置の機能を有する。それにより、テレビジョン装置900での画像の復号に際して、スライス毎の処理の並列化を実現することができ、適応ループフィルタ処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。 
 <7.第7の実施の形態>
 [第2の応用例:携帯電話機]
 図34は、上述した実施形態を適用した携帯電話機の概略的な構成の一例を示している。携帯電話機920は、アンテナ921、通信部922、音声コーデック923、スピーカ924、マイクロホン925、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931、操作部932、及びバス933を備える。
 アンテナ921は、通信部922に接続される。スピーカ924及びマイクロホン925は、音声コーデック923に接続される。操作部932は、制御部931に接続される。バス933は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、及び制御部931を相互に接続する。
 携帯電話機920は、音声通話モード、データ通信モード、撮影モード及びテレビ電話モードを含む様々な動作モードで、音声信号の送受信、電子メール又は画像データの送受信、画像の撮像、及びデータの記録などの動作を行う。
 音声通話モードにおいて、マイクロホン925により生成されるアナログ音声信号は、音声コーデック923に供給される。音声コーデック923は、アナログ音声信号を音声データへ変換し、変換された音声データをA/D変換し圧縮する。そして、音声コーデック923は、圧縮後の音声データを通信部922へ出力する。通信部922は、音声データを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して音声データを生成し、生成した音声データを音声コーデック923へ出力する。音声コーデック923は、音声データを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
 また、データ通信モードにおいて、例えば、制御部931は、操作部932を介するユーザによる操作に応じて、電子メールを構成する文字データを生成する。また、制御部931は、文字を表示部930に表示させる。また、制御部931は、操作部932を介するユーザからの送信指示に応じて電子メールデータを生成し、生成した電子メールデータを通信部922へ出力する。通信部922は、電子メールデータを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。そして、通信部922は、受信信号を復調及び復号して電子メールデータを復元し、復元した電子メールデータを制御部931へ出力する。制御部931は、表示部930に電子メールの内容を表示させると共に、電子メールデータを記録再生部929の記憶媒体に記憶させる。
 記録再生部929は、読み書き可能な任意の記憶媒体を有する。例えば、記憶媒体は、RAM又はフラッシュメモリなどの内蔵型の記憶媒体であってもよく、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Unallocated Space Bitmap)メモリ、又はメモリカードなどの外部装着型の記憶媒体であってもよい。
 また、撮影モードにおいて、例えば、カメラ部926は、被写体を撮像して画像データを生成し、生成した画像データを画像処理部927へ出力する。画像処理部927は、カメラ部926から入力される画像データを符号化し、符号化ストリームを記憶再生部929の記憶媒体に記憶させる。
 また、テレビ電話モードにおいて、例えば、多重分離部928は、画像処理部927により符号化された映像ストリームと、音声コーデック923から入力される音声ストリームとを多重化し、多重化したストリームを通信部922へ出力する。通信部922は、ストリームを符号化及び変調し、送信信号を生成する。そして、通信部922は、生成した送信信号を、アンテナ921を介して基地局(図示せず)へ送信する。また、通信部922は、アンテナ921を介して受信される無線信号を増幅し及び周波数変換し、受信信号を取得する。これら送信信号及び受信信号には、符号化ビットストリームが含まれ得る。そして、通信部922は、受信信号を復調及び復号してストリームを復元し、復元したストリームを多重分離部928へ出力する。多重分離部928は、入力されるストリームから映像ストリーム及び音声ストリームを分離し、映像ストリームを画像処理部927、音声ストリームを音声コーデック923へ出力する。画像処理部927は、映像ストリームを復号し、映像データを生成する。映像データは、表示部930に供給され、表示部930により一連の画像が表示される。音声コーデック923は、音声ストリームを伸張し及びD/A変換し、アナログ音声信号を生成する。そして、音声コーデック923は、生成した音声信号をスピーカ924に供給して音声を出力させる。
 このように構成された携帯電話機920において、画像処理部927は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、携帯電話機920での画像の符号化及び復号に際して、スライス毎の処理の並列化を実現することができ、適応ループフィルタ処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
 <8.第8の実施の形態>
 [第3の応用例:記録再生装置]
 図35は、上述した実施形態を適用した記録再生装置の概略的な構成の一例を示している。記録再生装置940は、例えば、受信した放送番組の音声データ及び映像データを符号化して記録媒体に記録する。また、記録再生装置940は、例えば、他の装置から取得される音声データ及び映像データを符号化して記録媒体に記録してもよい。また、記録再生装置940は、例えば、ユーザの指示に応じて、記録媒体に記録されているデータをモニタ及びスピーカ上で再生する。このとき、記録再生装置940は、音声データ及び映像データを復号する。
 記録再生装置940は、チューナ941、外部インタフェース942、エンコーダ943、HDD(Hard Disk Drive)944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)948、制御部949、及びユーザインタフェース950を備える。
 チューナ941は、アンテナ(図示せず)を介して受信される放送信号から所望のチャンネルの信号を抽出し、抽出した信号を復調する。そして、チューナ941は、復調により得られた符号化ビットストリームをセレクタ946へ出力する。即ち、チューナ941は、記録再生装置940における伝送部としての役割を有する。
 外部インタフェース942は、記録再生装置940と外部機器又はネットワークとを接続するためのインタフェースである。外部インタフェース942は、例えば、IEEE1394インタフェース、ネットワークインタフェース、USBインタフェース、又はフラッシュメモリインタフェースなどであってよい。例えば、外部インタフェース942を介して受信される映像データ及び音声データは、エンコーダ943へ入力される。即ち、外部インタフェース942は、記録再生装置940における伝送部としての役割を有する。
 エンコーダ943は、外部インタフェース942から入力される映像データ及び音声データが符号化されていない場合に、映像データ及び音声データを符号化する。そして、エンコーダ943は、符号化ビットストリームをセレクタ946へ出力する。
 HDD944は、映像及び音声などのコンテンツデータが圧縮された符号化ビットストリーム、各種プログラム及びその他のデータを内部のハードディスクに記録する。また、HDD944は、映像及び音声の再生時に、これらデータをハードディスクから読み出す。
 ディスクドライブ945は、装着されている記録媒体へのデータの記録及び読み出しを行う。ディスクドライブ945に装着される記録媒体は、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)又はBlu-ray(登録商標)ディスクなどであってよい。
 セレクタ946は、映像及び音声の記録時には、チューナ941又はエンコーダ943から入力される符号化ビットストリームを選択し、選択した符号化ビットストリームをHDD944又はディスクドライブ945へ出力する。また、セレクタ946は、映像及び音声の再生時には、HDD944又はディスクドライブ945から入力される符号化ビットストリームをデコーダ947へ出力する。
 デコーダ947は、符号化ビットストリームを復号し、映像データ及び音声データを生成する。そして、デコーダ947は、生成した映像データをOSD948へ出力する。また、デコーダ904は、生成した音声データを外部のスピーカへ出力する。
 OSD948は、デコーダ947から入力される映像データを再生し、映像を表示する。また、OSD948は、表示する映像に、例えばメニュー、ボタン又はカーソルなどのGUIの画像を重畳してもよい。
 制御部949は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、記録再生装置940の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース950から入力される操作信号に応じて、記録再生装置940の動作を制御する。
 ユーザインタフェース950は、制御部949と接続される。ユーザインタフェース950は、例えば、ユーザが記録再生装置940を操作するためのボタン及びスイッチ、並びに遠隔制御信号の受信部などを有する。ユーザインタフェース950は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部949へ出力する。
 このように構成された記録再生装置940において、エンコーダ943は、上述した実施形態に係る画像符号化装置の機能を有する。また、デコーダ947は、上述した実施形態に係る画像復号装置の機能を有する。それにより、記録再生装置940での画像の符号化及び復号に際して、スライス毎の処理の並列化を実現することができ、適応ループフィルタ処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
 <9.第9の実施の形態>
 [第4の応用例:撮像装置]
 図36は、上述した実施形態を適用した撮像装置の概略的な構成の一例を示している。撮像装置960は、被写体を撮像して画像を生成し、画像データを符号化して記録媒体に記録する。
 撮像装置960は、光学ブロック961、撮像部962、信号処理部963、画像処理部964、表示部965、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、制御部970、ユーザインタフェース971、及びバス972を備える。
 光学ブロック961は、撮像部962に接続される。撮像部962は、信号処理部963に接続される。表示部965は、画像処理部964に接続される。ユーザインタフェース971は、制御部970に接続される。バス972は、画像処理部964、外部インタフェース966、メモリ967、メディアドライブ968、OSD969、及び制御部970を相互に接続する。
 光学ブロック961は、フォーカスレンズ及び絞り機構などを有する。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)などのイメージセンサを有し、撮像面に結像した光学像を光電変換によって電気信号としての画像信号に変換する。そして、撮像部962は、画像信号を信号処理部963へ出力する。
 信号処理部963は、撮像部962から入力される画像信号に対してニー補正、ガンマ補正、色補正などの種々のカメラ信号処理を行う。信号処理部963は、カメラ信号処理後の画像データを画像処理部964へ出力する。
 画像処理部964は、信号処理部963から入力される画像データを符号化し、符号化データを生成する。そして、画像処理部964は、生成した符号化データを外部インタフェース966又はメディアドライブ968へ出力する。また、画像処理部964は、外部インタフェース966又はメディアドライブ968から入力される符号化データを復号し、画像データを生成する。そして、画像処理部964は、生成した画像データを表示部965へ出力する。また、画像処理部964は、信号処理部963から入力される画像データを表示部965へ出力して画像を表示させてもよい。また、画像処理部964は、OSD969から取得される表示用データを、表示部965へ出力する画像に重畳してもよい。
 OSD969は、例えばメニュー、ボタン又はカーソルなどのGUIの画像を生成して、生成した画像を画像処理部964へ出力する。
 外部インタフェース966は、例えばUSB入出力端子として構成される。外部インタフェース966は、例えば、画像の印刷時に、撮像装置960とプリンタとを接続する。また、外部インタフェース966には、必要に応じてドライブが接続される。ドライブには、例えば、磁気ディスク又は光ディスクなどのリムーバブルメディアが装着され、リムーバブルメディアから読み出されるプログラムが、撮像装置960にインストールされ得る。さらに、外部インタフェース966は、LAN又はインターネットなどのネットワークに接続されるネットワークインタフェースとして構成されてもよい。即ち、外部インタフェース966は、撮像装置960における伝送部としての役割を有する。
 メディアドライブ968に装着される記録媒体は、例えば、磁気ディスク、光磁気ディスク、光ディスク、又は半導体メモリなどの、読み書き可能な任意のリムーバブルメディアであってよい。また、メディアドライブ968に記録媒体が固定的に装着され、例えば、内蔵型ハードディスクドライブ又はSSD(Solid State Drive)のような非可搬性の記憶部が構成されてもよい。
 制御部970は、CPUなどのプロセッサ、並びにRAM及びROMなどのメモリを有する。メモリは、CPUにより実行されるプログラム、及びプログラムデータなどを記憶する。メモリにより記憶されるプログラムは、例えば、撮像装置960の起動時にCPUにより読み込まれ、実行される。CPUは、プログラムを実行することにより、例えばユーザインタフェース971から入力される操作信号に応じて、撮像装置960の動作を制御する。
 ユーザインタフェース971は、制御部970と接続される。ユーザインタフェース971は、例えば、ユーザが撮像装置960を操作するためのボタン及びスイッチなどを有する。ユーザインタフェース971は、これら構成要素を介してユーザによる操作を検出して操作信号を生成し、生成した操作信号を制御部970へ出力する。
 このように構成された撮像装置960において、画像処理部964は、上述した実施形態に係る画像符号化装置及び画像復号装置の機能を有する。それにより、撮像装置960での画像の符号化及び復号に際して、スライス毎の処理の並列化を実現することができ、適応ループフィルタ処理における不要な遅延時間の発生による処理時間の増大を抑制することができる。
 なお、本明細書では、SPS、PPS、およびスライスヘッダなどの様々な情報が、符号化ストリームのヘッダに多重化されて、符号化側から復号側へ伝送される例について説明した。しかしながら、これら情報を伝送する手法はかかる例に限定されない。例えば、これら情報は、符号化ビットストリームに多重化されることなく、符号化ビットストリームと関連付けられた別個のデータとして伝送され又は記録されてもよい。ここで、「関連付ける」という用語は、ビットストリームに含まれる画像(スライス若しくはブロックなど、画像の一部であってもよい)と当該画像に対応する情報とを復号時にリンクさせ得るようにすることを意味する。即ち、情報は、画像(又はビットストリーム)とは別の伝送路上で伝送されてもよい。また、情報は、画像(又はビットストリーム)とは別の記録媒体(又は同一の記録媒体の別の記録エリア)に記録されてもよい。さらに、情報と画像(又はビットストリーム)とは、例えば、複数フレーム、1フレーム、又はフレーム内の一部分などの任意の単位で互いに関連付けられてよい。
 以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本技術はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
 なお、本技術は以下のような構成も取ることができる。
 (1) 処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求める情報制御部と、
 前記情報制御部により求められた前記情報を用いて前記画像処理を行う画像処理部と
 を備える画像処理装置。
 (2) 前記画像処理は、適応ループフィルタ処理であり、
 前記情報制御部は、前記画像処理に必要な情報として、前記適応ループフィルタ処理に用いられるフィルタ係数を求め、
 前記画像処理部は、前記情報制御部により求められた前記フィルタ係数を用いて、前記注目画素に対する前記適応ループフィルタ処理を行う
 前記(1)に記載の画像処理装置。
 (3) 前記画像処理部は、スライス毎に独立して、前記適応ループフィルタ処理を行い、
 前記情報制御部は、処理対象である注目スライスの外部の情報を用いずに、前記フィルタ係数を求める
 前記(2)に記載の画像処理装置。
 (4) 前記情報制御部は、
  前記注目画素の周辺画素が前記注目スライス内に位置するか否かを判定する位置判定部と、
  前記位置判定部の判定結果に従って前記注目画素のテクスチャの複雑さを表す情報を算出する算出部と、
  前記算出部により算出された前記テクスチャの複雑さを表す情報の大きさに応じて、前記注目画素をクラス分類するクラス分類部と、
  前記クラス分類部により分類されたクラスに応じた値を、前記注目画素のフィルタ係数として設定するフィルタ係数設定部と
 を備える前記(3)に記載の画像処理装置。
 (5) 前記テクスチャの複雑さを表す情報は、SML(Sum-Modified Laplacian)である
 前記(4)に記載の画像処理装置。
 (6)  前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値を、予め定められた所定の固定値に設定し、前記テクスチャの複雑さを表す情報を算出する
 前記(4)に記載の画像処理装置。
 (7)  前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値の代わりに、前記周辺画素に近傍の、前記利用可能な画素の画素値を用いて、前記テクスチャの複雑さを表す情報を算出する
 前記(4)に記載の画像処理装置。
 (8)  前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値の代わりに、前記注目画素の画素値を用いて、前記テクスチャの複雑さを表す情報を算出する
 前記(4)に記載の画像処理装置。
 (9)  前記算出部は、前記注目画素の上下左右に隣接する4画素を前記周辺画素として前記テクスチャの複雑さを表す情報を算出する
 前記(4)に記載の画像処理装置。
 (10)  前記算出部は、前記注目画素の画素値と各周辺画素の画素値との差分の絶対値の総和を前記テクスチャの複雑さを表す情報とする
 前記(9)に記載の画像処理装置。
 (11)  前記フィルタ係数設定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、予め定められた所定の値を前記注目画素のフィルタ係数として設定する
 前記(4)に記載の画像処理装置。
 (12) 前記画像処理部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記注目画素に対する適応ループフィルタ処理を省略する
 前記(4)に記載の画像処理装置。
 (13) 前記注目スライスに対する適応ループフィルタ処理を、他のスライスと独立して行うか否かを示すフラグを生成するフラグ生成部をさらに備え、
 前記画像処理部は、前記フラグ生成部により生成された前記フラグの値に応じて、前記注目スライス内の前記注目画素に対する適応ループフィルタ処理を行う
 前記(2)乃至(12)のいずれかに記載の画像処理装置。
 (14) 前記画像処理は、適応オフセット処理であり、
 前記情報制御部は、前記画像処理に必要な情報として、前記適応オフセット処理に用いられる周辺画素値を求め、
 前記画像処理部は、前記情報制御部により求められた前記周辺画素値を用いて、前記注目画素に対する前記適応オフセット処理を行う
 前記(1)に記載の画像処理装置。
 (15) 前記画像処理部は、スライス毎に独立して、前記適応オフセット処理を行い、
 前記情報制御部は、処理対象である注目スライスの外部の情報を用いずに、前記周辺画素値を求める
 前記(14)に記載の画像処理装置。
 (16) 前記情報制御部は、
  前記注目画素の周辺画素が前記注目スライス内に位置するか否かを判定する位置判定部と、
  前記位置判定部の判定結果に従って前記周辺画素値を決定する周辺画素値決定部と、
 を備える前記(15)に記載の画像処理装置。
 (17)  前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、予め定められた所定の固定値を前記周辺画素値に決定する
 前記(16)に記載の画像処理装置。
 (18)  前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素に近傍の利用可能な画素の画素値を前記周辺画素値に決定する
 前記(16)に記載の画像処理装置。
 (19)  前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記注目画素の画素値を前記周辺画素値に決定する
 前記(16)に記載の画像処理装置。
 (20) 前記注目スライスに対する適応オフセット処理を、他のスライスと独立して行うか否かを示すフラグを生成するフラグ生成部をさらに備え、
 前記画像処理部は、前記フラグ生成部により生成された前記フラグの値に応じて、前記注目スライス内の前記注目画素に対する適応オフセット処理を行う
 前記(14)乃至(19)のいずれかに記載の画像処理装置。
 (21) 画像処理装置の画像処理方法であって、
 情報制御部が、処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求め、
 画像処理部が、前記情報制御部により求められた前記情報を用いて前記画像処理を行う
 画像処理方法。
 100 画像符号化装置, 112 適応ループフィルタ, 121 フィルタ係数制御部, 131 制御部, 132 フィルタ処理部, 141 位置判定部, 142 SML算出部, 143 クラス分類部, 144 フィルタ係数設定部, 200 画像復号装置, 207 適応ループフィルタ, 221 フィルタ係数制御部, 231 制御部, 232 フィルタ処理部, 241 位置判定部, 242 SML算出部, 243 クラス分類部, 244 フィルタ係数設定部, 300 画像符号化装置, 301 適応オフセット部, 302 周辺画素値制御部, 311 quad-tree構造決定部, 312 注目領域選択部, 313 オフセット算出部, 314 オフセット部, 315 画像バッファ, 321 オフセット無し演算部, 322 バンドオフセット演算部, 323 エッジオフセット演算部, 324 オフセット選択部, 331 バッファ, 332 パターン選択部, 333 注目画素選択部, 334 カテゴリ決定部, 335 オフセット値算出部, 336 オフセット部, 337 コスト関数算出部, 341 周辺画素参照可否判定部, 342 周辺画素値決定部, 400 画像符号化装置, 401 適応オフセット部, 411 quad-tree構造バッファ, 412 選択情報バッファ, 413 オフセット部, 414 画素バッファ

Claims (21)

  1.  処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求める情報制御部と、
     前記情報制御部により求められた前記情報を用いて前記画像処理を行う画像処理部と
     を備える画像処理装置。
  2.  前記画像処理は、適応ループフィルタ処理であり、
     前記情報制御部は、前記画像処理に必要な情報として、前記適応ループフィルタ処理に用いられるフィルタ係数を求め、
     前記画像処理部は、前記情報制御部により求められた前記フィルタ係数を用いて、前記注目画素に対する前記適応ループフィルタ処理を行う
     請求項1に記載の画像処理装置。
  3.  前記画像処理部は、スライス毎に独立して、前記適応ループフィルタ処理を行い、
     前記情報制御部は、処理対象である注目スライスの外部の情報を用いずに、前記フィルタ係数を求める
     請求項2に記載の画像処理装置。
  4.  前記情報制御部は、
      前記注目画素の周辺画素が前記注目スライス内に位置するか否かを判定する位置判定部と、
      前記位置判定部の判定結果に従って前記注目画素のテクスチャの複雑さを表す情報を算出する算出部と、
      前記算出部により算出された前記テクスチャの複雑さを表す情報の大きさに応じて、前記注目画素をクラス分類するクラス分類部と、
      前記クラス分類部により分類されたクラスに応じた値を、前記注目画素のフィルタ係数として設定するフィルタ係数設定部と
     を備える請求項3に記載の画像処理装置。
  5.  前記テクスチャの複雑さを表す情報は、SML(Sum-Modified Laplacian)である
     請求項4に記載の画像処理装置。
  6.   前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値を、予め定められた所定の固定値に設定し、前記テクスチャの複雑さを表す情報を算出する
     請求項4に記載の画像処理装置。
  7.   前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値の代わりに、前記周辺画素に近傍の、前記利用可能な画素の画素値を用いて、前記テクスチャの複雑さを表す情報を算出する
     請求項4に記載の画像処理装置。
  8.   前記算出部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素の画素値の代わりに、前記注目画素の画素値を用いて、前記テクスチャの複雑さを表す情報を算出する
     請求項4に記載の画像処理装置。
  9.   前記算出部は、前記注目画素の上下左右に隣接する4画素を前記周辺画素として前記テクスチャの複雑さを表す情報を算出する
     請求項4に記載の画像処理装置。
  10.   前記算出部は、前記注目画素の画素値と各周辺画素の画素値との差分の絶対値の総和を前記テクスチャの複雑さを表す情報とする
     請求項9に記載の画像処理装置。
  11.   前記フィルタ係数設定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、予め定められた所定の値を前記注目画素のフィルタ係数として設定する
     請求項4に記載の画像処理装置。
  12.  前記画像処理部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記注目画素に対する適応ループフィルタ処理を省略する
     請求項4に記載の画像処理装置。
  13.  前記注目スライスに対する適応ループフィルタ処理を、他のスライスと独立して行うか否かを示すフラグを生成するフラグ生成部をさらに備え、
     前記画像処理部は、前記フラグ生成部により生成された前記フラグの値に応じて、前記注目スライス内の前記注目画素に対する適応ループフィルタ処理を行う
     請求項2に記載の画像処理装置。
  14.  前記画像処理は、適応オフセット処理であり、
     前記情報制御部は、前記画像処理に必要な情報として、前記適応オフセット処理に用いられる周辺画素値を求め、
     前記画像処理部は、前記情報制御部により求められた前記周辺画素値を用いて、前記注目画素に対する前記適応オフセット処理を行う
     請求項1に記載の画像処理装置。
  15.  前記画像処理部は、スライス毎に独立して、前記適応オフセット処理を行い、
     前記情報制御部は、処理対象である注目スライスの外部の情報を用いずに、前記周辺画素値を求める
     請求項14に記載の画像処理装置。
  16.  前記情報制御部は、
      前記注目画素の周辺画素が前記注目スライス内に位置するか否かを判定する位置判定部と、
      前記位置判定部の判定結果に従って前記周辺画素値を決定する周辺画素値決定部と
     を備える請求項15に記載の画像処理装置。
  17.   前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、予め定められた所定の固定値を前記周辺画素値に決定する
     請求項16に記載の画像処理装置。
  18.   前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記周辺画素に近傍の利用可能な画素の画素値を前記周辺画素値に決定する
     請求項16に記載の画像処理装置。
  19.   前記周辺画素値決定部は、前記位置判定部により前記周辺画素が前記注目スライス内に位置しないと判定された場合、前記注目画素の画素値を前記周辺画素値に決定する
     請求項16に記載の画像処理装置。
  20.  前記注目スライスに対する適応オフセット処理を、他のスライスと独立して行うか否かを示すフラグを生成するフラグ生成部をさらに備え、
     前記画像処理部は、前記フラグ生成部により生成された前記フラグの値に応じて、前記注目スライス内の前記注目画素に対する適応オフセット処理を行う
     請求項14に記載の画像処理装置。
  21.  画像処理装置の画像処理方法であって、
     情報制御部が、処理対象である注目画素と異なる他の画素に属する参照情報を用いて求められる前記注目画素に対する画像処理に必要な情報を、前記注目画素を含むスライスに属する情報のみを用いて求め、
     画像処理部が、前記情報制御部により求められた前記情報を用いて前記画像処理を行う
     画像処理方法。
PCT/JP2012/056810 2011-03-24 2012-03-16 画像処理装置および方法 WO2012128191A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201280013677.8A CN103430544B (zh) 2011-03-24 2012-03-16 图像处理设备和方法
US14/005,669 US10306223B2 (en) 2011-03-24 2012-03-16 Image processing apparatus and method
US16/382,477 US10623739B2 (en) 2011-03-24 2019-04-12 Image processing apparatus and method
US16/821,553 US11095889B2 (en) 2011-03-24 2020-03-17 Image processing apparatus and method

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011-066211 2011-03-24
JP2011066211 2011-03-24
JP2011-229574 2011-10-19
JP2011229574A JP2012213128A (ja) 2011-03-24 2011-10-19 画像処理装置および方法

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US14/005,669 A-371-Of-International US10306223B2 (en) 2011-03-24 2012-03-16 Image processing apparatus and method
US16/382,477 Continuation US10623739B2 (en) 2011-03-24 2019-04-12 Image processing apparatus and method

Publications (1)

Publication Number Publication Date
WO2012128191A1 true WO2012128191A1 (ja) 2012-09-27

Family

ID=46879339

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/056810 WO2012128191A1 (ja) 2011-03-24 2012-03-16 画像処理装置および方法

Country Status (4)

Country Link
US (3) US10306223B2 (ja)
JP (1) JP2012213128A (ja)
CN (1) CN103430544B (ja)
WO (1) WO2012128191A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014087861A1 (ja) * 2012-12-06 2014-06-12 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US20210211680A1 (en) * 2013-07-30 2021-07-08 Texas Instruments Incorporated Method and apparatus for real-time sao parameter estimation

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6634936B2 (ja) * 2016-04-05 2020-01-22 富士通株式会社 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法、画像復号プログラムおよび画像伝送システム
US10839598B2 (en) * 2016-07-26 2020-11-17 Hewlett-Packard Development Company, L.P. Indexing voxels for 3D printing
US10277897B1 (en) * 2017-01-03 2019-04-30 Google Llc Signaling in-loop restoration filters for video coding
KR102521801B1 (ko) * 2017-09-29 2023-04-14 소니그룹주식회사 정보 처리 장치 및 방법
US11044473B2 (en) * 2018-12-21 2021-06-22 Qualcomm Incorporated Adaptive loop filtering classification in video coding
AU2020312053B2 (en) * 2019-07-10 2023-09-14 Beijing Bytedance Network Technology Co., Ltd. Sample identification for intra block copy in video coding
EP3998772A4 (en) * 2019-07-11 2023-06-07 Samsung Electronics Co., Ltd. VIDEO DECODING METHOD AND APPARATUS, AND VIDEO CODING METHOD AND APPARATUS

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008075247A1 (en) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Image compression and decompression
WO2009110559A1 (ja) * 2008-03-07 2009-09-11 株式会社 東芝 動画像符号化/復号装置
WO2011013580A1 (ja) * 2009-07-31 2011-02-03 ソニー株式会社 画像処理装置および方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9143803B2 (en) * 2009-01-15 2015-09-22 Qualcomm Incorporated Filter prediction based on activity metrics in video coding
KR20120006488A (ko) * 2009-04-28 2012-01-18 텔레폰악티에볼라겟엘엠에릭슨(펍) 왜곡 가중
US9813738B2 (en) * 2010-10-05 2017-11-07 Hfi Innovation Inc. Method and apparatus of adaptive loop filtering
US9525884B2 (en) * 2010-11-02 2016-12-20 Hfi Innovation Inc. Method and apparatus of slice boundary filtering for high efficiency video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008075247A1 (en) * 2006-12-18 2008-06-26 Koninklijke Philips Electronics N.V. Image compression and decompression
WO2009110559A1 (ja) * 2008-03-07 2009-09-11 株式会社 東芝 動画像符号化/復号装置
WO2011013580A1 (ja) * 2009-07-31 2011-02-03 ソニー株式会社 画像処理装置および方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIH-MING FU ET AL.: "CE8 Subtest3: Picture Quadtree Adaptive Offset, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11", JCTVC-DL22, 4TH MEETING, January 2011 (2011-01-01), DAEGU, KR, pages 1 - 10 *
WEI-JUNG CHIEN ET AL.: "Adaptive Filter Based on Combination of Sum-Modified Laplacian Filter Indexing and Quadtree Partitioning, ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG)", VCEG-AL27_ RL, 38TH MEETING, July 2009 (2009-07-01), LONDON, UK / GENEVA, CH, pages 1 - 3 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014087861A1 (ja) * 2012-12-06 2014-06-12 ソニー株式会社 画像処理装置、画像処理方法、およびプログラム
US20210211680A1 (en) * 2013-07-30 2021-07-08 Texas Instruments Incorporated Method and apparatus for real-time sao parameter estimation
US11765359B2 (en) * 2013-07-30 2023-09-19 Texas Instruments Incorporated Method and apparatus for real-time SAO parameter estimation

Also Published As

Publication number Publication date
US11095889B2 (en) 2021-08-17
US20190238846A1 (en) 2019-08-01
US10306223B2 (en) 2019-05-28
CN103430544B (zh) 2017-02-08
US20140003496A1 (en) 2014-01-02
US20200221085A1 (en) 2020-07-09
US10623739B2 (en) 2020-04-14
JP2012213128A (ja) 2012-11-01
CN103430544A (zh) 2013-12-04

Similar Documents

Publication Publication Date Title
JP5907367B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP5942990B2 (ja) 画像処理装置および方法
WO2012128191A1 (ja) 画像処理装置および方法
CN107071468B (zh) 图像处理设备和图像处理方法
WO2013002110A1 (ja) 画像処理装置および方法
JPWO2014002821A1 (ja) 画像処理装置および方法
WO2013061852A1 (ja) 画像処理装置および方法
WO2013047326A1 (ja) 画像処理装置および方法
WO2013154026A1 (ja) 画像処理装置および方法
WO2012105406A1 (ja) 画像処理装置および方法
WO2013051453A1 (ja) 画像処理装置および方法
WO2013065568A1 (ja) 画像処理装置および方法
JP5999449B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP6508553B2 (ja) 画像処理装置および方法
JP6341304B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
JP6217997B2 (ja) 画像処理装置および方法
JP6094838B2 (ja) 画像処理装置および方法、プログラム、並びに記録媒体
WO2012157488A1 (ja) 画像処理装置および方法
JP6768208B2 (ja) 画像処理装置および方法
WO2013002111A1 (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: 12760149

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 14005669

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12760149

Country of ref document: EP

Kind code of ref document: A1