WO2011145282A1 - 画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム - Google Patents

画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム Download PDF

Info

Publication number
WO2011145282A1
WO2011145282A1 PCT/JP2011/002514 JP2011002514W WO2011145282A1 WO 2011145282 A1 WO2011145282 A1 WO 2011145282A1 JP 2011002514 W JP2011002514 W JP 2011002514W WO 2011145282 A1 WO2011145282 A1 WO 2011145282A1
Authority
WO
WIPO (PCT)
Prior art keywords
prediction
motion vector
pixel
image
motion
Prior art date
Application number
PCT/JP2011/002514
Other languages
English (en)
French (fr)
Inventor
博哉 中村
Original Assignee
株式会社Jvcケンウッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2011070981A external-priority patent/JP5686018B2/ja
Priority claimed from JP2011070982A external-priority patent/JP5686019B2/ja
Application filed by 株式会社Jvcケンウッド filed Critical 株式会社Jvcケンウッド
Priority to CN201180025300.XA priority Critical patent/CN103039075B/zh
Publication of WO2011145282A1 publication Critical patent/WO2011145282A1/ja
Priority to US13/683,812 priority patent/US9277220B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to an image encoding device that encodes an image using motion compensated prediction, an image encoding method and an image encoding program, an image decoding device that decodes an image using motion compensated prediction, an image decoding method, and an image.
  • the present invention relates to a decryption program.
  • MPEG series standard motion compensation that divides a frame into a plurality of blocks and predicts motion from other frames is used.
  • H.264 a mechanism for switching and using an optimum one from a plurality of motion compensation block sizes is introduced.
  • the present inventor has found out a method of further compressing the entire code amount by compressing motion vector information by an image encoding method using motion compensated prediction by geometric transformation.
  • the present invention has been made in view of such circumstances, and an object of the present invention is to provide a technique for improving the compression efficiency of a code amount in an image coding method using motion compensation prediction by geometric transformation.
  • An image encoding apparatus is an image encoding apparatus that encodes a moving image, and includes a target block in the target image and a reference in the reference image that is geometrically transformed with the target block.
  • the motion vector and prediction signal between the blocks are calculated for each of the plurality of prediction modes, and in each prediction mode, the pixel located at the vertex constituting the target block, or the pixel located near the vertex, or the vertex Interpolated pixels located in the vicinity are selected as representative pixels corresponding to the vertices, the motion vectors of these representative pixels are calculated, and the motion vectors of pixels other than the representative pixels are interpolated using the motion vectors of the representative pixels.
  • a geometric conversion motion compensation prediction unit for calculating and calculating a prediction signal, and a geometric conversion motion compensation prediction unit for each target block in the target image
  • a prediction method determination unit for selecting one of a plurality of prediction modes, a prediction signal calculated in the prediction mode selected by the prediction method determination unit, and a difference between the image signal of the target block, and prediction
  • the prediction motion vector of the representative pixel calculated in the prediction mode selected by the prediction error signal generation unit for generating the error signal and the prediction method determination unit is calculated using the motion vectors inside and outside the target block.
  • the difference vector generation unit for calculating the difference between the predicted motion vector and the motion vector of the representative pixel calculated in the selected prediction mode and generating the difference motion vector of the representative pixel
  • the prediction method determination unit select Prediction method information for identifying the predicted mode, the difference motion vector generated by the difference vector generation unit, and the prediction error signal generation unit
  • an encoding unit for encoding the prediction error signal generated Ri.
  • Another aspect of the present invention is also an image encoding device.
  • This device is an image encoding device that encodes a moving image, and a motion vector between a target block in the target image and a reference block in a reference image that is geometrically transformed with the target block.
  • the prediction signal is calculated according to the prediction mode, and in the calculation, the pixel located at the vertex constituting the target block, the pixel located near the vertex, or the interpolation pixel located near the vertex is represented as a representative.
  • Geometric transformation motion that selects a pixel, calculates a motion vector of the representative pixel, and calculates a prediction signal by calculating a motion vector of a pixel other than the representative pixel by interpolation using the motion vector of the representative pixel.
  • the difference between the prediction signal calculated by the compensation prediction unit and the geometric conversion motion compensation prediction unit and the image signal of the target block is calculated, and the prediction error signal is calculated.
  • a prediction motion vector of the representative pixel calculated by the prediction error signal generation unit and the geometric transformation motion compensation prediction unit is calculated using the motion vectors inside and outside the target block, and the prediction motion vector and the calculation are calculated.
  • a difference vector generation unit that calculates a difference from the motion vector of the representative pixel generated to generate a difference motion vector of the representative pixel, a difference motion vector generated by the difference vector generation unit, and a prediction error signal generation unit
  • An encoding unit that encodes the predicted error signal.
  • An image decoding apparatus includes: prediction method information for specifying a prediction mode included in an encoded stream encoded by using motion compensated prediction by geometric transformation, according to the prediction mode.
  • the prediction motion vector of the representative pixel is calculated using the motion vectors inside and outside the target block according to the decoding unit that decodes the differential motion vector and the prediction error signal of the representative pixel and the prediction mode specified by the prediction method information.
  • a motion vector generation unit that generates a motion vector of the representative pixel by adding the differential motion vector of the representative pixel to the predicted motion vector, a target block in the target image, and a reference that is geometrically transformed with the target block Calculated by interpolation using the motion vector of the representative pixel between the reference block in the image and the motion vector of the representative pixel
  • Geometric transformation motion compensated prediction unit that generates a prediction signal from a motion vector other than a table pixel and an image signal of a reference block, and an image signal generation that generates an image signal from the prediction signal and a prediction error signal decoded by the decoding unit A section.
  • the representative pixel a pixel located at the vertex constituting the target block, a pixel located near the vertex, or an interpolation pixel located near the vertex is selected.
  • This apparatus includes a decoding unit that decodes a differential motion vector and a prediction error signal of a representative pixel included in an encoded stream that is encoded using motion compensated prediction by geometric transformation, and a prediction of the motion vector of the representative pixel.
  • a motion vector generation unit that calculates a motion vector using motion vectors inside and outside the target block, adds a differential motion vector of the representative pixel to the predicted motion vector, and generates a motion vector of the representative pixel; and a target in the target image A motion vector of a representative pixel between the block and a reference block in the reference image that is geometrically transformed with the target block, a motion vector other than the representative pixel calculated by interpolation using the motion vector of the representative pixel, and A geometric transformation motion compensated prediction unit that generates a prediction signal from an image signal of a reference block, a prediction signal, and a decoding unit And an image signal generating unit for generating an image signal from the issue prediction error signal.
  • the representative pixel a pixel located at the vertex constituting the target block, a pixel located near the vertex, or an interpolation pixel located near the vertex is selected.
  • the compression efficiency of the code amount can be improved by an image coding method using motion compensation prediction by geometric transformation.
  • FIGS. 2A to 2H are diagrams for explaining a macroblock partition and a sub-macroblock partition. It is FIG. (1) for demonstrating the representative pixel corresponding to four vertices of an object block. It is a figure which shows an example of a syntax structure.
  • FIGS. 5A to 5D are diagrams for explaining a motion vector prediction method when motion compensation prediction based on parallel movement is selected for both the target block and adjacent blocks. It is a figure for demonstrating the prediction method of the prediction vector in case the encoding object block is the motion compensation prediction by parallel displacement, and an adjacent block is the motion compensation prediction by geometric transformation.
  • FIG. 7A and 7B are diagrams (No. 1) for describing a prediction vector prediction method when the target block is motion compensated prediction by geometric transformation. It is a flowchart which shows the encoding process procedure of a macroblock in the image coding apparatus which concerns on Embodiment 1 of this invention. It is a block diagram which shows the structure of the image decoding apparatus which concerns on Embodiment 2 of this invention. It is a flowchart which shows the decoding process procedure of a macroblock in the image decoding apparatus which concerns on Embodiment 2 of this invention. It is FIG. (2) for demonstrating the representative pixel corresponding to four vertices of an object block. It is FIG. (2) for demonstrating the prediction method of the prediction vector in case the object block is the motion compensation prediction by geometric transformation.
  • FIG. (3) for demonstrating the representative pixel corresponding to four vertices of an object block.
  • FIG. (4) for demonstrating the representative pixel corresponding to four vertices of an object block. It is a figure for demonstrating an example of the scaling process of a motion vector value.
  • FIG. 1 is a block diagram showing a configuration of an image encoding device 100 according to Embodiment 1 of the present invention.
  • the image encoding device 100 includes an image buffer 101, a translational motion compensation prediction unit 102, a geometric transformation motion compensation prediction unit 103, a prediction method determination unit 104, a prediction error signal generation unit 105, a prediction error signal encoding unit 106, 1 coding bit stream generation part 107, 2nd coding bit stream generation part 108, 3rd coding bit stream generation part 109, prediction error signal decoding part 110, decoded picture signal generation part 111, decoded picture buffer 112, and output switch 113 are included. .
  • the image buffer 101 temporarily stores image signals to be encoded supplied in order of shooting / display time.
  • the image buffer 101 converts the stored image signal to be encoded in predetermined pixel block units (here, macroblock units) into a translational motion compensation prediction unit 102, a geometric transformation motion compensation prediction unit 103, and a prediction error.
  • the signal is supplied to the signal generator 105 in parallel. At this time, the images supplied in the order of shooting / display time are rearranged in the encoding order and output from the image buffer 101.
  • a macro block refers to a luminance signal of 16 ⁇ 16 pixels and two corresponding color difference signal blocks.
  • YUV of the color difference format is 4: 2: 0, the color difference signal has a size of 8 ⁇ 8 pixels.
  • an intra coding method that encodes within a screen without using a reference image, a motion compensation prediction method by translation using a reference image, and a motion compensation prediction method by geometric transformation using a reference image Is used.
  • the reference image is a decoded image obtained by local decoding.
  • the configuration is omitted in FIG.
  • These coding system modes are adaptively switched individually or in combination in units of macroblocks. Note that a method of encoding all macroblocks using a motion compensated prediction method based on geometric transformation using a reference image is also possible.
  • the translational motion compensation prediction unit 102 performs motion compensation prediction by translation between the macroblock signal to be encoded supplied from the image buffer 101 and the reference image signal supplied from the decoded image buffer 112.
  • the translational motion compensation prediction unit 102 generates a motion vector and a prediction signal between the target block in the target image in each mode and the reference block in the reference image that is translated with the target block.
  • the translational motion compensation prediction unit 102 performs motion compensation prediction based on translation similar to the existing motion compensation prediction stipulated in the AVC / H.264 scheme or the like.
  • a forward or backward decoded image is used as a reference image in a display order supplied from a decoded image buffer 112 described later.
  • the translational motion compensation prediction unit 102 performs block matching between the macroblock signal supplied from the image buffer 101 and the reference image signal supplied from the decoded image buffer 112 within a predetermined detection range in the reference image. Do.
  • the translational motion compensation prediction unit 102 specifies a reference block signal in the reference image signal having the smallest error from the macroblock signal by block matching, and a motion vector between the macroblock signal and the reference block signal Is detected.
  • L0 / L1 / bi-prediction perform this block matching in multiple specified modes.
  • the plurality of modes have different reference indexes, motion compensation block sizes, L0 / L1 / bi-prediction, and the like.
  • the reference index is an index indicating a reference picture.
  • L0 / L1 / bi-prediction can be selected only for B slices.
  • L0 prediction and L1 prediction are unidirectional predictions predicted from one direction
  • L0 prediction is prediction using information such as an L0 motion vector
  • L1 prediction is prediction using information such as an L1 motion vector.
  • Bi-prediction is bidirectional prediction predicted from two reference images using information such as the L0 motion vector and information such as the L1 motion vector. A specific example of the block size will be described later.
  • motion compensation can be performed with a pixel accuracy of less than one pixel.
  • motion compensation can be performed up to an accuracy of 1/4 of a luminance signal and 1/8 of an accuracy of a color difference signal.
  • a signal with pixel accuracy of less than one pixel is generated by interpolation from the signals of surrounding integer pixels in the reference image.
  • the translational motion compensation prediction unit 102 performs motion compensation prediction in each mode, and sends a prediction signal (more specifically, a motion compensation prediction block signal) and a motion vector in each mode to the prediction method determination unit 104. Supply.
  • FIGS. 2A to 2H are diagrams for explaining a macroblock partition and a sub-macroblock partition.
  • the macroblock is defined by a square area.
  • AVC / H In the MPEG series including the H.264 system, a block defined by 16 ⁇ 16 pixels (16 horizontal pixels and 16 vertical pixels) is called a macro block.
  • AVC / H In the H.264 system, a block defined by 8 ⁇ 8 pixels is called a sub macroblock.
  • the macroblock partition refers to each small block obtained by further dividing the macroblock for motion compensation prediction.
  • the sub-macroblock partition refers to each small block obtained by further dividing the sub-macroblock for motion compensation prediction.
  • FIG. 2 (a) is a diagram showing that a macroblock is composed of one macroblock partition composed of a luminance signal of 16 ⁇ 16 pixels and two corresponding color difference signals.
  • this configuration is referred to as a 16 ⁇ 16 mode macroblock type.
  • the macroblock is composed of two macroblock partitions each composed of a luminance signal of 16 ⁇ 8 pixels (horizontal 16 pixels, vertical 8 pixels) and two corresponding color difference signals.
  • FIG. 2B the macroblock is composed of two macroblock partitions each composed of a luminance signal of 16 ⁇ 8 pixels (horizontal 16 pixels, vertical 8 pixels) and two corresponding color difference signals.
  • FIG. The two macroblock partitions are arranged vertically.
  • this configuration is called a 16 ⁇ 8 mode macroblock type.
  • the macroblock is composed of two macroblock partitions composed of a luminance signal of 8 ⁇ 16 pixels (horizontal 8 pixels, vertical 16 pixels) and two corresponding color difference signals.
  • FIG. 2 (c) the macroblock is composed of two macroblock partitions composed of a luminance signal of 8 ⁇ 16 pixels (horizontal 8 pixels, vertical 16 pixels) and two corresponding color difference signals.
  • FIG. The two macroblock partitions are arranged side by side.
  • this configuration is referred to as an 8 ⁇ 16 mode macroblock type.
  • FIG. 2D is a diagram showing that a macroblock is composed of four macroblock partitions each composed of a luminance signal of 8 ⁇ 8 pixels and two corresponding color difference signals. These four macroblock partitions are arranged vertically and horizontally. This configuration is referred to as an 8 ⁇ 8 mode macroblock type.
  • FIG. 2 (e) is a diagram showing that the sub-macroblock is composed of one sub-macroblock partition composed of a luminance signal of 8 ⁇ 8 pixels and two corresponding color difference signals.
  • this configuration is referred to as an 8 ⁇ 8 mode sub-macroblock type.
  • the sub-macroblock is composed of two sub-macroblock partitions each composed of a luminance signal of 8 ⁇ 4 pixels (horizontal 8 pixels, vertical 4 pixels) and two corresponding color difference signals.
  • FIG. 2F the sub-macroblock partitions are arranged vertically. This configuration is referred to as an 8 ⁇ 4 mode sub-macroblock type.
  • the sub-macroblock is composed of two macroblock partitions each composed of a luminance signal of 4 ⁇ 8 pixels (horizontal 4 pixels, vertical 8 pixels) and two corresponding color difference signals.
  • FIG. The two macroblock partitions are arranged side by side.
  • this configuration is called a 4 ⁇ 8 mode sub-macroblock type.
  • FIG. 2 (h) is a diagram showing that the sub-macroblock is composed of four sub-macroblock partitions each composed of a luminance signal of 4 ⁇ 4 pixels and two corresponding color difference signals. These four sub-macroblock partitions are arranged two by two vertically and horizontally. Here, this configuration is called a 4 ⁇ 4 mode sub-macroblock type.
  • a mechanism for switching and using an optimum one from the above motion compensation block sizes is adopted.
  • one of macroblock types of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, and 8 ⁇ 8 modes is selected as the motion compensation block size for each macroblock.
  • the motion compensation block size in units of submacroblocks is among the 8 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, and 4 ⁇ 4 mode sub macroblock types. Is selected.
  • the luminance signal is motion compensated with the number of pixels of the selected size.
  • the color difference format is 4: 2: 0, the color difference signal is motion-compensated with half the number of pixels both horizontally and vertically.
  • motion compensation block size information is encoded with syntax elements called macroblock types and sub-macroblock types.
  • the syntax is an expression rule of the encoded bit string, and the syntax element is information that is specified to be transmitted in the syntax.
  • One motion vector is detected for each macroblock partition in any of the macroblock types of 16 ⁇ 16, 16 ⁇ 8, 8 ⁇ 16, and 8 ⁇ 8 modes. That is, one motion vector for the 16 ⁇ 16 mode macroblock type, two motion vectors for the 16 ⁇ 8 and 8 ⁇ 16 mode macroblock types, and 4 for the 8 ⁇ 8 mode macroblock type. Each motion vector is detected.
  • Each pixel of the luminance signal and the color difference signal of each macroblock partition is motion compensated according to one motion vector of the macroblock partition. That is, each pixel is motion-compensated using the same motion vector.
  • the geometric transformation motion compensation prediction unit 103 performs parallel movement between the encoding target macroblock signal supplied from the image buffer 101 and the reference image signal supplied from the decoded image buffer 112. In addition, motion compensation prediction is performed by geometric transformation accompanied by deformation including enlargement / reduction / rotation.
  • the geometric transformation motion compensated prediction unit 103 calculates a motion vector and a prediction signal between the target block in the target image in each mode and the reference block in the reference image that is geometrically transformed with the target block. Generated and supplied to the prediction method determination unit 104.
  • the geometric transformation motion compensation prediction unit 103 selects, as representative pixels, pixels that are located at the vertices constituting the target block, pixels that are located near the vertices, or interpolation pixels that are located near the vertices.
  • a pixel motion vector is calculated.
  • the target block is a quadrangular (for example, square, rectangular) region, the number of vertices in the region is four. Therefore, there are four representative pixels.
  • the geometric transformation motion compensation prediction unit 103 calculates a motion vector of a pixel other than the representative pixel by interpolation using the motion vector of the representative pixel.
  • a prediction signal is predicted for each pixel according to the motion vector for each pixel.
  • the geometric transformation motion compensation prediction unit 103 encodes and decodes the first mode for encoding and decoding the motion vectors of the four representative pixels of the target block, and the motion vectors of the two representative pixels in the vertical direction of the target block.
  • the geometric transformation motion compensation prediction unit 103 does not necessarily need to execute a plurality of modes, and may use one mode fixedly according to the processing capability and the frequency of occurrence of each mode. Only one mode may be provided. Further, at least two of the four modes may be executed (may include at least two modes). In these cases, the calculation amount and the code amount of information for identifying each mode can be reduced.
  • the target block is described as a 16 ⁇ 16 pixel macroblock.
  • the size of the target block is not limited to 16 ⁇ 16 pixels, and an 8 ⁇ 8 pixel sub-macro. It may be a block or a block of 32 ⁇ 32 pixels, 48 ⁇ 48 pixels, 64 ⁇ 64 pixels, 128 ⁇ 128 pixels, or the like.
  • the target block is described as a square macroblock.
  • the shape of the target block is not limited to a square, and a macro of 16 ⁇ 8 pixels or 8 ⁇ 16 pixels. It may be a block partition, a block of 8 ⁇ 4 pixels, a 4 ⁇ 8 pixel sub-macroblock partition, 32 ⁇ 16 pixels, 16 ⁇ 32 pixels, or the like.
  • the prediction method determination unit 104 can employ any of the first mode, the second mode, the third mode, and the fourth mode described above as the prediction method by the geometric transformation motion compensation prediction unit 103. Detailed processing of the prediction method determination unit 104 will be described later.
  • the geometric transformation motion compensation prediction unit 103 is an AVC / H. Unlike the existing motion compensation prediction based on the parallel movement defined in the H.264 system or the like, in addition to the parallel movement, the motion compensation prediction is performed by the geometric transformation accompanied by deformation including enlargement / reduction / rotation.
  • each pixel of the luminance signal and chrominance signal of the macroblock, macroblock partition, sub-macroblock is not motion-compensated with the same motion vector, but for each pixel.
  • Different motion vectors are created for motion compensation.
  • the geometric transformation motion compensation prediction unit 103 selects a vertex of each macroblock, a pixel near the vertex, or an interpolation pixel located near the vertex as a representative pixel, and obtains a motion vector thereof.
  • FIG. 3 is a diagram (part 1) for explaining representative pixels corresponding to the four vertices of the target block.
  • the upper left vertex or the vertex vicinity of the target block is the vertex a
  • the upper right vertex or the vertex vicinity is the vertex b
  • the lower left vertex or the vertex vicinity is the vertex c
  • the lower right vertex or the vertex vicinity is the vertex d.
  • the pixels a, b, c, and d located at the upper left, upper right, lower left, and lower right vertices are set as representative pixels a, b, c, and d, respectively.
  • the representative pixel is represented by a black circle
  • the non-representative pixel is represented by a white circle
  • the representative pixel is represented by a pixel a (0, 0) and a pixel b existing at the vertex of the target block (16 ⁇ 16 pixel macroblock in FIG. 3).
  • pixel c (0, H) and pixel d (W, H) are set.
  • W is a distance (unit: pixel) between representative pixels in the horizontal direction (between pixel a and pixel b and between pixel c and pixel d)
  • H is between representative pixels in the vertical direction (pixel a and pixel).
  • the four representative pixels Each motion vector is detected.
  • the motion vectors of the two representative pixels in the vertical direction the first representative pixel a and the third representative pixel c
  • the motion vectors of the two representative pixels are detected.
  • the motion vectors of the two representative pixels in the horizontal direction the first representative pixel a and the second representative pixel b
  • the motion vectors of the two representative pixels are detected.
  • the motion vectors of the three representative pixels (the first representative pixel a, the second representative pixel b, and the third representative pixel c) are encoded and decoded, the motion vectors of the three representative pixels, respectively. Is detected.
  • the geometric transformation motion compensated prediction unit 103 may use a motion vector calculated in units of pixels by an optical flow method or the like as a motion vector of a representative pixel of each macroblock, or may have reliability such as an edge or a corner of an image.
  • a motion vector corrected by interpolation / extrapolation from the motion vector of the feature point determined to be high may be used.
  • the motion vector of the macroblock / partition generated by the translational motion compensation / prediction unit 102 may be corrected and used.
  • the value of the motion vector is applied to the representative pixel, and verification is performed while adjusting the value of the motion vector in the increasing and decreasing directions. Thus, the value of the motion vector is corrected.
  • the geometric conversion motion compensation prediction unit 103 calculates the motion vectors of all the pixels in the macro block from the motion vectors of the representative pixels by using linear interpolation or the like.
  • the geometric transformation motion compensation prediction unit 103 performs the vertical direction 2 It is calculated by interpolating the motion vectors of the pixels on the straight line connecting these two points from the motion vectors of the two representative pixels a and c. Then, the motion vectors of the other pixels and the motion vectors of the pixels subjected to linear interpolation are applied as they are in the horizontal direction.
  • the geometric transformation motion compensation prediction unit 103 performs the horizontal 2 It is calculated by interpolating the motion vectors of the pixels on the straight line connecting these two points from the motion vectors of the two representative pixels a and b. Then, the motion vectors of the other pixels are applied as they are in the vertical direction to the motion vectors of the pixels subjected to linear interpolation.
  • the geometric transformation motion compensation prediction unit 103 interpolates both in the horizontal direction and in the vertical direction, thereby moving the motion of the non-representative pixels. Calculate the vector.
  • Interpolation in both the horizontal direction and the vertical direction may be performed at once by a method described later, or the motion vector of a pixel on a straight line connecting these two points is interpolated from the motion vectors of the two representative pixels in the horizontal direction.
  • the motion vector of the non-representative pixel may be calculated by the above, and the motion vector of the other pixel may be calculated by further interpolating in the vertical direction using the motion vector of each pixel that has already been calculated.
  • the first representative pixel a, the second representative pixel b, and the The motion vector of the fourth representative pixel d can be calculated from the motion vector of the three representative pixels c. Then, similarly to the first mode in which the motion vectors of the four representative pixels corresponding to the four vertices a, b, c, and d are encoded and decoded, the motion vectors of the non-representative pixels can be calculated.
  • the value of the motion vector of the first representative pixel a is set to the second representative value.
  • the motion vector value of the pixel b is set, and the motion vector value of the third representative pixel c is set to the motion vector value of the fourth representative pixel d.
  • the motion vectors of the non-representative pixels are calculated. can do.
  • the value of the motion vector of the first representative pixel a is set to the third value.
  • the value of the motion vector of the representative pixel c is set, and the value of the motion vector of the second representative pixel b is set to the value of the motion vector of the fourth representative pixel d.
  • the motion vectors of the four representative pixels a, b, c, and d corresponding to the four vertices a, b, c, and d are encoded and decoded, the motion vectors of the non-representative pixels are calculated. can do.
  • the geometric transformation motion compensation prediction unit 103 performs motion compensation for each pixel using the calculated motion vector for each pixel.
  • the example of calculating the motion vector of each pixel included in the macroblock has been described.
  • the motion vector of each pixel included in the sub-macroblock can be calculated in the same manner.
  • This pixel-by-pixel motion vector calculation process and motion compensation process for each pixel are performed in a plurality of prescribed modes.
  • the plurality of modes have different reference indexes, motion compensation block sizes, L0 / L1 / bi-prediction, and the like. Note that L0 / L1 / bi-prediction can be selected only for B slices.
  • the geometric transformation motion compensation prediction unit 103 performs motion compensation prediction in each mode, and predicts prediction mode information, motion vectors, and prediction signals (more specifically, motion compensation prediction block signals) in each mode. It supplies to the method determination part 104.
  • the motion vectors of the non-representative pixels are calculated by using the motion vector values of the four representative pixels a, b, c, and d for each component using interpolation such as linear interpolation in both the horizontal direction and the vertical direction.
  • the representative pixels are the pixel a (0, 0), the pixel b (W, 0), the pixel c (0, H), and the pixel d (W, H) located at the vertex of the macroblock. It is set.
  • the coordinate of each pixel is represented by (i, j)
  • the coordinate in the horizontal direction is represented by i in the unit of one pixel
  • the coordinate in the vertical direction is represented by j in the unit of one pixel.
  • the upper left pixel in the macroblock is the origin (0, 0)
  • the right direction and the downward direction are positive increasing directions.
  • the motion vectors of the pixel a, the pixel b, the pixel c, and the pixel d are assigned, and then the motion vectors of the other pixels are calculated by linear interpolation.
  • the pixels a, b, c, and d Motion vectors are assigned.
  • the motion vectors of the two representative pixels a and c corresponding to the two vertices a and c are encoded and decoded
  • the motion vectors of the pixel a and the pixel c are assigned, and the motion vector of the pixel a is a pixel. It is also the motion vector of b, and the motion vector of pixel c is also the motion vector of pixel d.
  • the motion vectors of the two representative pixels a and b corresponding to the two vertices a and b are encoded and decoded
  • the motion vectors of the pixel a and the pixel b are assigned, and the motion vector of the pixel a is a pixel. It is also a motion vector of c, and a motion vector of pixel b is also a motion vector of pixel d.
  • the motion vectors of the three representative pixels a, b, and c corresponding to the three vertices a, b, and c are encoded and decoded, the motion vectors of these pixels a, b, and c are assigned, From these three motion vectors, a motion vector of the fourth representative pixel d corresponding to the vertex d is calculated.
  • the motion vector Va V (0,0) of the pixel a
  • the motion vector Vb V (W, 0) of the pixel b
  • the motion vector Vc V (0, H) of the pixel c
  • Vd Vc + (Vb ⁇ Va) (1)
  • Vd Vb + (Vc ⁇ Va) (2)
  • the motion vectors V (i, j) of the other pixels P (i, j) are linearly interpolated from the four motion vectors Va, Vb, Vc, Vd of the four representative pixels a, b, c, d. Generate.
  • the distance (number of pixels) between the representative pixels in the horizontal direction (between the pixels a and b and between the pixel c and the pixel d) is W
  • the motion vector V (i, j) of the pixel P (i, j) other than these representative pixels a, b, c, d is Calculated by (3).
  • V (i, j) ⁇ (Wi ⁇ (H ⁇ j) Va + i (H ⁇ j) Vb + (W ⁇ i) j ⁇ Vc + i ⁇ j ⁇ Vd ⁇ / (W ⁇ H) (3) )
  • W 15 (pixel)
  • H 15 (pixel).
  • the motion vector of each pixel in the first mode, the second mode, the third mode, and the fourth mode can be calculated.
  • the method of interpolating both in the horizontal direction and the vertical direction at once has been described. From the motion vectors of two representative pixels in the horizontal direction, the motion vectors of the pixels on the straight line connecting these two points are obtained.
  • the motion vector of the non-representative pixel may be calculated by interpolation, and the motion vector of other pixels may be calculated by further interpolating in the vertical direction using the motion vector of each pixel that has already been calculated.
  • motion vector Va V (0,0) for pixel a
  • motion vector Vb V (W, 0) for pixel b
  • motion vector Vc V (0, H) for pixel c
  • motion vector Vd for pixel d
  • V (i, 0) Va + (Vb ⁇ Va) * (i ⁇ 0) / W Equation (4)
  • V (i, H) Vc + (Vd ⁇ Vc) * (i ⁇ 0) / W Equation (5)
  • V (i, j) V (i, 0) + ⁇ V (i, H) ⁇ V (i, 0) ⁇ * (j ⁇ 0) / H (6)
  • the motion vector of each pixel in the first mode, the second mode, the third mode, and the fourth mode can be calculated.
  • the second mode and the third mode it can also be calculated by the following method.
  • the motion vectors of the pixels a and c are assigned, the motion vectors of the pixels on the vertical line passing through the pixels a and c are calculated by linear interpolation, and the same motion vector is assigned to each pixel in the horizontal direction. The value of is assigned.
  • V (0, j) Va + (Vc ⁇ Va) * (j ⁇ 0) / H (7)
  • V (i, j) Va + (Vc ⁇ Va) * (j ⁇ 0) / H (9)
  • motion vectors of the pixel a and the pixel b are allocated, the motion vector of each pixel on the vertical line passing through the pixel a and the pixel b is calculated by linear interpolation, and the same motion vector is applied to each pixel in the horizontal direction. The value of is assigned.
  • V (i, j) Va + (Vb ⁇ Va) * (i ⁇ 0) / W Expression (12)
  • the geometric conversion motion compensation prediction unit 103 performs motion compensation prediction on each pixel according to the calculated motion vector of each pixel. More specifically, motion compensation prediction is performed by generating an interpolation signal from the reference image pixel indicated by the motion vector of each pixel. It should be noted that the accuracy of the motion vector of each pixel, the rounding of numerical values required in the calculation process, and the like need to be defined so that the same value is obtained regardless of which decoding device is used. In addition, when the coordinates of the predicted pixel specified by the motion vector are expressed with a decimal point, the pixel is interpolated from surrounding pixels at the time of motion compensation. As the interpolation method, 4 to 6 tap filtering, linear interpolation, or the like can be used.
  • the first mode it is possible to represent complicated deformations that cannot be expressed in the second mode, the third mode, and the fourth mode, such as enlargement / reduction, rotation, and parallel movement, using four motion vectors.
  • deformation by affine transformation can be represented by three motion vectors.
  • the expressive power of deformation is limited compared to the first mode, the number of motion vectors (more specifically, difference vectors) to be encoded can be reduced.
  • two motion vectors can represent different deformations in the vertical direction in addition to translation.
  • the expressive power of deformation is limited as compared with the first mode and the fourth mode, the number of motion vectors to be encoded can be reduced.
  • two motion vectors can represent different deformations in the horizontal direction in addition to translation.
  • the expressive power of deformation is limited as compared with the first mode and the fourth mode, the number of motion vectors to be encoded can be reduced.
  • the prediction method determination unit 104 employs either the prediction method by the translational motion compensation prediction unit 102 or the prediction method by the geometric transformation motion compensation prediction unit 103 for each target block in the target image. To decide. More specifically, it is determined which mode of which prediction method is adopted. Hereinafter, prediction method selection including mode selection is referred to.
  • the prediction method determining unit 104 selects which reference image is used to encode motion compensation prediction based on parallel movement or motion compensated prediction based on geometric transformation in which pixel block unit. Decide how. When selecting motion compensation prediction by geometric transformation, one of the first mode, the second mode, the third mode, and the fourth mode is selected. At that time, the prediction method is determined by determining which combination of these items is the prediction method capable of realizing the most efficient encoding. As a criterion for determining the prediction method, for example, rate distortion theory considering the relationship between the code amount and distortion can be used.
  • the code amount of the macroblock (that is, the prediction method information, the motion vector, and the total code amount of the prediction signal) is calculated, and the distortion amount is calculated from the difference between the encoding target image and the decoded image.
  • a prediction method is selected that minimizes a code amount and a rate distortion function using the distortion amount as an input variable.
  • the prediction method determination unit 104 supplies the adopted prediction method information to the first encoded bit string generation unit 107 and the difference vector calculation unit 114, and supplies a motion vector corresponding to the adopted prediction method to the difference vector calculation unit 114. At the same time, the prediction method determination unit 104 supplies the prediction signal generated by the employed prediction method to the prediction error signal generation unit 105.
  • the first encoded bit string generation unit 107 encodes the prediction method information supplied from the prediction method determination unit 104 by entropy encoding such as arithmetic encoding, and generates an encoded bit string.
  • the prediction block size and the L0 / L1 / bi-prediction distinction to be included in the prediction method information are combined and encoded as a macroblock type.
  • the first mode, the second mode, the third mode, and the fourth mode can be used for information for identifying which one of the two is used.
  • a syntax element may be separately prepared and described, or the macroblock type may be extended and described by combining with information to be encoded as another macroblock type.
  • a syntax element “geom_type” is prepared for each block unit for switching whether or not to perform motion compensation prediction by geometric transformation, and the value of “geom_type” is “0” for motion compensation prediction by translation,
  • the value of “geom_type” is “1” in the first mode of motion compensated prediction by geometric transformation
  • the value of “geom_type” is “2” in the second mode of motion compensated prediction by geometric transformation
  • the value of “geom_type” is “3” is encoded as a third mode of motion compensated prediction by geometric transformation
  • “geom_type” is “4” as a fourth mode of motion compensated prediction by geometric transformation.
  • FIG. 4 is a diagram illustrating an example of the syntax structure.
  • FIG. 4 shows an example in which one “geom_type” is prepared for each macroblock, and motion compensation prediction is performed in a common mode for both L0 prediction, L1 prediction, and bi-prediction, but prediction is performed from both L0 and L1.
  • the bi-prediction mode motion compensation predictions can be performed separately for each of the L0 prediction and the L1 prediction by preparing two.
  • the motion of the pixel of the adjacent block or the adjacent block is calculated using the correlation with the motion vector of the neighboring adjacent block or the pixel of the adjacent block that has already been encoded or decoded.
  • a prediction vector is calculated by predicting a motion vector from the vector. Then, by calculating a difference vector that is the difference between the prediction vector and the motion vector of the target block or target pixel, the amount of code of the motion vector of the target block or target pixel is reduced.
  • a motion vector of the representative pixel is a target for encoding.
  • the difference vector calculation unit 114 determines the target block or target from the motion vectors of the neighboring neighboring blocks or the pixels of the neighboring blocks that have already been encoded, according to the prediction method information supplied from the prediction method determining unit 104.
  • a prediction vector is calculated by predicting a pixel motion vector. Then, a difference between the prediction vector and the motion vector supplied from the prediction method determination unit 104 is calculated to generate a difference vector, which is supplied to the second encoded bit string generation unit 108.
  • the difference vector calculation unit 114 encodes and decodes the motion vectors of the four representative pixels a, b, c, and d corresponding to the four vertices a, b, c, and d.
  • a prediction vector and a difference vector are calculated.
  • the second mode in order to encode and decode the motion vectors of the two representative pixels a and c corresponding to the two vertices a and c, a prediction vector and a difference vector are calculated, respectively.
  • respective prediction vectors and difference vectors are calculated in order to encode and decode the motion vectors of the two representative pixels a and b corresponding to the two vertices a and b.
  • respective prediction vectors and difference vectors are calculated.
  • respective prediction vectors and difference vectors are calculated.
  • the difference vector calculation unit 114 holds the prediction information and motion vectors of the target block supplied from the prediction method determination unit 104, and uses them for calculation of the prediction vector of the subsequent target block.
  • FIG. 5 is a diagram for explaining a method of predicting a motion vector of a coding target block when motion compensated prediction by parallel movement is selected for both the coding target block and adjacent blocks.
  • FIG. 5A shows an example of predicting a motion vector between macroblocks in which no partition is set.
  • FIG. 5B shows an example in which motion vectors are predicted between macroblocks in which partitions are set.
  • FIG. 5C shows an example of predicting a motion vector in an 8 ⁇ 16 pixel macroblock.
  • FIG. 5D shows an example of predicting a motion vector in a 16 ⁇ 8 pixel macroblock.
  • a motion vector prediction method will be described with reference to FIGS. In this motion vector prediction method, a motion vector of a target block is predicted using a median value of motion vectors of neighboring neighboring blocks.
  • the motion vector of the block painted in gray is the encoding target.
  • the motion vector of the target block is predicted using the three motion vectors of the block A adjacent to the left of the target block, the upper adjacent block B, and the upper right block C as candidates. . More specifically, a median value is taken for each of the horizontal component and the vertical component from these three motion vectors to obtain a prediction vector.
  • the L0 motion vector used for L0 prediction or bi-prediction and the L1 motion vector used for L1 prediction or bi-prediction are handled separately.
  • the L0 prediction vector of the target block is calculated.
  • the prediction vector of the target block L1 is calculated by performing prediction using the three L1 motion vectors of the block A adjacent to the left of the target block, the block B adjacent to the upper right, and the block C adjacent to the upper right.
  • the motion vector of the block A is adopted as the prediction vector. If only one of the reference indexes of the block A on the left, the block B on the upper right, and the block C on the upper right is equal to the reference index of the current block (the reference pictures are equal), that block. Are used for prediction.
  • the motion vector is different for each small block of the macroblock.
  • the motion vector of the uppermost small block A among the small blocks in contact with the target block is adopted as a candidate.
  • the leftmost block B among the small blocks in contact with the target block is adopted as a candidate.
  • the lower left small block C is adopted as a candidate.
  • the prediction vector is calculated in the same manner as in FIG.
  • the left block is not the median value of the motion vectors of the three blocks
  • the left block is the block A on the left
  • the right block is on the upper right side.
  • the motion vector of the adjacent block C is adopted as the prediction vector.
  • the upper block is not the median value of the motion vectors of the three blocks
  • the upper block is the upper adjacent block B
  • the lower block is The motion vector of the block A on the left is adopted as the prediction vector.
  • the motion vector prediction method shown in FIGS. 5A to 5D is an example, and is not limited thereto. As long as the encoding method and the decoding side prescribe the motion vector prediction method identically, other methods can be used. For example, the position and number of adjacent blocks may be different. Further, an average value may be used instead of the median value of a plurality of motion vectors of adjacent blocks. A predetermined condition or priority order may be provided, and a motion vector of a single adjacent block may be used as it is. Moreover, the adjacent block does not necessarily have to contact the target block. In addition, in FIGS. 5A to 5D, an example of predicting a motion vector in units of macroblocks has been described, but the same processing can be performed when a motion vector in units of sub-macroblocks is predicted.
  • FIG. 6 is a diagram for explaining a prediction vector prediction method when the encoding target block is motion compensated prediction by translation and the adjacent block is motion compensated prediction by geometric transformation.
  • the adjacent block is motion compensated prediction by geometric transformation
  • the adjacent block is motion compensated prediction by geometric transformation
  • the motion vector of the pixel A is used as a candidate for calculating the prediction vector.
  • the motion vector of the leftmost pixel B of the leftmost block is adopted as a candidate for calculating a prediction vector.
  • the motion vector of the lower left pixel C of the lower left small block is adopted as a candidate for calculating a prediction vector.
  • the motion vector prediction method shown in FIG. 6 is an example, and is not limited thereto. As long as the encoding method and the decoding side prescribe the motion vector prediction method identically, other methods can be used. For example, an average value of four representative pixels of the block adjacent to the left of the target block may be used as a motion vector candidate adjacent to the left of the target block. Further, an average value of four representative pixels of the block adjacent to the target block may be used as a motion vector candidate above the target block. Alternatively, the average value of the four representative pixels of the block on the upper right side of the target block may be used as a motion vector candidate on the upper right side of the target block. Furthermore, the positions and the number of pixels of adjacent blocks and adjacent blocks may be different.
  • an average value may be used instead of the median value of a plurality of motion vectors of pixels in adjacent blocks. You may use the motion vector of the pixel of a single adjacent block as it is. Further, the adjacent block or the pixel of the adjacent block may not necessarily be in contact with the target block.
  • the same processing can be performed when a motion vector in units of sub-macroblocks is predicted.
  • FIG. 7 is a diagram for explaining a prediction vector prediction method when the encoding target block is motion compensated prediction using geometric transformation. Also in this case, the prediction vector is calculated from the motion vector of the adjacent block in the same manner.
  • the prediction vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c of the encoding target block are predicted from the motion vectors of the pixels of the adjacent block.
  • the prediction vector of the first representative pixel a of the encoding target block is the motion vector of the representative pixel b of the left adjacent block A, the motion vector of the representative pixel c of the upper adjacent block B, and the left diagonal.
  • the calculation is performed with reference to the motion vector of the representative pixel d of the upper adjacent block D.
  • a predetermined priority is set and adopted in order of priority, or an intermediate value or an average value of these motion vectors is calculated.
  • the prediction vector of the second representative pixel b of the encoding target block is calculated with reference to the motion vector of the representative pixel d of the upper neighboring block B and the motion vector of the representative pixel c of the upper right neighboring block C.
  • the motion vector of the first representative pixel a of the encoding target block is also included in the candidate, and the intermediate value is calculated from these three motion vectors.
  • the motion vector of the representative pixel c of the block A on the left is used as the prediction vector.
  • the motion vector prediction method when the motion compensation prediction based on the geometric transformation shown in FIG. 7 is selected is an example, and the present invention is not limited thereto.
  • the encoding method and the decoding side prescribe the motion vector prediction method identically, other methods can be used.
  • the position and number of representative pixels in adjacent blocks may be different.
  • an average value may be used instead of the median value of a plurality of motion vectors of representative pixels of adjacent blocks. You may use the motion vector of the representative pixel of a single adjacent block as it is.
  • the representative pixel of the adjacent block does not necessarily have to be in contact with the target pixel.
  • the median value of the motion vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c is used as the prediction vector. It should be noted that other methods can be used as long as the motion vector prediction method is defined identically on the encoding side and the decoding side. For example, instead of the median value, an average value may be used, or a motion vector of a single arbitrary pixel may be used as it is.
  • the above formulas (13) and (14), which are the calculation formulas of the prediction vector of the fourth representative pixel d encoded / decoded in the first mode, are the calculation formulas of the fourth representative pixel d calculated in the fourth mode.
  • Each of the above formulas (1) and (2) is the same formula.
  • the first mode can represent a deformation that cannot be expressed in the second mode, the third mode, and the fourth mode, but is often a transformation close to an affine transformation that can be expressed in the fourth mode.
  • the prediction vector that can be calculated by the above equations (13) and (14) is based on the idea that there is a strong correlation with the motion vector of the fourth representative pixel d that is encoded and decoded in the first mode.
  • the motion vector prediction method is defined identically on the encoding side and the decoding side.
  • the median value of the motion vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c can be used as the prediction vector.
  • an average value may be used instead of the median value, or a motion vector of a single arbitrary pixel may be used as it is.
  • the prediction vector calculated by Expression (7) the motion vector of the first representative pixel a, the motion vector of the second representative pixel b, the motion vector of the third representative pixel c, the first representative pixel a, and the second representative pixel
  • the median of the motion vectors of b and the third representative pixel c, the average value of the motion vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c are used as prediction vector candidates, and at least two are adaptive. You may switch to.
  • a flag for specifying a motion vector to be adopted as a prediction vector from a plurality of candidates is prepared in the syntax, and the first encoded bit string generation unit 107 encodes this flag.
  • the second encoded bit string generation unit 108 encodes the difference vector supplied from the difference vector calculation unit 114 by entropy encoding such as arithmetic encoding, and generates an encoded bit string.
  • 2 to 4 difference vectors are encoded according to the first to fourth modes.
  • the difference vectors of the four representative pixels a, b, c, d corresponding to the four vertices a, b, c, d are encoded.
  • the difference vectors of the representative pixels a and c corresponding to the two vertices a and c are encoded.
  • the difference vectors of the representative pixels a and b corresponding to the two vertices a and b are encoded.
  • the fourth mode the difference vectors of the three representative pixels a, b, and c corresponding to the three vertices a, b, and c are encoded.
  • the prediction error signal generation unit 105 calculates a difference between the prediction signal generated by the prediction method adopted by the prediction method determination unit 104 and the image signal of the target block, and generates a prediction error signal. More specifically, the prediction error signal generation unit 105 subtracts the prediction signal supplied from the prediction method determination unit 104 from the image signal to be encoded supplied from the image buffer 101 to obtain a prediction error signal. Generated and supplied to the prediction error signal encoding unit 106.
  • the prediction error signal encoding unit 106 performs compression encoding processing such as orthogonal transform and quantization on the prediction error signal supplied from the prediction error signal generation unit 105 to generate an encoded prediction error signal.
  • the third encoded bit string generator 109 and the prediction error signal decoder 110 are supplied.
  • the third encoded bit sequence generation unit 109 sequentially encodes the encoded prediction error signal supplied from the prediction error signal encoding unit 106 using entropy encoding such as arithmetic encoding to generate an encoded bit sequence To do.
  • the encoded bit strings generated by the first encoded bit string generation unit 107, the second encoded bit string generation unit 108, and the third encoded bit string generation unit 109 are encoded by information other than prediction method information, motion vectors, and prediction error signals.
  • the other encoded bit strings are multiplexed via the output switch 113 to generate an encoded stream.
  • the prediction error signal decoding unit 110 performs decompression decoding processing such as inverse quantization and inverse orthogonal transform on the prediction error signal encoded by the prediction error signal encoding unit 106, and decodes the prediction error signal.
  • the prediction error signal decoding unit 110 supplies the decoded prediction error signal to the decoded image signal generation unit 111.
  • the decoded image signal generation unit 111 superimposes the prediction error signal supplied from the prediction error signal encoding unit 106 and the prediction signal supplied from the prediction method determination unit 104 to generate a decoded image signal.
  • the decoded image signal generation unit 111 sequentially stores the decoded image signal in the decoded image buffer 112 in units of blocks.
  • the decoded image stored in the decoded image buffer 112 is used as a reference image when performing motion compensation prediction on the subsequent image in the encoding order, if necessary.
  • FIG. 8 is a flowchart showing a macroblock encoding processing procedure in image encoding apparatus 100 according to Embodiment 1 of the present invention.
  • the translational motion compensation prediction unit 102 and the geometric transformation motion compensation prediction unit 103 extract a macroblock signal to be encoded from the image buffer 101 (S101).
  • the translational motion compensation prediction unit 102 performs motion compensation prediction by translation between the macroblock signal to be encoded supplied from the image buffer 101 and the reference image signal supplied from the decoded image buffer 112 ( S102). The motion compensation prediction based on the parallel movement is performed for each mode.
  • the geometric transformation motion compensation prediction unit 103 performs motion compensation prediction by geometric transformation between the encoding target macroblock signal supplied from the image buffer 101 and the reference image signal supplied from the decoded image buffer 112. Perform (S103). Motion compensation prediction by this geometric transformation is performed for each mode.
  • the prediction method determination unit 104 determines which of the motion compensation prediction method based on parallel movement and the motion compensation prediction based on geometric transformation is to be adopted (S104). At that time, it is also decided which mode is adopted.
  • the first encoded bit string generation unit 107 encodes the prediction method information supplied from the prediction method determination unit 104 to generate an encoded bit string (S105).
  • the difference vector calculation unit 114 calculates a prediction vector from the peripheral block or the peripheral pixel (S106), and calculates a difference vector between the prediction vector and the motion vector supplied from the prediction method determination unit 104 (S107).
  • the second encoded bit string generation unit 108 encodes the difference vector supplied from the difference vector calculation unit 114 to generate an encoded bit string (S108).
  • the prediction error signal generation unit 105 subtracts the prediction signal supplied from the prediction method determination unit 104 from the target image signal supplied from the image buffer 101 to generate a prediction error signal (S109).
  • the prediction error signal encoding unit 106 encodes the prediction error signal (S110).
  • the third encoded bit string generation unit 109 entropy-encodes the prediction error signal encoded by the prediction error signal encoding unit 106 using arithmetic encoding or the like to generate an encoded bit string (S111).
  • the prediction error signal decoding unit 110 decodes the prediction error signal encoded by the prediction error signal encoding unit 106 (S112).
  • the decoded image signal generation unit 111 generates a decoded image signal by superimposing the prediction error signal decoded by the prediction error signal decoding unit 110 and the prediction signal supplied from the prediction method determination unit 104 (S113).
  • the decoded image signal generation unit 111 accumulates the generated decoded image signal in the decoded image buffer 112 (S114).
  • the compression efficiency of the code amount can be improved by the image coding method using the motion compensation prediction by the geometric transformation. That is, the amount of codes can be reduced by predictively encoding motion vectors that use motion compensated prediction by geometric transformation. Also, if the motion compensation prediction based on the parallel movement and the motion compensation prediction based on the geometric transformation are used in combination, the compression efficiency of the code amount can be further improved. At that time, by sharing a motion vector related to motion compensation prediction based on parallel movement and a motion vector encoding method related to motion compensation prediction based on geometric transformation, even if these two prediction methods are mixed, The motion vector predictive coding method can be used as it is.
  • a prediction vector is predicted from a motion vector of a surrounding block or a surrounding pixel, and a difference vector is calculated, similarly to a motion compensation prediction using parallel movement. Can do.
  • the motion compensation prediction by parallel movement and the motion compensation prediction by geometric transformation are used together, it is possible to suppress an increase in the code amount of the motion vector.
  • the motion vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c are expressed by the above equation (13) or the above equation (14).
  • the motion vector of the fourth representative pixel d is calculated from the motion vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c by the above formula (1) or the above formula (2). By calculating, it is possible to further suppress an increase in the code amount of the motion vector.
  • FIG. 9 is a block diagram showing the configuration of the image decoding apparatus 200 according to Embodiment 2 of the present invention.
  • the image decoding apparatus 200 decodes the encoded stream generated by the image encoding apparatus 100 according to Embodiment 1.
  • motion compensated prediction based on parallel movement and motion compensated prediction based on geometric transformation may be used together, or motion compensated prediction based on geometric transformation is used alone. (Intra coding is not considered).
  • the image decoding apparatus 200 includes an input switch 209, a first encoded bit string decoding unit 201, a second encoded bit string decoding unit 202, a third encoded bit string decoding unit 203, a motion vector calculation unit 215, and a translational motion compensation prediction unit 204.
  • Geometric transformation motion compensation prediction unit 205 prediction error signal decoding unit 206, decoded image signal generation unit 207, decoded image buffer 208, switching control unit 214, first prediction unit switch 210, second prediction unit switch 211, third A prediction unit switch 212 and a fourth prediction unit switch 213 are provided.
  • the first encoded bit string decoding unit 201, the second encoded bit string decoding unit 202, and the third encoded bit string decoding unit 203 decode the prediction method information, the difference vector, and the prediction error signal included in the encoded stream.
  • the difference vector is encoded in the encoded stream.
  • the difference vector is a difference between the motion vector of the target block and a prediction vector predicted from the motion vector of the adjacent block or the pixel of the adjacent block.
  • the motion vector calculation unit 215 calculates a prediction vector from the motion vector of the pixel of the adjacent block or the adjacent block, and adds the decoded difference vector to the prediction vector, thereby predicting the motion vector.
  • the motion vector of the encoded target block or its representative pixel is decoded.
  • the translational motion compensation prediction unit 204 obtains a prediction signal from the motion vector between the target block in the target image and the reference block in the reference image that is translated with the target block, and the image signal of the reference block. Generate.
  • the geometric transformation motion compensation prediction unit 205 performs prediction based on the motion vector between the target block in the target image, the reference block in the reference image having a geometric transformation relationship with the target block, and the image signal of the reference block. Generate a signal.
  • the vertex of the target block is selected as a representative pixel, and the encoded stream includes a motion vector of each representative pixel.
  • the geometric transformation motion compensation prediction unit 205 calculates motion vectors of pixels other than the plurality of representative pixels of the target block by interpolation using the motion vectors of the plurality of representative pixels. For example, the motion vectors of pixels other than the representative pixel are calculated by the arithmetic expressions shown in the above expressions (3) to (12).
  • the switching control unit 214 performs the prediction method by the translation motion compensation prediction unit 204, the geometric transformation motion, for each target block in the target image. It is specified which of the prediction methods by the compensation prediction unit 205 is used.
  • the first encoded bit string decoding unit 201, the second encoded bit string decoding unit 202, and the third encoded bit string decoding unit 203 are included in the encoded stream generated by the image encoding device 100 according to Embodiment 1.
  • the encoded bit string to be transmitted is selectively input via the input switch 209.
  • the first encoded bit string decoding unit 201 decodes the encoded bit string supplied via the input switch 209 by entropy decoding such as arithmetic decoding, and acquires prediction method information.
  • the prediction method information includes whether the encoding is performed by translation / geometric transformation, and in the case of translation motion compensation, 16 ⁇ 16/16 ⁇ 8/8 ⁇ 16.
  • the first mode for encoding / decoding the motion vectors of the four representative pixels a, b, c, and d the vertical direction of the target block
  • a third mode for encoding / decoding motion vectors of two representative pixels a and b in the horizontal direction of the target block Information on which mode is encoded in the fourth mode in which the motion vectors of the representative pixels a, b, and c are encoded and decoded is included.
  • the second encoded bit string decoding unit 202 decodes the encoded bit string supplied via the input switch 209 by entropy decoding such as arithmetic decoding, and obtains a difference vector.
  • the difference vector is the difference between the prediction vector calculated from the motion vector of the adjacent block and the motion vector of the decoding target block.
  • the motion vector used in motion compensation prediction by parallel movement and the motion vector used in motion compensation prediction by geometric transformation are mixed and encoded, the difference mixed on the decoding side as well as the encoding side A motion vector is decoded from the vector according to prediction method information.
  • the prediction method information decoded by the first encoded bit stream decoding unit 201 Based on the prediction method information decoded by the first encoded bit stream decoding unit 201, which decoding image is used for which method of intra coding, motion compensation prediction by parallel movement, and motion compensation prediction by geometric transformation, and which reference image is used. You can see what block unit is selected and combined.
  • the switching control unit 214 performs the first prediction unit switch 210, the second prediction unit switch 211, the third prediction unit switch 212, and the fourth prediction unit according to the prediction method information supplied from the first encoded bit string decoding unit 201.
  • Switch 213 is switched.
  • the motion compensation prediction method by translation is selected as the prediction method of the target block
  • switching is performed so that the path of the translation motion compensation prediction unit 204 is selected, and the motion compensation prediction method by geometric transformation is selected. In this case, the path of the geometric transformation motion compensation prediction unit 205 is switched to be selected.
  • the motion vector calculation unit 215 determines the target block from the neighboring adjacent blocks that have already been encoded / decoded or the motion vectors of the pixels of the adjacent blocks.
  • the prediction vector is calculated by predicting the motion vector.
  • a motion vector is calculated by adding the difference vector supplied from the second encoded bit string decoding unit 202 to the prediction vector.
  • the motion vector calculation unit 215 supplies the motion vector to the translational motion compensation prediction unit 204 or the geometric transformation motion compensation prediction unit 205 via the second prediction unit switch 211.
  • the calculation of the prediction vector in the motion vector calculation unit 215 is performed by the same method as the calculation of the prediction vector in the difference vector calculation unit 114 of the image encoding device 100.
  • parallel motion compensation the motion vector of the block can be acquired.
  • the motion vector of the representative pixel of the block is calculated.
  • the translation motion compensated prediction unit 204 includes a decoded image to be a reference image supplied from the decoded image buffer 208 via the fourth prediction unit switch 213, and a second encoded bit string decoding unit 202 to the second prediction unit switch 211. Using the decoded motion vector supplied via, motion compensated prediction by translation is performed.
  • the geometric transformation motion compensated prediction unit 205 receives a decoded image to be a reference image supplied from the decoded image buffer 208 via the fourth prediction unit switch 213 and the motion vector calculation unit 215 via the second prediction unit switch 211.
  • the motion vectors of all the pixels are calculated by interpolation using the decoded motion vectors of the representative pixels.
  • the same processing method as that of the geometric transformation motion compensation prediction unit 103 of the image coding apparatus 100 described with reference to the above equations (1) to (14) can be used.
  • the geometric transformation motion compensation prediction unit 205 performs motion compensation prediction by geometric transformation by performing motion compensation for each pixel according to the motion vector for each pixel.
  • the third encoded bit string decoding unit 203 sequentially decodes the encoded bit string supplied via the input switch 209, and acquires the encoded prediction error signal.
  • the prediction error signal decoding unit 206 performs decompression decoding processing such as inverse quantization and inverse orthogonal transform on the encoded prediction error signal supplied from the third encoded bit string decoding unit 203, and performs the decoded prediction Get the error signal.
  • the decoded image signal generation unit 207 generates an image signal from the prediction signal and the prediction error signal. More specifically, the decoded image signal generation unit 207 switches from the translation motion compensation prediction unit 204 or the geometric transformation motion compensation prediction unit 205 to the third prediction unit switch according to the prediction method specified by the switching control unit 214. The prediction error signal supplied from the prediction error signal decoding unit 206 is superimposed on the prediction signal supplied via 212 to generate a decoded image signal. The decoded image signal generation unit 207 sequentially stores the decoded image signal in the decoded image buffer 208 in units of blocks.
  • FIG. 10 is a flowchart showing a macroblock decoding process procedure in the image decoding apparatus 200 according to Embodiment 2 of the present invention.
  • the first encoded bit string decoding unit 201 decodes the encoded bit string supplied via the input switch 209 and acquires prediction method information (S201).
  • the second encoded bit string decoding unit 202 decodes the encoded bit string supplied via the input switch 209 and obtains a difference vector (S202).
  • the prediction method information indicates motion compensated prediction by geometric transformation
  • 2 to 4 difference vectors are decoded according to the prediction method information.
  • the difference vectors of the four representative pixels a, b, c, d corresponding to the four vertices a, b, c, d are decoded.
  • the difference vectors of the representative pixels a and c corresponding to the two vertices a and c are decoded.
  • the difference vectors of the representative pixels a and b corresponding to the two vertices a and b are decoded.
  • the difference vectors of the three representative pixels a, b, and c corresponding to the three vertices a, b, and c are decoded.
  • the motion vector calculation unit 215 calculates a prediction vector from the peripheral block or the peripheral pixel (S203). This is performed by the same method as the calculation of the prediction vector by the difference vector calculation unit 114 of the image encoding device 100.
  • the motion vector calculation unit 215 adds the difference vector supplied from the second encoded bit string decoding unit 202 to the prediction vector according to the prediction method information supplied from the first encoded bit string decoding unit 201.
  • the motion vector of the target block or target pixel is calculated (S204). However, for representative points for which the difference vector has not been decoded by the second encoded bit string decoding unit 202, the prediction vector is used as the motion vector.
  • the switching control unit 214 identifies the motion compensation prediction method of the target block according to the decoded prediction method information (S205).
  • the prediction method is a motion compensation prediction method by translation (parallel of S205)
  • the translation motion compensation prediction unit 204 uses the decoded image signal to be the reference image signal supplied from the decoded image buffer 208 as the second image signal.
  • motion compensation is performed by translation and a prediction signal is generated (S206).
  • the geometric transformation motion compensation prediction unit 205 uses the reference image signal supplied from the decoded image buffer 208 and The decoded image signal to be subjected to motion compensation by geometric transformation using the motion vector supplied from the second encoded bit string decoding unit 202 generates a prediction signal (S207).
  • the third encoded bit string decoding unit 203 decodes the encoded bit string supplied via the input switch 209 and acquires the encoded prediction error signal (S208).
  • the decoded image signal generation unit 207 decodes the acquired prediction error signal (S209).
  • the decoded image signal generation unit 207 superimposes the prediction error signal decoded by the prediction error signal decoding unit 206 and the prediction signal generated by the translational motion compensation prediction unit 204 or the geometric transformation motion compensation prediction unit 205.
  • a decoded image signal is generated (S210).
  • the decoded image signal generation unit 207 accumulates the generated decoded image signal in the decoded image buffer 208 (S211).
  • the decoded image signal stored in the decoded image buffer 208 is used as a reference image signal in the translational motion compensation prediction unit 204 and the geometric transformation motion compensation prediction unit 205.
  • the encoded stream generated by the image encoding apparatus 100 according to the first embodiment can be efficiently decoded.
  • achieved by the image coding apparatus 100 which concerns on Embodiment 1 mentioned above is supported from the decoding side, and the effect can be ensured. That is, in the image coding method using motion compensation prediction by geometric transformation, the effect of improving the compression efficiency of the code amount can be supported from the decoding side, and the effect can be ensured. Also, in the image coding method using both motion compensation prediction by parallel movement and motion compensation prediction by geometric transformation, the effect of improving the compression efficiency of the code amount can be supported from the decoding side, and the effect can be ensured. it can. Moreover, the harmony and compatibility with the existing image decoding apparatus are high, and the introduction cost can be suppressed.
  • the target pixel that is, the macroblock partition or the sub-macroblock partition
  • the pixel near the vertex is used as the representative pixel and the representative pixel is included in the target block (FIG. 3). reference).
  • the present invention is not limited to this, and the representative pixel may be out of the target block.
  • FIG. 11 is a diagram (part 2) for explaining representative pixels corresponding to the four vertices of the target block.
  • the pixel a located at the upper left vertex, the pixels b, c, and d located near the upper right, lower left, and lower right vertices are set as representative pixels a, b, c, and d, respectively.
  • the representative pixel is represented by a black circle
  • the non-representative pixel is represented by a white circle
  • the representative pixel is a pixel a (0, 0) existing at the vertex of the target block (16 ⁇ 16 pixel macroblock in FIG.
  • W is a distance (unit: pixel) between representative pixels in the horizontal direction (between pixel a and pixel b and between pixel c and pixel d)
  • H is between representative pixels in the vertical direction (pixel a and pixel).
  • the coordinates of each pixel are represented by (i, j), the horizontal coordinates are represented by i in units of pixels, and the vertical coordinates are represented by j in units of pixels.
  • the upper left pixel in the macroblock is the origin (0, 0), and the right direction and the downward direction are positive increasing directions.
  • the upper left first representative pixel a is included in the target block, but the upper right second representative pixel b, the lower left third representative pixel c, and the lower right fourth representative pixel d are not included in the target block.
  • the motion vectors Va, Vb, Vc, Vd of the four representative pixels a, b, c, d to the motion vector V (i, j) of the other pixels P (i, j) are expressed by the above equation (3). ).
  • the representative pixel setting shown in FIG. 11 the same method as the method described with reference to FIG. With reference to the setting of the representative pixel shown in FIG. 11, motion vector prediction when motion compensated prediction by geometric transformation is selected for both the encoding target block and adjacent blocks will be described more specifically with reference to FIG. 12. .
  • the representative pixel b, the representative pixel c, and the representative pixel d each protrude from the target block by one pixel. Therefore, the representative pixel a of the target block is also the representative pixel b of the left adjacent block A, the representative pixel c of the upper adjacent block B, and the representative pixel d of the upper left adjacent block D.
  • the representative pixel b of the target block is also the representative pixel d of the upper adjacent block B, and is also the representative pixel c of the upper right adjacent block C.
  • the representative pixel c of the target block is also the representative pixel d of the block A adjacent to the left.
  • the prediction vectors of the first representative pixel a, the second representative pixel b, and the third representative pixel c are predicted from the motion vectors of adjacent blocks.
  • the prediction vector of the first representative pixel a of the encoding target block is the block A on the left side in the neighboring blocks that refer to the same image as the reference image of the target block among the encoded adjacent blocks. Is calculated with reference to the motion vector of the upper right vertex pixel, the motion vector of the lower left vertex pixel of the upper adjacent block B, and the motion vector of the lower right vertex pixel of the upper left block D.
  • the prediction vector of the second representative pixel b includes the motion vector of the lower right vertex pixel of the upper adjacent block B, the motion vector of the lower left vertex pixel of the upper right block C, and the motion of the first representative pixel a of the target block.
  • a vector is selected according to a predetermined rule.
  • the prediction vector of the third representative pixel c the motion vector of the lower right vertex pixel of the block A adjacent to the left is used as the prediction vector.
  • the prediction vector of the fourth representative pixel d is calculated from the motion vectors Va, Vb, and Vc of the first representative pixel a, the second representative pixel b, and the third representative pixel c, using the above formula (13) or It can be calculated by equation (14).
  • FIG. 13 is a diagram (No. 3) for explaining representative pixels corresponding to the four vertices of the target block.
  • the pixels a, b, and c located near the upper left, upper right, and lower left vertices and the pixel d located at the lower right vertex are set as the representative pixels a, b, c, and d.
  • the representative pixel is represented by a black circle
  • the non-representative pixel is represented by a white circle
  • the representative pixel is a pixel a ( ⁇ 1, ⁇ ) that exists near the vertex of the target block (16 ⁇ 16 pixel macroblock in FIG. 13).
  • W is a distance (unit: pixel) between representative pixels in the horizontal direction (between pixel a and pixel b and between pixel c and pixel d)
  • H is between representative pixels in the vertical direction (pixel a and pixel).
  • the coordinates of each pixel are represented by (i, j), the horizontal coordinates are represented by i in units of pixels, and the vertical coordinates are represented by j in units of pixels.
  • the upper left pixel in the macroblock is the origin (0, 0), and the right direction and the downward direction are positive increasing directions.
  • the lower right fourth representative pixel d is included in the target block, but the upper left, upper right, and lower left three representative pixels a, b, and c are not included in the target block.
  • the vertices of the target block that is, the macroblock partition or the sub-macroblock partition
  • the pixels near the vertices are used as representative pixels.
  • Interpolated pixels located at the coordinates may be used as representative pixels.
  • FIG. 14 is a diagram (part 4) for explaining representative pixels corresponding to the four vertices of the target block.
  • interpolation pixels a, b, c, and d corresponding to the positions of the upper left, upper right, lower left, and lower right vertices are set as representative pixels.
  • a representative pixel may be used, and a motion vector of a pixel that actually exists may be calculated by interpolation from the motion vector of the representative pixel.
  • the motion vector Vabcd of the adjacent block or the pixel of the adjacent block is not used as a prediction vector candidate as it is, but Vabcd is encoded.
  • the motion vector value Vabcd ′ calculated by scaling according to the distance (time) between the conversion target image and the reference image may be used as a prediction vector candidate.
  • the scaled motion vector value Vabcd ′ includes the distance (time) T1 between the encoding target image and the reference image indicated by the motion vector of the encoding target block, and the encoding target image and the pixel of the adjacent block or the adjacent block.
  • the motion vector value is scaled according to the distance (time) T2 from the reference image indicated by the motion vector Vabcd.
  • Vabcd ′ is calculated by scaling the motion vector Vabcd of the adjacent block (pixels of the adjacent block) according to the ratio of the frame intervals T1 and T2 between the encoding target image and the reference image.
  • the reference image referred to in the motion compensated prediction of the encoding target block is different from the reference image referred to in the motion compensated prediction of the adjacent block, and these two reference images are both past or future in the display order as viewed from the encoding target image.
  • the scaling is performed in the same direction. Scale by a positive value to scale in the same direction. By this scaling process, motion vectors having the same direction but different sizes become prediction vector candidates.
  • FIG. 15 is a diagram for explaining an example of the motion vector value scaling process. In FIG.
  • the reference image referenced in the motion compensated prediction of the encoding target block is different from the reference image referenced in the motion compensated prediction of the adjacent block, and these two reference images are past and future in the display order when viewed from the encoding target image.
  • the scaling is performed in the opposite direction. Scale with a negative value to scale in the opposite direction.
  • the L0 motion vector used for L0 prediction or bi-prediction and L1 prediction or bi-prediction are used.
  • Each L1 motion vector is handled separately.
  • the prediction vector candidate of the L0 motion vector is calculated from the L0 motion vector of the adjacent block or the pixel of the adjacent block
  • the prediction vector candidate of the L1 motion vector is the L1 motion vector of the pixel of the adjacent block or the adjacent block. Calculate from When the adjacent block is unidirectional prediction of L0 prediction or L1 prediction, only one of the L0 or L1 motion vectors exists.
  • the L1 motion vector is scaled by the above-described scaling processing. By doing so, it can be set as a candidate of a prediction vector of the motion vector of L0.
  • the L0 motion vector is scaled as described above. By scaling by processing, it can be set as a candidate of a prediction vector of the motion vector of L1.
  • the shape of the target block is a square
  • the shape of the target block may be other shapes such as a triangle, a parallelogram, and a trapezoid.
  • the representative pixel is set at or near the vertex of the shape.
  • DESCRIPTION OF SYMBOLS 100 Image coding apparatus, 101 Image buffer, 102 Translational motion compensation prediction part, 103 Geometric transformation motion compensation prediction part, 104 Prediction method determination part, 114 Difference vector calculation part, 105 Prediction error signal generation part, 106 Prediction error signal Encoding unit, 107, first encoded bit sequence generation unit, 108, second encoded bit sequence generation unit, 109, third encoded bit sequence generation unit, 110 prediction error signal decoding unit, 111 decoded image signal generation unit, 112 decoded image buffer, 113 Output switch, 200 Image decoding device, 201 First encoded bit string decoding unit, 202 Second encoded bit string decoding unit, 203 Third encoded bit string decoding unit, 215 Motion vector calculation unit, 204 Parallel motion compensation prediction unit, 205 Conversion prediction compensation unit, 206 prediction error signal decoding unit, 207 decoded image signal generation unit, 208 decoded image buffer, 209 input switch, 210 first prediction unit switch, 211 second prediction unit switch, 212 third prediction unit switch 213,
  • It can be used in the field of encoding images using motion compensated prediction.

