WO2020129489A1 - 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム - Google Patents
画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム Download PDFInfo
- Publication number
- WO2020129489A1 WO2020129489A1 PCT/JP2019/044754 JP2019044754W WO2020129489A1 WO 2020129489 A1 WO2020129489 A1 WO 2020129489A1 JP 2019044754 W JP2019044754 W JP 2019044754W WO 2020129489 A1 WO2020129489 A1 WO 2020129489A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- quantization matrix
- quantization
- image
- sub
- unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 61
- 238000013139 quantization Methods 0.000 claims abstract description 304
- 239000011159 matrix material Substances 0.000 claims abstract description 227
- 238000006243 chemical reaction Methods 0.000 claims abstract description 20
- 230000010354 integration Effects 0.000 claims abstract 2
- 238000000926 separation method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 230000009466 transformation Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000006866 deterioration Effects 0.000 description 2
- 238000003908 quality control method Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
Definitions
- the present invention relates to an image encoding device, an image decoding device, a control method thereof, and a program.
- HEVC High Efficiency Video Coding
- HEVC High Efficiency Video Coding
- a basic block having a size larger than that of a conventional macroblock (16 ⁇ 16 pixels) is adopted in order to improve coding efficiency.
- This large-sized basic block is called a CTU (Coding Tree Unit), and its size is a maximum of 64 ⁇ 64 pixels.
- the CTU is further divided into sub-blocks which are units for prediction and conversion.
- Patent Document 1 discloses a technique for encoding such a quantization matrix.
- HEVC uses a larger orthogonal transform than the conventional orthogonal transform of 8 ⁇ 8 pixels, such as 16 ⁇ 16 pixels and 32 ⁇ 32 pixels, and also uses a quantization matrix corresponding to such a large orthogonal transform. ..
- the 64 elements are encoded and decoded. It is configured to be expanded by upsampling processing on the side.
- the element at the upper left end position of the quantization matrix corresponding to the DC component in the frequency domain is separately encoded. For this reason, in HEVC, when a large orthogonal transform is used, there is a problem that the quantization processing of frequency components other than the DC component cannot be finely controlled.
- the present invention has been made in order to solve the above-mentioned problems, and it is an object of the present invention to provide a technique for encoding an image while suppressing the code amount of a quantization matrix used for encoding.
- An image encoding device for encoding image data comprising: The image data to be encoded is divided into basic blocks of a preset size, and the basic block is further divided into one or more subblocks using any of a plurality of preset subblock division patterns, First encoding means for performing frequency conversion, quantization, and entropy encoding for each sub-block, Holding means for holding a plurality of quantization matrices corresponding to the sizes of sub-blocks included in the sub-block division pattern used by the first encoding means; Second encoding means for encoding at least one of the plurality of quantization matrices held by the holding means, The coded data generated by the second coding means and the coded data obtained by the first coding means are integrated.
- the holding means is For a quantization matrix having the same size as the horizontal or vertical size of the basic block, the elements in a predetermined range of positions from the storage position of the element corresponding to the DC component are held as independent values. However, at the position exceeding the predetermined range, the same element is held in a preset number unit.
- FIG. 16 is a block diagram showing a hardware configuration example of a computer applicable as an image encoding device and a decoding device. The figure which shows an example of the bit stream structure produced
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of sub-block division used in the embodiment.
- FIG. 6 is a diagram showing an example of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing an example of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing an example of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing an example of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing an example of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing an example of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing a scanning method of elements of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing a scanning method of elements of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing a scanning method of elements of a quantization matrix used in the embodiment.
- FIG. 6 is a diagram showing a scanning method of elements of a quantization matrix used in the embodiment.
- generated by embodiment The figure which shows the difference value matrix of the quantization matrix produced
- FIG. 1 is a block diagram showing the image coding apparatus according to the first embodiment.
- the image coding apparatus has a control unit 150 that controls the components described below and controls the entire apparatus.
- the control unit 150 includes a CPU, a ROM that stores programs executed by the CPU and various parameters, and a RAM that is used as a work area of the CPU.
- the OS operating system
- the program, and the parameters stored in the ROM or another nonvolatile storage device may be loaded into the RAM, and then the program may be executed under the control of the OS.
- the image coding apparatus includes an input terminal 101, a block division unit 102, a quantization matrix holding unit 103, a prediction unit 104, a conversion/quantization unit 105, an inverse quantization/inverse conversion unit 106, an image reproduction unit 107, a frame.
- the memory 108, the in-loop filter unit 109, the encoding unit 110, the integrated encoding unit 111, the output terminal 112, and the quantization matrix encoding unit 113 are included.
- image data (for example, 30 frames/second) is supplied to the input terminal 101 of this device from an image generation source (not shown).
- image generation source does not matter, but it is simply an image pickup unit or a video camera, or a hard disk or a storage medium for storing image data to be encoded.
- the block division unit 102 divides the image data input via the input terminal 101 into a plurality of basic blocks, and supplies the image data in basic block units to the prediction unit 104 in the subsequent stage.
- the quantization matrix holding unit 103 holds a plurality of types of quantization matrices used in quantization processing. Details of the method of generating the quantization matrix will be described later.
- the prediction unit 104 receives the image data of the basic block unit from the block division unit 102, determines a division method into a plurality of smaller sub-blocks, intra prediction that is intra-frame prediction in each sub-block unit, and Inter prediction, which is inter-prediction, is performed to generate predicted image data. Further, the prediction unit 104 calculates and supplies prediction error data that is a difference between the image data of the sub block and the predicted image data. The prediction unit 104 also outputs information necessary for prediction, for example, information about sub-block division, prediction mode, motion vector, and the like together with the prediction error data. The information necessary for this prediction will be referred to as prediction information below.
- the transform/quantization unit 105 obtains transform coefficients by performing orthogonal transform (frequency transform) on the prediction error data supplied from the prediction unit 104 in sub-block units. Then, the transform/quantization unit 105 quantizes the transform coefficient of the target sub-block by using the corresponding quantization matrix held by the quantization matrix holding unit 103 to obtain a quantized coefficient.
- the inverse quantization/inverse transform unit 106 reproduces the transform coefficient by inversely quantizing the quantized coefficient input from the transform/quantization unit 105 using the corresponding quantization matrix held by the quantization matrix holding unit 103. Then, the transform coefficient is inversely orthogonally transformed to reproduce the prediction error data.
- the image reproduction unit 107 appropriately refers to the frame memory 108 based on the prediction information input from the prediction unit 104 to generate predicted image data. Then, the image reproduction unit 107 generates reproduction image data from the generated prediction image data and the prediction error data from the inverse quantization/inverse conversion unit 106, and outputs the reproduction image data to the frame memory 108 again.
- the in-loop filter unit 109 performs in-loop filter processing such as deblocking filter and sample adaptive offset on the reproduced image data from the image reproducing unit 107 stored in the frame memory 108, and outputs the image data after the filter processing. It is stored in the frame memory 109 again.
- the encoding unit 110 encodes the quantized coefficient input from the transform/quantization unit 105 and the prediction information input from the prediction unit 104 to generate and output code data.
- the quantization matrix encoding unit 113 encodes the quantization matrix input from the quantization matrix holding unit 103 to generate and output encoded data for quantization.
- the integrated coding unit 111 uses the coded data of the quantization matrix coded by the quantization matrix coding unit 113 to generate header coded data. Further, the integrated encoding unit 111 forms a bitstream by combining the generated header code data with the code data of the image input from the encoding unit 110, and outputs the bitstream to the outside via the output terminal 112.
- the output destination is not particularly limited, but it may be a storage device such as a recording medium or a file server on the network.
- moving image data is input in frame units, but still image data for one frame may be input.
- intra prediction coding process for the sake of simplicity, only the intra prediction coding process will be described, but the present invention is not limited to this and can be applied to the inter prediction coding process.
- the size of the basic block for dividing the image of one frame in the block dividing unit 101 will be described as horizontal 16 pixels ⁇ vertical 16 pixels (hereinafter simply referred to as 16 ⁇ 16 pixels). However, this is merely an example, and other sizes may be used.
- Quantization matrix encoding is performed prior to image encoding.
- the quantization matrix holding unit 103 generates and holds a plurality of quantization matrices according to sub-blocks of a plurality of sizes used in encoding.
- the thick frame denoted by reference numeral 800 in FIG. 8A is an example of a quantization matrix corresponding to a size of 8 ⁇ 8 pixels, and the values in the matrix indicate the elements.
- the element at the 0th row and 0th column in the upper left corner of the quantization matrix 800 corresponds to the conversion coefficient of the DC component (DC component), and the other elements correspond to the conversion coefficient of the AC component (AC component), respectively. ..
- the method of determining each element forming the quantization matrix is not particularly limited. For example, a predetermined initial value may be used or may be set individually. It may also be generated according to the characteristics of the image.
- FIG. 8B is a quantization matrix 801 corresponding to the orthogonal transformation of 16 ⁇ 8 pixels in this embodiment.
- An individual value such as "4" is set for the element in the 0th row and 0th column corresponding to the DC component, and "5" is set for the element in the 0th row and 1st column to the right of the element.
- the element in the 0th row and 1st column of the quantization matrix 801 in FIG. 8B is an element corresponding to the transform coefficient of the AC component estimated to have the lowest frequency in the sub-block shape.
- one value is set for two elements that are adjacent in the horizontal direction in order to reduce the code amount.
- the same value of "9” is set for the elements of 0 row 2 column and 0 row 3 column
- the same value of "10” is similarly set for the element of 1 row 2 column and 1 row 3 column.
- FIG. 8C is a quantization matrix 802 corresponding to orthogonal transformation of 8 ⁇ 16 pixels in this embodiment.
- An individual value such as "4" is set for the element of 0 row and 0 column corresponding to the DC component, and "5" is set for the element of 1 row and 0 column below it.
- the element in the 1st row and 0th column of the quantization matrix 802 in FIG. 8C is an element corresponding to the transform coefficient of the AC component estimated to have the lowest frequency in the shape of the sub-block.
- the remaining elements are configured such that one value is set for two vertically adjacent elements.
- the same value of "9” is set for the elements in the 2nd row and 0th column and the 3rd row and 0th column
- the same value of "10” is set for the elements in the 2nd row and 1st column and the 3rd row and 1st column.
- FIG. 8D is a quantization matrix 803 corresponding to the orthogonal transformation of 16 ⁇ 16 pixels in this embodiment.
- the element in the 0th row and 0th column corresponding to the DC component is “4”
- the element on the 1st row and 0th column to the right of the DC component is “5”
- the element at the 0th row and 1st column immediately below is “6”.
- An individual value such as "is set as an element corresponding to the AC component adjacent to the DC component.
- the remaining elements are configured such that one value is set for four horizontally and vertically adjacent 2 ⁇ 2 elements.
- the elements corresponding to the DC component in the quantization matrix and the elements corresponding to the plurality of low frequency components in the vicinity thereof are set to individual values, and the remaining elements are set to the values in units of a plurality of elements.
- the quantization matrix holding unit 103 holds the quantization matrices 800 to 803 thus generated.
- the four types of quantization matrices 800 to 803 shown in FIGS. 8A to 8D are held in a two-dimensional shape, but each element in the quantization matrix is not limited to this. ..
- a plurality of quantization matrices are held for orthogonal transforms of the same size depending on a prediction method described later, for example, whether intra prediction or inter prediction is used, or whether the coding target is a luminance block or a chrominance block. It is also possible.
- the elements of the low frequency part corresponding to the upper left part of the quantization matrices 800 to 803 are small, and the lower right part is small.
- the elements of the high frequency part corresponding to are large.
- the quantization matrix coding unit 113 sequentially reads the quantization matrices 800 to 803 stored in the two-dimensional shape from the quantization matrix holding unit 106, scans each element, calculates the difference, and calculates the one-dimensional matrix. To generate.
- each of the quantization matrices 800 to 803 shown in FIGS. 8A to 8D will be encoded.
- the quantization matrix encoding unit 113 first uses the scanning method along the arrow shown in FIG. 10A for the quantization matrix 800 shown in FIG. The difference with is calculated. For example, the 8 ⁇ 8 pixel quantization matrix 800 shown in FIG. 8A is scanned by the diagonal scan shown in FIG. 10A, but the first element “4” located in the upper left corner is immediately below it.
- the located element "9" is scanned and the difference +5 is calculated.
- the first element (“4” in the present embodiment) of the quantization matrix is encoded by calculating the difference from a predetermined initial value (for example, “8”), but this is not a limitation. Instead, the difference from an arbitrary value or the value of the first element itself may be used.
- the quantization matrix coding unit 113 uses the scanning method along the arrow shown in FIG. 10B, and for each element, the difference from the immediately preceding element in the scanning order. Shall be calculated.
- the quantization matrix 801 for 16 ⁇ 8 pixels shown in FIG. 8B is scanned by the scanning method shown in FIG. 10B, but the first element “4” located at the upper left corner is immediately followed by the first element “4”.
- the located element "5" is scanned and the difference +1 is encoded.
- the element "9" located below it is then scanned and the difference +4 is encoded.
- the 8 ⁇ 16 pixel quantization matrix 802 shown in FIG. 8C is scanned by the scanning method shown in FIG. 10C. After the first element "4" located at the upper left corner, the element "5" located immediately below it is scanned, and the difference +1 is encoded. Then, the element "9" located therebelow is scanned, and the difference +4 is encoded.
- the 16 ⁇ 16 pixel quantization matrix 803 shown in FIG. 8D is scanned by the scanning method shown in FIG. 10D. After the first element 4 located at the upper left corner, the element 5 located immediately below it is scanned and the difference +1 is encoded. Next, the element 5 located on the right side of the upper left corner is scanned, and the difference 0 is encoded. Then, the element 6 located therebelow is scanned and the difference +1 is encoded.
- the quantization matrices 800 to 803 of FIGS. 8A to 8D use the scanning method of FIGS. 10A to 10D, respectively, and the one-dimensional difference matrices 1000 to 1003 shown in FIGS. 11A to 11D are obtained. Is generated.
- the quantization matrix coding unit 113 further codes the difference matrix to generate quantization matrix coded data.
- the coding is performed using the coding table shown in FIG. 12A, but the coding table is not limited to this, and the coding table shown in FIG. 12B may be used, for example.
- the quantization matrix code data generated in this way is supplied to the integrated coding unit 111 in the subsequent stage.
- the integrated coding unit 111 codes the header information necessary for coding the image data, and integrates the coded data of the quantization matrix. Subsequently, encoding of image data will be described.
- the block division unit 102 divides one frame of image data input from the input terminal 101 into a plurality of basic blocks, and supplies the image data in basic block units to the prediction unit 104.
- the size of the basic block in this embodiment is 16 ⁇ 16 pixels.
- the prediction unit 104 performs a prediction process on the image data in basic block units input from the block division unit 102. Specifically, the prediction unit 104 determines a subblock division method for dividing a basic block into smaller subblocks, and further determines an intra prediction mode such as horizontal prediction or vertical prediction in subblock units. The sub-block division method is determined based on the encoded data amount of the immediately preceding frame and the like.
- FIGS. 7C and 7D show examples of sub-block division patterns.
- Reference numeral 700 which indicates a thick frame on the outer side of the figure, represents a basic block, and has a size of 16 ⁇ 16 pixels in the embodiment. The rectangle in the thick frame represents the sub block.
- FIG. 7B shows an example of conventional square sub-block division, in which a basic block of 16 ⁇ 16 pixels is divided into four sub-blocks of 8 ⁇ 8 pixel size.
- FIGS. 7C and 7D show an example of rectangular sub-block division.
- the basic block is two vertically long sub blocks of 8 ⁇ 16 pixels
- FIG. 7D two horizontally long sub blocks of 16 ⁇ 8 pixels. It is divided into blocks.
- the basic block of 16 ⁇ 16 pixels is not divided (FIG. 7A), divided into two vertically elongated sub-blocks (FIG. 7C), and horizontally divided into two vertically elongated sub-blocks. Either (FIG. 7D) or quadtree partitioning (FIG. 7B) is determined.
- the sub-block division method is not limited to this. As shown in FIGS. 7E and 7F, ternary tree partitioning in which the ratio is 1:2:1 may be used.
- Predicted image data is generated from the determined intra prediction mode and encoded pixels. Then, the prediction unit 104 generates prediction error data that is the difference between the input image data and the generated prediction image data in sub-block units, and supplies the prediction error data to the conversion/quantization unit 105. .. Further, information such as sub-block division and intra prediction mode is supplied to the encoding unit 110 and the image reproducing unit 107 as prediction information.
- the transform/quantization unit 105 performs orthogonal transform/quantization on the input prediction error data to generate a quantized coefficient. Specifically, the transform/quantization unit 105 first performs an orthogonal transform process corresponding to the size of the sub-block to generate an orthogonal transform coefficient. Then, the transform/quantization unit 105 quantizes the orthogonal transform coefficient in sub-block units using the quantization matrix of the corresponding size stored in the quantization matrix holding unit 103 to generate the quantized coefficient. .. In this embodiment, it is assumed that the quantization matrix of FIG. 8D is used for subblock division of 16 ⁇ 16 pixels corresponding to FIG. 7A. Similarly, the quantization matrix of FIG. 8C is used for the 8 ⁇ 16 pixel sub-block division of FIG.
- the transform/quantization unit 105 supplies the generated quantized coefficient (transformed coefficient after quantization) to the encoding unit 110 and the inverse quantization/inverse transform unit 106.
- the inverse quantization/inverse transform unit 106 inversely quantizes the input quantized coefficient for each sub-block by using the corresponding quantization matrix stored in the quantization matrix holding unit 103. Regenerate the transform coefficients. Then, the inverse quantization/inverse transform unit 106 inversely orthogonally transforms the reproduced transform coefficient in sub-block units to reproduce the prediction error data, and supplies the reproduced prediction error data to the image reproducing unit 107.
- the image reproduction unit 107 appropriately refers to the frame memory 108 based on the prediction information input from the prediction unit 104 in sub-block units, and reproduces the predicted image data.
- the image reproduction unit 107 reproduces and reproduces the image data of the sub-block by adding the reproduced prediction image data and the prediction error data input from the inverse quantization/inverse conversion unit 106 for each sub-block.
- the image data is stored in the frame memory 108.
- the in-loop filter unit 109 reads the reproduced image data from the frame memory 108 in sub-block units and performs in-loop filter processing such as deblocking filter. Then, the in-loop filter unit 109 re-stores the filtered image data in the frame memory 108.
- the encoding unit 110 entropy-encodes the quantized coefficient generated by the transform/quantization unit 105 and the prediction information input from the prediction unit 104 in sub-block units to generate code data.
- the method of entropy coding is not particularly limited, but Golomb coding, arithmetic coding, Huffman coding, or the like can be used.
- the generated code data is supplied to the integrated coding unit 111.
- the integrated coding unit 111 multiplexes the code data of the header and the code data input from the coding unit 110 to form a bitstream. Finally, the bit stream is output from the terminal 112 to the outside.
- FIG. 6A shows an example of the data structure of the bitstream output in the first embodiment.
- the sequence header includes code data corresponding to the quantization matrices 800 to 803 of FIGS. 8A to 8D, and is composed of the coding result of each element.
- the encoded position is not limited to this, and it goes without saying that the encoded position may be encoded in the picture header portion or other header portions.
- the quantization matrix is changed in one sequence, it is possible to update it by newly encoding the quantization matrix. At this time, all the quantization matrices may be rewritten, or a part of them may be changed by specifying the conversion block size of the rewritten quantization matrix.
- the quantization matrix holding unit 103 Prior to image coding, in S301, the quantization matrix holding unit 103 generates and holds a plurality of types of quantization matrices.
- the quantization matrix holding unit 103 is assumed to generate and hold the four types of quantization matrices 800 to 803 shown in FIGS. 8A to 8D.
- the quantization matrix encoding unit 113 scans the quantization matrix generated and held at S301 to calculate the difference between each element, and generates a one-dimensional difference matrix.
- the quantization matrix encoding unit 113 obtains the difference values of two consecutive elements from the quantization matrices 800 to 803 of FIGS. 8A to 8D in the scanning order of FIGS. 10A to 10D, A one-dimensional matrix of difference values shown in FIGS. 11A to 11D is generated.
- the quantization matrix coding unit 113 generates a binary code for each difference value in the generated matrix by referring to the coding table shown in FIG. 12A (or FIG. 12B), and generates coded data. I will do it.
- the integrated encoding unit 111 generates and outputs the header information necessary for encoding the image data, together with the generated quantization matrix code data.
- the block dividing unit 102 divides the input image in frame units into basic block units. Then, in S305, the prediction unit 104 inputs the image data of one basic block generated in S304, and converts the image data into one or more sub-blocks. Then, the prediction unit 104 executes prediction processing for each sub-block, and generates prediction information such as sub-block division information and intra prediction mode, and predicted image data. Then, the prediction unit 104 calculates prediction error data from the image data of each sub block and the predicted image data.
- the transform/quantization unit 105 orthogonally transforms the prediction error data of each sub-block calculated at S305 to generate transform coefficients. Further, the transform/quantization unit 105 quantizes the prediction error data of each sub-block using the quantization matrix generated/held in S301 to generate a quantized coefficient.
- the quantization matrix 803 of FIG. 8D is used for each sub-block obtained by sub-block division corresponding to FIG. 7A.
- the quantization matrix 802 of FIG. 8C is used for each sub-block obtained by the sub-block division of FIG. 7C.
- the quantization matrix 801 of FIG. 8B is used for each sub-block obtained by the sub-block division of FIG. 7D.
- the quantization matrix 800 shown in FIG. 8A is used for four quadtree-divided sub-blocks as shown in FIG. 7B.
- step S307 the inverse quantization/inverse transform unit 106 inversely quantizes the quantized coefficient of each sub-block generated in step S305 using the quantization matrix generated/held in step S301 to obtain the transformed coefficient. To play. Then, the inverse quantization/inverse transform unit 106 further performs inverse orthogonal transform on the transform coefficient of each sub-block to reproduce the prediction error data for each sub-block.
- the image reproducing unit 107 reproduces the predicted image data for each sub-block based on the prediction information generated in S305.
- the image reproduction unit 107 reproduces the image data for each sub-block by adding the prediction error data of the corresponding sub-block generated in S307 to the reproduced prediction image data of each sub-block.
- the encoding unit 110 encodes the prediction information generated in S305 and the quantized coefficient generated in S306 for each subblock to generate coded data. In addition, a bit stream including other code data is generated.
- control unit 150 determines whether or not the coding of all the basic blocks in the frame is completed, and if so, the process proceeds to S311. If not, the next basic block is targeted. In order to perform the encoding, the process returns to S305.
- step S311 the in-loop filter unit 109 performs in-loop filter processing on the image data reproduced in step S308, generates a filtered image, and ends the processing.
- a predetermined number of elements (elements for DC components and elements for relatively low-frequency components adjacent thereto) at the beginning of the quantization matrix are individually encoded, and the remaining elements are pluralized.
- the coding amount of the quantization matrix can be reduced by performing the coding on the element-by-element basis. Further, it is possible to finely control the quantization of the low frequency part, which is sensitive to human vision.
- the configuration is such that all four types of quantization matrices 800 to 803 in FIGS. 8A to 8D are encoded.
- the other quantization matrix may be used to generate the quantization matrix.
- the quantization matrix of FIG. Some elements are thinned out from 803 to generate the quantization matrix 801 in FIG. 8B.
- the quantization matrix 800 can be used to generate the quantization matrix 801 of FIG. 8B and the quantization matrix 802 of FIG. 8C.
- the calculation method in this case is not particularly limited, and it may be calculated by adding a specific difference value (+1 in this embodiment) to the element “4” in the 0th row and 0th column, or by interpolation with surrounding elements. You may calculate using. In FIG. 8C, +1 is added to the element corresponding to the DC component of the elements on the right and lower sides of the element corresponding to the DC component of the transform coefficient, and +2 is added to the element of the lower right.
- the element “5” in row 0 and column 1 in FIG. 8B and the element “5” in row 1 and column 0 in FIG. 8C may be encoded together with the elements in the 16 ⁇ 16 quantization matrix.
- each quantization matrix is generated from another quantization matrix or each element is encoded, and the identifier is encoded in the header.
- information indicating whether each element of the quantization matrix is generated from another quantization matrix or individually encoded is encoded in the header portion as a quantization matrix encoding method information code and is shown in FIG. 6B. It may be configured to generate a bitstream. As a result, it is possible to selectively generate a bitstream in which image quality control according to the size of a sub-block is prioritized or a bitstream with a smaller quantization matrix code amount.
- the quantization matrix of FIGS. 8A to 8D corresponding to the sub-block division/orthogonal transformation of FIGS. 7A to 7D is used, but the orthogonal transformation size and the quantization matrix used are not limited to this. Not done.
- the quantization matrices 900 and 901 of FIGS. 9A and 9B may be further used.
- the quantization matrix holding unit 103 As described above, in the quantization matrix holding unit 103 according to the embodiment, only one of the horizontal and vertical directions of the basic block (16 ⁇ 16 in the embodiment) has the same size, and the other has the same size.
- the long side directions of the quantization matrices 801, 802 as shown in different FIGS. 8B, 8C within a predetermined range (range of distance “1” in the embodiment) preset from the storage position of the element corresponding to the DC component. , An element for each position corresponding to each conversion coefficient is held independently, and at a position exceeding a predetermined range in the long side direction, the same element is held in a unit of a preset number of conversion coefficients (two in the embodiment). To do.
- the short side direction of the quantization matrix as shown in FIGS. 8B and 8C, the elements of the quantization matrix are arranged for each transform coefficient.
- the code amount of the quantization matrix can be suppressed and the image quality deterioration can be suppressed.
- the “predetermined range” may be defined based on the scanning order as shown in FIGS. 10A to 10D when encoding the elements of the quantization matrix.
- 8 ⁇ 16 or 16 ⁇ 8 transform coefficient block size For the block size, the scanning in FIGS. 10B and 10C is performed for encoding/decoding the elements of the quantization matrix.
- an element obtained by performing one scan (range of distance “1”) from the element corresponding to the DC component of the transform coefficient is assigned for each transform coefficient, and thereafter. Will be assigned one element for every two transform coefficients. That is, the quantization matrices 801 and 802 as shown in FIGS. 8B and 8C are obtained in the processing of the decoding device.
- an element obtained by performing three scans (range of distance “3”) from the element corresponding to the DC component of the transform coefficient is assigned to each transform coefficient, and thereafter, 4 elements are assigned.
- One element will be assigned for each transform coefficient. That is, the quantization matrix 803 as shown in FIG. 8D is obtained.
- the elements obtained by all the scans from the elements corresponding to the DC component of the transform coefficient are assigned for each transform coefficient. That is, the quantization matrix 800 as shown in FIG. 8A is obtained in the processing of the decoding device.
- the allocation of elements to transform coefficients may be adaptively changed for the size of the quantization matrix based on the scanning for the quantization matrix. In this case, it is not necessary to consider the positional relationship between the elements.
- FIG. 2 is a block diagram of the image decoding apparatus.
- the image decoding device has a control unit 250 that controls the components described below and controls the entire device.
- the control unit 250 includes a CPU, a ROM that stores programs executed by the CPU and various parameters, and a RAM that is used as a work area of the CPU.
- the OS operating system
- the program, and the parameters stored in the ROM or another nonvolatile storage device may be loaded into the RAM, and then the program may be executed under the control of the OS.
- the image decoding apparatus includes an input terminal 201, a separation decoding unit 202, a decoding unit 203, an inverse quantization/inverse conversion unit 204, an image reproduction unit 205, a frame memory 206, an in-loop filter unit 207, an output terminal 208, and The quantization matrix decoding unit 209 is included.
- the configuration and operation of the image decoding device in the configuration of the above image decoding device will be described below.
- the image decoding apparatus is configured to input the bitstream generated by the image encoding apparatus described above in frame units, but may be configured to input a still image bitstream for one frame. Further, in the second embodiment, only the intra prediction decoding process will be described for ease of description, but the present invention is not limited to this and can be applied to an inter prediction decoding process.
- the separating/decoding unit 202 inputs the coded bitstream via the input terminal 201, separates the coded bitstream into coded data related to decoding information and coefficients, and decodes coded data existing in the header part of the bitstream. ..
- the separation/decoding unit 202 of the present embodiment separates the encoded data of the quantization matrix from the encoded bitstream, and supplies the encoded data to the quantization matrix decoding unit 209. Further, the separation/decoding unit 202 separates the encoded data of the image data from the encoded bitstream, and supplies the encoded data to the decoding unit 203. In short, the demultiplexing/decoding unit 202 performs an operation reverse to that of the integrated coding unit 111 in FIG. 1.
- the quantization matrix decoding unit 209 decodes the encoded data of the quantization matrix supplied from the separation decoding unit 202, and reproduces and holds the quantization matrices 800 to 803.
- the decoding unit 203 decodes the coded data of the image data input from the separation decoding unit 202, and reproduces the quantization coefficient and the prediction information.
- the inverse quantization/inverse transform unit 204 performs inverse quantization on the quantized coefficient using any of the reconstructed quantization matrices 800 to 803, and transforms it, as with the inverse quantization/inverse transform unit 106 in FIG. The coefficient is obtained, the inverse orthogonal transform is further performed, and the prediction error data is reproduced.
- the image reproducing unit 205 appropriately refers to the frame memory 206 based on the input prediction information to generate predicted image data. Then, the image reproduction unit 205 reproduces the image data by adding the prediction error data reproduced by the inverse quantization/inverse conversion unit 204 to this predicted image data, and stores the image data in the frame memory 206.
- the in-loop filter unit 207 similar to the in-loop filter unit 109 in FIG. 1, performs in-loop filter processing such as deblocking filter on the reproduced image data stored in the frame memory 207 and outputs the filtered image data. Restore in frame memory. Then, the output terminal 208 outputs the reproduced image data to an external device (for example, a display device).
- in-loop filter processing such as deblocking filter
- the output terminal 208 outputs the reproduced image data to an external device (for example, a display device).
- bitstream generated in the first embodiment is input in frame units, but a still image bitstream for one frame may be input.
- intra-prediction decoding process only the intra-prediction decoding process will be described for ease of description, but the present invention is not limited to this and can be applied to an inter-prediction decoding process.
- the one-frame bit stream input via the input terminal 201 is supplied to the separation decoding unit 202.
- the separating/decoding unit 202 separates the bitstream into code data related to the decoding process and code data, and decodes the code data existing in the header of the bitstream. More specifically, the separation decoding unit 202 reproduces the coded data of the quantization matrix.
- the separation decoding unit 202 of this embodiment first extracts the coded data of the quantization matrix from the sequence header of the bit stream shown in FIG. 6A and supplies it to the quantization matrix decoding unit 209. Subsequently, the separation decoding unit 202 reproduces the code data in sub-block units of the basic block of the picture data, and supplies it to the decoding unit 203.
- the quantization matrix decoding unit 209 first decodes the input coded data of the quantization matrix and reproduces a plurality of one-dimensional difference matrices. In the present embodiment, similar to the first embodiment, decoding is performed using the coding table shown in FIG. 12A (or FIG. 12B), but the coding table is not limited to this, and the first embodiment Other encoding tables may be used as long as the same format is used. Further, the quantization matrix decoding unit 209 reversely scans the reproduced one-dimensional difference matrices to reproduce a plurality of two-dimensional quantization matrices. Here, the operation opposite to the scanning of the quantization matrix encoding unit 113 of the first embodiment is performed.
- the quantization matrix decoding unit 209 of the present embodiment uses the scanning methods shown in FIGS. 10A to 10D to calculate the difference matrices 1000 to 1003 shown in FIGS. 11A to 11D, respectively. Regenerate and hold the conversion matrices 800 to 803.
- the quantization matrix decoding unit 209 reproduces the quantization matrix shown in FIG. 8B from the difference matrix 1001 shown in FIG. 11B using the scanning method shown in FIG. 10B.
- the quantization matrix decoding unit 209 calculates the first element "4" from the initial value "8" and the initial difference value "-4" in FIG. 11B, and at the first scanning position in FIG. 10B.
- the value "4" of the element at a position of row 0, column 0 is determined, and the element "4" is arranged in the portion of row 0, column 0 of FIG. 8B.
- the quantization matrix decoding unit 209 calculates the element “4” in the 0th row and 0th column of FIG. 8B and the second element “5” from the second difference value “1” in FIG. 11B, “5” is arranged at the 0th row and 1st column which is the second scanning position in FIG. 10B.
- the third element “9” is calculated from the element "5" in the 0th row and 1st column of FIG. 8B and the third difference value "4" in FIG. 10B, and the third scanning position in FIG. 8B. “9” is arranged in the 1st row and 0th column and the 1st row and 1st column. The same process can be repeated to reproduce the quantization matrix 801 shown in FIG. 8B.
- the decoding unit 203 decodes the code data of each sub-block in the basic block and reproduces the quantized coefficient and the prediction information.
- the decoding unit 203 supplies the reproduced quantized coefficient to the inverse quantization/inverse transform unit 204, and the reproduced prediction information to the image reproducing unit 205, respectively.
- the inverse quantizing/inverse transforming unit 204 uses the one of the quantization matrices 800 to 803 reproduced and held by the quantization matrix decoding unit 209 for the input quantized coefficient in sub-block units. And orthogonal transformation coefficients are generated. The inverse quantization/inverse transform unit 204 further performs inverse orthogonal transform on the generated orthogonal transform coefficient in sub-block units to reproduce prediction error data, and supplies the prediction error data to the image reproduction unit 205.
- the quantization matrix to be used is determined according to the size of the sub-block to be decoded, and in this embodiment, the quantization matrix 803 of FIG. 8D is used for the sub-block division corresponding to FIG. 7A. And Similarly, the quantization matrix 802 of FIG.
- FIG. 8C is used for the sub-block division of FIG. 7C. It is assumed that the quantization matrix 801 of FIG. 8B is used for the sub-block division of FIG. 7D. Further, the quantization matrix shown in FIG. 8A is used for subblock division of the quadtree of FIG. 7B.
- the image reproducing unit 205 appropriately refers to the frame memory 206 based on the prediction information input from the decoding unit 203 for each sub-block, and reproduces the predicted image data. Then, the image reproducing unit 205 reproduces the image data of the sub-block by adding the prediction error data supplied from the inverse quantization/inverse transforming unit 204 to this predicted image data, and stores it in the frame memory 206. .. The image data stored in the frame memory 206 becomes a prediction reference candidate when decoding another sub-block.
- the in-loop filter unit 207 reads the reproduced image data from the frame memory 206 in sub-block units and performs in-loop filter processing such as deblocking filter. Then, the in-loop filter unit 207 stores the filtered image in the frame memory 206 again.
- the reproduced image stored in the frame memory 206 is finally output from the terminal 208 to the outside.
- step S ⁇ b>401 the separation decoding unit 202 separates the information related to the decoding process and the code data related to the coefficient from the bit stream, and decodes the code data of the header part. More specifically, the quantization matrix reproduces the code data.
- the quantization matrix decoding unit 209 decodes the coded data of the quantization matrix reproduced in S401, and reproduces the one-dimensional difference matrix 1000 to 1003 as shown in FIGS. 11A to 11D. Further, the quantization matrix decoding unit 209 reversely scans the reproduced one-dimensional difference matrix 1000 to 1003 to reproduce the two-dimensional quantization matrix. That is, the quantization matrix decoding unit 209 uses the scanning methods shown in FIGS. 10A to 10D for the difference matrices 1000 to 1003 shown in FIGS. 11A to 11D, respectively, and the quantization matrixes 800 to 8D shown in FIGS. Play and hold 803. It is assumed that the scanning method and the allocation of the elements of the quantization matrix to the transform coefficients shown in FIGS.
- each element of the quantization matrix is assigned to the transform coefficient according to the distance from the element corresponding to the DC component of the transform coefficient. That is, only one of the horizontal and vertical directions of the basic block (16 ⁇ 16 size in the embodiment) has the same size, and the other has a different direction in the long side direction of the quantization matrix as shown in FIGS. 8B and 8C.
- the quantization matrix decoding unit 209 sets the element for each position corresponding to each transform coefficient.
- One element is assigned and the same element is assigned to a preset number unit (two in the embodiment) of the conversion coefficient at a position exceeding a predetermined range in the long side direction.
- the elements of the quantization matrix are assigned to each transform coefficient.
- the quantization matrix decoding unit 209 indicates the position of the element corresponding to the DC component and its position.
- four elements adjacent to the right, the bottom, and the bottom right are individually assigned for each corresponding conversion coefficient.
- one same element is assigned to every four transform coefficients adjacent to each other.
- an element is held for each transform coefficient.
- the code amount of the quantization matrix can be suppressed and the image quality deterioration can be suppressed.
- the “predetermined range” may be defined based on the scanning order as shown in FIGS. 10A to 10D when decoding the elements of the quantization matrix.
- Block size of 8 ⁇ 16 or 16 ⁇ 8 transform coefficient For block size, the scanning of FIGS. 10B and 10C is performed for decoding the elements of the quantization matrix.
- the quantization matrix decoding unit 209 assigns, for each transform coefficient, an element obtained by performing one scan (range of distance “1”) from the element corresponding to the DC component of the transform coefficient, and thereafter, two elements are assigned. Assign one element for each transform coefficient. That is, the quantization matrices 801, 802 as shown in FIGS. 8B, 8C are obtained.
- the quantization matrix decoding unit 209 determines, for each transform coefficient, an element obtained by performing three scans (range of distance “3”) from the element corresponding to the DC component of the transform coefficient. Allocation is performed, and thereafter, one element is allocated for each of the four transform coefficients. That is, the quantization matrix 803 as shown in FIG. 8D is obtained. Further, in the case of a block size of transform coefficients of 8 ⁇ 8, the quantization matrix decoding unit 209 allocates, for each transform coefficient, elements obtained by all scanning from the elements corresponding to the DC component of the transform coefficient. That is, the quantization matrix as shown in FIG. 8A is obtained. In this way, the allocation of elements to transform coefficients may be adaptively changed for the size of the quantization matrix based on the scanning for the quantization matrix. In this case, it is not necessary to consider the positional relationship between the elements.
- the decoding unit 203 decodes the code data separated in S401, and reproduces the quantization coefficient and prediction information for each subblock.
- step S404 the inverse quantization/inverse transform unit 204 performs inverse quantization and transforms the quantized coefficient for each subblock using one of the quantization matrices 800 to 803 reproduced in step S402. Get the coefficient.
- the inverse quantization/inverse transform unit 204 further performs inverse orthogonal transform on the transform coefficient to reproduce the prediction error data of each sub-block.
- the image reproduction unit 205 reproduces the prediction information and predicted image data for each sub-block generated in S403. Then, the image reproducing unit 205 reproduces the image data by adding the prediction error data generated in S404 to the reproduced predicted image data for each sub-block.
- control unit 250 determines whether or not the decoding of all the basic blocks in the frame is completed, and if so, the process proceeds to S407, and if not, the next basic block is decoded. Therefore, the process returns to S403.
- step S407 the in-loop filter unit 207 performs in-loop filter processing on the image data reproduced in step S405, generates a filtered image, and ends the processing.
- all four types of quantization matrices 800 to 803 shown in FIGS. 8A to 8D are decoded from the bit stream, but instead, one quantum decoded from the bit stream is used.
- Other quantization matrices may be generated from the quantization matrix.
- the 16 ⁇ 8 quantization matrix itself may not be decoded from the bitstream, but may be generated using the 16 ⁇ 16 quantization matrix decoded from the bitstream.
- some elements are thinned out from the quantization matrix of FIG. 8D to generate the quantization matrix of FIG. 8B.
- the quantization matrix 800 may be used to generate the quantization matrices 801 and 802 in FIGS. 8B and 8C.
- the calculation method in this case is not particularly limited, and it may be calculated by adding a specific difference value (+1 in the present embodiment) to the element “4” in the 0th row and 0th column, or interpolation with peripheral elements may be performed. You may calculate using.
- the element “5” in row 0 and column 1 of FIG. 8B or the element “5” in row 1 and column 0 of FIG. 8C may be decoded from the bitstream. By this means, it is possible to decode a bitstream in which the code amount of the quantization matrix is further reduced.
- an identifier for selecting whether to generate each quantization matrix from another quantization matrix or to decode each element may be decoded from the header. For example, information indicating whether each element of the quantization matrix is generated from another quantization matrix or individually decoded is decoded as a quantization matrix coding method information code from the header part of the bit stream shown in FIG. 6B. It may be configured to. By this means, it is possible to decode a bitstream in which it is selected whether to give priority to image quality control according to the size of a sub block or to reduce the code amount of the quantization matrix.
- the quantization matrices 800 to 803 in FIGS. 8A to 8D corresponding to the sub-block division/orthogonal transformation in FIGS. 7A to 7D are used, but the orthogonal transformation size and the quantization matrix used are It is not limited to this.
- the quantization matrices 900 and 901 of FIGS. 9A and 9B may be further used.
- each processing unit shown in FIGS. 1 and 2 is described as being configured by hardware. However, the processing performed by each processing unit shown in these figures may be configured by a computer program.
- FIG. 5 is a block diagram showing a configuration example of computer hardware applicable to the image display device according to each of the above-described embodiments.
- the CPU 501 controls the entire computer by using the computer programs and data stored in the RAM 502 and the ROM 503, and also executes the above-described processes as those performed by the image processing apparatus according to each of the above embodiments. That is, the CPU 501 functions as each processing unit shown in FIGS.
- the RAM 502 has an area for temporarily storing a computer program or data loaded from an external storage device 506, data acquired from the outside via an I/F (interface) 507, and the like. Further, the RAM 502 has a work area used when the CPU 501 executes various processes. That is, the RAM 502 can be allocated as, for example, a frame memory or can appropriately provide other various areas.
- the ROM 503 stores setting data of the computer, a boot program, and the like.
- the operation unit 504 is composed of a keyboard, a mouse and the like, and can be operated by the user of the computer to input various instructions to the CPU 501.
- the display unit 505 displays the processing result by the CPU 501.
- the display unit 505 is composed of, for example, a liquid crystal display.
- the external storage device 506 is a large-capacity information storage device represented by a hard disk drive device.
- the external storage device 506 stores an OS (operating system) and a computer program for causing the CPU 501 to realize the functions of the units illustrated in FIGS. 1 and 2. Furthermore, each image data to be processed may be stored in the external storage device 506.
- the computer programs and data stored in the external storage device 506 are appropriately loaded into the RAM 502 under the control of the CPU 501 and are subject to processing by the CPU 501.
- the I/F 507 can be connected to a network such as a LAN or the Internet, and other devices such as a projection device and a display device, and the computer acquires and sends various information via the I/F 507.
- the CPU 501 executes the boot program of the ROM 503, loads the OS stored in the external storage device 506 into the RAM 502, and activates the OS.
- this device can communicate via the interface 507 and functions as an information processing device.
- the CPU 501 loads an application related to image encoding (corresponding to FIG. 3) from the external storage device 506 to the RAM 502 and executes it, so that the CPU 501 functions as various processing units shown in FIG. Therefore, the present device functions as an image encoding device.
- the CPU 501 loads an application related to image decoding (corresponding to FIG. 4) from the external storage device 506 to the RAM 502 and executes it, the CPU 501 functions as various processing units shown in FIG. It will function as an image decoding device.
- the present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in a computer of the system or apparatus read and execute the program. It can also be realized by the processing. It can also be realized by a circuit (for example, ASIC) that realizes one or more functions.
- ASIC application specific integrated circuit
Abstract
Description
に関するものである。
画像データを符号化する画像符号化装置であって、
符号化対象の画像データを予め設定されたサイズの基本ブロックに分割し、当該基本ブロックを、予め設定された複数のサブブロック分割パターンの何れかを用いて1以上のサブブロックに更に分割し、各サブブロック単位に周波数変換、量子化、エントロピー符号化を行う第1の符号化手段と、
該第1の符号化手段で利用する前記サブブロック分割パターンに含まれるサブブロックのサイズに対応する複数の量子化マトリクスを保持する保持手段と、
該保持手段で保持される複数の量子化マトリクスのうちの少なくとも1つを符号化する第2の符号化手段と、
該第2の符号化手段で生成された符号化データと、第1の符号化手段で得た符号化データとを統合する統合手段とを有し、
前記保持手段は、
前記基本ブロックの水平、垂直方向のいずれかのサイズと同じサイズを有する量子化マトリクスについては、直流成分に対応する要素の格納位置から予め設定された所定範囲の位置の要素を独立した値として保持し、前記所定範囲を超える位置では予め設定された個数単位に同じ要素を保持することを特徴とする。
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
図1は第1の実施形態の画像符号化装置を示すブロック構成図である。画像符号化装置は、以下に説明する構成要素を制御し、装置全体の制御を司る制御部150を有する。この制御部150は、CPU、CPUが実行するプログラムや各種パラメータ等を記憶しているROM、CPUのワークエリアとして使用されるRAMを含む。なお、ROMや他の不揮発性記憶装置に格納されたOS(オペレーティングシステム)、プログラム、パラメータをRAMにロードした後に、OSの制御下でプログラムを実行するようにしてもよい。
第2の実施形態では、上記第1の実施形態の画像符号化装置で生成された符号化データを復号する画像復号装置を説明する。図2は、その画像復号装置のブロック構成図である。
すなわち、基本ブロック(実施形態では16×16のサイズ)の水平、垂直方向のいずれかの一方のみが同じサイズを有し、他方が異なる図8B,8Cに示すような量子化マトリクスの長辺方向については、直流成分に対応する要素の格納位置から予め設定された所定範囲(実施形態では距離“1” の範囲)では、量子化マトリクス復号部209は、各変換係数に対応する位置毎に要素1つの要素を割り当て、長辺方向における所定範囲を超える位置では、変換係数の予め設定された個数単位(実施形態では2個)に同じ要素を割り当てる。一方、図8B,8Cに示すような量子化マトリクスの短辺方向については、変換係数ごとに量子化マトリクスの要素を割り当てる。
図1、図2に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、これらの図に示した各処理部で行う処理をコンピュータプログラムでもって構成しても良い。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
本願は、2018年12月17日提出の日本国特許出願特願2018-235910を基礎として優先権を主張するものであり、その記載内容の全てを、ここに援用する。
Claims (7)
- 画像データを符号化する画像符号化装置であって、
符号化対象の画像データを予め設定されたサイズの基本ブロックに分割し、当該基本ブロックを、予め設定された複数のサブブロック分割パターンの何れかを用いて1以上のサブブロックに更に分割し、各サブブロック単位に周波数変換、量子化、エントロピー符号化を行う第1の符号化手段と、
該第1の符号化手段で利用する前記サブブロック分割パターンに含まれるサブブロックのサイズに対応する複数の量子化マトリクスを保持する保持手段と、
該保持手段で保持される複数の量子化マトリクスのうちの少なくとも1つを符号化する第2の符号化手段と、
該第2の符号化手段で生成された符号化データと、第1の符号化手段で得た符号化データとを統合する統合手段とを有し、
前記保持手段は、
前記基本ブロックの水平、垂直方向のいずれかのサイズと同じサイズを有する量子化マトリクスについては、直流成分に対応する要素の格納位置から予め設定された所定範囲の位置の要素を独立した値として保持し、前記所定範囲を超える位置では予め設定された個数単位に同じ要素を保持する
ことを特徴とする画像符号化装置。 - 前記保持手段は、
水平、垂直方向のいずれか一方が前記基本ブロックのサイズと同じであり、他方が前記基本ブロックのサイズより小さい量子化マトリクスについては、前記直流成分の格納位置を含み、前記基本ブロックと同じサイズとなる方向に隣接する位置の2つの要素を個別に保持し、それ以外の前記同じサイズとなる方向に隣接する2つについて同じ要素を保持し、
水平、垂直方向のいずれも前記基本ブロックのサイズと同じである量子化マトリクスについては、前記直流成分の格納位置を含み、水平、垂直方向に隣接する4つの要素を個別に保持し、それ以外の前記水平、垂直に隣接する4つについて同じ要素を保持する
ことを特徴とする請求項1に記載の画像符号化装置。 - 前記保持手段は、更に、前記基本ブロックの水平、垂直方向とも1/2のサイズの量子化マトリクスを保持し、当該量子化マトリクスについては、個々の位置毎に要素を保持することを特徴とする請求項2に記載の画像符号化装置。
- 画像データを符号化する画像符号化装置の制御方法であって、
符号化対象の画像データを予め設定されたサイズの基本ブロックに分割し、当該基本ブロックを、予め設定された複数のサブブロック分割パターンの何れかを用いて1以上のサブブロックに更に分割し、各サブブロック単位に周波数変換、量子化、エントロピー符号化を行う第1の符号化工程と、
該第1の画像符号化工程で利用する前記サブブロック分割パターンに含まれるサブブロックのサイズに対応する複数の量子化マトリクスを保持する保持工程と、
該保持工程で保持される複数の量子化マトリクスのうち少なくとも1つを符号化する第2の符号化工程と、
該第2の符号化工程で生成された符号化データと、第1の符号化工程で得た符号化データとを統合する統合工程とを有し、
前記保持工程は、
前記基本ブロックの水平、垂直方向のいずれかのサイズと同じサイズを有する量子化マトリクスについては、直流成分の要素の格納位置から予め設定された所定範囲の位置の要素を独立した値として保持し、前記所定範囲を超える位置では予め設定された個数単位に同じ要素を保持する
ことを特徴とする画像符号化装置の制御方法。 - 請求項1乃至3のいずれか1項に記載の画像符号化装置で生成された符号化データを復号する画像復号装置であって、
符号化データから、量子化マトリクスの符号化データと、画像データの符号化データとを分離する分離手段と、
該分離手段で分離された量子化マトリクスの符号化データを復号し、各サブブロックのサイズに対応する複数の量子化マトリクスを生成し、保持する第1の復号手段と、
前記分離手段で分離された画像データの符号化データを、前記第1の復号手段より得た各サブブロックの量子化マトリクスを用いて復号し、画像データを再生する第2の復号手段と
を有することを特徴とする画像復号装置。 - 請求項4に記載の制御方法で生成された符号化データを復号する画像復号装置の制御方法であって、
符号化データから、量子化マトリクスの符号化データと、画像データの符号化データとを分離する分離工程と、
該分離工程で分離された量子化マトリクスの符号化データを復号し、各サブブロックのサイズに対応する複数の量子化マトリクスを生成し、保持する第1の復号工程と、
前記分離工程で分離された画像データの符号化データを、前記第1の復号工程より得た各サブブロックの量子化マトリクスを用いて復号し、画像データを再生する第2の復号工程と
を有することを特徴とする画像復号装置の制御方法。 - コンピュータが読み込み実行することで、前記コンピュータに、請求項4又は6に記載の制御方法の各工程を実行させるためのプログラム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201980083874.9A CN113228652B (zh) | 2018-12-17 | 2019-11-14 | 图像编码装置和方法、图像解码装置和方法以及存储介质 |
BR112021010308-2A BR112021010308A2 (pt) | 2018-12-17 | 2019-11-14 | Dispositivo de codificação de imagem, dispositivo de decodificação de imagem, e método e programa para controlar os mesmos |
KR1020217021605A KR20210096279A (ko) | 2018-12-17 | 2019-11-14 | 화상 부호화 장치 및 화상 복호 장치 및 그것들의 제어 방법 및 프로그램 |
EP19897736.5A EP3902254A4 (en) | 2018-12-17 | 2019-11-14 | IMAGE ENCODING DEVICE, IMAGE DECODING DEVICE, AND METHOD AND PROGRAM FOR CONTROLLING THEM |
US17/346,849 US20210306633A1 (en) | 2018-12-17 | 2021-06-14 | Image encoding apparatus, image decoding apparatus, control methods and non-transitory computer-readable storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018235910A JP2020098984A (ja) | 2018-12-17 | 2018-12-17 | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム |
JP2018-235910 | 2018-12-17 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US17/346,849 Continuation US20210306633A1 (en) | 2018-12-17 | 2021-06-14 | Image encoding apparatus, image decoding apparatus, control methods and non-transitory computer-readable storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020129489A1 true WO2020129489A1 (ja) | 2020-06-25 |
Family
ID=71101173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2019/044754 WO2020129489A1 (ja) | 2018-12-17 | 2019-11-14 | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム |
Country Status (8)
Country | Link |
---|---|
US (1) | US20210306633A1 (ja) |
EP (1) | EP3902254A4 (ja) |
JP (2) | JP2020098984A (ja) |
KR (1) | KR20210096279A (ja) |
CN (1) | CN113228652B (ja) |
BR (1) | BR112021010308A2 (ja) |
TW (3) | TW202312733A (ja) |
WO (1) | WO2020129489A1 (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013038758A (ja) | 2011-07-13 | 2013-02-21 | Canon Inc | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
JP2014535250A (ja) * | 2011-11-07 | 2014-12-25 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオコード化のための量子化行列の信号伝達 |
WO2016044842A1 (en) * | 2014-09-19 | 2016-03-24 | Futurewei Technologies, Inc. | Method and apparatus for non-uniform mapping for quantization matrix coefficients between different sizes of matrices |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008044511A1 (en) * | 2006-10-12 | 2008-04-17 | Kabushiki Kaisha Toshiba | Method and apparatus for encoding image |
JP2011029956A (ja) * | 2009-07-27 | 2011-02-10 | Sony Corp | 画像符号化装置および画像符号化方法 |
JP5741076B2 (ja) * | 2010-12-09 | 2015-07-01 | ソニー株式会社 | 画像処理装置及び画像処理方法 |
US9641840B2 (en) * | 2011-05-20 | 2017-05-02 | Sony Corporation | Processing device and image processing method for encoding and decoding image |
JP2013146038A (ja) * | 2011-12-13 | 2013-07-25 | Canon Inc | 画像量子化装置、画像量子化方法及びプログラム、画像逆量子化装置、画像逆量子化方法及びプログラム |
WO2013094385A1 (ja) * | 2011-12-19 | 2013-06-27 | ソニー株式会社 | 画像処理装置および方法 |
EP3432582B1 (en) * | 2012-02-29 | 2020-04-01 | Sony Corporation | Image processing device and method |
CN111147852B (zh) * | 2012-04-16 | 2022-05-31 | 韩国电子通信研究院 | 图像解码方法和图像编码方法 |
CN104919798B (zh) * | 2012-04-16 | 2018-12-14 | 华为技术有限公司 | 量化矩阵编码的方法和装置 |
GB2501535A (en) * | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
JPWO2016103542A1 (ja) * | 2014-12-26 | 2017-10-19 | パナソニックIpマネジメント株式会社 | 符号化方法、復号方法、符号化装置および復号装置 |
CN104796609B (zh) * | 2015-04-17 | 2018-01-05 | 南京理工大学 | 基于最优哈达玛编码的大视场高分辨率显微成像方法 |
JP6566865B2 (ja) * | 2015-12-28 | 2019-08-28 | Kddi株式会社 | 動画像復号装置、動画像復号方法、動画像符号化装置、動画像符号化方法及びコンピュータ可読記録媒体 |
CN106612439A (zh) * | 2016-02-04 | 2017-05-03 | 四川用联信息技术有限公司 | 一种自适应快速分形图像压缩方法 |
-
2018
- 2018-12-17 JP JP2018235910A patent/JP2020098984A/ja active Pending
-
2019
- 2019-11-14 CN CN201980083874.9A patent/CN113228652B/zh active Active
- 2019-11-14 WO PCT/JP2019/044754 patent/WO2020129489A1/ja active Application Filing
- 2019-11-14 EP EP19897736.5A patent/EP3902254A4/en active Pending
- 2019-11-14 KR KR1020217021605A patent/KR20210096279A/ko not_active Application Discontinuation
- 2019-11-14 BR BR112021010308-2A patent/BR112021010308A2/pt unknown
- 2019-11-25 TW TW111143485A patent/TW202312733A/zh unknown
- 2019-11-25 TW TW111122003A patent/TWI788268B/zh active
- 2019-11-25 TW TW108142735A patent/TWI770441B/zh active
-
2021
- 2021-06-14 US US17/346,849 patent/US20210306633A1/en active Granted
-
2023
- 2023-12-21 JP JP2023216192A patent/JP2024023793A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013038758A (ja) | 2011-07-13 | 2013-02-21 | Canon Inc | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
JP2014535250A (ja) * | 2011-11-07 | 2014-12-25 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ビデオコード化のための量子化行列の信号伝達 |
WO2016044842A1 (en) * | 2014-09-19 | 2016-03-24 | Futurewei Technologies, Inc. | Method and apparatus for non-uniform mapping for quantization matrix coefficients between different sizes of matrices |
Non-Patent Citations (1)
Title |
---|
See also references of EP3902254A4 |
Also Published As
Publication number | Publication date |
---|---|
TWI788268B (zh) | 2022-12-21 |
TW202312733A (zh) | 2023-03-16 |
CN113228652B (zh) | 2024-04-12 |
TW202029759A (zh) | 2020-08-01 |
BR112021010308A2 (pt) | 2021-08-24 |
US20210306633A1 (en) | 2021-09-30 |
KR20210096279A (ko) | 2021-08-04 |
JP2020098984A (ja) | 2020-06-25 |
TW202239207A (zh) | 2022-10-01 |
EP3902254A1 (en) | 2021-10-27 |
EP3902254A4 (en) | 2022-08-31 |
CN113228652A (zh) | 2021-08-06 |
JP2024023793A (ja) | 2024-02-21 |
TWI770441B (zh) | 2022-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2023105156A (ja) | 画像符号化装置、画像符号化方法、及びプログラム | |
WO2020246125A1 (ja) | 画像符号化装置及び画像復号装置及び方法及びプログラム | |
WO2020003740A1 (ja) | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム | |
WO2020129489A1 (ja) | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム | |
WO2020184227A1 (ja) | 画像復号装置、画像復号方法、及びプログラム | |
WO2020184223A1 (ja) | 画像復号装置、画像復号方法、及びプログラム | |
WO2020129407A1 (ja) | 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム | |
WO2023181546A1 (ja) | 画像符号化装置、画像復号装置、画像符号化方法、および画像復号方法 | |
WO2021054012A1 (ja) | 画像符号化装置、画像復号装置及びそれらの制御方法及びプログラム | |
WO2020183859A1 (ja) | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、及びプログラム | |
WO2020129498A1 (ja) | 画像符号化装置、画像符号化方法、画像復号装置、画像復号方法 | |
WO2020255688A1 (ja) | 画像符号化装置及び画像復号装置及び方法及びプログラム | |
JP7090490B2 (ja) | 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法 | |
JP2021150723A (ja) | 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19897736 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 122022022665 Country of ref document: BR |
|
REG | Reference to national code |
Ref country code: BR Ref legal event code: B01A Ref document number: 112021010308 Country of ref document: BR |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 20217021605 Country of ref document: KR Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2019897736 Country of ref document: EP Effective date: 20210719 |
|
ENP | Entry into the national phase |
Ref document number: 112021010308 Country of ref document: BR Kind code of ref document: A2 Effective date: 20210527 |