[go: up one dir, main page]

HK1108785B - Method for reduced bit-depth quantization - Google Patents

Method for reduced bit-depth quantization Download PDF

Info

Publication number
HK1108785B
HK1108785B HK08101515.6A HK08101515A HK1108785B HK 1108785 B HK1108785 B HK 1108785B HK 08101515 A HK08101515 A HK 08101515A HK 1108785 B HK1108785 B HK 1108785B
Authority
HK
Hong Kong
Prior art keywords
quantization
matrix
mantissa
inverse
transform
Prior art date
Application number
HK08101515.6A
Other languages
Chinese (zh)
Other versions
HK1108785A1 (en
Inventor
L.J.科洛夫斯基
Original Assignee
杜比国际公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US10/139,036 external-priority patent/US7123655B2/en
Application filed by 杜比国际公司 filed Critical 杜比国际公司
Publication of HK1108785A1 publication Critical patent/HK1108785A1/en
Publication of HK1108785B publication Critical patent/HK1108785B/en

Links

Description

Quantization method for reducing bit depth
The present application is a divisional application of an invention patent application entitled "quantization method for reducing bit depth" filed by the applicant at 8/2002 under the application number "02819594.9" (PCT/JP 02/08146).
RELATED APPLICATIONS
The present application claims the right entitled "quantization to reduce bit depth", U.S. provisional patent application 06/311,436 entitled "quantization to reduce bit depth", filed 8/9/2001 with attorney docket number SLA1110P, and video encoding method and system entitled "combined quantization and normalization process", U.S. provisional patent application 06/319,018 entitled "quantization to reduce bit depth", filed 11/30/2001 with attorney docket number SLA1110P, and U.S. patent application 10/139,036 entitled "quantization to reduce bit depth", filed 5/2/2002 with Louis kerofky, attorney docket number SLA 1110.
Background
1. Field of the invention
The present invention relates to video compression techniques, and more particularly, to a method of reducing the bit size required in video coding transform computations.
2. Description of the related Art
The video information format provides visual information suitable for activating a television screen or for storage on a video tape. Typically, video data is organized in a hierarchical order. The video sequence is divided into groups of frames, and each group may comprise a series of individual frames. Each frame is approximately equivalent to a still picture that is frequently updated to simulate showing continuous motion. The frame is further divided into segments, or horizontal portions, that facilitate the fault tolerant design of the system. Each segment is independently coded so that errors do not propagate between segments. A slice consists of macroblocks. In the h.26p and Moving Picture Experts Group (MPEG) -X standards, a macroblock consists of 16X 16 luminance pixels and a corresponding set of saturation pixels, depending on the video format. A macroblock always contains an integer number of blocks, with the 8 x 8 pixel matrix being the smallest coding unit.
Video compression is a key component of any application that requires the transmission or storage of video data. Compression techniques compensate for motion by reusing information stored in different regions of a frame (temporal redundancy). Compression is also performed by transforming the data from the spatial domain into the frequency domain. Hybrid digital video compression using temporal redundancy by motion compensation and spatial redundancy by transform, such as Discrete Cosine Transform (DCT), has been adopted as a basis in the h.26p and MPEG-X international standards.
As described in U.S. patent No. 6,317,767 (king), DCT and Inverse Discrete Cosine Transform (IDCT) are widely used operations in image data signal processing. For example, both are used in the international standard for moving image video compression promulgated by MPEG. DCT is a specific property to produce a simplified and efficient coding model. When applied to a matrix of pixel data, DCT is a method that decomposes a block of data into a weighted sum of spatial frequencies, i.e., DCT coefficients. In contrast, IDCT is used to transform a matrix of DCT coefficients into pixel data.
A Digital Video (DV) codec is an example of a device using a DCT-based data compression method. In the blocking stage, the image frame is divided into N × N blocks of pixel information including, for example, luminance and color data for each pixel. A typical block size is 8 pixels each, horizontal and vertical. Blocks of pixels are then "shuffled" so that several blocks from different parts of the image are grouped together. Shuffling enhances the consistency of image quality.
Different areas are recorded at different times. For each block of pixel data, the motion detector looks for differences between two regions of the frame. The movement information is sent to the next processing stage. In the next processing stage, the pixel information is transformed using DCT. For example, an 8-8 DCT takes 8 inputs each in both the vertical and horizontal directions and returns 8 outputs. The resulting DCT coefficients are then weighted by multiplying each block of DCT coefficients by a weighting constant.
The weighted DCT coefficients are quantized in the next stage. Quantization rounds each DCT coefficient within a particular range of values to the same number. Quantization tends to set the high frequency component of the frequency matrix to 0, resulting in much less data being stored. However, since the human eye is more sensitive to low frequencies, there is little degradation in perceived image quality at this stage.
The quantization stage comprises transforming a two-dimensional matrix of quantized coefficients into a one-dimensional linear data stream by reading matrix values in a zigzag pattern and dividing said one-dimensional linear stream of quantized coefficients into segments, wherein each segment consists of a string of 0 coefficients followed by non-0 quantized coefficients. Variable Length Coding (VLC) is then performed by transforming each segment, consisting of the number of 0 coefficients and the magnitude of the non-0 coefficients in the segment, into a variable length codeword. Finally, the frequency division process packs every 30 variable length coded quantized coefficient blocks into 5 fixed length synchronous blocks.
Decoding is essentially the inverse of the encoding process described above. The digital stream is first framed. Variable Length Decoding (VLD) then unpacks the data so that it can be restored to individual coefficients. After inverse quantizing the coefficients, an inverse weighting and Inverse Discrete Cosine Transform (IDCT) is applied to the result. The inverse weight is a multiplicative inverse of the weight applied in the encoding process. The output of the inverse weighting function is then processed by the IDCT.
Much work has been done on methods to reduce the complexity in DCT and IDCT calculations. The algorithm for computing the two-dimensional IDCT is called a "class I" algorithm. Class I algorithms are easy to implement in parallel machines, i.e. computers consisting of multiple processors working in parallel at the same time. For example, when N parallel processors are used to perform matrix multiplication of an N × N matrix, the multiplication of N columns may be performed simultaneously. In addition, parallel machines may be designed to contain special hardware or software instructions to perform fast matrix transposing.
One disadvantage of class I algorithms is that more multiplications are required. The calculation sequence for a class I algorithm includes two matrix multiplications separated by a matrix transpose, where, for example, 64 additions and 48 multiplications are required for a total of 112 instructions, as N-4. As is known to those skilled in the art, the processor is very time consuming to perform multiplications and typically optimizes the performance of the system by reducing the number of times the multiplications are performed.
A two-dimensional IDCT can also be obtained by transforming the transpose of the input matrix into a one-dimensional vector using an L function. Next, the tensor product of the constant matrix is obtained. The tensor set is then multiplied by the one-dimensional vector L. The result is transformed into an nxn matrix using an M function. Again assume that N is 4, thus the total number of instructions used in the computation sequence is 92 instructions (68 additions and 24 multiplications). The algorithm for performing two-dimensional IDCT using this calculation sequence is called "class II algorithm. In class II algorithms, two constant matrices are grouped together and executed as one operation. The advantage of class II algorithms is that they typically require fewer instructions (92 versus 112) and, more particularly, fewer costly multiplications (24 versus 48). However, class II algorithms are difficult to implement efficiently on parallel machines. Class II algorithms tend to reorder data frequently, which is time consuming on parallel machines.
There are many types of class I and class II algorithms that implement IDCT, however, inverse quantization (dequantization) is considered to be a separate step that relies on DCT and IDCT calculations. Efforts to provide bit-accurate (bit exact) DCT and IDCT definitions have led to the development of efficient integer transforms. These integer transforms typically increase the dynamic range of the computation. As a result, the implementation of these algorithms requires the processing and storage of more than 16 bits of data.
It would be advantageous if the coefficients quantized in the intermediate stage could be limited to the maximum size in the transform process.
It would be advantageous if quantization processing could be developed for a 16-bit processor.
It would be advantageous if decoder implementation, inverse quantization and inverse transformation could be efficiently implemented with a 16-bit processor. Similarly, it would be advantageous if multiplication could be performed with no more than 16 bits and if memory access required no more than 16 bits.
Summary of The Invention
The present invention is an improved process for video compression. Typical video coding algorithms predict a frame from an originally coded frame. The error is transformed and the resulting value is quantized. The quantizer controls the degree of compression. The quantizer controls the amount of information used to represent the video and the quality of the reproduction.
The problem is the interaction of transform and quantization in video coding. In the past, the transform and quantizer were designed independently. The transform, typically a discrete cosine transform, is normalized. The result of the transformation is quantized in standard ways using scalar or vector quantization. In the prior art, MPEG-1, MPEG-2, MPEG-4, H.261, H.263, the definition of inverse transform is not bit-exact. This allows the implementer some freedom to choose a transformation algorithm that fits his platform. One drawback of this approach is that the encoder/decoder may not match destroying the prediction loop. To solve such mismatch problems, parts of the image are periodically encoded without prediction. The prior art, such as h.26l, focuses on using integer transforms that allow bit-accurate definition. The integer transform may not be normalized. The transformation is designed so that it can ultimately be converted to a result using a normalized calculation rather than an intermediate division. Quantization also requires division. H.26l provides an example of how these integer transforms can be used with quantization.
In the current h.26l long-term Test Model (TML), normalization is combined with quantization and achieved by integer multiplication and shifting after forward and quantization and after inverse quantization and inverse transform. H26.l TML uses two arrays of integers a (QP) and b (QP) indexed by Quantization Parameter (QP), see table 1. These values are defined by the relationship shown in equation 1 below.
The invention provides a quantization method for deriving a quantized level (L) by quantizing a transform coefficient (K), comprising: a step of inputting the transform coefficient; a step of inputting a Quantization Parameter (QP); and a step of deriving the quantized level, wherein the quantized level is derived using a mantissa part (am (qp)) which is the quantization parameter function and an exponent part (ae (qp)) which is the quantization parameter function according to the following equation:
l ═ am (qp) > ae (qp), and (">" indicates a right shift operation),
the functional structure of the mantissa portion is am (qp) ═ am (qp mod p).
The invention also provides an inverse quantization method for deriving transform coefficients (K) by inverse quantization of a quantized level (L), comprising: inputting the quantized level; a step of inputting a Quantization Parameter (QP); and a step of deriving the transform coefficients, wherein the transform coefficients are derived using a mantissa part (bm (qp)) which is the quantization parameter function and an exponent part (be (qp)) which is the quantization parameter function according to the following equation:
k ═ be (qp) < be (qp), and ("<" indicates a left shift operation),
the function structure of the mantissa part is bm (qp) ═ bm (qp mod p).
TABLE 1 TML quantization parameters
QP A(QP) B(QP)
0 620 3881
1 553 4351
2 492 4890
3 439 5481
4 391 6154
5 348 6914
6 310 7761
7 276 8718
8 246 9781
9 219 10987
10 195 12339
11 174 13828
12 155 15523
13 138 17435
14 123 19561
15 110 21873
16 98 24552
17 87 27656
18 78 30847
19 69 34870
20 62 38807
21 55 43747
22 49 49103
23 44 54683
24 39 61694
25 35 68745
26 31 77615
27 27 89113
28 24 100253
29 22 109366
30 19 126635
31 17 141533
Equation 1 Joint normalization/quantization relationship
A(QP)·B(QP)·6762≈240
Using division of these integers and powers of 2, normalization and quantization are performed simultaneously. Transform coding in h.26l uses a 4 × 4 block size and an integer transform matrix T, equation 2. For a 4 × 4 block X, the transform coefficient K is calculated as shown in equation 3. With the transform coefficients, the quantization level L is calculated by integer multiplication. In the decoder, the levels are used to calculate a new set of coefficients K'. An additional integer matrix transformation and subsequent shifting are used to calculate the saliency values X'. The encoder allows freedom in the calculation and rounding of the forward transform. The encoder and decoder must compute exactly the same inverse computed answer.
Equation 2 H.26L test model 8 transformation matrix
Equation 3TML DCT _ LUMA and IDCT _ LUMA
Y=T·X
K=Y·TT
L=(ATML(QP)·K)/220
K′=BTML(QP)·L
Y′=TT·K′
X′=(Y′·T)/220
Wherein the intermediate result Y is the result of the one-dimensional transformation and the intermediate result Y' is the result of the one-dimensional inverse transformation.
The dynamic range required in these calculations can be determined. The master application comprises a 9 bit input, 8 bits plus sign, intermediate registers and the required dynamic range for memory access as shown in table 2.
TABLE 2 dynamic Range (bits) of TML transform and inverse transform
9 bit input LUMA conversion Inverse transformation
Register with a plurality of registers 30 27
Memory device 21 26
To maintain a bit-accurate definition and include quantization, the dynamic range of the intermediate result can be large because the division operation is deferred. The present invention combines quantization and normalization to eliminate the increase in the dynamic range of intermediate results. By the present invention, the advantages of bit-exact inverse transformation and quantization definition are preserved, while controlling the bit depth required for these calculations. Reducing the required bit depth reduces the complexity required for hardware implementation and enables efficient use of Single Instruction Multiple Data (SIMD) operations, such as the Intel MMX instruction set.
Accordingly, a method of coefficient quantization is provided. The method comprises the following steps: providing a coefficient K, providing a Quantization Parameter (QP), using a mantissa part (am (QP)) and an exponent part (x)Ae(QP)) The quantization value (L) is formed by the coefficient K. Typically, x has a value of 2.
In some aspects of the method, constructing the quantization value (L) by the coefficient K comprises:
L=K*A(QP)
=K*Am(QP)*(2Ae(QP)).
in other aspects, the method further comprises: by 2NThe quantization values were normalized as follows:
Ln=L/2N
=K*Am(QP)/2(N-Ae(QP))
in some aspects, forming the quantization value comprises forming a set of recursive quantization factors with a period P, where a (QP + P) ═ a (QP)/x. Thus, the quantization factors that make up the recursion include the mantissa factor that makes up the recursion, where am (qp) ═ am (qp mod p). Similarly, the quantization factors that make up the recursion include exponential factors that make up the recursion, where ae (QP) ═ ae (QP mod P) -QP/P.
More particularly, providing the coefficients K includes providing a matrix of coefficients K [ i ]][j]. Then, pass coefficient matrix K [ i ]][j]Constructing the quantized value (L) includes using mantissasPartial matrix (am (QP) [ i ]][j]) And an index partial matrix (x)Ae(QP)[i][j]) Form a matrix of quantized values (L [ i ]][j])。
Similarly, a mantissa partial matrix (am (QP)) [ i [ I ] ], is used][j]) And an index partial matrix (x)Ae(QP)[i][j]) Form a matrix of quantized values (L [ i ]][j]) Including that for each particular QP value, each element in the exponent portion matrix is the same value. The period (P) value of each element pair QP in the exponent section matrix is the same value, where Ae (QP) Ae (P (QP/P)).
Additional details of the above method are provided below, including the use of mantissa portion (bm (qp)) and exponent portion (x)Be(QP)) A method of forming an inverse quantization value (X1) from the quantization values.
Drawings
Fig. 1 is a flow chart showing the coefficient quantization method of the present invention.
Fig. 2 through 9 show embodiments of the present invention, including systems and methods of video encoding.
Detailed description of the preferred embodiment
The dynamic range requirements of the combined transform and quantization are reduced for mantissa and exponent terms by decomposing the quantization parameters a (qp) and b (qp), as shown in equation 4. With this result, only the precision due to the mantissa term needs to be preserved in the calculation. The exponent term may be included in the last normalized shift. This is shown in the example calculation of equation 5.
Equation 4 Structure of quantization parameter
Equation 5 reduced bit depth LUMA conversion
Y=T·X
K=Y·TT
K′=TT·L
Y′=K′·T
To demonstrate the invention, a set of quantization parameters that reduce the dynamic range requirements of an h.26l decoder to 16-bit memory accesses is presented. The memory access for the inverse transform is reduced to 16 bits. Define A for QP 0.5Mantissa、AIndex of refraction、BMantissa、BIndex of refraction、AAdvising、BAdvisingThe values of (A) are shown in Table 3. Additional values are determined recursively as shown in equation 6. The structure of these values is such that new quantized values can be generated in addition to those specified.
TABLE 3 quantization values 0-5 of TML
QP A A B B A B
0 5 7 235 4 640 3760
1 9 6 261 4 576 4176
2 127 2 37 7 508 4736
3 114 2 165 5 456 5280
4 25 4 47 7 400 6016
5 87 2 27 8 348 6912
Formula 6 recursion relation
AMantissa(QP+6)=AMantissa(QP)
BMantissa(QP+6)=BMantissa(QP)
AIndex of refraction(QP+6)=AIndex of refraction(QP)-1
BIndex of refraction(QP+6)=BIndex of refraction(QP)+1
Using the defined parameters, the transform calculation can be modified to reduce the dynamic range, as shown in equation 5. Note how only mantissa values have an effect on the increase in dynamic range. The exponential factor is included in the final normalization and does not affect the dynamic range of the intermediate results.
With these values and calculation methods, the dynamic range of the decoder is reduced to only 16-bit memory accesses, as shown in table 4.
TABLE 4 dynamic Range of Low bit depth quantization (QP > 6)
8 bits LUMA conversion Reverse transform of LUMA
Register with a plurality of registers 28 24
Memory device 21 16
Several improvements can be applied to the joint quantization/normalization process described above. The general technique of decomposing parameters into mantissas and exponents forms the basis for these improvements.
The above description assumes that all basis functions of the transform have the same norm and are quantized equally. Some integer transforms have the property that different basis functions have different norms. The technique of the present invention is generalized to support transforms with different norms by replacing the scalars A (QP) and B (QP) described above with matrices A (QP) j and B (QP) j. These parameters are connected by a normalized relationship of the form shown in equation 7 below, which is more generalized than the single relationship shown in equation 1.
Joint quantization/normalization of the matrix of equation 7
A(QP)[i][j]·B(QP)[i][j]=N[i][j]
Following the above method, each element of each matrix is decomposed into mantissa and exponent terms, as shown in equation 8 below.
Decomposition of matrix parameters of equation 8
A large number of parameters are required to account for these quantization and inverse quantization parameters. Several structural relationships can be used to reduce the number of free parameters. Let the quantizer grow so that the value of a is halved after each period P, while the value of B is doubled to maintain the normalized relationship. In addition, AIndex of refraction(QP)[i][j]And BIndex of refraction(QP)[i][j]Has a value in the range [0, P-1 ]]I, j and (QP). This structure is summarized by the structural formula, equation 9. For this structure, there are only two parameters AIndex of refraction[0]And BIndex of refraction[0]。
Structure of formula 9 exponential term
AIndex of refraction(QP)[i][j]=AIndex of refraction[0]-QP/P
BIndex of refraction(QP)[i][j]=BIndex of refraction[0]+QP/P
Structures are also defined for the mantissa values. For each subscript pair (i, j), the mantissa value is periodic and has a period of P. This is summarized by the structural formula, equation 10. To this structure, pair AMantissaWith P independent matrices and pair BMantissaP independent matrices, which reduces memory requirements and adds structure to the computation.
Structure of formula 10 mantissa term
AMantissa(QP)[i][j]=AMantissa(QP%P)[i][j]
BMantissa(QP)[i][j]=BMantissa(QP%P)[i][j]
The inverse transform may include integer division that requires rounding. In the case of interest, it is divided by a power of 2. Rounding errors are reduced by designing the dequantization factor to be a multiple of 2 to the same power, so that the division does not produce a remainder.
Using mantissa value BMantissaThe dequantization by (QP) gives the value of such dequantization, which is normalized differently based on QP. This must be to
The latter inverse transform compensates. One form of this calculation is shown in equation 11.
Equation 11 normalization of inverse transform I
K[i][j]=BMantissa(QP%P)[i][j]·Level[i][j]
X=(T-1·K·T)/2(N-QP/P)
In equation 11, Level [ i ] [ j ] is a quantized version of the transform coefficient and is referred to as a "quantized value". K [ i ] [ j ] is a scaled version of the transform coefficient and is referred to as the "inverse quantization value".
To eliminate the need for an inverse transform to compensate for this normalization difference, an inverse quantization operation is defined such that all the inverse quantized values are equally normalized. The form of this calculation is shown in equation 12.
Normalization of equation 12 inverse transform II
K[i][j]=BMantissa(QP%P)[i][j]·2QP/P·Level[i][j]
X=(T-1·K·T)/2(N-QP/P)
The power of 2 can be calculated by using a left shift operation and the inverse quantised value K [ i ] [ j ] in equation 12 will be given as follows.
K[i][j]=[BMantissa·Level[i][j]]<<(QP/P)
The following example demonstrates the use of the invention with a quantization matrix. The forward and reverse transforms defined in equation 13 require quantization matrices rather than a single scalar quantization value. Sample quantization and inverse quantization parameters are given. Equations 14 and 16, along with the associated calculations, illustrate the use of the present invention. This example uses a period of P-6. In the formula 14, AMantissaDenoted by Q and QP by m. In the formula 16, BMantissaDenoted by R and QP by m.
Transformation of equation 13
Equation 14 quantization parameter
Q(m)[i][j]=Mm,0for(i,j)={(0,0),(0,2),(2,0),(2,2)}
Q(m)[i][j]=Mm,1for(i,j)={(1,1),(1,3),(3,1),(3,3)}
Q(m)[i][j]=Mm,2otherwise
Equation 16 inverse quantization parameter
R(m)[i][j]=Sm,0for(i,j)={(0,0),(0,2),(2,0),(2,2)}
R(m)[i][j]=Sm,1for(i,j)={(1,1),(1,3),(3,1),(3,3)}
R(m)[i][j]=Sm,2otherwise
A description of the forward transform and forward quantization is given below, see equation 18, assuming the input is in X, the quantization parameter QP.
Equation 17 forward transform
Equation 18 forward quantization
period=QP/6
phase=QP-6·period
Level[i][j]=(Q(phase)[i][j]·K[i][j])/2(17+period)
A description of the inverse quantization, inverse transformation and normalization of this example is given below, see equations 19 and 20.
Equation 19 inverse quantization
period=QP/6
phase=QP-6·period
K[i][j]=R(phase)[i][j]·Level[i][j]·2period
Equation 20IDCT and normalization
X″[i][j]=X′[i][j]/27
Fig. 1 is a flow chart showing the coefficient quantization method of the present invention. Although the method is illustrated in a numbered sequence of steps for clarity, no order should be inferred from the numbering unless explicitly stated. It should be understood that some of these steps may be skipped, performed in parallel, or performed without the requirement of maintaining a strict order of sequence. The method starts in step 100. Step 102 provides the coefficient K. Step 104 provides a Quantization Parameter (QP). Step 106 uses a mantissa part (am (QP)) and an exponent part (x)Ae(QP)) The quantization value (L) is formed by the coefficient K. Generally, the exponential part (x)Ae(QP)) Including x having a value of 2.
In some aspects of the method, a mantissa portion (am (QP)) and an exponent portion (x) are used in step 106- Ae(QP)) The forming of the quantization value (L) by the coefficient K includes:
L=K*A(QP)
=K*Am(QP)*(2Ae(QP)).
some aspects of the method also include further steps. Step 108 with 2NThe quantization values were normalized as follows:
Ln=L/2N
=K*Am(QP)/2(N-Ae(QP))
in other aspects, constructing the quantization values at step 106 includes constructing a recursive set of quantization factors with a period P, where a (QP + P) ═ a (QP)/x. Similarly, the quantization factors that make up a set of recursions include mantissa factors that make up a recursion, where am (qp) am (qp mod p). Then, the quantization factors that make up a set of recursions include exponential factors that make up a recursion, where ae (QP) ═ ae (QP mod P) -QP/P.
In some aspects, forming the quantization value comprises forming a set of recursive quantization factors with a period P, where a (QP + P) ═ a (QP)/2. In other aspects, the quantization factors that make up a set of recursions include mantissa factors that make up a recursion, where P ═ 6. Similarly, the quantization factors that make up a set of recursions include exponential factors that make up a recursion, where P ═ 6.
In some aspects of the method, providing the coefficients K in step 102 includes providing a matrix of coefficients K [ i ]][j]. Step 106 then uses the mantissa part (am (QP)) and exponent part (x)Ae(QP)) By a coefficient matrix K [ i ]][j]Constructing the quantized values (L) includes using a mantissa portion matrix (am (QP) i][j]) And an index partial matrix (x)Ae(QP)[i][j]) Form a matrix of quantized values (L [ i ]][j]). Similarly, a mantissa partial matrix (am (QP)) [ i [ I ] ], is used][j]) And an index partial matrix (x)Ae(QP)[i][j]) Form a matrix of quantized values (L [ i ]][j]) Including that each element in the exponent portion matrix is the same value for each particular QP value. Typically, the period (P) value of each element pair QP in the exponent section matrix is the same value, where Ae (QP) Ae (P (QP/P)).
Some aspects of the method include further steps. Step 110 uses a base portion (Bm (QP)) and an exponent portion (x)Be(QP)) The dequantization value (X1) is formed from the quantization value. Again, the index part (x)Be(QP)) Typically including a value of 2 for x.
In some aspects of the method, a base part (bm (qp)) and an exponent part (2) are usedBe(QP)) Forming an inverse quantization value (X1) by the quantization value includes:
X1=L*B(QP)
=L*Bm(QP)*(2Be(QP)).
other aspects of the method includeOne step, step 112, is to use 2NThe quantized values were denormalized as follows:
X1d=X1/2N
=X1*Bm(QP)/2N
in some aspects, constructing the dequantization values in step 110 includes constructing a set of recursive dequantization factors having a period P, where B (QP + P) × B (QP). Then, the inverse quantization factors that make up a set of recursions include mantissa factors that make up a recursion, where bm (qp) ═ bm (qp mod p). Further, the inverse quantization factors that make up a set of recursions include exponential factors that make up a recursion, where be (QP) ═ be (QP modp) + QP/P.
In some aspects, the periodic P inverse quantization factors comprising x that make up a set of recursions have a value equal to 2, and the mantissa factors comprising P that make up a recursion have a value equal to 6. Then, the inverse quantization factors that make up a set of recursions include exponential factors that make up a recursion, where be (QP) ═ be (QP mod P) + QP/P.
In some aspects of the method, a base part (bm (qp)) and an exponent part (x) are used in step 110- Be(QP)) Constructing the dequantized values (X1) by the quantized values includes using a mantissa partial matrix (Bm (QP)) [ i [][j]) And an index partial matrix (x)Be(QP)[i][j]) Form a matrix of dequantized values (X1[ i ]][j]). Similarly, a mantissa partial matrix (Bm (QP)) [ i ] is used][j]) And an index partial matrix (x)Be(QP)[i][j]) Form a matrix of quantized values (X1[ i ]][j]) Including that for each particular QP value, each element in the exponent portion matrix is the same value. In some aspects, the period (P) value of each element pair QP in the exponent section matrix is the same value, where Be (QP) ═ Be (P (QP/P)).
Another aspect of the invention includes a method of inverse quantization of coefficients. However, this process is essentially the same as steps 110 and 112 described above and is not repeated for the sake of brevity.
Methods of coefficient quantization have been demonstrated. An example is now given showing the combined inverse quantization and normalization process applied to the h.26l video coding standard, with the goal of reducing the bit depth required by the decoder to 16 bits. The concepts of the present invention can be used to meet other design goals within h.26l. In general, the invention applies to a combination of normalization and quantization calculations.
Embodiments of the invention may be implemented as hardware, firmware, software, and other implementations. Some embodiments may be implemented on a general-purpose computing device or a computing device specifically designed for implementation of the embodiments. Some embodiments may be stored in memory as a method of storing the embodiments or for performing the embodiments on a computing device.
Some embodiments of the invention include systems and methods of video encoding, as shown in fig. 2. In these embodiments, the data representing the previous video frame 145 in the image data 130 is subtracted 132 to obtain a difference image 133, which is sent to the transform module 134. The transform module 134 may transform the image using a DCT or other transform method. Typically, the result of the transform process is a coefficient (K), which is then sent to the quantization module 136 for quantization.
The quantization module 136 may have other inputs, such as a user input 131 that establishes Quantization Parameters (QP) and other inputs. Quantization module 130 may use the transform coefficients and quantization parameters to determine a quantization level (L) in the video image. The quantization module 136 may use a method using a mantissa part and an exponent part, however, other quantization methods may be used in the quantization module 136 according to an embodiment of the present invention. These quantization levels 135 and quantization parameters 137 are output to an encoding module 138 and an inverse quantization module (DQ) 140.
The output of the encoding module 138 is encoded and sent outside the encoder for immediate decoding or storage. The encoding module 138 may use Variable Length Coding (VLC) in its encoding process. The encoding module 138 may use arithmetic coding in its encoding process. The output from the encoding module 138 is encoded into data 139, which may be sent to a decoder or stored in a storage device.
The output from the quantization module 136 is also received at an inverse quantization module 140 to begin the reproduction of the image. This is to maintain accurate recording of the previous frame. The inverse quantization module 140 performs a process having an effect substantially opposite to that of the quantization module 136. The quantization level or value (L) is inverse quantized to produce transform coefficients. As described above, the inverse quantization module 140 may use a method that employs a mantissa portion and an exponent portion.
The transform coefficient outputs from the inverse quantization module 140 are sent to an Inverse Transform (IT) module 142 where they are inverse transformed into a difference image 141. This difference image 141 is then combined with data from the previous image frame 145 to form a video frame 149, which video frame 149 may be input to the frame store 146 to be referenced by the subsequent frame.
Video frames 149 may also be input to a motion prediction module 147, which also receives image data 130. These inputs can be used to predict image similarity and to facilitate compression of image data. The output from the motion prediction module 147 is sent to the motion compensation module 148 and combined with the output data of the example encoding module 138, which is then sent out for subsequent decoding and final image display.
The motion compensation module 148 uses the predicted image data to reduce frame data requirements; the output of which is subtracted from the input image data 130.
Some embodiments of the invention include systems and methods of video decoding, as shown in fig. 3. A decoder of an embodiment of the present invention may receive encoded data 150 to a decoder module 152. The encoded data 150 may comprise data that has been encoded by the encoder 100 as described above with reference to fig. 2.
The decoding module 152 may use variable length decoding methods if they are used in the encoding process. Depending on the type of data 150 being encoded, other decoding methods may be used. The decoding module 152 essentially performs the inverse of the encoding module 138. The output from decoding module 152 may include quantization parameters 156 and quantization values 154. Other outputs may include motion prediction data and image prediction data, which are sent directly to the motion compensation module 166.
In general, the quantization parameters 156 and the quantized values 154 are output to an inverse quantization module 158, where the quantized values are converted back to transform coefficients. The inverse quantization module 158 may use the method described above that employs the mantissa portion and the exponent portion. These coefficients are then sent to an inverse transform module 160 for conversion back to spatial domain image data 161.
The motion compensation unit 166 constructs a reference image 165 using the motion vector data and the frame memory 165.
Image data 161 represents the difference image that must be combined with previous image data 165 to form video frame 163. This video frame 163 is output 168 for further processing, display or other purposes and may be stored in frame memory 165 and referenced by a subsequent frame.
In some embodiments of the present aspect, as shown in FIG. 4, image data 102 may be sent to an encoder or encoding portion 104 for various transformations, quantization, encoding, and other processing typical of video encoding, as described above for some embodiments of the present invention. The output from the encoder may then be stored in any computer-readable storage medium 106. The storage medium 106 may act as a short term buffer or a long term storage device.
When desired, the encoded video data may be read from the storage medium 106 and decoded by a decoder or decoding portion 108 for output 110 to a display or other device.
In some embodiments of the invention, as shown in FIG. 5, image data 112 may be sent to an encoder or encoding portion 114 for various transformations, quantization, encoding, and other processing typical of video encoding, as described above for some embodiments of the invention. The output from the encoder may then be sent over a network, such as a LAN, WAN, or the internet 116. A storage device such as storage media 106 may be part of a network. The encoded video data may be received and decoded by a decoder or decoding portion 118 that is also in communication with the network 116. The decoder 118 can then decode the data for local use 120.
In some embodiments of the present invention, as shown in FIG. 6, a quantization method or apparatus includes a mantissa portion 172 and an exponent portion 174. Quantization parameter 176 is an input to both portions 172 and 174. The coefficient K170 is an input to the mantissa portion 172, where it is modified using quantization parameters and other values, as described above. The result of this operation is combined with the result produced in the exponential portion using the quantization parameter to produce the quantization level or value L178.
In some embodiments of the present invention, as shown in FIG. 7, a quantization method or apparatus includes a mantissa portion 182 and a shift portion 184. Quantization parameter 186 is an input to both portions 182 and 184. The coefficient K180 is an input to a mantissa portion 182, which is modified using quantization parameters and other values, as described above. The result of this operation is further processed in a shift section using the quantization parameters to produce a quantization level or value L188.
Some embodiments of the invention, as shown in FIG. 8, include an inverse quantization method or apparatus having a mantissa portion 192 and an exponent portion 194. Quantization parameter 196 is an input to both portions 192 and 194. The quantized value, L190, is the input to the mantissa portion 192, where it is modified using quantization parameters and other values, as described above. The result of this operation is further processed in the exponential part using the quantization parameters to produce the coefficients, X1198.
Some embodiments of the invention, as shown in FIG. 9, include an inverse quantization method or apparatus having a mantissa portion 202 and an exponent portion 204. Quantization parameter 206 is an input to both portions 202 and 204. The quantized value, L200, is the input to the mantissa portion 202, where it is modified using quantization parameters and other values, as described above. The result of this operation is further processed in the exponential part using the quantization parameters to produce coefficients, X1208.
Some embodiments of the invention may be stored on computer readable media, such as magnetic media, optical media, and other media and combinations of media. Some embodiments may also be transmitted as signals over networks and communication media. These sending and storing actions may occur as part of the operation of an embodiment of the invention or as a way of sending an embodiment to a destination.
Those skilled in the art will appreciate that other variations and embodiments of the invention are possible.

