WO2012169054A1 - 動画像符号化方法、及び装置、動画像復号方法、及び装置 - Google Patents
動画像符号化方法、及び装置、動画像復号方法、及び装置 Download PDFInfo
- Publication number
- WO2012169054A1 WO2012169054A1 PCT/JP2011/063290 JP2011063290W WO2012169054A1 WO 2012169054 A1 WO2012169054 A1 WO 2012169054A1 JP 2011063290 W JP2011063290 W JP 2011063290W WO 2012169054 A1 WO2012169054 A1 WO 2012169054A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- filter
- image
- information
- unit
- encoding
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
Definitions
- Embodiments described herein relate generally to a video encoding method and apparatus, a video decoding method, and an apparatus.
- an adaptive loop filter (hereinafter referred to as ALF) is known.
- a moving image encoding apparatus using ALF encodes filter information and a quantized coefficient obtained by transforming and quantizing a difference between an input image and a predicted image, and transmits the encoded information to the moving image decoding apparatus.
- This filter information includes information indicating a filter coefficient used for filtering the decoded image and a pixel area to be filtered using the filter coefficient.
- the moving image decoding apparatus performs filter processing on the corresponding pixel region using the received filter information.
- one filter is used for the filter processing of the slice to be encoded, and the last encoded filter is used as the filter among the filters used in slices of the same slice type. It is disclosed.
- the moving image encoding method of the embodiment generates an error image indicating a difference between an input image and a predicted image, quantizes the error image to generate a quantized coefficient, and dequantizes the quantized coefficient.
- An error image is generated by inverse transformation later, and a decoded image is generated by adding the error image and the predicted image; a filtering process is performed on the decoded image to generate a reference image; and the reference Generating a first application information indicating whether or not a reference filter that is a filter applied to an image is applied to the filtering process of the decoded image; and applying the reference filter that can be referred to when generating a predicted image Generating first reference information indicating one of the reference filters, generating the predicted image using the reference image, the quantization coefficient, the first application information, and the first reference.
- FIG. 1 is a diagram of a moving image encoding apparatus according to Embodiment 1.
- FIG. The figure of the example of a division
- FIG. 10 is a diagram of a moving image encoding apparatus according to the third embodiment.
- FIG. 10 is a diagram of a moving picture decoding apparatus according to the third embodiment.
- FIG. 10 is a diagram of a moving picture decoding apparatus according to the fourth embodiment.
- FIG. 10 is a diagram of a moving picture decoding apparatus according to the fifth embodiment.
- FIG. 10 is a diagram of a moving picture encoding apparatus according to the sixth embodiment.
- FIG. 16 is a diagram of a moving picture decoding apparatus according to the sixth embodiment.
- FIG. 1 is a block diagram showing a functional configuration of a moving picture encoding apparatus 100 according to the present embodiment.
- the moving picture coding apparatus 100 according to the present embodiment includes a moving picture coding unit 110 and a coding control unit 109.
- the encoding control unit 109 controls the moving image encoding unit 110.
- the moving image encoding unit 110 encodes an input image to be encoded.
- the moving image encoding unit 110 divides one frame into slices composed of a plurality of pixel regions and performs encoding for each slice.
- the moving image encoding unit 110 includes a predicted image generation unit 101, a subtraction unit 102, a transform / quantization unit 103, an entropy encoding unit 104, an inverse quantization / inverse transform unit 105, an addition unit 106, a loop filter unit 107, and A reference image buffer 108 is provided.
- the input image is input to the moving image encoding unit 110.
- the subtraction unit 102 obtains a difference between the predicted image generated by the predicted image generation unit 101 and the input image, and generates an error image that is the difference.
- the transform / quantization unit 103 transforms the error image to generate transform coefficients, and quantizes the transform coefficients to generate quantized coefficients.
- examples of the error image conversion method include orthogonal transform using DCT (Discrete Cosine Transform), wavelet transform, independent component analysis, and the like.
- the transform / quantization unit 103 transforms the error image using any one of these transform methods. Also, the transform / quantization unit 103 quantizes the transform coefficient using the quantization parameter set by the encoding control unit 109.
- the transform / quantization unit 103 outputs the quantized coefficient to the entropy coding unit 104 and the inverse quantization / inverse transform unit 105.
- the entropy encoding unit 104 receives the quantization coefficient from the transform / quantization unit 103.
- the entropy encoding unit 104 receives filter information (details will be described later) from the loop filter unit 107, which will be described later in detail.
- the entropy encoding unit 104 receives an encoding parameter from the encoding control unit 109. Then, the entropy encoding unit 104 entropy encodes the quantization coefficient, the filter information, and the encoding parameter to generate encoded data.
- the entropy encoding unit 104 uses, for example, Huffman encoding or arithmetic encoding for entropy encoding.
- the encoding parameter includes known information such as prediction mode information, motion information, quantization parameter, and encoding block division information (details will be described later).
- the entropy encoding unit 104 outputs the generated encoded data to the video decoding device via a network or a storage medium.
- the moving image decoding apparatus decodes the received encoded data, generates an output image, and outputs it (details will be described later).
- the entropy encoding unit 104 outputs the encoded data to the video decoding device in accordance with a predetermined syntax.
- the syntax is a rule for setting encoded data. Details of the syntax used in the present embodiment will be described later.
- the inverse quantization / inverse transform unit 105 inversely quantizes the quantization coefficient and then inversely transforms it to generate an error image. That is, the inverse quantization / inverse transform unit 105 performs a process opposite to the process of the transform / quantization unit 103 on the quantization coefficient. Specifically, when the transform / quantization unit 103 performs wavelet transform and quantization, the inverse quantization / inverse transform unit 105 performs inverse quantization and inverse wavelet transform.
- the adding unit 106 receives an error image from the inverse quantization / inverse transform unit 105 and receives a predicted image from the predicted image generation unit 101. Then, the adding unit 106 adds the error image and the predicted image to generate a decoded image.
- the decoded image is filtered by the loop filter unit 107 and then stored in the reference image buffer 108 as a reference image.
- the loop filter unit 107 performs a filtering process on the decoded image generated by the adding unit 106 to generate a restored image. Thereby, the loop filter unit 107 restores the decoded image to an image closer to the input image. In the present embodiment, the loop filter unit 107 performs filter processing in units of slices.
- the loop filter unit 107 stores the generated restored image in the reference image buffer 108 as a reference image.
- the loop filter unit 107 stores the reference image buffer 108 in association with the corresponding reference image, using the filter used at the time of the reference image filtering process as a reference filter.
- loop filter unit 107 The details of the loop filter unit 107 will be described later.
- the reference image buffer 108 is a storage medium such as a frame memory.
- the reference image buffer 108 stores the decoded image as reference image 1 to reference image 2 and the like.
- One reference image is stored in the reference image buffer 108 for each frame.
- FIG. 1 shows a case where the reference image buffer 108 stores reference images for two images (for two frames) as an example.
- the number of reference images stored in the reference image buffer 108 is not limited to two, and is determined according to the capacity and setting of the reference image buffer 108.
- the reference image buffer 108 stores reference filter information.
- the reference filter information is information indicating the filter coefficient used for the filter processing of each slice of a reference image that is an encoded image, that is, a decoded image that has been filtered.
- the reference image buffer 108 stores the reference filter information as reference filter information 1 to reference filter information 2 corresponding to each of the reference images 1 to 2.
- the loop filter unit 107 executes the filtering process for each slice. Therefore, one reference filter information is stored in the reference image buffer 108 for each slice. Therefore, one reference image is associated with a plurality of pieces of reference filter information corresponding to each of a plurality of slices included in the reference image.
- the predicted image generation unit 101 performs a prediction process and generates a predicted image.
- a prediction process For generation of a predicted image, one or a plurality of reference images to be referred to during inter-screen prediction (during predicted image generation) among a plurality of reference images stored in the reference image buffer 108 are used.
- the predicted image generation unit 101 performs a prediction process using the set reference image to generate a predicted image.
- the prediction process performed by the predicted image generation unit 101 includes a known prediction process.
- the prediction process in addition to the above-described inter-screen prediction based on motion compensation, intra-screen prediction using encoded pixels in the screen can be cited.
- the predicted image generation unit 101 acquires a reference image to be referred to during inter-screen prediction from the reference image buffer 108 and performs motion compensation.
- the predicted image generation unit 101 selects a reference image to be referred to at the time of inter-screen prediction from the reference image buffer 108 under the control of the encoding control unit 109. Then, the predicted image generation unit 101 performs motion compensation prediction by determining which of the reference images is to be referred to and the motion vector for each coding block set by the coding control unit 109.
- the encoding control unit 109 controls the moving image encoding unit 110. Specifically, the encoding control unit 109 sets encoding block division information, quantization parameters, information indicating a reference image to be referred to during inter-screen prediction, and the like, and outputs the information to the moving image encoding unit 110. Thereby, the encoding control unit 109 controls the encoding process in the moving image encoding unit 110.
- the encoded block division information is information indicating a processing unit of encoding in the moving image encoding unit 110.
- the coding block division information is information indicating how to divide a pixel included in a processing target slice into coding processing units.
- the encoding control unit 109 sets the encoding block division information as follows, for example.
- the moving image encoding unit 110 divides one frame (one image) into a plurality of blocks, and performs encoding for each encoded block obtained by the division.
- the size of this encoding block is freely set.
- moving image encoding apparatus 100 uses a moving image encoding method that uses variable-size encoded blocks in a screen.
- the encoding block is not limited to such a variable size encoding block, and for example, a fixed size encoding block may be used.
- the encoding control unit 109 will describe a case where encoded block division information is set by a quadtree tree structure 402 as shown in FIG.
- FIG. 2 shows an example of coding block division.
- the encoding control unit 109 can adjust the encoding block of variable size by setting the encoding block division information using the quadtree tree structure 402.
- the encoding control unit 109 sets the encoding block division information by setting the size of the encoding block based on the encoding cost represented by Expression (1).
- D represents the sum of squared errors that is the difference between the input image and the predicted image.
- R represents the code amount regarding prediction images, such as a motion vector and a block shape.
- ⁇ is a Lagrange undetermined multiplier determined based on the value of the quantization parameter.
- the encoding control unit 109 performs encoding using the set encoding block and when encoding is performed by further dividing the set encoding block into four encoding blocks.
- the encoding cost is calculated using the above equation (1). Then, the encoding control unit 109 selects the size of the encoding block with the lowest encoding cost.
- the encoding control unit 109 sets the size of a selectable encoding block by adjusting the parameter description indicating the block division in the syntax.
- the encoding control unit 109 sets the size of the encoding block by controlling the description of max_coding_block_size, which is a parameter in the syntax, and the description of max_coding_layer.
- Max_coding_block_size indicates the maximum size of the encoded block.
- max_coding_layer indicates the maximum depth of the quadtree tree structure. From these, min_coding_block_size, which is the minimum size of the encoded block, is determined.
- each encoded block can be further divided into four encoded blocks. Therefore, the encoding control unit 109 adds information on whether or not to further divide a block to an encoded block having a size larger than min_coding_block_size.
- max_coding_block_size and max_coding_layer a fixed value may be used for the sequence, or may be variable in units such as slices. In these cases, it is necessary to encode max_coding_block_size and max_coding_layer in each unit.
- a unique parameter may be used on the encoding side and the decoding side. In this case, it is not necessary to encode the parameter.
- the moving image encoding unit 110 can perform encoding in consideration of the characteristics of each pixel region in the image. it can.
- FIG. 3 shows a detailed functional block diagram of the loop filter unit 107.
- the loop filter unit 107 includes a loop filter information generation unit 111, a loop filter coefficient setting unit 112, and a loop filter processing unit 113.
- the loop filter information generation unit 111 receives an input image, a decoded image, reference filter information, and encoded block division information. Then, the loop filter information generation unit 111 generates filter information and third application information.
- Filter information includes prediction information or first filter coefficient.
- the first filter coefficient is a filter coefficient generated by the loop filter information generation unit 111 for the decoded image to be filtered.
- Prediction information is information used for prediction of filter coefficients to be applied to decoded image filter processing, and is information including first reference information, first application information, and second application information in detail.
- the first reference information is information indicating a reference filter to be applied to the decoded image filtering process, and is information indicating one reference filter information among a plurality of reference filter information stored in the reference image buffer 108. is there. More specifically, the first reference information is information indicating reference filter information of one of the reference candidates, with reference filter information applied to a reference image that can be referred to during inter-screen prediction as a reference candidate. That is, the first reference information indicates a reference filter applied to the decoded image filter processing, thereby indicating a filter coefficient prediction method.
- the first application information is information indicating whether or not the reference filter information is used for filtering the decoded image to be filtered. Specifically, the first application information applies the reference filter information of the filter used for the filtering process of the reference image that is the encoded (filtered) decoded image to the filtering process of the decoded image to be filtered. This is information indicating whether or not to perform. In the present embodiment, the first application information is information indicating that the first filter coefficient separately generated from the decoded image is applied to the filter processing of the decoded image as information indicating that the reference filter information is not used. including.
- the second application information is for each class according to a classification result (hereinafter sometimes referred to as a class) obtained by classifying each pixel area included in the decoded image (slice) to be filtered according to a predetermined classification method.
- This information indicates whether or not a filter is applied. That is, in other words, the second application information is information indicating whether or not a filter is applied to each pixel area according to a result of classifying each pixel area of the decoded image using a predetermined classification method.
- the second application information is created when the filter process is performed using the reference filter information.
- the second application information is information indicating that a filter is applied to a part of all classes and a filter is not applied to a part of classes. For this reason, although details will be described later, in the present embodiment, when the filtering process is performed using the reference filter information, the filter can be applied to a part of all classes.
- 3rd application information is the information which showed the presence or absence of filter application for every encoding block.
- the presence / absence of application of a filter indicates whether or not to perform filter processing using a filter.
- the generation method of the filter information (prediction information (including first reference information, first application information, and second application information) or first filter coefficient) and third application information will be described in detail later. To do.
- the loop filter coefficient setting unit 112 receives the first filter coefficient or the prediction information from the loop filter information generation unit 111 and reads the reference filter information stored in the reference image buffer 108. Then, the loop filter coefficient setting unit 112 calculates the filter coefficient of the filter that is actually applied to the decoded image, and outputs it to the loop filter processing unit 113.
- the loop filter processing unit 113 receives a filter coefficient, a decoded image, third application information indicating the presence / absence of filter application for each encoded block, and encoded block division information. Then, the loop filter processing unit 113 applies the filter specified by the received filter coefficient to the region specified by the third application information, and performs a filter process to generate a restored image.
- the filter coefficient set by the loop filter coefficient setting unit 112 is stored in the reference image buffer 108 as reference filter information. Also, the filter information including the first filter coefficient or prediction information generated by the loop filter information generation unit 111 and the third application information is output to the entropy encoding unit 104. Further, the restored image generated by the loop filter processing unit 113 is stored in the reference image buffer 108 as a reference image and used for generating a predicted image.
- the loop filter information generation unit 111 includes a first reference information generation unit 111A, a first application information generation unit 111B, a first filter coefficient generation unit 111C, a second application information generation unit 111D, and a third application information generation unit 111E. .
- generation part 111C produces
- the first filter coefficient generation unit 111C is based on the decoded image and the input image, so that the average square error between the input image and the image when the decoded image is subjected to filter processing is one or more.
- the first filter coefficient is set.
- a two-dimensional Wiener filter generally used in image restoration is used as a filter.
- FIG. 4 is a schematic diagram showing switching of the filters for each class.
- the decoded image to be processed is divided into pixel areas of 4 ⁇ 4 pixels (see FIG. 4A), and classified into a plurality of classes according to the image characteristics in each pixel area.
- FIG. 4 illustrates a case where the filter to be applied is switched for each class that is the classification result (see FIG. 4B).
- the first filter coefficient generation unit 111C classifies each pixel area into 16 classes based on the image features in the pixel area (see FIGS. 4A and 4B). Note that the number of classes to be classified is not limited to 16. An activity or the like may be used as the image feature.
- the filter coefficient generation unit 111C assigns an index of each class from 0 to 15, and assigns one filter to one or more classes having consecutive indexes (see FIG. 4B).
- the filter assignment is determined according to the coding cost calculation formula of the above formula (1). For example, the encoding cost is calculated by first assigning different filters to all classes, and then calculating the encoding cost when one filter is assigned to two classes having consecutive indexes. Compare encoding costs.
- the filter coefficient generation unit 111C selects the filter assignment with the lowest encoding cost. Accordingly, the filter coefficient generation unit 111C can perform appropriate filter assignment for each class.
- the switching of the applied filter is not limited to a square pixel region as shown in FIG. That is, the pixel area which is a unit for dividing the decoded image is a rectangular block such as a rectangular block such as 8 pixels ⁇ 2 pixels or 4 pixels ⁇ 2 pixels, or a rectangular pixel area such as 8 pixels ⁇ 1 pixel or 4 pixels ⁇ 1 pixel.
- the unit may be a unit or a unit of one pixel.
- the activity that becomes the switching index may be calculated using a result obtained by calculating a difference from surrounding pixel values using a differential filter used in known edge detection or the like.
- the following is a specific example of the switching index when the filter is switched in units of one pixel.
- Expression (2) D (x, y) indicates the pixel value of the decoded image at the pixel position (x, y).
- the first filter coefficient generation unit 111C can calculate the sum of the absolute value of the horizontal differential filter result and the absolute value of the vertical differential filter.
- the value obtained from this equation (2) is calculated from the relationship between the pixel value at the pixel position (x, y) and the surrounding pixel values. Therefore, Expression (2) is effective for expressing local features of an image, and can be used as an index for selecting a filter for the pixel position (x, y).
- the value obtained by Expression (2) may be calculated for a pixel range of a certain range, for example, a surrounding N pixel ⁇ N pixel region, and the sum thereof may be used as a filter switching index.
- the above formula (2) is given as an index for switching the filter in units of pixels.
- the filter is switched with a pixel area composed of a plurality of pixels as one unit, for example, the sum of the indices obtained by Expression (2) for each pixel in the pixel area may be used as the filter switching index for the entire area. .
- the above formula (3) is an average of absolute values of pixel value differences between the pixel at the pixel position (x, y) and the surrounding pixels.
- This expression (3) can also be used as a filter switching index as a value representing the local structure of the image. Further, although the average value of the pixel value difference is obtained in Expression (3), the maximum value may be used instead of the average value.
- Expression (3) when the filter is switched with a pixel area composed of a plurality of pixels as one unit, for example, the average value of Expression (3) is calculated in the pixel area, and the filter switching index for the entire pixel area is calculated. It can be. The same applies to the case where the maximum value of equation (3) is used instead of the average value of equation (3).
- N indicates a pixel range for calculating a switching index.
- D (x, y) indicates the pixel value of the decoded image at the pixel position (x, y).
- a switching index that takes into account the activity of each block and the luminance gradient direction may be used according to the following equation (4).
- Formula (4) shows an example in which fIdx that is an index from 0 to 15 is assigned as a switching index.
- Clip3 (a, b, c) represents a process of clipping the variable c so that it falls within the range from the minimum value a to the maximum value b.
- var_tab, avg_var, direction are represented by the following Expressions (5) to (7), respectively.
- BitDepthY indicates the number of bits representing the pixel value. For example, when BidDepthY is 8, each pixel takes a value from 0 to 255. Further, (x, y) indicates a pixel position (x, y).
- the first reference information generation unit 111A generates first reference information.
- the first reference information generation unit 111A first applies reference filter information applied to a reference image that can be referred to by the prediction image generation unit 101 during inter-screen prediction, among the reference filter information stored in the reference image buffer 108. Are set as reference candidates.
- the reference image buffer 108 stores the reference image and the reference filter information used for the filtering process of the reference image in association with each other. Therefore, in the first reference information generation unit 111A, the reference image information corresponding to the reference image that can be referred to by the prediction image generation unit 101 during inter-screen prediction is read from the reference image buffer 108. Accordingly, the first reference information generation unit 111A sets reference candidates.
- the first reference information generation unit 111A sets one reference filter information as reference filter information to be applied to the decoded image (slice) to be filtered in the decoded image from the reference filter information set as the reference candidate. To do.
- the first reference information generation unit 111A may set one reference filter information from the reference filter information set as reference candidates. However, the first reference information generation unit 111A may set the reference filter information with the lowest coding cost as the reference filter information to be applied to the slice to be filtered based on the coding cost. For the calculation of the coding cost, the above equation (1) may be used.
- the first application information generation unit 111B generates first application information.
- the entropy encoding unit 104 when the reference filter information stored in the reference image buffer 108 is used as a filter to be applied to the filter processing of the decoded image, the amount of code generated when encoding by the entropy encoding unit 104 is reduced. You can plan. This is because when the reference filter information is used, the entropy encoding unit 104 only has to encode the prediction information, which is a filter coefficient prediction method, instead of the filter coefficient itself used for the filter processing. . However, when the decoded image is filtered using the reference filter information, the filter processing is performed using the filter specified by the first filter coefficient newly calculated from the decoded image to be filtered. In comparison, the effect of reducing the error between the reference image and the input image may be reduced.
- the first application information generation unit 111B applies the filter specified by the reference filter information indicated by the first reference information and applies the filter specified by the first filter coefficient.
- the encoding cost is compared with the case where the filtering process is performed.
- the first application information generation unit 111B As a result of comparing the coding costs, it is assumed that the coding cost when the filter specified by the reference filter information is applied is lower than that when the filter specified by the first filter coefficient is applied. In this case, the first application information generation unit 111B generates first application information indicating that the filter process is performed using the reference filter information. On the other hand, as a result of comparing the coding costs, it is assumed that the coding cost is lower when the filter specified by the first filter coefficient is applied than when the filter specified by the reference filter information is applied. In this case, the first application information generation unit 111B generates first application information indicating that the filter specified by the first filter coefficient generated by the first filter coefficient generation unit 111C is applied to the filter process. .
- the first application information generation unit 111B Based on the encoding cost, the first application information generation unit 111B generates first application information indicating whether or not the reference filter information is used for the filter processing of the decoded image to be filtered.
- the second application information generation unit 111D generates second application information.
- the second application information generation unit 111D generates second application information when performing filter processing using the reference filter information.
- the reference filter information When the reference filter information is used for filtering the decoded image to be filtered, a filter applied to the already decoded image is used. For this reason, it has already been determined which filter is applied to each class, which is a classification result obtained by classifying the decoded image into a plurality of pixel regions.
- the first filter coefficient generation unit 111C uses the first filter coefficient newly set for the decoded image for the filtering process, the reference filter information is used for the filtering process. The effect of reducing the error with the decoded image is reduced.
- the second application information generation unit 111D applies the filter to a part of the classes, and the second application information generation unit 111D Second application information indicating that the filter is not applied to some classes is generated. It should be noted that the second application information generation unit 111D determines whether or not to apply the filter to each class, whether the error with respect to the input image of the restored image generated by the filter application is less than the error with respect to the input image of the decoded image. Judgment by whether or not.
- FIG. 5 is a diagram illustrating an example of applying a filter to each class, which is a classification result of each pixel area of the decoded image. Specifically, FIG. 5 shows second application information indicating that the second application information generation unit 111D applies a filter to a part of the classes that are the classification results of the pixel regions of the decoded image. It is the figure which showed typically the case where it produced
- the second application information generation unit 111D generates second application information indicating that no filter is applied to the filters 3 and 4 applied to the classes 9 to 15.
- the second application information generation unit 111D may set whether to apply the filter for each class of the classification result instead of for each filter. That is, as shown in FIG. 5B, it is assumed that the error with respect to the input image is increased by applying a filter to class 9 to class 10 and class 14 to class 15 among classes 0 to 15. On the other hand, for class 0 to class 15, class 0 to class 8, and class 11 to class 13, the error can be reduced by applying a filter. In this case, the second application information generation unit 111D generates second application information indicating that no filter is applied to classes 9 to 10 and classes 14 to 15.
- the loop filter unit 107 controls whether to apply a filter according to the class of each pixel area of the decoded image and the second application information. For this reason, in the moving image encoding device 100, it is possible to improve the code amount reduction rate by suppressing an increase in error when performing filter processing using the reference filter information.
- the moving image encoding apparatus 100 side can determine whether or not the error is reduced by applying a filter to each class.
- the video image decoding apparatus (detailed later) that decodes the encoded data cannot determine whether to reduce the error. For this reason, it is necessary to explicitly encode information indicating which filter is applied to each class and which filter is not applied to each class.
- FIG. 5B when indicating whether a filter is applied for each class of the classification result, it is necessary to encode information indicating which class the filter is applied to.
- the filter information includes second application information in addition to the prediction information or the first filter coefficient. For this reason, when applying the reference filter information to the filtering process, the entropy encoding unit 104 also encodes the second application information indicating whether or not to apply the filter for each class, and outputs the encoded data as encoded data.
- the entropy encoding unit 104 stores information on the first filter coefficient. Need to be encoded.
- the entropy encoding unit 104 may encode the value of the first filter coefficient itself, or may execute a predetermined prediction process to encode a difference value from the predicted value.
- a method of predicting the center coefficient from surrounding coefficients may be used on the assumption that the sum of the first filter coefficients has a substantially constant value. For example, when the first filter coefficient is represented by 8 bits, the sum of the first filter coefficients often takes a value close to 256. Therefore, the result of subtracting the first filter coefficient other than the center coefficient from 256 may be used as the predicted value of the center coefficient.
- the entropy encoding unit 104 may perform the prediction process between a plurality of filters. For example, when four filters are used for a decoded image (slice) to be encoded, the value of the first filter coefficient is encoded as it is for the first filter, and one is used for the second and subsequent filters. The first filter coefficient of the previously encoded filter may be used as the predicted value.
- the entropy encoding unit 104 may perform prediction in the time direction in the prediction process. For example, as in the case where the reference filter information is directly applied to the filter processing, the entropy encoding unit 104 may use the filter coefficient of the reference filter as a predicted value.
- this predicted value when used, it differs from the case where the reference filter information is applied to the filter processing in that the difference value of the filter coefficient is encoded.
- the predicted value when used, it may be considered that the reference filter information is different from the reference filter information in the number of filters to be applied to the decoded image (slice) to be encoded and the assignment of filters to the class that is the classification result of the pixel region. It is done.
- the entropy encoding unit 104 may predict, for example, from the most common classes in the applied classes, but on the video encoding device 100 side and the video encoding device side. It is necessary to use the same prediction process.
- a common prediction process set in advance on the moving image encoding device 100 and the moving image decoding device side may be used, or information indicating how the prediction processing is performed on the moving image encoding device 100 side. It may be encoded and output to the video decoding device side.
- the third application information generation unit 111E generates third application information indicating whether or not a filter is applied for each encoded block.
- 3rd application information generation part 111E applies a filter to each coding block of a decoding picture based on prediction information or the 1st filter coefficient, and coding block division information. Then, it is determined for each coding block whether or not the mean square error between the decoded image after application of the filter and the input image is reduced as compared with the case where the filter is not applied. Then, the third application information generating unit 111E generates third application information indicating that the filter is applied to the encoded block in which the mean square error is reduced by applying the filter.
- the third application information generation unit 111E generates third application information indicating filter application for an encoded block in which an error with an input image is reduced by applying a filter.
- the third application information generation unit 111E determines whether or not the mean square error is reduced by applying this filter to a plurality of max_filtering_layers, and selects max_filtering_layer that minimizes the coding cost.
- max_filtering_layer is a parameter indicating how many layers in the quadtree in coding block division are used for setting filter application information. Note that the division shape of the coding block and a region serving as a unit for determining whether or not to apply the filter indicated by max_filtering_layer are referred to as a filter application determination region.
- the third application information generation unit 111E may generate third application information indicating whether or not to apply a filter for each processing unit including a plurality of encoded blocks, in addition to the filter application information of the encoded blocks. For example, the third application information generation unit 111E may generate third application information indicating whether or not a filter is applied for each slice to be encoded. In this case, the third application information generation unit 111E calculates the cost when no filter is applied to the encoding target slice and the cost when the filter is applied for each encoding block. Then, the third application information generation unit 111E may generate the third application information in the encoding target slice by comparing these costs.
- FIG. 6 shows an example of the coding block division shape and filter application determination.
- FIG. 6A shows the division shape of the encoding block 401 in FIG. Further, “ON” and “OFF” in each coding block in FIGS. 6B to 6D indicate whether or not a filter is applied. Specifically, the filter is applied when “ON”, and the filter is not applied when “OFF”.
- the third application information generation unit 111E sets whether to apply a filter for each coding block.
- the filter when the filter is set to be non-applied for each slice to be encoded, the filter is not applied to all the pixels in the slice, and the filter application information for each block is discarded.
- the filter when a filter is applied in units of slices to be encoded, the filter is applied according to the filter application information for each encoding block.
- the loop filter information generation unit 111 uses the generated first reference information, first application information, and second application information as prediction information including the first reference information, the first application information, and the second application information.
- the data is output to the loop filter coefficient setting unit 112 and the entropy encoding unit 104.
- the loop filter information generation unit 111 when information indicating that the reference filter is not used for the filter processing is generated as the first application information, the loop filter information generation unit 111 generates the first filter coefficient generation unit 111C instead of the prediction information.
- the filtered filter coefficients are output to the loop filter coefficient setting unit 112 and the entropy coding unit 104.
- the loop filter information generation unit 111 outputs third application information indicating the presence / absence of filter application for each coding block to the loop filter processing unit 113 and the entropy coding unit 104.
- the filter applied to each class is switched for each class classified according to the image characteristics of the pixel region.
- the filter may be switched explicitly according to the third application information.
- loop filter coefficient setting unit 112 will be described in detail.
- the loop filter coefficient setting unit 112 receives the first filter coefficient or the prediction information, and sets the filter coefficient of the filter to be applied to the decoded image to be filtered. Specifically, it is assumed that the first application information included in the prediction information is information indicating that the reference filter information is used for the filter processing of the decoded image to be filtered. In this case, the loop filter coefficient setting unit 112 sets the filter coefficient of the reference filter information corresponding to the first reference information included in the received prediction information as a filter coefficient to be applied to the filter process.
- the loop filter coefficient setting unit 112 sets the first filter coefficient calculated based on the decoded image to be filtered as a filter coefficient to be applied to the filter process.
- the loop filter coefficient setting unit 112 adds the predicted value of the coefficient. The first filter coefficient is restored.
- the loop filter coefficient setting unit 112 outputs the set filter coefficient to the loop filter processing unit 113 as a filter coefficient to be applied to the filter processing of the decoded image to be filtered.
- the loop filter processing unit 113 receives the decoded image, the encoded block division information, and the third application information. In addition, the loop filter processing unit 113 receives a filter coefficient from the loop filter coefficient setting unit 112. Then, a filter specified by the received filter coefficient is applied to the received decoded image, and filter processing is performed.
- the pixel region to which the loop filter processing unit 113 applies the filter is indicated by the encoded block division information and the third application information as described above.
- an image feature is calculated for a pixel region to which a filter is applied, and a filter to be applied can be specified by a class classified according to the obtained image feature.
- the loop filter processing unit 113 applies the filter specified by the filter coefficient received from the loop filter coefficient setting unit 112 to the decoded image to be filtered, and generates a restored image that is an image after the filter application. .
- the loop filter processing unit 113 stores the generated restored image in the reference image buffer 108 as a reference image. Further, the loop filter processing unit 113 stores the filter coefficient used for the filter processing of the reference image in association with the corresponding reference image as reference filter information.
- the reference image buffer 108 manages the reference image and the reference filter information in synchronization.
- the loop filter unit 107 entropy-encodes the generated filter information (prediction information (including first reference information, first application information, and second application information) or filter coefficients, and third application information). Output to the unit 104.
- the filter information is encoded by the entropy encoding unit 104, multiplexed with data or the like obtained by encoding the quantized transform coefficient, and is output to the outside as encoded data.
- FIG. 7 shows a syntax structure used in the video encoding apparatus 100. Note that the moving picture encoding apparatus 100 according to the present embodiment transmits filter information in units of slices.
- the syntax mainly includes three elements, and includes three elements of a high level syntax 1900, a slice level syntax 1903, and an encoded block level syntax 1906.
- the slice level syntax 1903 describes information necessary for each slice.
- Coding block level syntax 1906 describes coding block division information or transform coefficients required for each coding block, prediction mode information, motion vectors, and the like.
- Each of the high level syntax 1900, the slice level syntax 1903, and the coding block level syntax 1906 is configured with a more detailed syntax.
- the high level syntax 1900 includes sequence or picture level syntax.
- the high level syntax 1900 includes a sequence parameter set syntax 1901 and a picture parameter set syntax 1902.
- the slice level syntax 1903 includes a slice header syntax 1904 and a loop filter data syntax 1905.
- the loop filter data syntax 1905 includes the filter information. That is, the loop filter data syntax 1905 includes prediction information or filter coefficients and third application information.
- the encoded block level syntax 1906 includes an encoded block layer syntax 1907 including encoded block division information and an encoded block prediction syntax 1908.
- the third application information is described as being included in the loop filter data syntax. However, since the third application information is filter application information in units of encoded blocks, the third application information is included in the encoded block level syntax. It may be included.
- the entropy encoding unit 104 adds these parameters to the sequence parameter set syntax 1901.
- the parameter for controlling the division of the coding block is variable for each slice, the entropy coding unit 104 adds these parameters to the slice header syntax 1904.
- FIG. 8 shows a description example of the loop filter data syntax 1905.
- the entropy encoding unit 104 describes the prediction information or the filter coefficient generated by the loop filter unit 107 and the third application information in the loop filter data syntax 1905.
- direct_filter_flag is a 1-bit flag indicating whether or not reference filter information is used for filtering processing of a decoded image to be filtered in the slice.
- direct_filter_flag 1
- the entropy encoding unit 104 encodes direct_ref_idx, which is first reference information for specifying reference filter information.
- direct_ref_idx first reference information for specifying reference filter information.
- slices that can be referred to in inter-screen prediction are selected and ordered so as to be the same on the video encoding device 100 side and the video decoding device side described later.
- the reference filter information is managed in synchronization with the reference image. For this reason, in the moving picture decoding apparatus that receives and decodes the encoded data from the moving picture encoding apparatus 100, a filter applied to the reference picture specified by direct_ref_idx can be used as a reference filter. At this time, information regarding other filter coefficients is not encoded.
- the entropy encoding unit 104 encodes information regarding the filter coefficient set for the encoding target slice.
- filter_type_idx is an index indicating the shape or tap length of the loop filter. Specifically, filter_type_idx corresponds to NumOfFilterCoeff indicating the number of filter coefficients per filter. In FIG. 8, filter_num indicates the number of filters to be applied to the encoding target slice.
- filter_coeff is a first filter coefficient, and may be the value of the filter coefficient itself as described above, or may be a difference value obtained by performing a predetermined prediction process. Further, information for specifying the prediction process may be added separately, and a new syntax may be added at the time of addition. In addition, when the addition is performed, a plurality of pieces of prediction information may be represented there by using direct_flag as a multi-bit index, for example.
- the class number may be indicated by start_second_filter.
- the entropy encoding unit 104 encodes information indicating whether each class is a filter allocation start class, for example. Thereby, the assignment of the filter can be acquired on the moving image encoding device side.
- the entropy encoding unit 104 may encode information “1000010001001000” as filter_pattern. Further, since it is determined that class 0 is at the top, “0000010001001000” or “000010001001000” may be used.
- block_control_flag corresponds to the third application information.
- block_control_flag 1
- the entropy encoding unit 104 switches whether to apply a filter for each encoding block, and encodes information necessary for the switching thereafter.
- block_control_flag 0
- the entropy encoding unit 104 applies a filter to the entire slice.
- loop_filter_flag is a 1-bit flag indicating whether or not to apply a loop filter to each coding block.
- the entropy encoding unit 104 sets “1” when the filter is applied, and “0” when the filter is not applied.
- NumOfLoopFilterFlag is the total number of filter application determination areas.
- max_filtering_layer 0, the entropy encoding unit 104 switches application / non-application of the filter for each block that is the maximum size of the encoded block, and does not encode the NumOfLoopFilterFlag because the block is not divided.
- the entropy encoding unit 104 may encode the loop_filter_flag with a fixed length of 1 bit. Further, the entropy encoding unit 104 may perform encoding by variable length encoding such as CAVLC (Context Adaptive Variable Length Coding) or CABAC (Context Adaptive Binary Arithmetic Coding). Furthermore, a plurality of flags may be combined and encoded as a multi-value. Further, as described above, in the present embodiment, a plurality of filters may be prepared and switched for each filter application determination region, and filter switching information may be explicitly multiplexed into encoded data.
- CAVLC Context Adaptive Variable Length Coding
- CABAC Context Adaptive Binary Arithmetic Coding
- the entropy encoding unit 104 may encode the NumOfLoopFilterFlag with variable length encoding or with a fixed length.
- an encoding method performed by the entropy encoding unit 104 there is a method of changing based on an image size or a parameter relating to division of an encoded block.
- one slice does not take a larger area than one screen. For this reason, on the video decoding device side, the minimum number of blocks that can exist in one slice and the maximum number of blocks, that is, the range of values that can be taken from at least one of image size, max_coding_block_size, min_coding_block_size, and max_filtering_layer Can be obtained.
- the entropy encoding unit 104 changes the code table using a probability model corresponding to the range of values that the number of blocks can take.
- the entropy encoding unit 104 encodes the NumOfLoopFilterFlag with the minimum bit length that can represent the range of values that the number of blocks can take. By doing so, the entropy encoding unit 104 can select an appropriate encoding method even when the image size or the block size changes.
- the above parameters can also be used on the video decoding device side. For this reason, by selecting the same bit length on the moving image encoding device 100 side and the moving image decoding device side, the moving image decoding device side can correctly perform decoding.
- the filter may be applied to all areas. In this case, the effect of reducing the error between the input image and the decoded image is reduced.
- the entropy encoding unit 104 encodes information indicating that the filter is applied in all regions, it is not necessary to encode the loop_filter_flag, so that overhead can be reduced.
- encoding can be realized by setting the syntax configuration to FIG. 9, for example.
- FIG. 9 shows another description example of the loop filter data syntax 1905. 9 is different from FIG. 8 in that it includes use_filter_flag.
- Use_filter_flag is a 1-bit flag indicating whether or not to apply the reference filter information to the filter processing for each filter.
- the entropy encoding unit 104 encodes use_filter_flag by the number of filters_num that is the number of filters included in the reference filter information corresponding to one slice.
- FIG. 10 shows another description example of the loop filter data syntax 1905.
- the points including use_filter_flag are the same as in FIG. 9, but the number is different.
- the entropy encoding unit 104 encodes use_filter_flag by the number of NumOfClass that is the number of classes for classifying images. Each flag indicates whether or not a filter is applied to the corresponding class.
- the loop filter unit 107 may change a part of the filter coefficients of the reference filter information set as a filter to be applied to the filter processing.
- the loop filter unit 107 generates a changed reference filter in which a part of the filter coefficient of the reference filter information is changed, and uses the changed reference filter for the filtering process.
- the filter information may be configured to include first change information indicating the change reference filter.
- the entropy encoding part 104 should just encode the filter information which further contains 1st change information.
- FIG. 11 shows an example of the filter shape of the filter applied to the filter processing in the present embodiment.
- the filter shape is switched by filter_type_idx. It is assumed that each filter shape has one coefficient indicating an offset value.
- the loop filter unit 107 changes the offset value as a method of changing a part of the filter coefficients of the reference filter information.
- the entropy encoding unit 104 changes the syntax configuration to the content shown in FIG.
- the filter information includes the first change information indicating the change reference filter.
- the filter is applied by reading the reference filter information from the buffer and replacing the offset value with the encoded value. That is, on the video decoding device side, the change reference filter can be applied to the decoded image based on the first change information.
- the offset value is changed has been described as a method of changing a part of the filter coefficient of the reference filter information
- a coefficient at a different position such as a center coefficient may be changed.
- the loop filter unit 107 may change the shape of the filter applied to the filtering process.
- the loop filter unit 107 may generate a modified reference filter by changing the filter shape of the reference filter information and use it for the filter processing.
- the filter information may be configured to further include deformation information indicating the deformation reference filter.
- the entropy encoding part 104 should just encode the filter information which further contains deformation
- the filter shape can be changed and applied to a 5-tap or 7-tap filter. Good.
- the entropy encoding unit 104 changes the syntax configuration to the content shown in FIG. 13 with the change of the filter shape.
- FIG. 13 shows a description example when the loop filter data syntax 1905 is changed.
- the loop filter unit 107 may keep the sum of the filter coefficients constant by using a framework for resetting and encoding the offset value and the coefficient at the specific coefficient position as described above, A change process may be defined as a method.
- the filter application can be switched in units of slices, and the filter application information in units of slices is stored in the slice header syntax 1904.
- the entropy encoding unit 104 stores the loop filter data syntax 1905 in the slice level syntax 1903.
- the loop filter unit 107 may be controlled in units independent of slices. This is called a loop filter slice.
- the entropy encoding unit 104 When a plurality of loop filter slices are included in one slice, the entropy encoding unit 104 generates the loop filter data syntax 1905 by the number of loop filter slices. Furthermore, when the loop filter slice exists over a plurality of slices and cannot be processed in units of slices, the loop filter data syntax 1905 is included in the high-level syntax 1900 such as the picture parameter set syntax 1902. May be included, or may be included in the slice level syntax of the slice located at the head. Furthermore, when there are a plurality of components constituting an image, the entropy encoding unit 104 may generate a syntax for each component, or may generate a common syntax for two or more components.
- FIG. 14 is a flowchart illustrating the procedure of the encoding process according to the first embodiment.
- the predicted image generation unit 101 performs a prediction process to generate a predicted image (step 320).
- the subtraction unit 102 performs a subtraction process for obtaining a difference between the predicted image generated by the predicted image generation unit 101 and the input image (step S300). Through the processing in step S300, the subtraction unit 102 generates an error image (step S302).
- the transform / quantization unit 103 transforms the error image to generate transform coefficients, and quantizes the transform coefficients to generate quantized coefficients (step S304 and step S306).
- the entropy encoding unit 104 encodes the quantization coefficient, the filter information received from the loop filter unit 107, and the encoding parameter received from the encoding control unit 109, and generates encoded data (step S308). ).
- the inverse quantization / inverse transform unit 105 performs inverse transform after dequantizing the quantization coefficient to generate an error image (step S310, step S312).
- the adding unit 106 receives an error image from the inverse quantization / inverse transform unit 105, receives a predicted image from the predicted image generation unit 101, and adds the error image and the predicted image to generate a decoded image (steps S314 and S316). ).
- the loop filter unit 107 performs a filtering process on the decoded image generated by the adding unit 106 to generate a restored image (step S318) (details will be described later).
- the loop filter unit 107 restores the decoded image to an image closer to the input image.
- the loop filter unit 107 performs filter processing in units of slices.
- step S300 to step S320 is a so-called hybrid encoding process that performs a prediction process and a conversion process.
- encoding processing that performs prediction, transformation, and quantization has been described.
- DPCM Different Pulse Code Modulation
- FIG. 15A shows a flowchart showing the procedure of the filter process.
- the first filter coefficient generation unit 111C of the loop filter unit 107 generates a first filter coefficient of the decoded image based on the decoded image and the input image (step S400).
- the first filter coefficient generation unit 111C determines filter assignment for each class according to a class that is a classification result obtained by classifying each pixel region included in the slice to be filtered according to a predetermined classification method. (Step S401) (see FIG. 4B).
- the reference filter information applied by the first reference information generation unit 111A to the reference image that can be referred to by the prediction image generation unit 101 during inter-screen prediction among the reference filter information stored in the reference image buffer 108. are set as reference candidates (step S402).
- the first reference information generation unit 111A selects one reference filter information from the reference candidates (step S404). Then, the first reference information generation unit 111A generates first reference information indicating the selected one reference filter information (step S406).
- the second application information generation unit 111D indicates whether or not the filter is applied for each class according to the class that is a classification result obtained by classifying each pixel area included in the slice to be filtered according to a predetermined classification method.
- the second application information is generated (step S408).
- the loop filter information generation unit 111 sets prediction information including the generated first reference information, first application information, and second application information (step S409).
- the third application information generation unit 111E applies the filter specified by the first filter coefficient generated in step S400 and the filter specified by the one reference filter information selected in step S404.
- the third application information is generated for both the case where it is applied (step S410).
- the first application information generation unit 111B determines whether or not the reference filter is applied, and generates first application information (step S412). Whether the reference filter is applied is determined by applying a filter specified by the reference filter information indicated by the first reference information and applying a filter specified by the first filter coefficient as described above. And based on the comparison result of comparing the coding costs.
- the loop filter information generation unit 111 generates filter information (step S414). Specifically, the loop filter information generation unit 111 generates filter information including prediction information and third application information when the first application information generated in step S412 indicates that the reference filter is applied. . On the other hand, if the first application information generated in step S412 indicates that the reference filter is not applied, filter information including the filter coefficient and the third application information is generated.
- the loop filter coefficient setting unit 112 determines whether or not to apply a reference filter to the decoded image (slice) to be processed (step S415).
- the loop filter coefficient setting unit 112 makes an affirmative determination (step S415: Yes).
- step S415 the loop filter coefficient setting unit 112 sets the filter coefficient of the reference filter information indicated by the first reference information as the filter coefficient of the filter to be applied to the decoded image (step S416).
- step S415 when the first application information received from the loop filter information generation unit 111 is information indicating that the reference filter is not applied, the loop filter coefficient setting unit 112 makes a negative determination (step S415: No). If a negative determination is made in step S415, the loop filter coefficient setting unit 112 sets the first filter coefficient set in step S400 as the filter coefficient of the filter to be applied to the decoded image (step S418).
- the loop filter processing unit 113 performs a filtering process on the decoded image using a filter specified by the filter coefficient set by the processing in step S416 or step S418, and generates a restored image (step S420). .
- the loop filter processing unit 113 stores the generated restored image in the reference image buffer 108 as a reference image. Further, the loop filter processing unit 113 stores the filter coefficient used for the filter processing of the reference image as reference filter information in association with the corresponding reference image (step S422).
- the loop filter unit 107 outputs the filter information generated in step S414 to the entropy encoding unit 104 (step S424).
- the filter information is encoded by the entropy encoding unit 104, multiplexed with data or the like obtained by encoding the quantized transform coefficient, and is output to the outside as encoded data.
- the moving picture coding apparatus 100 when performing filtering processing on a decoded image to be filtered using reference filter information that is a filter applied to a reference image, reference is made.
- the reference image information applied to the reference image that can be referred to by the predicted image generation unit 101 during inter-screen prediction is set as a reference candidate.
- the moving picture coding apparatus 100 selects one reference filter information from the reference candidates, and generates first reference information indicating the selected one reference filter information.
- the prediction information containing this 1st reference information and the 1st application information which shows the presence or absence of application of a reference filter is included in filter information, This filter information is encoded and output.
- the moving picture coding apparatus 100 performs the filtering process using one reference filter information selected from the reference candidates.
- the reference candidate is synchronized with a reference image that can be referred to in inter-screen prediction, and there is no reference in the time direction that exceeds the range assumed in the prediction process. For this reason, error tolerance and increase in memory access can be suppressed.
- the second application information may be generated after the third application information is generated. That is, it is also possible to perform filter application determination for a specific class after performing filter application determination for each coding block. Furthermore, the generation of the third application information may be performed after the generation of the first application information as well. In this case, the number of times of generating the third application information can be reduced, so that the amount of processing in encoding is reduced. be able to.
- the second embodiment is a moving picture decoding apparatus that decodes encoded data transmitted from a moving picture encoding apparatus.
- FIG. 16 is a block diagram illustrating a functional configuration of the moving picture decoding apparatus according to the second embodiment.
- the moving image decoding apparatus 200 includes a moving image decoding unit 210 and a decoding control unit 202.
- the decoding control unit 202 controls the moving image decoding unit 210. Specifically, the decoding control unit 202 performs overall decoding control such as encoding block division control or decoding timing control.
- the video decoding unit 210 decodes the encoded data received from the video encoding device 100.
- the moving image decoding unit 210 includes an entropy decoding unit 204, an inverse quantization / inverse conversion unit 205, an addition unit 206, a loop filter processing unit 213, a loop filter coefficient setting unit 212, a reference image buffer 208, and a predicted image generation unit 201. Prepare.
- the entropy decoding unit 204 receives encoded data from the moving image encoding apparatus 100. Then, the entropy decoding unit 204 sequentially decodes the code string of each syntax of the encoded data for each of the high level syntax 1900, the slice level syntax 1903, and the encoded block level syntax 1906 according to the syntax structure shown in FIG. To do. Thereby, the entropy decoding unit 204 decodes quantization coefficients, filter information, encoded block division information, and the like from the encoded data. Since the quantization coefficient, filter information, and coding block division information are the same as those in the first embodiment, detailed description thereof is omitted.
- the inverse quantization / inverse transform unit 205 receives the transform coefficient decoded by the entropy decoding unit 204. Then, the inverse quantization / inverse transform unit 205 performs inverse transform (for example, discrete cosine transform) after performing inverse transform on the transform coefficient in accordance with the quantization parameter set by the decoding control unit 202, and generates an error image. Is generated.
- the adding unit 206 receives an error image from the inverse quantization / inverse transform unit 205 and receives a predicted image from the predicted image generation unit 201. Then, the adding unit 206 adds the received error image and the predicted image to generate a decoded image.
- the reference image buffer 208 stores the reference filter information as reference filter information 1 to reference filter information 2 corresponding to each of the reference images 1 to 2. These reference filter information 1 to reference filter information 2 are obtained by storing, as reference filter information, a filter applied to a reference image based on the first filter coefficient or prediction information received from the entropy decoding unit 204. As in the moving picture encoding apparatus, the association is performed.
- the predicted image generation unit 201 performs a prediction process and generates a predicted image.
- a prediction process For the generation of the predicted image, one or a plurality of reference images set in advance as reference images to be used when generating the predicted image among the plurality of reference images stored in the reference image buffer 208 are used.
- the loop filter coefficient setting unit 212 receives the first filter coefficient or the prediction information included in the filter information from the entropy decoding unit 204.
- the loop filter coefficient setting unit 212 sets a filter coefficient to be applied to the decoded image generated by the adding unit 206. Specifically, when the first application information included in the prediction information is information indicating that the reference filter information is applied to the filtering process of the decoded image, the loop filter coefficient setting unit 212 includes the first reference information. Set the filter coefficient of the corresponding reference filter information. On the other hand, when the first application information included in the prediction information is information indicating that the reference filter is not used for the filtering process, the loop filter coefficient setting unit 212 sets the received first filter coefficient.
- the loop filter coefficient setting unit 212 may The first filter coefficient is restored by adding the predicted values.
- the loop filter coefficient setting unit 212 outputs the set filter coefficient to the loop filter processing unit 213.
- the loop filter coefficient The setting unit 212 changes a part of the filter coefficient of the reference filter information. Then, the loop filter coefficient setting unit 212 outputs the changed filter coefficient to the loop filter processing unit 213.
- the loop filter processing unit 213 reads the reference filter from the buffer, and uses the replaced offset value shown in the syntax structure shown in FIG. Change the department. Then, the changed filter coefficient is output to the loop filter processing unit 213. Accordingly, the moving image decoding apparatus 200 can apply the change reference filter to the decoded image based on the first change information.
- the loop filter coefficient setting unit 212 After changing the filter shape of the reference filter information, the reference filter information is output to the loop filter processing unit 213.
- the loop filter coefficient setting unit 212 changes the filter coefficient of the reference filter information into a filter having a different shape based on the value (shape information) indicated by filter_type_idx shown in FIG.
- the filter coefficient of the reference filter information is output to the loop filter processing unit 213.
- the loop filter processing unit 213 receives the decoded image, the encoded block division information, the third application information, and the filter coefficient, and applies a filter to the decoded image. At this time, the loop filter processing unit 213 can determine the filter application determination region by associating the encoded block division information with the third application information.
- the filter application determination area is the same as that in the first embodiment.
- the loop filter processing unit 213 obtains a filter application determination region from max_filtering_layer shown in the syntax structure of FIG. 8 and the coding block division shape. Then, the loop filter processing unit 213 associates loop_filter_flag with each filter application determination region. Thereby, the moving picture decoding apparatus 200 side can apply the filter to the block set on the moving picture encoding apparatus 100 side. For the area to which the filter is applied, the pixel value after the filter is applied is the pixel value of the restored image. On the other hand, for a region to which no filter is applied, the pixel value at the same position in the decoded image is used as the pixel value of the restored image. At this time, the filter to be applied can be specified by calculating the image feature in the filter application determination region and the classification according to the obtained feature.
- the restored image generated by the loop filter processing unit 213 is output as an output image and stored in the reference image buffer 208 as a reference image. Further, the first filter coefficient or the prediction information is also stored in the reference image buffer 208 and managed in synchronization with the reference image.
- the functions of the inverse quantization / inverse transform unit 205, the addition unit 206, the loop filter processing unit 213, the predicted image generation unit 201, the loop filter coefficient setting unit 212, and the reference image buffer 208 are described in the first embodiment. This is the same as the inverse quantization / inverse transform unit 105, the addition unit 106, the loop filter processing unit 113, the predicted image generation unit 101, the loop filter coefficient setting unit 112, and the reference image buffer 108. For this reason, detailed description of these each part is abbreviate
- FIG. 17 is a flowchart showing the procedure of the decoding process according to the present embodiment.
- the entropy decoding unit 204 receives encoded data from the moving image encoding apparatus 100 and performs decoding (step S500).
- the entropy decoding unit 204 performs decoding processing on the received encoded data according to the syntax configuration of FIGS.
- the entropy decoding unit 204 interprets the number of filters filter_num included in the reference filter specified by direct_ref_idx in FIG. And the entropy decoding part 204 determines whether each filter is applied by decoding use_filter_flag.
- the entropy decoding unit 204 decodes use_filter_flag by the number of NumOfClass that is the number of classes for classifying pixels. As a result, the entropy decoding unit 204 determines whether to apply a filter to the pixel regions classified into the respective classes.
- the entropy decoding unit 204 further decodes prediction mode information, motion information, quantization parameters, and the like according to the syntax structure shown in FIG. 7 in addition to the transform coefficient and the encoded block division information.
- the decoding control unit 202 uses the encoded block division information obtained by decoding when performing encoded block division control in the decoding process.
- the inverse quantization / inverse transform unit 205 generates an error image (step S504).
- the adding unit 206 adds the error image and the predicted image to generate a decoded image (S508).
- the loop filter coefficient setting unit 212 sets a filter coefficient to be applied to the decoded image to be filtered (step S510).
- the loop filter processing unit 213 applies a filter specified by the filter coefficient set by the loop filter coefficient setting unit 212 to the decoded image to generate a restored image (steps S512 and S514).
- the loop filter processing unit 213 outputs the generated restored image as an output image and stores the generated restored image in the reference image buffer 208 as a reference image (step S516).
- the filter coefficient or the prediction information is also stored as reference filter information in the reference image buffer 208 and managed in synchronization with the corresponding reference image.
- the first application information included in the encoded data received from the moving picture encoding apparatus 100 converts the reference filter information into the decoded image filtering process.
- the filtering process is performed using the reference filter information indicated by the first reference information.
- the reference candidate is synchronized with a reference image that can be referred to in inter-screen prediction, and there is no reference in the time direction that exceeds the range assumed in the prediction process.
- FIG. 18 is a block diagram showing a functional configuration of the moving picture coding apparatus 100A according to the present embodiment.
- the moving image encoding apparatus 100A according to the present embodiment includes a moving image encoding unit 110A and an encoding control unit 109A.
- the encoding control unit 109A controls the moving image encoding unit 110A.
- the moving image encoding unit 110A includes a predicted image generation unit 101, a subtraction unit 102, a transform / quantization unit 103, an entropy encoding unit 104, an inverse quantization / inverse transform unit 105, an addition unit 106, a loop filter unit 107, and A reference image buffer 108 and a deblocking filter processing unit 114 are provided.
- the configuration of the reference image buffer 108 is the same as that in the first embodiment.
- the deblocking filter processing unit 114 receives the decoded image from the addition unit 106. Then, a known deblocking filter process is performed on the decoded image received from the adding unit 106 to generate a deblocked decoded image, which is output to the loop filter unit 107.
- the moving image encoding process executed by the moving image encoding device 100A is the same as that of the moving image encoding device 100 of the first embodiment except that the processing in the deblocking filter processing unit 114 is different. Therefore, detailed description is omitted.
- FIG. 19 is a block diagram showing a functional configuration of the moving picture decoding apparatus 200A.
- the moving image decoding apparatus 200A receives encoded data from the moving image encoding apparatus 100A and performs a moving image decoding process.
- the moving picture decoding apparatus 200A includes a moving picture decoding unit 210A and a decoding control unit 202A as shown in FIG.
- the decoding control unit 202A controls the moving image decoding unit 210A.
- the moving image decoding unit 210A decodes the encoded data received from the moving image encoding device 100A.
- the moving image decoding unit 210A includes an entropy decoding unit 204, an inverse quantization / inverse conversion unit 205, an addition unit 206, a loop filter processing unit 213, a loop filter coefficient setting unit 212, a reference image buffer 208, a predicted image generation unit 201, and A deblocking filter processing unit 214 is provided.
- the decoding control unit 202A, entropy decoding unit 204, inverse quantization / inverse transformation unit 205, addition unit 206, loop filter processing unit 213, loop filter coefficient setting unit 212, reference image buffer 208, and predicted image generation unit 201 This is the same as the second embodiment.
- the deblocking filter processing unit 214 receives the decoded image from the addition unit 206. Then, a known deblocking filter process is performed on the decoded image received from the adding unit 206 to generate a deblocked decoded image, which is output to the loop filter processing unit 213.
- the moving picture decoding process executed by the moving picture decoding apparatus 200A is the same as that of the moving picture encoding apparatus 200 of the second embodiment, except that the processing in the deblocking filter processing unit 214 is different. Therefore, detailed description is omitted.
- the moving picture coding apparatus 100A and the moving picture decoding apparatus 200A according to the present embodiment can perform loop filter processing using the decoded image that has been deblocked. Therefore, in addition to the effects in the first and second embodiments, it is possible to further suppress the degradation of the predicted image.
- Embodiment 4 In the moving image coding apparatus 100A and the moving image decoding apparatus 200A according to Embodiment 3, the case has been described in which the loop filter unit 107 performs the filtering process on the decoded image generated by the adding unit 106 or the adding unit 206. In the third embodiment, after the deblocking filter process is performed on the decoded image, the filter process is performed.
- FIG. 20 is a block diagram illustrating a functional configuration of the moving image encoding device 100B.
- the moving picture coding apparatus 100B includes a moving picture coding unit 110B and a coding control unit 109B.
- the encoding control unit 109B controls the moving image encoding unit 110B.
- the moving image coding unit 110B includes a prediction image generation unit 101, a subtraction unit 102, a transform / quantization unit 103, an entropy coding unit 104, an inverse quantization / inverse transform unit 105, an addition unit 106B, and a loop filter unit 107B.
- An image buffer 108 and a deblocking filter processing unit 114 are provided.
- the encoding control unit 109B the predicted image generation unit 101, the subtraction unit 102, the transform / quantization unit 103, the entropy encoding unit 104, the inverse quantization / inverse transform unit 105, the deblocking filter processing unit 114, and the reference image
- the configuration of the buffer 108 is the same as that of the moving image encoding apparatus 100A of the third embodiment.
- the adding unit 106B adds the error image and the predicted image to generate a decoded image, and outputs the generated decoded image to the deblocking filter processing unit 114 and the loop filter unit 107B.
- the loop filter unit 107B uses the pixel values of both the decoded image before the deblocking process by the deblocking filter processing unit 114 and the decoded image after the deblocking process by the deblocking filter processing unit 114, and the loop filter unit
- the filter coefficient is set and applied in the same manner as 107B. This process is equivalent to a weighted average of pixel values before and after the deblocking process with an appropriate weight.
- the moving image encoding processing executed by the moving image encoding device 100B is the same as that of the moving image encoding device 100 of the first embodiment, except that the processing in the adding unit 106B and the loop filter unit 107B is different as described above. It is. Therefore, detailed description is omitted.
- FIG. 21 is a block diagram showing a functional configuration of the moving picture decoding apparatus 200B.
- the video decoding device 200B receives the encoded data from the video encoding device 100B and performs a decoding process.
- the moving picture decoding apparatus 200B includes a moving picture decoding unit 210B and a decoding control unit 202B as shown in FIG.
- the decoding control unit 202B controls the moving image decoding unit 210B.
- the moving image decoding unit 210B decodes the encoded data received from the moving image encoding device 100B.
- the moving image decoding unit 210B includes an entropy decoding unit 204, an inverse quantization / inverse conversion unit 205, an addition unit 206B, a loop filter processing unit 213B, a loop filter coefficient setting unit 212, a reference image buffer 208, a predicted image generation unit 201, and A deblocking filter processing unit 214 is provided.
- the decoding control unit 202B, the entropy decoding unit 204, the inverse quantization / inverse transformation unit 205, the loop filter coefficient setting unit 212, the reference image buffer 208, and the predicted image generation unit 201 are the same as those in the moving image decoding apparatus 200A according to the third embodiment. It is the same.
- the adding unit 206B adds the error image and the predicted image to generate a decoded image, and outputs the generated decoded image to the deblocking filter processing unit 214 and the loop filter processing unit 213B.
- the loop filter processing unit 213B uses the pixel values of both the decoded image before the deblocking process by the deblocking filter processing unit 214 and the decoded image after the deblocking process by the deblocking filter processing unit 214, Filter processing is performed in the same manner as the processing unit 213.
- the moving picture decoding process executed by the moving picture decoding apparatus 200B is the same as that of the moving picture encoding apparatus 200 of the second embodiment, except that the processes in the adding unit 206B and the loop filter processing unit 213B are different as described above. It is. Therefore, detailed description is omitted.
- block distortion caused by encoding can be reduced by deblocking filter processing.
- a strong low-pass filter is applied in the deblocking filter process, high-frequency components such as edges and textures included in the input image may be reduced. Therefore, in the present embodiment, loop filter processing is performed using decoded images before and after deblocking filter processing. For this reason, in addition to the effect in the said Embodiment 3, in the moving image encoder 100B and the moving image decoder 200B of this Embodiment, degradation of a prediction image can be prevented further.
- those applied to the loop filter process may be switched in units such as a sequence, a picture, and a slice. In that case, it is necessary to separately multiplex the information for switching into the encoded data in a corresponding unit.
- the decoded image generated by the adding unit 206 by adding the error image and the predicted image is output as an output image without performing the filtering process.
- the restored image generated by filtering the decoded image is used as a reference image.
- FIG. 22 is a block diagram showing a functional configuration of the moving picture decoding apparatus 200C according to the present embodiment.
- the moving picture decoding apparatus 200C includes a moving picture decoding unit 210C and a decoding control unit 202C as shown in FIG.
- the decoding control unit 202C controls the moving image decoding unit 210C.
- the moving image decoding unit 210C decodes the encoded data received from the moving image encoding device.
- the moving image decoding unit 210C includes an entropy decoding unit 204, an inverse quantization / inverse conversion unit 205, an addition unit 206C, a loop filter processing unit 213C, a loop filter coefficient setting unit 212, a reference image buffer 208, and a predicted image generation unit 201. Prepare.
- the decoding control unit 202C, the entropy decoding unit 204, the inverse quantization / inverse conversion unit 205, the loop filter coefficient setting unit 212, the reference image buffer 208, and the predicted image generation unit 201 are the same as those in the moving image decoding apparatus 200 according to the second embodiment. It is the same.
- the adding unit 206C adds the error image and the predicted image to generate a decoded image, outputs the generated decoded image to the outside as an output image, and outputs the decoded image to the loop filter processing unit 213C.
- the loop filter processing unit 213C applies a filter to the decoded image in the same manner as the loop filter processing unit 213 to generate a restored image. Then, the loop filter processing unit 213C stores the restored image in the reference image buffer 208 as a reference image.
- the moving image decoding process executed by the moving image decoding apparatus 200C is the same as that of the moving image decoding apparatus 200 of the second embodiment, except that the processes in the adding unit 206C and the loop filter processing unit 213C are different as described above. . For this reason, detailed description of the video decoding process is omitted.
- the moving picture decoding apparatus 200C has a configuration in which a filter is applied to a decoded image and no filter is applied to an output image. Also in the moving picture decoding apparatus 200C of the present embodiment, it is possible to suppress a reduction in error resistance, as in the above embodiment.
- a moving image encoding device and a moving image decoding device are used as post filters.
- the post filter indicates a method of applying a filter only to an output image.
- FIG. 23 is a block diagram showing a functional configuration of the moving picture coding apparatus 100D of the present embodiment.
- the moving image encoding apparatus 100D according to the present embodiment includes a moving image encoding unit 110D and an encoding control unit 109D.
- the encoding control unit 109D controls the moving image encoding unit 110D.
- the moving image encoding unit 110D includes a predicted image generation unit 101, a subtraction unit 102, a transform / quantization unit 103, an entropy encoding unit 104, an inverse quantization / inverse transform unit 105, an addition unit 106, and a loop filter information generation unit 111. , And a reference image buffer 108.
- the moving image encoding unit 110D is the same as the moving image encoding unit 110 of Embodiment 1 except that the moving image encoding unit 110D includes a loop filter information generation unit 111 instead of the loop filter unit 107.
- the function of the loop filter information generation unit 111 is the same as that of the first embodiment.
- FIG. 24 is a block diagram showing a functional configuration of the video decoding device 200D.
- the video decoding device 200D receives the encoded data from the video encoding device 100D and performs a decoding process.
- the moving picture decoding apparatus 200D includes a moving picture decoding unit 210D and a decoding control unit 202D as shown in FIG.
- the decoding control unit 202D controls the moving image decoding unit 210D.
- the moving image decoding unit 210D decodes the encoded data received from the moving image encoding device 100D.
- the moving image decoding unit 210D includes an entropy decoding unit 204, an inverse quantization / inverse conversion unit 205, an addition unit 206D, a loop filter processing unit 213, a loop filter coefficient setting unit 212, a reference image buffer 208, and a predicted image generation unit 201.
- the moving image encoding unit 210D includes an adding unit 206D instead of the adding unit 206, and the moving image decoding unit according to the second embodiment is changed except that the input to the reference image buffer 208 is changed from the restored image to the decoded image. The same as 210.
- the addition unit 206D adds the error image and the predicted image to generate a decoded image, outputs the generated decoded image to the loop filter processing unit 213, and stores the decoded image in the reference image buffer 208 as a reference image. .
- the moving picture coding apparatus 100D and the moving picture decoding apparatus 200D according to the present embodiment can be used as a post filter.
- the moving image encoding process executed by the moving image encoding device 100D is the same as that of the moving image encoding device 100 of the first embodiment. For this reason, detailed description of the moving image encoding process is omitted. Also, the moving picture decoding process executed by the moving picture decoding apparatus 200D is the same as that of the moving picture decoding apparatus 200 of the second embodiment. For this reason, detailed description of the video decoding process is also omitted.
- the moving picture coding apparatus and the moving picture decoding apparatus according to Embodiments 1 to 6 can suppress a reduction in error resistance.
- a moving image encoding program for executing the moving image encoding process executed by the moving image encoding apparatuses 100, 100A, 100B, and 100D according to the first, third, fourth, and sixth embodiments is stored in advance in a ROM or the like. Provided embedded.
- a moving picture decoding program for executing the moving picture decoding process executed by the moving picture decoding apparatuses 200, 200A, 200B, 200C, and 200D according to the second, third, fourth, fifth, and sixth embodiments is stored in a ROM or the like. Provided in advance.
- the moving image decoding program executed in 200, 200A, 200B, 200C, and 200D is an installable or executable file in a CD-ROM, flexible disk (FD), CD-R, DVD (Digital Versatile Disk). ) Or the like may be recorded and provided on a computer-readable recording medium.
- the moving image decoding program executed by the decoding devices 200, 200A, 200B, 200C, and 200D may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Good.
- the moving image decoding program executed by the decoding devices 200, 200A, 200B, 200C, and 200D may be configured to be provided or distributed via a network such as the Internet.
- the moving picture coding program executed by the moving picture coding apparatuses 100, 100A, 100B, and 100D according to the first, third, fourth, and sixth embodiments includes the above-described units (subtraction unit, transform / quantization unit, entropy coding). Unit, predicted image generation unit, inverse quantization / inverse conversion unit, addition unit, deblocking filter processing unit, reference image buffer, loop filter unit, loop filter information generation unit, loop filter coefficient setting unit, loop filter processing unit)
- the CPU reads out and executes the moving image encoding program from the ROM, and the respective units are loaded onto the main storage device, and the respective units are stored in the main memory. It is generated on the device.
- the moving picture decoding program executed by the moving picture decoding apparatuses 200, 200A, 200B, 200C, and 200D according to the second, third, fourth, fifth, and sixth embodiments includes the above-described units (entropy decoding unit, inverse quantization / inverse transform).
- Unit, addition unit, loop filter processing unit, predicted image generation unit, loop filter coefficient setting unit, reference image buffer, deblocking filter processing unit), and the actual hardware is a CPU (processor) Reads out and executes the moving picture decoding program from the ROM, so that the respective units are loaded onto the main storage device, and the respective units are generated on the main storage device.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
実施形態の動画像符号化方法は、入力画像と予測画像との差分を示す誤差画像を生成し、前記誤差画像を量子化して量子化係数を生成すること、前記量子化係数を逆量子化した後に逆変換して誤差画像を生成し、該誤差画像と前記予測画像とを加算して復号画像を生成すること、前記復号画像に対してフィルタ処理を行い、参照画像を生成すること、前記参照画像に適用したフィルタである参照フィルタを、前記復号画像のフィルタ処理に適用するか否かを示す、第1適用情報を生成すること、予測画像生成時に参照可能な前記参照画像に適用された前記参照フィルタの内の1の参照フィルタを示す第1参照情報を生成すること、前記参照画像を用いて前記予測画像を生成すること、前記量子化係数及び、前記第1適用情報及び前記第1参照情報を含むフィルタ情報、を符号化すること、を備える。
Description
本発明の実施形態は、動画像符号化方法、及び装置、動画像復号方法、及び装置に関する。
入力画像と復号画像との誤差を低減する技術として、Adaptive Loop Filter(以下、ALFという)が知られている。ALFを用いた動画像符号化装置は、フィルタ情報と、入力画像と予測画像との差分を変換及び量子化した量子化係数と、を符号化して動画像復号装置へ送信する。このフィルタ情報には、復号画像のフィルタ処理に用いたフィルタ係数と、該フィルタ係数を用いてフィルタ処理する画素領域を示す情報が含まれる。動画像復号装置は、受け付けたフィルタ情報を用いて、対応する画素領域にフィルタ処理を行なう。
このALFを用いた技術として、符号化対象のスライスのフィルタ処理に1つのフィルタを用い、このフィルタとして、同一スライスタイプのスライスで用いたフィルタの内、最後に符号化されたフィルタを用いることが開示されている。
T.Chujoh,"Adaptive spatial-temporal prediction of filter coefficients for in-loop filter," JCT-VC Doc. JCTVC-B045, Geneva, July, 2010.
しかしながら、従来技術では、画面間予測で参照可能なスライスではないスライスで適用されたフィルタが利用可能となる場合があり、この場合にはエラー耐性の低下が生じるという問題がある。即ち、あるスライスでエラーが発生した場合に従来の動画像符号化では影響を受けなかったスライスについてもフィルタに関してエラーの影響を受けることになる。
実施形態の動画像符号化方法は、入力画像と予測画像との差分を示す誤差画像を生成し、前記誤差画像を量子化して量子化係数を生成すること、前記量子化係数を逆量子化した後に逆変換して誤差画像を生成し、該誤差画像と前記予測画像とを加算して復号画像を生成すること、前記復号画像に対してフィルタ処理を行い、参照画像を生成すること、前記参照画像に適用したフィルタである参照フィルタを、前記復号画像のフィルタ処理に適用するか否かを示す、第1適用情報を生成すること、予測画像生成時に参照可能な前記参照画像に適用された前記参照フィルタの内の1の参照フィルタを示す第1参照情報を生成すること、前記参照画像を用いて前記予測画像を生成すること、前記量子化係数及び、前記第1適用情報及び前記第1参照情報を含むフィルタ情報、を符号化すること、を備える。
(実施の形態1)
図1は、本実施の形態の動画像符号化装置100の機能的構成を示すブロック図である。本実施の形態の動画像符号化装置100は、図1に示すように、動画像符号化部110、及び符号化制御部109を備える。
図1は、本実施の形態の動画像符号化装置100の機能的構成を示すブロック図である。本実施の形態の動画像符号化装置100は、図1に示すように、動画像符号化部110、及び符号化制御部109を備える。
符号化制御部109は、動画像符号化部110を制御する。動画像符号化部110は、符号化対象である入力画像を符号化する。動画像符号化部110は、1フレームを複数の画素領域からなるスライスに分割してスライス毎に符号化を行う。
動画像符号化部110は、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ部107、及び参照画像バッファ108を備える。
動画像符号化部110には、入力画像が入力される。減算部102は、予測画像生成部101で生成された予測画像と入力画像との差分を求めて、この差分である誤差画像を生成する。
変換・量子化部103は、誤差画像を変換して変換係数を生成し、変換係数を量子化して量子化係数を生成する。ここで、誤差画像の変換方法としては、例えば、DCT(Discrete Cosine Transform:離散コサイン変換)を用いた直交変換や、ウェーブレット変換や、独立成分解析等が挙げられる。変換・量子化部103はこれらの何れかの変換方法を用いて誤差画像を変換する。また、変換・量子化部103は、符号化制御部109で設定された量子化パラメータを用いて、変換係数を量子化する。
変換・量子化部103は、エントロピー符号化部104及び逆量子化・逆変換部105に量子化係数を出力する。
エントロピー符号化部104は、変換・量子化部103から量子化係数を受け付ける。また、エントロピー符号化部104は、詳細を後述するループフィルタ部107からフィルタ情報(詳細後述)を受け付ける。また、エントロピー符号化部104は、符号化制御部109から符号化パラメータを受け付ける。そして、エントロピー符号化部104は、量子化係数、フィルタ情報、及び符号化パラメータをエントロピー符号化し、符号化データを生成する。
エントロピー符号化部104は、エントロピー符号化に、例えば、ハフマン符号化や算術符号化を用いる。符号化パラメータは、予測モード情報、動き情報、量子化パラメータ、符号化ブロック分割情報(詳細後述)等の公知の情報を含む。
エントロピー符号化部104は、生成した符号化データを、ネットワークまたは蓄積メディアを介して、動画像復号装置に出力する。動画像復号装置では、受け付けた符号化データを復号し、出力画像を生成して出力する(詳細後述)。
なお、エントロピー符号化部104は、予め定められたシンタクスに沿って、符号化データを動画像復号装置に出力する。シンタクスとは、符号化データの設定規則である。本実施の形態で用いるシンタクスの詳細については後述する。
逆量子化・逆変換部105は、量子化係数を逆量子化した後に逆変換し、誤差画像を生成する。すなわち、逆量子化・逆変換部105は、量子化係数に対して、変換・量子化部103の処理と逆の処理を行う。具体的には、変換・量子化部103がウェーブレット変換及び量子化を行なった場合には、逆量子化・逆変換部105は、逆量子化及び逆ウェーブレット変換を行う。
加算部106は、逆量子化・逆変換部105から誤差画像を受け取り、予測画像生成部101から予測画像を受け取る。そして、加算部106は、誤差画像と予測画像を加算して復号画像を生成する。この復号画像は、ループフィルタ部107でフィルタ処理された後に、参照画像として参照画像バッファ108に保存される。
ループフィルタ部107は、加算部106で生成された復号画像にフィルタ処理を行い、復元画像を生成する。これによって、ループフィルタ部107は、復号画像をより入力画像に近い画像に復元する。なお、本実施の形態では、ループフィルタ部107はスライス単位でフィルタ処理を実行する。
そして、ループフィルタ部107は、生成した復元画像を参照画像として参照画像バッファ108に格納する。また、ループフィルタ部107は、参照画像のフィルタ処理時に用いたフィルタを参照フィルタとして、対応する参照画像に対応づけて参照画像バッファ108に格納する。
なお、ループフィルタ部107については、詳細を後述する。
参照画像バッファ108は、フレームメモリ等の記憶媒体である。参照画像バッファ108は、上記の復号画像を参照画像1~参照画像2等として格納する。なお、1のフレーム毎に1の参照画像が参照画像バッファ108に格納される。なお、図1には、一例として、参照画像バッファ108が、2画像分(2フレーム分)の参照画像を格納している場合を示した。しかし、参照画像バッファ108に格納される参照画像は、2枚に限られず、参照画像バッファ108の容量や設定に応じて定められる。
また、参照画像バッファ108は、参照フィルタ情報を格納する。参照フィルタ情報とは、符号化済、すなわちフィルタ処理済の復号画像である参照画像の、各スライスのフィルタ処理に用いたフィルタ係数を示す情報である。
参照画像バッファ108は、参照フィルタ情報を、各参照画像1~参照画像2の各々に対応する参照フィルタ情報1~参照フィルタ情報2等として格納する。ここで、上述のように、ループフィルタ部107は、スライス毎にフィルタ処理を実行する。このため、1のスライス毎に1の参照フィルタ情報が参照画像バッファ108に格納される。従って、1の参照画像には、該参照画像に含まれる複数のスライスの各々に対応した複数の参照フィルタ情報が対応づけられる。
なお、以下では、説明を簡略化するために、1枚のフレームが1スライスで構成される場合を説明する。すなわち、参照画像バッファ108には、1の参照画像に対して、1の参照フィルタ情報が対応づけて格納される場合を説明する。
予測画像生成部101は、予測処理を行い、予測画像を生成する。予測画像の生成には、参照画像バッファ108に格納されている複数の参照画像の内、画面間予測時(予測画像生成時)に参照する1または複数の参照画像を用いる。
この画面間予測時(予測画像生成時)に参照する1または複数の参照画像は、符号化制御部109によって予め設定されている。予測画像生成部101では、この設定された参照画像を用いて予測処理を行い、予測画像を生成する。
予測画像生成部101が行う予測処理としては、公知の予測処理が挙げられる。例えば、予測処理としては、上述の動き補償による画面間予測に加え、画面内の符号化済の画素を用いた画面内予測等が挙げられる。なお、予測画像生成部101が時間方向の予測を行うときには、予測画像生成部101は、参照画像バッファ108から画面間予測時に参照する参照画像を取得し、動き補償を行う。予測画像生成部101は、符号化制御部109による制御によって、画面間予測時に参照する参照画像を参照画像バッファ108から選択する。そして、予測画像生成部101は、符号化制御部109で設定された符号化ブロック単位で参照画像の何れを参照するかと、動きベクトルと、を決定することで、動き補償予測を行う。
次に、符号化制御部109について説明する。
符号化制御部109は、動画像符号化部110を制御する。具体的には、符号化制御部109は、符号化ブロック分割情報や、量子化パラメータや、画面間予測時に参照する参照画像を示す情報等を設定し、動画像符号化部110へ出力する。これによって、符号化制御部109は、動画像符号化部110における符号化処理を制御する。
符号化ブロック分割情報とは、動画像符号化部110における符号化の処理単位を示す情報である。具体的には、符号化ブロック分割情報は、処理対象のスライスに含まれる画素をどのように符号化の処理単位に分割するかを示す情報である。
符号化制御部109は、例えば、以下のようにして符号化ブロック分割情報を設定する。
ここで、動画像符号化部110では、1フレーム(1画像)を複数のブロックに分割し、分割することによって得られた符号化ブロック毎に符号化を行う。符号化制御部109では、この符号化ブロックのサイズを自由に設定する。なお、本実施の形態では、動画像符号化装置100は、画面内で可変サイズの符号化ブロックを用いる動画符号化方法を用いる場合を説明する。なお、符号化ブロックは、このような可変サイズの符号化ブロックに限られず、例えば、固定サイズの符号化ブロックを用いてもよい。
本実施の形態では、符号化制御部109は、一例として、図2に示すように、四分木の木構造402によって符号化ブロック分割情報を設定する場合について説明する。図2には、符号化ブロックの分割例を示した。図2に示すように、符号化制御部109が、四分木の木構造402によって符号化ブロック分割情報を設定することで、可変サイズの符号化ブロックを調整することができる。
本実施の形態では、符号化制御部109は、式(1)により表される符号化コストに基づいて符号化ブロックのサイズを設定することで、符号化ブロック分割情報を設定する。
式(1)中、Dは、入力画像と予測画像との差である誤差の二乗和を表す。また、式(1)中、Rは、動きベクトルやブロック形状等の予測画像に関する符号量を表す。また、式(1)中、λは、量子化パラメータの値に基づいて決められるラグランジュ未定乗数である。
符号化制御部109は、設定した符号化ブロックを用いて符号化を行った場合と、設定した符号化ブロックをさらに4つの符号化ブロックに分割して符号化を行った場合と、のそれぞれについて上記式(1)を用いて符号化コストを算出する。そして、符号化制御部109は、符号化コストの最も小さい符号化ブロックのサイズを選択する。
また、符号化制御部109は、シンタクスにおけるブロック分割を示すパラメータの記述を調整することによって、選択可能な符号化ブロックのサイズを設定する。
具体的には、符号化制御部109は、シンタクスにおけるパラメータであるmax_coding_block_sizeの記述と、max_coding_layerの記述を制御することにより、符号化ブロックのサイズを設定する。
max_coding_block_sizeは、符号化ブロックの最大サイズを示す。max_coding_layerは、四分木の木構造の最大の深さを示す。これらから、符号化ブロックの最小サイズであるmin_coding_block_sizeが決定される。
例えば、図2の符号化ブロック401の例では、max_coding_block_size=64、max_coding_layer=2である場合、符号化ブロックの最大サイズから深さ2の木構造を取ることができる。このため、シンタクスにおける、min_coding_block_size=16となる。四分木の木構造402に示すように、各符号化ブロックはさらに4つの符号化ブロックに分割することができる。このため、符号化制御部109は、min_coding_block_sizeよりも大きなサイズの符号化ブロックには、さらにブロックの分割を行なうかどうかの情報を付加する。max_coding_block_sizeとmax_coding_layerには、シーケンスに対して固定の値を用いてもよく、またスライス等の単位で可変としてもよい。これらの場合、それぞれの単位でmax_coding_block_sizeとmax_coding_layerとを符号化する必要がある。さらに、符号化側と復号側とで一意なパラメータを用いてもよく、この場合にはパラメータを符号化する必要はない。
符号化制御部109が、このように画面内で符号化ブロックのサイズを可変に設定することで、動画像符号化部110は、画像における画素領域毎の特性を考慮した符号化を行うことができる。
次に、ループフィルタ部107について詳細を説明する。
図3には、ループフィルタ部107の詳細な機能ブロック図を示した。
図3に示すように、ループフィルタ部107は、ループフィルタ情報生成部111、ループフィルタ係数設定部112、及びループフィルタ処理部113を含む。
ループフィルタ情報生成部111は、入力画像、復号画像、参照フィルタ情報、及び符号化ブロック分割情報を受け付ける。そして、ループフィルタ情報生成部111は、フィルタ情報及び第3適用情報を生成する。
フィルタ情報は、予測情報または第1フィルタ係数を含む。
第1フィルタ係数とは、ループフィルタ情報生成部111がフィルタ処理対象の復号画像に対して生成したフィルタ係数である。
予測情報とは、復号画像のフィルタ処理に適用するフィルタ係数の予測に用いる情報であり、詳細には、第1参照情報、第1適用情報、及び第2適用情報、を含む情報である。
第1参照情報とは、復号画像のフィルタ処理に適用する参照フィルタを示す情報であり、参照画像バッファ108に格納されている複数の参照フィルタ情報の内の、1の参照フィルタ情報を示す情報である。更に詳細には、第1参照情報は、画面間予測時に参照可能な参照画像に適用された参照フィルタ情報を参照候補とし、該参照候補の内の1の参照フィルタ情報を示す情報である。すなわち、第1参照情報は、復号画像のフィルタ処理に適用する参照フィルタを示すことで、フィルタ係数の予測方法を示す。
第1適用情報とは、フィルタ処理対象の復号画像のフィルタ処理に、参照フィルタ情報を用いるか否かを示す情報である。具体的には、第1適用情報は、符号化済(フィルタ処理済)の復号画像である参照画像のフィルタ処理に用いたフィルタの参照フィルタ情報を、フィルタ処理対象の復号画像のフィルタ処理に適用するか、否かを示す情報である。なお、本実施の形態では、第1適用情報は、参照フィルタ情報を用いない事を示す情報として、復号画像から別途生成した第1フィルタ係数を該復号画像のフィルタ処理に適用することを示す情報を含む。
なお、フィルタ処理対象の復号画像のフィルタ処理に参照フィルタ情報を用いることを、本実施の形態においてはダイレクトフィルタ係数予測方式と称する場合がある。
第2適用情報とは、フィルタ処理対象の復号画像(スライス)に含まれる各画素領域を予め定めた分類方法に従って分類した分類結果(以下、クラスと称する場合がある)に応じて、クラス毎にフィルタ適用の有無を示した情報である。すなわち、言い換えると、第2適用情報は、復号画像の各画素領域を予め定めた分類方法にしたって分類した結果に応じて、各画素領域に対するフィルタ適用の有無を示した情報である。なお、本実施の形態では、第2適用情報は、参照フィルタ情報を用いてフィルタ処理を行う場合に作成される。そして、本実施の形態では、第2適用情報は、全クラスの内、一部のクラスにフィルタを適用し、且つ一部のクラスにはフィルタを適用しないことを示した情報である。このため、詳細は後述するが、本実施の形態では、参照フィルタ情報を用いてフィルタ処理を行う場合には、全クラスの内の一部のクラスにフィルタを適用することができる。
第3適用情報とは、符号化ブロック毎にフィルタ適用の有無を示した情報である。なお、フィルタ適用の有無とは、フィルタを用いてフィルタ処理を行うか否かを示す。
なお、上記フィルタ情報(予測情報(第1参照情報、第1適用情報、及び第2適用情報を含む)または第1フィルタ係数)、及び第3適用情報の各々の生成方法については、詳細を後述する。
ループフィルタ係数設定部112は、ループフィルタ情報生成部111から第1フィルタ係数または予測情報を受け取ると共に、参照画像バッファ108に格納されている参照フィルタ情報を読み取る。そして、ループフィルタ係数設定部112は、復号画像に実際に適用するフィルタのフィルタ係数を算出し、ループフィルタ処理部113へと出力する。
ループフィルタ処理部113は、フィルタ係数、復号画像、符号化ブロック毎のフィルタ適用の有無を示す第3適用情報、及び符号化ブロック分割情報を受け付ける。そして、ループフィルタ処理部113は、第3適用情報により指定される領域に対して、受け付けたフィルタ係数により指定されるフィルタを適用してフィルタ処理を行い、復元画像を生成する。
ループフィルタ係数設定部112で設定されたフィルタ係数は、参照フィルタ情報として、参照画像バッファ108に格納される。また、ループフィルタ情報生成部111で生成された第1フィルタ係数または予測情報と、第3適用情報と、を含むフィルタ情報は、エントロピー符号化部104に出力される。さらに、ループフィルタ処理部113で生成された復元画像は、参照画像として参照画像バッファ108に格納され、予測画像の生成に用いられる。
次に、ループフィルタ情報生成部111における、上記フィルタ情報(予測情報(第1参照情報及び第1適用情報)またはフィルタ係数、第2適用情報)、及び第3適用情報の各々の生成方法について説明する。
ループフィルタ情報生成部111は、第1参照情報生成部111A、第1適用情報生成部111B、第1フィルタ係数生成部111C、第2適用情報生成部111D、及び第3適用情報生成部111Eを含む。
第1フィルタ係数生成部111Cは、復号画像に適用するフィルタの第1フィルタ係数を生成する。
第1フィルタ係数生成部111Cは、まず、復号画像と入力画像とに基づいて、復号画像にフィルタ処理を施した場合の画像と、入力画像と、の平均二乗誤差が最小となるように1以上の第1フィルタ係数を設定する。本実施形態では、フィルタとして、画像復元で一般的に用いられる2次元のWiener filterを用いることとする。
ここで、1以上の第1フィルタ係数の設定方法の一例を、図4を用いて詳細に説明する。図4には、クラス毎のフィルタの切り替えを示す模式図を示した。
なお、図4では、処理対象の復号画像を4画素×4画素の画素領域に分割し(図4(A)参照)、各画素領域内の画像特徴に従って複数のクラスに分類する。そして、図4では、分類結果であるクラス毎に、適用するフィルタを切り替える(図4(B)参照)場合を説明する。
まず、第1フィルタ係数生成部111Cは、画素領域内の画像特徴から、各画素領域を16個のクラスに分類する(図4(A)、図4(B)参照)。なお、分類するクラスは、16個に限られない。画像特徴としてはアクティビティなどを用いてよい。次に、フィルタ係数生成部111Cは、各クラスのインデックスを0から15とし、連続したインデックスを持つ1以上のクラスに対して1つのフィルタを割り当てる(図4(B)参照)。フィルタの割り当てについては、上記式(1)の符号化コスト算出式に応じて決定する。例えば、最初にすべてのクラスに異なるフィルタを割り当てて符号化コストを算出し、次に連続したインデックスを持つ2つのクラスに対して1つのフィルタを割り当てた場合の符号化コストを算出し、算出した符号化コストを比較する。そして、連続したインデックスの数を順に増やして、全てのクラスに対して1つのフィルタを割り当てた場合となるまで上記の算出処理を繰り返す。そして、第1フィルタ係数生成部111Cは、最も符号化コストの小さいフィルタの割り当てを選択する。これによって、フィルタ係数生成部111Cは、クラス毎に適切なフィルタの割り当てを行うことができる。
なお、適用するフィルタの切り替えは、図4(A)に示すような正方形の画素領域に限られない。すなわち、復号画像を分割する単位である画素領域は、8画素×2画素や、4画素×2画素といった長方形のブロック、8画素×1画素や4画素×1画素といった、長方形の画素領域を1単位としてもよく、1画素単位であってもよい。
また、切り替え指標となるアクティビティの算出には、公知のエッジ検出などで用いられる微分フィルタを利用し、周囲の画素値との差分を算出した結果を用いればよい。
以下に1画素単位でフィルタを切り替える場合の切り替え指標の具体例を挙げる。
式(2)中、D(x,y)は、画素位置(x,y)における復号画像の画素値を示す。式(2)を用いることによって、第1フィルタ係数生成部111Cは、水平方向の微分フィルタ結果の絶対値と垂直方向の微分フィルタの絶対値との和を算出することができる。この式(2)から得られる値は、画素位置(x,y)における画素値と周囲の画素値との関係から算出される。このため、式(2)は、画像の局所的特徴を表現するのに有効であり、画素位置(x,y)に対するフィルタを選択する指標として用いることができる。さらに、式(2)によって得られる値を一定範囲の画素、例えば周囲N画素×N画素の画素領域について算出し、それらの和をフィルタの切り替え指標としてもよい。
なお、本実施の形態では、1画素単位でフィルタを切り替える指標として、上記式(2)を挙げた。しかし、複数画素からなる画素領域を1単位としてフィルタを切り替える場合には、例えば、画素領域内のそれぞれの画素について式(2)で求めた指標の総和を、領域全体のフィルタ切り替え指標としてもよい。
なお、1画素単位でフィルタを切り替える場合の切り替え指標には、下記式(3)に従って算出した値を用いてもよい。
上記式(3)は、画素位置(x,y)の画素とその周囲の画素との画素値差分の絶対値を平均したものである。この式(3)についても、画像の局所構造を表現する値として、フィルタの切り替え指標に用いることができる。また、式(3)では画素値差分の平均値を求めているが、平均値ではなく最大値を用いてもよい。
式(3)を用いる場合にも、複数画素からなる画素領域を1単位としてフィルタを切り替える場合には、例えば画素領域内で式(3)の平均値を算出して画素領域全体のフィルタ切り替え指標とすることができる。また、式(3)の平均値ではなく、式(3)の最大値を用いる場合も同様である。
なお、式(3)中、Nは、切り替え指標を算出するための画素の範囲を示す。また、D(x,y)は、画素位置(x,y)における復号画像の画素値を示す。
また、フィルタの切り替え指標には、以下の式(4)に従って、ブロック単位のアクティビティと輝度勾配方向を考慮した切り替え指標を用いてもよい。式(4)では切り替え指標として、0から15までのインデックスであるfIdxを割り当てる例を示している。
なお、式(4)中、Clip3(a,b,c)は、変数cを最小値aから最大値bの値の範囲に収まるようクリッピングする処理を表している。また、式(4)中、var_tab、avg_var、directionは、それぞれ以下の式(5)~式(7)により表わされる。
なお、式(6)中、BitDepthYは、画素値を表現するビット数を示す。例えば、BidDepthYが8である場合、各画素は0から255の値をとる。また、(x,y)は、画素位置(x,y)を示す。
次に、第1参照情報生成部111Aについて説明する。
第1参照情報生成部111Aは、第1参照情報を生成する。
第1参照情報生成部111Aは、まず、参照画像バッファ108に格納されている参照フィルタ情報の内、予測画像生成部101が画面間予測時に参照可能な参照画像に対して適用された参照フィルタ情報を、参照候補として設定する。
上述のように、参照画像バッファ108には、参照画像と、該参照画像のフィルタ処理に用いた参照フィルタ情報と、が対応して格納されている。このため、第1参照情報生成部111Aでは、予測画像生成部101が画面間予測時に参照可能な参照画像に対応する参照フィルタ情報を、参照画像バッファ108から読み取る。これによって、第1参照情報生成部111Aは、参照候補を設定する。
そして、第1参照情報生成部111Aは、参照候補として設定した参照フィルタ情報の中から、1の参照フィルタ情報を、復号画像におけるフィルタ処理対象の復号画像(スライス)に適用する参照フィルタ情報として設定する。
なお、第1参照情報生成部111Aは、参照候補として設定した参照フィルタ情報の中から、1の参照フィルタ情報を設定すればよい。しかし、第1参照情報生成部111Aは、符号化コストに基づいて、最も符号化コストの低い参照フィルタ情報を、フィルタ処理対象のスライスに適用する参照フィルタ情報として設定してもよい。この符号化コストの算出には、上記式(1)を用いればよい。
第1適用情報生成部111Bは、第1適用情報を生成する。
ここで、復号画像のフィルタ処理に適用するフィルタとして、参照画像バッファ108に格納されている参照フィルタ情報を用いる場合には、エントロピー符号化部104で符号化する際に発生する符号量の低減を図ることができる。これは、参照フィルタ情報を用いた場合には、エントロピー符号化部104では、フィルタ処理に用いたフィルタ係数そのものではなく、フィルタ係数の予測方法である上記予測情報を符号化すればよいためである。しかし、参照フィルタ情報を用いて復号画像のフィルタ処理を行った場合には、フィルタ処理対象の復号画像から新たに算出した第1フィルタ係数により指定されるフィルタを用いてフィルタ処理を行った場合に比べて、参照画像と入力画像との誤差の低減効果が低下する場合がある。
そこで、第1適用情報生成部111Bは、第1参照情報によって示される参照フィルタ情報によって指定されるフィルタを適用してフィルタ処理を行った場合と、第1フィルタ係数により指定されるフィルタを適用してフィルタ処理を行った場合と、の符号化コストを比較する。
そして、符号化コストの比較の結果、第1フィルタ係数によって指定されるフィルタを適用した場合に比べて、参照フィルタ情報によって指定されるフィルタを適用した場合の符号化コストが低かったとする。この場合には、第1適用情報生成部111Bは、参照フィルタ情報を用いてフィルタ処理を行う事を示す第1適用情報を生成する。一方、符号化コストの比較の結果、参照フィルタ情報によって指定されるフィルタを適用した場合に比べて、第1フィルタ係数によって指定されるフィルタを適用した場合の符号化コストが低かったとする。この場合には、第1適用情報生成部111Bは、第1フィルタ係数生成部111Cが生成した第1フィルタ係数により指定されるフィルタを、フィルタ処理に適用する事を示す第1適用情報を生成する。
上記符号化コストに基づいて、第1適用情報生成部111Bは、フィルタ処理対象の復号画像のフィルタ処理に参照フィルタ情報を用いるか否かを示す第1適用情報を生成する。
次に、第2適用情報生成部111Dについて説明する。
第2適用情報生成部111Dは、第2適用情報を生成する。
なお、上述のように、第2適用情報生成部111Dは、参照フィルタ情報を用いてフィルタ処理を行う場合に、第2適用情報を生成する。
フィルタ処理対象の復号画像のフィルタ処理に、参照フィルタ情報を用いる場合には、既に符号化済の復号画像に適用したフィルタを用いることとなる。このため、復号画像を複数の画素領域に分類した分類結果である各クラスにどのフィルタを適用するかについては、既に決定されている。しかしながら、第1フィルタ係数生成部111Cが復号画像に対して新たに設定した第1フィルタ係数をフィルタ処理に用いた場合に比べて、参照フィルタ情報をフィルタ処理に用いた場合には、入力画像と復号画像との誤差を低減する効果は低下する。
そこで、参照フィルタ情報を用いてフィルタ処理を行う場合には、第2適用情報生成部111Dが、第2適用情報生成部111Dは、全クラスの内、一部のクラスにフィルタを適用し、且つ一部のクラスにはフィルタを適用しないことを示す、第2適用情報を生成する。なお、第2適用情報生成部111Dは、この各クラスへのフィルタの適用の有無を、フィルタ適用によって生成される復元画像の入力画像に対する誤差が、復号画像の入力画像に対する誤差よりも低減するか否かによって判断する。
図5は、復号画像の各画素領域の分類結果である各クラスへのフィルタ適用例を示す図である。詳細には、図5は、第2適用情報生成部111Dが、復号画像の各画素領域の分類結果である全クラスの内、一部のクラスにフィルタを適用する事を示す第2適用情報を生成した場合を模式的に示した図である。
図5(A)に示すように、filter1~filter4の内、クラス9~クラス15に適用するfilter3及びfilter4については、フィルタを適用することで入力画像との誤差が増大するとする。一方、filter1~filter4の内、クラス0~クラス8に適用するfilter1及びfilter2については、フィルタを適用することで誤差を低減できるとする。この場合、第2適用情報生成部111Dは、クラス9~クラス15に適用するfilter3及びfilter4については、フィルタを適用しないことを示す第2適用情報を生成する。
同様に、第2適用情報生成部111Dは、図5(B)に示すように、フィルタの適用有無の設定を、フィルタ毎ではなく、分類結果のクラス毎に行ってもよい。すなわち、図5(B)に示すように、クラス0~クラス15の内、クラス9~クラス10、及びクラス14~クラス15についてはフィルタを適用することで入力画像との誤差が増大するとする。一方、クラス0~クラス15の内、クラス0~クラス8、及びクラス11~クラス13については、フィルタを適用することで誤差を低減できるとする。この場合、第2適用情報生成部111Dは、クラス9~クラス10、及びクラス14~クラス15については、フィルタを適用しないことを示す第2適用情報を生成する。
ループフィルタ部107では、復号画像の各画素領域のクラス、及び第2適用情報に応じて、フィルタの適用の有無を制御する。このため、動画像符号化装置100では、参照フィルタ情報を用いてフィルタ処理を行う場合の誤差の増大を抑制することで、符号量削減率の向上を図ることができる。
なお、図5(A)の場合、動画像符号化装置100側では、各クラスにフィルタを適用することで誤差が低減するか否かを判定することができる。しかし、符号化データを復号する動画像復号装置(詳細後述)側では、該誤差の低減の判定ができない。このため、各クラスにどのフィルタを適用し、各クラスにどのフィルタを適用しないのかを示す情報を、明示的に符号化する必要がある。さらに、図5(B)に示すように、分類結果のクラス毎にフィルタの適用の有無を示す場合にも、どのクラスにフィルタを適用するのかを示す情報を符号化する必要がある。
そこで、本実施の形態では、フィルタ情報は、上記予測情報または上記第1フィルタ係数に加えて、第2適用情報を含む。このため、エントロピー符号化部104では、参照フィルタ情報をフィルタ処理に適用する場合には、クラス毎のフィルタ適用の有無を示す第2適用情報についても符号化を行い、符号化データとして出力する。
一方で、ループフィルタ部107が、復号画像から生成した第1フィルタ係数を用いてフィルタ処理対象の復号画像のフィルタ処理を行う場合には、エントロピー符号化部104は、該第1フィルタ係数に関する情報を符号化する必要がある。
この場合、エントロピー符号化部104は、第1フィルタ係数の値そのものを符号化してもよく、また所定の予測処理を実行して予測値との差分値を符号化してもよい。該予測処理としては、第1フィルタ係数の総和がほぼ一定の値をとるものとして、中心係数を周囲の係数から予測する方法を用いればよい。例えば、第1フィルタ係数が8ビットで表わされる場合には、第1フィルタ係数の総和は256に近い値をとることが多い。そのため、中心係数以外の第1フィルタ係数を256から減算した結果を、中心係数の予測値とすればよい。
また、エントロピー符号化部104は、複数のフィルタ間で該予測処理を行ってもよい。例えば、符号化対象の復号画像(スライス)に対して4つのフィルタが利用される場合、1つ目のフィルタに関しては第1フィルタ係数の値をそのまま符号化し、2つ目以降のフィルタでは1つ前に符号化されたフィルタの第1フィルタ係数を予測値とすればよい。
さらに、エントロピー符号化部104は、該予測処理において、時間方向の予測を行ってもよい。例えば、参照フィルタ情報をそのままフィルタ処理に適用する場合と同様に、エントロピー符号化部104は、参照フィルタのフィルタ係数を予測値とすればよい。
この予測値を用いる場合、参照フィルタ情報をフィルタ処理に適用する場合とは、フィルタ係数の差分値を符号化するか否かという点で異なる。また、該予測値を用いる場合には、参照フィルタ情報とは、符号化対象の復号画像(スライス)に適用するフィルタの数や画素領域の分類結果であるクラスに対するフィルタの割り当てが異なる場合も考えられる。この場合には、エントロピー符号化部104は、例えば、適用されるクラスで共通するものが最も多いものから予測するなどしてよいが、動画像符号化装置100側と動画像符号化装置側で同一の予測処理を用いる必要がある。
上記のように第1フィルタ係数の予測方法についても複数の方法が考えられるが、動画像符号化装置100側と動画像復号装置側とで同一の予測処理が用いられる必要がある。このとき、動画像符号化装置100と動画像復号装置側とで予め設定した共通な予測処理を用いてもよいし、動画像符号化装置100側でどのように予測処理したかを示す情報を符号化して、動画像復号装置側へ出力してもよい。
次に、第3適用情報生成部111Eについて説明する。
第3適用情報生成部111Eは、符号化ブロック毎にフィルタ適用の有無を示した第3適用情報を生成する。
第3適用情報生成部111Eは、予測情報または第1フィルタ係数と、符号化ブロック分割情報と、に基づいて、復号画像の各符号化ブロックにフィルタを適用する。そして、フィルタ適用後の復号画像と入力画像との平均二乗誤差が、フィルタを適用しない場合に比べて低減しているか否かを、符号化ブロック毎に判定する。そして、第3適用情報生成部111Eは、フィルタを適用することによって平均二乗誤差の低減する符号化ブロックにフィルタを適用することを示す、第3適用情報を生成する。
すなわち、第3適用情報生成部111Eは、フィルタを適用することで入力画像との誤差の低減される符号化ブロックについて、フィルタ適用を示す第3適用情報を生成する。
第3適用情報生成部111Eでは、このフィルタの適用によって平均二乗誤差が低減するか否かの判定を、複数のmax_filtering_layerに対して行ない、符号化コストが最も小さくなるmax_filtering_layerを選択する。max_filtering_layerは、符号化ブロックの分割における四分木の第何階層目までをフィルタ適用情報の設定に用いるかを示すパラメータである。なお、この符号化ブロックの分割形状と、max_filtering_layerで示されるフィルタを適用するか否かを判定する単位となる領域と、をフィルタ適用判定領域と称する。
なお、第3適用情報生成部111Eは、符号化ブロックのフィルタ適用情報に加えて、複数の符号化ブロックを含む処理単位毎にフィルタ適用の有無を示す第3適用情報を生成してもよい。例えば、第3適用情報生成部111Eは、符号化対象のスライス毎にフィルタ適用の有無を示す第3適用情報を生成してもよい。この場合には、第3適用情報生成部111Eは、符号化対象のスライスに対して全くフィルタを適用しない場合のコストと、符号化ブロック毎にフィルタを適用した場合のコストと、を算出する。そして、第3適用情報生成部111Eは、これらのコストを比較することで、符号化対象のスライスにおける第3適用情報を生成してもよい。
第3適用情報生成部111Eが生成する第3適用情報によって示される、符号化ブロックのフィルタ適用判定領域について、図6を参照して説明する。図6には、符号化ブロックの分割形状及びフィルタ適用の判定の一例を示した。
図6(A)は、図2における符号化ブロック401の分割形状を示す。また、図6(B)~図6(D)までの各符号化ブロック内の「ON」及び「OFF」は、フィルタを適用するかどうかを示す。具体的には、「ON」の場合はフィルタを適用し、「OFF」の場合はフィルタを適用しないことを示す。
図6(B)に示すように、max_coding_layer=2、max_filtering_layer=2である場合は、実際に符号化で用いられた木構造の符号化ブロックと、フィルタ適用判定領域とが深さ2(第2階層目)で一致する。このため、この場合には、第3適用情報生成部111Eは、符号化ブロック毎に、フィルタを適用するか否かを設定する。
一方、図6(C)に示すように、max_filtering_layer=1である場合は、フィルタ適用判定領域は深さ1(第1階層目)である。このため、この場合には、第3適用情報生成部111Eは、符号化ブロックの最大サイズ(max_coding_block_size)を一度4分割した符号化ブロックについて、それぞれフィルタを適用するか否かを設定する。また、図6(D)に示すように、max_filtering_layer=0である場合は、符号化ブロックは分割されない。このため、この場合には、第3適用情報生成部111Eは、符号化ブロックの内の最大サイズの符号化ブロックについて、フィルタを適用するか否かを設定する。
なお、本実施の形態では、フィルタ適用判定領域の最大サイズと符号化ブロックの最大サイズとが一致するものとして説明した。しかし、これらは必ずしも一致している必要はない。また、最大符号化ブロックを複数、例えば水平方向に4つ、垂直方向に4つの最大符号化ブロックや水平方向に4つ、垂直方向に1つの最大符号化ブロックをまとめて最大のフィルタ適用判定領域としてもよい。
また、符号化対象のスライス単位でフィルタを非適用と設定した場合には、スライス内の全画素についてフィルタは適用されず、ブロック毎のフィルタ適用情報は破棄される。一方、符号化対象のスライス単位でフィルタを適用とした場合には、符号化ブロック毎のフィルタ適用情報に従ってフィルタを適用する。
ループフィルタ情報生成部111は、生成した第1参照情報、第1適用情報、及び第2適用情報を、これらの第1参照情報、第1適用情報、及び第2適用情報を含む予測情報として、ループフィルタ係数設定部112及びエントロピー符号化部104へ出力する。また、第1適用情報として、参照フィルタをフィルタ処理に用いないことを示す情報が生成された場合には、ループフィルタ情報生成部111は、予測情報に代えて第1フィルタ係数生成部111Cが生成したフィルタ係数を、ループフィルタ係数設定部112及びエントロピー符号化部104へ出力する。
また、ループフィルタ情報生成部111は、符号化ブロック毎にフィルタ適用の有無を示す第3適用情報を、ループフィルタ処理部113及びエントロピー符号化部104へ出力する。
なお、本実施の形態では、各クラスに適用するフィルタを、画素領域の画像特徴に応じて分類したクラス毎に切り替える場合を説明する。しかし、フィルタの切り替えについても同様に、第3適用情報によって明示的に切り替えてもよい。
図3に戻り、ループフィルタ係数設定部112について詳細に説明する。
ループフィルタ係数設定部112は、第1フィルタ係数または予測情報を受け取り、フィルタ処理対象の復号画像に適用するフィルタのフィルタ係数を設定する。具体的には、予測情報に含まれる第1適用情報が、フィルタ処理対象の復号画像のフィルタ処理に参照フィルタ情報を用いる事を示す情報であったとする。この場合には、ループフィルタ係数設定部112は、受け付けた予測情報に含まれる第1参照情報に対応する参照フィルタ情報のフィルタ係数を、フィルタ処理に適用するフィルタ係数として設定する。
一方、予測情報に含まれる第1適用情報が、フィルタ処理対象の復号画像のフィルタ処理に参照フィルタ情報を用いないことを示す情報であったとする。この場合には、ループフィルタ係数設定部112は、フィルタ処理対象の復号画像に基づいて算出された第1フィルタ係数を、フィルタ処理に適用するフィルタ係数として設定する。なお、第1フィルタ係数が、複数のフィルタ間の予測や中心係数の予測が行われて差分値として記述されている場合には、ループフィルタ係数設定部112は、係数の予測値を加算して第1フィルタ係数を復元する。
そして、ループフィルタ係数設定部112は、設定したフィルタ係数を、フィルタ処理対象の復号画像のフィルタ処理に適用するフィルタ係数として、ループフィルタ処理部113へ出力する。
ループフィルタ処理部113は、復号画像、符号化ブロック分割情報、及び第3適用情報を受け付ける。また、ループフィルタ処理部113は、ループフィルタ係数設定部112からフィルタ係数を受け付ける。そして、受け付けた復号画像に、受け付けたフィルタ係数により指定されるフィルタを適用し、フィルタ処理を行う。
ループフィルタ処理部113がフィルタを適用する画素領域は、上述のように符号化ブロック分割情報及び第3適用情報により示される。また、フィルタを適用する画素領域について画像特徴を算出し、得られた画像特徴に応じて分類したクラスによって適用すべきフィルタを特定することができる。これに従い、ループフィルタ処理部113は、ループフィルタ係数設定部112から受け付けたフィルタ係数により指定されるフィルタを、フィルタ処理対象の復号画像に適用し、フィルタ適用後の画像である復元画像を生成する。
そして、ループフィルタ処理部113は、生成した復元画像を、参照画像として参照画像バッファ108へ格納する。また、ループフィルタ処理部113は、該参照画像のフィルタ処理に用いたフィルタ係数を、参照フィルタ情報として、対応する参照画像に関連づけて格納する。参照画像バッファ108では、参照画像及び参照フィルタ情報を同期して管理する。
また、ループフィルタ部107は、生成した上記フィルタ情報(予測情報(第1参照情報、第1適用情報、及び第2適用情報を含む)またはフィルタ係数、及び第3適用情報)を、エントロピー符号化部104に出力する。フィルタ情報は、エントロピー符号化部104により符号化され、量子化変換係数を符号化したデータ等に多重化され、符号化データとして外部へ出力される。
以上がループフィルタ部107における処理の説明である。
次に、動画像符号化装置100におけるシンタクス構造について説明する。
図7には、動画像符号化装置100で用いるシンタクス構造を示した。なお、本実施の形態の動画像符号化装置100では、フィルタ情報をスライス単位で送信するものとする。
図7に示すようにシンタクスは、おもに3つの要素からなり、ハイレベルシンタクス1900、スライスレベルシンタクス1903、及び符号化ブロックレベルシンタクス1906の3つの要素を含む。
ハイレベルシンタクス1900では、スライス以上の上位レイヤのシンタクス情報が記述されている。スライスレベルシンタクス1903では、スライス毎に必要な情報が記述されている。符号化ブロックレベルシンタクス1906では、符号化ブロック分割情報または符号化ブロック毎に必要とされる変換係数、予測モード情報、及び動きベクトル等が記述されている。
ハイレベルシンタクス1900、スライスレベルシンタクス1903、及び符号化ブロックレベルシンタクス1906の各々は、さらに詳細なシンタクスで構成されている。
具体的には、ハイレベルシンタクス1900では、シーケンスまたはピクチャレベルのシンタクスを含む。詳細には、ハイレベルシンタクス1900では、シーケンスパラメータセットシンタクス1901とピクチャパラメータセットシンタクス1902を含む。スライスレベルシンタクス1903では、スライスヘッダーシンタクス1904、及びループフィルタデータシンタクス1905を含む。ループフィルタデータシンタクス1905は、上記フィルタ情報を含む。すなわち、ループフィルタデータシンタクス1905では、予測情報またはフィルタ係数と、第3適用情報とを含む。
符号化ブロックレベルシンタクス1906は、符号化ブロック分割情報を含む符号化ブロックレイヤーシンタクス1907及び、符号化ブロックプレディクションシンタクス1908を含む。なお、本実施の形態では第3適用情報がループフィルタデータシンタクスに含まれるものとして説明したが、符号化ブロック単位でのフィルタ適用情報であることから、第3適用情報が符号化ブロックレベルシンタクスに含まれていてもよい。
例えば、上述の符号化ブロックの分割を制御するためのパラメータmax_coding_block_sizeとmax_coding_layerとが、シーケンスで固定であるとする。この場合、エントロピー符号化部104では、シーケンスパラメータセットシンタクス1901にこれらのパラメータを付加する。一方、符号化ブロックの分割を制御するためのパラメーがスライス毎に可変である場合、エントロピー符号化部104は、スライスヘッダーシンタクス1904にこれらのパラメータを付加する。
図8には、ループフィルタデータシンタクス1905の記述例を示した。
エントロピー符号化部104は、図8に示すように、ループフィルタ部107で生成した、予測情報またはフィルタ係数と、第3適用情報と、をループフィルタデータシンタクス1905に記述する。図8中、direct_filter_flagは、当該スライスにおいて、フィルタ処理対象の復号画像のフィルタ処理に参照フィルタ情報を用いるか否かを示す1bitのフラグである。
direct_filter_flag=1である場合には、参照フィルタ情報をフィルタ処理に適用することを示す。この場合、エントロピー符号化部104は、参照フィルタ情報を特定するための第1参照情報である、direct_ref_idxを符号化する。なお、画面間予測で参照可能なスライスは、動画像符号化装置100側及び後述する動画像復号装置側で同一となるように選択及び順序付けされている。また、参照フィルタ情報は、参照画像と同期して管理される。このため、動画像符号化装置100から符号化データを受け取り復号する動画像復号装置では、direct_ref_idxにより特定される参照画像に対して適用されたフィルタを参照フィルタとして利用することができる。この時、その他のフィルタ係数に関する情報は符号化されない。
一方、direct_filter_flag=0である場合には、エントロピー符号化部104は、符号化対象のスライスに対して設定したフィルタ係数に関する情報を符号化する。
また、図8中、filter_type_idxは、ループフィルタの形状またはタップ長を示すインデクスである。具体的には、filter_type_idxは、1つのフィルタあたりのフィルタ係数の数を示す、NumOfFilterCoeffと対応している。図8中、filter_numは、符号化対象のスライスに適用するフィルタの数を示す。
図8中、filter_coeffは、第1フィルタ係数であり、上述のようにフィルタ係数の値そのものでもよいし、所定の予測処理を行った差分値であってもよい。さらに、該予測処理を特定するための情報を別途追加してもよく、追加の際、新たなシンタクスを追加してもよい。また、該追加の際、direct_flagを複数ビットのインデックスとするなどしてそこで複数の予測情報を表わすようにしてもよい。
さらに、符号化対象のスライスに適用するフィルタの数を示すfilter_numが2以上である場合には、画素領域の分類結果である各クラスに対して、どのようにフィルタを割り当てるかを示す情報が必要となる。例えば、filter_num=2である場合には、エントロピー符号化部104は、2つ目のフィルタがどのクラスから割り当てられるかを記述する。これによって、動画像復号装置側では、各クラス毎のフィルタの割り当てを取得することができる。なお、start_second_filterで上記のクラス番号を示せばよい。
またfitler_numが3以上である場合には、エントロピー符号化部104は、例えば、各クラスについて、フィルタの割り当て開始クラスであるか否かを示す情報を符号化する。これによって、動画像符号化装置側では、フィルタの割り当てを取得することができる。
なお、図4(B)に示すように、スライスの各クラスにフィルタが割り当てられている場合には、クラス0、5、9、12がそれぞれのフィルタが割り当てられる先頭のクラスとなる。このため、この場合には、エントロピー符号化部104は、filter_patternとして「1000010001001000」という情報を符号化すればよい。また、クラス0が先頭となることは確定しているため、「0000010001001000」や「000010001001000」としてもよい。
図8中、block_control_flagは、第3適用情報に相当する。エントロピー符号化部104は、block_control_flag=1である場合には、符号化ブロック毎にフィルタを適用するか否かを切り替え、以降で切り替えに必要となる情報を符号化する。一方、block_control_flag=0となる場合には、エントロピー符号化部104は、スライス全体に対してフィルタを適用する。
図8中、loop_filter_flagは、各符号化ブロックにループフィルタを適用するかどうかを示す1ビットのフラグである。例えば、エントロピー符号化部104は、フィルタを適用する場合は「1」、フィルタを適用しない場合は「0」とする。図8中、NumOfLoopFilterFlagは、フィルタ適用判定領域の総数である。max_filtering_layer=0である場合には、エントロピー符号化部104は、符号化ブロックの最大サイズとなるブロック単位でフィルタの適用/非適用を切り替え、ブロックの分割が行われないためNumOfLoopFilterFlagを符号化しない。
なお、エントロピー符号化部104は、loop_filter_flagについて、1bitの固定長で符号化してもよい。また、エントロピー符号化部104は、CAVLC(Context Adaptive Variable Length Coding)やCABAC(Context Adaptive Binary Arithmetic Coding)といった可変長符号化により符号化してもよい。さらに、複数のフラグをまとめて多値として符号化してもよい。また、上述したように、本実施の形態では、複数のフィルタを用意してフィルタ適用判定領域毎に切り替え、フィルタの切り替え情報を明示的に符号化データに多重化してもよい。
ここで、エントロピー符号化部104は、NumOfLoopFilterFlagをloop_filter_flagの前に付加する。こうすることで、復号側でNumOfLoopFilterFlagが示すブロック数だけフィルタ適用情報が存在することがわかる。例えば、図6(B)が1つのスライスを構成している場合は、NumOfLoopFilterFlag=10である。また、loop_filter_flagは「0100101101」と表される。このため、動画像復号装置側ではループフィルタデータシンタクスに含まれる情報を用いて、loop_filter_flagを正しく復号することができる。さらに、動画像復号装置側では、符号化ブロック分割情報とmax_filtering_layerに基づいて、対応する符号化ブロック毎にフィルタを適用するかどうかを判定し、フィルタ処理を行なうことができる。
また、エントロピー符号化部104は、NumOfLoopFilterFlagを、可変長符号化により符号化してもよいし、固定長で符号化してもよい。エントロピー符号化部104で行う符号化方法としては、画像サイズまたは符号化ブロックの分割に関するパラメータに基づいて変更する方法がある。
ここで、1スライスは1画面より大きな領域をとることはない。このため、動画像復号装置側では、画像サイズ、max_coding_block_size、min_coding_block_size、及びmax_filtering_layerの少なくとも1つから、1スライスに存在し得る最小のブロック数と最大のブロック数、即ちブロック数の取り得る値の範囲を得ることができる。
よって、NumOfLoopFilterFlagを可変長で符号化する場合には、エントロピー符号化部104は、ブロック数のとり得る値の範囲に応じた確率モデルを用いて符号テーブルを変更する。NumOfLoopFilterFlagを固定長で符号化する場合には、エントロピー符号化部104は、ブロック数のとり得る値の範囲を表現できる最小のビット長によりNumOfLoopFilterFlagを符号化する。こうすることで、画像サイズまたはブロックサイズが変動した場合にも、エントロピー符号化部104は、適切な符号化方法を選択することができる。
さらに、上記の各パラメータは、動画像復号装置側でも利用できる。このため、動画像符号化装置100側と動画像復号装置側とで同一のビット長を選択することで、動画像復号装置側では、正しく復号を行なうことができる。
以上、フィルタが適用される領域と適用されない領域について説明したが、すべての領域においてフィルタが適用されるものとしてもよい。この場合、入力画像と復号画像との誤差の低減効果は低下する。しかし、エントロピー符号化部104が、すべての領域でフィルタが適用されることを示す情報を符号化することで、loop_filter_flagを符号化する必要がないため、オーバーヘッドを削減することができる。
なお、図8では、スライス単位で作成された参照フィルタ情報に含まれるすべてのフィルタを、フィルタ処理に適用する場合のシンタクス構成について説明した。しかし、一部のクラスにフィルタを適用してもよい。
具体的に、図5(A)のように特定のフィルタを適用する場合は、例えばシンタクス構成を図9とすることで、符号化を実現することができる。
図9には、ループフィルタデータシンタクス1905の他の記述例を示した。図9では、use_filter_flagを含む点が、図8と異なる。use_filter_flagは、各フィルタを、参照フィルタ情報をフィルタ処理に適用するか否かを示す1bitのフラグである。エントロピー符号化部104では、1スライスに対応する参照フィルタ情報に含まれるフィルタの数であるfilter_numの数だけ、use_filter_flagを符号化する。
また、図5(B)のように、特定のクラスにフィルタを適用する場合は、例えば、シンタクス構成を図10とすることで、符号化を実現することができる。
図10には、ループフィルタデータシンタクス1905の他の記述例を示した。図10では、use_filter_flagを含む点は図9と同様であるが、その数が異なる。エントロピー符号化部104では、画像を分類するクラス数であるNumOfClassの数だけ、use_filter_flagを符号化する。なお、それぞれのフラグは、該当するクラスに対してフィルタを適用するか否かを示している。
図9や図10は、参照フィルタ情報を用いてフィルタ処理する場合に、特定のフィルタや画素領域の分類クラスに対してフィルタを適用しない例を示している。即ち、処理対象のスライスに対してフィルタ係数を設定する場合には、各クラスに対して必ずフィルタが割り当てられることを想定している。しかし、処理対象のスライスに対してフィルタを設定する場合にも、特定のクラスにフィルタを設定しないことで、誤差低減効果とオーバーヘッドの観点から良好である場合も考えられる。そのような場合には、エントロピー符号化部104では、direct_filter_flag=0であっても、図9や図10のuse_filter_flagに相当する情報を符号化することで、より符号量削減率を向上させることができる。
なお、復号画像のフィルタ処理に参照フィルタ情報を用いる場合には、ループフィルタ部107は、フィルタ処理に適用するフィルタとして設定した参照フィルタ情報のフィルタ係数の一部を変更してもよい。この場合には、ループフィルタ部107は、参照フィルタ情報のフィルタ係数の一部を変更した変更参照フィルタを生成し、フィルタ処理に用いる。そして、フィルタ情報を、この変更参照フィルタを示す第1変更情報を含んだ構成とすればよい。そして、エントロピー符号化部104は、第1変更情報を更に含むフィルタ情報を符号化すればよい。
ここで、図11には、本実施の形態でフィルタ処理に適用するフィルタのフィルタ形状の一例を示した。
図11に示すように、フィルタ形状には、垂直方向が5タップ、水平方向が5、7、9タップである3種類のダイアモンド型フィルタがある。
エントロピー符号化部104では、フィルタ形状を、filter_type_idxで切り替える。なお、それぞれのフィルタ形状には、オフセット値を示す係数が1つあるものとする。
ループフィルタ部107では、参照フィルタ情報のフィルタ係数の内の一部を変更する方法として、具体的には、例えば、このオフセット値を変更する。この変更処理に伴い、エントロピー符号化部104は、シンタクス構成を図12に示す内容に変更する。これによって、フィルタ情報は、変更参照フィルタを示す第1変更情報を含んだ構成となる。
図12には、ループフィルタデータシンタクス1905を変更した場合の記述例を示した。図12に示すように、direct_filter_idx=0の場合には、フィルタ1つにつき1つの係数値が符号化され、ここではこの係数値がオフセット値となる。
動画像復号装置側では、参照フィルタ情報をバッファから読みこんだ上でオフセット値を上記符号化された値で置き換えることによって、フィルタを適用することとなる。すなわち、動画像復号装置側では、第1変更情報に基づいて、変更参照フィルタを復号画像に適用することができる。
このように、参照フィルタ情報のフィルタ係数の一部を変更することで、スライス全体の画素値が一様に変動する場合など、さらに高い符号量削減率を達成することができる。
なお、参照フィルタ情報のフィルタ係数の一部を変更する方法として、オフセット値を変更する場合を説明したが、中心係数など異なる位置の係数を変更してもよい。ただし、この場合には、動画像符号化装置100側と動画像復号装置側とで同様の処理を行う必要がある。このため、この場合には、変更する係数の位置を所定の位置とするか、動画像符号化装置100側で、変更する係数の位置を示す情報を別途符号化する必要がある。
さらに、復号画像のフィルタ処理に参照フィルタ情報を用いる場合には、ループフィルタ部107は、フィルタ処理に適用するフィルタの形状を変更してもよい。この場合には、ループフィルタ部107は、参照フィルタ情報のフィルタ形状を変更して変形参照フィルタを生成し、フィルタ処理に用いればよい。また、この場合には、フィルタ情報を、この変形参照フィルタを示す変形情報を更に含んだ構成とすればよい。そして、エントロピー符号化部104は、変形情報を更に含むフィルタ情報を符号化すればよい。
フィルタ係数の数が増加するとオーバーヘッドが増加する。しかし、参照フィルタ情報を用いてフィルタ処理する場合には、フィルタ係数の符号化にかかるオーバーヘッドがないため、タップ長の長いフィルタが適用されやすくなる。即ち、復号画像から生成した第1フィルタ係数をフィルタ処理に適用する場合と比較して、9タップのフィルタが適用されやすい。このため、復号画像のフィルタ処理に参照フィルタ情報を用いる場合には、結果として動画像復号装置側の処理量が増加してしまう場合がある。
そこで、動画像符号化装置100のループフィルタ部107では、例えば、9タップのフィルタを参照フィルタとして利用可能である場合に、5タップや7タップのフィルタにフィルタ形状を変更して適用してもよい。
具体的には、エントロピー符号化部104では、このフィルタ形状の変更に伴い、シンタクス構成を図13に示す内容に変更する。図13には、ループフィルタデータシンタクス1905を変更した場合の記述例を示した。このように、エントロピー符号化部104では、direct_filter_flag=1の場合にも、filter_type_idxを符号化する。これによって、異なる形状のフィルタへと変形することを示すことができる。すなわち、フィルタ情報を、変形情報を更に含んだ構成とすることができる。
なお、このフィルタ形状の変更を単純に実現するためには、中心係数の位置を合わせて重なる位置のフィルタ係数をそのまま利用する方法が挙げられる。ただし、この場合には一般的にフィルタ係数の総和が異なり、誤差低減効果が著しく低下することがある。このため、ループフィルタ部107では、例えば、フィルタ係数の総和が同一となるように中心係数の値を変更してもよい。さらに、オフセットの値を変更してもよいし、中心付近の複数の係数の値を変更してもよいが、動画像符号化装置100側と動画像復号装置側で同様の変更処理となる必要がある。このとき、ループフィルタ部107では、前述したようにオフセット値や特定の係数位置の係数を再設定して符号化する枠組みを利用してフィルタ係数の総和を一定に保ってもよいし、所定の方法として変更処理を定めてもよい。
なお、本実施の形態では、スライスヘッダーシンタクス1904と、ループフィルタデータシンタクス1905と、を異なるものとして説明した。しかし、ループフィルタデータシンタクス1905の一部または全部が、スライスヘッダーシンタクス1904に含まれた構成であってもよい。
さらに、上述したようにフィルタの適用はスライス単位での切り替えもでき、スライス単位のフィルタ適用情報は、スライスヘッダーシンタクス1904に格納される。このとき、ループフィルタ部107が、処理対象のスライスに対してフィルタを適用すると判定した場合は、エントロピー符号化部104は、ループフィルタデータシンタクス1905をスライスレベルシンタクス1903に格納する。
また、動画像符号化装置100では、スライスとは独立した単位でループフィルタ部107を制御してもよい。これをループフィルタスライスと称する。1つのスライスに複数のループフィルタスライスが含まれる場合、エントロピー符号化部104は、ループフィルタスライスの数だけループフィルタデータシンタクス1905を生成する。さらに、ループフィルタスライスが複数のスライスにまたがって存在する等、スライス単位では処理しきれないような場合には、ループフィルタデータシンタクス1905は、ピクチャパラメータセットシンタクス1902等のハイレベルシンタクス1900に含まれた構成であってもよいし、先頭に位置するスライスのスライスレベルシンタクスに含まれていてもよい。さらに、画像を構成するコンポーネントが複数存在する場合、エントロピー符号化部104は、コンポーネント毎にシンタクスを生成してもよく、また2つ以上のコンポーネントに対して共通のシンタクスを生成してもよい。
次に、以上のように構成された本実施の形態の動画像符号化装置100による動画像符号化処理について説明する。図14は、実施の形態1の符号化処理の手順を示すフローチャートである。
動画像符号化部110が入力画像を受け取ると、予測画像生成部101が、予測処理を行い、予測画像を生成する(ステップ320)。
そして、減算部102が、予測画像生成部101で生成された予測画像と入力画像との差分を求める減算処理を行う(ステップS300)。このステップS300の処理によって、減算部102が、誤差画像を生成する(ステップS302)。
次いで、変換・量子化部103が、誤差画像を変換して変換係数を生成し、変換係数を量子化して量子化係数を生成する(ステップS304、ステップS306)。
次に、エントロピー符号化部104が、量子化係数と、ループフィルタ部107から受け付けたフィルタ情報と、符号化制御部109から受け付けた符号化パラメータを符号化し、符号化データを生成する(ステップS308)。
一方、逆量子化・逆変換部105は、量子化係数を逆量子化した後に逆変換し、誤差画像を生成する(ステップS310、ステップS312)。
加算部106は、逆量子化・逆変換部105から誤差画像を受け取り、予測画像生成部101から予測画像を受け取り、誤差画像と予測画像を加算して復号画像を生成する(ステップS314、ステップS316)。
次いで、ループフィルタ部107が、加算部106で生成された復号画像にフィルタ処理を行い、復元画像を生成する(ステップS318)(詳細後述)。
これによって、ループフィルタ部107は、復号画像をより入力画像に近い画像に復元する。なお、ループフィルタ部107は、スライス単位でフィルタ処理を実行する。
ステップS300~ステップS320の一連の処理は、予測処理と変換処理とを行なう、いわゆるハイブリッド符号化と呼ばれる符号化処理である。なお、本実施の形態では予測、変換、量子化を行なう符号化処理を説明したが、DPCM(Differential Pulse Code Modulation)が隣接画素からの予測を行なうように、いくつかの処理を行なわなくてもよい。
次に、ステップS318におけるフィルタ処理について説明する。図15Aには、フィルタ処理の手順を示すフローチャートを示した。
まず、ループフィルタ部107の第1フィルタ係数生成部111Cが、復号画像と入力画像とに基づいて、復号画像の第1フィルタ係数を生成する(ステップS400)。
次に、第1フィルタ係数生成部111Cは、フィルタ処理対象のスライスに含まれる各画素領域を予め定めた分類方法に従って分類した分類結果であるクラスに応じて、クラス毎にフィルタの割り当てを決定する(ステップS401)(図4(B)参照)。
次いで、第1参照情報生成部111Aが、参照画像バッファ108に格納されている参照フィルタ情報の内、予測画像生成部101が画面間予測時に参照可能な参照画像に対して適用された参照フィルタ情報を、参照候補として設定する(ステップS402)。次に第1参照情報生成部111Aは、参照候補の中から1の参照フィルタ情報を選択する(ステップS404)。そして、第1参照情報生成部111Aは、選択した1の参照フィルタ情報を示す第1参照情報を生成する(ステップS406)。
次に、第2適用情報生成部111Dが、フィルタ処理対象のスライスに含まれる各画素領域を予め定めた分類方法に従って分類した分類結果であるクラスに応じて、クラス毎にフィルタ適用の有無を示した第2適用情報を生成する(ステップS408)。
次に、ループフィルタ情報生成部111が、生成された第1参照情報、第1適用情報、及び第2適用情報を含む、予測情報を設定する(ステップS409)。
次に、第3適用情報生成部111Eが、上記ステップS400で生成された第1フィルタ係数により指定されるフィルタを適用した場合と、ステップS404で選択した1の参照フィルタ情報により指定されるフィルタを適用した場合と、の双方について、第3適用情報を生成する(ステップS410)。
次に、第1適用情報生成部111Bが、参照フィルタの適用の有無を判定し、第1適用情報を生成する(ステップS412)。この参照フィルタの適用の有無の判定は、上述したように、第1参照情報によって示される参照フィルタ情報により指定されるフィルタを適用した場合と、第1フィルタ係数により指定されるフィルタを適用した場合と、の符号化コストを比較した比較結果に基づいて行う。
次に、ループフィルタ情報生成部111が、フィルタ情報を生成する(ステップS414)。詳細には、ループフィルタ情報生成部111は、上記ステップS412で生成された第1適用情報が参照フィルタの適用有りを示す場合には、予測情報と第3適用情報とを含むフィルタ情報を生成する。一方、上記ステップS412で生成された第1適用情報が、参照フィルタの適用無を示す場合には、フィルタ係数と第3適用情報とを含むフィルタ情報を生成する。
次いで、ループフィルタ係数設定部112が、処理対象の復号画像(スライス)に参照フィルタを適用するか否かを判断する(ステップS415)。ループフィルタ係数設定部112は、ループフィルタ情報生成部111から受け付けた第1適用情報が、参照フィルタの適用有りを示す情報である場合には、肯定判断する(ステップS415:Yes)。
ステップS415で肯定判断すると、ループフィルタ係数設定部112は、復号画像に適用するためのフィルタのフィルタ係数として、第1参照情報によって示される参照フィルタ情報のフィルタ係数を設定する(ステップS416)。
一方、ループフィルタ係数設定部112は、ループフィルタ情報生成部111から受け付けた第1適用情報が参照フィルタの適用無しを示す情報である場合には、否定判断する(ステップS415:No)。ステップS415で否定判断すると、ループフィルタ係数設定部112は、復号画像に適用するためのフィルタのフィルタ係数として、ステップS400で設定した第1フィルタ係数を設定する(ステップS418)。
次に、ループフィルタ処理部113が、上記ステップS416またはステップS418の処理によって設定されたフィルタ係数により指定されるフィルタを用いて、復号画像にフィルタ処理を施し、復元画像を生成する(ステップS420)。
次いで、ループフィルタ処理部113は、生成した復元画像を、参照画像として参照画像バッファ108へ格納する。また、ループフィルタ処理部113は、該参照画像のフィルタ処理に用いたフィルタ係数を参照フィルタ情報として、対応する参照画像に関連づけて格納する(ステップS422)。
次に、ループフィルタ部107は、上記ステップS414で生成したフィルタ情報を、エントロピー符号化部104に出力する(ステップS424)。フィルタ情報は、エントロピー符号化部104により符号化され、量子化変換係数を符号化したデータ等に多重化され、符号化データとして外部へ出力される。
以上説明したように、本実施の形態の動画像符号化装置100では、参照画像に適用したフィルタである参照フィルタ情報を用いて、フィルタ処理対象の復号画像のフィルタ処理を行う場合には、参照フィルタ情報の内、予測画像生成部101が画面間予測時に参照可能な参照画像に対して適用された参照フィルタ情報を、参照候補として設定する。そして、動画像符号化装置100では、参照候補の中から1の参照フィルタ情報を選択し、選択した1の参照フィルタ情報を示す第1参照情報を生成する。そして、この第1参照情報と参照フィルタの適用の有無を示す第1適用情報と、を含む予測情報を、フィルタ情報に含み、このフィルタ情報を符号化して出力する。
このように、本実施の形態の動画像符号化装置100では、参照候補の中から選択した1の参照フィルタ情報を用いてフィルタ処理を行う。このとき、参照候補は画面間予測で参照可能な参照画像と同期しており、予測処理で想定した範囲を超えた時間方向の参照は存在しない。このため、エラー耐性やメモリアクセスの増加を抑制することができる。
なお、図15Aに示した処理の一部について、その順序やすべての処理の実行が図の通りである必要はなく、要旨を逸脱しない範囲で、要素の一部の入れ替え、削除、追加を行ってもよい。例えば、図15Bに示すように、第2適用情報の生成を、第3適用情報生成の後に行ってもよい。すなわち、符号化ブロック単位でのフィルタ適用判定を行った後に、特定のクラスに対するフィルタ適用判定を行うこともできる。さらに、第3適用情報の生成についても同様に第1適用情報生成の後に行ってもよく、この場合には第3適用情報を生成する回数が少なくてすむため、符号化における処理量を削減することができる。
(実施の形態2)
実施の形態2は、動画像符号化装置から送信されてきた符号化データを復号する動画像復号装置である。
実施の形態2は、動画像符号化装置から送信されてきた符号化データを復号する動画像復号装置である。
図16は、実施の形態2の動画像復号装置の機能的構成を示すブロック図である。本実施の形態の動画像復号装置200は、図16に示すように、動画像復号部210、及び復号制御部202を備える。
復号制御部202は、動画像復号部210を制御する。具体的には、復号制御部202は、符号化ブロック分割の制御または復号タイミングの制御等、復号全体の制御を行なう。
動画像復号部210は、動画像符号化装置100から受け付けた符号化データを復号する。
動画像復号部210は、エントロピー復号部204、逆量子化・逆変換部205、加算部206、ループフィルタ処理部213、ループフィルタ係数設定部212、参照画像バッファ208、及び予測画像生成部201を備える。
エントロピー復号部204は、動画像符号化装置100から符号化データを受け付ける。そして、エントロピー復号部204は、図7に示されるシンタクス構造に従って、ハイレベルシンタクス1900、スライスレベルシンタクス1903、符号化ブロックレベルシンタクス1906のそれぞれについて、順次、符号化データの各シンタクスの符号列を復号する。これによって、エントロピー復号部204は、符号化データから、量子化係数、フィルタ情報、符号化ブロック分割情報等を復号する。量子化係数、フィルタ情報、及び符号化ブロック分割情報は、実施の形態1と同じであるため詳細な説明を省略する。
なお、エントロピー復号部204については、詳細を後述する。
逆量子化・逆変換部205は、エントロピー復号部204によって復号された変換係数を受け取る。そして、逆量子化・逆変換部205は、復号制御部202によって設定されている量子化パラメータに従って、該変換係数を逆量子化した後に、逆変換(例えば、離散コサイン変換)を行ない、誤差画像を生成する。加算部206は、逆量子化・逆変換部205から誤差画像を受け取り、予測画像生成部201から予測画像を受け取る。そして、加算部206は、受け取った誤差画像と予測画像とを加算して、復号画像を生成する。
参照画像バッファ208は、参照フィルタ情報を、各参照画像1~参照画像2の各々に対応する参照フィルタ情報1~参照フィルタ情報2等として格納する。なお、これらの参照フィルタ情報1~参照フィルタ情報2は、エントロピー復号部204から受け付けた第1フィルタ係数または予測情報を元に、参照画像に対して適用されたフィルタを参照フィルタ情報として格納したものであり、動画像符号化装置と同様に対応付けが行われている。
予測画像生成部201は、予測処理を行い、予測画像を生成する。予測画像の生成には、参照画像バッファ208に格納されている複数の参照画像の内、予測画像生成時に用いる参照画像として予め設定された1または複数の参照画像を用いる。
ループフィルタ係数設定部212は、エントロピー復号部204から、フィルタ情報に含まれる、第1フィルタ係数または予測情報を受け付ける。そして、ループフィルタ係数設定部212は、加算部206が生成した復号画像に適用するフィルタ係数を設定する。詳細には、予測情報に含まれる第1適用情報が、参照フィルタ情報を復号画像のフィルタ処理に適用することを示す情報である場合には、ループフィルタ係数設定部212は、第1参照情報に対応する参照フィルタ情報のフィルタ係数を設定する。一方、予測情報に含まれる第1適用情報が、参照フィルタをフィルタ処理に用いないことを示す情報である場合には、ループフィルタ係数設定部212は、受け付けた第1フィルタ係数を設定する。
なお、エントロピー復号部204から受け付けた第1フィルタ係数が、複数のフィルタ間の予測や中心係数の予測が行われて差分値として記述されている場合には、ループフィルタ係数設定部212は、係数の予測値を加算して第1フィルタ係数を復元する。
ループフィルタ係数設定部212は、設定したフィルタ係数を、ループフィルタ処理部213へ出力する。
なお、シンタクス構造が図12に示す構造である場合、すなわち、フィルタ情報が、参照フィルタ情報のフィルタ係数の一部を変更した変更参照フィルタを示す第1変更情報を含む場合には、ループフィルタ係数設定部212は、参照フィルタ情報のフィルタ係数の一部を変更する。そして、ループフィルタ係数設定部212は、変更後のフィルタ係数をループフィルタ処理部213へ出力する。
具体的には、ループフィルタ処理部213は、参照フィルタをバッファから読みこんだ上で、図12に示すシンタクス構造に示される、置き換えられたオフセット値を用いて、参照フィルタ情報のフィルタ係数の一部を変更する。そして、変更したフィルタ係数をループフィルタ処理部213へ出力する。これによって、動画像復号装置200では、第1変更情報に基づいて、変更参照フィルタを復号画像に適用することができる。
また、シンタクス構造が図13に示す構造である場合、すなわち、フィルタ情報が、参照フィルタ情報のフィルタ形状を変更した変形参照フィルタを示す形状情報を含む場合には、ループフィルタ係数設定部212は、参照フィルタ情報のフィルタ形状を変更した後に、ループフィルタ処理部213へ出力する。
具体的には、ループフィルタ係数設定部212は、図13に示す、filter_type_idxに示される値(形状情報)に基づいて、参照フィルタ情報のフィルタ係数を異なる形状のフィルタへと変形し、変形した変形参照フィルタ情報のフィルタ係数を、ループフィルタ処理部213へ出力する。
ループフィルタ処理部213は、復号画像、符号化ブロック分割情報、第3適用情報、及びフィルタ係数を受け取り、復号画像にフィルタを適用する。このとき、ループフィルタ処理部213は、符号化ブロック分割情報と第3適用情報との対応付けを行なうことによって、フィルタ適用判定領域を判定することが可能となる。なお、フィルタ適用判定領域は、実施の形態1と同じである。
具体的には、ループフィルタ処理部213は、図8のシンタクス構造に示されるmax_filtering_layerと符号化ブロックの分割形状とから、フィルタ適用判定領域を求める。そして、ループフィルタ処理部213は、各フィルタ適用判定領域に対して、loop_filter_flagを対応付ける。これによって、動画像復号装置200側では、動画像符号化装置100側で設定したブロックに対してフィルタを適用することができる。なお、フィルタを適用する領域については、フィルタ適用後の画素値を復元画像の画素値とする。一方、フィルタを適用しない領域については、復号画像における同一位置の画素値を復元画像の画素値とする。このとき、フィルタ適用判定領域において画像特徴の算出と、得られた特徴に応じた分類と、によって適用すべきフィルタを特定することができる。
この場合、図9や図10のシンタクス構成に従い、参照フィルタに含まれる一部のフィルタを適用する場合には、適用しないと判定されたクラスに属する画素領域には、第3適用情報の内容によらずフィルタの適用はせず、復号画像をそのまま復元画像の画素値として出力する。
ループフィルタ処理部213で生成された復元画像は、出力画像として出力されると共に、参照画像バッファ208に参照画像として格納される。さらに、第1フィルタ係数または予測情報についても、参照画像バッファ208に保存され、参照画像と同期して管理される。
なお、逆量子化・逆変換部205、加算部206、ループフィルタ処理部213、予測画像生成部201、ループフィルタ係数設定部212、及び参照画像バッファ208の機能については、実施の形態1で説明した、逆量子化・逆変換部105、加算部106、ループフィルタ処理部113、予測画像生成部101、ループフィルタ係数設定部112、及び参照画像バッファ108と同様である。このため、これら各部の詳細な説明を省略する。
次に、以上のように構成された本実施の形態の動画像復号装置200による動画像復号処理について説明する。図17は、本実施の形態の復号処理の手順を示すフローチャートである。
まず、エントロピー復号部204が、動画像符号化装置100から符号化データを受け付け、復号を行う(ステップS500)。
詳細には、エントロピー復号部204は、受け付けた符号化データについて、図8~図10のシンタクス構成に従って復号処理を行う。
エントロピー復号部204では、図8に示されるシンタクス構成にしたがって、参照フィルタ情報をフィルタ処理に適用するか否かを示す(ダイレクトフィルタ係数予測を行うか否かを示す)direct_filter_flagを復号する。direct_filter_flag=1であれば、参照フィルタを用いたフィルタ処理(ダイレクトフィルタ係数予測)に必要な情報として、参照候補の内何れを参照フィルタとするかを示すdirect_ref_idxを復号する。
なお、図9に示されるシンタクス構成である場合には、エントロピー復号部204は、図9中のdirect_ref_idxにより指定された参照フィルタに含まれるフィルタの数filter_numを解釈する。そして、エントロピー復号部204は、use_filter_flagを復号することで、各フィルタを適用するか否かを判定する。
また、図10に示されるシンタクス構成である場合には、エントロピー復号部204は、画素を分類するクラス数であるNumOfClassの数だけuse_filter_flagを復号す。これによって、エントロピー復号部204は、各クラスに分類された画素領域に対してフィルタを適用するか否かを判定する。
エントロピー復号部204は、さらに、変換係数及び符号化ブロック分割情報に加え、予測モード情報、動き情報、量子化パラメータ等についても、図7に示すシンタクス構造に従って復号する。復号制御部202は、復号によって得られた符号化ブロック分割情報を、復号処理において符号化ブロック分割制御を行なう際に利用する。
図17に戻り、次に、逆量子化・逆変換部205が誤差画像を生成する(ステップS504)。次に、加算部206が、誤差画像と予測画像と加算し、復号画像を生成する(S508)。
なお、ステップS500~ステップS508の、符号化ブロックレベルシンタクスの復号に関する一連の処理は、予測処理と変換処理とを行なういわゆるハイブリッド符号化と呼ばれる復号処理であるため、ここでの詳細な説明は省略する。
次いで、ループフィルタ係数設定部212が、フィルタ処理対象の復号画像に適用するためのフィルタ係数を設定する(ステップS510)。
次に、ループフィルタ処理部213が、復号画像に、ループフィルタ係数設定部212で設定されたフィルタ係数によって指定されるフィルタを適用し、復元画像を生成する(ステップS512、ステップS514)。
ループフィルタ処理部213は、生成した復元画像を出力画像として出力するとともに、生成した復元画像を参照画像として参照画像バッファ208に格納する(ステップS516)。
なお、フィルタ係数または予測情報についても、参照フィルタ情報として、この参照画像バッファ208に格納され、対応する参照画像と同期して管理される。
以上説明したように、本実施の形態の動画像復号装置200によれば、動画像符号化装置100から受け付けた符号化データに含まれる第1適用情報が、参照フィルタ情報を復号画像のフィルタ処理に適用することを示す場合には、第1参照情報によって示される参照フィルタ情報を用いてフィルタ処理を行う。このとき、参照候補は画面間予測で参照可能な参照画像と同期しており、予測処理で想定した範囲を超えた時間方向の参照は存在しない。
このため、エラー耐性の低下を抑制することができる。
(実施の形態3)
実施の形態1の動画像符号化装置100及び実施の形態2の動画像復号装置200では、復号画像に対してフィルタ処理を行う場合を説明した。本実施の形態3では、復号画像に対して公知のデブロッキングフィルタ処理を行った後に、フィルタ処理を行う。
実施の形態1の動画像符号化装置100及び実施の形態2の動画像復号装置200では、復号画像に対してフィルタ処理を行う場合を説明した。本実施の形態3では、復号画像に対して公知のデブロッキングフィルタ処理を行った後に、フィルタ処理を行う。
図18は、本実施の形態の動画像符号化装置100Aの機能的構成を示すブロック図である。本実施の形態の動画像符号化装置100Aは、図18に示すように、動画像符号化部110A、及び符号化制御部109Aを備える。
符号化制御部109Aは、動画像符号化部110Aを制御する。動画像符号化部110Aは、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ部107、及び参照画像バッファ108、及びデブロッキングフィルタ処理部114を備える。なお、符号化制御部109A、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ部107、及び参照画像バッファ108の構成は、実施の形態1と同様である。
デブロッキングフィルタ処理部114は、加算部106から復号画像を受け取る。そして、加算部106から受け付けた復号画像について、公知のデブロッキングフィルタ処理を行い、デブロック処理された復号画像を生成し、ループフィルタ部107へ出力する。
なお、動画像符号化装置100Aが実行する動画像符号化処理は、上記デブロッキングフィルタ処理部114における処理が異なる以外は、実施の形態1の動画像符号化装置100と同様である。このため、詳細な説明を省略する。
図19は、動画像復号装置200Aの機能的構成を示すブロック図である。動画像復号装置200Aは、動画像符号化装置100Aから符号化データを受け付けて動画像復号処理を行う。
本実施の形態の動画像復号装置200Aは、図19に示すように、動画像復号部210A、及び復号制御部202Aを備える。
復号制御部202Aは、動画像復号部210Aを制御する。動画像復号部210Aは、動画像符号化装置100Aから受け付けた符号化データを復号する。
動画像復号部210Aは、エントロピー復号部204、逆量子化・逆変換部205、加算部206、ループフィルタ処理部213、ループフィルタ係数設定部212、参照画像バッファ208、予測画像生成部201、及びデブロッキングフィルタ処理部214を備える。
復号制御部202A、エントロピー復号部204、逆量子化・逆変換部205、加算部206、ループフィルタ処理部213、ループフィルタ係数設定部212、参照画像バッファ208、及び予測画像生成部201は、実施の形態2と同様である。
デブロッキングフィルタ処理部214は、加算部206から復号画像を受け取る。そして、加算部206から受け付けた復号画像について、公知のデブロッキングフィルタ処理を行い、デブロック処理された復号画像を生成し、ループフィルタ処理部213へ出力する。
なお、動画像復号装置200Aが実行する動画像復号処理は、上記デブロッキングフィルタ処理部214における処理が異なる以外は、実施の形態2の動画像符号化装置200と同様である。このため、詳細な説明を省略する。
このように、本実施の形態の動画像符号化装置100A及び動画像復号装置200Aでは、デブロック処理された復号画像を用いてループフィルタ処理を行うことができる。従って、実施の形態1及び実施の形態2における効果に加えて更に、予測画像の劣化を抑制することができる。
(実施の形態4)
実施の形態3の動画像符号化装置100A及び動画像復号装置200Aでは、ループフィルタ部107は、加算部106または加算部206で生成した復号画像に対してフィルタ処理を行う場合を説明した。本実施の形態3では、復号画像に対してデブロッキングフィルタ処理を行った後に、フィルタ処理を行う。
実施の形態3の動画像符号化装置100A及び動画像復号装置200Aでは、ループフィルタ部107は、加算部106または加算部206で生成した復号画像に対してフィルタ処理を行う場合を説明した。本実施の形態3では、復号画像に対してデブロッキングフィルタ処理を行った後に、フィルタ処理を行う。
図20は、動画像符号化装置100Bの機能的構成を示すブロック図である。動画像符号化装置100Bは、動画像符号化部110B、及び符号化制御部109Bを備える。
符号化制御部109Bは、動画像符号化部110Bを制御する。動画像符号化部110Bは、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106B、ループフィルタ部107B、参照画像バッファ108、及びデブロッキングフィルタ処理部114を備える。なお、符号化制御部109B、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、デブロッキングフィルタ処理部114、及び参照画像バッファ108の構成は、実施形態3の動画像符号化装置100Aと同様である。
動画像符号化装置100Bでは、加算部106Bは、誤差画像と予測画像を加算して復号画像を生成し、生成した復号画像を、デブロッキングフィルタ処理部114とループフィルタ部107Bへ出力する。ループフィルタ部107Bでは、デブロッキングフィルタ処理部114によるデブロック処理前の復号画像と、デブロッキングフィルタ処理部114によるデブロック処理後の復号画像と、の双方の画素値を用いて、ループフィルタ部107Bと同様にフィルタ係数の設定と適用を行う。この処理は、デブロック処理前後の画素値を適切な重みで加重平均することに等しい。
なお、動画像符号化装置100Bが実行する動画像符号化処理は、加算部106B及びループフィルタ部107Bにおける処理が上述のように異なる以外は、実施の形態1の動画像符号化装置100と同様である。このため、詳細な説明を省略する。
図21は、動画像復号装置200Bの機能的構成を示すブロック図である。動画像復号装置200Bは、動画像符号化装置100Bから符号化データを受け付けて復号処理を行う。
本実施の形態の動画像復号装置200Bは、図21に示すように、動画像復号部210B、及び復号制御部202Bを備える。
復号制御部202Bは、動画像復号部210Bを制御する。動画像復号部210Bは、動画像符号化装置100Bから受け付けた符号化データを復号する。
動画像復号部210Bは、エントロピー復号部204、逆量子化・逆変換部205、加算部206B、ループフィルタ処理部213B、ループフィルタ係数設定部212、参照画像バッファ208、予測画像生成部201、及びデブロッキングフィルタ処理部214を備える。
復号制御部202B、エントロピー復号部204、逆量子化・逆変換部205、ループフィルタ係数設定部212、参照画像バッファ208、及び予測画像生成部201は、実施の形態3の動画像復号装置200Aと同様である。
加算部206Bは、誤差画像と予測画像を加算して復号画像を生成し、生成した復号画像を、デブロッキングフィルタ処理部214とループフィルタ処理部213Bへ出力する。ループフィルタ処理部213Bでは、デブロッキングフィルタ処理部214によるデブロック処理前の復号画像と、デブロッキングフィルタ処理部214によるデブロック処理後の復号画像と、の双方の画素値を用いて、ループフィルタ処理部213と同様にフィルタ処理を行う。
なお、動画像復号装置200Bが実行する動画像復号処理は、加算部206B及びループフィルタ処理部213Bにおける処理が、上述のように異なる以外は、実施の形態2の動画像符号化装置200と同様である。このため、詳細な説明を省略する。
ここで、符号化によって生じたブロック歪は、デブロッキングフィルタ処理によって軽減することができる。しかし、デブロッキングフィルタ処理では、強いローパスフィルタが適用されるため、エッジやテクスチャといった、入力画像に含まれる高周波成分についても低減されてしまう場合がある。そこで、本実施の形態では、デブロッキングフィルタ処理前後の復号画像を用いてループフィルタ処理を行なう。このため、本実施の形態の動画像符号化装置100B及び動画像復号装置200Bでは、上記実施の形態3における効果に加えて更に、予測画像の劣化を防ぐことができる。
なお、デブロッキング処理前後の画像の内、ループフィルタ処理に適用するものについてはシーケンスやピクチャ、スライスといった単位で切り替えてもよい。その場合には該当する単位で切り替えのための情報を別途符号化データに多重化する必要がある。
(実施の形態5)
本実施の形態の動画像復号装置では、誤差画像と予測画像との加算によって加算部206が生成した復号画像を、フィルタ処理を行わずに出力画像として出力する。また、本実施の形態の動画像復号装置では、復号画像をフィルタ処理することによって生成した復元画像については、参照画像として用いる。
本実施の形態の動画像復号装置では、誤差画像と予測画像との加算によって加算部206が生成した復号画像を、フィルタ処理を行わずに出力画像として出力する。また、本実施の形態の動画像復号装置では、復号画像をフィルタ処理することによって生成した復元画像については、参照画像として用いる。
図22は、本実施の形態の動画像復号装置200Cの機能的構成を示すブロック図である。
本実施の形態の動画像復号装置200Cは、図22に示すように、動画像復号部210C、及び復号制御部202Cを備える。
復号制御部202Cは、動画像復号部210Cを制御する。動画像復号部210Cは、動画像符号化装置から受け付けた符号化データを復号する。
動画像復号部210Cは、エントロピー復号部204、逆量子化・逆変換部205、加算部206C、ループフィルタ処理部213C、ループフィルタ係数設定部212、参照画像バッファ208、及び予測画像生成部201を備える。
復号制御部202C、エントロピー復号部204、逆量子化・逆変換部205、ループフィルタ係数設定部212、参照画像バッファ208、及び予測画像生成部201は、実施の形態2の動画像復号装置200と同様である。
加算部206Cは、誤差画像と予測画像を加算して復号画像を生成し、生成した復号画像を出力画像として外部へ出力すると共に、該復号画像をループフィルタ処理部213Cへ出力する。ループフィルタ処理部213Cでは、ループフィルタ処理部213と同様にして、復号画像にフィルタを適用し、復元画像を生成する。そして、ループフィルタ処理部213Cは、該復元画像を参照画像として、参照画像バッファ208に格納する。
なお、動画像復号装置200Cが実行する動画像復号処理は、加算部206C及びループフィルタ処理部213Cにおける処理が上述のように異なる以外は、実施の形態2の動画像復号装置200と同様である。このため、動画像復号処理の詳細な説明を省略する。
このように、本実施の形態の動画像復号装置200Cは、復号画像にフィルタを適用し、出力画像についてはフィルタを適用しない構成である。本実施の形態の動画像復号装置200Cにおいても、上記実施の形態と同様に、エラー耐性の低下を抑制することができる。
(実施の形態6)
本実施の形態では、動画像符号化装置及び動画像復号装置を、ポストフィルタとして用いる。ポストフィルタとは、出力画像にのみフィルタを適用する方式を示す。
本実施の形態では、動画像符号化装置及び動画像復号装置を、ポストフィルタとして用いる。ポストフィルタとは、出力画像にのみフィルタを適用する方式を示す。
図23は、本実施の形態の動画像符号化装置100Dの機能的構成を示すブロック図である。本実施の形態の動画像符号化装置100Dは、図23に示すように、動画像符号化部110D、及び符号化制御部109Dを備える。
符号化制御部109Dは、動画像符号化部110Dを制御する。動画像符号化部110Dは、予測画像生成部101、減算部102、変換・量子化部103、エントロピー符号化部104、逆量子化・逆変換部105、加算部106、ループフィルタ情報生成部111、及び参照画像バッファ108を備える。なお、動画像符号化部110Dは、ループフィルタ部107に代えてループフィルタ情報生成部111を備える以外は、実施の形態1の動画像符号化部110と同様である。なお、ループフィルタ情報生成部111の機能は、実施の形態1と同様である。
図24は、動画像復号装置200Dの機能的構成を示すブロック図である。動画像復号装置200Dは、動画像符号化装置100Dから符号化データを受け付けて復号処理を行う。
本実施の形態の動画像復号装置200Dは、図24に示すように、動画像復号部210D、及び復号制御部202Dを備える。
復号制御部202Dは、動画像復号部210Dを制御する。動画像復号部210Dは、動画像符号化装置100Dから受け付けた符号化データを復号する。
動画像復号部210Dは、エントロピー復号部204、逆量子化・逆変換部205、加算部206D、ループフィルタ処理部213、ループフィルタ係数設定部212、参照画像バッファ208、及び予測画像生成部201を備える。なお、動画像符号化部210Dは、加算部206に代えて加算部206Dを備え、参照画像バッファ208への入力を復元画像から復号画像に変更する以外は、実施の形態2の動画像復号部210と同様である。
加算部206Dは、誤差画像と予測画像を加算して復号画像を生成し、生成した復号画像をループフィルタ処理部213へ出力すると共に、該復号画像を参照画像として、参照画像バッファ208に格納する。
このように構成することで、本実施の形態の動画像符号化装置100D及び動画像復号装置200Dは、ポストフィルタとして用いることができる。
なお、動画像符号化装置100Dが実行する動画像符号化処理は、実施の形態1の動画像符号化装置100と同様である。このため、動画像符号化処理の詳細な説明は省略する。また、動画像復号装置200Dが実行する動画像復号処理は、実施の形態2の動画像復号装置200と同様である。このため、動画像復号処理の詳細な説明についても省略する。
以上説明したように、実施の形態1~実施の形態6の動画像符号化装置及び動画像復号装置は、エラー耐性の低下を抑制することが出来る。
なお、実施の形態1、3、4、6の動画像符号化装置100、100A、100B、100Dで実行される動画像符号化処理を実行するための動画像符号化プログラムは、ROM等に予め組み込まれて提供される。また、実施の形態2、3、4、5、6の動画像復号装置200、200A、200B、200C、200Dで実行される動画像復号処理を実行するための動画像復号プログラムは、ROM等に予め組み込まれて提供される。
実施の形態1、3、4、6の動画像符号化装置100、100A、100B、100Dで実行される動画像符号化プログラム、実施の形態2、3、4、5、6の動画像復号装置200、200A、200B、200C、200Dで実行される動画像復号プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
さらに、実施の形態1、3、4、6の動画像符号化装置100、100A、100B、100Dで実行される動画像符号化プログラム、実施の形態2、3、4、5、6の動画像復号装置200、200A、200B、200C、200Dで実行される動画像復号プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施の形態1、3、4、6の動画像符号化装置100、100A、100B、100Dで実行される動画像符号化プログラム、実施の形態2、3、4、5、6の動画像復号装置200、200A、200B、200C、200Dで実行される動画像復号プログラムを、インターネット等のネットワーク経由で提供または配布するように構成してもよい。
実施の形態1、3、4、6の動画像符号化装置100、100A、100B、100Dで実行される動画像符号化プログラムは、上述した各部(減算部、変換・量子化部、エントロピー符号化部、予測画像生成部、逆量子化・逆変換部、加算部、デブロッキングフィルタ処理部、参照画像バッファ、ループフィルタ部、ループフィルタ情報生成部、ループフィルタ係数設定部、ループフィルタ処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから動画像符号化プログラムを読み出して実行することにより該各部が主記憶装置上にロードされ、該各部が主記憶装置上に生成されるようになっている。なお、動画像符号化装置100、100A、100B、100Dの各部を回路等のハードウェアで構成してもよい。
実施の形態2、3、4、5、6の動画像復号装置200、200A、200B、200C、200Dで実行される動画像復号プログラムは、上述した各部(エントロピー復号部、逆量子化・逆変換部、加算部、ループフィルタ処理部、予測画像生成部、ループフィルタ係数設定部、参照画像バッファ、デブロッキングフィルタ処理部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記ROMから動画像復号プログラムを読み出して実行することにより該各部が主記憶装置上にロードされ、該各部が主記憶装置上に生成されるようになっている。なお、動画像復号装置200、200A、200B、200C、200Dの各部を回路等のハードウェアで構成してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
100,100A,100B,100D 動画像符号化装置
101,201 予測画像生成部
102 減算部
103 変換・量子化部
104 エントロピー符号化部
105,205 逆量子化・逆変換部
106,106B,206,206B,206C,206D 加算部
107,107B ループフィルタ部
108,208 参照画像バッファ
109,109A,109B 符号化制御部
110,110A,110B,110D 動画像符号化部
111 ループフィルタ情報生成部
111A 第1参照情報生成部
111B 第1適用情報生成部
111C 第1フィルタ係数生成部
111D 第2適用情報生成部
111E 第3適用情報生成部
112,212 ループフィルタ係数設定部
113,213,213B,213C ループフィルタ処理部
114,214 デブロッキングフィルタ処理部
200,200A,200B,200C,200D 動画像復号装置
202,202A,202C,202D 復号制御部
204 エントロピー復号部
210,210A,210C,210D 動画像復号部
101,201 予測画像生成部
102 減算部
103 変換・量子化部
104 エントロピー符号化部
105,205 逆量子化・逆変換部
106,106B,206,206B,206C,206D 加算部
107,107B ループフィルタ部
108,208 参照画像バッファ
109,109A,109B 符号化制御部
110,110A,110B,110D 動画像符号化部
111 ループフィルタ情報生成部
111A 第1参照情報生成部
111B 第1適用情報生成部
111C 第1フィルタ係数生成部
111D 第2適用情報生成部
111E 第3適用情報生成部
112,212 ループフィルタ係数設定部
113,213,213B,213C ループフィルタ処理部
114,214 デブロッキングフィルタ処理部
200,200A,200B,200C,200D 動画像復号装置
202,202A,202C,202D 復号制御部
204 エントロピー復号部
210,210A,210C,210D 動画像復号部
Claims (10)
- 入力画像と予測画像との差分を示す誤差画像を生成し、前記誤差画像を量子化して量子化係数を生成すること、
前記量子化係数を逆量子化した後に逆変換して誤差画像を生成し、該誤差画像と前記予測画像とを加算して復号画像を生成すること、
前記復号画像に対してフィルタ処理を行い、参照画像を生成すること、
前記参照画像に適用したフィルタである参照フィルタを、前記復号画像のフィルタ処理に適用するか否かを示す、第1適用情報を生成すること、
予測画像生成時に参照可能な前記参照画像に適用された前記参照フィルタの内の1の参照フィルタを示す第1参照情報を生成すること、
前記参照画像を用いて前記予測画像を生成すること、
前記量子化係数及び、前記第1適用情報及び前記第1参照情報を含むフィルタ情報、を符号化すること、
を備える動画像符号化方法。 - 前記復号画像の各画素領域を予め定めた分類方法に従って分類した分類結果に応じて、該各画素領域に対するフィルタ適用の有無を示した第2適用情報を生成すること、を更に有し、
前記フィルタ情報は、前記第2適用情報を更に含む、請求項1に記載の動画像符号化方法。 - 前記第1参照情報が示す参照フィルタのフィルタ係数の一部変更して変更参照フィルタを生成すること、を更に有し、
前記フィルタ情報は、前記変更参照フィルタを示す第1変更情報を含む、請求項1に記載の動画像符号化方法。 - 前記第1参照情報が示す参照フィルタのフィルタ形状を変更して変形参照フィルタを生成すること、を更に有し、
前記フィルタ情報は、前記変形参照フィルタを示す形状情報を含む、請求項1に記載の動画像符号化方法。 - 参照画像に適用した参照フィルタを復号画像のフィルタ処理に適用するか否かを示す第1適用情報と、予測画像生成時に参照可能な前記参照画像に適用された前記参照フィルタの内の1の参照フィルタを示す第1参照情報と、を含む符号化されたフィルタ情報と、
符号化された量子化係数と、
を含む符号化データを復号すること、
前記量子化係数を逆量子化した後に逆変換して誤差画像を生成し、該誤差画像と予測画像とを加算して復号画像を生成すること、
前記復号画像に対してフィルタ処理を行い、前記参照画像を生成すること、
前記第1適用情報が前記参照フィルタを前記復号画像のフィルタ処理に適用することを示す場合に、前記復号画像に対して前記第1参照情報が示す参照フィルタを適用してフィルタ処理を行い、前記参照画像を生成すること、
前記参照画像を用いて前記予測画像を生成すること、
を備える動画像復号方法。 - 前記フィルタ情報は、前記復号画像の各画素領域を予め定めた分類方法に従って分類した分類結果に応じて、該各画素領域に対するフィルタ適用の有無を示した第2適用情報を更に含み、
前記復号画像に対して、前記第1参照情報が示す参照フィルタを前記第2適用情報に応じて適用し、フィルタ処理を行うこと、を更に有する請求項5に記載の動画像復号方法。 - 前記フィルタ情報は、前記第1参照情報が示す参照フィルタのフィルタ係数の一部を変更した変更参照フィルタを示す第1変更情報を含み、
前記復号画像に対して前記変更参照フィルタを適用し、フィルタ処理を行うこと、を更に有する請求項5に記載の動画像復号方法。 - 前記フィルタ情報は、記第1参照情報が示す参照フィルタのフィルタ形状を変更した変形参照フィルタを示す形状情報を含み、
前記復号画像に対して前記変形参照フィルタを適用し、フィルタ処理を行うこと、を更に有する請求項5に記載の動画像復号方法。 - 入力画像と予測画像との差分を示す誤差画像を生成し、前記誤差画像を量子化して量子化係数を生成する量子化部と、
前記量子化係数を逆量子化した後に逆変換して誤差画像を生成し、該誤差画像と前記予測画像とを加算して復号画像を生成する加算部と、
前記復号画像に対してフィルタ処理を行い、参照画像を生成するフィルタ部と、
前記参照画像を用いて前記予測画像を生成する予測画像生成部と、
前記量子化係数及び、第1適用情報及び第1参照情報を含む前記フィルタ情報を符号化する符号化部と、
を備え、
前記フィルタ部は、
前記参照画像に適用したフィルタである参照フィルタを、前記復号画像のフィルタ処理に適用するか否かを示す、前記第1適用情報を生成する第1適用情報生成部と、
予測画像生成時に参照可能な前記参照画像に適用された前記参照フィルタの内の1の参照フィルタを示す前記第1参照情報を生成する第1参照情報生成部と、
を有する、
動画像符号化装置。 - 符号化された量子化係数と符号化されたフィルタ情報とを含む符号化データを復号する復号部と、
前記量子化係数を逆量子化した後に逆変換して誤差画像を生成し、該誤差画像と予測画像とを加算して復号画像を生成する加算部と、
前記復号画像に対してフィルタ処理を行い、参照画像を生成するフィルタ部と、
前記参照画像を用いて前記予測画像を生成する予測画像生成部と、
を備え、
前記フィルタ情報は、
前記参照画像に適用したフィルタである参照フィルタを、前記復号画像のフィルタ処理に適用するか否かを示す、第1適用情報と、
予測画像生成時に参照可能な前記参照画像に適用された前記参照フィルタの内の1の参照フィルタを示す第1参照情報と、
を含み、
前記フィルタ部は、
前記第1適用情報が前記参照フィルタを前記復号画像のフィルタ処理に適用することを示す場合に、前記復号画像に対して前記第1参照情報が示す参照フィルタを適用してフィルタ処理を行う、
動画像復号装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/063290 WO2012169054A1 (ja) | 2011-06-09 | 2011-06-09 | 動画像符号化方法、及び装置、動画像復号方法、及び装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/063290 WO2012169054A1 (ja) | 2011-06-09 | 2011-06-09 | 動画像符号化方法、及び装置、動画像復号方法、及び装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012169054A1 true WO2012169054A1 (ja) | 2012-12-13 |
Family
ID=47295656
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/063290 WO2012169054A1 (ja) | 2011-06-09 | 2011-06-09 | 動画像符号化方法、及び装置、動画像復号方法、及び装置 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2012169054A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010516082A (ja) * | 2007-01-09 | 2010-05-13 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 適応フィルタ表現 |
JP2010529777A (ja) * | 2007-06-08 | 2010-08-26 | トムソン ライセンシング | 多格子スパース性ベースのフィルタリングに基づくインループ・アーチファクト解除フィルタリングのための方法及び装置 |
JP2011049740A (ja) * | 2009-08-26 | 2011-03-10 | Sony Corp | 画像処理装置および方法 |
-
2011
- 2011-06-09 WO PCT/JP2011/063290 patent/WO2012169054A1/ja active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010516082A (ja) * | 2007-01-09 | 2010-05-13 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | 適応フィルタ表現 |
JP2010529777A (ja) * | 2007-06-08 | 2010-08-26 | トムソン ライセンシング | 多格子スパース性ベースのフィルタリングに基づくインループ・アーチファクト解除フィルタリングのための方法及び装置 |
JP2011049740A (ja) * | 2009-08-26 | 2011-03-10 | Sony Corp | 画像処理装置および方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11936858B1 (en) | Constrained position dependent intra prediction combination (PDPC) | |
JP6324481B2 (ja) | 再構成された画像のサンプルのセットのための補償オフセットを符号化するための方法および装置 | |
KR101680949B1 (ko) | 이미지들을 인코딩 및 디코딩하기 위한 방법, 인코딩 및 디코딩 디바이스, 및 대응하는 컴퓨터 프로그램들 | |
KR101442127B1 (ko) | 쿼드트리 구조 기반의 적응적 양자화 파라미터 부호화 및 복호화 방법 및 장치 | |
CN107623853B (zh) | 视频编码和解码方法及非暂时性计算机可读存储介质 | |
US20110150080A1 (en) | Moving-picture encoding/decoding method and apparatus | |
JPWO2017068856A1 (ja) | 予測画像生成装置、画像復号装置および画像符号化装置 | |
WO2010076856A1 (ja) | 動画像符号化方法及び動画像復号化方法 | |
KR20180008822A (ko) | 다단계 예측을 이용한 영상 부/복호화 방법 및 이러한 방법을 사용하는 부/복호화 장치 | |
WO2018117938A1 (en) | Deringing filter for video coding | |
JP2024019652A (ja) | ビデオフィルタリングのための方法および装置 | |
US12015773B2 (en) | Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and non-transitory computer-readable storage medium | |
US11849114B2 (en) | Image encoding apparatus, image decoding apparatus, control methods thereof, and non-transitory computer-readable storage medium | |
WO2018043256A1 (ja) | 画像符号化装置および画像復号装置 | |
JP6200220B2 (ja) | 画像処理装置、符号化装置、復号装置、及びプログラム | |
CN116391355A (zh) | 视频编码中边界处理的方法和设备 | |
WO2013145174A1 (ja) | 動画像符号化方法、動画像復号方法、動画像符号化装置及び動画像復号装置 | |
WO2012169054A1 (ja) | 動画像符号化方法、及び装置、動画像復号方法、及び装置 | |
WO2012049876A1 (ja) | 動画像符号化方法および復号方法 | |
KR20140073472A (ko) | 쿼드트리 구조 기반의 적응적 양자화 파라미터 부호화 및 복호화 방법 및 장치 | |
KR20200004348A (ko) | 타겟 영역 수정을 통해 비디오 신호를 처리하는 방법 및 장치 | |
JP7519767B2 (ja) | 画像符号化方法および画像復号方法 | |
JP6917718B2 (ja) | 予測装置、符号化装置、復号装置、及びプログラム | |
JPWO2011161823A1 (ja) | 動画像符号化方法および復号方法 | |
WO2020262370A1 (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: 11867164 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11867164 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |