[go: up one dir, main page]

WO2011152425A1 - フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 - Google Patents

フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 Download PDF

Info

Publication number
WO2011152425A1
WO2011152425A1 PCT/JP2011/062537 JP2011062537W WO2011152425A1 WO 2011152425 A1 WO2011152425 A1 WO 2011152425A1 JP 2011062537 W JP2011062537 W JP 2011062537W WO 2011152425 A1 WO2011152425 A1 WO 2011152425A1
Authority
WO
WIPO (PCT)
Prior art keywords
filter
image
unit
boundary
linear
Prior art date
Application number
PCT/JP2011/062537
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 US13/701,441 priority Critical patent/US8805100B2/en
Priority to JP2012518412A priority patent/JP5875979B2/ja
Publication of WO2011152425A1 publication Critical patent/WO2011152425A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/004Predictors, e.g. intraframe, interframe coding
    • 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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness

Definitions

  • the present invention relates to a filter device that acts on an image.
  • the present invention also relates to an image decoding device and an image encoding device provided with such a filter device.
  • the present invention also relates to a data structure of a filter parameter supplied to such a filter device.
  • image data is divided into a plurality of prediction blocks, prediction is performed in units of divided prediction blocks, and a difference (residual) between the prediction image and the input image is orthogonally transformed. Then, after the obtained transform coefficient is quantized, it is encoded by variable length coding of the quantized transform coefficient.
  • the orthogonal transformation of the difference (residual) is performed in units of transform blocks that are the same as the prediction block or that are determined independently of the prediction block.
  • large distortion so-called block noise
  • various coding noises such as blur and mosquito noise are generated in addition to block noise.
  • a technique for performing a filtering process on a decoded image used as a reference image at the time of prediction is disclosed.
  • Non-Patent Document 1 uses a technique of changing the strength of block noise reduction processing according to a threshold value that can be embedded in encoded data.
  • Non-Patent Document 2 refers to pixels around the pixel to be filtered (5 ⁇ 5, 7 ⁇ 7, or 9 ⁇ 9 pixels), decodes the weighting factor for the pixels, and performs spatial filtering processing.
  • a technique called an Adaptive Loop Filter (ALF) that performs the above is disclosed.
  • ALF Adaptive Loop Filter
  • Non-Patent Document 3 discloses a prediction residual, a prediction image, and a decoded image (a sum of a prediction residual and a prediction image) subjected to a non-linear denoising filter as an ALF input image, and a subsequent stage of ALF. 1 shows a configuration in which a deblocking filter is arranged.
  • Non-Patent Document 1 changes the strength of block noise reduction (deblocking strength) using a threshold value, but it is necessary to try various threshold values by trial and error in order to determine the optimum threshold value. There is a problem that the optimum threshold value cannot be easily determined.
  • the ALF of Non-Patent Document 2 causes a spatial filter to act on the decoded image after the deblocking filter process, but adjusts the effect when the block noise reduction effect is too strong or too weak in the deblocking filter process. There is a problem that cannot be done. In particular, when the deblocking filter process is too strong, the deblocking filter process increases blurring, but it is difficult to sufficiently correct this with ALF.
  • the ALF of Non-Patent Document 3 acts on the decoded image before the deblocking filter process. Therefore, there is no function of adaptively adjusting the filter strength of the deblocking filter.
  • Non-Patent Documents 2 to 3 since a configuration in which ALF is serially coupled to a heavy processing deblocking filter is employed, the time required for the entire filter operation is ALF. There is a problem that the calculation time required for the filter calculation and the time required for the filter calculation in the deblocking filter become the sum, and the time required for the entire filter calculation becomes long.
  • the present invention has been made in view of the above-described problems, and a main object thereof is to realize a filter device that can achieve high coding efficiency using ALF and can be speeded up by parallelization.
  • a filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, and a first linear filter that acts on an input image of the boundary filter. And a second linear filter unit acting on the output image of the boundary filter, the sum of the output image of the first linear filter unit and the output image of the second linear filter unit And an adaptive filter that outputs.
  • the adaptive filter included in the filter device includes an output image of the first linear filter unit that operates on the input image of the boundary filter and an output image of the second linear filter unit that operates on the output image of the boundary filter. Add and output. Therefore, the number of taps of the second linear filter unit can be reduced without reducing the encoding efficiency, or the number of taps of the first linear filter unit can be reduced without reducing the encoding efficiency. it can.
  • the former effect that is, reducing the number of taps of the second linear filter unit without reducing the encoding efficiency can reduce the entire calculation time without reducing the encoding efficiency.
  • the calculation time T1 required for the filter operation in the first linear filter unit is reduced by the filter in the boundary filter.
  • the sum T0 + T2 of the time T0 required for the calculation and the time T2 required for the filter calculation in the second filter unit is less than T0 + T2
  • the calculation time T2 in the second linear filter unit is shortened. It can be shortened.
  • the filter operation in the boundary filter has a larger amount of calculation than the filter operation (product-sum operation) in the linear filter.
  • the boundary filter is a deblocking filter, particularly when it is a deblocking filter having a function of autonomously adjusting its own filter strength based on activity, block boundary strength, and the like.
  • the calculation time T1 in the first linear filter unit rarely exceeds the calculation time T0 in the boundary filter unit. That is, the effect of reducing the overall calculation time without reducing the encoding efficiency is that the calculation time T1 in the first linear filter unit exceeds the calculation time T0 in the boundary filter unit, except for a rare case. This effect is generally realized.
  • a filter device of the present invention is a filter device that generates a post-filter image using an image divided into blocks and processed as a filter input image, and an adaptive filter corresponding to the filter input image
  • An adaptive filter information storage means for storing information; and a filter that generates a pixel value in the filter target pixel using a pixel in the vicinity of the boundary of the block adjacent to the filter target pixel from the filter input image.
  • Boundary utilization filter means (BF means) for generating an image (post-BF image), and adaptive filter means for performing adaptive filter processing controlled by the adaptive filter information from the filter input image and the post-BF image. It is characterized by.
  • an image for adaptive filter input is generated by selecting a pixel at or near the block boundary.
  • BF processing that explicitly refers to pixels in and around the boundary and an adaptive filter, it is possible to adjust the deblocking strength according to the characteristics of the sequence or frame and the characteristics of the boundary, and the effect of increasing the distortion correction effect Play.
  • the filter means configured as described above, there is an effect that the deblock strength adjustment can be performed according to the positional relationship with the sequence and the feature of the frame and the boundary by using the adaptive filter information with a small code amount.
  • a filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, and a pixel value of each target pixel in an output image.
  • a first linear filter unit that calculates a pixel value of each target pixel in the output image by referring to each pixel value of the output image of the boundary filter in a reference range determined according to the position of the pixel;
  • a second linear filter unit that calculates by referring to each pixel value of the predicted image in a reference range determined according to the reference range, and a pixel value of each target pixel in the output image in the reference range determined in accordance with the position of the target pixel
  • An adaptive filter including a third linear filter unit that is calculated by referring to each pixel value of the residual image, and adds and outputs the output images of the first to third linear filters.
  • the filter device configured as described above, since the number of taps is set to 1 for at least one of the first to third linear filter units, the processing is performed while maintaining high coding efficiency. The amount and / or processing time can be reduced.
  • the filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, and a pixel value of each target pixel in the output image.
  • a first linear filter unit that calculates the pixel value of each target pixel in the output image by referring to each pixel value of the output image of the boundary filter in a reference range determined according to the position of the target pixel.
  • a second linear filter unit that calculates by referring to each pixel value of the predicted image in a reference range determined according to the position, and a reference that determines the pixel value of each target pixel in the output image according to the position of the target pixel
  • An adaptive filter including a third linear filter unit that calculates with reference to each pixel value of a residual image in a range, and adds output images of the first to third linear filters.
  • An at least one of the first to third linear filter units, wherein at least a part of the boundary on the downstream side in the processing order among the boundaries of the reference range is the boundary of the target pixel. Alternatively, it is set so as to overlap with the boundary of the block including the target pixel.
  • the filter device configured as described above, at least a part of the boundary on the downstream side in the processing order among the boundaries of the reference range is the target pixel for at least one of the first to third linear filter units. Therefore, the processing amount and the processing time can be reduced while maintaining high coding efficiency.
  • the reference range downstream boundary in the processing range of the reference range boundary includes: It refers to at least one of the right side boundary and the lower side boundary. Further, when the above processing is performed in the reverse order of the raster scan order, it indicates at least one of the boundary of the left side and the boundary of the upper side among the boundaries of the reference range.
  • the block may be any of a unit called a transform block, a prediction block, a macro block, a coding unit, and a maximum coding unit.
  • an image coding device that causes the filter device to act on each image used for generating a locally decoded image is also included in the scope of the present invention.
  • the filter coefficient of the boundary filter that selectively acts on the block boundary of the image processed for each block, and the output image A filter coefficient of a first linear filter unit that calculates a pixel value of each target pixel with reference to each pixel value of the output image of the boundary filter in a reference range determined according to the position of the target pixel;
  • the filter coefficient of the second linear filter unit that calculates the pixel value of each target pixel with reference to each pixel value of the predicted image in the reference range determined according to the position of the target pixel, and each target in the output image A pixel value of a pixel is calculated by referring to each pixel value of a residual image in a reference range determined according to the position of the target pixel.
  • Data structure of the filter parameters characterized in that it includes a filter coefficient of the linear filter unit, also included in the scope of the present invention.
  • the filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, a first linear filter unit that acts on an input image of the boundary filter, and the above
  • An adaptive filter including a second linear filter unit acting on an output image of the boundary filter, and outputs a sum of an output image of the first linear filter unit and an output image of the second linear filter unit Therefore, an object of the present invention is to realize a filter device capable of increasing the speed by parallelization while realizing high coding efficiency using the adaptive filter.
  • the filter device selects the boundary filter that selectively acts on the block boundary of the image processed for each block, and the pixel value of each target pixel in the output image.
  • a first linear filter unit that calculates the pixel values of the output image of the boundary filter in a reference range determined according to the position, and determines the pixel value of each target pixel in the output image according to the position of the target pixel;
  • a second linear filter unit that calculates by referring to each pixel value of the predicted image in the fixed reference range, and a residual value in the reference range determined in accordance with the position of the target pixel in the pixel value of each target pixel in the output image
  • An adaptive filter that includes a third linear filter unit that is calculated with reference to each pixel value of an image, and that adds and outputs the output images of the first to third linear filters.
  • the number of taps is set to 1, or the reference range boundary is downstream in the processing order. At least a part of the side boundary is set to overlap the boundary of the target pixel or the boundary of the block including the target pixel. Therefore, it is possible to reduce the amount of processing and at least one of the processing while maintaining high coding efficiency.
  • FIG. 1 is a block diagram of a video encoding device 2 according to a first embodiment of the present invention. It is a block diagram of the loop filter part 120 which concerns on the 1st Embodiment of this invention. It is a block diagram of the 1st BF section (BF section 301) concerning a 1st embodiment of the present invention. It is a block diagram of the 2nd BF part (BF part 301 ') concerning a 1st embodiment of the present invention. It is a figure for demonstrating a boundary in the 1st Embodiment of this invention.
  • FIG. 21 is a block diagram showing a second modification of the loop filter shown in FIG. 20.
  • A shows the operation state in the first mode
  • B shows the operation state in the second operation mode.
  • FIG. 21 is a block diagram showing a third modification of the loop filter shown in FIG. 20.
  • Embodiment 1 Prior to description of the video decoding device 1 according to the first embodiment of the present invention, the configuration of encoded data generated by the video encoding device 2 according to this embodiment and decoded by the video decoding device 1. This will be described with reference to FIG.
  • Encoded data is composed of a series of image data (pictures). As shown in FIG. 11, one picture is composed of a plurality of slices. A slice is composed of adaptive filter information and MB data. MB data is information for generating a decoded image, and includes a block type, a prediction block size, a prediction parameter, a transform block size, and residual information.
  • the adaptive filter information is information used to control the adaptive filter processing in the frame memory storing the decoded image.
  • M and N take any value of 1, 3, and 5.
  • one or both of the tap number M and the tap number N may use a predetermined fixed value without being explicitly encoded. For example, it may be 1 for M and 5 for N.
  • the number of taps is not limited to 1, 3, and 5.
  • the pre-BF weighting factor ak, the post-BF weighting factor bk, and the offset o may each be encoded by predictive encoding. That is, a weighting factor prediction unit that predicts a weighting factor and an offset is provided, a difference value between a prediction value calculated by the weighting factor prediction unit is decoded, and a sum of the difference value and the prediction value is set as a weighting factor and an offset. it can.
  • the method using the value of the previous frame as the predicted value is appropriate. Further, appropriate quantization may be performed. Furthermore, it may be encoded as a non-linear quantized value.
  • weighting factor is used here, it may be called a filter factor.
  • FIG. 13 (Configuration of weighting factor) With reference to FIG. 13, the structure of the weighting factor in the encoded data and the corresponding position of the weighting factor when used as a two-dimensional filter will be described.
  • FIGS. 13A, 13B, and 13C show weighting coefficients when the number of taps is 1, 3, and 5, respectively.
  • the left side of the figure shows the configuration of the weighting factors in the encoded data, and each of 1, 5, and 13 weighting factors is one-dimensionally ordered.
  • the number of taps is M, it corresponds to applying an M ⁇ M two-dimensional filter.
  • the number of pixels to be referenced is M ⁇ M, but the number of weighting coefficients is reduced by using symmetry, and the required number is (M ⁇ M + 1) / 2.
  • the right side of FIG. 13 shows the corresponding position of the weighting coefficient when used as a two-dimensional filter.
  • the two-dimensional filter is a filter that calculates a weighted average obtained by multiplying a weighting coefficient corresponding to a pixel to be filtered and pixel values located around the pixel to be filtered.
  • the same weighting factor is assigned to pixels located point-symmetrically as viewed from the filter target pixel.
  • FIG. 1 is a block diagram illustrating a configuration of a video decoding device 1 according to the first embodiment.
  • the moving picture decoding apparatus 1 includes a prediction unit 111, a variable length coding / decoding unit 114, an inverse quantization unit 115, an inverse transform unit 116, a frame memory 117, and adaptive filter information storage.
  • a unit 119, a loop filter unit 120, and an addition unit 109 are included. The operation of the video decoding device 1 will be described below.
  • the encoded data input to the video decoding device 1 is first input to the variable length encoding / decoding unit 114.
  • the variable-length encoding / decoding unit 114 includes adaptive filter information including weighting coefficients used for filter processing, MB parameters indicating a prediction method and a conversion method, and conversion / quantized conversion coefficients by variable-length decoding of encoded data. Decode residual information.
  • the inverse quantization unit 115 inversely quantizes the transformed / quantized residual signal input from the variable length coding / decoding unit 114.
  • the inverse transformation unit 116 inversely transforms the inversely quantized signal input from the inverse quantization unit 115 to generate a residual image.
  • the prediction unit 111 receives the MB parameter decoded from the variable length coding / decoding unit 114 and generates a prediction image using the decoded image (decoded image) stored in the frame memory 117 according to the MB parameter.
  • the MB parameter includes a block type, a prediction block size, a transform block size, and a prediction parameter.
  • the block type indicates whether it is an intra block or an inter block.
  • a prediction image is generated with reference to a decoded image (frame memory image) before loop filter processing, which will be described later.
  • a prediction image is referred to with reference to a decoded image after loop filter processing. Is generated.
  • the prediction block size indicates whether the prediction block size is 16 ⁇ 16, 8 ⁇ 8, or 4 ⁇ 4, and the conversion block size is 16 ⁇ 16, 8 ⁇ 8, Indicates 4x4.
  • the prediction parameter varies depending on the block type. In the case of an intra block, the prediction parameter is an intra prediction mode indicating whether DC prediction or direction prediction is used. In the case of an inter block, it is a motion vector and a reference index. The reference index is an identifier for designating a reference frame when there are a plurality of frames that can be referred to in the frame memory. Note that the block type, prediction block size, transform block size, prediction parameter, and the like are not limited to this configuration.
  • the addition unit 109 generates a decoded image by adding the prediction image input from the prediction unit 111 and the residual image input from the inverse transformation unit 116 and stores the decoded image in the frame memory 117.
  • the adaptive filter information storage unit 119 receives and stores the adaptive filter information decoded by the variable length coding / decoding unit 114.
  • the loop filter unit 120 reads the adaptive filter information stored in the adaptive filter information storage unit 119, performs the filtering process on the decoded image stored in the frame memory 117, and writes it back to the frame memory 117 again.
  • FIG. 3 is a diagram illustrating an internal configuration of the loop filter unit 120.
  • the loop filter unit 120 includes a boundary use filter unit (BF unit) 301 and an adaptive filter unit 302.
  • BF unit boundary use filter unit
  • the loop filter unit 120 is a means for generating an image with reduced coding distortion using the decoded image stored in the frame memory 117 and the adaptive filter information stored in the adaptive filter information storage unit 119.
  • the BF unit 301 is a means for generating a pixel value used in the adaptive filter unit 302 by using a pixel value near the boundary of a block adjacent to the target block.
  • the adaptive filter unit 302 is means for performing filter processing by weighted average using the weighting factor included in the adaptive filter information.
  • the characteristic of the adaptive filter unit 302 includes two input images, one is an image processed by the BF unit 301 (post-BF image), and the other is an image before processing by the BF unit 301 (pre-BF image). That is.
  • This can also be expressed as a feature of the loop filter 120 that includes the BF unit 301 and the adaptive filter unit 302 therein, and uses the input of the loop filter unit 120 and the output of the BF unit 301 as inputs of the adaptive filter unit 302. it can.
  • the processing unit of the loop filter unit 120, the BF unit 301, and the adaptive filter unit 302 may be a frame, a block, or a pixel.
  • FIG. 17 is a diagram showing a configuration of a conventional loop filter.
  • the conventional loop filter uses the image after deblocking filter processing as an input of the adaptive filter (conventional method 1), and the decoded image as shown in FIG. 17 (b). (Image before deblocking filter processing) is input to the adaptive filter (conventional method 2), but both the image before deblocking filter processing and the image after deblocking filter processing are There was no configuration as input.
  • the BF unit 301 is characterized by using a pixel value near the boundary of a block adjacent to the target block.
  • One method is a method of generating using deblocking filter processing that performs block noise reduction, and an example will be described with reference to FIG.
  • Another method is a method of generating an image corresponding to a filter target block using pixel values in the vicinity of the boundary between blocks adjacent to the filter target block, which will be described with reference to FIGS.
  • FIG. 6 is a diagram schematically showing pixels at the boundary portion of the block.
  • a pixel of one block is a pixel Pi
  • a pixel of the other block is a pixel Qi (i is an integer from 0 to n). Note that i in the pixel Pi and the pixel Qi corresponds to the distance from the block boundary.
  • pixel values corresponding to the pixel Pi and the pixel Qi are shown as a pixel value pi and a pixel value qi, respectively, and the pixel value after processing corresponding to the pixel value pk before processing in the processing target pixel Pk is shown. It is shown as pk ′.
  • k is an integer that takes a value from 0 to the block size (k is 0 to n).
  • FIG. 4 is a diagram showing an internal configuration of the BF unit (BF unit 301) having the first configuration.
  • the BF unit 301 includes a boundary edge calculation unit 401, an activity calculation unit 402, and a BF pixel generation unit 403.
  • the boundary edge calculation unit 401 calculates the edge strength d of the boundary using the following equation (4-1).
  • the activity level calculation unit 402 calculates a value ap representing the activity level using the following equation (4-2). The degree of activity is used to calculate the state of unevenness or the magnitude of the gradient near the boundary and the filter target pixel.
  • the BF pixel generation unit 403 performs the following filter processing when the calculated “d” and “ap” are d ⁇ and ap ⁇ with respect to the predetermined threshold values ⁇ and ⁇ .
  • p0 ′ (p2 + 2 ⁇ p1 + 2 ⁇ p0 + 2 ⁇ q0 + q1) / 8
  • p1 ' (p2 + p1 + p0 + q0) / 4
  • p2 ′ (2 ⁇ p3 + 3 ⁇ p2 + p1 + p0 + q0) / 8 Otherwise, the following filter processing is performed.
  • the BF unit 301 performs the above processing on the boundary of the prediction block and the boundary of the transform block. More specifically, processing is first performed on the vertical boundary between the prediction block and the transform block, and then processing is performed on the horizontal boundary between the prediction block and the transform block. Thereby, a post-BF pixel value xd is obtained.
  • the BF unit 301 configured as described above can perform block noise reduction processing in which the filter strength is adjusted so that a strong filter is not applied when the edge strength or activity of the boundary is large.
  • the BF unit 301 may further perform other adaptive block noise reduction processing. For example, there is a difference between an intra block and an inter block, a difference in motion vector length between the target block and an adjacent block, and whether or not residual information of the target block is zero.
  • the BF unit 301 performs deblocking filter processing to reduce block noise.
  • deblocking filter processing a conventional general processing can be used.
  • a method using DCT can be used.
  • the BF unit 301 changes processing according to the positional relationship with the block boundary. Specifically, the pixel P0, the pixel P1, and the pixel P2 having different distances from the boundary perform different processes. Further, the BF unit 301 uses different processing depending on the boundary state (edge strength d, activity ap). As an input signal of the adaptive filter unit 302, by providing a BF unit 301 that performs processing according to the positional relationship with the block boundary and processing according to the boundary state, it is adapted to the positional relationship with the block boundary and the state with the boundary. In addition, it is possible to control by performing deblocking intensity adjustment adapted to the characteristics of the sequence and the frame, and the effect of the adaptive filter unit 302 can be increased. Compared with the case where the weighting coefficient of the adaptive filter unit 302 that varies depending on the positional relationship with the block boundary and the state of the boundary is used, it is possible to reduce the code amount of the weighting coefficient. Can be obtained.
  • FIG. 5 is a diagram showing a second configuration (BF unit 301 ′) of the BF unit.
  • the BF unit 301 includes a vertical boundary value reference unit 501, a horizontal boundary value reference unit 502, a target pixel reference unit 503, a BF weight calculation unit 504, and a weighted average unit 505.
  • FIG. 15 is a schematic diagram for explaining pixels referred to in the processing of the BF unit 301 ′.
  • B is a prediction block boundary or a transform block boundary.
  • XT represents a pixel to be filtered
  • XV represents a vertical block boundary pixel
  • XH represents a horizontal block boundary pixel.
  • the BF unit 301 ′ generates an image using XT, XV, and XH.
  • the vertical boundary value reference unit 501 refers to a pixel at a vertical boundary closest to the filter target pixel, which is a pixel of a block different from the block to which the filter target pixel belongs. That is, condition 1: a pixel in a block different from the filter target pixel, condition 2: a pixel having the same X coordinate as the filter target pixel, condition 3: a boundary pixel of the prediction block, or a boundary pixel of the transform block Among the pixels, the pixel value of the pixel closest to the filter target pixel is referred to. However, when there are a plurality of closest pixels, one is selected by a predetermined process (for example, a pixel having the smallest X coordinate and Y coordinate). This pixel is the vertical boundary pixel XV, and this pixel value is xv.
  • the horizontal boundary value reference unit 502 refers to a pixel of a block different from the block to which the filter target pixel belongs, and a pixel at the horizontal boundary of the prediction block and the transform block closest to the filter target pixel. This pixel is the horizontal boundary pixel XH, and this pixel value is xh.
  • the target pixel reference unit 503 refers to the pixel value of the filter target pixel XT. Let this pixel value be xt.
  • the BF weight calculation unit 504 calculates the weight used by the weighted average unit 505 according to the following procedure.
  • the BF weight calculation unit 504 calculates the distance Dv between the filter target pixel and the vertical boundary pixel and the distance Dh between the filter target pixel and the horizontal boundary pixel.
  • the weight p (pv or ph) is calculated from the distance D (Dv or Dh) according to the following equation according to the size of the transform block of the target block.
  • D is replaced with Dv and p is replaced with pv
  • Dh is calculated with ph.
  • the total is a value used for converting the value into an integer, and it is preferable to use about 256 (and so on).
  • the weight pt is calculated by the following equation (5-2).
  • the weighted average unit 505 calculates the pixel value xd of the post-BF image from the weighted average of the weights pt, pv, and ph calculated by the BF weight calculating unit 504, the filter target pixel value xt, the vertical boundary pixel value xv, and the horizontal boundary pixel value xh. Is calculated. The calculation is performed by the following equation (5-3).
  • the second BF unit 301 ′ performs the above processing on the boundary of the prediction block and the boundary of the transform block.
  • a value such as total ⁇ 4 may be used in place of total in the weight calculation after the equation (5-1).
  • the dynamic range of the post-BF pixel is quadrupled, but the post-BF image with higher accuracy can be used by the adaptive filter unit 302.
  • the weighting factor in the adaptive filter unit 302 has fixed decimal precision (realized by converting the decimal precision to a total by integer), and uses a precision equal to or higher than the integer precision. Therefore, a highly accurate reference image value can be used effectively. Therefore, expansion of the dynamic range of the post-BF image improves the accuracy of encoding distortion reduction.
  • clip (x, y, z) indicates an operation for clipping z to be greater than or equal to x and less than or equal to y.
  • Pixel values that are close in position are often close to each other (xv ⁇ xh ⁇ xt).
  • ph + pv + pt 0, that is, when the sum of weights applied to pixels is 0, the weighted average value is 0. Close to.
  • the dynamic range of the pixel value becomes smaller correspondingly to the correction amount of the pixel value or the difference between the pixel values.
  • the post-BF image can be stored with 8 bits and -128 to 127). In this way, when the post-BF image is stored in the temporary buffer, the required amount of memory in the temporary buffer can be reduced.
  • FIG. 14 is a block diagram showing a third configuration (BF unit 301′b) of the BF unit.
  • the BF unit 301′b includes a second vertical boundary value reference unit 501b, a second horizontal boundary value reference unit 502b, a second target pixel reference unit 503b, and a second BF weight calculation unit. 504b and a second weighted average unit 505b.
  • FIG. 15B is a schematic diagram for explaining a pixel referred to in the processing of the BF unit 301′b.
  • B is a prediction block boundary or a transform block boundary.
  • XT is a filter target pixel
  • XV1 and XV2 are vertical block boundary pixels
  • XH1 and XH2 are horizontal block boundary pixels.
  • the BF unit 301′b generates a post-BF image with reference to the target image itself XT and boundary pixels XV1, XV2, XH1, and XH2 of adjacent blocks.
  • the second vertical boundary value reference unit 501b refers to two vertical boundary pixels existing on the left and right of the filter target pixel. These pixels are XV1 and XV2, and the pixel values are called xv1 and xv2.
  • the second horizontal boundary value reference unit 502b refers to two horizontal boundary pixels existing above and below the filter target pixel. These pixels are XH1 and XH2, and the pixel values are called xh1 and xh2.
  • the second target pixel reference unit 503b refers to the pixel value of the filter target pixel. This pixel is XT, and the pixel value is called xt.
  • the second BF weight calculation unit 504b calculates the weights pt, pv1, pv2, ph1, and ph2 used in the second weighted average unit 505b according to the following procedure.
  • the second BF weight calculating unit 504b calculates the distances Dv1 and Dv2 between the filtering target pixel XT and the vertical boundary pixels XT1 and XT2, and further calculates the distances Dh1 and Dh2 between the filtering target pixel XT and the horizontal boundary pixels XV1 and XV2. calculate.
  • the weights pv1, pv2, ph1, and ph2 are calculated from the distances Dv1, Dv2, Dh1, and Dh2 according to the size of the conversion block of the target block.
  • the weight pt is calculated by the following formula.
  • pt (total-ph1-pv1-ph2-pv2)
  • the weight pt is calculated by the following equation using total ⁇ 4 instead of total.
  • the weight pt can be calculated by the following equation (5-10) so that the sum of the pixel weights becomes 0, which is also suitable for dynamic suppression of the post-BF image xd.
  • the second weighted average unit 505b includes the weights pt, pv1, pv2, ph1, and ph2 calculated by the second BF weight calculating unit 504b, the filter target pixel value xt, the vertical boundary pixel values xv1 and xv2, and the horizontal boundary pixels.
  • the pixel value x ′ of the post-BF image is calculated from the weighted average of the values xh1 and hv2. The calculation is performed by the following equation (5-11).
  • the dynamic range of the weight is preferably limited to the range of the decoded image value. Since the dynamic range is 0 to 255 when the bit depth of the decoded image is 8, the range of xd is limited by the following expression.
  • the dynamic range of the post-BF image xd can be suppressed, but in order to further reduce the memory for storing the post-BF image xd, In this way, it is preferable to confirm that the data can be clipped and stored with a predetermined bit width.
  • the BF unit is not limited to the above process, and may be a process that calculates a pixel value for referring to an adaptive filter using a pixel value near a boundary between blocks adjacent to the target block.
  • the dynamic range of the deblocking filter process may be expanded as the process of the BF unit.
  • the BF pixel generation unit 403 of the BF unit 301 shown in FIG. 4 may be replaced with the following BF pixel generation unit 403 ′.
  • the following filter processing is performed.
  • p0 ′ (p2 + 2 ⁇ p1 + 2 ⁇ p0 + 2 ⁇ q0 + q1)
  • p1 ′ (p2 + p1 + p0 + q0) ⁇ 2
  • p2 ′ (2 ⁇ p3 + 3 ⁇ p2 + p1 + p0 + q0) ⁇ 2 Otherwise, the following filter is applied.
  • p0 ′ (2 ⁇ p1 + p0 + q0) ⁇ 2
  • the pixel value of the part which does not perform the said process is also 8 times.
  • the difference between the output and input of the deblocking filter processing that is, the correction amount of the input signal in the block noise reduction processing may be used as the BF unit. More specifically, when the input of the deblocking filter process is expressed as IN and the output is expressed as BF, a process of outputting an image having a value ⁇ BF expressed by the following formula as a pixel value may be used for the BF unit. .
  • ⁇ BF BF-IN More specifically, the BF pixel generation unit 403 of the BF unit 301 illustrated in FIG. 4 may be replaced with the following BF pixel generation unit 403 ′′.
  • the following filter processing is performed.
  • p0 ′ clip ( ⁇ 127, 128, (p2 + 2 ⁇ p1 + 2 ⁇ p0 + 2 ⁇ q0 + q1) ⁇ 8 ⁇ p0)
  • p1 ′ clip ( ⁇ 127, 128, (p2 + p1 + p0 + q0) ⁇ 2 ⁇ 8 ⁇ p1)
  • p2 ′ clip ( ⁇ 127, 128, (2 ⁇ p3 + 3 ⁇ p2 + p1 + p0 + q0) ⁇ 2 ⁇ 8 ⁇ p2) Otherwise, the following filter is applied.
  • p0 ′ clip ( ⁇ 127, 128, (2 ⁇ p1 + p0 + q0) ⁇ 2 ⁇ 8 ⁇ p0) Note that the pixel value of the portion where the above processing is not performed is 0.
  • the dynamic range of the post-BF image is suppressed even when the dynamic range is expanded.
  • the post-BF image can be stored with a small number of bits (here, 8 bits, -128 to 127). In this way, when the post-BF image is stored in the temporary buffer, the required amount of memory in the temporary buffer can be reduced.
  • a process for performing a process of enhancing block noise may be used.
  • a process of outputting an image having a value ⁇ BF expressed by the following expression as a pixel value may be used for the BF unit. Since the inverse operation of the process of emphasizing block noise results in block noise reduction, even with an appropriate block noise enhancement filter, it is possible to obtain a block noise reduction effect and a deblocking strength adjustment effect by weighting the adaptive filter unit 302. it can.
  • ⁇ BF ′ (BF ⁇ IN) ⁇ 2 + IN
  • pixel values having such different characteristics are used as input signals to the adaptive filter unit 302, the effect of reducing distortion can be increased.
  • the BF unit 301 ′ and the BF unit 301′b generate reference pixels of the adaptive filter target pixel using the pixel values of the adjacent blocks, which means that input signals having different characteristics are prepared.
  • the BF unit 301 ′ and the BF unit 301′b change processing according to the positional relationship with the block boundary.
  • the adaptive filter unit 302 requires different sets of weighting factors for each position in order to perform different processing depending on the positional relationship, and the weighting factor increases.
  • the boundary and pixels near the boundary are referred to through the BF portion 301 ′ and the BF portion 301′b.
  • the process of approaching the boundary pixel value reduces the block noise, so that the block noise reduction effect can be obtained in this configuration (conversely, the block noise reduction effect can be weakened by moving away from the boundary pixel value).
  • the post-BF image is used as an input to the adaptive filter unit 302, it is possible to adjust the intensity of block noise reduction in the adaptive filter (that is, a deblocking intensity adjustment effect is obtained).
  • the adaptive filter unit 302 includes an adaptive weighting unit 701, a post-BF pixel value adaptive weighting unit 702, and a shift / division unit 703.
  • the adaptive filter unit 302 performs a filter process expressed by the following equation (7-1) as a whole.
  • x ′ (x, y) ( ⁇ a (i, j) ⁇ x (x + i, y + j) + ⁇ b (i, j) ⁇ xd (x + i, y + j) + o + total2) >> shift ... (7-1)
  • x (x, y) is a pre-BF pixel value
  • xd (x, y) is a post-BF pixel value
  • x ′ (x, y) is an adaptive filter post-pixel value.
  • (i, j) indicates a relative position from the position (x, y) of the filter target pixel.
  • a (i, j) and b (i, j) are respectively a weighting factor applied to the pre-BF pixel value corresponding to the relative position (i, j), and the post-BF pixel value corresponding to the relative position (i, j).
  • o is an offset
  • shift is a shift value for performing division.
  • ⁇ in the first term is the sum from ⁇ M to M for i and j in (i, j)
  • ⁇ in the second term is from ⁇ N for i and j in (i, j). It means an operation that takes a sum up to N.
  • the relationship between the weighting factors a (i, j) displayed by the dimension index will be described.
  • k0 obtained by the following equation is calculated from the two-dimensional index (i, j), and k is further calculated from k0 to obtain a one-dimensional index k.
  • ak referred to using the value k after being converted from the two-dimensional index (i, j) to the one-dimensional index k is used.
  • bk referred to by using the value k after being converted from the two-dimensional index (i, j) to the one-dimensional index k is used in the operation represented as b (i, j).
  • the adaptive filter unit 302 uses the adaptive weighting unit 701, the post-BF pixel value adaptive weighting unit 702, and the shift / division unit 703 to perform the processing of Expression (7-1) described above.
  • the adaptive weighting unit 701 executes addition of the first term of the equation (7-1) and the offset, that is, the following equation.
  • the post-BF pixel value adaptive weighting unit 702 executes the second term of Equation (7-1), that is, the following calculation.
  • the shift / divide unit 703 executes division rdiv (x) by a rounded shift operation.
  • rdiv (x) can be expressed by the following function when the input signal is x.
  • Equation (7-1) is simplified to the following Equation (7-2). An adjustment effect can be obtained.
  • Expression (7-4) is a simple multiplication, the calculation amount of the post-BF pixel value adaptive weighting unit 702 is small.
  • limiting the range of pixels after BF can reduce the reference range of decoded pixels that are referred to in total in the loop filter processing of a certain pixel (described later). This has the effect of reducing the amount of data transferred with the frame memory (described later). Further, in this configuration, since the calculation related to the pre-BF pixel value corresponds to most of the adaptive filter processing, there is an effect that parallelism described later is improved.
  • the loop filter unit 120 ′ instead of the post-BF pixel value adaptive weighting unit 702, a configuration is provided that includes a multiplication unit 702 ′ that only weights one post-BF pixel. That is, only one pixel is referred to as the post-BF pixel for the loop filter processing (one-pixel adaptive filter processing) of one pixel.
  • the multiplication unit 702 ′ it is not necessary to input the number of taps N, and only one weight coefficient b is input.
  • the adaptive filter unit 302 including the multiplication unit 702 ′ is referred to as an adaptive filter unit 302 ′
  • the loop filter including the adaptive filter unit 302 ′ is referred to as a loop filter 120 ′
  • the moving picture decoding apparatus 1 including the loop filter 120 ′ is referred to as a moving picture decoding apparatus 1 ′.
  • x ′ (x, y) (a ⁇ x (x, y) + b ⁇ xd (x, y) + o + total2) >> shift ... (7-5)
  • the deblocking strength adjustment effect can be obtained with only three weighting factors a, b, and o.
  • optimum values can be calculated by a method with a small amount of calculation such as a least square method.
  • x ′ (x, y) (a ⁇ x (x, y) + (total ⁇ a) ⁇ xd (x, y) + total 2) >> shift ... (7-6)
  • the deblocking strength adjustment effect can be obtained with one weight coefficient a.
  • the adaptive weighting unit 701 simply outputs offset, and the post-BF pixel value adaptive weighting unit 702 simply outputs zero.
  • x ′ xd ⁇ c2 ⁇ (xd ⁇ x) (7-8)
  • xd ⁇ x is a correction amount of x by the BF process. Therefore, the term c2> 0 relating to this coefficient corresponds to weakening the correction, and c2 ⁇ 0 corresponds to strengthening the correction.
  • the deblocking strength adjustment effect is obtained by the relationship between the weighting coefficient applied to the pre-BF pixel value and the weighting coefficient applied to the post-BF pixel value.
  • FIG. 12 shows a loop filter that applies a spatial adaptive filter to pixel values after deblocking processing (conventional method 1, FIG. 17A), and a loop that applies a spatial adaptive filter to pixel values before deblocking processing.
  • the comparison target is a case where a loop filter not including an adaptive filter (a loop filter including only a BF unit) is used, and the encoding efficiency is the SN ratio and code when encoding is performed with four quantization parameters.
  • This is an evaluation of how much the code amount can be reduced (rate) when the amount is measured and the S / N ratio is assumed to be constant (referred to as BDRATE). It can be said that the larger the code amount reduction rate, the higher the effect of improving the coding efficiency.
  • the moving picture decoding apparatus 1 ′ having this configuration can obtain the maximum effects of reducing the reference range of the decoded pixels, reducing the data transfer amount with the frame memory, and improving the parallelism in addition to improving the encoding efficiency. .
  • FIG. 8 is a diagram for explaining parallel processing in the loop filter 120.
  • FIG. 8 shows an operation of performing loop filter processing in parallel using two calculation units (calculation unit # 1 and calculation unit # 2). As shown in FIG. 8, post-BF image generation processing in the BF unit is performed in the calculation unit # 1, and weighting is performed on the pre-BF image (loop filter unit 120 input image) performed in the adaptive filter unit 302 in the calculation unit # 2. Thus, loop filter processing can be performed in parallel.
  • the calculation unit # 2 performs the weighting process and the shift / division process for the post-BF image, which are other loop filter processes, this may be performed by the calculation unit # 1.
  • a part where parallel computation can be performed is shown as a parallel processable section.
  • the processing amount of the weighting process depends on the number of taps, when the number of taps M in the pre-BF weighting process is sufficiently larger than the number N of taps in the post-BF weighting process, many of the adaptive filter processes are pre-weighted. Processing will take up. In this case, almost the same effect can be obtained as the adaptive filter and the BF process can be executed simultaneously. In this case, a large parallel effect can be obtained.
  • a large frame memory is placed in a large external memory. Since large data cannot be placed in the internal memory, processing is performed in units of relatively small blocks such as 16 ⁇ 16 and 32 ⁇ 16. That is, processing is performed after the data necessary for the block to be processed is transferred to the internal memory, and the processed block is transferred to the external memory. By repeating this processing, processing for one frame is performed.
  • FIG. 9 is a diagram for explaining a reference range of decoded pixels used in the loop filter unit 102 (internal BF unit 301 and adaptive filter unit 302) according to the embodiment of the present invention.
  • a case where the loop filter process is performed in units of blocks (in FIG. 9, a filter target block) will be described as an example.
  • a unit is a region surrounded by a prediction block boundary or a transform block boundary.
  • the minimum size of the prediction block and the transform block is 4 ⁇ 4, it is appropriate to use a multiple of 16 ⁇ 16 or 32 ⁇ 16 as the filter target block size.
  • the filled area indicates the filter target block
  • B indicates the boundary of the filter target block
  • FIG. 18 is a diagram for explaining a range of a decoded image used in a conventional loop filter. Also in FIG. 18, B indicates the boundary of the filter target block.
  • the area surrounded by the dotted line in FIG. 9 indicates the range of the decoded image necessary for performing the BF process on the boundary B of the filter target block.
  • D pixels are required from the boundary is shown in the BF processing.
  • the area surrounded by the thick solid line around the dotted line in FIG. 9 indicates the range of the decoded image necessary for performing the BF process on the boundary B of the filter target block.
  • N2 (N + 1) / 2.
  • a decoded image of D pixels is required in addition to the range, and thus a decoded image up to a position separated by N2 + D pixels from the boundary B in total is required.
  • the spatial adaptive filter when used for the post-BF pixel, the range (reference range) of the decoded image necessary for the loop filter processing of the filter target block becomes large. More specific description will be given below.
  • FIG. 18 shows an example of the conventional loop filter shown in FIG.
  • the process of the deblocking filter unit requires D pixels around B as indicated by the dotted line, and the process of the adaptive filter unit 302 requires N2 + D pixels around B as indicated by the thick solid line. Since N2 + D> D, the reference range of the loop filter is N2 + D pixels around B.
  • FIG. 9A shows a general case of the loop filter 120 of the present invention.
  • FIG. 9A is a diagram in the case of N2 + D> M2, and the reference range of the loop filter indicated by a thick solid line is N2 + D pixels around B.
  • the processing of the BF unit 301 requires D pixels around B
  • the processing of the adaptive filter unit 302 requires MAX (D, M2) pixels around B.
  • FIG. 9B is a diagram in the case of M2> D, and the reference range of the loop filter indicated by a thick solid line is M2 pixels around B.
  • a large overlap of necessary decoded images in the BF unit 301 and the adaptive filter unit 302 means that a region where the same decoded image can be used in the BF unit 301 and the adaptive filter unit 302 is large. This can reduce the range of the image referred to in a certain filter target block, and at the same time has the following effects on data transfer.
  • FIG. 10 is a diagram for explaining data transfer of the moving picture decoding apparatus 1 according to the embodiment of the present invention.
  • FIG. 19 is a diagram for explaining data transfer of a moving image decoded value according to the prior art.
  • FIG. 19A shows a case where the decoding process, the deblocking filter process, and the adaptive filter process are performed as separate processes by separate transfers. In this case, since data transfer between the external memory and the internal memory is required for each processing, the data transfer amount as a whole is very large. On the other hand, if multiple processes are performed in one transfer, external data transfer for intermediate data (temporary data) and internal data transfer for intermediate data that are required in the middle of the process are no longer required. Can be reduced.
  • the conventional technique performs the decoding process and the deblocking filter process with a single transfer as shown in FIG.
  • FIG. 10A shows a case where the decoding process, the deblocking filter process, and the adaptive filter process are separately performed in the moving picture decoding apparatus 1 ′ according to the embodiment of the present invention.
  • the decoding process, the deblocking filter process, and the adaptive filter process are separately performed in the moving picture decoding apparatus 1 ′ according to the embodiment of the present invention.
  • FIG. 9B in this configuration, since the overlapping of the pixel ranges required for the deblocking filter processing and the adaptive filter processing is large, the data reduction effect is large, and FIG.
  • the amount of reduction in 10 (b) is larger. In the case of FIG.
  • the decoding process and the deblocking filter process are executed by one transfer, but the data necessary for the deblocking filter process includes extra data in addition to the data necessary for the decoding process. There is an increase in the data transfer amount because it is necessary.
  • the data referred to in the deblocking filter process is included in the data referred to in the adaptive filter process, so there is no increase in the data transfer amount.
  • the decoding process, the deblocking filter process, and the adaptive filter process in one transfer.
  • the data transfer amount can be further reduced.
  • FIG. 2 is a block diagram showing a configuration of the moving picture encoding apparatus 2.
  • the same members as those in the moving image encoding device 1 are denoted by the same reference numerals, and the description thereof is omitted.
  • the moving image encoding apparatus 2 includes a prediction unit 111, a conversion unit 112, a quantization unit 113, a variable length encoding unit 114, an inverse quantization unit 115, and an inverse conversion unit 116.
  • the moving image coding apparatus 2 includes a loop filter unit 120 that reduces distortion of a locally decoded image stored in the frame memory 117, and an adaptive filter information storage unit that stores adaptive filter information for controlling the loop filter unit 120. 119.
  • a loop filter unit 120 that reduces distortion of a locally decoded image stored in the frame memory 117
  • an adaptive filter information storage unit that stores adaptive filter information for controlling the loop filter unit 120. 119.
  • the image whose image is input to the moving image encoding device 2 is decomposed into blocks, and the following processing is performed.
  • the prediction unit 111 generates a prediction block that approximates the input block.
  • the subtraction unit 107 calculates a difference value block that is a difference value between the input block and the prediction block output from the prediction unit 111.
  • the conversion unit 112 calculates a conversion coefficient by DCT conversion or the like for the difference value block input from the subtraction unit 107.
  • the quantization unit 113 quantizes the transform coefficient according to the step determined by the quantization step.
  • the quantized transform coefficient is encoded by the variable length encoding unit 114 and output to the outside.
  • the inverse quantization unit 115 inversely quantizes the quantized transform coefficient.
  • the inverse transform unit 116 inversely transforms the inversely quantized transform coefficient to calculate a residual block.
  • the adding unit 109 calculates the sum of the residual block and the prediction block and reproduces the input block. The reproduced block is stored in the frame memory 117.
  • the adaptive filter information calculation unit 118 calculates adaptive filter information.
  • the calculated adaptive filter information is stored in the adaptive filter information storage unit 119 and then output to the variable length coding unit 114.
  • the variable length coding unit 114 performs not only information indicating a prediction method and transform coefficients but also variable length coding of adaptive filter information and outputs the result.
  • the calculated adaptive filter information is stored in the adaptive filter information storage unit 119.
  • the loop filter unit 120 reads the adaptive filter information stored in the adaptive filter information storage unit 119 and performs filter processing on the locally decoded image stored in the frame memory 117 according to the value.
  • the filtered image is stored again in the frame memory 117.
  • “f” is an abbreviation of “float”, which means that a weighting coefficient is calculated as a decimal number in the least square method.
  • ⁇ 2 indicates a square.
  • the first ⁇ is the sum for all (x, y), the first term ⁇ is the sum from ⁇ M to M for i and j in (i, j), and the last ⁇ is (i, j) Of i and j in each of these means an operation that takes the sum of -N to N.
  • the equation (8-1) is corrected to the following equation (8-2) using the weighting factors afk and bfk and the offset of as parameters.
  • i and j are calculated from k0 and k0 ′ using the following equations.
  • equation (8-2) can be expressed as equation (8-3).
  • EQUATION (8-3) is regarded as an expression of parameters afk, bfk, and of, and partial differentiation is performed on each parameter, and this is set to zero.
  • the number of parameters (M ⁇ M + 1) / 2 + (N ⁇ N + 1) / 2 + 1 simultaneous equations called normal equations is obtained.
  • the optimum estimated value afe of afk and the optimum estimated values bfe and of of bfk are obtained. These sets of weighting factors are called estimated values zfe.
  • the pixel value xd after BF is calculated by operating the BF unit 301 in the loop filter unit 120.
  • the calculation of the least square method is performed in advance by setting the tap number M for the pixel value before BF and the tap number N for the pixel value before BF as specific values.
  • the least square method is performed on all possible combinations of M and N by the processing expressed by the following pseudo code, and the optimal combination Optimization is performed by selecting a combination of M and N.
  • a program for realizing each function of the video decoding device and the video decoding device is recorded on a computer-readable recording medium, and the program recorded on the recording medium is recorded.
  • the video decoding device or the video decoding device may be controlled by being read and executed by a computer system.
  • the “computer system” includes an OS and hardware such as peripheral devices.
  • the “computer-readable recording medium” means a storage device such as a flexible disk, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system.
  • the “computer-readable recording medium” means that a program is dynamically held for a short time, like a communication line when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In this case, it is intended to include those that hold a program for a certain period of time, such as a volatile memory inside a computer system serving as a server or a client in that case.
  • the program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system. .
  • (Configuration of loop filter unit 120) 20 is a block diagram illustrating the configuration of the loop filter unit 120 illustrated in FIG. 3 including the internal configuration of the adaptive filter unit 302 illustrated in FIG. As illustrated in FIG. 20, the loop filter unit 120 includes a BF unit 301 and an adaptive filter unit 302.
  • the loop filter unit 120 includes a BF unit 301 and an adaptive filter unit 302.
  • a local decoded image is input to the loop filter unit 120
  • the loop filter unit 120 includes The decoded image is input.
  • the locally decoded image and the decoded image are described as “decoded image X” without being distinguished from each other.
  • the decoded image X is an image generated through orthogonal transform (for example, DCT transform) / quantization / inverse quantization / inverse orthogonal transform (for example, inverse DCT transform). Therefore, the decoded image X may include block noise in which the pixel value (luminance or color difference) changes discontinuously at the boundary of the orthogonal transform unit.
  • a prediction image generation unit (prediction unit) Block noise can also occur at the boundary of.
  • the BF unit 301 is a filter for removing such block noise.
  • the BF unit 301 is a smoothing filter that selectively acts on a block boundary (a boundary of a transform unit or a boundary of a prediction unit).
  • a filter is referred to as a “boundary filter” or a “boundary utilization filter”.
  • the filter calculation by the BF unit 301 includes a large amount of calculation in order to adaptively adjust the filter strength in addition to including non-linear calculation such as condition evaluation in an if statement. For example, in the decoding process in H264 / AVC, most of the processing time may be spent on the filter calculation by the deblocking filter.
  • the details of the BF unit 301 are as described above.
  • the loop filter unit 120 is a combination of the BF unit 301 and the adaptive filter unit 302.
  • the adaptive filter unit 302 included in the loop filter unit 120 includes an adaptive weighting unit 701 (hereinafter referred to as “first linear filter unit 701”) and a post-BF pixel adaptive weighting unit 702 (hereinafter referred to as “first linear filter unit 701”).
  • first linear filter unit 701 an adaptive weighting unit 701
  • second linear filter unit 702 a post-BF pixel adaptive weighting unit 702
  • adding unit 704 As shown in FIG. 7, a shift / divide unit 703 may be provided after the adder 704. However, the operation of the shift / divide unit 703 is not essential in the present invention, and is omitted here.
  • a 1 , a 2 ,..., A M ⁇ M are filter coefficients that are adaptively set for each filter coefficient setting unit (for example, slice) in the moving picture coding apparatus 2, and o is the same.
  • Offset value (DC component) The number of taps M of the first linear filter unit 701 may be 1 as described above, but hereinafter, it is assumed that it is a natural number of 2 or more. That is, the first linear filter unit 701 is a spatial filter.
  • X (u, v) is a pixel value in the pixel (u, v) of the decoded image X before the deblocking filter.
  • the reference region U is a square region centered on the pixel (x, y)
  • the reference pixel value group ⁇ X 1 , X 2 ,..., X M ⁇ M ⁇ is represented by ⁇ X (u, v)
  • the reference region U is a square region having the pixel (x, y) as the vertex at the upper left corner
  • the reference pixel value group ⁇ X 1 , X 2 ,..., X M ⁇ M ⁇ is represented by ⁇ X (u, v) It can be written as
  • a rhombus region composed of pixels (u, v) whose city area distance (Manhattan distance) from the pixel (x, y) is not more than a predetermined value may be used as the reference region U.
  • the reference region U may be anything as long as it includes the pixel (x, y), and is not limited to the example illustrated here.
  • the tap number N of the second linear filter unit 702 is a natural number of 1 or more. That is, the second linear filter unit 702 does not need to be a spatial filter.
  • ⁇ I a set of pixel values of pixels belonging to a region V including the pixel (x, y) (hereinafter referred to as “reference region V”), and ⁇ Xd (u, v)
  • Xd (u, v) is a pixel value in the pixel (u, v) of the decoded image Xd after the deblocking filter.
  • the reference region V is a square region centered on the pixel (x, y)
  • the reference pixel value group ⁇ Xd 1 , Xd 2 ,..., Xd N ⁇ N ⁇ is represented by ⁇ Xd (u, v)
  • the reference region V is a square region having the pixel (x, y) as a vertex at the upper left corner
  • the reference pixel value group ⁇ Xd 1 , Xd 2 ,..., Xd N ⁇ N ⁇ is represented by ⁇ X (u, v) It can be written as
  • a rhombus region composed of pixels (u, v) in which the city area distance (Manhattan distance) from the pixel (x, y) is equal to or less than a predetermined threshold may be used as the reference region V.
  • the reference region V may be anything as long as it includes the pixel (x, y), and is not limited to the example illustrated here.
  • the adding unit 704 adds the output image S1 of the first linear filter unit 701 and the output image S2 of the second linear filter unit 702 to obtain a composite image S.
  • the pixel value S (x, y) in the pixel (x, y) of the composite image S obtained by the adding unit 704 is the pixel value S1 in the pixel (x, y) of the output image S1 of the first linear filter unit 701. (X, y) and the sum S1 (x, y) + S2 (x, y) of the pixel value S2 (x, y) in the pixel (x, y) of the output image S2 of the second linear filter unit 702 Become.
  • the loop filter unit 120 outputs the composite image S obtained by the adding unit 704 to the outside.
  • the composite image S is also referred to as an output image S.
  • the pixel value S (x, y) in the pixel (x, y) of the output image S of the loop filter unit 120 can be expressed as follows.
  • the structure which adds the offset o in (a) Formula by the 1st linear filter part 701 was demonstrated here, it replaced with the structure which adds the offset o in (a) Formula by the 2nd linear filter part 702. May be.
  • a point to be particularly noted is that a part of the adaptive filter unit 302 (second linear filter unit 702) is arranged after the BF unit 301 and is output from the BF unit 301. While acting on the decoded image Xd after the deblocking filter processing, a part of the adaptive filter unit 302 (first linear filter unit 701) is arranged in parallel with the BF unit 301 and is input to the BF unit 301. The point is that it is applied to the decoded image X before the filter processing.
  • the number of taps N of the second linear filter unit 702 can be reduced without reducing the encoding efficiency. It becomes possible. Actually, even if the number of taps N of the second linear filter unit 702 is decreased to 1, the encoding efficiency does not decrease as shown in FIG.
  • the filter operation in the second linear filter unit 702 cannot be parallelized with the filter operation in the BF unit 301, whereas the filter operation in the first linear filter unit 701 is in parallel with the filter operation by the BF unit 301. Note that this can be done. That is, in an environment including two or more calculation means, even if the number of taps M of the first linear filter unit 701 increases and the amount of calculation increases, the number of taps N of the second linear filter unit 702 is If the calculation amount is reduced and the calculation amount is reduced, the entire calculation time can be shortened.
  • the loop filter unit 120 can reduce the code amount reduction rate. Speeding up by parallelization can be realized without incurring a decrease.
  • the loop filter unit 120a includes (1) a first mode in which the output image S2 of the second linear filter unit 702 is the output image S, and (2) an output of the first linear filter unit 701.
  • the filter device is operable in the second mode in which the output image S is the combined image S obtained by adding the image S1 and the output image S2 of the second linear filter unit 702.
  • the mode in which the loop filter unit 120a operates is controlled by mode designation information (hereinafter also referred to as “alf_parallel_mode”) included in the filter parameter provided from the video encoding device 2.
  • FIG. 21 is a block diagram illustrating an operation state of the loop filter unit 120a according to the present modification.
  • FIG. 21A shows an operation state in the first mode
  • FIG. 21B shows an operation state in the second operation mode.
  • the function of the first linear filter unit 701 stops, and the output image S2 of the second linear filter unit 702 serves as the output image S and the loop filter unit 120a.
  • the pixel value S (x, y) in the pixel (x, y) of the output image S can be expressed as in equation (b).
  • the number of taps N of the second linear filter unit 702 is variable, and is based on tap number designation information (hereinafter also referred to as “alf_length_luma_minus5_div2”) included in the filter parameter provided from the video encoding device 2. It is determined.
  • alf_length_luma_minus5_div2 is 2-bit binary data representing a natural number of 0 or more and 3 or less.
  • the image S is output as an output image S from the loop filter unit 120a. That is, the pixel value S (x, y) in the pixel (x, y) of the output image S can be expressed as in equation (c).
  • the number of taps M of the first linear filter unit 701 is variable and is determined by the tap number designation information described above.
  • alf_length_luma_minus5_div2 0 (00), 1 (01), 2 (10), 3 (11) (in binary notation in parentheses)
  • the loop filter unit 120a uses these two calculation means to perform a filter calculation by the BF unit 301, a filter calculation (product-sum calculation) by the first linear filter unit 701, and Can be executed in parallel.
  • the number of taps N of the second linear filter unit 702 is set to 1, so that the filter calculation in the second linear filter unit 702 is extremely light processing in the second mode. Therefore, in the second mode, the filter operation by the BF unit 301 and the filter operation by the adaptive filter unit 302 can be almost completely parallelized.
  • FIG. 22 is a diagram illustrating a configuration example of the filter parameter (alf_param) provided from the video encoding device 2.
  • the filter parameters according to this configuration example are filter parameters provided from the video encoding device 2 for each slice, and a plurality of syntaxes that define the operation of the adaptive filter unit 302 for the target slice.
  • Adaptive_loop_filter_flag is information that specifies whether or not to use the adaptive filter 11 in the target slice.
  • adaptive_loop_filter_flag 0
  • the loop filter unit 120a outputs the decoded image Xd after the deblocking filter as the output image S.
  • alf_pred_coef_mode is information for designating whether to predictively encode the filter coefficient.
  • Alf_coeff_luma [i] is information for specifying the filter coefficients of the first linear filter unit 701 and the second linear filter unit 702 and the offset o.
  • N 5 coefficients and one offset of the second linear filter unit 702 are designated.
  • M 5
  • M 25 coefficients of the first linear filter unit 701, one coefficient of the second linear filter unit 702, and one offset c Is specified.
  • the first linear filter unit 701 is a symmetric linear filter
  • the number of coefficients to be specified for the first linear filter unit 701 is (M ⁇ M + 1) / 2.
  • alf_chroma_idc is information indicating whether or not the adaptive filter is applied to the color difference signal
  • alf_length_chroma_minus5_div is information indicating the number of taps of the adaptive filter
  • alf_coeff_chroma [i] is the information of the adaptive filter It is information which shows a filter coefficient and an offset.
  • the loop filter unit 120b includes (1) a first mode in which no upper limit is set for the number of taps N that can be set by the second linear filter unit 702, and (2) a second linear filter.
  • This is a filter device that can operate in the second mode in which the upper limit value Nmax is determined for the number N of taps that can be set by the unit 702.
  • the number of taps of the second linear filter unit 702 is not set to a value larger than Nmax. That is, in the second mode, the filter operation with an excessively high load is not executed in the second linear filter unit 702.
  • FIG. 23 is a block diagram illustrating an operation state of the loop filter unit 120b according to the present modification.
  • FIG. 23A shows the operation state in the first mode
  • FIG. 23B shows the operation state in the second operation mode.
  • variable length tap number designation information alf_length_luma_minus1_div2_2 is used as a moving picture coding device as tap number designation information for designating the number of taps of the second linear filter unit 702. Provided by 2.
  • alf_parallel_mode 0
  • an arbitrary odd number can be decoded as the tap number N of the second linear filter unit 702.
  • 1-bit tap number designation information alf_length_luma_minus1_div2_2 is a moving image code as tap number designation information for designating the tap number of the second linear filter unit 702. Provided to the converter 2.
  • alf_parallel_mode 1
  • 1 or 3 can be decoded as the tap number N of the second filter unit 702.
  • the upper limit value Nmax of the settable tap number N is 3.
  • the filter calculation in the second linear filter unit 702 is a light process in the second mode. Therefore, in the second mode, the filter operation by the BF unit 301 and the filter operation by the adaptive filter unit 302 can be substantially parallelized.
  • the operation mode in which the upper limit value is not set for the number of taps N that can be set by the second linear filter unit 702 is set as the first mode, but the setting of the second linear filter unit 702 is performed.
  • An operation mode in which an upper limit value Nmax ′ is determined for the possible number of taps N may be set as the first mode.
  • 2-bit tap number designation information can be used as the tap number designation information alf_length_luma_minus1_div2_2.
  • filter parameters shown in FIG. 22 can be adapted to this modification by replacing the tap number designation information alf_length_luma_minus5_div2 with tap number designation information alf_length_luma_minus1_div2_1 and alf_length_luma_minus1_div2_2.
  • the loop filter unit 120c according to the present modified example uses the tap number M of the first linear filter unit 701 from the two tap number designation information included in the filter parameter, The tap number N of the second linear filter unit 702 is decoded. However, the operation mode is not switched as in the loop filter 120b according to the second modification.
  • the filter calculation in the second linear filter unit 702 is a light process. Therefore, the filter operation by the BF unit 301 and the filter operation by the adaptive filter unit 302 can be substantially parallelized.
  • the filter parameters shown in FIG. 22 are adapted to the present modification by (1) omitting the mode designation information alf_parallel_mode and (2) replacing the tap number designation information alf_length_luma_minus5_div2 with the tap number designation information alf_length_luma_minus3_div2 and alf_length_luma_minus1_div2. be able to.
  • both the number of taps M of the first linear filter unit 701 and the number of taps N of the second linear filter unit 702 are variable, these two tap numbers are set to two taps.
  • the configuration is determined based on the number designation information, but when only one of the number of taps M of the first linear filter unit 701 and the number of taps N of the second linear filter unit 702 is variable, the variable one A configuration may be adopted in which the number of taps is determined from one tap number designation information. For example, when the number of taps N of the second linear filter unit 702 is fixed to 1 and the number of taps M of the first linear filter unit 701 is variable, the number of taps M of the first linear filter unit 701 is changed. A configuration that is determined based on tap number designation information included in the filter parameter may be considered.
  • Non-Patent Document 3 includes a prediction residual, a prediction image, and a decoded image (a sum of a prediction residual and a prediction image) subjected to a nonlinear denoising filter as an input image of ALF. , A configuration in which a deblocking filter is arranged in the subsequent stage of ALF is shown.
  • Non-Patent Document 3 that is, the configuration for inputting the three input images to the ALF is used as it is, there is a problem that the processing amount and the processing time increase.
  • FIGS. a filter device that can reduce at least one of the processing amount and the processing time even when the number of inputs is 3 while maintaining high coding efficiency is shown in FIGS. This will be described with reference to FIG.
  • FIG. 25 is a block diagram illustrating a configuration of the video decoding device 3 according to the present embodiment.
  • the moving image decoding apparatus 3 includes a variable length encoding / decoding unit 114, an inverse quantization unit 115, an inverse conversion unit 116, a frame memory 117, a prediction unit 111, an addition unit 109, and a loop filter unit. 120.
  • the moving image decoding device 3 is a device that generates a moving image by decoding encoded data.
  • variable-length code decoding unit 114 the prediction unit 111, the inverse quantization unit 115, the inverse transformation unit 116, the addition unit 109, and the frame memory 117 are the same as those of the video decoding device 1, and thus the description thereof is omitted.
  • the loop filter unit 120 will be described.
  • the prediction image generated by the prediction unit 111 is also referred to as a prediction image Pred
  • the residual image generated by the inverse transform unit 116 is a residual image (prediction residual).
  • the decoded image generated by the adding unit 109 is also expressed as a decoded image P.
  • the loop filter unit 120 in the present embodiment performs a noise removal process on the decoded image P to generate a post-BF image (hereinafter also referred to as a post-BF image P_NR in the present embodiment).
  • the loop filter unit 120 in the present embodiment includes (1) the post-BF image P_NR, (2) the predicted image PRED output from the prediction unit 111, and (3) the prediction residual D output from the inverse transform unit 116. Is subjected to adaptive filter processing to generate an adaptive filtered decoded image P_ALF.
  • the loop filter unit 120 includes an adaptive filter memory 362, an adaptive filter unit 363, and a BF unit 364.
  • the BF unit 364 has the same configuration as the BF unit 301 described with reference to FIG.
  • the adaptive filter memory 362 includes memory areas for storing the three types of images used in the adaptive filter unit 363, the predicted image PRED, the predicted residual D, and the post-BF image P_NR. More specifically, a predicted image memory area 366 that stores the predicted image PRED, a residual image memory area 367 that stores the predicted residual D, and a post-BF image memory area 365 that stores the post-BF image P_NR. I have.
  • the adaptive filter unit 363 uses the filter coefficient and the offset included in the adaptive filter information decoded from the encoded data for the predicted image PRED, the prediction residual D, and the post-BF image P_NR. An adaptive filtered process is performed to generate an adaptive filtered decoded image P_ALF, and the generated adaptive filtered decoded image P_ALF is stored in the frame memory 117.
  • the adaptive filter unit 363 can perform adaptive filter processing using any one of a sequence, a picture, and a slice as a processing unit. In other words, the adaptive filter unit 363 can change the processing content of the adaptive filter process for each sequence, each picture, or each slice.
  • the adaptive filter unit 363 performs adaptive filter processing in units of slices will be described.
  • FIG. 26 is a block diagram showing the configuration of the adaptive filter unit 363.
  • the adaptive filter unit 363 includes a prediction pixel value adaptive weighting unit 731, a residual pixel value adaptive weighting unit 741, a post-BF pixel value adaptive weighting unit 702, a shift / divide unit 703, and an addition unit 704. It has.
  • the prediction pixel value adaptive weighting unit 731, the residual pixel value adaptive weighting unit 741, and the post-BF pixel value adaptive weighting unit 702 are respectively a linear filter (unit) 731, a linear filter (unit) ) 741 and linear filter (part) 702.
  • the first output image # 731 is generated.
  • the filter coefficient ci represents a filter coefficient to be multiplied by the pixel value of the predicted image PRED among the filter coefficients included in the adaptive filter information of the encoded data.
  • each ci is represented by c ( u, v).
  • the predicted pixel value adaptive weighting is performed.
  • the unit 731 calculates the pixel value S1 (x ′, y ′) by the following formula (9-1).
  • the coordinates (x, y) may be the same coordinates as the coordinates (x ′, y ′), or different coordinates as long as they have a one-to-one correspondence.
  • c (u, v) represents a filter coefficient to be multiplied by the pixel value SPPred (x + u, y + v) of the predicted image PRED among the filter coefficients included in the adaptive filter information of the encoded data.
  • the filter reference region RPred is set on the predicted image PRED according to the position of the pixel (filter target pixel) that is the target for calculating the filtered pixel value.
  • the predicted pixel value adaptive weighting unit 731 functions as an Np ⁇ Np ′ tap filter that acts on the predicted image PRED.
  • the filter coefficient di represents a filter coefficient to be multiplied by the pixel value of the image indicated by the prediction residual D among the filter coefficients included in the adaptive filter information of the encoded data.
  • each di Is also expressed as d (u, v).
  • the adaptive weighting unit 741 calculates the pixel value S2 (x ′, y ′) by the following equation (9-2).
  • the coordinates (x, y) may be the same coordinates as the coordinates (x ′, y ′), or different coordinates as long as they have a one-to-one correspondence.
  • d (u, v) represents a filter coefficient to be multiplied by the pixel value SD (x + u, y + v) of the image indicated by the prediction residual D among the filter coefficients included in the adaptive filter information of the encoded data.
  • the filter reference region RD is set on the prediction residual D according to the position of the pixel (filter target pixel) that is the target for calculating the filtered pixel value.
  • the residual pixel value adaptive weighting unit 741 functions as an Nd ⁇ Nd ′ tap filter that acts on the prediction residual D.
  • the filter coefficient bi represents a filter coefficient to be multiplied by the pixel value of the post-BF image P_NR among the filter coefficients included in the adaptive filter information of the encoded data.
  • each bi is represented as b. Also expressed as (u, v).
  • the adaptive weighting unit 702 calculates the pixel value S3 (x ′, y ′) by the following equation (9-3).
  • the coordinates (x, y) may be the same coordinates as the coordinates (x ′, y ′), or different coordinates as long as they have a one-to-one correspondence.
  • b (u, v) represents a filter coefficient to be multiplied by the pixel value SPNR (x + u, y + v) of the post-BF image P_NR among the filter coefficients included in the adaptive filter information of the encoded data.
  • the filter reference region RPNR is set on the post-BF image P_NR according to the position of the pixel (filter target pixel) for which the pixel value after filtering is calculated.
  • the post-BF pixel value adaptive weighting unit 702 functions as an N ⁇ N ′ tap filter that acts on the post-BF image P_NR.
  • the adding unit 704 adds each pixel value corresponding to the first output image # 731, the second output image # 741, and the third output image # 702 and the offset o, thereby outputting the output image # 704 is generated. Specifically, assuming that the pixel value of the output image # 704 is represented as So (x, y), the adding unit 704 calculates the pixel value So (x, y) by the following equation (9-4). .
  • the offset o represents an offset included in the adaptive filter information of the encoded data.
  • the shift / divider 703 generates an adaptive filtered decoded image P_ALF by performing a division process by a shift operation with a round on each pixel value of the output image # 704 generated by the adder 704.
  • the specific processing by the shift / divide unit 703 is the same as that in the first embodiment, and thus the description thereof is omitted here.
  • the post-BF pixel value adaptive weighting unit 702 is arranged at the subsequent stage of the BF unit 364, and acts on the post-BF image P_NR output from the BF unit 364, and also the predicted pixel value.
  • the adaptive weighting unit 731 and the residual pixel value adaptive weighting unit 741 are arranged in parallel with the BF unit 364 and act on the pre-BF image input to the BF unit 364.
  • the tap number N ⁇ N ′ of the post-BF pixel value adaptive weighting unit 702 is reduced, the first output image # 731, the second output image # 741, and the third output image # 702 are processed in parallel. It is possible to reduce the processing time when generating by. In particular, if the number of taps of the post-BF pixel value adaptive weighting unit 702 is 1 ⁇ 1 tap, the processing time of the parallel processing can be shortened most. That is, parallelism can be most improved. This corresponds to the case where the post-BF pixel value adaptive weighting unit 702 refers to only the post-BF image P_NR of one pixel to be filtered and calculates only the product of the pixel and the weight coefficient.
  • the tap number Nc ⁇ Nc ′ for the predicted image PRED and the tap number Nd ⁇ Nd ′ for the residual image D may be any value including zero.
  • configuration example 2 parallelism can be improved by limiting the number of taps for the post-BF image P_NR.
  • Configuration example 2 The following configuration has an effect of reducing the processing amount and the data transfer amount by limiting the number of taps Nd ⁇ Nd ′ of the residual image D. More specifically, by reducing the number of taps Nd ⁇ Nd ′ of the residual image D, an effect of reducing the processing amount and the data transfer amount is achieved. In this configuration example, the maximum effect is obtained when the number of taps Nd ⁇ Nd ′ of the residual image D is 1 ⁇ 1.
  • the residual image D is an image obtained by dequantizing and inversely transforming the decoded transform coefficient.
  • rounding is performed to reduce the transform coefficient.
  • processing is performed instead of processing, rounding down less than 1/3 and rounding up 1/3 or more (or rounding down less than 1/6 and rounding up 1/6 or more).
  • rounding down less than 1/3 and rounding up 1/3 or more (or rounding down less than 1/6 and rounding up 1/6 or more).
  • the residual image D is shifted to the side where the absolute value is smaller than the original value, and it is considered appropriate to correct (increase) the pixel value by the product of the filter coefficients. Since such an effect is effective even when the reference region is small, it is appropriate to limit the number of taps of the residual image D to be small (to 1 to obtain the maximum effect).
  • the number of taps N ⁇ N ′ of the linear filter unit 702 is reduced without lowering the encoding efficiency, and the amount of calculation and the amount of data transfer are reduced.
  • the limitation on the number of taps Nd ⁇ Nd ′ of the residual image D can be used in combination with the limitation on the number of taps N ⁇ N ′ for the post-BF image P_NR. In this case, it is difficult to obtain the effect of a spatial (planar or two-dimensional) filter in both linear filters.
  • the tap number Nd ⁇ Nd ′ for the residual image D and the tap number N ⁇ N ′ for the post-BF image P_NR are both set to 1 ⁇ 1, the two-dimensional correlation of the images is used. I can't.
  • the number of taps of the predicted image PRED is not limited to one tap or the like, and it is appropriate to obtain a planar filter effect.
  • the predicted image PRED tends to have a high correlation with a specific direction (usually a correlation with the left direction and a correlation with the upward direction), particularly in intra prediction. This tendency arises from the restriction of using already decoded pixels for prediction.
  • a general image correlation exists along the edge direction and has a point-symmetrical correlation with respect to a certain pixel.
  • it is appropriate to use a two-dimensional filter In other words, by using pixels in a direction (for example, downward, right) that could not be referred to, it can be brought closer to the original image. Therefore, it is appropriate to use a two-dimensional filter for the predicted image PRED. In order to further reduce the amount of calculation, the number of taps of the predicted image PRED may be limited.
  • the maximum effect is obtained when the number of taps of the predicted image PRED is 1.
  • the reference area is one pixel
  • a pixel at a position corresponding to the filter target pixel may be referred to.
  • (Configuration example 2 ′′) As another configuration, it is appropriate to use a limitation on the number of taps Nd ⁇ Nd ′ of the residual image D and a limitation on the number of taps Nc ⁇ Nc ′ of the predicted image PRED.
  • the pixel at the position corresponding to the filter target pixel is referred to.
  • intermediate data in this case, the predicted image in this case
  • PRED prediction residual D
  • post-BF image P_NR post-BF image
  • An adaptive filter memory 362 for storing the difference D is required. In the decoding process, when the predicted image PRED is processed in the internal memory, these are transferred to and held in the external memory. On the contrary, at the time of processing by the adaptive filter unit 363, transfer from the external memory to the internal memory is necessary.
  • the processes of the prediction unit 111, the inverse quantization unit 115, the inverse transformation unit 116, and the addition unit 109 are performed in units of blocks. As described above, only one pixel is used for each of the predicted image PRED and the prediction residual D. ,
  • the linear filter 731 and the linear filter 741 can be processed simultaneously with the decoding process. Specifically, immediately after the generation of the predicted image PRED in the prediction unit 111, the product of the predicted image PRED and the weighting factor ci can be calculated simultaneously as the linear filter 731. Similarly, in the inverse quantization unit 115 and the inverse conversion unit 116 Immediately after the generation of the prediction residual D, the product of the prediction residual D and the weighting factor di can be calculated.
  • the number of transfers can be made twice by transferring the sum of the two outputs to the external memory. Can be reduced to once.
  • the method of reducing the number of transfers by transferring the sum of the outputs of the plurality of filter processes constituting the loop filter (or adaptive filter) to the external memory at one time is used in another configuration of the present invention regardless of this configuration. can do.
  • the prediction image PRED and the prediction residual D can be processed by the linear filter 731 and the linear filter 741 as they are in the internal memory without being transferred to the external memory, so that the data transfer amount is reduced. Furthermore, since the transfer time can be reduced, processing can be performed at extremely high speed. (Configuration example 3)
  • the effect of improving parallelism and reducing the amount of computation and the transfer amount has been demonstrated.
  • the amount of calculation and the amount of transfer can also be reduced by limiting the reference range to decoded images.
  • each linear filter included in the adaptive filter unit 363 depends on the position of the filter target pixel.
  • the output of the linear filter is calculated with reference to the pixel value of each input image included in the set reference range.
  • gray rectangles indicate the positions of the filter target pixels.
  • a solid line rectangle indicates an image range (reference range) referred to in each linear filter included in the adaptive filter unit 363.
  • a wavy rectangle indicates a block including a filter target pixel.
  • the block including the filter target pixel may be any of a unit called a transform block, a prediction block, a macro block, a coding unit, and a maximum coding unit.
  • “right block” means “right macro block” when the block is a macro block, and “right maximum coding unit” when the block is the maximum coding unit. Means.
  • FIG. 27 (a) shows an example in which an N ⁇ N image is referred to when there is no particular limitation and the number of taps in the reference range is N. That is, in the example of FIG. 27A, all the pixels included in the filter reference area are referred to. The above expression “without restriction” refers to this.
  • FIG. 27B shows an example in which the reference range is limited to a range smaller than the case of FIG. When limiting to the smallest, the reference range is 1 ⁇ 1 pixel.
  • FIG. 27C shows an example in which only the left and upper images of the filter target image are referred to.
  • FIG. 27D shows an example in which only the upper image of the filter target image is referred to.
  • FIG. 27E shows an example in which only the block to which the filter target image belongs and the left and upper images are referred to.
  • FIG. 27F illustrates an example in which the lower pixel of the block to which the filter target image belongs is not referred to.
  • FIG. 27C refers to a decoded image. It shows what to do.
  • FIG. 27D shows that the decoded image and the image located on the right side of the decoded image are referred to (the image of the undecoded block is not referred to).
  • FIG. 27E shows that the decoded image and the image of the block in which the filter target pixel exists are referred to.
  • FIG. 27 (f) refers to the decoded image, the image of the block in which the pixel to be filtered exists, and the image of the block existing on the right side of the block (for example, the block adjacent to the right side of the block).
  • an image of an undecoded block is not referred to except a block on the same line as the filter target block.
  • a block of a line above the same line may be referred to.
  • an image is delimited by a macroblock, the same macroblock line, and when an image is delimited by a maximum coding unit, for an image of a block included in the same maximum coding unit line, in an undecoded image Can also be referred to.
  • the reference ranges shown in FIGS. 27C to 27F can be expressed as follows.
  • a part of the lower side and a part of the right side of the reference range are set so as to overlap with the lower side and the right side of the target pixel, respectively.
  • a part of the lower side of the reference range is set to overlap the lower side of the target pixel.
  • the reference range is composed of a target block including the target pixel and decoded blocks around the target block.
  • the reference range includes a target block including the target pixel, a decoded block around the target block, and a block decoded immediately after the target block.
  • linear filter units 701, 702, 731 and 741 can be used as any one of the input signals.
  • the linear filter unit 701 can perform processing when the pixel is decoded.
  • the linear filter unit 731 and the residual image D 741 can be started when the pixel is decoded.
  • the input of the linear filter constituting the adaptive filter is configured to refer only to the upper side of the pixel to be filtered as in the constraint of FIG. 27D, there is a possibility that it will be processed after one block line. There is no need to wait for decoding of the lower image.
  • decoding processing is performed in order of raster scan in units of blocks, it is necessary to process many blocks until the pixel value of the pixel located below the filter target pixel is decoded and referenced. Therefore, until the decoding of the lower block is completed, it is necessary to wait for the decoding of one block line in the case where the pixel value calculation process for the filter target pixel takes the most time.
  • FIG. 27E shows an example in which only the left and upper images of the target block to which the filter target pixel belongs are referred to. If the input to the linear filter making up the adaptive filter refers only to such an image, there is no need to wait for decoding of the right image that may be processed after one block. In other words, since all the images necessary for the linear filter processing have been obtained when the decoding of the block to which the input belongs is completed, the processing can be performed immediately without having to wait for the decoding of the next block. Compared to the case of FIG. 27C, it is necessary to wait until the decoding of the target block is completed, and it is necessary to hold the input image during that time.
  • the block is a transform block, a prediction block, a macroblock, a coding unit, or a maximum coding unit
  • the unit is sufficiently small, and thus there is no problem in internal memory.
  • This configuration has a great effect on reducing the data transfer amount. That is, when the post-BF image P_NR, the predicted image PRED, and the residual image D are these inputs, there is no need to transfer to the external memory.
  • the constraint shown in FIG. 27F shows an example in which the lower image of the target block to which the filter target pixel belongs is not referred to.
  • the input of the linear filter that constitutes the adaptive filter is a configuration that refers only to such an image, there is no need to wait for decoding of the lower image that may be processed after one block line.
  • the filter process can be performed without waiting for the process of the lower block.
  • the linear filter process can be performed on the block on the left side of the block on which the decoding process is being performed. This configuration has a great effect on reducing the data transfer amount. That is, when the post-BF image P_NR, the predicted image PRED, and the residual image D are these inputs, there is no need to transfer to the external memory.
  • the reference range is uniquely determined according to the position of the filter target pixel.
  • the reference range is limited when the filter target pixel is close to the right boundary and the lower boundary of the target block, and otherwise, In some cases, the reference range is not limited as shown in FIG. 27A, that is, the reference range is equal to the filter reference region.
  • the reference range does not change depending on the positional relationship between the filter target pixel and the block boundary.
  • the reference range changes depending on the positional relationship between the filter target pixel and the block boundary.
  • a pixel that is 5 pixels away from the filtering target pixel is used.
  • the restriction shown in FIG. 27E if there are no more than five pixels between the filter target pixel and the right or lower block boundary, the reference is restricted.
  • each linear filter assuming that the pixel value of the filter target pixel is calculated by the product sum of each pixel value belonging to the filter reference region and the filter coefficient, the filter is set by setting the reference range.
  • a pixel that cannot be referred to occurs in the reference area, it is preferable to refer to the pixel value of the alternative pixel instead of the pixel that cannot be referred to.
  • One method is to extend the referenceable pixels using a conventional padding method.
  • Another method is to use a pixel located symmetrically with respect to the filter target pixel. For example, when the use of the lower image is restricted, the upper image at the symmetrical position is used.
  • Yet another method is to use a pixel at the position of the pixel to be filtered.
  • the calculation amount and the transfer amount can also be reduced by limiting the reference range to the decoded image.
  • the number of transfers can be reduced by transferring the sum of the plurality of preceding linear filter processes to the external memory at a time.
  • FIG. 28 is a diagram illustrating a part of the configuration of the filter parameter (alf_param) included in the adaptive filter information provided from the moving image encoding device 4 described later.
  • FIG. 28A illustrates a configuration including a mode called alf_prallel_mode.
  • alf_prallel_mode the number of taps of the post-BF image is limited to 1.
  • FIG. 28B a mode called alf_reference_mode is provided.
  • alf_reference_mode When alf_reference_mode is 0, the reference range is not limited as shown in FIG. 27A, and when alf_reference_mode is 1, 2, 3, 4, 5, FIGS. 27B and 27C. 27 (d), 27 (e), and 27 (f), the reference range is limited.
  • both the moving image encoding device and the moving image decoding device need to have the same reference range, but the reference range may be set in advance, and the filter parameter (adaptive filter) may be set as described here.
  • the filter parameter adaptive filter
  • a configuration in which the limitation of the reference range is explicitly changed by information) is also suitable.
  • FIG. 29 is a diagram illustrating a configuration example of a filter parameter (alf_param) included in adaptive filter information provided from the moving image encoding device 4 described later.
  • the filter parameter according to the present configuration example is a filter parameter provided from the moving image encoding device 4 for each slice, and includes a plurality of syntaxes that define the operation of the adaptive filter unit 363 for the target slice.
  • Adaptive_loop_filter_flag is information that specifies whether or not to use the adaptive filter unit 363 in the target slice.
  • Alf_length_df_minus1_div2 is information (tap number designation information) for designating the number of taps N ⁇ N of the linear filter unit 702.
  • alf_length_df_minus1_div2 0, 1, 2, 3, N is set to 1, 3, 5, 9, respectively.
  • Alf_coeff_df [i] is information for specifying the filter coefficient bi of the linear filter unit 702 and the offset o.
  • N 5 coefficients and one offset of the linear filter unit 702 are designated.
  • alf_length_pred_minus1_div2 is information specifying the number of taps of the linear filter unit 731
  • alf_coeff_pred [i] is information specifying the filter coefficient ci of the linear filter unit 731.
  • alf_length_error_minus1_div2 is information specifying the number of taps of the linear filter unit 741
  • alf_coeff_error [i] is information specifying the filter coefficient di of the linear filter unit 741.
  • FIG. 29A shows a configuration in which the number of taps of the post-BF image P_NR, the predicted image PRED, and the prediction residual D can be freely decoded. Even in this configuration, when the number of decoded taps is 1 or the number of taps is short, parallel processing can be performed, and an operation for reducing the data transfer amount as shown in FIG. It can be performed.
  • the number of taps can be selected freely on the syntax, but it is also appropriate to limit the number of taps of the post-BD image P_NR, the predicted image PRED, and the prediction residual D by profile information that limits usable semantics. It is.
  • FIG. 29B shows a syntax configuration that limits the number of taps of the post-BF image P_NR to one. Also in this configuration, since the number of taps of the post-BF image P_NR is 1, the BF unit 364, the linear filter 731 and the linear filter 741 can be operated in parallel. Further, the effect of reducing the data transfer amount as described with reference to FIG. 18 can be obtained. Further, parallel processing of the BF unit 364, the linear filter unit 731 and the linear filter unit 741 can be suitably performed. Further, an operation for reducing the data transfer amount as shown in FIG. 10C can be performed.
  • FIG. 29C shows a syntax configuration that limits the number of taps of the prediction residual D to one.
  • the linear filter 741 can be processed simultaneously with decoding. In this case, it is not necessary to output the prediction residual D to the external memory.
  • FIG. 29D shows a syntax configuration in which the number of taps of the post-BF image P_NR and the number of taps of the prediction residual D are limited to one.
  • the BF unit 364, the linear filter 731 and the linear filter 741 can be operated in parallel. Further, the linear filter 741 can be processed simultaneously with decoding. In this case, it is not necessary to output the prediction residual D to the external memory.
  • the moving image encoding device 4 includes H.264 as a part thereof. H.264 / MPEG-4. It is a decoding device including a technique adopted in AVC and KTA software.
  • FIG. 30 is a block diagram showing a configuration of the moving image encoding device 4.
  • the moving image encoding device 4 includes a subtraction unit 107, an addition unit 109, a prediction unit 111, a conversion unit 112, a quantization unit 113, an inverse quantization unit 115, an inverse conversion unit 116, and a frame memory 117.
  • the subtraction unit 107 For the subtraction unit 107, the addition unit 109, the prediction unit 111, the conversion unit 112, the quantization unit 113, the inverse quantization unit 115, the inverse conversion unit 116, the frame memory 117, and the variable length encoding unit 114, Since it is the same as that of the conversion apparatus 2, description thereof is omitted. Moreover, since each part with which the loop filter part 120 is provided is the same as each part of the loop filter part 120 in the moving image decoding apparatus 3, the description is abbreviate
  • the adaptive filter information deriving unit 368 generates adaptive filter information that is referenced by the loop filter unit 120 included in the video decoding device 3 and the loop filter unit 120 included in the video encoding device 4.
  • the adaptive filter information deriving unit 368 (1) ON / OFF of each of the BF unit 364 and the adaptive filter unit 363, (2) Types of images input to the adaptive filter unit 363 and combinations thereof (one or more combinations of the post-BF image P_NR, the prediction residual D, and the prediction image Pred), (3) The number of filter taps acting on the post-BF image P_NR, (4) Filter coefficient acting on the post-BF image P_NR (5) Number of filter taps acting on the image indicated by the prediction residual D, (6) Filter coefficient acting on the image indicated by the prediction residual D (7) Number of filter taps acting on the prediction image PRED, (8) Filter coefficient acting on the predicted image PRED (9) Offset o Are determined so that the coding efficiency is optimal.
  • the adaptive filter information deriving unit 368 determines the number of taps, the filter coefficient, and the offset so that the square error between the encoding target image (original image) and the filtered image is minimized, The filter coefficient and the offset are included in the adaptive filter information.
  • the adaptive filter information generated in this way is supplied to the adaptive filter unit 363 and also supplied to the variable length encoding unit 114, and is included in the encoded data in the encoded data.
  • the adaptive filter information deriving unit 368 acts on the filter coefficient b (u, v) of the filter acting on the post-BF image P_NR, the filter coefficient d (u, v) of the filter acting on the prediction residual D, and the predicted image PRED.
  • the filter coefficient c (u, v) and offset o of the filter are determined so that the error between the filtered image and the encoding target image (original image) is minimized.
  • the filter coefficient b (u, v), the filter coefficient d (u, v), the filter coefficient c (u, v), and the offset are set so that the square error E shown in the following formula (10) is minimized. o is determined.
  • SPNR (x, y) represents the pixel value of the post-BF image P_NR
  • SD (x, y) represents the pixel value of the prediction residual D
  • SPPred (x, y) represents the predicted image.
  • PRED represents a pixel value
  • S0 (x, y) represents a pixel value of an encoding target image.
  • RPNR, RD, and RPred represent filter reference regions on the post-BF image P_NR, the prediction residual D, and the prediction image PRED.
  • the number of taps that define the sizes of the filter reference regions RPNR, RD, and RPred is that the encoding efficiency is optimal from among a plurality of candidates (eg, 1 tap, 3 taps, 5 taps, 7 taps, 9 taps). Is selected.
  • the filter coefficient b (u, v) determined as described above is included in the adaptive filter information (more specifically, the filter parameter that is a part of the adaptive filter information) as the syntax alf_coeff_df [i]. Further, the parameter that specifies the number of taps of the filter reference region RPNR determined as described above is included in the filter parameter (adaptive filter information alf_param ()) as alf_length_df_minus1_div2.
  • the filter coefficient d (u, v) determined as described above is included in the filter parameter (adaptive filter information alf_param ()) as syntax alf_coeff_error [i]. Further, the parameter that specifies the number of taps of the filter reference region RD determined as described above is included in the filter parameter (adaptive filter information alf_param ()) as alf_length_error_minus1_div2.
  • the filter coefficient c (u, v) determined as described above is included in the filter parameter (adaptive filter information alf_param ()) as the syntax alf_coeff_pred [i]. Further, the parameter that specifies the number of taps of the filter reference region RPred determined as described above is included in the filter parameter (adaptive filter information alf_param ()) as alf_length_pred_minus1_div2.
  • the offset o determined as described above is included in the filter parameter (adaptive filter information alf_param ()) as one component of the syntax alf_coeff_df [i].
  • the adaptive filter information deriving unit 368 (10) Reference range referred to by filter acting on post-BF image P_NR (11) Reference range referenced by filter acting on image indicated by prediction residual D (12) Reference range referenced by filter acting on predicted image PRED And alf_reference_mode that specifies the determined reference range may be included in the adaptive filter information. For example, when alf_reference_mode is 0, the reference range is not limited as shown in FIG. 27A, and when alf_reference_mode is 1, 2, 3, 4, 5, FIG. 27B and FIG. c), the reference range is limited as shown in FIGS. 27 (d), 27 (e), and 27 (f).
  • the adaptive filter information deriving unit 368 may determine whether to limit the number of taps of the post-BF image to 1, and include alf_prallel_mode indicating the result in the adaptive filter information. As described above, when alf_prallel_mode is 1, the number of taps of the post-BF image is limited to 1.
  • the moving image encoding device 4 is used. Encoded data # 3 with high encoding efficiency can be generated.
  • the type of image input to the adaptive filter unit 363 may be specified by information acquired by the moving image encoding device 4 from the outside.
  • the adaptive filter information deriving unit 368 may be configured to determine the optimum filter coefficient and offset for the image specified by the information.
  • a program for realizing each function of the video decoding device and the video decoding device is recorded on a computer-readable recording medium, and the program recorded on the recording medium is recorded.
  • the video decoding device or the video decoding device may be controlled by being read and executed by a computer system.
  • the “computer system” includes an OS and hardware such as peripheral devices.
  • the “computer-readable recording medium” means a storage device such as a flexible disk, a magneto-optical disk, a portable medium such as a ROM and a CD-ROM, and a hard disk incorporated in a computer system.
  • the “computer-readable recording medium” means that a program is dynamically held for a short time, like a communication line when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In this case, it is intended to include those that hold a program for a certain period of time, such as a volatile memory inside a computer system serving as a server or a client in that case.
  • the program may be a program for realizing a part of the functions described above, and may be a program capable of realizing the functions described above in combination with a program already recorded in a computer system. .
  • a filter device for generating a filtered image using an image divided and processed as a block as a filter input image, adaptive filter information storage means for storing adaptive filter information corresponding to the filter input image, and the filter input image
  • the boundary use filter means for generating a boundary use filter image (post-BF image) by applying a filter for generating a pixel value in the filter target pixel using pixels near the boundary of the block adjacent to the filter target pixel.
  • Means) and adaptive filter means for performing adaptive filter processing controlled by the adaptive filter information from the filter input image and the post-BF image.
  • an image for adaptive filter input is generated by selecting a pixel at or near the block boundary.
  • the filter means configured as described above, it is possible to adjust the deblocking intensity according to the positional relationship with the features and boundaries of the sequence and the frame using the adaptive filter information with a small code amount.
  • the BF unit is a deblocking filter unit that generates a post-BF image by performing a deblocking filter process that reduces block noise of the filter input image according to a boundary state. apparatus.
  • the filter means configured as described above, it is possible to adjust the deblocking strength according to the characteristics of the sequence, the frame, and the boundary using the adaptive filter information with a small code amount.
  • the BF unit is calculated by an activity calculation unit that generates an activity in the vicinity of the filter target pixel, an edge strength calculation unit that calculates an edge strength at a boundary between a certain block and an adjacent block adjacent to the block. 3.
  • Combining adaptive processing according to the block boundary state and an adaptive filter makes it possible to adjust the deblock strength according to the characteristics of the sequence and frame, the edge strength and the activity of the boundary, and the distortion correction effect. There is an effect of increasing.
  • the adaptive filter information is a weight coefficient, and the adaptive filter means performs adaptive filter processing by weighting the post-BF image and the filter input image using the adaptive filter information. 4.
  • the weighting factor can be easily calculated using the least square method or the like. Therefore, there is an effect that it is possible to obtain a large distortion reduction by being optimized to the characteristics of the sequence and the frame.
  • the means for weighting the post-BF image is a multiplication means for calculating a product of a BF image of one pixel and a weighting factor. 5.
  • the filter means configured as described above, the following effects can be obtained at the same time as obtaining a high distortion reduction effect.
  • the required range of the filter input image is smaller than that of the adaptive filter processing.
  • the BF processing and the adaptive filter processing are applied to the filter target block by using a single transfer. can do. Compared to the case where data transfer is performed separately for the BF process and the adaptive filter process, the data transfer amount can be reduced.
  • the weighting process that cannot be performed in parallel with the BF process is reduced, and the parallelism when the BF process and the weighting process for the filter input image are performed in parallel is reduced. Has the effect of improving.
  • An image decoding apparatus for decoding an image from an encoded input image, wherein decoding means for decoding adaptive filter information, residual information, and a predicted image from the input image, and inverse quantization and inverse transformation of the residual information Generating means for generating image data from the residual image obtained by performing the prediction and the predicted image; To 5.
  • An image decoding device comprising: the filter device according to claim 1, wherein the filter device is caused to act on the image data using the filter control information.
  • the moving picture decoding apparatus having this configuration can effectively reduce the encoding distortion of the image data, the image quality of the image to be decoded is improved.
  • An image encoding apparatus that encodes an input image and outputs an encoded image, comprising: a decoded image generation unit that generates image data of a locally decoded image from the encoded image; To 5. From the filter device according to any one of the above, the image data, a deblocking filtered image obtained by applying a deblocking filter unit included in the filter device to the image data, and the input image, Adaptive filter information calculating means for calculating adaptive filter information used for control by an adaptive filter means included in the filter device, and applying the filter device to the image data stored in the frame memory using the filter control information
  • An image encoding apparatus characterized by being made to perform.
  • the moving picture coding apparatus having this configuration can effectively reduce the coding distortion of the locally decoded picture used as the reference picture, it can perform compression with high coding efficiency.
  • the filter means includes two or more calculation means including a calculation unit # 1 and a calculation unit # 2.
  • the calculation unit # 1 performs post-BF image generation processing in the BF unit
  • the calculation unit # 2 includes the adaptive filter.
  • the processing procedure characterized by performing a filter process in parallel by performing the weighting with respect to the said filter input image performed by a means.
  • the filter control information used in the filter unit the weight applied to the BF pixel value generated using the pixel near the boundary of the block adjacent to the filter target pixel by using the filter input image input to the filter unit as an input
  • a filter data structure comprising a coefficient or a predicted value of a weight coefficient and a weight coefficient or a predicted value of the weight coefficient applied to a filter input image input to the filter means.
  • the adaptive filter that uses the pixel value before BF processing and the pixel value after BF processing as the reference pixel of the adaptive filter can be calculated with a small amount of processing, and the deblocking strength is adjusted using a small number of weighting factors. (Deblocking strength adjustment effect).
  • the weighting coefficient for correcting the strength of block noise reduction and the weighting coefficient of the spatial filter are optimized at the same time. can get.
  • the filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, a first linear filter unit that acts on an input image of the boundary filter, and an output image of the boundary filter
  • An adaptive filter including a second linear filter unit acting on the adaptive filter, wherein the adaptive filter outputs a sum of the output image of the first linear filter unit and the output image of the second linear filter unit. It is characterized by having.
  • the adaptive filter included in the filter device includes an output image of the first linear filter unit that operates on the input image of the boundary filter and an output image of the second linear filter unit that operates on the output image of the boundary filter. Add and output. Therefore, the number of taps of the second linear filter unit can be reduced without reducing the encoding efficiency, or the number of taps of the first linear filter unit can be reduced without reducing the encoding efficiency. it can.
  • the former effect that is, reducing the number of taps of the second linear filter unit without reducing the encoding efficiency can reduce the entire calculation time without reducing the encoding efficiency.
  • the calculation time T1 required for the filter operation in the first linear filter unit is reduced by the filter in the boundary filter.
  • the sum T0 + T2 of the time T0 required for the calculation and the time T2 required for the filter calculation in the second filter unit is less than T0 + T2
  • the calculation time T2 in the second linear filter unit is shortened. It can be shortened.
  • the filter operation in the boundary filter has a larger amount of calculation than the filter operation (product-sum operation) in the linear filter.
  • the boundary filter is a deblocking filter, particularly when it is a deblocking filter having a function of autonomously adjusting its own filter strength based on activity, block boundary strength, and the like.
  • the calculation time T1 in the first linear filter unit rarely exceeds the calculation time T0 in the boundary filter unit. That is, the effect of reducing the overall calculation time without reducing the encoding efficiency is that the calculation time T1 in the first linear filter unit exceeds the calculation time T0 in the boundary filter unit, except for a rare case. This effect is generally realized.
  • the number of taps of the second linear filter unit is set to 1.
  • the amount of calculation time reduced by parallelizing the filter operation in the boundary filter and the filter operation in the adaptive filter while retaining the function of adaptively adjusting the apparent filter strength of the boundary filter Can be maximized.
  • the number of taps of the first linear filter unit is set to 2 or more.
  • the second linear filter unit is non-spatial (the number of taps is 1), the second linear filter unit is spatial (the number of taps is 2 or more). The same encoding efficiency improvement effect can be obtained.
  • the filter operation in the first linear filter unit and the filter operation in the boundary filter are executed in parallel.
  • the adaptive filter includes a first mode for outputting an output image of the second linear filter unit, an output image of the first linear filter unit, and an output image of the second linear filter unit. It is preferable to operate in the mode designated by the mode designation information acquired from the outside, in the second mode that outputs the sum of.
  • whether or not to operate the filter device in the second mode suitable for reducing the calculation time due to parallelization can be controlled from the outside.
  • the filter device when the filter device is built in the image decoding device, it can be controlled from the image encoding device whether or not the image decoding device is operated in the second mode suitable for reducing the calculation time by parallelization.
  • the number of taps of the second linear filter unit is set to 1 in the second mode.
  • the filter operation in the boundary filter and the filter operation in the adaptive filter are parallelized while leaving the function of adaptively adjusting the apparent filter strength of the boundary filter. Therefore, the amount of reduction in calculation time can be maximized.
  • the number of taps of the second linear filter unit is set to a value designated by the tap number designation information acquired from the outside.
  • the number of taps of the first linear filter unit is set to a value designated by the tap number designation information.
  • the tap number of the 2nd linear filter in 1st mode and the tap number of the 1st linear filter in 2nd mode are efficiently used using single tap number designation
  • the adaptive filter can be set in the first mode in which the upper limit value of the number of taps that can be set in the second linear filter unit is not defined and in the second linear filter unit.
  • the second mode in which the upper limit value of the number of taps is set it is preferable to operate in the mode designated by the mode designation information acquired from the outside.
  • whether or not to operate the filter device in the second mode suitable for reducing the calculation time by parallelization can be controlled from the outside.
  • the filter device when the filter device is built in the image decoding device, it can be controlled from the image encoding device whether or not the image decoding device is operated in the second mode suitable for reducing the calculation time by parallelization.
  • an upper limit value of the number of taps that can be set in the second linear filter unit is determined.
  • the filter device can be operated in a state suitable for reducing the calculation time by parallelization.
  • an image decoding device including the above filter device, an image encoding device including the above filter device, and a data structure of filter parameters supplied to the above filter device are also included in the scope of the present invention.
  • a filter device of the present invention is a filter device that generates a post-filter image using an image divided into blocks and processed as a filter input image, and an adaptive filter corresponding to the filter input image
  • An adaptive filter information storage means for storing information; and a filter that generates a pixel value in the filter target pixel using a pixel in the vicinity of the boundary of the block adjacent to the filter target pixel from the filter input image.
  • Boundary utilization filter means (BF means) for generating an image (post-BF image), and adaptive filter means for performing adaptive filter processing controlled by the adaptive filter information from the filter input image and the post-BF image. It is characterized by.
  • an image for adaptive filter input is generated by selecting a pixel at or near the block boundary.
  • BF processing that explicitly refers to pixels in and around the boundary and an adaptive filter, it is possible to adjust the deblocking strength according to the characteristics of the sequence or frame and the characteristics of the boundary, and the effect of increasing the distortion correction effect Play.
  • the filter means configured as described above, there is an effect that the deblock strength adjustment can be performed according to the positional relationship with the sequence and the feature of the frame and the boundary by using the adaptive filter information with a small code amount.
  • a filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, and a pixel value of each target pixel in an output image.
  • a first linear filter unit that calculates a pixel value of each target pixel in the output image by referring to each pixel value of the output image of the boundary filter in a reference range determined according to the position of the pixel;
  • a second linear filter unit that calculates by referring to each pixel value of the predicted image in a reference range determined according to the reference range, and a pixel value of each target pixel in the output image in the reference range determined in accordance with the position of the target pixel
  • An adaptive filter including a third linear filter unit that is calculated by referring to each pixel value of the residual image, and adds and outputs the output images of the first to third linear filters.
  • the filter device configured as described above, since the number of taps is set to 1 for at least one of the first to third linear filter units, the processing is performed while maintaining high coding efficiency. The amount and / or processing time can be reduced.
  • the filter device includes a boundary filter that selectively acts on a block boundary of an image processed for each block, and a pixel value of each target pixel in the output image.
  • a first linear filter unit that calculates the pixel value of each target pixel in the output image by referring to each pixel value of the output image of the boundary filter in a reference range determined according to the position of the target pixel.
  • a second linear filter unit that calculates by referring to each pixel value of the predicted image in a reference range determined according to the position, and a reference that determines the pixel value of each target pixel in the output image according to the position of the target pixel
  • An adaptive filter including a third linear filter section that is calculated with reference to each pixel value of the residual image in the range, and outputs the output images of the first to third linear filters.
  • An adaptive filter that, A block in which at least a part of the boundary in the processing order among the boundaries of the reference range includes the boundary of the target pixel or the target pixel for at least one of the first to third linear filter units It is characterized by being set to overlap with the boundary.
  • the filter device configured as described above, at least a part of the boundary on the downstream side in the processing order among the boundaries of the reference range is the target pixel for at least one of the first to third linear filter units. Therefore, the processing amount and the processing time can be reduced while maintaining high coding efficiency.
  • the reference range downstream boundary in the processing range of the reference range boundary includes: It refers to at least one of the right side boundary and the lower side boundary. Further, when the above processing is performed in the reverse order of the raster scan order, it indicates at least one of the boundary of the left side and the boundary of the upper side among the boundaries of the reference range.
  • the block may be any of a unit called a transform block, a prediction block, a macro block, a coding unit, and a maximum coding unit.
  • the reference range includes a target block including the target pixel, a decoded block around the target block, and the target block It is preferable that the block is decoded immediately after.
  • the reference range includes a target block including the target pixel, a decoded block around the target block, and the target block Since the block is composed of blocks that are decoded immediately after, the filtering process can be started when the decoding process of the pixel values belonging to the block decoded immediately after the target block is completed.
  • the processing time can be reduced. Further, the amount of processing is reduced by reducing the amount of data transfer associated with the filter processing.
  • a reference range includes a target block including the target pixel and a decoded block around the target block. It is preferable.
  • the reference range includes the target block including the target pixel and the decoded blocks around the target block. Therefore, when referring to the pixel values of the pixels belonging to the blocks around the target block, it is possible to refer to the pixel values without waiting until the decoding of the pixel values is completed.
  • the processing time can be reduced. Further, the amount of processing is reduced by reducing the amount of data transfer associated with the filter processing.
  • At least one of the first to third linear filter units is set so that a part of the lower side of the reference range overlaps the lower side of the target pixel. .
  • the filter process can be performed without waiting for the decoding process of the pixel value of the pixel located below the target pixel.
  • the processing time can be reduced. Further, the amount of processing is reduced by reducing the amount of data transfer associated with the filter processing.
  • a part of the lower side and a part of the right side of the reference range overlap with the lower side and the right side of the target pixel, respectively. Is preferably set.
  • a part of the lower side and a part of the right side of the reference range overlap with the lower side and the right side of the target pixel, respectively. Since it is set, when decoding processing is performed in the raster scan order, it waits for the decoding processing of the pixel value of the pixel located below the target pixel and the pixel value of the pixel located on the right side of the target pixel. And filtering can be performed.
  • the processing time can be reduced. Further, the amount of processing is reduced by reducing the amount of data transfer associated with the filter processing.
  • the filter operation in any one of the first to third linear filter units and the filter operation in the boundary filter are executed in parallel.
  • the processing time can be further reduced by executing the filter operation in any one of the first to third linear filter units and the filter operation in the boundary filter in parallel. .
  • the adaptive filter sets the number of taps of the first to third linear filter units to a value designated by tap number designation information acquired from the outside. Is preferred.
  • the number of taps of at least one of the first to third linear filter units can be efficiently designated by tap number designation information acquired from the outside.
  • the adaptive filter may set the reference range of at least one of the first to third linear filter units to be specified by mode specifying information acquired from the outside. preferable.
  • the reference range of at least one of the first to third linear filter units can be efficiently specified by mode specifying information acquired from the outside.
  • the boundary filter is preferably a deblocking filter for reducing block noise at the boundary.
  • the boundary filter reduces block noise at the boundary, thereby improving prediction accuracy and encoding efficiency.
  • an image coding device that causes the filter device to act on each image used for generating a locally decoded image is also included in the scope of the present invention.
  • the filter coefficient of the boundary filter that selectively acts on the block boundary of the image processed for each block, and the output image A filter coefficient of a first linear filter unit that calculates a pixel value of each target pixel with reference to each pixel value of the output image of the boundary filter in a reference range determined according to the position of the target pixel;
  • the filter coefficient of the second linear filter unit that calculates the pixel value of each target pixel with reference to each pixel value of the predicted image in the reference range determined according to the position of the target pixel, and each target in the output image A pixel value of a pixel is calculated by referring to each pixel value of a residual image in a reference range determined according to the position of the target pixel.
  • Data structure of the filter parameters characterized in that it includes a filter coefficient of the linear filter unit, also included in the scope of the present invention.
  • the macroblock in the above embodiment is H.264.
  • Macroblocks and blocks correspond to HEVC CUs (sometimes referred to as coding units, coding tree leaves), PUs (Prediction Units), or TUs (Transformation Units).
  • An LCU may also be called a tree block.
  • the filter device according to the present invention can be suitably used for an image encoding device and an image decoding device.
  • it can be suitably used for a video encoding device and a video decoding device.
  • it can be suitably used for a video encoding device and a video decoding device according to H264 / AVC or its successor standard.

