WO2020184223A1 - 画像復号装置、画像復号方法、及びプログラム - Google Patents

画像復号装置、画像復号方法、及びプログラム Download PDF

Info

Publication number
WO2020184223A1
WO2020184223A1 PCT/JP2020/008359 JP2020008359W WO2020184223A1 WO 2020184223 A1 WO2020184223 A1 WO 2020184223A1 JP 2020008359 W JP2020008359 W JP 2020008359W WO 2020184223 A1 WO2020184223 A1 WO 2020184223A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization
quantization matrix
orthogonal conversion
coefficient group
matrix
Prior art date
Application number
PCT/JP2020/008359
Other languages
English (en)
French (fr)
Inventor
真悟 志摩
Original Assignee
キヤノン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by キヤノン株式会社 filed Critical キヤノン株式会社
Priority to CN202311157426.3A priority Critical patent/CN117097899A/zh
Priority to KR1020217029969A priority patent/KR20210125089A/ko
Priority to CN202311157434.8A priority patent/CN117156137A/zh
Priority to CN202080020388.5A priority patent/CN113557726B/zh
Priority to CN202311156237.4A priority patent/CN117156136A/zh
Priority to CN202311157422.5A priority patent/CN117041577A/zh
Priority to BR112021017977A priority patent/BR112021017977A2/pt
Priority to EP20770717.5A priority patent/EP3941055A4/en
Priority to CN202311157428.2A priority patent/CN117041578A/zh
Publication of WO2020184223A1 publication Critical patent/WO2020184223A1/ja
Priority to US17/467,946 priority patent/US20220060707A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • H04N19/619Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding the transform being operated outside the prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/649Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments

