MX2008010316A - Moving image encoding/decoding method and device and program - Google Patents

Moving image encoding/decoding method and device and program

Info

Publication number
MX2008010316A
MX2008010316A MX/A/2008/010316A MX2008010316A MX2008010316A MX 2008010316 A MX2008010316 A MX 2008010316A MX 2008010316 A MX2008010316 A MX 2008010316A MX 2008010316 A MX2008010316 A MX 2008010316A
Authority
MX
Mexico
Prior art keywords
generation
quantization
quantization matrix
parameter
matrix
Prior art date
Application number
MX/A/2008/010316A
Other languages
Spanish (es)
Inventor
Chujoh Takeshi
Tanizawa Akiyuki
Original Assignee
Kabushiki Kaisha Toshiba
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 Kabushiki Kaisha Toshiba filed Critical Kabushiki Kaisha Toshiba
Publication of MX2008010316A publication Critical patent/MX2008010316A/en

Links

Abstract

A moving image encoding method performing quantization of conversion coefficients by using a quantization matrix of conversion coefficients corresponding to respective frequency positions, comprising a step for generating a quantization matrix by using a generating function and generating parameters used for generating a quantization matrix, a step for quantizing the conversion coefficients by using the quantization matrix thus generated, and a step for encoding the quantized conversion coefficients to generate an encoded signal.

Description

