Nothing Special   »   [go: up one dir, main page]

WO2013089264A1 - Image quantization apparatus, method and program, and image inverse quantization apparatus, method and program - Google Patents

Image quantization apparatus, method and program, and image inverse quantization apparatus, method and program Download PDF

Info

Publication number
WO2013089264A1
WO2013089264A1 PCT/JP2012/082593 JP2012082593W WO2013089264A1 WO 2013089264 A1 WO2013089264 A1 WO 2013089264A1 JP 2012082593 W JP2012082593 W JP 2012082593W WO 2013089264 A1 WO2013089264 A1 WO 2013089264A1
Authority
WO
WIPO (PCT)
Prior art keywords
quantization matrix
quantization
pixel block
image
scaling
Prior art date
Application number
PCT/JP2012/082593
Other languages
French (fr)
Inventor
Mitsuru Maeda
Original Assignee
Canon Kabushiki Kaisha
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 Canon Kabushiki Kaisha filed Critical Canon Kabushiki Kaisha
Publication of WO2013089264A1 publication Critical patent/WO2013089264A1/en

Links

Classifications

    • 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/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/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/172Methods 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 picture, frame or field

Definitions

  • the present invention relates to an image
  • the invention relates to a setting method for a quantization matrix.
  • H.264/MPEG-4 AVC (hereinafter, which will be referred to as H.264) is proposed (NPL 1).
  • seq_scaling_list_present_flag [ i ] is 0, default
  • quantization matrices of the respective block sizes are used as described in Table7-2. Also, by setting
  • seq_scaling_list_present_flag [ i ] 1
  • JCT-VC Joint Collaborative Team on Video Coding
  • ISO/IEC International Telecommunication Union
  • ITU-T International Telecommunication Union
  • HEVC High Efficiency Video Coding
  • the standardization is in progress as an HEVC (High Efficiency Video Coding) coding system (hereinafter, which will be referred to as HEVC) .
  • HEVC High Efficiency Video Coding
  • LCU Large Coding Unit
  • NPL 2 NPL 2
  • the LCU is further divided into sub blocks
  • FIG. 14 is a block diagram of the relevant proposed configuration.
  • a 4 x 4 quantization matrix memory 1401 storing a default value of a quantization matrix
  • a 16 x 16 quantization matrix memory 1420 storing a default value of a quantization matrix corresponding to a 16 x 16 pixel block is provided.
  • a 32 x 32 quantization matrix memory 1421 storing a default value of a quantization matrix corresponding to a 32 x 32 pixel block is provided.
  • quantization matrix holding unit 1408 quantization coefficients of the respective block sizes are input from terminal 1410, and sizes of the blocks are input from a terminal 1409.
  • the quantization coefficients of the input units of blocks are inversely quantized in a 4 x 4 inverse quantization unit 1413, an 8 x 8 inverse quantization unit 1414, a 16 x 16 inverse quantization unit 1415, and a 32 x 32 inverse quantization unit 1416 by using the quantization matrices stored in the quantization matrix holding units.
  • coding data of the quantization matrix is input from a terminal 1422 and decoded in a quantization matrix decoding unit 1423.
  • the quantization matrix to be updated is the quantization matrix corresponding to the 4 x pixel block or the quantization matrix corresponding to the 8 8 pixel block
  • the decoding results are input to the respective quantization matrix holding units without change.
  • the quantization matrix to be updated is the quantization matrix corresponding to the 16 x 16 pixel block or the quantization matrix corresponding to the 32 x 32 pixel block.
  • a quantization matrix scaling change unit 1403 to generate the quantization matrix
  • this quantization matrix corresponding to the 16 x 16 pixel block is expanded two-fold lengthwise and crosswise by a
  • quantization matrix scaling change unit 1404 to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • the quantization matrix of the large block size the quantization matrix corresponding to the number of elements for the relevant size is prepared on the coding side and the decoding side as the default value, and a large capacity is used even in a memory region. A reduction in this memory region is to be realized.
  • an image inverse quantization apparatus that inversely quantizes quantization coefficients by using quantization matrices at a plurality of sizes to calculate coefficients includes: a first default
  • quantization matrix holding unit configured to hold a quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2) as a first default quantization matrix; a scaling change unit configured to calculate a quantization matrix adapted to a block size of p x q (p and q are positive integers that are higher than or equal to 2) from the quantization matrix at the block size of n x m; and a second default
  • quantization matrix holding unit configured to hold the quantization matrix a scaling of which is changed by the scaling change unit as a second default quantization matrix.
  • FIG. 1 is a block diagram of a configuration of an image inverse quantization apparatus according to a first exemplary embodiment.
  • Fig. 2 is a flow chart of an image inverse
  • FIG. 3A, 3B, and 3C illustrate examples of quantization matrices.
  • Fig. 4 is a block diagram of another configuration of the image inverse quantization apparatus according to the first exemplary embodiment.
  • FIG. 5 is a block diagram of another configuration of the image inverse quantization apparatus according to the first exemplary embodiment.
  • Figs. 6A, 6B, and 6C illustrate examples of quantization matrices.
  • Fig. 7 is a block diagram of another configuration of the image inverse quantization apparatus according to the first exemplary embodiment.
  • Fig. 8 illustrates an example of the quantization matrix .
  • FIG. 9 is a block diagram of a configuration of an image quantization apparatus according to a second exemplary embodiment .
  • Fig. 10 is a flow chart of an image quantization processing in the image quantization apparatus according to the second exemplary embodiment.
  • Fig. 11 is a block diagram of another configuration of the image quantization apparatus according to the second exemplary embodiment.
  • Fig. 12 is a block diagram illustrating an example of an image decoding apparatus.
  • Fig. 13 is a block diagram illustrating an example of an image decoding apparatus.
  • Fig. 14 is a block diagram of a configuration of an image inverse quantization apparatus in a related art.
  • Fig. 15 is a block diagram illustrating a
  • Figs. 16A, 16B, and 16C illustrate examples of quantization matrices.
  • FIG. 17 is a block diagram of a configuration of an image inverse quantization apparatus according to a third exemplary embodiment.
  • Fig. 18 is a block diagram of a configuration of an image quantization apparatus according to the third
  • FIG. 12 is a block diagram illustrating an example of an image decoding apparatus using an embodiment of the present invention.
  • a bit stream obtained by coding an image that is input from terminal 1201 is input.
  • a decoding unit 1202 decodes header data thereof, information on a quantization matrix, and a prediction method and a
  • the coding data is output to an inverse
  • a size of a block where a processing is conducted is also input to the inverse
  • quantization unit 1203 as block size information.
  • inverse quantization unit 1203 inversely quantizes the
  • a prediction unit 1205 generates a prediction value from information such as a prediction method and a motion vector and reproduces image data by using the prediction error.
  • the reproduced image data is accumulated in a frame memory 1206 and output to an external part from a terminal 1207.
  • Fig. 13 is a block diagram illustrating an example of an image coding apparatus using an embodiment of the present invention.
  • the image data that is input from a terminal 1301 is input and stored in a frame memory 1302.
  • a prediction unit 1303 performs an intra-frame prediction and a motion compensation prediction from image data stored in a frame memory 1320 to generate a prediction error on the basis of the prediction method in units of blocks and the prediction thereof.
  • the prediction error is input to a transform unit 1304.
  • the transform unit 1304 performs an orthogonal transform on the prediction error to generate an orthogonal transform coefficient.
  • a quantization unit 1305 quantizes the orthogonal transform with the default
  • the quantization matrix or the updated quantization matrix.
  • the quantization matrix is updated, if the update is conducted to seq_scaling_list_present_flag [ i ] representing the presence or absence of the update, the information is output to a coding unit 1306 and an inverse quantization unit 1308.
  • the coding unit 1306 codes the header data, the information on the quantization matrix, and the prediction method and the quantization result of
  • quantization unit 1308 inversely quantizes the quantization result of the prediction error with the default quantization matrix or the updated quantization matrix to generate an orthogonal transform coefficient.
  • An inverse transform and prediction unit 1309 performs an inverse transform on this orthogonal transform coefficient to generate a prediction error and obtains a prediction value with reference to the frame memory 1320 through the prediction method to reconstruct the image.
  • the prediction unit 1303 generates a prediction value from information such as a prediction method and a motion vector and reproduces image data by using the prediction error.
  • the bit stream obtained through the coding is output to the external part from a terminal 1307.
  • FIG. 1 is a block diagram of an image inverse quantization apparatus according to the present exemplary embodiment which constitutes the inverse quantization unit 1203 of Fig. 12.
  • the block sizes to be used are set as 4 x 4, 8 x 8, 16 x 16, and 32 x 32 but are not limited to the above.
  • a 4 x 4 quantization matrix memory 101 stores a default value of the quantization matrix
  • quantization matrix memory 102 stores a default value of the quantization matrix corresponding to the 8 8 pixel block.
  • a quantization matrix scaling change unit 103 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix
  • a quantization matrix scaling change unit 104 is configured to expand the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • a 4 x 4 quantization matrix holding unit 105 holds the quantization matrix corresponding to the 4 x 4 pixel block.
  • An 8 x 8 quantization matrix holding unit 106 holds the quantization matrix corresponding to the 8 8 pixel block.
  • a 16 x 16 quantization matrix holding unit 107 holds the quantization matrix corresponding to the 16 x 16 pixel block.
  • a 32 x 32 quantization matrix holding unit 108 holds the quantization matrix corresponding to the 32 x 32 pixel block.
  • a terminal 109 is a terminal connected to the decoding unit 1202 of Fig. 12 to which the block size information indicating the block' size of the input image data is input.
  • a terminal 110 is a terminal connected to the decoding unit 1202 of Fig. 12 to which the quantization coefficient is input in units of block sizes.
  • a buffer 111 holds the quantization coefficient of the block size where the processing is conducted.
  • a selector 112 selects an output destination while following the block size
  • a 4 x 4 inverse quantization unit 113 is configured to inversely quantize the quantization
  • An 8 x 8 inverse quantization unit 114 is configured to inversely quantize the quantization coefficient of the 8 x 8 pixel block.
  • a 16 x 16 inverse quantization unit 115 is configured to inversely quantize the quantization coefficient of the 16 x 16 pixel block.
  • a 32 x 32 inverse quantization unit 116 is configured to inversely quantize the quantization
  • a selector 117 selects an input destination while following the block size information.
  • a buffer 118 holds the orthogonal transform coefficient obtained through the inverse quantization.
  • a terminal 119 is connected to the inverse transform unit 1204 of Fig. 12 from which the orthogonal transform coefficient is output.
  • To a terminal 120 the coding data with regard to the update of the quantization matrix is input.
  • a quantization matrix decoding unit 121 is configured to decode the coding data of the update of the quantization matrix. The coding data on the presence or absence of the update, the size of the updated quantization matrix, and the element data on the quantization matrix to be updated are generated from these pieces of coding data.
  • a selector 122 changes the output destination on the basis of the block size where the quantization matrix input from the
  • quantization matrix decoding unit 121 is updated.
  • the configuration of inputting the quantization result of the orthogonal transform coefficient is adopted but is not limited to this.
  • the input is conducted in units of blocks, but the configuration is not also limited to this.
  • the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 102 to the 8 x 8 quantization matrix holding unit 106. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to the quantization
  • the quantization matrix scaling change unit 103 expands the quantization matrix corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise and generates the quantization matrix
  • the 16 x 16 quantization matrix holding unit 107 holds the input
  • the quantization matrix scaling change unit 104 expands the quantization matrix corresponding to the 16 x 16 pixel block two-fold lengthwise and crosswise and generates the quantization matrix corresponding to the 32 x 32 pixel block to be input to the 32 x 32 quantization matrix holding unit 108.
  • the 32 x 32 quantization matrix holding unit 108 holds the input quantization matrix corresponding to the 32 x 32 pixel block.
  • the quantization result for one block is input from the terminal 110 to the buffer 111. Also, the block size information on the input quantization result is input from the terminal 109 to the selectors 112 and 117.
  • the quantization result corresponding to the 4 x 4 pixel block is input from the terminal 110 to the buffer 111 to be held.
  • the selector 112 sets the x 4 inverse quantization unit 113 as the output destination since the block size information represents the 4 x 4 pixel block.
  • the 4 x 4 inverse quantization unit 113 inversely quantizes the quantization result corresponding to the 4 x 4 pixel block by using the quantization matrix corresponding to the x pixel block held in the x 4 quantization matrix holding unit 105 to generate a 4 x 4 orthogonal transform coefficient.
  • the 4 x orthogonal transform coefficient is output to the buffer 118 via the selector 117.
  • the quantization result corresponding to the 8 8 pixel block is input from the terminal 110 to the buffer 111 to be held.
  • the selector 112 sets the 8 x 8 inverse quantization unit 114 as the output destination since the block size information represents the 8 x 8 pixel block.
  • the 8 x 8 inverse quantization unit 114 inversely quantizes the quantization result corresponding to the 8 x 8 pixel block by using the quantization matrix corresponding to the 8 8 pixel block held in the 8 x 8 quantization matrix holding unit 106 to generate an 8 x 8 orthogonal transform coefficient.
  • the 8 x 8 orthogonal transform coefficient is output to the buffer 118 via the selector 117.
  • the quantization result corresponding to the 16 x 16 pixel block is input from the terminal 110 to the buffer 111 to be held.
  • the selector 112 sets the 16 x 16 inverse quantization unit 115 as the output destination since the block size information represents the 16 x 16 pixel block.
  • the 16 x 16 inverse quantization unit 115 inversely quantizes the quantization result
  • the 16 x 16 orthogonal transform coefficient is output to the buffer 118 via the selector 117.
  • the quantization result corresponding to the 32 x 32 pixel block is input from the terminal 110 to the buffer 111 to be held.
  • the selector 112 sets the 32 x 32 inverse quantization unit 116 as the output destination since the block size information represents the 32 x 32 pixel block.
  • the 32 x 32 inverse quantization unit 116 inversely quantizes the quantization result
  • the 32 x 32 orthogonal transform coefficient is output to the buffer 118 via the selector 117.
  • the buffer 118 outputs the orthogonal transform coefficients of the respective block sizes via the terminal 119.
  • the quantization matrix can be coded in pic_parameter_set . According to this, it is possible to conduct the update of the quantization matrix even in the middle of the sequence.
  • decoding unit 1202 inputs a situation where the update of the quantization matrix exists to the inverse quantization unit 1203.
  • pic_scaling_list_present_flag [ i ] included in pic_parameter_set is also decided.
  • quantization matrix to be updated are input to the inverse quantization unit 1203.
  • these pieces of coding data are input to the quantization matrix decoding unit 121.
  • the quantization matrix decoding unit 121 decodes the code of pic_scaling_matrix_present_flag to obtain the presence or absence of the update of the quantization matrix. In a case where the update is conducted, it is possible to decide the quantization matrix to be updated by
  • the selector 122 selects the 4 x quantization matrix holding unit 105 as the output destination.
  • 4 x 4 16 pieces of elements output from the quantization matrix decoding unit 121 are input and held in the x quantization matrix holding unit 105, and the quantization matrix corresponding to the 4 x 4 pixel block of each block in the picture is obtained.
  • 8 x 8 64 pieces of elements output from the quantization matrix decoding unit 121 are input and held in the 8 x 8 quantization matrix holding unit 106, and the quantization matrix corresponding to the 8 x 8 pixel block of each blocks in the picture is obtained.
  • the selector 122 selects the quantization matrix scaling change unit 103 as the output destination.
  • the quantization matrix scaling change unit 103 inputs the quantization matrix corresponding to the 8 x 8 pixel block held in the 8 x 8 quantization matrix holding unit 106.
  • the quantization matrix scaling change unit 103 expands the input quantization matrix
  • Fig. 3A illustrates an example of the quantization matrix corresponding to the 8 x 8 pixel block, in which the expansion thereof is conducted two-fold lengthwise and crosswise.
  • NPL 3 an expansion method described in the above-described literature
  • N x N quantization matrix Q (i, j) (0 ⁇ i ⁇ N - 1, 0 ⁇ j ⁇ N
  • the expansion may be conducted in the following manner.
  • Fig. 3B illustrates an expansion result thereof.
  • the expansion may be conducted in the following manner.
  • the expansion may be conducted in the following manner.
  • the calculation may also be
  • S, T, U, and V are defined as follows while A//B represents a product at a time when A is divided by B and mod (A, B) represents a reminder at a time when A is divided by B.
  • W (S x (2N - 1 - x) + T x x)/(2N - 1)
  • Fig. 3C illustrates a result thereof.
  • the method for the scaling change is not limited, but the methods on the decoding side and the coding sides are matched with each other.
  • the generated quantization matrix is held in the 16 x 16 quantization matrix holding unit 107.
  • the selector 122 selects the quantization matrix scaling change unit 104 as the output destination.
  • the quantization matrix scaling change unit 103 inputs the quantization matrix corresponding to the 16 x 16 pixel block held in the 16 x 16 quantization matrix holding unit 107.
  • the quantization matrix scaling change unit 104 expands the input quantization matrix
  • the same method as in the quantization matrix scaling change unit 1403 may be employed.
  • the generated quantization matrix is held in the 32 x 32 quantization matrix holding unit 108.
  • Fig. 2 is a flow chart of an image inverse
  • step S201 the quantization matrix corresponding to the 4 x 4 pixel block and the quantization matrix corresponding to the 8 x 8 pixel block held as the default quantization matrices are read out from the respective memories, and these
  • quantization matrices are held to be used for the inverse quantization .
  • step S202 the quantization matrix corresponding to the 8 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding . to the 16 x 16 pixel block, and the quantization matrix is held to be used for the inverse quantization.
  • step S203 the quantization matrix corresponding to the 16 x 16 pixel block is expanded two-fold lengthwise and crosswise to
  • step S204 it is determined whether or not the update of the quantization matrix is conducted. In a case where the quantization matrix is not conducted, the flow proceeds to step S210, and in a case where the quantization matrix is conducted, the flow proceeds to step S205. In step S205, since the update of the quantization matrix is conducted, the coding data of the quantization matrix to be updated is input and decoded. [0067] In step S206, it is determined whether or not a reset to the default quantization matrix is conducted. If the reset to the default quantization matrix is conducted, the flow returns to step S201, and from step S201 to step S203, the default quantization matrix is set. If the reset is not conducted, the flow proceeds to step S207.
  • step S207 respective pieces of coding data of the quantization matrix corresponding to the 4 x pixel block and the quantization matrix corresponding to the 8 x 8 pixel block are decoded to generate respective quantization matrices.
  • the quantization matrices are held to be used for the inverse quantization.
  • step S208 similarly as in step S202, the quantization matrix corresponding to the 8 x 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block, and the quantization matrix corresponding is held to be used for the inverse quantization.
  • step S209 similarly as in step S203, the quantization matrix corresponding to the 16 x 16 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block, and the quantization matrix corresponding is held to be used for the inverse quantization.
  • step S210 the quantization coefficient is read.
  • step S211 the read quantization coefficient is inversely quantized by using the quantization matrix at the relevant block size, and the orthogonal transform coefficient is calculated to be output.
  • step S212 it is determined whether or not the inverse quantization for all the quantization coefficients of the LCU is ended, and if the inverse quantization is not ended, the flow returns to step S204, and the processing for the next block is conducted.
  • step S206 it is determined whether or not the reset to the default quantization matrix is conducted, but this determination may be omitted, and for the coding data, the coding data of the quantization matrix may be decoded.
  • the quantization matrix corresponding to the 32 x 32 pixel block is generated through the expansion from the quantization matrix corresponding to the 16 x 16 pixel block, but the method is not limited to this.
  • Fig. 4 illustrates a configuration of an image inverse quantization apparatus having a different configuration. In Fig. 4, the block where the same operation as Fig. 1 is conducted is assigned with the same numeral, and a description thereof will be omitted.
  • a quantization matrix scaling change unit 404 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • FIG. 5 illustrates a configuration of an image inverse quantization apparatus having a different configuration.
  • the block where the same operation as Fig. 1 is conducted is assigned with the same numeral, and a description thereof will be omitted.
  • a quantization matrix scaling change unit 501 is configured to reduce the quantization matrix corresponding to the 8 x 8 pixel block one-half lengthwise and crosswise to generate the quantization matrix corresponding to the 4 x 4 pixel block.
  • the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8
  • quantization matrix memory 102 to the quantization matrix scaling change unit 501.
  • the quantization matrix scaling change unit 501 reduces the quantization matrix
  • Figs. 6A, 6B, and 6C illustrate examples thereof.
  • Fig. 6A illustrates a quantization matrix generated by calculating average values with the elements of 4 x 4 from Fig. 3A.
  • Fig. 6B illustrates a quantization matrix generated through a thinning out with the elements of 4 x 4 from Fig. 3A.
  • the following method may be employed.
  • Fig. 6C illustrates a quantization matrix generated by using weighted averages with the elements of 4 x 4 from Fig. 3A.
  • the square quantization matrices have been described, but the shape is not limited to the above.
  • a 16 x 8 pixel block, an 8 x 16 pixel block, and the like may also be used.
  • a quantization matrix corresponding to the 16 x 8 pixel block is generated through the expansion from the quantization matrix
  • quantization matrix corresponding to the 8 x 16 pixel block is generated, through the above-described method, the expansion only in the vertical direction is conducted.
  • quantization matrix corresponding to the 16 x 8 pixel block is generated through the reduction from the quantization matrix corresponding to the 16 x 16 pixel block, through the above-described method, the reduction only in the vertical direction is conducted. Furthermore, a quantization matrix corresponding to a 16 x 4 pixel block may of course be used. Also, the size is not limited to these block sizes.
  • Fig. 7 illustrates the configuration of the image inverse quantization apparatus having the different
  • a quantization matrix scaling change unit 703 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix
  • Fig. 8 illustrates an example of the scaling change.
  • the quantization matrix corresponding to the 8 8 pixel block of Fig. 6A is
  • a 16 x 8 quantization matrix holding unit 707 holds the quantization matrix corresponding to the 16 x 8 pixel block.
  • An 8 x 16 quantization matrix holding unit 708 holds the quantization matrix corresponding to the 8 x 16 pixel block.
  • a 16 x 8 inverse quantization unit 715 is configured to inversely quantize a quantization coefficient of the 16 x 8 pixel block.
  • An 8 x 16 inverse quantization unit 716 is configured to inversely quantize a quantization coefficient of the 8 x 16 pixel block.
  • the quantization coefficient of the 16 x 8 pixel block when the quantization coefficient of the 16 x 8 pixel block is input from the terminal 110, the quantization coefficient is input to the 16 x 8 inverse quantization unit 715 via the selector 112.
  • the quantization coefficient of the 16 x 8 pixel block is inversely quantized by using the quantization matrix of the 16 x 8 quantization matrix holding unit 707 to generate a 16 x 8 orthogonal transform coefficient.
  • the quantization coefficient is input to the 8 x 16 inverse quantization unit 716 via the selector 112 and is inversely quantized by using the
  • these block sizes according to the exemplary embodiment are not limited to the above.
  • the quantization matrix corresponding to the 16 x 8 pixel block and the quantization matrix corresponding to the 8 x 16 pixel block are obtained through the expansion from the quantization matrix corresponding to the 8 x 8 pixel block, but the method is not limited to the above.
  • the quantization matrices may also be obtained through the reduction from the quantization matrix corresponding to the 16 x 16 pixel block.
  • Fig. 9 is a block diagram of an image quantization apparatus according to the present exemplary embodiment which constitutes the quantization unit 1305 of Fig. 13.
  • a 4 x 4 quantization matrix memory 901 stores a default value of the quantization matrix
  • quantization matrix memory 902 stores a default value of the quantization matrix corresponding to the 8 x 8 pixel block.
  • a quantization matrix scaling change unit 903 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix
  • a quantization matrix scaling change unit 904 is configured to expand the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • a 4 x 4 quantization matrix holding unit 905 holds the quantization matrix corresponding to the 4 x 4 pixel block.
  • An 8 x 8 quantization matrix holding unit 906 holds the quantization matrix corresponding to the 8 8 pixel block.
  • a 16 x 16 quantization matrix holding unit 907 holds the quantization matrix corresponding to the 16 x 16 pixel block.
  • a 32 x 32 quantization matrix holding unit 908 holds the quantization matrix corresponding to the 32 x 32 pixel block.
  • a terminal 909 is connected to the transform unit 1304 of Fig. 13, to which the block size information
  • a terminal 910 is connected to the transform unit 1304 of Fig. 13, to which the orthogonal transform coefficient is input in units of block sizes.
  • a buffer 911 holds the orthogonal transform coefficient of the block size where the processing is conducted.
  • a selector 912 selects an output destination while following the block size information.
  • a 4 x 4 quantization unit 913 is configured to quantize the quantization coefficient of the 4 x 4 pixel block.
  • An 8 x 8 quantization unit 914 is configured to quantize the
  • a 16 x 16 quantization unit 915 is configured to quantize the orthogonal transform coefficient of the 16 x 16 pixel block.
  • a 32 x 32 quantization unit 916 is configured to quantize the orthogonal transform coefficient of the 32 x 32 pixel block.
  • a selector 917 selects an input destination while following the block size information.
  • a buffer 918 holds the quantization coefficient obtained through the
  • a terminal 919 is connected to the coding unit 1306 and the inverse quantization unit 1308 of Fig. 13 from which the quantization coefficient is output.
  • a terminal 921 is connected to a user interface that is not illustrated in the drawing, to which an instruction for conducting the update of the quantization matrix is input.
  • a 4 x 4 quantization matrix correction unit 922 is
  • An 8 x 8 quantization matrix correction unit 923 is configured to generate a quantization matrix at a time when the quantization matrix corresponding to the 8 x 8 pixel block is updated.
  • a selector 924 inputs corrected quantization matrices from the 4 x quantization matrix correction unit 922 and the 8 x 8 quantization matrix correction unit 923 and selects an output destination on the basis of an instruction from the terminal 921.
  • quantization matrix coding unit 925 is configured to code the information on the update of the quantization matrix.
  • the coding data with regard to the update of the quantization matrix is output.
  • transform coefficient is adopted but is not limited to this. Also, for the description, the input is conducted in units of blocks, but the configuration is not also limited to this.
  • the respective elements of the quantization matrix corresponding to the 4 x 4 pixel block are input from the x 4 quantization matrix memory 901 to the 4 x 4 quantization matrix holding unit 905. Also, at the same time, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 902 to the 8 x 8 quantization matrix holding unit 906. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to a quantization matrix scaling change unit 903.
  • the quantization matrix scaling change unit 903 expands the quantization matrix
  • the 16 x 16 quantization matrix holding unit 907 holds the input
  • the quantization matrix scaling change unit 904 expands the quantization matrix corresponding to the 16 x 16 pixel block two-fold lengthwise and crosswise to generate the
  • the 32 x 32 quantization matrix holding unit 908 holds the input quantization matrix corresponding to the 32 x 32 pixel block.
  • the orthogonal transform coefficient for one block is input from the terminal 910 to the buffer 911. Also, the block size information of the input orthogonal transform coefficient is input from the terminal 909 to the selectors 912 and 917.
  • the orthogonal transform coefficient corresponding to the 4 4 pixel block is input from the terminal 910 to the buffer 911 to be held. Since the block size information is the 4 x pixel block, the selector 912 sets the output destination as the 4 x 4
  • the quantization unit 913 quantizes the orthogonal transform coefficient corresponding to the 4 x pixel block by using the quantization matrix corresponding to the 4 4 pixel block held in the 4 x 4 quantization matrix holding unit 905 to generate a 4 x 4 quantization coefficient.
  • the 4 x 4 quantization coefficient is output to the buffer 918 via the selector 917.
  • the orthogonal transform coefficient corresponding to the 8 x 8 pixel block is input from the terminal 910 to the buffer 911 to be held. Since the block size information is the 8 x 8 pixel block, the selector 112 sets the output destination as the 8 x 8 quantization unit 914.
  • the 8 x 8 quantization unit 914 quantizes the orthogonal transform coefficient corresponding to the 8 x 8 pixel block by using the quantization matrix corresponding to the 8 8 pixel block held in the 8 x 8 quantization matrix holding unit 906 to generate an 8 x 8 quantization coefficient.
  • the 8 x 8 quantization coefficient is output to the buffer 918 via the selector 917.
  • the orthogonal transform coefficient corresponding to the 16 x 16 pixel block is input from the terminal 910 to the buffer 911 to be held. Since the block size information is the 16 x 16 pixel block, the selector 912 sets the output destination as the 16 x 16 quantization unit 915.
  • the 16 x 16 quantization unit 915 quantizes the orthogonal transform coefficient corresponding to the 16 x 16 pixel block by using the quantization matrix corresponding to the 16 x 16 pixel block held in the 16 x 16 quantization matrix holding unit 906 to generate a 16 x 16 quantization coefficient.
  • the orthogonal transform coefficient corresponding to the 32 x 32 pixel block is input from the terminal 910 to the buffer 911 to be held.
  • the selector 912 sets the output destination as the 32 x 32 quantization unit 916.
  • the 32 x 32 quantization unit 916 quantizes the orthogonal transform coefficient corresponding to the 32 x 32 pixel block by using the quantization matrix corresponding to the 32 x 32 pixel block held in the 32 x 32 quantization matrix holding unit 908 to generate a 32 x 32 quantization coefficient.
  • the buffer 918 outputs the orthogonal transform coefficients of the respective block sizes via the terminal 919.
  • the quantization matrix in pic_parameter_set As described also according to the first exemplary embodiment, it is possible to code the quantization matrix in pic_parameter_set according to the H.264. With this configuration, it is possible to conduct the update of the quantization matrix even in the middle of the sequence. A case will be described in which an instruction of the update of the quantization matrix is issued by the user from the terminal 921. A case of updating the quantization matrix corresponding to the 4 x pixel block and the quantization matrix corresponding to the 8 x 8 pixel block will be described first.
  • the 4 x 4 quantization matrix correction unit 922 generates an updated new quantization matrix corresponding to the x 4 pixel block to be input to the selector 924.
  • the selector 924 outputs the input
  • the 4 x 4 quantization matrix holding unit 905 holds this
  • the quantization matrix coding unit 925 generates and outputs the code representing
  • pic_parameter_set and also outputs a quantization matrix size code indicating that the subsequent coding data is a coefficient of the quantization matrix corresponding to the 4 x 4 pixel block. Subsequently, 16 pieces of elements of the quantization matrix are coded. These pieces of coding data are output from the terminal 926. [0090] Similarly, the 8 x 8 quantization matrix correction unit 923 generates an updated new quantization matrix
  • the selector 924 outputs the input
  • the 8 8 quantization matrix holding unit 906 holds this quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 8 x 8 pixel block.
  • the quantization matrix coding unit 925 generates and outputs the code representing pic_parameter_set and also outputs a quantization matrix size code indicating that the subsequent coding data is a coefficient of the quantization matrix corresponding to the 8 8 pixel block. Subsequently, 64 pieces of elements of the quantization matrix are coded. These pieces of coding data are output from the terminal 926.
  • the quantization matrix scaling change unit 903 expands the quantization matrix corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise similarly as in the quantization matrix scaling change unit 103 according to the first exemplary embodiment to generate the quantization matrix corresponding to the 16 x 16 pixel block.
  • the generated quantization matrix is input to the 16 x 16 quantization matrix holding unit 907.
  • the 16 x 16 quantization matrix holding unit 907 holds this quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 16 x 16 pixel block.
  • the quantization matrix coding unit 925 codes only the state in which the
  • quantization matrix corresponding to the 16 x 16 pixel block is updated to be output to the terminal 926.
  • the quantization matrix scaling change unit 904 expands the input quantization matrix corresponding to the 8 8 pixel block four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • the generated quantization matrix is input to the 32 x 32 quantization matrix holding unit 908.
  • quantization matrix holding unit 908 holds this quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 32 x 32 pixel block.
  • the quantization matrix coding unit 925 codes only the state in which the
  • quantization matrix corresponding to the 32 x 32 pixel block is updated to be output to the terminal 926.
  • Fig. 10 is a flow chart of an image quantization processing in the image coding apparatus according to the second exemplary embodiment.
  • step S1001 the quantization matrix corresponding to the 4 pixel block and the quantization matrix corresponding to the 8 x 8 pixel block held as the default quantization matrices are read from the respective memories. These quantization matrices are held to be used for the quantization and the inverse quantization .
  • step S1002 the quantization matrix
  • step S1003 the quantization matrix is held to be used for the quantization and the inverse quantization.
  • quantization matrix corresponding to the 8 x 8 pixel block is expanded four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • the quantization matrix is held to be used for the quantization and the inverse quantization.
  • step S1004 it is determined whether or not the update of the quantization matrix is conducted. In a case where the quantization matrix is not conducted, the flow proceeds to step S1009, and in a case where the quantization matrix is conducted, the flow proceeds to step S1005. In step S1005, it is determined whether or not the update is an update of the default quantization matrix. In a case where a change is made to the default quantization matrix, the flow returns to step S1001, and the default quantization matrix is set again. In a case where the change is made, the flow proceeds to step S1006.
  • step S1006 the update is conducted on the basis of the new respective elements of the quantization matrix corresponding to the 4 4 pixel block and the quantization matrix corresponding to the 8 x 8 pixel block to be held.
  • step S1007 pic_scaling_list_present_flag [ i ] is coded, and the updated respective elements are coded.
  • step S1008 the same scaling change method is used on the decoding side and coding side, and the
  • quantization matrix corresponding to the 8 x 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block.
  • the quantization matrix is held to be used for the quantization and the inverse quantization.
  • step S1009 the same scaling change method is used on the decoding side and coding side, and the
  • step S1010 the block size of the block to be quantized and the orthogonal transform coefficient are read.
  • step S1011 the orthogonal transform coefficient is quantized by using the corresponding quantization matrix while following the block size.
  • step S1012 it is
  • the case has been described as an example in which the block size of the quantization matrix is coded as the coding data, but by setting a rule of conducting the coding in order from the one with a smaller block size, it is possible to omit this coding data of the block size.
  • the quantization matrix to be updated may be carried out so as to update only the quantization matrix corresponding to the 8 x 8 pixel block with pic_scaling_list_present_flag [ i ]. Also, in a case where only the quantization matrix obtained through the expansion is updated, the coding is carried out so that the update of the quantization matrix corresponding to the 8 x 8 pixel block is not conducted with
  • the coding is carried out so that the update of the quantization matrix corresponding to the 16 x 16 pixel block is conducted with pic_scaling_list_present_flag [ i ], for example.
  • the quantization matrix corresponding to the 32 x 32 pixel block is generated from the quantization matrix corresponding to the 8 x 8 pixel block, but the once
  • Fig. 11 illustrates a configuration of an image quantization
  • a 16 x 16 quantization matrix correction unit 1101 is configured to generate 16 x 16 quantization matrix update information for updating the quantization matrix corresponding to the 16 x 16 pixel block.
  • a 32 x 32 quantization matrix correction unit 1102 is configured to generate 32 x 32 quantization matrix update information for updating the quantization matrix corresponding to the 32 x 32 pixel block.
  • a selector 1124 inputs the corrected quantization matrix from he 4 x 4 quantization matrix correction unit 922 or the 8 x 8 quantization matrix
  • a quantization matrix coding unit 1125 is configured to code the information on the update of the quantization matrix.
  • the 16 x 16 quantization matrix correction unit 1101 generates the 16 x 16 quantization matrix update information.
  • the generated 16 x 16 quantization matrix update information is input to the quantization matrix coding unit 1125 via the selector 1124.
  • the quantization matrix coding unit 1125 performs the coding so that the update of the quantization matrix corresponding to the 16 x 16 pixel block is carried out with pic_scaling_list_present_flag [ i ].
  • the 32 x 32 quantization matrix correction unit 1102 generates the 32 x 32 quantization matrix update information.
  • the generated 32 x 32 quantization matrix update information is input to the quantization matrix coding unit 1125 via the selector 1124.
  • the quantization matrix coding unit 1125 performs the coding so that the update of the quantization matrix corresponding to the 32 x 32 pixel block is carried out with pic_scaling_list_present_flag [ i ].
  • the 16 x 16 quantization matrix correction unit 1101 can only update the corresponding quantization matrix corresponding to the 8 x 8 pixel block.
  • the quantization matrix corresponding to the 8 x 8 pixel block is generated by reducing the updated quantization matrix corresponding to the 16 x 16 pixel block one-half lengthwise and crosswise.
  • the selector 1124 inputs the generated quantization matrix corresponding to the 8 x 8 pixel block to the quantization matrix scaling change unit 903.
  • the quantization matrix scaling change unit 903 expands the quantization matrix two-fold lengthwise and crosswise as described above to generate the quantization matrix corresponding to the 16 x 16 pixel block.
  • the quantization matrix coding unit 1125 codes the generated quantization matrix corresponding to the 8 x 8 pixel block. It is however noted that the update of the quantization matrix corresponding to the 8 8 pixel block is not conducted. Furthermore, the above-described 16 x 16
  • quantization matrix update information is coded. It is possible to carry out a similar processing also on the quantization matrix corresponding to the 32 x 32 pixel bloc
  • a non-square quantization matrix for example, the quantization matrix corresponding to the 8 x 16 pixel block may also be used.
  • the block sizes to be used are set as 4 x 4, 8 x 8, 16 x 16, and 32 x 32 but are not limited to the above. Configurations of the
  • quantization matrix scaling change units 103 and 104 are different from those according to the first exemplary embodiment .
  • the respective elements of the quantization matrix corresponding to the x 4 pixel block are input from 4 x 4 quantization matrix memory 101 to the 4 x 4 quantization matrix holding unit 105. Also, at the same time, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 102 to the 8 x 8 quantization matrix holding unit 106. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to the quantization matrix scaling change unit 103.
  • the quantization matrix scaling change unit 103 expands the quantization matrix corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block to be input to the 16 x 16 quantization matrix holding unit 107 and the quantization matrix scaling change unit 104.
  • the expansion is conducted in a manner that the respective elements of the quantization matrix are copied through repetitions in the vertical and horizontal
  • Fig. 16A illustrates a result obtained by expanding the 8 x 8 quantization matrix of Fig. 3A according to the present exemplary embodiment.
  • the respective elements of the expanded quantization matrix corresponding to the 16 x 16 pixel block are stored in the 16 x 16 quantization matrix holding unit 107.
  • the quantization matrix scaling change unit 104 expands the quantization matrix corresponding to the 16 x 16 pixel block two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • the expansion method is the same method used in the quantization matrix scaling change unit 103.
  • the generated quantization matrix corresponding to the 32 x 32 pixel block is held in the 32 x 32 quantization matrix holding unit 108.
  • the input quantization matrix is decoded in the quantization matrix decoding unit 121 and passes through the selector 122 to be expanded in the quantization matrix scaling change units 103 and 104 through the above-described method.
  • Fig. 2 illustrating the flow chart of the image inverse quantization processing
  • the quantization matrix is expanded in steps S208 and S209 through the above-described expansion method.
  • quadruple memory space can be reduced.
  • the expansion of the quantization matrix by adopting a simple configuration such as the copying of the elements, it is possible to largely decrease a circuit size of the scaling change unit and a calculation cost.
  • the quantization matrix scaling change unit 703 expands the quantization matrix two-fold lengthwise and crosswise, the expansion is made while F is set as 2 by using the above-described expression. Also, in the
  • the quantization matrix scaling change units 903 and 904 illustrated in Fig. 9 are realized by being provided with the same configuration as the quantization matrix scaling change units 103 and 104.
  • the quantization matrix is expanded in steps S1008 and S1009 through the above- described expansion method.
  • the value of the quantization matrix according to the present exemplary embodiment is not limited to this.
  • Fig. 17 is a block diagram of an image inverse quantization apparatus according to the present exemplary embodiment which constitutes the inverse quantization unit 1203 of Fig. 12.
  • blocks realizing the same functions as those in the image decoding apparatus of Fig. 1 are assigned with the same numeral, and a detailed
  • a 16 x 16 quantization particular element memory 1701 stores a particular element in the quantization matrix corresponding to the 16 x 16 pixel block.
  • a value of an element Q' (0, 0) corresponding to a DC component is stored.
  • a 32 x 32 quantization particular element memory 1702 stores a particular element in the quantization matrix corresponding to the 32 x 32 pixel block.
  • a value of an element Q' (0, 0) corresponding to a DC component is stored.
  • a quantization matrix scaling change unit 1703 expands the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix corresponding to the 16 x 16 pixel block.
  • a quantization matrix scaling change unit 1704 expands the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • transform coefficient is adopted but is not limited to this. Also, for the description, the input is conducted in units of blocks, but the configuration is not also limited to this.
  • the respective elements of the quantization matrix corresponding to the 8 8 pixel block are input from the 8 x 8 quantization matrix memory 102 to the quantization matrix scaling change unit 1703.
  • a default value of the element corresponding to the DC component is input from the 16 x 16 quantization particular element memory 1701.
  • the quantization matrix scaling change unit 1703 inputs the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block of the 8 x 8 quantization matrix memory.
  • the expansion is conducted through the expansion method of carrying out the repetitions in the vertical and horizontal directions as described according to the third exemplary embodiment, and the quantization matrix corresponding to the 16 x 16 pixel block is generated.
  • the default value of the DC component of the generated quantization matrix is replaced with the value input from the 16 x 16 quantization particular element memory 1701.
  • FIG. 16C illustrates the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block stored in the 8 8 quantization matrix memory 102. Also, Fig. 16C
  • quantization matrix corresponding to the 16 x 16 pixel block is generated.
  • the quantization matrix scaling change unit 1704 similarly as in the quantization matrix scaling change unit 1703, after the expansion based on the copying is conducted, the default value of the element corresponding to the DC
  • Fig. 2 illustrating the flow chart of the image inverse quantization processing
  • the quantization matrix is expanded in steps S208 and S209 through the above-described expansion method.
  • the inverse quantization in the inverse quantization, it is possible to omit the memory storing the default quantization matrices at the quantization matrix corresponding to the 16 x 16 pixel block and the quantization matrix corresponding to the 32 x 32 pixel block.
  • the particular element is separately used for the quantization matrix. According to this, by changing the elements of the quantization matrix only for the element where the influence on the image is large, it is possible to improve the image quality by setting the DC component as the particular element where the influence on the image is large only with use of an extremely small memory space (1 byte in this case) .
  • values of Q' (1, 0) and Q 1 (0, 1) can also be used.
  • Fig. 18 illustrates a detailed block diagram thereof.
  • blocks realizing the same functions as those in the image coding apparatus of Fig. 9 are assigned with the same numerals, and a detailed description thereof will be omitted.
  • a 16 x 16 quantization particular element memory 1801 stores a particular element in the quantization matrix corresponding to the 16 x 16 pixel block.
  • a value of the element Q' (0, 0) corresponding to the DC component is stored.
  • a 32 x 32 quantization particular element memory 1802 stores a particular element in the quantization matrix corresponding to the 32 x 32 pixel block.
  • a value of the element Q 1 (0, 0) corresponding to the DC component is stored.
  • a quantization matrix scaling change unit 1804 is configured to expand the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block.
  • quantization matrix corresponding to the 4 x 4 pixel block are input from the 4 4 quantization matrix memory 901 to the 4 x 4 quantization matrix holding unit 905. Also, at the same time, the respective elements of the quantization
  • the quantization matrix holding unit 906 Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to the quantization matrix scaling change unit 1803. Also, the default value of the element corresponding to the DC component is input from 16 x 16 quantization particular element memory 1801. First, the quantization matrix scaling change unit 1803 inputs the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block of the 8 8 quantization matrix memory. After that, the expansion is conducted through the expansion method of conducting the repetitions in the
  • the quantization matrix corresponding to the 16 x 16 pixel block is generated.
  • the default value of the DC component of the generated quantization matrix is replaced with the value input from the 16 x 16 quantization particular element memory 1801.
  • the 16 x 16 quantization matrix holding unit 907 holds the input quantization matrix corresponding to the 16 x 16 pixel block.
  • the default value of the element corresponding to the DC component stored in the 32 x 32 quantization particular element memory 1802 is input for the replacement.
  • the 32 x 32 quantization matrix holding unit 908 holds the input quantization matrix corresponding to the 32 x 32 pixel block.
  • the quantization in the quantization, it is possible to omit the memory storing the default quantization matrices at the quantization matrix corresponding to the 16 x 16 pixel block and the quantization matrix corresponding to the 32 x 32 pixel block.
  • the particular element is used for the
  • the expansion based on the repetition of the elements in the quantization matrix scaling change unit has been described as an example, but the expansion method is not limited to this.
  • Fig. 1, Fig. 4, Fig. 5, Fig. 7, Fig. 9, and Fig. 11 may be structured by a computer program.
  • Fig. 15 is a block diagram of a constitution example of hardware of a computer that can be applied to an image display apparatus according to the above-described respective embodiments.
  • a CPU 1501 performs a control on an entire computer by using a computer program or data stored in a RAM 1502 or a ROM 1503 and also executes the respective processings described as being carried out by the image processing apparatus according to the above-described respective embodiments. That is, the CPU 1501 functions as the
  • the RAM 1502 has an area for temporarily storing a computer program or data loaded from an external storage apparatus 1506, data obtained from an external part via an I/F (interface) 1509, and the like. Furthermore, the RAM 1502 has a work area that is used when the CPU 1501 executes various processings. That is, the RAM 1502 is, for example, assigned as a frame memory, or the other various areas can appropriately be provided.
  • the ROM 1503 stores setting data of the present computer, a boot program, and the like.
  • An operation unit 1504 is composed of a key board, a mouse, or the like, and while a user of the present computer operates the operation unit, it is possible to input various instructions to the CPU 1501.
  • a display unit 1505 displays a processing result by the CPU 1501.
  • the display unit 1505 is composed, for example, of a display apparatus such as a liquid crystal display.
  • the external storage apparatus 1506 is a large- capacity information storage apparatus that is represented by a hard disc drive apparatus.
  • the external storage apparatus 1506 saves an OS (operation system) and a computer program for causing the CPU 1501 to realize the functions of the respective units illustrated in Fig. 1, Fig. 4, Fig. 5, Fig. 7, Fig. 9, Fig. 11, Fig. 17, and Fig. 18.
  • the external storage apparatus 1506 may save respective pieces of image data as processing targets.
  • the computer program or the data saved in the external storage apparatus 1506 is appropriately loaded to the RAM 1502 while following a control by the CPU 1501 to be subjected to the processing by the CPU 1501.
  • a network such as a LAN or the internet and another equipment such as a projection apparatus or a display apparatus can be connected, and the present computer can obtain and transmit various pieces of information via the I/F 1507.
  • a bus 1508 connects the above-described
  • the actuation composed of the above-described configuration includes a control on the actuation described in the above-described flow chart which is mainly carried out by the CPU 1501.
  • the embodiment of the present invention is also achieved while a storage medium that stores a code of the computer program for realizing the above-described function is supplied to a system and the system read out and executes the code of the computer program.
  • the code of the computer program itself which is read out from the storage medium realizes the function of the above-described embodiment
  • the storage medium that stores the code of the computer program constitutes the present invention.
  • the present invention also includes a case in which the operating system (OS) running on the computer or the like partially or entirely performs the actual processing on the basis of an instruction the code of the program and the above-described function is realized by the relevant processing .
  • OS operating system
  • the present invention may also be realized by the following embodiment. That is, the computer program code that is read out from the storage medium is written to a memory provided to a function expansion card inserted to the computer or a function expansion unit connected to the computer. Then, the present invention also includes a case in which a CPU or the like that is provided to the function expansion card or the function expansion unit partially or entirely performs the actual processing on the basis of an instruction the code of the computer program the above-described function is realized.
  • the storage medium stores a code of a computer program corresponding to the flow chart described above.

Landscapes

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

Abstract

An image processing apparatus includes the following configuration. An image inverse quantization apparatus that inversely quantizes quantization coefficients by using quantization matrices at a plurality of sizes to calculate coefficients includes a first default quantization matrix holding unit configured to hold a quantization matrix adapted to a block size of n × m (n and m are positive integers that are higher than or equal to 2) as a first default quantization matrix, a scaling change unit configured to calculate a quantization matrix adapted to a block size of p × q (p and q are positive integers that are higher than or equal to 2) from the quantization matrix at the block size of n × m, and a second default quantization matrix holding unit configured to hold the quantization matrix a scaling of which is changed by the scaling change unit as a second default quantization matrix.

Description

DESCRIPTION
IMAGE QUANTIZATION APPARATUS, METHOD AND PROGRAM, AND IMAGE INVERSE QUANTIZATION APPARATUS, METHOD AND PROGRAM
Technical Field
[0001] The present invention relates to an image
quantization apparatus, an image quantization method, and a program, and an image inverse quantization apparatus, an image inverse quantization method, and a program. In particular, the invention relates to a setting method for a quantization matrix.
Background Art
[0002] As a compression recording method for a moving image, H.264/MPEG-4 AVC (hereinafter, which will be referred to as H.264) is proposed (NPL 1).
[0003] According to the H.264, it is possible to quantize an input value by using a default quantization matrix.
According to the above-described literature, if
seq_scaling_list_present_flag [ i ] is 0, default
quantization matrices of the respective block sizes are used as described in Table7-2. Also, by setting
seq_scaling_list_present_flag [ i ] as 1, it is possible to code and transmit a quantization matrix different from the default quantization matrix. In this case, according to the H.264, by transmitting delta_scale for the amount
corresponding to the elements of the quantization matrix for each size of the block sizes, it is possible to realize the quantization and inverse quantization based on the different quantization matrices.
[0004] In recent years, an activity for establishing an international standardization of a still more efficient coding system as a succeeding system of the H.264 has started. JCT-VC (Joint Collaborative Team on Video Coding) is established between ISO/IEC and ITU-T, and according to the JCT-VC, the standardization is in progress as an HEVC (High Efficiency Video Coding) coding system (hereinafter, which will be referred to as HEVC) . According to the HEVC, along with an increase in a target screen size, a division at a still larger block size than a macro block in a related art (16 x 16 pixels) is under review. This basic block of the large size is referred to as LCU (Largest Coding Unit) , and a study is advanced while the size is set as up to 64 x 64 pixels (NPL 2) .
[0005] The LCU is further divided into sub blocks
functioning as units where a prediction or a transform is conducted. It is however noted that for example, in the case of a large block size such as 32 x 32 pixels, the number of sub block is 1024, which is a factor for a reduction in a coding efficiency. In contrast to this, a technology for coding a quantization matrix of a small size and expanding and using the quantization matrix on a
decoding side is proposed for the JCT-VC (NPL 3) .
[0006] Fig. 14 is a block diagram of the relevant proposed configuration. A 4 x 4 quantization matrix memory 1401 storing a default value of a quantization matrix
corresponding to a 4 x 4 pixel block as a default value and an 8 x 8 quantization matrix memory 1402 storing a default value of a quantization matrix corresponding to an 8 x 8 pixel block are provided. In addition to this, a 16 x 16 quantization matrix memory 1420 storing a default value of a quantization matrix corresponding to a 16 x 16 pixel block is provided. Furthermore, a 32 x 32 quantization matrix memory 1421 storing a default value of a quantization matrix corresponding to a 32 x 32 pixel block is provided. These are input to a 4 x 4 quantization matrix holding unit 1405, an 8 x 8 quantization matrix holding unit 1406, a 16 x 16 quantization matrix holding unit 1407, and a 32 x 32
quantization matrix holding unit 1408. Also, quantization coefficients of the respective block sizes are input from terminal 1410, and sizes of the blocks are input from a terminal 1409. The quantization coefficients of the input units of blocks are inversely quantized in a 4 x 4 inverse quantization unit 1413, an 8 x 8 inverse quantization unit 1414, a 16 x 16 inverse quantization unit 1415, and a 32 x 32 inverse quantization unit 1416 by using the quantization matrices stored in the quantization matrix holding units.
In a case where the quantization matrices are updated, coding data of the quantization matrix is input from a terminal 1422 and decoded in a quantization matrix decoding unit 1423.
[0007] When the quantization matrix to be updated is the quantization matrix corresponding to the 4 x pixel block or the quantization matrix corresponding to the 8 8 pixel block, the decoding results are input to the respective quantization matrix holding units without change. A case will be described in which the quantization matrix to be updated is the quantization matrix corresponding to the 16 x 16 pixel block or the quantization matrix corresponding to the 32 x 32 pixel block. The quantization matrix
corresponding to the 8 x 8 pixel block is expanded two-fold lengthwise and crosswise by a quantization matrix scaling change unit 1403 to generate the quantization matrix
corresponding to the 16 x 16 pixel block. Furthermore, this quantization matrix corresponding to the 16 x 16 pixel block is expanded two-fold lengthwise and crosswise by a
quantization matrix scaling change unit 1404 to generate the quantization matrix corresponding to the 32 x 32 pixel block. [0008] In the quantization matrix of the large block size, the quantization matrix corresponding to the number of elements for the relevant size is prepared on the coding side and the decoding side as the default value, and a large capacity is used even in a memory region. A reduction in this memory region is to be realized.
Citation List
Non Patent Literature
[0009] NPL 1 ITU-T the H.264 (03/2010) Advancedvideo coding for generic audiovisual services
NPL 2 JCT-VC contribution, JCTVC-E603.doc, the internet
< http : //phenix . int-evry . fr/j ct/doc_end_user/documents/ 5_Geneva/wgll/ >
NPL 3 JCT-VC contribution, JCTVC-G094.doc, the internet
< http: //phenix. int-evry. fr/j ct/doc_end_user/documents/ 7_Geneva/wgll/ >
Summary of Invention
[0010] An image coding apparatus according to an aspect of the present invention is provided with the following
configuration. That is, an image inverse quantization apparatus that inversely quantizes quantization coefficients by using quantization matrices at a plurality of sizes to calculate coefficients includes: a first default
quantization matrix holding unit configured to hold a quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2) as a first default quantization matrix; a scaling change unit configured to calculate a quantization matrix adapted to a block size of p x q (p and q are positive integers that are higher than or equal to 2) from the quantization matrix at the block size of n x m; and a second default
quantization matrix holding unit configured to hold the quantization matrix a scaling of which is changed by the scaling change unit as a second default quantization matrix.
[0011] Only a fewer quantization matrices than the wanted number of quantization matrices are held as the quantization matrices held for the default value. By carrying out the enlargement or reduction with use of the scaling change unit that is used upon the update of the quantization matrices, the memory space storing the quantization matrices prepared for the default value is reduced.
Brief Description of Drawings
[0012] Fig. 1 is a block diagram of a configuration of an image inverse quantization apparatus according to a first exemplary embodiment.
[0013] Fig. 2 is a flow chart of an image inverse
quantization processing in the image inverse quantization apparatus according to the first exemplary embodiment.
[0014] Figs. 3A, 3B, and 3C illustrate examples of quantization matrices. [0015] Fig. 4 is a block diagram of another configuration of the image inverse quantization apparatus according to the first exemplary embodiment.
[0016] Fig. 5 is a block diagram of another configuration of the image inverse quantization apparatus according to the first exemplary embodiment.
[0017] Figs. 6A, 6B, and 6C illustrate examples of quantization matrices.
[0018] Fig. 7 is a block diagram of another configuration of the image inverse quantization apparatus according to the first exemplary embodiment.
[0019] Fig. 8 illustrates an example of the quantization matrix .
[0020] Fig. 9 is a block diagram of a configuration of an image quantization apparatus according to a second exemplary embodiment .
[0021] Fig. 10 is a flow chart of an image quantization processing in the image quantization apparatus according to the second exemplary embodiment.
[0022] Fig. 11 is a block diagram of another configuration of the image quantization apparatus according to the second exemplary embodiment.
[0023] Fig. 12 is a block diagram illustrating an example of an image decoding apparatus.
[0024] Fig. 13 is a block diagram illustrating an example of an image decoding apparatus.
[0025] Fig. 14 is a block diagram of a configuration of an image inverse quantization apparatus in a related art.
[0026] Fig. 15 is a block diagram illustrating a
configuration example of hardware of a computer that can be applied to the image coding apparatus and the image decoding apparatus according to the embodiment of the present
invention .
[0027] Figs. 16A, 16B, and 16C illustrate examples of quantization matrices.
[0028] Fig. 17 is a block diagram of a configuration of an image inverse quantization apparatus according to a third exemplary embodiment.
[0029] Fig. 18 is a block diagram of a configuration of an image quantization apparatus according to the third
exemplary embodiment.
Description of Embodiments
First Exemplary Embodiment
[0030] Hereinafter, embodiments of the present invention will be described by using the drawings.
[0031] Fig. 12 is a block diagram illustrating an example of an image decoding apparatus using an embodiment of the present invention. A bit stream obtained by coding an image that is input from terminal 1201 is input. A decoding unit 1202 decodes header data thereof, information on a quantization matrix, and a prediction method and a
quantization result of a prediction error in units of blocks. For the information on the quantization matrix, in a case where the update to seq_scaling_list_present_flag [ i ] representing the presence or absence of the update is
conducted, the coding data is output to an inverse
quantization unit 1203. Also, a size of a block where a processing is conducted is also input to the inverse
quantization unit 1203 as block size information. The
inverse quantization unit 1203 inversely quantizes the
quantization result of the prediction error with a default quantization matrix or the updated quantization matrix to generate an orthogonal transform coefficient. An inverse transform unit 1204 performs an inverse transform on this orthogonal transform coefficient to generate a prediction error. A prediction unit 1205 generates a prediction value from information such as a prediction method and a motion vector and reproduces image data by using the prediction error. The reproduced image data is accumulated in a frame memory 1206 and output to an external part from a terminal 1207.
[0032] Fig. 13 is a block diagram illustrating an example of an image coding apparatus using an embodiment of the present invention. The image data that is input from a terminal 1301 is input and stored in a frame memory 1302. A prediction unit 1303 performs an intra-frame prediction and a motion compensation prediction from image data stored in a frame memory 1320 to generate a prediction error on the basis of the prediction method in units of blocks and the prediction thereof. The prediction error is input to a transform unit 1304. The transform unit 1304 performs an orthogonal transform on the prediction error to generate an orthogonal transform coefficient. A quantization unit 1305 quantizes the orthogonal transform with the default
quantization matrix or the updated quantization matrix. In a case where the quantization matrix is updated, if the update is conducted to seq_scaling_list_present_flag [ i ] representing the presence or absence of the update, the information is output to a coding unit 1306 and an inverse quantization unit 1308. The coding unit 1306 codes the header data, the information on the quantization matrix, and the prediction method and the quantization result of
prediction error in units of blocks. The inverse
quantization unit 1308 inversely quantizes the quantization result of the prediction error with the default quantization matrix or the updated quantization matrix to generate an orthogonal transform coefficient. An inverse transform and prediction unit 1309 performs an inverse transform on this orthogonal transform coefficient to generate a prediction error and obtains a prediction value with reference to the frame memory 1320 through the prediction method to reconstruct the image. The prediction unit 1303 generates a prediction value from information such as a prediction method and a motion vector and reproduces image data by using the prediction error. The bit stream obtained through the coding is output to the external part from a terminal 1307.
[0033] Fig. 1 is a block diagram of an image inverse quantization apparatus according to the present exemplary embodiment which constitutes the inverse quantization unit 1203 of Fig. 12.
[0034] It is noted that to simplify the description according to the present exemplary embodiment, the block sizes to be used are set as 4 x 4, 8 x 8, 16 x 16, and 32 x 32 but are not limited to the above.
[0035] In Fig. 1, a 4 x 4 quantization matrix memory 101 stores a default value of the quantization matrix
corresponding to the x 4 pixel block. An 8 x 8
quantization matrix memory 102 stores a default value of the quantization matrix corresponding to the 8 8 pixel block. A quantization matrix scaling change unit 103 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix
corresponding to the 16 x 16 pixel block. A quantization matrix scaling change unit 104 is configured to expand the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block. A 4 x 4 quantization matrix holding unit 105 holds the quantization matrix corresponding to the 4 x 4 pixel block. An 8 x 8 quantization matrix holding unit 106 holds the quantization matrix corresponding to the 8 8 pixel block. A 16 x 16 quantization matrix holding unit 107 holds the quantization matrix corresponding to the 16 x 16 pixel block. A 32 x 32 quantization matrix holding unit 108 holds the quantization matrix corresponding to the 32 x 32 pixel block.
[0036] A terminal 109 is a terminal connected to the decoding unit 1202 of Fig. 12 to which the block size information indicating the block' size of the input image data is input. A terminal 110 is a terminal connected to the decoding unit 1202 of Fig. 12 to which the quantization coefficient is input in units of block sizes. A buffer 111 holds the quantization coefficient of the block size where the processing is conducted. A selector 112 selects an output destination while following the block size
information. A 4 x 4 inverse quantization unit 113 is configured to inversely quantize the quantization
coefficient of the 4 x 4 pixel block. An 8 x 8 inverse quantization unit 114 is configured to inversely quantize the quantization coefficient of the 8 x 8 pixel block. A 16 x 16 inverse quantization unit 115 is configured to inversely quantize the quantization coefficient of the 16 x 16 pixel block. A 32 x 32 inverse quantization unit 116 is configured to inversely quantize the quantization
coefficient of the 32 x 32 pixel block. A selector 117 selects an input destination while following the block size information. A buffer 118 holds the orthogonal transform coefficient obtained through the inverse quantization. A terminal 119 is connected to the inverse transform unit 1204 of Fig. 12 from which the orthogonal transform coefficient is output. To a terminal 120, the coding data with regard to the update of the quantization matrix is input. A quantization matrix decoding unit 121 is configured to decode the coding data of the update of the quantization matrix. The coding data on the presence or absence of the update, the size of the updated quantization matrix, and the element data on the quantization matrix to be updated are generated from these pieces of coding data. A selector 122 changes the output destination on the basis of the block size where the quantization matrix input from the
quantization matrix decoding unit 121 is updated.
[0037] An inverse quantization operation of the
quantization coefficient in the above-described image inverse quantization apparatus will be described. According to the present exemplary embodiment, the configuration of inputting the quantization result of the orthogonal transform coefficient is adopted but is not limited to this. Also, for the description, the input is conducted in units of blocks, but the configuration is not also limited to this.
[0038] Before the decoding is conducted, the respective elements of the quantization matrix corresponding to the 4 x 4 pixel block are input from 4 x 4 quantization matrix
memory 101 to the x 4 quantization matrix holding unit 105. Also, at the same time, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 102 to the 8 x 8 quantization matrix holding unit 106. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to the quantization
matrix scaling change unit 103. The quantization matrix scaling change unit 103 expands the quantization matrix corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise and generates the quantization matrix
corresponding to the 16 x 16 pixel block to be input to the 16 x 16 quantization matrix holding unit 107 and the
quantization matrix scaling change unit 104. The 16 x 16 quantization matrix holding unit 107 holds the input
quantization matrix corresponding to the 16 x 16 pixel block. The quantization matrix scaling change unit 104 expands the quantization matrix corresponding to the 16 x 16 pixel block two-fold lengthwise and crosswise and generates the quantization matrix corresponding to the 32 x 32 pixel block to be input to the 32 x 32 quantization matrix holding unit 108. The 32 x 32 quantization matrix holding unit 108 holds the input quantization matrix corresponding to the 32 x 32 pixel block.
[0039] The quantization result for one block is input from the terminal 110 to the buffer 111. Also, the block size information on the input quantization result is input from the terminal 109 to the selectors 112 and 117.
[0040] In a case where the block size information
represents the 4 x 4 pixel block, the quantization result corresponding to the 4 x 4 pixel block is input from the terminal 110 to the buffer 111 to be held. The selector 112 sets the x 4 inverse quantization unit 113 as the output destination since the block size information represents the 4 x 4 pixel block. The 4 x 4 inverse quantization unit 113 inversely quantizes the quantization result corresponding to the 4 x 4 pixel block by using the quantization matrix corresponding to the x pixel block held in the x 4 quantization matrix holding unit 105 to generate a 4 x 4 orthogonal transform coefficient. The 4 x orthogonal transform coefficient is output to the buffer 118 via the selector 117.
[0041] In a case where the block size information represents the 8 x 8 pixel block, the quantization result corresponding to the 8 8 pixel block is input from the terminal 110 to the buffer 111 to be held. The selector 112 sets the 8 x 8 inverse quantization unit 114 as the output destination since the block size information represents the 8 x 8 pixel block. The 8 x 8 inverse quantization unit 114 inversely quantizes the quantization result corresponding to the 8 x 8 pixel block by using the quantization matrix corresponding to the 8 8 pixel block held in the 8 x 8 quantization matrix holding unit 106 to generate an 8 x 8 orthogonal transform coefficient. The 8 x 8 orthogonal transform coefficient is output to the buffer 118 via the selector 117.
[0042] In a case where the block size information
represents the 16 x 16 pixel block, the quantization result corresponding to the 16 x 16 pixel block is input from the terminal 110 to the buffer 111 to be held. The selector 112 sets the 16 x 16 inverse quantization unit 115 as the output destination since the block size information represents the 16 x 16 pixel block. The 16 x 16 inverse quantization unit 115 inversely quantizes the quantization result
corresponding to the 16 x 16 pixel block by using the quantization matrix corresponding to the 16 x 16 pixel block held in the 16 x 16 quantization matrix holding unit 107 to generate a 16 x 16 orthogonal transform coefficient. The 16 x 16 orthogonal transform coefficient is output to the buffer 118 via the selector 117.
[0043] In a case where the block size information
represents the 32 x 32 pixel block, the quantization result corresponding to the 32 x 32 pixel block is input from the terminal 110 to the buffer 111 to be held. The selector 112 sets the 32 x 32 inverse quantization unit 116 as the output destination since the block size information represents the 32 x 32 pixel block. The 32 x 32 inverse quantization unit 116 inversely quantizes the quantization result
corresponding to the 32 x 32 pixel block by using the quantization matrix corresponding to the 32 x 32 pixel block held in the 32 x 32 quantization matrix holding unit 108 to generate a 32 x 32 orthogonal transform coefficient. The 32 x 32 orthogonal transform coefficient is output to the buffer 118 via the selector 117. The buffer 118 outputs the orthogonal transform coefficients of the respective block sizes via the terminal 119.
[0044] According to the H.264, the quantization matrix can be coded in pic_parameter_set . According to this, it is possible to conduct the update of the quantization matrix even in the middle of the sequence. When the code
representing pic_parameter_set is input from the terminal 1201 to the image decoding apparatus of Fig. 12, the
decoding unit 1202 inputs a situation where the update of the quantization matrix exists to the inverse quantization unit 1203. The block size of the quantization matrix
updated by pic_scaling_list_present_flag [ i ] included in pic_parameter_set is also decided. The coding data on the presence or absence of the update, the size of the updated quantization matrix, and the element data on the
quantization matrix to be updated are input to the inverse quantization unit 1203.
[0045] With reference to Fig. 1 again, these pieces of coding data are input to the quantization matrix decoding unit 121. The quantization matrix decoding unit 121 decodes the code of pic_scaling_matrix_present_flag to obtain the presence or absence of the update of the quantization matrix. In a case where the update is conducted, it is possible to decide the quantization matrix to be updated by
pic_scaling_list_present_flag [ i ]. Furthermore, the pieces of the coding data of quantization elements adapted to the respective block sizes are obtained by the scaling_list (). These pieces of the coding data are decoded.
[0046] In a case where the decoded block size where the quantization update is conducted is 4 x 4, the selector 122 selects the 4 x quantization matrix holding unit 105 as the output destination. 4 x 4 = 16 pieces of elements output from the quantization matrix decoding unit 121 are input and held in the x quantization matrix holding unit 105, and the quantization matrix corresponding to the 4 x 4 pixel block of each block in the picture is obtained.
[0047] In a case where the block size where the
quantization update is conducted is 8 x 8, the selector 122 selects the 8 x 8 quantization matrix holding unit 106 and the quantization matrix scaling change unit 103 as the output destinations. 8 x 8 = 64 pieces of elements output from the quantization matrix decoding unit 121 are input and held in the 8 x 8 quantization matrix holding unit 106, and the quantization matrix corresponding to the 8 x 8 pixel block of each blocks in the picture is obtained.
[0048] In a case where the decoded block size where the quantization update is conducted is 16 x 16, the selector 122 selects the quantization matrix scaling change unit 103 as the output destination. The quantization matrix scaling change unit 103 inputs the quantization matrix corresponding to the 8 x 8 pixel block held in the 8 x 8 quantization matrix holding unit 106. The quantization matrix scaling change unit 103 expands the input quantization matrix
corresponding to the 8 x 8 pixel block to generate the
quantization matrix corresponding to the 16 x 16 pixel block. An example of these expansion methods will be described in Figs. 3A, 3B, and 3C.
[0049] Fig. 3A illustrates an example of the quantization matrix corresponding to the 8 x 8 pixel block, in which the expansion thereof is conducted two-fold lengthwise and crosswise. For example, for an expansion method described in the above-described literature (NPL 3) , that is, when an
N x N quantization matrix Q (i, j) (0 < i < N - 1, 0 < j < N
- 1) is expanded to a 2N x 2N quantization matrix Q' (x, y)
(0 < x ≤ 2 x N - l, 0 < y < 2 x N - l), the expansion may be conducted in the following manner.
Q ' (0, 0) = Q(0, 0)
Q' (0, 2 x j + 1) = Q(0, j)
Q' (2 x i + 1, 0) = Q(i, 0)
Q1 (2 x i + 1, 2 x j + 1) = Q(i, j)
Q' (0, 1) = (21 x Q' (0, 0) + 11 x Q' (0, 3) + 16) /32
Q' (0, 2) = (11 x Q' (0, 0) + 21 x Q' (0, 3) + 16) /32
Q' (0, 2*j + 2) = (Q' (0, 2*j + 1) + Q' (0, 2*j + 3) + l)/2
Q* (2 x i + 1, 1) = (21 x Q' (2 x i + 1, 0) + 11 x Q' (2 x i + 1,
3) + 16) /32
Q' (2 x i + 1, 2) = (11 x Q' (2 x i + 1, 0) + 21 x Q' (2 x i + 1, 3) + 16) /32
Q' (2 x i + 1, 2*j + 2) = (Q' (2 x i + 1, 2*j + 1) + Q' (2 x i + 1, 2*j + 3) + 1) 12
Q'(l, j) = (21 x Q' (0, j) + 11 x Q' (3, j) + 16) /32
Q'(2, j) = (11 x Q' (0, j) + 21 x Q' (3, j) + 16) /32
Q' (2 x i + 2, j) = (Q'(2 x i + 1, j) + Q' (2*i + 3, j) + l)/2
[0050] Fig. 3B illustrates an expansion result thereof.
[0051] Alternatively, the expansion may be conducted in the following manner.
Q' (2 x i, 2 x j) = Q(i, j) if i < 1, j < 1
Q' (2 x i, 2 x j + 1) = Q(i, j) if i < 1, j > 1 or j = 7
Q' (2 x i + 1, 2 x j) = Q(i, j) if i > 1 or i = 7, j < 1
Q* (2 x i + 1, 2 x j + 1) = Q(i, j) if i > t and also j > 1, i = j = 1
[0052] With regard to the element of the 2N x 2N
quantization matrix Q' where a value of a left or right or upper or lower adjacent element exists, the expansion may be conducted in the following manner.
Q'(i + 1, j) = (Q'(i, j) + Q' (i + 2, j) + l)/2
Q' (i, j + 1) = (Q- (i, j) + Q' (i, j + 2) + l)/2
[0053] In a case where the value of the left or right or upper or lower adjacent element does not exist, the
expansion may be conducted in the following manner.
Q' (i + 1, j) = (2 x Q' (i, j) + Q' (i + 3, j))/3
Q' (i + 2, j) = (Q' (i, j) + 2 x Q' (i + 3, j))/3
Q'(i, j + 1) = (2 x Q- (i, j) + Q» (i, j + 3))/3
Q' (i, j + 2) = (Q' (i, j) + 2 x Q' (i j + 3) ) /3
[0054] Alternatively, the calculation may also be
conducted through a linear interpolation. That is, with respect to the respective upper-left, upper-right, lower- left, and lower-right coefficients of the respective
elements, the following settings are made.
Q' (0, 0) = Q(0, 0) Q 1 ( (2N - 1) , 0) = Q ( (N - 1 ) , 0)
Q' (0, (2N - 1) ) = Q(0, (N - 1) )
Q'((2N - 1), (2N - 1) ) = Q((N - 1), (N - 1))
[0055] Herein, S, T, U, and V are defined as follows while A//B represents a product at a time when A is divided by B and mod (A, B) represents a reminder at a time when A is divided by B.
S = Q(((N - 1) x x)//(2N - 1), ( (N - 1) x y) // (2N - 1)) T = Q(((N - 1) x)//(2N - 1) + 1, ( (N - 1) x y) // (2N - 1)) U = Q(((N - 1) x x)//(2N - 1), ( (N - 1) x y + 1)//(2N - 1)) V = Q(((N - 1) x x)//(2N - 1) + 1, ( (N - 1) x y + 1)//(2N - 1) )
[0056] By using these, the rows and columns on the upper end, left end, right end, and lower end are decided as follows .
Q' (x, 0) = (S x (2N - 1 - x) + T x x)//(2N - 1) if 1 < x < 2N - 2
Q' (0, y) = (S x (2N - 1 - y) + U x y) // (2N - 1) if 1 < y < 2N - 2
Q ' (x, 2N - 1) = (S x (2N - 1 - x) + T x x)//(2N - 1) if 1 < x < 2N - 2
Q' (2N - 1, y) = (S x (2N - 1 - y) + U x y) // (2N - 1) if 1 ≤ y < 2N - 2
[0057] Furthermore, when elements other than the above are calculated, W and Z are defined as follows. W = (S x (2N - 1 - x) + T x x)/(2N - 1)
Z = (U x (2N - 1 - x) + V x x)/(2N - 1)
[0058] By using these, the calculation for the elements other than the above is carried out through the following expression .
Q' (x, y) = (W x (2N - 1 - y) + Z x y)//(2N - 1) if 1 < x < 2N - 2 and also 1 < y < 2N - 2
[0059] By carrying out the above-described calculation, it is possible to conduct the linear interpolation. Fig. 3C illustrates a result thereof.
[0060] Alternatively, the following method may also be adopted.
Q' (i, j) = Q(i, j) (i < 1, j < 1)
Q' (2 x i, 0) = (Q(i + 1, 0) + Q(i, 0) + l)/2 (N > i > 1 and also i is an odd number)
Q' (2 x i, 0) = (Q(i + 1, 0) (N > i > 1 and also i is an even number)
Q' (2 x i, 1) = (Q(i + 1, 1) + Q(i, 1) + 1) /2 (N > i > 1 and also i is an odd number)
Q' (2 x i, 1) = (Q(i + 1, 1) (N > i > 1 and also i is an even number)
Q' (2 x i, j) = (Q(i + 1, 1) + Q(i, 1) + l)/2 (in N > j > 1 is also j is an odd number, N > i > 1 and also i is an odd number)
Q' (2 x i, j) = (Q(i + 1, 1) (in N > j > 1 and also j is an odd number, N > i > 1 and also i is an even number) , and thereafter,
Q- (2 x i, j) = (Q' (2 x i - 1, j) + Q' (2 x i + 1, j) + l)/2 (N > i > 0, N > j > 1 and also j is an even number)
[0061] As described above, the method for the scaling change is not limited, but the methods on the decoding side and the coding sides are matched with each other.
[0062] The generated quantization matrix is held in the 16 x 16 quantization matrix holding unit 107.
[0063] In a case where the block size where the
quantization update is conducted is 32 x 32, the selector 122 selects the quantization matrix scaling change unit 104 as the output destination. The quantization matrix scaling change unit 103 inputs the quantization matrix corresponding to the 16 x 16 pixel block held in the 16 x 16 quantization matrix holding unit 107. The quantization matrix scaling change unit 104 expands the input quantization matrix
corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block. With regard to these expansion methods, the same method as in the quantization matrix scaling change unit 1403 may be employed. The generated quantization matrix is held in the 32 x 32 quantization matrix holding unit 108.
[0064] Fig. 2 is a flow chart of an image inverse
quantization processing in the image coding apparatus according to the first exemplary embodiment. First, in step S201, the quantization matrix corresponding to the 4 x 4 pixel block and the quantization matrix corresponding to the 8 x 8 pixel block held as the default quantization matrices are read out from the respective memories, and these
quantization matrices are held to be used for the inverse quantization .
[0065] In step S202, the quantization matrix corresponding to the 8 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding . to the 16 x 16 pixel block, and the quantization matrix is held to be used for the inverse quantization. In step S203, the quantization matrix corresponding to the 16 x 16 pixel block is expanded two-fold lengthwise and crosswise to
j
generate the quantization matrix corresponding to the 32 x 32 pixel block and the quantization matrix is held to be used for the inverse quantization.
[0066] In step S204, it is determined whether or not the update of the quantization matrix is conducted. In a case where the quantization matrix is not conducted, the flow proceeds to step S210, and in a case where the quantization matrix is conducted, the flow proceeds to step S205. In step S205, since the update of the quantization matrix is conducted, the coding data of the quantization matrix to be updated is input and decoded. [0067] In step S206, it is determined whether or not a reset to the default quantization matrix is conducted. If the reset to the default quantization matrix is conducted, the flow returns to step S201, and from step S201 to step S203, the default quantization matrix is set. If the reset is not conducted, the flow proceeds to step S207.
[0068] In step S207, respective pieces of coding data of the quantization matrix corresponding to the 4 x pixel block and the quantization matrix corresponding to the 8 x 8 pixel block are decoded to generate respective quantization matrices. The quantization matrices are held to be used for the inverse quantization. In step S208, similarly as in step S202, the quantization matrix corresponding to the 8 x 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block, and the quantization matrix corresponding is held to be used for the inverse quantization.
[0069] In step S209, similarly as in step S203, the quantization matrix corresponding to the 16 x 16 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block, and the quantization matrix corresponding is held to be used for the inverse quantization. In step S210, the quantization coefficient is read. In step S211, the read quantization coefficient is inversely quantized by using the quantization matrix at the relevant block size, and the orthogonal transform coefficient is calculated to be output.
[0070] In step S212, it is determined whether or not the inverse quantization for all the quantization coefficients of the LCU is ended, and if the inverse quantization is not ended, the flow returns to step S204, and the processing for the next block is conducted.
[0071] With the above-described configuration and
operation, in particular, through the processing in steps S202 and S203, it is possible to omit the memory storing the default quantization matrices at the quantization matrix corresponding to the 16 x 16 pixel block and the
quantization matrix corresponding to the 32 x 32 pixel block. At this time, since the expansion unit used in the expansion of the quantization matrix is used for the expansion of the quantization matrix, the scale of the processing is not increased.
[0072] It is noted that in step S206, it is determined whether or not the reset to the default quantization matrix is conducted, but this determination may be omitted, and for the coding data, the coding data of the quantization matrix may be decoded. Also, according to the present exemplary embodiment, the quantization matrix corresponding to the 32 x 32 pixel block is generated through the expansion from the quantization matrix corresponding to the 16 x 16 pixel block, but the method is not limited to this. Fig. 4 illustrates a configuration of an image inverse quantization apparatus having a different configuration. In Fig. 4, the block where the same operation as Fig. 1 is conducted is assigned with the same numeral, and a description thereof will be omitted. A quantization matrix scaling change unit 404 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block. With the above-described configuration, without transmitting the elements (256 pieces) of the
quantization matrix corresponding to the 16 x 16 pixel block, it suffices that only the elements (64 pieces) of the
quantization matrix corresponding to the 8 x 8 pixel block are transmitted, it is possible to suppress the data width of the transfer.
[0073] Also, according to the present exemplary embodiment, only the expansion has been described for the scaling change in the scaling change unit, but the setting is not limited to this. For example, only the quantization matrix
corresponding to the 8 x 8 pixel block may be held, and the quantization matrix corresponding to the 4 x 4 pixel block may be generated from this matrix. Fig. 5 illustrates a configuration of an image inverse quantization apparatus having a different configuration. In Fig. 5, the block where the same operation as Fig. 1 is conducted is assigned with the same numeral, and a description thereof will be omitted. A quantization matrix scaling change unit 501 is configured to reduce the quantization matrix corresponding to the 8 x 8 pixel block one-half lengthwise and crosswise to generate the quantization matrix corresponding to the 4 x 4 pixel block. Before the decoding is conducted, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8
quantization matrix memory 102 to the quantization matrix scaling change unit 501. The quantization matrix scaling change unit 501 reduces the quantization matrix
corresponding to the 8 x 8 pixel block one-half lengthwise and crosswise to generate to generate the quantization matrix corresponding to the 4 4 pixel block to be input to the 4 x quantization matrix holding unit 105. After that, the inverse quantization is conducted by using the relevant quantization matrix. The method for the scaling change in the quantization matrix scaling change unit 501 will not particularly be mentioned. Figs. 6A, 6B, and 6C illustrate examples thereof. Fig. 6A illustrates a quantization matrix generated by calculating average values with the elements of 4 x 4 from Fig. 3A. In addition, Fig. 6B illustrates a quantization matrix generated through a thinning out with the elements of 4 x 4 from Fig. 3A. For example, in a case where the above-described 2N x 2N quantization matrix Q' (x, y) is reduced to the N x N quantization matrix Q (i, j), the following method may be employed.
for (i = 0; i < N; i++) {
if (i > 1) { R = i x 2 - 1 } else {R = 0}
for ( j = 0; j < N; j++) {
if (j > 1) {C = j x 2 - 1} else {C = 0}
Q (i, j) = Q' (R. C) ;
}
}
[0074] Fig. 6C illustrates a quantization matrix generated by using weighted averages with the elements of 4 x 4 from Fig. 3A.
[0075] In addition, according to the present exemplary embodiment, the square quantization matrices have been described, but the shape is not limited to the above. For example, a 16 x 8 pixel block, an 8 x 16 pixel block, and the like may also be used. In a case where a quantization matrix corresponding to the 16 x 8 pixel block is generated through the expansion from the quantization matrix
corresponding to the 8 x 8 pixel block, through the above- described method, the expansion only in the horizontal direction is conducted. Also, in a case where a
quantization matrix corresponding to the 8 x 16 pixel block is generated, through the above-described method, the expansion only in the vertical direction is conducted.
Similarly as in the reduction, in a case where the
quantization matrix corresponding to the 16 x 8 pixel block is generated through the reduction from the quantization matrix corresponding to the 16 x 16 pixel block, through the above-described method, the reduction only in the vertical direction is conducted. Furthermore, a quantization matrix corresponding to a 16 x 4 pixel block may of course be used. Also, the size is not limited to these block sizes.
[0076] Fig. 7 illustrates the configuration of the image inverse quantization apparatus having the different
configuration. In Fig. 7, the block where the same
operation as Fig. 1 is conducted is assigned with the same numeral, and a description thereof will be omitted. A quantization matrix scaling change unit 703 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix
corresponding to the 16 x 8 pixel block. The scaling change manner is not particularly limited. Fig. 8 illustrates an example of the scaling change. The quantization matrix corresponding to the 8 8 pixel block of Fig. 6A is
expanded two-fold crosswise. A 16 x 8 quantization matrix holding unit 707 holds the quantization matrix corresponding to the 16 x 8 pixel block. An 8 x 16 quantization matrix holding unit 708 holds the quantization matrix corresponding to the 8 x 16 pixel block. A 16 x 8 inverse quantization unit 715 is configured to inversely quantize a quantization coefficient of the 16 x 8 pixel block. An 8 x 16 inverse quantization unit 716 is configured to inversely quantize a quantization coefficient of the 8 x 16 pixel block.
According to the above-described configuration, when the quantization coefficient of the 16 x 8 pixel block is input from the terminal 110, the quantization coefficient is input to the 16 x 8 inverse quantization unit 715 via the selector 112. The quantization coefficient of the 16 x 8 pixel block is inversely quantized by using the quantization matrix of the 16 x 8 quantization matrix holding unit 707 to generate a 16 x 8 orthogonal transform coefficient. Also, in a case where the quantization coefficient of the 8 x 16 pixel block is input from the terminal 110, the quantization coefficient is input to the 8 x 16 inverse quantization unit 716 via the selector 112 and is inversely quantized by using the
quantization matrix the 8 x 16 quantization matrix holding unit 708 to generate an 8 x 16 orthogonal transform
coefficient. Also, these block sizes according to the exemplary embodiment are not limited to the above. In addition, the quantization matrix corresponding to the 16 x 8 pixel block and the quantization matrix corresponding to the 8 x 16 pixel block are obtained through the expansion from the quantization matrix corresponding to the 8 x 8 pixel block, but the method is not limited to the above. The quantization matrices may also be obtained through the reduction from the quantization matrix corresponding to the 16 x 16 pixel block. With the above-described configuration and operation, it is also possible to cope with quantization matrices other than the square quantization matrices.
[0077] Also, different expansion methods may of course be used for the quantization matrix scaling change unit 103 and the quantization matrix scaling change unit 104. Since the same scaling change method is used on the decoding side and coding side, the scaling change method is not particularly coded .
Second Exemplary Embodiment
[0078] Fig. 9 is a block diagram of an image quantization apparatus according to the present exemplary embodiment which constitutes the quantization unit 1305 of Fig. 13.
[0079] In Fig. 9, a 4 x 4 quantization matrix memory 901 stores a default value of the quantization matrix
corresponding to the 4 x 4 pixel block. An 8 x 8
quantization matrix memory 902 stores a default value of the quantization matrix corresponding to the 8 x 8 pixel block. A quantization matrix scaling change unit 903 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix
corresponding to the 16 x 16 pixel block. A quantization matrix scaling change unit 904 is configured to expand the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block. A 4 x 4 quantization matrix holding unit 905 holds the quantization matrix corresponding to the 4 x 4 pixel block. An 8 x 8 quantization matrix holding unit 906 holds the quantization matrix corresponding to the 8 8 pixel block. A 16 x 16 quantization matrix holding unit 907 holds the quantization matrix corresponding to the 16 x 16 pixel block. A 32 x 32 quantization matrix holding unit 908 holds the quantization matrix corresponding to the 32 x 32 pixel block.
[0080] A terminal 909 is connected to the transform unit 1304 of Fig. 13, to which the block size information
indicating the block size of the input image data is input. A terminal 910 is connected to the transform unit 1304 of Fig. 13, to which the orthogonal transform coefficient is input in units of block sizes. A buffer 911 holds the orthogonal transform coefficient of the block size where the processing is conducted. A selector 912 selects an output destination while following the block size information. A 4 x 4 quantization unit 913 is configured to quantize the quantization coefficient of the 4 x 4 pixel block. An 8 x 8 quantization unit 914 is configured to quantize the
orthogonal transform coefficient of the 8 x 8 pixel block. A 16 x 16 quantization unit 915 is configured to quantize the orthogonal transform coefficient of the 16 x 16 pixel block. A 32 x 32 quantization unit 916 is configured to quantize the orthogonal transform coefficient of the 32 x 32 pixel block. A selector 917 selects an input destination while following the block size information. A buffer 918 holds the quantization coefficient obtained through the
quantization. A terminal 919 is connected to the coding unit 1306 and the inverse quantization unit 1308 of Fig. 13 from which the quantization coefficient is output. A terminal 921 is connected to a user interface that is not illustrated in the drawing, to which an instruction for conducting the update of the quantization matrix is input. A 4 x 4 quantization matrix correction unit 922 is
configured to generate a quantization matrix at a time when the quantization matrix corresponding to the 4 pixel block is updated. An 8 x 8 quantization matrix correction unit 923 is configured to generate a quantization matrix at a time when the quantization matrix corresponding to the 8 x 8 pixel block is updated. A selector 924 inputs corrected quantization matrices from the 4 x quantization matrix correction unit 922 and the 8 x 8 quantization matrix correction unit 923 and selects an output destination on the basis of an instruction from the terminal 921. A
quantization matrix coding unit 925 is configured to code the information on the update of the quantization matrix.
From a terminal 926, the coding data with regard to the update of the quantization matrix is output.
[0081] A quantization operation of the orthogonal
transform coefficient in the above-described image
quantization apparatus will be described below. According to the present exemplary embodiment, the configuration of inputting the quantization result of the orthogonal
transform coefficient is adopted but is not limited to this. Also, for the description, the input is conducted in units of blocks, but the configuration is not also limited to this.
[0082] Before the coding is conducted, the respective elements of the quantization matrix corresponding to the 4 x 4 pixel block are input from the x 4 quantization matrix memory 901 to the 4 x 4 quantization matrix holding unit 905. Also, at the same time, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 902 to the 8 x 8 quantization matrix holding unit 906. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to a quantization matrix scaling change unit 903. The quantization matrix scaling change unit 903 expands the quantization matrix
corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block to be input to the 16 x 16 quantization matrix holding unit 907 and the
quantization matrix scaling change unit 904. The 16 x 16 quantization matrix holding unit 907 holds the input
quantization matrix corresponding to the 16 x 16 pixel block. The quantization matrix scaling change unit 904 expands the quantization matrix corresponding to the 16 x 16 pixel block two-fold lengthwise and crosswise to generate the
quantization matrix corresponding to the 32 x 32 pixel block to be input to the 32 x 32 quantization matrix holding unit 908. The 32 x 32 quantization matrix holding unit 908 holds the input quantization matrix corresponding to the 32 x 32 pixel block.
[0083] The orthogonal transform coefficient for one block is input from the terminal 910 to the buffer 911. Also, the block size information of the input orthogonal transform coefficient is input from the terminal 909 to the selectors 912 and 917.
[0084] In a case where the block size information
represents the 4 x 4 pixel block, the orthogonal transform coefficient corresponding to the 4 4 pixel block is input from the terminal 910 to the buffer 911 to be held. Since the block size information is the 4 x pixel block, the selector 912 sets the output destination as the 4 x 4
quantization unit 913. The quantization unit 913 quantizes the orthogonal transform coefficient corresponding to the 4 x pixel block by using the quantization matrix corresponding to the 4 4 pixel block held in the 4 x 4 quantization matrix holding unit 905 to generate a 4 x 4 quantization coefficient. The 4 x 4 quantization coefficient is output to the buffer 918 via the selector 917.
[0085] In a case where the block size information
represents the 8 x 8 pixel block, the orthogonal transform coefficient corresponding to the 8 x 8 pixel block is input from the terminal 910 to the buffer 911 to be held. Since the block size information is the 8 x 8 pixel block, the selector 112 sets the output destination as the 8 x 8 quantization unit 914. The 8 x 8 quantization unit 914 quantizes the orthogonal transform coefficient corresponding to the 8 x 8 pixel block by using the quantization matrix corresponding to the 8 8 pixel block held in the 8 x 8 quantization matrix holding unit 906 to generate an 8 x 8 quantization coefficient. The 8 x 8 quantization coefficient is output to the buffer 918 via the selector 917.
[0086] In a case where the block size information
represents the 16 x 16 pixel block, the orthogonal transform coefficient corresponding to the 16 x 16 pixel block is input from the terminal 910 to the buffer 911 to be held. Since the block size information is the 16 x 16 pixel block, the selector 912 sets the output destination as the 16 x 16 quantization unit 915. The 16 x 16 quantization unit 915 quantizes the orthogonal transform coefficient corresponding to the 16 x 16 pixel block by using the quantization matrix corresponding to the 16 x 16 pixel block held in the 16 x 16 quantization matrix holding unit 906 to generate a 16 x 16 quantization coefficient. The 16 x 16 quantization
coefficient is output to the buffer 918 via the selector 917.
[0087] In a case where the block size information
represents the 32 x 32 pixel block, the orthogonal transform coefficient corresponding to the 32 x 32 pixel block is input from the terminal 910 to the buffer 911 to be held.
Since the block size information is the 32 x 32 pixel block, the selector 912 sets the output destination as the 32 x 32 quantization unit 916. The 32 x 32 quantization unit 916 quantizes the orthogonal transform coefficient corresponding to the 32 x 32 pixel block by using the quantization matrix corresponding to the 32 x 32 pixel block held in the 32 x 32 quantization matrix holding unit 908 to generate a 32 x 32 quantization coefficient. The 32 x 32 quantization
coefficient is output to the buffer 918 via the selector 917.
[0088] The buffer 918 outputs the orthogonal transform coefficients of the respective block sizes via the terminal 919.
[0089] As described also according to the first exemplary embodiment, it is possible to code the quantization matrix in pic_parameter_set according to the H.264. With this configuration, it is possible to conduct the update of the quantization matrix even in the middle of the sequence. A case will be described in which an instruction of the update of the quantization matrix is issued by the user from the terminal 921. A case of updating the quantization matrix corresponding to the 4 x pixel block and the quantization matrix corresponding to the 8 x 8 pixel block will be described first. The 4 x 4 quantization matrix correction unit 922 generates an updated new quantization matrix corresponding to the x 4 pixel block to be input to the selector 924. The selector 924 outputs the input
quantization matrix to the 4 x 4 quantization matrix holding unit 905 and the quantization matrix coding unit 925. The 4 x 4 quantization matrix holding unit 905 holds this
quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 4 x 4 pixel block. Also, the quantization matrix coding unit 925 generates and outputs the code representing
pic_parameter_set and also outputs a quantization matrix size code indicating that the subsequent coding data is a coefficient of the quantization matrix corresponding to the 4 x 4 pixel block. Subsequently, 16 pieces of elements of the quantization matrix are coded. These pieces of coding data are output from the terminal 926. [0090] Similarly, the 8 x 8 quantization matrix correction unit 923 generates an updated new quantization matrix
corresponding to the 8 x 8 pixel block to be input to the selector 924. The selector 924 outputs the input
quantization matrix to the 8 x 8 quantization matrix holding unit 906, the quantization matrix scaling change unit 903, the quantization matrix scaling change unit 904, and the quantization matrix coding unit 925. The 8 8 quantization matrix holding unit 906 holds this quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 8 x 8 pixel block. Also, the quantization matrix coding unit 925 generates and outputs the code representing pic_parameter_set and also outputs a quantization matrix size code indicating that the subsequent coding data is a coefficient of the quantization matrix corresponding to the 8 8 pixel block. Subsequently, 64 pieces of elements of the quantization matrix are coded. These pieces of coding data are output from the terminal 926.
[0091] Subsequently, the update of the quantization matrix corresponding to the 16 x 16 pixel block and the
quantization matrix corresponding to the 32 x 32 pixel block will be described. The quantization matrix scaling change unit 903 expands the quantization matrix corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise similarly as in the quantization matrix scaling change unit 103 according to the first exemplary embodiment to generate the quantization matrix corresponding to the 16 x 16 pixel block. The generated quantization matrix is input to the 16 x 16 quantization matrix holding unit 907. The 16 x 16 quantization matrix holding unit 907 holds this quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 16 x 16 pixel block. At the same time, the quantization matrix coding unit 925 codes only the state in which the
quantization matrix corresponding to the 16 x 16 pixel block is updated to be output to the terminal 926. Similarly, the quantization matrix scaling change unit 904 expands the input quantization matrix corresponding to the 8 8 pixel block four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block. The generated quantization matrix is input to the 32 x 32 quantization matrix holding unit 908. The 32 x 32
quantization matrix holding unit 908 holds this quantization matrix and is prepared for the quantization based on the subsequent quantization matrix corresponding to the 32 x 32 pixel block. At the same time, the quantization matrix coding unit 925 codes only the state in which the
quantization matrix corresponding to the 32 x 32 pixel block is updated to be output to the terminal 926.
[0092] Fig. 10 is a flow chart of an image quantization processing in the image coding apparatus according to the second exemplary embodiment. First, in step S1001, the quantization matrix corresponding to the 4 pixel block and the quantization matrix corresponding to the 8 x 8 pixel block held as the default quantization matrices are read from the respective memories. These quantization matrices are held to be used for the quantization and the inverse quantization .
[0093] In step S1002, the quantization matrix
corresponding to the 8 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block, and the
quantization matrix is held to be used for the quantization and the inverse quantization. In step S1003, the
quantization matrix corresponding to the 8 x 8 pixel block is expanded four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block. The quantization matrix is held to be used for the quantization and the inverse quantization.
[0094] In step S1004, it is determined whether or not the update of the quantization matrix is conducted. In a case where the quantization matrix is not conducted, the flow proceeds to step S1009, and in a case where the quantization matrix is conducted, the flow proceeds to step S1005. In step S1005, it is determined whether or not the update is an update of the default quantization matrix. In a case where a change is made to the default quantization matrix, the flow returns to step S1001, and the default quantization matrix is set again. In a case where the change is made, the flow proceeds to step S1006.
[0095] In step S1006, the update is conducted on the basis of the new respective elements of the quantization matrix corresponding to the 4 4 pixel block and the quantization matrix corresponding to the 8 x 8 pixel block to be held. In step S1007, pic_scaling_list_present_flag [ i ] is coded, and the updated respective elements are coded.
[0096] In step S1008, the same scaling change method is used on the decoding side and coding side, and the
quantization matrix corresponding to the 8 x 8 pixel block is expanded two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block. The quantization matrix is held to be used for the quantization and the inverse quantization.
[0097] In step S1009, the same scaling change method is used on the decoding side and coding side, and the
quantization matrix corresponding to the 8 x 8 pixel block is expanded four-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block. The quantization matrix is held to be used for the quantization and the inverse quantization. [0098] In step S1010, the block size of the block to be quantized and the orthogonal transform coefficient are read. In step S1011, the orthogonal transform coefficient is quantized by using the corresponding quantization matrix while following the block size. In step S1012, it is
determined whether or not the quantization for all the quantization coefficients of the LCU is ended. If the
quantization is not ended, the process returns to step S1004, and the processing for the next block is conducted.
[0099] With the above-described configuration and
operation, in particular, through the processing in steps S1002 and S1003, it is possible to omit the memory storing the quantization matrix corresponding to the 16 x 16 pixel block and the default quantization matrix corresponding to the 32 x 32 pixel block. At this time, since the expansion unit used in the expansion of the quantization matrix is used for the expansion of the quantization matrix, the scale of the processing is not increased.
[00100] It is noted that according to the present exemplary embodiment, the description has been made on the case in which the user performs the update of the quantization matrix, but the setting is not limited to this. For example, a characteristic of an image may be extracted, and while depending on a picture pattern of the image or the like, the quantization matrix may of course be updated automatically. [00101] It is noted that according to the present exemplary embodiment, the case has been described as an example in which the block size of the quantization matrix is coded as the coding data, but by setting a rule of conducting the coding in order from the one with a smaller block size, it is possible to omit this coding data of the block size.
[00102] In addition, it is possible to select the
quantization matrix to be updated. For example, in a case where only the quantization matrix corresponding to the 8 x 8 pixel block is used, the coding may be carried out so as to update only the quantization matrix corresponding to the 8 x 8 pixel block with pic_scaling_list_present_flag [ i ]. Also, in a case where only the quantization matrix obtained through the expansion is updated, the coding is carried out so that the update of the quantization matrix corresponding to the 8 x 8 pixel block is not conducted with
pic_scaling_list_present_flag [ i ]. It is however noted that the coefficient value to be updated of the quantization matrix corresponding to the 8 x 8 pixel block is coded.
Furthermore, the coding is carried out so that the update of the quantization matrix corresponding to the 16 x 16 pixel block is conducted with pic_scaling_list_present_flag [ i ], for example.
[00103] It is noted that according to the present exemplary embodiment, the quantization matrix corresponding to the 32 x 32 pixel block is generated from the quantization matrix corresponding to the 8 x 8 pixel block, but the once
generated quantization matrix corresponding to the 16 x 16 pixel block may also be expanded two-fold lengthwise and crosswise to generate the quantization matrix. Fig. 11 illustrates a configuration of an image quantization
apparatus having a different configuration. In Fig. 11, a block where the same operation as Fig. 9 is conducted is assigned with the same numeral, and a description thereof will be omitted. A 16 x 16 quantization matrix correction unit 1101 is configured to generate 16 x 16 quantization matrix update information for updating the quantization matrix corresponding to the 16 x 16 pixel block. A 32 x 32 quantization matrix correction unit 1102 is configured to generate 32 x 32 quantization matrix update information for updating the quantization matrix corresponding to the 32 x 32 pixel block. A selector 1124 inputs the corrected quantization matrix from he 4 x 4 quantization matrix correction unit 922 or the 8 x 8 quantization matrix
correction unit 923 to input the 16 x 16 quantization matrix update information or the 32 x 32 quantization matrix update information. The selector is configured to select an input destination and an output destination for these inputs on the basis of an instruction from the terminal 921. A quantization matrix coding unit 1125 is configured to code the information on the update of the quantization matrix.
The update of the quantization matrix corresponding to the 4 x 4 pixel block or the quantization matrix corresponding to the 8 x 8 pixel block is as described in Fig. 9.
[00104] A case will be described in which the user
instructs the update of the quantization matrix
corresponding to the 16 x 16 pixel block from the terminal 921. The 16 x 16 quantization matrix correction unit 1101 generates the 16 x 16 quantization matrix update information. The generated 16 x 16 quantization matrix update information is input to the quantization matrix coding unit 1125 via the selector 1124. The quantization matrix coding unit 1125 performs the coding so that the update of the quantization matrix corresponding to the 16 x 16 pixel block is carried out with pic_scaling_list_present_flag [ i ].
[00105] In addition, a case will be described in which the user instructs the update of the quantization matrix
corresponding to the 32 x 32 pixel block from the terminal 921. The 32 x 32 quantization matrix correction unit 1102 generates the 32 x 32 quantization matrix update information. The generated 32 x 32 quantization matrix update information is input to the quantization matrix coding unit 1125 via the selector 1124. The quantization matrix coding unit 1125 performs the coding so that the update of the quantization matrix corresponding to the 32 x 32 pixel block is carried out with pic_scaling_list_present_flag [ i ].
[00106] Also, the 16 x 16 quantization matrix correction unit 1101 can only update the corresponding quantization matrix corresponding to the 8 x 8 pixel block. At this time the quantization matrix corresponding to the 8 x 8 pixel block is generated by reducing the updated quantization matrix corresponding to the 16 x 16 pixel block one-half lengthwise and crosswise. The selector 1124 inputs the generated quantization matrix corresponding to the 8 x 8 pixel block to the quantization matrix scaling change unit 903. The quantization matrix scaling change unit 903 expands the quantization matrix two-fold lengthwise and crosswise as described above to generate the quantization matrix corresponding to the 16 x 16 pixel block. The quantization matrix coding unit 1125 codes the generated quantization matrix corresponding to the 8 x 8 pixel block. It is however noted that the update of the quantization matrix corresponding to the 8 8 pixel block is not conducted. Furthermore, the above-described 16 x 16
quantization matrix update information is coded. It is possible to carry out a similar processing also on the quantization matrix corresponding to the 32 x 32 pixel bloc
[00107] In addition, according to the present exemplary embodiment, to simplify the description, the update of the quantization matrix corresponding to the square pixel block has been described, but the configuration is not limited to this. As described according to the first exemplary
embodiment, a non-square quantization matrix, for example, the quantization matrix corresponding to the 8 x 16 pixel block may also be used.
Third Exemplary Embodiment
[00108] According to the present exemplary embodiment, a description will be given by using the configuration of Fig. 1 as the image inverse quantization apparatus in the inverse transform unit 1204 of Fig. 12.
[00109] It is noted that according to the present exemplary embodiment, to simplify the description, the block sizes to be used are set as 4 x 4, 8 x 8, 16 x 16, and 32 x 32 but are not limited to the above. Configurations of the
quantization matrix scaling change units 103 and 104 are different from those according to the first exemplary embodiment .
[00110] Similarly as in the first exemplary embodiment, before the decoding is conducted, the respective elements of the quantization matrix corresponding to the x 4 pixel block are input from 4 x 4 quantization matrix memory 101 to the 4 x 4 quantization matrix holding unit 105. Also, at the same time, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 102 to the 8 x 8 quantization matrix holding unit 106. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to the quantization matrix scaling change unit 103. The quantization matrix scaling change unit 103 expands the quantization matrix corresponding to the 8 x 8 pixel block two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 16 x 16 pixel block to be input to the 16 x 16 quantization matrix holding unit 107 and the quantization matrix scaling change unit 104. In the quantization matrix scaling change unit 103, the expansion is conducted in a manner that the respective elements of the quantization matrix are copied through repetitions in the vertical and horizontal
directions. When the quantization matrix corresponding to the N x N pixel block Q (i, j) (0 < i < N - 1, 0 < j < N - 1) is expanded to the quantization matrix corresponding to the 2N x 2N pixel block Q' (x, y) (0 < x < 2 x N - 1, 0 < y < 2 x N - 1), the expansion is conducted while Q' (x, y) = Q (x/F, y/F) (where F is 2) is set. Fig. 16A illustrates a result obtained by expanding the 8 x 8 quantization matrix of Fig. 3A according to the present exemplary embodiment. The respective elements of the expanded quantization matrix corresponding to the 16 x 16 pixel block are stored in the 16 x 16 quantization matrix holding unit 107.
[00111] Similarly, the quantization matrix scaling change unit 104 expands the quantization matrix corresponding to the 16 x 16 pixel block two-fold lengthwise and crosswise to generate the quantization matrix corresponding to the 32 x 32 pixel block. The expansion method is the same method used in the quantization matrix scaling change unit 103.
The generated quantization matrix corresponding to the 32 x 32 pixel block is held in the 32 x 32 quantization matrix holding unit 108.
[00112] Also, in a case where the update of the
quantization matrix is conducted in the middle of the
decoding, similarly as in the first exemplary embodiment, the input quantization matrix is decoded in the quantization matrix decoding unit 121 and passes through the selector 122 to be expanded in the quantization matrix scaling change units 103 and 104 through the above-described method.
[00113] In Fig. 2 illustrating the flow chart of the image inverse quantization processing, the quantization matrix is expanded in steps S208 and S209 through the above-described expansion method.
[00114] With the above-described configuration and
operation, it is possible to omit the memory storing the default quantization matrices at the quantization matrix corresponding to the 16 x 16 pixel block and the
quantization matrix corresponding to the 32 x 32 pixel block. According to this, in a case where the elements of the quantization matrix are represented in 8 bits, it is possible to reduce the memory space for 256 bytes of the 16 x 16 quantization matrix memory 1420 and 1024 bytes of the 32 x 32 quantization matrix memory 1421. In general, since different quantization matrices in Intra/Inter coding, a luminance, and a color difference are prepared, the
quadruple memory space can be reduced. In the expansion of the quantization matrix, by adopting a simple configuration such as the copying of the elements, it is possible to largely decrease a circuit size of the scaling change unit and a calculation cost.
[00115] In addition, a similar expansion method can be employed also in the quantization matrix scaling change units 703 and 704 according to the first exemplary
embodiment. Since the quantization matrix scaling change unit 703 expands the quantization matrix two-fold lengthwise and crosswise, the expansion is made while F is set as 2 by using the above-described expression. Also, in the
quantization matrix scaling change unit 704, the
quantization matrix corresponding to the N x N pixel block Q
(i, j) (0 < i < N - 1, 0 < j < N - 1) is set. In contrast to this, the expansion is made to a quantization matrix
corresponding to a 4N x 4N pixel block Q' (x, y) (0 < x < 4 x N - l, 0 < y < N - l). Therefore, by using the above- described expression, the expansion is made while F is set as 4. In this manner, it is possible to cope with the situations where the scaling factors are varied from each other.
[00116] In addition, it is possible to use the same expansion method also in the image quantization apparatus corresponding to the present image inverse quantization apparatus. To be more specific, the quantization matrix scaling change units 903 and 904 illustrated in Fig. 9 are realized by being provided with the same configuration as the quantization matrix scaling change units 103 and 104. Similarly, In Fig. 10 illustrating the flow chart of the image quantization processing, the quantization matrix is expanded in steps S1008 and S1009 through the above- described expansion method.
[00117] It is noted that the value of the quantization matrix according to the present exemplary embodiment is not limited to this.
Fourth Exemplary Embodiment
[00118] Fig. 17 is a block diagram of an image inverse quantization apparatus according to the present exemplary embodiment which constitutes the inverse quantization unit 1203 of Fig. 12. In Fig. 17, blocks realizing the same functions as those in the image decoding apparatus of Fig. 1 are assigned with the same numeral, and a detailed
description thereof will be omitted. [00119] In Fig. 17, a 16 x 16 quantization particular element memory 1701 stores a particular element in the quantization matrix corresponding to the 16 x 16 pixel block. Herein, a value of an element Q' (0, 0) corresponding to a DC component is stored. A 32 x 32 quantization particular element memory 1702 stores a particular element in the quantization matrix corresponding to the 32 x 32 pixel block. Herein, a value of an element Q' (0, 0) corresponding to a DC component is stored. A quantization matrix scaling change unit 1703 expands the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix corresponding to the 16 x 16 pixel block. A quantization matrix scaling change unit 1704 expands the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block.
[00120] An inverse quantization operation of the
quantization coefficient in the above-described image
inverse quantization apparatus will be described. According to the present exemplary embodiment, the configuration of inputting the quantization result of the orthogonal
transform coefficient is adopted but is not limited to this. Also, for the description, the input is conducted in units of blocks, but the configuration is not also limited to this.
[00121] Similarly as in the third exemplary embodiment, before the decoding is conducted, the respective elements of the quantization matrix corresponding to the 8 8 pixel block are input from the 8 x 8 quantization matrix memory 102 to the quantization matrix scaling change unit 1703.
Also, a default value of the element corresponding to the DC component is input from the 16 x 16 quantization particular element memory 1701. First, the quantization matrix scaling change unit 1703 inputs the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block of the 8 x 8 quantization matrix memory. After that, the expansion is conducted through the expansion method of carrying out the repetitions in the vertical and horizontal directions as described according to the third exemplary embodiment, and the quantization matrix corresponding to the 16 x 16 pixel block is generated. Furthermore, the default value of the DC component of the generated quantization matrix is replaced with the value input from the 16 x 16 quantization particular element memory 1701. Fig. 16B
illustrates the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block stored in the 8 8 quantization matrix memory 102. Also, Fig. 16C
illustrates an expansion result thereof. Herein, a value of 9 is stored in the 16 x 16 quantization particular element memory 1701. The elements of the quantization matrix of Fig. 16B are expanded while following the expression according to the third exemplary embodiment. Furthermore, since the element corresponding to the DC component is replaced with the default value (herein, which is set as 9) , the
quantization matrix corresponding to the 16 x 16 pixel block is generated. The generated quantization matrix
corresponding to the 16 x 16 pixel block is input to the quantization matrix scaling change unit 1704. In the quantization matrix scaling change unit 1704 too, similarly as in the quantization matrix scaling change unit 1703, after the expansion based on the copying is conducted, the default value of the element corresponding to the DC
component stored in the 32 x 32 quantization particular element memory 1702 is input for the replacement.
[00122] In Fig. 2 illustrating the flow chart of the image inverse quantization processing, the quantization matrix is expanded in steps S208 and S209 through the above-described expansion method.
[00123] With the above-described configuration and
operation, in the inverse quantization, it is possible to omit the memory storing the default quantization matrices at the quantization matrix corresponding to the 16 x 16 pixel block and the quantization matrix corresponding to the 32 x 32 pixel block. Also, the particular element is separately used for the quantization matrix. According to this, by changing the elements of the quantization matrix only for the element where the influence on the image is large, it is possible to improve the image quality by setting the DC component as the particular element where the influence on the image is large only with use of an extremely small memory space (1 byte in this case) .
[00124] It is noted that according to the present exemplary embodiment, only the particular element is set as the DC component, but the configuration is not limited to this.
For example, when the vertical and horizontal four-fold expansion is conducted, it is also possible to similarly set an element of a low frequency as the particular element.
For example, values of Q' (1, 0) and Q1 (0, 1) can also
replaced as the particular elements.
[00125] In addition, it is also possible to use the same expansion method in the image quantization apparatus
corresponding to the present image inverse quantization apparatus. Fig. 18 illustrates a detailed block diagram thereof. In Fig. 18, blocks realizing the same functions as those in the image coding apparatus of Fig. 9 are assigned with the same numerals, and a detailed description thereof will be omitted.
[00126] In Fig. 18, a 16 x 16 quantization particular element memory 1801 stores a particular element in the quantization matrix corresponding to the 16 x 16 pixel block. Herein, a value of the element Q' (0, 0) corresponding to the DC component is stored. A 32 x 32 quantization particular element memory 1802 stores a particular element in the quantization matrix corresponding to the 32 x 32 pixel block. Herein, a value of the element Q1 (0, 0) corresponding to the DC component is stored. A quantization matrix scaling
change unit 1803 is configured to expand the quantization matrix corresponding to the 8 x 8 pixel block to generate the quantization matrix corresponding to the 16 x 16 pixel block. A quantization matrix scaling change unit 1804 is configured to expand the quantization matrix corresponding to the 16 x 16 pixel block to generate the quantization matrix corresponding to the 32 x 32 pixel block.
[00127] Similarly as in the image quantization apparatus according to the second exemplary embodiment, before the coding is conducted, the respective elements of the
quantization matrix corresponding to the 4 x 4 pixel block are input from the 4 4 quantization matrix memory 901 to the 4 x 4 quantization matrix holding unit 905. Also, at the same time, the respective elements of the quantization
matrix corresponding to the 8 x 8 pixel block are input from the 8 x 8 quantization matrix memory 902 to the 8 x 8
quantization matrix holding unit 906. Also, the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block are input to the quantization matrix scaling change unit 1803. Also, the default value of the element corresponding to the DC component is input from 16 x 16 quantization particular element memory 1801. First, the quantization matrix scaling change unit 1803 inputs the respective elements of the quantization matrix corresponding to the 8 x 8 pixel block of the 8 8 quantization matrix memory. After that, the expansion is conducted through the expansion method of conducting the repetitions in the
vertical and horizontal directions described according to the third exemplary embodiment, and the quantization matrix corresponding to the 16 x 16 pixel block is generated.
Furthermore, the default value of the DC component of the generated quantization matrix is replaced with the value input from the 16 x 16 quantization particular element memory 1801. The generated quantization matrix
corresponding to the 16 x 16 pixel block is input to the quantization matrix scaling change unit 1804. Also, the 16 x 16 quantization matrix holding unit 907 holds the input quantization matrix corresponding to the 16 x 16 pixel block. In the quantization matrix scaling change unit 1804 too, similarly as in the quantization matrix scaling change unit 1703, after the expansion based on the copying is conducted, the default value of the element corresponding to the DC component stored in the 32 x 32 quantization particular element memory 1802 is input for the replacement. The 32 x 32 quantization matrix holding unit 908 holds the input quantization matrix corresponding to the 32 x 32 pixel block.
[00128] In Fig. 10 illustrating the flow chart of the image quantization processing, the quantization matrix is expanded in steps S1008 and S1009 through the above-described
expansion method.
[00129] With the above-described configuration and
operation, in the quantization, it is possible to omit the memory storing the default quantization matrices at the quantization matrix corresponding to the 16 x 16 pixel block and the quantization matrix corresponding to the 32 x 32 pixel block. The particular element is used for the
separately expanded quantization matrix. According to this, by changing the elements of the quantization matrix only for the element where the influence on the image is large, it is possible to improve the image quality by setting the DC component as the particular element where the influence on the image is large only with use of an extremely small
memory space (1 byte in this case).
[00130] It is noted that the value of the quantization matrix according to the present exemplary embodiment is not limited to the above. Also, according to the present
exemplary embodiment, the expansion based on the repetition of the elements in the quantization matrix scaling change unit has been described as an example, but the expansion method is not limited to this. Fifth Exemplary Embodiment
[00131] The above-described embodiments have been explained while it is assumed that the respective processing units illustrated in Fig. 1, Fig. 4, Fig. 5, Fig. 7, Fig. 9, Fig. 11, Fig. 17, and Fig. 18 are structured by the hardware.
However, the processing carried out in the respective units illustrated in Fig. 1, Fig. 4, Fig. 5, Fig. 7, Fig. 9, and Fig. 11 may be structured by a computer program.
[00132] Fig. 15 is a block diagram of a constitution example of hardware of a computer that can be applied to an image display apparatus according to the above-described respective embodiments.
[00133] A CPU 1501 performs a control on an entire computer by using a computer program or data stored in a RAM 1502 or a ROM 1503 and also executes the respective processings described as being carried out by the image processing apparatus according to the above-described respective embodiments. That is, the CPU 1501 functions as the
respective processing units illustrated in Fig. 1 and Figs. 3A, 3B, and 3C.
[00134] The RAM 1502 has an area for temporarily storing a computer program or data loaded from an external storage apparatus 1506, data obtained from an external part via an I/F (interface) 1509, and the like. Furthermore, the RAM 1502 has a work area that is used when the CPU 1501 executes various processings. That is, the RAM 1502 is, for example, assigned as a frame memory, or the other various areas can appropriately be provided.
[00135] The ROM 1503 stores setting data of the present computer, a boot program, and the like. An operation unit 1504 is composed of a key board, a mouse, or the like, and while a user of the present computer operates the operation unit, it is possible to input various instructions to the CPU 1501. A display unit 1505 displays a processing result by the CPU 1501. In addition, the display unit 1505 is composed, for example, of a display apparatus such as a liquid crystal display.
[00136] The external storage apparatus 1506 is a large- capacity information storage apparatus that is represented by a hard disc drive apparatus. The external storage apparatus 1506 saves an OS (operation system) and a computer program for causing the CPU 1501 to realize the functions of the respective units illustrated in Fig. 1, Fig. 4, Fig. 5, Fig. 7, Fig. 9, Fig. 11, Fig. 17, and Fig. 18. The external storage apparatus 1506 may save respective pieces of image data as processing targets.
[00137] The computer program or the data saved in the external storage apparatus 1506 is appropriately loaded to the RAM 1502 while following a control by the CPU 1501 to be subjected to the processing by the CPU 1501. To the I/F 1507, a network such as a LAN or the internet and another equipment such as a projection apparatus or a display apparatus can be connected, and the present computer can obtain and transmit various pieces of information via the I/F 1507. A bus 1508 connects the above-described
respective units with each other.
[00138] The actuation composed of the above-described configuration includes a control on the actuation described in the above-described flow chart which is mainly carried out by the CPU 1501.
Other Exemplary Embodiments
[00139] The embodiment of the present invention is also achieved while a storage medium that stores a code of the computer program for realizing the above-described function is supplied to a system and the system read out and executes the code of the computer program. In this case, the code of the computer program itself which is read out from the storage medium realizes the function of the above-described embodiment, the storage medium that stores the code of the computer program constitutes the present invention. Also, the present invention also includes a case in which the operating system (OS) running on the computer or the like partially or entirely performs the actual processing on the basis of an instruction the code of the program and the above-described function is realized by the relevant processing .
[00140] Furthermore, the present invention may also be realized by the following embodiment. That is, the computer program code that is read out from the storage medium is written to a memory provided to a function expansion card inserted to the computer or a function expansion unit connected to the computer. Then, the present invention also includes a case in which a CPU or the like that is provided to the function expansion card or the function expansion unit partially or entirely performs the actual processing on the basis of an instruction the code of the computer program the above-described function is realized.
[00141] In a case where the embodiment of the present invention is applied to the above-mentioned storage medium, the storage medium stores a code of a computer program corresponding to the flow chart described above.
[00142] While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
[00143] This application claims the benefit of Japanese Patent Application No. 2011-272161, filed December 13, 2011, which is hereby incorporated by reference herein in its entirety.

Claims

[1] An image inverse quantization apparatus that inversely quantizes quantization coefficients by using quantization matrices at a plurality of sizes to calculate coefficients, the image inverse quantization apparatus comprising:
a first default quantization matrix holding unit configured to hold a quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2) as a first default quantization matrix; a scaling change unit configured to calculate a
quantization matrix adapted to a block size of p x q (p and q are positive integers that are higher than or equal to 2) from the quantization matrix at the block size of n x m; and a second default quantization matrix holding unit configured to hold the quantization matrix a scaling of which is changed by the scaling change unit as a second default quantization matrix.
[2] The image inverse quantization apparatus according to Claim 1,
wherein in the scaling change unit, n < p and m < q are established.
[3] The image inverse quantization apparatus according to Claim 1,
wherein in the scaling change unit, n > p and m > q are established.
[4] The image inverse quantization apparatus according to any one of Claims 1 to 3,
wherein the scaling change unit changes the scaling of the quantization matrix through a linear interpolation.
[5] The image inverse quantization apparatus according to any one of Claims 1 to 3,
wherein the scaling change unit changes the scaling of the quantization matrix through a repetition of an element.
[6] The image inverse quantization apparatus according to Claim 5,
wherein the scaling change unit changes the scaling of the quantization matrix through a linear interpolation and sets a separate value for a particular element.
[7] The image inverse quantization apparatus according to any one of Claims 1 to 6, further comprising:
a quantization matrix coding data input unit configured to input coding data of the quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2); and
a decoding unit configured to generate first
quantization matrix data by decoding the coding data,
wherein the scaling change unit generates second quantization matrix data adapted to a block size of p x q from the first quantization matrix data to be held in the second default quantization matrix holding unit.
[8] An image quantization apparatus that quantizes quantization coefficients by using quantization matrices at a plurality of sizes, the image quantization apparatus comprising :
a first default quantization matrix holding unit configured to hold a quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2) as a first default quantization matrix; a scaling change unit configured to calculate a
quantization matrix adapted to a block size of p x q (p and q are positive integers that are higher than or equal to 2 and n < p, m < q) from the quantization matrix at the block size of n x m; and
a second default the quantization matrix holding unit configured to hold the quantization matrix a scaling of which is changed by the scaling change unit as a second quantization matrix.
[9] An image inverse quantization method for an image inverse quantization apparatus to inversely quantize
quantization coefficients by using quantization matrices at a plurality of sizes to calculate coefficients, the image inverse quantization method comprising:
holding a quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2) in a first default quantization matrix holding unit as a first default quantization matrix; calculating a quantization matrix adapted to a block size of p x q (p and q are positive integers that are higher than or equal to 2) from the quantization matrix at the block size of n x m; and
holding the quantization matrix a scaling of which is changed in the calculating in a second quantization matrix holding unit as a second default quantization matrix.
[10] An image quantization method for an image quantization apparatus to quantize coefficients by using the quantization matrix at a plurality of sizes, the image quantization method comprising:
holding a quantization matrix adapted to a block size of n x m (n and m are positive integers that are higher than or equal to 2) in a first default quantization matrix holding unit as a first default quantization matrix;
calculating a quantization matrix adapted to a block size of p x q (p and q are positive integers that are higher than or equal to 2) from the quantization matrix at the block size of n x m; and
holding the quantization matrix a scaling of which is changed in the calculating in a second default quantization matrix holding unit as a second default quantization matrix.
[11] A computer-readable program for causing a computer to function as the image inverse quantization apparatus according to Claim 1 upon execution of the program.
[12] A computer-readable program for causing a computer to function as the image quantization apparatus according to Claim 8 upon execution of the program.
PCT/JP2012/082593 2011-12-13 2012-12-10 Image quantization apparatus, method and program, and image inverse quantization apparatus, method and program WO2013089264A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011-272161 2011-12-13
JP2011272161 2011-12-13