Landscapes

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

Abstract

 本発明の実施形態に係るループフィルタ部(120)は、ブロック毎に処理された画像のブロック境界に選択的に作用するBF部(301)と、BF部(301)の入力画像に作用する第1の線形フィルタ部(701)とBF部(301)の出力画像に作用する第2の線形フィルタ部(702)とを含む適応フィルタ部(302)とを備えている。適応フィルタ部(302)は、第1の線形フィルタ部(701)の出力画像と第2の線形フィルタ部(702)の出力画像とを加算して出力する。

Description

フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造
 本発明は、画像に作用するフィルタ装置に関する。また、そのようなフィルタ装置を備えた画像復号装置および画像符号化装置に関する。また、そのようなフィルタ装置に供給されるフィルタパラメータのデータ構造に関する。
 動画像符号化技術の分野では、一般に、画像データ(画像情報)を複数の予測ブロックに分割し、分割した予測ブロック単位で予測を行い、予測画像と入力画像の差分(残差)を直交変換し、得られた変換係数を量子化した上で、量子化された変換係数の可変長符号化により符号化する。差分(残差)の直交変換は、予測ブロックと同一の、あるいは、予測ブロックとは独立に定められた変換ブロック単位で行われる。このような符号化方法では、予測を行う単位もしくは直交変換を実行する単位である各ブロックの境界において大きな歪み(いわゆる、ブロックノイズ)が生じやすい。また、符号化ではブロックノイズ以外にも、ボケやモスキートノイズなどさまざまな符号化ノイズが発生する。
 これらの歪みを低減するために、予測の際に参照画像として利用される復号画像にフィルタ処理を行う技術が開示されている。
 非特許文献1には、符号化データ中に埋め込み可能な閾値に応じてブロックノイズ低減処理の強度を変更する技術が使用されている。
 非特許文献2には、フィルタ対象画素の周囲の画素(5×5、7×7、又は9×9画素)を参照して、それらに画素に対する重み係数を復号して、空間的なフィルタ処理を行うAdaptiveLoopFilter(ALF)と呼ばれる技術が開示されている。このALFは、参照画像上のスライスごとに、フィルタが適用された後の参照画像と原画像との誤差が最小となる重み係数を定め、重み係数に基づいたフィルタ処理を施すものである。
 更に、非特許文献3には、予測残差、予測画像、及び、復号画像(予測残差と予測画像との和)に非線形デノイジングフィルタを施したものALFの入力画像とし、ALFの後段にデブロッキングフィルタを配置する構成が示されている。