Claims (4)

1. An image encoding device for deriving a quantized value matrix L by quantizing a transform coefficient matrix K,
the element L [ i ] [ j ] of the quantization value matrix is derived by using an element K [ i ] [ j ] of the transform coefficient matrix, a quantization parameter QP, a matrix element A (QP) i ] [ j ] which is a mantissa part of the QP function, and the following formula:
L[i][j]=K[i][j]×A(QP mod P)[i][j]×2A0-QP/P
where A0 and P are integers.
2. The image encoding device according to claim 1,
the row-column element of the mantissa section, when m is the quantization parameter QP, has the following structure:
A(m)[i][j]=Mm,0(i, j) are all even numbers;
A(m)[i][j]=Mm,1(i, j) are both odd;
A(m)[i][j]=Mm,2(i, j) is other than the above;
wherein M ism,0、Mm,1、Mm,2Is a row column element of P x 3.
3. An image decoding apparatus for deriving a transform coefficient matrix K by inverse-quantizing a quantized value matrix L,
the element K [ i ] [ j ] of the transform coefficient matrix is derived using an element L [ i ] [ j ] of the quantization value matrix, a quantization parameter QP, a matrix element B (QP) i ] [ j ] which is a mantissa part of the quantization parameter QP, and the following formula:
K[i][j]=L[i][j]×B(QP mod P)[i][j]×2B0+QP/P
where B0 and P are integers.
4. The image decoding apparatus according to claim 3,
the row-column element of the mantissa section, when m is the quantization parameter QP, has the following structure:
B(m)[i][j]=Sm,0(i, j) are all even numbers;
B(m)[i][j]=Sm,1(i, j) are both odd;
B(m)[i][j]=Sm,2(i, j) is other than the above;
wherein Sm,0、Sm,1、Sm,2Is a row column element of P x 3.
HK08101515.6A 2001-08-09 2005-04-07 Method for reduced bit-depth quantization HK1108785B (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US31143601P 2001-08-09 2001-08-09
US60/311,436 2001-08-09
US31901801P 2001-11-30 2001-11-30
US60/319,018 2001-11-30
US10/139,036 US7123655B2 (en) 2001-08-09 2002-05-02 Method for reduced bit-depth quantization
US10/139,036 2002-05-02
HK05102900.0A HK1070479B (en) 2001-08-09 2002-08-08 Method for reduced bit-depth quantization

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
HK05102900.0A Addition HK1070479B (en) 2001-08-09 2002-08-08 Method for reduced bit-depth quantization

Related Child Applications (1)

Application Number Title Priority Date Filing Date
HK05102900.0A Division HK1070479B (en) 2001-08-09 2002-08-08 Method for reduced bit-depth quantization

Publications (2)

Publication Number Publication Date
HK1108785A1 HK1108785A1 (en) 2008-05-16
HK1108785B true HK1108785B (en) 2010-04-23

Family

ID=

Similar Documents

Publication Publication Date Title
CN100571394C (en) Quantization method to reduce bit depth
HK1108785B (en) Method for reduced bit-depth quantization
HK1070479B (en) Method for reduced bit-depth quantization
HK1129014B (en) Method for reduced bit-depth quantization
HK1129015B (en) Method for reduced bit-depth quantization
HK1108786B (en) Method for reduced bit-depth quantization
HK1228605B (en) Joint quantization and integer transform normalization using a mantissa - exponent representation of a quantization parameter
HK1228605A1 (en) Joint quantization and integer transform normalization using a mantissa - exponent representation of a quantization parameter