JP5686019B2 - Image decoding apparatus, image decoding method, and image decoding program - Google Patents
Image decoding apparatus, image decoding method, and image decoding program Download PDFInfo
- Publication number
- JP5686019B2 JP5686019B2 JP2011070982A JP2011070982A JP5686019B2 JP 5686019 B2 JP5686019 B2 JP 5686019B2 JP 2011070982 A JP2011070982 A JP 2011070982A JP 2011070982 A JP2011070982 A JP 2011070982A JP 5686019 B2 JP5686019 B2 JP 5686019B2
- Authority
- JP
- Japan
- Prior art keywords
- prediction
- motion vector
- pixel
- motion
- representative
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 183
- 239000013598 vector Substances 0.000 claims description 571
- 230000009466 transformation Effects 0.000 claims description 109
- 238000004364 calculation method Methods 0.000 claims description 36
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 26
- 238000013519 translation Methods 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 15
- 238000005192 partition Methods 0.000 description 35
- 238000010586 diagram Methods 0.000 description 21
- 230000014509 gene expression Effects 0.000 description 9
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 7
- 101100269674 Mus musculus Alyref2 gene Proteins 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
本発明は、動き補償予測を用いて画像を復号する画像復号装置、画像復号方法および画像復号プログラムに関する。 The present invention relates to an image decoding apparatus, an image decoding method, and an image decoding program that decode an image using motion compensation prediction.
動画像の圧縮符号化方式の代表的なものとして、MPEGシリーズの規格がある。MPEGシリーズの規格では、フレームを複数のブロックに分割し、他のフレームからの動きを予測する動き補償が用いられている。MPEG−4やAVC/H.264では、複数の動き補償ブロックサイズの中から、最適なものを切り替えて用いる仕組みが導入されている。 As a typical moving image compression coding method, there is a standard of the MPEG series. In the MPEG series standard, motion compensation that divides a frame into a plurality of blocks and predicts motion from other frames is used. MPEG-4 and AVC / H. In H.264, a mechanism for switching and using an optimum one from a plurality of motion compensation block sizes is introduced.
ブロック単位の動き補償予測では、対象ブロックと参照ブロックとの間の平行移動を補償する方式が一般的である。これに加えて、ブロックの変形(たとえば、拡大、縮小、回転)を補償する方式も検討されている。たとえば、特許文献1では、フレーム間の予測を用いた画像符号化方式として、平行移動によって予測画像を求めるモードと幾何学変換によって予測画像を求めるモードをブロックごとに適応的に切り替えて、予測効率の向上を図っている。この方式では、平行移動の動きベクトルと、格子点の動きベクトル(すなわち、幾何学変換で用いる動きベクトル)を符号化するとしている。 In motion compensation prediction in units of blocks, a method of compensating for parallel movement between a target block and a reference block is common. In addition to this, a scheme for compensating for block deformation (for example, enlargement, reduction, rotation) has been studied. For example, in Patent Document 1, as an image encoding method using prediction between frames, a mode in which a predicted image is obtained by parallel movement and a mode in which a predicted image is obtained by geometric transformation are adaptively switched for each block, thereby predicting efficiency. We are trying to improve. In this method, a translational motion vector and a lattice point motion vector (that is, a motion vector used in geometric transformation) are encoded.
このような状況下、本発明者は、幾何学変換による動き補償予測を使用する画像符号化方式にて、動きベクトル情報を圧縮することにより、さらに全体の符号量を圧縮する手法を見出した。 Under such circumstances, the present inventor has found 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 compensated prediction by geometric transformation.
本発明のある態様の画像復号装置は、幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、予測モードを特定するための予測方法情報、前記予測モードに応じた代表画素の差分動きベクトルおよび予測誤差信号を復号する復号部と、予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成部と、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の代表画素の動きベクトル、代表画素の動きベクトルを用いた補間により算出する代表画素以外の動きベクトル、および参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測部と、予測信号、および復号部により復号された予測誤差信号から画像信号を生成する画像信号生成部と、復号部により復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測部による複数の予測モードのいずれを用いるか指定する制御部と、を備える。代表画素には、対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されている。対象ブロックは四角形の領域である。複数の予測モードには、対象ブロックの4つの代表画素の動きベクトルを用いる第1モードと、対象ブロックの縦方向における2つの代表画素の動きベクトルを用いる第2モードと、対象ブロックの横方向における2つの代表画素の動きベクトルを用いる第3モードと、対象ブロックの3つの前記代表画素の動きベクトルを用いる第4モードとの4つの予測モードの内の少なくとも2つの予測モードが含まれる。 An image decoding apparatus according to an aspect of the present invention 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 The motion vector of the representative pixel with the reference block in the image, and the cost calculated by interpolation using the motion vector of the representative pixel Geometric transformation motion compensation prediction unit that generates a prediction signal from a motion vector other than a pixel and an image signal of a reference block, and an image signal generation unit that generates an image signal from the prediction signal and a prediction error signal decoded by the decoding unit And a control unit that designates which of the plurality of prediction modes by the geometric transformation motion compensation prediction unit is to be used for each target block in the target image with reference to the prediction method information decoded by the decoding unit. Prepare. As 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 target block is a rectangular area. The plurality of prediction modes include a first mode that uses motion vectors of four representative pixels of the target block, a second mode that uses motion vectors of two representative pixels in the vertical direction of the target block, and a horizontal direction of the target block. At least two prediction modes among the four prediction modes of the third mode using the motion vectors of the two representative pixels and the fourth mode using the motion vectors of the three representative pixels of the target block are included.
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。 It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, etc. are also effective as an aspect of the present invention.
幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させることができる。 The compression efficiency of the code amount can be improved by the image coding method using the motion compensation prediction by the geometric transformation.
以下、図面と共に本発明の実施の形態を説明する。以下の実施の形態では、AVC/H.264符号化方式をベースとして符号化/復号する例を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings. In the following embodiments, AVC / H. An example of encoding / decoding based on the H.264 encoding method will be described.
図1は、本発明の実施の形態1に係る画像符号化装置100の構成を示すブロック図である。画像符号化装置100は、画像バッファ101、平行移動動き補償予測部102、幾何学変換動き補償予測部103、予測方法決定部104、予測誤差信号生成部105、予測誤差信号符号化部106、第1符号化ビット列生成部107、第2符号化ビット列生成部108、第3符号化ビット列生成部109、予測誤差信号復号部110、復号画像信号生成部111、復号画像バッファ112および出力スイッチ113を含む。 FIG. 1 is a block diagram showing a configuration of image coding apparatus 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. .
これらの構成は、ハードウェア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。 These configurations can be realized by an arbitrary processor, memory, or other LSI in terms of hardware, and can be realized by a program loaded in the memory in terms of software, but here by their cooperation. Draw functional blocks. Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.
画像バッファ101は、撮影/表示時間順に供給された符号化対象の画像信号を一時格納する。画像バッファ101は、格納された符号化対象の画像信号を、所定の画素ブロック単位(ここでは、マクロブロック単位)で、平行移動動き補償予測部102、幾何学変換動き補償予測部103および予測誤差信号生成部105に並列に供給する。その際、撮影/表示時間順に供給された画像は、符号化順序に並び替えられて画像バッファ101から出力される。 The image buffer 101 temporarily stores image signals to be encoded supplied in the 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 generation unit 105 is supplied 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.
MPEGシリーズでは、マクロブロックとは16×16画素の輝度信号と、それに対応する2つの色差信号のブロックを指す。色差フォーマットのYUVが4:2:0の場合、色差信号は8×8画素のサイズである。 In the MPEG series, a macroblock refers to a luminance signal of 16 × 16 pixels and two corresponding color difference signal blocks. When YUV of the color difference format is 4: 2: 0, the color difference signal has a size of 8 × 8 pixels.
本実施の形態では、参照画像を用いずに画面内で符号化するイントラ符号化方式、参照画像を用いた平行移動による動き補償予測方式、および参照画像を用いた幾何学変換による動き補償予測方式を用いる。ここで、参照画像は局部復号された復号画像である。なお、本実施の形態ではイントラ符号化方式には注目しないため、図1ではその構成を省略して描いている。これらの符号化方式のモードを、マクロブロック単位で単独あるいは組み合わせて適応的に切り替える。なお、すべてのマクロブロックを、参照画像を用いた幾何学変換による動き補償予測方式を用いて符号化する方式も可能である。 In the present embodiment, 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. Here, the reference image is a decoded image obtained by local decoding. In the present embodiment, since attention is not paid to the intra coding method, 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.
平行移動動き補償予測部102は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、平行移動による動き補償予測を行う。平行移動動き補償予測部102は、それぞれのモードによる対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成し、予測方法決定部104に供給する。本実施の形態では、平行移動動き補償予測部102は、AVC/H.264方式などに規定されている既存の動き補償予測と同様の、平行移動による動き補償予測を行う。 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. To the prediction method determination unit 104. In the present embodiment, 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.
動き補償予測は、後述する復号画像バッファ112から供給される表示順序で、前方または後方の復号画像を参照画像とする。平行移動動き補償予測部102は、参照画像内の所定の検出範囲内で、画像バッファ101から供給されるマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間でブロックマッチングを行う。平行移動動き補償予測部102は、ブロックマッチングにより、当該マクロブロック信号と最も誤差が小さい、参照画像信号内の参照ブロック信号を特定し、当該マクロブロック信号と当該参照ブロック信号との間の動きベクトルを検出する。 In motion compensation prediction, a forward or backward decoded image is used as a reference image in the 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/双予測などが異なる。参照インデックスとは参照ピクチャを示すインデックスである。なお、L0/L1/双予測はBスライスでのみ選択可能である。ここで、L0予測とL1予測は片方向から予測される片方向予測で、L0予測はL0の動きベクトル等の情報を用いる予測、L1予測はL1の動きベクトル等の情報を用いる予測である。また、双予測はL0の動きベクトル等の情報、及びL1の動きベクトル等の情報を用いて、2つの参照画像から予測される双方向予測である。ブロックサイズの具体例は後述する。 This block matching is 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. The reference index is an index indicating a reference picture. Note that L0 / L1 / bi-prediction can be selected only for B slices. Here, L0 prediction and L1 prediction are unidirectional predictions predicted from one direction, L0 prediction is prediction using information such as an L0 motion vector, and 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.
また、動き補償予測を行う際、1画素未満の画素精度で動き補償することができる。たとえば、AVC/H.264方式などでは、輝度信号は1画素の1/4の精度まで、色差信号は1画素の1/8の精度までの動き補償を行うことができる。1画素未満の画素精度で動き補償する場合、1画素未満の画素精度の信号を参照画像内の周囲の整数画素の信号から補間により生成する。 In addition, when performing motion compensation prediction, motion compensation can be performed with a pixel accuracy of less than one pixel. For example, in the AVC / H.264 system or the like, 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. When motion compensation is performed with pixel accuracy of less than one pixel, 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.
平行移動動き補償予測部102は、それぞれのモードにて動き補償予測を行い、それぞれのモードにおける予測信号(より具体的には、動き補償予測ブロック信号)および動きベクトルを、予測方法決定部104に供給する。 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.
つぎに、AVC/H.264方式における動き補償ブロックサイズについて説明する。
図2(a)〜(h)は、マクロブロック・パーティションおよびサブマクロブロック・パーティションを説明するための図である。ここでは説明を簡略化するため、輝度信号の画素ブロックのみ描いている。MPEGシリーズでは、マクロブロックは正方形領域で規定される。一般的にAVC/H.264方式を含むMPEGシリーズでは、16×16画素(水平16画素、垂直16画素)で規定されるブロックをマクロブロックという。さらに、AVC/H.264方式では、8×8画素で規定されるブロックをサブマクロブロックという。マクロブロック・パーティションとは、マクロブロックを動き補償予測のために、さらに分割したそれぞれの小ブロックをいう。サブマクロブロック・パーティションとは、サブマクロブロックを動き補償予測のために、さらに分割したそれぞれの小ブロックをいう。
Next, AVC / H. The motion compensation block size in the H.264 system will be described.
2A to 2H are diagrams for explaining a macroblock partition and a sub-macroblock partition. Here, in order to simplify the description, only the pixel block of the luminance signal is drawn. In the MPEG series, the macroblock is defined by a square area. Generally, 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. Furthermore, 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.
図2(a)は、マクロブロックが16×16画素の輝度信号とそれに対応する2つの色差信号から構成される1つのマクロブロック・パーティションで構成されていることを示す図である。ここでは、この構成を16×16モードのマクロブロック・タイプと呼ぶ。 FIG. 2A 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. Here, this configuration is referred to as a 16 × 16 mode macroblock type.
図2(b)は、マクロブロックが16×8画素(水平16画素、垂直8画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのマクロブロック・パーティションで構成されていることを示す図である。この2つのマクロブロック・パーティションは縦に並べられている。ここでは、この構成を16×8モードのマクロブロック・タイプと呼ぶ。 In 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. Here, this configuration is called a 16 × 8 mode macroblock type.
図2(c)は、マクロブロックが8×16画素(水平8画素、垂直16画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのマクロブロック・パーティションで構成されていることを示す図である。この2つのマクロブロック・パーティションは横に並べられている。ここでは、この構成を8×16モードのマクロブロック・タイプと呼ぶ。 In 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. Here, this configuration is referred to as an 8 × 16 mode macroblock type.
図2(d)は、マクロブロックが8×8画素の輝度信号とそれに対応する2つの色差信号から構成される4つのマクロブロック・パーティションで構成されていることを示す図である。この4つのマクロブロック・パーティションは縦横2つずつ並べられている。この構成を8×8モードのマクロブロック・タイプと呼ぶ。 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.
図2(e)は、サブマクロブロックが8×8画素の輝度信号とそれに対応する2つの色差信号から構成される1つのサブマクロブロック・パーティションで構成されていることを示す図である。ここでは、この構成を8×8モードのサブマクロブロック・タイプと呼ぶ。 FIG. 2 (e) is a diagram showing that the sub macroblock is composed of one submacroblock partition composed of a luminance signal of 8 × 8 pixels and two corresponding color difference signals. Here, this configuration is referred to as an 8 × 8 mode sub-macroblock type.
図2(f)は、サブマクロブロックが8×4画素(水平8画素、垂直4画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのサブマクロブロック・パーティションで構成されていることを示す図である。この2つのサブマクロブロック・パーティションは縦に並べられている。この構成を8×4モードのサブマクロブロック・タイプと呼ぶ。 In FIG. 2F, 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. These two sub-macroblock partitions are arranged vertically. This configuration is referred to as an 8 × 4 mode sub-macroblock type.
図2(g)は、サブマクロブロックが4×8画素(水平4画素、垂直8画素)の輝度信号とそれに対応する2つの色差信号から構成される2つのマクロブロック・パーティションで構成されていることを示す図である。この2つのマクロブロック・パーティションは横に並べられている。ここでは、この構成を4×8モードのサブマクロブロック・タイプと呼ぶ。 In FIG. 2G, 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. Here, this configuration is called a 4 × 8 mode sub-macroblock type.
図2(h)は、サブマクロブロックが4×4画素の輝度信号とそれに対応する2つの色差信号から構成される4つのサブマクロブロック・パーティションで構成されていることを示す図である。この4つのサブマクロブロック・パーティションは縦横2つずつ並べられている。ここでは、この構成を4×4モードのサブマクロブロック・タイプと呼ぶ。 FIG. 2 (h) is a diagram showing that the sub-macroblock is composed of four sub-macroblock partitions 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.
AVC/H.264符号化方式では、以上の動き補償ブロックサイズの中から、最適なものを切り替えて用いる仕組みが取り入れられている。まず、マクロブロック単位の動き補償ブロックサイズとして、16×16、16×8、8×16および8×8モードのマクロブロック・タイプの中からいずれかが選択される。8×8モードのマクロブロック・タイプが選択された場合、サブマクロブロック単位の動き補償ブロックサイズとして、8×8、8×4、4×8、4×4モードのサブマクロブロック・タイプの中からいずれかが選択される。 AVC / H. In the H.264 encoding method, a mechanism for switching and using an optimum one from the above motion compensation block sizes is adopted. First, 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. When the 8 × 8 mode macroblock type is selected, 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.
輝度信号は、選択されたサイズの画素数で動き補償される。色差信号は、色差フォーマットが4:2:0の場合、水平、垂直ともにその半分の画素数で動き補償される。このように、動き補償ブロックサイズの情報は、マクロブロック・タイプおよびサブマクロブロック・タイプと呼ばれるシンタックス要素で符号化される。シンタックスとは符号化ビット列の表現規則であり、シンタックス要素とは、シンタックスで伝送することが規定されている情報である。 The luminance signal is motion-compensated with the number of pixels of the selected size. When 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. In this way, 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.
16×16、16×8、8×16および8×8モードのいずれのマクロブロック・タイプでも、マクロブロック・パーティションごとに1つの動きベクトルが検出される。すなわち、16×16モードのマクロブロック・タイプでは1つの動きベクトルが、16×8および8×16モードのマクロブロック・タイプでは2つの動きベクトルが、および8×8モードのマクロブロック・タイプでは4つの動きベクトルが、それぞれ検出される。 For any 16 × 16, 16 × 8, 8 × 16 and 8 × 8 mode macroblock types, one motion vector is detected per macroblock partition. 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.
各マクロブロック・パーティションの輝度信号および色差信号の各画素は、そのマクロブロック・パーティションの1つの動きベクトルに応じて、動き補償される。すなわち、当該各画素は、同じ動きベクトルを用いて動き補償される。 Each pixel of the luminance signal and chrominance 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.
図1に戻り、幾何学変換動き補償予測部103は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、平行移動に加えて、拡大・縮小/回転などを含む変形を伴う幾何学変換による動き補償予測を行う。幾何学変換動き補償予測部103は、それぞれのモードによる対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の、動きベクトルおよび予測信号を生成し、予測方法決定部104に供給する。より具体的には、幾何学変換動き補償予測部103は、対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素を代表画素として選定し、それら代表画素の動きベクトルを算出する。ここで、当該対象ブロックは四角形(たとえば、正方形、長方形)の領域であるため、その領域の頂点は4つである。したがって、4つの代表画素が存在する。そして、幾何学変換動き補償予測部103は、当該代表画素以外の画素の動きベクトルを、当該代表画素の動きベクトルを用いて補間により算出する。それらの画素毎の動きベクトルに応じて、画素毎に予測信号を予測する。 Returning to FIG. 1, 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. More specifically, 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. Here, since 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. Then, 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.
幾何学変換動き補償予測部103は、対象ブロックの4つの代表画素の動きベクトルを符号化・復号する第1モードと、対象ブロックの縦方向における2つの代表画素の動きベクトルを符号化・復号する第2モードと、対象ブロックの横方向における2つの代表画素の動きベクトルを符号化・復号する第3モードと、対象ブロックの3つの代表画素の動きベクトルを符号化・復号する第4モードと、を実行することができる。なお、幾何学変換動き補償予測部103は、必ずしも複数のモードを実行する必要はなく、処理能力や各モードの発生頻度に応じて、一つのモードを固定的に使用してもよいし、一つのモードのみを備えるものでもよい。また、4つのモードの内の少なくとも2つのモードを実行してもよい(少なくとも2つのモードを備えるものでもよい)。これらの場合、演算量や各モードを識別する情報の符号量を低減することができる。 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. A second mode, a third mode for encoding / decoding motion vectors of two representative pixels in the horizontal direction of the target block, and a fourth mode for encoding / decoding motion vectors of three representative pixels of the target block; Can be executed. Note that 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.
本実施の形態の説明においては、上記対象ブロックを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画素等のブロックであってもよい。 In the description of the present embodiment, the target block is described as a 16 × 16 pixel macroblock. However, 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. In the description of the present embodiment, the target block is described as a square macroblock. However, 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.
予測方法決定部104は、幾何学変換動き補償予測部103による予測方法として、上述した第1モード、第2モード、第3モードおよび第4モードのいずれかを採用することができる。予測方法決定部104の詳細な処理については後述する。 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 performed by the geometric transformation motion compensation prediction unit 103. Detailed processing of the prediction method determination unit 104 will be described later.
以下、幾何学変換動き補償予測部103について、より具体的に説明する。幾何学変換動き補償予測部103は、AVC/H.264方式などに規定された既存の平行移動による動き補償予測と異なり、平行移動に加えて、拡大・縮小/回転などを含む変形を伴う幾何学変換による動き補償予測を行う。 Hereinafter, the geometric transformation motion compensation prediction unit 103 will be described more specifically. 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.
本実施の形態に係る幾何学変換による動き補償予測では、マクロブロック、マクロブロック・パーティション、サブマクロブロックの輝度信号、色差信号の各画素をそれぞれ同じ動きベクトルで動き補償するのではなく、画素ごとに異なる動きベクトルを作成して動き補償を行う。幾何学変換動き補償予測部103は、各マクロブロックの頂点、頂点近傍の画素またはその頂点近傍に位置する補間画素を代表画素に選定し、その動きベクトルを求める。 In motion compensated prediction by geometric transformation according to the present embodiment, 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.
図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)とする。 FIG. 3 is a diagram (No. 1) for explaining representative pixels corresponding to the four vertices of the target block. Here, 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, and the lower right vertex or the vertex vicinity is the vertex d. In the example shown in FIG. 3, 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. In FIG. 3, the representative pixel is represented by a black circle, the non-representative pixel is represented by a white circle, and 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). (W, 0), pixel c (0, H) and pixel d (W, H) are set. Here, 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), and H is between representative pixels in the vertical direction (pixel a and pixel). The distance (unit: pixel) between c and between pixel b and pixel d), and W = 15 (pixel) and H = 15 (pixel) in the representative pixel setting shown in FIG. Hereinafter, in the present specification, the coordinates of each pixel are represented by (i, j), the horizontal coordinate is represented by i, and the vertical coordinate is represented by j by one pixel. Further, the coordinate of the upper left pixel of the target block is set as the origin (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つの代表画素のそれぞれの動きベクトルを検出する。 In the case of the first mode in which the motion vectors of four representative pixels (first representative pixel a, second representative pixel b, third representative pixel c, and fourth representative pixel d) are encoded and decoded, the four representative pixels Each motion vector is detected. In the second mode in which the motion vectors of the two representative pixels in the vertical direction (the first representative pixel a and the third representative pixel c) are encoded and decoded, the motion vectors of the two representative pixels are detected. . In the third mode in which the motion vectors of the two representative pixels in the horizontal direction (the first representative pixel a and the second representative pixel b) are encoded and decoded, the motion vectors of the two representative pixels are detected. . In the case of the fourth mode in which 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.
幾何学変換動き補償予測部103は、各マクロブロックの代表画素の動きベクトルとして、オプティカルフロー法等により画素単位で算出した動きベクトルを用いてもよいし、画像のエッジやコーナー等の信頼性の高いと判断される特徴点の動きベクトルから内挿・外挿演算により補正した動きベクトルを用いてもよい。また、平行移動動き補償予測部102により生成された、マクロブロック・パーティションの動きベクトルを補正して用いてもよい。なお、マクロブロックやマクロブロック・パーティションの動きベクトルを補正して用いる場合、その動きベクトルの値を当該代表画素にあてはめて、その動きベクトルの値を増加方向および減少方向に調整しながら検証することにより、動きベクトルの値を補正する。 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. Further, the motion vector of the macroblock / partition generated by the translational motion compensation / prediction unit 102 may be corrected and used. In addition, when correcting and using a motion vector of a macroblock or a macroblock partition, 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.
つぎに、幾何学変換動き補償予測部103は、代表画素の動きベクトルからマクロブロック内の全画素の動きベクトルを、線形補間等を用いて補間することにより算出する。 Next, 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.
縦方向の2つの代表画素(第1代表画素aおよび第3代表画素c)の動きベクトルを符号化・復号する第2モードの場合、幾何学変換動き補償予測部103は、垂直方向の当該2つの代表画素a、cの動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより算出する。そして、その他の画素の動きベクトルを、線形補間された各画素の動きベクトルを水平方向にそのまま当てはめる。 In the case of the second mode in which the motion vectors of the two representative pixels in the vertical direction (the first representative pixel a and the third representative pixel c) are encoded and decoded, 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.
横方向の2つの代表画素(第1代表画素aおよび第2代表画素b)の動きベクトルを符号化・復号する第3モードの場合、幾何学変換動き補償予測部103は、水平方向の当該2つの代表画素a、bの動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより算出する。そして、その他の画素の動きベクトルを、線形補間された各画素の動きベクトルを垂直方向にそのまま当てはめる。 In the case of the third mode in which the motion vectors of the two representative pixels in the horizontal direction (first representative pixel a and second representative pixel b) are encoded and decoded, 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.
4つの頂点a、b、c、dに対応する4つの代表画素a、b、c、dの動きベクトルを符号化・復号する第1モード、または3つの頂点a、b、cに対応する3つの代表画素a、b、cの動きベクトルを符号化・復号する第4モードの場合、幾何学変換動き補償予測部103は、水平方向および垂直方向の双方に補間することにより非代表画素の動きベクトルを算出する。後述する方法により水平方向および垂直方向の双方に一度に補間してもよいし、水平方向の当該2つの代表画素の動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより非代表画素の動きベクトルを算出し、その他の画素の動きベクトルを、すでに算出された各画素の動きベクトルを用いて、さらに垂直方向に補間することにより算出してもよい。 A first mode for encoding / decoding motion vectors of four representative pixels a, b, c, d corresponding to four vertices a, b, c, d, or 3 corresponding to three vertices a, b, c In the case of the fourth mode in which the motion vectors of the two representative pixels a, b, and c are encoded and decoded, 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.
なお、3つの頂点a、b、cに対応する3つの代表画素a、b、cの動きベクトルを符号化・復号する第4モードにおいては、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルから、第4代表画素dの動きベクトルを算出することができる。そして、4つの頂点a、b、c、dに対応する4つの代表画素の動きベクトルを符号化・復号する第1モードと同様に非代表画素の動きベクトルを算出することができる。 In the fourth mode in which 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 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.
なお、縦方向の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モードと同様に、非代表画素の動きベクトルを算出することができる。 In the second mode in which the motion vectors of the two representative pixels a and c corresponding to the two vertical vertices a and c are encoded and decoded, 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. Then, as in the first mode in which 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.
同様に、横方向の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モードと同様に、非代表画素の動きベクトルを算出することができる。 Similarly, in the third mode in which the motion vectors of the two representative pixels a and b corresponding to the two vertices a and b in the horizontal direction are encoded and decoded, 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. Then, as in the first mode in which 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.
幾何学変換動き補償予測部103は、算出された画素ごとの動きベクトルを用いて、画素ごとに動き補償を行う。以上の説明では、マクロブロックに含まれる各画素の動きベクトルを算出する例を説明したが、サブマクロブロックに含まれる各画素の動きベクトルも同様に算出することができる。 The geometric transformation motion compensation prediction unit 103 performs motion compensation for each pixel using the calculated motion vector for each pixel. In the above description, the example of calculating the motion vector of each pixel included in the macroblock has been described. However, the motion vector of each pixel included in the sub-macroblock can be calculated in the same manner.
この画素単位の動きベクトルの算出処理および各画素の動き補償処理を、規定された複数のモードで行う。複数のモードはそれぞれ、参照インデックス、動き補償ブロックのサイズ、L0/L1/双予測などが異なる。なお、L0/L1/双予測はBスライスでのみ選択可能である。 The pixel-by-pixel motion vector calculation process and the 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.
幾何学変換動き補償予測部103は、それぞれのモードにて動き補償予測を行い、それぞれのモードにおける予測モード情報、動きベクトル、および予測信号(より具体的には、動き補償予測ブロック信号)を予測方法決定部104に供給する。 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.
以下、幾何学変換動き補償予測における、代表画素以外の各画素の動きベクトルの算出方法について具体例を挙げながら説明する。
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)とし、右方向および下方向を正の増加方向とする。
Hereinafter, a method for calculating a motion vector of each pixel other than the representative pixel in the geometric conversion motion compensation prediction will be described with a specific example.
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. In the example of FIG. 3, 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. Here, 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, and 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), and the right direction and the downward direction are positive increasing directions.
まず、これら画素a、画素b、画素cおよび画素dの動きベクトルが割り当てられ、つぎに、それ以外の画素の動きベクトルが、線形補間により算出される。 First, motion vectors of the pixel a, pixel b, pixel c, and pixel d are assigned, and then motion vectors of other pixels are calculated by linear interpolation.
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の動きベクトルでもある。 In the first mode in which 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 pixels a, b, c, and d Motion vectors are assigned. In the second mode in which 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. In the third mode in which 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.
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)
In the fourth mode in which 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, and the motion vector of the pixel d From the relationship Vd = V (W, H), the motion vector Vd of the representative pixel d corresponding to the vertex d is calculated by the following equation (1).
Vd = Vc + (Vb−Va) (1)
Or it calculates by the following formula (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(画素)である。
Next, 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, and the distance between the representative pixels in the vertical direction (between the pixels a and c, and the pixels When the distance (number of pixels) between b and pixel d) is H, 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 (Hj) Vb + (Wi) j.Vc + i.j.Vd} / (W.H) (3) )
In the setting of the representative pixel shown in FIG. 3, W = 15 (pixel) and H = 15 (pixel).
以上により、第1モード、第2モード、第3モードおよび第4モードにおける各画素の動きベクトルを算出することができる。水平方向および垂直方向の双方に一度に(すなわち、2次元で)補間する方法について説明したが、水平方向の2つの代表画素の動きベクトルから、これら2点を結ぶ直線上の画素の動きベクトルを補間することにより非代表画素の動きベクトルを算出し、その他の画素の動きベクトルを、すでに算出された各画素の動きベクトルを用いて、さらに垂直方向に補間することにより算出してもよい。 As described above, 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 (that is, in two dimensions) 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 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.
この場合の算出方法について説明する。画素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)
A calculation method in this case will be described. 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, and motion vector Vd = for pixel d Assuming V (W, H), the motion vector V (i, 0) of each pixel P (i, 0) on the line passing through the pixel a and the pixel b is calculated by the following equation (4).
V (i, 0) = Va + (Vb−Va) * (i−0) / W Expression (4)
同様に、画素cと画素dを通るライン上の各画素P(i,H)の動きベクトルV(i,H)は、下記式(5)により算出される。
V(i,H)=Vc+(Vd−Vc)*(i−0)/W ・・・式(5)
Similarly, the motion vector V (i, H) of each pixel P (i, H) on the line passing through the pixel c and the pixel d is calculated by the following equation (5).
V (i, H) = Vc + (Vd−Vc) * (i−0) / W Expression (5)
さらに、残りの画素P(i,j)の動きベクトルV(i,j)は、下記式(6)により算出される。
V(i,j)=V(i,0)+{V(i,H)−V(i,0)}*(j−0)/H ・・・式(6)
Further, the motion vector V (i, j) of the remaining pixel P (i, j) is calculated by the following equation (6).
V (i, j) = V (i, 0) + {V (i, H) −V (i, 0)} * (j−0) / H (6)
以上により、第1モード、第2モード、第3モードおよび第4モードにおける各画素の動きベクトルを算出することができる。なお、第2モードおよび第3モードでは下記の方法により算出することもできる。 As described above, the motion vector of each pixel in the first mode, the second mode, the third mode, and the fourth mode can be calculated. In the second mode and the third mode, it can also be calculated by the following method.
第2モードでは、画素aおよび画素cの動きベクトルが割り当てられ、画素aと画素cを通る垂直ライン上の各画素の動きベクトルが、線形補間により算出され、水平方向それぞれの画素に同じ動きベクトルの値が代入される。 In the second mode, 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.
画素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)
If the motion vector Va = V (0,0) of the pixel a and the motion vector of the pixel c are Vc = V (0, H), the motion vector V (0,0) of each pixel on the line passing through the pixel a and the pixel c. j) is calculated by the following equation (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)
Next, as shown in the following equation (8), the value of the motion vector V (0, j) calculated by the above equation (7) is expanded in the horizontal direction to obtain the value of the motion vector V (0, j). Is substituted into the motion vector V (i, j) of the remaining pixels.
V (i, j) = V (0, j) (8)
残りの画素の動きベクトルV(i,j)は、下記式(9)により算出されてもよい。
V(i,j)=Va+(Vc−Va)*(j−0)/H ・・・式(9)
The motion vector V (i, j) of the remaining pixels may be calculated by the following equation (9).
V (i, j) = Va + (Vc−Va) * (j−0) / H (9)
第3モードでは、画素aおよび画素bの動きベクトルが割り当てられ、画素aと画素bを通る垂直ライン上の各画素の動きベクトルが、線形補間により算出され、水平方向それぞれの画素に同じ動きベクトルの値が代入される。 In the third mode, 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.
画素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)
Assuming that the motion vector Va = V (0,0) of the pixel a and the motion vector Vb = V (W, 0) of the pixel b, the motion vector V (i, 0) of each pixel on the line passing through the pixel a and the pixel b. ) Is calculated by the following equation (10).
V (i, 0) = Va + (Vb−Va) * (i−0) / W Expression (10)
つぎに、下記式(11)に示すように、上記式(10)により算出された動きベクトルV(i,0)の値を垂直方向に拡張して、動きベクトルV(i,0)の値を残りの画素の動きベクトルV(i,j)に代入する。
V(i,j)=V(i,0) ・・・式(11)
Next, as shown in the following equation (11), the value of the motion vector V (i, 0) calculated by the above equation (10) is expanded in the vertical direction to obtain the value of the motion vector V (i, 0). Is substituted into the motion vector V (i, j) of the remaining pixels.
V (i, j) = V (i, 0) (11)
残りの画素の動きベクトルV(i,j)は、下記式(12)により算出されてもよい。
V(i,j)=Va+(Vb−Va)*(i−0)/W ・・・式(12)
The motion vector V (i, j) of the remaining pixels may be calculated by the following equation (12).
V (i, j) = Va + (Vb−Va) * (i−0) / W Expression (12)
幾何学変換動き補償予測部103は、算出された各画素の動きベクトルに応じて各画素を動き補償予測する。より具体的には、各画素の動きベクトルが指し示す参照画像の画素から補間信号を生成することにより動き補償予測する。なお、各画素の動きベクトルの精度、演算過程で必要となる数値のまるめ方などは、どの復号装置で復号しても同じ値になるように規定する必要がある。また、動きベクトルにより指定される予測画素の座標が小数点以下で表される場合、動き補償の際に周囲の画素から当該画素を補間する。その補間方法には4〜6タップのフィルタリングや線形補間などを用いることができる。 The geometric transformation 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.
第1モードでは、4つの動きベクトルで拡大・縮小、回転、平行移動など、第2モード、第3モードおよび第4モードでは表現できない複雑な変形を表すことができる。第4モードでは、3つの動きベクトルでアフィン変換による変形を表すことができる。変形の表現力は第1モードに比べて限定されるが、符号化すべき動きベクトル(より具体的には、差分ベクトル)の数を減らすことができる。 In the first mode, complex deformations that cannot be expressed in the second mode, the third mode, and the fourth mode, such as enlargement / reduction, rotation, and parallel movement, can be expressed by four motion vectors. In the fourth mode, deformation by affine transformation can be represented by three motion vectors. Although 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.
第2モードでは、2つの動きベクトルで平行移動に加えて垂直方向に異なる変形を表すことができる。変形の表現力は第1モードおよび第4モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。第3モードでは、2つの動きベクトルで平行移動に加えて水平方向に異なる変形を表すことができる。変形の表現力は第1モードおよび第4モードに比べて限定されるが、符号化すべき動きベクトルの数を減らすことができる。 In the second mode, two motion vectors can represent different deformations in the vertical direction in addition to translation. Although 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. In the third mode, two motion vectors can represent different deformations in the horizontal direction in addition to translation. Although 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.
図1に戻り、予測方法決定部104は、対象画像内の対象ブロックごとに、平行移動動き補償予測部102による予測方法と、幾何学変換動き補償予測部103による予測方法とのいずれを採用するか決定する。より具体的には、いずれの予測方法の、いずれのモードを採用するかを決定する。以下、モードの選択を含めて予測方法の選択という。 Returning to FIG. 1, 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.
すなわち、予測方法決定部104は、平行移動による動き補償予測または幾何学変換による動き補償予測のどちらを、どの参照画像を用いて、どの画素ブロック単位で符号化するかを選択することにより、予測方法を決定する。幾何学変換による動き補償予測を選択する場合は、第1モード、第2モード、第3モードおよび第4モードのいずれかを選択する。その際、それらの項目の、どの組み合わせが、最も効率的な符号化を実現できる予測方法であるかを判定することにより、予測方法を決定する。予測方法を決定する基準として、たとえば、符号量と歪の関係を考慮したレート歪理論を用いることができる。より具体的には、マクロブロックの符号量(すなわち、予測方法情報、動きベクトルおよび予測信号の合計符号量)を算出するとともに、符号化対象画像と復号画像の差から歪量を算出し、当該符号量および当該歪量を入力変数とするレート歪関数を最小化する予測方法を選択する。 That is, 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. More specifically, 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.
予測方法決定部104は、採用した予測方法情報を第1符号化ビット列生成部107および差分ベクトル算出部114に、採用した予測方法に応じた動きベクトルを差分ベクトル算出部114に供給する。それとともに、予測方法決定部104は、採用した予測方法により生成された予測信号を予測誤差信号生成部105に供給する。 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.
第1符号化ビット列生成部107は、予測方法決定部104から供給される予測方法情報を、算術符号化などのエントロピー符号化により符号化し、符号化ビット列を生成する。予測方法情報に含めるべき、予測ブロックサイズ、L0/L1/双予測の区別などは組み合わせてマクロブロック・タイプとして符号化する。また、予測方法情報に含めるべき、平行移動による動き補償予測と幾何学変換による動き補償予測のいずれを用いるか、幾何学変換の場合、第1モード、第2モード、第3モードおよび第4モードのいずれを用いるかを識別するための情報に関しては、以下の記述方法を用いることができる。たとえば、シンタックス要素を別途に用意して記述してもよいし、他のマクロブロック・タイプとして符号化する情報と組み合わせることで、マクロブロック・タイプを拡張して記述してもよい。 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. In addition, in the case of geometric conversion, which one of motion compensation prediction by parallel movement and motion compensation prediction by geometric transformation to be included in the prediction method information is used, the first mode, the second mode, the third mode, and the fourth mode The following description method can be used for information for identifying which one of the two is used. For example, 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.
たとえば、幾何学変換による動き補償予測を行うか否かを切り替えるブロック単位毎に、“geom_type”というシンタックス要素を用意し、“geom_type”の値が“0”を平行移動による動き補償予測、“geom_type”の値が“1”を幾何学変換による動き補償予測の第1モード、“geom_type”の値が“2”を幾何学変換による動き補償予測の第2モード、“geom_type”の値が“3”を幾何学変換による動き補償予測の第3モード、および“geom_type”の値が“4”を幾何学変換による動き補償予測の第4モードを表すものとして符号化する。 For example, 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, and the value of “geom_type” is “ “3” is encoded as a third mode of motion compensated prediction by geometric transformation, and “geom_type” is “4” as a fourth mode of motion compensated prediction by geometric transformation.
図4は、シンタックス構造の一例を示す図である。なお、図4では“geom_type”をマクロブロックごとに1つ用意し、L0予測、L1予測、双予測共に共通のモードで動き補償予測を行う例を示しているが、L0、L1双方から予測する双予測モードの場合、2つ用意することにより、L0予測、L1予測それぞれ別の動き補償予測を行うこともできる。 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. In the case of the bi-prediction mode, motion compensation predictions can be performed separately for each of the L0 prediction and the L1 prediction by preparing two.
対象ブロックの動きベクトルを符号化する際、すでに符号化または復号済みの周囲の隣接ブロックまたはその隣接ブロックの画素の動きベクトルとの相関を利用して、当該隣接ブロックまたは当該隣接ブロックの画素の動きベクトルから動きベクトルを予測することにより予測ベクトルを算出する。そして、この予測ベクトルと対象ブロックまたは対象画素の動きベクトルとの差分である差分ベクトルを算出することにより、対象ブロックまたは対象画素の動きベクトルの符号量を削減する。ここで、幾何学変換による動き補償予測が採用された対象ブロックでは、その代表画素の動きベクトルが符号化の対象となる。 When encoding the motion vector of the target block, 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. Here, in a target block in which motion compensation prediction by geometric transformation is adopted, a motion vector of the representative pixel is a target for encoding.
そこで、差分ベクトル算出部114は、予測方法決定部104から供給される予測方法情報に応じて、すでに符号化されている周囲の隣接ブロックまたはその隣接ブロックの画素の動きベクトルから、対象ブロックまたは対象画素の動きベクトルを予測することにより予測ベクトルを算出する。そして、その予測ベクトルと、予測方法決定部104から供給される動きベクトルとの差分を算出して差分ベクトルを生成し、第2符号化ビット列生成部108に供給する。 Therefore, 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.
第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の動きベクトルを符号化・復号するために、それぞれの予測ベクトルおよび差分ベクトルを算出する。 In the first mode, 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. In 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. In the third mode, 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. In the fourth mode, in order to encode and decode the motion vectors of the three representative pixels a, b, and c corresponding to the three vertices a, b, and c, respective prediction vectors and difference vectors are calculated.
なお、差分ベクトル算出部114は、予測方法決定部104から供給される対象ブロックの予測情報および動きベクトルを保持し、後続する対象ブロックの予測ベクトルの算出に利用する。 The difference vector calculation unit 114 holds the prediction information and motion vector of the target block supplied from the prediction method determination unit 104, and uses the prediction information and the motion vector of the subsequent target block.
ここで、符号化対象ブロック、及び隣接ブロック共に平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図5は、符号化対象ブロック、及び隣接ブロック共に平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法を説明するための図である。図5(a)は、パーティションが設定されていないマクロブロック間において、動きベクトルを予測する例を示す。図5(b)は、パーティションが設定されているマクロブロック間において、動きベクトルを予測する例を示す。図5(c)は、8×16画素のマクロブロックにおいて、動きベクトルを予測する例を示す。図5(d)は、16×8画素のマクロブロックにおいて、動きベクトルを予測する例を示す。以下、図5(a)〜(d)を参照して、動きベクトルの予測方法について説明する。この動きベクトルの予測方法は、周囲の隣接ブロックの動きベクトルの中央値を用いて、対象ブロックの動きベクトルを予測する。 Here, a method of predicting a motion vector of a block to be encoded when motion compensated prediction by parallel movement is selected for both the block to be encoded and an adjacent block will be described. 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. Hereinafter, 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.
図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の参照インデックスのうちひとつだけが符号化対象ブロックの参照インデックスと値が等しい(参照ピクチャが等しい)場合、そのブロックの動きベクトルを予測に用いる。 In FIGS. 5A to 5D, the motion vector of a block painted in gray is an encoding target. In FIG. 5A, 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. In the B picture, 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. By predicting using the three L0 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 L0 prediction vector of the target block is calculated. Similarly, 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. To do. Here, when the block B on the upper right and the block C on the upper right side cannot be used together and only the block A can be used, 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.
図5(b)に示すように、隣接するマクロブロックにパーティションが設定されている場合、マクロブロックの小ブロックごとに動きベクトルが異なる。その場合、対象ブロックの左隣のブロックでは、対象ブロックと接している小ブロックのうち、最も上の小ブロックAの動きベクトルを候補として採用する。上隣のブロックでは、対象ブロックと接している小ブロックのうち、最も左のブロックBを候補として採用する。右斜上隣のブロックでは、最も左下の小ブロックCを候補として採用する。この規則に従って、以下、図5(a)と同様に、予測ベクトルを算出する。 As shown in FIG. 5B, when a partition is set in an adjacent macroblock, the motion vector is different for each small block of the macroblock. In that case, in the block adjacent to the left of the target block, the motion vector of the uppermost small block A among the small blocks in contact with the target block is adopted as a candidate. In the upper adjacent block, the leftmost block B among the small blocks in contact with the target block is adopted as a candidate. In the block adjacent to the upper right, the lower left small block C is adopted as a candidate. In accordance with this rule, the prediction vector is calculated in the same manner as in FIG.
図5(c)に示すように、符号化するブロックが8×16の場合、3つのブロックの動きベクトルの中央値ではなく、左のブロックは左隣のブロックA、右のブロックは右斜上隣のブロックCの動きベクトルを予測ベクトルとして採用する。また、図5(d)に示すように、符号化するブロックが16×8の場合も、3つのブロックの動きベクトルの中央値ではなく、上のブロックは上隣のブロックB、下のブロックは左隣のブロックAの動きベクトルを予測ベクトルとして採用する。 As shown in FIG. 5C, when the block to be encoded is 8 × 16, 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, and the right block is on the upper right side. The motion vector of the adjacent block C is adopted as the prediction vector. Also, as shown in FIG. 5D, when the block to be encoded is 16 × 8, 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, and the lower block is The motion vector of the block A on the left is adopted as the prediction vector.
なお、図5(a)〜(d)に示す動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、隣接ブロックの位置および数が異なっていてもよい。また、隣接ブロックの複数の動きベクトルの中央値ではなく、平均値を用いてもよい。規定の条件や優先順位を設けて、単独の隣接ブロックの動きベクトルをそのまま用いてもよい。また、隣接ブロックは対象ブロックと必ずしも接していなくてもよい。また、図5(a)〜(d)ではマクロブロック単位の動きベクトルを予測する例を説明したが、サブマクロブロック単位の動きベクトルを予測する場合も、同様に処理することができる。 Note that the motion vector prediction methods shown in FIGS. 5A to 5D are merely examples, and are 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. 5A to 5D, an example of predicting a motion vector in units of macroblocks has been described. However, the same processing can be performed when a motion vector in units of sub-macroblocks is predicted.
次に、符号化対象ブロックで平行移動による動き補償予測が選択され、隣接ブロックでは幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図6は、符号化対象ブロックが平行移動による動き補償予測、隣接ブロックが幾何学変換による動き補償予測の場合の予測ベクトルの予測方法を説明するための図である。なお、図6に示すように、隣接ブロックが幾何学変換による動き補償予測の場合、対象ブロックの左隣のブロックでは、対象ブロックと接している小ブロックのうち、最も上の小ブロックの最も右上の画素Aの動きベクトルを予測ベクトルを算出する際の候補として採用する。上隣のブロックでは、対象ブロックと接している小ブロックのうち、最も左のブロックの最も左下の画素Bの動きベクトルを予測ベクトルを算出する際の候補として採用する。右斜上隣のブロックでは、最も左下の小ブロックの最も左下の画素Cの動きベクトルを予測ベクトルを算出する際の候補として採用する。 Next, a description will be given of a method for predicting a motion vector of an encoding target block when motion compensated prediction by parallel movement is selected in the encoding target block and motion compensated prediction by geometric transformation is selected in an adjacent block. 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. As shown in FIG. 6, when the adjacent block is motion compensated prediction by geometric transformation, in the block adjacent to the left of the target block, the upper right of the uppermost small block among the small blocks in contact with the target block The motion vector of the pixel A is used as a candidate for calculating the prediction vector. In the upper adjacent block, among the small blocks in contact with the target block, the motion vector of the leftmost pixel B of the leftmost block is adopted as a candidate for calculating a prediction vector. In the block adjacent to the upper right, 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.
なお、図6に示す動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、対象ブロックの左隣のブロックの4つの代表画素の平均値を対象ブロックの左隣の動きベクトルの候補としてもよい。また、対象ブロックの上隣のブロックの4つの代表画素の平均値を対象ブロックの上隣の動きベクトルの候補としてもよい。また、対象ブロックの右上隣のブロックの4つの代表画素の平均値を対象ブロックの右上隣の動きベクトルの候補としてもよい。さらに、隣接ブロックや隣接ブロックの画素の位置および数が異なっていてもよい。また、隣接ブロックの画素の複数の動きベクトルの中央値ではなく、平均値を用いてもよい。単独の隣接ブロックの画素の動きベクトルをそのまま用いてもよい。また、隣接ブロックまたは隣接ブロックの画素は対象ブロックと必ずしも接していなくてもよい。また、図6ではマクロブロック単位の動きベクトルを予測する例を説明したが、サブマクロブロック単位の動きベクトルを予測する場合も、同様に処理することができる。 Note that 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. Further, 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. In addition, although an example of predicting a motion vector in units of macroblocks has been described with reference to FIG. 6, the same processing can be performed when a motion vector in units of sub-macroblocks is predicted.
次に、符号化対象ブロック、及び隣接ブロック共に幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図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の動きベクトルを予測ベクトルとする。 Next, a method for predicting the motion vector of the encoding target block when motion compensated prediction by geometric transformation is selected for both the encoding target block and the adjacent block will be described. 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 block to be encoded are predicted from the motion vectors of the pixels of the adjacent block. In FIG. 7A, 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. In this calculation method, when there are a plurality of candidates, 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. When the intermediate value is used as the prediction vector, 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. For the prediction vector of the third representative pixel c of the encoding target block, the motion vector of the representative pixel c of the block A on the left is used as the prediction vector.
次に、符号化対象ブロックで幾何学変換による動き補償予測が選択され、隣接ブロックでは平行移動による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法について説明する。図7(b)に示すように隣接ブロックが平行移動による動き補償予測の場合、隣接ブロックの動きベクトルが当該隣接ブロック内のすべての画素で共通である。そこで、符号化対象ブロック、及び隣接ブロック共に幾何学変換による動き補償予測が選択された場合の符号化対象ブロックの動きベクトルの予測方法と同様の方法で算出するが、当該ブロックの動きベクトルを隣接ブロックの代表画素の動きベクトルとして算出する。 Next, a description will be given of a method for predicting a motion vector of an encoding target block when motion compensated prediction by geometric transformation is selected in the encoding target block and motion compensated prediction by translation is selected in the adjacent block. As shown in FIG. 7B, when motion compensation prediction is performed on an adjacent block by translation, the motion vector of the adjacent block is common to all pixels in the adjacent block. Therefore, when the motion compensated prediction by geometric transformation is selected for both the encoding target block and the adjacent block, the calculation is performed by the same method as the motion vector prediction method of the encoding target block. It is calculated as a motion vector of the representative pixel of the block.
なお、図7に示す幾何学変換による動き補償予測が選択された場合の動きベクトルの予測方法は一例であり、それに限られるものではない。符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、隣接ブロックの代表画素の位置および数が異なっていてもよい。また、隣接ブロックの代表画素の複数の動きベクトルの中央値ではなく、平均値を用いてもよい。単独の隣接ブロックの代表画素の動きベクトルをそのまま用いてもよい。また、隣接ブロックの代表画素は対象画素と必ずしも接していなくてもよい。 Note that the motion vector prediction method when the motion compensated prediction by the geometric transformation shown in FIG. 7 is selected 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 representative pixels in adjacent blocks may be different. Further, 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. In addition, the representative pixel of the adjacent block does not necessarily have to be in contact with the target pixel.
第1モードで符号化・復号する第4代表画素dに関しては、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルの中央値を予測ベクトルとして用いる。なお、符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、中央値ではなく、平均値を用いてもよいし、単独の任意の画素の動きベクトルをそのまま用いてもよい。 For the fourth representative pixel d encoded / decoded in the first mode, 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.
また、第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)
In addition, the prediction vector PVd of the fourth representative pixel d that is encoded / decoded in the first mode is derived 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, respectively. It calculates by following formula (13).
PVd = Vc + (Vb−Va) (13)
Or it is also computable by following formula (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の動きベクトルと強い相関があるという考えに基づいている。 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.
なお、符号化側と復号側で動きベクトルの予測方法を同一に規定する限りにおいては、他の方法を用いることもできる。たとえば、第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でこのフラグを符号化する。 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, for the fourth representative pixel d, 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. Alternatively, 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. Alternatively, 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. In this case, 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.
図1に戻り、第2符号化ビット列生成部108は、差分ベクトル算出部114から供給される差分ベクトルを算術符号化などのエントロピー符号化により符号化し、符号化ビット列を生成する。 Returning to FIG. 1, 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.
なお、幾何学変換による動き補償予測では、第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のそれぞれの差分ベクトルを符号化する。 In motion compensated prediction by geometric transformation, 2 to 4 difference vectors are encoded according to the first to fourth modes. In the first mode, the difference vectors of the four representative pixels a, b, c, d corresponding to the four vertices a, b, c, d are encoded. In the second mode, the difference vectors of the representative pixels a and c corresponding to the two vertices a and c are encoded. In the third mode, the difference vectors of the representative pixels a and b corresponding to the two vertices a and b are encoded. In 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.
予測誤差信号生成部105は、予測方法決定部104により採用された予測方法で生成された予測信号と、対象ブロックの画像信号との差分を算出し、予測誤差信号を生成する。より具体的には、予測誤差信号生成部105は、画像バッファ101から供給される符号化対象の画像信号から、予測方法決定部104から供給される予測信号を減算することにより、予測誤差信号を生成し、予測誤差信号符号化部106に供給する。 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.
予測誤差信号符号化部106は、予測誤差信号生成部105から供給される予測誤差信号に対して、直交変換、量子化などの圧縮符号化処理を行い、符号化された予測誤差信号を生成し、第3符号化ビット列生成部109および予測誤差信号復号部110に供給する。 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.
第3符号化ビット列生成部109は、予測誤差信号符号化部106から供給される符号化された予測誤差信号を、算術符号化などのエントロピー符号化を用いて順次符号化し、符号化ビット列を生成する。 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.
第1符号化ビット列生成部107、第2符号化ビット列生成部108および第3符号化ビット列生成部109により生成された符号化ビット列は、予測方法情報、動きベクトル、予測誤差信号以外の情報が符号化されたその他の符号化ビット列とともに、出力スイッチ113を介して多重化され、符号化ストリームが生成される。 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.
予測誤差信号復号部110は、予測誤差信号符号化部106により符号化された予測誤差信号に対して、逆量子化、逆直交変換などの伸張復号処理を行い、当該予測誤差信号を復号する。予測誤差信号復号部110は、復号した予測誤差信号を復号画像信号生成部111に供給する。復号画像信号生成部111は、予測誤差信号符号化部106から供給される予測誤差信号と、予測方法決定部104から供給される予測信号を重畳して、復号画像信号を生成する。復号画像信号生成部111は、その復号画像信号をブロック単位で復号画像バッファ112に順次格納する。この復号画像バッファ112に格納される復号画像は、必要に応じて、符号化順序で後続する画像を動き補償予測する際の参照画像として利用される。 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.
図8は、本発明の実施の形態1に係る画像符号化装置100における、マクロブロックの符号化処理手順を示すフローチャートである。まず、平行移動動き補償予測部102および幾何学変換動き補償予測部103は、画像バッファ101から符号化対象のマクロブロック信号を取り出す(S101)。 FIG. 8 is a flowchart showing a macroblock encoding processing procedure in image encoding apparatus 100 according to Embodiment 1 of the present invention. First, 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).
平行移動動き補償予測部102は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、平行移動による動き補償予測を行う(S102)。この平行移動による動き補償予測をモードごとに行う。幾何学変換動き補償予測部103は、画像バッファ101から供給される符号化対象のマクロブロック信号と、復号画像バッファ112から供給される参照画像信号との間で、幾何学変換による動き補償予測を行う(S103)。この幾何学変換による動き補償予測をモードごとに行う。 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.
予測方法決定部104は、平行移動による動き補償予測方法と、幾何学変換による動き補償予測とのいずれを採用するか決定する(S104)。その際、どのモードを採用するかも決定する。 The prediction method determination unit 104 determines which one of the motion compensation prediction method based on the parallel movement and the motion compensation prediction based on the geometric transformation is adopted (S104). At that time, it is also decided which mode is adopted.
第1符号化ビット列生成部107は、予測方法決定部104から供給される予測方法情報を符号化し、符号化ビット列を生成する(S105)。差分ベクトル算出部114は、周辺ブロックまたは周辺画素からの予測ベクトルを算出し(S106)、当該予測ベクトルと予測方法決定部104から供給される動きベクトルとの差分ベクトルを算出する(S107)。 The first encoded bit string generation unit 107 encodes the prediction method information supplied from the prediction method determination unit 104, and generates 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).
第2符号化ビット列生成部108は、差分ベクトル算出部114から供給される差分ベクトルを符号化し、符号化ビット列を生成する(S108)。予測誤差信号生成部105は、画像バッファ101から供給される対象画像信号から、予測方法決定部104から供給される予測信号を減算し、予測誤差信号を生成する(S109)。予測誤差信号符号化部106は、当該予測誤差信号を符号化する(S110)。第3符号化ビット列生成部109は、予測誤差信号符号化部106により符号化された予測誤差信号を、算術符号化等を用いてエントロピー符号化し、符号化ビット列を生成する(S111)。 The second encoded bit string generation unit 108 encodes the difference vector supplied from the difference vector calculation unit 114 and generates 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).
予測誤差信号復号部110は、予測誤差信号符号化部106により符号化された予測誤差信号を復号する(S112)。復号画像信号生成部111は、予測誤差信号復号部110により復号された予測誤差信号と、予測方法決定部104から供給される予測信号とを重畳して、復号画像信号を生成する(S113)。復号画像信号生成部111は、生成した復号画像信号を復号画像バッファ112に蓄積する(S114)。 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).
以上説明したように実施の形態1によれば、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させることができる。すなわち、幾何学変換による動き補償予測を使用する動きベクトルを予測符号化することにより、符号量を削減することができる。また、平行移動による動き補償予測と幾何学変換による動き補償予測とを併用すれば、符号量の圧縮効率をさらに向上させることができる。その際、平行移動による動き補償予測に係る動きベクトルと、幾何学変換による動き補償予測に係る動きベクトルの符号化方法を共通化することにより、これら2つの予測方法が混在しても、既存の動きベクトルの予測符号化方法をそのまま転用することができる。 As described above, according to the first embodiment, it is possible to improve the compression efficiency of the code amount by the image coding method using the motion compensated prediction based on 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.
また、幾何学変換による動き補償予測方法が採用されたブロックでも、平行移動による動き補償予測と同様に、周囲のブロックまたは周囲の画素の動きベクトルから予測ベクトルを予測し、差分ベクトルを算出することができる。これにより、平行移動による動き補償予測と幾何学変換による動き補償予測を併用しても、動きベクトルの符号量の増大を抑制することができる。とくに、幾何学変換による動き補償予測方法の第1モードにおいて、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルから上記式(13)または上記式(14)により、第4代表画素dの予測ベクトルを算出することにより、差分ベクトルの値を小さくし、動きベクトルの符号量の増大を抑制することができる。また、第4モードにおいて、第1代表画素a、第2代表画素bおよび第3代表画素cの動きベクトルから上記式(1)または上記式(2)により、第4代表画素dの動きベクトルを算出することにより、動きベクトルの符号量の増大をさらに抑制することができる。 In addition, even in a block in which a motion compensation prediction method using geometric transformation is adopted, 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. Thereby, even if 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. In particular, in the first mode of the motion compensation prediction method based on geometric transformation, 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). By calculating the prediction vector of the fourth representative pixel d, the value of the difference vector can be reduced and an increase in the code amount of the motion vector can be suppressed. In the fourth mode, 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.
図9は、本発明の実施の形態2に係る画像復号装置200の構成を示すブロック図である。当該画像復号装置200は、実施の形態1に係る画像符号化装置100により生成された符号化ストリームを復号する。当該符号化ストリームにおいて、上述したように、平行移動による動き補償予測と幾何学変換による動き補償予測が併用されている場合もあるし、幾何学変換による動き補償予測が単独で使用されている場合もある(イントラ符号化については考慮せず)。 FIG. 9 is a block diagram showing a configuration of 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. In the encoded stream, as described above, 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).
画像復号装置200は、入力スイッチ209、第1符号化ビット列復号部201、第2符号化ビット列復号部202、第3符号化ビット列復号部203、動きベクトル算出部215、平行移動動き補償予測部204、幾何学変換動き補償予測部205、予測誤差信号復号部206、復号画像信号生成部207、復号画像バッファ208、切替制御部214、第1予測部スイッチ210、第2予測部スイッチ211、第3予測部スイッチ212および第4予測部スイッチ213を備える。 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.
これらの構成は、ハードウェア的には、任意のプロセッサ、メモリ、その他のLSIで実現でき、ソフトウェア的にはメモリにロードされたプログラムなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組み合わせによっていろいろな形で実現できることは、当業者には理解されるところである。 These configurations can be realized by an arbitrary processor, memory, or other LSI in terms of hardware, and can be realized by a program loaded in the memory in terms of software, but here by their cooperation. Draw functional blocks. Therefore, those skilled in the art will understand that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof.
第1符号化ビット列復号部201、第2符号化ビット列復号部202、第3符号化ビット列復号部203は、符号化ストリームに含まれる、予測方法情報、差分ベクトルおよび予測誤差信号を復号する。上述したように、符号化ストリームには差分ベクトルが符号化されている。差分ベクトルは、対象ブロックの動きベクトルと、その隣接ブロックまたはその隣接ブロックの画素の動きベクトルから予測された予測ベクトルとの差分である。動きベクトル算出部215は、動きベクトルを復号する際、当該隣接ブロックまたは当該隣接ブロックの画素の動きベクトルから予測ベクトルを算出し、当該予測ベクトルに、復号された差分ベクトルを加算することにより、予測符号化された対象ブロックまたはその代表画素の動きベクトルを復号する。 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. As described above, 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. When the motion vector is decoded, 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.
平行移動動き補償予測部204は、対象画像内の対象ブロックと、その対象ブロックと平行移動した関係にある参照画像内の参照ブロックとの間の動きベクトル、および参照ブロックの画像信号から予測信号を生成する。幾何学変換動き補償予測部205は、対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の動きベクトル、および参照ブロックの画像信号から予測信号を生成する。 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.
上述したように、対象ブロックの頂点が代表画素に選定されており、上記符号化ストリームには、それぞれの代表画素の動きベクトルが含まれる。幾何学変換動き補償予測部205は、対象ブロックの複数の代表画素以外の画素の動きベクトルを、それら複数の代表画素の動きベクトルを用いた補間により算出する。たとえば、代表画素以外の画素の動きベクトルを、上記式(3)〜(12)に示した演算式により算出する。 As described above, the vertex of the target block is selected as the representative pixel, and the encoded stream includes the 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).
切替制御部214は、第1符号化ビット列復号部201により復号された予測方法情報に応じて、対象画像内の対象ブロックごとに、平行移動動き補償予測部204による予測方法と、幾何学変換動き補償予測部205による予測方法とのいずれを用いるか指定する。 According to the prediction method information decoded by the first encoded bit string decoding unit 201, 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.
以下、より具体的に説明する。第1符号化ビット列復号部201、第2符号化ビット列復号部202、および第3符号化ビット列復号部203には、実施の形態1に係る画像符号化装置100により生成された符号化ストリームに含まれる符号化ビット列が、入力スイッチ209を介して選択的に入力される。 More specific description will be given below. 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.
第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を介して供給される符号化ビット列を、算術復号化などのエントロピー復号化により復号し、差分ベクトルを取得する。前述の通り、差分ベクトルは、隣接ブロックの動きベクトルから算出される予測ベクトルと復号対象ブロックの動きベクトルとの差分である。なお、平行移動による動き補償予測で用いる動きベクトルと、幾何学変換による動き補償予測で用いる動きベクトルとが混在されて符号化されている場合、符号化側と同様に復号側でも混在された差分ベクトルから予測方法情報に応じて動きベクトルを復号する。 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. As described above, 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. / 8 × 8 mode information is included, and in the case of geometric transformation, 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 second mode for encoding / decoding motion vectors of two representative pixels a and c in the direction, 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. As described above, 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. In addition, when 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.
第1符号化ビット列復号部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.
切替制御部214は、第1符号化ビット列復号部201から供給される予測方法情報に応じて、第1予測部スイッチ210、第2予測部スイッチ211、第3予測部スイッチ212および第4予測部スイッチ213を切り替える。対象ブロックの予測方法として、平行移動による動き補償予測方法が選択されている場合、平行移動動き補償予測部204の経路が選択されるよう切り替え、幾何学変換による動き補償予測方法が選択されている場合、幾何学変換動き補償予測部205の経路が選択されるよう切り替える。 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. When 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.
動きベクトル算出部215は、第1符号化ビット列復号部201から供給される予測方法情報に応じて、すでに符号化・復号されている周囲の隣接ブロック、または隣接ブロックの画素の動きベクトルから対象ブロックの動きベクトルを予測することにより予測ベクトルを算出する。そして、当該予測ベクトルに、第2符号化ビット列復号部202から供給される差分ベクトルを加算することにより動きベクトルを算出する。動きベクトル算出部215は、当該動きベクトルを第2予測部スイッチ211を介して、平行移動動き補償予測部204または幾何学変換動き補償予測部205に供給する。動きベクトル算出部215での予測ベクトルの算出は、画像符号化装置100の差分ベクトル算出部114での予測ベクトルの算出と同一の方法で行う。平行移動動き補償予測の場合、当該ブロックの動きベクトルが取得でき、幾何学変換動き補償の場合、当該ブロックの代表画素の動きベクトルが算出される。 In accordance with the prediction method information supplied from the first encoded bit string decoding unit 201, 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. Then, 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. In the case of parallel motion compensation, the motion vector of the block can be acquired. In the case of geometric conversion motion compensation, the motion vector of the representative pixel of the block is calculated.
平行移動動き補償予測部204は、復号画像バッファ208から第4予測部スイッチ213を介して供給される参照画像とすべき復号画像、および第2符号化ビット列復号部202から第2予測部スイッチ211を介して供給される復号された動きベクトルを用いて、平行移動による動き補償予測を行う。 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.
幾何学変換動き補償予測部205は、復号画像バッファ208から第4予測部スイッチ213を介して供給される参照画像とすべき復号画像、および動きベクトル算出部215から第2予測部スイッチ211を介して供給される、復号された複数の代表画素の動きベクトルを用いて全画素の動きベクトルを補間により算出する。その際、上記式(1)〜(14)参照して説明した、画像符号化装置100の幾何学変換動き補償予測部103と同一の処理方法を用いることができる。幾何学変換動き補償予測部205は、それら画素ごとの動きベクトルに応じて画素ごとに動き補償を行うことにより、幾何学変換による動き補償予測を行う。 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 a 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. In that case, the same processing method as the geometric transformation motion compensation prediction part 103 of the image coding apparatus 100 demonstrated with reference to said Formula (1)-(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.
第3符号化ビット列復号部203は、入力スイッチ209を介して供給される符号化ビット列を順次復号し、符号化された予測誤差信号を取得する。予測誤差信号復号部206は、第3符号化ビット列復号部203から供給された符号化された予測誤差信号に対して、逆量子化、逆直交変換などの伸張復号処理を行い、復号された予測誤差信号を取得する。 The third encoded bit string decoding unit 203 sequentially decodes the encoded bit string supplied via the input switch 209, and obtains an 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.
復号画像信号生成部207は、予測信号、および予測誤差信号から画像信号を生成する。より具体的には、復号画像信号生成部207は、切替制御部214により指定された予測方法に応じて、平行移動動き補償予測部204または幾何学変換動き補償予測部205から第3予測部スイッチ212を介して供給される予測信号に、予測誤差信号復号部206から供給される予測誤差信号を重畳して、復号画像信号を生成する。復号画像信号生成部207は、その復号画像信号をブロック単位で、復号画像バッファ208に順次格納する。 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.
図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で差分ベクトルが復号されなかった代表点については、予測ベクトルを動きベクトルとする。 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). In addition, when prediction method information shows the motion compensation prediction by geometric transformation, 2-4 difference vectors are decoded according to the prediction method information. In the first mode, the difference vectors of the four representative pixels a, b, c, d corresponding to the four vertices a, b, c, d are decoded. In the second mode, the difference vectors of the representative pixels a and c corresponding to the two vertices a and c are decoded. In the third mode, the difference vectors of the representative pixels a and b corresponding to the two vertices a and b are decoded. In 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 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. Further, 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.
切替制御部214は、復号された予測方法情報に応じて、対象ブロックの動き補償予測方法を特定する(S205)。その予測方法が、平行移動による動き補償予測方法の場合(S205の平行)、平行移動動き補償予測部204は、復号画像バッファ208から供給される参照画像信号とすべき復号画像信号を、第2符号化ビット列復号部202から供給される動きベクトルを用いて、平行移動による動き補償をし、予測信号を生成する(S206)。 The switching control unit 214 identifies the motion compensation prediction method for the target block according to the decoded prediction method information (S205). When 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. Using the motion vector supplied from the encoded bit string decoding unit 202, motion compensation is performed by translation and a prediction signal is generated (S206).
切替制御部214により特定された予測方法が、幾何学変換による動き補償予測方法の場合(S205の幾何)、幾何学変換動き補償予測部205は、復号画像バッファ208から供給される参照画像信号とすべき復号画像信号を、第2符号化ビット列復号部202から供給される動きベクトルを用いて、幾何学変換による動き補償をし、予測信号を生成する(S207)。 When the prediction method specified by the switching control unit 214 is a motion compensation prediction method based on geometric transformation (geometry in S205), 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).
第3符号化ビット列復号部203は、入力スイッチ209を介して供給される符号化ビット列を復号して、符号化された予測誤差信号を取得する(S208)。復号画像信号生成部207は、取得された予測誤差信号を復号する(S209)。復号画像信号生成部207は、予測誤差信号復号部206により復号された予測誤差信号と、平行移動動き補償予測部204または幾何学変換動き補償予測部205により生成された予測信号とを重畳して、復号画像信号を生成する(S210)。復号画像信号生成部207は、生成した復号画像信号を、復号画像バッファ208に蓄積する(S211)。この復号画像バッファ208に蓄積された復号画像信号は、平行移動動き補償予測部204および幾何学変換動き補償予測部205における参照画像信号として利用される。 The third encoded bit string decoding unit 203 decodes the encoded bit string supplied via the input switch 209 and obtains an 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. Then, 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.
以上説明したように実施の形態2によれば、実施の形態1に係る画像符号化装置100により生成された符号化ストリームを、効率的に復号することができる。これにより、上述した実施の形態1に係る画像符号化装置100により実現される効果を、復号側からサポートし、その効果を担保することができる。すなわち、幾何学変換による動き補償予測を使用する画像符号化方式にて、符号量の圧縮効率を向上させる効果を、復号側からサポートし、その効果を担保することができる。また、平行移動による動き補償予測と幾何学変換による動き補償予測を併用する画像符号化方式においても、符号量の圧縮効率を向上させる効果を、復号側からサポートし、その効果を担保することができる。また、既存の画像復号装置との調和性および互換性が高く、導入コストを抑制することができる。 As described above, according to the second embodiment, the encoded stream generated by the image encoding apparatus 100 according to the first embodiment can be efficiently decoded. Thereby, the effect implement | 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 present invention has been described based on some embodiments. It is understood by those skilled in the art that these embodiments are exemplifications, and that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. By the way.
上述した実施の形態では、対象ブロック(すなわち、マクロブロック・パーティションまたはサブマクロブロック・パーティション)の頂点、頂点近傍の画素を代表画素とし、代表画素が対象ブロックに含まれる例を説明した(図3参照)。この点、それに限るものではなく、代表画素が対象ブロックから外れていてもよい。 In the above-described embodiment, the example in which the target pixel (that is, the macroblock partition or the sub-macroblock partition) and the pixel near the vertex are used as the representative pixel and the representative pixel is included in the target block (FIG. 3). reference). In this respect, the present invention is not limited to this, and the representative pixel may be out of the target block.
図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は対象ブロックに含まれない。 FIG. 11 is a diagram (No. 2) for explaining representative pixels corresponding to the four vertices of the target block. In the example shown in FIG. 11, 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. Yes. In FIG. 11, 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. 11), and the vertex vicinity Are set to pixel b (W, 0), pixel c (0, H) and pixel d (W, H). Here, 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), and H is between representative pixels in the vertical direction (pixel a and pixel). The distance (unit: pixel) between c and between pixel b and pixel d), and in the representative pixel setting shown in FIG. 11, W = 16 (pixel) and H = 16 (pixel). Here, 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.
その際、4つの代表画素a、b、c、dの動きベクトルVa、Vb、Vc、Vdからそれ以外の画素P(i,j)の動きベクトルV(i,j)は、上記式(3)により算出される。 At this time, 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). ).
上記式(3)において、図3に示す代表画素の設定ではW・H=225(15×15)で割るが、図11に示す代表画素の設定ではW・H=256(=16×16)で割る。2のべき乗である256で割る場合、8ビット右シフトするビットシフト演算で実現することが可能であるため、処理量を軽減することができ、ハードウェアへの実装が容易となる。代表画素の間隔を2のべき乗の数に設定することにより、除算をビットシフト演算で実現することが可能となる。なお、対象ブロックに含まれない代表画素は、画面から外れていて、実在しない仮想的な画素であってもよい。 In the above formula (3), in the setting of the representative pixel shown in FIG. 3, it is divided by W · H = 225 (15 × 15), but in the setting of the representative pixel shown in FIG. 11, W · H = 256 (= 16 × 16). Divide by. When dividing by 256, which is a power of 2, since it can be realized by a bit shift operation that shifts right by 8 bits, the amount of processing can be reduced, and mounting in hardware becomes easy. By setting the interval between the representative pixels to a power of 2, division can be realized by a bit shift operation. The representative pixel that is not included in the target block may be a virtual pixel that is off the screen and does not exist.
同様に、図11に示す代表画素の設定の場合、図3に示す代表画素の設定と同様に上記式(1)、(2)、(4)〜(12)を用いて算出することができる。 Similarly, in the case of the representative pixel setting shown in FIG. 11, it can be calculated using the above formulas (1), (2), (4) to (12) in the same manner as the representative pixel setting shown in FIG. .
上記式(4)、(5)、(10)、(12)において、図3に示す代表画素の設定ではW=15で割るが、図11に示す代表画素の設定ではW=16で割る。さらに、上記式(6)、(7)、(9)において、図3に示す代表画素の設定ではH=15で割るが、図11に示す代表画素の設定ではH=16で割る。上述と同様に、2のべき乗である16で割る場合、4ビット右シフトするビットシフト演算で実現することが可能であるため、処理量を軽減することができ、ハードウェアへの実装が容易となる。代表画素の間隔を2のべき乗にすることにより、この場合も除算をビットシフト演算で置き換えることが可能となる。 In the above formulas (4), (5), (10), and (12), in the setting of the representative pixel shown in FIG. 3, it is divided by W = 15, but in the setting of the representative pixel shown in FIG. Further, in the above formulas (6), (7), and (9), in the setting of the representative pixel shown in FIG. 3, H = 15 is divided, but in the setting of the representative pixel shown in FIG. Similarly to the above, when dividing by 16, which is a power of 2, since it can be realized by a bit shift operation that shifts 4 bits to the right, the processing amount can be reduced, and the mounting on hardware is easy. Become. By making the interval between the representative pixels a power of 2, it is possible to replace the division by a bit shift operation in this case as well.
図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の予測ベクトルは、隣接ブロックの動きベクトルから予測する。 Also in the representative pixel setting shown in FIG. 11, the calculation method of the prediction vector can adopt the same method as the method described with reference to FIG. 7. 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. . When the interval between the representative pixels is set to 16 as shown in FIGS. 11 and 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.
図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)により算出することができる。 In FIG. 12, 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. For the prediction vector of the third representative pixel c, the motion vector of the lower right vertex pixel of the block A on the left is used as the prediction vector. As described above, 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).
図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は対象ブロックに含まれない。 FIG. 13 is a diagram (No. 3) for explaining representative pixels corresponding to four vertices of the target block. In the example illustrated in FIG. 13, 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. In the example of FIG. 13, the representative pixel is represented by a black circle, the non-representative pixel is represented by a white circle, and the representative pixel is represented by a pixel a (−1, − 1), pixel b (W-1, -1), pixel c (-1, H-1) and pixel d (W-1, H-1) existing at the vertex. Here, 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), and H is between representative pixels in the vertical direction (pixel a and pixel). The distance (unit: pixel) between c and between pixel b and pixel d), and in the representative pixel setting shown in FIG. 11, W = 16 (pixel) and H = 16 (pixel). Here, 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.
その際、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)
At this time, 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). ) Is calculated by the following equation (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のべき乗の数にすることにより、除算をシフト演算で実現することが可能となる。なお、対象ブロックに含まれない代表画素は、画面から外れていて、実在しない仮想的な画素であってもよい。 In the above equation (15), when dividing by W · H = 256 (= 16 × 16) and dividing by 256 which is a power of 2, it is possible to realize by a bit shift operation that shifts right by 8 bits. The amount of processing can be reduced, and mounting on hardware becomes easy. By setting the interval between the representative pixels to a power of 2, division can be realized by a shift operation. The representative pixel that is not included in the target block may be a virtual pixel that is off the screen and does not exist.
上述した実施の形態では、対象ブロック(すなわち、マクロブロック・パーティションまたはサブマクロブロック・パーティション)の頂点、頂点近傍の画素を代表画素としたが、それに限るものではなく、頂点、または頂点に相当する座標に位置する補間画素を代表画素としてもよい。 In the embodiment described above, the pixels near the vertex and vertex of the target block (that is, macroblock partition or sub-macroblock partition) are used as representative pixels. However, the present invention is not limited to this and corresponds to the vertex or vertex. Interpolated pixels located at the coordinates may be used as representative pixels.
図14は、対象ブロックの4つの頂点に対応する代表画素を説明するための図(その4)である。図14に示す例では、左上、右上、左下および右下の頂点の位置に相当する補間画素a、b、c、dを代表画素に設定している。これまでの例(図3、図11、図13)のように実際に存在する画素を代表画素とするだけではなく、この例(図14)の様に、補間された位置に存在する画素を代表画素とし、この代表画素の動きベクトルから、実際に存在する画素の動きベクトルを補間により算出してもよい。 FIG. 14 is a diagram (No. 4) for explaining representative pixels corresponding to four vertices of the target block. In the example shown in FIG. 14, 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. Not only the pixels that actually exist as shown in the previous examples (FIGS. 3, 11, and 13) but also the pixels that exist at the interpolated position as in this example (FIG. 14). 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.
また、上記図5、図6、図7、図12において説明した動きベクトルの予測方法において、隣接ブロックまたは隣接ブロックの画素の動きベクトルVabcdをそのまま予測ベクトルの候補とするのではなく、Vabcdを符号化対象画像と参照画像との間の距離(時間)に応じて、スケーリングすることにより算出した動きベクトル値Vabcd'を予測ベクトルの候補として用いてもよい。スケーリングした動きベクトル値Vabcd'は、符号化対象画像と当該符号化対象ブロックの動きベクトルが指し示す参照画像との間の距離(時間)T1、及び符号化対象画像と隣接ブロックまたは隣接ブロックの画素の動きベクトルVabcdが指し示す参照画像との距離(時間)T2に応じてスケーリングした動きベクトル値である。スケーリングした動きベクトル値Vabcd'は下記式(16)により算出される。
Vabcd'=Vabcd*(T1/T2) ・・・式(16)
Further, in the motion vector prediction method described in FIGS. 5, 6, 7 and 12, 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. The scaled motion vector value Vabcd ′ is calculated by the following equation (16).
Vabcd ′ = Vabcd * (T1 / T2) (16)
符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なる場合、たとえ同じ動きでも互いの動きベクトルの値に差が生じるため、そのミスマッチを解消するために動きベクトルをスケーリングする。例えば、物体が変形せず、等速運動をしていれば、動きベクトルの大きさはフレーム間隔が長くなるほど大きくなる。符号化対象画像−参照画像間のフレーム間隔T1、T2の比率に応じて隣接ブロック(隣接ブロックの画素)の動きベクトルVabcdをスケーリングしてVabcd'を算出する。 If the reference image that is referenced in the motion compensated prediction of the current block is different from the reference image that is referenced in the motion compensated prediction of the adjacent block, even if the motion is the same, there will be a difference in the values of the motion vectors. To scale the motion vector. For example, if the object is not deformed and moves at a constant speed, the magnitude of the motion vector increases as the frame interval increases. Vabcd ′ is calculated by scaling the motion vector Vabcd of the adjacent block (pixel of the adjacent block) according to the ratio of the frame intervals T1 and T2 between the encoding target image and the reference image.
符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なり、それら2つの参照画像が符号化対象画像から見て表示順序で共に過去または共に未来に相当する場合、即ち、それら2つの参照画像が符号化対象画像から見て同じ側に位置する場合、同じ方向にスケーリングする。同じ方向にスケーリングするために正の値でスケーリングする。このスケーリング処理により、向きが同じで、大きさが異なる動きベクトルが予測ベクトルの候補となる。図15は、動きベクトル値のスケーリング処理の一例を説明するための図である。図15において、符号化対象画像の符号化対象ブロックの参照画像が画像Ref2であり、隣接ブロック(隣接ブロックの画素)の動き補償予測の参照画像が画像Ref3の場合、T1:T2=2:3であるから、画像Ref3を参照している隣接ブロック(隣接ブロックの画素)の動きベクトルVabcdを2/3にスケーリングする。これにより、仮に隣接ブロック(隣接ブロックの画素)が画像Ref2を参照して動き補償予測をした場合の動きベクトルの値に近くなり、結果的に画像Ref2を参照する符号化対象ブロックの動きベクトルの値に近くなる。図15の例では、隣接ブロックの動き補償予測の際の参照画像が画像Ref3でその動きベクトルの値が(24,−9)の場合、それを2/3にスケーリングした(16,−6)を予測ベクトルの候補とする。 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. In other words, when the two reference images are located on the same side 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. 15, when the reference image of the encoding target block of the encoding target image is the image Ref2, and the reference image for motion compensation prediction of the adjacent block (pixel of the adjacent block) is the image Ref3, T1: T2 = 2: 3 Therefore, the motion vector Vabcd of the adjacent block (pixel of the adjacent block) referring to the image Ref3 is scaled to 2/3. As a result, if the adjacent block (pixels of the adjacent block) is close to the value of the motion vector when motion compensation prediction is performed with reference to the image Ref2, the motion vector of the encoding target block that refers to the image Ref2 is eventually obtained. Close to value. In the example of FIG. 15, when the reference image in the motion compensation prediction of the adjacent block is the image Ref3 and the value of the motion vector is (24, -9), it is scaled to 2/3 (16, -6). Is a candidate for a prediction vector.
なお、符号化対象ブロックの動き補償予測で参照する参照画像と、隣接ブロックの動き補償予測で参照する参照画像が異なり、それら2つの参照画像が符号化対象画像から見て表示順序で過去と未来に相当する場合、即ち、それら2つの参照画像が符号化対象画像を挟んで両側に位置する場合、反対方向にスケーリングする。反対方向にスケーリングするために負の値でスケーリングする。このスケーリング処理により、向きが反対で、大きさが異なる動きベクトルが予測ベクトルの候補となる。図15において、符号化対象画像の符号化対象ブロックの参照画像が画像Ref2であり、隣接ブロック(隣接ブロックの画素)の動き補償予測の参照画像が画像Ref5の場合、T1:T2=2:−1であるから、画像Ref3を参照している隣接ブロック(隣接ブロックの画素)の動きベクトルVabcdを2/(−1)=−2倍にスケーリングする。これにより、仮に隣接ブロック(隣接ブロックの画素)が画像Ref2を参照して動き補償予測をした場合の動きベクトルの値に近くなり、結果的に画像Ref2を参照する符号化対象ブロックの動きベクトルの値に近くなる。図15の例では、隣接ブロックの動き補償予測の際の参照画像が画像Ref5でその動きベクトルの値が(−8,3)の場合、それを−2倍にスケーリングした(16,−6)を予測ベクトルの候補とする。 Note that 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. In other words, when the two reference images are located on both sides of the encoding target image, the scaling is performed in the opposite direction. Scale with a negative value to scale in the opposite direction. By this scaling process, motion vectors having opposite directions and different sizes become prediction vector candidates. In FIG. 15, when the reference image of the encoding target block of the encoding target image is the image Ref2, and the reference image for motion compensation prediction of the adjacent block (the pixel of the adjacent block) is the image Ref5, T1: T2 = 2:- Since it is 1, the motion vector Vabcd of the adjacent block (pixel of the adjacent block) referring to the image Ref3 is scaled to 2 / (− 1) = − 2. As a result, if the adjacent block (pixels of the adjacent block) is close to the value of the motion vector when motion compensation prediction is performed with reference to the image Ref2, the motion vector of the encoding target block that refers to the image Ref2 is eventually obtained. Close to value. In the example of FIG. 15, when the reference image in the motion compensation prediction of the adjacent block is the image Ref5 and the value of the motion vector is (−8, 3), it is scaled by −2 (16, −6). Is a candidate for a prediction vector.
なお、上記図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の動きベクトルの予測ベクトルの候補とすることができる。 In the motion vector prediction method described in FIGS. 5, 6, 7, and 12, in the B picture, 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. In other words, 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, and 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. When calculating the prediction vector candidate of the L0 motion vector, if the adjacent block is L1 prediction and the L0 motion vector of the adjacent block or the pixel of the adjacent block cannot be obtained, 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. Similarly, when calculating the prediction vector candidate of the L1 motion vector, if the adjacent block is L0 prediction and the L1 motion vector of the pixel of the adjacent block or the adjacent block cannot be obtained, 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.
上述した実施の形態では、対象ブロックの形状が正方形である例を説明した。この点、対象ブロックの形状は、三角形、平行四辺形、台形など、他の形状でもよい。この場合、上記代表画素は、当該形状の頂点または頂点近傍に設定されることが好ましい。 In the above-described embodiment, the example in which the shape of the target block is a square has been described. In this regard, the shape of the target block may be other shapes such as a triangle, a parallelogram, and a trapezoid. In this case, it is preferable that the representative pixel is set at or near the vertex of the shape.
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 切替制御部。 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 An encoding unit, 107 a first encoded bit sequence generation unit, 108 a second encoded bit sequence generation unit, 109 a third encoded bit sequence generation unit, 110 a prediction error signal decoding unit, 111 a decoded image signal generation unit, 112 a 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 translation motion compensation prediction unit, 205 geometric conversion motion compensation prediction 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 fourth prediction unit switch, 214 Switching control unit.
Claims (7)
前記予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成部と、
対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測部と、
前記予測信号、および前記復号部により復号された予測誤差信号から画像信号を生成する画像信号生成部と、
前記復号部により復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測部による複数の予測モードのいずれを用いるか指定する制御部と、を備え、
前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されており、
前記対象ブロックは四角形の領域であり、
前記複数の予測モードには、
前記対象ブロックの4つの代表画素の動きベクトルを用いる第1モードと、
前記対象ブロックの縦方向における2つの代表画素の動きベクトルを用いる第2モードと、
前記対象ブロックの横方向における2つの代表画素の動きベクトルを用いる第3モードと、
前記対象ブロックの3つの前記代表画素の動きベクトルを用いる第4モードとの4つの予測モードの内の少なくとも2つの予測モードが含まれることを特徴とする画像復号装置。 Prediction method information for specifying a prediction mode, a differential motion vector of a representative pixel according to the prediction mode, and a prediction error signal included in an encoded stream encoded using motion compensated prediction by geometric transformation A decoding unit for decoding;
In accordance with the prediction mode specified by the prediction method information, a predicted motion vector of a representative pixel motion vector is calculated using motion vectors inside and outside the target block, and the difference motion vector of the representative pixel is added to the predicted motion vector. A motion vector generation unit that generates a motion vector of the representative pixel,
The motion vector of the representative pixel between the target block in the target image and the reference block in the reference image that is geometrically transformed with the target block, and the calculation using interpolation using the motion vector of the representative pixel A geometric transformation motion compensated prediction unit that generates a prediction signal from a motion vector other than the representative pixel and the image signal of the reference block;
An image signal generation unit that generates an image signal from the prediction signal and the prediction error signal decoded by the decoding unit;
A control unit that refers to the prediction method information decoded by the decoding unit, and specifies which of a plurality of prediction modes by the geometric transformation motion compensation prediction unit is used for each target block in the target image. ,
As 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 target block is a rectangular area;
The plurality of prediction modes include
A first mode using motion vectors of four representative pixels of the target block;
A second mode using motion vectors of two representative pixels in the vertical direction of the target block;
A third mode using motion vectors of two representative pixels in the horizontal direction of the target block;
An image decoding apparatus comprising: at least two prediction modes among four prediction modes including a fourth mode using motion vectors of three representative pixels of the target block.
前記制御部は、前記復号部により復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記平行移動動き補償予測部による予測方法と、前記幾何学変換動き補償予測部による予測方法とのいずれを用いるか指定し、
前記符号化ストリームに含まれるデータは、前記平行移動による動き補償予測と前記幾何学変換による動き補償予測が併用されて符号化されており、
前記動きベクトル生成部は、対象ブロックの予測動きベクトルを、前記予測モード、及び前記対象ブロックに隣接する隣接ブロックの動き補償予測方法に応じて、当該隣接ブロック、あるいは当該隣接ブロックに含まれる画素の動きベクトルから生成することを特徴とする請求項1から4のいずれかに記載の画像復号装置。 A translation motion compensated prediction unit that generates a prediction signal from a motion vector between a target block in the target image and a reference block in a reference image that has a translational relationship with the target block, and an image signal of the reference block Further comprising
The control unit refers to the prediction method information decoded by the decoding unit, and for each target block in the target image, the prediction method by the translational motion compensation prediction unit and the geometric transformation motion compensation prediction unit Specify which prediction method to use,
The data included in the encoded stream is encoded using a combination of motion compensated prediction based on the parallel movement and motion compensated prediction based on the geometric transformation,
The motion vector generation unit may calculate a prediction motion vector of the target block of the adjacent block or a pixel included in the adjacent block according to the prediction mode and a motion compensation prediction method of the adjacent block adjacent to the target block. The image decoding apparatus according to claim 1, wherein the image decoding apparatus is generated from a motion vector.
幾何学変換による動き補償予測が使用されて符号化された符号化ストリームに含まれる、予測モードを特定するための予測方法情報、前記予測モードに応じた代表画素の差分動きベクトルおよび予測誤差信号を復号する復号ステップと、
前記予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成ステップと、
対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測ステップと、
前記予測信号、および前記復号ステップにより復号された予測誤差信号から画像信号を生成する画像信号生成ステップと、
前記復号ステップにより復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測ステップによる複数の予測モードのいずれを用いるか指定する制御ステップと、を備え、
前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されており、
前記対象ブロックは四角形の領域であり、
前記複数の予測モードには、
前記対象ブロックの4つの代表画素の動きベクトルを用いる第1モードと、
前記対象ブロックの縦方向における2つの代表画素の動きベクトルを用いる第2モードと、
前記対象ブロックの横方向における2つの代表画素の動きベクトルを用いる第3モードと、
前記対象ブロックの3つの前記代表画素の動きベクトルを用いる第4モードとの4つの予測モードの内の少なくとも2つの予測モードが含まれることを特徴とする画像復号方法。 An image decoding method executed in an image decoding device,
Prediction method information for specifying a prediction mode, a differential motion vector of a representative pixel according to the prediction mode, and a prediction error signal included in an encoded stream encoded using motion compensated prediction by geometric transformation A decoding step for decoding;
In accordance with the prediction mode specified by the prediction method information, a predicted motion vector of a representative pixel motion vector is calculated using motion vectors inside and outside the target block, and the difference motion vector of the representative pixel is added to the predicted motion vector. A motion vector generation step for generating a motion vector of the representative pixel,
The motion vector of the representative pixel between the target block in the target image and the reference block in the reference image that is geometrically transformed with the target block, and the calculation using interpolation using the motion vector of the representative pixel A geometric transformation motion compensation prediction step for generating a prediction signal from a motion vector other than the representative pixel and an image signal of the reference block;
An image signal generating step for generating an image signal from the prediction signal and the prediction error signal decoded by the decoding step;
A control step of referring to the prediction method information decoded in the decoding step and designating which of a plurality of prediction modes in the geometric transformation motion compensation prediction step is used for each target block in the target image. ,
As 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 target block is a rectangular area;
The plurality of prediction modes include
A first mode using motion vectors of four representative pixels of the target block;
A second mode using motion vectors of two representative pixels in the vertical direction of the target block;
A third mode using motion vectors of two representative pixels in the horizontal direction of the target block;
An image decoding method comprising: at least two prediction modes among four prediction modes including a fourth mode using motion vectors of three representative pixels of the target block.
前記予測方法情報により特定される予測モードに従って、代表画素の動きベクトルの予測動きベクトルを、対象ブロック内外の動きベクトルを用いて算出し、その予測動きベクトルに前記代表画素の差分動きベクトルを加算して代表画素の動きベクトルを生成する動きベクトル生成処理と、
対象画像内の対象ブロックと、その対象ブロックと幾何学変換した関係にある参照画像内の参照ブロックとの間の前記代表画素の動きベクトル、前記代表画素の動きベクトルを用いた補間により算出する前記代表画素以外の動きベクトル、および前記参照ブロックの画像信号から予測信号を生成する幾何学変換動き補償予測処理と、
前記予測信号、および前記復号処理により復号された予測誤差信号から画像信号を生成する画像信号生成処理と、
前記復号処理により復号された予測方法情報を参照して、対象画像内の対象ブロックごとに、前記幾何学変換動き補償予測処理による複数の予測モードのいずれを用いるか指定する制御処理と、をコンピュータに実行させ、
前記代表画素には、前記対象ブロックを構成する頂点に位置する画素、頂点近傍に位置する画素または頂点近傍に位置する補間画素が選定されており、
前記対象ブロックは四角形の領域であり、
前記複数の予測モードには、
前記対象ブロックの4つの代表画素の動きベクトルを用いる第1モードと、
前記対象ブロックの縦方向における2つの代表画素の動きベクトルを用いる第2モードと、
前記対象ブロックの横方向における2つの代表画素の動きベクトルを用いる第3モードと、
前記対象ブロックの3つの前記代表画素の動きベクトルを用いる第4モードとの4つの予測モードの内の少なくとも2つの予測モードが含まれることを特徴とする画像復号プログラム。 Prediction method information for specifying a prediction mode, a differential motion vector of a representative pixel according to the prediction mode, and a prediction error signal included in an encoded stream encoded using motion compensated prediction by geometric transformation Decryption processing to decrypt;
In accordance with the prediction mode specified by the prediction method information, a predicted motion vector of a representative pixel motion vector is calculated using motion vectors inside and outside the target block, and the difference motion vector of the representative pixel is added to the predicted motion vector. A motion vector generation process for generating a motion vector of the representative pixel,
The motion vector of the representative pixel between the target block in the target image and the reference block in the reference image that is geometrically transformed with the target block, and the calculation using interpolation using the motion vector of the representative pixel A geometric transformation motion compensation prediction process for generating a prediction signal from a motion vector other than a representative pixel and an image signal of the reference block;
An image signal generation process for generating an image signal from the prediction signal and the prediction error signal decoded by the decoding process;
A control process for specifying which of a plurality of prediction modes by the geometric transformation motion compensation prediction process is used for each target block in the target image with reference to the prediction method information decoded by the decoding process. To run
As 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 target block is a rectangular area;
The plurality of prediction modes include
A first mode using motion vectors of four representative pixels of the target block;
A second mode using motion vectors of two representative pixels in the vertical direction of the target block;
A third mode using motion vectors of two representative pixels in the horizontal direction of the target block;
An image decoding program comprising: at least two prediction modes of four prediction modes including a fourth mode using motion vectors of the three representative pixels of the target block.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011070982A JP5686019B2 (en) | 2010-05-21 | 2011-03-28 | Image decoding apparatus, image decoding method, and image decoding program |
PCT/JP2011/002514 WO2011145282A1 (en) | 2010-05-21 | 2011-04-28 | Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method and image decoding program |
CN201180025300.XA CN103039075B (en) | 2010-05-21 | 2011-04-28 | Picture coding device, method for encoding images and picture decoding apparatus, picture decoding method |
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 (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010117157 | 2010-05-21 | ||
JP2010117157 | 2010-05-21 | ||
JP2011070982A JP5686019B2 (en) | 2010-05-21 | 2011-03-28 | Image decoding apparatus, image decoding method, and image decoding program |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2012010314A JP2012010314A (en) | 2012-01-12 |
JP2012010314A5 JP2012010314A5 (en) | 2012-11-15 |
JP5686019B2 true JP5686019B2 (en) | 2015-03-18 |
Family
ID=45540297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011070982A Active JP5686019B2 (en) | 2010-05-21 | 2011-03-28 | Image decoding apparatus, image decoding method, and image decoding program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5686019B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6614472B2 (en) * | 2013-09-30 | 2019-12-04 | サン パテント トラスト | Image encoding method, image decoding method, image encoding device, and image decoding device |
US10931969B2 (en) * | 2017-01-04 | 2021-02-23 | Qualcomm Incorporated | Motion vector reconstructions for bi-directional optical flow (BIO) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0879759A (en) * | 1994-09-02 | 1996-03-22 | Sharp Corp | Image coder and image decoder |
JPH0879763A (en) * | 1994-09-05 | 1996-03-22 | Sharp Corp | Moving image coder and moving image decoder |
JP3277111B2 (en) * | 1995-10-18 | 2002-04-22 | シャープ株式会社 | Video encoding device and video decoding device |
JP2798035B2 (en) * | 1996-01-17 | 1998-09-17 | 日本電気株式会社 | Motion compensated inter-frame prediction method using adaptive motion vector interpolation |
JPH10224800A (en) * | 1997-02-07 | 1998-08-21 | Matsushita Electric Ind Co Ltd | Motion vector coding method and decoding method |
JP4039221B2 (en) * | 2002-07-16 | 2008-01-30 | ソニー株式会社 | Image processing apparatus, encoding apparatus, decoding apparatus, and methods thereof |
JP2008283490A (en) * | 2007-05-10 | 2008-11-20 | Ntt Docomo Inc | Moving image encoding device, method and program, and moving image decoding device, method and program |
-
2011
- 2011-03-28 JP JP2011070982A patent/JP5686019B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2012010314A (en) | 2012-01-12 |
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 | |
TWI571108B (en) | Video encoding device, video decoding device, video encoding method and video decoding method | |
RU2603539C2 (en) | Method and apparatus for encoding video and method and apparatus for decoding video | |
KR100924850B1 (en) | Moving picture signal coding method and decoding method | |
JP5081305B2 (en) | Method and apparatus for interframe predictive coding | |
JP4955216B2 (en) | Apparatus and method for encoding / decoding video including gray alpha channel | |
ES2822248T3 (en) | Method and apparatus for prediction with motion compensation | |
KR20160086420A (en) | Video processing apparatus and method, computer readable recording medium | |
JP5216710B2 (en) | Decryption processing method | |
JPWO2013065402A1 (en) | Moving picture encoding apparatus, moving picture decoding apparatus, moving picture encoding method, and moving picture decoding method | |
JP5686018B2 (en) | Image coding apparatus, image coding method, and image coding program | |
KR20110083567A (en) | Techniques for motion estimation | |
JP2008271371A (en) | Moving image encoding apparatus, moving image decoding apparatus, moving image encoding method, moving image decoding method, and program | |
JP5716437B2 (en) | Image coding apparatus, image coding method, and image coding program | |
JP2012080151A (en) | Method and apparatus for moving image encoding and moving image decoding using geometry-transformed/motion-compensated prediction | |
JP5522252B2 (en) | Image processing apparatus and image processing method | |
JP2019022120A (en) | Moving picture coding apparatus, moving picture coding method, moving picture coding computer program, moving picture decoding apparatus, moving picture decoding method, and moving picture decoding computer program | |
JP5716438B2 (en) | Image decoding apparatus, image decoding method, and image decoding program | |
TW202015405A (en) | Method and apparatus of inter prediction for video coding | |
JP5686019B2 (en) | Image decoding apparatus, image decoding method, and image decoding program | |
JP5725104B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program | |
JPH1188888A (en) | Method for predictively encoding moving vector, method for decoding moving vector, predictively encoding device, decoding device, and recording medium recording predictively encoding program and decoding program for moving vector | |
WO2011145282A1 (en) | Image encoding apparatus, image encoding method, image encoding program, image decoding apparatus, image decoding method and image decoding program | |
JP2011151775A (en) | Image decoder, method of decoding image, and image decoding program | |
JP5725119B2 (en) | Moving picture decoding apparatus, moving picture decoding method, moving picture decoding program, receiving apparatus, receiving method, and receiving program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120927 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20131001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140924 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20141120 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20141224 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5686019 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |