WO1998056185A1 - Procede et dispositif de codage et de decodage d'images - Google Patents

Procede et dispositif de codage et de decodage d'images Download PDF

Info

Publication number
WO1998056185A1
WO1998056185A1 PCT/JP1998/002435 JP9802435W WO9856185A1 WO 1998056185 A1 WO1998056185 A1 WO 1998056185A1 JP 9802435 W JP9802435 W JP 9802435W WO 9856185 A1 WO9856185 A1 WO 9856185A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
frame
motion vector
coordinates
horizontal
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/JP1998/002435
Other languages
English (en)
French (fr)
Inventor
Yuichiro Nakaya
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to KR10-1999-7011229A priority Critical patent/KR100511810B1/ko
Priority to EP98923086A priority patent/EP0987898B1/en
Priority to US09/445,088 priority patent/US7006571B1/en
Priority to JP50205299A priority patent/JP3764488B2/ja
Priority to DE69835431T priority patent/DE69835431T2/de
Publication of WO1998056185A1 publication Critical patent/WO1998056185A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/527Global motion vector estimation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/537Motion estimation other than block-based
    • H04N19/54Motion estimation other than block-based using feature points or meshes

Definitions

  • the present invention provides an image encoding / decoding method and apparatus, and more specifically, an encoding / decoding process of an image signal including a moving image, wherein an inner / outer process is performed on a motion vector at a representative point.
  • the present invention relates to an image encoding and decoding method and apparatus including an inter-frame prediction image combining process for calculating a motion vector of a pixel in an image by performing the method.
  • inter-frame prediction motion compensation
  • the motion compensation method which is the mainstream of the current image coding technology, is a block matching method adopted in H.261, MPEG1, and MPEG2, which are international standards of the video coding method. In this method, the image to be encoded is divided into a number of blocks, and the motion vector is obtained for each block.
  • Block matching is currently the most widely used motion compensation method.However, when the entire image is enlarged, reduced, or rotated, motion vectors must be transmitted for all blocks. There is a problem that the conversion efficiency becomes worse.
  • u g (x, ⁇ ) ⁇ ⁇ + ⁇ ⁇ + ⁇ 3
  • v g (x, y) 3 ⁇ 4 ⁇ Lx + sy + a .
  • FIG. 2 shows an example of single-pin prediction using bilinear interpolation and extrapolation. This figure shows a process of synthesizing a predicted image of the original image 202 of the current frame using the reference image 201.
  • the current frame is divided into a plurality of polygonal patches, and a hatched image 209 is obtained.
  • the vertices of a patch are called grid points, and the grid points are shared by multiple patches.
  • patch 2 10 is composed of grid points 2 1 ⁇ , 2 12, 2 13, and 2 14, and these grid points also serve as vertices of other patches. After dividing the image into a plurality of patches in this way, motion estimation is performed.
  • each patch is transformed in the reference image 203 after the motion estimation.
  • patch 210 corresponds to modified patch 204.
  • grid points 205, 206, 207, and 208 correspond to 211, 211, 211, and 214, respectively. It is because.
  • the motion vector of the grid point is obtained, and the motion vector of each pixel in the patch is calculated using the first-order inner ⁇ .
  • an inter-frame prediction image is synthesized.
  • the processing of this pinging prediction is basically the same processing as the global motion compensation shown in Fig.
  • the invention “image encoding method and decoding method” by the present applicant. (Japanese Patent Application No. Hei 8-660572) and “Method of Combining Inter-frame Predicted Images” (Japanese Patent Application No. Hei 8-249610).
  • An object of the present invention is to reduce the amount of calculation by replacing the division processing in these motion compensation systems with a binary shift operation using a register having a small number of bits.
  • the present invention provides an image encoding and decoding method for synthesizing an inter-frame prediction image by global motion compensation mapping prediction, in which a plurality of representative points having a characteristic spatial interval are used.
  • the motion vector is obtained by performing two-step inner / outer insertion processing on the motion vector.
  • the pixel sampling interval is set to 1 in both the horizontal and vertical directions, and the sampling point is the number of coordinates where the horizontal and vertical components are both integers plus w.
  • the present invention enables a division process to be realized by a shift operation by skillfully selecting the coordinates of a representative point, and further reduces the number of bits shifted in a shift operation, thereby providing a register having a small number of bits.
  • the operation of the motion compensation method can be realized.
  • FIG. 1 is a diagram showing an example of global motion compensation for transmitting a motion vector at a representative point.
  • FIG. 2 is a diagram showing an example of processing for binging prediction.
  • FIG. 3 is a diagram showing an example of arrangement of representative points for performing high-speed processing.
  • FIG. 4 is a diagram showing a configuration example of a software image coding device of the present invention.
  • FIG. 5 is a diagram showing a configuration example of a software image decoding device of the present invention.
  • FIG. 6 is a diagram showing a configuration example of an image encoding device according to the present invention.
  • FIG. 7 is a diagram showing a configuration example of an image decoding device according to the present invention.
  • FIG. 8 is a diagram showing a configuration example of the motion compensation processing unit 616 in FIG.
  • FIG. 9 is a diagram showing another configuration example of the motion compensation processing unit 616 in FIG.
  • FIG. 10 is a diagram showing a configuration example of the predicted image synthesizing unit 711 in FIG.
  • FIG. 11 is a diagram showing a configuration example of the predicted image synthesizing unit 1103 in FIG.
  • FIG. 12 is a diagram showing a configuration example of a global motion compensation predicted image synthesizing unit.
  • FIG. 13 is a diagram showing an example of a flowchart of processing in the software image encoding device.
  • FIG. 14 is a diagram showing an example of a flowchart of the motion compensation processing in the software image encoding device.
  • FIG. 15 is a diagram showing an example of a flowchart of a process in the software image decoding device.
  • FIG. 16 is a diagram showing an example of a flowchart of a predicted image synthesis process in the software image decoding device.
  • FIG. 17 is a diagram showing a specific example of an apparatus that uses image encoding / decoding for synthesizing a global motion-compensated predicted image by two-stage processing.
  • BEST MODE FOR CARRYING OUT THE INVENTION an invention filed by the applicant of the present invention relating to a method for speeding up operations in global motion compensation and binging prediction.
  • w represents the phase shift between the coordinates of the representative point and the coordinates of the pixel in global motion compensation, and typical values include 0, 1/2, 1/4, and the like.
  • the image The number of pixels in the horizontal and vertical directions is r and s, respectively (where r and s are positive integers), and the pixels of the image have a horizontal coordinate of 0 or more and less than r and a vertical coordinate of 0 or more and less than s. Assume that it exists.
  • the “pixel motion vector” refers to a motion vector used for actually synthesizing a predicted image when performing global motion compensation.
  • the “motion vector of the representative point” means the parameter used to calculate the motion vector of the pixel. Therefore, due to differences in the quantization step size, etc., it is possible that the motion vector of the pixel does not match the motion vector of the representative point even if they are on the same coordinates.
  • the representative point is not set as a point located at a corner of the image 301, and (i, j), (i + p, j), (i, j + q), generalized as points 302,303,304,305 located at (i + p, j + q) (i, j, p, ci are integers).
  • the points 302, 303, 304, and 305 may exist inside or outside the image.
  • // is a division in which the result of normal division is rounded to the nearest integer when the result of the operation is not an integer.
  • the precedence as an operator is equivalent to multiplication / division.
  • non-integer values be rounded to the nearest integer.
  • the method of rounding the value obtained by adding 1/2 to the integer is
  • (3) and (4) are advantageous in terms of the processing amount because the rounding direction does not change regardless of whether the dividend is positive or negative.
  • # (pqk) -M where "#" is an integer division that rounds down the decimal point in the direction of 0, and the precedence of the operation is the same as that of multiplication and division. This is the type of division that is generally most feasible on computers.
  • L and M are numbers that keep the dividend dividend positive at all times, and are sufficiently large positive integers.
  • the term (p q k # 2) is used to round the result of the division to the nearest integer.
  • v (x + w, y + w) v (x, y) (“ ⁇ « ⁇ ”shifts ⁇ to the left by ⁇ bits and puts 0 in the lower ⁇ bits, and“ ⁇ >> hi ”shifts X to the right by ⁇ bits and shifts to the upper ⁇ Means to put 0 in the bit, the precedence of these operators is halfway between addition, subtraction and multiplication / division), and the number of bits to be shifted is ⁇ + / 3 + h k-hm it can.
  • u (x + w, y + w) u (x + ⁇ , y + 3 ⁇ 4
  • Typical values of c include 0, 1/2, 1/4, and the like.
  • the horizontal and vertical components of each motion vector at point (i, j), (i + p, j), (i, j + Q), (i + P, j + Q) are multiplied by k.
  • V! V '(i + p, j) ⁇ ( 9 )
  • u 2 u' (i, j + q)
  • Equation (14) (calculated only four times for one image) has a smaller number of operations, so Equation (1) or Even if the method (2) is selected, there is no significant effect on the total amount of computation.
  • processors with registers that can store integers of 33 bits or more are At present, it is expected to be small and expensive in the future, and in general, the larger the circuit size of the processor, the more power it consumes, so algorithms that require large registers Is disadvantageous also from the viewpoint of power consumption. Therefore, even if division can be replaced by shift operation, Bit Bok The number of shift can be It is desirable to have as little as possible.
  • the present invention employs an algorithm based on a two-stage process described below. (I, j), (i + p, j), (i, j + Q),
  • the horizontal 'vertical component of the motion vector of (i + p, j + q) multiplied by k is (u0, V0), (u1, V1), (u2, V2), (u 3, v3) (u0, V0, U1, vl, u2, V2, U3, v3 are integers).
  • the temporary representative points are placed at (i, y + w) and (i + p, y + w), and the horizontal and vertical components of the motion vectors of these temporary representative points are multiplied by z. Is
  • “////” is a division in which the result of normal division is not an integer and is rounded to a nearby integer, and the precedence as an operator is equivalent to multiplication / division (this “// ⁇ / ”requires the same function as“ /// ”described above. Is done). Since (i, y + w) exists on the line connecting (i, j) and (i, j + q), (uL (y + w), vL (y + w)) , (U 0, v 0) and (u 2, v 2) can be easily obtained by one-dimensional linear interpolation and extrapolation. Similarly, (i + p, y + w) exists on the line connecting (i + p, j) and (i + p, j + Q). ⁇ Can be obtained by extrapolation.
  • the motion vectors (u L (y + w), VL (y + w)) and (u R (y + w), v R (y + w)) of the temporary representative point obtained in this way are By performing one-dimensional linear inner-outer ⁇ , the horizontal and vertical components of the motion vector of the pixel at (x + w, y + w) are multiplied by m (u (x + w, y + w), ⁇ (x + w, y + w)). This processing is performed according to the following equation (12).
  • u (x + w, y + w) (((w d i + w d pw d xw n ) u L (y + w)
  • the motion vector of the tentative representative point is calculated by first performing a one-dimensional linear inside / outside of the motion vector of the representative point. Then, the motion vector of the pixel is obtained by performing a horizontal one-dimensional linear inner / outer motion on the motion vector of the temporary representative point. Contrary to this, the same applies when the motion vector of the temporary representative point is calculated in the horizontal direction, and when the motion vector of the pixel is calculated, the one-dimensional linear inside and outside of the vertical direction is the same. The function can be realized.
  • v F (x + w, y + w) v (x + w, y + w)-vi (x + w, y + w) m (1 4)
  • v I (x + w, y + w) are integers, representing the integer part of the pixel motion vector.
  • u F (x + w, y + w) and v F (x + w, y + w) are integers each having a value of 0 or more and less than m, and the decimal part of the pixel motion vector is m. It is doubled.
  • m is 2 to the power of hm (where hm is a non-negative integer), and L and M are integers large enough to make the shifted value non-negative t interpolation of luma values
  • hm is a non-negative integer
  • L and M are integers large enough to make the shifted value non-negative t interpolation of luma values
  • V F ((mu F) Y c + u F Y d) + (m 2 »1))» (2h m), determined by 1 Bruno.
  • uF and vF are abbreviations of uF (x + w, y + w) and vF (x + w, y + w), respectively.
  • u I (x + w, y + w) and vl (x + w, y + w) are calculated by a 16-bit shift operation, it is necessary to perform the shift operation. Is gone. That is, shifted If the previous value is stored in a 32-bit register and the upper 16 bits are used as an independent register, u I (x + w, y + w) can be stored in the 16-bit register. Or, the value of v I (x + w, y + w) is stored.
  • the number of bits to be shifted is always 16 or less. It can be. As described above, if the number of bits to be shifted is smaller than 16, the number of bits to be shifted is simulated by multiplying the number to be shifted by a constant in advance. It is possible to In this way, when the image size changes, the other parameters (for example, the quantization step size of the motion vector) are changed accordingly, so that the number of bits to be shifted becomes a convenient value. It can be controlled as follows.
  • the motion vector of a representative point is calculated as 1 Zk using the motion vector of a corner point of an image with 1Zn pixel accuracy.
  • the pixel is calculated using the motion vector of the tentative representative point. Is obtained with 1 Zm pixel accuracy.
  • the motion vector at a point in the corner of the image is transmitted as a motion parameter, set k as large as possible in the sense of accurately approximating the first-order inner and outer ⁇ ⁇ ⁇ by this parameter. It is desirable. However, in any case, the horizontal and vertical components of the motion vector at the representative point include an error with an absolute value of 1 Z (2 k) or less due to quantization. In order to make the approximation accurate, it is desirable that the motion vector of the temporary representative point be as accurate as possible. However, since the motion vector of the tentative representative point is obtained using the motion vector of the representative point, it does not make much sense to calculate with a higher accuracy than the motion vector of the representative point. Obedience Therefore, z ⁇ k is desirable in order to reduce the number of bits required for the operation. For the same reason, it is desirable that m ⁇ z.
  • the horizontal (vertical) component of the motion vector of pixel (x + w, y + w) multiplied by m (u (x + w, y + w), v (x + w, y + w)) is It can be expressed by the following formula (16) (however, x, y, ⁇ (X + w, y + w), v (x + w, y + w) are integers, and the definition of w is the same as above ).
  • u (x + w, y + w) (((ui-uo) w d x + w n -w d i) q
  • v (x + w, y + w) (((v 1 -v 0 ) (w d x + w n -w d i) 2 a — jun. ⁇ ⁇ ( ⁇
  • FIG. 6 shows a configuration of an embodiment of an image encoding device according to the present invention.
  • the configuration is substantially the same as that of a conventionally known image coding apparatus except for a motion compensation processing unit 6 16.
  • the subtracter 602 is used to determine the relationship between the input image (the original image of the current frame to be coded) 601 and the output image 613 of the inter-frame Z-frame intra-frame switching switch 613 Calculate the difference and output error image 603.
  • This error image is converted to a 13 (: D coefficient by a 0 (: D converter 604) and then quantized by a quantizer 605 to become a quantized DCT coefficient 606.
  • the DCT coefficient is output to the communication channel as transmission information, and is also used in the encoder to synthesize the inter-frame predicted image.
  • the procedure for synthesizing a predicted frame image will be described below.
  • the quantized DCT coefficient 606 passes through an inverse quantizer 608 and an inverse DCT transformer 609 to become a decoded error image 610 (the same image as the error image reproduced on the receiving side).
  • the output image 6 13 (described later) of the inter-frame Z intra-frame encoding switching switch 6 19 is added to the adder 6 11 in this manner, and the decoded image 6 1 2 of the current frame (reproduced on the receiving side) (The same image as the decoded image of the current frame).
  • This image is temporarily stored in the frame memory 614, and only for one frame time Be delayed. Therefore, at this time, the frame memory 614 outputs the decoded image 615 of the previous frame.
  • the decoded image of the previous frame and the input image 61 of the current frame are input to the motion compensation processing unit 616.
  • the motion compensation processing unit 6 16 synthesizes the above-described inter-frame prediction image. The configuration will
  • the prediction image 6 17 is input to the inter-frame Z intra-frame encoding switching switch 6 19 together with the “0” signal 6 18.
  • This switch switches between inter-frame coding and intra-frame coding by selecting either of the inputs.
  • the predicted image 6 17 is selected (FIG. 6 shows this case)
  • inter-frame encoding is performed.
  • the “0” signal is selected, the input image is DCT-coded as it is and output to the communication channel, so that intra-frame coding is performed.
  • the identification flag 6 21 is output to the communication path.
  • the final H.262 coded bit stream 623 is multiplexed by the multiplexer 622 to multiplex the quantized DCT coefficients, the motion vector, and the information on the Z-frame identification flag within the frame.
  • FIG. 7 shows an example of the configuration of a decoder 700 that receives the encoded bitstream output from the encoder of FIG.
  • the received bit stream 717 is separated by a separator 716 into a quantized DCT coefficient 701, a motion vector 702, and an intra-frame Z-frame inter-frame identification flag 703.
  • the quantized DCT coefficient 701 becomes an error image 706 decoded through an inverse quantizer 704 and an inverse DCT transformer 705.
  • Inter-frame intra-frame switching switch is inter-frame / intra-frame encoding identification flag 7 0 3 Switch the output according to.
  • the predicted image 712 used for performing inter-frame coding is synthesized by the predicted image synthesis unit 71.
  • a process of moving the position according to the received motion vector 702 is performed on the decoded image 710 of the previous frame stored in the frame memory 709.
  • the inter-frame Z intra-frame encoding switching switch outputs the “0” signal 7 13 as it is.
  • FIG. 8 shows a configuration example of a motion compensation processing unit 6 16 of an image encoder adopting a global motion compensation method based on linear interpolation and extrapolation for transmitting a motion vector at a representative point.
  • the same numbers as those in Fig. 6 indicate the same things.
  • the global motion estimator 8002 performs motion estimation regarding global motion compensation between the decoded image 615 of the previous frame and the original image 600 of the current frame. ua, Va, ub, vb, uc, vc, ud, vd) are estimated. Information 803 on these values is transmitted as part of the motion information 620.
  • the global motion compensation predicted image 804 is synthesized by the global motion compensated predicted image synthesizing unit 808 using Expression (3), and is supplied to the block matching unit 805.
  • motion compensation motion estimation and prediction image synthesis
  • block matching is performed between the predicted image of global motion compensation and the original image of the current frame, and the motion vector information of the block is obtained. 0 6 and the final predicted image 6 17 are obtained.
  • the motion vector information is multiplexed with the motion parameter information in the multiplexing unit 807, and is output as motion information 620.
  • FIG. 10 shows an example of the configuration of the predicted image synthesizing unit 711 in FIG.
  • the same numbers in other figures refer to the same things.
  • the global motion compensation prediction image synthesizing unit 8 is obtained from the motion information 70 2 using the global motion compensation parameter 80 3 extracted in the dividing unit 100 2.
  • a predicted image 804 of global motion compensation is synthesized.
  • Image 8 0 4 is supplied to the block matching predicted image synthesizing unit 100 1, and the final predicted image 7 1 2 is obtained by using the block matching motion vector information 8 06 extracted from the motion information 7 02. Synthesized.
  • FIG. 9 shows another configuration example of the motion compensation processing unit 6 16.
  • the same numbers as those in Fig. 6 indicate the same ones.
  • either global motion compensation or block matching is applied to each block.
  • the global motion estimator 902 and the global motion compensated predicted image synthesizer 911 provide global motion compensation
  • the block matching section 905 motion compensation processing is performed independently by block matching.
  • the selection switch 908 selects an optimal method for each block between the predicted image 903 based on global motion compensation and the predicted image 906 based on block matching.
  • the global motion compensation parameter 904, the motion vector for each block 907, and the global motion compensation / block matching selection information 909 are multiplexed by the multiplexing unit 910 to obtain motion information. Output as 6 20.
  • FIG. 11 shows a configuration example of a predicted image synthesis unit 1103 of a decoder that decodes a bit stream generated by an image encoder using the motion compensation processing unit 901.
  • the global motion compensation prediction image synthesizing unit 9 is used by using the global motion compensation parameter 9104 extracted from the motion information 70 2 in the dividing unit 110 2.
  • a global motion compensation predicted image 9 03 is synthesized.
  • the block matching predicted image synthesizing unit 110 uses the block matching motion vector information 907 extracted from the motion information 702 for the decoded image 710 of the previous frame.
  • a predicted image 906 of block matching is synthesized.
  • Selection switch 1 1 0 4 is block matched with predicted image 9 0 3 by global motion compensation
  • One of the schemes is selected for each block based on the selection information 909 extracted from the motion information 702 between the predicted images 906 by coding. Through the selection process for each block; the final predicted image 712 is synthesized.
  • FIG. 12 shows a functional configuration of the above-described global motion compensated prediction image synthesizing unit according to the present invention. Suppose that the motion vector at the corner of the image is transmitted as a global motion compensation parameter. The motion vector of the representative point is calculated in the arithmetic processing unit 125 using the information 1204 on the motion vector of the point at the corner of this image using equations (9) and (10). .
  • the arithmetic processing unit uses a formula (11) to formulate a temporary representative for each line (pixels whose vertical coordinates have a common value). The motion vector of the point is calculated. Further, by utilizing the information 128 regarding the motion vector of the temporary representative point, the arithmetic processing unit 1209 calculates the motion vector for each pixel by the equation (12). On the other hand, the processing unit 1 2 1 1 uses the information 1 2 1 0 about the motion vector for each pixel and the predicted image 1 2 0 3 of the global motion compensation using the decoded image 1 2 0 of the previous frame. Combined and output.
  • the present invention can be applied not only to an image encoding device and an image decoding device using a dedicated circuit and a dedicated chip, but also to a software image encoding device and a software image decoding device using a general-purpose processor.
  • FIG. 4 and 5 show examples of the software image encoding device 400 and the software image decoding device 500, respectively.
  • the input image 401 is stored in the input frame memory 402
  • the general-purpose processor 400 reads the information from the input frame memory 402 and performs the encoding process.
  • a program for driving the general-purpose processor 403 is read from a storage device 408 such as a hard disk or a floppy disk and stored in the program memory 404.
  • the general-purpose processor 403 performs the encoding process using the processing memory 405.
  • the encoded information output by the general-purpose processor 403 is temporarily stored in an output buffer 406 and then output as an encoded bit stream 407.
  • FIG. 13 shows a flowchart of the encoding software that operates on the software encoder shown in FIG.
  • the image encoding process is started in step 1301, and 0 is substituted for the variable N in step 1302. Subsequently, if the value of N is 100 in steps 133 and 304, 0 is substituted.
  • N is a count of the number of frames, and is incremented each time processing of one frame is completed, and is allowed to take a value from 0 to 99 when performing encoding.
  • the frame being coded is an I frame (a frame in which motion compensation is not performed and all blocks are intra-frame coded). Frame in which the compensation block exists).
  • the fact that the value of N is 100 means that one I frame is encoded after 99 P frames are encoded.
  • the optimal N varies depending on the performance of the encoder and the environment in which the encoder is used. This example uses the value 100, but this does not mean that the value of N must be 100.
  • the determination and output of the frame type (1 or) is performed in step 135. If the value of N is 0, 'I' is output to the output buffer as frame type identification information, and the frame for which encoding processing is to be performed is an I frame.
  • output to the output buffer means that the data is stored in the output buffer (406 in FIG. 4) and then output from the encoding device to the outside as a part of the encoded bit stream. .
  • step 1306 the input image is stored in the frame memory A.
  • the frame memory A mentioned here means a part of the memory area of the software encoder (for example, this memory area is secured in the memory 405 in FIG. 4).
  • step 1307 it is determined whether or not the frame currently being encoded is an I frame. If the frame is not an I frame, motion estimation and motion compensation are performed in step 1308.
  • FIG. 14 shows an example of a flowchart showing the details of the processing in step 1308.
  • step 1401 global motion estimation is performed between the images stored in the frame memories A and B (the decoded image of the previous frame is stored in the frame memory B), and the global motion parameters are calculated. Then, the motion vector at the corner of the image is output to the output buffer. In step 1402, the motion vector of the representative point is calculated from the equations (9) and (10) using the motion vector of the corner point of this image. Subsequently, in step 1443, 0 is substituted for the variable M. M is the number of the line in the image, where M is 0 means that the top line of the image is being processed, and M is the number of lines in the image minus 1. Sometimes it means that the bottom line of the image is being processed.
  • step 1444 the motion vector of the temporary representative point on the M-th line is calculated by equation (11).
  • step 1405 the motion vectors of all the pixels included in the M-th line are calculated by using the motion vector of the tentative representative point using equation (12), and the obtained motion vector is calculated.
  • the M-th line of the global motion compensation predicted image is synthesized using the decoded image of the previous frame stored in the frame memory B and stored in the frame memory F.
  • step 1406 1 is added to the value of M.In step 1407, if the value of M is equal to the number of lines in the image, go to step 144; otherwise, go to step 144. Moving.
  • step 1448 motion estimation processing is performed for each block between the frame memory F and the frame memory A (input image), and the motion vector of each block is obtained. The vector is output to the output buffer.
  • step 1409 a predicted image by block matching is synthesized in step 1409 using the motion vector and the image stored in the frame memory F, and this is stored in the frame memory C as a final predicted image.
  • step 1410 a difference image between the frame memories A and C is obtained, and the difference image is stored in the frame memory A.
  • the frame memory A stores the input image when the current frame is an I frame, and stores the input image and the predicted image when the current frame is a P frame. A difference image is stored.
  • DCT is applied to the image stored in the frame memory A, and the DCT coefficient calculated here is output to the output buffer after being quantized.
  • the quantized DCT coefficient is inversely quantized, inverse DCT is applied, and the image obtained as a result is stored in the frame memory B.
  • step 1311 it is determined again whether or not the current frame is an I-frame.
  • Step 1 3 1 3 It is determined whether or not the frame whose encoding has been completed is the last frame. If it is the last frame, the encoding process ends. If it is not the last frame, 1 is added to N in step 1314, and the process returns to step 1303 to start the encoding process of the next frame.
  • the flowchart described here is a method of applying block matching to a global motion compensation predicted image synthesized as a result of performing global motion compensation (the motion compensation processing unit 8 in FIG. 8).
  • the method for global motion compensation and block matching in parallel (the method corresponding to the device using the motion compensation processing unit 901 in FIG. 9). It is clear that the flowchart for method) can be created with only minor changes.
  • the input coded bit stream 501 is temporarily stored in the input buffer 502, and then read into the general-purpose processor 503.
  • the general-purpose processor 503 performs a decoding process using the program memory 504 for storing the program read from the storage device 508 such as a hard disk or floppy disk and the processing memory 505. .
  • the decoded image obtained as a result is temporarily stored in the output frame memory 506, and then output as the output image 507.
  • FIG. 15 shows a flowchart of decoding software operating on the software decoding apparatus shown in FIG.
  • the processing is started at 1501, and it is first determined at step 1502 whether there is input information.
  • the decoding process ends in step 1503.
  • frame type information is input.
  • “input” means that information stored in the input buffer 502 is read.
  • step 1505 It is determined whether or not the inserted frame type information is 'I'. If it is not “I”, predicted image synthesis processing is performed in step 1506.
  • FIG. 16 is a flowchart showing details of the processing performed in step 1506.
  • step 1601 a motion vector of a point at a corner of an image is input.
  • step 1602 the motion vector of the representative point is calculated by the equations (9) and (10) using the motion vector of the point at the corner of the image.
  • step 1603, 0 is substituted for the variable M.
  • M represents the number of the line in the image, where M is 0 means that the top line of the image is being processed, and M is the number of lines in the image minus 1. Sometimes it means that the bottom line of the image is being processed.
  • the motion vector of the temporary representative point on the M-th line is calculated by equation (11).
  • step 1605 the motion vectors of all the pixels included in the M-th line are calculated by using the motion vector of the temporary representative point by using equation (1 2), and the obtained motion vector is calculated.
  • the M-th line of the global motion compensation predicted image is synthesized using the decoded image of the previous frame stored in the frame memory E, and is stored in the frame memory G.
  • the frame memory G described here means a part of the memory 505 area of the software decoder.
  • step 1606 1 is added to the value of M.
  • step 1607 if the value of M is equal to the number of lines in the image, the process proceeds to step 1608. If not, the process proceeds to step 1604.
  • a predicted image by global motion compensation is stored in the frame memory G.
  • a block matching process is performed.
  • the motion vector information for each block is input, and the motion vector and the image stored in the frame memory G are used to input the motion vector.
  • a predicted image based on lip matching is synthesized, and the predicted image is stored in the frame memory D.
  • step 1507 the quantized DCT coefficient is input, and an image obtained by applying inverse quantization and inverse DCT to this is stored in the frame memory E.
  • step 1508 it is determined again whether or not the frame currently being decoded is an I frame. If it is not an I frame, the images stored in the frame memories D and E are added in step 159, and the resulting image is stored in the frame memory E. The image stored in the frame memory E immediately before performing the processing of step 1510 becomes the reproduced image.
  • step 1501 the image stored in the frame memory E is output to the output frame memory 506, and is output as it is from the decoder as the output image.
  • the decoding process for one frame is completed, and the process returns to step 1502 again.
  • the processing of the present invention may be applied to a rectangle surrounding an image of an arbitrary shape, and an operation of obtaining a motion vector only for pixels included in the image of the arbitrary shape may be performed.
  • FIG. 17 shows a specific example of an encoding / decoding device using the predicted image combining method described in this specification.
  • (A) shows a case in which software for image encoding / decoding is incorporated in a personal computer 1701, and used as an image encoding / decoding device.
  • This software is recorded on some kind of storage media (CD-ROM, floppy disk, hard disk, etc.), and is read and used by a personal computer.
  • CD-ROM compact disc-read only memory
  • floppy disk floppy disk
  • hard disk etc.
  • this personal computer by connecting this personal computer to some kind of communication line, it can be used as a video communication terminal.
  • (b) is a media for storing moving image information by the encoding method according to the present invention.
  • An example is shown in which a coded bit stream recorded in 720 is read, reproduced by a reproducing apparatus 1703 having the device according to the present invention, and a reproduced video signal is displayed on a television monitor 1704.
  • the playback device 1703 only reads the coded bit stream, and the television monitor 1704 may have a decoding device incorporated therein.
  • FIG. 10 shows a case where the decoding device of the present invention is incorporated in a digital broadcast television receiver 105.
  • a decoding device is mounted in a set-top box 179 connected to a cable TV cable 178 or satellite Z terrestrial broadcasting antenna, and this is connected to a TV monitor 1 7 shows a case where reproduction is performed at ⁇ 10.
  • the encoding device may be incorporated in the television monitor instead of the set-top box.
  • FIG. 1706 shows a case where the encoder and decoder of the present invention are incorporated in the digital portable terminal 1706.
  • a digital portable terminal in addition to a transmission / reception type terminal having both an encoder and a decoder, any of the three mounting forms of a transmission terminal having only an encoder and a reception terminal having only a decoder may be used.
  • FIG. 17 (f) shows a case where an encoding device is incorporated in a camera 1707 for capturing a moving image. Further, the camera 1707 only takes in a video signal, and it may be configured to incorporate this into a dedicated encoding device 1711.
  • the device can be simplified as compared with the case where conventional technology is utilized.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

明細書 画像符号化及び復号化方法及び装置
技術分野
本発明は、 画像符号化及び復号化方法及び装置、さらに詳しく言えば、 動画像を含む画像信号の符号化、 復号化の処理において、 代表点の動き べクトルに対して内 ·外揷処理を行うことにより画像内の画素の動きべ ク トルを計算するフレーム間予測画像の合成処理を含む画像符号化及び 復号化方法及び装置に関するも.のである。
発明の背景
動画像の高能率符号化において、 異なる時間に発生したフレーム間の 類似性を活用するフレーム間予測 (動き補償) は情報圧縮に大きな効果 を示すことが知られている。 現在の画像符号化技術の主流となっている 動き補償方式は、 動画像符号化方式の国際標準である H . 2 6 1、 M P E G 1、 M P E G 2に採用されているブロックマッチング方式である。 この方式では、 符号化しょうとする画像を多数のブロックに分割し、 ブ ロックごとにその動きべクトルを求める。
ブロックマッチングは現在最も広く利用されている動き補償方式であ るが、 画像全体が拡大 ·縮小 · 回転している場合には、 全てのブロック に対して動きベクトルを伝送しなければならず、 符号化効率が悪くなる 問題がある。 この問題に対し、 画像全体の動きベクトル場を少ないパラ メ一夕を用いて表現するグローバル動き補償 (例えば、 M.Hotter, "Diiierential estimation of the global motion parameters zoom and pan", Signal Processing, vol. 16, no. 3, pp. 249-265, Mar. 1989) 力提 案されている。 これは、 画像内の画素 (x, y ) の動きベク トル (u g ( X , y ) , V g ( x, y ) ) を、 ug(x, y) = aox + a!y + a2
vg(x, y) = a3x + a4y + a5 (1 )
や、
¾(x, y) = b0xy + + b2y + b3
(2) -vg(x, y) = b4xy + b5x + b6y + b7 の形式で表し、 この動きべク トルを利用して動き補償を行う方式である。 ここで a 0〜 a 5、 b 0〜b 7は動きパラメ一夕である。 動き補償を行う 際には、 送信側と受信側で同じ予測画像が得られなければならない。 こ のために、 送信側は受信側へ a 0〜a 5又は b 0〜 b 7の値を直接伝送 しても良いが、 代わりにいくつかの代表点の動きべク トルを伝送する方 法もある。 いま、 画像の左上端、 右上端、 左下端、 右下端の画素の座標 がそれぞれ (0, 0) 、 ( r , 0) 、 (0, s ) 、 ( r , s ) で表され るとする (ただし、 rと sは正の整数) 。 このとき、 代表点 (0, 0) 、 ( r , 0) 、 (0, s ) の動きベクトルの水平 ·垂直成分をそれぞれ (u a, V a) 、 (u b, v b) 、 (u c, v c) とすると、 式( 1 ) は
ug(x, γ) = ^χ + ^γ + υ3
Vr― V, (3)
vg(x, y) = ¾^Lx+ s y + a となる。 このことは a 0〜 a 5を伝送する代わりに u a、 v a、 u b、 v b、 u c、 v cを伝送しても同様の機能が実現できることを意味する。 こ れと同じように、 4個の代表点 (0, 0) 、 ( r, 0) 、 (0, s ) 、 ( r , s ) の動きべクトルの水平 ·垂直成分 (u a, V a) 、 (u b, v b) 、 (u c, v c) 、 (u d, v d) を用いて式(2) は、
Figure imgf000004_0001
" a+Vc y + a
S と書き換えることができる。 従って、 b 0〜b 7を伝送する代わりに u a、 V a u b、 v b、 u c、 v c、 u d、 v dを伝送しても同様の機能 が実現できる。 この様子を第 1図に示す。 現フレームの原画像 1 0 2と 参照画像 1 0 1の間でグローバル動き補償が行われたとして、 動きパラ メ一夕の代わりに代表点 1 0 3、 1 04、 1 0 5、 1 0 6の動きべク ト ル 1 0 7、 1 0 8、 1 0 9、 1 1 0 (このとき、 動きべクトルは現フレ ームの原画像の点を出発点として、 参照画像内の対応する点を終点とす るものとして定義する) を伝送しても良い。 本明細書では式(1 ) を用い る方式を線形内 '外挿に基づくグローバル動き補償、 式(2) を用いる方 式を共 1次内 ·外挿に基づくグローバル動き補償とよぶ。
このグローバル動き補償の処理を、 画像内のより小さい領域に適用す るのがヮ一ビング予測である。 第 2図に共一次内 ·外挿を用いるヮ一ピ ング予測の例を示す。 この図は、 参照画像 2 0 1 を用いて現フレームの 原画像 2 0 2の予測画像を合成する処理を示したものである。 まず現フ レームは複数の多角形のパッチに分割され、 ハッチ分割された画像 2 0 9となる。 パッチの頂点は格子点とよばれ、 &格子点は複数のパッチに 共有される。 例えば、 パッチ 2 1 0は、 格子点 2 1 丄、 2 1 2、 2 1 3、 2 1 4から構成され、 これらの格子点は他のパッチの頂点を兼ねている。 このように画像を複数のパッチに分割した後に、 動き推定が行なわれる。 ここに示す例では、 動き推定は各格子点を対象として参照画像との間で 行なわれる。 この結果、 動き推定後の参照画像 2 0 3で各パッチは変形 されたものとなる。 例えば、 パッチ 2 1 0は、 変形されたパッチ 2 04 に対応している。 これは、 動き推定の結果、 格子点 2 0 5、 2 0 6、 2 0 7、 2 0 8がそれぞれ 2 1 1、 2 1 2、 2 1 3、 2 1 4に対応してい ると推定されたためである。 このようにして格子点の動きベク トルを求 め、 共 1次内揷によってパッチ内の各画素の動きべク トルを計算するこ とにより、 フレーム間予測画像が合成される。 このヮ一ビング予測の処 理は基本的に第 1図に示したグローバル動き補償と同じ処理であり、「画 像の隅の点の動きベクトル」 が 「格子点の動きベクトル」 に変えられて いるだけである。 また、 長方形の代わりに 3角形のパッチを使用すれば、 線形内 ·外揷によるヮービング予測も実現することができる。
なお、 画像全体の動きべクトル場を少ないパラメ一夕を用いて表現す るグローバル動き補償の処理を簡易にした符号化及び復号方法に関して 本願出願人による発明「画像符号化方法および復号化方法」 (特願平 8 - 6 0 5 7 2号) 及び「フレーム間予測画像の合成方法」 (特願平 8 - 2 4 9 6 0 1号) がある。
上述のグロ一バル動き補償やヮービング予測を導入することにより、 画像の動きを少ないパラメ一夕を用いて正確に表現することが可能とな り、 より高い情報圧縮率が実現できる。 しかし、 その一方で符号化及び 復号化における処理量は従来の方式と比較して増加する。 特に式(3 ) 及 び式(4 )の除算は、 処理を複雑にする大きな要因となってしまう。 すな わち、 グロ一バル動き補償ゃヮービング予測では、 予測画像の合成のた めの処理量が多くなる問題が発生する。 発明の開示
発明の目的は、 これらの動き補償方式における除算の処理をビッ ト数 の少ないレジスタを用いた 2進数のシフ卜演算に置き換えることにより、 演算量を減少させることにある。
上記目的を達成するため、 本発明は、 グローバル動き補償ゃヮーピン グ予測によってフレーム間予測画像の合成処理を行う画像符号化及び復 号化において、 空間的な間隔が特徴を持つ複数の代表点の動きべク トル に対し、 2 段階の内 ·外挿入処理を行うことにより動きべク トルを求め る。 さらに詳しく言えば、 フレーム間予測画像の合成処理において、 画素のサンプリング間隔を水平、 垂直方向共に 1 として、 サンプリン グ点が座標の水平、 垂直成分が、 共に整数に wを加えた数である点の上 に存在している画像を対象として (ただし、 w = w nZw d、 かつ w n は負ではない整数、 かつ w dは 2の h w乗、 かつ h wは負ではない整 数、 かつ w n<w d) 、 4個の代表点における動きベク トルに対し、 共 1次内 ·外挿を行うことによって画素の動きべク トルを計算する場合に、 座標 ( i , j ) 、 ( i + P, j ) 、 ( i , j + q) ( i + p, j + q) に ( i、 j 、 p、 Qは整数) に代表点が存在し、 かつ代表点の動きべク トルの水平 ·垂直成分が 1 /kの整数倍の値をとり (ただし、 kは 2の h k乗、 かつ h kは負ではない整数) 、 かつ座標 (x+w, y+w) に 位置する画素の動きベク トルを求めるときに、 座標 ( i , j ) と ( i , j + q) [又は ( i + P, j ) ] に位置する代表点の動きベク トルに対 して線形内 '外揷を行うことにより、 座標 ( i, y +w) [又は (x + w, j ) ] に位置する点の動きべク トルの水平 ·垂直成分をそれぞれ 1 /zの整数倍をとる数値として (ただし、 zは 2の h z乗、 かつ h zは 負ではない整数) 求め、 さらに座標 ( i + p, j ) [又は ( i, j + ci) ] と( i + P, j + q)に位置する代表点の動きべク トルに対して線形内 - 外挿を行うことにより、 座標 ( i + P, y+w) [又は (x+w, j + Q) ] に位置する点の動きベクトルの水平 '垂直成分をそれぞれ 1 Z z の整数倍をとる数値として求めた後に、 ( i, y +w) [又は (x +w, j ) ] と ( i + p, y+w) [又は (x + w, j + p) ] に位置する上 記 2個の動きべクトルに対して線形内 ·外揷を行うことにより、座標(X +w, y+w) に位置する画素の動きベク トルの水平 ·垂直成分をそれ ぞれ 1 Zmの整数倍をとる数値として (ただし、 mは 2の h m乗、 かつ h mは負ではない整数) 求める。 本発明は、 代表点の座標を巧みに選択することによって除算処理をシ フト演算で実現できるようにし、 さらにシフト演算においてシフトされ るビット数を少なくすることにより、 ビット数の少ないレジスタによつ て上記動き補償方式の演算が実現できる。 図面の簡単な説明
第 1図は、 代表点の動きべクトルを伝送するグロ一バル動き補償の例を 示した図である。
第 2図は、 ヮ一ビング予測の処理例を示した図である。
第 3図は、 高速な処理を行うための代表点の配置の例を示した図である。 第 4図は、 本発明のソフトウエア画像符号化装置の構成例を示した図で ある。
第 5図は、 本発明のソフトウエア画像復号化装置の構成例を示した図で ある。
第 6図は、 本発明による画像符号化装置の構成例を示した図である。 第 7図は、 本発明による画像復号化装置の構成例を示した図である。 第 8図は、 第 6図の動き補償処理部 616の構成例を示した図である。 第 9図は、 第 6図の動き補償処理部 616の他の構成例を示した図である。 第 1 0図は、 第 7図の予測画像合成部 7 1 1の構成例を示した図である。 第 1 1図は、 第 9図の予測画像合成部 1 1 0 3の構成例を示した図であ る。 第 1 2図は、 グロ一バル動き補償予測画像合成部の構成例を示した図で ある。
第 1 3図は、 ソフトウエア画像符号化装置における処理のフローチヤ一 卜の例を示した図である。
第 1 4図は、 ソフトウェア画像符号化装置における動き補償処理のフロ 一チヤ一卜の例を示した図である。
第 1 5図は、 ソフトウェア画像復号化装置における処理のフローチヤ一 トの例を示した図である。
第 1 6図は、 ソフトウェア画像復号化装置における予測画像合成処理の フローチャートの例を示した図である
第 1 7図は、 2段階の処理によりグローバル動き補償予測画像を合成す る画像符号化 ·復号化を使用する装置の具体例を示した図である。 発明を実施するための最良の形態 本発明の理解を容易にするため、 グローバル動き補償及びヮ一ビング 予測における演算の高速化方法に関する本出願人が先に出願した発明
(特願平 08-060572及び特願平 08-249G01 ) を説明する。 また、 以下で は本発明をグローバル動き補償に適用した場台に関して説明するが、 本 発明はグロ一バル動き補償と同様の処理を行うヮービング予測にも応用 することが可能である。
以下の説明では、 画素のサンプリング間隔が水平 ·垂直方向共に 1で あるとして、 座標の水平 ·垂直成分が共に整数に wを加えた値である点 (ただし、 w = w nZw d、 かつ w nは負ではない整数、 かつ w dは正 の整数、 かつ w n<w d) に画素が存在しているとする。 wはグローバ ル動き補償における代表点の座標と画素の座標の位相のずれを表してお り、 典型的な値としては 0、 1/2、 1/4などが挙げられる。 また、 画像の 水平方向と垂直方向の画素数はそれぞれ rと sであり (ただし、 rと s は正の整数) 、 かつ画像の画素は水平座標が 0以上 r未満、 垂直座標が 0以上 s未満の範囲に存在しているとする。
線形内 ·外挿 (ァフィン変換) 又は共 1次内 ·外挿 (共 1次変換) を 用いた動き補償を行う際には、 画素ごとの動きベクトルに対して量子化 を行うと、 ミスマッチの防止や演算の簡略化などの効果を得ることがで きる (特願平 06-193970) 。 以下では、 画素の動きベク トルの水平成分 と垂直成分が 1 /m (mは正の整数) の整数倍であるとする。 また、 「従 来の技術」 で説明した代表点の動きべク トルを用いるグローバル動き補 償を行うと仮定し、 各代表点の動きベク トルは 1 Zk (kは正の整数) の整数倍であるとする。 なお、 本明細書では、 「画素の動きベク トル」 はグローバル動き補償を行う際に、 実際に予測画像を合成するために用 いる動きベクトルのことを指す。 一方、 「代表点の動きベクトル」 は画 素の動きべク トルを計算するために用いるパラメ一夕を意味している。 従って、 量子化ステップサイズの違いなどが原因で、 同じ座標上に存在 していても画素の動きべクトルと代表点の動きべク トルが一致しない場 合も起こり得る。
まず、 共 1次内 '外揷を用いるグローバル動き補償について第 3図を 用いて説明する。 この例では、 第 1図に示したように、 代表点を画像 3 0 1の隅に位置する点とはせず、 ( i, j ) 、 ( i + p, j ) 、 ( i , j + q) 、 ( i + p , j + q ) に位置する点 3 0 2、 3 0 3、 3 04、 3 0 5として一般化している ( i、 j 、 p、 ciは整数) 。 このとき、 点 3 0 2、 3 0 3、 3 04、 3 0 5は画像の内部に存在していても外部に 存在していても良い。 代表点の動きべク トルの水平 ·垂直成分を k倍し たものをそれぞれ (u 0, V 0) 、 (u 1, V 1) 、 (u 2, V 2) 、 (u 3, V 3) とすると (u 0、 V 0、 u 1、 v l、 u 2、 v 2、 u 3、 v 3は 整数) 、 (x+w、 y +w) に位置する画素の動きベクトルの水平 ·垂 直成分を m倍したもの (u ( + w, y + w) , v (x +w, y + w) ) は、 w= 0のときは以下の式で表すことができる (ただし、 x、 y、 υ (χ, y) 、 v (x, y) は整数) 。 u(x+w, y+w) = u(x, y)
= (((j+q-y) ((ί+ρ-χ) uo + (χ-i) ui)
+ (y-j) ((i+P-x) + (x-i) u3)) m) // (pqk) . · · ( 5) v(x+w, y+w) = v(x, y) ノ
= (((j+q-y) ((i+p-x) 0 +(x-i)v1)
+ (y-j) ((i+p-x) v2 + (x-i) v3)) m) II (pqk)
ただし、 「//」 は通常の除算による演算結果が整数ではない場合にこれ を近隣の整数に丸め込む除算で、 演算子としての優先順位は乗除算と同 等である。 演算誤差を小さくするためには、 非整数値は最も近い整数に 丸め込まれることが望ましい。 このとき整数に 1 /2を加えた値の丸め 込み方法は、
(1) 0に近づける方向に丸め込む、
(2) 0から遠ざける方向に丸め込む、
(3) 被除数が負の場合は 0に近づける方向、 正の場合は 0から遠ざける 方向に丸め込む (除数は常に正であるとする) 、
(4) 被除数が負の場合は 0から遠ざける方向、 正の場合は 0に近づける 方向に丸め込む (除数は常に正であるとする) 、
などが考えられる。 これらの中で (3)と(4)は、 被除数の正負に関わらず丸 め込みの方向が変化しないため、 正負判定が必要ない分だけ処理量の点 で有利である。 (3)を用いた高速処理は、 例えば以下の式によって実現す ることができる。 u(x+w, y+w) = u(x, y)
= (Lpqk + ((j+q-y) ((i+p-x) u0 + (x-i) Uj)
+ (y-j) ((i+P-x) u2 + (x-i) u3)) m + ((pqk)#2))
#(pqk)-L
(6) v(x+w, y+w) = v(x, y)
= (Mpqk + ((j+q-y) ((i+p-x) v0 + (x-i)
+ (y-j) ((i+P-x) v2 + (x-i) v3)) m + ((pqk)#2))
# (pqk) -M ただし、 「#」 は小数点以下を 0の方向に切り捨てる整数の除算であり、 演算の優先順位は乗除算と同じであるとする。 これは、 一般に計算機で は最も実現しやすい形式の除算である。 ここで、 Lと Mは除算の被除数 を常に正に保っための数で、 十分に大きな正の整数である。 また、 (p q k # 2) の項は、 除算結果を最も近い整数に丸め込むために用いられ る。
処理を整数化することはそれ自体処理量の低減に貢献するが、 ここで p、 q kをそれぞれ 2の 、 β、 h k乗 ( ひ 、 β、 h kは負ではない 整数) とすると、 数 5の除算は a + 3 + h kビッ トのシフト演算で実現 できるため、 計算機や専用ハ一ドウエアにおける処理量を大きく減らす ことができる。 さらに mを 2の h m乗とすれば (h mは負ではない整 数、 h m<a + 3 + h k) 、 式 (6) は、 u(x+w, v+w) = u(x, y)
= ((2L+l)«( + +hk-hm-l)
+ (j+q-y) ((i+P-x) uo +
+ (Y-j) ((i+P-x) "2 +(x- i)u3))
» ( + +hk-hm) -L ■… ( 7 ) v(x+w, y+w) = v(x, y)
Figure imgf000013_0001
と書き換えることができ ( 「χ«α」 は χを αビッ ト左にシフトして下 位 αビットに 0を入れる、 「χ>〉ひ」 は Xを αビット右にシフトして上 位 αビットに 0を入れることを意味し、 これらの演算子の優先順位は加 減算と乗除算の中間であるとする) 、 シフトされるビット数を α + /3 + h k- h mとすることができる。
wが 0ではないときには、 w = w n/w dの定義にしたがい、 式 (5) は以下のように書き換えることができる。 u(x+w, y+w) = u(x+^, y+¾
J n' y wn ;
= ((( dj+Wdq-Wdy-Wn) ((wdi+wdp-wdx-wn) u0
+ (wdx+wn-wdi)u!)
+ (wdy+Wn-wj) ((wdi+wdp-wdx-wn) u2
+ (wdx+wn-wdi) u3)) m)
// ( d 2pqk)
(8) v(x+w, y+w) = v( +¾, y+¾i)
, J wn, J wn 7
= (((Wdj+Wdq-Wdy-Wn) ((wdi+wdp-wdx-wn) v0
+ (wdx+wn-wdi)v1)
+ (wdy+Wn-Wdj) ((wdi+wdp-wdx-wn) v2
+ (wdx+wn-wdi) v3》 m)
//(wd 2pqk)
このとき、 w dが2のh w乗でぁり、 かつ h wは負ではない整数であ るとすれば、 (p ' Q ' k ' w d ' wd) による除算は α + |3 + h k+ 2 h wビッ 卜のシフト演算となり、 w= 0の場合と同様に除算をシフト演 算に置換することが可能となる。 また、 式(7) の場合と同様に、 h m < α + i3 + h k+ 2 h wであれば、 分母、 分子の両方を mで割ることに よってシフトされるビッ ト数を α + /3 + h k+ 2 h w— h mビッ トに減 らすことが可能となる。 このように、 wdが 2の h w乗であれば、 w = 0の場合の処理と w≠ 0の場合の処理は本質的に同じである。 以下本明 細書では、 数式が多少複雑となるが、 w≠ 0の場合について検討を行う。 w= 0の場合の計算結果を求めるためには、 w n= 0、 w d= 1、 h w = 0を代入すれば良い。
送信側と受信側で同じグロ一バル動き補償予測画像を得るためには、 代表点の動きべクトルに関する情報を何らかの形で受信側に伝える必要 がある。 代表点の動きベクトルそのまま伝送する方法もあるが、 画像の 隅の点の動きべクトルを伝送し、 この値から代表点の動きべク トルを計 算する方法もある。 この方法に関し、 以下に説明する。
画像の隅の 4個の点 (― c, — c;) 、 ( r - c , - c ) , (― c , s 一 c ) 、 ( r - c , s― c ) の動きベク トルが 1 Zn整数倍の値のみと れるとして (nは正の整数、 c = c n/c d、 かつじ nは負ではない整 数、 かつじ dは正の整数、 かつじ nく c d) 、 これらの水平 .垂直成分 を n倍した (U 00, V 00) 、 (u 01, V 01) 、 ( u 02, v 02) 、 (u 03, v 03) がグロ一バル動きパラメ一夕として伝送されるとする。 cは 画像の隅の点と代表点の間の位相のずれを表している。 この cの典型的 な値としては 0、 1/2、 1/4などが挙げられる。 このとき、 点 ( i , j ) 、 ( i + p, j ) 、 ( i, j + Q) 、 ( i + P, j + Q) それぞれの動き ベク トルの水平 ·垂直成分を k倍したものである (u 0, V 0) 、 (υ 1, ν 1) 、 (u 2, ν 2) 、 (u 3, v 3) を、 uo = u' (i, j)
vo = v'(i, j)
ui = u' (i+p, j)
V! = v'(i+p, j) ·■ · (9 ) u2 = u'(i, j+q)
2 = v'(i, j+q)
u3 = u'(i+p, j+q)
3 = V (i+p, j+q) と定義する。 ただし、 ι ( , y ) 、 v ' (x, y) は、 式(5)を変 形して、
u' (X, y) = (((cds-cn-Cdy) ((cdr-cn-cdx) u00 + (¾χ+¾) u01)
+ (cdy+cn) ((cdr-cn-cdx) u02 + (cdx+cn) U03)) k)
Cd2rsn
(1 0) v' (x, y) = (((cdS-Cn-Cdy) ((cdr-cn-cdx) v00 + ( χ+ ) v01)
+ (cdy+Cn) ((cdr-cn-cdx) v02 + (cdx+cn) V03)) k)
rsn
と定義する。 このとき、 「///」 は通常の除算による演算結果が整数では ない場合にこれを近隣の整数に丸め込む除算で、 演算子としての優先順 位は乗除算と同等である。 こうして (U 0, V 0) 、 (u l, v l) 、 (u 2, V 2) 、 (u 3, v 3) を計算し、 ( i , j ) 、 ( i 十 p , j ) 、 ( i , j + q) 、 ( i + P, j + q) を代表点とするグロ一バル動き補償を行 えば、 ( - c , 一 c) 、 ( r - c , 一 c ) 、 (一 c, s— c ) 、 ( r - c , s - c ) を代表点とするグローバル動き補償を近似することができ る。 このときに、 上で述べたように ρと Qを 2の負ではない整数乗とす れば、 処理を簡略化することが可能となる。 一般的に、 式(5)に示した ような計算によって画像内の画素の動きべク トルを求めるときには、 外 挿の処理を行わないようにすることが望ましい。 これは、 外揷処理によ つて代表点の動きベク トルの量子化誤差を増幅しないようにするためで ある。 以上の理由から、 代表点は画像内の画素をすベて囲むような形に 配置することが望ましい。 従って、 i = j == c = 0の場合などは pと q は rと sとほぼ同じか、 やや大きめの値をとするのが適当である。 しか し、 Pと Qの値をあまり大きくし過ぎると演算に必要なビッ ト数が増加 してしまうので注意が必要である。
式(9) 、 式(1 0) の処理において演算誤差を小さくするためには、 「///」 は非整数値を最も近い整数に丸め込むことが望ましい。 このとき 整数に 1 / 2を加えた値の丸め込み方法としては、 上で述べた(1)〜(4) の方法が考えられる。 ただし、 式(5) (画素ごとに計算) の場合と比較 して、 式(14) (1枚の画像で 4回のみ計算) は演算が実行される回数 が少ないため、式 (1)又は (2)の方法を選んだとしても全体の演算量に大き な影響は与えない。
上述の例のように、 Pと qの値が 2の負ではない整数乗となるように すれば、 グローバル動き補償におけるフレーム間予測画像の合成処理は 大幅に簡略化することができる。 しかし、 ここでもう 1つの問題が発生 する。 例えば、 画像符号化における典型的なパラメ一夕として p = 5 1 2、 Q = 5 1 2、 k= 32、 m= 1 6、 w d= 2、 w n= 1 (w = 0.5) である場合を考えると、 α + 3 + h k+ 2 h w— h m=2 1となる。 こ のことは、 u (x+w, y+w) が 2進数で 1 2ビッ ト以上を必要とす る値である場合には、式(8の演算を高速に実行するために 33ビッ ト以 上のレジス夕が必要になることを意味している。 m= 1 6である場合な どには、 u (x +w, y +w) は実際の動きベク トルの水平成分に 1 6 を掛けた値となるため、 これが 2進数で 1 2ビッ ト以上必要な値となる ケースは十分にあり得る。 しかし、 その一方で 33ビッ ト以上の整数を 格納できるレジス夕を持つプロセッサは現時点では少なく、 かつ将来的 にも高価となることが予想される。 また、 一般的にプロセッサの回路規 模が大きくなれば、 その分だけ消費電力も多くなるため、 大きなレジス 夕を要求するアルゴリズムは消費電力の観点からも不利となる。 従って、 除算をシフト演算に置換できた場合でも、 シフ トされるビッ 卜数はでき るだけ少ないことが望ましい。
この問題を解決するため本発明では、 以下に説明する 2段階の処理に よるアルゴリズムをとる。 ( i , j ) 、 ( i + p, j ) 、 ( i, j + Q) 、
( i + p, j + q) に位置する代表点の動きベク トルを用いて (x+w、 y+w) に位置する画素の動きベク トルを計算する前に、 まず ( i, y + w) と ( i +p, y+w) に存在する仮代表点の動きベク トルを、 水 平 ·垂直成分が lZzの整数倍 (zは正の整数) となるように求める。 上の例と同様に代表点 ( i , j ) 、 ( i + p, j ) 、 ( i, j + Q) 、
( i + p , j + q) の動きベクトルの水平 '垂直成分を k倍したものを それぞれ (u 0, V 0) 、 (u 1, V 1) 、 (u 2, V 2) 、 (u 3, v 3) とする (u 0、 V 0、 U 1、 v l、 u 2、 V 2、 U 3、 v 3は整数) 。 こ のとき、 ( i, y+w) と ( i +p, y +w) に仮代表点を配置し、 こ れらの仮代表点の動きべクトルの水平 ·垂直成分を z倍したものである
(u L(y +w), V L(y +w)) と (u R(y +w), v R(y+w)) を、 以 下のように定義する。 uL(y+w)
= ((( dj+wdq-Wdy-wn) u0 + (wdy+wn-wcli) u2) z) //// (wdqk)
vL(y+w)
= (((wdj+Wdq-Wdy-Wn) v0 + (way+Wn-wj) v2) z)〃//(wdqk)
uR(y+w) ■ .. (1 1 )
= (((wdj+Wdq-Wdy-Wn) i + (w y+Wn-wj) u3) z) ////(wdqk)
vR(y+w)
= (((Wdj+wdq-Wdy-wn) vj + (wdy+Wn-w^) v3) z)〃//(wdqk)
このとき、 「////」 は通常の除算による演算結果が整数ではない場合にこ れを近隣の整数に丸め込む除算で、 演算子としての優先順位は乗除算と 同等である (この 「/〃/」 には、 上で説明した 「///」 と同様の機能が要求 される) 。 ( i , y +w) は ( i, j ) と ( i , j + q) を結んだ線上 に存在しているため、 (u L(y+w), v L(y+w)) は、 (u 0, v 0) と (u 2, v 2) を用いた 1次元の線形内 ·外挿で容易に求めることが できる。 また、 同様に ( i + p, y +w) は ( i + p, j ) と ( i + p, j + Q)を結んだ線上に存在しているため、同じように 1次元の線形内 · 外挿で求めることができる。
このようにして求めた仮代表点の動きべクトル(u L(y +w), V L(y + w)) と (u R(y+w), v R(y+w)) に対して 1次元の線形内 -外 揷を行うことにより、 (x+w、 y +w) に存在する画素の動きべクト ルの水平 .垂直成分を m倍したものである (u (x +w、 y +w) , ν (x+w、 y +w) ) を求める。 この処理は、 以下の式 ( 1 2) に従つ て行われる。 u(x+w,y+w) = (((wdi+wdp-wdx-wn) uL(y+w)
+ wdx+wn-wdi) uR(y+w))m) II (wdpz) v(x+w,y+w) = (((wdi+wdp-wdx-wn) vL(y+w) … ( 1 2 )
+ (wdx+wn-wdi) vR(y+w))m) II (wdpz)
ここでも上と同様に Pを 2の o;乗、 mを 2の h m乗、 zを 2の h z乗、 wdを 2の h w乗 (ひ、 h m、 h z、 w dは負ではない整数) とすれば、 式(1 2における p · z · w dによる除算は、 α + h z+ h w— h mビッ 卜の右シフト (ただし、 h mぐ α + h z+ h wの場合) に置換すること ができる。 しかも、 z = 1 6 (h z=4) とした上で、 上で述べた典型 的なパラメ一夕 P = 5 1 2、 q = 5 1 2 , k= 3 2、 m= 1 6、 w d = 2、 w n= 1 (w = 0.5) を使用した場合、 シフトされるビッ ト数は 1 0 ビッ トとなり、 演算に用いるレジス夕に必要なビッ ト数を大幅に抑える ことが可能となる。 なお、 上の例では、 まず代表点の動きベクトルに対 して垂直方向の 1次元線形内 ·外揷を行って仮代表点の動きべク トルを 求め、 この仮代表点の動きべクトルに対して水平方向の 1次元線形内 · 外揷を行って画素の動きベクトルを求めている。 これとは逆に、 仮代表 点の動きべクトルを求める際には^ 平方向、 画素の動きべク トルを求め る際には垂直方向の 1次元線形内 ·外揷を行っても同様の機能を実現す ることができる。
この方式では、 画素の動きべクトルを求める際に式( 1 1) と式(1 2) の 2段階の処理が必要となるため、 一見演算量が多くなるように思われ る。 しかし、 一旦仮代表点の動きベク トルを求めてしまえば、 これが垂 直座標 y +wに存在しているライン上の r個の画素すべてに対して使用 できるため、 全体の処理量の中に占める式(1 1)の処理量はきわめて少 なくなる。 従って、 シフトされるビット数の削減によって得られる利益 (二より小さいレジス夕の活用) の影響の方が、 式(1 1)の計算を実行 する分の演算量の増加による悪影響より大きくなる。 上記処理により (u (x+w、 y+w) , V (x+w、 y +w) ) の 値が得られた後には、 以下の処理によって (u (x +w、 y +w) , V (X +w、 y+w) ) を整数部 (u I (X + w、 y +w) , v I (x +w、 y + w) ) と小数部 ( u F ( x + w、 y + w ) , v F ( x + w、 y + w ) ) に分けることができる。 ui(x+w,y+w) = ((Lm + u(x+w,y+w)) » hm) - L (1 3)
Vi(x+w,y+w) = ((Mm + v(x+w,y+w)) » hm) - M uF(x+w,y+w) = u(x+w,y+w) - u^x+w'y+w) m
vF(x+w,y+w) = v(x+w,y+w) - vi(x+w,y+w) m (1 4) ただし、 u I (x+w、 y+w) と v I (x + w、 y+w) は整数であり、 画素の動きベクトルの整数部を表している。 一方,、 u F (x +w、 y + w) と v F (x+w、 y +w)はそれぞれ 0以上 m未満の値を持つ整数で あり、 画素の動きベク トルの小数部を m倍したものである。 なお、 上の 例と同様に mは 2の h m乗であり (h mは負ではない整数) 、 Lと M はシフトされる値を負の値ではなくするための十分に大きな整数である t 輝度値の内挿方式として共 1次内挿が用いられる場合には、 さらに以 下の処理によってフレーム間予測画像内の画素の輝度値が求められる。
= +w+ u I (x+w、 y +w) 、 y = y + w+ v I (x +w、 y +w) として、 参照画像の (x ' , y ' ;) 、 (x ' + l, y ' ) 、 (x ' , y' + l ) 、 (x ' + 1 , y ' + 1 ) に位置する画素の輝度値をそれぞ れ Y a、 Y b、 Y c、 Y dとすれば、 フレーム間予測画像において (x + w, y+w) に位置する画素の輝度値 Υ ^ - け
Y(x+w,y+w) = ((m-vF) ((m-uF) Ya + uF Yb) … f 1 5
+ vF ((m-uF) Yc + uF Yd) + (m2» 1 )) » (2hm) 、 1 ノ によって求められる。 ただし、 u F、 v Fはそれぞれ u F(x +w, y + w), v F(x + w, y+w)の略号である。
式(1 2)と式(1 3)では、それぞれ o; + h z+ h w- h mビッ 卜と h m ビッ トの右シフトが行われる。 このことは、 式(1 0)の計算の際に (α + h z+ h w— h m) + h m= a + h z+ h w ビッ 卜のシフ 卜を行えば 一気に u I (X十 w、 y +w) と v l (x +w、 y +w) を求めることが できることを意味する。 このとき、 α + h z+ h wを 8の整数倍とする と、 実装上便利である。 一般的にプロセッサのレジス夕は 8ビッ ト単位 の大きさを持っており、 8ビッ トのレジスタを 2個 (上位ビッ 卜のレジ ス夕と下位ビッ トのレジス夕) つなげて 1 6ビッ 卜のレジス夕として使 用したり、 8ビッ トのレジスタを 4個、 又は 1 6ビッ トのレジス夕を 2 個つなげて 3 2ビッ 卜のレジスタとして使用することができるようにな つている場合が多い。 ここで例えば 1 6ビッ 卜のシフト演算によって u I (x +w、 y +w) と v l (x +w、 y+w) の値が計算されるのであ れば、 わざわざシフト演算を行う必要はなくなる。 つまり、 シフトされ る前の値を 3 2ビットのレジス夕に格納しておき、 その上位 1 6ビッ ト を独立したレジスタとして使用すれば、 その 1 6ビッ トレジス夕に u I (x +w、 y +w) 又は v I (x +w、 y +w) の値が格納されている ことになる。
もちろん、 シフトされるビッ ト数を 8の整数倍とすることは、式(1 0) の処理だけでなく本明細書でこれまで述べてきたあらゆるシフト演算に 対し、 実装を容易にする効果を持つ。 しかし、 特に実行される回数の多 いシフト演算 (例えば画素ごとに実行されるシフト演算) に対して実装 を容易にすることは重要である。 また、 シフトされるビッ ト数が 8の整 数倍ではない場合でも、 分母と分子に事前に同じビット数だけの左シフ トを加えておくことにより、 除算による右シフトを増やすことは可能で ある。 例えば、 6ビットの右シフトによって実現される演算があった場 合に、 シフトされる数値にあらかじめ 4を掛けておく (これは 2ビッ ト の左シフトを行ったことに相当する) ことにより、 同じ演算を 8ビッ ト の右シフトとして実現することが可能となる式( 5の u ( X + w, y +w) に関する式を例にとれば、 あらかじめ u 0、 u 1、 u 2、 u 3を 4倍して おくことにより、 この処理を実現することが可能となる) 。 ただし、 こ のような処理を行う際には、 シフトされる数に関してオーバーフローが 発生しないように注意する必要がある。
画像符号化装置及び画像復号化装置には、 複数の画像サイズに対応で きるようになっているものが多い。 この場合、 例えば式(1 2、 1 3、 1 4を用いたグロ一バル動き補償を実行したときには、 画像サイズの変化 に応じてシフ卜されるビッ ト数が変化する現象が起こり、 シフ卜される ビッ ト数を 8の整数倍に固定しておくことができなくなる。 このような 場合、 次に述べるような対処法がある。 例えば、 上の例のように u I (x + w, y +w) と v l (x +w、 y +w) を永めるために α + h z+ h w ビッ 卜の右シフ卜が必要であり、 ひが 7〜 1 1の値をとり得る場合を考 える。 このとさ、 αが 1 0より小さいときは h z= 5、 h w= 1、 a = 1 1のときは11 2= 4、 h w= lとすれば、 シフトされるビット数を常 に 1 6以下とすることができる。 上で述べたように、 シフトされるビッ ト数が 1 6より小さい場合には、 あらかじめシフトされる数に定数を掛 けておくことにより、 シフトされるビッ ト数を擬似的に 1 6ビッ トとす ることが可能である。 このように、 画像サイズが変化したときに他のパ ラメ一夕 (例えば動きベクトルの量子化ステップサイズ) もこれに合わ せて変化させることにより、 シフトされるビッ ト数が都合の良い値とな るように制御することができる。 しかし、 上記の方法を使う場合には、 復号画像の画質に著しい劣化を生じさせるほど、 動きべク トルの量子化 ステップサイズを大きくしてしまわないように注意する必要がある。 一般的なグローバル動き補償に本明細書で示したアルゴリズムを適用 した場合には、 まず 1 Z n画素精度の画像の隅の点の動きべクトルを用 いて代表点の動きベク トルを 1 Z k画素精度で求め、 続いて代表点の動 きべク トルを用いて仮代表点の動きべク トルを 1 Z z画素精度で求めた 後に、 この仮代表点の動きべク トルを用いて画素の動きべク トルが 1 Z m画素精度で求められる。 画像の隅の点の動きべク トルが動きバラメー 夕として伝送される場合には、 このパラメ一夕による共 1次内 ·外揷を 正確に近似するという意味で、 kをできるだけ大きな値にすることが望 ましい。 しかし、 いずれにせよ代表点の動きベク トルの水平 .垂直成分 には、 量子化の影響で 1 Z ( 2 k ) 以下の絶対値をもつ誤差が含まれる ことになる。 近似を正確にするという意味からは、 仮代表点の動きべク トルも、 なるべく精度を高くすることが望ましい。 しかし、 仮代表点の 動きベク トルは代表点の動きベク トルを用いて求められるため、 代表点 の動きべク トル以上の精度を持たせて計算してもあまり意味がない。 従 つて、 演算に必要なビッ ト数を抑える意味で z≤kとすることが望まし い。 また、 同様の理由により、 m≤ zとすることが望ましい。
これまで共一次内 ·外揷を用いたグローバル動き補償に関して説明し てきたが、 線形内 ·外揷を用いた場合も同様の処理を導入することによ つて、 シフトされるビッ ト数を制御することができる。 例えば、 ( i, j ) 、 ( i + p , j ) 、 ( i , j + q) に存在する ( i、 j 、 P、 Qは 整数) 代表点の動きべクトルの水平 ·垂直成分を k倍したものをそれぞ れ (u 0, V 0) 、 (u 1, V 1) 、 (υ 2, V 2) とする (u 0、 ν 0、 u 1、 V 1、 u 2、 V 2は整数) 。 このとき、 画素 (x +w, y +w) の 動きベクトルの水平 '垂直成分を m倍したもの (u(x+w, y +w), v(x +w, y +w)) は以下の式 ( 1 6) で表すことができる (ただし、 x、 y、 υ (X + w, y +w)、 v (x + w, y + w)は整数、 wの定義は上 と同じ) 。 u(x+w,y+w) = (((ui-uo) wdx+wn- wdi) q
+ (u2-u0) (way+Wn-Wdj) p + u0wdpq) m)
//(wdpqk) (1
v(x+w,y+w) = (((vj-vo) (wdX+Wn-Wdi) q
+ (v2-v0) (wdy+wn-wclj) p + v0wdpq) m)
//(wdpqk)
この場合も p、 Q、 k、 m、 wdがそれぞれ 2の α乗、 /3乗、 h k乗、 h m乗、 h w乗であり (α、 β、 h k、 h m、 h wは負ではない整数) , さらに α≥|3であるとすれば、 この式は u(x+w,y+w) = (l(u u0) (wdx+wn-wdi) 2な- P
+ (u2-u0; (wdy+Wn-wj) + u0wdp) m) // (wdpk)
v(x+w,y+w) = (((v1-v0)(wdx+wn- wdi)2a—卩 .·■ (〗
+ (v2-v。) (wdy+Wn-Wdj) + v0wdp) m) II (wdpk) と書き換えることができ、 共 1次内 ·外挿を用いた場合と同様に、 α + h k+ h wビッ トの右シフトにより (x + w, y + w) に存在する画素 の動きベクトルの整数部を求めることができる。 従って、 ひ + h k+ h wが 8の整数倍となるようにすれば、 上と同様の理由により実装を行い やすくすることができる。 なお、 α < ι3の場合には、 シフトされるビッ ト数は i3 + h k+ h wビッ トとなる。
以下、 上記フレーム間予測画像の合成処理を採用する本発明の符号化 方法及び復号化方法を実施する画像符号化装置、 復号化装置の構成につ いて述べる。
第 6図は、 本発明によるに画像符号化装置の一実施形態の構成を示す。 同図において、 動き補償処理部 6 1 6を除いては、 従来知られている画 像符号化装置と実質的に同じである。
減算器 6 0 2は入力画像 (符号化しょうとする現フレームの原画像) 6 0 1とフレーム間 Zフレーム内符号化切り換えスィツチ 6 1 9の出力 画像 6 1 3 (フレーム間予測画像) との差を計算し、 誤差画像 6 0 3を 出力する。 この誤差画像は、 0 (:丁変換器6 0 4で13 (:丁係数に変換さ れた後に量子化器 6 0 5で量子化され、 量子化 D C T係数 6 0 6となる。 この量子化 D C T係数は伝送情報として通信路に出力されると同時に、 符号化器内でもフレーム間予測画像を合成するために使用される。
以下にフレーム予測画像合成の手順を説明する。 量子化 D C T係数 6 0 6は、 逆量子化器 6 0 8と逆 D C T変換器 6 0 9を経て復号誤差画像 6 1 0 (受信側で再生される誤差画像と同じ画像) となる。 これに、 加 算器 6 1 1においてフレーム間 Zフレーム内符号化切り換えスィッチ 6 1 9の出力画像 6 1 3 (後述) が加えられ、 現フレームの復号画像 6 1 2 (受信側で再生される現フレームの復号画像と同じ画像) を得る。 こ の画像は一旦フレームメモリ 6 1 4に蓄えられ、 1フレームの時間だけ 遅延される。 従って、 現時点では、 フレームメモリ 6 1 4は前フレーム の復号画像 6 1 5を出力している。 この前フレームの復号画像と現フレ —ムの入力画像 6 0 1が動き補償処理部 6 1 6に入力される。 動き補償 処理部 6 1 6は前述のフレーム間予測画像の合成を行う。 その構成につ いては後で述べる。
予測画像 6 1 7は、 「0」 信号 6 1 8と共にフレーム間 Zフレーム内 符号化切り換えスィッチ 6 1 9に入力される。 このスィッチは、 両入力 のいずれかを選択することにより、 フレーム間符号化とフレーム内符号 化を切り換える。 予測画像 6 1 7が選択された場合 (第 6図はこの場合 を表している) には、 フレーム間符号化が行われる。 一方、 「0」 信号 が選択された場合には、 入力画像がそのまま D C T符号化されて通信路 に出力されるため、 フレーム内符号化が行われる。 受信側が正しく復号 化画像を得るためには、 送信側でフレーム間符号化が行われたかフレー ム内符号化が行われたかを知る必要がある。 このため、 識別フラグ 6 2 1が通信路へ出力される。 最終的な H . 2 6 1符号化ビッ トストリーム 6 2 3は多重化器 6 2 2で量子化 D C T係数、 動きべク トル、 フレ一ム 内 Zフレーム間識別フラグの情報を多重化することによって得られる。 第 7図は、 第 6図の符号化器が出力した符号化ビッ トストリ一ムを受 信する復号化器 7 0 0の構成例を示す。 受信したビッ トストリーム 7 1 7は、 分離器 7 1 6で量子化 D C T係数 7 0 1、 動きべク トル 7 0 2 、 フレーム内 Zフレーム間識別フラグ 7 0 3に分離される。 量子化 D C T 係数 7 0 1は逆量子化器 7 0 4と逆 D C T変換器 7 0 5を経て復号化さ れた誤差画像 7 0 6となる。 この誤差画像は加算器 7 0 7でフレーム間 /つレーム内符号化切り換えスィツチ 7 1 4の出力画像 7 1 5を加算さ れ、 復号化画像 7 0 8として出力される。 フレーム間 フレーム内符号 化切り換えスィッチはフレーム間/フレーム内符号化識別フラグ 7 0 3 に従って、 出力を切り換える。 フレーム間符号化を行う場合に用いる予 測画像 7 1 2は、 予測画像合成部 7 1 1において合成される。 ここでは、 フレームメモリ 7 0 9に蓄えられている前フレームの復号画像 7 1 0に 対して、 受信した動きべクトル 7 0 2に従って位置を移動させる処理が 行われる。 一方フレーム内符号化の場合、 フレーム間 Zフレーム内符号 化切り換えスィッチは、 「0」 信号 7 1 3をそのまま出力する。
第 8図は、 代表点の動きべクトルを伝送する線形内 ·外挿に基づくグ ローバル動き補償方式を採用した画像符号化器の動き補償処理部 6 1 6 の構成例を示す。 第 6図と同じ番号は同じものを指す。 グローバル動き 推定部 8 0 2で前フレームの復号画像 6 1 5と現フレームの原画像 6 0 1との間でグローバル動き補償に関する動き推定が行われ、 グローバル 動き補償のパラメ一夕 (例えば、 上記 u a、 V a、 u b、 v b、 u c、 v c、 u d、 v dの値) が推定される。 これらの値に関する情報 8 0 3は動き 情報 6 2 0の一部として伝送される。 グローバル動き補償の予測画像 8 0 4は式(3 )を用いてグロ一バル動き補償予測画像合成部 8 0 8で合成 され、 ブロックマッチング部 8 0 5に供給される。 ここでは、 グロ一バ ル動き補償の予測画像と現フレームの原画像との間でブロックマツチン グによる動き補償 (動き推定と予測画像合成) が行われ、 ブロックの動 きべク トル情報 8 0 6と最終的な予測画像 6 1 7が得られる。 この動き べク トル情報は動きパラメ一夕情報と多重化部 8 0 7において多重化さ れ、 動き情報 6 2 0として出力される。
第 1 0図は、 第 7図の予測画像合成部 7 1 1の構成例を示す。 他の図 と同じ番号は同じものを指す。 前フレームの復号画像 7 1 0に対し、 動 き情報 7 0 2から分割部 1 0 0 2において抽出されたグローバル動き補 償パラメ一夕 8 0 3を用いて、 グローバル動き補償予測画像合成部 8 0 8においてグローバル動き補償の予測画像 8 0 4が合成される。 画像 8 0 4はブロックマッチング予測画像合成部 1 0 0 1に供給され、 動き情 報 7 0 2から抽出されたブロックマッチングの動きべク トル情報 8 0 6 を用いて最終的な予測画像 7 1 2が合成される。
第 9図は、 動き補償処理部 6 1 6の他の構成例をに示す。 第 6図と同 じ番号は同じものを指す。 この例では、 各ブロックに関してグロ一バル 動き補償かプロックマッチングのいずれかが適用される。 前フレームの 復号画像 6 1 5と現フレームの原画像 6 0 1 との間で、 グローバル動き 推定部 9 0 2、 グロ一バル動き補償予測画像合成部 9 1 1ではグロ一バ ル動き補償、 ブロックマッチング部 9 0 5ではブロックマッチングによ り、 それぞれ独立に動き補償の処理が行われる。 選択スィッチ 9 0 8は、 グロ一バル動き補償による予測画像 9 0 3とブロックマッチングによる 予測画像 9 0 6の間でブロックごとに最適な方式を選択する。 グロ一バ ル動き補償パラメ一夕 9 0 4、 ブロックごとの動きベク トル 9 0 7、 グ ローバル動き補償/ブロックマッチングの選択情報 9 0 9は多重化部 9 1 0で多重化され、 動き情報 6 2 0として出力される。
第 11 図は、 動き補償処理部 9 0 1を用いる画像符号化器が生成する ビッ トストリームを復号化する復号化器の、 予測画像合成部 1 1 0 3の 構成例を示す。 他の図と同じ番号は同じものを指す。 前フレームの復号 画像 7 1 0に対し、 動き情報 7 0 2から分割部 1 1 0 2において抽出さ れたグローバル動き補償パラメ一夕 9 0 4を用いて、 グローバル動き補 償予測画像合成部 9 1 1においてグローバル動き補償の予測画像 9 0 3 が合成される。 また、 これとは独立に前フレームの復号画像 7 1 0に対 し、 動き情報 7 0 2から抽出されたブロックマッチングの動きべクトル 情報 9 0 7を用いてブロックマッチング予測画像合成部 1 1 0 1におい てブロックマッチングの予測画像 9 0 6が合成される。 選択スィッチ 1 1 0 4は、 グロ一バル動き補償による予測画像 9 0 3とブロックマッチ ングによる予測画像 9 0 6の間で、 動き情報 7 0 2から抽出された選択 情報 9 0 9に基づいて、 ブロックごとに一方の方式を選択する。 このブ ロックごとの選択処理を経て; 最終的な予測画像 7 1 2が合成される。 第 12 図は、 上述の本発明によるグロ一バル動き補償予測画像合成部 の機能的構成を示す。 グローバル動き補償パラメ一夕として、 画像の隅 の点の動きべクトルが伝送されるとする。 この画像の隅の点の動きべク トルに関する情報 1 2 0 4を用いて演算処理部 1 2 0 5において式(9 )、 ( 1 0 ) を用いて代表点の動きベク トルが計算される。 この代表点の動 きべクトルに関する情報 1 2 0 6を用いて演算処理部 1 2 0 7では、 式 ( 1 1 )を用いてライン (垂直座標が共通の値である画素) ごとに仮代表 点の動きべク トルが計算される。 さらにこの仮代表点の動きべクトルに 関する情報 1 2 0 8を活用して演算処理部 1 2 0 9では画素ごとの動き ベク トルが式(1 2 )により計算される。 一方、 処理部 1 2 1 1では、 こ の画素ごとの動きべク トルに関する情報 1 2 1 0と、 前フレームの復号 画像 1 2 0 2を用いてグローバル動き補償の予測画像 1 2 0 3が合成、 出力される。
本発明は、 専用回路 ·専用チップを用いる画像符号化装置、 画像復号 化装置の他に、 汎用プロセッサを用いるソフトウエア画像符号化装置、 ソフトウエア画像復号化装置にも適用することができる。
図 4及び図 5は、 それぞれソフトウェア画像符号化装置 4 0 0とソフ トウエア画像復号化装置 5 0 0の例を示す。 ソフトウエア符号化装置 4 0 0では、 入力画像 4 0 1は、 入力フレームメモリ 4 0 2に蓄えられ、 汎用プロセッサ 4 0 3は入力フレームメモリ 4 0 2から情報を読み込ん で符号化の処理を行う。 汎用プロセッサ 4 0 3を駆動するためのプログ ラムはハードディスクゃフロッピ一ディスクなどによる蓄積デバイス 4 0 8から読み出されてプログラム用メモリ 4 0 4に蓄えられる。 また、 汎用プロセッサ 4 0 3は、 処理用メモリ 4 0 5を活用して符号化の処理 を行う。 汎用プロセッサ 4 0 3が出力する符号化情報は、 一旦出力バッ ファ 4 0 6に蓄えられた後に符号化ビッ トストリーム 4 0 7として出力 される。
図 1 3は、 図 4に示したソフトウェア符号化器上で動作する符号化ソ フトウエアのフローチヤ一トを示す。 まずステップ 1 3 0 1で画像符号 化処理が開始され、 ステップ 1 3 0 2で変数 Nに 0が代入される。 続い てステツプ 1 3 0 3、 ステツプ 1 3 0 4で Nの値が 1 0 0である場合に は、 0が代入される。 Nはフレーム数のカウン夕であり、 1枚のフレ一 ムの処理が終了する度に 1が加算され、 符号化を行う際には 0〜 9 9の 値をとることが許される。 Nの値が 0であるときには符号化中のフレー ムは I フレーム (動き補償は行わず、 全てのブロックでフレーム内符号 化が行われるフレーム) であり、 それ以外のときは Pフレーム (動き補 償を行うブロックの存在するフレーム) となる。 Nの値が 1 0 0である ことは、 Pフレーム が 9 9枚符号化された後に I フレームが 1枚符号化 されることを意味している。 Nの最適な :は符号化器の性能や符号化器 が使用される環境により変化する。 この例では 1 0 0という値を使用し たが、 これは Nの値が必ず 1 0 0でなければならいことを意味している わけではない。 フレームタイプ ( 1又は ) の決定と出力はステップ 1 3 0 5で行われる。 Nの値が 0である場合にはフレームタイプの識別情 報として' I ' が出力バッファに出力され、 これから符号化処理を行う フレームは I フレームとなる。 なお、 ここで 「出力バッファに出力され る」 とは、 出力バッファ (第 4図の 4 0 6 ) に蓄えられた後に符号化ビ ッ トストリームの一部として符号化装置から外部に出力される。 Nが 0 ではない場合には、 フレームタイプの識別情報として' P ' が出力バッ ファに出力され、 これから符号化処理を行うフレームは Pフレームとな る。 ステップ 1 3 0 6では入力画像はフレームメモリ Aに蓄えられる。 なお、 ここで述べたフレームメモリ Aとは、 ソフトウェア符号化器のメ モリ領域 (例えば、 第 4図のメモリ 4 0 5内にこのメモリ領域が確保さ れる) の一部を意味している。 ステップ 1 3 0 7では、 現在符号化中の フレームが I フレームであるか否かが判定される。 そして、 I フレーム ではない場合にはステップ 1 3 0 8で動き推定 ·動き補償処理が行われ る。 このステップ 1 3 0 8における処理の詳細を表すフローチヤ一卜の 例を第 1 4図に示す。 まず、 ステップ 1 4 0 1でフレームメモリ Aと B (フレームメモリ Bには前フレームの復号画像が格納されている) に蓄 えられた画像の間でグローバル動き推定が行われ、 グローバル動きパラ メータとして、 画像の隅の点の動きべク トルが出力バッファに出力され る。 ステップ 1 4 0 2では、 この画像の隅の点の動きベクトルを用いて 式(9 )、 ( 1 0 ) により代表点の動きベク トルが計算される。 続いてス テツプ 1 4 0 3では、 変数 Mに 0が代入される。 Mは画像内のラインの 番号を表し、 Mが 0であることは、 画像の最も上のラインを処理中であ ることを意味し、 Mが画像のライン数から 1 を引いた値であるときには、 画像の最も下のラインを処理中であることを意味する。 ステツプ 1 4 0 2で計算された代表点の動きべク トルを用いて、 ステップ 1 4 0 4では 式(1 1 )により第 Mラインの仮代表点の動きベク トルが計算される。 そ してこの仮代表点の動きべク トルを活用してステップ 1 4 0 5では第 M ラインに含まれる画素全ての動きべク トルが式(1 2 )により計算され、 求められた動きべク トルに従って、 フレームメモリ Bに格納されている 前フレームの復号画像を用いてグローバル動き補償予測画像の第 Mライ ンが合成され、 フレームメモリ Fに蓄えられる。 ステップ 1 4 0 6では Mの値に 1が加えられ、 ステップ 1 4 0 7では Mの値が画像のライン数 に等しければステツプ 1 4 0 8へ、 等しく無ければステツプ 1 4 0 4に 移動する。 ステップ 1 4 0 8の処理が開始される時点では、 フレームメ モリ Dには、 グローバル動き補償による予測画像が蓄えられている。 ス テツプ 1 4 0 8以降では、 ブロックマッチングの処理が行われる。 まず ステップ 1 4 0 8では、 フレームメモリ Fとフレームメモリ A (入力画 像) との間でブロックごとに動き推定の処理が行われ、 各ブロックの動 きべク トルが求められ、 その動きべク トルは出力バッファに出力される。 続いてこの動きベクトルと、 フレームメモリ Fに蓄えられた画像を用い てステップ 1 4 0 9ではブロックマッチングによる予測画像が合成され、 これが最終的な予測画像となってフレームメモリ Cに蓄えられる。 そし てステップ 1 4 1 0ではフレームメモリ Aと Cの差分画像が求められ、 これがフレームメモリ Aに蓄えられる。
ここで第 13 図に戻る。 ステップ 1 3 0 8における処理が開始される 直前、 フレームメモリ Aには、 現フレームが I フレームである場合には 入力画像が、 現フレームが Pフレームである場合には入力画像と予測画 像の差分画像が蓄えられている。 ステップ 1 3 0 8では、 このフレーム メモリ Aに蓄えられた画像に対して D C Tが適用され、 ここで計算され た D C T係数は量子化された後に出力バッファに出力される。 さらにス テツプ 1 3 1 0で、 この量子化 D C T係数には逆量子化され、 逆 D C T が適用され、 この結果得られた画像はフレームメモリ Bに格納される。 続いてステップ 1 3 1 1では、 再び現フレームが I フレームであるか否 かが判定され、 I フレームではない場合にはステップ 1 3 1 2でフレー ムメモリ Bと Cの画像が加算され、 この結果がフレームメモリ Bに格納 される。 ここで、 1フレーム分の符号化処理が終了することになる。 そ して、 ステツプ 1 3 1 3の処理が行われる直前にフレームメモリ Bに格 納されている画像は、 符号化処理が終了したばかりのフレームの再生画 像 (復号側で得られるものと同じ) である。 ステップ 1 3 1 3では、 符 号化が終了したフレームが最後のフレームであるか否かが判定され、 最 後のフレームであれば、 符号化処理が終了する。 最後のフレームではな い場合には、 ステップ 1 3 1 4で Nに 1が加算され、 再びステップ 1 3 0 3に戻って次のフレームの符号化処理が開始される。 なお、 ここで説 明したフローチヤ一トはグロ一バル動き補償を行なった結果合成された グロ一バル動き補償予測画像に対してブロックマッチングを適用する方 法 (第 8図の動き補償処理部 8 0 1を使用する装置に対応する方法) に 関するものであるが、 グロ一バル動き補償とブロックマッチングを並列 に行う方法 (第 9図の動き補償処理部 9 0 1を使用する装置に対応する 方法) に関するフローチャートもわずかの変更を加えるのみで作成でき ることは明らかである。
一方、 ソフトウェア復号化装置 5 0 0では、 入力された符号化ビット ストリーム 5 0 1は、 一旦入力バッファ 5 0 2に蓄えられた後に、 汎用 プロセッサ 5 0 3に読み込まれる。 汎用プロセッサ 5 0 3はハ一ドディ スクゃフロッピ一ディスクなどによる蓄積デバイス 5 0 8から読み出さ れたプログラムを蓄えるプログラム用メモリ 5 0 4および処理用メモリ 5 0 5を活用して復号化処理を行う。 この結果得られた復号化画像は、 一旦出力フレームメモリ 5 0 6に蓄えられた後に、 出力画像 5 0 7とし て出力される。
第 15 図は、 第 5図に示したソフトウェア復号化装置上で動作する復 号化ソフトウエアのフローチヤ一卜を示す。 1 5 0 1で処理が開始され、 まずステップ 1 5 0 2で入力情報があるか否かが判定される。 ここで入 力情報が無ければステップ 1 5 0 3で復号化の処理を終了する。 入力情 報がある場合には、 まず、 ステップ 1 5 0 4でフレームタイプ情報が入 力される。 なお、 この 「入力される」 とは、 入力バッファ 5 0 2に蓄え られた情報を読み込むことを意味している。 ステップ 1 5 0 5では、 読 み込んだフレームタイプ情報が' I ' であるか否かが判定される。 そし て、 ' I ' ではない場合には、 ステップ 1 5 0 6で予測画像合成処理が 行われる。 このステップ 1 5 0 6で行われる処理の詳細をフ口一チヤ一 卜を第 16図に示す。
まず、 ステップ 16 0 1で画像の隅の点の動きべク トルが入力され る。 ステップ 16 0 2では、 この画像の隅の点の動きべク トルを用いて 式(9 )、 ( 1 0 ) により代表点の動きベク トルが計算される。 続いてス テツプ 16 0 3では、 変数 Mに 0が代入される。 Mは画像内のラインの 番号を表し、 Mが 0であることは、 画像の最も上のラインを処理中であ ることを意味し、 Mが画像のライン数から 1を引いた値であるときには、 画像の最も下のラインを処理中であることを意味する。 ステップ 16 0 2で計算された代表点の動きベクトルを用いて、 ステップ 16 0 4では 式(1 1 )により第 Mラインの仮代表点の動きベク トルが計算される。 そ してこの仮代表点の動きベク トルを活用してステップ 16 0 5では第 M ラインに含まれる画素すベての動きべク トルが式(1 2 )により計算され、 求められた動きべク トルに従って、 フレームスモリ Eに格納されている 前フレームの復号画像を用いてグローバル動き補償予測画像の第 Mライ ンが合成され、 フレームメモリ Gに蓄えられる。 なお、 ここで述べたフ レームメモリ Gとは、 ソフトウエア復号化器のメモリ 5 0 5の領域の一 部を意味している。 ステップ 16 0 6では Mの値に 1が加えられ、 ステ ップ 16 0 7では Mの値が画像のライン数に等しければステップ 16 0 8 へ、 等しく無ければステップ 16 0 4に移動する。 ステップ 16 0 8の処 理が開始される時点では、 フレームメモリ Gには、 グローバル動き補償 による予測画像が蓄えられている。 ステップ 16 0 8では、 ブロックマ ツチングの処理が行われる。 ブロックごとの動きベク トル情報が入力さ れ、 この動きべクトルとフレームメモリ Gに格納された画像を用いてブ 口ックマッチングによる予測画像が合成され、 この予測画像はフレーム メモリ Dに格納される。
ここで第 15 図に戻る。 ステップ 1 5 0 7では量子化 D C T係数が入 力され、 これに逆量子化、 逆 D C Tを適用して得られた画像がフレーム メモリ Eに格納される。 ステップ 1 5 0 8では、 再び現在復号化中のフ レームが I フレームであるか否かが判定される。 そして、 I フレームで はない場合には、 ステップ 1 5 0 9でフレームメモリ Dと Eに格納され た画像が加算され、 この結果の画像がフレームメモリ Eに格納される。 ステップ 1 5 1 0の処理を行う直前にフレームメモリ Eに格納されてい る画像が、 再生画像となる。 ステップ 1 5 1 0では、 このフレームメモ リ Eに格納された画像が出力フレームメモリ 5 0 6に出力され、 そのま ま出力画像として復号化器から出力される。 こうして 1フレーム分の復 号化処理が終了し、 処理は再びステップ 1 5 0 2に戻る。
第 4図と第 5図に示したソフトウエア画像符号化装置、 ソフトウェア 画像復号化装置に本明細書で示したフレーム間予測画像の合成方法を実 行するプログラムを実行させると、 グローバル動き補償やヮ一ピング予 測の処理をより少ない演算量で実現することが可能となる。 このため、 本発明を用いない場合と比較して、 消費電力の低減、 装置の低価格化、 より大きな画像を実時間で処理できるようになる、 画像符号化 ·復号化 以外の処理を含む同時並列処理を行うことが可能となる、 等の効果を期 待することができる。 また、 本明細書で示したアルゴリズムを用いるこ とにより、 従来の画像復号化装置では演算能力の限界から実時間で再生 できなかったような圧縮画像データを、 実時間で再生することが可能と なる。
以上本発明の実施形態について述べたが、 以下のような実施形態も本 発明に含まれる。 ( 1 ) 従来型の画像符号化方法では、 フレーム間予測を行った後に離散 コサイン変換などによる誤差符号化が行われるが、 フレーム間予測画像 をそのまま再生画像として使用する画像符号化方法 ·復号化方法に対し ても、 本発明は有効である。
( 2 ) 本明細書では、 画像の形状は長方形であることを仮定したが、 長 方形以外の任意の形状を持つ画像にも、 本発明は適用可能である。 この 場合、 まず任意形状の画像を囲む長方形に対して本発明の処理を適用し、 任意形状画像に含まれる画素に対してのみ動きべク トルを求める演算を 行えば良い。
( 3 ) 本明細書では、 p又は Qの値が 2の負ではない整数乗であること を前提として 2段階の処理による動きべク トルの内 '外挿アルゴリズム を示した。 しかし、 p及び qが 2の負ではない整数乗ではない場合でも、 この 2段階処理アルゴリズムは除算における分母の値を小さくするとい う効果を持っており、 レジス夕のオーバーフローを防ぐ意味で有効であ る。 産業上の利用可能性
図 1 7に、 本明細書で示した予測画像合成方法を用いる符号化 ·復号 化装置の具体例を示す。 (a) は、 パソコン 1 7 0 1に画像符号化 ·復 号化用のソフトウェアを組み込むことにより、 画像符号化 ·復号化装置 として活用する場合を示す。 このソフトウエアは何らかの蓄積メディァ ( C D - R O M , フロッピーディスク、 ハードディスクなど) に記録さ れており、 これをパソコンが読み込んで使用する。 また、 さらに何らか の通信回線にこのパソコンを接続することにより、 映像通信端末として 活用することも可能となる。
(b) は本発明による符号化方法による動画像情報を蓄積メディァ 1 7 0 2に記録した符号化ビットストリームを読み取り、 本発明による装 置を持つ再生装置 1 7 0 3で再生し、 再生された映像信号をテレビモニ タ 1 7 0 4に表示する場合を示す。 再生装置 1 7 0 3は符号化ビットス トリームを読み取るだけであり、 テレビモニタ 1 7 0 4内に復号化装置 が組み込まれている場合もある。
(c)は、 ディジタル放送用のテレビ受信機 1 Ί 0 5に本発明の復号化装 置を組み込んだ場合を示す。 また、 (d ) は、 ケーブルテレビ用のケー ブル 1 7 0 8又は衛星 Z地上波放送のアンテナに接続されたセットトツ プボックス 1 7 0 9内に復号化装置を実装し、 これをテレビモニタ 1 7 ίθ 1 0で再生する場合を示す。 このとき、 (b ) の 1 7 0 4と同様に、 セ ットトップボックスではなく、 テレビモニタ内に符号化装置を組み込ん でも良い。
( e ) は、 ディジタル携帯端末 1 7 0 6に本発明の符号化器、 復号化 器を組み込んだ場合を示す。 ディジタル携帯端末の場合、 符号器 ·復号 化器を両方持つ送受信型の端末の他に、 符号化器のみの送信端末、 復号 化器のみの受信端末の 3通りの実装形式のいずれでもよい。
( f ) は、 動画像撮影用のカメラ 1 7 0 7の中に符号化装置を組み込 む場合を示す。 また、 カメラ 1 7 0 7は映像信号を取り込むのみであり、 これを専用の符号化装置 1 7 1 1に組み込む構成でもよい。 この図に示 0 したいずれの装置 ' システムに関しても、 本明細書に示した方法を実装 することにより、 従来の技術を活用した場合と比較して、 装置を簡略化 することが可能となる。
25

Claims

請求の範囲
1. 第 1のフレーム画像と時間的に異なる第 2のフレーム画像から 第 1のフレーム画像の予測画像を合成する方法において、
第 1のフレーム画像と第 2のフレ一ム画像から第 1のフレーム画
5 像の座標 ( i, :! ) 、 ( i + p, j ) 、 U , j + q) 、 ( i + p, j + q) に ( i、 j 、 p、 Qは整数) を持つ 4つの代表点の動きべク トル動きべク トル (動きべク トルの水平 ·垂直成分が 1 /kの整数倍 の値をとり (ただし、 kは 2の hk乗、 かつ hkは負ではない整数) を求 める第 1ステップと、
10 画素のサンプリング間隔を水平、 垂直方向共に 1 として、 サンプリ ング点が座の水平、 垂直成分が、 共に整数に wを加えた数である点の 上に存在している画像を対象として (ただし、 w = wnZwd、 かつ wn は負ではない整数、 かつ wdは 2の 乗、 かつ hwは負ではない整数、 かつ wn<wd) 、 4個の代表点における動きベク トルに対し、 共 1次 内 '外揷を行うことによって座標 (x +w, y +w) に位置する画素 の動きベク トルを計算する第 2ステップを有し、
上記第 2ステップが、 座標 ( i , j ) と U, j + Q) に位置する 代表点の動きべク トルに対して線形内 · 外揷を行うことにより、 座標 ( i , y+w) に位置する点の動きベク トルの水平 · 垂直成分をそれ 0 ぞれ 1 Z zの整数倍をとる数値として (ただし、 zは 2の hz乗、 かつ hzは負ではない整数) 求め、 さらに座標 ( i + p, j ) と ( i + p, j + q) に位置する代表点の動きべク トルに対して
線形内 '外挿を行うことにより、 座標 ( i + P, y +w) に位置する 点の動きべク トルの水平 ·垂直成分をそれぞれ 1 Z zの整数倍をとる 数値として求める第 3ステップと、
その後に、 座標 ( i, y +w) と ( i + p , y + w) に位置する上 記 2個の動きべク トルに対して線形内 ·外揷を行うことにより、 座標 (x +w, y +w) に位置する画素の動きベク トルの水平 ·垂直成分 をそれぞれ 1 /mの整数倍をとる数値として (ただし、 mは 2の hm乗、 かつ hniは負ではない整数) 求める第 4ステップ途をもつことを特徴と するフレーム間予測画像の合成方法。
2. 第 1のフレーム画像と時間的に異なる第 2のフレーム画像から 第 1のフレーム画像の予測画像を合成する方法において、
第 1のフレーム画像と第 2のフレーム画像から第 1のフレーム画像 の座標 ( i , j ) 、 ( i + p, j ) 、 U , j + q) 、 ( i + p , j + q) に ( i、 j 、 p > Qは整数) を持つ 4つの代表点の動きべク ト ル動きべク トル (動きべク トルの水平 · 垂直成分が 1 / kの整数倍の 値をとり (ただし、 kは 2の hk乗、 かつ hkは負ではない整数) を求め る第 1ステップと、
画素のサンプリング間隔を水平、 垂直方向共に 1 として、 サンプリ ング点が座標の水平、 垂直成分が、 共に整数に wを加えた数である点 の上に存在している画像を対象として (ただし、 v = wnZwd、 かつ wnは負ではない整数、 かつ wdは 2の hw乗、 かつ hwは負ではない整 数、 かつ wn<wd) 、 4個の代表点における動きベク トルに対し、 共 1次内 ' 外揷を行うことによって座標 (x +w, y +w) に位置する 画素の動きべク トルを計算する第 2ステップを有し、
上記第 2ステツプが、 座標 ( i, j ) と ( i + p, j ) に位置する 代表点の動きべク トルに対して線形内 ·外揷を行うことにより、 座標 (x +w, j ) に位置する点の動きベク トルの水平 ·垂直成分をそれ ぞれ 1 / zの整数倍をとる数値として (ただし、 zは 2の hz乗、 かつ hzは負ではない整数) 求め、 さらに座標 ( i , j + Q) と ( i + p, j + q) に位置する代表点の動きベク トルに対して線形内 ·外揷を行 うことにより、 座標 (X +w, j + Q ) に位置する点の動きベク トル の水平 ·垂直成分をそれぞれ 1 / zの整数倍をとる数値として求める 第 3ステップと、
その後に、 座標 (x +w, j ) と (x +w, j + p) に位置する上 記 2個の動きべク トルに対して線形内 · 外揷を行うことにより、 座標 (x +w, y +w) に位置する画素の動きベク トルの水平 ·垂直成分 をそれぞれ 1 Zmの整数倍をとる数値として (ただし、 mは 2の hm乗、 かつ hmは負ではない整数) 求める第 4ステップとをもつことを特徴と するフレーム間予測画像の合成方法。
3. 上記座標 ( i , j ) 、 ( i + p , j ) 、 ( i , 」' + q ) 、 ( i + P, j 十 Q ) に位置する代表点の動きベク トルの水平 · 垂直成分を k倍したものである (u0, V 0) 、 ( u 1, V 1) 、 ( u 2. v 2) 、 (u 3, v 3) を用いて座標 (x +w, y +w) に位置する画素の動きべク トルを求めるときに、 座標 ( i , y +w) に位置する点の動きべク ト ルの水平 ·垂直成分をそれぞれ z倍したものである (uL (y +w), V L(y +w)) を、
u L ( y + w) = ( ( ( q · wd— y · wd— wn) u 0 + ( y · wd + wn) u ) z ) 1111 (q · k · wd) ,
v L ( y + w) = ( ( ( q · wd— y · wd— wn) v 0 + ( y · wd + wn) v2) z ) 1111 (q · k · wd) を計算することにより (ただし、 「/〃/」 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求め、
更に座標 ( i + p, y +w) に位置する点の動きベク トルの水平 · 垂直成分をそれぞれ z倍したものである (uR(y +w), vR(y+w)) を、
u R ( y + w) = ( ( ( q · wd— y · wd— wn) u 1 + ( y - wd + wn) u3) z ) 1111 (q · k · wd) 、
v R (y + w) = ( ( ( q · wd— y · wd— wn) v 1 + ( y · wd + wn) v3) z ) 1111 (q · k · wd) 、
を計算することにより求めた後に、 座標 (x +w, y +w) に位置す る画素の動きべク トルの水平 ·垂直成分をそれぞれ m倍したものであ る K M (x + w, y + w), v ix + w, y + w ) ) を
u ( x + w, y + w) = ( ( ( p · w d— x · w d— w n ) u L ( y + w) + (x - wd + wn) u R ( y + w) ) m) II ( p · z - wd)
v ( + w, y +w) = ( ( (p ' wd— x ' wd— wn) vL(y +w) + ( x - wd + wn) v R ( y + w ) ) m) II ( p · z - wd)
を計算することによって (ただし、 「//」 は通常の除算による演算結 ' 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求めることを特徴とする請求項 1 に記載のフレーム間予測画像の合成方法。
4. 座標 ( i, j ) 、 ( i + p , j ) 、 ( i, j + Q ) 、 ( i + p, j + q ) に位置する代表点の動きベク トルの水平 ·垂直成分を k倍し たものである (u0, V 0) 、 (u 1, v 1) 、 v 2) 、 (u 3, v 3) を用いて座標 (x +w, y +w) に位置する画素の動きベク トルを 求めるときに、 座標 (x +w, j ) に位置する点の動きベク トルの水 平 -垂直成分をそれぞれ z倍したものである (uT (x +w) , vT (x +
WJ を、
u T (x + w) = ( ( (p · wd- x - wd- wn) u 0+ ( x · wd + wn) u 1) z ) 1111 (p · k · wd) 、
v T ( + w) = ( ( (p · wd— x - wd— wn) v 0 + (x · wd + wn) v 1) z ) 1111 (p · k · wd) 、
を計算することにより (ただし、 「/〃/」 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求め、
さらに座標 (X +w, j + p) に位置する点の動きべク トルの水平 - 垂直成分をそれぞれ z倍したものである (uB (y +w) , vB (y +w) ) を、
uB (x +w) = ( ( ( p - wd— x · w (1 - w n ) u 2 + ( x · wd + wn) u 3) z ) 1111 ( p · k · wd) ,
v B ( + w ) = ( ( ( p · w d— x · w (1 - w n ) v 2+ ( x · wd + wn) v3) z ) 1111 (p · k · wd) ,
を計算することにより求めた後に、 座標 (X十 w, y +w) に位置す る画素の動きべク トルの水平 ·垂直成分をそれぞれ m倍したものであ る ( u t X + w, y + w ) , V ( X + w , y + w ) ) を
u ( X + w, y十 w) = ( ( ( Q · wd— y · wd― wn; υ T ( x + w) + ( y · wd + wn) υ B ( + w) ) m) II ( q · z · wd) ,
v ( x + w, y十 w) = ( ( ( q · wd— y · wd— wn) v T ( x + w) + ( y · wd + wn) v B ( x + w) ) m) // ( q · z · wd) ,
を計算することによって (ただし、 「//」 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求めることを特徴とする請求項 2 に記載のフレーム間予測画像の合成方法。
5. pの絶対値が 2の α乗 (αは負ではない整数) であることを特 徴とする請求項 1に記載のフレーム間予測画像の合成方法。
6. Qの絶対値が 2の /3乗 ( 3は負ではない整数) であることを特 徴とする請求項 2又は 4に記載のフレーム間予測画像の合成方法。
7. ρと Qの絶対値がそれぞれ 2の α乗と )3乗 ( ο;、 3は負ではな い整数) であることを特徴とする請求項 1に記載のフレーム間予測画 像の合成方法。
8. ρと Qの絶対値がそれぞれ 2の α乗と 乗 ( α、 βは負ではな い整数) であることを特徴とする請求項 2に記載のフレーム間予測画 像の合成方法。
9. « + h ζが 8の正の整数倍であり、 かつ wが 0であることを特徴 とする請求項 5に記載のフレーム間予測画像の合成方法。
1 0. 3 + h zが 8の正の整数倍であり、 かつ wが 0であることを特 徴とする請求項 6に記載のフレーム間予測画像の合成方法。
1 1. α + h z+ h wが 8の正の整数倍であり、 かつ w> 0であるこ とを特徴とする請求項 5記載のフレーム間予測画像の合成方法。
1 2. /3 + h z+ hwが 8の正の整数倍であり、 かつ w〉 0であるこ とを特徴とする請求項 6に記載のフレーム間予測画像の合成方法。
1 3·. 複数の異なるひの値に対応し、 α + hzが 1 6以下となるよう に h zの値を aの値に応じて変化させることを特徴とする請求項 9に 記載のフレーム間予測画像の合成方法。
14. 複数の異なる 3の値に対応し、 iS + hzが 1 6以下となるよう に h zの値を 3の値に応じて変化させることを特徴とする請求項 1 0
5 に記載のフレーム間予測画像の合成方法。
1 5. 複数の異なる αの値に対応し、 α + hz+ hwが 1 6以下と なるように h zの値を αの値に応じて変化させることを特徴とする請 求項 1 1に記載のフレーム間予測画像の合成方法。
1 6. 複数の異なる /3の値に対応し、 iS + hz+ hwが 1 6以下とな 10 るように hzの値を /3の値に応じて変化させることを特徴とする請求 項 1 2に記載のフレーム間予測画像の合成方法。
1 7. z≥mであることを特徴とする請求項 1ないし 1 6に記載の フレーム間予測画像の合成方法。
1 8. k≥ zであることを特徴とする請求項 1ないし 1 6に記載の !5 フレーム間予測画像の合成方法。
1 9. pと qの絶対値がそれぞれ画像の水平と垂直の画素数と異な ることを特徴とする請求項 1ないし 1 6に記載のフレーム間予測画像 の合成方法。
2 0. rを画像の水平方向の画素数、 sを画像の垂直方向の画素数 0 として (ただし、 rと sは正の整数) 、 pの絶対値を 1 / 2倍した値 は rより小さく、 かつ pの絶対値は r以上で、 かつ Qの絶対値を 1 Z 2倍した値は sより小さく、 かつ qの絶対値は s以上であることを特 徴とする請求項 1ないし 1 6に記載のフレーム間予測画像の合成方法。
2 1. rを画像の水平方向の画素数、 sを画像の垂直方向の画素数と し (ただし、 rと sは正の整数) て、 pの絶対値は r以下であり、 かつ pの絶対値を 2倍した値は rより大きく、 かつ qの絶対値は s以 下であり、 かつ Qの絶対値を 2倍した値は sより大きいことを特徴と する請求項 1ないし 1 6に記載のフレーム間予測画像の合成方法。
2 2. 画像の水平方向と垂直方向の画素数がそれぞれ r と sであり (ただし、 r と sは正の整数) 、 かつ画像の画素が水平座標が 0以上 r未満、 垂直座標が 0以上 s未満の範囲に存在しているときに、
座標 (一 c, — c ) 、 ( r一 c, 一 c ) 、 (― c , s — c ) 、 ( r — c, s— c ) に位置する画像の隅の点上に存在し (ただし、 c = cn Z c d、 かつ c nは負ではない整数、かつ c dは正の整数、 かつ c n< c d)、 水平 ·垂直成分が lZnの整数倍の値をとる動きべク トル (ただし、 nは正の整数) を n倍したものである (u00, νΟΟ) 、 (υθΐ, νθΐ) 、 (u 02, v02) 、 (u03, v03) (ただし、 u 00、 v00、 u OK v 01、 u 02, v 02, u 03, v03は整数) を用いて、
u ' (χ, y ) = ( ( ( s · c d— c n_ y ' c cl) ( ( r · c d— c n— x · c d) u 00+ (x · c cl+ c n) u 01) + ( y - c d+ c n) ( ( r · c d— c n— x · c d) u 02+ ( x - c d+ c n) u 03) ) k) /// ( r - s · n · c d) ,
v ' (x, y ) = ( ( ( s · c d— c n_ y · c d) ( ( r · c d— c n— x · c d) v00+ (x · c d+ c n) vOl) + (y · c d+ c n) ( ( r · c d- c n- x · c d) v02+ (x · c d+ c n) v03) ) k ) /// ( r · s · n · c d · c d) ,
u 0= u ' ( i , j ),
v 0= v ' ( i , j ) , u 1= u ' ( i + P, j ),
v 1= V ' ( i + P , J ,
u 2 = u ' ( i , j + q),
v 2 = V ' ( i , j + q) ,
5 u 3 = u, ( i + P , j + Q)
v 3 = V ' ( i + P , J + Q)
で表される (u0, νθ) 、 (u 1, v 1) 、 ( u 2, v 2) 、 (u 3, v3) を (ただし、 「〃/」 は通常の除算による演算結果が整数ではな い場合にこれを近隣の整数に丸め込む除算で、 演算子としての優先順 10 位は乗除算と同等) 、 代表点 ( i, j ) 、 ( i + P, j ) 、 ( i, j + q) ( i + P, j + q) の動きベク トルの水平 ' 垂直成分を k倍 したものとして使用することを特徴とする請求項 1ないし 2 1に記載 のフレーム間予測画像の合成方法。
2 3. 符号化しょうとする現フレームの画像信号とフレーム間予測
/5 画像との差を誤差画像としてを出力する第 1 ステップと
上記誤差画像を信号変換し、 変換信号を得てそれを符号化する第 2 ステッフと
上記変換信号を逆変換して上記誤差画像の復号誤差画像を作る第 4ステップと
0 上記復号誤差画像と上記フレーム間予測画像を用いて上記現フレー ムの画像信号の次の現フレームの画像に対応するフレーム間予測画像 信号作る第 5ステップとを有し、
上記第 5ステツプが請求項 1ないし 1 6のいずれかのフレーム間予 測画像の合成方法で行うことを特徴とする画像符号化方法。
2 4 . 上記第 5ステップが代表点の動きべク トルに関する情報を検 出し符号化するステップを含む請求項 2 3記載の画像符号化方法。
2 5 . 上記第 5ステツプが代表点が画像の隅の点である請求項 2 3 に記載の画像の符号化方法。
2 6 . 復号すべき画像フレームのフレーム間符号化信号と上記画像 フレームの動きべク トルの情報と入力する第 1ステップと、
上記フレーム間符号化信号を復号誤差信号に変換する第 2ステップ と、
上記復号すべき画像フレームと時間的に異なる他の画像フレームの 復号画像信号と上記動きべク トルの情報からフレーム間予測画像を作 る第 3ステツプと、
復号誤差信号と上記フレーム間予測画像の信号とを加算して、 上記 復号すべき画像フレームの復号画像信号を得る第 4ステツプともち、 上記第 3ステツプが請求項 1ないし 1 6のいずれかのフレーム間予 測画像の合成方法で行う画像復号化方法。
2 7 . 上記複数の代表点が符号化データとして直接符号化されてい る代表点の動きベク トルに関する情報を再生して用いる上記画像の隅 の点である請求項 2 6に記載の画像の復号化方法。
2 8 · 上記代表点が上記画像の隅の点である請求項 2 6に記載の画 像の復号化方法。
2 9 . 符号化しょうとする現フレームの画像信号とフレーム間予測 像と像を信号変換する第 1変換部の出力の一部を符号化する符号化器 と、
第 1変換部の出力の一部を逆変換して上記誤差画像の復号誤差画像 を得るる第 2変換部と、
上記復号誤差画像と上記フレーム間予測画像とから上記現フレーム の画像信号の復号画像信号を得る復号手段と、
上記前フレームの復号画像と現フレームの入力画像が入力され前述 のフレーム間予測画像の合成を行う動き補償処理部をもつ符号化装置 であって、
動き補償処理部が上記前フレームの復号画像と現フレームの入力 画像から上記前フレームの復号画像の座標 ( i, j ) 、 ( i + p, j ) 、 ( i , j + q ) 、 ( i 十 P , j + Q ) に ( i、 j 、 p、 Qは整数) を 持つ 4つの代表点の動きベク トル (動きベク トルの水平 ' 垂直成分が 1 /kの整数倍の値をとり (ただし、 kは 2の hk乗、 かつ hkは負では ない整数) を求めるグローバル動きべク トル推定部と、
上記動きべク トルと上記前フレームの復号画像から上記符号化しよ うとする現フレームの画像の信号を予測したフレーム間予測画像を作 る予測画像合成部と持ち、
上記予測画像合成部が、 画素のサンプリング間隔を水平、 垂直方向 共に 1 として、 サンプリング点が座標の水平、 垂直成分が、 共に整数 に wを加えた数である点の上に存在している画像を対象として (ただ し、 w = wn/wd、 かつ wnは負ではない整数、 かつ wdは 2の hw乗、 かつ hwは負ではない整数、 かつ wnぐ wd) 、 座標 ( i, j ) と ( i, j + q) に位置する代表点の動きべク トルに対して線形内 · 外挿を行 うことにより、 座標 (し y +w) に位置する点の動きベク トルの水 平 ·垂直成分をそれぞれ 1 / zの整数倍をとる数値として (ただし、 zは 2の hz乗、 かつ h zは負ではない整数) 求め、 さらに座標 ( i + P, j ) と ( i + P, j + q) に位置する代表点の動きベク トルに対 して線形内 '外揷を行うことにより、 座標 ( i + P, y +w) に位置 する点の動きべク トルの水平 ·垂直成分をそれぞれ 1 / zの整数倍を とる数値として求めた後に、 ( i, y +w) と ( i + p, y+w) に 位置する上記 2個の動きべク トルに対して線形内 ·外揷を行うことに より、 座標 (X +w, y +w) に位置する画素の動きべク トルの水平 · 垂直成分をそれぞれ 1ノ mの整数倍をとる数値として (ただし、 mは 2 の hm乗、 かつ hmは負ではない整数) 求める演算部と、
上記座標 (x +w, y +w) に位置する画素の動きベク トルと上記前 フレームの復号画像から予測画像を合成する合成部とをもつ画像符号 化装置。
3 0. 符号化しょうとする現フレームの画像信号とフレーム間予測 画像信号との差を誤差画像としてを出力する減算器と、
上記誤差画像を信号変換する第 1変換部の出力の一部を符号化する 符号化器と、
第 1変換部の出力の一部を逆変換して上記誤差画像の復号誤差画像 を得るる第 2変換部と、
上記復号誤差画像と上記フレーム間予測画像とから上記現フレーム の画像信号の復号画像信号を得る復号手段と、
上記前フレームの復号画像と現フレームの入力画像 6 0 1が入力さ れ上記フレーム間予測画像の合成を行う動き補償処理部をもつ符号化 装置であって、
動き補償処理部が上記前フレームの復号画像と現フレームの入力 画像から上記前フレームの復号画像の座標 ( i , j ) 、 ( i + p, j ) 、 ( i , j + Q ) 、 ( i + P , j + q ) に ( i、 j 、 p、 Qは整数) を 持つ 4つの代表点の動きべク トル (動きべク トルの水平 ·垂直成分が 1 /kの整数倍の値をとり (ただし、 kは 2の hk乗、 かつ hkは負では ない整数) を求めるグロ一バル動きべク トル推定部と、
上記動きべク トルと上記前フレームの復号画像から上記符号化しよ うとする現フレームの画像の信号を予測したフレーム間予測画像を作 る予測画像合成部と持ち、
上記予測画像合成部が、 画素のサンプリング間隔を水平、 垂直方向 共に 1 として、 サンプリング点が座標の水平、 垂直成分が、 共に整数 に wを加えた数である点の上に存在している画像を対象として (ただ し、 w = wn/wd、 かつ wnは負ではない整数、 かつ wdは 2の hw乗、 かつ hwは負ではない整数、 かつ wn<wd) 、 座標 ( i, j ) と ( i + p , j ) に位置する代表点の動きべク トルに対して線形内 · 外揷を行 うことにより、 座標 (x +w, j ) に位置する点の動きベク トルの水 平 ·垂直成分をそれぞれ 1 Zzの整数倍をとる数値として (ただし、 zは 2の hz乗、 かつ hzは負ではない整数) 求め、
さらに座標 ( i , j + Q ) と ( i + P, j + q ) に位置する代表点 の動きベク トルに対して線形内 · 外揷を行うことにより、 座標 (x + w, j + q) に位置する点の動きベク トルの水平 · 垂直成分をそれぞ れ 1 Z zの整数倍をとる数値として求めた後に、
(x +w, j ) と (x +w, j + p ) に位置する上記 2個の動きべ ク トルに対して線形内 ·外揷を行うことによ、 座標 (x +w, y +w) に位置する画素の動きべク トルの水平 ' 垂直成分をそれぞれ 1 Zmの 整数倍をとる数値として (ただし、 mは 2の hiii乗、 かつ hniは負ではな い整数) 求める演算部と、
上記 (x +w, y +w) に位置する画素の動きベク トルと上記前フ レームの復号画像から予測画像を合成する合成部とをもつ画像符号化
3 1. 座標 ( i , j ) 、 ( i + p , j ) 、 ( i, j + Q ) 、 ( i + p, j + q) に位置する代表点の動きベク トルの水平 ·垂直成分を k 倍したものである (uO, νθ) 、 (ul, v 1) 、 (u 2, v 2) 、 (u3, v3) を用いて座標 (x+w, y +w) に位置する画素の動きベク トル を求めるときに、 座標 ( i, y +w) に位置する点の動きベク トルの
10 水平 '垂直成分をそれぞれ z倍したものである (uL(y +w), vL(y + w) ) を、
u L ι y + w = ( ( ( q · w d— y wd— wn) u 0 + ( y · wd + wn) u 2) z ) ( q · k · wd) ,
v L ( y + w ( ( ( q · w d— y w d— w n ) v 0 + ( y · wd + wn)
!5 v 2) z ) ( q · k · wd)
を計算する とにより (ただし、 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求め、
更に座標 ( i + P, y +w) に位置する点の動きベク トルの水平 ' 0 垂直成分をそれぞれ z倍したものである (uR(y +w) , vR (y + w) ) を、
u R (y + w) = ( ( ( q · w d— y - wd— wn) u 1 + ( y · wd + wn; u 3) z ) 1111 (q · k · wd) 、
v R ( y + w) = ( ( ( q · wd— y · wd— wn) v 1 + ( y - wd + wn) v3) z ) 1111 (q · k · wd) 、
を計算することにより求めた後に、 座標 (x +w, y +w) に位置す る画素の動きべク トルの水平 · 垂直成分をそれぞれ m倍したものであ る 、u (x+w, y+w), v (x +w, y + wj ) を
u (x +w, y + w) = ( ( (p - wd- x - wd- wn) uL (y + w) +
( · wd + wn) u R (y + w) ) m) II (p · z · wd)
v (x+w, y + w) = ( ( (p * wd— x * wd— wn) v L (y + w) +
(x · wd + wn) v R (y + w) ) m) II ( p · z - wd)
を計算することによって (ただし、 「//」 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求めることを特徴とする請求項 2 9に記載の符号化装置。
3 2. 座標 ( i, j ) 、 ( i + p, j ) 、 ( i , j + q ) 、 ( i + p, j + q ) に位置する代表点の動きベク トルの水平 · 垂直成分を k 倍したものである (u0, vO) 、 (u l, v l) 、 (u , v2) , (u 3, v 3) を用いて座標 (x +w, y +w) に位置する画素の動きベク トル を求めるときに、
座標 (x +w, j ) に位置する点の動きベク トルの水平 · 垂直成分を それぞれ z倍したものである (uT(x +w), vT (x +w) ) を、 u T ( x + w) = ( ( (p · w d - x ' wd— wn) u 0 + ( x ■ wd + wn) u 1) z ) 1111 (p · k · wd) 、
v T ( x + w) = ( ( (p - wd— x - wd— wn) v 0 + (χ · wd + wn) v 1) z ) 1111 (p · k · wd) 、
を計算することにより (ただし、 「/〃/」 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求め、
さらに座標 (X +w, j + p ) に位置する点の動きべク トルの水平 · 垂直成分をそれぞれ z倍したものである (uB(y +w) , vB (y +w) ) を、
u B ( x + w) = ( ( (p - wd— x · wd— wn) u 2 + ( x - wd + wn) u3) z ) 1111 (p · k · wd) ,
v B ( x + w) = ( ( ( p · wd— x - wd - wn) v 2 + ( x · wd + wn) v3) z ) 1111 (p · k · wd) ,
を計算することにより求めた後に、 座標 (x +w, y +w) に位置す る画素の動きべク トルの水平 ·垂直成分をそれぞれ m倍したものであ る {u ( X + w, y +w), V ( X + w, y + w) を
u I X + w, y +wj = ( ( (q ' wd— y ' wd— wn) uT(x十 w) + ( y - wd + wn) u B ( x + w) ) m) II ( q . z · wd) ,
v ( x + w , y + w) = ( ( ( q - wd— y · w(l— wn) v T ( + w) + ( y - wd + wn) v B ( x十 w) ) m) II ( q · z - wd) ,
を計算することによって (ただし、 「//」 は通常の除算による演算結 果が整数ではない場合にこれを近隣の整数に丸め込む除算で、 演算子 としての優先順位は乗除算と同等) 求めること請求項 3 0に記載のフ レーム間予測画像の符号化装置。
3 3. pの絶対値が 2の α乗 (ひは負ではない整数) であるとする 請求項 2 9に記載のフレーム間予測画像の符号化装置。
3 4. qの絶対値が 2の /3乗 ( )3は負ではない整数) である請求項 3 0に記載のフレーム間予測画像の符号化装置。
3 5. pと Qの絶対値がそれぞれ 2の α乗と;3乗 ( α、 3は負では ない整数) である請求項 2 9に記載の符号化装置。
3 6. ρと Qの絶対値がそれぞれ 2の α乗と;3乗 ( ひ 、 3は負では ない整数) である請求項 3 0に記載の符号化装置。
3 7. α + hzが 8の正の整数倍であり、 かつ wが 0である 請求項 3 3に記載の符号化装置。
3 8. 3 + hzが 8の正の整数倍であり、 かつ wが 0である 請求項 3 4に記載の符号化装置。
3 9. « + h z+ hwが 8の正の整数倍であり、 かつ w> 0である 請求項 3 3記載の符号化装置。
4 0. 3 + h z+ hwが 8の正の整数倍であり、 かつ w> 0である 請求項 3 4に記載の符号化装置。
4 1. 複数の異なる αの値に対応し、 ひ十 h ζが 1 6以下となるよう に h zの値を αの値に応じて変化する請求項 3 7に記載の符号化装置。 4 2. 複数の異なる の値に対応し、 /- j + h zが 1 6以下となるよう に h zの値を )3の値に応じて変化する請求項 3 8に記載の符号化装置。
4 3. 複数の異なる αの値に対応し、 ひ + h z+ hwが 1 6以下とな るように h zの値を αの値に応じて変化する請求項 3 9に記載の符号 化装置。
4 4. 複数の異なる iSの値に対応し、 /3 + h z+ hwが 1 6以下とな るように h zの値を /3の値に応じて変化する請求項 4 0に記載の符号 化装置。
4 5. 上記動き補償処理部が更に上記代表点の動きべク トルに関す る情報を符号化する手段をもつ請求項 2 9ないし 4 0のいずれか記載 の符号化装置。
4 6 . 上記代表点が画像の隅の位置の点である請求項 2 9ないし 4 0のいずれかに記載の符号化装置。
4 7 . 上記第 1変換部及び第 2変換部がそれぞれ上記誤差誤差画像 の信号を D C T変換して量子化する回路及び逆量子化して逆 D C T変 換する回路である請求項 2 9ないし 4 0のいずれか記載の符号化装置。 4 8 . 符号化された画像信号のフレーム間誤差の符号を誤差画像の信 号に変換する変換回路と、 復号されたフレーム画像信号を記憶するフ レームメモリと、 上記符号化された画像信号の動きべク トルと上記フ ίθ レームメモリの復号されたフレーム画像信号を入力し、 予測画像を合 成する予測画像合成部と、 上記予測画像合成部の出力と上記変換回路 の出力を加算して復号画像を作る加算部と、 上記加算部の出力を上記 フレームメモリに記録する手段を持つ画像復号化装置において、 上記 予測画像合成部が請求項 1ないし 1 6のいずれかに記載された記載され ί5 たフレーム間予測画像の合成方法を行う手段で構成された画像復号化
4 9 . 請求項 1ないし 2 2に記載のフレーム間予測画像の合成方法 を実行するためのソフトウエアを記録した蓄積メディァ。
5 0 . 請求項 4 8に記載の画像復号化装置を駆動するするためのソ
20 フトウエアを記録した蓄積メディァ。
5 1 . 請求項 2 3 、 2 4、 又は 2 5に記載の符号化方法によつ生成 された符号化されたビッ トストリームを記録した蓄積メディァ。
5 2 . 請求項 2 6 、 2 7又は 2 8に記載の画像復号化方法によって復 号化することができる符号化された圧縮ビッ トス トリームを記録した 蓄積メディァ,
PCT/JP1998/002435 1997-06-03 1998-06-02 Procede et dispositif de codage et de decodage d'images Ceased WO1998056185A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR10-1999-7011229A KR100511810B1 (ko) 1997-06-03 1998-06-02 화상 부호화 및 복호화 방법 및 장치
EP98923086A EP0987898B1 (en) 1997-06-03 1998-06-02 Image encoding and decoding method and device
US09/445,088 US7006571B1 (en) 1997-06-03 1998-06-02 Method of synthesizing interframe predicted image, and image coding and decoding method and device therefore
JP50205299A JP3764488B2 (ja) 1997-06-03 1998-06-02 画像符号化及び復号化方法及び装置
DE69835431T DE69835431T2 (de) 1997-06-03 1998-06-02 Bildkodier-und-dekodierverfahren und-vorrichtung

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP14491697 1997-06-03
JP9/144916 1997-06-03

Publications (1)

Publication Number Publication Date
WO1998056185A1 true WO1998056185A1 (fr) 1998-12-10

Family

ID=15373238

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP1998/002435 Ceased WO1998056185A1 (fr) 1997-06-03 1998-06-02 Procede et dispositif de codage et de decodage d'images

Country Status (8)

Country Link
US (1) US7006571B1 (ja)
EP (1) EP0987898B1 (ja)
JP (1) JP3764488B2 (ja)
KR (1) KR100511810B1 (ja)
DE (1) DE69835431T2 (ja)
MY (1) MY132917A (ja)
TW (1) TW406513B (ja)
WO (1) WO1998056185A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7007058B1 (en) 2001-07-06 2006-02-28 Mercury Computer Systems, Inc. Methods and apparatus for binary division using look-up table
US7809203B2 (en) * 2001-11-27 2010-10-05 Samsung Electronics Co., Ltd. Apparatus for encoding and decoding key data and key value data of coordinate interpolator and recording medium containing bitstream into which coordinate interpolator is encoded
US7602848B2 (en) * 2002-03-26 2009-10-13 General Instrument Corporation Methods and apparatus for efficient global motion compensation encoding and associated decoding
US7809204B2 (en) * 2002-10-18 2010-10-05 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding key value data of coordinate interpolator
US20050105621A1 (en) * 2003-11-04 2005-05-19 Ju Chi-Cheng Apparatus capable of performing both block-matching motion compensation and global motion compensation and method thereof
JP4145275B2 (ja) * 2004-07-27 2008-09-03 富士通株式会社 動きベクトル検出・補償装置
KR100943580B1 (ko) * 2005-07-29 2010-02-23 삼성전자주식회사 제곱근 계산 장치 및 방법
US8139877B2 (en) * 2006-03-09 2012-03-20 Pioneer Corporation Image processing apparatus, image processing method, and computer-readable recording medium including shot generation
JP2010524383A (ja) * 2007-04-09 2010-07-15 エルジー エレクトロニクス インコーポレイティド ビデオ信号処理方法及び装置
CA2997877C (en) * 2011-06-24 2020-08-04 Ntt Docomo, Inc. Method and apparatus for motion compensation prediction with multiple fractional sample interpolations

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI97008C (fi) 1993-06-02 1996-09-25 Nokia Oy Ab Menetelmä videokuvan ennustamiseksi käsittelyjärjestyksessä edellisen kuvan perusteella
JP3218874B2 (ja) * 1994-08-18 2001-10-15 株式会社日立製作所 画像符号化装置及び画像符号化方法
JP3183155B2 (ja) * 1996-03-18 2001-07-03 株式会社日立製作所 画像復号化装置、及び、画像復号化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
HUANG C.-L., ET AL.: "A NEW MOTION COMPENSATION METHOD FOR IMAGE SEQUENCE CODING USING HIERRCHICAL GRID INTERPOLATION.", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY., IEEE SERVICE CENTER, PISCATAWAY, NJ., US, vol. 04., no. 01., 1 February 1994 (1994-02-01), US, pages 42 - 52., XP002917245, ISSN: 1051-8215, DOI: 10.1109/76.276171 *
KIMURA S, ET AL.: "MOTION COMPENSATION METHOD BASED ON VARIABLE-SIZE AND VARIABLE-SHAPE BLOCKS", TECHNICAL REPORT OF THE INSTITUTE OF TELEVISION ENGINEERS OFJAPAN, XX, XX, vol. 20, no. 64, 1 January 1996 (1996-01-01), XX, pages 31 - 38, XP002917246 *
See also references of EP0987898A4 *

Also Published As

Publication number Publication date
EP0987898B1 (en) 2006-08-02
EP0987898A1 (en) 2000-03-22
KR100511810B1 (ko) 2005-09-05
DE69835431D1 (de) 2006-09-14
KR20010013238A (ko) 2001-02-26
DE69835431T2 (de) 2007-06-06
EP0987898A4 (en) 2000-09-13
US7006571B1 (en) 2006-02-28
MY132917A (en) 2007-10-31
JP3764488B2 (ja) 2006-04-05
TW406513B (en) 2000-09-21

Similar Documents

Publication Publication Date Title
US7817720B2 (en) Method of coding and decoding image
US20090168889A1 (en) Inter-frame predicted image synthesizing method
JP3667105B2 (ja) 動きベクトル検出方法及びその方法を実施する装置
WO1998056185A1 (fr) Procede et dispositif de codage et de decodage d&#39;images
JPWO1998056185A1 (ja) 画像符号化及び復号化方法及び装置
JP3520800B2 (ja) 画像復号化装置及び画像復号化方法
KR0160458B1 (ko) 매스크 블럭 매칭 방법으로 움직임 벡터를 예측하는 동영상 압축 장치 및 방법
JP3520845B2 (ja) 画像符号化装置及び画像符号化方法
JP3520858B2 (ja) 画像符号化装置及び画像符号化方法
JP3520846B2 (ja) 画像復号化装置および画像復号化方法
JP3183277B2 (ja) 画像符号化装置、及び、画像符号化方法
JPH10285598A (ja) 画像符号化/復号化装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP KR SG US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1998923086

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1019997011229

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 09445088

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1998923086

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1019997011229

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1019997011229

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1998923086

Country of ref document: EP