WO2012115487A2 - 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치 - Google Patents

영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치 Download PDF

Info

Publication number
WO2012115487A2
WO2012115487A2 PCT/KR2012/001447 KR2012001447W WO2012115487A2 WO 2012115487 A2 WO2012115487 A2 WO 2012115487A2 KR 2012001447 W KR2012001447 W KR 2012001447W WO 2012115487 A2 WO2012115487 A2 WO 2012115487A2
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
discrete cosine
transform
quantization
substituted
Prior art date
Application number
PCT/KR2012/001447
Other languages
English (en)
French (fr)
Other versions
WO2012115487A3 (ko
Inventor
홍윤미
김일구
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to US14/001,567 priority Critical patent/US20140010284A1/en
Publication of WO2012115487A2 publication Critical patent/WO2012115487A2/ko
Publication of WO2012115487A3 publication Critical patent/WO2012115487A3/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the present invention relates to an image encoding and decoding method and apparatus, and more particularly, to an improved transform and inverse transform method and apparatus for a large block.
  • video signals are hierarchically divided into sequences, frames, slices, macro blocks, and blocks, with blocks being the minimum processing unit.
  • the prediction residual information of the block is obtained, and the block transform is performed so that energy can be concentrated on a few coefficients, and quantization, scanning, run length coding (Run Length) Image data is compressed through coding and entropy coding.
  • the block transform coefficients of entropy coding are extracted from the bit stream.
  • the prediction residual information of the block is reconstructed, and the prediction information is used to reconstruct the video data of the block.
  • the conversion module is the basis of video compression, and the conversion performance directly affects the general performance of the codec.
  • DCT Discrete cosine transform
  • the present invention has been made in an effort to provide an image conversion / inverse conversion method and apparatus for reducing computation complexity and improving computation speed.
  • the present invention provides an efficient conversion algorithm while reducing the computational complexity of the conversion process by performing a transformation using a transformation matrix in which trigonometric values are substituted by rational numbers, and through a quantization process to compensate for the transformation error caused by the substituted transformation matrix. do.
  • the difference between the result using the substituted discrete cosine transform and the result using the original discrete cosine transform is compensated in the quantization step, thereby providing a more efficient method for transforming and inverting an image while reducing computational complexity. Can be.
  • FIG. 1 illustrates an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 shows a flow graph of a discrete cosine transform in accordance with an embodiment of the present invention.
  • FIG. 3A is an enlarged view of the reference numeral 210 of FIG. 2
  • FIG. 3B is an enlarged view of the reference numeral 211 of FIG. 2.
  • FIG. 4 is a reference diagram for describing a calculation process according to the flowchart of 212 of the discrete cosine transform flowchart of FIG. 2.
  • 5A and 5B are reference views for explaining a process of simplifying a calculation structure including a trigonometric function of a specific angle according to another embodiment of the present invention.
  • FIG. 6 illustrates an example of a mapping table that approximates a trigonometric function to rational numbers according to an embodiment of the present invention.
  • FIG. 7 is a reference diagram for explaining a process of changing a discrete cosine transform process according to another embodiment of the present invention.
  • FIG. 8 is a diagram illustrating an operation structure of changing a rotation transformation included in a discrete cosine transformation according to another embodiment of the present invention.
  • FIG. 9 is a diagram illustrating a calculation structure in which a rotation transformation is changed according to another embodiment of the present invention.
  • FIG. 10 illustrates a mapping table representing rational values that replace trigonometric values according to another embodiment of the present invention.
  • 11A to 11C illustrate a discrete cosine transform process according to an embodiment of the present invention.
  • 12A to 12C are diagrams illustrating a discrete cosine inverse transformation process according to an embodiment of the present invention.
  • 13A to 13C illustrate a discrete cosine transform process according to another embodiment of the present invention.
  • 14A to 14C illustrate a discrete cosine inverse transformation process according to another embodiment of the present invention.
  • 15 is a flowchart illustrating an image conversion process according to an embodiment of the present invention.
  • 16 is a flowchart illustrating a quantization process according to an embodiment of the present invention.
  • 17 is an example of a scaling matrix applied to a transform value of a 32x32 block according to an embodiment of the present invention.
  • 18A-18F illustrate an example of a quantization matrix (MF) used for quantization of 32x32 blocks in accordance with one embodiment of the present invention.
  • MF quantization matrix
  • 19A-19F illustrate an example of an inverse quantization matrix V used for inverse quantization of a 32x32 block in accordance with one embodiment of the present invention.
  • 20A to 20F illustrate an example of a quantization matrix MF applied to a transform block transformed based on a discrete cosine transform matrix including an operation structure by a lifting scheme according to another embodiment of the present invention.
  • 21A to 21F are diagrams showing an example of an inverse quantization matrix V applied to a quantized transform block based on a discrete cosine inverse transform matrix including an operation structure by a lifting scheme according to another embodiment of the present invention. .
  • 22 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 23 is a flowchart illustrating an image inverse transform method according to an embodiment of the present invention.
  • FIG. 24 is a flowchart illustrating a process of obtaining an inverse quantization matrix V according to an embodiment of the present invention.
  • mapping tables for replacing a multiplication process according to an embodiment of the present invention.
  • an image transformation method is performed by substituting predetermined rational values by substituting values based on trigonometric functions among elements of an NxN transformation matrix used for one-dimensional discrete cosine transformation of an NxN (N is integer) block.
  • Inverse transformation method of an image comprises the steps of receiving a transformed and quantized NxN (N is an integer) block; Obtaining a substituted cosine inverse transformation matrix (B) by substituting values based on trigonometric functions among elements of the NxN inverse transformation matrix used for the one-dimensional discrete cosine inverse transformation of the NxN block with predetermined rational values; The result of the substituted discrete cosine inverse transformation matrix (B) and the original discrete cosine inverse transformation matrix (Original_B) using the substituted discrete cosine inverse transformation matrix (B) and the transpose matrix (B T ) of the substituted discrete cosine inverse transformation matrix.
  • An image encoding apparatus is obtained by substituting values based on trigonometric functions among elements of an NxN transform matrix used for one-dimensional discrete cosine transform of an NxN (N is integer) block with predetermined rational values.
  • a quantization unit for quantizing the transformed NxN block by using a scaling matrix S and a quantization step to compensate for the difference in the result.
  • An apparatus for decoding an image includes predetermined rational values based on trigonometric values among elements of an NxN inverse transform matrix used for one-dimensional discrete cosine inverse transform of a transformed and quantized NxN (N is integer) block.
  • An inverse transform unit for inversely transforming the N ⁇ N block by using a substituted discrete cosine inverse transform matrix (B) obtained by substituting for; And using the substituted discrete cosine inverse transformation matrix (B) and the original discrete cosine inverse transformation matrix (Original_B) by using the transposed matrix B T and the transpose matrix B T of the substituted discrete cosine inverse transformation matrix.
  • an inverse quantizer for inversely quantizing the transform and quantized N ⁇ N blocks input to the inverse transform unit by using a scaling matrix S and a quantization step to compensate for the difference in the result value.
  • FIG. 1 illustrates an image encoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus 100 may include a predictor 110, a subtractor 115, a transformer 120, a quantizer 130, and an entropy encoder 140. ).
  • the prediction unit 110 divides the input image into blocks having a predetermined size, and generates a prediction block through inter prediction or intra prediction for each of the divided blocks.
  • the prediction unit 110 generates the prediction block through a motion prediction and compensation process of generating a motion vector indicating a region similar to the current block within a predetermined search range of a previously encoded and reconstructed reference picture. And intra prediction for generating a prediction block using data of the neighboring block adjacent to the current block.
  • the subtraction unit 115 generates a residual obtained by subtracting the prediction block of the current block and the original image data.
  • the converter 120 converts the residual into the frequency domain.
  • the transform unit 120 is an algorithm for discrete cosine transform of the NxN (N is an integer) transformation matrix or NxN block used in the discrete cosine transform that can be applied to a block of a large size of 16x16 or more, For example, a signal of an input NxN block is transformed into a frequency domain using a substituted discrete cosine transform matrix (A) in which values based on trigonometric functions used in Loeffler's or Chen's conversion algorithms are substituted with predetermined rational values. Generate coefficients.
  • A discrete cosine transform matrix
  • the conversion unit 120 replaces trigonometric values of multiplication factors included in a calculation process of a transformation matrix used for discrete cosine transformation with rational numbers, and adds integers based on integers.
  • Discrete cosine transform may be performed by a subtraction operation and a shift operation.
  • replacing the multiply operation with a shift operation can reduce the load on the hardware and reduce the complexity of the operation, increasing the computational speed associated with the conversion process.
  • the transform unit 120 may change the calculation process corresponding to the rotation transformation included in the discrete cosine transform process to include a smaller multiplication operation process while having the same result.
  • some computational processes included in the flowchart for implementing the N ⁇ N discrete cosine transform matrix correspond to a rotation transform that rotates the input signal by a predetermined angle.
  • the rotation conversion process includes four multiplication operations and two addition operations.
  • the conversion unit 120 according to another embodiment of the present invention replaces the rotation conversion process with three multiplication operations and three addition operations. To perform the conversion. A detailed alternative calculation process will be described later with reference to FIGS. 5 to 9.
  • the quantization unit 130 quantizes the converted residual.
  • the quantization unit 130 according to an embodiment of the present invention approximates the transformation unit 120 by combining a quantization process using a quantization step (Qstep) and a scaling process of the transform coefficients output from the transform unit 120.
  • the error between the transformed input signal using the discrete cosine transform matrix and the transformed input signal using the original discrete cosine transform matrix is reduced.
  • the quantization unit 130 generates a scaling matrix S based on the size of each element of the substituted discrete cosine transform matrix A, and includes a scaling process based on the scaling matrix S.
  • the scaling matrix S is a square root of elements located diagonally among the elements of the multiplication matrix AA T of the substituted discrete cosine transform matrix A and the transpose matrix A T of the substituted discrete cosine transform matrix. Matrix with the inverse of.
  • the quantization unit 130 applies the quantization matrix MF and the quantization step to the transform value output from the transform unit 120 to simultaneously perform the scaling process and the quantization process. Specific scaling and quantization processes will be described later.
  • the entropy encoder 140 generates a bitstream by performing variable length encoding on the quantized image data.
  • FIG. 2 shows a flow graph of a discrete cosine transform in accordance with an embodiment of the present invention.
  • 3A is an enlarged view of the reference numeral 210 of FIG. 2
  • FIG. 3B is an enlarged view of the reference numeral 211 of FIG. 2.
  • the flow chart of the 32 point discrete cosine transform as shown in FIG. 2 shows that the components of the even rows (0th row, 2nd row, ...) of the N point discrete cosine transform matrix are symmetric and odd rows ( The components of the first row, the third row, ...) can be implemented from any 16 point discrete cosine transform algorithm, using the properties of the anti-symmetric discrete cosine transform matrix.
  • a 64-point discrete cosine transform flowchart, a 128 point discrete cosine transform flowchart, and a 256 point discrete cosine transform flowchart can be obtained from the 32 point discrete cosine transform flowchart as shown in FIG. 2.
  • x0 to x31 represent input values of the discrete cosine transform
  • y0 to y31 represent output values of the discrete cosine transform
  • x0 to x31 correspond to an output value of the discrete cosine inverse transform
  • y0 to y31 correspond to an input value of the discrete cosine inverse transform
  • the data processing direction is from left to right
  • the discrete cosine inverse transform the data processing direction is from right to left.
  • the value above each line represents a multiplication factor that is multiplied by the value across each line.
  • c ⁇ represents cos ⁇ and s ⁇ represents sin ⁇ .
  • the multiplication factor is -1, that is, the signal passing through the line is multiplied by -1.
  • the operation of multiplying by -1 can be implemented as a bit operation rather than a multiplication operation, which is simpler than a multiplication operation that multiplies an operation whose absolute value is not 1.
  • FIG. 4 is a reference diagram for describing a calculation process according to the flowchart of 212 of the discrete cosine transform flowchart of FIG. 2.
  • discrete cosine transform may be performed by performing a multiplication, addition, and subtraction operation on an input signal along each line according to the flowchart of FIG. 2.
  • a disadvantage of the discrete cosine transform according to the discrete cosine transform flowchart 200 is that the computational complexity may increase because c ⁇ and s ⁇ may be irrational numbers depending on the value of ⁇ . That is, the discrete cosine transform process may include floating point operations according to trigonometric values, thereby increasing complexity of operation. Accordingly, the image conversion method according to an embodiment of the present invention approximates and substitutes a trigonometric function value used for the discrete cosine transform with a rational value, performs a discrete cosine transform using a substituted discrete cosine transform matrix, and performs quantization. Scaling in step provides a transform method with results as close as possible to the original discrete cosine transform.
  • the transform unit 120 substitutes rational numbers with values of the trigonometric functions included in the discrete cosine transform algorithm based on the original N ⁇ N transform matrix Original_A.
  • the conversion unit 120 replaces the trigonometric value with a rational number of power of 2, such as q / (2 ⁇ p) (p and q are integers).
  • p is a precision value, and as p increases, more detailed values can be expressed, and thus trigonometric values can be approximated more accurately with rational numbers.
  • 6 illustrates an example of a mapping table that approximates a trigonometric function to rational numbers according to an embodiment of the present invention.
  • FIG. 6 shows a mapping table when the accuracy value p is 8, that is, when the trigonometric values are approximated by rational numbers having a denominator of 2 ⁇ 8.
  • calculation processes having a specific ⁇ before an output value may be simplified so that a multiplication process is omitted.
  • 5A and 5B are reference views for explaining a process of simplifying a calculation structure including a trigonometric function of a specific angle according to another embodiment of the present invention.
  • an operation structure illustrated by 510 corresponds to 213, 214, 215, 217, and 218 of FIG. 2, where ⁇ is ⁇ / 4.
  • the calculation structure based on the flowchart 510 corresponds to a rotation transformation that rotates the input value [X1, X2] by [pi] / 4 to output [Y1, Y2], and the following equation; It can be expressed as cos ( ⁇ / 4) and sin ( ⁇ / 4) are both Since the operation structure of 510 may be replaced with the operation structure of 520. According to the substituted arithmetic structure 520, the output value Is multiplied by The multiplying operation may be performed in combination with the quantization process described below.
  • an operation structure illustrated by 530 corresponds to 216 of FIG. 2 and corresponds to a case where ⁇ has a value of ⁇ / 4.
  • Reference numeral 530 corresponds to a rotation transformation for outputting [Y1, Y2] by rotating the input value [X1, X2] by - ⁇ / 4, and the following equation; It can be expressed as cos (- ⁇ / 4) is , sin (- ⁇ / 4) is Since the operation structure of 530 may be replaced with the operation structure of 540.
  • the multiplication process may be performed by merging with the quantization process. Accordingly, according to another embodiment of the present invention, the conversion unit 120 replaces the trigonometric values included in the flowchart 200 of FIG.
  • the conversion process for a large block includes more computation than the conversion for a small block.
  • the multiplication operation is more complicated than the addition, subtraction, and shift operations, and the operation time is too long, which slows down the overall operation. Therefore, it is desirable to reduce the number of multiplication operations required for the conversion process as much as possible.
  • the conversion unit 120 is included in the operation structure of the specific structure (hereinafter referred to as "butter fly operation structure") included in the discrete cosine transformation process based on the flowchart 200 of FIG.
  • the conversion can be performed based on a modified butterfly operation structure in which four multiplication operations and two addition operations are replaced with three multiplication operations and three addition operations.
  • FIG. 7 is a reference diagram for explaining a process of changing a discrete cosine transform process according to another embodiment of the present invention.
  • the process of obtaining the result values Y1 and Y2 for the input values X1 and X2 according to the operation structure 710 shown on the left side is as follows.
  • the conversion unit 120 may apply the modified arithmetic structure 720 illustrated in FIG. 7 to the flowchart 200 of FIG. 2.
  • the rotation conversion process can be changed as shown in Equation 1 using a lifting scheme (lifting scheme).
  • FIG. 8 is a diagram illustrating an operation structure of changing a rotation transformation included in a discrete cosine transformation according to another embodiment of the present invention.
  • 9 is a diagram showing a calculation structure in which the rotation transformation used for the transformation is changed according to another embodiment of the present invention.
  • the rotation transformation calculation structure 810 shown on the left side may be changed to the calculation structure 820 by the lifting scheme as shown on the right side based on Equation 1.
  • the operation structure 820 by the lifting scheme outputs the same result as the rotation transformation operation structure 810.
  • the rotation transformation operation structure 810 requires four multiplication operations and two addition (or subtraction) operations, whereas the operation structure 820 by the lifting scheme requires three multiplication operations and three addition (or subtraction) operations. Do. Accordingly, when the calculation structure 820 based on the lifting scheme is used, the calculation speed may be improved by reducing the number of operations of multiplication while having the same result as the rotation conversion calculation structure 810.
  • the multiplication factor 825 of cos ⁇ or 1 / cos ⁇ by the output value is not included in the conversion process but is multiplied by the scaling factor applied in the quantization process. Can be performed by multiplying
  • the conversion unit 120 calculates the calculation structure of 213, 214, 215, 217, 218 included in the flowchart 200 of FIG. 2 by the lifting scheme shown in FIG. Replace with a structure and perform the transform according to the replaced discrete cosine transform algorithm. If ⁇ > ⁇ / 4, tan ⁇ > 1, and therefore, the conversion unit 120 shows an operation structure of reference numerals 213, 214, 215, 217, and 218 included in the flowchart 200 of FIG. 2.
  • the operation structure 920 can be replaced with the operation structure 920 by the lifting scheme, and the transformation can be performed according to the replaced discrete cosine transform algorithm. That is, when the absolute value of ⁇ is greater than ⁇ / 4, the transform unit 120 also becomes larger than 1 because the absolute value of tan ⁇ is greater than 1, so that reference numerals 213, 214, 215, 217, included in the flowchart 200 of FIG. Instead of the operation structure of 218, the operation structure 920 by the lifting scheme of FIG. 9 may be used.
  • the multiplication factor 925 of sin ⁇ or 1 / sin ⁇ by the output scheme of the lifting scheme of FIG. 9 is not included in the conversion process and is not included in the quantization process. This can be done by multiplying multiplication factors 925 with the scaling factor applied.
  • the calculation structure 216 included in the flowchart 200 of FIG. 2 may also be replaced using the calculation structures 820 and 920 by the lifting schemes shown in FIGS. 8 and 9.
  • the conversion unit 120 may use the calculation structure 820 by the lifting scheme of FIG. 8 instead of the calculation structure 216 included in the flowchart 200 of FIG. 2, where ( ⁇ The operation is performed by substituting the value of ⁇ ). If the absolute value of ⁇ is larger than ⁇ / 4, the absolute value of tan ⁇ also becomes larger than 1, so that the conversion unit 120 may replace the arithmetic structure of reference numeral 216 included in the flowchart 200 of FIG. An arithmetic structure 920 with a lifting scheme of 9 can be used. In this case, the operation is performed by substituting (- ⁇ ) instead of ⁇ .
  • the conversion unit 120 is as shown in FIG. 10.
  • the discrete cosine transformation may be performed by replacing the trigonometric value required for the discrete cosine transformation with an approximate rational number as indicated in the right column.
  • the step of performing a 32-point discrete cosine transform process using the substituted discrete cosine transform matrix A is performed by adding, subtracting 7 steps as illustrated in FIGS. 11A to 11C. And shift operation.
  • 11A to 11C X0 to X31 are input values to be converted, Y0 to Y31 are converted values, remaining A0 to A31, B0 to B31, C0 to C31, D0 to D31, E0 to E31, and Z0 to Z31 are Median value.
  • the value of the trigonometric function included in the discrete cosine inverse transform matrix Origin_B is a power of 2.
  • Discrete cosine inverse transformation may be performed by substituting a rational rational number and using a substituted discrete cosine inverse transformation matrix (B).
  • Performing a 32-point discrete cosine inverse transform process using the substituted discrete cosine inverse transform matrix B may be performed through seven steps of addition, subtraction, and shift operations as illustrated in FIGS. 12A to 12C.
  • Y0 to Y31 are input values to be inversely transformed, X0 to X31 are inversely converted values, and the remaining A0 to A31, B0 to B31, C0 to C31, D0 to D31, E0 to E31, and Z0 to Z31 are Median value.
  • FIGS. 14A to 14C A step of performing a 32 point discrete cosine inverse transform process, which is an inverse process of the 32 point discrete cosine transform process that applies the operation structures 820 and 920 by the lifting scheme to the flowchart 200 of FIG. 2, is illustrated in FIGS. 14A to 14C.
  • the operation may be performed through a seven-step addition, subtraction, and shift operation.
  • Y0 to Y31 are input values to be inversely transformed
  • X0 to X31 are inversely converted values
  • remaining A0 to A31, B0 to B31, C0 to C31, D0 to D31, E0 to E31, and Z0 to Z31 are Median value.
  • the quantization unit 130 minimizes the conversion error generated by using the substituted discrete cosine transform algorithm by applying a scaling matrix in the scaling process performed with the quantization.
  • 16 is a flowchart illustrating a quantization process according to an embodiment of the present invention.
  • the quantization unit 130 may perform an element of the multiplication matrix AA T of the substituted discrete cosine transform matrix A and the transpose matrix A T of the substituted discrete cosine transform matrix. Among them, we obtain sqrt (AA T (i, i)), which is the square root of the elements of (i, i) (i is an integer from 1 to N) located on the diagonal line.
  • the quantization unit 130 obtains the inverse of sqrt (AA T (i, i)), that is, 1 / sqrt (AA T (i, i)).
  • the quantization unit 130 obtains a scaling matrix S having 1 / sqrt (AA T (i, i)) as elements of the i th row.
  • 17 is an example of a scaling matrix applied to a transform value of a 32x32 block according to an embodiment of the present invention. Referring to FIG. 17, when 1 / sqrt (AA T (i, i)) is s (i), the quantization unit 130 includes a scaling matrix S (having all elements of the i th row as s (i). 1700).
  • the quantization unit 130 may multiply elements S_S T of the same positions of the transpose matrix S T of the scaling matrix S by using the quantization step Qstep.
  • Obtain a quantization matrix (MF). Denotes an element-by-element multiplication (element-wise multiplication) operation, and denotes an operation of multiplying elements in the same position of the matrix.
  • the sign of the quantized transform coefficient is represented by the following equation; It is decided according to.
  • '.MF' means a vector product operation of multiplying elements of the same position of the matrix.
  • the vector product operation may be expressed as x.
  • the process of multiplying the elements of the same position of the quantization matrix MF and the elements of the same position of the N ⁇ N transform block corresponds to the scaling process, and the process of performing the light shift operation by q bits is performed in the quantization process.
  • a scaling process for compensating for the transformation error caused by the substituted discrete cosine transform matrix A is performed by combining the quantization process.
  • FIGS. 18A-18F illustrate an example of a quantization matrix (MF) used for quantization of 32x32 blocks in accordance with one embodiment of the present invention.
  • the quantization matrix MF as shown in FIGS. 18A-18F is defined for the first six steps of Qstep values (0.625, 0.6875, 0.8125, 0.875, 1, 1.25) without having to be defined for all quantization steps. Because if the quantization parameter QP is increased by 6, the quantization step Qstep is doubled. Therefore, the quantization matrix MF is defined for the first six step Qstep values, and the quantization matrix MF according to the remaining QP is (QP mod 6) can be selected according to the value.
  • inverse quantization may be performed by applying an inverse quantization matrix V for correcting a difference value between the original discrete cosine inverse transformation matrix Origin_B and the substituted discrete cosine inverse transformation matrix B. .
  • the inverse quantization matrix V may be obtained similarly to the acquisition process of the quantization matrix MF described above.
  • An inverse quantization matrix V may be generated based on PF, which is a matrix S TS T multiplied by each element of the scaling matrix S and the elements of the same position of the transpose matrix S T of the scaling matrix.
  • inverse quantization is obtained by multiplying an element at the same position in the dequantization matrix V with an element at the same position in the quantized NxN transform block by using floor (QP / 6) (floor [x] equal to or less than x.
  • '.V' means a vector product operation of multiplying elements of the same position of the matrix.
  • FIG. 19A-19F illustrate an example of an inverse quantization matrix V used for inverse quantization of a 32x32 block in accordance with one embodiment of the present invention.
  • the inverse quantization matrix (V) as shown in FIGS. 19A-19F is the first six step Qstep values (0.625, 0.6875, 0.8125, without needing to be defined for all quantization steps in the same way as the quantization matrix MF described above). 0.875, 1, 1.25).
  • the quantization unit 130 also applies to the operation structure 820, 920 by the lifting scheme as shown in the right side of Figs. 8 and 9 to the 32 point discrete cosine transform matrix for the conversion of 32x32 block ) may obtain the quantization matrix (MF) using the scaling matrix (S) and the scaling matrix transpose (the product of the elements at the same position T S) (SxS T) and quantization step (Qstep) .
  • 20A to 20F illustrate an example of a quantization matrix MF applied to a transform block transformed based on a discrete cosine transform matrix including an operation structure by a lifting scheme according to another embodiment of the present invention.
  • 21A to 21F are diagrams showing an example of an inverse quantization matrix V applied to a quantized transform block based on a discrete cosine inverse transform matrix including an operation structure by a lifting scheme according to another embodiment of the present invention. .
  • 15 is a flowchart illustrating an image conversion process according to an embodiment of the present invention.
  • the transform unit 120 replaces the discrete cosines substituted by predetermined rational values by substituting values based on trigonometric functions among the elements of the NxN transformation matrix used for the one-dimensional discrete cosine transform of the NxN (N is an integer) block. Obtain the transformation matrix A. As described above, the converting unit 120 replaces the trigonometric values with rational numbers, while simultaneously applying the operation structures 820 and 920 by the lifting scheme as shown on the right side of FIGS. 8 and 9. Cosine transform matrix A may be obtained.
  • the quantization unit 130 uses the substituted discrete cosine transform matrix A and the transposed matrix A T of the substituted discrete cosine transform matrix, and the substituted discrete cosine transform matrix A and the original discrete cosine.
  • a scaling matrix S for compensating for the difference in the result value by the transformation matrix Original_A is obtained.
  • a discrete cosine transform matrix (A) and multiplying the matrix (AA T) of the transpose (A T) of the substituted discrete cosine transform matrix diagonal ( i, i) (i is an inverse of sqrt (AA T (i, i)), which is the square root of an element from 1 to N, i.e. 1 / sqrt (AA T (i, i))
  • a scaling matrix S having elements can be obtained.
  • the transform unit 120 transforms the N ⁇ N block using the discrete cosine transform matrix A.
  • the quantization unit 130 generates the quantization generated using the scaling matrix S and the quantization step.
  • the matrix MF is applied to quantize and scale the transformed NxN block.
  • 22 is a block diagram illustrating an image decoding apparatus according to an embodiment of the present invention.
  • an image decoding apparatus 2200 includes an entropy decoder 2210, an inverse quantizer 2220, an inverse transformer 2230, and a predictor 2240.
  • the entropy decoder 2210 extracts prediction mode information, reference picture information, and residual information of the current block to be decoded from the input bitstream.
  • the residual information corresponds to quantized transform coefficients.
  • the inverse quantization unit 2220 dequantizes the quantized transform coefficients extracted by the entropy decoding unit 2210.
  • the inverse quantization unit 2220 uses the displaced discrete cosine inverse transformation matrix B and the displaced cosine inverse transformation matrix B and the original discrete cosine inverse transform using the transpose matrix B T of the substituted discrete cosine inverse transformation matrix.
  • Inverse quantization of the transformed and quantized N ⁇ N blocks input to the inverse transform unit is performed by using a scaling matrix S and a quantization step to compensate for differences in the result values obtained by the matrix Original_B.
  • the scaling matrix S is a diagonal component of elements of the multiplication matrix BB T of the substituted discrete cosine inverse transformation matrix B and the transpose matrix B T of the substituted discrete cosine inverse transformation matrix B.
  • i is the square root of an element located at (i) (i is an integer from 1 to N), sqrt (BB T (i, i)), 1 / sqrt (BB T (i, i)) It can be a matrix of elements.
  • the inverse quantization unit 2220 is a scaling matrix (S) transposed matrix of each element and the scaling matrix of (S T) equal to the product of each element of the position matrix (SxS T) on the basis of the PF inverse quantization matrix of the (V ) Can be obtained.
  • the inverse transform unit 2230 inversely quantizes a transform coefficient by using a displaced discrete cosine inverse transform matrix B obtained by substituting trigonometric values among elements of the N ⁇ N discrete cosine inverse transform matrix Origin_B with predetermined rational values. Invert them. As a result of the inverse transform, residual values for a block unit are restored.
  • the inverse transform process may be performed using the substituted discrete cosine inverse transform matrix B obtained through various embodiments of the present invention. For example, a discrete cosine inverse transformation matrix B in which some of the arithmetic structures of the N ⁇ N discrete cosine inverse transformation matrix Origin_B is applied by applying a lifting scheme may be used in the inverse transformation process.
  • the prediction unit 2240 generates a prediction value based on the prediction mode information, and adds the prediction value and the residual signal reconstructed by the inverse transformer 2230 to reconstruct an image.
  • FIG. 23 is a flowchart illustrating an image inverse transform method according to an embodiment of the present invention.
  • step 2310 the entropy decoder 2210 parses and outputs a transformed and quantized N ⁇ N (N is integer) block from a bitstream.
  • the inverse transform unit 2230 replaces the discrete cosine inverse transform matrix B by substituting values based on trigonometric functions among the elements of the NxN inverse transform matrix used for the one-dimensional discrete cosine inverse transform of the NxN block with predetermined rational values. Acquire.
  • the inverse quantization unit 2220 uses the displaced discrete cosine inverse transform matrix B and the displaced cosine inverse transform matrix B and the original discrete cosine using the transpose matrix B T of the substituted discrete cosine inverse transform matrix.
  • a scaling matrix S for compensating for the difference in the result value by the inverse transformation matrix Original_B is obtained.
  • the scaling matrix S is a diagonal component of elements of the multiplication matrix BB T of the substituted discrete cosine inverse transformation matrix B and the transpose matrix B T of the substituted discrete cosine inverse transformation matrix B.
  • i is the square root of an element located at (i) (i is an integer from 1 to N), sqrt (BB T (i, i)), 1 / sqrt (BB T (i, i)) It can be a matrix of elements.
  • the inverse quantization unit 2220 dequantizes the N ⁇ N block by using the scaling matrix S and the quantization step.
  • the inverse quantization unit 2220 based on the scaling matrix transpose matrix of the elements of the scaling matrix (S) multiplied by the matrix element at the same position (S T), respectively (T SxS) PF Obtain an inverse quantization matrix (V), multiply the elements in the same position of the inverse quantization matrix (V) by the elements in the same position of the quantized NxN transform block, floor (QP / 6) (floor [x] is greater than x
  • Inverse quantization is performed by left shifting the maximum integer less than or equal to QP, by quantization parameter bits.
  • the inverse transform unit 2230 inversely transforms the inverse quantized N ⁇ N block using the substituted discrete cosine inverse transformation matrix B.
  • FIG. 24 is a flowchart illustrating a process of obtaining an inverse quantization matrix V according to an embodiment of the present invention.
  • the inverse quantization unit 2230 in step 2410 is one of the elements of the multiplication matrix (BB T) of the substituted discrete cosine inverse transformation matrix (B) and substituted transposed matrix of the discrete cosine inverse transformation matrix (B T) the diagonal elements (i, i) to obtain the square root of sqrt (BB T (i, i)) of the element located in the (i is an integer from 1 to N).
  • an inverse quantization unit 2230 is sqrt (BB T (i, i)), the inverse of 1 / sqrt (BB T (i, i)) obtained by the inverse quantization unit 2230, in step 2430 of the A scaling matrix S having 1 / sqrt (BB T (i, i)) as the element of the i-th row is obtained.
  • an inverse quantization unit 2230 on the basis of the element at the same position of the transposed matrix of each element and the scaling matrix of the scaling matrix (S) (S T) for the PF, respectively multiplied by the matrix (T SxS) station Generate a quantization matrix (V).
  • the inverse quantization unit 2230 multiplies an element at the same position of the inverse quantization matrix V by an element at the same position of the quantized N ⁇ N transform block, and floor (QP / 6) (floor [x] is x.
  • FIGS. 25 to 28 show a specific multiplication operation performed in the transform and inverse transform process using the substituted discrete cosine transform matrix A and the substituted discrete cosine inverse transform matrix B. Instead, only a few shift operations and addition and subtraction operations can be reconstructed. 25 and 27 show a multiplication result and a reconstructed operation result on the right side, and FIGS. 26 and 28 show a rounding error due to rounding of the multiplication result and the reconstruction result on the right side. ), But the performance degradation is not significant.
  • the system according to the present invention can be embodied as computer readable codes on a computer readable recording medium.
  • the computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of the recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device and the like.
  • the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Complex Calculations (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

영상의 변환/역변환 방법 및 장치가 개시된다. 본 발명에 따른 영상 변환 방법은 이산 코사인 변환 행렬에 포함된 삼각함수를 유리수로 치환하고, 양자화와 함께 수행되는 스케일링 과정에서 스케일링 행렬을 적용하여 치환된 이산 코사인 변환 행렬에 의한 변환 오차를 최소화한다.

Description

영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치
본 발명은 영상 부호화, 복호화 방법 및 장치에 관한 것으로, 보다 상세히는 큰 크기의 블록에 대한 향상된 변환, 역변환 방법 및 장치에 관한 것이다.
H.264 및 MPEG-4와 비디오 코딩 방식에서, 비디오 신호는 시퀀스, 프레임, 슬라이스, 매크로 블록 및 블록으로 계층적으로 분할되며, 블록은 최소 처리 유닛이 된다. 인코딩 측에서, 인트라-프레임 또는 인터-프레임 예측을 통하여, 블록의 예측 잔여 정보가 획득되며, 블록 변환은 에너지가 소수의 계수에 집중될 수 있도록 실행되고, 양자화, 스캐닝, 런 렝스 코딩(Run Length Coding) 및 엔트로피 코딩을 통하여 이미지 데이터는 압축된다. 디코딩 측에서, 엔트로피 코딩의 블록 변환 계수가 비트 스트림으로부터 추출된다. 그리고 역양자화 및 역변환을 통하여, 블록의 예측 잔여 정보는 재구성되며, 예측 정보는 블록의 비디오 데이터를 재구성하기 위하여 사용된다. 인코딩-디코딩 처리절차에서, 변환 모듈은 비디오 압축의 기초이며, 변환성능은 코덱의 일반적인 성능에 직접적으로 영향을 준다.
이산 코사인 변환(DCT)은 MPEG-1 및 H.261과 같은 초기 비디오 코딩 표준에서 채택되었다. 1974년 이산 코사인 변환의 제안 이후에, DCT는 이미지 및 비디오 코딩 분야에서 널리 사용되었다. DCT는 변환 도메인 내의 이미지 요소의 상관성을 제거하며, 고효율 이미지 압축을 위한 기반을 제공한다. 그러나, DCT 변환 행렬은 부동 소수점 수(floating point number)로 표현되기 때문에, 대량의 부동 소수점 계산으로 인하여 많은 시스템 자원이 소모된다. 변환 효율을 개선하는 한편, 큰 크기의 블록에 대한 변환을 수행하기 위하여 새로운 DCT 변환 알고리즘의 필요성이 증가되었다.
본 발명이 해결하고자 하는 기술적 과제는 연산 복잡도를 감소시키고 연산 속도를 향상시키는 영상 변환/역변환 방법 및 장치를 제공하는 데 있다.
본 발명은 삼각함수값을 유리수로 치환한 변환 행렬을 이용하여 변환을 수행하고, 치환된 변환 행렬에 의한 변환 오차를 보상하기 위한 양자화 과정을 통해 변환 과정의 연산 복잡도를 감소시키면서 효율적인 변환 알고리즘을 제공한다.
본 발명에 따르면 큰 크기의 블록에 대한 변환 및 역변환시에 부동 소수점 연산이 아닌 정수 기반의 연산 과정을 통해서 복잡도를 감소시키고 연산 속도를 증가시키는 영상의 변환 및 역변환 방법을 제공할 수 있다.
또한, 본 발명에 따르면 치환된 이산 코사인 변환을 이용한 결과값과 원래 이산 코사인 변환을 이용한 결과값 사이의 차이값을 양자화 단계에서 보상함으로써 연산 복잡도를 감소시키면서 보다 효율적인 영상의 변환 및 역변환 방법을 제공할 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 2는 본 발명의 일 실시예에 따른 이산 코사인 변환의 흐름도(flow graph)를 도시한다.
도 3a는 도 2의 도면 부호 210을 확대한 도면이며, 도 3b는 도 2의 도면 부호 211을 확대한 도면이다.
도 4는 도 2의 이산 코사인 변환 흐름도 중 도면 부호 212의 흐름도에 따른 연산 과정을 설명하기 위한 참조도이다.
도 5a 및 5b는 본 발명의 다른 실시예에 따른 특정한 각도의 삼각함수를 포함하는 연산 구조를 간략화하는 과정을 설명하기 위한 참조도이다.
도 6은 본 발명의 일 실시예에 따라서 삼각함수값을 유리수로 근사화하는 매핑 테이블의 일 예를 나타낸다.
도 7은 본 발명의 또 다른 실시예에 따른 이산 코사인 변환 과정을 변경하는 과정을 설명하기 위한 참조도이다.
도 8은 본 발명의 또 다른 실시예에 따라서 이산 코사인 변환 과정에 포함된 회전 변환을 변경한 연산 구조를 나타낸 도면이다.
도 9는 본 발명의 또 다른 실시예에 따라서 회전 변환을 변경한 연산 구조를 나타낸 도면이다.
도 10은 본 발명의 또 다른 실시예에 따라서 삼각함수값을 대체하는 유리수값을 나타내는 매핑 테이블을 나타낸다.
도 11a 내지 도 11c는 본 발명의 일 실시예에 따른 이산 코사인 변환 과정을 나타낸 도면이다.
도 12a 내지 도 12c는 본 발명의 일 실시예에 따른 이산 코사인 역변환 과정을 나타낸 도면이다.
도 13a 내지 도 13c는 본 발명의 다른 실시예에 따른 이산 코사인 변환 과정을 나타낸 도면이다.
도 14a 내지 도 14c는 본 발명의 다른 실시예에 따른 이산 코사인 역변환 과정을 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른 영상 변환 과정을 나타낸 플로우 차트이다.
도 16은 본 발명의 일 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 17은 본 발명의 일 실시예에 따른 32x32 블록의 변환값에 적용되는 스케일링 행렬의 일 예이다.
도 18a 내지 도 18f는 본 발명의 일 실시예에 따라서 32x32 블록의 양자화에 이용되는 양자화 행렬(MF)의 예를 도시한다.
도 19a 내지 도 19f는 본 발명의 일 실시예에 따라서 32x32 블록의 역양자화에 이용되는 역양자화 행렬(V)의 일 예를 도시한다.
도 20a 내지 도 20f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 변환 행렬에 기초하여 변환된 변환 블록에 적용되는 양자화 행렬(MF)의 일 예를 나타낸 도면이다.
도 21a 내지 도 21f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 역변환 행렬에 기초하여 양자화된 변환 블록에 적용되는 역양자화 행렬(V)의 일 예를 나타낸 도면이다.
도 22는 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 23은 본 발명의 일 실시예에 따른 영상 역변환 방법을 나타낸 플로우 차트이다.
도 24는 본 발명의 일 실시예에 따라서 역양자화 행렬(V)를 획득하는 과정을 나타내는 플로우 차트이다.
도 25 내지 도 28은 본 발명의 일 실시예에 따라서 곱셈 연산 과정을 대체하기 위한 맵핑 테이블이다.
본 발명의 일 실시예에 따른 영상의 변환 방법은 NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 변환 행렬(A)를 획득하는 단계; 상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계; 상기 치환된 이산 코사인 변환 행렬(A)를 이용하여 상기 NxN 블록을 변환하는 단계; 및 상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 역변환 방법은 변환 및 양자화된 NxN(N은 정수) 블록을 수신하는 단계; 상기 NxN 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 역변환 행렬(B)를 획득하는 단계; 상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계; 상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 NxN 블록을 역양자화하는 단계; 및 상기 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 역양자화된 NxN 블록을 역변환하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상 부호화 장치는 NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 변환 행렬(A)을 이용하여 상기 NxN 블록을 변환하는 변환부; 및 상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 양자화부를 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 영상의 복호화 장치는 변환 및 양자화된 NxN(N은 정수) 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 NxN 블록을 역변환하는 역변환부; 및 상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 역변환부로 입력되는 변환 및 양자화된 NxN 블록을 역양자화하는 역양자화부를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들에 대하여 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치를 도시한다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 영상 부호화 장치(100)는 예측부(110), 감산부(115), 변환부(120), 양자화부(130) 및 엔트로피 부호화부(140)를 포함한다.
예측부(110)는 입력 영상을 소정 크기의 블록들로 분할하고, 분할된 각 블록에 대하여 인터 예측 또는 인트라 예측을 통해 예측 블록을 생성한다. 구체적으로, 예측부(110)는 이전에 부호화된 후 복원된 참조 픽처의 소정 탐색 범위 내에서 현재 블록과 유사한 영역을 가리키는 움직임 벡터를 생성하는 움직임 예측 및 보상 과정을 통해 예측 블록을 생성하는 인터 예측 및 현재 블록에 인접한 주변 블록의 데이터를 이용하여 예측 블록을 생성하는 인트라 예측을 수행한다.
감산부(115)는 현재 블록의 예측 블록과 원 영상 데이터를 감산한 레지듀얼을 생성한다.
변환부(120)는 레지듀얼을 주파수 영역으로 변환한다. 특히, 본 발명의 일 실시예에 따른 변환부(120)는 16x16 이상의 큰 크기의 블록에도 적용될 수 있는 이산 코사인 변환에 이용되는 NxN(N은 정수) 변환 행렬 또는 NxN 블록을 이산 코사인 변환하는 알고리즘, 예를 들어 Loeffler 또는 Chen의 변환 알고리즘에서 이용되는 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환한 치환된 이산 코사인 변환 행렬(A)를 이용하여 입력된 NxN 블록의 신호를 주파수 영역으로 변환하여 변환 계수를 생성한다. 후술되는 바와 같이 본 발명의 일 실시예에 따른 변환부(120)는 이산 코사인 변환에 이용되는 변환 행렬의 연산 과정에 포함된 곱셈 인수 중 삼각함수값들을 유리수 값으로 치환함으로써, 정수 기반의 덧셈 및 뺄셈 연산과 시프트 연산에 의하여 이산 코사인 변환을 수행할 수 있다. 하드웨어 측면에서 곱셈 연산을 시프트 연산으로 대체함으로써, 하드웨어에 가해지는 로드를 감소시킬 수 있으며 연산의 복잡도를 감소시켜 변환 과정과 관련된 연산 속도가 증가된다.
또한, 본 발명의 다른 실시예에 따른 변환부(120)는 이산 코사인 변환 과정에 포함된 회전 변환에 해당하는 연산 과정을 동일한 결과값을 갖으면서 더 작은 곱셈 연산 과정을 포함하도록 변경할 수 있다. 후술되는 바와 같이, NxN 이산 코사인 변환 행렬을 구현하기 위한 흐름도에 포함된 일부 연산 과정은 입력 신호를 소정의 각도만큼 회전시키는 회전 변환에 해당된다. 이러한 회전 변환 과정은 4개의 곱셈 연산과 2개의 덧셈 연산 과정을 포함하는데, 본 발명의 다른 실시예에 따른 변환부(120)는 이러한 회전 변환 과정을 3개의 곱셈 연산과 3개의 덧셈 연산 과정으로 대체하여 변환을 수행할 수 있다. 구체적인 대체 연산 과정은 도 5 내지 도 9를 참조하여 후술한다.
양자화부(130)는 변환된 레지듀얼을 양자화한다. 특히, 본 발명의 일 실시예에 따른 양자화부(130)는 양자화 스텝(Qstep)을 이용한 양자화 과정과 변환부(120)에서 출력되는 변환 계수들의 스케일링 과정을 결합함으로써, 변환부(120)에서 근사화된 이산 코사인 변환 행렬을 이용하여 입력 신호를 변환한 값과 원 이산 코사인 변환 행렬을 이용하여 입력 신호를 변환한 값 사이의 오차를 감소시킨다. 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)의 각 원소의 크기에 기초하여 스케일링 행렬(S)을 생성하고, 스케일링 행렬(S)에 기초하여 스케일링 과정을 포함하는 양자화 행렬(MF)를 생성한다. 후술되는 바와 같이 스케일링 행렬(S)은 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각선에 위치한 원소들의 제곱근의 역수를 원소로 갖는 행렬이다. 양자화부(130)는 이러한 양자화 행렬(MF) 및 양자화 스텝을 변환부(120)에서 출력되는 변환값에 적용하여 스케일링 과정과 양자화 과정을 동시에 수행한다. 구체적인 스케일링 및 양자화 과정에 대해서는 후술한다.
엔트로피 부호화부(140)는 양자화된 영상 데이터에 대하여 가변 길이 부호화를 수행하여 비트스트림을 생성한다.
이하, 본 발명의 일 실시예에 따른 영상 변환 방법에 대하여 구체적으로 설명한다.
도 2는 본 발명의 일 실시예에 따른 이산 코사인 변환의 흐름도(flow graph)를 도시한다. 도 3a는 도 2의 도면 부호 210을 확대한 도면이며, 도 3b는 도 2의 도면 부호 211을 확대한 도면이다.
도 2에 도시된 바와 같은 32 포인트 이산 코사인 변환의 흐름도는 N 포인트이산 코사인 변환 행렬 중 짝수 행(0번째 행, 2번째 행,...)의 성분은 대칭적(symmetric)이고, 홀수 행(1번째 행, 3번째 행,...)의 성분은 반대칭적(anti-symmetric)인 이산 코사인 변환 행렬의 특성을 이용하여, 임의의 16 포인트 이산 코사인 변환 알고리즘으로부터 구현될 수 있다. 유사하게, 도 2에 도시된 바와 같은 32 포인트 이산 코사인 변환 흐름도로부터 64포인트 이산 코사인 변환 흐름도, 128 포인트 이산 코사인 변환 흐름도, 256 포인트 이산 코사인 변환 흐름도를 획득할 수 있다.
도 2, 도 3a 및 도 3b를 참조하면, x0 내지 x31은 이산 코사인 변환의 입력값들, y0 내지 y31은 이산 코사인 변환의 출력값들을 나타낸다. 이산 코사인 역변환시에는 x0 내지 x31은 이산 코사인 역변환의 출력값, y0 내지 y31은 이산 코사인 역변환의 입력값에 해당된다. 이산 코사인 변환시에 데이터 처리 방향은 좌측에서 우측이며, 이산 코사인 역변환시에 데이터 처리 방향은 우측에서 좌측이다. 각 라인 위의 값은 각 라인을 지나는 값에 곱해지는 곱셈 인수를 나타낸다. cθ는 cosθ, sθ는 sinθ를 나타낸다. 라인에 표기된 '-'는 곱셈 인자가 -1인 경우, 즉 라인을 지나는 신호에 -1을 곱하는 것을 의미한다. -1을 곱하는 연산은 곱셈 연산이 아닌 비트 연산으로 구현될 수 있으므로 절대값이 1이 아닌 연산을 곱하는 곱셈 연산에 비하여 연산이 간단하다.
도 4는 도 2의 이산 코사인 변환 흐름도 중 도면 부호 212의 흐름도에 따른 연산 과정을 설명하기 위한 참조도이다.
도 4를 참조하면, 입력 신호를 A1 내지 A4, 출력값을 B1 내지 B4라고 하면, 도 4의 흐름도에 따라 B1 내지 B4는 다음의 수학식들; B1= A1*C(7π/16) + A4*S(7π/16); B2=A2*C(5π/16) + A3*S(5π/16); B3=-A2*S(5π/16)+A3*C(5π/16); B4==A1*S(7π/16)+A4*C(7π/16) 의 연산 과정을 통해 획득될 수 있다. 이와 유사하게, 도 2의 흐름도에 따라서 각 라인을 따라서 입력 신호에 대한 곱셈, 덧셈 및 뺄셈 등의 연산 과정을 수행함으로써 이산 코사인 변환이 수행될 수 있다.
이산 코사인 변환 흐름도(200)에 따른 이산 코사인 변환의 단점은 θ의 값에 따라서 cθ 및 sθ가 무리수(irrational number)가 될 수 있기 때문에 연산 복잡도가 증가할 수 있다는 것이다. 즉, 삼각함수값에 따라서 이산 코사인 변환 과정은 부동 소수점(floating point) 연산을 포함하게 되어 연산 복잡도가 증가될 수 있다. 따라서, 본 발명의 일 실시예에 따른 영상 변환 방법은 이산 코사인 변환에 이용되는 삼각함수값을 유리수 값으로 근사화하여 치환하고, 치환된 이산 코사인 변환 행렬을 이용하여 이산 코사인 변환을 수행하는 한편, 양자화 단계에서 스케일링을 통해 원래의 이산 코사인 변환과 최대한 유사한 결과값을 갖는 변환 방법을 제공한다.
본 발명의 일 실시예에 따르면, 변환부(120)는 원래의 NxN 변환 행렬(Original_A)에 기초한 이산 코사인 변환 알고리즘에 포함된 삼각함수의 값들을 유리수로 치환한다. 특히, 변환부(120)는 삼각함수값을 q/(2^p)(p 및 q는 정수)와 같이 분모가 2의 거듭제곱꼴(power of 2)인 유리수로 치환한다. p는 정확도값(precision value)으로써, p가 증가할수록 보다 세밀한 값의 표현이 가능하므로 삼각함수값을 보다 정확하게 유리수로 근사화할 수 있다. 도 6은 본 발명의 일 실시예에 따라서 삼각함수값을 유리수로 근사화하는 매핑 테이블의 일 예를 나타낸다. 도 6에서는, 정확도값(p)이 8인 경우, 즉 분모가 2^8인 유리수로 삼각함수값을 근사화하는 경우의 매핑 테이블을 나타낸 것이다.
이와 같이 삼각함수값을 분모가 2의 거듭제곱꼴인 유리수로 대체하여 이산 코사인 변환 과정을 수행하는 경우, 분모가 2의 거듭제곱꼴인 유리수를 이용한 연산 과정은 나눗셈 연산 대신에 시프트 연산으로 수행될 수 있으므로 연산 복잡도가 감소한다.
한편, 도 2에 도시된 이산 코사인 변환 흐름도(200)에 포함된 연산 과정들 중 출력값 이전의 특정한 θ을 갖는 연산 과정들은 곱셈 과정이 생략되도록 간략화될 수 있다.
도 5a 및 5b는 본 발명의 다른 실시예에 따른 특정한 각도의 삼각함수를 포함하는 연산 구조를 간략화하는 과정을 설명하기 위한 참조도이다.
도 5a를 참조하면, 도면 부호 510으로 도시된 연산 구조는 도 2의 도면 부호 213, 214, 215, 217, 218에 대응되는 것으로, θ가 π/4 인 경우이다. 도면 부호 510의 흐름도에 기초한 연산 구조는 입력값 [X1,X2]을 π/4 만큼 회전시켜 [Y1, Y2]를 출력하는 회전 변환에 해당하며 다음의 수학식;
Figure PCTKR2012001447-appb-I000001
과 같이 표현될 수 있다. cos(π/4) 및 sin(π/4)는 모두
Figure PCTKR2012001447-appb-I000002
의 값을 가지므로 도면 부호 510의 연산 구조는 도면 부호 520과 같은 연산 구조로 대체될 수 있다. 대체된 연산 구조(520)에 따르면, 출력값에
Figure PCTKR2012001447-appb-I000003
이 곱해지는데,
Figure PCTKR2012001447-appb-I000004
을 곱하는 연산 과정은 후술되는 양자화 과정과 병합되어 수행될 수 있다.
도 5b를 참조하면, 도면 부호 530로 도시된 연산 구조는 도 2의 도면 부호 216에 대응되는 것으로, θ가 -π/4 의 값을 갖는 경우에 해당한다. 도면 부호 530의 연산 구조는 입력값 [X1,X2]을 -π/4 만큼 회전시켜 [Y1, Y2]를 출력하는 회전 변환에 해당하며 다음의 수학식;
Figure PCTKR2012001447-appb-I000005
과 같이 표현될 수 있다. cos(-π/4)는
Figure PCTKR2012001447-appb-I000006
, sin(-π/4)는
Figure PCTKR2012001447-appb-I000007
의 값을 가지므로 도면 부호 530의 연산 구조는 도면 부호 540과 같은 연산 구조로 대체될 수 있다.
Figure PCTKR2012001447-appb-I000008
을 곱하는 연산 과정은 양자화 과정과 병합되어 수행될 수 있다. 따라서, 본 발명의 다른 실시예에 따르면 변환부(120)는 도 2의 흐름도(200)에 포함된 삼각함수값을 유리수로 치환하는 한편, 도면 부호 213, 214, 215, 217, 218의 연산 구조를 도 5a의 도면 부호 520의 연산 구조로 대체하고, 도면 부호 216의 연산 구조를 도 5b의 도면 부호 540의 연산 구조로 대체한 이산 코사인 변환 알고리즘에 따라 변환을 수행할 수 있다.
큰 크기의 블록에 대한 변환 과정에서는 작은 크기의 블록에 대한 변환 과정에 비하여 더 많은 연산 과정을 포함하게 된다. 일반적으로 곱셈 연산은 덧셈, 뺄셈 및 쉬프트 연산에 비하여 연산이 복잡하고 연산 시간 역시 많이 소요되므로 전체적인 연산을 느리게 한다. 따라서, 변환 과정에 필요한 곱셈 연산의 회수를 가능한 줄이는 것이 바람직하다. 본 발명의 또 다른 실시예에 따르면, 변환부(120)는 도 2의 흐름도(200)에 기초한 이산 코사인 변환 과정에 포함된 특정한 구조의 연산 구조(이하 "버터 플라이 연산 구조"라고 함)에 포함된 4개의 곱셈 연산과 2개의 덧셈 연산을 3개의 곱셈 연산과 3개의 덧셈 연산으로 대체한 변경된 버터플라이 연산 구조에 기초하여 변환을 수행할 수 있다.
도 7은 본 발명의 또 다른 실시예에 따른 이산 코사인 변환 과정을 변경하는 과정을 설명하기 위한 참조도이다.
도 7을 참조하면, 좌측에 도시된 바와 같은 연산 구조(710)에 따라서 입력값 X1, X2에 대한 결과값 Y1, Y2를 획득하는 과정은 다음의 수학식과 같다.
Y1=a*X1+b*X2; Y2=b*X1-a*X2
도 7의 좌측에 도시된 연산 구조(710)에서는 결과값 Y1, Y2를 얻기 위해서 총 4번의 곱셈 연산과 2번의 덧셈 또는 뺄셈 연산이 필요하다. 우측에 도시된 변경된 연산 구조(720)의 연산에 의한 입력값 X1, X2에 대한 결과값 Y1, Y2는 다음의 수학식과 같다.
Y1=X1*(a-b)+b*(X1+X2)=a*X1+b*X2;
Y2=b*(X1+X2)-X2*(a+b)=b*X1-a*X2
우측에 도시된 변경된 연산 구조(720)에 의하면, b*(X1+X2)의 계산에서 1번의 곱셈 연산이 수행되고 그 결과값이 Y1과 Y2의 계산에 모두 이용되므로 총 3번의 곱셈 연산과 3번의 덧셈 또는 뺄셈 연산이 필요하다. 따라서, 변경된 연산 구조(720)를 이용하여, 동일한 결과값을 가지면서도 복잡한 곱셈 연산 과정을 줄임으로써 연산 속도를 향상시킬 수 있다. 따라서, 본 발명의 또 다른 실시예에 따른 변환부(120)는 도 7에 도시된 변경된 연산 구조(720)를 도 2의 흐름도(200)에 적용할 수 있다.
한편, 회전 변환 과정은 리프팅 스킴(lifting scheme)을 이용하여 다음의 수학식 1과 같이 변경될 수 있다.
수학식 1
Figure PCTKR2012001447-appb-M000001
수학식 1에서, p=(cos α-1)/sin α, u= sin α이다.
도 8은 본 발명의 또 다른 실시예에 따라서 이산 코사인 변환 과정에 포함된 회전 변환을 변경한 연산 구조를 나타낸 도면이다. 도 9는 본 발명의 또 다른 실시예에 따라서 변환에 이용되는 회전 변환을 변경한 연산 구조를 나타낸 도면이다.
도 8을 참조하면, 좌측에 도시된 회전 변환 연산 구조(810)은 수학식 1에 기초하여 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820)로 변경될 수 있다. 리프팅 스킴에 의한 연산 구조(820)는 회전 변환 연산 구조(810)과 동일한 결과값을 출력한다. 회전 변환 연산 구조(810)은 4번의 곱셈 연산과 2번의 덧셈(또는 뺄셈) 연산이 필요한데 반하여, 리프팅 스킴에 의한 연산 구조(820)은 3번의 곱셈 연산과 3번의 덧셈(또는 뺄셈) 연산이 필요하다. 따라서, 리프팅 스킴에 의한 연산 구조(820)를 이용하는 경우 회전 변환 연산 구조(810)와 동일한 결과값을 가지면서도 곱셈의 연산 횟수를 줄임으로써 연산 속도를 향상시킬 수 있다. 리프링 스킴에 의한 연산 구조(820)에서 cos α 또는 1/cos α의 곱셈 인자들(825)을 출력값에 곱하는 과정은 변환 과정에 포함되지 않고 양자화 과정에서 적용되는 스케일링 팩터에 곱셈 인자들(825)을 곱함으로써 수행될 수 있다. 본 발명의 또 다른 실시예에 따른 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 213, 214, 215, 217, 218의 연산 구조를 도 8에 도시된 리프팅 스킴에 의한 연산 구조로 대체하고, 대체된 이산 코사인 변환 알고리즘에 따라 변환을 수행할 수 있다. 만약, α > π/4 인 경우, tan α >1 이므로 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 213, 214, 215, 217, 218의 연산 구조를 도 9에 도시된 리프팅 스킴에 의한 연산 구조(920)로 대체하고, 대체된 이산 코사인 변환 알고리즘에 따라 변환을 수행할 수 있다. 즉, 변환부(120)은 α 의 절대값이 π/4 보다 큰 경우 tan α의 절대값도 1보다 커지므로, 도 2의 흐름도(200)에 포함된 도면 부호 213, 214, 215, 217, 218의 연산 구조 대신에 도 9의 리프팅 스킴에 의한 연산 구조(920)을 이용할 수 있다.
전술한 도 8과 유사하게 도 9의 리프링 스킴에 의한 연산 구조(920)에서 sin α 또는 1/sin α의 곱셈 인자들(925)을 출력값에 곱하는 과정은 변환 과정에 포함되지 않고 양자화 과정에서 적용되는 스케일링 팩터에 곱셈 인자들(925)를 곱함으로써 수행될 수 있다.
한편, 도 2의 흐름도(200)에 포함된 도면 부호 216의 연산 구조 역시 도 8 및 도 9에 도시된 리프팅 스킴에 의한 연산 구조(820,920)를 이용하여 대체될 수 있다. 구체적으로, 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 216의 연산 구조 대신에 도 8의 리프팅 스킴에 의한 연산 구조(820)을 이용할 수 있으며, 이 때 α 대신 (-α)의 값을 대입하여 연산을 수행한다. 만약, α의 절대값이 π/4 보다 큰 경우, tan α의 절대값도 1보다 커지므로, 변환부(120)는 도 2의 흐름도(200)에 포함된 도면 부호 216의 연산 구조 대신에 도 9의 리프팅 스킴에 의한 연산 구조(920)을 이용할 수 있다. 이 경우, α 대신 (-α)의 값을 대입하여 연산을 수행한다.
한편, 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 도 2의 흐름도(200)에 적용하는 경우, 변환부(120)는 도 10에 도시된 바와 같이 이산 코사인 변환 과정에 필요한 삼각함수값을 우측 컬럼에 표기된 바와 같은 근사화된 유리수로 대체하여 이산 코사인 변환을 수행할 수 있다.
전술한 본 발명의 일 실시예에 따라서, 치환된 이산 코사인 변환 행렬(A)을 이용하여 32 포인트 이산 코사인 변환 과정을 수행하는 단계는 도 11a 내지 도 11c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 11a 내지 도 11c에서, X0 내지 X31은 변환되어야 할 입력값, Y0 내지 Y31은 변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
전술한 치환된 이산 코사인 변환 행렬(A)을 획득하는 과정과 유사하게, 이산 코사인 변환 행렬(Origin_A)의 역행렬인 이산 코사인 역변환 행렬(Origin_B)에 포함된 삼각함수의 값을 분모가 2의 거듭제곱꼴인 유리수로 치환하고, 치환된 이산 코사인 역변환 행렬(B)을 이용하여 이산 코사인 역변환이 수행될 수 있다. 치환된 이산 코사인 역변환 행렬(B)을 이용하여 32 포인트 이산 코사인 역변환 과정을 수행하는 단계는 도 12a 내지 도 12c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 12a 내지 도 12c에서, Y0 내지 Y31은 역변환되어야 할 입력값, X0 내지 X31은 역변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
전술한 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 도 2의 흐름도(200)에 적용하여 32 포인트 이산 코사인 변환 과정을 수행하는 단계는 도 13a 내지 도 13c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 13a 내지 도 13c에서, X0 내지 X31은 변환되어야 할 입력값, Y0 내지 Y31은 변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
리프팅 스킴에 의한 연산 구조(820, 920)를 도 2의 흐름도(200)에 적용한 32 포인트 이산 코사인 변환 과정의 역과정인 32 포인트 이산 코사인 역변환 과정을 수행하는 단계는 도 14a 내지 도 14c에 도시된 바와 같이 7 단계의 덧셈, 뺄셈 및 시프트 연산 과정을 통해 수행될 수 있다. 도 14a 내지 도 14c에서, Y0 내지 Y31은 역변환되어야 할 입력값, X0 내지 X31은 역변환된 값, 나머지 A0 내지 A31, B0 내지 B31, C0 내지 C31, D0 내지 D31, E0 내지 E31, Z0 내지 Z31은 중간값을 나타낸다.
전술한 바와 같이, 변환부(120)에서 이산 코사인 변환 행렬에 포함된 삼각함수를 유리수로 치환하거나, 곱셈연산의 횟수를 감소시키는 연산 구조로 대체하는 경우, 이산 코사인 변환 알고리즘이 변경되므로 원 이산 코사인 변환 알고리즘에 따른 결과값과의 차이가 발생할 수 있다. 따라서, 본 발명의 일 실시예에 따른 양자화부(130)는 양자화와 함께 수행되는 스케일링 과정에서 스케일링 행렬을 적용하여 이러한 치환된 이산 코사인 변환 알고리즘을 이용함으로써 발생되는 변환 오차를 최소화한다.
도 16은 본 발명의 일 실시예에 따른 양자화 과정을 나타낸 플로우 차트이다.
도 1 및 도 16을 참조하면, 단계 1610에서 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각선 상에 위치한 (i,i)(i는 1부터 N까지의 정수)의 원소의 제곱근인 sqrt(AAT(i,i))를 획득한다.
단계 1620에서, 양자화부(130)는 sqrt(AAT(i,i))의 역수, 즉 1/sqrt(AAT(i,i))을 획득한다.
단계 1630에서, 양자화부(130)는 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 스케일링 행렬(S)를 획득한다. 도 17은 본 발명의 일 실시예에 따른 32x32 블록의 변환값에 적용되는 스케일링 행렬의 일 예이다. 도 17을 참조하면, 1/sqrt(AAT(i,i))을 s(i)라고 할 때, 양자화부(130)는 i번째 행의 모든 원소를 s(i)로 갖는 스케일링 행렬 S(1700)을 생성한다.
단계 1640에서, 양자화부(130)는 스케일링 행렬(S)의 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 값(SⓧST)과, 양자화 스텝(Qstep)을 이용하여 양자화 행렬(MF)를 획득한다. ⓧ는 원소 단위 곱셈(element-by-element multiplication, element-wise multiplication) 연산을 나타내는 것으로, 행렬의 동일 위치의 원소를 곱하는 연산을 나타낸다.
구체적으로, 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 곱한 행렬(SⓧST)을 PF라고 하면, 양자화 행렬(MF)은 다음의 수학식; MF=PF*2^m/Qstep 를 통해 획득될 수 있다. 여기서, Qstep은 양자화 스텝, m은 양의 정수이다. 일 예로 m=10 일 수 있다.
단계 1650에서, 양자화부(130)는 양자화 행렬(MF)을 적용하여 NxN 변환 블록에 대한 스케일링 및 양자화를 수행한다. 구체적으로 양자화부(130)는 양자화 행렬(MF)의 동일 위치의 원소와 NxN 변환 블록의 동일 위치의 원소를 곱한 값에 소정의 오프셋을 더한 값을 다음의 수학식; q=floor(QP/6)+m (QP는 양자화 파라메터) 의 q 비트만큼 비트 시프트 연산함으로써 양자화된 변환 계수의 크기를 결정한다. 즉, Zij를 양자화된 변환 계수값, Wij를 변환부(120)에서 출력되는 변환 계수, f를 오프셋이라고 하면, 다음의 수학식;
Figure PCTKR2012001447-appb-I000009
에 따라서 양자화된 변환 계수의 크기를 결정한다. 양자화된 변환 계수의 부호는 다음의 수학식;
Figure PCTKR2012001447-appb-I000010
에 따라서 결정된다. 여기서, '.MF'는 행렬의 동일 위치의 원소를 곱하는 벡터곱 연산을 의미한다. 전술한 바와 같이, 벡터곱 연산은 ⓧ와 같이 표현될 수도 있다. 단계 1650에 의한 양자화 과정에서, 양자화 행렬(MF)의 동일 위치의 원소와 NxN 변환 블록의 동일 위치의 원소를 곱하는 과정은 스케일링 과정에 해당하며, q 비트만큼 라이트 쉬프트 연산을 수행하는 과정은 양자화 과정에 해당된다. 즉, 본 발명의 일 실시예에 따르면 치환된 이산 코사인 변환 행렬(A)에 의한 변환 오차를 보상하는 스케일링 과정을 양자화 과정과 결합하여 수행하게 된다.
도 18a 내지 도 18f는 본 발명의 일 실시예에 따라서 32x32 블록의 양자화에 이용되는 양자화 행렬(MF)의 예를 도시한다. 특히, 도 18a 내지 도 18f에서는 m=10인 경우의 양자화 행렬(MF)을 도시한다.
도 18a 내지 도 18f에 도시된 바와 같은 양자화 행렬(MF)은 모든 양자화 스텝에 대하여 정의될 필요없이 처음의 6단계의 Qstep 값인 (0.625, 0.6875, 0.8125, 0.875, 1, 1.25)에 대해서 정의된다. 왜냐하면 양자화 파라메터(QP)가 6 증가하면 양자화 스텝(Qstep)이 2배로 증가하기 때문에, 양자화 행렬(MF)는 처음의 6단계의 Qstep 값에 대해서 정의되고, 나머지 QP에 따른 양자화 행렬(MF)는 (QP mod 6) 값에 따라서 선택될 수 있다.
한편, 역양자화 단계에서, 원래의 이산 코사인 역변환 행렬(Origin_B)와 치환된 이산 코사인 역변환 행렬(B) 사이의 차이값을 보정하기 위한 역양자화 행렬(V)을 적용하여 역양자화가 수행될 수 있다.
본 발명의 일 실시예에 따르면, 역양자화 행렬(V)은 전술한 양자화 행렬(MF)의 획득 과정과 유사하게 획득될 수 있다. 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 스케일링 행렬(S)이 획득되고, 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)가 생성될 수 있다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n (n은 정수)을 통해 획득된다. 일 예로, n=10 일 수 있다.
구체적으로, 역양자화는 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 수행될 수 있다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다. 전술한 바와 같이, '.V'는 행렬의 동일 위치의 원소를 곱하는 벡터곱 연산을 의미한다.
도 19a 내지 도 19f는 본 발명의 일 실시예에 따라서 32x32 블록의 역양자화에 이용되는 역양자화 행렬(V)의 일 예를 도시한다. 특히, 도 19a 내지 도 19f에서는 m=10인 경우의 역양자화 행렬(V)을 도시한다.
도 19a 내지 도 19f에 도시된 바와 같은 역양자화 행렬(V)은 전술한 양자화 행렬(MF)와 동일하게 모든 양자화 스텝에 대하여 정의될 필요없이 처음의 6단계의 Qstep 값인 (0.625, 0.6875, 0.8125, 0.875, 1, 1.25)에 대해서 정의된다.
한편, 전술한 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 32x32 블록의 변환을 위한 32 포인트 이산 코사인 변환 행렬에 적용하는 경우에도, 양자화부(130)는 스케일링 행렬(S)과 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 곱한 값(SⓧST)과 양자화 스텝(Qstep)을 이용하여 양자화 행렬(MF)를 획득할 수 있다. 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 곱한 행렬(SⓧST)을 PF라고 하면, 양자화 행렬(MF)은 다음의 수학식; MF=PF*2^m/Qstep 를 통해 획득될 수 있다. 도 20a 내지 도 20f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 변환 행렬에 기초하여 변환된 변환 블록에 적용되는 양자화 행렬(MF)의 일 예를 나타낸 도면이다.
또한, 전술한 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 32x32 블록의 역변환을 위한 32 포인트 이산 코사인 역변환 행렬에 적용하는 경우, 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)가 생성될 수 있다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n/256 (n은 정수)을 통해 획득될 수 있다. 전술한 수학식에서 '1/256'는 치환된 이산 코사인 변환 행렬(A) 및 치환된 이산 코사인 역변환 행렬(B)에 의한 B*(A*AT)*BT의 크기(norm)에 기초하여 결정된 값이다. 도 21a 내지 도 21f는 본 발명의 다른 실시예에 따라서 리프팅 스킴에 의한 연산 구조를 포함하는 이산 코사인 역변환 행렬에 기초하여 양자화된 변환 블록에 적용되는 역양자화 행렬(V)의 일 예를 나타낸 도면이다.
도 15는 본 발명의 일 실시예에 따른 영상 변환 과정을 나타낸 플로우 차트이다.
단계 1510에서, 변환부(120)는 NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 변환 행렬(A)를 획득한다. 전술한 바와 같이, 변환부(120)는 삼각함수값을 유리수로 치환하면서, 도 8 및 도 9의 우측에 도시된 바와 같은 리프팅 스킴에 의한 연산 구조(820, 920)를 동시에 적용하여 치환된 이산 코사인 변환 행렬(A)을 획득할 수도 있다.
단계 1520에서, 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득한다. 전술한 바와 같이, 양자화부(130)는 치환된 이산 코사인 변환 행렬(A)과 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각선 상에 위치한 (i,i)(i는 1부터 N까지의 정수)의 원소의 제곱근인 sqrt(AAT(i,i))의 역수, 즉 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 스케일링 행렬(S)를 획득할 수 있다
단계 1530에서, 변환부(120)는 이산 코사인 변환 행렬(A)를 이용하여 NxN 블록을 변환하고, 단계 1540에서, 양자화부(130)는 스케일링 행렬(S) 및 양자화 스텝을 이용하여 생성된 양자화 행렬(MF)를 적용하여 변환된 NxN 블록을 양자화 및 스케일링한다.
도 22는 본 발명의 일 실시예에 따른 영상 복호화 장치를 나타낸 블록도이다.
도 22를 참조하면, 본 발명의 일 실시예에 따른 영상 복호화 장치(2200)는 엔트로피 복호화부(2210), 역양자화부(2220), 역변환부(2230) 및 예측부(2240)를 포함한다.
엔트로피 복호화부(2210)는 입력 비트스트림으로부터 복호화되는 현재 블록의 예측 모드 정보, 참조 픽처 정보 및 레지듀얼 정보를 추출한다. 레지듀얼 정보는 양자화된 변환 계수에 해당된다.
역양자화부(2220)는 엔트로피복호화부(2210)에서 추출된 양자화된 변환 계수들을 역양자화한다. 구체적으로, 역양자화부(2220)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 역변환부로 입력되는 변환 및 양자화된 NxN 블록을 역양자화한다. 전술한 바와 같이, 스케일링 행렬(S)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬일 수 있다. 역양자화부(2220)는 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)를 획득할 수 있다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n (n은 정수)을 통해 획득된다.
역양자화 행렬(V)이 결정되면, 역양자화부(2220)는 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 역양자화를 수행한다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 양자화부(2220)는 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
역변환부(2230)는 NxN 이산 코사인 역변환 행렬(Origin_B)의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 역양자화된 변환 계수들을 역변환한다. 역변환 결과, 블록 단위에 대한 레지듀얼 값들이 복원된다. 역변환 과정은 본 발명의 다양한 실시예를 통해서 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 수행될 수 있다. 예를 들어 NxN 이산 코사인 역변환 행렬(Origin_B)의 일부 연산 구조를 리프팅 스킴을 적용하여 대체한 이산 코사인 역변환 행렬(B)이 역변환 과정에 이용될 수 있다.
예측부(2240)는 예측 모드 정보에 기초하여 예측값을 생성하고, 예측값과 역변환부(2230)에서 복원된 레지듀얼 신호가 가산되어 영상이 복원된다.
도 23은 본 발명의 일 실시예에 따른 영상 역변환 방법을 나타낸 플로우 차트이다.
도 23을 참조하면, 단계 2310에서 엔트로피 복호화부(2210)는 변환 및 양자화된 NxN(N은 정수) 블록을 비트스트림으로부터 파싱하여 출력한다.
단계 2320에서, 역변환부(2230)는 NxN 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 역변환 행렬(B)를 획득한다.
단계 2330에서, 역양자화부(2220)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득한다. 전술한 바와 같이, 스케일링 행렬(S)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬일 수 있다.
단계 2340에서, 역양자화부(2220)는 스케일링 행렬(S) 및 양자화 스텝을 이용하여 NxN 블록을 역양자화한다. 전술한 바와 같이, 역양자화부(2220)는 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)를 획득하고, 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 역양자화를 수행한다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 양자화부(2220)는 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
단계 2350에서, 역변환부(2230)는 치환된 이산 코사인 역변환 행렬(B)를 이용하여 역양자화된 NxN 블록을 역변환한다.
도 24는 본 발명의 일 실시예에 따라서 역양자화 행렬(V)를 획득하는 과정을 나타내는 플로우 차트이다.
도 24를 참조하면, 단계 2410에서 역양자화부(2230)는 치환된 이산 코사인 역변환 행렬(B)과 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근인 sqrt(BBT(i,i))를 획득한다.
단계 2420에서, 역양자화부(2230)는 sqrt(BBT(i,i))의 역수인 1/sqrt(BBT(i,i))을 획득하고, 단계 2430에서 역양자화부(2230)는 1/sqrt(BBT(i,i))을 i번째 행의 원소로 갖는 스케일링 행렬(S)를 획득한다.
단계 2440에서, 역양자화부(2230)는 스케일링 행렬(S)의 각 원소와 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소를 각각 곱한 행렬(SⓧST)인 PF에 기초하여 역양자화 행렬(V)을 생성한다. 구체적으로, 역양자화 행렬(V)은 다음의 수학식; V=Qstep*PF*2^n (n은 정수)을 통해 획득될 수 있다.
단계 2450에서, 역양자화부(2230)는 역양자화 행렬(V)의 동일 위치의 원소와 양자화된 NxN 변환 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 레프트 시프트함으로써 스케일링 및 역양자화를 수행한다. 즉, Zij를 양자화된 변환 계수, Wij를 역양자화된 변환 계수라고 하면 다음의 수학식; Wij=(Zij.V)<<floor(QP/6)을 통해 양자화된 계수 Zij를 역양자화한 Wij를 획득할 수 있다.
한편, 치환된 이산 코사인 변환 행렬(A) 및 치환된 이산 코사인 역변환 행렬(B)를 이용한 변환 및 역변환 과정에서 수행되는 특정한 곱셈 연산은 도 25 내지 도 28에 도시된 맵핑 테이블에 기초하여 곱셈 연산 과정 대신에 몇 개의 시프트 연산과 덧셈 및 뺄셈 연산만으로 재구성될 수 있다. 도 25 및 도 27은 곱셈 연산 결과값과 우측의 재구성된 연산 결과가 동일한 결과값을 갖으며, 도 26 및 도 28은 곱셈 연산 결과값과 우측의 재구성된 연산 결과가 반올림에 의한 에러(rounding error)를 갖지만 성능의 저하는 크지 않다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명이 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이와 균등하거나 또는 등가적인 변형 모두는 본 발명 사상의 범주에 속한다 할 것이다. 또한, 본 발명에 따른 시스템은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.