METHOD AND DEVICE AND PROGRAM OF CODING / DECODING OF IMAGES IN MOTION Technical Field The present invention relates to a method and apparatus for encoding / decoding video using quantization matrices.
BACKGROUND ART A system for quantifying a DCT coefficient is proposed when performing bit allocation in each frequency position, using a frequency characteristic of the DCT coefficients provided when submitting a video to orthogonal transformation, for example, discrete cosine transform ( DCT) (W. Chen and CH Smith, "Adaptive Coding of Monochromatic and Color Images," IEEE Trans. On Comm. Vol. 25, No. 11, 1977). According to this conventional system, many bits are assigned to a low level frequency domain to obtain the coefficient information, while some bits are assigned to a high pass frequency domain, so the DCT coefficient is quantified in effectiveness. However, this conventional system needs to prepare an allocation table according to the quantification ordinance. Therefore, it is not always an effective system in terms of solid quantification. ITU.TT.81 and ISO / IEC10918-1 (referred to as JPEG: hereinafter Joint Expert Group on Photography) recommended in ITU-T and ISO / IEC also quantify transformation coefficients over the entire frequency range with the same quantification scale. However, the human being is comparatively insensitive in the high frequency region according to human visual property. For this reason, the following system is proposed. That is, in JPEG, the weighting is done in each frequency domain to change a quantization scale, so that many bits are assigned to a visually sensitive low frequency domain and the proportion of bits is decreased in the high frequency domain , resulting in an improvement in a subjectivity image quality. This system performs quantification in each block of conversion quantification. A table used for this quantification is referred to as a quantization matrix. In addition, in recent years, the video coding method that greatly improves the coding efficiency over the conventional method is recommended as ITU-TRec.H.264 and ISO / IEC14496-10 (referred to as H.264) in combination with ITU. -T and ISO / IEC. Conventional coding systems such as ISO / IEC PEG-1, 2, 4 and ITU-TH.261, H.263 quantify DCT coefficients after the orthogonal transform to reduce the number of coded bits of the transform coefficients. In a H.264 main profile, since the relationship between a quantization parameter and a quantization scale are designed so that they become an equal range on a logarithmic scale, the quantization matrix is not entered. However, in a high H.264 profile, the quantization matrix will only be introduced to improve a subjectivity image quality for a high resolution image (refer to Jiuhuai Lu, "Quantification Weighting Proposal for H.264 / MPEG -4 AVC Professional Profiles ", JVT from ISO / IEC MPEG and ITU-T VCEG, JVT-K029, March 2004). In the H.264 high profile, the eight total types of different quantization matrices can be set in correspondence with two transformed / quantized blocks (a block of 4x4 pixels and a block of 8x8 pixels) for each coding mode (intra-frame prediction) or inter-frame prediction) and on each signal (a luminance signal or a color difference signal). Since the quantization matrix is used to weight the pixel according to each frequency component position at the time of quantization, the same quantization matrix is necessary at the time of quantization as well. In a H.264 high profile encoder, the quantization matrices used are encoded and multiplexed and then transmitted to a decoder. Specifically, a difference value is calculated in order of zigzag scanning or field scanning of a CD component of the quantization matrix, and the difference data obtained is subjected to variable length coding and multiplexed as code data. On the other hand, a H.264 high profile decoder decodes the code data according to a logic similar to the encoder to reconstruct them as a quantization matrix that is used at the time of dequantization. The quantization matrix is finally subjected to a variable length coding. In this case, the number of encoded bits of the quantization matrix requires at least 8 bits and not less than 1500 bits at the most about the syntax. A method for transmitting a high profile quantization matrix H.264 can increase an overload to encode the quantization matrix and thereby greatly decrease the coding efficiency, in an application used in a low bit rate such as a cell phone or mobile device. A method for adjusting a value of a quantization matrix is proposed by transmitting a base quantization matrix at the beginning to update the quantization matrix with a small overload and then transmitting a coefficient k indicating a degree of change from the quantization matrix to a decoder (refer to JP-A-2003-189308 (KOKAI)). JP-A 2003-189308 (KOKAI): "Video coding apparatus, coding method, decoding apparatus and decoding method, and video code string transmission method" aims to update a quantization matrix in each type of image with the least number of encoded bits, and makes it possible to update the base quantization matrix in approximately 8 bits at most. However, since it is a subsystem to send only one degree of change from the base quantization matrix, the amplitude of the quantization matrix can be changed but it is impossible to change its characteristic. In addition, it needs to transmit the base quantization matrix, and in this way, the number of encoded bits can increase greatly due to the coding situation.
Description of the Invention When a quantization matrix is encoded by a method prescribed by the high H.264 profile, and transmitted to a decoder, the number of bits encoded to encode the quantization matrix increases. When the quantization matrix is transmitted again in each image, the number of bits encoded to encode the quantization matrix increases further. In addition, when a degree of change of the quantization matrix is transmitted, degrees of freedom to change the quantization matrix are largely limited. There is a problem because these results make it difficult to use the quantification matrix effectively. An aspect of the present invention provides a method of video coding comprising: generating a quantization matrix using a function with respect to the generation of the quantization matrix and a parameter with respect to the function; quantizing a transform coefficient with respect to an input image signal using the quantization matrix to generate a quantized transform coefficient; and encode the parameter and the quantized transform coefficient to generate a code signal.
Brief Description of the Drawings FIGURE 1 is a block diagram illustrating a structure of a video coding apparatus according to a first embodiment. FIGURE 2 is a block diagram illustrating a structure of a quantization matrix generator according to the first embodiment. FIGURE 3 is a flow chart of the video coding apparatus according to the first embodiment. FIGURE 4A is a schematic diagram of a prediction / block order form related to the first embodiment. FIGURE 4B is a diagram illustrating a 16x16 pixel block shape. FIGURE 4C is a diagram illustrating a 4x4 pixel block shape. FIGURE 4D is a diagram illustrating a block shape of 8x8 pixels. FIGURE 5A is a diagram illustrating a quantization matrix that corresponds to a 4x4 pixel block related to the first mode. FIGURE 5B is a diagram illustrating a quantization matrix that corresponds to a block of 8x8 pixels. FIGURE 6A is a diagram for explaining a method of generating quantization matrices related to the first embodiment. FIGURE 6B is a diagram for explaining another method of generating quantization matrices. FIGURE 6C is a diagram for explaining another method of generating quantization matrices.
FIGURE 7 is a schematic diagram of a syntax structure according to the first embodiment. FIGURE 8 is a diagram of a data structure of a sequence parameter set syntax according to the first embodiment. FIGURE 9 is a diagram of a data structure of an image parameter set syntax according to the first embodiment. FIGURE 10 is a diagram of a data structure of an image parameter set syntax according to the first embodiment. FIGURE 11 is a diagram of a data structure of a supplementary syntax according to the first embodiment. FIGURE 12 is a flowchart of a multipath encoding according to a second embodiment. FIGURE 13 is a diagram illustrating a syntax structure in a subdivision header syntax. FIGURE 14 is a diagram illustrating a subdivision header syntax. FIGURE 15 is a diagram illustrating a subdivision header syntax. FIGURE 16 is a diagram illustrating an example of a CurrSliceType. FIGURE 17 is a diagram illustrating a subdivision header syntax. FIGURE 18 is a block diagram illustrating a structure of a video decoding apparatus according to the third embodiment of the present invention. FIGURE 19 is a flow chart of the video decoding apparatus according to the third embodiment of the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION Now embodiments of the present invention will be described in detail along with the drawings.
(First mode: coding) According to the first embodiment shown in FIGURE 1, a video signal is divided into a plurality of pixel blocks and entered into a video encoding apparatus 100 as an input image signal 116 . The video coding apparatus 100 has, as modes executed by an indicator 101, a plurality of different prediction modes in the block size or in a method of generating predictive signals. In the present embodiment, it is presumed that the coding is done from the upper left of the frame to the lower right of the same as shown in FIGURE 4A. The input image signal 116 input to the video encoding apparatus 100 is divided into a plurality of blocks each containing 16x16 pixels as shown in FIGURE 4B. A portion of the input image signal 116 is input to the indicator 101 and is encoded by an encoder 111 through a mode determination unit 102, a transformer 103 and a quantizer 104. This encoded image signal is stored in an output buffer 120 and then produced as data 115 encoded in the output temporization controlled by a coding controller 110. A 16x16 pixel block shown in FIGURE 4B is referred to as a macroblock and has a basic process block size for the next coding process. The video coding apparatus 100 reads the input image signal 116 in block units and encodes it. The macroblock can be in units of blocks of 32x32 pixels or units of blocks of 8x8 pixels. The indicator 101 generates a predictive image signal 118 with all modes that can be selected in the macroblock by using a coded reference image stored in a reference image memory 107. The indicator 101 generates all the predictive image signals for all coding modes in which a block of object pixels can be coded. However, when the following prediction can not be made without generating a local decoded image in the macroblock such as the intra-frame prediction of H.264 (4x4 pixel prediction) (FIGURE 4C) or 8x8 pixel prediction (FIGURE 4D), the Indicator 101 can perform orthogonal transformation and quantification, and dequantization and inverse transformation. The predictive image signal 118 generated with the indicator 101 is input to a mode determination unit 102 together with the input image signal 116. The mode determination unit 102 enters the predictive image signal 118 in a reverse transformer 106, generates a predictive error signal 119 by subtracting the predictive image signal 118 from the input image signal 116, and is input to the transformer. 103. At the same time, the mode determination unit 102 determines a mode based on the predicted mode information with the indicator 101 and the predictive error signal 119. Explaining more concretely, the mode is determined using a cost k shown by the following equation (1) in this mode. K = SAD +? '"' OH (1) where OH indicates mode information, SAD is the absolute sum of the predictive error signals, and? Is a constant.The constant? Is determined based on a value of a quantization width or a parameter of In this way, the mode is determined based on the cost K. The mode in which the cost K indicates the smallest value is selected as an optimal mode, in this mode, the absolute sum of the mode information and the Predictive error signal is used.As another mode, the mode can be determined by using only mode information or only the absolute sum of the predictive error signal., the Hadamard transformation can be subjected to these parameters to obtain and use an approximate value. In addition, the cost can be calculated using an activity of an input image signal, and a cost function can be calculated using a quantization width and a quantization parameter. A provisional encoder is prepared according to another modality to calculate the cost. A predictive error signal is generated based on the coding mode of the provisional encoder. The predictive error signal is actually encoded to produce code data. The local decoded image data 113 is produced by decoding the code data locally. The mode can be determined using the number of encoded bits of the code data and a quadratic error of the local decoded image signal 113 and the input video signal 116. An equation of mode determination in this case is expressed by the following equation (2). J - D +? x R (2) where J indicates a cost, D indicates a coding distortion representing a quadratic error of the input video signal 116 and the local decoded image signal 113, and R represents the number of encoded bits estimated by the temporary coding. When this J cost is used, a circuit scale increases because temporal coding and local decoding (dequantization and inverse transformation) are necessary in each coding mode. However, a precise number of encoded bits and coding distortion can be used, and high coding efficiency can be maintained. The cost can be calculated using only the number of encoded bits or just the encoding distortion. The cost function can be calculated using an approximate value to these parameters. The mode determination unit 102 is connected to the transformer 103 and the reverse transformer 106. The mode information selected with the mode determination unit 102 and the predictive error signal 118 are input to the transformer 103. The transformer 103 transforms the input predictive error signal 118 into transform coefficients and generates transform coefficient data. . The predictive error signal 118 is subjected to an orthogonal transform using a discrete cosine transform (DCT), for example. As a modification, the transform coefficient can be generated using a technique such as minute wave transformation or independent component analysis. The transform coefficient provided from the transformer 103 is sent to the quantizer 104 and is quantized accordingly. The quantization parameter necessary to quantify is set in the coding controller 110. The quantizer 104 quantizes the transform coefficient using the quantization matrix 114 input from a quantization matrix generator 109 and generates a quantized transform coefficient 112. The quantized transform coefficient 112 is input to the coding processor 111 together with the information on prediction methods such as the mode information and the quantization parameter. The encoding processor 11 submits the quantized transform coefficient 112 together with the input mode information to entropy coding (Huffman coding or arithmetic coding). The code data 115 provided by the entropy coding of the encoding processor 111 is produced from the video encoder 100 to the output buffer 120 and multiplexed. The multiplexed code data is transmitted from the output buffer 120. When the quantization matrix 114 which is used for quantization is generated, instruction information indicating use of the quantization matrix is provided to the generating generator 108 by the coding controller 110. Generator 108 of generation parameters establishes a parameter 117 for generating quantization matrices according to the instruction information, and produces it in the quantization matrix generator 109 and the coding processor 111. The quantization matrix generation parameter 117 can be established by an external parameter setting unit (not shown) controlled by the coding controller 110. Also, it can be updated in coded image block unit, in subdivision units or in image units. Generator 108 of generation parameters comprises a function for controlling a setting timing of parameter 117 for generating quantization matrices. The quantization matrix generator 109 generates a quantization matrix 114 by a method established in the parameter 117 for generating quantization matrices and is produced in the quantizer 104 and the dequantizer 105. At the same time, the parameter 117 for generation of matrices The quantization entered in the coding processor 111 is subjected to entropy coding together with the mode information and the transfer coefficient 112 that are input from the quantizer 104. The dequantizer 105 dequantizes the quantized transform coefficient 112 with the quantizer 104 of according to the quantization parameter set by the coding controller 110 and the quantization matrix 114 entered from the quantization matrix generator 109. The unquantized transform coefficient is sent to the inverse transformer 106. Inverse transformer 106 subjects the unquantified transform coefficient to the inverse transform (e.g., inverse discrete cosine transform) to decode a predictive error signal. The predictive error signal 116 decoded with the inverse transformer 106 is added to the predictive image signal 118 for a determination mode, which is supplied from the mode determination unit 102. The signal for adding the predictive error signal and the predictive signal 118 becomes a local decoded signal 113 and is input to the reference memory 107. The reference image memory 107 stores the local decoded signal 113 as a reconstruction image. The image stored in the reference image memory 107 in this way becomes a reference image referred to when the indicator 101 generates a predictive image signal. When a coding cycle (a process running in the order of the indicator 101) the mode determining unit 102 - the transformer 103 - the quantizer 104 - the dequantizer 105 - the inverse transformer 106 - the reference image memory 107 in FIGURE 1) is executed for all modes that can be selected for a macroblock object, a circuit is completed. When the coding circuit is completed for the macroblock, the input image signal 116 of the next block is entered and encoded. The quantization matrix generator 108 does not need to generate a quantization matrix in each macroblock. The generated quantization matrix is saved unless the quantization matrix generation parameter 117 set by the generation parameter generator 108 is updated. The coding controller 110 performs a feedback control of the number of encoded bits, a characteristic quantization control thereof, a mode determination control, etc. Also, the coding controller 110 performs ratio control to control the number of encoded bits, a control of the indicator 101, and a control of an external input parameter. At the same time, the encoding controller 110 controls the output buffer 120 to produce code data in an external element at an appropriate time. The quantization matrix generator 109 shown in FIGURE 2 generates the quantization matrix 114 based on parameter 117 for generation of input quantization matrices. The quantization matrix is a matrix as shown in FIGURE 5A or a matrix as shown in FIGURE 5B. The quantization matrix is weighted by a corresponding weighting factor at each frequency point in the case of quantization and dequantization. FIGURE 5A shows a quantization matrix that corresponds to a block of 4x4 pixels and FIGURE 5B shows a quantization matrix corresponding to a block of 8x8 pixels. The generator 109 of quantization matrices comprises a decryption unit 201 of generated parameter, a switch 202 and one or more matrix generators 203. A generated parameter decoding unit 201 decrypts input quantization matrix generation parameters 117, and produces changes to the information of the switch 202 according to each matrix generation method. This change over the information is established by the quantization matrix generation controller 210 and changes the output terminal of the switch 202. The switch 202 is switched in accordance with the switching information provided by the generated parameter decoding unit 201 and is set by the controller 210 for generating quantization matrices. For example, when the matrix generation type of the quantization matrix generation parameter 117 is a first type, the switch 202 connects the output terminal of the generated parameter decoding unit 201 to the array generator 203. On the other hand, when the matrix generation type of the quantization matrix generating parameter 117 is an N-th type, the switch 202 connects the output terminal of the generated parameter decoding unit 201 to the generator N-203. ava matrix. When the matrix generation type of parameter 117 for generation of quantization matrices is an M-th type (N <; M) and the generator 203 of -ava matrix is not included in the generator 109 of quantization matrices, the switch 212 is connected to the corresponding matrix generator by a method in which the output terminal of the parameter decoding unit 201 generated is determined in advance. For example, when a quantization matrix generation parameter of the type that does not exist in the quantization matrix generator 109 is input, the switch 202 always connects the output terminal to the first matrix generator. When a similar type of matrix generation is known, it can be connected to the matrix generator of the L-th type closest to the input M-th. In any case, the quantization matrix generator 109 connects the output terminal of the generated parameter decoding unit 201 to one of the generators 203 of the first to the N-ava matrix according to the matrix generation parameter 117. Input quantization using a default connection method. Each matrix generator 203 generates the quantization matrix 114 according to the information of the corresponding quantization matrix generation parameter. Specifically, the information 117 of the generation parameter of quantization matrices is composed of parameter information of a type (T) of generation of matrices, a degree of change (A) of quantization matrix, a degree of distortion (B) and a correction element (C). These parameters are labeled by different names, but can be used in any kind of ways. These parameters are defined as a set of parameters expressed by the following equation (3): QMP = (T, A, B, C) (3) QMP represents the information of the generation parameter of quantization matrices. The matrix generation type (T) indicates that the matrix generator 203 corresponds to which type it should be used. On the other hand, it can be freely defined how to use the degree of change (A), degree of distortion (B) and correction element (C) in each type of matrix generation. The first type of matrix generation is explained with reference to FIGURE 6A. A matrix generation function when the type of matrix generation is 1 is represented by the following equations (4), (5) and (6): [Formula 1] QixAx > y) = a * r + c (5) 2 (6) In addition, examples of table conversion of the degree of change (A), degree of distortion (B) and correction element (C) used for the first type of matrix are shown by the following equations (7), (8) and ( 9): a = 0.1 * A (7) B = 0 (8) c = 16 + C (9) where the degree of change (A) represents a degree of change when the distance from the CD component to the frequency position of the quantification matrix is presumed to be r. For example, if the degree of change (A) is a positive value, the value of the matrix increases as the distance r increases. In this case, the high bandwidth can be set to a large value. In contrast, if the degree of change (A) is a negative value, the value of the matrix increases with the increase of the distance r. In this case, the quantization step can be commonly established in the low bandwidth. In the first type of matrix generation, a value of 0 is always established without using the degree of distortion (B). On the other hand, the correction element (C) represents a segment of a straight line expressed by the degree of change (A). Because the first matrix generation function can be processed by only the multiplication, addition, subtraction and change operation, it is advantageous that a hardware cost can be decreased. The quantization matrix generated based on equations (7), (8) and (9) in the case of QMP = (1, 40, 0, 0) is expressed by the following equation (10): [formula 2] (10) Since the accuracy of the variable of each degree of change (A), degree of distortion (B) and correction element (C) influences a hardware scale, it is important to prepare a table that has good efficiency in a decided margin. In equation (7), when the degree of change (A) is presumed to be a non-negative 6-bit integer, it is possible to obtain a gradient from 0 to 6.4. However, a negative value can not be obtained. Therefore, it is possible to obtain a range of -6.3 to 6.4 bits when using a translation table using 7 bits as indicated by the following equation (11): a = 0.1 ??? - 63) (11) If the translation table of the degree of change (A), degree of distortion (B) and correction element (C) that corresponds to a type (T) of generation of matrices, and the precision of the degree of change (A), degree of distortion (B) and correction element (C) is acquired for each type (T) of matrix generation, it is possible to establish an appropriate quantization matrix generation parameter according to the coding situation and the environment of use. In the first type of matrix generation expressed by equations (4), (5) and (6), the degree of distortion (B) always becomes 0. Therefore, it is not necessary to transmit a parameter that corresponds to the degree of distortion (B). Through the type of matrix generation, the number of parameters used can be decreased. In this case, the parameters not used are not encoded. Subsequently, a function for generating quantization matrices that uses a quadratic function is shown as the second type of matrix generation. The schematic diagram of this type of matrix generation is shown in FIGURE 6C. [formula 3] 4 2 (12) 16 8 (13) The parameters (A), (B) and (C) related to the functions a, b and c, respectively, represent a value of distortion and correction of the quadratic function of degree of change. These functions are apt to increase mostly in value as a particular distance increases. When the quantization matrix in the case of QMP = (2, 10, 1, 0) is calculated using, for example, equations (4), (8) and (10), a quantization matrix of the following equation ( 14) can be generated. [formula 4] In addition, the following equations (15) and (16) represent examples of matrix generation functions of the third type of matrix generation. [formula 5] 1 6 (15) QM (x, y) =: * r + ^ (without (^ - r)) + c 2 2 32 (16) The distortion element shown in FIGURE 6B is added to the first type of matrix. The distortion amplitude (B) represents the magnitude of the amplitude of a sine function. When b is a positive value, the effect of a straight line deforming on the lower side arises. On the other hand, when b is a negative value, an effect arises that the straight line deforms on the upper side. It is necessary to change the corresponding phase by a block of 4x4 pixels or a block of 8x8 pixels. Several distortions can be generated by changing the phase. When the quantization matrix in the case of QMP = (3, 32, 7, -6) is calculated using equations (4) and (15), the quantization matrix of the following equation (17) can be generated. [formula 6] Although a sine function is used in this mode, a cosine function and other functions can be used, and a phase or a period can be changed. The distortion amplitude (B) can use various functions such as a sigmoid function, Gaussian function, logarithmic function and N-dimensional function. In addition, when variables of the degree of change (a) that include the distortion amplitude (B) and the correction element (C) are an integer value, a translation table can be prepared in advance to avoid the calculation process of the high processing load such as sine functions. The function used for the type of matrix generation is subjected to real number calculation. Therefore, when a sine function calculation is made for each encoding, it increases the calculation process. In addition, the hardware to perform the calculation of the sine function must be prepared. In this way, a translation table according to the precision of a parameter that is used can be provided. Since the floating-point calculation increases in cost compared to the calculation of integers, the generation parameters of quantization matrices are defined by values of integers respectively, and a corresponding value is extracted from an individual translation table that corresponds to a type of matrix generation. When the real number precision calculation is possible, the distance can be calculated by the following equation (18). [formula 7] In addition, it is possible to change the values in vertical and lateral directions of the quantization matrix by weighting it according to the distance. When giving more importance, for example, to a vertical direction, a distance function is used as indicated by the following equation (19). [formula 8] r = \ 2x + y \ (1 9) When a quantization matrix in the case of QMP = (2, 1, 2, 8) is generated by the above equation, a quantization matrix expressed by the following equation (2) is provided. [formula 9] 8 10 14 20 9 12 17 24 10 14 20 28 12 17 24 33 (20) The quantization matrices 204 generated with the generators 203 from the first to the N-ava matrix are produced from the quantization matrix generator 109 selectively. The quantization matrix generating controller 210 controls the switch 202 to switch the output terminal of the switch 202 according to each type of decrypted array generation with the generation parameter decryption unit 201. In addition, the quantization matrix generation controller 210 checks whether the quantization matrix corresponding to the quantization matrix generation parameter is appropriately generated. The configurations of the video coding apparatus 100 and the quantization matrix apparatus 109 according to the embodiment are explained in the foregoing. An example for carrying out a video coding method with the video coding apparatus 100 and the quantizer array generator 109 will be described with reference to a flow chart of FIGURE 3. Initially, an image signal of a frame is read from an external memory (not shown), and entered into the video encoding apparatus 100 as the input image signal 116 (step S001). The input image signal 116 is divided into macroblocks each composed of 16x16 pixels. A parameter 117 for generating quantization matrices is established in the video coding apparatus 100 (S002). That is, the encoding controller 110 sends information indicating to use a quantization matrix for the current frame for the parameter generator 108. When this information is received, the parameter generator 108 sends the quantization matrix generation parameter to the generator 109 of quantization matrices. The quantization matrix generator 109 generates a quantization matrix according to a type of input quantization matrix generation parameter. When the input image signal 116 is input to the video coding apparatus 100, the coding is initiated in units of a block (step S003). When a macroblock of the input image signal 116 is input to the indicator 101, the mode determination unit 102 initializes an index indicating a coding mode and a cost (step S004). A predictive image signal 118 of a prediction mode that can be selected in block units is generated by the indicator 101 using the input image signal 116 (step S005). A difference between this predictive image signal 118 and the input image signal 116 is calculated, whereby a predictive error signal 119 is generated. A cost is calculated from the absolute value sum SAD of this predictive error signal 119 and the number of coded bits OH of the prediction mode (step S006). Otherwise, the local decoding is done to generate a local decoded signal 113 and the cost is calculated from the number of coded bits D of the error signal indicating a differential value between the local decoded signal 113 and the signal 116 of input image, and the number of coded bits R of a coded signal obtained by temporarily encoding the input image signal. The mode determination unit 102 determines whether the calculated cost is less than the smallest cost min_cost (step S007). When it is lower (the determination is YES), the smallest cost is updated by the calculated cost, and a coding mode corresponding to the calculated cost is maintained as a best_mode index (step S008). At the same time, a predictive image is stored (step S009). When the calculated cost is larger than the smallest cost min_cost (the determination is NO), the index indicating a mode number is increased, and it is determined whether the index after the increment is the last mode (step S010). When the index is larger than MAX by indicating the last mode number (the determination is YES), the best_mode coding mode information and the predictive error signal 119 are sent to the transformer 103 and the quantizer 104 to be transformed and quantized ( stage S011). The quantized transform coefficient 112 is input to the encoding processor 111 and is entropy coded along with the predictive information with the encoding processor 111 (step S012). On the other hand, when the index is smaller than MAX by indicating the last mode number (the determination is NO), the predictive image signal 118 of a coding mode indicated by the following index is generated (step S005). When the coding is done in best_mode, the quantized transform coefficient 112 is entered in the dequantizer 105 and the inverse transformer 106 to dequantize and transform in inverse form (step 5013), so the predictive error signal is decoded. This decoded predictive error signal is added to the best_mode predictive image signal provided from the mode determination unit 102 to generate a local decoded signal 113. This local decoded signal 113 is stored in the reference image memory 107 as a reference image (step 5014). It is determined whether the coding of a frame ends (step S015). When the process is complete (the determination is YES), an input image signal of the next frame is read, and then the process returns to step S002 for coding. On the other hand, when the coding process of a frame is not completed (the determination is NO), the process returns to step S003, and then the next block of pixels is entered and the coding process is continued.
The foregoing is the summary of the video encoding apparatus 100 and the method of video encoding in the embodiment of the present invention. In the above embodiment, the quantization matrix generator 108 generates and uses a quantization matrix to encode a frame. However, a plurality of quantization matrices can be generated by a frame by establishing a plurality of parameters for generating quantization matrices. In this case, since a plurality of quantization matrices generated in different types of matrix generation with generators 203 from first to N-ava matrix can be switched in a frame, flexible quantization becomes possible. Specifically, the first matrix generator generates a quantization matrix having a uniform weight, and the second matrix generator generates a quantization matrix having a higher value in high bandwidth. Quantization control is enabled in a smaller field of action by changing these two matrices in each block to be encoded. Because the number of encoded bits transmitted to generate the quantization matrix is several bits, the high coding efficiency can be maintained. In the embodiment of the present invention, a technique for generating quantization matrices of a block size of 4x4 pixels and a block size of 8x8 pixels for the generation of a quantization matrix with respect to a luminance component is explained. However, the generation of the quantization matrix is possible by a similar scheme for a color difference component. Then, in order to avoid the overload increment for multiplexing the generation parameter of color difference component quantization matrixes with syntax, the same quantization matrix as the luminance component can be used, and the quantization matrix with a displacement that corresponds with each position of frequency can be made and used. In the present embodiment of the present invention, a method of generating quantization matrices using a trigonometric function (a sine function) in generator N-ava matrix 203 is explained. However, the function that is used can be a sigmoid function and a Gaussian function. It is possible to make a more complicated quantization matrix according to a type of function. Further, when the corresponding matrix generation type (T) among the QMP quantization matrix generation parameters provided from the quantization matrix generating controller 210 can not be used in the video coding apparatus, it is possible to make a matrix of quantification by substituting the type of matrix generation that closely resembles the matrix generation type (T). Specifically, the second type of matrix generation is a function so that a degree of distortion using a sine function is added to the first type of matrix generation, and similar to the trend of the quantization matrix generated. Thus, when the third matrix generator can not be used in the coding apparatus when T = 3 is entered, the first matrix generator is used. In the embodiment of the present invention, four parameters of type (T) of matrix generation, degree of change (A) of quantization matrix, degree of distortion (B) and correction element (C) are used. However, additional parameters of these parameters can be used, and the number of parameters decided by the type (T) of matrix generation can be used. In addition, a translation table of parameters determined by the type (T) of matrix generation can be provided in advance. The number of bits encoded to encode quantization matrix generation parameters decreases when the number of quantization matrix generating parameters that is transmitted decreases and the accuracy decreases. However, since at the same time the degree of freedom of the quantization matrix decreases, the number of quantization matrix generation parameters and the precision thereof only have to be selected in consideration of balance between a profile and a hardware scale. which is going to apply. In the embodiment of the present invention, a frame to be processed is divided into rectangular blocks of size 16x16 pixels, and then the blocks are coded from the upper left part of a screen to the lower right part thereof, sequentially. However, the processing sequence may be another sequence. For example, the blocks can be coded from the lower right part to the upper left part, or in a drop-down form from the middle part of the screen. In addition, the blocks can be coded from the upper right to the lower left, or from the peripheral part of the screen to the central part of the screen. In the embodiment of the present invention, the frame is divided into macroblocks of a block size of 16x16 pixels, and a block of 8x8 pixels or a block of 4x4 pixels is used as a processing unit for intra-frame prediction. However, the block to be processed does not need to be formed into a uniform block conformation, and can be made in a pixel block size such as a block size of 16x8 pixels, block size of 8x16 pixels, block size of 8x4 pixels, block size of 4x8 pixels. For example, a block of 8x4 pixels and a block of 2x2 pixels are available under a similar infrastructure. In addition, it is not necessary to take a uniform block size in a macroblock, and different block sizes can be selected. For example, a block of 8x8 pixels and a block of 4x4 pixels can coexist in a macroblock. In this case, although the number of bits encoded to code divided blocks increases with the increase in the number of divided blocks, the prediction of a higher precision is possible, which results in reducing a prediction error. Accordingly, a block size has to be selected only in consideration of the balance between the number of encoded bits and the transformation coefficients and the local decoded image. In the embodiment of the present invention, the transformer 103, the quantizer 104, the dequantizer 105 and the reverse transformer 106 are provided. However, the predictive error signal does not need to always undergo transformation, quantization, inverse transformation and dequantization, and the predictive error signal can be encoded with the encoding processor 109 as is, and inverse quantization and quantization can be omitted. Similarly, transformation and inverse transformation do not need to be done.
(Second mode: coding) The multipath coding with respect to the second mode is explained with reference to a flow diagram of FIGURE 12. In this mode, the detailed description of the coding flow having the same function as the first mode of FIGURE 3, ie, steps S002-S015, is omitted. When the optimal quantization matrix is established in each image, the quantization matrix must be optimized. For this reason, multipath coding is effective. In accordance with this multipath encoding, the quantization matrix generation parameter can be effectively selected. In this embodiment, for multipath coding, steps S101-S108 are added before step S002 of the first mode as shown in FIGURE 12. In other words, at the beginning, the input image signal 116 of a frame it is entered into the video coding apparatus 100 (step S101), and is encoded by being divided into macroblocks of size 16x16 pixels. Then, the coding controller 110 initializes an index of generation parameters of quantization matrices used by the current frame to 0, and initializes min_costQ representing the minimum cost, as well (step S102).
Then, the quantization matrix generation controller 210 selects a quantization matrix generation parameter index shown in PQM_idx from a set of quantization matrix generation parameters, and sends it to the quantization matrix generator 109. The encoding matrix generator 109 generates the quantization matrix according to a scheme of the input quantization matrix generation parameter (step S103). A frame is encoded using the quantization matrix generated at this time (step S104). A cost accumulates each macroblock to calculate a coding cost of the frame (step S105). It is determined whether the calculated cost is less than the smallest cost min_costQ (step S106). When the calculated cost is less than the smallest cost (the determination is YES), the smallest cost is updated by the calculation cost. At this time, the quantization matrix generation parameter index is maintained as a Best_PQ _idx index (step S107). When the calculated cost is greater than the smallest cost min_costQ (the determination is NO), PQ _index is incremented and it is determined if the incremented PQM_idx is the last one (step S108). If the determination is NO, the quantization matrix generation parameter index is updated, and coding is continued. On the other hand, if the determination is YES, Best_PQM_idx is entered into the quantization matrix generator 109 again, and the main coding stream, i.e., steps S002-S015 of FIGURE 3 is executed. When the code data encoded in Best_PQM_idx is maintained at the time of the multipath process, the coding stream does not need to be executed, and thus it is possible to finish the coding of the frame when updating the code data. In the second mode, when multipath coding is performed, it is not necessary to always code the entire frame. An available quantization matrix generation parameter can be determined by the distribution of transformation coefficients obtained in block units. For example, when transformation coefficients generated in low proportion are almost 0, because the ownership of the code data does not change even if the quantization matrix is not used, the process can be greatly reduced. A method of encoding a parameter for generating quantization matrices will be explained. As shown in FIGURE 7, the syntax is mainly comprised of three parts. A high-level syntax (401) is saved in packet with the syntax information of higher-level layers than a subdivision level. A subdivision level syntax (402) describes necessary information for each subdivision. A macroblock level syntax (403) describes a change value of the quantization parameter or information so necessary for each macroblock. These syntaxes are configured by additional syntaxes. In other words, the high level syntax (401) is comprised of sequences such as the syntax of the sequence parameter set (404) and the syntax of the image parameter set (405), and an image level syntax. A subdivision level syntax (402) is comprised of a subdivision header syntax (406), a subdivision data syntax. (407), etc. In addition, the macroblock level syntax (403) is comprised of a macroblock header syntax (408), macroblock data syntax (409), etc. The above syntaxes are components that are absolutely essential for decoding. When the syntax information is lost, it becomes impossible to correctly reconstruct the data at the time of decoding. On the other hand, there is a supplementary syntax to multiplex information that is not always needed at the time of decoding. This syntax describes statistical data of an image, camera parameters, etc., and is prepared as a function to prepare and adjust data at the time of decoding. In this embodiment, necessary syntax information is the syntax of the sequence parameter set (404) and the syntax of the image parameter set (405). Each syntax is described after this. ex_seq_scaling_matrix_flag shown in the syntax of the sequence parameter set of FIGURE 8 is a label that indicates whether the quantization matrix is used. When this label is TRUE, the quantization matrix can be changed in sequence units. On the other hand, when the label is FALSE, the quantization matrix can not be used in the sequence. When ex_seq_scaling_matrix_flag is TRUE, ex_matrix_type, ex_matrix_A, ex_matrix_B, and ex_matrix_C are also sent. These correspond to the type (T) of matrix generation, degree of change (A) of quantization matrix, degree of distortion '(B) and correction element (C), respectively. ex_pic_scaling_matrix_flag shown in the image parameter set syntax of FIGURE 9 is a label that indicates whether the quantization matrix is changed in each image. When this label is TRUE, the quantization matrix can be changed in image units. On the other hand, when the label is FALSE, the quantization matrix can not be changed in each image. When ex_pic_scaling_matrix_flag is TRUE, ex_matrix_type, ex_matrix_A, ex_matrix_B, and ex_matrix_C are transmitted additionally. These correspond to the type (T) of matrix generation, degree of change (A) of quantization matrix, degree of distortion (B) and correction element (C), respectively. An example that a plurality of quantization matrix generation parameters is sent is shown in FIGURE 10 as another example of the syntax of the image parameter set. ex_pic_scaling_matrix_flag shown in the syntax of the image parameter set is a label that indicates whether the quantization matrix is changed in each image. When the label is TRUE, the quantization matrix can be changed in image units. On the other hand, when the label is FALSE, the quantization matrix can not be changed in each image. When ex_pic_scaling_matrix_flag is TRUE, ex_num_of_matrix_type is sent additionally. This value represents the number of sets of quantization matrix generation parameters. A plurality of quantization matrices can be sent by the combination of sets. ex_matrix_type, ex_matrix_A, ex_matrix_B and ex_matrix_C, which are sent in succession, are sent by a value of ex_num_of_matrix_type. As a result, a plurality of quantization matrices can be provided in one image. In addition, when the quantization matrix is to be changed in block units, bits may be transmitted in each block by the number of corresponding quantization matrices, and interchanged. For example, if ex_num_of_matrix_type is 2, a 1-bit syntax is added to the macroblock header syntax. The quantization matrix is changed according to whether this value is TRUE or FALSE. In the present embodiment, when a plurality of parameters for generating quantization matrices are maintained in a frame as described in the above, it can be multiplexed into a supplementary syntax. An example that a plurality of quantization matrix generation parameters are sent using the supplementary syntax is shown in FIGURE 11. ex_sei_scaling_matrix_flag shown in the supplementary syntax is a label indicating whether a plurality of quantization matrices is changed. When this label is TRUE, quantization matrices can be changed. On the other hand, when the label is FALSE, the quantization matrices can not be changed. When ex_sei_scaling_matrix_flag is TRUE, ex_num_of_matrix_type is sent additionally. This value indicates the number of sets of quantization matrix generation parameters. A plurality of quantization matrices can be sent by the combination of sets. With regard to ex_matrix_type, ex_matrix_A, ex_matrix_B and ex_matrix_C, which are sent in succession, only one value of ex_num_of_matrix_type is sent. As a result, a plurality of quantization matrices can be provided in the image. In this mode, the quantization matrix can be retransmitted by the subdivision header syntax in the subdivision level syntax shown in FIGURE 7. An example of such a case will be explained using FIGURE 13. FIGURE 13 shows the syntax structure in the subdivision header syntax. The slice_ex_scaling_matrix_flag shown in the subdivision header syntax of FIGURE 13 is a label that indicates whether a quantization matrix can be used in the subdivision. When the label is TRUE, the quantization matrix can be changed in the subdivision. When the label is FALSE, the quantization matrix can not be changed in the subdivision. The slice_ex_matrix_type is transmitted when the slice_ex_scaling_matrix_flag is TRUE. This syntax corresponds to a type (T) of matrix generation. Subsequently, slice_ex_matrix_A, slice_ex_matrix_B and slice_ex_matrix_C are transmitted. These correspond to a degree of change (A) of a quantization matrix, a degree of distortion (B) thereof and a correction element (C) thereof, respectively. NumOfMatrix in FIGURE 13 represents the number of quantization matrices available in the subdivision. When the quantization matrix is changed in a smaller region at the subdivision level, the luminance component and the color component are changed, the quantization block size is changed, each coding mode is changed, etc., the number of available quantization matrices can be transmitted as a modeling parameter of the quantization matrix that corresponds to the number. For example purposes, when there are two types of quantization blocks of a block size of 4x4 pixels and a block size of 8x8 pixels in the subdivision, and different quantization matrices can be used for the quantization blocks, the value NumOfMatrix is set to 2. In this embodiment of the present invention, the quantization matrix can be changed at the subdivision level using the subdivision header syntax shown in FIGURE 14. In FIGURE 14, three modeling parameters that are transmitted are prepared compared with FIGURE 13. When a quantization matrix is generated with the use of for example, equation (5), the parameter does not need to be transmitted because the degree of distortion (B) is always set to 0. Therefore, , the encoder and the decoder can generate an identical quantization matrix by maintaining an initial value of 0 as an internal parameter. In this mode, the parameter can be transmitted using the subdivision header syntax expressed in FIGURE 15. In FIGURE 15, PrevSliceExMatrixType, PrevSliceEx atrix_A, and PrevSliceExMatrix_B (in addition, PrevSliceExMatrix_C) are added to FIGURE 13. Explaining in more concrete form, slice_ex_scaling_matrix_flag is a label that indicates whether the quantization matrix is used or not in the subdivision, and when this label is TRUE, a modeling parameter is transmitted to a decoder as shown in FIGURES 13 and 14. On the other hand, when the label is FALSE, PrevSliceExMatrixType, PrevSliceExMatrix_A, and PrevSliceExMatrix_B (in addition, PrevSliceExMatrix_C) are established. These meanings are interpreted as follows: PrevSliceExMatrixType indicates a generation type (T) used at the moment when the data is coded in the same type of subdivision as that of one before the current subdivision in the encoding order. This variable is updated immediately before the subdivision encoding is finished. The initial value is set to 0. PrevSliceExMatrix_A indicates a degree of change (A) used at the time when the data is coded in the same type of subdivision as that of one before the current subdivision in order of coding. This variable is updated immediately before the subdivision encoding is finished. The initial value is set to 0. PrevSliceEx atrix_B indicates a degree of distortion (B) used at the time when the data is coded in the same type of subdivision as that of one before the current subdivision in order of coding. This variable is updated immediately before the subdivision encoding is finished. The initial value is set to 0. PrevSliceEx atrix_C indicates a correction element (C) used at the moment when the data is coded in the same type of subdivision as that of one before the current subdivision in coding order. This variable is updated immediately before the subdivision encoding is finished. The initial value is set to 16. CurrSliceType indicates a type of subdivision of the current coded subdivision, and a corresponding index is assigned to each of, for example, Subdivision-I, Subdivision-P and Subdivision-B. An example of CurrSliceType is shown in FIGURE 16. A value is assigned to each of the respective subdivision types. 0 is assigned to Subdivision-I using only intra-image prediction, for example. In addition, 1 is assigned to Subdivision-P capable of using a simple directional prediction of the previously coded frame in order of time and intra-image prediction. On the other hand, 2 is assigned to Subdivision-B capable of using bidirectional prediction, monodirectional prediction and intra-image prediction. In this way, the modeling parameter of the encoded quantization matrix is accessed and re-established in the same type of subdivision as that of the subdivision immediately before the current subdivision. As a result, it is possible to reduce the number of coded bits needed to transmit the modeling parameter. In this embodiment of the present invention, FIGURE 17 can be used. FIGURE 17 shows a structure that NumOfMatrix is removed from FIGURE 5. When only one quantization matrix is available for the coded subdivision, this simplified syntax is more than FIGURE 15 is used. This syntax shows approximately the same operation as the case in which NumOf atrixl is 1 in FIGURE 15. When a plurality of quantization matrices can be maintained in the same image with the decoder, the quantization matrix generation parameter is read from the supplementary syntax to generate a corresponding quantization matrix. On the other hand, when a plurality of quantization matrices can not be maintained in the same image, the quantization matrix generated by the quantization matrix generation parameter described in the syntax of the image parameter set is used without decoding the supplementary syntax. . In the modality as discussed in the previous, the quantization matrix is generated according to a corresponding matrix generation type. When the quantization matrix generation parameter is encoded, the number of encoded bits used to send the quantization matrix can be reduced. In addition, it becomes possible to adaptively select the quantization matrices in the image. In coding capable of dealing with various uses such as quantification made in consideration of an image of subjectivity and coding made in consideration of coding efficiency becomes possible. In other words, a preferred coding according to the contents of a pixel block can be realized. As mentioned in the above, when the coding is performed in a selected mode, only a decoded image signal has to be generated for the selected mode only. It does not need to always run on a circuit to determine a prediction mode. The video decoding apparatus corresponding to the video coding apparatus is explained after this.
(Third mode: Decoding) According to a video decoding apparatus 300 with respect to the present embodiment shown in FIGURE 18, an input buffer 309 stores only one time the code data sent from the code coding apparatus 100. video of FIGURE 1 by means of a transmission medium or recording medium. The stored code data is read from the input buffer 309 and entered into a decoding processor 301 as it is separated based on the syntax of each frame. The decode processor 301 decodes a code string of each code data syntax for each of a high level syntax, a subdivision level syntax and a macroblock level syntax according to the syntax structure shown in the FIG. 7. Due to this decoding, the quantized transform coefficient, the quantization matrix generation parameter, the quantization parameter, the prediction mode information, the prediction switching information, etc. they are rebuilt The decoding processor 301 produces, from the decoded syntax, a label indicating whether a quantization matrix is used for a corresponding frame, and entered into a generation parameter setting unit 306. When this label is TRUE, a parameter 311 for generating quantization matrices is input to the unit 306 'for setting generation parameters of the decoding processor 301. The generation parameter setting unit 306 has an update function of the quantization matrix generation parameter 311, and it enters a set of quantization matrix generation parameters 311 in a quantization matrix generator 307 based on the decoded syntax by the decoding processor 301. The quantization matrix generator 307 generates a quantization matrix 318 corresponding to the input coding matrix generation parameter 311 and produces it in a dequantizer 302. The result of the quantized transformation coefficient of the encoding processor 301 is entered into the dequantizer 302, and is therefore dequantized based on the decoded information using the quantization matrix 318, the quantization parameter, etc. The unquantified transform coefficient is input to an inverse transformer 303. The inverse transformer 303 submits the unquantified transform coefficient to the inverse transform (e.g., inverse discrete cosine transform) to generate an error signal 313. The inverse orthogonal transformation is used here. However, when the encoder performs minute wave transform or independent component analysis, the inverse transformer 303 can perform minute wave reverse or component analysis of inverse independence. The coefficient subjected to the inverse transform with the inverse transformer 303 is sent to an adder 308 as an error signal 313. The adder 308 adds the produced predictive signal 315 of the indicator 305 and the error signal 313, and inputs an addition signal to a reference memory 304 as a decoded signal 314. The decoded image 314 is sent from the video decoder 300 to the outside and stored in the output buffer (not shown). The decoded image stored in the output buffer is read in the timing handled by the decoding controller 310. On the other hand, the prediction information 316 and the information so that they are decoded with the decoding processor 301 are input to the indicator 305. The reference signal already coded 317 is supplied from the reference memory 304 to the indicator 305 The indicator 305 generates the predictive signal 315 based on the input mode information, etc., and supplies it to the adder 308.
The decoding controller 310 controls the input buffer 307, the output timing, the decoding timing, etc. The video decoding apparatus 300 of the third embodiment is configured as described above, and the video decoding method executed with the video decoding apparatus 300 is explained with reference to the flow diagram of FIGURE 19. code data of a frame is read from the input buffer 309 (step S201), and decoded according to a syntax structure (step S202). It is determined by a label if the quantization matrix is used for the full reading frame based on the decoded syntax (step S203). When this determination is YES, a parameter for generating quantization matrices is established in the generator 307 of quantization matrices (step S204). The quantization matrix generator 307 generates a quantization matrix that corresponds to the generation parameter (step S205). For this generation of quantization matrices, a quantization matrix generator 307 having the same configuration as the quantization matrix generator 109 shown in FIGURE 2 which is used for the video coding apparatus is employed, and performs the same process as the video coding apparatus to generate a quantization matrix. A generator 306 of generation parameters for supplying a generation parameter to the quantization matrix generator 109 has the same configuration as the generator 108 of generation parameters of the coding apparatus. In other words, in generator 306 of generation parameters, the syntax is formed mainly from three parts, ie, a high level syntax (401), a subdivision level syntax (402), and a level syntax of macroblock (403) as shown in FIGURE 7. These syntaxes are further comprised of syntaxes as the coding apparatus. The aforementioned syntaxes are components that are absolutely imperative at the time of decoding. If they lack syntax information, the data can not be decoded correctly at the time of decoding. On the other hand, there is a supplementary syntax for multiplexing information that is not always needed at the time of decoding. The syntax information which is necessary in this embodiment contains a sequence parameter set syntax (404) and an image parameter set syntax (405). The syntax is comprised of a sequence parameter set syntax and an image parameter set syntax, respectively, as shown in FIGS. 8 and 9 as the video coding apparatus. As another example of the image parameter set syntax, the image parameter set syntax used to send a plurality of quantization matrix generation parameters shown in FIGURE 10 as described in the video coding apparatus may be used. . However, if the quantization matrix is changed in block units, the bits only have to be transmitted by the number of corresponding quantization matrices for each block, and they are exchanged. When, for example, ex_num_of_matrix_type is 2, a 1-bit syntax is added in the macroblock header syntax, and the quantization matrix is changed according to whether this value is TRUE or FALSE. When, in this embodiment, a plurality of parameters for generating quantization matrices are maintained in a frame as described above, the data multiplexed with the supplementary syntax can be used. As described in the video coding apparatus, it is possible to use the plurality of parameters for generating quantization matrices using supplementary syntaxes shown in FIGURE 11. In this embodiment of the present invention, again receiving a quantization matrix can be done by means of subdivision header syntax in subdivision level syntax shown in FIGURE 7. An example of such a case is explained using FIGURE 13. FIGURE 13 shows a syntax structure in a subdivision header syntax. The slice_ex_scaling_matrix_flag shown in the header and subdivision syntax of FIGURE 13 is a label that indicates whether a quantization matrix is used in the subdivision. When the label is TRUE, the quantization matrix can be changed in the subdivision. On the other hand, when the label is FALSE, it is impossible to change the quantization matrix in the subdivision. When the slice_ex_scaling_matrix_flag is TRUE, slice_ex_matrix_type is additionally received. This syntax corresponds to a type (T) of matrix generation. Subsequently, slice_ex_matrix_A, slice_ex_matrix_B and slice_ex_matrix_C are received. These correspond to a degree of change (A), a degree of distortion (B) and a correction element (C) of a quantization matrix, respectively. NumOf atrix in FIGURE 13 represents the number of quantization matrices available in the subdivision. When the quantization matrix is changed in a smaller region at the subdivision level, it is changed into luminance component and color component, changed into quantization block size, and changed in each coding mode, etc., the number of available quantization matrices can be received as a modeling parameter of the quantization matrix that corresponds to the number. For example purposes, when there are two types of quantization blocks of a block size of 4x4 pixels and a block size of 8x8 pixels in the subdivision, and different quantization matrices can be used for the quantization blocks, the value of NumOfMatrix is set to 2. In this embodiment of the present invention, the quantization matrix can be changed at the subdivision level using the subdivision header syntax shown in FIGURE 14. In FIGURE 14, three modeling parameters that are transmitted are prepared compared to FIGURE 13. When the quantization matrix is generated with the use of for example, equation (5), the parameter does not need to be received because the degree of distortion (B) is always set to 0. Therefore, , the encoder and the decoder can generate the identical quantization matrix by maintaining an initial value of 0 as an internal parameter. In this embodiment of the present invention, the parameter can be received using the subdivision header syntax expressed in FIGURE 15. In FIGURE 15, PrevSliceExMatrixType, PrevSliceExMatrix_A and PrevSliceExMatrix_B (in addition, PrevSliceExMatrix_C) are added to FIGURE 13. Explained in more concrete, slice_ex_scaling_matrix_flag is a label that indicates whether or not the quantization matrix is used in the subdivision. When this label is TRUE, a modeling parameter is received as shown in FIGURES 13 and 14. On the other hand, when the label is FALSE, PrevSliceExMatrixType, PrevSliceExMatrix_A, and PrevSliceExMatrix_B (in addition, PrevSliceExMatrix_C) are established. These meanings are interpreted as follows. PrevSliceExMatrixType indicates a generation type (T) used at the moment when the data is coded in the same type of subdivision as that of one before the current subdivision in the decoding order. This variable is updated immediately before the subdivision encoding is finished. The initial value is set to 0. PrevSliceExMatrix_A indicates a degree of change (A) used at the time when the subdivision is encoded in the same type of subdivision as that of one before the current subdivision in order of decoding. This variable is updated immediately before the subdivision decoding is finished. The initial value is set to 0. PrevSliceExMatrix_B indicates a degree of distortion (B) used at the time when the subdivision is decoded that the same type of subdivision as that of one before the current subdivision in order of decoding. This variable is updated immediately before the subdivision decoding is finished. The initial value is set to 0. PrevSliceExMatrix_C indicates a correction element (C) used at the moment when the data is coded in the same type of subdivision as that of one before the current subdivision in order of decoding. This variable is updated immediately before the subdivision decoding is finished. The initial value is set to 16. CurrSliceType indicates a type of subdivision of the current subdivision. respective indices are assigned for example, to Subdivision-I, Subdivision-P and Subdivision-B respectively. An example of CurrSliceType is shown in FIGURE 16. The respective values are assigned to respective subdivision types. 0 is assigned to Subdivision-I using only intra-image prediction, for example. In addition, 1 is assigned to Subdivision-P capable of using a monodirectional prediction of the previously coded frame in order of time and intra-image prediction. Meanwhile, 2 is assigned to Subdivision-B capable of using bidirectional prediction, monodirectional prediction and intra-image prediction. In this way, the modeling parameter of the quantization matrix encoded in the same type of subdivision as that of the subdivision immediately before the current subdivision is accessed and set again. As a result, it is possible to reduce the number of encoded bits necessary to receive the modeling parameter. In this embodiment of the present invention, FIGURE 17 can be used. FIGURE 17 shows a NumOfMatrix structure that is removed from FIGURE 5. When only one quantization matrix is available for subdivision, this simplified syntax is more than FIGURE 16 is used. This syntax shows approximately the same operation as the case in which NumOfMatrixl is 1 in FIGURE 15. When the quantization matrices are generated as described above, the decoded transform coefficient 312 is dequantized by the quantization matrix (step S206 ), and is subjected to inverse transformation with the inverse transformer 303 (step S207). As a result, the error signal is reproduced. Then, a predictive image is generated by the indicator 305 based on the prediction information 316 (S209). This predictive image and the error signal are added to reproduce decoded image data (step S209). This decoding image signal is stored in the reference memory 304, and is produced in an external device. In this embodiment as discussed in the above, a quantization matrix is generated based on the input code data according to the corresponding matrix generation type and is used in the dequantization, so the number of coded bits of the quantification matrix can be reduced. A function of each part described in the above can be performed by a program stored in a computer. In the previous modalities, the video coding is explained. However, the present invention can be applied to coding of still images. According to the present invention, a plurality of quantization matrices is generated using one or more of the parameters such as a generation function index to generate a quantization matrix, a degree of change indicating a degree of change of a matrix of quantification, a degree of distortion and a correction element. Quantification and dequantization are carried out using the quantification matrix. The optimal set of quantization matrix generation parameters is encoded and transmitted. As a result, the present invention can perform a higher coding efficiency than the conventional quantization matrix transmission method. In accordance with the present invention, a method and apparatus for video encoding / decoding which makes it possible to improve the coding efficiency in low bit rate is provided, can be a possible embodiment.
Industrial Applicability The invention can be applied to encoding and decoding a moving image, a still image, audio, etc., on each field such as video, audio devices, mobile equipment, broadcast, information terminals or network.