Abstract

 幾何学変換動き補償予測部103は、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、上記動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して上記予測信号を算出する。

Description

画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム
 本発明は、動き補償予測を用いて画像を符号化する画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに動き補償予測を用いて画像を復号する画像復号装置、画像復号方法および画像復号プログラムに関する。
 動画像の圧縮符号化方式の代表的なものとして、MPEGシリーズの規格がある。MPEGシリーズの規格では、フレームを複数のブロックに分割し、他のフレームからの動きを予測する動き補償が用いられている。MPEG-4やAVC/H.264では、複数の動き補償ブロックサイズの中から、最適なものを切り替えて用いる仕組みが導入されている。
 ブロック単位の動き補償予測では、対象ブロックと参照ブロックとの間の平行移動を補償する方式が一般的である。これに加えて、ブロックの変形(たとえば、拡大、縮小、回転)を補償する方式も検討されている。たとえば、特許文献1では、フレーム間の予測を用いた画像符号化方式として、平行移動によって予測画像を求めるモードと幾何学変換によって予測画像を求めるモードをブロックごとに適応的に切り替えて、予測効率の向上を図っている。この方式では、平行移動の動きベクトルと、格子点の動きベクトル(すなわち、幾何学変換で用いる動きベクトル)を符号化するとしている。