「Recommendation ITU-T H.264」,Telecommunication Standardization Sector of ITU,03/2009(2009年3月公開) VCEG-AI18,Telecommunication Standardization Sector,35th Meeting:Berlin,Germany,07/2008(2008年7月公開) 「JCTVC-A114」,Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11,1st Meeting:Dresden,DE,04/2010
 しかしながら、非特許文献1のデブロッキングフィルタは、閾値を用いてブロックノイズ低減の強度(デブロッキング強度)を変更するが、最適な閾値を決定するには、試行錯誤的に様々な閾値を試す必要があり、容易には最適な閾値を決定できないという課題がある。
 非特許文献2のALFは、デブロッキングフィルタ処理後の復号画像に対して空間フィルタを作用させるが、デブロッキングフィルタ処理においてブロックノイズ低減効果が強すぎる場合や弱すぎる場合にその効果を調整することができない課題がある。特に、デブロッキングフィルタ処理が強すぎる場合には、デブロッキングフィルタ処理がボケを増大させることになるが、これをALFで十分に補正することは困難である。非特許文献3のALFは、デブロッキングフィルタ処理前の復号画像に対して作用する。したがって、デブロッキングフィルタのフィルタ強度を適応的に調整するという機能は全くない。
 また、非特許文献2~3に記載された技術の共通の問題として、ALFを処理の重いデブロッキングフィルタにシリアルに結合する構成を採用しているため、全体のフィルタ演算に要する時間がALFにおけるフィルタ演算に要する演算時間とデブロッキングフィルタにおけるフィルタ演算に要する時間との和になり、全体のフィルタ演算に要する時間が長くなるという問題があった。
 本発明は上記の課題に鑑みてなされたものであり、その主たる目的は、ALFを用いて高い符号化効率を実現しつつ、並列化による高速化が可能なフィルタ装置を実現することにある。
 上記課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、上記境界フィルタの入力画像に作用する第1の線形フィルタ部と上記境界フィルタの出力画像に作用する第2の線形フィルタ部とを含む適応フィルタであって、上記第1の線形フィルタ部の出力画像と上記第2の線形フィルタ部の出力画像との和を出力する適応フィルタと、を備えている、ことを特徴とする。
 本発明に係るフィルタ装置が備える適応フィルタは、境界フィルタの入力画像に作用する第1の線形フィルタ部の出力画像と、境界フィルタの出力画像に作用する第2の線形フィルタ部の出力画像とを加算して出力する。したがって、符号化効率を低下させることなく、第2の線形フィルタ部のタップ数を減らしたり、あるいは、符号化効率を低下させることなく、第1の線形フィルタ部のタップ数を減らしたりすることができる。
 ここで、前者の効果、すなわち、符号化効率を低下させることなく、第2の線形フィルタ部のタップ数を減らし得ることは、符号化効率を低下させることなく、全体の演算時間を削減し得ることを意味する。すなわち、境界フィルタ、第1の線形フィルタ部、第2の線形フィルタ部におけるフィルタ演算に要する演算時間をT0、T1、T2とすると、第1の線形フィルタ部におけるフィルタ演算を境界フィルタにおけるフィルタ演算と並列的に実行可能な場合、全体のフィルタ演算に要する演算時間Tは、T=Max(T0+T2,T1)となる。したがって、第2の線形フィルタ部のタップ数を減らせば、第1の線形フィルタ部のタップ数を増やしたとしても、第1の線形フィルタ部におけるフィルタ演算に要する演算時間T1が、境界フィルタにおけるフィルタ演算に要する時間T0と第2のフィルタ部におけるフィルタ演算に要する時間T2との和T0+T2を下回っている限り、第2の線形フィルタ部における演算時間T2を短縮し、もって、全体の演算時間Tを短縮することができる。
 なお、境界フィルタにおけるフィルタ演算は、線形フィルタにおけるフィルタ演算(積和演算)と比べて演算量が多い。境界フィルタが、デブロッキングフィルタである場合、特に、活性度やブロック境界強度などに基づいて自身のフィルタ強度を自律的に調整する機能を有するデブロッキングフィルタである場合には尚更である。このため、第1の線形フィルタ部のタップ数を増やしたとしても、第1の線形フィルタ部における演算時間T1が境界フィルタ部における演算時間T0を上回ることは稀である。すなわち、符号化効率を低下させることなく、全体の演算時間を削減し得るという効果は、第1の線形フィルタ部における演算時間T1が境界フィルタ部における演算時間T0を上回るという稀なケースを除き、一般的に成立する効果である。
 上記課題を解決するために、本発明のフィルタ装置は、ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像(BF後画像)を生成する境界利用フィルタ手段(BF手段)と、前記フィルタ入力画像と前記BF後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とする。
 上記BF手段では、ブロック境界もしくはブロック境界付近の画素を選択して適応フィルタ入力用の画像を生成する。明示的に境界及びその付近の画素を参照するBF処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界との位置関係に応じたデブロック強度調整が可能な効果を奏する。
 上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えており、上記第1から第3の線形フィルタ部の少なくとも何れかについて、タップ数が1に設定されている、ことを特徴としている。
 上記のように構成されたフィルタ装置によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、タップ数が1に設定されているため、高い符号化効率を維持しつつ、処理量および処理時の少なくとも何れかを削減することができる。
 また、上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えており、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている、ことを特徴としている。
 上記のように構成されたフィルタ装置によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されているので、高い符号化効率を維持しつつ、処理量および処理時間の少なくとも何れかを削減することができる。
 なお、上記参照範囲の境界のうち処理順で下流側の境界とは、例えば、上記参照範囲が矩形状であり、上記処理がラスタスキャン順に行われるとした場合、当該参照範囲の境界のうち、右辺の境界および下辺の境界の少なくとも何れかの境界のことを指す。また、上記処理がラスタスキャン順の逆順に行われるとした場合、当該参照範囲の境界のうち、左辺の境界および上辺の境界の少なくとも何れかの境界のことを指す。
 また、上記ブロックとは、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットと呼ばれる単位のいずれであってもよい。
 また、上記フィルタ装置を備えた画像復号装置であって、上記フィルタ装置を、復号画像を生成するために用いられる各画像に作用させる画像復号装置、および、上記フィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を、局所復号画像を生成するために用いられる各画像に作用させる画像符号化装置も本発明の範疇に含まれる。
 また、フィルタパラメータについての以下のデータ構造も本発明の範疇に含まれる。
 すなわち、境界フィルタと適応フィルタとを備えたフィルタ装置に供給されるフィルタパラメータのデータ構造において、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタのフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部のフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部のフィルタ係数と、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部のフィルタ係数と、を含んでいることを特徴とするフィルタパラメータのデータ構造も本発明の範疇に含まれる。
 本発明に係るフィルタ装置は、以上のように、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、上記境界フィルタの入力画像に作用する第1の線形フィルタ部と上記境界フィルタの出力画像に作用する第2の線形フィルタ部とを含む適応フィルタであって、上記第1の線形フィルタ部の出力画像と上記第2の線形フィルタ部の出力画像との和を出力する適応フィルタと、を備えているので、適応フィルタを用いて高い符号化効率を実現しつつ、並列化による高速化が可能なフィルタ装置を実現することにある。
 また、本発明に係るフィルタ装置は、以上のように、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えたフィルタ装置であって、上記第1から第3の線形フィルタ部の少なくとも何れかについて、タップ数が1に設定されているか、あるいは、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている。したがって、高い符号化効率を維持しつつ、処理量および処理時の少なくとも何れかを削減することができる。