Definitions

  • the present invention relates to an image coding technique.
  • HEVC High Efficiency Video Coding
  • HEVC High Efficiency Video Coding
  • a basic block having a size larger than that of the conventional macroblock (16 ⁇ 16 pixels) has been adopted.
  • This large size basic block is called a CTU (Coding Tree Unit), and its size is a maximum of 64 x 64 pixels.
  • the CTU is further divided into sub-blocks that serve as units for prediction and conversion.
  • a quantization matrix is used to weight the coefficient after orthogonal conversion (hereinafter referred to as the orthogonal conversion coefficient) according to the frequency component.
  • the quantization matrix it is possible to improve the compression efficiency while maintaining the image quality by reducing the data of high frequency components, which are less noticeable in human vision, than the data of low frequency components.
  • VVC Very Video Coding
  • JVET Joint Video Experts Team
  • the introduction of a quantization matrix is being considered in the same way as HEVC.
  • the quantization matrix in HEVC is premised on a method of quantization using a quantization matrix having a size equal to the size of the conventional orthogonal transformation, and a new method of setting some orthogonal transformation coefficients to zero, zero out. Is not available. For this reason, there is a problem that the quantization control according to the frequency component cannot be performed for the zero-out orthogonal conversion coefficient, and the subjective image quality cannot be improved.
  • the method In order to improve the subjective image quality even when the method is used by enabling the quantization process using the quantization matrix corresponding to the method in which some orthogonal conversion coefficients are forcibly set to 0.
  • it has the following configuration. That is, the first block of P ⁇ Q pixels (P and Q are integers) and the second block of N ⁇ M pixels (N is an integer satisfying N ⁇ P and M is an integer satisfying M ⁇ Q).
  • the first quantization coefficient group having N ⁇ M quantization coefficients corresponding to the first block in an image decoding device capable of decoding an image from a bit stream in a plurality of block units including Decoding means for decoding the data to be generated and the data corresponding to the second quantization coefficient group having N ⁇ M quantization coefficients corresponding to the second block from the bit stream, and N ⁇ M
  • the first orthogonal conversion coefficient group is derived from the first quantization coefficient group by using at least the first quantization matrix having elements, and the second quantization matrix having N ⁇ M elements is used at least.
  • the first block is obtained by performing an inverse quantization means for deriving a second orthogonal conversion coefficient group from the second quantization coefficient group and performing an inverse orthogonal transformation on the first orthogonal conversion coefficient group.
  • an inverse quantization means for deriving a second orthogonal conversion coefficient group from the second quantization coefficient group and performing an inverse orthogonal transformation on the first orthogonal conversion coefficient group.
  • the first block of P ⁇ Q pixels (P and Q are integers) and the second block of N ⁇ M pixels (N is an integer satisfying N ⁇ P and M is an integer satisfying M ⁇ Q).
  • the first one is performed by performing an orthogonal conversion on the prediction error of P ⁇ Q pixels corresponding to the first block.
  • the first orthogonal conversion coefficient group is quantized by using at least the first quantization matrix having ⁇ M elements to generate the first quantization coefficient group having N ⁇ M quantization coefficients.
  • the second orthogonal conversion coefficient group is quantized by using at least the second quantization matrix having N ⁇ M elements to generate the second quantization coefficient group having N ⁇ M quantization coefficients.
  • FIG. 1 It is a block diagram which shows the structure of the image coding apparatus in Embodiment 1.
  • FIG. 2 It is a block diagram which shows the structure of the image decoding apparatus in Embodiment 2.
  • It is a flowchart which shows the image coding process in the image coding apparatus which concerns on Embodiment 1.
  • FIG. It is a figure which shows an example of the bit stream output in Embodiment 1.
  • FIG. 1 It is a figure which shows an example of the bit stream output in Embodiment 1.
  • a basic block or subunit may be referred to as a basic unit or subunit, or may simply be referred to as a block or unit.
  • a rectangle is a quadrangle in which four internal angles are right angles and two diagonal lines have the same length, as is generally defined.
  • a square is a rectangle in which all four corners are equal and all four sides are equal. That is, a square is a kind of rectangle.
  • the zero-out is a process of forcibly setting a part of the orthogonal conversion coefficients of the block to be encoded to 0.
  • a block of 64 ⁇ 64 pixels in an input image (picture) is a block to be encoded.
  • the orthogonal conversion coefficient also has a size of 64 ⁇ 64.
  • the zero-out means, for example, that a part of the 64 ⁇ 64 orthogonal conversion coefficient is encoded by assuming that it is 0 even if the result of the orthogonal conversion has a value other than 0. It is a process.
  • the low frequency components corresponding to the predetermined range on the upper left including the DC component in the two-dimensional orthogonal conversion coefficient are not forcibly set to 0, but correspond to the frequency components higher than those low frequency components.
  • the orthogonal conversion coefficient to be used is always set to 0.
  • FIG. 1 is a block diagram showing an image coding apparatus of this embodiment.
  • 101 is a terminal for inputting image data.
  • Reference numeral 102 denotes a block division unit, which divides the input image into a plurality of basic blocks and outputs an image in units of basic blocks to the subsequent stage.
  • Reference numeral 103 denotes a quantization matrix holding unit that generates and stores a quantization matrix.
  • the quantization matrix is for weighting the quantization process with respect to the orthogonal conversion coefficient according to the frequency component.
  • the quantization step for each orthogonal conversion coefficient is, for example, a scale value (quantization scale) based on a reference parameter value (quantization parameter), and each element in the quantization matrix. Weighted by multiplying the values.
  • the method of generating the quantization matrix stored by the quantization matrix holding unit 110 is not particularly limited.
  • the user may input information indicating the quantization matrix, or the image coding apparatus may calculate from the characteristics of the input image. Moreover, you may use the thing specified in advance as an initial value.
  • two types of 32 ⁇ 32 two dimensions shown in FIGS. 8B and 8C are generated by enlarging the base quantization matrix. It is assumed that the quantization matrix of is generated and stored.
  • the quantization matrix of FIG. 8B is a 32 ⁇ 32 quantization matrix in which each element of the 8 ⁇ 8 base quantization matrix of FIG.
  • the quantization matrix of FIG. 8C is a 32 ⁇ 32 quantization matrix expanded by repeating each element of the upper left 4 ⁇ 4 portion of the base quantization matrix of FIG. 8A eight times in the vertical and horizontal directions.
  • the base quantization matrix is a quantization matrix used not only for quantization in a subblock of 8 ⁇ 8 pixels but also for creating a quantization matrix having a size larger than that of the base quantization matrix. is there.
  • the size of the base quantization matrix is assumed to be 8 ⁇ 8, but is not limited to this size.
  • another base quantization matrix may be used depending on the size of the subblock. For example, when three types of subblocks of 8 ⁇ 8, 16 ⁇ 16, and 32 ⁇ 32 are used, three types of base quantization matrices corresponding to each can be used.
  • the 104 is a prediction unit, and determines subblock division for image data in basic block units. That is, it is determined whether or not to divide the basic block into subblocks, and if so, how to divide it. If not divided into subblocks, the subblock will be the same size as the basic block.
  • the subblock may be a square or a rectangle (non-square) other than a square.
  • the prediction unit 104 performs intra-frame prediction, which is intra-frame prediction, inter-frame prediction, which is inter-frame prediction, and the like, and generates prediction image data.
  • the prediction unit 104 selects a prediction method for one subblock from intra-prediction and inter-prediction, performs the selected prediction, and generates prediction image data for the sub-block.
  • the prediction method used is not limited to these, and a prediction that combines an intra prediction and an inter prediction may be used.
  • the prediction unit 104 calculates and outputs a prediction error from the input image data and the predicted image data. For example, the prediction unit 104 calculates the difference between each pixel value of the sub-block and each pixel value of the predicted image data generated by the prediction for the sub-block, and calculates it as a prediction error.
  • the prediction unit 104 also outputs information necessary for prediction, for example, information indicating the division state of the subblock, the prediction mode indicating the prediction method of the subblock, and information such as a motion vector together with the prediction error.
  • information necessary for this prediction is collectively referred to as prediction information.
  • the conversion / quantization unit 105 is a conversion / quantization unit.
  • the conversion / quantization unit 105 orthogonally converts the prediction error calculated by the prediction unit 104 in subblock units to obtain an orthogonal conversion coefficient representing each frequency component of the prediction error. Then, the conversion / quantization unit 105 further performs quantization using the quantization matrix stored in the quantization matrix holding unit 103 and the quantization parameter, and the quantization is the quantized orthogonal conversion coefficient. Get the coefficient.
  • the function of performing orthogonal conversion and the function of performing quantization may be configured separately.
  • the inverse quantization / inverse conversion unit 106 dequantizes the quantization coefficient output from the conversion / quantization unit 105 by using the quantization matrix stored in the quantization matrix holding unit 103 and the quantization parameters. To reproduce the orthogonal conversion coefficient. Then, the inverse quantization / inverse conversion unit 106 further performs inverse orthogonal conversion to reproduce the prediction error. In this way, the process of reproducing (deriving) the orthogonal conversion coefficient using the quantization matrix and the quantization parameter is referred to as inverse quantization.
  • the function of performing dequantization and the function of performing dequantization may be configured separately.
  • the information for the image decoding apparatus to derive the quantization parameter is also encoded in the bit stream by the coding unit 110.
  • 108 is a frame memory for storing the reproduced image data.
  • the frame memory 108 is appropriately referred to to generate the prediction image data, and the reproduced image data is generated and output from the input prediction error.
  • In-loop filter processing such as deblocking filter and sample adaptive offset is performed on the reproduced image, and the filtered image is output.
  • the quantization coefficient output from the conversion / quantization unit 105 and the prediction information output from the prediction unit 104 are encoded to generate and output code data.
  • Reference numeral 113 denotes a quantization matrix coding unit.
  • the base quantization matrix output from the quantization matrix holding unit 103 is encoded, and the image decoding apparatus generates and outputs the quantization matrix code data for deriving the base quantization matrix.
  • Header code data is generated using the quantization matrix code data that is the output from the quantization matrix coding unit 113. Further, a bit stream is formed and output together with the code data output from the coding unit 110.
  • Reference numeral 112 denotes a terminal, which outputs a bit stream generated by the integrated coding unit 111 to the outside.
  • moving image data is input in frame units.
  • the block division section 101 will be described as being divided into basic blocks of 64 ⁇ 64 pixels, but the present invention is not limited to this.
  • a block having 128 ⁇ 128 pixels may be used as a basic block, or a block having 32 ⁇ 32 pixels may be used as a basic block.
  • the image coding device generates and encodes a quantization matrix prior to image coding.
  • the horizontal direction in the quantization matrix 800 and each block is the x-coordinate
  • the vertical direction is the y-coordinate
  • the right direction is positive and the downward direction is positive, respectively.
  • the coordinates of the upper leftmost element in the quantization matrix 800 are set to (0,0). That is, the coordinates of the lower right element of the 8 ⁇ 8 base quantization matrix are (7,7).
  • the coordinates of the lower right element of the 32 ⁇ 32 quantization matrix are (31, 31).
  • the quantization matrix holding unit 103 generates a quantization matrix.
  • a quantization matrix is generated according to the size of the subblock, the size of the orthogonal conversion coefficient to be quantized, and the type of prediction method.
  • an 8 ⁇ 8 base quantization matrix used for generating the quantization matrix shown in FIG. 8A which will be described later, is generated.
  • this base quantization matrix is expanded to generate two types of 32 ⁇ 32 quantization matrices shown in FIGS. 8B and 8C.
  • the quantization matrix of FIG. 8B is a 32 ⁇ 32 quantization matrix in which each element of the 8 ⁇ 8 base quantization matrix of FIG. 8A is expanded four times by repeating it four times in the vertical and horizontal directions.
  • each element in the range of 0 to 3 in the x coordinate and 0 to 3 in the y coordinate in the 32 ⁇ 32 quantization matrix is the value of the upper left end element of the base quantization matrix. 1 will be assigned. Further, 15 which is the value of the lower right element of the base quantization matrix is assigned to each element in the range of the x-coordinate of 28 to 31 and the y-coordinate of 28 to 31 in the 32 ⁇ 32 quantization matrix. It becomes. In the example of FIG. 8B, all the values of each element in the base quantization matrix are assigned to any of the elements of the 32 ⁇ 32 quantization matrix.
  • the quantization matrix of FIG. 8C is a 32 ⁇ 32 quantization matrix expanded by repeating each element of the upper left 4 ⁇ 4 portion of the base quantization matrix of FIG. 8A eight times in the vertical and horizontal directions.
  • each element in the range of 0 to 7 for the x coordinate and 0 to 7 for the y coordinate in the 32 ⁇ 32 quantization matrix has the upper left 4 ⁇ 4 portion of the base quantization matrix. 1 which is the value of the element on the upper left is assigned. Further, for each element in the range of the x-coordinate of 24 to 31 and the y-coordinate of 24-31 in the 32 ⁇ 32 quantization matrix, the value of the lower right element of the upper left 4 ⁇ 4 portion of the base quantization matrix is used. A certain 7 will be assigned. In the example of FIG.
  • the generated quantization matrix is not limited to this, and when the size of the orthogonal conversion coefficient to be quantized exists other than 32 ⁇ 32, the quantum such as 16 ⁇ 16 or 8 ⁇ 8, 4 ⁇ 4 is obtained.
  • a quantization matrix corresponding to the size of the orthogonal conversion coefficient to be converted may be generated.
  • the method for determining the base quantization matrix and each element constituting the quantization matrix is not particularly limited. For example, a predetermined initial value may be used, or may be set individually. Further, it may be generated according to the characteristics of the image.
  • the quantization matrix holding unit 103 holds the base quantization matrix and the quantization matrix generated in this way.
  • FIG. 8B is an example of a quantization matrix used for quantization of the orthogonal conversion coefficient corresponding to the 32 ⁇ 32 subblock described later and FIG. 8C is the 64 ⁇ 64 subblock.
  • the 800 in the thick frame represents the quantization matrix.
  • each of the 32 ⁇ 32 1024 pixels is configured, and each square in the thick frame represents each element constituting the quantization matrix.
  • the three types of quantization matrices shown in FIGS. 8B and 8C are held in a two-dimensional shape, but each element in the quantization matrix is of course not limited to this.
  • the quantization matrix coding unit 113 reads out each element of the base quantization matrix stored in a two-dimensional shape in order from the quantization matrix holding unit 106, scans each element, calculates a difference, and calculates each difference. Arrange in a one-dimensional matrix.
  • the base quantization matrix shown in FIG. 8A uses the scanning method shown in FIG. 9 to calculate the difference from the immediately preceding element in the scanning order for each element. For example, the 8x8 base quantization matrix shown in FIG. 8A is scanned by the scanning method shown in FIG. 9, but the first element 1 located in the upper left is followed by the element 2 located immediately below it. It is scanned and the difference +1 is calculated.
  • the difference from a predetermined initial value (for example, 8) is calculated, but of course, the difference is not limited to this, and is arbitrary.
  • the difference from the value or the value of the first element itself may be used.
  • the base quantization matrix of FIG. 8A uses the scanning method of FIG. 9, and the difference matrix shown in FIG. 10 is generated.
  • the quantization matrix coding unit 113 further encodes the difference matrix to generate the quantization matrix code data.
  • coding is performed using the coding table shown in FIG. 11A, but the coding table is not limited to this, and for example, the coding table shown in FIG. 11B may be used.
  • the quantization matrix code data generated in this way is output to the integrated coding unit 111 in the subsequent stage.
  • the integrated coding unit 111 encodes the header information necessary for encoding the image data and integrates the code data of the quantization matrix.
  • the image data for one frame input from the terminal 101 is input to the block dividing unit 102.
  • the block division unit 102 divides the input image data into a plurality of basic blocks, and outputs an image in basic block units to the prediction unit 104. In this embodiment, it is assumed that an image of a basic block unit of 64 ⁇ 64 pixels is output.
  • the prediction unit 104 executes prediction processing on the image data of the basic block unit input from the block division unit 102. Specifically, the subblock division that divides the basic block into smaller subblocks is determined, and the prediction mode such as intra prediction or inter prediction is determined for each subblock.
  • FIG. 7 shows an example of the subblock division method.
  • the 700 in the thick frame represents a basic block, and for the sake of simplicity, a 64 ⁇ 64 pixel configuration is used, and each quadrangle in the thick frame represents a subblock.
  • FIG. 7B shows an example of square subblock division of a quadtree, and a basic block of 648 ⁇ 64 pixels is divided into subblocks of 32 ⁇ 32 pixels.
  • FIGS. 7C to 7F show an example of rectangular sub-block division.
  • the basic block is divided into a vertically long rectangular sub-block of 32 ⁇ 64 pixels
  • FIG. 7D it is divided into a horizontally long rectangular sub-block of 64 ⁇ 32 pixels. There is. Further, in FIGS.
  • the basic block 7E and 7F it is divided into rectangular subblocks at a ratio of 1: 2: 1. In this way, not only squares but also rectangular subblocks other than squares are used for encoding processing. Further, the basic block may be further divided into a plurality of square blocks, and the subblocks may be divided based on the divided square blocks. In other words, the size of the basic block is not limited to 64 ⁇ 64 pixels, and basic blocks of a plurality of sizes may be used.
  • the quadtree division as shown in FIGS. 7A and 7B which does not divide the basic block of 64 ⁇ 64 pixels, is used, but the subblock division method is not limited to this.
  • a ternary tree division as shown in FIGS. 7E and 7F or a binary tree division as shown in FIGS. 7C and 7D may be used.
  • a quantization matrix corresponding to the subblock used in the quantization matrix holding unit 103 is generated.
  • the new base quantization matrix is also encoded by the quantization matrix coding unit 113.
  • Intra-prediction uses coded pixels located in the spatial periphery of the block to be encoded to generate prediction pixels of the block to be encoded, and is used among intra-prediction methods such as horizontal prediction, vertical prediction, and DC prediction. It also generates information on the intra-prediction mode that indicates the intra-prediction method.
  • inter-prediction the predicted pixels of the coded target block are generated using the encoded pixels of the frame which is different in time from the coded target block, and the motion information indicating the frame to be referred to, the motion vector, and the like is also generated.
  • the prediction unit 194 may use a prediction method that combines intra-prediction and inter-prediction.
  • Predicted image data is generated from the determined prediction mode and encoded pixels, and a prediction error is generated from the input image data and the predicted image data, and is output to the conversion / quantization unit 105. Further, information such as subblock division and prediction mode is output as prediction information to the coding unit 110 and the image reproduction unit 107.
  • the conversion / quantization unit 105 performs orthogonal conversion / quantization on the input prediction error and generates a quantization coefficient. First, the orthogonal conversion process corresponding to the size of the subblock is performed to generate the orthogonal conversion coefficient, and then the orthogonal conversion coefficient is calculated by using the quantization matrix stored in the quantization matrix holding unit 103 according to the prediction mode. Quantize and generate quantization coefficients. A more specific orthogonal conversion / quantization process will be described below.
  • the 32 ⁇ 32 prediction error is subjected to an orthogonal transformation using a 32 ⁇ 32 orthogonal transformation matrix, and the 32 ⁇ 32 orthogonality is performed. Generate a conversion factor. Specifically, the 32 ⁇ 32 orthogonal transform matrix represented by the discrete cosine transform (DCT) is multiplied by the 32 ⁇ 32 prediction error to calculate the intermediate coefficient of the 32 ⁇ 32 matrix. The 32 ⁇ 32 matrix-like intermediate coefficient is further multiplied by the transposed matrix of the 32 ⁇ 32 orthogonal transformation matrix described above to generate a 32 ⁇ 32 orthogonal transformation coefficient.
  • DCT discrete cosine transform
  • the 32 ⁇ 32 orthogonal conversion coefficient thus generated is quantized using the 32 ⁇ 32 quantization matrix shown in FIG. 8B and the quantization parameters to generate a 32 ⁇ 32 quantization coefficient. Since there are four 32 ⁇ 32 subblocks in the 64 ⁇ 64 basic block, the above process is repeated four times.
  • the 64 ⁇ 64 division state (no division) shown in FIG. 7A when the 64 ⁇ 64 division state (no division) shown in FIG. 7A is selected, the odd-numbered rows (hereinafter, odd rows) in the 64 ⁇ 64 orthogonal transformation matrix with respect to the prediction error of 64 ⁇ 64 are selected.
  • a 32 ⁇ 64 orthogonal transformation matrix generated by thinning out) is used. That is, a 32 ⁇ 32 orthogonal transformation coefficient is generated by performing an orthogonal transformation using the 32 ⁇ 64 orthogonal transformation matrix generated by thinning out the odd-numbered rows.
  • an odd number of rows is thinned out from the 64 ⁇ 64 orthogonal transformation matrix to generate a 64 ⁇ 32 orthogonal transformation matrix.
  • the 64 ⁇ 32 orthogonal transformation matrix is multiplied by the 64 ⁇ 64 prediction error to generate a 64 ⁇ 32 matrix intermediate coefficient.
  • the 64 ⁇ 32 matrix-like intermediate coefficient is multiplied by the 32 ⁇ 64 transposed matrix obtained by transposing the 64 ⁇ 32 orthogonal transformation matrix described above to generate a 32 ⁇ 32 orthogonal transformation coefficient.
  • the conversion / quantization unit 105 sets the generated 32 ⁇ 32 orthogonal conversion coefficient as the coefficient of the upper left portion (x coordinate is 0 to 31 and y coordinate is 0 to 31) of the 64 ⁇ 64 orthogonal conversion coefficient. , Others are set to 0 to execute zero out.
  • the 64 ⁇ 32 orthogonal transformation matrix and the 32 ⁇ 64 transposed matrix obtained by transposing the 64 ⁇ 32 orthogonal transformation matrix are used with respect to the 64 ⁇ 64 prediction error.
  • Zero-out is executed by generating the orthogonal conversion coefficient of 32 ⁇ 32 in this way.
  • a part of the 64 ⁇ 64 orthogonal conversion coefficient generated by performing the 64 ⁇ 64 orthogonal conversion is forcibly set to 0 even if the value is not 0, with a smaller amount of calculation.
  • a 32 ⁇ 32 orthogonal conversion coefficient can be generated.
  • the orthogonal transformation is performed using the orthogonal transformation matrix of 64 ⁇ 64, and as a result, the orthogonal transformation coefficient to be zeroed out is regarded as 0 and encoded regardless of whether or not it is 0.
  • the amount of calculation in the orthogonal transformation can be reduced.
  • the amount of calculation can be reduced by using a method of calculating the orthogonal conversion coefficient of 32 ⁇ 32 from the prediction error of 64 ⁇ 64 by the orthogonal conversion coefficient, but the zero-out method is not limited to this method, and various methods can be used. It can also be used.
  • information indicating that the orthogonal conversion coefficient of the range targeted for zero-out is 0 may be encoded, or simply information indicating that zero-out has been performed (flag, etc.). May be encoded.
  • the image decoding device can regard each block as 0 as the target of zero out and decode each block.
  • the conversion / quantization unit 105 quantizes using the 32 ⁇ 32 quantization matrix shown in FIG. 8C and the quantization parameters. To generate a quantization coefficient of 32 ⁇ 32.
  • the quantization matrix of FIG. 8B is used for the 32 ⁇ 32 orthogonal conversion coefficient corresponding to the 32 ⁇ 32 subblock, and the 32 ⁇ 32 orthogonal conversion coefficient corresponding to the 64 ⁇ 64 subblock is obtained.
  • 8C assumes that the quantization matrix of FIG. 8C is used. That is, FIG. 8B is used for the 32 ⁇ 32 orthogonal conversion coefficient in which zero out is not executed, and the quantization in FIG. 8C is used for the 32 ⁇ 32 orthogonal conversion coefficient corresponding to the 64 ⁇ 64 subblock in which zero out is executed.
  • a matrix shall be used. However, the quantization matrix used is not limited to this.
  • the generated quantization coefficient is output to the coding unit 110 and the inverse quantization / inverse conversion unit 106.
  • the input quantization coefficient is inversely quantized using the quantization matrix stored in the quantization matrix holding unit 103 and the quantization parameter, and the orthogonal conversion coefficient is reproduced. .. Then, the inverse quantization / inverse conversion unit 106 further performs inverse orthogonal conversion of the reproduced orthogonal conversion coefficient to reproduce the prediction error.
  • a quantization matrix corresponding to the size of the subblock to be encoded is used as in the conversion / quantization unit 105.
  • the inverse quantization / inverse conversion unit 106 When the 32 ⁇ 32 subblock division of FIG. 7B is selected, the inverse quantization / inverse conversion unit 106 has the 32 ⁇ 32 quantization coefficient generated by the conversion / quantization unit 105, which is the quantization of FIG. 8B. Inverse quantization is performed using a matrix to reproduce a 32 ⁇ 32 orthogonal conversion coefficient. Then, the inverse quantization / inverse transformation unit 106 multiplies the above-mentioned 32 ⁇ 32 transposed matrix and the 32 ⁇ 32 orthogonal transformation to calculate the intermediate coefficient of the 32 ⁇ 32 matrix.
  • the inverse quantization / inverse transformation unit 106 multiplies the 32 ⁇ 32 matrix-like intermediate coefficient by the 32 ⁇ 32 orthogonal transformation matrix described above to reproduce the 32 ⁇ 32 prediction error.
  • the same processing is performed for each 32 ⁇ 32 subblock.
  • the 32 ⁇ 32 quantization coefficient generated by the conversion / quantization unit 105 is inversely quantized using the quantization matrix of FIG. 8C, and 32.
  • the orthogonal conversion coefficient of ⁇ 32 is reproduced.
  • the above-mentioned 32 ⁇ 64 transposed matrix is multiplied by the 32 ⁇ 32 orthogonal transformation to calculate the intermediate coefficient of the 32 ⁇ 64 matrix.
  • the 32 ⁇ 64 matrix intermediate coefficient is multiplied by the 64 ⁇ 32 orthogonal transformation matrix described above to reproduce the 64 ⁇ 64 prediction error.
  • the same quantization matrix used in the conversion / quantization unit 105 is used according to the size of the subblock, and the inverse quantization process is executed.
  • the reproduced prediction error is output to the image reproduction unit 107.
  • the image reproduction unit 107 reproduces the predicted image by appropriately referring to the data necessary for reproducing the predicted image stored in the frame memory 108 based on the prediction information input from the prediction unit 104. Then, the image data is reproduced from the reproduced predicted image and the reproduced prediction error input from the inverse quantization / inverse conversion unit 106, input to the frame memory 108, and stored.
  • the in-loop filter unit 109 reads the reproduced image from the frame memory 108 and performs in-loop filter processing such as a deblocking filter. Then, the filtered image is input to the frame memory 108 again and stored again.
  • the coding unit 110 entropy-encodes the quantization coefficient generated by the conversion / quantization unit 105 and the prediction information input from the prediction unit 104 in block units to generate code data.
  • the method of entropy coding is not particularly specified, but Golomb coding, arithmetic coding, Huffman coding and the like can be used.
  • the generated code data is output to the integrated coding unit 111.
  • the integrated coding unit 111 forms a bit stream by multiplexing the code data input from the coding unit 110 together with the code data of the header described above. Eventually, the bitstream is output from terminal 112 to the outside.
  • FIG. 6A is an example of the bit stream output in the first embodiment.
  • the sequence header contains the code data of the base quantization matrix and is composed of the coded results of each element.
  • the position where the code data of the base quantization matrix is encoded is not limited to this, and of course, a configuration in which the code data is encoded in the picture header portion or other header portions may be adopted.
  • the quantization matrix when the quantization matrix is changed in one sequence, it can be updated by newly encoding the base quantization matrix. At this time, all the quantization matrices may be rewritten, or a part of them may be changed by specifying the size of the subblock of the quantization matrix corresponding to the quantization matrix to be rewritten. ..
  • FIG. 3 is a flowchart showing a coding process in the image coding apparatus according to the first embodiment.
  • the quantization matrix holding unit 103 Prior to image coding, in step S301, the quantization matrix holding unit 103 generates and holds a two-dimensional quantization matrix.
  • the base quantization matrix shown in FIG. 8A and the quantization matrix shown in FIGS. 8B and 8C generated from the base quantization matrix are generated and held.
  • step S302 the quantization matrix coding unit 113 scans the base quantization matrix used for generating the quantization matrix in step S301, and calculates the difference between the elements before and after in the scanning order. Generate a one-dimensional difference matrix.
  • the base quantization matrix shown in FIG. 8A uses the scanning method of FIG. 9, and the difference matrix shown in FIG. 10 is generated.
  • the quantization matrix coding unit 113 further encodes the generated difference matrix to generate the quantization matrix code data.
  • step S303 the integrated coding unit 111 encodes and outputs the header information necessary for coding the image data together with the generated quantization matrix code data.
  • step S304 the block division unit 102 divides the input image in frame units into basic block units of 64 ⁇ 64 pixels.
  • step S305 the prediction unit 104 executes prediction processing on the image data in basic block units generated in step S304 using the prediction method described above, and predicts information such as subblock division information and prediction mode. And generate predicted image data.
  • the prediction unit 104 executes prediction processing on the image data in basic block units generated in step S304 using the prediction method described above, and predicts information such as subblock division information and prediction mode. And generate predicted image data.
  • two types of subblock sizes are used: the 32 ⁇ 32 pixel subblock division shown in FIG. 7B and the 64 ⁇ 64 pixel subblock shown in FIG. 7A.
  • the prediction error is calculated from the input image data and the predicted image data.
  • step S306 the conversion / quantization unit 105 orthogonally transforms the prediction error calculated in step S305 to generate an orthogonal conversion coefficient. Then, the conversion / quantization unit 105 further performs quantization using the quantization matrix generated / held in step S301 and the quantization parameter to generate a quantization coefficient. Specifically, the prediction error of the 32 ⁇ 32 pixel subblock of FIG. 7B is multiplied using a 32 ⁇ 32 orthogonal transformation matrix and its transposed matrix to generate a 32 ⁇ 32 orthogonal transformation coefficient. On the other hand, the prediction error of the 64 ⁇ 64 pixel subblock of FIG.
  • the orthogonal conversion coefficient of the 32 ⁇ 32 subblock of FIG. 7B is 8B
  • the orthogonal conversion coefficient of the 64 ⁇ 64 subblock of FIG. 7A is 32 ⁇ using the quantization matrix of FIG. 8C. It is assumed that the orthogonal conversion coefficient of 32 is quantized.
  • step S307 the inverse quantization / inverse conversion unit 106 dequantizes the quantization coefficient generated in step S306 by using the quantization matrix generated / held in step S301 and the quantization parameter. And regenerate the orthogonal conversion factor. Further, the inverse orthogonal conversion is performed with respect to the orthogonal conversion coefficient, and the prediction error is reproduced.
  • the same quantization matrix used in step S306 is used, and the inverse quantization process is performed. Specifically, the 32 ⁇ 32 quantization coefficient corresponding to the 32 ⁇ 32 pixel subblock of FIG. 7B is subjected to inverse quantization processing using the quantization matrix of FIG. 8B to obtain 32 ⁇ 32. Reproduce the orthogonal conversion factor.
  • the 32 ⁇ 32 orthogonal transformation coefficient is multiplied by using the 32 ⁇ 32 orthogonal transformation matrix and its transposed matrix, and the prediction error of 32 ⁇ 32 pixels is reproduced.
  • the 32 ⁇ 32 quantization coefficient corresponding to the 64 ⁇ 64 pixel subblock of FIG. 7A is subjected to the inverse quantization process using the quantization matrix of FIG. 8C, and the orthogonal conversion coefficient of 32 ⁇ 32 is obtained.
  • the 32 ⁇ 32 orthogonal transformation coefficient is multiplied by using the 64 ⁇ 32 orthogonal transformation matrix and its transposed matrix to reproduce the prediction error of 64 ⁇ 64 pixels.
  • step S308 the image reproduction unit 107 reproduces the predicted image based on the prediction information generated in step S305. Further, the image data is reproduced from the reproduced predicted image and the predicted error generated in step S307.
  • step S309 the coding unit 110 encodes the prediction information generated in step S305 and the quantization coefficient generated in step S306 to generate code data. It also generates a bitstream including other code data.
  • step S310 the image coding apparatus determines whether or not the coding of all the basic blocks in the frame is completed, and if it is completed, proceeds to step S311. If not, the next basic block Return to step S304.
  • step S311 the in-loop filter unit 109 performs in-loop filter processing on the image data reproduced in step S308, generates a filtered image, and ends the processing.
  • step S305 by reducing the number of orthogonal conversion coefficients and performing quantization processing using a quantization matrix corresponding to the reduced orthogonal conversion coefficients, the quantization is controlled for each frequency component while reducing the amount of calculation and subjective.
  • the image quality can be improved.
  • a quantization matrix that enlarges only the low-frequency portion of the base quantization matrix as shown in FIG. 8C is used.
  • Optimal quantization control can be realized in the low frequency part.
  • the low frequency portion referred to here is in the range of 0 to 3 in the x coordinate and 0 to 3 in the y coordinate.
  • the base quantization matrix of FIG. 8A which is commonly used for the generation of the quantization matrix of FIGS. 8B and 8C, is encoded.
  • the quantization matrix itself of FIG. 8C may be encoded.
  • finer quantization control can be realized for each frequency component.
  • the quantization matrix corresponding to the orthogonal conversion coefficient of 64 ⁇ 64 expands the upper left 4 ⁇ 4 portion of the 8 ⁇ 8 base quantization matrix by 8 times, but instead performs the 8 ⁇ 8 base quantization.
  • the entire matrix may be magnified four times. In this way, finer quantization control can be realized even for an orthogonal conversion coefficient of 64 ⁇ 64.
  • the quantization matrix for the 64 ⁇ 64 subblock using zero out is uniquely determined, but it may be configured to be selectable by introducing an identifier.
  • FIG. 6B selectively introduces a quantization matrix coding method information code to selectively encode a quantization matrix for a 64 ⁇ 64 subblock using zero out.
  • FIG. 8C which is an independent quantization matrix for the orthogonal conversion coefficient corresponding to the subblock of 64 ⁇ 64 pixels using zero out, is shown. Used.
  • FIG. 8C which is an independent quantization matrix for the orthogonal conversion coefficient corresponding to the subblock of 64 ⁇ 64 pixels using zero out
  • 8B which is a quantization matrix for a normal non-zero-out subblock, is used for a 64 ⁇ 64 pixel sub-block using zero-out.
  • the coding method information code indicates 2
  • all the elements of the quantization matrix used for the 64 ⁇ 64 pixel subblock using zero out not the 8 ⁇ 8 base quantization matrix. Is encoded, and so on. This makes it possible to selectively realize the reduction of the quantization matrix code amount and the original quantization control for the subblock using zero out.
  • the number of subblocks processed using zero out is only 64 ⁇ 64, but the subblock processed using zero out is not limited to this.
  • the 32 ⁇ 32 orthogonal conversion coefficients in the lower half and the right half may be forcibly set to 0. Absent.
  • FIG. 8B shows the 32 ⁇ 32 orthogonal conversion coefficient of the upper half and the left half.
  • the quantization process will be performed using different quantization matrices.
  • the value of the quantization matrix corresponding to the DC coefficient located at the upper left end is the value of each element of the 8 ⁇ 8 base matrix. It may be configured to be set and encoded separately from the above. 12B and 12C show an example in which the value of the element located at the upper left end corresponding to the DC component is changed as compared with FIGS. 8B and 8C.
  • the quantization matrix shown in FIGS. 12B and 12C is set by separately encoding the information indicating "2" located in the DC portion in addition to the information of the base quantization matrix of FIG. 8A. Can be done. As a result, finer quantization control can be applied to the DC component of the orthogonal conversion coefficient, which has the greatest effect on image quality.
  • FIG. 2 is a block diagram showing a configuration of an image decoding device according to a second embodiment of the present invention.
  • an image decoding device that decodes the coded data generated in the first embodiment will be described as an example.
  • 201 is a terminal to which an encoded bit stream is input.
  • Reference numeral 202 denotes a separation / decoding unit, which separates the bitstream into code data related to information related to decoding processing and coefficients, and decodes the code data existing in the header part of the bitstream.
  • the quantization matrix code is separated and output to the subsequent stage.
  • the separation / decoding unit 202 performs the reverse operation of the integrated coding unit 111 of FIG.
  • Reference numeral 209 denotes a quantization matrix decoding unit, which decodes the quantization matrix code from the bit stream, reproduces the base quantization matrix, and further executes a process of generating each quantization matrix from the base quantization matrix.
  • Reference numeral 203 denotes a decoding unit, which decodes the code data output from the separation decoding unit 202 and reproduces (derives) the quantization coefficient and the prediction information.
  • Reference numeral 204 denotes an inverse quantization / inverse conversion unit, and similarly to the inverse quantization / inverse conversion unit 106 in FIG. 1, the regenerated quantization matrix and the quantization parameters are used to inverse quantize the quantization coefficient. This is performed to obtain the orthogonal conversion coefficient, and further inverse orthogonal conversion is performed to reproduce the prediction error.
  • the information for deriving the quantization parameter is also decoded from the bit stream by the decoding unit 203. Further, the function of performing dequantization and the function of performing dequantization may be configured separately.
  • 206 is a frame memory. Stores the image data of the reproduced picture.
  • the frame memory 206 is appropriately referred to to generate the prediction image data. Then, the reproduced image data is generated and output from the predicted image data and the predicted error reproduced by the inverse quantization / inverse conversion unit 204.
  • 207 is an in-loop filter unit. Similar to 109 in FIG. 1, the reproduced image is subjected to in-loop filter processing such as a deblocking filter, and the filtered image is output.
  • in-loop filter processing such as a deblocking filter
  • 208 is a terminal and outputs the reproduced image data to the outside.
  • bit stream generated in the first embodiment is input in frame units (picture units).
  • the bit stream for one frame input from the terminal 201 is input to the separation / decoding unit 202.
  • the separation / decoding unit 202 separates the bitstream into code data related to information related to decoding processing and coefficients, and decodes the code data existing in the header part of the bitstream. More specifically, the quantization matrix code data is reproduced.
  • the quantization matrix code data is extracted from the sequence header of the bitstream shown in FIG. 6A, and is output to the quantization matrix decoding unit 209.
  • the quantization matrix code data corresponding to the base quantization matrix shown in FIG. 8A is extracted and output.
  • the code data of the basic block unit of the picture data is reproduced and output to the decoding unit 203.
  • the quantization matrix decoding unit 209 first decodes the input quantization matrix code data, and reproduces the one-dimensional difference matrix shown in FIG. In the present embodiment, as in the first embodiment, decoding is performed using the coding table shown in FIG. 11A, but the coding table is not limited to this, and other as long as the same one as in the first embodiment is used. A coded table may be used. Further, the quantization matrix decoding unit 209 reproduces the two-dimensional quantization matrix from the reproduced one-dimensional difference matrix. Here, the operation opposite to the operation of the quantization matrix coding unit 113 of the first embodiment is performed. That is, in the present embodiment, the difference matrix shown in FIG. 10 regenerates and holds the base quantization matrix shown in FIG. 8A by using the scanning method shown in FIG.
  • the quantization matrix decoding unit 209 reproduces each element in the quantization matrix by sequentially adding each difference value in the difference matrix from the above-mentioned initial value. Then, the quantization matrix decoding unit 209 sequentially associates each of the reproduced one-dimensional elements with each element of the two-dimensional quantization matrix according to the scanning method shown in FIG. 9, thereby associating the two-dimensional quantization matrix with each element. To play.
  • the quantization matrix decoding unit 209 expands the regenerated base quantization matrix in the same manner as in the first embodiment to generate two types of 32 ⁇ 32 quantization matrices shown in FIGS. 8B and 8C. ..
  • the quantization matrix of FIG. 8B is a 32 ⁇ 32 quantization matrix in which each element of the 8 ⁇ 8 base quantization matrix of FIG. 8A is expanded four times by repeating it four times in the vertical and horizontal directions.
  • the quantization matrix of FIG. 8C is a 32 ⁇ 32 quantization matrix expanded by repeating each element of the upper left 4 ⁇ 4 portion of the base quantization matrix of FIG. 8A eight times in the vertical and horizontal directions.
  • the generated quantization matrix is not limited to this, and if the size of the quantization coefficient to be dequantized in the subsequent stage exists other than 32 ⁇ 32, 16 ⁇ 16, 8 ⁇ 8, 4 ⁇ 4 A quantization matrix corresponding to the size of the quantization coefficient to be dequantized may be generated. These generated quantization matrices are retained and used for the subsequent inverse quantization process.
  • the decoding unit 203 decodes the code data from the bit stream and reproduces the quantization coefficient and the prediction information.
  • the size of the sub-block to be decoded is determined based on the decoded prediction information, the regenerated quantization coefficient is output to the inverse quantization / inverse conversion unit 204, and the reproduced prediction information is output to the image reproduction unit 205. It is output.
  • the quantization coefficient of 32 ⁇ 32 for each subblock regardless of the size of the subblock to be decoded that is, 64 ⁇ 64 in FIG. 7A or 32 ⁇ 32 in FIG. 7B. Supposes to be regenerated.
  • the input quantization coefficient is inversely quantized using the quantization matrix reproduced by the quantization matrix decoding unit 209 and the quantization parameter, and the orthogonal conversion coefficient is performed. Is generated, and the prediction error is reproduced by performing inverse orthogonal transformation. More specific inverse quantization / inverse orthogonal conversion processing is described below.
  • the 32 ⁇ 3 quantization coefficient reproduced by the decoding unit 203 is inversely quantized using the quantization matrix of FIG. 8B, and the 32 ⁇ 32 Reproduce the orthogonal conversion factor. Then, the above-mentioned 32 ⁇ 32 transposed matrix is multiplied by the 32 ⁇ 32 orthogonal transformation to calculate the intermediate coefficient of the 32 ⁇ 32 matrix. The 32 ⁇ 32 matrix intermediate coefficient is multiplied by the 32 ⁇ 32 orthogonal transformation matrix described above to reproduce the 32 ⁇ 32 prediction error. The same processing is performed for each 32 ⁇ 32 subblock.
  • the 32 ⁇ 32 quantization coefficient reproduced by the decoding unit 203 is inversely quantized using the quantization matrix of FIG. 8C, and is 32 ⁇ 32 orthogonal. Play the conversion factor. Then, the above-mentioned 32 ⁇ 64 transposed matrix is multiplied by the 32 ⁇ 32 orthogonal transformation to calculate the intermediate coefficient of the 32 ⁇ 64 matrix. The 32 ⁇ 64 matrix intermediate coefficient is multiplied by the 64 ⁇ 32 orthogonal transformation matrix described above to reproduce the 64 ⁇ 64 prediction error.
  • the reproduced prediction error is output to the image reproduction unit 205.
  • the quantization matrix used in the inverse quantization process is determined according to the size of the sub-block to be decoded determined by the prediction information reproduced by the decoding unit 203. That is, the quantization matrix of FIG. 8B is used for the inverse quantization process in each of the 32 ⁇ 32 subblocks of FIG. 7B, and the quantization matrix of FIG. 8C is used for the 64 ⁇ 64 subblock of FIG. 7A. .
  • the quantization matrix used is not limited to this, and may be the same as the quantization matrix used in the conversion / quantization unit 105 and the inverse quantization / inverse conversion unit 106 of the first embodiment.
  • the image reproduction unit 205 appropriately refers to the frame memory 206 based on the prediction information input from the decoding unit 203, acquires the data necessary for reproducing the prediction image, and reproduces the prediction image.
  • the prediction unit 104 of the first embodiment two types of prediction methods, intra prediction and inter prediction, are used. Further, as described above, a prediction method that combines intra-prediction and inter-prediction may be used. Further, as in the first embodiment, the prediction process is performed in sub-block units.
  • the image reproduction unit 205 reproduces image data from the prediction image generated by the prediction processing and the prediction error input from the inverse quantization / inverse conversion unit 204. Specifically, the image reproduction unit 205 reproduces the image data by adding the predicted image and the prediction error.
  • the reproduced image data is appropriately stored in the frame memory 206.
  • the stored image data is appropriately referred to when predicting other sub-blocks.
  • the in-loop filter unit 207 reads the reproduced image from the frame memory 206 and performs in-loop filter processing such as a deblocking filter. Then, the filtered image is input to the frame memory 206 again.
  • the reproduced image stored in the frame memory 206 is finally output from the terminal 208 to the outside.
  • the reproduced image is output to, for example, an external display device or the like.
  • FIG. 4 is a flowchart showing an image decoding process in the image decoding apparatus according to the second embodiment.
  • step S401 the separation / decoding unit 202 separates the bit stream into code data related to information related to decoding processing and coefficients, and decodes the code data of the header portion. More specifically, the quantization matrix code data is reproduced.
  • step S402 the quantization matrix decoding unit 209 first decodes the quantization matrix code data reproduced in step S401, and reproduces the one-dimensional difference matrix shown in FIG. Next, the quantization matrix decoding unit 209 reproduces the two-dimensional base quantization matrix from the reproduced one-dimensional difference matrix. Further, the quantization matrix decoding unit 209 expands the regenerated two-dimensional base quantization matrix to generate a quantization matrix.
  • the quantization matrix decoding unit 209 reproduces the difference matrix shown in FIG. 10 and the base quantization matrix shown in FIG. 8A by using the scanning method shown in FIG. Further, the quantization matrix decoding unit 209 expands the regenerated base quantization matrix to generate and hold the quantization matrix shown in FIGS. 8B and 8C.
  • step S403 the decoding unit 203 decodes the code data separated in step S401 and reproduces the quantization coefficient and the prediction information. Further, the size of the subblock to be decoded is determined based on the decoded prediction information. In the present embodiment, the quantization coefficient of 32 ⁇ 32 is reproduced for each subblock regardless of the size of the subblocks to be decoded, that is, 64 ⁇ 64 in FIG. 7A or 32 ⁇ 32 in FIG. 7B. And.
  • step S404 the inverse quantization / inverse conversion unit 204 performs inverse quantization on the quantization coefficient using the quantization matrix reproduced in step S402 to obtain the orthogonal conversion coefficient, and further performs inverse orthogonal conversion. , Reproduce the prediction error.
  • the quantization matrix used in the inverse quantization process is determined according to the size of the subblock to be decoded determined by the prediction information reproduced in step S403. That is, the quantization matrix of FIG. 8B is used for the inverse quantization process in each of the 32 ⁇ 32 subblocks of FIG. 7B, and the quantization matrix of FIG. 8C is used for the 64 ⁇ 64 subblock of FIG. 7A. ..
  • the quantization matrix used is not limited to this, and may be the same as the quantization matrix used in steps S306 and S307 of the first embodiment.
  • step S405 the image reproduction unit 205 reproduces the predicted image from the predicted information generated in step S403.
  • two types of prediction methods intra prediction and inter prediction, are used. Further, the image data is reproduced from the reproduced predicted image and the predicted error generated in step S404.
  • step S406 the image decoding apparatus determines whether or not all the basic blocks in the frame have been decoded, and if so, proceeds to step S407, otherwise the next basic block is targeted. Return to step S403.
  • step S407 the in-loop filter unit 207 performs in-loop filter processing on the image data reproduced in step S405, generates a filtered image, and ends the processing.
  • the quantization is controlled for each frequency component using the quantization matrix even for the subblock generated in the first embodiment in which only the low-frequency orthogonal conversion coefficient is quantized and encoded. It is possible to decode a bit stream with improved subjective image quality. Further, for the subblock in which only the low-frequency orthogonal conversion coefficient is quantized and encoded, a quantization matrix obtained by enlarging only the low-frequency part of the base quantization matrix as shown in FIG. 8C is used, which is optimal for the low-frequency part. It is possible to decode a bit stream that has undergone quantization control.
  • the base quantization matrix of FIG. 8A which is commonly used for the generation of the quantization matrix of FIGS. 8B and 8C, is decoded. It may be configured to decode the 8C quantization matrix itself. In that case, since a unique value can be set for each frequency component of each quantization matrix, it is possible to decode a bit stream that realizes finer quantization control for each frequency component.
  • the quantization matrix corresponding to the orthogonal conversion coefficient of 64 ⁇ 64 is an 8 ⁇ 8 base quantization matrix instead of enlarging the upper left 4 ⁇ 4 portion of the 8 ⁇ 8 base quantization matrix by 8 times. The whole may be magnified four times. In this way, finer quantization control can be realized even for an orthogonal conversion coefficient of 64 ⁇ 64.
  • the quantization matrix for the 64 ⁇ 64 subblock using zero out is uniquely determined, but it may be configured to be selectable by introducing an identifier.
  • FIG. 6B selectively introduces a quantization matrix coding method information code to selectively encode a quantization matrix for a 64 ⁇ 64 subblock using zero out.
  • FIG. 8C which is an independent quantization matrix
  • FIG. 8B which is a quantization matrix for a normal non-zero-out subblock, is used for a 64 ⁇ 64 sub-block using zero-out.
  • the number of sub-blocks processed using zero-out is only 64 ⁇ 64, but the number of sub-blocks processed using zero-out is not limited to this.
  • the lower half and the right half of the 32 ⁇ 32 orthogonal conversion coefficients are not decoded, and the upper half and the upper half It may be configured to decode only the quantization coefficient of the left half.
  • FIG. 8B shows the 32 ⁇ 32 orthogonal conversion coefficients in the upper half and the left half.
  • the quantization process will be performed using different quantization matrices.
  • the value of the quantization matrix corresponding to the DC coefficient located at the upper left end is the value of each element of the 8 ⁇ 8 base matrix. It may be configured to be decoded and set separately. 12B and 12C show an example in which the value of the element located at the upper left end corresponding to the DC component is changed as compared with FIGS. 8B and 8C.
  • the quantization matrix shown in FIGS. 12B and 12C can be set by separately decoding the information indicating "2" located in the DC portion in addition to the information of the base quantization matrix of FIG. 8A. it can. As a result, it is possible to decode a bit stream in which finer quantization control is applied to the DC component of the orthogonal conversion coefficient, which has the greatest effect on image quality.
  • FIGS. 1 and 2 Each processing unit shown in FIGS. 1 and 2 has been described in the above embodiment as being configured by hardware. However, the processing performed by each processing unit shown in these figures may be configured by a computer program.
  • FIG. 5 is a block diagram showing a configuration example of computer hardware applicable to the image coding device and the image decoding device according to each of the above embodiments.
  • the CPU 501 controls the entire computer by using the computer programs and data stored in the RAM 502 and the ROM 503, and also executes each of the above-described processes as performed by the image processing apparatus according to each of the above embodiments. That is, the CPU 501 functions as each processing unit shown in FIGS. 1 and 2.
  • the RAM 502 has an area for temporarily storing computer programs and data loaded from the external storage device 506, data acquired from the outside via the I / F (interface) 507, and the like. Further, the RAM 502 has a work area used by the CPU 501 when executing various processes. That is, the RAM 502 can be allocated as a frame memory, for example, or can provide various other areas as appropriate.
  • the ROM 503 stores the setting data of this computer, the boot program, and the like.
  • the operation unit 504 is composed of a keyboard, a mouse, and the like, and can be operated by a user of the computer to input various instructions to the CPU 501.
  • the output unit 505 outputs the processing result by the CPU 501.
  • the output unit 505 is composed of, for example, a liquid crystal display.
  • the external storage device 506 is a large-capacity information storage device represented by a hard disk drive device.
  • the external storage device 506 stores an OS (operating system) and a computer program for realizing the functions of the respective parts shown in FIGS. 1 and 2 in the CPU 501. Further, each image data as a processing target may be stored in the external storage device 506.
  • the computer programs and data stored in the external storage device 506 are appropriately loaded into the RAM 502 according to the control by the CPU 501, and are processed by the CPU 501.
  • a network such as a LAN or the Internet, or other devices such as a projection device or a display device can be connected to the I / F 507, and the computer acquires and sends various information via the I / F 507. Can be done.
  • Reference numeral 508 is a bus connecting the above-mentioned parts.
  • the CPU 501 plays a central role in controlling the operation described in the above flowchart for the operation having the above configuration.
  • Each embodiment can also be achieved by supplying a storage medium in which the code of the computer program that realizes the above-mentioned functions is recorded to the system, and the system reads and executes the code of the computer program.
  • the computer program code itself read from the storage medium realizes the function of the above-described embodiment, and the storage medium storing the computer program code constitutes the present invention. It also includes cases where the operating system (OS) running on the computer performs part or all of the actual processing based on the instructions in the code of the program, and the processing realizes the above-mentioned functions. ..
  • OS operating system
  • the computer program code read from the storage medium is written to the memory provided in the function expansion card inserted in the computer or the function expansion unit connected to the computer. Then, based on the instruction of the code of the computer program, the function expansion card, the CPU provided in the function expansion unit, or the like performs a part or all of the actual processing to realize the above-mentioned function.