Publications (1)

Publication Number Publication Date
WO2013089264A1 true WO2013089264A1 (en) 2013-06-20

Family

ID=47557436

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/082593 WO2013089264A1 (en) 2011-12-13 2012-12-10 Image quantization apparatus, method and program, and image inverse quantization apparatus, method and program

Country Status (2)

Country Link
JP (1) JP2013146038A (en)
WO (1) WO2013089264A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018008387A1 (en) * 2016-07-04 2018-01-11 ソニー株式会社 Image processing device and method
CN109661820A (en) * 2016-09-13 2019-04-19 联发科技股份有限公司 The method of multiple quantization matrix set for coding and decoding video
US11012693B2 (en) * 2014-12-26 2021-05-18 Panasonic Intellectual Property Management Co., Ltd. Encoding method, decoding method, encoding apparatus, and decoding apparatus
CN113196759A (en) * 2018-12-17 2021-07-30 佳能株式会社 Image encoding device, image encoding method, image decoding device, and image decoding method
CN113228652A (en) * 2018-12-17 2021-08-06 佳能株式会社 Image encoding device, image decoding device, control methods therefor, and program
US11962806B2 (en) 2019-03-11 2024-04-16 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium
US12075049B2 (en) 2019-03-11 2024-08-27 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015170994A (en) 2014-03-07 2015-09-28 ソニー株式会社 Image processor and method, image encoder and method, and image decoder and method

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
S-C LIM ET AL: "Diagonal scan for quantization matrix coefficients", 100. MPEG MEETING; 30-4-2012 - 4-5-2012; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. JCTVC-I0102, 7 June 2012 (2012-06-07), pages 1 - 8, XP030052686 *
TANAKA J ET AL: "Enhancement of quantization matrix coding for HEVC", 6. JCT-VC MEETING; 97. MPEG MEETING; 14-7-2011 - 22-7-2011; TORINO; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-F475, 11 July 2011 (2011-07-11), pages 1 - 11, XP030009498 *
WANG (TSINGHUA) Y ET AL: "Non-CE4: Layered quantization matrices compression", 7. JCT-VC MEETING; 98. MPEG MEETING; 21-11-2011 - 30-11-2011; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-G530, 9 November 2011 (2011-11-09), pages 1 - 6, XP030110514 *
ZHANG X ET AL: "Method and syntax for quantization matrices representation", 7. JCT-VC MEETING; 98. MPEG MEETING; 21-11-2011 - 30-11-2011; GENEVA; (JOINT COLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/, no. JCTVC-G152, 8 November 2011 (2011-11-08), pages 1 - 8, XP030110136 *
ZHOU M ET AL: "CE4: Test results on compact representation of quantization matrices", 98. MPEG MEETING; 28-11-2011 - 2-12-2011; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. JCTVC-G083, M21631, 21 November 2011 (2011-11-21), pages 1 - 12, XP030050194 *
ZHOU M ET AL: "non-CE4: Carriage of large block size quantization matrices with up-sampling", 98. MPEG MEETING; 28-11-2011 - 2-12-2011; GENEVA; (MOTION PICTURE EXPERT GROUP OR ISO/IEC JTC1/SC29/WG11), no. JCTVC-G094, M21642, 9 November 2011 (2011-11-09), pages 1 - 6, XP030050205 *

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11012693B2 (en) * 2014-12-26 2021-05-18 Panasonic Intellectual Property Management Co., Ltd. Encoding method, decoding method, encoding apparatus, and decoding apparatus
US11425382B2 (en) 2014-12-26 2022-08-23 Panasonic Intellectual Property Management Co., Ltd. Encoding method, decoding method, encoding apparatus, and decoding apparatus
US11272180B2 (en) 2016-07-04 2022-03-08 Sony Corporation Image processing apparatus and method
CN109417621A (en) * 2016-07-04 2019-03-01 索尼公司 Image processing apparatus and method
JPWO2018008387A1 (en) * 2016-07-04 2019-04-18 ソニー株式会社 Image processing apparatus and method
EP3481063A4 (en) * 2016-07-04 2019-05-08 Sony Corporation Image processing device and method
US20190268597A1 (en) * 2016-07-04 2019-08-29 Sony Corporation Image processing apparatus and method
WO2018008387A1 (en) * 2016-07-04 2018-01-11 ソニー株式会社 Image processing device and method
CN109661820A (en) * 2016-09-13 2019-04-19 联发科技股份有限公司 The method of multiple quantization matrix set for coding and decoding video
EP3510775A4 (en) * 2016-09-13 2020-03-04 MediaTek Inc. Method of multiple quantization matrix sets for video coding
CN113196759A (en) * 2018-12-17 2021-07-30 佳能株式会社 Image encoding device, image encoding method, image decoding device, and image decoding method
CN113228652A (en) * 2018-12-17 2021-08-06 佳能株式会社 Image encoding device, image decoding device, control methods therefor, and program
CN113196759B (en) * 2018-12-17 2023-12-19 佳能株式会社 Image encoding apparatus and method, image decoding apparatus and method, and storage medium
US11930178B2 (en) 2018-12-17 2024-03-12 Canon Kabushiki Kaisha Image encoding apparatus, image encoding method, image decoding apparatus, image decoding method, and non-transitory computer-readable storage medium
CN113228652B (en) * 2018-12-17 2024-04-12 佳能株式会社 Image encoding device and method, image decoding device and method, and storage medium
US11997276B2 (en) 2018-12-17 2024-05-28 Canon Kabushiki Kaisha Image encoding apparatus, image decoding apparatus, control methods and non-transitory computer-readable storage medium
US11962806B2 (en) 2019-03-11 2024-04-16 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium
US12075049B2 (en) 2019-03-11 2024-08-27 Canon Kabushiki Kaisha Image decoding apparatus, image decoding method, and storage medium

Also Published As

Publication number Publication date
JP2013146038A (en) 2013-07-25

Similar Documents

Publication Publication Date Title
JP6660074B2 (en) Video decoding method and apparatus
JP6513120B2 (en) Apparatus, encoding apparatus, decoding apparatus, method, and program
WO2013089264A1 (en) Image quantization apparatus, method and program, and image inverse quantization apparatus, method and program
CN108810536B (en) Image encoding apparatus
EP3232666B1 (en) Low-complexity intra prediction for video coding
EP2716046A1 (en) Method and apparatus for line buffer reduction for video processing
US8923389B1 (en) Unified scaling with differential coding for internal bit depth extension and reference frame compression
WO2007091588A1 (en) Dynamic image decoding device, decoded image recording device, their method, and program
JP4708821B2 (en) Moving picture coding apparatus, control method therefor, computer program, and storage medium
US20160014415A1 (en) Method and apparatus for performing wave-front parallel encoding procedure with constraint on coding mode and/or quantization parameter selection
KR20150081240A (en) Apparatus and method for lossless video coding/decoding
TWI755653B (en) Image encoding device, image encoding method, image decoding device, image decoding method
TWI803709B (en) Image encoding device, image decoding device, control method and program thereof
US10805611B2 (en) Method and apparatus of constrained sequence header
JP2016195370A (en) Image processing apparatus, image processing method, and program
TWI833620B (en) Image encoding device, image encoding method, image decoding device and image decoding method
JP2019161411A (en) Image encoding device, image decoding device, control method thereof, and program
WO2017104010A1 (en) Moving-image coding apparatus and moving-image coding method
JP2013017085A (en) Image encoder and image encoding method
JP2012209873A (en) Moving image encoder and moving image encoding method
JP4997817B2 (en) Image processing device
JP2007306528A (en) Motion picture decoding device and motion picture decoding method
JP2012209874A (en) Moving image decoder and moving image decoding method

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12814003

Country of ref document: EP

Kind code of ref document: A1