Claims (15)

  1. 영상의 변환 방법에 있어서,
    NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 변환 행렬(A)를 획득하는 단계;
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계;
    상기 치환된 이산 코사인 변환 행렬(A)를 이용하여 상기 NxN 블록을 변환하는 단계; 및
    상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 단계를 포함하는 것을 특징으로 하는 영상 변환 방법.
  2. 제 1항에 있어서,
    상기 치환된 이산 코사인 변환 행렬(A)를 획득하는 단계는
    상기 삼각함수에 기초한 값들을 분모가 2의 거듭 제곱꼴인 유리수로 치환하는 것을 특징으로 하는 영상 변환 방법.
  3. 제 1항에 있어서,
    상기 스케일링 행렬(S)은
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)의 곱셈 행렬(AAT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(AAT(i,i))라고 할 때, 1/sqrt(AAT(i,i))을 i번째 행의 원소들로 갖는 행렬인 것을 특징으로 하는 영상 변환 방법.
  4. 제 1항에 있어서,
    상기 변환하는 단계는
    상기 치환된 이산 코사인 변환 행렬(A)을 이용한 변환 과정에 포함된 곱셈 연산을 쉬프트 연산, 덧셈 연산 및 뺄셈 연산으로 대체한 대체 연산을 이용하는 것을 특징으로 하는 영상 변환 방법.
  5. 제 1항에 있어서,
    상기 양자화하는 단계는
    상기 양자화 스텝을 Qstep, 상기 스케일링 행렬(S)의 원소들과 상기 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬을 PF, m은 양의 정수라고 할 때, 다음의 수학식; MF=PF*2^m/Qstep 을 통해 획득된 스케일링이 결합된 양자화 행렬(MF)를 획득하는 단계; 및
    상기 양자화 행렬(MF)를 이용하여 상기 변환된 NxN 블록에 대한 양자화를 수행하는 단계를 포함하는 것을 특징으로 하는 영상 변환 방법.
  6. 제 5항에 있어서,
    상기 양자화를 수행하는 단계는
    상기 양자화 행렬(MF)와 상기 변환된 NxN 블록의 동일 위치의 원소를 곱한 값에 소정의 오프셋을 더한 값을, 다음의 수학식; q=floor(QP/6)+m (m은 정수, floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터)에 따른 q 비트만큼 비트 시프트 연산함으로써 수행되는 것을 특징으로 하는 영상 변환 방법.
  7. 영상의 역변환 방법에 있어서,
    변환 및 양자화된 NxN(N은 정수) 블록을 수신하는 단계;
    상기 NxN 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 치환된 이산 코사인 역변환 행렬(B)를 획득하는 단계;
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)을 획득하는 단계;
    상기 스케일링 행렬(S) 및 양자화 스텝을 이용하여 상기 NxN 블록을 역양자화하는 단계; 및
    상기 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 역양자화된 NxN 블록을 역변환하는 단계를 포함하는 것을 특징으로 하는 영상 역변환 방법.
  8. 제 7항에 있어서,
    상기 치환된 이산 코사인 역변환 행렬(B)를 획득하는 단계는
    상기 삼각함수에 기초한 값들을 분모가 2의 거듭 제곱꼴인 유리수로 치환하는 것을 특징으로 하는 영상 역변환 방법.
  9. 제 7항에 있어서,
    상기 스케일링 행렬(S)은
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)의 곱셈 행렬(BBT)의 원소들 중 대각 성분인 (i,i)(i는 1부터 N까지의 정수)에 위치한 원소의 제곱근을 sqrt(BBT(i,i))라고 할 때, 1/sqrt(BBT(i,i))을 i번째 행의 원소들로 갖는 행렬인 것을 특징으로 하는 영상 역변환 방법.
  10. 제 7항에 있어서,
    상기 역변환하는 단계는
    상기 치환된 이산 코사인 역변환 행렬(B)을 이용한 변환 과정에 포함된 곱셈 연산을 쉬프트 연산, 덧셈 연산 및 뺄셈 연산으로 대체한 대체 연산을 이용하는 것을 특징으로 하는 영상 역변환 방법.
  11. 제 7항에 있어서,
    상기 역양자화하는 단계는
    상기 양자화 스텝을 Qstep, 상기 스케일링 행렬(S)의 원소들과 상기 스케일링 행렬의 전치 행렬(ST)의 동일 위치의 원소들을 각각 곱한 행렬을 PF, n은 양의 정수라고 할 때, 다음의 수학식; V=Qstep*PF*2^n 을 통해 획득된 스케일링이 결합된 역양자화 행렬(V)를 획득하는 단계; 및
    상기 역양자화 행렬(V)를 이용하여 상기 NxN 블록에 대한 역양자화를 수행하는 단계를 포함하는 것을 특징으로 하는 영상 역변환 방법.
  12. 제 11항에 있어서,
    상기 역양자화를 수행하는 단계는
    상기 역양자화 행렬(V)와 상기 NxN 블록의 동일 위치의 원소를 곱한 값을 floor(QP/6)(floor[x]는 x보다 작거나 같은 최대 정수, QP는 양자화 파라메터) 비트만큼 비트 시프트 연산을 함으로써 수행되는 것을 특징으로 하는 영상 역변환 방법.
  13. 영상 부호화 장치에 있어서,
    NxN(N은 정수) 블록의 1차원 이산 코사인 변환에 이용되는 NxN 변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 변환 행렬(A)을 이용하여 상기 NxN 블록을 변환하는 변환부; 및
    상기 치환된 이산 코사인 변환 행렬(A)과 상기 치환된 이산 코사인 변환 행렬의 전치 행렬(AT)를 이용하여, 상기 치환된 이산 코사인 변환 행렬(A)과 원 이산 코사인 변환 행렬(Original_A)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 변환된 NxN 블록을 양자화하는 양자화부를 포함하는 것을 특징으로 하는 영상 부호화 장치.
  14. 영상의 복호화 장치에 있어서,
    변환 및 양자화된 NxN(N은 정수) 블록의 1차원 이산 코사인 역변환에 이용되는 NxN 역변환 행렬의 원소들 중 삼각함수에 기초한 값들을 소정의 유리수 값들로 치환하여 획득된 치환된 이산 코사인 역변환 행렬(B)를 이용하여 상기 NxN 블록을 역변환하는 역변환부; 및
    상기 치환된 이산 코사인 역변환 행렬(B)과 상기 치환된 이산 코사인 역변환 행렬의 전치 행렬(BT)를 이용하여 상기 치환된 이산 코사인 역변환 행렬(B)과 원 이산 코사인 역변환 행렬(Original_B)에 의한 결과값의 차이를 보상하기 위한 스케일링 행렬(S)과 양자화 스텝을 이용하여 상기 역변환부로 입력되는 변환 및 양자화된 NxN 블록을 역양자화하는 역양자화부를 포함하는 것을 특징으로 하는 영상 복호화 장치.
  15. 제 1항의 영상 변환 방법을 구현하기 위한 프로그램 코드가 기록된 컴퓨터로 판독 가능한 기록 매체.