Abstract

復号手段は、第1のブロックに対応するN×M個の量子化係数を有する第1の量子化係数群に対応するデータと、第2のブロックに対応するN×M個の量子化係数を有する第2の量子化係数群に対応するデータとを復号する。逆量子化手段は、N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて第1の量子化係群数から第1の直交変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて第2の量子化係数群から第2の直交変換係数群を導出する。逆直交変換手段は、第1の直交変換係数群に逆直交変換を実行しP×Q画素分の第1の予測誤差を生成し、第2の直交変換係数群に逆直交変換を実行しN×M画素分の第2の予測誤差を生成する。

Description

画像復号装置、画像復号方法、及びプログラム
 本発明は画像符号化技術に関する。
 動画像を圧縮する符号化方式として、HEVC(High Efficiency Video Coding)符号化方式(以下、HEVCと記す)が知られている。HEVCでは符号化効率の向上のため、従来のマクロブロック(16×16画素)より大きなサイズの基本ブロックが採用された。この大きなサイズの基本ブロックはCTU(Coding Tree Unit)と呼ばれ、そのサイズは最大64×64画素である。CTUはさらに予測や変換を行う単位となるサブブロックに分割される。
 また、HEVCにおいては、直交変換を施した後の係数(以下、直交変換係数と記す)を、周波数成分に応じて重み付けをするために量子化マトリクスが用いられている。量子化マトリクスが用いることで、人間の視覚において劣化が目立ちにくい高周波成分のデータを、低周波成分のデータよりも削減することで、画質を維持しながら圧縮効率を高めることが可能となっている。特開2013-38758では、このような量子化マトリクスを示す情報を符号化する技術が開示されている。
 また、近年、HEVCの後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始されている。具体的には、ISO/IECとITU-Tとによって設立されたJVET(Joint Video Experts Team)によって、VVC(Versatile Video Coding)符号化方式(以下、VVC)の標準化が進められている。この標準化において、符号化効率の向上のため、直交変換を行う際のブロックサイズが大きい場合に、高周波成分の直交変換係数を強制的に0とすることで符号量を削減する新たな手法(以下、ゼロアウトと呼称する)が検討されている。
 VVCにおいても、HEVCと同様に量子化マトリクスの導入が検討されている。しかしながら、HEVCにおける量子化マトリクスは従来の直交変換のサイズと等しい大きさの量子化マトリクスを用いて量子化する方法を前提としており、一部の直交変換係数をゼロとする新しい手法であるゼロアウトには対応できていない。このため、ゼロアウトされた直交変換係数に対しては、周波数成分に応じた量子化制御を行うことができず、主観画質を向上できないという課題があった。