Claims (15)

  1. REIVI DICATIONS 1. A video coding method for quantifying a transformation coefficient using a quantization matrix, the video coding method comprises: a step for selecting a generation type of a quantization matrix; a step to obtain a plurality of generation functions by setting a parameter in a plurality of functions prepared in advance in correspondence with the type of generation; a step of generating quantization matrices to generate a plurality of quantization matrices using the plurality of generation functions; a quantization step to produce a quantization transformation coefficient by quantizing a transformation coefficient with respect to an input image signal using the plurality of quantization matrices; and an encoding step to produce a coded signal by multiplexing the quantized transform coefficient, information indicating the type of generation and parameter information. The method of video encoding according to claim 1, wherein the parameter includes at least one of a degree of change representing a degree of change of the quantization matrix, a degree of distortion and a correction element. . 3. The video coding method according to claim 1, wherein the step of obtaining the generation function obtains the generation function by setting the parameter in the defined function using any of a sine function, a cosine function, a N-dimensional function, a sigmoid function and a Gaussian function. 4. The method of video encoding according to claim 1, wherein the step of generating quantization matrices includes a step to change an operation precision to produce the quantization matrix in correspondence with a precision of the parameter set in the generation function. The video encoding method according to claim 1, wherein the step of obtaining the generation function selects a table in which the calculation values of the various generation functions corresponding to the parameter, and the stage of generation of quantization matrices performs a calculation to generate the various quantization matrices that refer to the selected table. 6. The video coding method according to claim 1, wherein the encoding step encodes the information indicating the quantization matrix of the different quantization matrices, which is used in the quantization stage as header information in any of a coded sequence, an encoded image or a coded subdivision. 7. A video decoding method for dequantizing a transformation coefficient using a quantization matrix that corresponds to each frequency position of the transformation coefficient, the video decoding method comprising: a decoding step for acquiring information of a parameter of a generating function for generating a quantized transform coefficient, information indicating a type of generation of a quantization matrix and information of a parameter of a generation function for generating a quantization matrix; a step to obtain various generation functions by selecting the parameter of the generation function in a plurality of functions prepared in advance in correspondence with the generation type, a step of generating quantization matrices to generate a plurality of quantization matrices using the various generation functions; a dequantization step to obtain a transformation coefficient by dequantizing the quantized transform coefficient using the plurality of quantization matrices generated; a step of generating coded images to generate a decoded image based on the transformation coefficient. The video decoding method according to claim 7, wherein the parameter includes at least one of a degree of change representing a degree of. change of a quantization matrix, a degree of distortion and a correction element. 9. The video decoding method according to claim 7, wherein the step of obtaining the generation function obtains the generation function by setting the parameter in the defined function using any of a sine function, a cosine function, a N-dimensional function, a sigmoid function and a Gaussian function. The video coding method according to claim 7, wherein the step of generating quantization matrices includes a step to change an operation precision by producing the quantization matrix in correspondence with an accuracy of the parameter set in the generation function. 11. The video coding method according to claim 7, wherein the step of obtaining the generation function selects a table in which the calculation values of the various generation functions corresponding to the parameter, and the generation of quantization matrices perform a calculation to generate the various quantization matrices that refer to the selected table. The method according to claim 7, wherein the step to generate the quantization matrix includes a step to generate a quantization matrix by substituting an available generation function when a generation function corresponding to a function index of generation within a decoding parameter of a decoded quantization matrix is not available in the decoding. The video encoding method according to claim 7, wherein the encoding step includes information indicating the encoding matrix of the various quantization matrices, which is used in the quantization stage as the header information of any of a sequence encoded as an encoded image and a coded subdivision. 14. A video coding apparatus for quantizing a transformation coefficient using a quantization matrix, the video coding apparatus comprises: a selection unit for selecting a generation type of a quantization matrix; a generation function acquisition unit for acquiring various generation functions by setting the generation function parameter in a plurality of functions prepared in advance in correspondence with the type of generation; a unit for generating quantization matrices to generate a plurality of quantization matrices using the plurality of generation functions; a quantization unit for producing a quantization transformation coefficient by quantizing a transformation coefficient with respect to an input image signal using the plurality of quantization matrices; and a coding unit for producing a coded signal when multiplexing and encoding the quantized transform coefficient, information indicating the type of generation and the parameter information. 15. A video decoding apparatus for dequantizing a transformation coefficient using a quantization matrix that corresponds to each frequency position of the transformation coefficient; the video decoding apparatus comprises: a decoding unit for acquiring information of a parameter of a generation function to generate a quantized transform coefficient, the information indicates a type of generation of a quantization matrix and the information of a parameter of a generation function to generate a quantization matrix; a generation function acquisition unit for acquiring various generation functions by setting the generation function parameter in a plurality of functions prepared in advance in correspondence with the generation type, a generation unit of quantization matrices to generate a plurality of quantization matrices using the various generation functions; a dequantization unit to obtain a transformation coefficient by dequantizing the quantized transform coefficient using the plurality of quantization matrices generated; a decoded image generation unit for generating a decoded image based on the transformation coefficient.