PCT/KR2012/001447 2011-02-25 2012-02-24 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치 WO2012115487A2 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US14/001,567 US20140010284A1 (en) 2011-02-25 2012-02-24 Image transform and inverse transform method, and image encoding and decoding device using same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161446656P 2011-02-25 2011-02-25
US61/446,656 2011-02-25

Publications (2)

Publication Number Publication Date
WO2012115487A2 true WO2012115487A2 (ko) 2012-08-30
WO2012115487A3 WO2012115487A3 (ko) 2012-12-13

Family

ID=46721367

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2012/001447 WO2012115487A2 (ko) 2011-02-25 2012-02-24 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치

Country Status (3)

Country Link
US (1) US20140010284A1 (ko)
KR (1) KR20120098500A (ko)
WO (1) WO2012115487A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3432583B1 (en) * 2012-02-29 2020-04-01 Sony Corporation Image processing device and method
US20210195241A1 (en) * 2016-02-01 2021-06-24 Lg Electronics Inc. Method and device for performing transform using row-column transforms
WO2018143687A1 (ko) * 2017-02-01 2018-08-09 엘지전자(주) 행-열 변환을 이용하여 변환을 수행하는 방법 및 장치
CN109309835A (zh) * 2017-07-26 2019-02-05 苏州智语新视信息科技有限公司 一种图像压缩方法及装置
WO2019079093A1 (en) 2017-10-19 2019-04-25 Interdigital Vc Holdings, Inc. METHOD AND DEVICE FOR PREDICTIVE CODING / DECODING OF A POINT CLOUD
EP3474232A1 (en) * 2017-10-19 2019-04-24 Thomson Licensing A method and device for encoding and decoding a rotation 2d/3d matrix
EP4376412A3 (en) * 2017-12-15 2024-07-17 LG Electronics Inc. Image coding method on basis of transformation and device therefor
US10812797B2 (en) * 2018-02-05 2020-10-20 Tencent America LLC Method, apparatus and medium for decoding or encoding using a low-complexity transform
US10462486B1 (en) * 2018-05-07 2019-10-29 Tencent America, Llc Fast method for implementing discrete sine transform type VII (DST 7)
WO2020046085A1 (ko) * 2018-09-02 2020-03-05 엘지전자 주식회사 영상 신호를 처리하기 위한 방법 및 장치
JP2020098986A (ja) * 2018-12-17 2020-06-25 キヤノン株式会社 画像符号化装置及び画像復号装置及びそれらの制御方法及びプログラム
US12095993B2 (en) 2019-03-10 2024-09-17 Hfi Innovation Inc. Method and apparatus of the quantization matrix computation and representation for video coding
US11403783B2 (en) 2019-11-14 2022-08-02 Alibaba Group Holding Limited Techniques to dynamically gate encoded image components for artificial intelligence tasks
US20210152832A1 (en) * 2019-11-14 2021-05-20 Alibaba Group Holding Limited Reconstructing transformed domain information in encoded video streams
US11170260B2 (en) 2019-11-14 2021-11-09 Alibaba Group Holding Limited Techniques for determining importance of encoded image components for artificial intelligence tasks
US11366979B2 (en) 2019-11-14 2022-06-21 Alibaba Group Holding Limited Using selected components of frequency domain image data in artificial intelligence tasks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060112256A (ko) * 2001-09-18 2006-10-31 마이크로소프트 코포레이션 이미지 및 비디오 코딩을 위한 향상된 블록 변환 및 양자화
WO2010085125A2 (ko) * 2009-01-22 2010-07-29 삼성전자 주식회사 영상의 변환 방법 및 장치, 역변환 방법 및 장치

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872866A (en) * 1995-04-18 1999-02-16 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by predetermination of IDCT results based on image characteristics
US6002801A (en) * 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
US7185037B2 (en) * 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
US7082450B2 (en) * 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US7548727B2 (en) * 2005-10-26 2009-06-16 Broadcom Corporation Method and system for an efficient implementation of the Bluetooth® subband codec (SBC)
US8699810B2 (en) * 2006-06-26 2014-04-15 Qualcomm Incorporated Efficient fixed-point approximations of forward and inverse discrete cosine transforms

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060112256A (ko) * 2001-09-18 2006-10-31 마이크로소프트 코포레이션 이미지 및 비디오 코딩을 위한 향상된 블록 변환 및 양자화
WO2010085125A2 (ko) * 2009-01-22 2010-07-29 삼성전자 주식회사 영상의 변환 방법 및 장치, 역변환 방법 및 장치