特開2013-38758
 一部の直交変換係数が強制的に0とされる手法に対応した量子化マトリクスを用いた量子化処理を可能とすることによって、当該手法を用いた場合であっても主観画質を向上させるために、例えば、以下の構成を有する。すなわち、P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロック単位でビットストリームから画像を復号することが可能な画像復号装置において前記第1のブロックに対応するN×M個の量子化係数を有する第1の量子化係数群に対応するデータと、前記第2のブロックに対応するN×M個の量子化係数を有する第2の量子化係数群に対応するデータとを前記ビットストリームから復号する復号手段と、N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて前記第1の量子化係数群から第1の直交変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて前記第2の量子化係数群から第2の直交変換係数群を導出する逆量子化手段と、前記第1の直交変換係数群に対して逆直交変換を実行することによって前記第1のブロックに対応するP×Q画素分の第1の予測誤差を生成し、前記第2の直交変換係数群に対して逆直交変換を実行することによって前記第2のブロックに対応するN×M画素分の第2の予測誤差を生成する逆直交変換手段とを有し、N×M個の要素を有する前記第1の量子化マトリクスと、N×M個の要素を有する前記第2の量子化マトリクスとは異なる。
 また、例えば、以下の構成を有する。P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロック単位で画像を符号化することが可能な画像符号化装置において前記第1のブロックに対応するP×Q画素分の予測誤差に対して直交変換を実行することによって少なくとも第1の直交変換係数群を生成し、前記第2のブロックに対応するN×M画素分の予測誤差に対して直交変換を実行することによって第2の直交変換係数群を生成する直交変換手段と、N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて前記第1の直交変換係数群を量子化してN×M個の量子化係数を有する第1の量子化係数群を生成し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて前記第2の直交変換係数群を量子化してN×M個の量子化係数を有する第2の量子化係数群を生成する量子化手段と、前記第1のブロックに対応する前記N×M個の量子化係数を有する第1の量子化係数群に対応するデータと、前記第2のブロックに対応する前記N×M個の量子化係数を有する第2の量子化係数群に対応するデータとを符号化する符号化手段と