特開平8-65680号公報
 このような状況下、本発明者は、幾何学変換による動き補償予測を使用する画像符号化方式にて、動きベクトル情報を圧縮することにより、さらに全体の符号量を圧縮する手法を見出した。
 本発明はこうした状況に鑑みなされたものであり、その目的は、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させる技術を提供することにある。
 本発明のある態様の画像符号化装置は、動画像を符号化する画像符号化装置であって、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して予測信号を算出するための幾何学変換動き補償予測部と、対象画像内の対象ブロックごとに、幾何学変換動き補償予測部による複数の予測モードのいずれかを選択するための予測方法決定部と、予測方法決定部により選択された予測モードで算出された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成するための予測誤差信号生成部と、予測方法決定部により選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成するための差分ベクトル生成部と、予測方法決定部により選択された予測モードを特定するための予測方法情報、差分ベクトル生成部により生成された差分動きベクトル、および予測誤差信号生成部により生成された予測誤差信号を符号化するための符号化部と、を備える。
 本発明の別の態様もまた、画像符号化装置である。この装置は、動画像を符号化する画像符号化装置であって、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を予測モードに従って算出し、その算出においては、対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して予測信号を算出する幾何学変換動き補償予測部と、幾何学変換動き補償予測部で算出された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する予測誤差信号生成部と、幾何学変換動き補償予測部で算出された代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成する差分ベクトル生成部と、差分ベクトル生成部により生成された差分動きベクトル、および予測誤差信号生成部により生成された予測誤差信号を符号化する符号化部と、を備える。
 本発明のある態様の画像復号装置は、幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、予測モードを特定するための予測方法情報、前記予測モードに応じた代表画素の差分動きベクトルおよび予測誤差信号を復号する復号部と、予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成部と、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の代表画素の動きベクトル、代表画素の動きベクトルを用いた補間により算出する代表画素以外の動きベクトル、および参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測部と、予測信号、および復号部により復号された予測誤差信号から画像信号を生成する画像信号生成部と、を備える。代表画素には、対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されている。
 本発明の別の態様もまた、画像復号装置である。この装置は、幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、代表画素の差分動きベクトルおよび予測誤差信号を復号する復号部と、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成部と、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の代表画素の動きベクトル、代表画素の動きベクトルを用いた補間により算出する代表画素以外の動きベクトル、および参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測部と、予測信号、および復号部により復号された予測誤差信号から画像信号を生成する画像信号生成部と、を備える。代表画素には、対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されている。
 なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させることができる。