Also Published As

Publication number Publication date
WO2012115487A3 (ko) 2012-12-13
KR20120098500A (ko) 2012-09-05
US20140010284A1 (en) 2014-01-09

Similar Documents

Publication Publication Date Title
WO2012115487A2 (ko) 영상의 변환 및 역변환 방법, 및 이를 이용한 영상의 부호화 및 복호화 장치
WO2012115486A2 (ko) 영상의 변환 방법 및 장치, 및 영상의 역변환 방법 및 장치
KR100965704B1 (ko) 이미지 및 비디오 코딩을 위한 2d 변환
WO2011142645A2 (en) Method and apparatus for encoding video signal and method and apparatus for decoding video signal
KR100811986B1 (ko) 양자화 및 역양자화 방법
KR100746011B1 (ko) 잔차 예측의 성능 개선 방법, 상기 방법을 이용한 비디오인코더 및 비디오 디코더
JP4012274B2 (ja) 輪郭線映像信号符号化方法及びその装置
KR101153105B1 (ko) 고속 비디오 코덱 변환의 구현
KR100703778B1 (ko) 고속 fgs를 지원하는 비디오 코딩 방법 및 장치
WO2012026783A2 (en) Method and apparatus for a video codec with low complexity encoding
KR101480412B1 (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
JP2008539646A (ja) 高速fgsを提供するビデオコーディング方法及び装置
EP1538842A2 (en) SAD calculator
KR0169657B1 (ko) 동영상 부호화기
KR20120139611A (ko) 영상의 변환 방법 및 장치, 역변환 방법 및 장치
KR101786921B1 (ko) 고속 움직임 추정을 위한 장치 및 방법
KR101786957B1 (ko) 고속 움직임 추정을 위한 장치 및 방법
KR100192784B1 (ko) 영상 부호화기
KR0169655B1 (ko) 동영상 부호화기
KR0130167B1 (ko) 동영상 압축 부호화 장치
KR0169653B1 (ko) 동영상 부호화기
JP3543151B2 (ja) データ圧縮方法及びデータ圧縮装置
Irfan et al. FPGA based implementation of MPEG-2 compression algorithm
JPH08265779A (ja) 映像信号符号化/復号化装置及びその方法
JPH11285008A (ja) 画像符号化方法及び画像符号化装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12749316

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14001567

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 12749316

Country of ref document: EP

Kind code of ref document: A2