を有し、前記N×M個の要素を有する第1の量子化マトリクスと、前記N×M個の要素を有する第2の量子化マトリクスとは異なる。
実施形態1における画像符号化装置の構成を示すブロック図である。 実施形態2における画像復号装置の構成を示すブロック図である。 実施形態1に係る画像符号化装置における画像符号化処理を示すフローチャートである。 実施形態2に係る画像復号装置における画像復号処理を示すフローチャートである。 本発明の画像符号化装置や画像復号装置に適用可能なコンピュータのハードウェア構成例を示すブロック図である。 実施形態1で出力されるビットストリームの一例を示す図である。 実施形態1で出力されるビットストリームの一例を示す図である。 実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。 実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。 実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。 実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。 実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。 実施形態1および実施形態2で用いられるサブブロック分割の一例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの一例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの一例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの一例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの各要素の走査方法を示す図である。 実施形態1および実施形態2で生成される量子化マトリクスの差分値行列を示す図である。 量子化マトリクスの差分値の符号化に用いられる符号化テーブルの一例を示す図である。 量子化マトリクスの差分値の符号化に用いられる符号化テーブルの一例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの他の例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの他の例を示す図である。 実施形態1および実施形態2で用いられる量子化マトリクスの他の例を示す図である。
 本発明の実施の形態を、添付の図面に基づいて説明する。なお、以下の実施形態において示す構成は一例であり、本発明は以下の実施形態で説明する構成に限定されるものではない。なお、基本ブロックや、サブブロック、量子化マトリクス、ベース量子化マトリクスといった呼称は、各実施形態において便宜的に用いている呼称であり、その意味が変わらない範囲で、適宜、他の呼称を用いてもよい。例えば、基本ブロックやサブブロックは、基本ユニットやサブユニットと称されてもよいし、単にブロックやユニットと称されてもよい。また、以下の説明において、長方形とは、一般的な定義の通り、4つの内角が直角であり、2本の対角線が等しい長さを持つ四角形であるものとする。また、正方形とは、一般的な定義の通り、長方形の内、4つの角がすべて等しく4つの辺がすべて等しい四角形であるものとする。つまり、正方形は長方形の一種であるものとする。
 <実施形態1>
 以下、本発明の実施形態を、図面を用いて説明する。
 まず、ゼロアウト(zeroing out)について、より詳細に説明する。ゼロアウトとは、前述のように、符号化対象のブロックの直交変換係数の一部を強制的に0とする処理である。例えば、入力画像(ピクチャ)における64×64画素のブロックが符号化対象のブロックであるとする。このとき、直交変換係数についても64×64のサイズとなる。ゼロアウトとは、例えば、この64×64の直交変換係数の一部について、仮に、直交変換の結果、0ではない値を有する場合であっても、0であると見做して符号化を行う処理である。例えば、2次元の直交変換係数におけるDC成分を含む左上の所定の範囲に対応する低周波成分については強制的に0とする対象とはせずに、それら低周波成分よりも高い周波数成分に対応する直交変換係数については、常に0とする。
 次に、本実施形態の画像符号化装置について説明する。図1は本実施形態の画像符号化装置を示すブロック図である。図1において、101は画像データを入力する端子である。
 102はブロック分割部であり、入力画像を複数の基本ブロックに分割し、基本ブロック単位の画像を後段に出力する。
 103は、量子化マトリクスを生成し、格納する量子化マトリクス保持部である。ここで、量子化マトリクスとは、周波数成分に応じて、直交変換係数に対する量子化処理を重み付けするためのものである。後述する量子化処理における、各直交変換係数のための量子化ステップは、一例として、基準となるパラメータ値(量子化パラメータ)に基づくスケール値(量子化スケール)に、量子化マトリクスにおける各要素の値を乗算することで重み付けされる。
 量子化マトリクス保持部110によって格納される量子化マトリクスの生成方法については特に限定しない。例えば、ユーザが量子化マトリクスを示す情報を入力してもよいし、入力画像の特性から画像符号化装置が算出してもよい。また、初期値として予め指定されたものを使用してもよい。本実施形態では、図8Aに示される8×8のベース量子化マトリクスに加え、ベース量子化マトリクスを拡大して生成された、図8B、図8Cに示される2種類の32×32の二次元の量子化マトリクスが生成され、格納されるものとする。図8Bの量子化マトリクスは、図8Aの8×8のベース量子化マトリクスの各要素を、垂直・水平方向に4回繰り返すことで4倍に拡大した32×32の量子化マトリクスである。一方、図8Cの量子化マトリクスは、図8Aのベース量子化マトリクスの左上4×4部分の各要素を、垂直・水平方向に8回繰り返すことで拡大した32×32の量子化マトリクスである。
 以上のように、ベース量子化マトリクスは、8×8画素のサブブロックにおける量子化だけではなく、ベース量子化マトリクスよりも大きなサイズの量子化マトリクスを作成するためにも使用される量子化マトリクスである。なお、ベース量子化マトリクスのサイズは8×8であるものとするが、このサイズに限られない。また、サブブロックのサイズに応じて別のベース量子化マトリクスを用いてもよい。例えば、8×8、16×16、32×32の3種類のサブブロックが用いられる場合、それぞれに対応する3種類のベース量子化マトリクスを用いることもできる。
 104は予測部であり、基本ブロック単位の画像データに対し、サブブロック分割を決定する。つまり、基本ブロックをサブブロックへと分割するか否かを決定し、分割するとすればどのように分割するか決定する。サブブロックへ分割しない場合、サブブロックは基本ブロックと同じサイズとなる。サブブロックは正方形でもよいし、正方形以外の長方形(非正方形)であってもよい。
 そして、予測部104は、サブブロック単位でフレーム内予測であるイントラ予測や、フレーム間予測であるインター予測などを行い、予測画像データを生成する。
 例えば、予測部104は、1つのサブブロックに対して行う予測方法を、イントラ予測及びインター予測の中から選択し、選択した予測を行って、当該サブブロックのための予測画像データを生成する。ただし、用いられる予測方法はこれらに限定されず、イントラ予測とインター予測とを組み合わせた予測などを用いてもよい。
 さらに、予測部104は、入力された画像データと前記予測画像データから予測誤差を算出し、出力する。例えば、予測部104は、サブブロックの各画素値と、当該サブブロックに対する予測によって生成された予測画像データの各画素値との差分を算出し、それを予測誤差として算出する。
 また、予測部104は、予測に必要な情報、例えばサブブロックの分割状態を示す情報、当該サブブロックの予測方法を示す予測モードや、動きベクトル等の情報も予測誤差と併せて出力する。以下ではこの予測に必要な情報を予測情報と総称する。
 105は変換・量子化部である。変換・量子化部105は、予測部104によって算出された予測誤差をサブブロック単位で直交変換して、予測誤差の各周波数成分を表す直交変換係数を獲得する。そして、変換・量子化部105は、さらに量子化マトリクス保持部103に格納されている量子化マトリクスと、量子化パラメータとを用いて量子化を行い、量子化された直交変換係数である量子化係数を獲得する。なお、直交変換を行う機能と、量子化を行う機能とは別々の構成にしてもよい。
 106は逆量子化・逆変換部である。逆量子化・逆変換部106は、変換・量子化部105から出力された量子化係数を量子化マトリクス保持部103に格納されている量子化マトリクスと、量子化パラメータとを用いて逆量子化して直交変換係数を再生する。そして、逆量子化・逆変換部106は、さらに逆直交変換して予測誤差を再生する。このように、量子化マトリクスと量子化パラメータとを用いて、直交変換係数を再生(導出)する処理を逆量子化と称するものとする。なお、逆量子化を行う機能と、逆量子化を行う機能とは別々の構成にしてもよい。また、画像復号装置が量子化パラメータを導出するための情報も符号化部110によってビットストリームに符号化される。
 108は、再生された画像データを格納しておくフレームメモリである。
 107は、画像再生部である。予測部104から出力された予測情報に基づいて、フレームメモリ108を適宜参照して予測画像データを生成し、これと入力された予測誤差から再生画像データを生成し、出力する。
 109は、インループフィルタ部である。再生画像に対し、デブロッキングフィルタやサンプルアダプティブオフセットなどのインループフィルタ処理を行い、フィルタ処理された画像を出力する。
 110は、符号化部である。変換・量子化部105から出力された量子化係数および予測部104から出力された予測情報を符号化して、符号データを生成し出力する。
 113は、量子化マトリクス符号化部である。量子化マトリクス保持部103から出力されたベース量子化マトリクスを符号化して、画像復号装置がベース量子化マトリクスを導出するための量子化マトリクス符号データを生成し出力する。
 111は、統合符号化部である。量子化マトリクス符号化部113からの出力である量子化マトリクス符号データを用いて、ヘッダ符号データを生成する。さらに符号化部110から出力された符号データと合わせて、ビットストリームを形成して出力する。
 112は、端子であり、統合符号化部111で生成されたビットストリームを外部に出力する。
 上記画像符号化装置における画像の符号化動作を以下に説明する。本実施形態では動画像データをフレーム単位に入力する構成とする。さらに本実施形態では説明のため、ブロック分割部101においては64×64画素の基本ブロックに分割するものとして説明するが、これに限定されない。例えば、128×128画素のブロックを基本ブロックとしてもよいし、32×32画素のブロックを基本ブロックとしてもよい。
 画像符号化装置は、画像の符号化に先立ち、量子化マトリクスの生成および符号化を行う。なお、以下の説明において、一例として、量子化マトリクス800や各ブロックにおける水平方向をx座標、垂直方向をy座標とし、それぞれ、右方向を正、下方向を正とする。また、量子化マトリクス800における左上端の要素の座標を(0,0)とする。つまり、8×8のベース量子化マトリクスの右下端の要素の座標は、(7,7)となる。32×32の量子化マトリクスの右下端の要素の座標は(31,31)となる。
 最初に、量子化マトリクス保持部103は量子化マトリクスを生成する。サブブロックのサイズや量子化される直交変換係数のサイズ、予測方法の種類に応じて、量子化マトリクスが生成される。本実施形態では、まず図8Aに示された後述の量子化マトリクスの生成に用いられる8×8のベース量子化マトリクスが生成される。次に、このベース量子化マトリクスを拡大し、図8Bおよび図8Cに示される2種類の32×32の量子化マトリクスを生成する。図8Bの量子化マトリクスは、図8Aの8×8のベース量子化マトリクスの各要素を、垂直・水平方向に4回繰り返すことで4倍に拡大した32×32の量子化マトリクスである。
 つまり、図8Bに示す例では、32×32の量子化マトリクスにおけるx座標が0~3及びy座標が0~3の範囲内の各要素には、ベース量子化マトリクスの左上端の要素の値である1が割り当てられることとなる。また、32×32の量子化マトリクスにおけるx座標が28~31及びy座標が28~31の範囲内の各要素には、ベース量子化マトリクスの右下端の要素の値である15が割り当てられることとなる。図8Bの例では、ベース量子化マトリクスにおける各要素の値の全てが、32×32の量子化マトリクスの各要素の内のいずれかに割り当てられている。
 一方、図8Cの量子化マトリクスは、図8Aのベース量子化マトリクスの左上4×4部分の各要素を、垂直・水平方向に8回繰り返すことで拡大した32×32の量子化マトリクスである。
 つまり、図8Cに示す例では、32×32の量子化マトリクスにおけるx座標が0~7及びy座標が0~7の範囲内の各要素には、ベース量子化マトリクスの左上4×4部分の左上端の要素の値である1が割り当てられることとなる。また、32×32の量子化マトリクスにおけるx座標が24~31及びy座標が24~31の範囲内の各要素には、ベース量子化マトリクスの左上4×4部分の右下端の要素の値である7が割り当てられることとなる。図8Cの例では、ベース量子化マトリクスにおける各要素の値の左上4×4部分(x座標が0~3及びy座標が0~3の範囲)に対応する要素の値だけが、32×32の量子化マトリクスの各要素に割り当てられている。
 ただし、生成される量子化マトリクスはこれに限定されず、量子化される直交変換係数のサイズが32×32以外にも存在する場合は、16×16や8×8、4×4など、量子化される直交変換係数のサイズに対応した量子化マトリクスが生成されてもよい。ベース量子化マトリクスや量子化マトリクスを構成する各要素の決定方法は特に限定されない。例えば、所定の初期値を用いてもよいし、個別に設定してもよい。また、画像の特性に応じて生成されても構わない。
 量子化マトリクス保持部103には、このようにして生成されたベース量子化マトリクスや量子化マトリクスが保持される。図8Bは後述の32×32のサブブロック、図8Cは64×64のサブブロックに対応する直交変換係数の量子化に用いられる量子化マトリクスの一例である。太枠の800は、量子化マトリクスを表している。説明を簡易にするため、それぞれ32×32の1024画素分の構成とし、太枠内の各正方形は量子化マトリクスを構成している各要素を表しているものとする。本実施形態では、図8B、図8Cに示された三種の量子化マトリクスが二次元の形状で保持されているものとするが、量子化マトリクス内の各要素はもちろんこれに限定されない。また、量子化される直交変換係数のサイズによって、あるいは符号化対象が輝度ブロックか色差ブロックかによって、同じ予測方法に対して複数の量子化マトリクスを保持することも可能である。一般的に、量子化マトリクスは人間の視覚特性に応じた量子化処理を実現するため、図8B、図8Cに示すように量子化マトリクスの左上部分に相当する低周波部分の要素は小さく、右下部分に相当する高周波部分の要素は大きくなっている。
 量子化マトリクス符号化部113は、二次元形状で格納されているベース量子化マトリクスの各要素を量子化マトリクス保持部106から順に読み出し、各要素を走査して差分を計算し、その各差分を一次元の行列に配置する。本実施形態では、図8Aに示されたベース量子化マトリクスは図9に示された走査方法を用い、要素ごとに走査順に直前の要素との差分を計算するものとする。例えば図8Aで示された8×8のベース量子化マトリクスは図9で示された走査方法によって走査されるが、左上に位置する最初の要素1の次はそのすぐ下に位置する要素2が走査され、差分である+1が計算される。また、量子化マトリクスの最初の要素(本実施形態では1)の符号化には、所定の初期値(例えば8)との差分を計算するものとするが、もちろんこれに限定されず、任意の値との差分や、最初の要素の値そのものを用いてもよい。
 このようにして、本実施形態では、図8Aのベース量子化マトリクスは、図9の走査方法を用い、図10に示される差分行列が生成される。量子化マトリクス符号化部113はさらに前記差分行列を符号化して量子化マトリクス符号データを生成する。本実施形態では図11Aに示される符号化テーブルを用いて符号化するものとするが、符号化テーブルはこれに限定されず、例えば図11Bに示される符号化テーブルを用いてもよい。このようにして生成された量子化マトリクス符号データは後段の統合符号化部111に出力される。
 図1に戻り、統合符号化部111では画像データの符号化に必要なヘッダ情報を符号化し、量子化マトリクスの符号データを統合する。
 続いて、画像データの符号化が行われる。端子101から入力された1フレーム分の画像データはブロック分割部102に入力される。
 ブロック分割部102では、入力された画像データを複数の基本ブロックに分割し、基本ブロック単位の画像を予測部104に出力する。本実施形態では64×64画素の基本ブロック単位の画像を出力するものとする。
 予測部104では、ブロック分割部102から入力された基本ブロック単位の画像データに対し予測処理を実行する。具体的には、基本ブロックをさらに細かいサブブロックに分割するサブブロック分割を決定し、さらにサブブロック単位でイントラ予測やインター予測などの予測モードを決定する。
 図7にサブブロック分割方法の一例を示す。太枠の700は基本ブロックを表しており、説明を簡易にするため、64×64画素の構成とし、太枠内の各四角形はサブブロックを表すものとする。図7Bは四分木の正方形サブブロック分割の一例を表しており、648×64画素の基本ブロックは32×32画素のサブブロックに分割されている。一方、図7C~図7Fは長方形サブブロック分割の一例を表しており、図7Cでは基本ブロックは32×64画素の縦長、図7Dでは64×32画素の横長の長方形のサブブロックに分割されている。また、図7E、図7Fでは、1:2:1の比で長方形サブブロックに分割されている。このように正方形だけではなく、正方形以外の長方形のサブブロックも用いて符号化処理を行っている。また、基本ブロックを更に複数の正方形のブロックに分割し、その分割した正方形のブロックを基準としてサブブロック分割を行ってもよい。言い換えると、基本ブロックのサイズは64×64画素に限定されず、また、複数のサイズの基本ブロックを用いてもよい。
 また、本実施形態では、64×64画素の基本ブロックを分割しない図7A、および、図7Bのような四分木分割のみが用いられるものとするが、サブブロック分割方法はこれに限定されない。図7E、図7Fのような三分木分割または図7Cや図7Dのような二分木分割を用いても構わない。図7Aや図7B以外のサブブロック分割も用いられる場合には、量子化マトリクス保持部103にて使用されるサブブロックに対応する量子化マトリクスが生成される。また、生成された量子化マトリクスに対応する新たなベース量子化マトリクスも生成される場合は量子化マトリクス符号化部113にて新たなベース量子化マトリクスも符号化されることとなる。
 また、本実施形態で用いられる予測部194による予測方法について、更に詳細に説明する。本実施形態では、一例として、イントラ予測、インター予測の2種類の予測方法が用いられるものとする。イントラ予測は符号化対象ブロックの空間的に周辺に位置する符号化済画素を用いて符号化対象ブロックの予測画素を生成し、水平予測や垂直予測、DC予測などのイントラ予測方法の内、使用したイントラ予測方法を示すイントラ予測モードの情報も生成する。インター予測は符号化対象ブロックとは時間的に異なるフレームの符号化済画素を用いて符号化対象ブロックの予測画素を生成し、参照するフレームや動きベクトルなどを示す動き情報も生成する。なお、前述のように、予測部194は、イントラ予測とインター予測とを組み合わせた予測方法を用いてもよい。
 決定した予測モードおよび符号化済の画素から予測画像データを生成し、さらに入力された画像データと前記予測画像データから予測誤差が生成され、変換・量子化部105に出力される。また、サブブロック分割や予測モードなどの情報は予測情報として、符号化部110、画像再生部107に出力される。
 変換・量子化部105では、入力された予測誤差に直交変換・量子化を行い、量子化係数を生成する。まずはサブブロックのサイズに対応した直交変換処理が施されて直交変換係数が生成され、次に直交変換係数を予測モードに応じて量子化マトリクス保持部103に格納されている量子化マトリクスを用いて量子化し、量子化係数を生成する。より具体的な直交変換・量子化処理について、以下で説明する。
 図7Bで示された32×32のサブブロック分割が選択された場合には、32×32の予測誤差に対し、32×32の直交変換行列を用いた直交変換を施し、32×32の直交変換係数を生成する。具体的には、離散コサイン変換(DCT)に代表される32×32の直交変換行列と32×32の予測誤差の乗算を行い32×32の行列状の中間係数を算出する。この32×32の行列状の中間係数に対し、さらに、前述の32×32の直交変換行列の転置行列との乗算を行い、32×32の直交変換係数を生成する。こうして生成された32×32の直交変換係数に対し、図8Bで示された32×32の量子化マトリクスと、量子化パラメータとを用いて量子化し、32×32の量子化係数を生成する。64×64の基本ブロックの中には32×32のサブブロックが4つ存在しているため、上述の処理を4回繰り返す。
 一方、図7Aで示す64×64の分割状態(分割無し)が選択された場合には、64×64の予測誤差に対し、64×64の直交変換行列における奇数番目の行(以下、奇数行と称する)を間引いて生成された32×64の直交変換行列が用いられる。つまり、この奇数行を間引いて生成された32×64の直交変換行列を用いた直交変換を施すことによって、32×32の直交変換係数を生成する。
 具体的には、まず64×64の直交変換行列から奇数行を間引いて64×32の直交変換行列を生成する。そしてこの64×32の直交変換行列と64×64の予測誤差の乗算を行い、64×32の行列状の中間係数を生成する。この64×32の行列状の中間係数に対し、前述の64×32の直交変換行列を転置させた32×64の転置行列との乗算を行い、32×32の直交変換係数を生成する。そして、変換・量子化部105は、生成した32×32の直交変換係数を64×64の直交変換係数の左上部分(x座標が0~31及びy座標が0~31の範囲)の係数とし、その他を0とすることで、ゼロアウトを実行する。
 本実施形態では、このように、64×64の予測誤差に対して、64×32の直交変換行列と、この64×32の直交変換行列を転置させた32×64の転置行列とを用いて直交変換を行う。このように32×32の直交変換係数を生成することでゼロアウトを実行する。これにより、64×64の直交変換を行って生成された64×64の直交変換係数の一部を、その値が0でない場合であっても強制的に0とする手法よりも少ない演算量で32×32の直交変換係数を生成できる。つまり、64×64の直交変換行列を用いて直交変換を行って、その結果、ゼロアウトの対象となる直交変換係数が、0であるか否かに関わらずに0と見做して符号化する場合と比較して、直交変換における演算量を低減することができる。なお、64×64の予測誤差から直交変換係数によって32×32の直交変換係数を算出する方法を用いれば演算量を低減させることができるが、ゼロアウトする方法はこの方法に限られず種々の方法を用いることもできる。
 また、ゼロアウトを実行する場合、ゼロアウトの対象となった範囲の直交変換係数が0であることを示す情報を符号化してもよいし、単に、ゼロアウトが行われたことを示す情報(フラグ等)を符号化してもよい。画像復号装置はそれらの情報を復号することで、ゼロアウトの対象を0と見做して、各ブロックを復号することができる。
 次に、このように生成された32×32の直交変換係数に対し、変換・量子化部105は、図8Cで示された32×32の量子化マトリクスと、量子化パラメータとを用いて量子化し、32×32の量子化係数を生成する。
 本実施形態では、32×32のサブブロックに対応した32×32の直交変換係数には図8Bの量子化マトリクスが用いられ、64×64のサブブロックに対応した32×32の直交変換係数には図8Cの量子化マトリクスが用いられるものとする。つまり、ゼロアウトが実行されていない32×32の直交変換係数には図8Bを用い、ゼロアウトが実行された64×64のサブブロックに対応した32×32の直交変換係数には図8Cの量子化マトリクスが用いられるものとする。ただし、使用される量子化マトリクスはこれに限定されない。生成された量子化係数は符号化部110および逆量子化・逆変換部106に出力される。
 逆量子化・逆変換部106では、入力された量子化係数を量子化マトリクス保持部103に格納されている量子化マトリクスと、量子化パラメータとを用いて逆量子化して直交変換係数を再生する。そして、逆量子化・逆変換部106は、さらに再生された直交変換係数を逆直交変換して予測誤差を再生する。逆量子化処理には、変換・量子化部105同様、符号化対象のサブブロックの大きさに対応した量子化マトリクスが用いられる。より具体的な逆量子化・逆変換部106による逆量子化・逆直交変換処理について、以下に説明する。
 図7Bの32×32のサブブロック分割が選択されている場合、逆量子化・逆変換部106は、変換・量子化部105で生成された32×32の量子化係数は図8Bの量子化マトリクスを用いて逆量子化し、32×32の直交変換係数を再生する。そして、逆量子化・逆変換部106は、前述の32×32の転置行列と32×32の直交変換との乗算を行い、32×32の行列状の中間係数を算出する。そして、逆量子化・逆変換部106は、この32×32の行列状の中間係数と前述の32×32の直交変換行列との乗算を行い32×32の予測誤差を再生する。各32×32サブブロックに対して同様の処理を行う。一方、図7Aのように、分割無しが選択されている場合、変換・量子化部105で生成された32×32の量子化係数は図8Cの量子化マトリクスを用いて逆量子化され、32×32の直交変換係数を再生する。そして、前述の32×64の転置行列と32×32の直交変換との乗算を行い、32×64の行列状の中間係数を算出する。この32×64の行列状の中間係数と前述の64×32の直交変換行列との乗算を行い、64×64の予測誤差を再生する。本実施形態では、サブブロックの大きさに応じて、変換・量子化部105で用いられた量子化マトリクスと同一のものが用いられ逆量子化処理が実行される。再生された予測誤差は画像再生部107に出力される。
 画像再生部107では、予測部104から入力される予測情報に基づいて、フレームメモリ108に記憶された予測画像の再生に必要なデータを適宜参照して、予測画像を再生する。そして再生された予測画像と逆量子化・逆変換部106から入力された再生された予測誤差から画像データを再生し、フレームメモリ108に入力し、格納する。
 インループフィルタ部109では、フレームメモリ108から再生画像を読み出し、デブロッキングフィルタなどのインループフィルタ処理を行う。そして、フィルタ処理された画像を再びフレームメモリ108に入力し、再格納する。
 符号化部110では、ブロック単位で、変換・量子化部105で生成された量子化係数、予測部104から入力された予測情報をエントロピー符号化し、符号データを生成する。エントロピー符号化の方法は特に指定しないが、ゴロム符号化、算術符号化、ハフマン符号化などを用いることができる。生成された符号データは統合符号化部111に出力される。
 統合符号化部111では、前述のヘッダの符号データとともに符号化部110から入力された符号データなどを多重化してビットストリームを形成する。最終的には、ビットストリームは端子112から外部に出力される。
 図6Aは実施形態1で出力されるビットストリームの一例である。シーケンスヘッダにはベース量子化マトリクスの符号データが含まれ、各要素の符号化結果で構成されている。ただし、ベース量子化マトリクスの符号データ等が符号化される位置はこれに限定されず、ピクチャヘッダ部やその他のヘッダ部に符号化される構成をとってももちろん構わない。また、1つのシーケンスの中で量子化マトリクスの変更を行う場合、ベース量子化マトリクスを新たに符号化することで更新することも可能である。この際、全ての量子化マトリクスを書き換えてもよいし、書き換える量子化マトリクスに対応する量子化マトリクスのサブブロックの大きさを指定することでその一部を変更するようにすることも可能である。
 図3は、実施形態1に係る画像符号化装置における符号化処理を示すフローチャートである。
 まず、画像の符号化に先立ち、ステップS301にて、量子化マトリクス保持部103は二次元の量子化マトリクスを生成し、保持する。本実施形態では、図8Aに示されたベース量子化マトリクスおよびベース量子化マトリクスから生成された図8B、図8Cに示された量子化マトリクスを生成し、保持するものとする。
 ステップS302にて、量子化マトリクス符号化部113は、ステップS301にて量子化マトリクスの生成に用いられたベース量子化マトリクスを走査して、走査順で前後する各要素間の差分を算出し、一次元の差分行列を生成する。本実施形態では、図8Aに示されたベース量子化マトリクスは図9の走査方法を用い、図10に示される差分行列が生成されるものとする。量子化マトリクス符号化部113はさらに生成された差分行列を符号化し、量子化マトリクス符号データを生成する。
 ステップS303にて、統合符号化部111は、生成された量子化マトリクス符号データとともに、画像データの符号化に必要なヘッダ情報を符号化し、出力する。
 ステップS304にて、ブロック分割部102はフレーム単位の入力画像を64×64画素の基本ブロック単位に分割する。
 ステップS305にて、予測部104はステップS304にて生成された基本ブロック単位の画像データに対して、前述した予測方法を用いて予測処理を実行し、サブブロック分割情報や予測モードなどの予測情報および予測画像データを生成する。本実施形態では、図7Bに示された32×32画素のサブブロック分割および図7Aに示される64×64画素のサブブロックの2種類のサブブロックサイズが用いられる。さらに入力された画像データと前記予測画像データから予測誤差を算出する。
 ステップS306にて、変換・量子化部105はステップS305で算出された予測誤差を直交変換して直交変換係数を生成する。そして、変換・量子化部105は、さらにステップS301にて生成・保持された量子化マトリクスと、量子化パラメータとを用いて量子化を行い、量子化係数を生成する。具体的には、図7Bの32×32画素のサブブロックの予測誤差には32×32の直交変換行列およびその転置行列を用いた乗算を行い、32×32の直交変換係数を生成する。一方、図7Aの64×64画素のサブブロックの予測誤差には64×32の直交変換行列およびその転置行列を用いた乗算を行い、32×32の直交変換係数を生成する。本実施形態では、図7Bの32×32のサブブロックの直交変換係数には図8B、図7Aの64×64のサブブロックに対応する直交変換係数には図8Cの量子化マトリクスを用い32×32の直交変換係数を量子化するものとする。
 ステップS307にて、逆量子化・逆変換部106はステップS306で生成された量子化係数を、ステップS301にて生成・保持された量子化マトリクスと、量子化パラメータとを用いて逆量子化を行い、直交変換係数を再生する。さらに、直交変換係数に対して逆直交変換し、予測誤差を再生する。本ステップでは、それぞれ、ステップS306で用いられた量子化マトリクスと同一のものが用いられ、逆量子化処理が行われる。具体的には、図7Bの32×32画素のサブブロックに対応した32×32の量子化係数に対しては、図8Bの量子化マトリクスを用いた逆量子化処理を行い、32×32の直交変換係数を再生する。そしてこの32×32の直交変換係数を32×32の直交変換行列およびその転置行列を用いた乗算を行い、32×32画素の予測誤差を再生する。一方、図7Aの64×64画素のサブブロックに対応した32×32の量子化係数に対しては、図8Cの量子化マトリクスを用いた逆量子化処理を行い、32×32の直交変換係数を再生する。そしてこの32×32の直交変換係数を64×32の直交変換行列およびその転置行列を用いた乗算を行い、64×64画素の予測誤差を再生する。
 ステップS308にて、画像再生部107はステップS305で生成された予測情報に基づいて予測画像を再生する。さらに再生された予測画像とステップS307で生成された予測誤差から画像データを再生する。
 ステップS309にて、符号化部110は、ステップS305で生成された予測情報およびステップS306で生成された量子化係数を符号化し、符号データを生成する。また、他の符号データも含め、ビットストリームを生成する。
 ステップS310にて、画像符号化装置は、フレーム内の全ての基本ブロックの符号化が終了したか否かの判定を行い、終了していればステップS311に進み、そうでなければ次の基本ブロックを対象として、ステップS304に戻る。
 ステップS311にて、インループフィルタ部109はステップS308で再生された画像データに対し、インループフィルタ処理を行い、フィルタ処理された画像を生成し、処理を終了する。
 以上の構成と動作により、演算量を減らしつつ周波数成分ごとに量子化を制御し主観画質を向上させることができる。特にステップS305において、直交変換係数の数を減らし、減少した直交変換係数に対応する量子化マトリクスを用いた量子化処理をすることで、演算量を減らしつつ周波数成分ごとに量子化を制御し主観画質を向上させることができる。さらには、直交変換係数の数を減らし低周波部分のみを量子化・符号化する場合には、図8Cのようなベース量子化マトリクスの低周波部分のみを拡大する量子化マトリクスを用いることで、低周波部分に最適な量子化制御を実現することができる。なお、ここでいう低周波部分とは、図8Cの例では、x座標が0~3及びy座標が0~3の範囲である。
 なお、本実施形態では、符号量削減のため、図8B、図8Cの量子化マトリクスの生成に共通して用いられる図8Aのベース量子化マトリクスのみを符号化する構成としたが、図8B、図8Cの量子化マトリクス自体を符号化する構成としてもよい。その場合、各量子化マトリクスの周波数成分ごとに独自の値を設定することができるため、周波数成分ごとにより細かな量子化制御を実現することができる。また、図8B、図8Cのそれぞれに対し個別のベース量子化マトリクスを設定し、それぞれのベース量子化マトリクスを符号化する構成とすることも可能である。その場合、32×32の直交変換係数と64×64の直交変換係数に対し、それぞれ異なる量子化制御を実施し、より綿密な主観画質の制御を実現することもできる。さらにその場合、64×64の直交変換係数に対応する量子化マトリクスは、8×8のベース量子化マトリクスの左上の4×4部分を8倍に拡大する代わりに、8×8のベース量子化マトリクス全体を4倍に拡大してもよい。こうして64×64の直交変換係数に対しても、より細かな量子化制御を実現することができる。
 さらには、本実施形態では、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクスが一意に決まる構成としたが、識別子を導入することで選択可能とする構成としても構わない。例えば図6Bは、量子化マトリクス符号化方法情報符号を新たに導入することで、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクス符号化を選択的にしたものである。例えば、量子化マトリクス符号化方法情報符号が0を示している場合には、ゼロアウトを用いた64×64画素のサブブロックに対応する直交変換係数に対し、独立した量子化マトリクスである図8Cが用いられる。また、符号化方法情報符号が1を示している場合には、ゼロアウトを用いた64×64画素のサブブロックに対し、通常のゼロアウトされないサブブロックに対する量子化マトリクスである図8Bが用いられる。一方、符号化方法情報符号が2を示している場合には、8×8のベース量子化マトリクスではなく、ゼロアウトを用いた64×64画素のサブブロックに対して用いられる量子化マトリクスの要素全てを符号化するといった具合である。これにより、量子化マトリクス符号量削減とゼロアウトを用いたサブブロックに対する独自の量子化制御とを選択的に実現することが可能となる。
 また、本実施形態ではゼロアウトを用いて処理をしたサブブロックは64×64のみとしているが、ゼロアウトを用いて処理をするサブブロックはこれに限定されない。例えば、図7Cや図7Bに示された32×64や64×32サブブロックに対応する直交変換係数のうち、下半分や右半分の32×32の直交変換係数を強制的に0としても構わない。この場合、上半分や左半分の32×32の直交変換係数のみを量子化・符号化の対象とすることとなり、上半分や左半分の32×32の直交変換係数に対して図8Bとは異なる量子化マトリクスを用いて量子化処理を行うこととなる。
 さらには、生成された直交変換係数のうち、画質への影響が最も大きいと考えられる左上端に位置するDC係数に対応する量子化マトリクスの値を、8×8のベースマトリクスの各要素の値とは別に設定・符号化する構成としてもよい。図12Bおよび図12Cは、図8Bおよび図8Cと比較してDC成分にあたる左上端に位置する要素の値を変更した例を示している。この場合、図8Aのベース量子化マトリクスの情報に加えて、DC部分に位置する「2」を示す情報を別途符号化することにより、図12Bおよび図12Cに示される量子化マトリクスを設定することができる。これにより、画質への影響が最も大きい直交変換係数のDC成分に対してより細かい量子化制御を施すことができる。
 <実施形態2>
 図2は、本発明の実施形態2に係る画像復号装置の構成を示すブロック図である。本実施形態では、実施形態1で生成された符号化データを復号する画像復号装置を例にして説明する。
 201は符号化されたビットストリームが入力される端子である。
 202は分離復号部であり、ビットストリームから復号処理に関する情報や係数に関する符号データに分離し、またビットストリームのヘッダ部に存在する符号データを復号する。本実施形態では、量子化マトリクス符号を分離し、後段に出力する。分離復号部202は図1の統合符号化部111と逆の動作を行う。
 209は量子化マトリクス復号部であり、量子化マトリクス符号をビットストリームから復号してベース量子化マトリクスを再生し、さらにベース量子化マトリクスから各量子化マトリクスを生成する処理を実行する。
 203は復号部であり、分離復号部202から出力された符号データを復号し、量子化係数および予測情報を再生(導出)する。
 204は逆量子化・逆変換部であり、図1の逆量子化・逆変換部106と同様に、再生された量子化マトリクスと、量子化パラメータとを用いて量子化係数に逆量子化を行って直交変換係数を獲得し、さらに逆直交変換を行って、予測誤差を再生する。なお、量子化パラメータを導出するための情報も復号部203によってビットストリームから復号される。また、逆量子化を行う機能と、逆量子化を行う機能とは別々の構成にしてもよい。
 206はフレームメモリである。再生されたピクチャの画像データを格納しておく。
 205は画像再生部である。入力された予測情報に基づいてフレームメモリ206を適宜参照して予測画像データを生成する。そして、この予測画像データと逆量子化・逆変換部204で再生された予測誤差から再生画像データを生成し、出力する。
 207はインループフィルタ部である。図1の109同様、再生画像に対し、デブロッキングフィルタなどのインループフィルタ処理を行い、フィルタ処理された画像を出力する。
 208は端子であり、再生された画像データを外部に出力する。
 上記画像復号装置における画像の復号動作を以下に説明する。本実施形態では、実施形態1で生成されたビットストリームをフレーム単位(ピクチャ単位)で入力する構成となっている。
 図2において、端子201から入力された1フレーム分のビットストリームは分離復号部202に入力される。分離復号部202では、ビットストリームから復号処理に関する情報や係数に関する符号データに分離し、ビットストリームのヘッダ部に存在する符号データを復号する。より具体的には、量子化マトリクス符号データを再生する。本実施形態では、まず、図6Aに示されるビットストリームのシーケンスヘッダから量子化マトリクス符号データを抽出し、量子化マトリクス復号部209に出力される。本実施形態では、図8Aに示されるベース量子化マトリクスに対応する量子化マトリクス符号データが抽出、出力される。続いて、ピクチャデータの基本ブロック単位の符号データを再生し、復号部203に出力する。
 量子化マトリクス復号部209では、まず入力された量子化マトリクス符号データを復号し、図10に示される一次元の差分行列を再生する。本実施形態では、実施形態1同様、図11Aに示される符号化テーブルを用いて復号するものとするが、符号化テーブルはこれに限定されず、実施形態1と同じものを用いる限りは他の符号化テーブルを用いてもよい。さらに量子化マトリクス復号部209は再生された一次元の差分行列から二次元の量子化マトリクスを再生する。ここでは実施形態1の量子化マトリクス符号化部113の動作とは逆の動作を行う。すなわち、本実施形態では、図10に示される差分行列は、図9に示される走査方法を用いて、それぞれ図8Aに示されるベース量子化マトリクスを再生し、保持するものとする。具体的には、量子化マトリクス復号部209は、差分行列における各差分値を、前述の初期値から順次加算することによって、量子化マトリクスにおける各要素を再生する。そして、量子化マトリクス復号部209は、その再生した一次元の各要素を図9に示される走査方法に従って、順番に2次元の量子化マトリクスの各要素に対応付けることで、2次元の量子化マトリクスを再生する。
 さらに量子化マトリクス復号部209では、この再生されたベース量子化マトリクスを、第1実施形態と同様に拡大し、図8Bおよび図8Cに示される2種類の32×32の量子化マトリクスを生成する。図8Bの量子化マトリクスは、図8Aの8×8のベース量子化マトリクスの各要素を、垂直・水平方向に4回繰り返すことで4倍に拡大した32×32の量子化マトリクスである。
 一方、図8Cの量子化マトリクスは、図8Aのベース量子化マトリクスの左上4×4部分の各要素を、垂直・水平方向に8回繰り返すことで拡大した32×32の量子化マトリクスである。ただし、生成される量子化マトリクスはこれに限定されず、後段で逆量子化される量子化係数のサイズが32×32以外にも存在する場合は、16×16、8×8、4×4など逆量子化される量子化係数のサイズに対応した量子化マトリクスが生成されてもよい。生成されたこれらの量子化マトリクスは保持され、後段の逆量子化処理に用いられる。
 復号部203では、符号データをビットストリームから復号し、量子化係数および予測情報を再生する。復号された予測情報に基づいて復号対象のサブブロックのサイズを決定し、さらに再生された量子化係数は逆量子化・逆変換部204に出力され、再生された予測情報は画像再生部205に出力される。本実施形態では復号対象のサブブロックの大きさ、すなわち図7Aの64×64であるか、図7Bの32×32であるかに関わらず、各サブブロックに対して32×32の量子化係数が再生されるものとする。
 逆量子化・逆変換部204では、入力された量子化係数に対し、量子化マトリクス復号部209で再生された量子化マトリクスと、量子化パラメータとを用いて逆量子化を行って直交変換係数を生成し、さらに逆直交変換を施して予測誤差を再生する。より具体的な逆量子化・逆直交変換処理について、以下に記す。
 図7Bの32×32のサブブロック分割が選択されている場合、復号部203で再生された32×3の量子化係数は図8Bの量子化マトリクスを用いて逆量子化され、32×32の直交変換係数を再生する。そして、前述の32×32の転置行列と32×32の直交変換との乗算を行い、32×32の行列状の中間係数を算出する。この32×32の行列状の中間係数と前述の32×32の直交変換行列との乗算を行い32×32の予測誤差を再生する。各32×32サブブロックに対して同様の処理を行う。
 一方、図7Aのように分割無しが選択されている場合、復号部203で再生された32×32の量子化係数は図8Cの量子化マトリクスを用いて逆量子化され、32×32の直交変換係数を再生する。そして、前述の32×64の転置行列と32×32の直交変換との乗算を行い、32×64の行列状の中間係数を算出する。この32×64の行列状の中間係数と前述の64×32の直交変換行列との乗算を行い、64×64の予測誤差を再生する。
 再生された予測誤差は画像再生部205に出力される。本実施形態では、復号部203で再生された予測情報によって定まった復号対象のサブブロックの大きさに応じて、逆量子化処理において使用される量子化マトリクスを決定する。すなわち、図7Bの32×32の各サブブロックには、図8Bの量子化マトリクスが逆量子化処理に用いられ、図7Aの64×64のサブブロックには図8Cの量子化マトリクスが用いられる。ただし、使用される量子化マトリクスはこれに限定されず、実施形態1の変換・量子化部105および逆量子化・逆変換部106で用いられた量子化マトリクスと同一のものであればよい。
 画像再生部205では、復号部203から入力された予測情報に基づいて、フレームメモリ206を適宜参照し、予測画像の再生に必要なデータを取得して、予測画像を再生する。本実施形態では、実施形態1の予測部104同様、イントラ予測およびインター予測の2種類の予測方法が用いられる。また、前述のようにイントラ予測とインター予測とを組み合わせた予測方法が用いられてもよい。また、実施形態1と同様に予測処理はサブブロック単位に行われる。
 具体的な予測処理については、実施形態1の予測部104と同様であるため、説明を省略する。画像再生部205は、予測処理によって生成された予測画像と、逆量子化・逆変換部204から入力された予測誤差から画像データを再生する。具体的には、画像再生部205は、予測画像と予測誤差とを加算することによって画像データを再生する。再生された画像データは、適宜、フレームメモリ206に格納される。格納された画像データは、他のサブブロックの予測の際に、適宜、参照される。
 インループフィルタ部207では、図1のインループフィルタ部109と同様、フレームメモリ206から再生画像を読み出し、デブロッキングフィルタなどのインループフィルタ処理を行う。そして、フィルタ処理された画像は再びフレームメモリ206に入力される。
 フレームメモリ206に格納された再生画像は、最終的には端子208から外部に出力される。再生画像は、例えば、外部の表示装置等に出力される。
 図4は、実施形態2に係る画像復号装置における画像の復号処理を示すフローチャートである。
 まず、ステップS401にて、分離復号部202はビットストリームから復号処理に関する情報や係数に関する符号データに分離して、ヘッダ部分の符号データを復号する。より具体的には、量子化マトリクス符号データを再生する。
 ステップS402にて、量子化マトリクス復号部209は、まずステップS401で再生された量子化マトリクス符号データを復号し、図10で示される一次元の差分行列を再生する。次に、量子化マトリクス復号部209は再生された一次元の差分行列から二次元のベース量子化マトリクスを再生する。さらに、量子化マトリクス復号部209は、再生した二次元のベース量子化マトリクスを拡大し、量子化マトリクスを生成する。
 すなわち、本実施形態では、量子化マトリクス復号部209は、図10に示される差分行列を、図9に示される走査方法を用いて、図8Aに示されるベース量子化マトリクスを再生する。さらに、量子化マトリクス復号部209は再生されたベース量子化マトリクスを拡大し、図8Bおよび図8Cに示される量子化マトリクスを生成し、保持するものとする。
 ステップS403にて、復号部203はステップS401で分離された符号データを復号し、量子化係数および予測情報を再生する。さらに、復号された予測情報に基づいて復号対象のサブブロックのサイズを決定する。本実施形態では復号対象のサブブロックの大きさ、すなわち図7Aの64×64か図7Bの32×32かに関わらず、各サブブロックに対して32×32の量子化係数が再生されるものとする。
 ステップS404にて、逆量子化・逆変換部204は量子化係数に対しステップS402で再生された量子化マトリクスを用いて逆量子化を行って直交変換係数を獲得し、さらに逆直交変換を行い、予測誤差を再生する。本実施形態では、ステップS403で再生された予測情報によって定まった復号対象のサブブロックの大きさに応じて、逆量子化処理において使用される量子化マトリクスを決定する。すなわち、図7Bの32×32の各サブブロックには、図8Bの量子化マトリクスが逆量子化処理に用いられ、図7Aの64×64のサブブロックには図8Cの量子化マトリクスが用いられる。ただし、使用される量子化マトリクスはこれに限定されず、実施形態1のステップS306およびステップS307で用いられた量子化マトリクスと同一のものであればよい。
 ステップS405にて、画像再生部205はステップS403で生成された予測情報から予測画像を再生する。本実施形態では、実施形態1のステップS305同様、イントラ予測およびインター予測の2種類の予測方法が用いられる。さらに再生された予測画像とステップS404で生成された予測誤差から画像データを再生する。
 ステップS406にて、画像復号装置はフレーム内の全ての基本ブロックの復号が終了したか否かの判定を行い、終了していればステップS407に進み、そうでなければ次の基本ブロックを対象としてステップS403に戻る。
 ステップS407にて、インループフィルタ部207はステップS405で再生された画像データに対し、インループフィルタ処理を行い、フィルタ処理された画像を生成し、処理を終了する。
 以上の構成と動作により、実施形態1で生成された、低周波の直交変換係数のみを量子化・符号化したサブブロックに対しても、量子化マトリクスを用いて周波数成分ごとに量子化を制御し主観画質を向上したビットストリームを復号することができる。また、低周波の直交変換係数のみを量子化・符号化したサブブロックには、図8Cのようなベース量子化マトリクスの低周波部分のみを拡大した量子化マトリクスを用い、低周波部分に最適な量子化制御を施したビットストリームを復号することができる。
 なお、本実施形態では、符号量削減のため、図8B、図8Cの量子化マトリクスの生成に共通して用いられる図8Aのベース量子化マトリクスのみを復号する構成としたが、図8B、図8Cの量子化マトリクス自体を復号する構成としてもよい。その場合、各量子化マトリクスの周波数成分ごとに独自の値を設定することができるため、周波数成分ごとにより細かな量子化制御を実現したビットストリームを復号することができる。
 また、図8B、図8Cのそれぞれに対し個別のベース量子化マトリクスを設定し、それぞれのベース量子化マトリクスを符号化する構成とすることも可能である。その場合、32×32の直交変換係数と64×64の直交変換係数に対し、それぞれ異なる量子化制御を実施し、より綿密な主観画質の制御を実現したビットストリームを復号することもできる。さらにその場合、64×64の直交変換係数に対応する量子化マトリクスは、8×8のベース量子化マトリクスの左上4×4部分を8倍に拡大する代わりに、8×8のベース量子化マトリクス全体を4倍に拡大してもよい。こうして64×64の直交変換係数に対しても、より細かな量子化制御を実現することができる。
 さらには、本実施形態では、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクスが一意に決まる構成としたが、識別子を導入することで選択可能とする構成としても構わない。例えば図6Bは、量子化マトリクス符号化方法情報符号を新たに導入することで、ゼロアウトを用いた64×64のサブブロックに対する量子化マトリクス符号化を選択的にしたものである。例えば、量子化マトリクス符号化方法情報符号が0を示している場合には、ゼロアウトを用いた64×64のサブブロックに対応する量子化係数に対し、独立した量子化マトリクスである図8Cが用いられる。また、符号化方法情報符号が1を示している場合には、ゼロアウトを用いた64×64のサブブロックに対し、通常のゼロアウトされないサブブロックに対する量子化マトリクスである図8Bが用いられる。一方、符号化方法情報符号が2を示している場合には、8×8のベース量子化マトリクスではなく、ゼロアウトを用いた64×64のサブブロックに対して用いられる量子化マトリクスの要素全てを符号化するといった具合である。これにより、量子化マトリクス符号量削減とゼロアウトを用いたサブブロックに対する独自の量子化制御とを選択的に実現したビットストリームを復号することが可能となる。
 また、本実施形態ではゼロアウトを用いて処理をされたサブブロックは64×64のみとしているが、ゼロアウトを用いた処理を施されたサブブロックはこれに限定されない。例えば、図7Cや図7Bに示された32×64や64×32サブブロックに対応する直交変換係数のうち、下半分や右半分の32×32の直交変換係数を復号せず、上半分や左半分の量子化係数のみを復号する構成としても構わない。この場合、上半分や左半分の32×32の直交変換係数のみを復号・逆量子化の対象とすることとなり、上半分や左半分の32×32の直交変換係数に対して図8Bとは異なる量子化マトリクスを用いて量子化処理を行うこととなる。
 さらには、生成された直交変換係数のうち、画質への影響が最も大きいと考えられる左上端に位置するDC係数に対応する量子化マトリクスの値を、8×8のベースマトリクスの各要素の値とは別に復号・設定する構成としてもよい。図12Bおよび図12Cは、図8Bおよび図8Cと比較してDC成分にあたる左上端に位置する要素の値を変更した例を示している。この場合、図8Aのベース量子化マトリクスの情報に加えて、DC部分に位置する「2」を示す情報を別途復号することにより、図12Bおよび図12Cに示される量子化マトリクスを設定することができる。これにより、画質への影響が最も大きい直交変換係数のDC成分に対してより細かい量子化制御を施したビットストリームを復号することができる。
 <実施形態3>
 図1、図2に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行う処理をコンピュータプログラムでもって構成してもよい。
 図5は、上記各実施形態に係る画像符号化装置や画像復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
 CPU501は、RAM502やROM503に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、CPU501は、図1、図2に示した各処理部として機能することになる。
 RAM502は、外部記憶装置506からロードされたコンピュータプログラムやデータ、I/F(インターフェース)507を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、RAM502は、CPU501が各種の処理を実行する際に用いるワークエリアを有する。即ち、RAM502は、例えば、フレームメモリとして割り当てたり、その他の各種のエリアを適宜提供したりすることができる。
 ROM503には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部504は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をCPU501に対して入力することができる。出力部505は、CPU501による処理結果を出力する。また出力部505は例えば液晶ディスプレイで構成される。
 外部記憶装置506は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置506には、OS(オペレーティングシステム)や、図1、図2に示した各部の機能をCPU501に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置506には、処理対象としての各画像データが保存されていてもよい。
 外部記憶装置506に保存されているコンピュータプログラムやデータは、CPU501による制御に従って適宜、RAM502にロードされ、CPU501による処理対象となる。I/F507には、LANやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのI/F507を介して様々な情報を取得したり、送出したりすることができる。508は上述の各部を繋ぐバスである。
 上述の構成からなる作動は前述のフローチャートで説明した作動をCPU501が中心となってその制御を行う。
 (その他の実施例)
 各実施形態は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成することができる。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
 さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
 本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
 以上の各実施形態によれば、一部の直交変換係数が強制的に0とされる手法に対応した量子化マトリクスを用いた量子化処理を可能とすることによって、当該手法を用いた場合であっても主観画質を向上させることができる。
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために以下の請求項を添付する。
 本願は、2019年3月11日提出の日本国特許出願特願2019-044275を基礎として優先権を主張するものであり、その記載内容の全てをここに援用する。