MX/A/2008/010316A 2006-02-13 2008-08-12 Moving image encoding/decoding method and device and program MX2008010316A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006-035319 2006-02-13

Publications (1)

Publication Number Publication Date
MX2008010316A true MX2008010316A (en) 2008-10-03

Family

ID=

Similar Documents

Publication Publication Date Title
AU2006338425B2 (en) Moving image encoding/decoding method and device and program
KR100977101B1 (en) Image encoding/image decoding method and image encoding/image decoding apparatus
KR101196429B1 (en) Video transcoding method and apparatus, and motion vector interpolation method
US9762917B2 (en) Quantization method and apparatus in encoding/decoding
JP6780097B2 (en) Multidimensional quantization technology for video coding / decoding systems
EP2136566A1 (en) Image encoding and image decoding method and device
US7792193B2 (en) Image encoding/decoding method and apparatus therefor
JP4844449B2 (en) Moving picture encoding apparatus, method, program, moving picture decoding apparatus, method, and program
CN104041035A (en) Lossless Coding and Associated Signaling Methods for Compound Video
JP2004096757A (en) Interpolation method and its apparatus for move compensation
KR20090103674A (en) Method for predictive intra coding/decoding for video and apparatus for same
CN1902939A (en) Encoding method, decoding method, and encoding apparatus for a digital picture sequence
JP2000165880A (en) Video compression coder and decoder using adaptive conversion method and video compression coding and decoding method
TW200534113A (en) Data processor, data processing method and encoder
JP2859830B2 (en) Video signal decoding device
JP2005348093A (en) Image processor, program and method thereof
KR20090103675A (en) Method for coding/decoding a intra prediction mode of video and apparatus for the same
MX2008010316A (en) Moving image encoding/decoding method and device and program
JP2007266861A (en) Image encoding device
JP2005348207A (en) Encoding apparatus, and program
KR20160053848A (en) Method for predictive intra coding/decoding for video and apparatus for same
JP2007312072A (en) Motion image coding apparatus, motion image coding program, motion image decoding apparatus and motion image decoding program