本発明の第1の実施形態に係る動画像復号装置1のブロック図である。 本発明の第1の実施形態に係る動画像符号化装置2のブロック図である。 本発明の第1の実施形態に係るループフィルタ部120のブロック図である。 本発明の第1の実施形態に係る第1のBF部(BF部301)のブロック図である。 本発明の第1の実施形態に係る第2のBF部(BF部301´)のブロック図である。 本発明の第1の実施形態において、境界を説明するための図である。 本発明の第1の実施形態に係る適応フィルタ部302を説明するための図である。 本発明の第1の実施形態に係るループフィルタ部120の並列処理を説明するための図である。 本発明の第1の実施形態に係るループフィルタ部120の参照範囲を説明するための図である。 本発明の第1の実施形態におけるデータ転送を説明するための図である。 本発明の第1の実施形態に係る動画像復号装置1および動画像符号化装置2が扱う符号化データの構造を示す図である。 本発明の第1の実施形態における効果測定実験の結果を示す図である。 本発明の第1の実施形態における重み係数の構成を示す図である。 本発明の第1の実施形態に係る第3のBF部(BF部301´b)のブロック図である。 本発明の第1の実施形態に係るBF部301´bの参照画素の模式図である。 本発明の第1の実施形態に係るループフィルタ部120´のブロック図である。 従来のループフィルタのブロック図である。 従来のループフィルタの参照範囲を説明するための図である。 従来の動画像復号装置のデータ転送を説明するための図である。 本発明の第1の実施形態にかかるループフィルタ部(120)のブロック図である。 図20に示すループフィルタ部の第1の変形例を示すブロック図である。(a)は、第1のモードにおける動作状態を示し、(b)は、第2の動作モードにおける動作状態を示す。 図21に示すループフィルタ部に提供されるフィルタパラメータの構成例を示す図である。 図20に示すループフィルタの第2の変形例を示すブロック図である。(a)は、第1のモードにおける動作状態を示し、(b)は、第2の動作モードにおける動作状態を示す。 図20に示すループフィルタの第3の変形例を示すブロック図である。 本発明の第2の実施形態に係る動画像復号装置のブロック図である。 本発明の第2の実施形態に係る適応フィルタ部のブロック図である。 本発明の第2の実施形態に係る適応フィルタ部の参照範囲を例示する図である。 本発明の第2の実施形態に係るフィルタパラメータの構成例を示す図である。 本発明の第2の実施形態に係るフィルタパラメータの構成例を示す図である。 本発明の第2の実施形態に係る動画像符号化装置のブロック図である。
 以下、図面を参照して、本発明の各実施形態について説明する。
 〔実施形態1〕
 本発明の第1の実施形態に係る動画像復号装置1の説明に先立ち、本実施形態に係る動画像符号化装置2によって生成され、動画像復号装置1によって復号される符号化データの構成について、図11を参照して説明する。
 符号化データは、一連の画像データ(ピクチャ)から構成されている。図11に示すように、一つのピクチャは複数のスライスから構成される。スライスは、適応フィルタ情報とMBデータから構成される。MBデータは、復号画像を生成するための情報であり、ブロックタイプ、予測ブロックサイズ、予測パラメータ、変換ブロックサイズ、残差情報から構成される。
 適応フィルタ情報は、復号画像を格納したフレームメモリにおいて、適応フィルタ処理を制御するために使用される情報であり、フィルタのオンオフを制御するオンオフ情報、BF前のタップ数を示すタップ数M、BF後のタップ数を示すタップ数N、BF前重み係数ak(k=0~(M×M+1)/2-1)、BF後重み係数bk(k=0~(N×N+1)/2-1)、オフセットoから構成される。例えば、M、Nは、1、3、5の何れかの値をとる。なお、タップ数M及びタップ数Nの一方もしくは両方は明示的に符号化することなく予め決められた固定値を用いても良い。例えば、Mであれば1、Nであれば5であっても良い。また、タップ数は1、3、5に限定されない。
 なお、BF前重み係数ak、BF後重み係数bk、およびオフセットoは各々、予測符号化によって符号化されていても構わない。すなわち、重み係数及びオフセットを予測する重み係数予測部を備え、重み係数予測部が算出する予測値との差分値を復号し、差分値と予測値との和を重み係数及びオフセットとすることができる。ここで予測値は前フレームの値を用いる方法が適当である。また、適当な量子化がなされていても構わない。さらに非線形量子化された値として符号化されていても構わない。
 なお、ここでは重み係数という言葉を用いているがフィルタ係数と呼んでも構わない。
 (重み係数の構成)
 図13を参照して符号化データ中の重み係数の構成と、2次元フィルタとして用いられる場合の重み係数の対応位置を説明する。図13(a)、(b)、(c)は、各々タップ数が1、3、5の場合の重み係数を示す。図の左側は符号化データ中の重み係数の構成であり、各々1、5、13個の重み係数が一次元的に順序づけられて構成されている。
 タップ数がMである場合は、M×Mの2次元フィルタをかけることに相当する。この場合、参照する画素の数はM×Mであるが、対称性を利用することにより重み係数の個数は削減されており、必要な個数は(M×M+1)/2となる。
 図13の右側は2次元フィルタとして用いられる場合の重み係数の対応位置を示すものである。2次元フィルタは、フィルタ対象画素およびその周囲に位置する画素値に対応する重み係数を乗算して得られる加重平均を算出するフィルタである。図13においては、フィルタ対象画素からみて点対称に位置する画素に対して同じ重み係数が割り当てられている。このように対応関係を設定すると、同じM×Mタップのフィルタにおいても必要な重み係数の数を約半分に減らすことができるため、重み係数の符号量が減少し符号化効率が向上する。
 (動画像復号装置1)
 本発明を適用した動画像復号装置について、図1を参照しつつ以下に説明する。図1は、第1実施形態に係る動画像復号装置1の構成を示すブロック図である。
 図1に示すように、動画像復号装置1は、予測部111と、可変長符号化復号部114と、逆量子化部115と、逆変換部116と、フレームメモリ117と、適応フィルタ情報保存部119と、ループフィルタ部120と、加算部109とから構成されている。動画像復号装置1の動作について以下に説明する。
 動画像復号装置1に入力された符号化データは、まず、可変長符号化復号部114に入力される。可変長符号化復号部114は、符号化データの可変長復号により、フィルタ処理に用いる重み係数を含む適応フィルタ情報、予測方法および変換方法を示すMBパラメータ、変換・量子化された変換係数である残差情報を復号する。
 逆量子化部115は、可変長符号化復号部114より入力された変換・量子化された残差信号を逆量子化する。逆変換部116は、逆量子化部115より入力された逆量子化された信号を逆変換し、残差画像を生成する。
 予測部111は、可変長符号化復号部114より復号されたMBパラメータが入力され、当該MBパラメータに従って、フレームメモリ117に格納された復号画像(復号済みの画像)を用いて、予測画像を生成する。MBパラメータは、ブロックタイプと予測ブロックサイズ、変換ブロックサイズ、予測パラメータから構成される。ブロックタイプはイントラブロックかインターブロックかを示す。イントラブロックの場合には後述のループフィルタ処理前の復号画像(フレームメモリの画像)を参照して予測画像を生成し、インターブロックの場合にはループフィルタ処理後の復号画像を参照して予測画像を生成する。この実施形態では、予測ブロックサイズは予測のブロックサイズが16×16、8×8、4×4の何れであるかを示し、変換ブロックサイズは変換のブロックサイズが16×16、8×8、4×4の何れであるかを示す。予測パラメータはブロックタイプにより異なり、イントラブロックの場合には、DC予測を用いるか、方向予測を用いるかを示すイントラ予測モードである。インターブロックの場合には、動きベクトル、参照インデックスである。なお、参照インデックスは、フレームメモリに参照可能なフレームが複数存在する場合に、参照フレームを指定するための識別子である。なお、ブロックタイプ、予測ブロックサイズ、変換ブロックサイズ、予測パラメータなどはこの構成に限らない。
 加算部109は、予測部111より入力された予測画像と、逆変換部116より入力された残差画像との加算により、復号画像を生成し、フレームメモリ117に格納する。
 適応フィルタ情報保存部119は、可変長符号化復号部114で復号された適応フィルタ情報が入力され、保存される。ループフィルタ部120は、適応フィルタ情報保存部119に保存された適応フィルタ情報を読み出し、フレームメモリ117に格納された復号画像のフィルタ処理を行い、再度フレームメモリに117に書き出す。
 (ループフィルタ部120)
 図3は、ループフィルタ部120の内部構成を示す図である。ループフィルタ部120は、境界利用フィルタ部(BF部)301と、適応フィルタ部302から構成される。
 ループフィルタ部120は、フレームメモリ117に格納された復号画像と、適応フィルタ情報保存部119に格納された適応フィルタ情報を用いて、符号化歪みを低減した画像を生成する手段である。
 BF部301は、対象ブロックに隣接するブロックの境界付近の画素値を用いて、適応フィルタ部302で用いる画素値を生成するための手段である。
 適応フィルタ部302は、適応フィルタ情報に含まれる重み係数を用いて加重平均によりフィルタ処理を行う手段である。
 適応フィルタ部302の特徴は、2つの入力画像を備え、一方がBF部301で処理された画像(BF後画像)であり、もう一方がBF部301の処理前の画像(BF前画像)であることである。これはまた、内部にBF部301と適応フィルタ部302を備え、ループフィルタ部120の入力と、BF部301の出力とを適応フィルタ部302の入力とするループフィルタ120の特徴と表現することもできる。なお、ループフィルタ部120、BF部301、及び適応フィルタ部302の処理単位は、フレームであってもブロックであっても画素であっても構わない。
 図17は、従来のループフィルタの構成を示す図である。図17(a)に示すように、従来のループフィルタは、デブロッキングフィルタ処理後の画像を適応フィルタの入力とする場合(従来手法1)と、図17(b)に示すように、復号画像(デブロッキングフィルタ処理前の画像)を適応フィルタの入力とする場合(従来手法2)とがあったが、デブロッキングフィルタ処理前の画像とデブロッキングフィルタ処理後の画像との両方を適応フィルタの入力とする構成はなかった。
 (BF部301)
 ここで、BF部301について詳細に説明する。BF部301は、対象ブロックに隣接するブロックの境界付近の画素値を用いることを特徴とする。1つの方法は、ブロックノイズ低減を行うデブロッキングフィルタ処理を用いて生成する方法であり、図4で一例を説明する。別の方法は、フィルタ対象ブロックに隣接するブロックの境界付近の画素値を用いてフィルタ対象ブロックに対応する画像を生成する方法であり、図5、図14を用いて説明する。
 図6は、ブロックの境界部分における画素を模式的に示した図である。図6では、互いに隣接するブロックのうち、一方のブロックの画素を画素Piとし、もう一方のブロックの画素を画素Qiとしている(iは0~nまでの整数)。なお、画素Piおよび画素Qiにおけるiは、ブロック境界からの距離に相当する。
 また、図6では、画素Piおよび画素Qiに対応する画素値をそれぞれ画素値piおよび画素値qiとして示しており、処理対象画素Pkにおける処理前の画素値pkに対応する処理後の画素値をpk´として示している。ここで、kは0からブロックサイズ以下の値をとる整数である(kは0~n)。
 すなわち、図6では、ブロック境界において隣接する2つのブロックのうち、一方のブロックの画素値を画素値pk(kは境界からの距離により定められる値)、他方のブロックの画素値を画素値qk(kは境界からの距離により定められる値)として表している。なお、図6では、境界が水平方向の境界であるのか、または垂直方向の境界であるのかについては区別していない。
 図4は、第1の構成のBF部(BF部301)の内部構成を示す図である。BF部301は、境界エッジ算出部401と、活性度算出部402と、BF画素生成部403とを備える。
 境界エッジ算出部401は、下記の式(4-1)を用いて、境界のエッジ強度dを算出する。
  d=ABS(p0-q0)        …(4-1)
 活性度算出部402は、下記の式(4-2)を用いて、活性度を表す値apを算出する。活性度は境界およびフィルタ対象画素付近の凹凸の状態もしくは勾配の大きさを算出するものである。
  ap=ABS(p2-p0)       …(4-2)
 BF画素生成部403は、算出された「d」および「ap」が、所定の閾値α、βに対して、d<α、かつ、ap<βである場合に以下のフィルタ処理を施す。
  p0´=(p2+2×p1+2×p0+2×q0+q1)/8
  p1´=(p2+p1+p0+q0)/4
  p2´=(2×p3+3×p2+p1+p0+q0)/8
 そうではない場合には、以下のフィルタ処理を施す。
  p0´=(2×p1+p0+q0)/4
 BF部301は、上記の処理を、予測ブロックの境界および変換ブロックの境界に実行する。より具体的にはまず予測ブロックと変換ブロックの垂直境界に処理を行い、続いて、予測ブロックと変換ブロックの水平境界に処理を行う。これによりBF後画素値xdを得る。
 このように構成したBF部301は、境界のエッジ強度または活性度が大きい場合に強いフィルタがかからないようにフィルタ強度を調整したブロックノイズ低減処理を行うことができる。
 なお、BF部301は、さらに他の適応的なブロックノイズ低減処理を行っても構わない。例えば、イントラブロックかインターブロックかの違い、対象ブロックと隣接ブロックの動きベクトル長の違い、対象ブロックの残差情報がゼロであるか否かがある。
 このようにBF部301は、ブロックノイズを低減するデブロッキングフィルタ処理を行う。デブロッキングフィルタ処理は従来からある一般の処理を用いることが可能であり、例えばDCTを用いる方法なども用いることができる。
 なお、BF部301は、ブロック境界との位置関係に応じて処理を変更している。具体的には、境界からの距離が異なる画素P0、画素P1、画素P2は各々、異なる処理を行う。また、BF部301は、境界の状態(エッジ強度d、活性度ap)に応じて異なる処理を用いている。適応フィルタ部302の入力信号として、ブロック境界との位置関係に応じた処理および境界の状態に応じた処理を行うBF部301を設けることによって、ブロック境界との位置関係及び境界との状態に適応した上で、シーケンスやフレームの特徴に適応したデブロッキング強度調整を行うこと制御が可能になり、適応フィルタ部302の効果を増大することができる。ブロック境界との位置関係及び境界の状態によって異なる適応フィルタ部302の重み係数を用いる場合に比べて、重み係数の符号量を低減することが可能であるため、少ない符号量でデブロック強度調整効果を得ることができる。
 (BF部の第2の構成)
 図5は、BF部の第2の構成(BF部301´)を示す図である。この例では、BF部301は、垂直境界値参照部501と、水平境界値参照部502と、対象画素参照部503と、BF重み算出部504と、加重平均部505とを備える。
 図15は、BF部301´の処理で参照する画素を説明する模式図である。図15(a)においてBは予測ブロック境界もしくは変換ブロック境界である。XTはフィルタ対象画素、XVは垂直ブロック境界画素、XHは水平ブロック境界画素を示す。BF部301´は、XT、XV、XHを用いて画像を生成する。
 垂直境界値参照部501は、フィルタ対象画素が属するブロックとは異なるブロックの画素で、フィルタ対象画素に最も近い垂直境界の画素を参照する。すなわち、条件1:フィルタ対象画素とは異なるブロックの画素、条件2:フィルタ対象画素と同じX座標を持つ画素、条件3:予測ブロックの境界画素、または、変換ブロックの境界画素の3条件を満たす画素のうち、フィルタ対象画素に最も近い画素の画素値を参照する。但し、最も近い画素が複数存在する場合には所定の処理(例えば最もX座標とY座標が小さい画素)によって1つを選択する。この画素が垂直境界画素XVであり、この画素値をxvとする。
 水平境界値参照部502も、同様に、フィルタ対象画素が属するブロックとは異なるブロックの画素で、フィルタ対象画素に最も近い予測ブロックおよび変換ブロックの水平境界の画素を参照する。この画素が水平境界画素XHであり、この画素値をxhとする。
 対象画素参照部503は、フィルタ対象画素XTの画素値を参照する。この画素値をxtとする。
 BF重み算出部504は、加重平均部505で使用される重みを下記の手順で算出する。
 まず、BF重み算出部504は、フィルタ対象画素と垂直境界画素との距離Dv、及び、フィルタ対象画素と水平境界画素との距離Dhを算出する。次に対象ブロックの変換ブロックのサイズに応じて、以下の式によって、距離D(DvもしくはDh)から重みp(pvもしくはph)を算出する。
 変換ブロックが4×4の場合
 p=total×4/8 D=1(図6ではp0に相当)   …(5-1)
 p=total×1/8 D=2(図6ではp1に相当)
 変換ブロックが8×8の場合
 p=total×4/8 D=1(図6ではp0に相当)
 p=total×2/8 D=2(図6ではp1に相当)
 p=total×1/8 D=3(図6ではp2に相当)
 p=0         D=それ以外
 変換ブロックが16×16の場合
 p=total×4/8 D=1(図6ではp0に相当)
 p=total×3/8 D=2(図6ではp1に相当)
 p=total×2/8 D=3(図6ではp2に相当)
 p=total×1/8 D=4(図6ではp3に相当)
 p=0         D=それ以外
 なお、垂直境界の場合にはDをDv、pをpvと読み替え、水平境界の場合にはDをDh、pをphと読み替えて算出する。totalは値を整数化するために使用される値であり、256程度を用いると良い(以後も同様)。
 この重み算出では、境界からの距離が大きくなるほど重みが小さくなるように調整している。
 また重みptは以下の式(5-2)で算出する。
      pt=(total―ph-pv)       …(5-2)
 加重平均部505は、BF重み算出部504で算出された重みpt、pv、phとフィルタ対象画素値xt、垂直境界画素値xv、水平境界画素値xhの加重平均からBF後画像の画素値xdを算出する。算出は以下の式(5-3)で行われる。
  xd={pt×xt+pv×xv+ph×xh+total2}>>shift
                             …(5-3)
 なお>>は右シフトを示す記号である。なお、totalは1<<shift、total2はtotal/2とする。<<は左シフトを示す記号である。
 なお、shiftは8程度で良い。この式は、整数演算処理で算出する場合である。なお、小数演算の場合には以下の式で行われる。なお小数演算の場合には、BF重み算出部504においてtotal=1を用いる。
  xd=pt×xt+pv×xv+ph×xh       …(5-4)
 第2のBF部301´は、上記の処理を、予測ブロックの境界および変換ブロックの境界に実行する。
 また、式(5-1)以降の重み算出においてtotalの代わりにtotal×4のような値を用いても良い。
 p=total×4/8 D=1(図6ではp0に相当)  …(5-5)
 この場合、重みptは式(5-2)ではなく以下の式(5-6)になる。
    pt=(total×4―ph-pv)       …(5-6)
 このようにするとBF後画素のダイナミックレンジは4倍になるが、その分精度の高いBF後画像を適応フィルタ部302で用いることができる。適応フィルタ部302での重み係数は固定小数精度(小数精度をtotalでかけて整数化して実現)であり整数精度以上の精度を用いるため、高精度の参照画像の値を有効に利用できる。そのため、BF後画像のダイナミックレンジの拡大は、符号化歪み低減の精度を向上させる。
 さらにまた、重みptの算出では、式(5-2)ではなくph+pv+pt=0を満たすような以下の式(5-7)を用いても良い。
           pt=―(ph+pv)       …(5-7)
 また、この場合、以下の式(5-8)によりBF後の画素値を算出するとさらに適当である。
 xd=clip(-127、128、pt×xt+pv×xv+ph×xh)
                             …(5-8)
 ここでclip(x、y、z)は、zをx以上、y以下にクリップする演算を示す。
 位置が近い画素値は互いに近い値をとる(xv≒xh≒xt)ことが多いが、ph+pv+pt=0、つまり、画素にかかる重みの総和が0にした場合には、その加重平均の値は0に近くなる。この場合は、比ゆ的には画素値の補正量もしくは画素値の差分に対応し画素値のダイナミックレンジは小さくなる。
 このようにすることで、totalの代わりにtotal×4のように重みを大きくすることによりダイナミックレンジを拡大した場合においても、BF後画像のダイナミックレンジを抑えることが可能になり、少ないビット(ここでは8ビット、-128~127)でBF後画像を格納することができる。このようにするとBF後画像を一時バッファに格納する場合において、必要となる一時バッファのメモリ量を低減させることができる。
 (BF部の第3の構成)
 図14は、BF部の第3の構成(BF部301´b)を示すブロック図である。この例では、BF部301´bは、第2の垂直境界値参照部501bと、第2の水平境界値参照部502bと、第2の対象画素参照部503bと、第2のBF重み算出部504b、第2の加重平均部505bを備える。
 図15(b)は、BF部301´bの処理で参照する画素を説明する模式図である。図15(b)において、Bは予測ブロック境界もしくは変換ブロック境界である。XTはフィルタ対象画素、XV1、XV2は垂直ブロック境界画素、XH1、XH2は水平ブロック境界画素を示す。BF部301´bは、対象画像自身XTと、隣接するブロックの境界画素XV1、XV2、XH1、XH2を参照してBF後画像を生成する。
 第2の垂直境界値参照部501bは、フィルタ対象画素の左右に存在する垂直境界の画素を2つ参照する。この画素がXV1、XV2であり、画素値をxv1、xv2と呼ぶ。
 第2の水平境界値参照部502bも同様にフィルタ対象画素の上下に存在する水平境界の画素を2つ参照する。この画素がXH1、XH2であり、画素値をxh1、xh2と呼ぶ。
 第2の対象画素参照部503bは、フィルタ対象画素の画素値を参照する。この画素がXTであり、画素値をxtと呼ぶ。
 第2のBF重み算出部504bは、第2の加重平均部505bで使用される重みpt、pv1、pv2、ph1、ph2を下記の手順で算出する。
 まず、第2のBF重み算出部504bは、フィルタ対象画素XTと垂直境界画素XT1及びXT2の距離Dv1、Dv2を算出し、さらにフィルタ対象画素XTと水平境界画素XV1及びXV2の距離Dh1、Dh2を算出する。次に対象ブロックの変換ブロックのサイズに応じて、以下の式によって、距離Dv1、Dv2、Dh1、Dh2から重みpv1、pv2、ph1、ph2を算出する。
 変換ブロックが4×4の場合
      p=total×1/(D×2)         …(5-9)
 変換ブロックが8×8の場合
      p=total×2/((D+1)×2)
 変換ブロックが16×16の場合
      p=total×4/((D+3)×2)
 なお、垂直境界の場合にはDをDv1、Dv2、pをpv1、pv2と読み替え、水平境界の場合にはDをDh1、Dh2、pをph1、ph2と読み替えて算出する。
 この重み算出では、境界からの距離が大きくなるほど重みが小さくなるように調整している。
 また重みptは以下の式で算出する。
 pt=(total―ph1-pv1-ph2-pv2)
 もしくは式(5-9)以後のpv1、pv2、ph1、ph2の算出においてtotalの代わりにtotal×4を用いた上で重みptを以下の式で算出する。
 pt=(total×4―ph1-pv1-ph2-pv2)
 これにより高い精度のBF後画像が得られる。
 もしくは重みptは画素の重みの和が0となるように以下の式(5-10)で算出することもBF後画像xdのダイナミック抑制に適当である。
 pt=―(ph1+pv1+ph2+pv2)      …(5-10)
 第2の加重平均部505bは、第2のBF重み算出部504bで算出された重みpt、pv1、pv2、ph1、ph2、とフィルタ対象画素値xt、垂直境界画素値xv1、xv2、水平境界画素値xh1、hv2の加重平均からBF後画像の画素値x´を算出する。算出は以下の式(5-11)で行われる。
  xd={pt×xt+pv1×xv1+pv2×xv2+ph1×xh1+ph2×xh2+total2}>>shift
                           …(5-11)
 また、さらに重みのダイナミックレンジを復号画像の値の範囲に抑えると良い。復号画像のビット深度が8である場合には、ダイナミックレンジは0から255であるから、以下の式によりxdの範囲を制限する。
 xd=clip(0、255、xd)
 また、重みptの算出に式(5-10)を用いる場合には、BF後画像xdのダイナミックレンジを抑えることができるが、さらにBF後画像xdの格納用のメモリを削減するには以下のようにさらにクリップし確実に所定のビット幅で格納できることを確定させると良い。
 xd=clip(-127、128、xd)
 BF部は、上記処理に限定されず、対象ブロックに隣接するブロックの境界付近の画素値を用いて、適応フィルタ参照用の画素値を算出する処理であれば良い。
 例えば、BF部の処理として、デブロッキングフィルタ処理のダイナミックレンジを拡大しても良い。
 より具体的には図4で示されるBF部301のBF画素生成部403を以下のBF画素生成部403´に置き替えても良い。BF画素生成部403´に入力された「d」および「ap」が、所定の閾値α、βに対して、d<α、かつ、ap<βである場合に以下のフィルタ処理を施す。
  p0´=(p2+2×p1+2×p0+2×q0+q1)
  p1´=(p2+p1+p0+q0)×2
  p2´=(2×p3+3×p2+p1+p0+q0)×2
 そうではない場合には、以下のフィルタを施す。
  p0´=(2×p1+p0+q0)×2
 なお、上記処理を行わない部分の画素値も8倍とする。
 このように画素値のダイナミックレンジを拡大する(403に比べ8倍に拡大)ことによって、フィルタ処理で発生する除算(/8)によりラウンド処理を削除し、デブロッキングフィルタ処理の精度を向上させることができる。最終的に、画素値のダイナミックレンジを元のレンジに戻す処理は、適応フィルタ部302で行われる。適応フィルタ部302での重み係数は固定小数精度であり整数精度以上の精度を用いるため、高精度の参照画像の値を有効に利用できる。そのため、BF後画像のダイナミックレンジの拡大は、符号化歪み低減の精度を向上させる。
 また、別のBF部の処理として、デブロッキングフィルタ処理の出力と入力の差分、すなわち、ブロックノイズ低減処理における入力信号の補正量を、BF部としても良い。より具体的には、デブロッキングフィルタ処理の入力をIN、出力をBFと表現した場合、以下の式で表現される値ΔBFを画素値とする画像を出力する処理をBF部に用いても良い。
 ΔBF=BF-IN
 より具体的には図4で示されるBF部301のBF画素生成部403を以下のBF画素生成部403´´に置き替えても良い。BF画素生成部403´´に入力された「d」および「ap」が、所定の閾値α、βに対して、d<α、かつ、ap<βである場合に以下のフィルタ処理を施す。
  p0´=clip(―127、128、(p2+2×p1+2×p0+2×q0+q1)―8×p0)
  p1´=clip(―127、128、(p2+p1+p0+q0)×2―8×p1)
  p2´=clip(―127、128、(2×p3+3×p2+p1+p0+q0)×2―8×p2)
 そうではない場合には、以下のフィルタを施す。
  p0´=clip(―127、128、(2×p1+p0+q0)×2―8×p0)
 なお、上記処理を行わない部分の画素値は0とする。
 このようにデブロッキングフィルタ処理後の画像の代わりに、デブロッキングフィルタ処理における補正量からなる画像をBF後画像に用いることによって、ダイナミックレンジを拡大した場合においても、BF後画像のダイナミックレンジを抑えることが可能になり、少ないビット(ここでは8ビット、-128~127)でBF後画像を格納することができる。このようにするとBF後画像を一時バッファに格納する場合において、必要となる一時バッファのメモリ量を低減させることができる。
 また、デブロッキングフィルタ処理とは逆に、ブロックノイズを強調する処理を行う処理を用いても良い。例えば、以下の式で表現される値ΔBFを画素値とする画像を出力する処理をBF部に用いても良い。ブロックノイズを強調する処理の逆演算がブロックノイズ低減になることから、適当なブロックノイズ強調フィルタであっても適応フィルタ部302の重みづけによりブロックノイズ低減効果及びデブロッキング強度調整効果を得ることができる。
 ΔBF´=(BF-IN)×2+IN
 なお、処理対象ブロックとは異なるブロック(隣接ブロック)の画素は、予測もしくは変換が異なることから、処理対象ブロックと異なる特性を有する。このような異なる特性の画素値を適応フィルタ部302の入力信号として用いると歪み低減の効果を増大させることができる。BF部301´及びBF部301´bは、隣接ブロックの画素値を用いて、適応フィルタ対象画素の参照画素を生成するものであり、異なる特性の入力信号を準備することを意味する。
 さらに、BF部301´及びBF部301´bは、ブロック境界との位置関係に応じて処理を変更している。適応フィルタ部302においては、位置関係に応じて異なる処理を行うためには位置毎に異なる重み係数の組が必要になり重み係数が増加する。適応フィルタ部302の入力信号として、BF部を設けることで、ブロック境界との位置関係に応じた処理をBF部に任せることできるため、多くの重み係数を符号化することなく、境界との位置関係に応じた適応フィルタ部302を施すことが可能になる。
 また、BF部301´およびBF部301´bを通じて、境界および境界付近の画素を参照する。一般に境界画素値に近づける処理はブロックノイズ低減になることから、この構成においてブロックノイズ低減効果を得ることができる(逆に境界画素値から遠ざけることによってブロックノイズ低減効果を弱めることもできる)。BF後画像は、適応フィルタ部302の入力に用いられることから、適応フィルタにおいてブロックノイズ低減の強度を調整することもできる(すなわちデブロック強度調整効果が得られる)。
 なお、BF部を備えない適応フィルタにおいても、フィルタ対象画素が境界付近にある場合などにおいて境界付近の画素を参照するが、参照のされ方は、フィルタ対象画素と境界の位置関係によって変化する。そのため、境界付近の画素の重みを変化させるには、境界との位置関係に応じて異なる重み係数を用いる必要があるが、重み係数の符号量が大きくなる。本特許ではBF部を通じて境界との位置関係を考慮した重みで境界付近の画素を明示的に参照することによって、少ない符号量でデブロック強度調整効果を得ることができる。
 (適応フィルタ部302)
 ここで、適応フィルタ部302について図7を用いて詳細に説明する。適応フィルタ部302は、適応重み付け部701と、BF後画素値適応重み付け部702と、シフト/除算部703とを備える。適応重み付け部701は、タップ数Mおよび重み係数ak(k=0~(M×M+1)/2-1)と、フレームメモリ117から入力された復号画像とを用いてフィルタ処理を行う。BF後画素値適応重み付け部702は、タップ数Nおよび重み係数bk(k=0~(N×N+1)/2-1)と、BF部301から入力された復号画像を用いてフィルタ処理を行う。
 適応フィルタ部302は、全体として下記の式(7-1)で表現されるフィルタ処理を行う。
  x´(x、y)=(Σa(i、j)×x(x+i、y+j)+Σb(i、j)×xd(x+i、y+j)+o+total2)>>shift
                            …(7-1)
 ここで、x(x、y)はBF前画素値、xd(x、y)はBF後画素値、x´(x、y)は適応フィルタ後画素値である。(x、y)はフィルタ対象画素のフレーム内での位置で、フレームの幅w、フレームの高さをhとすると、0<=x<=w-1、0<=y<=h-1をとる。また、(i、j)は、フィルタ対象画素の位置(x、y)からの相対位置を示す。a(i、j)、b(i、j)は各々、相対位置(i、j)に対応するBF前画素値にかかる重み係数、相対位置(i、j)に対応するBF後画素値にかかる重み係数である。oはオフセット、shiftは除算を実行するためのシフト値である。また第1項のΣは、(i、j)のi、jについて各々-MからMまでの和をとり、第2項のΣは、(i、j)のi、jについて各々-NからNまでの和をとる演算を意味する。
 (重み係数のインデックス)
 ここで、符号化データから復号され、適応フィルタ情報保存部119に保存された、1次元インデックスで表示された重み係数ak(k=0~(M×M+1)/2-1)と、上記2次元インデックスで表示された重み係数a(i、j)の関係について説明する。まず2次元インデックス(i、j)より、次の式で得られるk0を計算し、さらにk0からkを計算することで1次元インデックスkを得る。
 k0=(i+ofst)+(j+ofst)×M
 ここでofst=M/2、i=―M/2~M/2、j=-M/2~M/2。
 k=k0            (k0<(M×M+1)/2)
  =(M×M―1)―k0    (それ以外)
 以下、a(i、j)と表示される演算では、2次元インデックス(i、j)から1次元インデックスkに変換された後の値kを用いて参照されるakを用いる。
 1次元の重み係数bk(k=0~(N×N+1)/2-1)と、上記2次元の重み係数b(i、j)との関係も同様であり、次の式で得られるk0を計算し、さらにk0からkを計算することで1次元インデックスkを得る。
 k0=(i+ofst)+(j+ofst)×N
 ここでofst=N/2、i=―N/2~N/2、j=-N/2~N/2。
 k=k0            (k0<(N×N+1)/2)
  =(N×N―1)―k0    (それ以外)
 以下、b(i、j)と表示される演算では、2次元インデックス(i、j)から1次元インデックスkに変換された後の値kを用いて参照されるbkを用いる。
 適応フィルタ部302は、適応重み付け部701、BF後画素値適応重み付け部702、シフト/除算部703を用いて先に説明した式(7-1)の処理を行う。
 適応重み付け部701は、式(7-1)の第1項、及び、オフセットの加算、すなわち、以下の式を実行する。
 Σa(i、j)×x(x+i、y+j)+o
 BF後画素値適応重み付け部702は式(7-1)の第2項、すなわち、以下の演算を実行する。
 Σb(i、j)×xd(x+i、y+j)
 シフト/除算部703はラウンド付きシフト演算による除算rdiv(x)を実行する。rdiv(x)は、すなわち入力信号をxとすると、以下の関数で表現できる。
 rdiv(x)=(x+total2)>>shift
 このような適応フィルタ処理によって、BF前画素値とBF後画素値の両者の空間的な重み演算により効果的に歪みの低減を行うことができる。
 (M=1の場合)
 例えば、BF前画素値の適応フィルタのタップ数Mが1のときには、式(7-1)は以下の式(7-2)に簡略化されるが、空間フィルタによる歪み低減効果とデブロッキング強度調整効果を得ることができる。
  x´(x、y)=(a(0、0)×x(x、y)+Σb(i、j)×xd(x+i、y+j)+o+total2)>>shift
                           …(7-2)
 (N=1の場合)
 また、BF後画素値の適応フィルタのタップ数Nが1には、以下の式(7-3)に簡略化されるが、
  x´(x、y)=(Σa(i、j)×x(x+i、y+j)+b(0、0)×xd(x、y)+o+total2)>>shift
                           …(7―3)
 空間フィルタによる歪み低減効果とデブロッキング強度調整効果を得ることができる。
 なお、このとき、BF後画素値適応重み付け部702の動作は、結局、以下の式(7―4)となる。
 b×xd(x、y)
                           …(7―4)
 式(7―4)は単なる乗算であるため、BF後画素値適応重み付け部702の演算量は小さい。
 また、BF後の画素の範囲を制限したこと(ここではN=1に制限)は、ある画素のループフィルタ処理においてトータルで参照する復号画素の参照範囲を削減することができる(後述)。これによってフレームメモリとのデータ転送量を削減する効果を奏する(後述)。また、この構成では、BF前画素値にかかる演算が適応フィルタ処理の大部分に相当することになるため、後述する並列性が向上するという効果を奏する。
 なお、式(7-4)では、BF後画素値の重み付け演算が単純な乗算に簡略化されていることから、重み付けの手段より単純な乗算手段で処理することができる。
 図16は、N=1の場合のループフィルタ部120(ここではループフィルタ部120´と呼ぶ)の構成を示すブロック図である。図16に示すように、BF後画素値適応重み付け部702の代わりに、1画素のBF後画素に対する重み付けのみを行う乗算部702´を備える構成である。すなわち、1画素のループフィルタ処理(1画素の適応フィルタ処理)に対し、BF後画素としては1画素のみを参照する。乗算部702´を用いる場合にはタップ数Nの入力は不要であり、1つの重み係数bの入力のみとなる。この構成は特別な効果があるため、乗算部702´を備える適応フィルタ部302を適応フィルタ部302´と呼び、適応フィルタ部302´を備えるループフィルタをループフィルタ120´と呼ぶ。さらにループフィルタ120´を備える動画像復号装置1を動画像復号装置1´と呼ぶ。
 (M=N=1の場合)
 M=N=1の場合には、さらに下記の式(7-5)に簡略化される。
  x´(x、y)=(a×x(x、y)+b×xd(x、y)+o+total2)>>shift
                           …(7―5)
 この場合には、わずかに3つの重み係数a、b、oによってデブロッキング強度調整効果を得ることができる。また、これらは閾値ではなく重み係数であるため、最小二乗法という演算量の少ない方法で最適な値を計算することができる。
 また、さらにa+b=1、o=0という制約を用いて、式(7-6)のように簡略化することも可能である。
  x´(x、y)=(a×x(x、y)+(total-a)×xd(x、y)+total2)>>shift
                           …(7―6)
 この場合には、1つの重み係数aでデブロッキング強度調整効果が得られる。
 また、このように簡略化された構成でなくとも、シーケンスやピクチャ、スライスによって空間的な歪み低減効果が必要ない場合や演算量を特に削減したい場合に、M=N=1を用いることが適当な場合がある。なお、M=0とする場合やN=0とする場合にはさらに演算量を減らすことが可能であるので、M=0の場合やN=0の場合の処理も特に排除するものではない。この場合、対応する重み係数は入力されないが重み係数=0として動作をすれば良い。適応重み付け部701はオフセット、BF後画素値適応重み付け部702は単にゼロを出力する処理になる。
 (デブロッキング強度調整効果)
 まず、単純なM=N=1の場合を用いて説明する。式(7-5)は次のような変形が可能である。
     x´=c1×xd―c2×(xd―x)    …(7―7)
 ここでc1=(a+b)>>shift、c2=a>>shiftである。また、オフセットo、及び、位置(x、y)は表記を省略してある。ここで(a+b)>>shiftはほぼ1をとることが実験的に得られているので、さらに、式(7-7)は式(7-8)に変形できる。
        x´=xd―c2×(xd―x)    …(7―8)
 xd-xは、BF処理によるxの補正量である。そのためこの係数にかかる項c2>0であるとは、補正を弱めることに相当し、c2<0であるとは、補正を強めることに相当する。このようにBF前画素値にかかる重み係数とBF後画素値にかかる重み係数の関係によってデブロッキング強度調整効果が得られる。
 なお、M>1もしくはN>1の場合は、M=N=1の場合よりさらに自由度を増した構成を備えることから、当然、M=N=1の構成で得られるデブロッキング強度調整効果を得ることが可能である。
 (効果測定実験)
 図12は、デブロッキング処理後の画素値に空間的な適応フィルタを施すループフィルタ(従来手法1、図17(a))と、デブロッキング処理前の画素値に空間的な適応フィルタを施すループフィルタ(従来手法2、図17(b))と、M=1、N>1の場合のループフィルタ(提案手法1)と、M>1、N=1の場合のループフィルタ(提案手法2)とを各々、動画像復号装置1および動画像符号化装置2に実際に組み込んだ場合の符号化効率を調査したものである。なお、比較対象は適応フィルタを含まないループフィルタ(BF部のみを備えるループフィルタ)を用いた場合であり、符号化効率は、4点の量子化パラメータで符号化した場合の、SN比と符号量を測定し、SN比が一定になるという仮定をおいた場合に、どの程度の符号量削減が可能か(率)を評価したものである(BDRATEと呼ばれる)。符号量削減率が大きいほど符号化効率向上の効果が高いと言える。
 なお、BDRATEの算出方法の詳細は、下記文献に記載されている。
 G. Bjontegaard, “Calculation of average PSNR differences between RD-Curves,” ITU-T Q.6/SG16 Doc., VCEG-M33, Austin, Apr. 2001.
 図12をみて分かるように、提案手法1、2ともに、従来手法1、2を超える性能を示す。また、デブロッキング処理前の画素値に空間的な適応フィルタを施す場合(従来手法2、M>1、N=0の場合に相当)には、デブロッキング処理後の画素値に施す場合(従来手法1、M=0、N>1の場合に相当)よりも多くの場合、性能的に低下する。
 しかしながら、提案手法2(M>1、N=1)は、BF処理後の画素値の参照を1画素に制限し、空間的な適応フィルタはBF処理前の画素値に対して施すにも関わらず、デブロッキング処理後の画素値に空間的な適応フィルタを施す従来手法1を超える性能を発揮する。このことは、適応フィルタにおいてBF処理後の画素値の参照範囲を制限しても十分な効果が得られることを意味する。この構成の動画像復号装置1´は、符号化効率の向上以外に、復号画素の参照範囲の削減、フレームメモリとのデータ転送量削減、並列性の向上という効果を最大限に得ることができる。
 (並列処理の説明)
 現在は、演算部を複数備えるCPUおよび集積回路が一般的であるため、同時並行に処理できるかに関わる並列性が高いかどうかは重要なポイントである。
 図8は、ループフィルタ120における並列処理を説明する図である。図8では2つの演算部(演算部#1と演算部#2)を用いて並列にループフィルタ処理を行う動作を示している。図8に示す通り、演算部#1においてBF部におけるBF後画像生成処理を行い、演算部#2において適応フィルタ部302で行われるBF前画像(ループフィルタ部120入力画像)に対する重み付けを行うことにより、並列でループフィルタ処理を行うことができる。また、演算部#2では、それ以外のループフィルタの処理であるBF後画像に対する重み付け処理およびシフト/除算処理を行っているが、これは演算部#1で行っても構わない。図8では特に並列演算可能な部分を並列処理可能区間として示している。
 なお、重み付け処理の処理量はタップ数に依存するため、BF前重み付け処理のタップ数Mが、BF後重み付け処理のタップ数Nよりも十分大きい場合には、適応フィルタ処理の多くをBF前重み付け処理が占めることになる。この場合、適応フィルタとBF処理とを同時に実行できるのとほぼ同じだけの効果が得られる。この場合、大きな並列性の効果を得ることができる。
 (参照範囲の説明)
 携帯機器などのCPU及びアクセラレータの処理では、大規模な外部メモリ(例えばSDRAM)にアクセスするためには時間がかかるため、一度、高速にアクセスできる内部メモリにデータを転送し、内部メモリ上で処理を行った上で、処理後のデータを外部メモリに転送する動作が一般的である。
 動画像復号や動画像符号化では、サイズの大きいフレームメモリは大規模な外部メモリに置かれる。内部メモリには大きなデータを置くことができないため、比較的16×16や32×16などの比較的小さいブロック単位で処理が行われる。すなわち、処理対象とするブロックに必要なデータを内部メモリに転送した上で処理を行い、処理後のブロックを外部メモリに転送する。この処理を繰り返すことで1フレーム分の処理が行われる。
 図9は本発明の実施形態のループフィルタ部102(内部のBF部301及び適応フィルタ部302)で用いる復号画素の参照範囲を説明するための図である。ここではループフィルタの処理をブロック単位(図9ではフィルタ対象ブロック)に行う場合を例に説明する。また、予測ブロック境界もしくは変換ブロック境界で囲まれる領域を単位とする。本発明の実施形態では予測ブロック及び変換ブロックの最小サイズを4×4としているので、その倍数の16×16や32×16をフィルタ対象ブロックサイズとすることが適当である。
 図9において塗りつぶし領域がフィルタ対象ブロック、Bはフィルタ対象ブロックの境界を示す。
 図18は従来のループフィルタで用いる復号画像の範囲を説明するための図である。図18においても、Bはフィルタ対象ブロックの境界を示す。
 図9の点線で囲まれる領域は、フィルタ対象ブロックの境界BにBF処理を施すのに必要な復号画像の範囲を示している。ここではBF処理では、境界からD画素を必要とする場合の例を示している。
 図9の点線の周囲の太い実線で囲まれる領域は、フィルタ対象ブロックの境界BにBF処理を施すのに必要な復号画像の範囲を示している。BF後画素値に対するタップ数がNの場合には、適応フィルタのために、境界BのN2画素分のBF後画素が必要となる。ここでN2=(N+1)/2である。さらに、BF処理によりBF後画素を得るためにはさらにその範囲に加えD画素の復号画像が必要になるため、合計で境界BからN2+D画素だけ離れた位置までの復号画像を必要とする。
 このようにBF後画素に対して空間的な適応フィルタを用いる場合には、フィルタ対象ブロックのループフィルタ処理に必要な復号画像の範囲(参照範囲)は大きくなる。以下、より具体的に説明する。
 図18は、図17(a)で示される従来技術のループフィルタの例である。デブロッキングフィルタ部の処理には点線で示すようにBの周囲にD画素が必要であり、適応フィルタ部302の処理には太い実線で示すようにBの周囲にN2+D画素が必要である。N2+D>Dであるので、ループフィルタの参照範囲はBの周囲のN2+D画素となる。
 図9(a)は、本発明のループフィルタ120の一般の場合である。BF部301の処理には点線で示すようにBの周囲にD画素が必要になる。BF後画素のタップ数をN、BF前画素のタップ数をMとすると、適応フィルタ部302の処理にはBの周囲にMAX(N2+D、M2)画素が必要になる。なお、MAX(a、b)はaとbの最大値を算出する演算、M2=(M+1)/2である。図9(a)ではN2+D>M2の場合の図であり、太い実線で示すループフィルタの参照範囲はBの周囲のN2+D画素である。
 図9(b)は、BF後画素のタップ数N=1の場合である。この場合、BF部301の処理には点線で示すようにBの周囲にD画素、適応フィルタ部302の処理にはBの周囲にMAX(D、M2)の画素が必要になる。図9(b)ではM2>Dの場合の図であり、太い実線で示すループフィルタの参照範囲はBの周囲のM2画素である。
 図18で説明したデブロッキング処理後画像を用いて空間的な適応フィルタ処理を行う従来技術の場合、及び、図9(a)で説明したBF後画像を用いて空間的な適応フィルタ処理(N>1の適応フィルタ)を行う場合には、BF部301に必要な復号画像の領域と、適応フィルタ部302に必要な復号画像の領域は重なりが小さい。それに対して、図9(b)で説明した、BF前画像を用いて空間的な適応フィルタ処理を行い、BF後画像を用いては空間的な適応フィルタ処理を行わない場合(M>1、N=1)には、BF部301に必要な復号画像の領域と、適応フィルタ部302に必要な復号画像の領域の重なりが大きい。
 BF部301と、適応フィルタ部302で、必要な復号画像の重なりが大きいことは、BF部301と適応フィルタ部302で同じ復号画像を用いることができる領域が大きいことを意味する。これはあるフィルタ対象ブロックで参照する画像の範囲を削減することができると同時に、以下に示すデータ転送上の効果を奏する。
 (データ転送の説明)
 図10は本発明の実施形態の動画像復号装置1のデータ転送を説明するための図である。特にN=1を特化した乗算部702´を備える動画像復号装置1´のデータ転送を想定して説明する。図19は従来技術の動画像復号値のデータ転送を説明するための図である。図19(a)は、復号処理とデブロッキングフィルタ処理と適応フィルタ処理を独立した処理として別々の転送で行う場合を示したものである。この場合、処理の度に、外部メモリと内部メモリ間のデータ転送が必要になるため、全体としてデータ転送量が非常に大きい。それに対し、複数の処理を一度の転送で実施すれば、途中の処理で必要になる中間データ(一時データ)の外部メモリ転送および中間データの内部メモリ転送が不要となることから、データ転送量を削減できる。
 図18を用いて説明したように、従来技術においては、デブロッキングフィルタ処理と適応フィルタ処理で必要となる画素の範囲の重なりが小さい。そのため、一度の転送で、デブロッキングフィルタ処理と適応フィルタ処理を実行する場合にも削減できるデータ量は小さい。よって、仮に一度の転送でデータ転送を実施しようとすれば、従来技術では図19(b)に示すように復号処理とデブロッキングフィルタ処理を一度の転送で実行することになる。
 図10(a)は本発明の実施形態の動画像復号装置1´において、復号処理とデブロッキングフィルタ処理と適応フィルタ処理を別々に行う場合を示す。図9(b)を用いて説明したように、本構成においては、デブロッキングフィルタ処理と適応フィルタ処理で必要となる画素の範囲の重なりが大きいため、データ削減の効果が大きく、図10(b)に示すようなデータ転送量の削減が可能である。なお従来技術の相当する図19(b)と本発明の図10(b)を比較すると同程度のデータ転送量の削減が実現できているようにも見えるが、実際には、本発明の図10(b)の方の削減量が大きい。従来技術の図19(b)の場合、復号処理とデブロッキングフィルタ処理を一度の転送で実行するが、デブロッキングフィルタ処理で必要なデータは、復号処理で必要なデータに加えて余分なデータが必要であるためそのデータ転送量の増加がある。これに対し、図10(b)では、デブロッキングフィルタ処理で参照されるデータは、適応フィルタ処理で参照されるデータに含まれるためデータ転送量の増加はない。
 また本発明の場合には、さらに図10(c)のように復号処理とデブロッキングフィルタ処理と適応フィルタ処理の3つを一度の転送で行うことも可能である。この場合、データ転送量を一層削減することができる。
 なお、データ転送量の削減を行うと、バス速度の低減などを通じて、消費電力の削減効果を得ることが可能である。また、処理のために必要なデータ待ちがある場合など、データ転送が演算処理のボトルネックになっている場合には、処理速度の向上にダイレクトに効いてくる。このような場合は、PCなど高速なコンピュータの場合には多くはないが、バス速度が低い携帯端末などではデータ転送がボトルネックになることは少なくなく、データ転送量の削減は重要である。
 (動画像符号化装置)
 つづいて、本発明を適用した画像符号化装置について、図を参照して説明する。
 図2は、動画像符号化装置2の構成を示すブロック図である。動画像符号化装置1と同様の部材に関しては、同一の符号を付し、その説明を省略する。
 図2に示すように、動画像符号化装置2は、予測部111と、変換部112と、量子化部113と、可変長符号化部114と、逆量子化部115と、逆変換部116と、フレームメモリ117と、適応フィルタ情報算出部118と、適応フィルタ情報保存部119と、ループフィルタ部120と、減算部107と、加算部109を備える。
 動画像符号化装置2は、フレームメモリ117に格納された局所復号画像の歪みを低減するループフィルタ部120を備え、ループフィルタ部120を制御するための適応フィルタ情報を格納する適応フィルタ情報保存部119を備える。以下、動画像符号化装置2の動作について説明する。
 動画像符号化装置2に画像が入力された画像はブロックに分解され、以下の処理がなされる。予測部111は、入力ブロックを近似する予測ブロックを生成する。減算部107は、入力ブロックと予測部111から出力される予測ブロックの差分値である差分値ブロックを計算する。
 変換部112は、減算部107から入力された差分値ブロックに対しDCT変換などにより変換係数を算出する。量子化部113は、量子化ステップにより定まるステップに従い、変換係数を量子化する。量子化された変換係数は、可変長符号化部114により符号化されて外部に出力される。
 逆量子化部115は、量子化された変換係数を逆量子化する。逆変換部116は、逆量子化された変換係数を逆変換し、残差ブロックを算出する。加算部109は、残差ブロックと予測ブロックとの和を計算し、入力ブロックを再生する。再生されたブロックは、フレームメモリ117に格納される。
 適応フィルタ情報算出部118は、適応フィルタ情報を算出する。算出された適応フィルタ情報は、適応フィルタ情報保存部119に格納され、次に可変長符号化部114に出力される。可変長符号化部114は、予測方法を示す情報と変換係数だけでなく、適応フィルタ情報の可変長符号化も行い出力する。
 算出された適応フィルタ情報は適応フィルタ情報保存部119に格納される。ループフィルタ部120は、適応フィルタ情報保存部119に保存された適応フィルタ情報を読み出し、その値に従って、フレームメモリ117に格納された局所復号画像にフィルタ処理を行う。フィルタ処理された画像はフレームメモリ117に再度格納される。
 適応フィルタ情報保存部119、ループフィルタ部120の動作は、動画像復号装置1と同一であるので、説明を省略する。
 (適応フィルタ情報算出部118の説明)
 以下、適応フィルタ情報算出部118の動作を説明する。適応フィルタ情報算出部118は、入力画像xoと復号画像xおよびBF後の画素値xdから、以下の式(8-1)を最小化する重み係数afk(k=0~(M×M+1)/2-1)とbfk(k=0~(N×N+1)/2-1)、オフセットofの推定値を最小2乗法により求める。ここでfはfloatの略であり、最小2乗法では小数点数として重み係数を算出することを意味する。
  Σ|xo(x、y)-(Σaf(i、j)×x(x+i、y+j)+Σbf(i、j)×xd(x+i、y+j)+of)|^2
                           …(8-1)
 ここで、^2は二乗を示す。最初のΣは全ての(x、y)に対する和、第1項のΣは、(i、j)のi、jについて各々-MからMまでの和、最後のΣは、(i、j)のi、jについて各々-NからNまでの和をとる演算を意味する。
 なお、akとaf(i、j)の関係、bkとbf(i、j)の関係は既に動画像復号装置1の説明で示したとおりである。
 最小2乗法の算出ではまず、式(8-1)を重み係数afkとbfk、オフセットofをパラメータとする以下の式(8-2)に直す。
  Σ|xo(x、y)-(Σx(x+i、y+j)×afk+Σxd(x+i、y+j)×bfk+of)|^2
                           …(8-2)
 さらに、Σで示される和として、(i、j)に関する和から、kに関する和に置き替える。ここでkから(i、j)への対応関係は2通りあるため、一方を(i、j)、もう一方を(i´、j´)と表現する。
 kから(i、j)、(i´、j´)への変換は以下の演算で行われる。まず、以下の式を用いてkからk0とk0´を計算する。
 k0 =k
 k0´=(M×M-1)―k
 次に、k0とk0´から以下の式を用いてi、jを計算する。
 i=(k0%M)-ofst
 j=(k0/M)-ofst
 i´=(k0´%M)-ofst
 j´=(k0´/M)-ofst
 ここで%は剰余を計算する演算、/は除算を行い小数点以下を切り捨てて整数化する演算、ofst=M/2である。
 なお、xdに関しては上の式でMをNに置き替えた演算で(i、j)、(i´、j´)を計算する。
 上記の置き替えにより、式(8-2)は式(8-3)として表現することができる。
 Σ|xo(x、y)-(Σ{x(x+i、y+j)+x(x+i´、y+j´)}×afk+Σ{xd(x+i、y+j)+xd(x+i´、y+j´)}×bfk+of)|^2   …(8-3)
 ここで、最初のΣは全ての(x、y)に対する和、第1項のΣはkについて0から(M×M+1)/2-1までの和、最後のΣはkについて0から(N×N+1)/2-1までの和をとる演算を意味する。
 式(8-3)をパラメータafk、bfk、ofの式とみなして、各々のパラメータに対して偏微分を行い、これを0とする。これによって、正規方程式と呼ばれるパラメータの数(M×M+1)/2+(N×N+1)/2+1個の連立方程式が得られる。
 得られた方程式をガウスの消去法などによって解くとことにより、afkの最適推定値afeと、bfkの最適推定値bfe、ofの最適推定値ofeが得られる。
これらを重み係数の組を推定値zfeと呼ぶ。なお、BF後の画素値xdは、ループフィルタ部120内のBF部301を動作させて算出する。
 最小二乗法の演算は、事前にBF前の画素値に対するタップ数MとBF前の画素値に対するタップ数Nを特定の値に定めて行われる。但し、最適なMとNの組み合わせを予め定めることは困難であることから、次に示す擬似コードで表現する処理によって可能な全ての組み合わせのMおよびNに対して最小2乗法を行い、最適なMとNの組み合わせを選択することで、最適化を行う。
  SMIN=0x7FFFFFFF(十分大きな値、ここでは32ビット符号付き整数の最大値を設定)
  LOOP(M=1、3、5){
    LOOP(N=1、3、5){
      最小二乗法により重み係数zfeを得る
      zfeを式(8-3)に代入して得られる二乗誤差の大きさをSとする
      IF(S < SMIN){
        重み係数zfeを最適な重み係数zfbestとして保存
        S=SMIN
      }
    }
  }
 ここで算出された最適な重み係数セットをzfbest={afbest、bfbest、obbest}とする。次の式で示される演算で整数化し、適応フィルタ情報保存部119に保存する。
 abest=(int){afbest×(1<<shift)}
 bbest=(int){bfbest×(1<<shift)}
 obest=(int){ofbest×(1<<shift)}
 なお(int)は整数化を示す。
 また、以上説明したそれぞれの実施形態において、動画像復号装置および動画像復号装置の各機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより動画像復号装置や動画像復号装置の制御を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
 また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであっても良い。
 〔ループフィルタ部120の変形例〕
 最後に、上述したループフィルタ部120の構成を整理したうえで、いくつかの変形例について説明する。
 (ループフィルタ部120の構成)
 図20は、図3に示すループフィルタ部120の構成を、図7に示す適応フィルタ部302の内部構成を含めて図示したブロック図である。図20に示すように、ループフィルタ部120は、BF部301と適応フィルタ部302とを備えている。
 ループフィルタ部120は、BF部301と、適応フィルタ部302とにより構成される。ループフィルタ部120を動画像符号化装置2に内蔵する場合、ループフィルタ部120には、局所復号画像が入力され、ループフィルタ部120を動画像復号装置1に内蔵する場合、ループフィルタ部120には、復号画像が入力される。以下、局所復号画像と復号画像とを区別せずに「復号画像X」と記載する。
 復号画像Xは、直交変換(例えばDCT変換)/量子化/逆量子化/逆直交変換(例えば逆DCT変換)を経て生成された画像である。したがって、復号画像Xには、直交変換の変換単位の境界において画素値(輝度または色差)が不連続に変化するブロックノイズが含まれ得る。また、符号化対象画像から予測画像を減算して得られる予測残差に対して、直交変換/量子化/逆量子化/逆直交変換を施す場合には、予測画像の生成単位(予測単位)の境界においてもブロックノイズが発生し得る。
 BF部301は、このようなブロックノイズを除去するためのフィルタであり、端的に言えば、ブロック境界(変換単位の境界または予測単位の境界)に選択的に作用する平滑化フィルタである。本明細書では、このようなフィルタを「境界フィルタ」あるいは「境界利用フィルタ」と呼ぶ。BF部301によるフィルタ演算は、if文における条件評価などの非線形演算を含むことに加え、フィルタ強度を適応的に調整するために演算量が多い。例えば、H264/AVCにおける復号処理では、処理時間の大半がデブロッキングフィルタによるフィルタ演算に費やされる場合もある。なお、BF部301の詳細については、すでに説明したとおりである。
 ループフィルタ部120は、このようなBF部301に、適応フィルタ部302を組み合わせたものである。ループフィルタ部120が備える適応フィルタ部302は、図21に示すように、適応重み付け部701(以下、「第1の線形フィルタ部701」と呼称)と、BF後画素適応重み付け部702(以下「第2の線形フィルタ部702」と呼称)と、加算部704とを備えている。図7に示したように、加算部704の後段にシフト/除算部703を設けてもよいが、シフト/除算部703の作用は本発明において本質的なものではないので、ここでは省略する。
 第1の線形フィルタ部701は、BF部301に入力される(デブロッキングフィルタ処理前の)復号画像Xに作用する線形フィルタである。すなわち、第1の線形フィルタ部701のタップ数をMとすると、第1の線形フィルタ部701から出力される画素値S1(x,y)は、参照画素値群{X1,X2,…,XM×M}を用いて、S1(x,y)=a1×X1+a2×X2+…+aM×M×XM×M+oと表せる。ここで、a1,a2,…,aM×Mは、動画像符号化装置2においてフィルタ係数設定単位(たとえばスライス)毎に適応的に設定されたフィルタ係数であり、oは、同様にして設定されたオフセット値(DC成分)である。第1の線形フィルタ部701のタップ数Mは、上述したように、1であってもよいが、以下では、2以上の自然数であると仮定する。つまり、第1の線形フィルタ部701は、空間フィルタであるものとする。
 出力画像S1の画素(x,y)における画素値S1(x,y)を得るために第1の線形フィルタ部701が参照する参照画素値群{X1,X2,…,XM×M}は、画素(x,y)を含む領域U(以下、「参照領域U」と呼ぶ)に属する各画素の画素値からなる集合であり、{X(u,v)|(u,v)∈U}と表現することができる。ここで、X(u,v)は、デブロッキングフィルタ前の復号画像Xの画素(u,v)における画素値である。例えば、参照領域Uが画素(x,y)を中心とする正方形領域である場合、参照画素値群{X1,X2,…,XM×M}は、{X(u,v)|x-(M-1)/2≦u≦x+(M-1)/2,y-(M-1)≦v≦y+(M-1)}と書ける。また、参照領域Uが画素(x,y)を左上隅の頂点とする正方形領域である場合、参照画素値群{X1,X2,…,XM×M}は、{X(u,v)|x≦u≦x+M-1,y≦v≦y+M-1}と書ける。また、画素(x,y)からの市街地距離(マンハッタン距離)が予め定められた値以下となる画素(u,v)よりなる菱形領域を参照領域Uとしてもよい。ただし、参照領域Uは、画素(x,y)を含む領域であれば何でもよく、ここに例示したものに限らない。
 第2の線形フィルタ部702は、BF部301から出力される(デブロッキングフィルタ処理後の)復号画像Xdに作用する線形フィルタである。すなわち、第2の線形フィルタ部702のタップ数をNとすると、第2の線形フィルタ部702から出力される画素値S2(x,y)は、参照画素値群{Xd1,Xd2,…,XdN×N}を用いて、S2(x,y)=b1×Xd1+b2×Xd2+…+bN×N×XdN×Nと表せる。ここで、b1,b2,…,bN×Nは、上述したフィルタ係数a1,a2,…,aM×M、および、オフセットoと共に動画像符号化装置2において適応的に定められたフィルタ係数である。第2の線形フィルタ部702のタップ数Nは、1以上の自然数である。すなわち、第2の線形フィルタ部702は、空間フィルタであることを要さない。
 出力画像S2の画素(x,y)における画素値S2(x,y)を得るために第2の線形フィルタ部702が参照する参照画素値群{Xd1,Xd2,…,XdN×N}は、画素(x,y)を含む領域V(以下、「参照領域V」と呼ぶ)に属する画素の画素値からなる集合であり、{Xd(u,v)|(u,v)∈V}と表現することができる。ここで、Xd(u,v)は、デブロッキングフィルタ後の復号画像Xdの画素(u,v)における画素値である。例えば、参照領域Vが画素(x,y)を中心とする正方形領域である場合、参照画素値群{Xd1,Xd2,…,XdN×N}は、{Xd(u,v)|x-(N-1)≦u≦x+(N-1),y-(N-1)≦v≦y+(N-1)}と書ける。また、参照領域Vが画素(x,y)を左上隅の頂点とする正方形領域である場合、参照画素値群{Xd1,Xd2,…,XdN×N}は、{X(u,v)|x≦u≦x+(N-1),y≦v≦y+(N-1)}と書ける。また、画素(x,y)からの市街地距離(マンハッタン距離)が予め定められた閾値以下となる画素(u,v)よりなる菱形領域を参照領域Vとしてもよい。ただし、参照領域Vは、画素(x,y)を含む領域であれば何でもよく、ここに例示したものに限らない。
 加算部704は、第1の線形フィルタ部701の出力画像S1と第2の線形フィルタ部702の出力画像S2とを加算し、合成画像Sを得る。加算部704にて得られる合成画像Sの画素(x,y)における画素値S(x,y)は、第1の線形フィルタ部701の出力画像S1の画素(x,y)における画素値S1(x,y)と、第2の線形フィルタ部702の出力画像S2の画素(x,y)における画素値S2(x,y)との和S1(x,y)+S2(x,y)になる。ループフィルタ部120は、加算部704にて得られた合成画像Sを外部に出力する。以下、合成画像Sを、出力画像Sとも呼称する。
 ループフィルタ部120の出力画像Sの画素(x,y)における画素値S(x,y)は、以下のように表すことができる。(a)式において、第1項のΣは、i=1,2,…,M×Mを渡る和であり、第2項のΣは、j=1,2,…,N×Nを渡る和である。なお、ここでは、第1の線形フィルタ部701によって(a)式におけるオフセットoを加算する構成を説明したが、第2の線形フィルタ部702によって(a)式におけるオフセットoを加算する構成に置き換えてもよい。
  S(x,y) = Σai×Xi + Σbj×Xdj + o …(a)
 図20に示すループフィルタ部120において特に注目すべき点は、適応フィルタ部302の一部(第2の線形フィルタ部702)を、BF部301の後段に配置し、BF部301から出力されるデブロッキングフィルタ処理後の復号画像Xdに作用させると共に、適応フィルタ部302の一部(第1の線形フィルタ部701)を、BF部301と並列に配置し、BF部301に入力されるデブロッキングフィルタ処理前の復号画像Xに作用させている点である。このように、空間フィルタである第1の線形フィルタ部701をBF部301と並列に配置することによって、符号化効率を低下させることなく、第2の線形フィルタ部702のタップ数Nを小さくすることが可能になる。実際、第2の線形フィルタ部702のタップ数Nを1にまで低下させても符号化効率の低下が生じないことは、図12に示したとおりである。
 ここで、第2の線形フィルタ部702におけるフィルタ演算は、BF部301におけるフィルタ演算と並列化し得ないのに対し、第1の線形フィルタ部701におけるフィルタ演算は、BF部301によるフィルタ演算と並列化し得る点に留意されたい。すなわち、2以上の演算手段を備えた環境においては、仮に第1の線形フィルタ部701のタップ数Mが大きくなって演算量が増えたとしても、第2の線形フィルタ部702のタップ数Nが小さくなって演算量が減れば、全体の演算時間の短縮を図ることができる。すなわち、第2の線形フィルタ部702をBF部301の後段に配置すると共に、第1の線形フィルタ部701をBF部301と並列に配置することによって、ループフィルタ部120において、符号量削減率の低下を招来することなく、並列化による高速化を実現することができる。
 (変形例1)
 次に、図20に示すループフィルタ部120の第1の変形例について、図21及び図22を参照して説明する。
 本変形例に係るループフィルタ部120aは、(1)第2の線形フィルタ部702の出力画像S2を出力画像Sとする第1のモード、及び、(2)第1の線形フィルタ部701の出力画像S1と第2の線形フィルタ部702の出力画像S2とを加算することにより得られた合成画像Sを出力画像Sとする第2のモードで動作可能なフィルタ装置である。
 ループフィルタ部120aが何れのモードで動作するかは、動画像符号化装置2から提供されるフィルタパラメータに含まれるモード指定情報(以下「alf_parallel_mode」とも表記)により制御される。本変形例においては、alf_parallel_mode=0の場合、ループフィルタ部120aは第1のモードで動作し、alf_parallel_mode=1の場合、ループフィルタ部120aは第2のモードで動作する。
 図21は、本変形例に係るループフィルタ部120aの動作状態を示すブロック図である。図21(a)は、第1のモードにおける動作状態を示し、図21(b)は、第2の動作モードにおける動作状態を示している。
 図21(a)に示すように、第1のモードにおいては、第1の線形フィルタ部701が機能を停止し、第2の線形フィルタ部702の出力画像S2が出力画像Sとしてループフィルタ部120aから出力される。つまり、出力画像Sの画素(x,y)における画素値S(x,y)は、(b)式のように表すことができる。(b)式において、Σは、j=1,2,…,N×Nを渡る和である。
  S(x,y) = Σbj×Xdj…(b)
 第1のモードにおいて、第2の線形フィルタ部702のタップ数Nは可変であり、動画像符号化装置2から提供されるフィルタパラメータに含まれるタップ数指定情報(以下「alf_length_luma_minus5_div2」とも表記)によって決定される。ここで、alf_length_luma_minus5_div2は、0以上3以下の自然数を表す2ビットのバイナリデータである。alf_length_luma_minus5_div2=0(00),1(01),2(10),3(11)のとき(括弧内は2進表記)、第2の線形フィルタ部702は、自身のタップ数Nを、それぞれ、N=5,7,9,11に設定する。
 図21(b)に示すように、第2のモードにおいては、第1の線形フィルタ部701の出力画像S1と第2の線形フィルタ部702の出力画像S2とを加算することにより得られた合成画像Sが出力画像Sとしてループフィルタ部120aから出力される。つまり、出力画像Sの画素(x,y)における画素値S(x,y)は、(c)式のように表すことができる。(c)式において、Σは、i=1,2,…,M×Mを渡る和である。
  S(x,y) = Σai×Xi + b×Xd(x,y)+o …(c)
 第2のモードにおいて、第1の線形フィルタ部701のタップ数Mは可変であり、上述したタップ数指定情報によって決定される。alf_length_luma_minus5_div2=0(00),1(01),2(10),3(11)のとき(括弧内は2進表記)、第1の線形フィルタ部701は、自身のタップ数Mを、それぞれ、M=5,7,9,11に設定する。一方、第2の線形フィルタ部702のタップ数Nは、N=1に固定されている。2以上の演算手段を備えている場合、ループフィルタ部120aは、これら2つの演算手段を用いて、BF部301によるフィルタ演算と、第1の線形フィルタ部701によるフィルタ演算(積和演算)とを並列的に実行することができる。
 本変形例においては、第2の線形フィルタ部702のタップ数Nが1に設定されるため、第2のモードにおいて、第2の線形フィルタ部702におけるフィルタ演算が極めて軽い処理になる。したがって、第2のモードにおいて、BF部301によるフィルタ演算と、適応フィルタ部302によるフィルタ演算とを、略完全に並列化し得る。
 ループフィルタ部120aにおける動作モードの切り替え、及び、タップ数の設定(第1のモードにおける第2の線形フィルタ部702のタップ数Nの設定、及び、第2の動作モードにおける第1の線形フィルタ部701のタップ数Mの設定)は、動画像符号化装置2から提供されるフィルタパラメータに基づいて行われる。
 図22は、動画像符号化装置2から提供されるフィルタパラメータ(alf_param)の一構成例を示す図である。図22に示すように、本構成例に係るフィルタパラメータは、スライス毎に動画像符号化装置2から提供されるフィルタパラメータであり、対象スライスに対する適応フィルタ部302の動作を規定する複数のシンタックス(adaptive_loop_filter_flag、alf_pred_coef_mode、alf_parallel_mode、alf_length_luma_minus5_div2、alf_coeff_luma[i])を含んでいる。
 adaptive_loop_filter_flagは、対象スライスにおいて適応フィルタ11を使用するか否かを指定する情報である。adaptive_loop_filter_flag=0である場合、ループフィルタ部120aは、デブロッキングフィルタ後の復号画像Xdを出力画像Sとして出力する。
 alf_pred_coef_modeは、フィルタ係数を予測符号化するか否かを指定する情報である。alf_pred_coef_mode=0は、フィルタ係数の予測符号化が行なわれていないことを示し、alf_pred_coef_mode=1は、予測符号化が行なわれていることを示す。例えば、第1の線形フィルタ部701は、alf_pred_coef_mode=0である場合、フィルタ係数aiの値をalf_coeff_luma[i]に設定し、alf_pred_coef_mode=1である場合、フィルタ係数aiの値を前フレームにおける同フィルタ係数aiの値とalf_coeff_luma[i]との和に設定する。
 alf_parallel_modeは、adaptive_loop_filter_flag=1である場合に、ループフィルタ部120を第1のモードで動作させるか、第2のモードで動作させるかを指定する情報(モード指定情報)である。BF部301によるフィルタ演算と第1の線形フィルタ部701によるフィルタ演算とを並列的に実行するか否かを指定する情報であると言い換えることもできる。上述したとおり、alf_parallel_mode=0の場合、ループフィルタ部120aは第1のモードで動作し、alf_parallel_mode=1の場合、ループフィルタ部120aは第2のモードで動作する。
 alf_length_luma_minus5_div2は、上述したとおり、第1のモードにおいて第2の線形フィルタ部702のタップ数Nを指定し、第2の動作モードにおいて第1の線形フィルタ部701のタップ数Mを指定する情報(タップ数指定情報)である。上述したとおり、alf_length_luma_minus5_div2=0,1,2,3のとき、それぞれ、M=5,7,9,11(第2のモード)、N=5,7,9,11(第1のモード)に設定される。このように、第1のモードにおける第2の線形フィルタ部702のタップ数Nと、第2の動作モードにおける第1の線形フィルタ部701のタップ数Mとを、1つのパラメータで指定する構成を採用しているのは、フィルタパラメータのデータサイズをできるだけ小さく抑えるためである。
 alf_coeff_luma[i]は、第1の線形フィルタ部701及び第2の線形フィルタ部702のフィルタ係数、並びに、オフセットoを指定する情報である。例えば、第1のモードにおいて、N=5である場合、第2の線形フィルタ部702の25個の係数および1個のオフセットを指定する。ただし、第2の線形フィルタ部702が対称性を有する線形フィルタである場合(フィルタ係数をaijと行列表現したときにaij=ajiとなる場合)、第2の線形フィルタ部702に関して指定すべき係数の数は(N×N+1)/2個=13個になる。また、例えば、第2のモードにおいて、M=5である場合、第1の線形フィルタ部701の25個の係数と、第2の線形フィルタ部702の1個の係数と、1個のオフセットcとを指定する。ただし、第1の線形フィルタ部701が対称性を有する線形フィルタである場合、第1の線形フィルタ部701に関して指定すべき係数の数は(M×M+1)/2個になる。
 なお、動画像復号装置1が色差信号に作用する適応フィルタを更に備えている備えている場合、フィルタパラメータに、色差信号に関するシンタックス(alf_chroma_idc、alf_length_chroma_minus5_div2、alf_coeff_chroma[i])を含ませてもよい。ここで、alf_chroma_idcは、適応フィルタを色差信号に対して適用するか否かを示す情報であり、alf_length_chroma_minus5_divは、その適応フィルタのタップ数を示す情報であり、alf_coeff_chroma[i]は、その適応フィルタのフィルタ係数およびオフセットを示す情報である。
 (変形例2)
 次に、図20に示すループフィルタ部120の第2の変形例について、図23を参照して説明する。
 本変形例に係るループフィルタ部120bは、(1)第2の線形フィルタ部702の設定可能なタップ数Nに上限値が定められていない第1のモードと、(2)第2の線形フィルタ部702の設定可能なタップ数Nに上限値Nmaxが定められている第2のモードとで動作可能なフィルタ装置である。第2のモードにおいては、第2の線形フィルタ部702のタップ数がNmaxよりも大きな値に設定されない。つまり、第2のモードにおいては、第2の線形フィルタ部702において過度に負荷の高いフィルタ演算が実行されない。
 ループフィルタ部120bが何れのモードで動作するかは、動画像符号化装置2から提供されるフィルタパラメータに含まれるモード指定情報(本明細書においては、このモード指定情報を「alf_parallel_mode」と表記する)により制御される。本変形例においては、alf_parallel_mode=0の場合、ループフィルタ部120bは第1のモードで動作し、alf_parallel_mode=1の場合、ループフィルタ部120bは第2のモードで動作する。
 図23は、本変形例に係るループフィルタ部120bの動作状態を示すブロック図である。図23(a)は、第1のモードにおける動作状態を示し、図23(b)は、第2の動作モードにおける動作状態を示している。
 第1のモードにおいては、図23(a)に示すように、第2の線形フィルタ部702のタップ数を指定するタップ数指定情報として、可変長のタップ数指定情報alf_length_luma_minus1_div2_2が動画像符号化装置2にから提供される。alf_parallel_mode=0の場合、第2の線形フィルタ702は、可変長のタップ数指定情報alf_length_luma_minus1_div2_2から、自身のタップ数N=alf_length_luma_minus1_div2_2×2+1を復号する。第1のモードにおいては、第2の線形フィルタ部702のタップ数Nとして、任意の奇数が復号されえる。
 一方、第2のモードにおいては、図23(b)に示すように、第2の線形フィルタ部702のタップ数を指定するタップ数指定情報として、1ビットのタップ数指定情報alf_length_luma_minus1_div2_2が動画像符号化装置2にから提供される。alf_parallel_mode=1の場合、第2の線形フィルタ702は、1ビットのタップ数指定情報alf_length_luma_minus1_div2_2から、自身のタップ数N=alf_length_luma_minus1_div2_2×2+1を復号する。第2のモードにおいては、第2のフィルタ部702のタップ数Nとして、1または3が復号され得る。この場合、設定可能なタップ数Nの上限値Nmaxは3である。
 第2の線形フィルタ部702のタップ数Nが上限値Nmax以下に設定されるため、第2のモードにおいては、第2の線形フィルタ部702におけるフィルタ演算が軽い処理になる。したがって、第2のモードにおいては、BF部301によるフィルタ演算と、適応フィルタ部302によるフィルタ演算とを、概ね並列化し得る。
 第1の線形フィルタ部701は、自身のタップ数Mを、フィルタパラメータに含まれるもう1つのタップ数指定情報alf_length_luma_minus1_div2_1から、自身のタップ数M=alf_length_luma_minus1_div2_1×2+1を復号する。すなわち、ループフィルタ部120bは、フィルタパラメータに含まれる2つのタップ数指定情報から、第1の線形フィルタ部701のタップ数Mと、第2の線形フィルタ部702のタップ数Nとをそれぞれ復号する。
 なお、本変形例においては、第2の線形フィルタ部702の設定可能なタップ数Nに上限値が定められていない動作モードを第1のモードとしたが、第2の線形フィルタ部702の設定可能なタップ数Nに上限値Nmax’が定められている動作モードを第1のモードとしてもよい。この場合、例えば、タップ数指定情報alf_length_luma_minus1_div2_2として、2ビットのタップ数指定情報を用いることができる。このような構成であっても、第1のモードにおける上限値Nmax’が第2のモードにおける上限値Nmaxよりも大きければ、本変形例と同様の効果を奏することは明らかであろう。
 なお、図22に示したフィルタパラメータは、タップ数指定情報alf_length_luma_minus5_div2を、タップ数指定情報alf_length_luma_minus1_div2_1及びalf_length_luma_minus1_div2_2に置き換えることによって、本変形例に適合させることができる。
 (変形例3)
 次に、図20に示すループフィルタ部120の第3の変形例について、図24を参照して説明する。
 本変形例に係るループフィルタ部120cは、第2の変形例に係るループフィルタ120bと同様、フィルタパラメータに含まれる2つのタップ数指定情報から、第1の線形フィルタ部701のタップ数Mと、第2の線形フィルタ部702のタップ数Nとをそれぞれ復号する。ただし、第2の変形例に係るループフィルタ120bのような動作モードの切り替えは行なわれない。
 より具体的には、第1の線形フィルタ部701が、2ビットのタップ数指定情報alf_length_luma_minus3_div2から、自身のタップ数M=alf_length_luma_minus3_div2×2+3を復号する。このため、第1の線形フィルタ部701のタップ数Mとしては、3、5、7、又は9の何れかが復号されえる。また、第2の線形フィルタ部702が、1ビットの第2のタップ数指定情報alf_length_luma_minus1_div2から、自身のタップ数N=alf_length_luma_minus1_div2×2+1を復号する。このため、第2の線形フィルタ部702のタップ数Nとしては、1又は3の何れかが復号され得る。すなわち、第2の変形例に係るループフィルタ120bと同様、設定可能なタップ数Nの上限値Nmaxは3になる。
 第2の線形フィルタ部702のタップ数Nが上限値Nmax以下に設定されるため、本変形例に係るループフィルタ部120cにおいても、第2の線形フィルタ部702におけるフィルタ演算が軽い処理になる。したがって、BF部301によるフィルタ演算と、適応フィルタ部302によるフィルタ演算とを、概ね並列化し得る。
 なお、図22に示したフィルタパラメータは、(1)モード指定情報alf_parallel_modeを省略し、(2)タップ数指定情報alf_length_luma_minus5_div2を、タップ数指定情報alf_length_luma_minus3_div2及びalf_length_luma_minus1_div2に置き換えることによって、本変形例に適合させることができる。
 また、本変形例においては、第1の線形フィルタ部701のタップ数M、及び、第2の線形フィルタ部702のタップ数Nの両方が可変な場合に、これら2つのタップ数を2つのタップ数指定情報から決定する構成を採用したが、第1の線形フィルタ部701のタップ数M、及び、第2の線形フィルタ部702のタップ数Nの何れか一方のみ可変な場合に、可変な方のタップ数を1つのタップ数指定情報から決定する構成を採用してもよい。例えば、第2の線形フィルタ部702のタップ数Nが1に固定されており、第1の線形フィルタ部701のタップ数Mが可変な場合に、第1の線形フィルタ部701のタップ数Mをフィルタパラメータに含まれるタップ数指定情報に基づいて決定する構成などが考えられる。
 〔実施形態2〕
 すでに述べたように、非特許文献3には、予測残差、予測画像、及び、復号画像(予測残差と予測画像との和)に非線形デノイジングフィルタを施したものALFの入力画像とし、ALFの後段にデブロッキングフィルタを配置する構成が示されている。
 しかしながら、非特許文献3に開示された構成、すなわち、ALFへ上記3つの入力画像を入力する構成をそのまま用いると処理量および処理時間が増大してしまうという問題がある。
 本実施形態では、高い符号化効率を維持しつつ、入力数が3である場合であっても、処理量および処理時間の少なくとも何れかを削減することのできるフィルタ装置について、図25~30を参照しつつ説明する。
 図25は、本実施形態に係る動画像復号装置3の構成を示すブロック図である。図25に示すように、動画像復号装置3は、可変長符号化復号部114、逆量子化部115、逆変換部116、フレームメモリ117、予測部111、加算部109、および、ループフィルタ部120を備えている。動画像復号装置3は、符号化データを復号することによって動画像を生成する装置である。なお、可変長符号復号部114、予測部111、逆量子化部115、逆変換部116、加算部109、フレームメモリ117の構成は、動画像復号装置1と同じであるため、説明を省略し、以下ではループフィルタ部120について説明する。
 なお、本実施形態についての以下の説明においては、予測部111によって生成される予測画像を予測画像Predとも表記し、逆変換部116によって生成される残差画像を残差画像(予測残差)Dとも表記し、加算部109によって生成される復号画像を復号画像Pとも表記する。
 (ループフィルタ部120)
 本実施形態におけるループフィルタ部120は、復号画像Pに対してノイズ除去処理を施し、BF後画像(以下、本実施形態において、BF後画像P_NRとも表記)を生成する。また、本実施形態におけるループフィルタ部120は、(1)BF後画像P_NR、(2)予測部111から出力された予測画像PRED、及び(3)逆変換部116から出力された予測残差Dの少なくとも何れかに対して適応フィルタ処理を施し、適応フィルタ済復号画像P_ALFを生成する。
 以下では、本実施形態におけるループフィルタ部120の構成について図25を参照してより具体的に説明する。図25に示すように、ループフィルタ部120は、適応フィルタ用メモリ362、適応フィルタ部363、および、BF部364を備えている。ここでBF部364は、図3を参照して説明したBF部301と同じ構成であるため、説明を省略する。適応フィルタ用メモリ362は、適応フィルタ部363で用いる3種類の画像、予測画像PRED、予測残差D、および、BF後画像P_NRを各々格納するメモリ領域を備えている。より具体的には、予測画像PREDを格納する予測画像用メモリ領域366、予測残差Dを格納する残差画像用メモリ領域367、およびBF後画像P_NRを格納するBF後画像用メモリ領域365を備えている。
 (適応フィルタ部363)
 図25に示すように、適応フィルタ部363は、予測画像PRED、予測残差D、およびBF後画像P_NRに対して、符号化データから復号した適応フィルタ情報に含まれるフィルタ係数およびオフセットを用いた適応フィルタ処理を施すことによって適応フィルタ済復号画像P_ALFを生成し、生成した適応フィルタ済復号画像P_ALFをフレームメモリ117に格納する。なお、適応フィルタ部363は、シーケンス、ピクチャ、および、スライスの何れかを処理単位として適応フィルタ処理を行うことができる。換言すれば、適応フィルタ部363は、シーケンス毎、ピクチャ毎、または、スライス毎に適応フィルタ処理の処理内容を変更することができる。以下では、一例として、適応フィルタ部363が、スライスを単位として適応フィルタ処理を行う場合を例にとり説明を行う。
 図26は、適応フィルタ部363の構成を示すブロック図である。図26に示すように、適応フィルタ部363は、予測画素値適応重み付け部731、残差画素値適応重み付け部741、BF後画素値適応重み付け部702、シフト/除算部703、および、加算部704を備えている。なお、以下では、予測画素値適応重み付け部731、残差画素値適応重み付け部741、および、BF後画素値適応重み付け部702を、ぞれぞれ、線形フィルタ(部)731、線形フィルタ(部)741、線形フィルタ(部)702と呼ぶこともある。
 (予測画素値適応重み付け部731)
 予測画素値適応重み付け部731は、予測画像PREDの各画素値の、フィルタ係数ci(i=1~Nc、Ncはフィルタ係数ciの総数)を用いた重み付け和(加重線形和)をとることによって、第1の出力画像#731を生成する。ここで、フィルタ係数ciは、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測画像PREDの画素値に乗ぜられるフィルタ係数を表しており、以下の説明では、各ciを、c(u、v)とも表記する。
 具体的に、第1の出力画像#731の画素値をS1(x’、y’)と表し、予測画像PREDの画素値をSPred(x、y)と表すことにすると、予測画素値適応重み付け部731は、画素値S1(x’、y’)を以下の数式(9-1)によって算出する。
Figure JPOXMLDOC01-appb-M000001
 ここで、座標(x、y)は座標(x’、y’)と同一の座標としてもよいし、1対1の対応を有していれば、異なった座標としてもよい。c(u、v)は、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測画像PREDの画素値SPred(x+u、y+v)に乗ぜられるフィルタ係数を表している。
 また、フィルタ参照領域RPredは、フィルタ後の画素値を算出する対象となる画素(フィルタ対象画素)の位置に応じて、予測画像PRED上に設定される。ここで、フィルタ参照領域RPredのサイズは、Np×Np’画素とし、Np=Np’であっても、そうでなくてもよいものとする。
 このように、予測画素値適応重み付け部731は、予測画像PREDに作用するNp×Np’タップフィルタとして機能する。
 (残差画素値適応重み付け部741)
 残差画素値適応重み付け部741は、予測残差Dの各画素値の、フィルタ係数di(i=1~Nd、Ndはフィルタ係数diの総数)を用いた重み付け和(加重線形和)をとることによって、第2の出力画像#741を生成する。ここで、フィルタ係数diは、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測残差Dの示す画像の画素値に乗ぜられるフィルタ係数を表しており、以下の説明では、各diを、d(u、v)とも表記する。
 具体的に、第2の出力画像#741の画素値をS2(x’、y’)と表し、予測残差Dの画素値をSD(x、y)と表すことにすると、残差画素値適応重み付け部741は、画素値S2(x’、y’)を以下の数式(9-2)によって算出する。
Figure JPOXMLDOC01-appb-M000002
 ここで、座標(x、y)は座標(x’、y’)と同一の座標としてもよいし、1対1の対応を有していれば、異なった座標としてもよい。d(u、v)は、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、予測残差Dの示す画像の画素値SD(x+u、y+v)に乗ぜられるフィルタ係数を表している。
 また、フィルタ参照領域RDは、フィルタ後の画素値を算出する対象となる画素(フィルタ対象画素)の位置に応じて、予測残差D上に設定される。ここで、フィルタ参照領域RDのサイズは、Nd×Nd’画素とし、Nd=Nd’であっても、そうでなくてもよいものとする。
 このように、残差画素値適応重み付け部741は、予測残差Dに作用するNd×Nd’タップフィルタとして機能する。
 (BF後画素値適応重み付け部702)
 BF後画素値適応重み付け部702は、BF後画像P_NRの各画素値の、フィルタ係数bi(i=1~Nb、Nbはフィルタ係数biの総数)を用いた重み付け和(加重線形和)をとることによって、第3の出力画像#702を生成する。ここで、フィルタ係数biは、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、BF後画像P_NRの画素値に乗ぜられるフィルタ係数を表しており、以下の説明では、各biを、b(u、v)とも表記する。
 具体的に、第3の出力画像#702の画素値をS3(x’、y’)と表し、BF後画像P_NRの画素値をSPNR(x、y)と表すことにすると、BF後画素値適応重み付け部702は、画素値S3(x’、y’)を以下の数式(9-3)によって算出する。
Figure JPOXMLDOC01-appb-M000003
 ここで、座標(x、y)は座標(x’、y’)と同一の座標としてもよいし、1対1の対応を有していれば、異なった座標としてもよい。b(u、v)は、符号化データの適応フィルタ情報に含まれるフィルタ係数のうち、BF後画像P_NRの画素値SPNR(x+u、y+v)に乗ぜられるフィルタ係数を表している。
 また、フィルタ参照領域RPNRは、フィルタ後の画素値を算出する対象となる画素(フィルタ対象画素)の位置に応じて、BF後画像P_NR上に設定される。ここで、フィルタ参照領域RPNRのサイズは、N×N’画素とし、N=N’であっても、そうでなくてもよいものとする。
 このように、BF後画素値適応重み付け部702は、BF後画像P_NRに作用するN×N’タップフィルタとして機能する。
 (加算部704)
 加算部704は、第1の出力画像#731、第2の出力画像#741、および、第3の出力画像#702の対応する各画素値と、オフセットoとを加算することによって、出力画像#704を生成する。具体的に、出力画像#704の画素値をSo(x、y)と表すことにすると、加算部704は、画素値So(x、y)を、以下の数式(9-4)によって算出する。
Figure JPOXMLDOC01-appb-M000004
 ここで、オフセットoは、符号化データの適応フィルタ情報に含まれるオフセットを表している。
 (シフト/除算部703)
 シフト/除算部703は、加算部704によって生成された出力画像#704の各画素値に対して、ラウンド付きシフト演算による除算処理を行うことによって適応フィルタ済復号画像P_ALFを生成する。シフト/除算部703による具体的な処理は、実施形態1と同様であるため、ここでは説明を省略する。
 以上のように、適応フィルタ部363においては、BF後画素値適応重み付け部702を、BF部364の後段に配置し、BF部364から出力されるBF後画像P_NRに作用させると共に、予測画素値適応重み付け部731と残差画素値適応重み付け部741とを、BF部364と並列に配置し、BF部364に入力されるBF前画像に作用させる。
 以下では、適応フィルタ部363のより具体的な構成例について説明する。
 (構成例1)
 空間フィルタである予測画素値適応重み付け部731と残差画素値適応重み付け部741とをBF部364に対して並列に配置することによって、符号化効率を低下させることなく、BF後画素値適応重み付け部702のタップ数N×N’を小さくすることが可能になる。
 また、BF後画素値適応重み付け部702のタップ数N×N’を小さくすれば、第1の出力画像#731、第2の出力画像#741、および、第3の出力画像#702を並列処理によって生成する際の処理時間を短縮することができる。特に、BF後画素値適応重み付け部702のタップ数を1×1タップとすれば、当該並列処理の処理時間を最も短縮することができる。すなわち、並列性を最も向上させることができる。これは、BF後画素値適応重み付け部702において、BF後画像P_NRをフィルタ対象画素の1画素のみ参照し、当該画素と重み係数との積のみを算出する場合に対応する。なお、予測画像PREDに対するタップ数Nc×Nc’、残差画像Dに対するタップ数Nd×Nd’は0を含む何れの値でも構わない。
 以上のように、本構成例では、BF後画像P_NRについてのタップ数を制限することにより、並列性を向上させることができる。
(構成例2)
 以下の構成は、残差画像Dのタップ数Nd×Nd’を制限することにより、処理量およびデータ転送量の削減効果を奏するものである。より具体的には、残差画像Dのタップ数Nd×Nd’を小さくすることによって、処理量およびデータ転送量の削減効果を奏するものである。本構成例では、残差画像Dのタップ数Nd×Nd’を1×1とする場合に最大の効果を奏する。残差画像Dは、復号された変換係数が逆量子化され逆変換された画像であるが、符号化装置において変換係数を生成する量子化過程においては、変換係数を削減するために四捨五入のラウンド処理ではなく、1/3未満を切り捨て1/3以上を切り上げる(もしくは1/6未満を切り捨て1/6以上を切り上げる)処理がなされることが多い。この場合、残差画像Dは本来の値よりも絶対値が小さい側にずれが生じている可能性が高く、フィルタ係数の積によって画素値を補正(大きく)することが適当と考えられる。このような効果は参照領域が小さい場合でも有効であるため、残差画像Dのタップ数を小さく(最大の効果を得るためには1に)制限することは適当である。なお、ここでは絶対値が小さい側にずれが生じると説明したが、逆量子化がこのずれを補償する処理(絶対値を大きくする処理)を含む場合には、ずれの方向が逆方向になることもある。また、量子化は周波数領域で行われるため画素領域での変化はこの限りではない。そのため、適応的な重み係数を用いる残差画像Dを含む適応フィルタで処理することが適当である。
 このように、本構成例では、符号化効率を低下させることなく、線形フィルタ部702のタップ数N×N’を削減するものであり、演算量およびデータ転送量が削減されるという効果を奏する。
(構成例2´)
 残差画像Dのタップ数Nd×Nd’についての制限は、BF後画像P_NRについてのタップ数N×N’についての制限と併用することができる。この場合、両者の線形フィルタにおいて、空間的(平面的、2次元的)なフィルタの効果が得られにくくなる。例えば、残差画像Dについてのタップ数Nd×Nd’、および、BF後画像P_NRについてのタップ数N×N’を共に1×1に設定した場合、画像の2次元的な相関を利用することができない。このような場合、予測画像PREDのタップ数は1タップなどには制限せず、平面的なフィルタの効果を得ることが適当である。
 予測画像PREDは特にイントラ予測において、特定方向との相関(通常、左方向との相関、上方向との相関)が高い傾向にある。この傾向は、既に復号された画素を予測に用いるという制約から生じる。しかしながら一般の画像の相関は、エッジ方向に沿って存在するものであり、ある画素に対し点対称に相関を有する。このような相関を活かすためには、2次元フィルタを利用することが適当である。すなわち、参照できなかった方向(例えば、下、右)方向の画素を用いることにより、原画像に近づけることができる。そのため、予測画像PREDに2次元フィルタを用いることは適当である。演算量をより削減したい場合には、予測画像PREDのタップ数を制限すればよい。最大の効果は、予測画像PREDのタップ数を1とした場合に得られる。参照領域が1画素の場合にはフィルタ対象画素に対応する位置の画素を参照すればよい。
(構成例2´´)
 なお、別の構成として、残差画像Dのタップ数Nd×Nd’についての制限と予測画像PREDのタップ数Nc×Nc’についての制限を併用することが適当である。最大の効果は、Nd=Nd’=Nc=Nc’=1とする場合である。ここでもフィルタ対象画素に対応する位置の画素を参照するものとする。
 この場合には、BF後画像P_NRについてのタップ数N×N’を1×1タップに制限せず、画像の2次元的な相関を利用することが適当である。この場合には、BF処理と同時に処理することのできない、線形フィルタ702による処理の処理量が大きなものとなる。このため、線形フィルタ731及び線形フィルタ741と線形フィルタ702とを並列処理できることの効果は小さいものとなる。しかし、本構成例では、以下に説明するように、データ転送量削減の効果が大きい。
 図10のデータ転送を説明する図を参照して既に示したように、復号処理と、BF部、適応フィルタ部363の処理を同時に行うことができれば、その間に発生する中間データ(ここでは予測画像PRED,予測残差D、BF後画像P_NR)を外部メモリとの間で転送する必要がなくなる。もし図10(a)の構成であれば、ループフィルタの処理単位、例えば、1スライス分の適応フィルタ部363の処理に必要とする画像(ここでは、BF後画像P_NR、予測画像PRED、予測残差D)を格納する適応フィルタ用メモリ362を必要とする。復号処理において、予測画像PREDを内部メモリで処理する場合には、これらを外部メモリに転送し保持することになる。また、適応フィルタ部363で処理する時点では逆に外部メモリから内部メモリへの転送が必要になる。
 予測部111、逆量子化部115、逆変換部116、および、加算部109の処理は、ブロック単位で行われるが、上述のように、予測画像PREDと予測残差Dとについてそれぞれ1画素のみを参照する場合には、この復号処理と同時に、線形フィルタ731と線形フィルタ741の処理を同時に行うことができる。具体的には、予測部111における予測画像PRED生成の直後に同時に線形フィルタ731として予測画像PREDと重み係数ciとの積を算出でき、また同様に、逆量子化部115および逆変換部116における予測残差Dの生成の直後に予測残差Dと重み係数diとの積を算出できる。
 なお、場合によっては、線形フィルタ731と線形フィルタ741の出力を外部メモリに転送する必要があるが、この場合にも、2つの出力の和を外部メモリに転送することにより、転送回数を2回から1回に減らすことができる。ループフィルタ(もしくは適応フィルタ)を構成する複数のフィルタ処理の出力の和を一度に外部メモリに転送することによって転送回数を減少させるという方法は、この構成によらず本発明の別の構成でも使用することができる。
 以上の構成では、予測画像PREDと予測残差Dとを外部メモリに転送することなく、内部メモリのまま、線形フィルタ731と線形フィルタ741で処理できるため、データ転送量の削減になる。さらに転送時間の削減が可能になるため、きわめて高速に処理できる。
(構成例3)
 以上の説明では、適応フィルタ部363への入力信号のタップ数制限によって、並列性の向上、並びに、演算量および転送量の削減という効果を発揮するものであったが、以下に説明するように参照範囲を復号済みの画像に制限することによっても演算量と転送量の削減が可能である。
 図27の(a)~(f)は、適応フィルタ部363の備える各線形フィルタ731、741、702がフィルタ対象画素の画素値を算出する際に参照する、各線形フィルタへの入力画像における参照範囲の例を示す。ここで、参照範囲とは、上述したフィルタ参照領域の少なくとも一部と重複する範囲のことであり、本構成例において、適応フィルタ部363の備える各線形フィルタは、フィルタ対象画素の位置に応じて設定される参照範囲に含まれる各入力画像の画素値を参照して、当該線形フィルタの出力を算出する。
 図27の(a)~(f)において、グレーの矩形はフィルタ対象画素の位置を示す。また、実線の矩形は、適応フィルタ部363の備える各線形フィルタにおいて参照する画像の範囲(参照範囲)を示す。また、波線の矩形は、フィルタ対象画素が含まれるブロックを示す。フィルタ対象画素が含まれるブロックとは、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットと呼ばれる単位のいずれであってもよい。例えば、以下の説明で「右側のブロック」とは、ブロックがマクロブロックである場合には「右側のマクロブロック」を意味し、ブロックが最大コーディングユニットである場合には「右側の最大コーディングユニット」を意味する。
 図27(a)は、特に制約がなく、参照範囲のタップ数をNとするとN×Nの画像を参照する例を示している。すなわち、図27(a)の例では、フィルタ参照領域に含まれる全ての画素を参照する。上記の「制約がなく」との表現はこのことを指す。図27(b)は、参照範囲を、(a)の場合よりも小さい範囲に制限する例を示している。もっとも小さく制限する場合、参照範囲は1×1画素になる。図27(c)はフィルタ対象画像の左側と上側の画像のみを参照する例を示している。図27(d)はフィルタ対象画像の上側の画像のみを参照する例を示している。図27(e)は、フィルタ対象画像の属するブロックおよびその左側と上側の画像のみを参照する例を示している。図27(f)は、フィルタ対象画像の属するブロックの下側の画素を参照しない例を示している。なお、ここでは、復号処理がブロック単位でラスタスキャン順に行われることを仮定して、左側、上側という表現を用いたが、より正確には、図27(c)は、復号済みの画像を参照することを示すものである。また、図27(d)は、復号済みの画像と、復号済みの画像の右側に位置する画像を参照する(未復号ブロックの画像を参照しない)ことを示す。図27(e)は、復号済みの画像と、フィルタ対象画素が存在するブロックの画像とを参照することを示す。最後に図27(f)は、復号済みの画像とフィルタ対象画素が存在するブロックの画像と、前記ブロックの右側に存在するブロック(例えば、前記ブロックの右辺に隣接するブロック)の画像を参照すること(フィルタ対象ブロックと同一ライン上のブロックを除く、未復号ブロックの画像を参照しない)を意味する。なお、同一ラインと表現したが、場合によっては同一ラインよりも上のラインのブロックを参照しても良い。例えば画像がマクロブロックで区切られている場合には同一マクロブロックライン、画像が最大コーディングユニットで区切られている場合には、同一最大コーディングユニットラインに含まれるブロックの画像については、未復号画像においても参照可能である。
 また、図27の(c)~(f)に示す参照範囲は、以下のように表現することもできる。図27(c)においては、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重なるように設定されている。図27(d)においては、参照範囲の下辺の一部が、対象画素の下辺と重なるように設定されている。図27(e)においては、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されている。図27(f)においては、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されている。
 なお、これらの参照範囲は、BF前画像、BF後画像、予測画像PRED、残差画像Dのいずれについても適用することができる。言い換えると、線形フィルタ部701、702、731、741の少なくも何れかの入力信号として用いることができる。
 図27(c)に示した制約のようにフィルタ対象画素の左側と上側のみを参照する場合には、既に復号済みの画像であることから、参照範囲における参照画像が全て参照可能となるまで、対応する線形フィルタ部の処理を待つ必要がなくなる。例えばBF前画像の参照画像が参照範囲に制限されていれば、線形フィルタ部701を、当該画素を復号する時点で処理を行うことができる。同様に、予測画像PREDであれば線形フィルタ部731、残差画像Dであれば741を、当該画素を復号する時点で処理を開始することができる。
 また、適応フィルタを構成する線形フィルタの入力が、図27(d)の制約のようにフィルタ対象画素の上側のみを参照する構成である場合には、1ブロックライン後に処理される可能性のある下側の画像の復号を待つ必要がない。ブロックを単位としてラスタスキャン順に復号処理を行う場合、フィルタ対象画素の下側に位置する画素の画素値が復号され参照されるまでに多くのブロックを処理する必要がある。したがって、下側のブロックの復号が完了するまで、当該フィルタ対象画素についての画素値算出処理を最も時間のかかるケースで、1ブロックラインの復号の間待機する必要が生じる。また、フィルタ対象画素の下側に位置する画素を参照する場合、内部メモリのサイズの問題から、入力信号を内部メモリに全て保存しておくことができず、一度外部メモリに転送する必要が生じる。それに比べて、フィルタ対象画素を含む対象ブロックの右側に位置する画素については、復号完了までの待機時間が短いので、必要な入力信号を全て内部メモリに保存することが可能である。そのため、下側の画素を参照しない制約をもつこの構成はデータ転送量の削減に大きな効果を有する。より具体的には、適応フィルタ部363の入力信号のBF後画像P_NR、予測画像PRED、残差画像Dの一つもしくは複数がこれらの制約がある場合には、その信号を外部メモリへ転送することが不要になる。
 また、図27(e)に示した制約ではフィルタ対象画素の属する対象ブロックの左側と上側の画像のみを参照する例を示している。適応フィルタを構成する線形フィルタへの入力が、このような画像のみを参照する場合には、1ブロック後に処理される可能性のある右側の画像の復号を待つ必要がない。つまり、その入力が属するブロックの復号が終了した時点において、線形フィルタの処理に必要となる全ての画像が得られているため、次のブロックの復号を待つ必要なくすぐに処理することができる。図27(c)の場合に比べると対象ブロックの復号終了までは待つ必要があり、その間の入力画像は内部に保持する必要がある。しかし、ブロックが、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットである場合には十分小さい単位であるため、内部メモリ上の問題は生じない。この構成はデータ転送量の削減に大きな効果を有する。すなわち、BF後画像P_NR、予測画像PRED、残差画像Dがこれら入力である場合には外部メモリに転送する必要がなくなる。
 また、図27(f)に示した制約ではフィルタ対象画素の属する対象ブロックの下側の画像を参照しない例を示している。適応フィルタを構成する線形フィルタの入力が、このような画像のみを参照する構成である場合には、1ブロックライン後に処理される可能性のある下側の画像の復号を待つ必要がない。つまり、その入力が属するブロックの復号が終了した時点では、対象ブロックの右側のブロックに属する画素を除いて、フィルタ対象画素の画素値を算出するために必要となる全ての画像が得られているため、下側のブロックの処理を待つことなくフィルタ処理を行うことができる。具体的には、復号処理が行われているブロックの左側のブロックについての線形フィルタ処理を行うことができる。この構成はデータ転送量の削減に大きな効果を有する。すなわち、BF後画像P_NR、予測画像PRED、残差画像Dがこれら入力である場合には外部メモリに転送する必要がなくなる。
 ところで、図27(c)、図27(d)においては、フィルタ対象画素の位置に応じて、参照範囲がユニークに定まる。それに対して、図27(e)や図27(f)の場合には、フィルタ対象画素が対象ブロックの右側境界および下側境界に近い場合には参照範囲が制限され、そうでない場合には、参照範囲が図27(a)のように制限されない場合、すなわち、参照範囲がフィルタ参照領域と等しくなる場合もある。
 言い換えると、図27(c)、図27(d)では参照範囲がフィルタ対象画素とブロック境界の位置関係により変化しない。それに対して、図27(e)と図27(f)の場合には、フィルタ対象画素とブロック境界の位置関係によって参照範囲が変化する。具体的には、重み係数がフィルタ対象画像を9×9タップの矩形型領域とするフィルタ処理の場合、フィルタ対象画素から5画素離れた画素を用いる。逆に、例えば、図27(e)の制限の場合は、フィルタ対象画素と右もしくは下のブロック境界の間に5画素以上の画素のない場合には参照が制限されていることになる。
 各線形フィルタにおいて、フィルタ参照領域に属する各画素値とフィルタ係数との積和によってフィルタ対象画素の画素値が算出されるように規定されているものとすると、参照範囲を設定することにより、フィルタ参照領域において参照できない画素が生じる場合には、当該参照できない画素に代えて、代替画素の画素値を参照することが好ましい。この一つの方法は、従来のパディング方法を用いて参照可能な画素を延長することである。他の方法は、フィルタ対象画素に対して点対称に位置する画素を用いることである。例えば、下側にある画像の使用が制限される場合には、対称の位置にある上側にある画像を用いる。さらに別の方法は、フィルタ対象画素の位置にある画素を用いることである。
 以上に説明したように、参照範囲を復号済みの画像に制限することによっても演算量と転送量の削減が可能である。また、一部のフィルタ処理を先行して実行し、残る線形フィルタ処理を最後に実行する場合において、先行するフィルタ処理の出力を外部メモリに転送する必要が生じる場合があるが、この場合にも、先行する複数の線形フィルタ処理の和を一度に外部メモリに転送することによって転送回数を減少させることができる。
 図28は、後述する動画像符号化装置4から提供される適応フィルタ情報に含まれるフィルタパラメータ(alf_param)の構成の一部を示す図である。図28(a)は、alf_prallel_modeというモードを備える構成を示している。既に説明したようにalf_prallel_modeが1である場合には、BF後画像のタップ数を1に制限する。また図28(b)ではalf_reference_modeというモードを備える。alf_reference_modeが0である場合には図27(a)のように参照範囲は制限されず、alf_reference_modeが1、2、3、4、5である場合には図27(b)、図27(c)、図27(d)、図27(e)、図27(f)のように参照範囲が制限される。このように、動画像符号化装置と動画像復号装置がともに同じ参照範囲をとる必要があるが、参照範囲はあらかじめ設定しておいても良いし、ここで説明したようにフィルタパラメータ(適応フィルタ情報)によって明示的に参照範囲の制限を変更する構成も好適である。
 図29は、後述する動画像符号化装置4から提供される適応フィルタ情報に含まれるフィルタパラメータ(alf_param)の一構成例を示す図である。図29に示すように、本構成例に係るフィルタパラメータは、スライス毎に動画像符号化装置4から提供されるフィルタパラメータであり、対象スライスに対する適応フィルタ部363の動作を規定する複数のシンタックス(adaptive_loop_filter_flag、alf_length_df_minus1_div2、alf_coeff_df[i]、alf_length_error_minus1_div2、alf_coeff_error[i]、alf_length_pred_minus1_div2、alf_coeff_pred[i])の全てもしくは一部を含んでいる。
 adaptive_loop_filter_flagは、対象スライスにおいて適応フィルタ部363を使用するか否かを指定する情報である。
 alf_length_df_minus1_div2は、線形フィルタ部702のタップ数N×Nを指定する情報(タップ数指定情報)である。alf_length_df_minus1_div2=0,1,2,3のとき、それぞれ、N=1,3,5,9に設定される。
 alf_coeff_df[i]は、線形フィルタ部702のフィルタ係数bi、並びに、オフセットoを指定する情報である。N=5である場合、線形フィルタ部702の25個の係数および1個のオフセットを指定する。ただし、線形フィルタ部702が対称性を有する線形フィルタである場合(フィルタ係数をaijと行列表現したときにaij=ajiとなる場合)、線形フィルタ部702に関して指定すべき係数の数は(N×N+1)/2個=13個になる。
 同様にalf_length_pred_minus1_div2は線形フィルタ部731のタップ数を指定する情報であり、alf_coeff_pred[i]は、線形フィルタ部731のフィルタ係数ciを指定する情報である。
 同様にalf_length_error_minus1_div2は線形フィルタ部741のタップ数を指定する情報であり、alf_coeff_error[i]は、線形フィルタ部741のフィルタ係数diを指定する情報である。
 図29(a)は、BF後画像P_NR、予測画像PRED、予測残差Dのタップ数を自由に復号できる構成を示している。この構成の場合にも、復号したタップ数が1である、もしくは、タップ数が短い場合において、並列処理を行うことができ、また、図10(c)に示すようなデータ転送量を減らす動作を行うことができる。シンタックス上は自由にタップ数を選択することができるが、使用可能なセマンティクスを制限するプロファイル情報などによって、BD後画像P_NR、予測画像PRED、予測残差Dのタップ数を制限することも適当である。
 図29(b)は、BF後画像P_NRのタップ数を1に制限するシンタックスの構成である。この構成の場合にも、BF後画像P_NRのタップ数が1であることから、BF部364と、線形フィルタ731および線形フィルタ741とを並列に動作させることができる。また、図18で説明したようなデータ転送量削減の効果を得ることができる。また、BF部364と、線形フィルタ部731および線形フィルタ部741との並列処理を好適に行うことができる。また、図10(c)に示すようなデータ転送量を減らす動作を行うことができる。
 図29(c)は、予測残差Dのタップ数を1に制限するシンタックスの構成である。この構成の場合には線形フィルタ741を復号と同時に処理することが可能である。この場合、予測残差Dを外部メモリに出力する必要がない。
 図29(d)は、BF後画像P_NRのタップ数と予測残差Dのタップ数とを1に制限するシンタックスの構成である。この構成の場合にはBF部364と線形フィルタ731および線形フィルタ741とを並列に動作させることができる。また、線形フィルタ741を復号と同時に処理することが可能である。この場合、予測残差Dを外部メモリに出力する必要がない。
 (動画像符号化装置4)
 本実施形態に係る動画像符号化装置4の構成について図30を参照して説明する。動画像符号化装置4は、その一部に、H.264/MPEG-4.AVC、及び、KTAソフトウェアに採用されている技術を含む復号装置である。
 図30は、動画像符号化装置4の構成を示すブロック図である。図30に示すように、動画像符号化装置4は、減算部107、加算部109、予測部111、変換部112、量子化部113、逆量子化部115、逆変換部116、フレームメモリ117、可変長符号化部114、適応フィルタ情報導出部368、および、ループフィルタ部120を備えている。減算部107、加算部109、予測部111、変換部112、量子化部113、逆量子化部115、逆変換部116、フレームメモリ117、および、可変長符号化部114については、動画像符号化装置2と同様であるため、説明を省略する。また、ループフィルタ部120の備える各部は、動画像復号装置3におけるループフィルタ部120の各部と同様であるため、その説明を省略する。ただし、BF後画像用メモリ領域365、予測画像用メモリ領域366、および、残差画像用メモリ領域367からそれぞれ読み出されるBF後画像P_NR、予測画像PRED、および、予測残差Dは、適応フィルタ情報導出部358へ供給され、適応フィルタ部363へは、適応フィルタ情報導出部368によって生成された適応フィルタ情報が供給される。
 (適応フィルタ情報導出部368)
 適応フィルタ情報導出部368は、動画像復号装置3の備えるループフィルタ部120、および、動画像符号化装置4の備えるループフィルタ部120によって参照される適応フィルタ情報を生成する。
 適応フィルタ情報導出部368は、
(1)BF部364および適応フィルタ部363のそれぞれのオンオフ、
(2)適応フィルタ部363に入力する画像の種類およびその組み合わせ(BF後画像P_NR、予測残差D、および、予測画像Predのうち1つ若しくは複数の組み合わせ)、
(3)BF後画像P_NRに作用するフィルタのタップ数、
(4)BF後画像P_NRに作用するフィルタ係数
(5)予測残差Dの示す画像に作用するフィルタのタップ数、
(6)予測残差Dの示す画像に作用するフィルタ係数
(7)予測画像PREDに作用するフィルタのタップ数、
(8)予測画像PREDに作用するフィルタ係数
(9)オフセットo
を符号化効率が最適となるように決定する。
 適応フィルタ情報導出部368は、符号化対象画像(原画像)とフィルタ後の画像との二乗誤差が最小となるようにタップ数、フィルタ係数、および、オフセットを決定し、決定されたタップ数、フィルタ係数、および、オフセットを適応フィルタ情報に含める。このようにして生成された適応フィルタ情報は、適応フィルタ部363に供給されると共に、可変長符号化部114にも供給され、符号化データに符号化データに含められる。
 適応フィルタ情報導出部368は、BF後画像P_NRに作用するフィルタのフィルタ係数b(u、v)、予測残差Dに作用するフィルタのフィルタ係数d(u、v)、予測画像PREDに作用するフィルタのフィルタ係数c(u、v)、および、オフセットoを、フィルタ後の画像と符号化対象画像(原画像)との誤差が最小となるように決定する。例えば、以下の数式(10)に示す二乗誤差Eが最小となるように、フィルタ係数b(u、v)、フィルタ係数d(u、v)、フィルタ係数c(u、v)、および、オフセットoを決定する。
Figure JPOXMLDOC01-appb-M000005
 ここで、SPNR(x、y)はBF後画像P_NRの画素値を表しており、SD(x、y)は予測残差Dの画素値を表しており、SPred(x、y)は予測画像PREDの画素値を表しており、S0(x、y)は、符号化対象画像の画素値を表している。また、RPNR、RD、およびRPredは、BF後画像P_NR、予測残差D、予測画像PRED上のフィルタ参照領域を表している。フィルタ参照領域RPNR、RD、および、RPredのサイズを規定するタップ数は、複数の候補(例えば、1タップ、3タップ、5タップ、7タップ、9タップ)の中から、符号化効率が最適となるものが選択される。
 なお、適応フィルタ情報導出部368による、フィルタ係数、および、オフセットのより具体的な算出処理は、既に説明した適応フィルタ情報算出部118による算出処理と同様であるため、ここでは説明を省略する。
 上記のように決定されたフィルタ係数b(u、v)は、シンタックスalf_coeff_df[i]として、適応フィルタ情報(より具体的には、適応フィルタ情報の一部であるフィルタパラメータ)に含められる。また、上記のように決定されたフィルタ参照領域RPNRのタップ数を指定するパラメータは、alf_length_df_minus1_div2として、フィルタパラメータ(適応フィルタ情報alf_param())に含められる。
 また、上記のように決定されたフィルタ係数d(u、v)は、シンタックスalf_coeff_error[i]として、フィルタパラメータ(適応フィルタ情報alf_param())に含められる。また、上記のように決定されたフィルタ参照領域RDのタップ数を指定するパラメータは、alf_length_error_minus1_div2として、フィルタパラメータ(適応フィルタ情報alf_param())に含められる。
 また、上記のように決定されたフィルタ係数c(u、v)は、シンタックスalf_coeff_pred[i]として、フィルタパラメータ(適応フィルタ情報alf_param())に含められる。また、上記のように決定されたフィルタ参照領域RPredのタップ数を指定するパラメータは、alf_length_pred_minus1_div2として、フィルタパラメータ(適応フィルタ情報alf_param())に含められる。
 また、上記のように決定されたオフセットoは、シンタックスalf_coeff_df[i]の一成分としてフィルタパラメータ(適応フィルタ情報alf_param())に含められる。
 また、適応フィルタ情報導出部368は、
(10)BF後画像P_NRに作用するフィルタが参照する参照範囲
(11)予測残差Dの示す画像に作用するフィルタが参照する参照範囲
(12)予測画像PREDに作用するフィルタが参照する参照範囲
を決定し、決定された参照範囲を指定するalf_reference_modeを適応フィルタ情報に含める構成としてもよい。例えば、alf_reference_modeが0である場合には図27(a)のように参照範囲は制限されず、alf_reference_modeが1、2、3、4、5である場合には図27(b)、図27(c)、図27(d)、図27(e)、図27(f)のように参照範囲が制限される。
 また、適応フィルタ情報導出部368は、BF後画像のタップ数を1に制限するか否かを決定し、その結果を示すalf_prallel_modeを適応フィルタ情報に含める構成としてもよい。既に説明したようにalf_prallel_modeが1である場合には、BF後画像のタップ数が1に制限される。
 以上のように、動画像符号化装置4の備える適応フィルタ120によるフィルタ処理に用いられるフィルタパラメータは、符号化効率が最適となるように設定されているため、動画像符号化装置4を用いて符号化効率の高い符号化データ#3を生成することができる。
 なお、適応フィルタ部363に入力する画像の種類は、動画像符号化装置4が外部から取得する情報によって指定されるものであってもよい。この場合、適応フィルタ情報導出部368は、当該情報によって指定される画像に対して、最適なフィルタ係数およびオフセットを決定する構成とすればよい。
 また、以上説明したそれぞれの実施形態において、動画像復号装置および動画像復号装置の各機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより動画像復号装置や動画像復号装置の制御を行っても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
 また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであっても良い。
 〔本明細書に記載した発明(その1)〕
 なお、本明細書には、少なくとも、以下の発明が記載されている。
 1.ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像(BF後画像)を生成する境界利用フィルタ手段(BF手段)と、前記フィルタ入力画像と前記BF後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とするフィルタ装置。
 上記BF手段では、ブロック境界もしくはブロック境界付近の画素を選択して適応フィルタ入力用の画像を生成する。明示的に境界及びその付近の画素を参照するBF処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。
 上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界との位置関係に応じたデブロック強度調整が可能な効果を奏する。
 2.前記BF手段は、境界の状態に応じて前記フィルタ入力画像のブロックノイズを低減するデブロッキングフィルタ処理を行い前記BF後画像を生成するデブロッキングフィルタ手段であることを特徴とする1に記載のフィルタ装置。
 上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能な効果を奏する。
 3.前記BF手段は、フィルタ対象画素の付近の活性度を産出する活性度算出手段と、あるブロックと該ブロックに隣接する隣接ブロックとの境界におけるエッジ強度を算出するエッジ強度算出手段と、算出された前記活性度と前記エッジ強度に応じて異なる強度のブロックノイズ低減処理を行うデブロッキングフィルタ手段であることを特徴とする2に記載のフィルタ装置。
 このようなブロック境界の状態に応じた適応的な処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界のエッジ強度や活性度に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。
 4.前記適応フィルタ情報は重み係数であり、前記適応フィルタ手段は、前記BF後画像と前記フィルタ入力画像に前記適応フィルタ情報を用いて重み付けを行うことで適応フィルタ処理を行うことを特徴とする1.から3に記載のフィルタ装置。
 上記のように構成されたフィルタ手段によれば、重み係数を最小2乗法などを用いて容易に算出することができる。そのため、シーケンスやフレームの特徴に最適化されることによる大きな歪み低減を得ることができるという効果を奏する。
 5.前記適応フィルタ手段において、BF後画像との重み付けを行う手段が、1画素のBF画像と1つの重み係数との積を計算する乗算手段であることを特徴とする1.から4に記載のフィルタ装置。
 上記のように構成されたフィルタ手段によれば、高い歪み低減効果を得るのと同時に以下の効果を得ることができる。フィルタ入力画像の一つの領域(フィルタ対象ブロック)を処理する場合において、必要となるフィルタ入力画像の範囲が、適応フィルタ処理に対して小さくなる。また、適応フィルタ処理において必要となるフィルタ入力画像の範囲とBF処理で必要となる範囲の重なりが大きくなるため、一度の転送を用いて、フィルタ対象ブロックに対してBF処理と適応フィルタ処理を適応することができる。BF処理と適応フィルタ処理とで別々にデータ転送を行う場合に比べて、データ転送量削減の効果を奏する。また、BF後画像に対する重み付け処理の演算量を削減することができるため、BF処理と並列で実行できない重み付け処理が減少し、BF処理とフィルタ入力画像に対する重み付け処理を並列に実行する場合の並列性が向上する効果を奏する。
 6.符号化された入力画像から画像を復号する画像復号装置であって、前記入力画像から適応フィルタ情報及び残差情報及び予測画像を復号する復号手段と、前記残差情報を逆量子化及び逆変換することにより得られる残差画像と、前記予測画像とから、画像データを生成する生成手段と、1.から5.の何れか1つに記載のフィルタ装置と、を備え、前記フィルタ制御情報を用いて前記画像データに前記フィルタ装置を作用させることを特徴とする画像復号装置。
 この構成を備える動画像復号装置は、画像データの符号化歪みを効果的に低減することができるため、復号する画像の画質が向上する。
 7.入力画像の符号化を行って符号化された画像を出力する画像符号化装置であって、前記符号化された画像から局所復号画像の画像データを生成する復号画像生成手段と、1.から5.の何れか1つに記載のフィルタ装置と、前記画像データと、該画像データに前記フィルタ装置が備えるデブロッキングフィルタ手段を作用させて得られるデブロッキングフィルタ後画像と、前記入力画像とから、前記フィルタ装置が備える適応フィルタ手段が制御に用いる適応フィルタ情報を算出する適応フィルタ情報算出手段と、を備え、前記フィルタ制御情報を用いて前記フレームメモリに格納された前記画像データに前記フィルタ装置を作用させることを特徴とする画像符号化装置。
 この構成を備える動画像符号化装置は、参照画像として用いられる局所復号画像の符号化歪みを効果的に低減することができるため、高い符号化効率で圧縮を行うことができる。
 8.前記フィルタ手段は、演算部#1、演算部#2を含む2つ以上の演算手段を備え、演算部#1が前記BF部におけるBF後画像生成処理を行い、演算部#2が前記適応フィルタ手段で行われる前記フィルタ入力画像に対する重み付けを行うことにより、並列でフィルタ処理を行うことを特徴とする処理手順。
 この特徴を備えるフィルタ方法では、BFおよび重み付けという2つの処理を並列で実行することが可能であるため、高速な処理を行うことができる。
 9.前記フィルタ手段で用いられるフィルタ制御情報であって、フィルタ手段に入力されるフィルタ入力画像を入力として、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて生成されるBF画素値にかかる重み係数もしくは重み係数の予測値と、フィルタ手段に入力されるフィルタ入力画像にかかる重み係数もしくは重み係数の予測値とを含むことを特徴とするフィルタデータ構造。
 この特徴を備えるフィルタデータ構造を用いることにより、BF後画像に対する重み係数と、フィルタ入力画像に対する重み係数として、その両者を同時に最適化した値を、伝送、保存することが可能になる。このためフィルタデータ構造を用いることにより、歪み低減効果の非常に高いフィルタ処理を実現することができる。
 〔上記発明の効果〕
 適応フィルタの参照画素として、BF処理前の画素値とBF処理後の画素値とを用いる適応フィルタによって、少ない処理量で算出可能で、かつ、少ない数の重み係数を用いてデブロッキング強度を調整することができる(デブロッキング強度調整効果)。
 また、空間フィルタを備える適応フィルタを用いる場合には、さらに、ブロックノイズ低減の強さを補正する重み係数と空間フィルタの重み係数が同時に最適化されているので、より大きな符号化ノイズ低減効果が得られる。
 また、このようなループフィルタを動画像復号装置および動画像符号化装置に備えることによって、動画像符号化における符号化効率が向上する。
 〔本明細書に記載した発明(その2)〕
 また、本明細書には、少なくとも、以下の発明が記載されている。
 本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、上記境界フィルタの入力画像に作用する第1の線形フィルタ部と上記境界フィルタの出力画像に作用する第2の線形フィルタ部とを含む適応フィルタであって、上記第1の線形フィルタ部の出力画像と上記第2の線形フィルタ部の出力画像との和を出力する適応フィルタと、を備えている、ことを特徴とする。
 本発明に係るフィルタ装置が備える適応フィルタは、境界フィルタの入力画像に作用する第1の線形フィルタ部の出力画像と、境界フィルタの出力画像に作用する第2の線形フィルタ部の出力画像とを加算して出力する。したがって、符号化効率を低下させることなく、第2の線形フィルタ部のタップ数を減らしたり、あるいは、符号化効率を低下させることなく、第1の線形フィルタ部のタップ数を減らしたりすることができる。
 ここで、前者の効果、すなわち、符号化効率を低下させることなく、第2の線形フィルタ部のタップ数を減らし得ることは、符号化効率を低下させることなく、全体の演算時間を削減し得ることを意味する。すなわち、境界フィルタ、第1の線形フィルタ部、第2の線形フィルタ部におけるフィルタ演算に要する演算時間をT0、T1、T2とすると、第1の線形フィルタ部におけるフィルタ演算を境界フィルタにおけるフィルタ演算と並列的に実行可能な場合、全体のフィルタ演算に要する演算時間Tは、T=Max(T0+T2,T1)となる。したがって、第2の線形フィルタ部のタップ数を減らせば、第1の線形フィルタ部のタップ数を増やしたとしても、第1の線形フィルタ部におけるフィルタ演算に要する演算時間T1が、境界フィルタにおけるフィルタ演算に要する時間T0と第2のフィルタ部におけるフィルタ演算に要する時間T2との和T0+T2を下回っている限り、第2の線形フィルタ部における演算時間T2を短縮し、もって、全体の演算時間Tを短縮することができる。
 なお、境界フィルタにおけるフィルタ演算は、線形フィルタにおけるフィルタ演算(積和演算)と比べて演算量が多い。境界フィルタが、デブロッキングフィルタである場合、特に、活性度やブロック境界強度などに基づいて自身のフィルタ強度を自律的に調整する機能を有するデブロッキングフィルタである場合には尚更である。このため、第1の線形フィルタ部のタップ数を増やしたとしても、第1の線形フィルタ部における演算時間T1が境界フィルタ部における演算時間T0を上回ることは稀である。すなわち、符号化効率を低下させることなく、全体の演算時間を削減し得るという効果は、第1の線形フィルタ部における演算時間T1が境界フィルタ部における演算時間T0を上回るという稀なケースを除き、一般的に成立する効果である。
 本発明のフィルタ装置においては、上記第2の線形フィルタ部のタップ数が1に設定されている、ことが好ましい。
 上記の構成によれば、境界フィルタの見かけ上のフィルタ強度を適応的に調整する機能を残しながら、境界フィルタにおけるフィルタ演算と適応フィルタとにおけるフィルタ演算とを並列化することによる演算時間の削減量を最大化することができる。
 本発明のフィルタ装置においては、上記第1の線形フィルタ部のタップ数が2以上に設定されている、ことが好ましい。
 上記の構成によれば、上記第2の線形フィルタ部が非空間的(タップ数が1)な場合であっても、上記第2の線形フィルタ部が空間的(タップ数が2以上)な場合と同様の符号化効率向上効果を得ることができる。
 本発明のフィルタ装置においては、上記第1の線形フィルタ部におけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、ことが好ましい。
 上記の構成によれば、全体の演算時間が削減されたフィルタ装置が実現される。
 上記適応フィルタにおいて、上記適応フィルタは、上記第2の線形フィルタ部の出力画像を出力する第1のモードと、上記第1の線形フィルタ部の出力画像と上記第2の線形フィルタ部の出力画像との和を出力する第2のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、ことが好ましい。
 上記の構成によれば、並列化による演算時間を削減に適した第2のモードでフィルタ装置を動作させるか否かを外部から制御することができる。例えば、フィルタ装置を画像復号装置に内蔵した場合に、並列化による演算時間の削減に適した第2のモードで画像復号装置を動作させるか否かを画像符号化装置から制御することができる。
 本発明のフィルタ装置においては、上記第2のモードにおいて、上記第2の線形フィルタ部のタップ数が1に設定されている、ことが好ましい。
 上記の構成によれば、上記第2のモードにおいて、境界フィルタの見かけ上のフィルタ強度を適応的に調整する機能を残しながら、境界フィルタにおけるフィルタ演算と適応フィルタとにおけるフィルタ演算とを並列化することによる演算時間の削減量を最大化することができる。
 本発明のフィルタ装置においては、上記第1のモードにおいて、外部から取得したタップ数指定情報により指定された値に上記第2の線形フィルタ部のタップ数が設定され、上記第2のモードにおいて、上記タップ数指定情報により指定された値に上記第1の線形フィルタ部のタップ数が設定される、ことが好ましい。
 上記の構成によれば、単一のタップ数指定情報を用いて、第1のモードにおける第2の線形フィルタのタップ数と第2のモードにおける第1の線形フィルタのタップ数とを効率的に指定することができる。
 本発明のフィルタ装置において、上記適応フィルタは、上記第2の線形フィルタ部において設定可能なタップ数の上限値が定められていない第1のモードと、上記第2の線形フィルタ部において設定可能なタップ数の上限値が定められている第2のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、ことが好ましい。
 上記の構成によれば、並列化による演算時間の削減に適した第2のモードでフィルタ装置を動作させるか否かを外部から制御することができる。例えば、フィルタ装置を画像復号装置に内蔵した場合に、並列化による演算時間の削減に適した第2のモードで画像復号装置を動作させるか否かを画像符号化装置から制御することができる。
 本発明のフィルタ装置においては、上記第2の線形フィルタ部において設定可能なタップ数の上限値が定められている、ことが好ましい。
 上記の構成によれば、並列化による演算時間の削減に適した状態でフィルタ装置を動作させることができる。
 なお、上記のフィルタ装置を備えた画像復号装置、上記のフィルタ装置を備えた画像符号化装置、及び、上記のフィルタ装置に供給されるフィルタパラメータのデータ構造も本発明の範疇に含まれる。
 上記課題を解決するために、本発明のフィルタ装置は、ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像(BF後画像)を生成する境界利用フィルタ手段(BF手段)と、前記フィルタ入力画像と前記BF後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とする。
 上記BF手段では、ブロック境界もしくはブロック境界付近の画素を選択して適応フィルタ入力用の画像を生成する。明示的に境界及びその付近の画素を参照するBF処理と適応フィルタを組み合わせることにより、シーケンスやフレームの特徴及び境界の特徴に応じたデブロック強度調整が可能になり、歪み訂正効果を増大する効果を奏する。上記のように構成されたフィルタ手段によれば、少ない符号量の適応フィルタ情報を用いて、シーケンスやフレームの特徴及び境界との位置関係に応じたデブロック強度調整が可能な効果を奏する。
 上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、を備えており、上記第1から第3の線形フィルタ部の少なくとも何れかについて、タップ数が1に設定されている、ことを特徴としている。
 上記のように構成されたフィルタ装置によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、タップ数が1に設定されているため、高い符号化効率を維持しつつ、処理量および処理時の少なくとも何れかを削減することができる。
 また、上記の課題を解決するために、本発明に係るフィルタ装置は、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、
を備えており、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている、ことを特徴としている。
 上記のように構成されたフィルタ装置によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されているので、高い符号化効率を維持しつつ、処理量および処理時間の少なくとも何れかを削減することができる。
 なお、上記参照範囲の境界のうち処理順で下流側の境界とは、例えば、上記参照範囲が矩形状であり、上記処理がラスタスキャン順に行われるとした場合、当該参照範囲の境界のうち、右辺の境界および下辺の境界の少なくとも何れかの境界のことを指す。また、上記処理がラスタスキャン順の逆順に行われるとした場合、当該参照範囲の境界のうち、左辺の境界および上辺の境界の少なくとも何れかの境界のことを指す。
 また、上記ブロックとは、変換ブロック、予測ブロック、マクロブロック、コーディングユニット、最大コーディングユニットと呼ばれる単位のいずれであってもよい。
 また、上記フィルタ装置においては、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されている、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されているので、当該対象ブロックの直後に復号されるブロックに属する画素値の復号処理が終了した時点において、フィルタ処理を開始することができる。
 したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
 また、上記フィルタ装置においては、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されている、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されているため、上記対象ブロックの周辺のブロックに属する画素の画素値を参照するに際して、画素値の復号が完了するまで待機することなく、画素値の参照を行うことができる。
 したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
 また、上記フィルタ装置においては、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部が、対象画素の下辺と重複するように設定されている、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部が、対象画素の下辺と重複するように設定されているので、ラスタスキャン順に復号処理を行うとした場合に、対象画素の下側に位置する画素の画素値の復号処理を待つことなく、フィルタ処理を行うことができる。
 したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
 また、上記フィルタ装置においては、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重複するように設定されている、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重複するように設定されているので、ラスタスキャン順に復号処理を行うとした場合に、対象画素の下側に位置する画素の画素値、および、対象画素の右側に位置する画素の画素値の復号処理を待つことなく、フィルタ処理を行うことができる。
 したがって、上記の構成によれば、処理時間を削減することができる。また、フィルタ処理に伴うデータ転送量が削減されることにより、処理量も削減される。
 また、上記フィルタ装置においては、上記第1から第3の線形フィルタ部のいずれかにおけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部のいずれかにおけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行することにより、処理時間をさらに削減することができる。
 また、上記フィルタ装置においては、上記適応フィルタは、上記第1から第3の線形フィルタ部の少なくとも何れかのタップ数を、外部から取得したタップ数指定情報によって指定される値に設定する、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部の少なくとも何れかのタップ数を、外部から取得したタップ数指定情報によって効率的に指定することができる。
 また、上記フィルタ装置においては、上記適応フィルタは、上記第1から第3の線形フィルタ部の少なくとも何れかの参照範囲を、外部から取得したモード指定情報によって指定されるものに設定する、ことが好ましい。
 上記の構成によれば、上記第1から第3の線形フィルタ部の少なくとも何れかの参照範囲を、外部から取得したモード指定情報によって効率的に指定することができる。
 また、上記フィルタ装置においては、上記境界フィルタは、上記境界におけるブロックノイズを低減するためのデブロッキングフィルタである、ことが好ましい。
 上記の構成によれば、境界フィルタが、上記境界におけるブロックノイズを低減させることにより、予測精度および符号化効率が向上する。
 また、上記フィルタ装置を備えた画像復号装置であって、上記フィルタ装置を、復号画像を生成するために用いられる各画像に作用させる画像復号装置、および、上記フィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を、局所復号画像を生成するために用いられる各画像に作用させる画像符号化装置も本発明の範疇に含まれる。
 また、フィルタパラメータについての以下のデータ構造も本発明の範疇に含まれる。
 すなわち、境界フィルタと適応フィルタとを備えたフィルタ装置に供給されるフィルタパラメータのデータ構造において、ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタのフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部のフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部のフィルタ係数と、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部のフィルタ係数と、を含んでいることを特徴とするフィルタパラメータのデータ構造も本発明の範疇に含まれる。
 〔付記事項1〕
 上記実施形態における、マクロブロックは、H.264/MPEG-4 AVCの後継規格として提案されているHEVC(High Efficiency Video Coding)のLCU(最大コーディングユニット:Largest Coding Unit、コーディングツリー(Coding Tree)のrootと呼ばれることもある)に相当し、マクロブロックおよびブロックは、HEVCのCU(コーディングユニット:Coding Unit、コーディングツリーのleafと呼ばれることもある)、PU(Prediction Unit)、またはTU(Transformation Unit)に相当するものである。また、LCUは、ツリーブロックと呼ばれることもある。
 〔付記事項2〕
 以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も特許請求の範囲に含まれる。
 本発明に係るフィルタ装置は、画像符号化装置および画像復号装置に好適に利用することができる。特に、動画像符号化装置および動画像復号装置に好適に利用することができる。特に、H264/AVC、あるいは、その後継規格に従う動画像符号化装置および動画像復号装置に好適に利用することができる。
1     動画像復号装置
107   減算部
109   加算部
111   予測部
112   変換部
113   量子化部
114   可変長符号化部
115   逆量子化部
116   逆変換部
117   フレームメモリ
118   適応フィルタ情報算出部
119   適応フィルタ情報保存部
120   ループフィルタ部
120´  ループフィルタ部
301   BF部
302   適応フィルタ部
302´  適応フィルタ部
301´  第2のBF部
301´b 第3のBF部
401   境界エッジ算出部
402   活性度算出部
403   BF画素生成部
501   垂直境界値参照部
502   水平境界値参照部
503   対象画素参照部
504   BF重み算出部
505   加重平均部
501b  第2の垂直境界値参照部
502b  第2の水平境界値参照部
503b  第2の対象画素参照部
504b  第2のBF重み算出部
505b  第2の加重平均部
701   適応重み付け部
702   BF後画素値適応重み付け部
702´  乗算部
703   シフト/除算部
704   加算部
3     動画像復号装置(画像復号装置)
4     動画像符号化装置(画像符号化装置)
107   減算部
109   加算部
111   予測部
112   変換部
113   量子化部
114   可変長符号化復号部
115   逆量子化部
116   逆変換部
117   フレームメモリ
120   ループフィルタ部
362   適応フィルタ用メモリ
363   適応フィルタ部
364   BF部
368   適応フィルタ情報導出部

Claims (27)

  1.  ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、
     上記境界フィルタの入力画像に作用する第1の線形フィルタ部と上記境界フィルタの出力画像に作用する第2の線形フィルタ部とを含む適応フィルタであって、上記第1の線形フィルタ部の出力画像と上記第2の線形フィルタ部の出力画像とを加算して出力する適応フィルタと、を備えている、
    ことを特徴とするフィルタ装置。
  2.  上記第2の線形フィルタ部のタップ数が1に設定されている、
    ことを特徴とする請求項1に記載のフィルタ装置。
  3.  上記第1の線形フィルタ部のタップ数が2以上に設定されている、
    ことを特徴とする請求項1又は2に記載のフィルタ装置。
  4.  上記第1の線形フィルタ部におけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、
    ことを特徴とする請求項1~3の何れか1項に記載のフィルタ装置。
  5.  上記適応フィルタは、上記第2の線形フィルタ部の出力画像を出力する第1のモードと、上記第1の線形フィルタ部の出力画像と上記第2の線形フィルタ部の出力画像との和を出力する第2のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、
    ことを特徴とする請求項1~4の何れか1項に記載のフィルタ装置。
  6.  上記第2のモードにおいて、上記第2の線形フィルタ部のタップ数が1に設定されている、
    ことを特徴とする請求項5に記載のフィルタ装置。
  7.  上記第1のモードにおいて、外部から取得したタップ数指定情報により指定された値に上記第2の線形フィルタ部のタップ数が設定され、上記第2のモードにおいて、上記タップ数指定情報により指定された値に上記第1の線形フィルタ部のタップ数が設定される、
    ことを特徴とする請求項6に記載のフィルタ装置。
  8.  上記適応フィルタは、上記第2の線形フィルタ部において設定可能なタップ数の上限値が定められていない第1のモードと、上記第2の線形フィルタ部において設定可能なタップ数の上限値が定められている第2のモードとのうち、外部から取得したモード指定情報により指定された方のモードで動作する、
    ことを特徴とする請求項1~4の何れか1項に記載のフィルタ装置。
  9.  上記第2の線形フィルタ部において設定可能なタップ数の上限値が定められている、
    ことを特徴とする請求項1~4の何れか1項に記載のフィルタ装置。
  10.  上記境界フィルタは、上記境界におけるブロックノイズを低減するためのデブロッキングフィルタである、
    ことを特徴とする請求項1~9の何れか1項に記載のフィルタ装置。
  11.  請求項1~10の何れか1項に記載のフィルタ装置を備えた画像復号装置であって、上記フィルタ装置を復号画像に作用させることを特徴とする画像復号装置。
  12.  請求項1~10の何れか1項に記載のフィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を局所復号画像に作用させることを特徴とする画像符号化装置。
  13.  境界フィルタと適応フィルタとを備えたフィルタ装置に供給されるフィルタパラメータのデータ構造において、
     上記適応フィルタを構成する第1の線形フィルタ部であって、上記境界フィルタに入力される入力画像に作用する第1の線形フィルタ部のフィルタ係数と、
     上記適応フィルタを構成する第2の線形フィルタ部であって、上記境界フィルタから出力される出力画像に作用する第2の線形フィルタ部のフィルタ係数と、を含んでいることを特徴とするフィルタパラメータのデータ構造。
  14.  ブロックに分割されて処理された画像をフィルタ入力画像としてフィルタ後画像を生成するフィルタ装置であって、
     前記フィルタ入力画像に対応する適応フィルタ情報を保存する適応フィルタ情報保存手段と、
     前記フィルタ入力画像から、フィルタ対象画素に隣接するブロックの境界付近の画素を用いて、フィルタ対象画素における画素値を生成するフィルタを作用させ、境界利用フィルタ画像(BF後画像)を生成する境界利用フィルタ手段(BF手段)と、
     前記フィルタ入力画像と前記BF後画像とから、前記適応フィルタ情報によって制御される適応フィルタ処理を行う適応フィルタ手段を備えることを特徴とするフィルタ装置。
  15.  ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、
     出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、
    を備えており、上記第1から第3の線形フィルタ部の少なくとも何れかについて、タップ数が1に設定されている、
    ことを特徴とするフィルタ装置。
  16.  ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタと、
     出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部を含む適応フィルタであって、上記第1から第3の線形フィルタの出力画像を加算して出力する適応フィルタと、
    を備えており、
     上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の境界のうち処理順で下流側の境界の少なくとも一部が、対象画素の境界または対象画素を含むブロックの境界と重複するように設定されている、ことを特徴とするフィルタ装置。
  17.  上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、該対象ブロックの周辺の復号済みブロック、および、該対象ブロックの直後に復号されるブロックより構成されている、
    ことを特徴とする請求項16に記載のフィルタ装置。
  18.  上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲が、対象画素を含む対象ブロック、および、該対象ブロックの周辺の復号済みブロックより構成されている、
    ことを特徴とする請求項16に記載のフィルタ装置。
  19.  上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部が、対象画素の下辺と重複するように設定されている、
    ことを特徴とする請求項16に記載のフィルタ装置。
  20.  上記第1から第3の線形フィルタ部の少なくとも何れかについて、参照範囲の下辺の一部および右辺の一部が、それぞれ、対象画素の下辺および右辺と重複するように設定されている、
    ことを特徴とする請求項16に記載のフィルタ装置。
  21.  上記第1から第3の線形フィルタ部のいずれかにおけるフィルタ演算と、上記境界フィルタにおけるフィルタ演算とを並列的に実行する、
    ことを特徴とする請求項15から20の何れか1項に記載のフィルタ装置。
  22.  上記適応フィルタは、上記第1から第3の線形フィルタ部の少なくとも何れかのタップ数を、外部から取得したタップ数指定情報によって指定される値に設定する、
    ことを特徴とする請求項15から21の何れか1項に記載のフィルタ装置。
  23.  上記適応フィルタは、上記第1から第3の線形フィルタ部の少なくとも何れかの参照範囲を、外部から取得したモード指定情報によって指定されるものに設定する、
    ことを特徴とする請求項15から22の何れか1項に記載のフィルタ装置。
  24.  上記境界フィルタは、上記境界におけるブロックノイズを低減するためのデブロッキングフィルタである、
    ことを特徴とする請求項15から23の何れか1項に記載のフィルタ装置。
  25.  請求項15から24の何れか1項に記載のフィルタ装置を備えた画像復号装置であって、上記フィルタ装置を、復号画像を生成するために用いられる各画像に作用させることを特徴とする画像復号装置。
  26.  請求項15から24の何れか1項に記載のフィルタ装置を備えた画像符号化装置であって、上記フィルタ装置を、局所復号画像を生成するために用いられる各画像に作用させることを特徴とする画像符号化装置。
  27.  境界フィルタと適応フィルタとを備えたフィルタ装置に供給されるフィルタパラメータのデータ構造において、
     ブロック毎に処理された画像のブロック境界に選択的に作用する境界フィルタのフィルタ係数と、
     出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における上記境界フィルタの出力画像の各画素値を参照して算出する第1の線形フィルタ部のフィルタ係数と、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における予測画像の各画素値を参照して算出する第2の線形フィルタ部のフィルタ係数と、および、出力画像における各対象画素の画素値を、該対象画素の位置に応じて定まる参照範囲における残差画像の各画素値を参照して算出する第3の線形フィルタ部のフィルタ係数と、を含んでいることを特徴とするフィルタパラメータのデータ構造。
PCT/JP2011/062537 2010-06-03 2011-05-31 フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造 WO2011152425A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/701,441 US8805100B2 (en) 2010-06-03 2011-05-31 Filter device, image decoding device, image encoding device, and filter parameter data structure
JP2012518412A JP5875979B2 (ja) 2010-06-03 2011-05-31 フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2010127441 2010-06-03
JP2010-127441 2010-06-03
JP2010160862 2010-07-15
JP2010-160862 2010-07-15
JP2010-229095 2010-10-08
JP2010229095 2010-10-08

Publications (1)

Publication Number Publication Date
WO2011152425A1 true WO2011152425A1 (ja) 2011-12-08

Family

ID=45066785

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/062537 WO2011152425A1 (ja) 2010-06-03 2011-05-31 フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造

Country Status (3)

Country Link
US (1) US8805100B2 (ja)
JP (1) JP5875979B2 (ja)
WO (1) WO2011152425A1 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013047325A1 (ja) * 2011-09-27 2013-04-04 ソニー株式会社 画像処理装置および方法
JP2013165340A (ja) * 2012-02-09 2013-08-22 Sony Corp 画像処理装置と画像処理方法
JP2019519982A (ja) * 2016-05-16 2019-07-11 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同
WO2019182429A1 (en) * 2018-03-23 2019-09-26 Samsung Electronics Co., Ltd. Method and apparatus for beam management for multi-stream transmission
WO2019182159A1 (ja) * 2018-03-23 2019-09-26 シャープ株式会社 画像フィルタ装置、画像復号装置、及び画像符号化装置
JP2019201256A (ja) * 2018-05-14 2019-11-21 シャープ株式会社 画像フィルタ装置
JP2020522175A (ja) * 2017-05-26 2020-07-27 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc 高品質なビデオ再生用のアプリケーション固有のフィルタ
CN113574898A (zh) * 2019-03-08 2021-10-29 佳能株式会社 自适应环路滤波器
JP2022105577A (ja) * 2018-05-14 2022-07-14 シャープ株式会社 画像フィルタ装置
WO2025141929A1 (ja) * 2023-12-28 2025-07-03 ソニーセミコンダクタソリューションズ株式会社 光検出装置及び情報処理システム
WO2025141928A1 (ja) * 2023-12-28 2025-07-03 ソニーセミコンダクタソリューションズ株式会社 光検出装置及び情報処理システム

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101663764B1 (ko) * 2010-08-26 2016-10-07 에스케이 텔레콤주식회사 인트라 예측을 이용한 부호화 및 복호화 장치와 방법
MY174587A (en) * 2010-12-07 2020-04-28 Sony Corp Image processing device and image processing method
US20120182388A1 (en) * 2011-01-18 2012-07-19 Samsung Electronics Co., Ltd. Apparatus and method for processing depth image
WO2012134046A2 (ko) 2011-04-01 2012-10-04 주식회사 아이벡스피티홀딩스 동영상의 부호화 방법
KR102482777B1 (ko) * 2011-09-20 2022-12-29 엘지전자 주식회사 영상 정보 인코딩/디코딩 방법 및 장치
US9860530B2 (en) * 2011-10-14 2018-01-02 Hfi Innovation Inc. Method and apparatus for loop filtering
CN103843350A (zh) * 2011-10-14 2014-06-04 联发科技股份有限公司 回路滤波方法及其装置
CN109246429A (zh) * 2011-11-04 2019-01-18 Lg 电子株式会社 用于编码/解码图像信息的方法和装置
JP2015144423A (ja) * 2013-12-25 2015-08-06 三星電子株式会社Samsung Electronics Co.,Ltd. 画像符号化装置、画像復号化装置、それらの方法、プログラム及び画像処理システム
US9552628B2 (en) * 2014-03-12 2017-01-24 Megachips Corporation Image processor
US10681371B2 (en) * 2015-06-07 2020-06-09 Lg Electronics Inc. Method and device for performing deblocking filtering
CN106331720B (zh) * 2015-06-17 2020-03-27 福州瑞芯微电子股份有限公司 一种视频解码相关信息存储方法和装置
JP6464272B2 (ja) * 2015-08-20 2019-02-06 日本放送協会 画像符号化装置、画像復号化装置、及びこれらのプログラム
WO2017061189A1 (ja) * 2015-10-05 2017-04-13 シャープ株式会社 画像復号装置または画像符号化装置のための画像予測装置
CA3113488A1 (en) 2015-11-17 2017-05-26 Huawei Technologies Co., Ltd. Method and apparatus for video coding
KR20230070062A (ko) 2016-10-04 2023-05-19 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
CN117176947A (zh) 2016-10-04 2023-12-05 有限公司B1影像技术研究所 图像编码/解码方法、记录介质和传输比特流的方法
WO2018067051A1 (en) * 2016-10-05 2018-04-12 Telefonaktiebolaget Lm Ericsson (Publ) Deringing filter for video coding
EP3560204A4 (en) * 2016-12-23 2019-12-04 Telefonaktiebolaget LM Ericsson (publ) DERINGING FILTER FOR VIDEO CODING
KR102680972B1 (ko) * 2016-12-27 2024-07-04 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 부호화 장치, 복호 장치, 부호화 방법 및 복호 방법
TW201842768A (zh) 2017-04-06 2018-12-01 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置、編碼方法及解碼方法
EP3609182A4 (en) 2017-04-06 2020-04-08 Panasonic Intellectual Property Corporation of America ENCODING DEVICE AND METHOD, DECODING DEVICE AND METHOD
TW201842782A (zh) * 2017-04-06 2018-12-01 美商松下電器(美國)知識產權公司 編碼裝置、解碼裝置、編碼方法及解碼方法
KR20200005539A (ko) * 2017-04-11 2020-01-15 브이아이디 스케일, 인크. 면 연속성을 사용하는 360 도 비디오 코딩
CN111386703B (zh) * 2017-12-01 2022-06-03 索尼公司 编码装置、编码方法、解码装置和解码方法
CN111713104B (zh) * 2018-02-14 2022-04-26 索尼公司 图像处理装置和方法
BR112020018410A2 (pt) * 2018-03-09 2020-12-22 Huawei Technologies Co., Ltd. Método e aparelho para filtragem de imagem com coeficientes multiplicadores adaptivos
WO2021040036A1 (ja) * 2019-08-29 2021-03-04 日本放送協会 符号化装置、復号装置、及びプログラム
KR20210045533A (ko) * 2019-10-16 2021-04-27 삼성디스플레이 주식회사 동공 검출 장치
WO2025011377A1 (en) * 2023-07-11 2025-01-16 Mediatek Inc. Method and apparatus of unified classification in in-loop filtering in video coding
CN117172967B (zh) * 2023-08-11 2024-06-14 宁远众创空间创业服务有限公司 一种企业品牌宣传服务管理系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11275584A (ja) * 1998-03-23 1999-10-08 Hitachi Ltd 画像信号のブロック歪み低減回路
JP2002330436A (ja) * 2001-03-26 2002-11-15 Sharp Corp 選択的な画像フィルタリングを行うための方法、画像の符号化または復号化を実行するための方法およびコーデック
JP2005039766A (ja) * 2003-06-27 2005-02-10 Mitsubishi Electric Corp ポストフィルタ及びポストフィルタ処理方法並びに映像信号復号化装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929610B2 (en) 2001-03-26 2011-04-19 Sharp Kabushiki Kaisha Methods and systems for reducing blocking artifacts with reduced complexity for spatially-scalable video coding
US7450641B2 (en) 2001-09-14 2008-11-11 Sharp Laboratories Of America, Inc. Adaptive filtering based upon boundary strength
EP2899977A1 (en) * 2002-01-31 2015-07-29 Samsung Electronics Co., Ltd Filtering method and apparatus for reducing block artifacts or ringing noise
US6907079B2 (en) * 2002-05-01 2005-06-14 Thomson Licensing S.A. Deblocking filter conditioned on pixel brightness
US7961963B2 (en) 2005-03-18 2011-06-14 Sharp Laboratories Of America, Inc. Methods and systems for extended spatial scalability with picture-level adaptation
US8638862B2 (en) 2005-03-18 2014-01-28 Sharp Laboratories Of America, Inc. Methods and systems for upsampling filter design
US8175168B2 (en) 2005-03-18 2012-05-08 Sharp Laboratories Of America, Inc. Methods and systems for picture up-sampling
WO2008010929A2 (en) * 2006-07-18 2008-01-24 Thomson Licensing Methods and apparatus for adaptive reference filtering
WO2009151563A1 (en) * 2008-06-12 2009-12-17 Thomson Licensing Methods and apparatus for locally adaptive filtering for motion compensation interpolation and reference picture filtering
KR20140057683A (ko) * 2011-08-29 2014-05-13 주식회사 아이벡스피티홀딩스 머지 모드에서 영상 부호화 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11275584A (ja) * 1998-03-23 1999-10-08 Hitachi Ltd 画像信号のブロック歪み低減回路
JP2002330436A (ja) * 2001-03-26 2002-11-15 Sharp Corp 選択的な画像フィルタリングを行うための方法、画像の符号化または復号化を実行するための方法およびコーデック
JP2005039766A (ja) * 2003-06-27 2005-02-10 Mitsubishi Electric Corp ポストフィルタ及びポストフィルタ処理方法並びに映像信号復号化装置

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
I. AMONOU ET AL.: "Description of video coding technology proposal by France Telecom, NTT, NTT DOCOMO, Panasonic and Technicolor", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 1ST MEETING, 15 April 2010 (2010-04-15), DRESDEN, DE *
TAKESHI CHUJOH ET AL.: "Block-based Adaptive Loop Filter", ITU-TELECOMMUNICATIONS STANDAEDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP (VCEG) 35TH MEETING, 16 July 2008 (2008-07-16), BERLIN, GERMANY *
TAKESHI CHUJOH ET AL.: "Description of video codiong technology proposal by TOSHIBA", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 1ST MEETING, 15 April 2010 (2010-04-15), DRESDEN, DE *
TAKESHI CHUJOH ET AL.: "Improvement of Block- based Adaptive Loop Filter", ITU- TELECOMMUNICATIONS STANDAEDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP (VCEG) 36TH MEETING, 8 October 2008 (2008-10-08), SAN DIEGO, CALIFORNIA *
TOMOHIRO IKAI ET AL.: "A parallel adaptive loop filter", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) OF ITU-T SG16 WP3 AND ISO/IEC JTC1/SC29/WG11 2ND MEETING, 21 July 2010 (2010-07-21), GENEVA, CH *
YI-JEN CHIU ET AL.: "Adaptive (Wiener) Filter for Video Compression", ITU- TELECOMMUNICATIONS STANDAEDIZATION SECTOR STUDY GROUP 16 QUESTION 6 VIDEO CODING EXPERTS GROUP (VCEG) 35TH MEETING, 16 July 2008 (2008-07-16), BERLIN, GERMANY *
YU LIU ET AL.: "Unified Loop Filter for Video Coding", INTERNATIONAL ORGANISATION FOR STANDARDISATION ORGANISATION INTERNATIONALE DE NORMALISATION ISO/IEC JTC1/ SC29/WG11 CODING OF MOVING PICTURES AND AUDIO, MPEG2010/M17171, ISO/IEC JTC1/SC29/WG11, January 2010 (2010-01-01), Retrieved from the Internet <URL:http://yliu.avsx.org/pub/standard/m17171.zip> [retrieved on 20110829] *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013047325A1 (ja) * 2011-09-27 2013-04-04 ソニー株式会社 画像処理装置および方法
JP2013165340A (ja) * 2012-02-09 2013-08-22 Sony Corp 画像処理装置と画像処理方法
JP2019519982A (ja) * 2016-05-16 2019-07-11 クゥアルコム・インコーポレイテッドQualcomm Incorporated ビデオコーディングにおける適応ループフィルタ処理における複数のフィルタの混同
JP2020522175A (ja) * 2017-05-26 2020-07-27 エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc 高品質なビデオ再生用のアプリケーション固有のフィルタ
US11889070B2 (en) 2018-03-23 2024-01-30 Sharp Kabushiki Kaisha Image filtering apparatus, image decoding apparatus, and image coding apparatus
WO2019182159A1 (ja) * 2018-03-23 2019-09-26 シャープ株式会社 画像フィルタ装置、画像復号装置、及び画像符号化装置
WO2019182429A1 (en) * 2018-03-23 2019-09-26 Samsung Electronics Co., Ltd. Method and apparatus for beam management for multi-stream transmission
JP2019201256A (ja) * 2018-05-14 2019-11-21 シャープ株式会社 画像フィルタ装置
JP7073186B2 (ja) 2018-05-14 2022-05-23 シャープ株式会社 画像フィルタ装置
JP2022105577A (ja) * 2018-05-14 2022-07-14 シャープ株式会社 画像フィルタ装置
JP7332753B2 (ja) 2018-05-14 2023-08-23 シャープ株式会社 画像フィルタ装置
CN113574898A (zh) * 2019-03-08 2021-10-29 佳能株式会社 自适应环路滤波器
CN113574898B (zh) * 2019-03-08 2024-01-23 佳能株式会社 自适应环路滤波器
US11991353B2 (en) 2019-03-08 2024-05-21 Canon Kabushiki Kaisha Adaptive loop filter
WO2025141929A1 (ja) * 2023-12-28 2025-07-03 ソニーセミコンダクタソリューションズ株式会社 光検出装置及び情報処理システム
WO2025141928A1 (ja) * 2023-12-28 2025-07-03 ソニーセミコンダクタソリューションズ株式会社 光検出装置及び情報処理システム

