(57)【特許請求の範囲】
【請求項１】
所定の探索範囲に基づき複数の候補ベクトルを生成する制御手段と、
入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを記憶する動きベクトル記憶手段と、
前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出するコスト計算手段と、
前記複数の候補ベクトルから、前記評価値による評価において評価が高い前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択するベクトル選択手段と、
を備え、
前記コスト計算手段は、前記入力画像に含まれる全ての前記ブロックに対する前記第２の動きベクトルを、前記第１の動きベクトルに基づいて選択する探索ステップにおいて、対象ブロックにおける前記候補ベクトルの前記評価値を算出する際に、当該探索ステップにおいて当該対象ブロック以外のブロックに対して選択された前記第２の動きベクトルを使用しない
動きベクトル探索装置。
【請求項２】
前記制御手段は、選択された前記第２の動きベクトルを前記動きベクトル記憶手段に格納し、
前記探索ステップが終了すると、前記コスト計算手段は、前記動きベクトル記憶手段に格納された前記第２の動きベクトルを、新しい前記第１の動きベクトルとして、当該第１の動きベクトルと、前記入力画像と、前記参照画像と、前記候補ベクトルとに基づき前記評価値を算出する
請求項１に記載の動きベクトル探索装置。
【請求項３】
前記探索ステップが終了すると、前記制御手段は、前記探索ステップにおける前記探索範囲より広くない、新しい探索範囲を選択し、選択された前記新しい探索範囲に基づき前記候補ベクトルを生成し、
前記コスト計算手段は、前記第１の動きベクトルと、前記入力画像と、前記参照画像と、前記新しい探索範囲に基づき生成された前記候補ベクトルとに基づき前記評価値を算出する
請求項２に記載の動きベクトル探索装置。
【請求項４】
前記近傍ブロックは、前記対象ブロックの下及び右において前記対象ブロックに隣接する前記ブロックを含む
請求項２又は３に記載の動きベクトル探索装置。
【請求項５】
前記制御手段は、さらに、省略符号化モードが設定されたいずれかの前記ブロックにおける、当該ブロックに対して前記省略符号化モードに応じた所定の位置にある前記近傍ブロックである再利用ブロックに、前記対象ブロックが含まれるか否かを判定し、
前記コスト計算手段は、前記対象ブロックが前記再利用ブロックに含まれる場合、前記対象ブロックの前記第１の動きベクトルと等しい前記候補ベクトルの前記評価値を、前記評価が高くなるよう変更する
請求項２乃至４のいずれかに記載の動きベクトル探索装置。
【請求項６】
前記省略符号化モードは、Ｈ．２６４におけるスキップモードである、又は、Ｈ．２６５におけるマージモードである
請求項５に記載の動きベクトル探索装置。
【請求項７】
前記入力画像に行われた前記探索ステップの回数に応じた所定の変換である画像変換を、前記入力画像に対して行うことにより、変換入力画像を生成する入力画像変換手段と、
前記画像変換を、前記参照画像に対して行うことにより、変換参照画像を生成する参照画像変換手段と、
を含み、
前記コスト計算手段は、前記第１の動きベクトルと、前記候補ベクトルと、前記変換入力画像と、前記変換参照画像とに基づき、前記候補ベクトルの評価値を算出する
請求項２乃至４のいずれかに記載の動きベクトル探索装置。
【請求項８】
前記画像変換は、前記探索ステップの回数の増加に応じて前記変換入力画像のサイズが減少しないように、前記回数に応じて定められた縮小率に基づき、画像を縮小する縮小処理であり、
前記制御手段は、前記縮小率に基づき前記探索範囲を変換し、変換された前記探索範囲に基づき前記候補ベクトルを生成し、
前記動きベクトル探索装置は、
前記変換入力画像である対象変換入力画像のサイズに、前記第１の動きベクトルの導出に使用された前記変換入力画像である前回変換入力画像のサイズを合わせる変換に基づき、前記第１の動きベクトルを変換することによって、変換動きベクトルを生成する動きベクトル変換手段と、
を含み、
前記コスト計算手段は、前記変換動きベクトルと、前記候補ベクトルと、前記対象変換入力画像と、前記変換参照画像とに基づき、前記候補ベクトルの評価値を算出する
請求項７に記載の動きベクトル探索装置。
【請求項９】
所定の探索範囲に基づき複数の候補ベクトルを生成し、
入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを動きベクトル記憶手段に記憶し、
前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出し、
前記複数の候補ベクトルから、前記評価値による評価において評価が高い前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択し、
前記入力画像に含まれる全ての前記ブロックに対する前記第２の動きベクトルを、前記第１の動きベクトルに基づいて選択する探索ステップにおいて、対象ブロックにおける前記候補ベクトルの前記評価値を算出する際に、当該探索ステップにおいて当該対象ブロック以外のブロックに対して選択された前記第２の動きベクトルを使用しない
動きベクトル探索方法。
【請求項１０】
コンピュータに、
所定の探索範囲に基づき複数の候補ベクトルを生成する制御処理と、
入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを記憶する動きベクトル記憶処理と、
前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出するコスト計算処理と、
前記複数の候補ベクトルから、前記評価値による評価において評価が高い前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択するベクトル選択処理と、
を実行させ、
前記コスト計算処理は、前記入力画像に含まれる全ての前記ブロックに対する前記第２の動きベクトルを、前記第１の動きベクトルに基づいて選択する探索ステップにおいて、対象ブロックにおける前記候補ベクトルの前記評価値を算出する際に、当該探索ステップにおいて当該対象ブロック以外のブロックに対して選択された前記第２の動きベクトルを使用しない
動きベクトル探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像符号化技術に関し、特に動きベクトルを検出する技術に関する。
【背景技術】
【０００２】
近年、動画像の圧縮符号化技術は広く普及している。動画像の圧縮符号化技術は、例えば、デジタル放送、光学ディスクによる映像コンテンツの頒布、インターネット等を経由した映像配信など、幅広い用途に利用されている。さらに、動画像の圧縮符号化技術は、低ビットレート、高圧縮率かつ高画質で、動画像信号を符号化できるよう進歩している。動画像信号を符号化して符号化データを生成したり、符号化された動画像を復号化したりする技術には、以下のような技術がある。ＩＴＵ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｌｅｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｕｎｉｏｎ）が標準化したＨ．２６１や、Ｈ．２６３は、そのような技術の例である。ＩＳＯ（Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｏｒｇａｎｉｚａｔｉｏｎ  ｆｏｒ  Ｓｔａｎｄａｒｄｉｚａｔｉｏｎ）のＭＰＥＧ（Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）−１、ＭＰＥＧ−２、ＭＰＥＧ−４も、そのような技術の例である。ＳＭＰＴＥ（Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ）のＶＣ-１も、そのような技術の例である。これらの技術は、国際標準規格として広く用いられている。また、ＩＴＵとＩＳＯが共同で規格化を行なったＨ．２６４／ＭＰＥＧ−４  ＡＶＣ（Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）も普及が進んでいる。以下では、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣをＨ．２６４と記述する。さらに、最新の動画像圧縮符号化規格として、２０１３年にＨ．２６５／ＭＰＥＧ−Ｈ  ＨＥＶＣ（Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）が標準化された。以下では、Ｈ．２６５／ＭＰＥＧ−Ｈ  ＨＥＶＣをＨ．２６５と記述する。Ｈ．２６５は、Ｈ．２６４と同等の映像品質でデータサイズが半分程度になるように動画像を圧縮することができると言われている。Ｈ．２６５は、今後幅広い分野での活用が期待されている。【０００３】
これらの動画像符号化技術は、動き補償予測、予測誤差画像の直交変換、直交変換係数の量子化、量子化した直交変換係数のエントロピー符号化といった複数の要素技術の組み合わせによって実現される。これらの動画像符号化技術は、ハイブリッド符号化と呼ばれている。【０００４】
上述の動き補償予測では、動画像における前のフレームと現在のフレームとの間で、ＭＢ（Ｍａｃｒｏ  Ｂｌｏｃｋ）毎に、画像の動きを表す動きベクトルの探索が行われる。以下の本発明の説明において、動きベクトルの探索を行う処理を、「動きベクトル探索処理」と表記する。【０００５】
動きベクトル探索処理では、符号化対象画像の各ＭＢに対して、多数の候補ベクトルそれぞれについての予測画像生成、レート歪みコスト算出、比較、選択といった処理が反復実行される。そのため、動きベクトル探索処理の演算量は大きい。動きベクトル探索処理の演算量が、動画像符号化処理全体の演算量の大部分を占める場合がある。このため、動画像符号化を高速化するためには動きベクトル探索処理の高速化が重要である。【０００６】
処理を実行するプロセッサにおいて、近年、プロセッサのマルチコア化、メニーコア化が進んでいる。一般的なパーソナルコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にも、２コア、又は４コアのプロセッサコアが搭載されていることが多い。ハイエンドＣＰＵには、８コア以上のコアを搭載するＣＰＵもある。また、５０コア以上のプロセッサコアが集積されたメニーコアアクセラレータも実用化されている。さらに、３次元グラフィックス処理用に利用されているＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）は、数千基のプロセッサコアが集積された大規模な並列プロセッサである。このようなＧＰＵを他の用途にも活用する、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｃｏｍｐｕｔｉｎｇ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と呼ばれる技術がある。処理がＧＰＵの特性とマッチする場合、ＧＰＵを使用してその処理を行うことにより、その処理を実行する速度は、ＣＰＵを使用してその処理を行う場合の速度と比較して数倍〜数十倍に高速化され得る。【０００７】
上述のベクトル探索処理を、これらのマルチコア、メニーコアプロセッサを使用することによって、並列に行うことができれば、動きベクトル探索処理の大幅な高速化が可能になる。動きベクトル探索処理の高速化ができれば、動画像符号化の高速化が可能になる。【０００８】
非特許文献１の４．３．１節には、動きベクトル探索処理を並列に処理する技術が開示されている。動きベクトル探索処理では、近傍ブロックの符号化済みベクトルが利用される。すなわち、互いに近傍に位置するブロック間に依存関係がある。そのため、任意のブロックを並列に処理することはできない。非特許文献１によって開示されている技術では、非特許文献１のＦｉｇｕｒｅ  １４に示されているように、フレーム内で互いに離れた所定の相対的位置関係にある複数のＭＢに対する処理が並列に行われる。そして、処理の対象であるＭＢの位置をフレームの左上から右下に向かって変更することによって、所定の相対的位置関係にある複数のＭＢの組み合わせを変更しながら、それらの複数のＭＢに対する並列処理を順次進行させる。この処理は、Ｗａｖｅｆｒｏｎｔ処理と呼ばれる。【０００９】
動きベクトル探索処理は、符号化対象画像の各ＭＢに対して、多数の候補ベクトルそれぞれについての予測画像生成、レート歪みコスト算出、比較及び選択といった処理を反復実行するため演算量が大きく、動画像符号化処理全体の演算量の大部分を占める場合がある。このため、動画像符号化を高速化するためには動きベクトル探索処理の高速化が重要である。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】Y. Chen, E. Li, X. Zhou and S. Ge, "Implementation of H.264 encoder and decoder on personal computers," Journal of Visual Communication and Image Representation, Volume 17, Issue 2, April 2006, pp.509-532, 2006.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献１によって開示されている技術では、動きベクトル探索処理を並列に行うことができるＭＢは、例えば非特許文献１のＦｉｇｕｒｅ  １４に示されているような、所定の位置関係にあるＭＢに限定される。符号化対象画像のサイズがフルハイビジョン解像度（すなわち１９２０画素×１０８０画素）であり、ＭＢのサイズが１６画素×１６画素である場合、非特許文献１によって開示されている技術によって並列に処理できるＭＢ数は最大でも６０程度である。この場合の並列度は、５０コア以上を持つメニーコアアクセラレータや、数千以上のコアを持つメニーコアＧＰＵによって並列処理を行うためには不十分である。すなわち、非特許文献１によって開示されている技術では、動きベクトル探索処理の、メニーコアプロセッサのコア数に応じた高速化を実現することはできない。【００１２】
非特許文献１によって開示されている技術では、動きベクトルを探索する際に近傍ブロックのベクトルを参照することによる、近傍ブロック間の依存関係によって、並列度が制約される。従って、例えばベクトルの参照を禁止すれば、並列度を向上させることができる。しかし、ベクトルの参照を禁止すると、動きベクトルの精度が低下し、結果として圧縮率の低下や画質の劣化を招く。【００１３】
本発明の目的の一つは、動きベクトルの精度を低下させることなく、動きベクトル探索における並列処理の並列度を向上させることができる動きベクトル探索装置等を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の一形態に係る動きベクトル探索装置は、所定の探索範囲に基づき複数の候補ベクトルを生成する制御手段と、入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを記憶する動きベクトル記憶手段と、前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出するコスト計算手段と、前記複数の候補ベクトルから、前記評価値による評価において評価が高い前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択するベクトル選択手段と、を備える。【００１５】
本発明の一形態に係る動きベクトル探索方法は、所定の探索範囲に基づき複数の候補ベクトルを生成し、入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを動きベクトル記憶手段に記憶し、前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出し、前記複数の候補ベクトルから、前記評価値による評価において評価が高い前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択する。【００１６】
本発明の一形態に係るコンピュータ読み取り可能な記録媒体は、動きベクトル探索プログラムは、コンピュータを、所定の探索範囲に基づき複数の候補ベクトルを生成する制御手段と、入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを記憶する動きベクトル記憶手段と、前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出するコスト計算手段と、前記複数の候補ベクトルから、前記評価値による評価において評価が高い前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択するベクトル選択手段と、して動作させる動きベクトル探索プログラムを記憶する。【００１７】
本発明は、そのようなコンピュータ読み取り可能な記録媒体に格納されている動きベクトル探索プログラムによっても実現することができる。
【発明の効果】
【００１８】
本発明には、動きベクトルの精度を低下させることなく、動きベクトル探索における並列処理の並列度を向上させることができるという効果がある。
【図面の簡単な説明】
【００１９】
【図１】図１は、Ｈ．２６４方式の動画像符号化装置１Ｃの構成の例を示すブロック図である。
【図２】図２は、Ｈ．２６４方式の動画像符号化装置１Ｃの動きベクトル探索部１００の構成の例を示すブロック図である。
【図３】図３は、Ｈ．２６４方式の動画像符号化装置１Ｃの動きベクトル探索部１００の動作の例を示すフローチャートである。
【図４】図４は、Ｈ．２６４における予測ベクトルの算出に使用される動きベクトルを模式的に表す図である。
【図５】図５は、Ｈ．２６５における予測ベクトルの算出に使用される動きベクトルを模式的に表す図である。
【図６】図６は、本発明の第１、及び第２の実施形態の動きベクトル探索装置１０の構成の例を表すブロック図である。
【図７】図７は、本発明の第１、第２、及び第３の実施形態の動きベクトル探索装置１０の動作の例を表すフローチャートである。
【図８】図８は、本発明の第１の実施形態における、動きベクトルを探索する動作を模式的に表す図である。
【図９】図９は、本発明の第３の実施の形態における動きベクトル探索装置１０Ａの構成の例を示すブロック図である。
【図１０】図１０は、動きベクトルの導出において符号化対象ブロックと関連があるブロックの例を表す図である。
【図１１】図１１は、第４の実施形態の動きベクトル探索装置１０Ｂの構成の例を表すブロック図である。
【図１２】図１２は、第４の実施形態の動きベクトル探索装置１０Ｂの動作の例を表すフローチャートである。
【図１３】図１３は、第４の実施形態における、変換後の入力画像と、探索の処理で使用される変換後の動きベクトルとを、模式的に表す図である。
【図１４】図１４は、第１、及び第２の実施形態の動画像符号化装置１の構成の例を表すブロック図である。
【図１５】図１５は、第２の実施形態における各探索ステップの探索範囲を模式的に表す図である。
【図１６】図１６は、第３の実施形態の動画像符号化装置１Ａの構成の例を表すブロック図である。
【図１７】図１７は、第４の実施形態の動画像符号化装置１Ｂの構成の例を表すブロック図である。
【図１８】図１８は、第５の実施形態の動画像符号化装置１Ｃの構成の例を表すブロック図である。
【図１９】図１９は、各実施形態の動きベクトル探索装置及び各実施形態の各動画像符号化装置を実現することができる、コンピュータ１０００の構成の一例を表す図である。
【発明を実施するための形態】
【００２０】
次に、本発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
まず、本発明の各実施形態との比較のために、動画像符号化装置の構成の一例として、Ｈ．２６４方式の動画像符号化装置について、図面を参照して詳細に説明する。Ｈ．２６４方式では、圧縮効率向上および画質向上を目的として、イントラ予測や、デブロックフィルタの技術も採用されている。イントラ予測は、同一画像フレーム内の近傍の画素の情報を用いて予測を行なう技術である。デブロックフィルタの技術は、符号化結果の画像に発生した符号化ノイズを低減する技術である。Ｈ．２６４の詳細は、例えば、下記の文献１に記載されている。
【００２２】
（文献１）  ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４ 「Ａｄｖａｎｃｅｄ   ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」、２０１０年３月．
図１は、Ｈ．２６４方式の動画像符号化装置１Ｃの構成の例を表すブロック図である。図１に示すＨ．２６４方式の動画像符号化装置１Ｃを、以下の説明では、比較例の動画像符号化装置１Ｃとも表記する。図１を参照すると、動画像符号化装置１Ｃは、次に示す部を構成要素として含む。
【００２３】
動きベクトル探索部１００、
動き補償部１０１、
イントラ予測モード判定部１０２、
イントラ予測部１０３、
選択部１０４、
整数変換部１０５、
量子化部１０６、
逆量子化部１０７、
逆整数変換部１０８、
可変長符号化部１０９、
デブロックフィルタ１１０、
フレームバッファ１１１、
減算部１１２、
加算部１１３。
【００２４】
フレームバッファ１１１は、過去に符号化済みのフレームの画像データを記憶する。
【００２５】
動画像符号化装置１Ｃに新たな画像が入力されると、その入力された画像に対して、マクロブロック（ＭＢ）と呼ばれる１６×１６画素のブロック単位で符号化処理が行なわれる。
【００２６】
動きベクトル探索（ＭＥ：Ｍｏｔｉｏｎ  Ｅｓｔｉｍａｔｉｏｎ）部１００は、入力画像とフレームバッファ１１１に格納されている符号化済み画像との間で対応する画像ブロックの位置変化を検出する。動きベクトル探索部１００は、その検出された位置変化に相当する動きベクトルを出力する。入力画像は、例えば、動画像符号化装置１Ｃが符号化を行う動画像に含まれるフレームである。入力画像は、以下の説明において、符号化対象画像とも表記される。
【００２７】
動き補償（ＭＣ：Ｍｏｔｉｏｎ  Ｃｏｍｐｅｎｓａｔｉｏｎ）部１０１は、フレームバッファ１１１に格納されている符号化済み画像と、動きベクトル探索部１００から供給される動きベクトルとを用いて、動き補償処理を行なう。そして、動き補償部１０１は、動き補償処理によって得られた動き補償予測画像を出力する。
【００２８】
イントラ予測モード判定部１０２は、入力画像と、同一画像内の符号化済みマクロブロックの画像を用いて適切な（すなわち、一般的には、符号化効率が最も高くなる）イントラ予測モードを選択する。イントラ予測モード判定部１０２は、一般的には、符号化効率が最も高くなるイントラ予測モードを、適切なイントラ予測モードとして選択する。イントラ予測モード判定部１０２は、選択されたイントラ予測モードを出力する。
【００２９】
イントラ予測（ＩＰ：Ｉｎｔｒａ  Ｐｒｅｄｉｃｔｉｏｎ）部１０３は、同一画像内の符号化済みマクロブロックの画像と、イントラ予測モード判定部１０２から供給されるイントラ予測モードを用いて、イントラ予測処理を行なう。イントラ予測は、画面内予測とも表記される。イントラ予測部１０３は、イントラ予測処理によって得られた、イントラ予測画像を出力する。
【００３０】
選択部１０４は、動き補償部１０１から供給される動き補償予測画像と、イントラ予測部１０３から供給されるイントラ予測画像のうち、適切な画像を予測画像として選択する。選択部１０４は、一般的には、より符号化効率が高くなる画像を、適切な画像として選択する。選択部１０４では、選択した画像を、予測画像として出力する。動き補償予測画像が選択される場合がＩｎｔｅｒモードと呼ばれ、イントラ予測画像が選択される場合がＩｎｔｒａモードと呼ばれることがある。
【００３１】
減算部１１２は、入力画像から、選択部１０４から出力される予測画像を減算することにより、予測誤差画像を導出する。減算部１１２は、導出された予測誤差画像を出力する。
【００３２】
整数変換（ＤＩＴ：Ｄｉｓｃｒｅｔｅ  Ｉｎｔｅｇｅｒ  Ｔｒａｎｓｆｏｒｍ）部１０５は、出力された予測誤差画像に対して、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）と同様な直交変換処理を行なう。整数変換部１０５は、直交変換処理によって得られた直交変換係数列を出力する。
【００３３】
量子化（Ｑ：Ｑｕａｎｔｉｚｅ）部１０６は、出力された直交変換係数列に対して、量子化処理を行なう。そして、量子化部１０６は、量子化された直交変換係数列を出力する。
【００３４】
可変長符号化（ＶＬＣ：Ｖａｒｉａｂｌｅ−Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）部１０９は、量子化された直交変換係数列を所定の規則で符号化する。可変長符号化部１０９は、符号化の結果をビットストリームとして出力する。これがＨ．２６４方式の動画像符号化装置１Ｃの出力ビットストリームである。
【００３５】
また、逆量子化（ＩＱ：Ｉｎｖｅｒｓｅ  Ｑｕｎａｔｉｚａｔｉｏｎ）部１０７は、量子化された直交変換係数列に対して、逆量子化処理を行う。
【００３６】
逆整数変換（ＩＤＩＴ：Ｉｎｖｅｒｓｅ  Ｄｉｓｃｒｅｔｅ  Ｉｎｔｅｇｅｒ  Ｔｒａｎｓｆｏｒｍ）部１０８は、逆量子化処理の結果に対して、逆整数変換処理を行なう。
【００３７】
加算部１１３は、選択部１０４から出力される予測画像と、逆整数変換処理の結果とを加算する。
【００３８】
さらに、デブロックフィルタ１１０は、加算によって得られた画像に対して、デブロックフィルタ処理を行なうことによって、ローカルデコード画像を生成する。
【００３９】
ローカルデコード画像はフレームバッファ１１１に記憶される。フレームバッファ１１１に記憶されているローカルデコード画像は、後続フレームに対する符号化に利用される。例えば、後述される参照画像は、このローカルデコード画像である。以上で説明した処理の、より具体的な処理の内容は、例えば、下記の文献２に開示されている。
【００４０】
（文献２）  Ｊｏｉｎｔ  Ｖｉｄｅｏ  Ｔｅａｍ  （ＪＶＴ）  ｏｆ  ＩＳＯ／ＩＥＣ  ＭＰＥＧ  ａｎｄ  ＩＴＵ−Ｔ  ＶＣＥＧ、Ｄｏｃｕｍｅｎｔ  ＪＶＴ−Ｏ０７９、「Ｔｅｘｔ  Ｄｅｓｃｒｉｐｔｉｏｎ  ｏｆ  Ｊｏｉｎｔ  Ｍｏｄｅ  Ｒｅｆｅｒｅｎｃｅ  Ｅｎｃｏｄｉｎｇ  Ｍｅｔｈｏｄ  ａｎｄ  Ｄｅｃｏｄｉｎｇ  Ｃｏｎｃｅａｌｍｅｎｔ  Ｍｅｔｈｏｄ」、２００５年４月．
次に、動画像符号化装置１Ｃに含まれる動きベクトル探索部１００について、図面を参照して詳細に説明する。
【００４１】
図２は、Ｈ．２６４方式の動画像符号化装置１Ｃの動きベクトル探索部１００の構成の例を表す図である。図２を参照すると、動きベクトル探索部１００は、次に示す部を構成要素として含む。
【００４２】
入力画像記憶部２００、
参照画像記憶部２０１、
動きベクトル記憶部２０２、
制御部３００、
差分画像コスト計算部３０１、
予測画像生成部３０２、
コスト算出部３０３、
ベクトルコスト計算部３０４、
コスト比較・ベクトル選択部３０５、
予測ベクトル生成部３０６。
【００４３】
コスト比較・ベクトル選択部３０５は、ベクトル選択部３０５とも表記される。
【００４４】
入力画像記憶部２００は、入力画像を記憶する。
【００４５】
参照画像記憶部２０１は、過去に符号化済みの画像データを記憶する。参照画像記憶部２０１が記憶する過去に符号化済みの画像データは、動き補償予測において参照される。参照画像記憶部２０１が記憶する画像は、上述のローカルデコード画像である。参照画像記憶部２０１が記憶する画像は、参照画像とも表記される。図１に示すフレームバッファ１１１が、参照画像記憶部２０１として動作してもよい。その場合、動きベクトル探索部１００は、参照画像記憶部２０１を含んでいなくてよい。
【００４６】
動きベクトル記憶部２０２は、符号化対象画像内の符号化済みのＭＢにおいて導出された、動きベクトルを記憶する。
【００４７】
動き補償予測に用いるのに最適な動きベクトルを求めるのが動きベクトル探索部１００の役割である。動きベクトル探索部１００が求める動きベクトルの精度が、圧縮性能を大きく左右する。この処理では、復号画像に発生するノイズ量を抑えつつ、符号化する情報量も最小化する動きベクトルを求めることが要求される。このため、近年の動画像符号化装置ではＲＤ（Ｒａｔｅ−Ｄｉｓｔｏｒｔｉｏｎ）最適化と呼ばれる手法が広く用いられている。ＲＤ最適化では、多数の動きベクトル候補に対して、式１で表されるレート歪みコストを算出される。そして、レート歪みコストが最小になる動きベクトル候補が、最適な動きベクトルとして採用される。
【００４８】
J = D + λR                                    （式１）
ここで、Dは予測差分画像に発生する歪み量（差分画像コスト）であり、Rは動きベクトルの符号化で発生する符号量（ベクトルコスト）であり、λは画像の複雑さなどに依存する重み係数（コスト係数）である。ＲＤ最適化の詳細は、例えば、上記の文献２や、下記の文献３に記載されている。
【００４９】
（文献３）  G.J. Sullivan, T. Wiegand, "Rate-distortion optimization for video compression," Signal Processing Magazine, IEEE, vol.15, no.6, pp.74-90, 1998．
動きベクトル探索部１００は、ＲＤ最適化によって、動きベクトルを求める。
【００５０】
制御部３００が、動きベクトル探索部１００の動作を制御する。制御部３００は、所定の探索範囲に基づき候補ベクトルを生成し、生成した候補ベクトルを、予測画像生成部３０２とベクトルコスト計算部３０４に供給する。
【００５１】
差分画像コスト計算部３０１は、予測画像生成部３０２から供給される予測画像と、入力画像記憶部２００から供給される符号化対象の画像との差分画像を計算する。
【００５２】
予測画像生成部３０２は、制御部３００から供給される候補ベクトルに基づき、参照画像記憶部２０１に格納されている参照画像を用いて動き補償処理を行うことによって、予測画像を生成する。
【００５３】
差分画像コスト計算部３０１は、予測画像生成部３０２から供給される予測画像と、入力画像記憶部２００から供給される符号化対象画像との差分画像を計算する。前述のように、入力画像が符号化対象画像である。
【００５４】
予測ベクトル生成部３０６は、動きベクトル記憶部２０２から読み出された、符号化済みのＭＢの動きベクトルを用いて、符号化対象ＭＢの予測ベクトルを生成する。
【００５５】
ベクトルコスト計算部３０４は、制御部３００から供給される候補ベクトルと、予測ベクトル生成部３０６から供給される予測ベクトルとをもとに、その候補ベクトルのベクトルコストを算出する。
【００５６】
コスト算出部３０３は、差分画像コストと、ベクトルコストと、制御部３００から供給されるコスト係数（式１におけるλ）に基づき、式１によって表されるレート歪みコストを算出する。レート歪みコストは、供給された候補ベクトルが、符号化対象ブロックの動きベクトルとしてどの程度適するかを表す指標である評価値である。
【００５７】
コスト比較・ベクトル選択部３０５は、コスト算出部３０３から供給されるレート歪みコストが、既に評価済みである候補ベクトルのレート歪みコストより小さい場合、現候補ベクトルを暫定的な最適ベクトルとして選択する。すなわち、コスト比較・ベクトル選択部３０５は、入力画像のブロック毎に、レート歪みコストが最も小さい候補ベクトルを、暫定的な最適ベクトルとして選択する。
【００５８】
次に、動きベクトル探索部１００の動作について、図面を参照して詳細に説明する。
【００５９】
図３は、Ｈ．２６４方式の動画像符号化装置１Ｃの動きベクトル探索部１００の動作を表すフローチャートである。
【００６０】
制御部３００は、符号化対象画像内に未処理のＭＢが存在するかを判定する（ステップＳ３０１）。未処理のＭＢが存在しない場合（ステップＳ３０１においてＹｅｓ）、動きベクトル探索部１００は、図３に示す動作を終了する。未処理のＭＢが存在する場合（ステップＳ３０１においてＮｏ）、制御部３００は、そのＭＢを符号化対象ブロックとした動きベクトル探索のための初期化処理を行う（ステップＳ３０２）。制御部３００は、この初期化処理では、後述する暫定的な最適動きベクトルやレート歪みコストの最小値として保持する値の初期化や、初期探索候補ベクトルの設定を行う。
【００６１】
次に、制御部３００は、符号化対象ブロックに対して未生成の候補ベクトルが残っているかを判定する（ステップＳ３０３）。未生成の候補ベクトルが残っている場合（ステップＳ３０３においてＹｅｓ）、制御部３００は、探索する候補ベクトルを生成する（ステップＳ３０４）。制御部３００は、所定の探索範囲内をラスタースキャンするように順次候補ベクトルを生成してもよい。制御部３００は、例えば、探索範囲内の位置を順次選択しながら、探索範囲内の選択された位置を表すベクトルを、候補ベクトルとして生成すればよい。制御部３００は、ある時点での暫定の最適ベクトルの周囲に次の候補ベクトルを設定してもよい。制御部３００は、他のさまざまな方法のいずれかによって、候補ベクトルを生成してもよい。制御部３００は、探索範囲内全体に対して候補ベクトルが生成された場合、未生成の候補ベクトルが残っていないと判定すればよい。制御部３００は生成した候補ベクトルを、予測画像生成部３０２に供給する。
【００６２】
次に、コスト算出部３０３が、式１によって表されるレート歪みコストを算出する（ステップＳ３０５）。
【００６３】
そのために、まず、予測画像生成部３０２は、制御部３００から供給される候補ベクトルに基づき、参照画像記憶部２０１に格納されている参照画像を用いて動き補償処理を行うことによって、予測画像を生成する。予測画像生成部３０２は、生成した予測画像を、差分画像コスト計算部３０１に供給する。
【００６４】
差分画像コスト計算部３０１は、予測画像生成部３０２から供給される予測画像と、入力画像記憶部２００から供給される符号化対象の画像との差分画像を計算する。差分画像コスト計算部３０１は、さらに、その差分画像の、歪み量に基づく差分画像コストを算出する。差分画像コスト計算部３０１が算出する差分画像コストは、画素値の差分絶対値和（ＳＡＤ：  Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）であってもよい。差分画像コスト計算部３０１が算出する差分画像コストは、画素値の差分二乗和（ＳＳＤ：  Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）であってもよい。差分画像コスト計算部３０１が算出する差分画像コストは、画素値の差分に所定の変換を施した係数の絶対値和（ＳＡＴＤ：Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｔｒａｎｓｆｏｒｍｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）であってもよい。
【００６５】
予測ベクトル生成部３０６は、動きベクトル記憶部２０２から、符号化済みのＭＢの動きベクトルを読み出す。予測ベクトル生成部３０６は、読み出された、符号化済みのＭＢの動きベクトルを用いて、符号化対象ＭＢの予測ベクトルを生成する。予測ベクトルの算出手順は符号化規格で定められている。
【００６６】
図４は、Ｈ．２６４における予測ベクトルの算出に使用される動きベクトルを模式的に表す図である。例えばＨ．２６４の場合は図４に示すように、符号化対象ブロックに隣接する左（ブロックＡ）、上（ブロックＢ）、右上（ブロックＣ）の動きベクトルが、予測ベクトルの算出に用いられる。予測ベクトル生成部３０６は、この３本の動きベクトルのＭｅｄｉａｎ（中央値）を予測ベクトルとする。
【００６７】
図５は、Ｈ．２６５における予測ベクトルの算出に使用される動きベクトルを模式的に表す図である。Ｈ．２６５の場合、予測ベクトル生成部３０６は、符号化対象ブロックの空間的近傍の5種類の位置の動きベクトル、および時間的近傍フレームの同位置ブロックの周辺の2種類の位置の動きベクトルを、所定の規則に基づきリスト化する。時間的近傍フレームは、例えば、符号化対象フレームより時間的に一つ前のフレームである。符号化対象ブロックの空間的近傍の５種類の位置は、図５におけるＡ０〜Ｂ２の位置である。時間的近傍フレームの同位置ブロックの周辺のＣ０、Ｃ１の２種類の位置は、図５におけるＣ０、Ｃ１の2種類の位置である。予測ベクトル生成部３０６は、リスト中のベクトルのいずれか一つを、予測ベクトルとして選択する。Ｈ．２６５の詳細は、例えば、下記の文献４に記載されている。
【００６８】
（文献４）  ＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６５ 「Ａｄｖａｎｃｅｄ   ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ」、２０１３年４月．
ベクトルコスト計算部３０４は、制御部３００から供給される候補ベクトルと、予測ベクトル生成部３０６から供給される予測ベクトルとをもとに、その候補ベクトルのベクトルコストを算出する。候補ベクトルのベクトルコストは、その候補ベクトルを符号化するために発生する符号量である。
【００６９】
コスト算出部３０３は、差分画像コストと、ベクトルコストと、制御部３００から供給されるコスト係数（式１におけるλ）に基づき、式１によって表されるレート歪みコストを算出する（ここまでがステップＳ３０５）。差分画像コストは、差分画像コスト計算部３０１から供給される。ベクトルコストは、ベクトルコスト計算部３０４から供給される。制御部３００は、コスト算出部３０３にコスト係数を供給する。
【００７０】
次に、コスト比較・ベクトル選択部３０５は、コスト算出部３０３から供給されるレート歪みコストと、既に評価済みの候補ベクトルのレート歪みコストの最小値を比較する。コスト比較・ベクトル選択部３０５は、現候補ベクトルのコストの方が小さい場合、現候補ベクトルを暫定的な最適ベクトルとして選択し、加えて、レート歪みコストの最小値を更新する。コスト比較・ベクトル選択部３０５は、暫定的な最適ベクトルを制御部３００に供給する（ステップＳ３０６）。
【００７１】
制御部３００は、暫定的な最適ベクトルなどを用いて、次に評価する候補ベクトルを決定する。すべての候補ベクトルの評価が完了すると、制御部３００は、現ブロックの動きベクトル探索を完了する。制御部３００は、動きベクトル探索を完了した時点における暫定的な最適ベクトルを、最終的な動きベクトルとして確定する。制御部３００は、確定した最終的な動きベクトルを、動きベクトル記憶部２０２に格納する（ステップＳ３０７）。
【００７２】
以上の動きベクトル探索処理が、画像内の各ＭＢに対して順次ラスタースキャン順に実行されると、１フレームの動きベクトル探索処理が完了する。
【００７３】
＜第１の実施形態＞
次に、本発明の第１の実施の形態について、図面を参照して詳細に説明する。
【００７４】
図１４は、本実施形態の動画像符号化装置１の構成の例を表すブロック図である。
【００７５】
図１４と図１とを比較すると、本実施形態の動画像符号化装置１は、動きベクトル探索部１００の代わりに動きベクトル探索装置１０を含む。動画像符号化装置１の他の構成要素は、同じ符号が付与された、動画像符号化装置１Ｃの構成要素と同じである。動画像符号化装置１は、動画像符号化装置１Ｃと同様に、動画像が入力されると、例えばＨ．２６４のビットストリームを出力する。
【００７６】
以下、本発明の各実施形態において、動きベクトル探索装置１０が、Ｈ．２６４で動画像の符号化を行う動画像符号化装置１において動きベクトルの探索を行う場合について説明する。しかし、本実施形態の動きベクトル探索装置１０及び他の実施形態に係る動きベクトル探索装置を適用することができる動画像符号化装置は、Ｈ．２６４やＨ．２６５で動画像の符号化を行う動画像符号化装置に限定されない。本実施形態の動きベクトル探索装置１０及び他の実施形態に係る動きベクトル探索装置は、国際標準である、あるいは国際標準ではない、他の符号化方式で動画像の符号化を行う動画像符号化装置にも適用可能である。
【００７７】
図６は、本実施形態の動きベクトル探索装置１０の構成の例を表すブロック図である。
【００７８】
図６を参照すると、動きベクトル探索装置１０は、次に示す部を構成要素として含む。
【００７９】
入力画像記憶部２００、
参照画像記憶部２０１、
動きベクトル記憶部２０３、
制御部３００、
予測画像生成部３０２、
予測ベクトル生成部３０６、
切り替え部３０７、
コスト計算部３０８。
【００８０】
コスト計算部３０８は、差分画像コスト計算部３０１と、コスト算出部３０３と、ベクトルコスト計算部３０４とを含む。
【００８１】
図６と図２に示す動きベクトル探索部１００の構成とを比較すると、本実施形態の動きベクトル探索装置１０は、動きベクトル記憶部２０２の代わりに、動きベクトル記憶部２０３を含む。さらに、動きベクトル探索装置１０は、動きベクトル探索部１００の構成に含まれない、切り替え部３０７と、コスト計算部３０８とを含む。そして、差分画像コスト計算部３０１と、コスト算出部３０３と、ベクトルコスト計算部３０４は、コスト計算部３０８に含まれる。本実施形態の動きベクトル探索装置１０の他の構成要素は、以下の相違を除き、同じ番号が付与された、図２に示す動きベクトル探索部１００の構成要素と同等の動作を行う。
【００８２】
動きベクトル記憶部２０３は、動きベクトルを記憶する。動きベクトル記憶部２０３は、第１の記憶領域と第２の記憶領域に分割されている。第１の記憶領域は、動きベクトル記憶部２０３Ａ又は動きベクトル記憶部２０３Ｂとしてアクセスされる。同様に、第２の記憶領域は、動きベクトル記憶部２０３Ｂ又は動きベクトル記憶部２０３Ａとしてアクセスされる。以下の説明において、動きベクトル記憶部２０３Ａを記憶部Ａとも表記する。同様に、動きベクトル記憶部２０３Ｂを記憶部Ｂとも表記する。
【００８３】
切り替え部３０７は、例えば制御部３００から受信する指示に基づき、動きベクトル記憶部２０３Ａとしてアクセスされる記憶領域を、第１の記憶領域と第２の記憶領域の間で切り替える。同様に、切り替え部３０７は、例えば制御部３００から受信する指示に基づき、動きベクトル記憶部２０３Ｂとしてアクセスされる記憶領域を、第２の記憶領域と第１の記憶領域の間で切り替える。切り替え部３０７は、第１の記憶領域が動きベクトル記憶部２０３Ａとしてアクセスされる場合、第２の記憶領域が動きベクトル記憶部２０３Ｂとしてアクセスされるように切り替えを行う。また、切り替え部３０７は、第１の記憶領域が動きベクトル記憶部２０３Ｂとしてアクセスされる場合、第２の記憶領域が動きベクトル記憶部２０３Ａとしてアクセスされるように切り替えを行う。
【００８４】
本実施形態では、制御部３００から供給される動きベクトルは、動きベクトル記憶部２０３Ａに格納される。すなわち、制御部３００は、導出された動きベクトルを、動きベクトル記憶部２０３Ａに格納する。一方、動きベクトル記憶部２０３Ｂから、予測ベクトル生成部３０６に対して、動きベクトルが供給される。すなわち、予測ベクトル生成部３０６は、動きベクトル記憶部２０３Ｂから動きベクトルを読み出す。
【００８５】
次に、本実施形態の動きベクトル探索装置１０の動作について、図面を参照して詳細に説明する。
【００８６】
図７は、本実施形態の動きベクトル探索装置１０の動作の例を表すフローチャートである。
【００８７】
図７に示す各ステップの動作は、ステップＳ７００、ステップＳ７０５、ステップＳ７０７及びステップＳ７０８の動作を除き、図３に示す同じ符号が付与されたステップの動作と同じである。
【００８８】
後述されるように、本実施形態の動きベクトル探索装置１０は、フレーム全体に対する動きベクトル探索を、１フレーム当たり２回以上行う。すなわち、動きベクトル探索装置１０は、符号化対象画像全体に対する動きベクトル探索を、１つの符号化対象画像当たり２回以上行う。以下の説明において、１回の、フレーム全体に対する動きベクトル探索を、探索ステップと表記する。動きベクトル探索装置１０は、符号化対象画像に対する１回目の探索ステップにおいて、その符号化対象画像の符号化済みＭＢの動きベクトルではなく、動きベクトルのあらかじめ決められた初期値を使用して、最適な動きベクトルの導出を行う。動きベクトル探索装置１０は、符号化対象画像に対する２回目以降の探索ステップにおいては、その符号化対象画像に対する前回の探索ステップにおいて導出された動きベクトルを使用して、最適な動きベクトルの導出を行う。
【００８９】
図８は、複数回の探索ステップで更新される動きベクトルの例を模式的に表す図である。図８の上段に示すベクトルは、動きベクトルの初期値を表す。図８の中段に示すベクトルは、１回目の探索ステップ（探索ステップ１）によって導出された動きベクトルを表す。１回目の探索ステップでは、算出される予測ベクトルは例えばゼロベクトルである。図８の下段に示すベクトルは、２回目の探索ステップ（探索ステップ２）によって導出された動きベクトルを表す。２回目の探索ステップでは、１回目の探索ステップで導出された動きベクトルを使用して、予測ベクトルが算出される。下段のベクトルのうち、太い矢印によって表されるベクトルは、前回の探索ステップにおいて導出された動きベクトルから変化した動きベクトルを表す。すなわち、太い矢印によって表されるベクトルは、同じブロックに対して前回の探索ステップにおいて導出された動きベクトルと異なる動きベクトルを表す。
【００９０】
図７に示すステップＳ７００において、制御部３００は、符号化対象フレームに対して動きベクトルの探索を行うための初期化処理を行う。
【００９１】
本実施形態の動きベクトル探索装置１０では、ＲＤ最適化における予測ベクトルの算出の際、同じ探索ステップで導出された、動きベクトル導出の対象であるブロック（すなわち対象ブロック）の近傍のブロックの動きベクトルは使用されない。動きベクトル探索装置１０は、一つ前の探索ステップにおいて導出された、対象ブロックの近傍のブロックの動きベクトルを使用して、ＲＤ最適化における予測ベクトルを算出する。そのため、制御部３００は、ステップＳ７００の初期化処理では、１回目の探索ステップにおいて使用される、全てのブロックに対する初期動きベクトルを動きベクトル記憶部２０３に格納する。
【００９２】
上述のように、本実施形態では、制御部３００は、導出された動きベクトルを、動きベクトル記憶部２０３Ａに格納する。予測ベクトル生成部３０６は、動きベクトル記憶部２０３Ｂから動きベクトルを読み出す。
【００９３】
制御部３００は、１回目の探索ステップでは、ステップＳ７００において、動きベクトル記憶部２０３の第１の記憶領域又は第２の記憶領域の何れかに初期動きベクトルを格納する。例えば、制御部３００は、例えば第２の記憶領域に初期動きベクトルを格納する場合、まず、第２の記憶領域が、動きベクトル記憶部２０３Ａとして、すなわち記憶部Ａとしてアクセスされるように切り替える指示を、切り替え部３０７に送信すればよい。そして、制御部３００は、初期動きベクトルを記憶部Ａに書き込めばよい。さらに、制御部３００は、初期動きベクトルが格納された記憶領域が、動きベクトル記憶部２０３Ｂとして、すなわち記憶部Ｂとしてアクセスされるように切り替える指示を、切り替え部３０７に送信すればよい。
【００９４】
初期動きベクトルは、全て、動きが無いことを表すゼロベクトルであってもよい。その場合、制御部３００は、全てのＭＢに対して、ゼロベクトルであるベクトル（０，０）を記憶部Ａに格納する。本発明の各実施形態では、初期動きベクトルを含む動きベクトルは、２次元のベクトルである。２次元のゼロベクトルは、ベクトル（０，０）で表される。あるいは、初期動きベクトルは、符号化済みのフレームに対して導出された動きベクトルであってもよい。その場合、制御部３００は、各ＭＢに対して、符号化済みのフレームの同位置のＭＢにおいて導出された動きベクトルを、記憶部Ａに格納する。制御部３００は、他の初期動きベクトルを記憶部Ａに格納してもよい。すなわち制御部３００は、他のベクトルによって、記憶部Ａを初期化してもよい。
【００９５】
ステップＳ７００の後、制御部３００は、初期化処理時に記憶部Ａに割り当てられていた記憶領域を、記憶部Ｂに割り当て、初期化処理時に記憶部Ｂに割り当てられていた記憶領域を、記憶部Ａに割り当てる指示を、切り替え部３０７に送信する。切り替え部３０７は、その指示を受信すると、記憶部Ａに割り当てる記憶領域と、記憶部Ｂに割り当てる記憶領域を入れ替える。その結果、初期動きベクトルを記憶部Ｂから読み出すことができるようになる。
【００９６】
ステップＳ３０１からステップＳ３０４までの動作は、図３に示す、動きベクトル探索部１００の、同じ符号が付与されたステップの動作と同じである。
【００９７】
ステップＳ７０５におけるコスト算出の処理手順は、図３に示すステップＳ３０５におけるコスト算出の処理手順と同じである。しかし、ステップＳ７０５において予測ベクトル生成部３０６に供給される動きベクトルが、ステップＳ３０５において予測ベクトル生成部３０６に供給される動きベクトルと異なる。ステップＳ３０５において予測ベクトル生成部３０６に供給される動きベクトルは、動きベクトル記憶部２０２に格納されている、同じ探索ステップで導出された、近傍ブロックの動きベクトルである。一方、ステップＳ７０５において予測ベクトル生成部３０６に供給される動きベクトルは、記憶部Ｂに格納されている動きベクトルである。記憶部Ｂに格納されている動きベクトルは、１回目の探索ステップでは、初期動きベクトルである。記憶部Ｂに格納されている動きベクトルは、２回目以降の探索ステップでは、前回の探索ステップで導出された、近傍ブロックの動きベクトルである。前述のように、予測ベクトル生成部３０６に供給される動きベクトルは、ＲＤ最適化において予測ベクトルを導出するために使用される。
【００９８】
ステップＳ３０６の動作は、図３に示すステップＳ３０６の動作と同じである。ステップＳ７０７において、制御部３００は、導出された動きベクトルを、動きベクトル記憶部２０３の記憶部Ａに格納する。
【００９９】
ステップＳ３０１において、全ＭＢに対する処理が完了したと判定された場合（ステップＳ３０１においてＹｅｓ）、制御部３００は、探索を終了するか否かを判定する（ステップＳ７０８）。制御部３００は、十分な精度の動きベクトルを得られたか否かを所定の基準により判定した結果に基づいて、探索を終了するか否かを判定すればよい。すなわち、制御部３００は、十分な精度の動きベクトルを得られたと判定した場合、探索を終了すればよい。制御部３００は、例えば以下のように、導出される動きベクトルの、連続する探索ステップ間の差の大きさが、所定の基準を下回った場合に、十分な精度の動きベクトルを得られたと判定すればよい。
【０１００】
例えば、導出された動きベクトルが、前回の探索ステップで同じＭＢにおいて導出された動きベクトルに対して変化したＭＢの割合が所定の閾値を下回った場合に、制御部３００は、探索を終了すると判定すればよい。あるいは、例えば、導出された動きベクトルの、前回の探索ステップで同じＭＢにおいて導出された動きベクトルに対する変化量の大きさの平均値が、所定の閾値を下回った場合に、制御部３００は、探索を終了すると判定してもよい。あるいは、制御部３００は、例えば、導出された動きベクトルの、前回の探索ステップで同じＭＢにおいて導出された動きベクトルに対する変化量の平均値の大きさを算出してもよい。制御部３００は、算出された平均値の大きさの、前回の探索ステップにおいて導出された変化量の平均値の大きさに対する割合を算出してもよい。そして、制御部３００は、算出された割合が所定の閾値以上である場合に、探索を終了すると判定してもよい。
【０１０１】
以上で説明した判定によって探索が終了すると判定されない場合であっても、制御部３００は、探索ステップの回数によって探索を打ち切ってもよい。例えば、制御部３００は、探索ステップの回数が、あらかじめ定められた上限値に達した場合、探索を終了すると判定してもよい。
【０１０２】
制御部３００は、探索を終了する判定を行う判定方法や、その判定で使用される閾値を、符号化タイプや符号化パラメータによって切り替えてもよい。符号化タイプは、例えば、ＰピクチャかＢピクチャか、あるいは、参照ピクチャか非参照ピクチャかを表す。符号化パラメータは、例えば、ビットレート、量子化ステップサイズなどである。
【０１０３】
ステップＳ７０８において、探索終了条件が満たされず、制御部３００が探索を終了しないと判定した場合（ステップＳ７０８においてＮｏ）、動きベクトル探索装置１０の動作は、ステップＳ７００に戻る。
【０１０４】
２回目以降の探索ステップでは、ステップＳ７００において、制御部３００は、記憶部Ａと記憶部Ｂに割り当てられている記憶領域を入れ替える指示を、切り替え部３０７に送信する。切り替え部３０７は、受信した指示に基づき、記憶部Ａと記憶部Ｂに割り当てられている記憶領域を入れ替える。すなわち、切り替え部３０７は、記憶部Ａとしてアクセスされる記憶領域と、記憶部Ｂとしてアクセスされる記憶領域を入れ替える。このことにより、ある探索ステップにおいて導出された探索結果である動きベクトルが、次の探索ステップにおける予測ベクトルを算出する処理において読み出される。すなわち、ある探索ステップにおいて導出された探索結果である動きベクトルが、次の探索ステップにおける予測ベクトルを算出する処理において、予測ベクトル生成部３０６に供給される。
【０１０５】
ステップＳ７０８において、探索終了条件が満たされ、制御部３００が探索を終了すると判定した場合（ステップＳ７０８においてＹｅｓ）、動きベクトル探索装置１０は、入力画像記憶部２００に符号化対象画像として格納されているフレームに対する動きベクトルの探索を終了する。
【０１０６】
以上で説明した本実施形態には、動きベクトルの精度を低下させることなく、動きベクトル探索における並列処理の並列度を向上させることができるという効果がある。
【０１０７】
その理由は、予測ベクトル生成部３０６が、ある探索ステップにおいて、同じ探索ステップにおいて導出された近傍ブロックの動きベクトルではなく、１回前の探索ステップで導出された近傍ブロックの動きベクトルを使用するからである。ある探索ステップにおいて、同じ探索ステップの近傍ブロックの動きベクトルが参照されることが無いため、フレーム内の全ブロックに対して独立に、動きベクトル探索の処理を行うことが可能である。すなわち、フレーム内の全ブロックに対する動きベクトル探索の処理を、並列に処理することができる。よって、フレーム内の全ブロックに対する動きベクトル探索の処理において、高い並列度を実現できる。例えばフルハイビジョン解像度（１９２０画素×１０８０画素）の画像を１６画素×１６画素のＭＢ単位で処理する場合、非特許文献１で開示された技術に基づく動きベクトル探索では、フレーム内での並列度は最大でも６０程度である。しかし、本実施形態では、全ＭＢに対する処理を並列に行うことが可能である。従って、本実施形態では、並列度は最大で８１６０である。これにより、５０コア以上を持つメニーコアアクセラレータや、数千以上のコアを持つメニーコアＧＰＵを使用して、動きベクトルを探索する処理を行う場合に、多数のコアによって、並列度の高い並列に処理を行うことができる。本実施形態では、１フレームに対して複数回の探索ステップが行われることにより、処理量は増加する。しかし、多数のコアによって並列に処理を行うことによって並列処理の効率が向上するので、処理時間は短縮される。
【０１０８】
また、本実施形態では、同じ探索ステップにおいて導出された近傍ブロックの動きベクトルを参照することが禁止される代わりに、１つ前の探索ステップにおいて導出された動きベクトルが参照される。そのため、ＲＤ最適化の効果が大きく低下することはないので、十分に高い精度の動きベクトルが得られる。従って、圧縮率の低下や画質の劣化を抑制することができる。さらに、本実施形態では、一つのフレームに対して探索ステップを反復することにより、導出される動きベクトルの精度の低下が軽減される。
【０１０９】
＜第２の実施形態＞
次に、本発明の第２の実施の形態について、図面を参照して詳細に説明する。
【０１１０】
図１４は、本実施形態の動画像符号化装置１の構成の例を表すブロック図である。本実施形態の動画像符号化装置１の構成は、第１の実施形態の動画像符号化装置１の構成と同じである。
【０１１１】
図６は、本実施形態の動きベクトル探索装置１０の構成の例を表すブロック図である。本実施形態の動きベクトル探索装置１０の構成は、第１の実施形態の動きベクトル探索装置１０の構成と同じである。
【０１１２】
次に、本実施形態の動きベクトル探索装置１０の動作について、図面を参照して詳細に説明する。
【０１１３】
図７は、本実施形態の動きベクトル探索装置１０の動作の例を表すフローチャートである。本実施形態の動きベクトル探索装置１０の動作は、以下で説明する相違を除き、第１の実施形態の動きベクトル探索装置１０の動作と同じである。
【０１１４】
図７に示すステップＳ３０４において、本実施形態の制御部３００は、同じフレームに対して実行した探索ステップの回数に応じて、候補ベクトルを生成する探索範囲の大きさを、所定の方法に従って順次狭める。すなわち、制御部３００は、同じフレームに対する探索ステップの回数の増加に応じて狭くなる探索範囲を設定する。そして、制御部３００は、設定された探索範囲に基づき、候補ベクトルを生成する。
【０１１５】
図１５は、各探索ステップにおける探索範囲を模式的に表す図である。
【０１１６】
制御部３００は、最初の探索ステップにおいて、同じフレームに対して行われる探索ステップ中で最も広い探索範囲を設定すればよい。図１５に示す例では、最初の探索ステップにおける探索範囲は、例えば、図１５の上段に示すように、対象ＭＢの位置に対して初期ベクトルが示す位置の、右１２８画素から左１２８画素まで、かつ、上１２８画素から下１２８画素までの範囲である。前述のように、初期ベクトルは、例えばゼロベクトルである。その場合、最初の探索ステップにおける探索範囲は、例えば、図１５の上段に示すように、対象ＭＢの位置の、右１２８画素から左１２８画素まで、かつ、上１２８画素から下１２８画素までの範囲である。画像の座標系が、例えば、右方向が＋方向であるｘ軸と、下方向が＋方向でありｘ軸と直交するｙ軸とによって表されているとする。そして、例えばｘ座標が対象ＭＢのｘ座標よりｐ画素分小さい点からなる直線、ｘ座標が対象ＭＢのｘ座標よりｑ画素分大きい点からなる直線、及びそれらの直線に挟まれる領域を、対象ＭＢの位置に対してｘ座標方向に−ｐ画素から＋ｑ画素までの範囲と表記する。その場合、最初の探索ステップにおける探索範囲は、対象ＭＢの位置に対して、縦方向（すなわちｙ軸方向）、横方向（すなわちｘ軸方向）とも、−１２８画素から＋１２８画素までの範囲である。なお、画像座標系は上述の例に限らない。
【０１１７】
制御部３００は、２回目の探索ステップにおいて、最初の探索ステップにおいて設定された探索範囲より狭い探索範囲を設定すればよい。２回目の探索ステップにおける探索範囲は、例えば図１５の中段に示す例では、対象ＭＢの位置に対して１回目の探索ステップにおいて導出された動きベクトルが示す位置の、右１６画素から左１６画素まで、かつ、上１６画素から下１６画素までの範囲である。画像座標系が上述の座標系である場合、２回目の探索ステップにおける探索範囲は、対象ＭＢの位置に対して１回目の探索ステップにおいて導出された動きベクトルが示す位置に対して、縦方向、横方向とも、−１６画素から＋１６画素までの範囲である。
【０１１８】
制御部３００は、３回目の探索ステップにおいて、２回目の探索ステップにおいて設定された探索範囲より狭い探索範囲を設定すればよい。３回目の探索ステップにおける探索範囲は、例えば図１５の下段に示す例では、対象ＭＢの位置に対して２回目の探索ステップにおいて導出された動きベクトルが示す位置の、右４画素から左４画素まで、かつ、上４画素から下４が素までの範囲である。画像座標系が上述の座標系である場合、３回目の探索ステップにおける探索範囲は、対象ＭＢの位置に対して２回目の探索ステップにおいて導出された動きベクトルが示す位置に対して、縦方向、横方向とも、−４画素から＋４画素までの範囲である。探索範囲の大きさは、以上の例に限られない。
【０１１９】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。
【０１２０】
その理由は、第１の実施形態の効果の理由と同じである。
【０１２１】
本実施形態には、さらに、動きベクトル処理全体の演算量の総和を削減できるという効果がある。
【０１２２】
その理由は、制御部３００が、同じフレームに対して行われた探索ステップの回数に応じて、順次狭くなる探索範囲を設定するからである。探索ステップの回数に応じて狭くなる探索範囲で探索が行われることにより、動きベクトル処理全体の演算量の総和を削減できる。したがって、さらに高速な処理が可能になる。
【０１２３】
＜第３の実施形態＞
次に、本発明の第３の実施の形態について、図面を参照して説明する。
【０１２４】
図１６は、本実施形態の動画像符号化装置１Ａの構成を表す図である。図１６と図１４とを比較すると、本実施形態の動画像符号化装置１Ａと第１の実施形態の動画像符号化装置１の相違は、本実施形態の動画像符号化装置１Ａは動きベクトル探索装置１０ではなく動きベクトル探索装置１０Ａを含むことである。
【０１２５】
図９は、本実施形態の動きベクトル探索装置１０Ａの構成の例を表すブロック図である。
【０１２６】
図９と図６に示す第１の実施形態の動きベクトル探索装置１０の構成とを比較すると、動きベクトル探索装置１０Ａは、ベクトルコスト計算部３０４の代わりに、ベクトルコスト計算部９０４を含む。さらに、動きベクトル探索装置１０Ａは、コスト計算部３０８の代わりに、コスト計算部９０８を含む。コスト計算部９０８は、差分画像コスト計算部３０１と、コスト算出部３０３と、ベクトルコスト計算部９０４とを含む。また、動きベクトル探索装置１０Ａは、予測ベクトル生成部３０６を含まない。動きベクトル探索装置１０Ａの他の構成要素は、同じ番号が付与された、動きベクトル探索装置１０の構成要素と同じである。
【０１２７】
ベクトルコスト計算部９０４は、関連ブロックの、前回の探索ステップにおいて導出された動きベクトルを、動きベクトル記憶部２０３Ｂから読み出す。そして、ベクトルコスト計算部９０４は、読み出された、関連ブロックの、前回の探索ステップにおいて導出された動きベクトルを使用して、ベクトルコストを計算する。
【０１２８】
次に、本実施形態の動きベクトル探索装置１０Ａの動作について、図面を参照して詳細に説明する。
【０１２９】
図７は、本実施形態の動きベクトル探索装置１０Ａの動作の例を表すフローチャートである。本実施形態の動きベクトル探索装置１０Ａの動作は、ステップＳ７０５におけるベクトルコストの計算方法を除き、第１の実施形態の動きベクトル探索装置１０と同じである。
【０１３０】
一般に、時間的または空間的に近いブロックにおける動きベクトルは、似ていることが多い。そのため、符号化対象ブロックにおける動きベクトルの導出に、その符号化対象ブロックと同一フレームの、その符号化対象ブロックの周囲に位置するブロックにおける動きベクトルが使用される。しかし、符号化対象ブロックの動きベクトルの導出に、同じフレームの隣接する他のブロックの動きベクトルを利用するためには、導出を行う際、導出に利用される動きベクトルが既に導出されている必要がある。そのため、例えば同一フレームに含まれる各ブロックからラスタースキャン順に順次符号化対象ブロックが選択され、選択された符号化対象ブロックにおける動きベクトルが導出される。そして、符号化対象ブロックにおいて動きベクトルが導出される際、ラスタースキャン順で符号化対象ブロックより前に位置するブロックの動きベクトルが使用される。
【０１３１】
図２に示す動きベクトル探索部１００も同様に、フレーム内の各ブロックにおける動きベクトルの導出を、ラスタースキャン順に、各フレームの各ブロックに対して１回だけ行う。具体的には、まず予測ベクトル生成部３０６が、符号化規格において定められている手順に基づき、符号化対象ブロックより左側と上側に位置する、同一フレームのブロックにおいて導出された動きベクトルを使用して、予測ベクトルを算出する。そして、ベクトルコスト計算部３０４ではその予測ベクトルと候補ベクトルとの関係をもとにベクトルコストを計算する。そして、コスト比較・ベクトル選択部３０５が、計算されたベクトルコストに基づき、候補ベクトルから動きベクトルを選択する。前述のように、図４や図５は、符号化対象ブロックにおける予測ベクトルの算出に動きベクトルが使用されるブロックを表す。
【０１３２】
一方、符号化対象ブロックよりラスタースキャン順で後ろにあり、その符号化対象ブロックの右側や下側に位置する、同一フレームのブロックの動きベクトルは、その符号化対象ブロックにおける動きベクトル導出の際、導出されていない。従って、予測ベクトル生成部３０６は、符号化対象ブロックにおける動きベクトル導出の際、これらの動きベクトルを使用することはできない。
【０１３３】
しかし、これらの、符号化対象ブロックの下側及び右側のブロックには、その符号化対象ブロックが影響を与えるブロックが存在する。すなわち、符号化対象ブロックの下側及び右側のブロックには、その符号化対象ブロックにおける動きベクトルを使用して予測ベクトルが算出されるブロックが存在する。以下の説明において、符号化対象ブロックにおける動きベクトルを使用して予測ベクトルが算出されるブロック及び符号化対象ブロックの予測ベクトルの算出に動きベクトルが使用されるブロックを、関連ブロックと表記する。また、符号化対象ブロックの予測ベクトルの算出に動きベクトルが使用されるブロックを、第１の関連ブロックと表記する。符号化対象ブロックにおける動きベクトルを使用して予測ベクトルが算出されるブロックを、第２の関連ブロックと表記する。
【０１３４】
図１０は、動きベクトルの導出において符号化対象ブロックと関連があるブロックの例を表す図である。Ｈ．２６４では、図１０におけるブロックＡ、ブロックＢ、及びブロックＣにおける動きベクトルが、符号化対象ブロックの予測ベクトルの算出に使用される。また、符号化対象ブロックの動きベクトルが、図１０において右、左下、及び下で符号化対象ブロックに隣接するブロックの予測ベクトルの算出に使用される。
【０１３５】
上述のＲＤ最適化の際、右側及び下側のブロックの動きベクトルとの関係性も考慮して、左側と上側のブロックに加えて、これらの右側及び下側のブロックにおける動きベクトルも使用した方が効果的であると考えられる。しかし、上述のように、動きベクトル探索部１００は、各フレームの各ブロックに対して、動きベクトルの探索を１回だけ行う。従って、動きベクトル探索部１００は、動きベクトルを導出する順番が符号化対象ブロックより後であるブロックの、同一フレームにおける動きベクトルを使用することはできない。
【０１３６】
本実施形態では、動きベクトル記憶部２０３Ｂに格納されている、上述の関連ブロックの前回の探索ステップにおける動きベクトルが、ベクトルコスト計算部９０４に供給される。すなわち、ベクトルコスト計算部９０４は、関連ブロックの、前回の探索ステップにおいて導出された動きベクトルを、動きベクトル記憶部２０３Ｂから読み出す。そして、ベクトルコスト計算部９０４は、読み出された、関連ブロックの、前回の探索ステップにおいて導出された動きベクトルを使用して、ベクトルコストを計算する。
【０１３７】
Ｈ．２６４の場合、図１０における、左、上、及び右上で符号化対象ブロックに隣接するブロックに加えて、右、左下、及び下で符号化対象ブロックに隣接するブロックが、前述の関連ブロックである。Ｈ．２６４の場合、符号化対象ブロックの動きベクトルは、右、左下、及び下で符号化対象ブロックに隣接するブロックの予測ベクトルに影響を及ぼす。左、上、及び右上で符号化対象ブロックに隣接するブロックの動きベクトルが、符号化対象ブロックの予測ベクトルに影響を及ぼす。左、上、及び右上で符号化対象ブロックに隣接するブロックは、それぞれ、ブロックＡ、ブロックＢ、及びブロックＣである。Ｈ．２６４の場合、ベクトルコスト計算部９０４は、左、上、右上、右、左下、及び下で符号化対象ブロックに隣接するブロックの、前回の探索ステップにおける動きベクトルを、動きベクトル記憶部２０３Ｂから読み出す。そして、ベクトルコスト計算部９０４は、左、上、右上、右、左下、及び下で符号化対象ブロックに隣接するブロックの、前回の探索ステップにおける動きベクトルを使用して、ベクトルコストを計算する。
【０１３８】
ベクトルコスト計算部９０４は、例えば、式１におけるＲを、式２に基づき算出することによって、ベクトルコストを算出することができる。
【０１３９】
R = 3/6 * Rc + 1/6 * Rr + 1/6 * Rll + 1/6 * Rl              （式２）
ここで、Rc、Rr、Rll、Rl はそれぞれ符号化対象、右、左下、下のブロックの動きベクトルの符号化で発生する符号量である。また、「*」は掛け算を表す演算子である。ベクトルコスト計算部９０４は、他の方法によって、ベクトルコストを算出してもよい。
【０１４０】
また、符号化対象ブロックが符号化方式に応じて定められた条件を満たした場合に、その符号化対象ブロックに対して、近傍ブロックの予測ベクトルの情報を再利用することなどにより大幅に符号量を削減する符号化モードが設定される場合がある。そのような符号化モードを、以下の説明では、省略符号化モードと表記する。そのような省略符号化モードは、例えば、Ｈ．２６４におけるスキップ（ＳＫＩＰ）モードや、Ｈ．２６５ではマージ（Ｍｅｒｇｅ）モードと呼ばれる符号化モードである。このような省略符号化モードが設定された符号化対象ブロックに対して、動画像符号化装置１Ａは、動きベクトルの符号化を行わない。そして、符号化された動画像が復号化される際、省略符号化モードが設定されたブロックの動きベクトルは、例えば、他のブロックの動きベクトルに基づき推定される。本実施形態の説明において、省略符号化モードが設定されたブロックの動きベクトルの推定に、動きベクトルが利用されるブロックを、再利用ブロックと表記する。省略符号化モードが設定されたブロックに対する再利用ブロックの場所は、符号化方式に応じて定まる。
【０１４１】
省略符号化モードが使用される場合、例えば、動画像符号化装置１Ａの選択部１０４が、符号化方式に応じた所定の基準に基づき、ブロック毎に、そのブロックに省略符号化モードが設定されるか否かを決定すればよい。選択部１０４は、省略符号化モードが設定されているブロックを特定する情報を、動きベクトル探索装置１０Ａに送信すればよい。そして、制御部３００が、省略符号化モードが設定されているブロックの、前述の再利用ブロックであるブロックを特定すればよい。制御部３００は、特定された再利用ブロックの識別子を、例えば、動きベクトル記憶部２０３Ａに格納すればよい。
【０１４２】
レート歪みコストを算出する際、ベクトルコスト計算部９０４は、上述の省略符号化モードが設定されたいずれかのブロックにおいて利用される動きベクトルが優先的に選ばれるように、導出されるレート歪みコストを調整してもよい。例えば、ベクトルコスト計算部９０４は、上述の省略符号化モードが設定されたいずれかのブロックにおいて利用される動きベクトルと等しい候補ベクトルに対して算出されるレート歪みコストから、所定値を引いてもよい。ベクトルコスト計算部９０４は、例えば、符号化対象ブロックの候補ベクトルのうち、近傍ブロックのＭｅｒｇｅモードベクトルに選択されている動きベクトルについては、Ｍｅｒｇｅモードとすることで削減される分の符号量をRから差し引いてもよい。
【０１４３】
具体的には、ベクトルコスト計算部９０４は、符号化対象ブロックが再利用ブロックであるか否かを判定する。符号化対象ブロックの識別子が、再利用ブロックの識別子として、動きベクトル記憶部２０３Ｂに格納されている場合に、ベクトルコスト計算部９０４は、符号化対象ブロックが再利用ブロックであると判定すればよい。そうでない場合、ベクトルコスト計算部９０４は、符号化対象ブロックが再利用ブロックではないと判定すればよい。符号化対象ブロックが再利用ブロックであると判定された場合、ベクトルコスト計算部９０４は、動きベクトル記憶部２０３Ｂに格納されているその符号化対象ブロックの動きベクトルに等しい候補ベクトルのレート歪みコストを、上述のようにオフセットや符号量によって調整すればよい。
【０１４４】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１４５】
また、本実施形態の制御部３００は、第２の実施形態の制御部３００と同じ動作を行ってもよい。その場合、本実施形態には、さらに、第２の実施形態と同じ効果がある。その理由は、第２の実施形態の効果が生じる理由と同じである。
【０１４６】
本実施形態には、さらに、圧縮効率が改善され、画質が向上するという効果がある。
【０１４７】
その理由は、ベクトルコスト計算部９０４が、第１の関連ブロックの動きベクトルに加えて、第２の関連ブロックの動きベクトルを、ベクトルコストの計算に使用するからである。上述のように、第１の関連ブロックは、符号化対象ブロックの予測ベクトルの算出に動きベクトルが使用されるブロックである。第２の関連ブロックは、予測ベクトルの算出に符号化対象ベクトルの動きベクトルが使用されるブロックである。本実施形態では、第１、第２の実施形態と同様に、１フレーム当たり複数回の探索ステップが実行される。本実施形態のベクトルコスト計算部９０４が使用する動きベクトルは、同一フレームに対する複数の探索ステップのうち、前回の探索ステップにおいて導出された動きベクトルである。従って、同一フレームの隣接するブロックの動きベクトルを使用して動きベクトルの探索を１回だけ行う場合と異なり、本実施形態では、１回前の探索ステップにおいて導出された第２の関連ブロックの動きベクトルを使用することができる。そのため、本実施形態では、例えば、符号化対象ブロックの右側、下側のブロック等の、第２の関連ブロックの動きベクトルとの関係性も考慮したＲＤ最適化が可能である。それにより、導出された動きベクトルが使用して行う動画像符号化において、圧縮効率が改善される。また、周囲のブロックの動きベクトルと不連続な動きベクトルを含む、不自然な動きベクトル場は、ノイズ発生の原因となる。ノイズが発生すると、符号化された動画像の画質は低下する。本実施形態にでは、符号化対象ブロックにおいて、周囲のブロックの動きベクトルと不連続な動きベクトルが導出される可能性が低減される。そのため、不自然な動きベクトル場によるノイズ発生が抑えられるので、符号化された動画像の画質が向上する。
【０１４８】
＜第４の実施形態＞
次に、本発明の第４の実施形態について、図面を参照して詳細に説明する。
【０１４９】
図１７は、本実施形態の動画像符号化装置１Ｂの構成の例を表すブロック図である。図１７と図１６とを比較すると、本実施形態の動画像符号化装置１Ｂと第２の実施形態の動画像符号化装置１Ａの相違は、本実施形態の動画像符号化装置１Ｂは動きベクトル探索装置１０Ａではなく動きベクトル探索装置１０Ｂを含むことである。
【０１５０】
図１１は、本実施形態の動きベクトル探索装置１０Ｂの構成の例を表すブロック図である。図１１と図９に示す第２の実施形態の動きベクトル探索装置１０Ａの構成とを比較すると、動きベクトル探索装置１０Ｂは、さらに、ベクトル変換部１１０８を含む。また、動きベクトル探索装置１０Ｂは、さらに、入力画像変換部１１０９と、変換入力画像記憶部１１１０と、変換参照画像記憶部１１１１と、参照画像変換部１１１２とを含む。動きベクトル探索装置１０Ｂの他の構成要素は、同じ番号が付与された、第２の実施形態の動きベクトル探索装置１０Ａの構成要素と同じである。
【０１５１】
入力画像変換部１１０９は、入力画像記憶部２００に格納されている入力画像を読み出す。そして、入力画像変換部１１０９は、読み出された入力画像に対して、探索ステップの回数に応じた、所定の変換を行う。入力画像変換部１１０９は、変換が行われた入力画像を、変換入力画像記憶部１１１０に格納する。
【０１５２】
変換入力画像記憶部１１１０は、変換が行われた入力画像を記憶する。
【０１５３】
差分画像コスト計算部３０１は、変換が行われた入力画像を、変換入力画像記憶部１１１０から読み出す。差分画像コスト計算部３０１は、予測画像生成部３０２から供給される予測画像と、変換入力画像記憶部１１１０から供給される、変換が行われた入力画像との差分画像を計算する。
【０１５４】
参照画像変換部１１１２は、参照画像記憶部２０１に格納されている参照画像を読み出す。そして、参照画像変換部１１１２は、読み出された参照画像に対して、探索ステップの回数に応じた、所定の変換を行う。参照画像変換部１１１２は、変換が行われた参照画像を、変換参照画像記憶部１１１１に格納する。
【０１５５】
変換参照画像記憶部１１１１は、変換が行われた参照画像を記憶する。
【０１５６】
予測画像生成部３０２は、変換参照画像記憶部１１１１から、変換された参照画像を読み出す。予測画像生成部３０２は、制御部３００から供給される候補ベクトルに基づき、変換参照画像記憶部１１１１に格納されている変換された参照画像を用いて動き補償処理を行うことによって、予測画像を生成する。
【０１５７】
入力画像変換部１１０９及び参照画像変換部１１１２は、同じ探索ステップでは同じ変換を行う。入力画像変換部１１０９及び参照画像変換部１１１２は、前述の所定の変換として、例えば、探索ステップの回数に応じた縮小率で、画像を縮小する変換を行う。画像を縮小する方法は、既存のさまざまな方法のいずれかでよい。
【０１５８】
ベクトル変換部１１０８は、動きベクトル記憶部２０３Ｂに格納されている動きベクトルを、現探索ステップにおける変換入力画像及び変換参照画像の縮小率に応じて変換する。ベクトル変換部１１０８は、まず、動きベクトル記憶部２０３Ｂに格納されている動きベクトルを読み出す。現探索ステップにおける縮小率が、読み出された動きベクトルが導出された、前回の探索ステップにおける縮小率と異なる場合、ベクトル変換部１１０８は、現探索ステップにおける縮小率に合うように、読み出された動きベクトルを変換する。例えば、現探索ステップにおける縮小率が１であり、前回の探索ステップにおける縮小率が１／２である場合、ベクトル変換部１１０８は、読み出された動きベクトルに対して、２倍に拡大する変換を行う。そして、ベクトル変換部１１０８は、変換された動きベクトルを、ベクトルコスト計算部９０４に供給する。
【０１５９】
制御部３００は、予測画像生成部３０２及びベクトルコスト計算部９０４に対して、現探索ステップにおける縮小率に応じた大きさの候補ベクトルを供給する。
【０１６０】
次に、本実施形態の動きベクトル探索装置１０Ｂの動作について、図面を参照して詳細に説明する。
【０１６１】
図１２は、本実施形態の動きベクトル探索装置１０Ｂの動作の例を表すフローチャートである。図１２と図７とを比較すると、本実施形態の動きベクトル探索装置１０Ｂは、ステップＳ７００の次に、ステップＳ１２０９の動作を行う。
【０１６２】
ステップＳ１２０９において、入力画像変換部１１０９は、入力画像記憶部２００から読み出した入力画像に対して、探索ステップの回数に応じた所定の変換を行う。そして、入力画像変換部１１０９は、変換が行われた入力画像を、変換入力画像記憶部１１１０に格納する。また、参照画像変換部１１１２は、参照画像記憶部２０１から読み出した参照画像に対して、探索ステップの回数に応じた所定の変換を行う。そして、参照画像変換部１１１２は、変換が行われた参照画像を、変換参照画像記憶部１１１１に格納する。前述のように、所定の変換は、例えば、画像の縮小である。
【０１６３】
また、ステップＳ３０４において、制御部３００は、現探索ステップにおける変換に応じて、候補ベクトルが生成される探索範囲を設定してもよい。例えば、変換が最初の探索ステップにおける変換が、縮小率１／２の縮小である場合、制御部３００は、探索範囲を、変換を行わない場合に設定される探索範囲を縦横１／２に縮小した範囲に設定すればよい。
【０１６４】
さらに、ステップＳ７０５において、ベクトル変換部１１０８は、動きベクトル記憶部２０３Ｂから動きベクトルを読み出す。動きベクトル記憶部２０３Ｂから読み出された動きベクトルに対して、現探索ステップと前回の探索ステップの変換の違いに基づく動きベクトルの差異を解消する変換を行う。前述のように、例えば、前回の探索ステップにおける変換が縮小率１／２の縮小であり、現探索ステップでは変換が行われない場合、ベクトル変換部１１０８は、読み出された動きベクトルを２倍に拡大する。ベクトル変換部１１０８は、変換後の動きベクトルを、ベクトルコスト計算部９０４に送信する。
【０１６５】
最初の探索ステップにおける変換は、例えば、縮小率１／２での縮小であってもよい。その場合、２回目以降の探索ステップにおける縮小率、例えば、１であってもよい。この場合、２回目以降の探索ステップにおいて変換は行われない。
【０１６６】
入力画像変換部１１０９及び参照画像変換部１１１２による変換は、以上の例に限られない。
【０１６７】
例えば、１回目の探索ステップにおける縮小率は１／４であり、２回目の探索ステップにおける縮小率は１／２であり、３回目以降の探索ステップにおける縮小率は１であってもよい。あるいは、１回目の探索ステップにおける縮小率は１／４であり、２回目の探索ステップにおける縮小率は１／２であり、３回目の探索ステップにおける縮小率は縦方向において１であり、横方向において１／２であり、４回目以降の探索ステップにおける縮小率は１であってもよい。
【０１６８】
図１３は、本実施形態における、変換後の入力画像と、探索の処理で使用される変換後の動きベクトルとを、模式的に表す図である。図１３の上段は、１回目の探索ステップにおける変換後の入力画像と、動きベクトルの初期値とを表す。１回目の探索ステップにおける変換後の入力画像は、２回目以降の探索ステップのおける変換後の入力画像より、小さく縮小されている。また、１回目の探索ステップにおける動きベクトルの初期値は、ゼロベクトルである。図１３の中段は、２回目の探索ステップにおける変換後の入力画像と、１回目の探索ステップにおいて得られた動きベクトルが、２回目の探索ステップにおける変換に合わせて拡大されたベクトルとを表す。図１３の下段は、３回目の探索ステップにおける変換後の入力画像と、２回目の探索ステップにおいて得られた動きベクトルが、３回目の探索ステップにおける変換に合わせて拡大されたベクトルとを表す。
【０１６９】
前述の所定の変換は、画像の縮小ではなく、各画素の画素値を表すビット列のビット数を削減することであってもよい。画素値を表すビット列のビット数を削減する変換は、例えば、画素値を表すビット列から、所定個数の下位ビットを除去する演算によって行われる。例えば、８ビットのビット列によって表される画素値のビット数を１ビット削減する場合、入力画像変換部１１０９及び参照画像変換部１１１２は、画素値を表すビット列から最下位ビットを除去すればよい。そして、入力画像変換部１１０９及び参照画像変換部１１１２は、最下位ビットが除去された７ビットのビット列を、変換後の画素値にすればよい。例えば、１回目の探索ステップにおける変換は、各画素の画素値を表すビット列のビット数を２ビット削減することであり、２回目の探索ステップにおける変換は、各画素の画素値を表すビット列のビット数を１ビット削減することであってもよい。この場合、例えば、３回目以降の探索ステップにおいて、各画素の画素値を表すビット列のビット数を変更しない。変換が、例えば画素値を表すビット列のビット数の変更する変換である場合のように、画像のサイズが変化しない変換である場合、動きベクトル探索装置１０Ｂは、ベクトル変換部１１０８を含まなくてよい。
【０１７０】
さらに、前述の所定の変換は、画像の画素間に、補間により算出される画素値を持つ画素を追加することであってもよい。その場合、画像の画素と画素の間に追加される画素の数は、探索ステップに応じて変更されればよい。
【０１７１】
以上で説明した本実施形態には、第１、第２、及び第３の実施形態のそれぞれと同じ効果がある。その理由は、第１、第２、及び第３の実施形態の効果が生じる理由と同じである。
【０１７２】
本実施形態には、さらに、動きベクトルを探索する処理全体の演算量をさらに削減することができるという効果がある。
【０１７３】
その理由は、入力画像変換部１１０９が、入力画像に対して、探索ステップの回数に応じた変換を行い、加えて、参照画像変換部１１１２が、参照画像に対して、探索ステップの回数に応じた、入力画像変換部１１０９が行う変換と同じ変換を行うからである。本実施形態では、広い探索領域で探索が行われる最初の探索ステップでは、高い縮小比で入力画像を縮小してから、縮小比に応じた広さの探索範囲において探索の処理を行うことができる。このことにより、変換を行うことによる演算量の増加量より多くの演算量を削減することができる。
【０１７４】
また、本実施形態では、最初の探索ステップなど、予測ベクトルの精度が低い探索では高い縮小比で粗い探索を行い、予測ベクトルの精度が高くなる後段の探索ステップでは低い縮小比で精密な探索を行うことができる。そのため、本実施形態の動きベクトル探索装置１０Ｂは、より滑らかな動きベクトル場を生成することができる。このことにより、動きベクトル探索装置１０Ｂが導出した動きベクトルを利用して符号化された動画像の画質が向上する。
【０１７５】
＜第５の実施形態＞
次に、本発明の第５の実施形態について、図面を参照して詳細に説明する。
【０１７６】
図１８は、本実施形態の動きベクトル探索装置１０Ｃの構成を表す図である。
【０１７７】
図１８を参照すると、本実施形態の動きベクトル探索装置１０Ｃは、制御部３００と、動きベクトル記憶部２０３と、コスト計算部３０８と、コスト比較・ベクトル選択部３０５と、を備える。制御部３００は、所定の探索範囲に基づき複数の候補ベクトルを生成する。動きベクトル記憶部２０３は、入力画像が分割された複数のブロックの各々に対して、当該ブロックに関連する、参照画像の領域の位置から、前記ブロックの位置までのベクトルである動きベクトルとして選択された第１の動きベクトルを記憶する。コスト計算部３０８は、近傍ブロックの各々に対する前記第１の動きベクトルと、生成された前記候補ベクトルと、前記入力画像と、前記参照画像とに基づき、前記候補ベクトルの評価を表す評価値を算出する。近傍ブロックは、前記入力画像に含まれる対象ブロックの周囲に位置する複数のブロックである。コスト比較・ベクトル選択部３０５は、前記複数の候補ベクトルから、前記評価値による評価において評価が高い最適な前記候補ベクトルを、前記対象ブロックの第２の動きベクトルとして選択する。
【０１７８】
以上で説明した本実施形態には、第１の実施形態と同じ効果がある。その理由は、第１の実施形態の効果が生じる理由と同じである。
【０１７９】
以上、主に、符号化方式がＨ．２６４あるいはＨ．２６５である場合の、本発明の各実施形態について説明した。しかし、本発明は、Ｈ．２６４あるいはＨ．２６５の符号化方式での応用のみに限定されない。本発明は、ＶＣ−１等の他の符号化方式や、あるいは国際標準の動画像符号化方式等に含まれない符号化方式にも適用可能である。また、差分画像コストやベクトルコストの算出手順、候補ベクトル生成手順、画像変換方法などについて、一部の例のみを説明した。しかし、例示した以外の種々の手順を使用することも容易である。
【０１８０】
以下に示す、本発明の実施形態に係る装置の各々は、それぞれ、コンピュータ及びコンピュータを制御するプログラム、専用のハードウェア、又は、コンピュータ及びコンピュータを制御するプログラムと専用のハードウェアの組合せにより実現することができる。上述の本発明の実施形態に係る装置は、動きベクトル探索装置１０、動きベクトル探索装置１０Ａ、動きベクトル探索装置１０Ｂ、動きベクトル探索装置１０Ｃ、動画像符号化装置１、動画像符号化装置１Ａ、動画像符号化装置１Ｂ及び動画像符号化装置１Ｃである。
【０１８１】
図１９は、本発明の各実施形態の動きベクトル探索装置及び本発明の各実施形態の動画像符号化装置を実現することができる、コンピュータ１０００の構成の一例を表す図である。図１９を参照すると、コンピュータ１０００は、プロセッサ１００１と、メモリ１００２と、記憶装置１００３と、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）インタフェース１００４とを含む。また、コンピュータ１０００は、記録媒体１００５にアクセスすることができる。メモリ１００２と記憶装置１００３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ハードディスクなどの記憶装置である。記録媒体１００５は、例えば、ＲＡＭ、ハードディスクなどの記憶装置、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、可搬記録媒体である。記憶装置１００３が記録媒体１００５であってもよい。プロセッサ１００１は、メモリ１００２と、記憶装置１００３に対して、データやプログラムの読み出しと書き込みを行うことができる。プロセッサ１００１は、Ｉ／Ｏインタフェース１００４を介して、例えば、動画像符号化装置、動きベクトル探索装置、動画像を送信する装置、あるいは、符号化された動画像を受信する装置にアクセスすることができる。プロセッサ１００１は、記録媒体１００５にアクセスすることができる。記録媒体１００５には、コンピュータ１０００を、上述の、本発明の実施形態に係る装置のいずれかとして動作させるプログラムが格納されている。
【０１８２】
プロセッサ１００１は、記録媒体１００５に格納されている上述のプログラムを、メモリ１００２にロードする。そして、プロセッサ１００１が、メモリ１００２にロードされたプログラムを実行することにより、コンピュータ１０００は、そのプログラムに応じた、上述の本発明の実施形態に係る装置のいずれかとして動作する。
【０１８３】
以下に示す第１グループに含まれる部は、例えば、プログラムを記憶する記録媒体１００５からメモリ１００２に読み込まれた、その部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサ１００１により実現することができる。第１グループは、次に示す各部を含む。
動きベクトル探索部１００、
動き補償部１０１、
イントラ予測モード判定部１０２、
イントラ予測部１０３、
選択部１０４、
整数変換部１０５、
量子化部１０６、
逆量子化部１０７、
逆整数変換部１０８、
可変長符号化部１０９、
デブロックフィルタ１１０、
減算部１１２、
加算部１１３、
制御部３００、
差分画像コスト計算部３０１、
予測画像生成部３０２、
コスト算出部３０３、
ベクトルコスト計算部３０４、
ベクトルコスト計算部９０４、
コスト比較・ベクトル選択部３０５、
予測ベクトル生成部３０６、
切り替え部３０７、
ベクトル変換部１１０８、
入力画像変換部１１０９、
参照画像変換部１１１２。
また、以下に示す第２グループに含まれる部は、コンピュータ１０００が含むメモリ１００２やハードディスク装置等の記憶装置１００３により実現することができる。第２のグループは、次に示す各部を含む。
フレームバッファ１１１、
入力画像記憶部２００、
参照画像記憶部２０１、
動きベクトル記憶部２０３、
動きベクトル記憶部２０３Ａ、
動きベクトル記憶部２０３Ｂ、
変換入力画像記憶部１１１０、
変換参照画像記憶部１１１１。
あるいは、上述の第１グループ及び第２グループに含まれる部の一部又は全部を、それらの部の機能を実現する専用の回路によって実現することもできる。
【０１８４】
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１８５】
この出願は、２０１４年１月１５日に出願された日本出願特願２０１４−００４７７７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１８６】
１    動画像符号化装置
１Ａ    動画像符号化装置
１Ｂ    動画像符号化装置
１Ｃ    動画像符号化装置
１０    動きベクトル探索装置
１０Ａ    動きベクトル探索装置
１０Ｂ    動きベクトル探索装置
１０Ｃ    動きベクトル探索装置
１００    動きベクトル探索部
１０１    動き補償部
１０２    イントラ予測モード判定部
１０３    イントラ予測部
１０４    選択部
１０５    整数変換部
１０６    量子化部
１０７    逆量子化部
１０８    逆整数変換部
１０９    可変長符号化部
１１０    デブロックフィルタ
１１１    フレームバッファ
１１２    減算部
１１３    加算部
２００    入力画像記憶部
２０１    参照画像記憶部
２０２    動きベクトル記憶部
２０３    動きベクトル記憶部
２０３Ａ    動きベクトル記憶部
２０３Ｂ    動きベクトル記憶部
３００    制御部
３０１    差分画像コスト計算部
３０２    予測画像生成部
３０３    コスト算出部
３０４    ベクトルコスト計算部
３０５    コスト比較・ベクトル選択部
３０６    予測ベクトル生成部
３０７    切り替え部
３０８    コスト計算部
９０４    ベクトルコスト計算部
９０８    コスト計算部
１０００    コンピュータ
１００１    プロセッサ
１００２    メモリ
１００３    記憶装置
１００４    Ｉ／Ｏインタフェース
１００５    記録媒体
１１０８    ベクトル変換部
１１０９    入力画像変換部
１１１０    変換入力画像記憶部
１１１１    変換参照画像記憶部
１１１２    参照画像変換部
【図１】
0006607040.tif 000002
【図２】
0006607040.tif 000003
【図３】
0006607040.tif 000004
【図４】
0006607040.tif 000005
【図５】
0006607040.tif 000006
【図６】
0006607040.tif 000007
【図７】
0006607040.tif 000008
【図８】
0006607040.tif 000009
【図９】
0006607040.tif 000010
【図１０】
0006607040.tif 000011
【図１１】
0006607040.tif 000012
【図１２】
0006607040.tif 000013
【図１３】
0006607040.tif 000014
【図１４】
0006607040.tif 000015
【図１５】
0006607040.tif 000016
【図１６】
0006607040.tif 000017
【図１７】
0006607040.tif 000018
【図１８】
0006607040.tif 000019
【図１９】
0006607040.tif 000020