Claims (30)

  1.  P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロック単位でビットストリームから画像を復号することが可能な画像復号装置において
     前記第1のブロックに対応するN×M個の量子化係数を有する第1の量子化係数群に対応するデータと、前記第2のブロックに対応するN×M個の量子化係数を有する第2の量子化係数群に対応するデータとを前記ビットストリームから復号する復号手段と、
     N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて前記第1の量子化係数群から第1の直交変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて前記第2の量子化係数群から第2の直交変換係数群を導出する逆量子化手段と、
     前記第1の直交変換係数群に対して逆直交変換を実行することによって前記第1のブロックに対応するP×Q画素分の第1の予測誤差を生成し、前記第2の直交変換係数群に対して逆直交変換を実行することによって前記第2のブロックに対応するN×M画素分の第2の予測誤差を生成する逆直交変換手段と
     を有し、
     N×M個の要素を有する前記第1の量子化マトリクスと、N×M個の要素を有する前記第2の量子化マトリクスとは異なる
     ことを特徴とする画像復号装置。
  2.  前記第1及び第2のブロックは正方形のブロックである
     ことを特徴とする請求項1記載の画像復号装置。
  3.  前記P及びQは64であり、前記N及びMは32である
     ことを特徴とする請求項2記載の画像復号装置。
  4.  前記P及びQは128であり、前記N及びMは32である
     ことを特徴とする請求項2記載の画像復号装置。
  5.  前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する量子化マトリクスの一部の要素を用いて生成される量子化マトリクスであり、
     前記第2の量子化マトリクスは、前記R×S個の要素を有する量子化マトリクスの全ての要素を用いて生成される量子化マトリクスである
     ことを特徴とする請求項1記載の画像復号装置。
  6.  前記第1の直交変換係数群はN×M個の直交変換係数であり、
     前記第2の直交変換係数群はN×M個の直交変換係数である
     ことを特徴とする請求項1記載の画像復号装置。
  7.  前記第1及び第2ブロックは、非正方形のブロックである
     ことを特徴とする請求項1記載の画像復号装置。
  8.  P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロック単位でビットストリームから画像を復号することが可能な画像復号方法において
     前記第1のブロックに対応するN×M個の量子化係数を有する第1の量子化係数群に対応するデータと、前記第2のブロックに対応するN×M個の量子化係数を有する第2の量子化係数群に対応するデータとを前記ビットストリームから復号する復号工程と、
     N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて前記第1の量子化係数群から第1の直交変換係数群を導出し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて前記第2の量子化係数群から第2の直交変換係数群を導出する逆量子化工程と、
     前記第1の直交変換係数群に対して逆直交変換を実行することによって前記第1のブロックに対応するP×Q画素分の第1の予測誤差を生成し、前記第2の直交変換係数群に対して逆直交変換を実行することによって前記第2のブロックに対応するN×M画素分の第2の予測誤差を生成する逆直交変換工程と
     を有し、
     N×M個の要素を有する前記第1の量子化マトリクスと、N×M個の要素を有する前記第2の量子化マトリクスとは異なる
     ことを特徴とする画像復号方法。
  9.  前記第1及び第2ブロックは正方形のブロックである
     ことを特徴とする請求項8記載の画像復号方法。
  10.  前記P及びQは64であり、前記N及びMは32である
     ことを特徴とする請求項9記載の画像復号方法。
  11.  前記P及びQは128であり、前記N及びMは32である
     ことを特徴とする請求項9記載の画像復号方法。
  12.  前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する量子化マトリクスの一部の要素を用いて生成される量子化マトリクスであり、
     前記第2の量子化マトリクスは、前記R×S個の要素を有する量子化マトリクスの全ての要素を用いて生成される量子化マトリクスである
     ことを特徴とする請求項8記載の画像復号方法。
  13.  前記第1の直交変換係数群はN×M個の直交変換係数であり、
     前記第2の直交変換係数群はN×M個の直交変換係数である
     ことを特徴とする請求項8記載の画像復号方法。
  14.  前記第1及び第2ブロックは、非正方形のブロックである
     ことを特徴とする請求項8記載の画像復号方法。
  15.  コンピュータを、請求項1記載の画像復号装置の各手段として機能させるためのプログラム。
  16.  P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロック単位で画像を符号化することが可能な画像符号化装置において
     前記第1のブロックに対応するP×Q画素分の予測誤差に対して直交変換を実行することによって少なくとも第1の直交変換係数群を生成し、前記第2のブロックに対応するN×M画素分の予測誤差に対して直交変換を実行することによって第2の直交変換係数群を生成する直交変換手段と、
     N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて前記第1の直交変換係数群を量子化してN×M個の量子化係数を有する第1の量子化係数群を生成し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて前記第2の直交変換係数群を量子化してN×M個の量子化係数を有する第2の量子化係数群を生成する量子化手段と、
     前記第1のブロックに対応する前記N×M個の量子化係数を有する第1の量子化係数群に対応するデータと、前記第2のブロックに対応する前記N×M個の量子化係数を有する第2の量子化係数群に対応するデータとを符号化する符号化手段と
     を有し、
     前記N×M個の要素を有する第1の量子化マトリクスと、前記N×M個の要素を有する第2の量子化マトリクスとは異なる
     ことを特徴とする画像符号化装置。
  17.  前記第1及び第2のブロックは正方形のブロックである
     ことを特徴とする請求項16記載の画像符号化装置。
  18.  前記P及びQは64であり、前記N及びMは32である
     ことを特徴とする請求項17記載の画像符号化装置。
  19.  前記P及びQは128であり、前記N及びMは32である
     ことを特徴とする請求項17記載の画像符号化装置。
  20.  前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する量子化マトリクスの一部の要素を用いて生成される量子化マトリクスであり、
     前記第2の量子化マトリクスは、前記R×S個の要素を有する量子化マトリクスの全ての要素を用いて生成される量子化マトリクスである
     ことを特徴とする請求項16記載の画像符号化装置。
  21.  前記第1の直交変換係数群はN×M個の直交変換係数であり、
     前記第2の直交変換係数群はN×M個の直交変換係数である
     ことを特徴とする請求項16記載の画像符号化装置。
  22.  前記第1及び第2ブロックは、非正方形のブロックである
     ことを特徴とする請求項16記載の画像符号化装置。
  23.  P×Q画素(P及びQは整数)の第1のブロックと、N×M画素(NはN<Pを満たす整数、かつ、MはM<Qを満たす整数)の第2のブロックとを含む複数のブロック単位で画像を符号化することが可能な画像符号化方法において
     前記第1のブロックに対応するP×Q画素分の予測誤差に対して直交変換を実行することによって少なくとも第1の直交変換係数群を生成し、前記第2のブロックに対応するN×M画素分の予測誤差に対して直交変換を実行することによって第2の直交変換係数群を生成する直交変換工程と、
     N×M個の要素を有する第1の量子化マトリクスを少なくとも用いて前記第1の直交変換係数群を量子化してN×M個の量子化係数を有する第1の量子化係数群を生成し、N×M個の要素を有する第2の量子化マトリクスを少なくとも用いて前記第2の直交変換係数群を量子化してN×M個の量子化係数を有する第2の量子化係数群を生成する量子化工程と、
     前記第1のブロックに対応する前記N×M個の量子化係数を有する第1の量子化係数群に対応するデータと、前記第2のブロックに対応する前記N×M個の量子化係数を有する第2の量子化係数群に対応するデータとを符号化する符号化工程と
     を有し、
     前記N×M個の要素を有する第1の量子化マトリクスと、前記N×M個の要素を有する第2の量子化マトリクスとは異なる
     ことを特徴とする画像符号化方法。
  24.  前記第1及び第2ブロックは正方形のブロックである
     ことを特徴とする請求項23記載の画像符号化方法。
  25.  前記P及びQは64であり、前記N及びMは32である
     ことを特徴とする請求項24記載の画像符号化方法。
  26.  前記P及びQは128であり、前記N及びMは32である
     ことを特徴とする請求項24記載の画像符号化方法。
  27.  前記第1の量子化マトリクスは、R×S(RはR≦Nを満たす整数、かつ、SはS≦Mを満たす整数)個の要素を有する量子化マトリクスの一部の要素を用いて生成される量子化マトリクスであり、
     前記第2の量子化マトリクスは、前記R×S個の要素を有する量子化マトリクスの全ての要素を用いて生成される量子化マトリクスである
     ことを特徴とする請求項23記載の画像符号化方法。
  28.  前記第1の直交変換係数群はN×M個の直交変換係数であり、
     前記第2の直交変換係数群はN×M個の直交変換係数である
     ことを特徴とする請求項23記載の画像符号化方法。
  29.  前記第1及び第2ブロックは、非正方形のブロックである
     ことを特徴とする請求項23記載の画像符号化方法。
  30.  コンピュータを、請求項16記載の画像符号化装置の各手段として機能させるためのプログラム。