Also Published As

Publication number Publication date
JP5875979B2 (ja) 2016-03-02
US8805100B2 (en) 2014-08-12
JPWO2011152425A1 (ja) 2013-08-01
US20130077884A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
JP5875979B2 (ja) フィルタ装置、画像復号装置、画像符号化装置、および、フィルタパラメータのデータ構造
JP7197720B2 (ja) パレットモードの使用の指示の独立した符号化
US10834427B2 (en) Deblocking filtering
EP2755388B1 (en) Method, device, and program for encoding and decoding image
CN106878729B (zh) 基于分区基础的自适应环路滤波方法和装置
JP7656000B2 (ja) パレットモードの使用の指示の条件依存符号化
AU2019298854B2 (en) Apparatus and method for filtering in video coding
WO2009133844A1 (ja) エッジを考慮したフィルタリング機能を備えた動画像符号化/復号化方法及び装置
CN113994670A (zh) 具有虚拟边界的跨分量自适应环路滤波的视频编解码方法及装置
JP7481515B2 (ja) パレットモードの使用の指示の共同符号化
US20200244965A1 (en) Interpolation filter for an inter prediction apparatus and method for video coding
JP2022543009A (ja) 予測処理におけるパレットモードの符号化
JP7522237B2 (ja) 適応ループフィルタリングのための境界位置
TW202103495A (zh) 解碼影像資料的方法、編碼影像資料的方法及儲存編碼影片資訊的非暫態電腦可讀取儲存媒介
JP7393550B2 (ja) クロス成分適応ループフィルタリングのためのサンプルパディング
CN116391355B (zh) 对视频进行滤波的方法、设备及存储介质
WO2012008506A1 (ja) 画像フィルタ装置、復号装置、動画像復号装置、符号化装置、動画像符号化装置、および、データ構造
JP5868157B2 (ja) 画像処理方法/装置,映像符号化方法/装置,映像復号方法/装置およびそれらのプログラム
JP7594364B2 (ja) 符号化装置、復号装置、及びプログラム
JP5728330B2 (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: 11789828

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012518412

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13701441

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

Country of ref document: EP

Kind code of ref document: A1