本発明の実施の形態1に係る画像符号化装置の構成を示すブロック図である。 図2(a)~(h)は、マクロブロック・パーティションおよびサブマクロブロック・パーティションを説明するための図である。 対象ブロックの4つの頂点に対応する代表画素を説明するための図(その1)である。 シンタックス構造の一例を示す図である。 図5(a)~(d)は、対象ブロック、及び隣接ブロック共に平行移動による動き補償予測が選択された場合の動きベクトルの予測方法を説明するための図である。 符号化対象ブロックが平行移動による動き補償予測、隣接ブロックが幾何学変換による動き補償予測の場合の予測ベクトルの予測方法を説明するための図である。 図7(a)、(b)は、対象ブロックが幾何学変換による動き補償予測の場合の予測ベクトルの予測方法を説明するための図(その1)である。 本発明の実施の形態1に係る画像符号化装置における、マクロブロックの符号化処理手順を示すフローチャートである。 本発明の実施の形態2に係る画像復号装置の構成を示すブロック図である。 本発明の実施の形態2に係る画像復号装置における、マクロブロックの復号処理手順を示すフローチャートである。 対象ブロックの4つの頂点に対応する代表画素を説明するための図(その2)である。 対象ブロックが幾何学変換による動き補償予測の場合の予測ベクトルの予測方法を説明するための図(その2)である。 対象ブロックの4つの頂点に対応する代表画素を説明するための図(その3)である。 対象ブロックの4つの頂点に対応する代表画素を説明するための図(その4)である。 動きベクトル値のスケーリング処理の一例を説明するための図である。
 以下、図面と共に本発明の実施の形態を説明する。以下の実施の形態では、AVC/H.264符号化方式をベースとして符号化/復号する例を説明する。
 図1は、本発明の実施の形態1に係る画像符号化装置100の構成を示すブロック図である。画像符号化装置100は、画像バッファ101、平行移動動き補償予測部102、幾何学変換動き補償予測部103、予測方法決定部104、予測誤差信号生成部105、予測誤差信号符号化部106、第1符号化ビット列生成部107、第2符号化ビット列生成部108、第3符号化ビット列生成部109、予測誤差信号復号部110、復号画像信号生成部111、復号画像バッファ112および出力スイッチ113を含む。
 これらの構成は、ハードウェア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
 画像バッファ101は、撮影/表示時間順に供給された符号化対象の画像信号を一時格納する。画像バッファ101は、格納された符号化対象の画像信号を、所定の画素ブロック単位(ここでは、マクロブロック単位)で、平行移動動き補償予測部102、幾何学変換動き補償予測部103および予測誤差信号生成部105に並列に供給する。その際、撮影/表示時間順に供給された画像は、符号化順序に並び替えられて画像バッファ101から出力される。
 MPEGシリーズでは、マクロブロックとは16×16画素の輝度信号と、それに対応する2つの色差信号のブロックを指す。色差フォーマットのYUVが4:2:0の場合、色差信号は8×8画素のサイズである。
 本実施の形態では、参照画像を用いずに画面内で符号化するイントラ符号化方式、参照画像を用いた平行移動による動き補償予測方式、および参照画像を用いた幾何学変換による動き補償予測方式を用いる。ここで、参照画像は局部復号された復号画像である。なお、本実施の形態ではイントラ符号化方式には注目しないため、図1ではその構成を省略して描いている。これらの符号化方式のモードを、マクロブロック単位で単独あるいは組み合わせて適応的に切り替える。なお、すべてのマクロブロックを、参照画像を用いた幾何学変換による動き補償予測方式を用いて符号化する方式も可能である。
 平行移動動き補償予測部102は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、平行移動による動き補償予測を行う。平行移動動き補償予測部102は、それぞれのモードによる対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成し、予測方法決定部104に供給する。本実施の形態では、平行移動動き補償予測部102は、AVC/H.264方式などに規定されている既存の動き補償予測と同様の、平行移動による動き補償予測を行う。
 動き補償予測は、後述する復号画像バッファ112から供給される表示順序で、前方または後方の復号画像を参照画像とする。平行移動動き補償予測部102は、参照画像内の所定の検出範囲内で、画像バッファ101から供給されるマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間でブロックマッチングを行う。平行移動動き補償予測部102は、ブロックマッチングにより、当該マクロブロック信号と最も誤差が小さい、参照画像信号内の参照ブロック信号を特定し、当該マクロブロック信号と当該参照ブロック信号との間の動きベクトルを検出する。
 このブロックマッチングを、規定された複数のモードで行う。複数のモードはそれぞれ、参照インデックス、動き補償ブロックのサイズ、L0/L1/双予測などが異なる。参照インデックスとは参照ピクチャを示すインデックスである。なお、L0/L1/双予測はBスライスでのみ選択可能である。ここで、L0予測とL1予測は片方向から予測される片方向予測で、L0予測はL0の動きベクトル等の情報を用いる予測、L1予測はL1の動きベクトル等の情報を用いる予測である。また、双予測はL0の動きベクトル等の情報、及びL1の動きベクトル等の情報を用いて、2つの参照画像から予測される双方向予測である。ブロックサイズの具体例は後述する。
 また、動き補償予測を行う際、1画素未満の画素精度で動き補償することができる。たとえば、AVC/H.264方式などでは、輝度信号は1画素の1/4の精度まで、色差信号は1画素の1/8の精度までの動き補償を行うことができる。1画素未満の画素精度で動き補償する場合、1画素未満の画素精度の信号を参照画像内の周囲の整数画素の信号から補間により生成する。
 平行移動動き補償予測部102は、それぞれのモードにて動き補償予測を行い、それぞれのモードにおける予測信号(より具体的には、動き補償予測ブロック信号)および動きベクトルを、予測方法決定部104に供給する。
 つぎに、AVC/H.264方式における動き補償ブロックサイズについて説明する。
 図2(a)~(h)は、マクロブロック・パーティションおよびサブマクロブロック・パーティションを説明するための図である。ここでは説明を簡略化するため、輝度信号の画素ブロックのみ描いている。MPEGシリーズでは、マクロブロックは正方形領域で規定される。一般的にAVC/H.264方式を含むMPEGシリーズでは、16×16画素(水平16画素、垂直16画素)で規定されるブロックをマクロブロックという。さらに、AVC/H.264方式では、8×8画素で規定されるブロックをサブマクロブロックという。マクロブロック・パーティションとは、マクロブロックを動き補償予測のために、さらに分割したそれぞれの小ブロックをいう。サブマクロブロック・パーティションとは、サブマクロブロックを動き補償予測のために、さらに分割したそれぞれの小ブロックをいう。
 図2(a)は、マクロブロックが16×16画素の輝度信号とそれに対応する2つの色差信号から構成される1つのマクロブロック・パーティションで構成されていることを示す図である。ここでは、この構成を16×16モードのマクロブロック・タイプと呼ぶ。
 図2(b)は、マクロブロックが16×8画素(水平16画素、垂直8画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのマクロブロック・パーティションで構成されていることを示す図である。この2つのマクロブロック・パーティションは縦に並べられている。ここでは、この構成を16×8モードのマクロブロック・タイプと呼ぶ。
 図2(c)は、マクロブロックが8×16画素(水平8画素、垂直16画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのマクロブロック・パーティションで構成されていることを示す図である。この2つのマクロブロック・パーティションは横に並べられている。ここでは、この構成を8×16モードのマクロブロック・タイプと呼ぶ。
 図2(d)は、マクロブロックが8×8画素の輝度信号とそれに対応する2つの色差信号から構成される4つのマクロブロック・パーティションで構成されていることを示す図である。この4つのマクロブロック・パーティションは縦横2つずつ並べられている。この構成を8×8モードのマクロブロック・タイプと呼ぶ。
 図2(e)は、サブマクロブロックが8×8画素の輝度信号とそれに対応する2つの色差信号から構成される1つのサブマクロブロック・パーティションで構成されていることを示す図である。ここでは、この構成を8×8モードのサブマクロブロック・タイプと呼ぶ。
 図2(f)は、サブマクロブロックが8×4画素(水平8画素、垂直4画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのサブマクロブロック・パーティションで構成されていることを示す図である。この2つのサブマクロブロック・パーティションは縦に並べられている。この構成を8×4モードのサブマクロブロック・タイプと呼ぶ。
 図2(g)は、サブマクロブロックが4×8画素(水平4画素、垂直8画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのマクロブロック・パーティションで構成されていることを示す図である。この2つのマクロブロック・パーティションは横に並べられている。ここでは、この構成を4×8モードのサブマクロブロック・タイプと呼ぶ。
 図2(h)は、サブマクロブロックが4×4画素の輝度信号とそれに対応する2つの色差信号から構成される4つのサブマクロブロック・パーティションで構成されていることを示す図である。この4つのサブマクロブロック・パーティションは縦横2つずつ並べられている。ここでは、この構成を4×4モードのサブマクロブロック・タイプと呼ぶ。
 AVC/H.264符号化方式では、以上の動き補償ブロックサイズの中から、最適なものを切り替えて用いる仕組みが取り入れられている。まず、マクロブロック単位の動き補償ブロックサイズとして、16×16、16×8、8×16および8×8モードのマクロブロック・タイプの中からいずれかが選択される。8×8モードのマクロブロック・タイプが選択された場合、サブマクロブロック単位の動き補償ブロックサイズとして、8×8、8×4、4×8、4×4モードのサブマクロブロック・タイプの中からいずれかが選択される。
 輝度信号は、選択されたサイズの画素数で動き補償される。色差信号は、色差フォーマットが4:2:0の場合、水平、垂直ともにその半分の画素数で動き補償される。このように、動き補償ブロックサイズの情報は、マクロブロック・タイプおよびサブマクロブロック・タイプと呼ばれるシンタックス要素で符号化される。シンタックスとは符号化ビット列の表現規則であり、シンタックス要素とは、シンタックスで伝送することが規定されている情報である。
 16×16、16×8、8×16および8×8モードのいずれのマクロブロック・タイプでも、マクロブロック・パーティションごとに1つの動きベクトルが検出される。すなわち、16×16モードのマクロブロック・タイプでは1つの動きベクトルが、16×8および8×16モードのマクロブロック・タイプでは2つの動きベクトルが、および8×8モードのマクロブロック・タイプでは4つの動きベクトルが、それぞれ検出される。
 各マクロブロック・パーティションの輝度信号および色差信号の各画素は、そのマクロブロック・パーティションの1つの動きベクトルに応じて、動き補償される。すなわち、当該各画素は、同じ動きベクトルを用いて動き補償される。
 図1に戻り、幾何学変換動き補償予測部103は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、平行移動に加えて、拡大・縮小/回転などを含む変形を伴う幾何学変換による動き補償予測を行う。幾何学変換動き補償予測部103は、それぞれのモードによる対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成し、予測方法決定部104に供給する。より具体的には、幾何学変換動き補償予測部103は、対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素を代表画素として選定し、それら代表画素の動きベクトルを算出する。ここで、当該対象ブロックは四角形(たとえば、正方形、長方形)の領域であるため、その領域の頂点は4つである。したがって、4つの代表画素が存在する。そして、幾何学変換動き補償予測部103は、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いて補間により算出する。それらの画素毎の動きベクトルに応じて、画素毎に予測信号を予測する。
 幾何学変換動き補償予測部103は、対象ブロックの4つの代表画素の動きベクトルを符号化・復号する第1モードと、対象ブロックの縦方向における2つの代表画素の動きベクトルを符号化・復号する第2モードと、対象ブロックの横方向における2つの代表画素の動きベクトルを符号化・復号する第3モードと、対象ブロックの3つの代表画素の動きベクトルを符号化・復号する第4モードと、を実行することができる。なお、幾何学変換動き補償予測部103は、必ずしも複数のモードを実行する必要はなく、処理能力や各モードの発生頻度に応じて、一つのモードを固定的に使用してもよいし、一つのモードのみを備えるものでもよい。また、4つのモードの内の少なくとも2つのモードを実行してもよい(少なくとも2つのモードを備えるものでもよい)。これらの場合、演算量や各モードを識別する情報の符号量を低減することができる。
 本実施の形態の説明においては、上記対象ブロックを16×16画素のマクロブロックとして説明するが、当該対象ブロックのサイズは16×16画素に限定されるものではなく、8×8画素のサブマクロブロックであってもよいし、32×32画素、48×48画素、64×64画素、128×128画素等のブロックであってもよい。また、本実施の形態の説明においては、上記対象ブロックが正方形のマクロブロックとして説明するが、当該対象ブロックの形状は正方形に限定されるものではなく、16×8画素、8×16画素のマクロブロック・パーティション、8×4画素、4×8画素のサブマクロブロック・パーティション、32×16画素、16×32画素等のブロックであってもよい。
 予測方法決定部104は、幾何学変換動き補償予測部103による予測方法として、上述した第1モード、第2モード、第3モードおよび第4モードのいずれかを採用することができる。予測方法決定部104の詳細な処理については後述する。
 以下、幾何学変換動き補償予測部103について、より具体的に説明する。幾何学変換動き補償予測部103は、AVC/H.264方式などに規定された既存の平行移動による動き補償予測と異なり、平行移動に加えて、拡大・縮小/回転などを含む変形を伴う幾何学変換による動き補償予測を行う。
 本実施の形態に係る幾何学変換による動き補償予測では、マクロブロック、マクロブロック・パーティション、サブマクロブロックの輝度信号、色差信号の各画素をそれぞれ同じ動きベクトルで動き補償するのではなく、画素ごとに異なる動きベクトルを作成して動き補償を行う。幾何学変換動き補償予測部103は、各マクロブロックの頂点、頂点近傍の画素またはその頂点近傍に位置する補間画素を代表画素に選定し、その動きベクトルを求める。
 図3は、対象ブロックの4つの頂点に対応する代表画素を説明するための図(その1)である。ここで、対象ブロックの左上の頂点または頂点近傍を頂点a、右上の頂点または頂点近傍を頂点b、左下の頂点または頂点近傍を頂点cおよび右下の頂点または頂点近傍を頂点dとする。図3に示す例では、左上、右上、左下および右下の頂点にそれぞれ位置する画素a、b、c、dをそれぞれ代表画素a、b、c、dに設定している。図3では、代表画素を黒丸、非代表画素を白丸で表し、代表画素を対象ブロック(図3では、16×16画素のマクロブロック)の頂点に存在する画素a(0,0)、画素b(W,0)、画素c(0,H)および画素d(W,H)に設定している。ここで、Wは水平方向の代表画素間(画素aと画素bの間、及び画素cと画素dの間)の距離(単位:画素)、Hは垂直方向の代表画素間(画素aと画素cの間、及び画素bと画素dの間)の距離(単位:画素)であり、図3に示す代表画素の設定では、W=15(画素)、H=15(画素)である。以下、本明細書では各画素の座標を(i,j)で表し、水平方向の座標を1画素単位でiで表し、垂直方向の座標を1画素単位でjで表す。また、対象ブロックの左上の画素の座標を原点(0,0)とする。
 4つの代表画素(第1代表画素a、第2代表画素b、第3代表画素cおよび第4代表画素d)の動きベクトルを符号化・復号する第1モードの場合、当該4つの代表画素のそれぞれの動きベクトルを検出する。また、縦方向の2つの代表画素(第1代表画素aおよび第3代表画素c)の動きベクトルを符号化・復号する第2モードの場合、当該2つの代表画素のそれぞれの動きベクトルを検出する。また、横方向の2つの代表画素(第1代表画素aおよび第2代表画素b)の動きベクトルを符号化・復号する第3モードの場合、当該2つの代表画素のそれぞれの動きベクトルを検出する。また、3つの代表画素(第1代表画素a、第2代表画素bおよび第3代表画素c)の動きベクトルを符号化・復号する第4モードの場合、当該3つの代表画素のそれぞれの動きベクトルを検出する。
 幾何学変換動き補償予測部103は、各マクロブロックの代表画素の動きベクトルとして、オプティカルフロー法等により画素単位で算出した動きベクトルを用いてもよいし、画像のエッジやコーナー等の信頼性の高いと判断される特徴点の動きベクトルから内挿・外挿演算により補正した動きベクトルを用いてもよい。また、平行移動動き補償予測部102により生成された、マクロブロック・パーティションの動きベクトルを補正して用いてもよい。なお、マクロブロックやマクロブロック・パーティションの動きベクトルを補正して用いる場合、その動きベクトルの値を当該代表画素にあてはめて、その動きベクトルの値を増加方向および減少方向に調整しながら検証することにより、動きベクトルの値を補正する。
 つぎに、幾何学変換動き補償予測部103は、代表画素の動きベクトルからマクロブロック内の全画素の動きベクトルを、線形補間等を用いて補間することにより算出する。
 縦方向の2つの代表画素(第1代表画素aおよび第3代表画素c)の動きベクトルを符号化・復号する第2モードの場合、幾何学変換動き補償予測部103は、垂直方向の当該2つの代表画素a、cの動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより算出する。そして、その他の画素の動きベクトルを、線形補間された各画素の動きベクトルを水平方向にそのまま当てはめる。
 横方向の2つの代表画素(第1代表画素aおよび第2代表画素b)の動きベクトルを符号化・復号する第3モードの場合、幾何学変換動き補償予測部103は、水平方向の当該2つの代表画素a、bの動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより算出する。そして、その他の画素の動きベクトルを、線形補間された各画素の動きベクトルを垂直方向にそのまま当てはめる。
 4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dの動きベクトルを符号化・復号する第1モード、または3つの頂点a、b、cに対応する3つの代表画素a、b、cの動きベクトルを符号化・復号する第4モードの場合、幾何学変換動き補償予測部103は、水平方向および垂直方向の双方に補間することにより非代表画素の動きベクトルを算出する。後述する方法により水平方向および垂直方向の双方に一度に補間してもよいし、水平方向の当該2つの代表画素の動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより非代表画素の動きベクトルを算出し、その他の画素の動きベクトルを、すでに算出された各画素の動きベクトルを用いて、さらに垂直方向に補間することにより算出してもよい。
 なお、3つの頂点a、b、cに対応する3つの代表画素a、b、cの動きベクトルを符号化・復号する第4モードにおいては、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルから、第4代表画素dの動きベクトルを算出することができる。そして、4つの頂点a、b、c、dに対応する4つの代表画素の動きベクトルを符号化・復号する第1モードと同様に非代表画素の動きベクトルを算出することができる。
 なお、縦方向の2つの頂点a、cに対応する2つの代表画素a、cの動きベクトルを符号化・復号する第2モードにおいては、第1代表画素aの動きベクトルの値を第2代表画素bの動きベクトルの値に設定し、第3代表画素cの動きベクトルの値を第4代表画素dの動きベクトルの値に設定する。そして、4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dの動きベクトルを符号化・復号する第1モードと同様に、非代表画素の動きベクトルを算出することができる。
 同様に、横方向の2つの頂点a、bに対応する2つの代表画素a、bの動きベクトルを符号化・復号する第3モードにおいては、第1代表画素aの動きベクトルの値を第3代表画素cの動きベクトルの値に設定し、第2代表画素bの動きベクトルの値を第4代表画素dの動きベクトルの値に設定する。そして、4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dの動きベクトルを符号化・復号する第1モードと同様に、非代表画素の動きベクトルを算出することができる。
 幾何学変換動き補償予測部103は、算出された画素ごとの動きベクトルを用いて、画素ごとに動き補償を行う。以上の説明では、マクロブロックに含まれる各画素の動きベクトルを算出する例を説明したが、サブマクロブロックに含まれる各画素の動きベクトルも同様に算出することができる。
 この画素単位の動きベクトルの算出処理および各画素の動き補償処理を、規定された複数のモードで行う。複数のモードはそれぞれ、参照インデックス、動き補償ブロックのサイズ、L0/L1/双予測などが異なる。なお、L0/L1/双予測はBスライスでのみ選択可能である。
 幾何学変換動き補償予測部103は、それぞれのモードにて動き補償予測を行い、それぞれのモードにおける予測モード情報、動きベクトル、および予測信号(より具体的には、動き補償予測ブロック信号)を予測方法決定部104に供給する。
 以下、幾何学変換動き補償予測における、代表画素以外の各画素の動きベクトルの算出方法について具体例を挙げながら説明する。
 4つの代表画素a、b、c、dの動きベクトルの値を各成分毎に水平方向および垂直方向の双方に線形補間等の補間を用いることにより非代表画素の動きベクトルを算出する。上記図3の例では、代表画素を、マクロブロックの頂点に位置する画素a(0,0)、画素b(W,0)、画素c(0,H)および画素d(W,H)に設定している。ここでは、各画素の座標を(i,j)で表し、水平方向の座標を1画素単位でiで表し、垂直方向の座標を1画素単位でjで表している。マクロブロック内の最も左上の画素を原点(0,0)とし、右方向および下方向を正の増加方向とする。
 まず、これら画素a、画素b、画素cおよび画素dの動きベクトルが割り当てられ、つぎに、それ以外の画素の動きベクトルが、線形補間により算出される。
 4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dの動きベクトルを符号化・復号する第1モードでは、これら画素a、画素b、画素cおよび画素dの動きベクトルが割り当てられる。2つの頂点a、cに対応する2つの代表画素a、cの動きベクトルを符号化・復号する第2モードでは、これら画素aおよび画素cの動きベクトルが割り当てられ、画素aの動きベクトルは画素bの動きベクトルでもあり、画素cの動きベクトルは画素dの動きベクトルでもある。2つの頂点a、bに対応する2つの代表画素a、bの動きベクトルを符号化・復号する第3モードでは、これら画素aおよび画素bの動きベクトルが割り当てられ、画素aの動きベクトルは画素cの動きベクトルでもあり、画素bの動きベクトルは画素dの動きベクトルでもある。
 3つの頂点a、b、cに対応する3つの代表画素a、b、cの動きベクトルを符号化・復号する第4モードでは、これら画素a、画素bおよび画素cの動きベクトルが割り当てられ、これら3点の動きベクトルから、頂点dに対応する第4代表画素dの動きベクトルが算出される。画素aの動きベクトルVa=V(0,0)と、画素bの動きベクトルVb=V(W,0)と、画素cの動きベクトルVc=V(0,H)と、画素dの動きベクトルVd=V(W,H)との関係から、頂点dに対応する代表画素dの動きベクトルVdは、下記式(1)により算出される。
Vd=Vc+(Vb-Va) ・・・式(1)
 あるいは、下記式(2)により算出される。
Vd=Vb+(Vc-Va) ・・・式(2)
 つぎに、4つの代表画素a、b、c、dの4つの動きベクトルVa、Vb、Vc、Vdからそれ以外の画素P(i,j)の動きベクトルV(i,j)を線形補間により生成する。水平方向の代表画素間(画素aと画素bの間、及び画素cと画素dの間)の距離(画素数)をW、垂直方向の代表画素間(画素aと画素cの間、及び画素bと画素dの間)の距離(画素数)をHとしたとき、これら代表画素a、b、c、d以外の画素P(i,j)の動きベクトルV(i,j)は下記式(3)により算出される。
V(i,j)={(W-i)(H-j)Va+i(H-j)Vb+(W-i)j・Vc+i・j・Vd}/(W・H) ・・・式(3)
 なお、上記図3に示す代表画素の設定では、W=15(画素)、H=15(画素)である。
 以上により、第1モード、第2モード、第3モードおよび第4モードにおける各画素の動きベクトルを算出することができる。水平方向および垂直方向の双方に一度に(すなわち、2次元で)補間する方法について説明したが、水平方向の2つの代表画素の動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより非代表画素の動きベクトルを算出し、その他の画素の動きベクトルを、すでに算出された各画素の動きベクトルを用いて、さらに垂直方向に補間することにより算出してもよい。
 この場合の算出方法について説明する。画素aの動きベクトルVa=V(0,0)、画素bの動きベクトルVb=V(W,0)、画素cの動きベクトルVc=V(0,H)、および画素dの動きベクトルVd=V(W,H)とすると、画素aと画素bを通るライン上の各画素P(i,0)の動きベクトルV(i,0)は、下記式(4)により算出される。
V(i,0)=Va+(Vb-Va)*(i-0)/W ・・・式(4)
 同様に、画素cと画素dを通るライン上の各画素P(i,H)の動きベクトルV(i,H)は、下記式(5)により算出される。
V(i,H)=Vc+(Vd-Vc)*(i-0)/W ・・・式(5)
 さらに、残りの画素P(i,j)の動きベクトルV(i,j)は、下記式(6)により算出される。
V(i,j)=V(i,0)+{V(i,H)-V(i,0)}*(j-0)/H ・・・式(6)
 以上により、第1モード、第2モード、第3モードおよび第4モードにおける各画素の動きベクトルを算出することができる。なお、第2モードおよび第3モードでは下記の方法により算出することもできる。
 第2モードでは、画素aおよび画素cの動きベクトルが割り当てられ、画素aと画素cを通る垂直ライン上の各画素の動きベクトルが、線形補間により算出され、水平方向それぞれの画素に同じ動きベクトルの値が代入される。
 画素aの動きベクトルVa=V(0,0)および画素cの動きベクトルをVc=V(0,H)とすると、画素aと画素cを通るライン上の各画素の動きベクトルV(0,j)は、下記式(7)により算出される。
V(0,j)=Va+(Vc-Va)*(j-0)/H ・・・式(7)
 つぎに、下記式(8)に示すように、上記式(7)により算出された動きベクトルV(0,j)の値を水平方向に拡張して、動きベクトルV(0,j)の値を残りの画素の動きベクトルV(i,j)に代入する。
V(i,j)=V(0,j) ・・・式(8)
 残りの画素の動きベクトルV(i,j)は、下記式(9)により算出されてもよい。
V(i,j)=Va+(Vc-Va)*(j-0)/H ・・・式(9)
 第3モードでは、画素aおよび画素bの動きベクトルが割り当てられ、画素aと画素bを通る垂直ライン上の各画素の動きベクトルが、線形補間により算出され、水平方向それぞれの画素に同じ動きベクトルの値が代入される。
 画素aの動きベクトルVa=V(0,0)および画素bの動きベクトルVb=V(W,0)とすると、画素aと画素bを通るライン上の各画素の動きベクトルV(i,0)は、下記式(10)により算出される。
V(i,0)=Va+(Vb-Va)*(i-0)/W ・・・式(10)
 つぎに、下記式(11)に示すように、上記式(10)により算出された動きベクトルV(i,0)の値を垂直方向に拡張して、動きベクトルV(i,0)の値を残りの画素の動きベクトルV(i,j)に代入する。
V(i,j)=V(i,0) ・・・式(11)
 残りの画素の動きベクトルV(i,j)は、下記式(12)により算出されてもよい。
V(i,j)=Va+(Vb-Va)*(i-0)/W ・・・式(12)
 幾何学変換動き補償予測部103は、算出された各画素の動きベクトルに応じて各画素を動き補償予測する。より具体的には、各画素の動きベクトルが指し示す参照画像の画素から補間信号を生成することにより動き補償予測する。なお、各画素の動きベクトルの精度、演算過程で必要となる数値のまるめ方などは、どの復号装置で復号しても同じ値になるように規定する必要がある。また、動きベクトルにより指定される予測画素の座標が小数点以下で表される場合、動き補償の際に周囲の画素から当該画素を補間する。その補間方法には4~6タップのフィルタリングや線形補間などを用いることができる。
 第1モードでは、4つの動きベクトルで拡大・縮小、回転、平行移動など、第2モード、第3モードおよび第4モードでは表現できない複雑な変形を表すことができる。第4モードでは、3つの動きベクトルでアフィン変換による変形を表すことができる。変形の表現力は第1モードに比べて限定されるが、符号化すべき動きベクトル(より具体的には、差分ベクトル)の数を減らすことができる。
 第2モードでは、2つの動きベクトルで平行移動に加えて垂直方向に異なる変形を表すことができる。変形の表現力は第1モードおよび第4モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。第3モードでは、2つの動きベクトルで平行移動に加えて水平方向に異なる変形を表すことができる。変形の表現力は第1モードおよび第4モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。
 図1に戻り、予測方法決定部104は、対象画像内の対象ブロックごとに、平行移動動き補償予測部102による予測方法と、幾何学変換動き補償予測部103による予測方法とのいずれを採用するか決定する。より具体的には、いずれの予測方法の、いずれのモードを採用するかを決定する。以下、モードの選択を含めて予測方法の選択という。
 すなわち、予測方法決定部104は、平行移動による動き補償予測または幾何学変換による動き補償予測のどちらを、どの参照画像を用いて、どの画素ブロック単位で符号化するかを選択することにより、予測方法を決定する。幾何学変換による動き補償予測を選択する場合は、第1モード、第2モード、第3モードおよび第4モードのいずれかを選択する。その際、それらの項目の、どの組み合わせが、最も効率的な符号化を実現できる予測方法であるかを判定することにより、予測方法を決定する。予測方法を決定する基準として、たとえば、符号量と歪の関係を考慮したレート歪理論を用いることができる。より具体的には、マクロブロックの符号量(すなわち、予測方法情報、動きベクトルおよび予測信号の合計符号量)を算出するとともに、符号化対象画像と復号画像の差から歪量を算出し、当該符号量および当該歪量を入力変数とするレート歪関数を最小化する予測方法を選択する。
 予測方法決定部104は、採用した予測方法情報を第1符号化ビット列生成部107および差分ベクトル算出部114に、採用した予測方法に応じた動きベクトルを差分ベクトル算出部114に供給する。それとともに、予測方法決定部104は、採用した予測方法により生成された予測信号を予測誤差信号生成部105に供給する。
 第1符号化ビット列生成部107は、予測方法決定部104から供給される予測方法情報を、算術符号化などのエントロピー符号化により符号化し、符号化ビット列を生成する。予測方法情報に含めるべき、予測ブロックサイズ、L0/L1/双予測の区別などは組み合わせてマクロブロック・タイプとして符号化する。また、予測方法情報に含めるべき、平行移動による動き補償予測と幾何学変換による動き補償予測のいずれを用いるか、幾何学変換の場合、第1モード、第2モード、第3モードおよび第4モードのいずれを用いるかを識別するための情報に関しては、以下の記述方法を用いることができる。たとえば、シンタックス要素を別途に用意して記述してもよいし、他のマクロブロック・タイプとして符号化する情報と組み合わせることで、マクロブロック・タイプを拡張して記述してもよい。
 たとえば、幾何学変換による動き補償予測を行うか否かを切り替えるブロック単位毎に、“geom_type”というシンタックス要素を用意し、“geom_type”の値が“0”を平行移動による動き補償予測、“geom_type”の値が“1”を幾何学変換による動き補償予測の第1モード、“geom_type”の値が“2”を幾何学変換による動き補償予測の第2モード、“geom_type”の値が“3”を幾何学変換による動き補償予測の第3モード、および“geom_type”の値が“4”を幾何学変換による動き補償予測の第4モードを表すものとして符号化する。
 図4は、シンタックス構造の一例を示す図である。なお、図4では“geom_type”をマクロブロックごとに1つ用意し、L0予測、L1予測、双予測共に共通のモードで動き補償予測を行う例を示しているが、L0、L1双方から予測する双予測モードの場合、2つ用意することにより、L0予測、L1予測それぞれ別の動き補償予測を行うこともできる。
 対象ブロックの動きベクトルを符号化する際、すでに符号化または復号済みの周囲の隣接ブロックまたはその隣接ブロックの画素の動きベクトルとの相関を利用して、当該隣接ブロックまたは当該隣接ブロックの画素の動きベクトルから動きベクトルを予測することにより予測ベクトルを算出する。そして、この予測ベクトルと対象ブロックまたは対象画素の動きベクトルとの差分である差分ベクトルを算出することにより、対象ブロックまたは対象画素の動きベクトルの符号量を削減する。ここで、幾何学変換による動き補償予測が採用された対象ブロックでは、その代表画素の動きベクトルが符号化の対象となる。
 そこで、差分ベクトル算出部114は、予測方法決定部104から供給される予測方法情報に応じて、すでに符号化されている周囲の隣接ブロックまたはその隣接ブロックの画素の動きベクトルから、対象ブロックまたは対象画素の動きベクトルを予測することにより予測ベクトルを算出する。そして、その予測ベクトルと、予測方法決定部104から供給される動きベクトルとの差分を算出して差分ベクトルを生成し、第2符号化ビット列生成部108に供給する。
 第1モードでは、差分ベクトル算出部114は、4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dの動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。第2モードでは、2つの頂点a、cに対応する2つの代表画素a、cの動きベクトルを符号化・復号するために、それぞれ予測ベクトルおよび差分ベクトルを算出する。第3モードでは、2つの頂点a、bに対応する2つの代表画素a、bの動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。第4モードでは、3つの頂点a、b、cに対応する3つの代表画素a、b、cの動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。
 なお、差分ベクトル算出部114は、予測方法決定部104から供給される対象ブロックの予測情報および動きベクトルを保持し、後続する対象ブロックの予測ベクトルの算出に利用する。
 ここで、符号化対象ブロック、及び隣接ブロック共に平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図5は、符号化対象ブロック、及び隣接ブロック共に平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法を説明するための図である。図5(a)は、パーティションが設定されていないマクロブロック間において、動きベクトルを予測する例を示す。図5(b)は、パーティションが設定されているマクロブロック間において、動きベクトルを予測する例を示す。図5(c)は、8×16画素のマクロブロックにおいて、動きベクトルを予測する例を示す。図5(d)は、16×8画素のマクロブロックにおいて、動きベクトルを予測する例を示す。以下、図5(a)~(d)を参照して、動きベクトルの予測方法について説明する。この動きベクトルの予測方法は、周囲の隣接ブロックの動きベクトルの中央値を用いて、対象ブロックの動きベクトルを予測する。
 図5(a)~(d)にて、グレーで塗られているブロックの動きベクトルが符号化対象である。図5(a)にて、対象ブロックの動きベクトルを、その対象ブロックの左隣のブロックA、上隣のブロックBおよび右斜上隣のブロックCの3つの動きベクトルを候補として用いて予測する。より具体的には、それら3つの動きベクトルから水平成分および垂直成分それぞれについて中央値をとって予測ベクトルとする。なお、Bピクチャーにおいては、L0予測、または双予測に用いるL0の動きベクトルとL1予測、または双予測に用いるL1の動きベクトルをそれぞれ別々に扱う。その対象ブロックの左隣のブロックA、上隣のブロックBおよび右斜上隣のブロックCの3つのL0の動きベクトルを用いて予測することにより、対象ブロックのL0の予測ベクトルを算出する。同様に、その対象ブロックの左隣のブロックA、上隣のブロックBおよび右斜上隣のブロックCの3つのL1の動きベクトルを用いて予測することにより、対象ブロックのL1の予測ベクトルを算出する。ここで、上隣のブロックBおよび右斜上隣のブロックCが共に利用できず、ブロックAだけが利用できる場合、ブロックAの動きベクトルを予測ベクトルとして採用する。また、左隣のブロックA,上隣のブロックB、右斜上隣のブロックCの参照インデックスのうちひとつだけが符号化対象ブロックの参照インデックスと値が等しい(参照ピクチャが等しい)場合、そのブロックの動きベクトルを予測に用いる。
 図5(b)に示すように、隣接するマクロブロックにパーティションが設定されている場合、マクロブロックの小ブロックごとに動きベクトルが異なる。その場合、対象ブロックの左隣のブロックでは、対象ブロックと接している小ブロックのうち、最も上の小ブロックAの動きベクトルを候補として採用する。上隣のブロックでは、対象ブロックと接している小ブロックのうち、最も左のブロックBを候補として採用する。右斜上隣のブロックでは、最も左下の小ブロックCを候補として採用する。この規則に従って、以下、図5(a)と同様に、予測ベクトルを算出する。
 図5(c)に示すように、符号化するブロックが8×16の場合、3つのブロックの動きベクトルの中央値ではなく、左のブロックは左隣のブロックA、右のブロックは右斜上隣のブロックCの動きベクトルを予測ベクトルとして採用する。また、図5(d)に示すように、符号化するブロックが16×8の場合も、3つのブロックの動きベクトルの中央値ではなく、上のブロックは上隣のブロックB、下のブロックは左隣のブロックAの動きベクトルを予測ベクトルとして採用する。
 なお、図5(a)~(d)に示す動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、隣接ブロックの位置および数が異なっていてもよい。また、隣接ブロックの複数の動きベクトルの中央値ではなく、平均値を用いてもよい。規定の条件や優先順位を設けて、単独の隣接ブロックの動きベクトルをそのまま用いてもよい。また、隣接ブロックは対象ブロックと必ずしも接していなくてもよい。また、図5(a)~(d)ではマクロブロック単位の動きベクトルを予測する例を説明したが、サブマクロブロック単位の動きベクトルを予測する場合も、同様に処理することができる。
 次に、符号化対象ブロックで平行移動による動き補償予測が選択され、隣接ブロックでは幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図6は、符号化対象ブロックが平行移動による動き補償予測、隣接ブロックが幾何学変換による動き補償予測の場合の予測ベクトルの予測方法を説明するための図である。なお、図6に示すように、隣接ブロックが幾何学変換による動き補償予測の場合、対象ブロックの左隣のブロックでは、対象ブロックと接している小ブロックのうち、最も上の小ブロックの最も右上の画素Aの動きベクトルを予測ベクトルを算出する際の候補として採用する。上隣のブロックでは、対象ブロックと接している小ブロックのうち、最も左のブロックの最も左下の画素Bの動きベクトルを予測ベクトルを算出する際の候補として採用する。右斜上隣のブロックでは、最も左下の小ブロックの最も左下の画素Cの動きベクトルを予測ベクトルを算出する際の候補として採用する。
 なお、図6に示す動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、対象ブロックの左隣のブロックの4つの代表画素の平均値を対象ブロックの左隣の動きベクトルの候補としてもよい。また、対象ブロックの上隣のブロックの4つの代表画素の平均値を対象ブロックの上隣の動きベクトルの候補としてもよい。また、対象ブロックの右上隣のブロックの4つの代表画素の平均値を対象ブロックの右上隣の動きベクトルの候補としてもよい。さらに、隣接ブロックや隣接ブロックの画素の位置および数が異なっていてもよい。また、隣接ブロックの画素の複数の動きベクトルの中央値ではなく、平均値を用いてもよい。単独の隣接ブロックの画素の動きベクトルをそのまま用いてもよい。また、隣接ブロックまたは隣接ブロックの画素は対象ブロックと必ずしも接していなくてもよい。また、図6ではマクロブロック単位の動きベクトルを予測する例を説明したが、サブマクロブロック単位の動きベクトルを予測する場合も、同様に処理することができる。
 次に、符号化対象ブロック、及び隣接ブロック共に幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図7は、符号化対象ブロックが幾何学変換による動き補償予測の場合の予測ベクトルの予測方法を説明するための図である。この場合においても、同様に隣接ブロックの動きベクトルから予測ベクトルを算出する。符号化対象ブロックの第1代表画素a、第2代表画素bおよび第3代表画素cの予測ベクトルは、隣接ブロックの画素の動きベクトルから予測する。図7(a)において、符号化対象ブロックの第1代表画素aの予測ベクトルは、左隣のブロックAの代表画素bの動きベクトル、上隣のブロックBの代表画素cの動きベクトルおよび左斜上隣のブロックDの代表画素dの動きベクトルを参照して算出する。ここでの算出方法は候補が複数存在する場合に所定の優先順位を設定して優先順位順に採用したり、これらの動きベクトルの中間値、または平均値を算出したりする。符号化対象ブロックの第2代表画素bの予測ベクトルは、上隣のブロックBの代表画素dの動きベクトル、右斜上隣のブロックCの代表画素cの動きベクトルを参照して算出する。なお、中間値を予測ベクトルとする場合は、符号化対象ブロックの第1代表画素aの動きベクトルも候補に入れて、これら3つの動きベクトルから中間値を算出する。符号化対象ブロックの第3代表画素cの予測ベクトルは、左隣のブロックAの代表画素cの動きベクトルを予測ベクトルとする。
 次に、符号化対象ブロックで幾何学変換による動き補償予測が選択され、隣接ブロックでは平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図7(b)に示すように隣接ブロックが平行移動による動き補償予測の場合、隣接ブロックの動きベクトルが当該隣接ブロック内のすべての画素で共通である。そこで、符号化対象ブロック、及び隣接ブロック共に幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法と同様の方法で算出するが、当該ブロックの動きベクトルを隣接ブロックの代表画素の動きベクトルとして算出する。
 なお、図7に示す幾何学変換による動き補償予測が選択された場合の動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、隣接ブロックの代表画素の位置および数が異なっていてもよい。また、隣接ブロックの代表画素の複数の動きベクトルの中央値ではなく、平均値を用いてもよい。単独の隣接ブロックの代表画素の動きベクトルをそのまま用いてもよい。また、隣接ブロックの代表画素は対象画素と必ずしも接していなくてもよい。
 第1モードで符号化・復号する第4代表画素dに関しては、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルの中央値を予測ベクトルとして用いる。なお、符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、中央値ではなく、平均値を用いてもよいし、単独の任意の画素の動きベクトルをそのまま用いてもよい。
 また、第1モードで符号化・復号する第4代表画素dの予測ベクトルPVdは、第1代表画素a、第2代表画素bおよび第3代表画素cのそれぞれの動きベクトルVa、Vb、Vcから下記式(13)により算出する。
PVd=Vc+(Vb-Va) ・・・式(13)
 あるいは、下記式(14)により算出することもできる。
PVd=Vb+(Vc-Va) ・・・式(14)
 第1モードで符号化・復号する第4代表画素dの予測ベクトルの算出式である上記式(13)および上記式(14)は、第4モードで算出する第4代表画素dの算出式である上記式(1)および上記式(2)とそれぞれ同じ式である。第1モードは第2モード、第3モードおよび第4モードでは表現できない変形を表すことができるが、第4モードで表現できるアフィン変換に近い変換であることが多い。上記式(13)および上記式(14)で算出できる予測ベクトルは、第1モードで符号化・復号する第4代表画素dの動きベクトルと強い相関があるという考えに基づいている。
 なお、符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、第4代表画素dに関しては、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルの中央値を予測ベクトルとして用いることもできる。あるいは、中央値の代わりに、平均値を用いてもよいし、単独の任意の画素の動きベクトルをそのまま用いてもよい。または、式(7)で算出される予測ベクトル、第1代表画素aの動きベクトル、第2代表画素bの動きベクトル、第3代表画素cの動きベクトル、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルの中央値、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルの平均値を予測ベクトルの候補とし、少なくとも2つを適応的に切り替えてもよい。この場合、シンタックスに複数の候補から予測ベクトルとして採用する動きベクトルを特定するためのフラグを用意し、第1符号化ビット列生成部107でこのフラグを符号化する。
 図1に戻り、第2符号化ビット列生成部108は、差分ベクトル算出部114から供給される差分ベクトルを算術符号化などのエントロピー符号化により符号化し、符号化ビット列を生成する。
 なお、幾何学変換による動き補償予測では、第1~4モードに応じて、2~4本の差分ベクトルを符号化する。第1モードでは、4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dのそれぞれの差分ベクトルを符号化する。第2モードでは、2つの頂点a、cに対応する代表画素a、cのそれぞれの差分ベクトルを符号化する。第3モードでは、2つの頂点a、bに対応する代表画素a、bのそれぞれの差分ベクトルを符号化する。第4モードでは、3つの頂点a、b、cに対応する3つの代表画素a、b、cのそれぞれの差分ベクトルを符号化する。
 予測誤差信号生成部105は、予測方法決定部104により採用された予測方法で生成された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する。より具体的には、予測誤差信号生成部105は、画像バッファ101から供給される符号化対象の画像信号から、予測方法決定部104から供給される予測信号を減算することにより、予測誤差信号を生成し、予測誤差信号符号化部106に供給する。
 予測誤差信号符号化部106は、予測誤差信号生成部105から供給される予測誤差信号に対して、直交変換、量子化などの圧縮符号化処理を行い、符号化された予測誤差信号を生成し、第3符号化ビット列生成部109および予測誤差信号復号部110に供給する。
 第3符号化ビット列生成部109は、予測誤差信号符号化部106から供給される符号化された予測誤差信号を、算術符号化などのエントロピー符号化を用いて順次符号化し、符号化ビット列を生成する。
 第1符号化ビット列生成部107、第2符号化ビット列生成部108および第3符号化ビット列生成部109により生成された符号化ビット列は、予測方法情報、動きベクトル、予測誤差信号以外の情報が符号化されたその他の符号化ビット列とともに、出力スイッチ113を介して多重化され、符号化ストリームが生成される。
 予測誤差信号復号部110は、予測誤差信号符号化部106により符号化された予測誤差信号に対して、逆量子化、逆直交変換などの伸張復号処理を行い、当該予測誤差信号を復号する。予測誤差信号復号部110は、復号した予測誤差信号を復号画像信号生成部111に供給する。復号画像信号生成部111は、予測誤差信号符号化部106から供給される予測誤差信号と、予測方法決定部104から供給される予測信号を重畳して、復号画像信号を生成する。復号画像信号生成部111は、その復号画像信号をブロック単位で復号画像バッファ112に順次格納する。この復号画像バッファ112に格納される復号画像は、必要に応じて、符号化順序で後続する画像を動き補償予測する際の参照画像として利用される。
 図8は、本発明の実施の形態1に係る画像符号化装置100における、マクロブロックの符号化処理手順を示すフローチャートである。まず、平行移動動き補償予測部102および幾何学変換動き補償予測部103は、画像バッファ101から符号化対象のマクロブロック信号を取り出す(S101)。
 平行移動動き補償予測部102は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、平行移動による動き補償予測を行う(S102)。この平行移動による動き補償予測をモードごとに行う。幾何学変換動き補償予測部103は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、幾何学変換による動き補償予測を行う(S103)。この幾何学変換による動き補償予測をモードごとに行う。
 予測方法決定部104は、平行移動による動き補償予測方法と、幾何学変換による動き補償予測とのいずれを採用するか決定する(S104)。その際、どのモードを採用するかも決定する。
 第1符号化ビット列生成部107は、予測方法決定部104から供給される予測方法情報を符号化し、符号化ビット列を生成する(S105)。差分ベクトル算出部114は、周辺ブロックまたは周辺画素からの予測ベクトルを算出し(S106)、当該予測ベクトルと予測方法決定部104から供給される動きベクトルとの差分ベクトルを算出する(S107)。
 第2符号化ビット列生成部108は、差分ベクトル算出部114から供給される差分ベクトルを符号化し、符号化ビット列を生成する(S108)。予測誤差信号生成部105は、画像バッファ101から供給される対象画像信号から、予測方法決定部104から供給される予測信号を減算し、予測誤差信号を生成する(S109)。予測誤差信号符号化部106は、当該予測誤差信号を符号化する(S110)。第3符号化ビット列生成部109は、予測誤差信号符号化部106により符号化された予測誤差信号を、算術符号化等を用いてエントロピー符号化し、符号化ビット列を生成する(S111)。
 予測誤差信号復号部110は、予測誤差信号符号化部106により符号化された予測誤差信号を復号する(S112)。復号画像信号生成部111は、予測誤差信号復号部110により復号された予測誤差信号と、予測方法決定部104から供給される予測信号とを重畳して、復号画像信号を生成する(S113)。復号画像信号生成部111は、生成した復号画像信号を復号画像バッファ112に蓄積する(S114)。
 以上説明したように実施の形態1によれば、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させることができる。すなわち、幾何学変換による動き補償予測を使用する動きベクトルを予測符号化することにより、符号量を削減することができる。また、平行移動による動き補償予測と幾何学変換による動き補償予測とを併用すれば、符号量の圧縮効率をさらに向上させることができる。その際、平行移動による動き補償予測に係る動きベクトルと、幾何学変換による動き補償予測に係る動きベクトルの符号化方法を共通化することにより、これら2つの予測方法が混在しても、既存の動きベクトルの予測符号化方法をそのまま転用することができる。
 また、幾何学変換による動き補償予測方法が採用されたブロックでも、平行移動による動き補償予測と同様に、周囲のブロックまたは周囲の画素の動きベクトルから予測ベクトルを予測し、差分ベクトルを算出することができる。これにより、平行移動による動き補償予測と幾何学変換による動き補償予測を併用しても、動きベクトルの符号量の増大を抑制することができる。とくに、幾何学変換による動き補償予測方法の第1モードにおいて、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルから上記式(13)または上記式(14)により、第4代表画素dの予測ベクトルを算出することにより、差分ベクトルの値を小さくし、動きベクトルの符号量の増大を抑制することができる。また、第4モードにおいて、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルから上記式(1)または上記式(2)により、第4代表画素dの動きベクトルを算出することにより、動きベクトルの符号量の増大をさらに抑制することができる。
 図9は、本発明の実施の形態2に係る画像復号装置200の構成を示すブロック図である。当該画像復号装置200は、実施の形態1に係る画像符号化装置100により生成された符号化ストリームを復号する。当該符号化ストリームにおいて、上述したように、平行移動による動き補償予測と幾何学変換による動き補償予測が併用されている場合もあるし、幾何学変換による動き補償予測が単独で使用されている場合もある(イントラ符号化については考慮せず)。
 画像復号装置200は、入力スイッチ209、第1符号化ビット列復号部201、第2符号化ビット列復号部202、第3符号化ビット列復号部203、動きベクトル算出部215、平行移動動き補償予測部204、幾何学変換動き補償予測部205、予測誤差信号復号部206、復号画像信号生成部207、復号画像バッファ208、切替制御部214、第1予測部スイッチ210、第2予測部スイッチ211、第3予測部スイッチ212および第4予測部スイッチ213を備える。
 これらの構成は、ハードウェア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。
 第1符号化ビット列復号部201、第2符号化ビット列復号部202、第3符号化ビット列復号部203は、符号化ストリームに含まれる、予測方法情報、差分ベクトルおよび予測誤差信号を復号する。上述したように、符号化ストリームには差分ベクトルが符号化されている。差分ベクトルは、対象ブロックの動きベクトルと、その隣接ブロックまたはその隣接ブロックの画素の動きベクトルから予測された予測ベクトルとの差分である。動きベクトル算出部215は、動きベクトルを復号する際、当該隣接ブロックまたは当該隣接ブロックの画素の動きベクトルから予測ベクトルを算出し、当該予測ベクトルに、復号された差分ベクトルを加算することにより、予測符号化された対象ブロックまたはその代表画素の動きベクトルを復号する。
 平行移動動き補償予測部204は、対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の動きベクトル、および参照ブロックの画像信号から予測信号を生成する。幾何学変換動き補償予測部205は、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の動きベクトル、および参照ブロックの画像信号から予測信号を生成する。
 上述したように、対象ブロックの頂点が代表画素に選定されており、上記符号化ストリームには、それぞれの代表画素の動きベクトルが含まれる。幾何学変換動き補償予測部205は、対象ブロックの複数の代表画素以外の画素の動きベクトルを、それら複数の代表画素の動きベクトルを用いた補間により算出する。たとえば、代表画素以外の画素の動きベクトルを、上記式(3)~(12)に示した演算式により算出する。
 切替制御部214は、第1符号化ビット列復号部201により復号された予測方法情報に応じて、対象画像内の対象ブロックごとに、平行移動動き補償予測部204による予測方法と、幾何学変換動き補償予測部205による予測方法とのいずれを用いるか指定する。
 以下、より具体的に説明する。第1符号化ビット列復号部201、第2符号化ビット列復号部202、および第3符号化ビット列復号部203には、実施の形態1に係る画像符号化装置100により生成された符号化ストリームに含まれる符号化ビット列が、入力スイッチ209を介して選択的に入力される。
 第1符号化ビット列復号部201は、入力スイッチ209を介して供給される符号化ビット列を、算術復号化などのエントロピー復号化により復号し、予測方法情報を取得する。上述したように、この予測方法情報には平行移動/幾何学変換のどちらで符号化されているかが含まれているとともに、平行移動動き補償の場合、16×16/16×8/8×16/8×8モードのいずれを用いるかという情報が含まれ、幾何学変換の場合、4つの代表画素a、b、c、dの動きベクトルを符号化・復号する第1モード、対象ブロックの縦方向における2つの代表画素a、cの動きベクトルを符号化・復号する第2モード、対象ブロックの横方向における2つの代表画素a、bの動きベクトルを符号化・復号する第3モード、3つの代表画素a、b、cの動きベクトルを符号化・復号する第4モードのどのモードで符号化されているかの情報等が含まれている。第2符号化ビット列復号部202は、入力スイッチ209を介して供給される符号化ビット列を、算術復号化などのエントロピー復号化により復号し、差分ベクトルを取得する。前述の通り、差分ベクトルは、隣接ブロックの動きベクトルから算出される予測ベクトルと復号対象ブロックの動きベクトルとの差分である。なお、平行移動による動き補償予測で用いる動きベクトルと、幾何学変換による動き補償予測で用いる動きベクトルとが混在されて符号化されている場合、符号化側と同様に復号側でも混在された差分ベクトルから予測方法情報に応じて動きベクトルを復号する。
 第1符号化ビット列復号部201により復号された予測方法情報により、復号対象ブロックがイントラ符号化、平行移動による動き補償予測および幾何学変換による動き補償予測のどの手法を、どの参照画像を用いて、どのようなブロック単位で選択、組み合わせられているかが分かる。
 切替制御部214は、第1符号化ビット列復号部201から供給される予測方法情報に応じて、第1予測部スイッチ210、第2予測部スイッチ211、第3予測部スイッチ212および第4予測部スイッチ213を切り替える。対象ブロックの予測方法として、平行移動による動き補償予測方法が選択されている場合、平行移動動き補償予測部204の経路が選択されるよう切り替え、幾何学変換による動き補償予測方法が選択されている場合、幾何学変換動き補償予測部205の経路が選択されるよう切り替える。
 動きベクトル算出部215は、第1符号化ビット列復号部201から供給される予測方法情報に応じて、すでに符号化・復号されている周囲の隣接ブロック、または隣接ブロックの画素の動きベクトルから対象ブロックの動きベクトルを予測することにより予測ベクトルを算出する。そして、当該予測ベクトルに、第2符号化ビット列復号部202から供給される差分ベクトルを加算することにより動きベクトルを算出する。動きベクトル算出部215は、当該動きベクトルを第2予測部スイッチ211を介して、平行移動動き補償予測部204または幾何学変換動き補償予測部205に供給する。動きベクトル算出部215での予測ベクトルの算出は、画像符号化装置100の差分ベクトル算出部114での予測ベクトルの算出と同一の方法で行う。平行移動動き補償予測の場合、当該ブロックの動きベクトルが取得でき、幾何学変換動き補償の場合、当該ブロックの代表画素の動きベクトルが算出される。
 平行移動動き補償予測部204は、復号画像バッファ208から第4予測部スイッチ213を介して供給される参照画像とすべき復号画像、および第2符号化ビット列復号部202から第2予測部スイッチ211を介して供給される復号された動きベクトルを用いて、平行移動による動き補償予測を行う。
 幾何学変換動き補償予測部205は、復号画像バッファ208から第4予測部スイッチ213を介して供給される参照画像とすべき復号画像、および動きベクトル算出部215から第2予測部スイッチ211を介して供給される、復号された複数の代表画素の動きベクトルを用いて全画素の動きベクトルを補間により算出する。その際、上記式(1)~(14)参照して説明した、画像符号化装置100の幾何学変換動き補償予測部103と同一の処理方法を用いることができる。幾何学変換動き補償予測部205は、それら画素ごとの動きベクトルに応じて画素ごとに動き補償を行うことにより、幾何学変換による動き補償予測を行う。
 第3符号化ビット列復号部203は、入力スイッチ209を介して供給される符号化ビット列を順次復号し、符号化された予測誤差信号を取得する。予測誤差信号復号部206は、第3符号化ビット列復号部203から供給された符号化された予測誤差信号に対して、逆量子化、逆直交変換などの伸張復号処理を行い、復号された予測誤差信号を取得する。
 復号画像信号生成部207は、予測信号、および予測誤差信号から画像信号を生成する。より具体的には、復号画像信号生成部207は、切替制御部214により指定された予測方法に応じて、平行移動動き補償予測部204または幾何学変換動き補償予測部205から第3予測部スイッチ212を介して供給される予測信号に、予測誤差信号復号部206から供給される予測誤差信号を重畳して、復号画像信号を生成する。復号画像信号生成部207は、その復号画像信号をブロック単位で、復号画像バッファ208に順次格納する。
 図10は、本発明の実施の形態2に係る画像復号装置200における、マクロブロックの復号処理手順を示すフローチャートである。第1符号化ビット列復号部201は、入力スイッチ209を介して供給される符号化ビット列を復号して、予測方法情報を取得する(S201)。第2符号化ビット列復号部202は、入力スイッチ209を介して供給される符号化ビット列を復号して、差分ベクトルを取得する(S202)。なお、予測方法情報が幾何学変換による動き補償予測を示す場合、その予測方法情報に応じて2~4本の差分ベクトルを復号する。第1モードでは、4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dのそれぞれの差分ベクトルを復号する。第2モードでは、2つの頂点a、cに対応する代表画素a、cのそれぞれの差分ベクトルを復号する。第3モードでは、2つの頂点a、bに対応する代表画素a、bのそれぞれの差分ベクトルを復号する。第4モードでは、3つの頂点a、b、cに対応する3つの代表画素a、b、cのそれぞれの差分ベクトルを復号する。動きベクトル算出部215は、周辺ブロックまたは周辺画素から予測ベクトルを算出する(S203)。画像符号化装置100の差分ベクトル算出部114での予測ベクトルの算出と同一の方法で行う。さらに、動きベクトル算出部215は、第1符号化ビット列復号部201から供給される予測方法情報に応じて、その予測ベクトルに第2符号化ビット列復号部202から供給される差分ベクトルを加算して、対象ブロックまたは対象画素の動きベクトルを算出する(S204)。ただし、第2符号化ビット列復号部202で差分ベクトルが復号されなかった代表点については、予測ベクトルを動きベクトルとする。
 切替制御部214は、復号された予測方法情報に応じて、対象ブロックの動き補償予測方法を特定する(S205)。その予測方法が、平行移動による動き補償予測方法の場合(S205の平行)、平行移動動き補償予測部204は、復号画像バッファ208から供給される参照画像信号とすべき復号画像信号を、第2符号化ビット列復号部202から供給される動きベクトルを用いて、平行移動による動き補償をし、予測信号を生成する(S206)。
 切替制御部214により特定された予測方法が、幾何学変換による動き補償予測方法の場合(S205の幾何)、幾何学変換動き補償予測部205は、復号画像バッファ208から供給される参照画像信号とすべき復号画像信号を、第2符号化ビット列復号部202から供給される動きベクトルを用いて、幾何学変換による動き補償をし、予測信号を生成する(S207)。
 第3符号化ビット列復号部203は、入力スイッチ209を介して供給される符号化ビット列を復号して、符号化された予測誤差信号を取得する(S208)。復号画像信号生成部207は、取得された予測誤差信号を復号する(S209)。復号画像信号生成部207は、予測誤差信号復号部206により復号された予測誤差信号と、平行移動動き補償予測部204または幾何学変換動き補償予測部205により生成された予測信号とを重畳して、復号画像信号を生成する(S210)。復号画像信号生成部207は、生成した復号画像信号を、復号画像バッファ208に蓄積する(S211)。この復号画像バッファ208に蓄積された復号画像信号は、平行移動動き補償予測部204および幾何学変換動き補償予測部205における参照画像信号として利用される。
 以上説明したように実施の形態2によれば、実施の形態1に係る画像符号化装置100により生成された符号化ストリームを、効率的に復号することができる。これにより、上述した実施の形態1に係る画像符号化装置100により実現される効果を、復号側からサポートし、その効果を担保することができる。すなわち、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させる効果を、復号側からサポートし、その効果を担保することができる。また、平行移動による動き補償予測と幾何学変換による動き補償予測を併用する画像符号化方式においても、符号量の圧縮効率を向上させる効果を、復号側からサポートし、その効果を担保することができる。また、既存の画像復号装置との調和性および互換性が高く、導入コストを抑制することができる。
 以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 上述した実施の形態では、対象ブロック(すなわち、マクロブロック・パーティションまたはサブマクロブロック・パーティション)の頂点、頂点近傍の画素を代表画素とし、代表画素が対象ブロックに含まれる例を説明した(図3参照)。この点、それに限るものではなく、代表画素が対象ブロックから外れていてもよい。
 図11は、対象ブロックの4つの頂点に対応する代表画素を説明するための図(その2)である。図11に示す例では、左上の頂点に位置する画素a、右上、左下、右下の頂点近傍にそれぞれ位置する画素b、c、dをそれぞれ代表画素a、b、c、dに設定している。図11では、代表画素を黒丸、非代表画素を白丸で表し、代表画素を対象ブロック(図11では、16×16画素のマクロブロック)の頂点に存在する画素a(0,0)、頂点近傍に存在する画素b(W,0)、画素c(0,H)および画素d(W,H)に設定している。ここで、Wは水平方向の代表画素間(画素aと画素bの間、及び画素cと画素dの間)の距離(単位:画素)、Hは垂直方向の代表画素間(画素aと画素cの間、及び画素bと画素dの間)の距離(単位:画素)であり、図11に示す代表画素の設定では、W=16(画素)、H=16(画素)である。ここでは、各画素の座標を(i,j)で表し、水平方向の座標を1画素単位でiで表し、垂直方向の座標を1画素単位でjで表している。マクロブロック内の最も左上の画素を原点(0,0)とし、右方向および下方向を正の増加方向とする。左上の第1代表画素aは対象ブロックに含まれるが、右上の第2代表画素b、左下の第3代表画素cおよび右下の第4代表画素dは対象ブロックに含まれない。
 その際、4つの代表画素a、b、c、dの動きベクトルVa、Vb、Vc、Vdからそれ以外の画素P(i,j)の動きベクトルV(i,j)は、上記式(3)により算出される。
 上記式(3)において、図3に示す代表画素の設定ではW・H=225(15×15)で割るが、図11に示す代表画素の設定ではW・H=256(=16×16)で割る。2のべき乗である256で割る場合、8ビット右シフトするビットシフト演算で実現することが可能であるため、処理量を軽減することができ、ハードウェアへの実装が容易となる。代表画素の間隔を2のべき乗の数に設定することにより、除算をビットシフト演算で実現することが可能となる。なお、対象ブロックに含まれない代表画素は、画面から外れていて、実在しない仮想的な画素であってもよい。
 同様に、図11に示す代表画素の設定の場合、図3に示す代表画素の設定と同様に上記式(1)、(2)、(4)~(12)を用いて算出することができる。
 上記式(4)、(5)、(10)、(12)において、図3に示す代表画素の設定ではW=15で割るが、図11に示す代表画素の設定ではW=16で割る。さらに、上記式(6)、(7)、(9)において、図3に示す代表画素の設定ではH=15で割るが、図11に示す代表画素の設定ではH=16で割る。上述と同様に、2のべき乗である16で割る場合、4ビット右シフトするビットシフト演算で実現することが可能であるため、処理量を軽減することができ、ハードウェアへの実装が容易となる。代表画素の間隔を2のべき乗にすることにより、この場合も除算をビットシフト演算で置き換えることが可能となる。
 図11に示す代表画素の設定においても予測ベクトルの算出方法は図7を用いて説明した方法と同様の方法を採用することができる。図11に示す代表画素の設定を前提に、図12を用いてより具体的に符号化対象ブロック、及び隣接ブロック共に幾何学変換による動き補償予測が選択された場合の動きベクトルの予測について説明する。図11、図12に示すように代表画素間の間隔を16に設定する場合、代表画素b、代表画素cおよび代表画素dは、それぞれ対象ブロックから1画素分、外側にはみ出ることになる。したがって、対象ブロックの代表画素aは左隣のブロックAの代表画素bでもあり、上隣のブロックBの代表画素cでもあり、左斜上隣のブロックDの代表画素dでもある。対象ブロックの代表画素bは上隣のブロックBの代表画素dでもあり、右斜上隣のブロックCの代表画素cでもある。対象ブロックの代表画素cは左隣のブロックAの代表画素dでもある。第1代表画素a、第2代表画素bおよび第3代表画素cの予測ベクトルは、隣接ブロックの動きベクトルから予測する。
 図12において、符号化対象ブロックの第1代表画素aの予測ベクトルは、符号化済みの隣接ブロックのうち対象ブロックの参照画像と同じ画像を参照している周辺ブロック中で、左隣のブロックAの右上頂点画素の動きベクトル、上隣のブロックBの左下頂点画素の動きベクトルおよび左斜上隣のブロックDの右下頂点画素の動きベクトルを参照して、算出する。第2代表画素bの予測ベクトルは、上隣のブロックBの右下頂点画素の動きベクトル、右斜上隣のブロックCの左下頂点画素の動きベクトルおよび当該対象ブロックの第1代表画素aの動きベクトルから所定のルールにより選択する。第3代表画素cの予測ベクトルは、左隣のブロックAの右下頂点画素の動きベクトルを予測ベクトルとする。第4代表画素dの予測ベクトルは、上述したように、第1代表画素a、第2代表画素bおよび第3代表画素cのそれぞれの動きベクトルVa、Vb、Vcから上記式(13)または上記式(14)により算出することができる。
 図13は、対象ブロックの4つの頂点に対応する代表画素を説明するための図(その3)である。図13に示す例では、左上、右上、左下の頂点近傍に位置する画素a、b、c、右下の頂点に位置する画素dを代表画素a、b、c、dに設定している。図13の例では、代表画素を黒丸、非代表画素を白丸で表し、代表画素を対象ブロック(図13では、16×16画素のマクロブロック)の頂点近傍に存在する画素a(-1,-1)、画素b(W-1,-1)、画素c(-1,H-1)および頂点に存在する画素d(W-1,H-1)に設定している。ここで、Wは水平方向の代表画素間(画素aと画素bの間、及び画素cと画素dの間)の距離(単位:画素)、Hは垂直方向の代表画素間(画素aと画素cの間、及び画素bと画素dの間)の距離(単位:画素)であり、図11に示す代表画素の設定では、W=16(画素)、H=16(画素)である。ここでは、各画素の座標を(i,j)で表し、水平方向の座標を1画素単位でiで表し、垂直方向の座標を1画素単位でjで表している。マクロブロック内の最も左上の画素を原点(0,0)とし、右方向および下方向を正の増加方向とする。右下の第4代表画素dは対象ブロックに含まれるが、左上、右上、左下の3つの代表画素a、b、cは対象ブロックに含まれない。
 その際、4つの代表画素a、b、c、dの動きベクトルVa、Vb、Vc、Vdからそれ以外の画素P(i,j)の動きベクトルV(i,j)は、上記式(3)の代わりに下記式(15)により算出される。
V(i,j)={(W-i-1)(H-j-1)Va+(i+1)(H-j-1)Vb+(W-i-1)(j+1)・Vc+(i+1)・(j+1)・Vd}/(W・H) ・・・式(15)
 上記式(15)でもW・H=256(=16×16)で割っており、2のべき乗である256で割る場合、8ビット右シフトするビットシフト演算で実現することが可能であるため、処理量を軽減することができ、ハードウェアへの実装が容易となる。代表画素の間隔を2のべき乗の数にすることにより、除算をシフト演算で実現することが可能となる。なお、対象ブロックに含まれない代表画素は、画面から外れていて、実在しない仮想的な画素であってもよい。
 上述した実施の形態では、対象ブロック(すなわち、マクロブロック・パーティションまたはサブマクロブロック・パーティション)の頂点、頂点近傍の画素を代表画素としたが、それに限るものではなく、頂点、または頂点に相当する座標に位置する補間画素を代表画素としてもよい。
 図14は、対象ブロックの4つの頂点に対応する代表画素を説明するための図(その4)である。図14に示す例では、左上、右上、左下および右下の頂点の位置に相当する補間画素a、b、c、dを代表画素に設定している。これまでの例(図3、図11、図13)のように実際に存在する画素を代表画素とするだけではなく、この例(図14)の様に、補間された位置に存在する画素を代表画素とし、この代表画素の動きベクトルから、実際に存在する画素の動きベクトルを補間により算出してもよい。
 また、上記図5、図6、図7、図12において説明した動きベクトルの予測方法において、隣接ブロックまたは隣接ブロックの画素の動きベクトルVabcdをそのまま予測ベクトルの候補とするのではなく、Vabcdを符号化対象画像と参照画像との間の距離(時間)に応じて、スケーリングすることにより算出した動きベクトル値Vabcd'を予測ベクトルの候補として用いてもよい。スケーリングした動きベクトル値Vabcd'は、符号化対象画像と当該符号化対象ブロックの動きベクトルが指し示す参照画像との間の距離(時間)T1、及び符号化対象画像と隣接ブロックまたは隣接ブロックの画素の動きベクトルVabcdが指し示す参照画像との距離(時間)T2に応じてスケーリングした動きベクトル値である。スケーリングした動きベクトル値Vabcd'は下記式(16)により算出される。
Vabcd'=Vabcd*(T1/T2) ・・・式(16)
 符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なる場合、たとえ同じ動きでも互いの動きベクトルの値に差が生じるため、そのミスマッチを解消するために動きベクトルをスケーリングする。例えば、物体が変形せず、等速運動をしていれば、動きベクトルの大きさはフレーム間隔が長くなるほど大きくなる。符号化対象画像-参照画像間のフレーム間隔T1、T2の比率に応じて隣接ブロック(隣接ブロックの画素)の動きベクトルVabcdをスケーリングしてVabcd'を算出する。
 符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なり、それら2つの参照画像が符号化対象画像から見て表示順序で共に過去または共に未来に相当する場合、即ち、それら2つの参照画像が符号化対象画像から見て同じ側に位置する場合、同じ方向にスケーリングする。同じ方向にスケーリングするために正の値でスケーリングする。このスケーリング処理により、向きが同じで、大きさが異なる動きベクトルが予測ベクトルの候補となる。図15は、動きベクトル値のスケーリング処理の一例を説明するための図である。図15において、符号化対象画像の符号化対象ブロックの参照画像が画像Ref2であり、隣接ブロック(隣接ブロックの画素)の動き補償予測の参照画像が画像Ref3の場合、T1:T2=2:3であるから、画像Ref3を参照している隣接ブロック(隣接ブロックの画素)の動きベクトルVabcdを2/3にスケーリングする。これにより、仮に隣接ブロック(隣接ブロックの画素)が画像Ref2を参照して動き補償予測をした場合の動きベクトルの値に近くなり、結果的に画像Ref2を参照する符号化対象ブロックの動きベクトルの値に近くなる。図15の例では、隣接ブロックの動き補償予測の際の参照画像が画像Ref3でその動きベクトルの値が(24,-9)の場合、それを2/3にスケーリングした(16,-6)を予測ベクトルの候補とする。
 なお、符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なり、それら2つの参照画像が符号化対象画像から見て表示順序で過去と未来に相当する場合、即ち、それら2つの参照画像が符号化対象画像を挟んで両側に位置する場合、反対方向にスケーリングする。反対方向にスケーリングするために負の値でスケーリングする。このスケーリング処理により、向きが反対で、大きさが異なる動きベクトルが予測ベクトルの候補となる。図15において、符号化対象画像の符号化対象ブロックの参照画像が画像Ref2であり、隣接ブロック(隣接ブロックの画素)の動き補償予測の参照画像が画像Ref5の場合、T1:T2=2:-1であるから、画像Ref3を参照している隣接ブロック(隣接ブロックの画素)の動きベクトルVabcdを2/(-1)=-2倍にスケーリングする。これにより、仮に隣接ブロック(隣接ブロックの画素)が画像Ref2を参照して動き補償予測をした場合の動きベクトルの値に近くなり、結果的に画像Ref2を参照する符号化対象ブロックの動きベクトルの値に近くなる。図15の例では、隣接ブロックの動き補償予測の際の参照画像が画像Ref5でその動きベクトルの値が(-8,3)の場合、それを-2倍にスケーリングした(16,-6)を予測ベクトルの候補とする。
 なお、上記図5、図6、図7、図12において説明した動きベクトルの予測方法において、Bピクチャーにおいては、L0予測、または双予測に用いるL0の動きベクトルとL1予測、または双予測に用いるL1の動きベクトルをそれぞれ別々に扱う。つまり、L0の動きベクトルの予測ベクトルの候補は隣接ブロックまたは隣接ブロックの画素のL0の動きベクトルから算出し、L1の動きベクトルの予測ベクトルの候補は隣接ブロックまたは隣接ブロックの画素のL1の動きベクトルから算出する。なお、隣接ブロックがL0予測またはL1予測の片方向予測の場合、L0またはL1の動きベクトルのいずれか一方しか存在しない。L0の動きベクトルの予測ベクトルの候補を算出する際に隣接ブロックがL1予測で、隣接ブロックまたは隣接ブロックの画素のL0の動きベクトルが得られない場合、L1の動きベクトルを前述のスケーリング処理によりスケーリングすることにより、L0の動きベクトルの予測ベクトルの候補とすることができる。同様に、L1の動きベクトルの予測ベクトルの候補を算出する際に隣接ブロックがL0予測で、隣接ブロックまたは隣接ブロックの画素のL1の動きベクトルが得られない場合、L0の動きベクトルを前述のスケーリング処理によりスケーリングすることにより、L1の動きベクトルの予測ベクトルの候補とすることができる。
 上述した実施の形態では、対象ブロックの形状が正方形である例を説明した。この点、対象ブロックの形状は、三角形、平行四辺形、台形など、他の形状でもよい。この場合、上記代表画素は、当該形状の頂点または頂点近傍に設定されることが好ましい。
 100 画像符号化装置、 101 画像バッファ、 102 平行移動動き補償予測部、 103 幾何学変換動き補償予測部、 104 予測方法決定部、 114 差分ベクトル算出部、 105 予測誤差信号生成部、 106 予測誤差信号符号化部、 107 第1符号化ビット列生成部、 108 第2符号化ビット列生成部、 109 第3符号化ビット列生成部、 110 予測誤差信号復号部、 111 復号画像信号生成部、 112 復号画像バッファ、 113 出力スイッチ、 200 画像復号装置、 201 第1符号化ビット列復号部、 202 第2符号化ビット列復号部、 203 第3符号化ビット列復号部、 215 動きベクトル算出部、 204 平行移動動き補償予測部、 205 幾何学変換動き補償予測部、 206 予測誤差信号復号部、 207 復号画像信号生成部、 208 復号画像バッファ、 209 入力スイッチ、 210 第1予測部スイッチ、 211 第2予測部スイッチ、 212 第3予測部スイッチ、 213 第4予測部スイッチ、 214 切替制御部。
 動き補償予測を用いて画像を符号化する分野に利用できる。

Claims (18)

  1.  動画像を符号化する画像符号化装置であって、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出する幾何学変換動き補償予測部と、
     対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測部による複数の予測モードのいずれかを選択する予測方法決定部と、
     前記予測方法決定部により選択された予測モードで算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する予測誤差信号生成部と、
     前記予測方法決定部により選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと前記選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成する差分ベクトル生成部と、
     前記予測方法決定部により選択された予測モードを特定するための予測方法情報、前記差分ベクトル生成部により生成された差分動きベクトル、および前記予測誤差信号生成部により生成された予測誤差信号を符号化する符号化部と、
     を備えることを特徴とする画像符号化装置。
  2.  前記対象ブロックは四角形の領域であり、
     前記幾何学変換動き補償予測部は、
     前記対象ブロックの4つの代表画素の符号化される動きベクトルを算出する第1モードと、
     前記対象ブロックの縦方向における2つの代表画素の符号化される動きベクトルを算出する第2モードと、
     前記対象ブロックの横方向における2つの代表画素の符号化される動きベクトルを算出する第3モードと、
     前記対象ブロックの3つの代表画素の符号化される動きベクトルを算出する第4モードとの4つの予測モードの内の少なくとも2つの予測モードを備えることを特徴とする請求項1に記載の画像符号化装置。
  3.  前記幾何学変換動き補償予測部は、前記第4モードにおいて、四角形の前記対象ブロックにおける左上の頂点に相当する第1代表画素の動きベクトル、右上の頂点に相当する第2代表画素の動きベクトル、および左下の頂点に相当する第3代表画素の動きベクトルを算出することを特徴とする請求項2に記載の画像符号化装置。
  4.  前記差分ベクトル生成部は、前記予測方法決定部により前記第1モードが選択された場合、四角形の前記対象ブロックにおける右上の頂点に相当する第2代表画素の動きベクトルの値から左上の頂点に相当する第1代表画素の動きベクトルの値を引いた差分を、左下の頂点に相当する第3代表画素の動きベクトルに加算することにより、右下の頂点に相当する第4代表画素の予測動きベクトルを算出することを特徴とする請求項2に記載の画像符号化装置。
  5.  前記差分ベクトル生成部は、前記予測方法決定部により前記第1モードが選択された場合、四角形の前記対象ブロックにおける左下の頂点に相当する第3代表画素の動きベクトルの値から左上の頂点に相当する第1代表画素の動きベクトルの値を引いた差分を、右上の頂点に相当する第2代表画素の動きベクトルに加算することにより、右下の頂点に相当する第4代表画素の予測動きベクトルを算出することを特徴とする請求項2に記載の画像符号化装置。
  6.  動画像を符号化する画像符号化装置であって、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を予測モードに従って算出し、その算出においては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出する幾何学変換動き補償予測部と、
     前記幾何学変換動き補償予測部で算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する予測誤差信号生成部と、
     前記幾何学変換動き補償予測部で算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成する差分ベクトル生成部と、
     前記差分ベクトル生成部により生成された差分動きベクトル、および前記予測誤差信号生成部により生成された予測誤差信号を符号化する符号化部と、
     を備えことを特徴とする画像符号化装置。
  7.  対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成する平行移動動き補償予測部をさらに備え、
     前記予測方法決定部は、対象画像内の対象ブロックごとに、前記平行移動動き補償予測部による予測方法と、前記幾何学変換動き補償予測部による予測方法とのいずれを採用するか決定すると共に、採用した予測方法における予測モードを選択し、
     前記差分ベクトル生成部は、前記対象ブロックの動きベクトルの予測動きベクトルを、前記予測モード、及び前記対象ブロックに隣接する隣接ブロックの動き補償予測方法に応じて、当該隣接ブロック、あるいは当該隣接ブロックに含まれる画素の動きベクトルから生成すると共に、前記予測方法決定部により前記平行移動動き補償予測部による予測方法が採用された場合には、前記予測方法決定部により選択された予測モードで算出された前記対象ブロックの動きベクトルと、前記対象ブロックの動きベクトルの予測動きベクトルとの差分を算出して差分動きベクトルを生成する、
     ことを特徴とする請求項1から5のいずれかに記載の画像符号化装置。
  8.  動画像を符号化する画像符号化方法であって、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出する幾何学変換動き補償予測ステップと、
     対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測ステップによる複数の予測モードのいずれかを選択する予測方法決定ステップと、
     前記予測方法決定ステップにより選択された予測モードで算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する予測誤差信号生成ステップと、
     前記予測方法決定ステップにより選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと前記選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成する差分ベクトル生成ステップと、
     前記予測方法決定ステップにより選択された予測モードを特定するための予測方法情報、前記差分ベクトル生成ステップにより生成された差分動きベクトル、および前記予測誤差信号生成ステップにより生成された予測誤差信号を符号化する符号化ステップと、
     を備えることを特徴とする画像符号化方法。
  9.  動画像を符号化する画像符号化プログラムであって、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を複数の予測モードごとに算出し、各予測モードにおいては、前記対象ブロックを構成する頂点に位置する画素、またはその頂点近傍に位置する画素、またはその頂点近傍に位置する補間画素を頂点に相当する代表画素として選定し、それら代表画素の動きベクトルを算出するとともに、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いた補間により算出して前記予測信号を算出する幾何学変換動き補償予測処理と、
     対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測処理による複数の予測モードのいずれかを選択する予測方法決定処理と、
     前記予測方法決定処理により選択された予測モードで算出された予測信号と、前記対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する予測誤差信号生成処理と、
     前記予測方法決定処理により選択された予測モードで算出された代表画素の動きベクトルの予測動きベクトルを、前記対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルと前記選択された予測モードで算出された代表画素の動きベクトルとの差分を算出して代表画素の差分動きベクトルを生成する差分ベクトル生成処理と、
     前記予測方法決定処理により選択された予測モードを特定するための予測方法情報、前記差分ベクトル生成処理により生成された差分動きベクトル、および前記予測誤差信号生成処理により生成された予測誤差信号を符号化する符号化処理と、
     をコンピュータに実行させることを特徴とする画像符号化プログラム。
  10.  幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、予測モードを特定するための予測方法情報、前記予測モードに応じた代表画素の差分動きベクトルおよび予測誤差信号を復号する復号部と、
     前記予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成部と、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測部と、
     前記予測信号、および前記復号部により復号された予測誤差信号から画像信号を生成する画像信号生成部と、を備え、
     前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されていることを特徴とする画像復号装置。
  11.  前記復号部により復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測部による複数の予測モードのいずれを用いるか指定する制御部をさらに備え、
     前記対象ブロックは四角形の領域であり、
     前記複数の予測モードには、
     前記対象ブロックの4つの代表画素の動きベクトルを用いる第1モードと、
     前記対象ブロックの縦方向における2つの代表画素の動きベクトルを用いる第2モードと、
     前記対象ブロックの横方向における2つの代表画素の動きベクトルを用いる第3モードと、
     前記対象ブロックの3つの前記代表画素の動きベクトルを用いる第4モードとの4つの予測モードの内の少なくとも2つの予測モードが含まれることを特徴とする請求項10に記載の画像復号装置。
  12.  前記予測方法情報により特定される予測モードが前記第4モードである場合には、四角形の前記対象ブロックにおける左上の頂点に相当する第1代表画素の差分動きベクトルを、右上の頂点に相当する第2代表画素の差分動きベクトル、および左下の頂点に相当する第3代表画素の差分動きベクトルが代表画素の差分動きベクトルとして符号化ストリームに含まれていることを特徴とする請求項11に記載の画像復号装置。
  13.  前記動きベクトル生成部は、前記第1モードでは、四角形の前記対象ブロックにおける右下の頂点に相当する第4代表画素の予測動きベクトルを、右上の頂点に相当する第2代表画素の動きベクトルの値から左上の頂点に相当する第1代表画素の動きベクトルの値を引いた差分を、左下の頂点に相当する第3代表画素の動きベクトルに加算することにより算出することを特徴とする請求項11に記載の画像復号装置。
  14.  前記動きベクトル生成部は、前記第1モードでは、四角形の前記対象ブロックにおける右下の頂点に相当する第4代表画素の予測動きベクトルを、左下の頂点に相当する第3代表画素の動きベクトルの値から左上の頂点に相当する第1代表画素の動きベクトルの値を引いた差分を、右上の頂点に相当する第2代表画素の動きベクトルに加算することにより算出することを特徴とする請求項11に記載の画像復号装置。
  15.  幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、代表画素の差分動きベクトルおよび予測誤差信号を復号する復号部と、
     前記代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成部と、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測部と、
     前記予測信号、および前記復号部により復号された予測誤差信号から画像信号を生成する画像信号生成部と、を備え、
     前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されていることを特徴とする画像復号装置。
  16.  対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する平行移動動き補償予測部と、
     前記復号部により復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記平行移動動き補償予測部による予測方法と、前記幾何学変換動き補償予測部による予測方法とのいずれを用いるか指定する制御部と、をさらに備え、
     前記符号化ストリームに含まれるデータは、前記平行移動による動き補償予測と前記幾何学変換による動き補償予測が併用されて符号化されており、
     前記動きベクトル生成部は、対象ブロックの予測動きベクトルを、前記予測モード、及び前記対象ブロックに隣接する隣接ブロックの動き補償予測方法に応じて、当該隣接ブロック、あるいは当該隣接ブロックに含まれる画素の動きベクトルから生成することを特徴とする請求項10または14に記載の画像復号装置。
  17.  幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、予測モードを特定するための予測方法情報、前記予測モードに応じた代表画素の差分動きベクトルおよび予測誤差信号を復号する復号ステップと、
     前記予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成ステップと、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測ステップと、
     前記予測信号、および前記復号ステップにより復号された予測誤差信号から画像信号を生成する画像信号生成ステップと、を備え、
     前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されていることを特徴とする画像復号方法。
  18.  幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、予測モードを特定するための予測方法情報、前記予測モードに応じた代表画素の差分動きベクトルおよび予測誤差信号を復号する復号処理と、
     前記予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成処理と、
     対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測処理と、
     前記予測信号、および前記復号処理により復号された予測誤差信号から画像信号を生成する画像信号生成処理と、をコンピュータに実行させ、
     前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されていることを特徴とする画像復号プログラム。
PCT/JP2011/002514 2010-05-21 2011-04-28 画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム WO2011145282A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201180025300.XA CN103039075B (zh) 2010-05-21 2011-04-28 图像编码装置、图像编码方法、以及图像解码装置、图像解码方法
US13/683,812 US9277220B2 (en) 2010-05-21 2012-11-21 Image coding apparatus including a geometric-transformation motion compensation prediction unit utilizing at least two prediction modes out of four prediction modes

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2010-117156 2010-05-21
JP2010117156 2010-05-21
JP2010-117157 2010-05-21
JP2010117157 2010-05-21
JP2011-070982 2011-03-28
JP2011-070981 2011-03-28
JP2011070981A JP5686018B2 (ja) 2010-05-21 2011-03-28 画像符号化装置、画像符号化方法および画像符号化プログラム
JP2011070982A JP5686019B2 (ja) 2010-05-21 2011-03-28 画像復号装置、画像復号方法および画像復号プログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/683,812 Continuation US9277220B2 (en) 2010-05-21 2012-11-21 Image coding apparatus including a geometric-transformation motion compensation prediction unit utilizing at least two prediction modes out of four prediction modes

Publications (1)

Publication Number Publication Date
WO2011145282A1 true WO2011145282A1 (ja) 2011-11-24

Family

ID=44991405

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/002514 WO2011145282A1 (ja) 2010-05-21 2011-04-28 画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム

Country Status (1)

Country Link
WO (1) WO2011145282A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018513571A (ja) * 2016-02-17 2018-05-24 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオピクチャを符号化および復号する方法および装置
CN112088533A (zh) * 2018-03-21 2020-12-15 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0879763A (ja) * 1994-09-05 1996-03-22 Sharp Corp 動画像符号化装置及び動画像復号装置
JPH0879759A (ja) * 1994-09-02 1996-03-22 Sharp Corp 画像符号化装置及び画像復号装置
JPH09172644A (ja) * 1995-10-18 1997-06-30 Sharp Corp アフィン変換による動き補償フレーム間予測方式を用いた動画像符号化・復号化装置
JPH09200770A (ja) * 1996-01-17 1997-07-31 Nec Corp 適応動きベクトル補間による動き補償フレーム間予測方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0879759A (ja) * 1994-09-02 1996-03-22 Sharp Corp 画像符号化装置及び画像復号装置
JPH0879763A (ja) * 1994-09-05 1996-03-22 Sharp Corp 動画像符号化装置及び動画像復号装置
JPH09172644A (ja) * 1995-10-18 1997-06-30 Sharp Corp アフィン変換による動き補償フレーム間予測方式を用いた動画像符号化・復号化装置
JPH09200770A (ja) * 1996-01-17 1997-07-31 Nec Corp 適応動きベクトル補間による動き補償フレーム間予測方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018513571A (ja) * 2016-02-17 2018-05-24 テレフオンアクチーボラゲット エルエム エリクソン(パブル) ビデオピクチャを符号化および復号する方法および装置
CN112088533A (zh) * 2018-03-21 2020-12-15 韩国电子通信研究院 图像编码/解码方法和装置以及存储比特流的记录介质

Similar Documents

Publication Publication Date Title
US9277220B2 (en) Image coding apparatus including a geometric-transformation motion compensation prediction unit utilizing at least two prediction modes out of four prediction modes
RU2603542C2 (ru) Способ и устройство для кодирования видео и способ и устройство для декодирования видео
KR100962759B1 (ko) 동화상 신호의 부호화 방법 및 복호화 방법
TWI571108B (zh) 動畫像編碼裝置、動畫像解碼裝置、動畫像編碼方法及動畫像解碼方法
JP2005253088A (ja) グレイアルファチャンネルを含んだ映像の符号化/復号化装置および方法
KR20160086420A (ko) 화상 처리 장치 및 방법, 컴퓨터 판독가능 기록 매체
JP5216710B2 (ja) 復号化処理方法
JP5686018B2 (ja) 画像符号化装置、画像符号化方法および画像符号化プログラム
KR20110083567A (ko) 모션 추정을 위한 기법들
JP2008271371A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法、動画像復号方法およびプログラム
JP5716437B2 (ja) 画像符号化装置、画像符号化方法および画像符号化プログラム
JP5716438B2 (ja) 画像復号装置、画像復号方法および画像復号プログラム
JP5843032B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP5686019B2 (ja) 画像復号装置、画像復号方法および画像復号プログラム
JPH1188888A (ja) 動きベクトル予測符号化方法および動きベクトル復号方法、予測符号化装置および復号装置、並びに、動きベクトルの予測符号化プログラムおよび復号プログラムを記録した記録媒体
WO2011145282A1 (ja) 画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム
JP2011151775A (ja) 画像復号装置、画像復号方法および画像復号プログラム
WO2011077632A1 (ja) 画像符号化装置、画像符号化方法および画像符号化プログラム、ならびに画像復号装置、画像復号方法および画像復号プログラム
JP5880758B2 (ja) 動画像復号装置、動画像復号方法、及び動画像復号プログラム、並びに、受信装置、受信方法、及び受信プログラム
JP2011151774A (ja) 画像符号化装置、画像符号化方法および画像符号化プログラム
JP2021129148A (ja) 予測装置、符号化装置、復号装置、及びプログラム
WO2011099242A1 (ja) 画像符号化装置、画像復号装置、画像符号化方法及び画像復号方法
JP2015035660A (ja) 画像符号化装置、画像符号化方法、及び画像符号化プログラム
JP2013098713A (ja) 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180025300.X

Country of ref document: CN

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

Ref document number: 11783221

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11783221

Country of ref document: EP

Kind code of ref document: A1