PCT/JP2020/008359 2019-03-11 2020-02-28 画像復号装置、画像復号方法、及びプログラム WO2020184223A1 (ja)

Priority Applications (10)

Application Number Priority Date Filing Date Title
CN202311157426.3A CN117097899A (zh) 2019-03-11 2020-02-28 图像解码设备和方法、图像编码设备和方法以及存储介质
KR1020217029969A KR20210125089A (ko) 2019-03-11 2020-02-28 화상 복호 장치, 화상 복호 방법 및 프로그램
CN202311157434.8A CN117156137A (zh) 2019-03-11 2020-02-28 图像解码设备和方法、图像编码设备和方法以及存储介质
CN202080020388.5A CN113557726B (zh) 2019-03-11 2020-02-28 图像解码设备和方法、图像编码设备和方法以及存储介质
CN202311156237.4A CN117156136A (zh) 2019-03-11 2020-02-28 图像解码设备和方法、图像编码设备和方法以及存储介质
CN202311157422.5A CN117041577A (zh) 2019-03-11 2020-02-28 图像解码设备和方法、图像编码设备和方法以及存储介质
BR112021017977A BR112021017977A2 (pt) 2019-03-11 2020-02-28 Aparelho de decodificação de imagem, método de decodificação de imagem, e meio de armazenamento legível por computador não transitório
EP20770717.5A EP3941055A4 (en) 2019-03-11 2020-02-28 IMAGE DECODER, IMAGE DECODING METHOD, AND PROGRAM
CN202311157428.2A CN117041578A (zh) 2019-03-11 2020-02-28 图像解码设备和方法、图像编码设备和方法以及存储介质
US17/467,946 US20220060707A1 (en) 2019-03-11 2021-09-07 Image decoding apparatus, image decoding method, and storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019044275A JP7267785B2 (ja) 2019-03-11 2019-03-11 画像復号装置、画像復号方法、及びプログラム
JP2019-044275 2019-03-11

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/467,946 Continuation US20220060707A1 (en) 2019-03-11 2021-09-07 Image decoding apparatus, image decoding method, and storage medium

Publications (1)

Publication Number Publication Date
WO2020184223A1 true WO2020184223A1 (ja) 2020-09-17

Family

ID=72427886

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/008359 WO2020184223A1 (ja) 2019-03-11 2020-02-28 画像復号装置、画像復号方法、及びプログラム

Country Status (8)

Country Link
US (1) US20220060707A1 (ja)
EP (1) EP3941055A4 (ja)
JP (2) JP7267785B2 (ja)
KR (1) KR20210125089A (ja)
CN (6) CN117097899A (ja)
BR (1) BR112021017977A2 (ja)
TW (1) TWI795635B (ja)
WO (1) WO2020184223A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013038758A (ja) 2011-07-13 2013-02-21 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2018008387A1 (ja) * 2016-07-04 2018-01-11 ソニー株式会社 画像処理装置および方法
JP2019044275A (ja) 2017-08-29 2019-03-22 美江 永井 女性用ボトム下着
WO2019188097A1 (ja) * 2018-03-28 2019-10-03 ソニー株式会社 画像処理装置及び画像処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61294585A (ja) * 1985-06-21 1986-12-25 Nec Corp 画像信号の変換符号化方式
JP3403724B2 (ja) * 1990-08-20 2003-05-06 株式会社東芝 画像再生装置及び方法
FR2735258B1 (fr) * 1995-06-09 1997-09-05 Sgs Thomson Microelectronics Dispositif de decodage d'un flux de donnees
KR101885258B1 (ko) * 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
JP5741076B2 (ja) * 2010-12-09 2015-07-01 ソニー株式会社 画像処理装置及び画像処理方法
JP2013012887A (ja) * 2011-06-29 2013-01-17 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP2013038768A (ja) * 2011-07-13 2013-02-21 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
JP6120490B2 (ja) * 2011-11-07 2017-04-26 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2013094385A1 (ja) * 2011-12-19 2013-06-27 ソニー株式会社 画像処理装置および方法
US9432696B2 (en) * 2014-03-17 2016-08-30 Qualcomm Incorporated Systems and methods for low complexity forward transforms using zeroed-out coefficients
JPWO2016103542A1 (ja) * 2014-12-26 2017-10-19 パナソニックIpマネジメント株式会社 符号化方法、復号方法、符号化装置および復号装置
TWI561060B (en) * 2015-01-15 2016-12-01 Mstar Semiconductor Inc Signal processing apparatus and signal processing method including quantization or inverse-quantization process

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013038758A (ja) 2011-07-13 2013-02-21 Canon Inc 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2018008387A1 (ja) * 2016-07-04 2018-01-11 ソニー株式会社 画像処理装置および方法
JP2019044275A (ja) 2017-08-29 2019-03-22 美江 永井 女性用ボトム下着
WO2019188097A1 (ja) * 2018-03-28 2019-10-03 ソニー株式会社 画像処理装置及び画像処理方法

Also Published As

Publication number Publication date
CN117156137A (zh) 2023-12-01
EP3941055A4 (en) 2022-12-14
CN113557726B (zh) 2023-08-29
JP2023080359A (ja) 2023-06-08
KR20210125089A (ko) 2021-10-15
EP3941055A1 (en) 2022-01-19
JP2020150339A (ja) 2020-09-17
TW202034700A (zh) 2020-09-16
JP7267785B2 (ja) 2023-05-02
CN117041577A (zh) 2023-11-10
US20220060707A1 (en) 2022-02-24
CN113557726A (zh) 2021-10-26
TWI795635B (zh) 2023-03-11
CN117041578A (zh) 2023-11-10
CN117097899A (zh) 2023-11-21
BR112021017977A2 (pt) 2021-11-16
CN117156136A (zh) 2023-12-01

Similar Documents

Publication Publication Date Title
JP2023105156A (ja) 画像符号化装置、画像符号化方法、及びプログラム
JP2024015184A (ja) 画像復号装置及び方法及びプログラム
WO2020184223A1 (ja) 画像復号装置、画像復号方法、及びプログラム
WO2020184227A1 (ja) 画像復号装置、画像復号方法、及びプログラム
WO2020003740A1 (ja) 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム
TWI803709B (zh) 圖像編碼裝置、圖像解碼裝置、其等之控制方法及程式
WO2020183859A1 (ja) 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、及びプログラム
WO2020129498A1 (ja) 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法
JP2021150723A (ja) 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム
WO2020129489A1 (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: 20770717

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 122023003630

Country of ref document: BR

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20217029969

Country of ref document: KR

Kind code of ref document: A

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112021017977

Country of ref document: BR

WWE Wipo information: entry into national phase

Ref document number: 2021128422

Country of ref document: RU

ENP Entry into the national phase

Ref document number: 2020770717

Country of ref document: EP

Effective date: 20211011

ENP Entry into the national phase

Ref document number: 112021017977

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20210910