(57)【特許請求の範囲】
【請求項１】
入力される画像を符号化する画像符号化装置において、
上記画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する前方向予測、及び未来の上記参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する際、上記基準検索範囲で検索範囲が足りていると判別した場合には上記一方向の予測を実行し、上記基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を上記基準検索範囲から変更して上記逆方向の予測を再度実行し、上記一方向の予測を省略する動きベクトル検出部と、
上記動きベクトルを用いて双方向予測画像を符号化する符号化部と
を具えることを特徴とする画像符号化装置。
【請求項２】
上記動き検出部は、
上記参照画像を共有する２つの双方向予測画像それぞれについて、同時に前方向予測又は後方向予測を実行する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
上記動き検出部は、
一の上記双方向予測画像に対する上記逆方向の予測を上記一方向の予測よりも少ない画像間隔で実行する際、上記基準検索範囲では検索範囲が不足していると判別した場合には、上記一方向の予測よりも多い画像間隔で上記逆方向の予測を実行する次の上記双方向予測画像に対して、上記逆方向の予測を省略する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
上記動き検出部は、
上記双方向予測画像に対する上記逆方向の予測を上記一方向の予測よりも少ない画像間隔で実行する際、上記双方向予測画像と上記参照画像との間の残差と所定の閾値とを比較することにより、上記基準検索範囲では検索範囲が不足しているか否かを判別する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
上記動き検出部は、
上記双方向予測画像に対する上記逆方向の予測を上記一方向の予測よりも少ない画像間隔で実行する際、上記双方向予測画像と上記参照画像とが有するフィールド画像間のフィールド間動きベクトルを検出し、上記基準検索範囲では検索範囲が不足していると判別したものの、上記フィールド間動きベクトルを検出できた場合には、当該フィールド間動きベクトルから上記動きベクトルを推測することにより上記検索範囲を変更する
ことを特徴とする請求項１に記載の画像符号化装置。
【請求項６】
入力される画像を符号化する画像符号化方法において、
上記画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する前方向予測、及び未来の上記参照画像に対して上記双方向予測画像を比較して上記動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する際、上記基準検索範囲で検索範囲が足りていると判別した場合には上記一方向の予測を実行し、上記基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を上記基準検索範囲から変更して上記逆方向の予測を再度実行し、上記一方向の予測を省略する動きベクトル検出ステツプと、
上記動きベクトルを用いて双方向予測画像を符号化する符号化ステツプと
を具えることを特徴とする画像符号化方法。
【発明の詳細な説明】
【０００１】
【目次】
以下の順序で本発明を説明する。
【０００２】
発明の属する技術分野
従来の技術（図１２〜図１４）
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態（図１〜図１１）
発明の効果
【０００３】
【発明の属する技術分野】
本発明は画像符号化装置及びその方法に関し、入力画像の動きベクトルを検出し当該動きベクトルに基づいて入力画像を符号化する画像符号化装置及びその方法に適用して好適なものである。
【０００４】
【従来の技術】
従来、例えばＭＰＥＧ(Moving Picture Experts Group)規格に基づいて動画像を符号化する画像符号化装置においては、例えば１５フレームの動画像データをＧＯＰ(Group Of Pictures) と呼ばれる１つの処理単位として符号化するようになされている。
【０００５】
１つのＧＯＰには、Ｉピクチヤ(Intra-Picture：フレーム内符号化画像）、Ｐピクチヤ(Predictive-Picture:フレーム間順方向予測符号化画像）、Ｂピクチヤ(Bidirectionally Predictive-Picture:双方向予測符号化画像）と呼ばれるフレーム単位の符号化タイプがある。
【０００６】
Ｉピクチヤは、ＧＯＰの独立性を保つためのものであり、その画面全体が符号化されるものである。
【０００７】
Ｐピクチヤは、符号化しようとする現在のフレーム（基準フレーム）内を例えば１６×１６画素のマクロブロツク単位で分割し、当該分割されてなる各マクロブロツクを基準ブロツクする。そして、過去のＩピクチヤ又はＰピクチヤを検索フレームとして当該検索フレーム内の所定のサーチ範囲内を検索し、マクロブロツク単位で基準ブロツクとのブロツクマツチングを行う。この結果、最もマツチングするブロツクの距離を動きベクトルとして検出し、検索フレームとの差分データを符号化する際に当該動きベクトルを用いて動き補償を行うと共に、これを復号装置側に伝送し復号時の動き補償に用いる。因みに、ブロツクマツチングの方法としては、基準ブロツク及び検索ブロツク内のすべての画素同士の引き算を行い、その絶対値和又は二乗和を求め、その演算結果が最小の位置をマツチングしたブロツクとする方法（フルサーチブロツクマツチング法）が用いられている。
【０００８】
また、Ｂピクチヤは、符号化しようとする現在のフレーム（基準フレーム）の各マクロブロツクを基準ブロツクとして、過去及び未来の双方向のＩピクチヤ及びＰピクチヤを検索する。そして当該検索フレーム内の所定のサーチ範囲内においてマクロブロツク単位で基準ブロツクとのブロツクマツチングを行う。この結果、最もマツチングするブロツクの距離を動きベクトルとして検出し、検索フレームとの差分データを符号化する際に当該動きベクトルを用いて動き補償を行うと共に、これを復号装置側に伝送し復号時の動き補償に用いる。
【０００９】
ここで図１２に示すように、双方向予測を行う際には、始めにＰピクチヤ（Ｐ６）を基準フレームとし、当該基準フレーム（Ｐ６）から３フレーム離れたＩピクチヤ（Ｉ３）を検索フレームとして前方向のみの動きベクトル検出を行う。次に、Ｂピクチヤ（Ｂ４）を基準フレームとしてＩピクチヤ（Ｉ３）を検索フレームとした前方向の動きベクトル検出とＰピクチヤ（Ｐ６）を検索フレームとした後方向の動きベクトル検出とからなる双方向予測を行う。そして次に、Ｂピクチヤ（Ｂ５）を基準フレームとしてＩピクチヤ（Ｉ３）を検索フレームとした前方向の動きベクトル検出とＰピクチヤ（Ｐ６）を検索フレームとした後方向の動きベクトル検出とからなる双方向予測を行う。
【００１０】
かかる双方向予測符号化における動きベクトルの検出順序を図１３に示す。図１３において、入力画像Ｂ１、Ｂ２、Ｉ３、Ｂ４、……はそれぞれピクチヤタイプ（Ｉピクチヤ、Ｂピクチヤ、Ｐピクチヤ）をアルフアベツト（Ｉ、Ｂ、Ｐ）で表すと共にエンコードされる順序をフレーム番号で表している。
【００１１】
図１３においては、双方向予測を行うＢピクチヤを２枚使用した場合を示し、図中「○」印が付されたフレームは、現在符号化されるフレームを示している。また図中の矢印の始点は基準フレームを示し、当該矢印の指すフレームは検索フレームを示している。因みに図１３において縦軸は時刻をフレーム単位で表している。
【００１２】
この図１３において、例えば時刻「３」において、現フレーム（Ｂ４）を基準のマクロブロツクとして前方向予測の検索フレーム（Ｉ３）及び後方向予測の検索フレーム（Ｐ６）への双方向予測を行い、２つの動きベクトルを求めている。
【００１３】
【発明が解決しようとする課題】
ところで、動きベクトルの検出を過去及び未来の双方向で行う場合、シーンチエンジ点が途中に存在すると双方向の動き検出のうち一方の検出が困難になる場合があつた。また例えば図１２に示したように、２枚のＢピクチヤを用いて符号化を行う場合には、一方の動きベクトル検出が１フレーム間で行われ、他方の動きベクトル検出が２フレーム間で行われることになる。この場合、画像の動きが大きいと、２フレーム間での動きベクトル検出において検索範囲が不足したり、さらに画像の動きが大きくなると双方向での動きベクトル検出が困難になる問題があつた。
【００１４】
すなわち、図１４に示すように、±Ａ画素の検索範囲ＡＲ１、ＡＲ２を有する動き検出回路が前方向予測及び後方向予測用にそれぞれ２つある場合において、例えばビデオカメラが高速でパン（移動）しており実際の動きが１フレーム間でＢ画素分（Ｂ＞Ａ）あるとすると、例えばＢピクチヤを基準フレームとした１フレーム間の前方向予測においては、図１４（Ａ）に示すようにブロツクマツチングすべきブロツクが検索範囲ＡＲ１の外に外れることになり、正確な動きベクトルの検出が困難になる。この場合、図１４（Ｂ）に示すように、２フレーム間の後方向予測においては当然のごとくブロツクマツチングすべきブロツクは基準位置から２Ｂ画素分移動することにより検索範囲ＡＲ２の外に外れ、正確な動きベクトル検出は困難になる。
【００１５】
かかる問題点を解決するための一つの方法として、図１４（Ｃ）に示すように、探索範囲ＡＲ３を広げる方法か考えられるが、この場合においても画像の動きが大きいと動きベクトルの検出が困難になることを避け得ず、符号化画像の画質劣化を招く問題があつた。
【００１６】
本発明は以上の点を考慮してなされたもので、画像の動きが大きい場合においても画質の大幅な劣化を回避し得る画像符号化装置及びその方法を提案しようとするものである。
【００１７】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して双方向予測画像を比較して動きベクトルを検出する前方向予測、及び未来の参照画像に対して双方向予測画像を比較して動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する際、基準検索範囲で検索範囲が足りていると判別した場合には一方向の予測を実行し、基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を基準検索範囲から変更して逆方向の予測を再度実行し、一方向の予測を省略することにより、画像の動きが大きい場合においても少なくとも片方向の動き検出を確実に行うことができ、この分符号化画像の画質を向上し得る。
【００１８】
【発明の実施の形態】
以下図面について、本発明の一実施の形態を詳述する。
【００１９】
図１において２０は全体として画像符号化装置を示し、入力画像データＤ１０を動きベクトル検出部２１及び演算部２４に受ける。動きベクトル検出部２１は、内部に設けられたフレームメモリに格納された２つのフレーム（ピクチヤ）間の動きベクトル情報Ｄ２１を検出し、これを動き補償部３１に供給する。
【００２０】
動き補償部３１はこのときフレームメモリ３０に格納されている参照画像に対して動きベクトル情報Ｄ２１を用いた動き補償処理を施すことにより予測画像データＤ３１を生成し、これを演算部２４に供給する。
【００２１】
演算部２４は入力画像データＤ１０と予測画像データＤ３１との差分を算出し、この差分データＤ２４をＤＣＴ(Discrete Cosine Transform) 部２５に供給する。ＤＣＴ部２５は差分データＤ２４に対してＤＣＴ（離散コサイン変換）処理を施すことにより、ＤＣＴ係数列Ｄ２５を生成し、これを量子化部２６に供給する。量子化部２６は、ＤＣＴ係数列Ｄ２５を量子化することにより量子化データＤ２６を生成し、これを可変長符号化部３３及び逆量子化部２７にそれぞれ供給する。
【００２２】
逆量子化部２７は、量子化データＤ２６を逆量子化処理することによりＤＣＴ係数列Ｄ２７を復元する。ＤＣＴ係数列Ｄ２７は、さらに逆ＤＣＴ部２８に供給され逆ＤＣＴ処理が施される。かくして逆ＤＣＴ部２８はピクチヤタイプに応じた差分データＤ２８を復元し、これを演算部２９に出力する。
【００２３】
演算部２９は差分データＤ２８に対して動き補償部３１から出力される予測画像データＤ３１を加算演算することにより、参照画像データＤ２９を生成しこれをフレームメモリ３０に格納する。
【００２４】
かくしてＤＣＴ部２５及び量子化部２６を介して量子化された差分データは、逆量子化部２７及び逆ＤＣＴ部２８によつて差分データＤ２８として復元され、演算部２９において予測画像データＤ３１と加算されることにより参照画像データＤ２９となる。これにより続くフレーム（ピクチヤ）に対する参照画像がフレームメモリ３０に用意されることになる。
【００２５】
ここで動きベクトル検出部２１は、図２に示すように、入力画像データＤ１０をフレームメモリ５１に一旦格納し、制御判定部６２から出力される読出し制御信号Ｄ５２に基づいて、符号化しようとする基準フレームの画像データを各マクロブロツク単位で読み出し、これを基準ブロツクデータＤ５３として２つの動き検出部ＭＥ１及びＭＥ２に供給する。
【００２６】
またフレームメモリ５１は制御判定部６２から出力される読出し制御信号Ｄ５２に基づいて検索フレームにおける所定の検索範囲の画像データを順次各マクロブロツク単位で読み出し、これを検索ブロツクデータＤ５４として動き検出部ＭＥ１及びＭＥ２に供給する。
【００２７】
この場合、制御判定部６２は、双方向予測において前方向予測に用いる検索フレームの検索ブロツクデータＤ５４を一方の動き検出部ＭＥ１（又は動き検出部ＭＥ２）に供給すると共に、後方向予測に用いる検索フレームの検索ブロツクデータＤ５４を他方の動き検出部ＭＥ２（又は動き検出部ＭＥ１）に供給する。
【００２８】
各動き検出部ＭＥ１及びＭＥ２は、基準ブロツクデータＤ５３及び検索ブロツクデータＤ５４に基づき、当該基準ブロツクと検索ブロツクとの距離を動きベクトルデータＤ５６、Ｄ６０としてそれぞれ制御判定部６２に供給すると共に、基準ブロツク及び検索ブロツクの画像データの差分を残差データＤ５７及びＤ６１として制御判定部６２に供給する。
【００２９】
制御判定部６２は、動き検出部ＭＥ１から供給される動きベクトルデータＤ５６及び残差データＤ５７に基づき、所定の検索範囲内でのブロツクマツチングを行う。このブロツクマツチングにおいて、制御判定部６２は、基準ブロツクと検索ブロツクのすべての画素同士の引き算を行つた結果の絶対値和又は二乗和が最小となるブロツクを検索し、当該ブロツクマツチングの結果得られた検索ブロツクと基準ブロツクとの動きベクトルを前方向予測（又は後方向予測）における動きベクトルとして動き補償モード等の制御情報と共に動き情報Ｄ６３として動き補償部３１（図１）及び可変長符号化部３３（図１）に供給する。
【００３０】
また、これと同様にして、制御判定部６２は、動き検出部ＭＥ２から供給される動きベクトルデータＤ６０及び残差データＤ６１に基づき、所定の検索範囲内でのブロツクマツチングを行う。このブロツクマツチングにおいて、制御判定部６２は、基準ブロツクと検索ブロツクのすべての画素同士の引き算を行つた結果の絶対値和又は二乗和が最小となるブロツクを検索し、当該ブロツクマツチングの結果得られた検索ブロツクと基準ブロツクとの動きベクトルを後方向予測（又は前方向予測）における動きベクトルとして動き補償モード等の制御情報と共に動き情報Ｄ６３として動き補償部３１（図１）及び可変長符号化部３３（図１）に供給する。
【００３１】
ここで、制御判定部６２は、双方向予測を行う際の検索フレームと、当該検索フレームにおける検索範囲を動きベクトル及び残差等の動き情報に基づいて決定し、これにより決定された検索フレーム及び検索範囲を読出し制御信号Ｄ５２によつて指定し、決定された検索フレーム及び検索範囲のマクロブロツクを読み出すようになされている。
【００３２】
すなわち、この実施の形態の動きベクトル検出部２１における基本的動き予測方法を図３に示す。この図３において、入力画像Ｂ１、Ｂ２、Ｉ３、Ｂ４、……はそれぞれピクチヤタイプ（Ｉピクチヤ、Ｂピクチヤ、Ｐピクチヤ）をアルフアベツト（Ｉ、Ｂ、Ｐ）で表すと共にエンコードされる順序をフレーム番号で表している。この実施の形態の場合、双方向予測を行うＢピクチヤを２枚使用するようにされており、図中「○」印が付されたフレームは、現在符号化されるフレームを示している。また図中の矢印の始点は基準フレームを示し、当該矢印の指すフレームは検索フレームを示している。因みに図３において縦軸は時刻をフレーム単位で表している。
【００３３】
この図３において、例えば時刻「３」において、現フレームであるＢピクチヤ（Ｂ４）を基準フレームとして双方向予測を行う場合、時刻「０」において予めＩピクチヤ（Ｉ３）を検索フレームとする前方向予測を行つておき、時刻「３」においてはＰピクチヤ（Ｐ６）を検索フレームとする後予測を行うようになされている。
【００３４】
また例えば時刻「４」において現フレームであるＢピクチヤ（Ｂ５）を基準フレームとして双方向予測を行う場合、時刻「１」において予めＩピクチヤ（Ｉ３）を検索フレームとする前方向予測を行つておき、時刻「４」においてはＰピクチヤ（Ｐ６）を検索フレームとする後予測を行うようになされている。
【００３５】
このように、動きベクトル検出部２１の制御判定部６２（図２）は、Ｂピクチヤを基準フレームとした場合の双方向予測を行う際に、一方の予測を予め行うようになされている。
【００３６】
因みに、図３において例えば時刻「２」のＰピクチヤ（Ｐ６）を基準フレームとした場合のＩピクチヤ（Ｉ３）への検索において同じ時刻に矢印が１本だけ示されている場合、動きベクトル検出部２１の２つの動き検出部ＭＥ１及びＭＥ２に対して検索フレーム（Ｉ３）の別々の検索範囲を割り当てて検索を行う。
【００３７】
かかる基本的動き予測方法において、制御判定部６２は予め行われる一方の予測（例えば図３の時刻「０」における基準フレーム（Ｂ４）から検索フレーム（Ｉ３）への検索）において、検索範囲が足りるか否かを判定する。
【００３８】
すなわち、動き検出部ＭＥ１及びＭＥ２は、それぞれフレームメモリ５１から供給される基準フレームの基準ブロツクデータＤ５３及び検索フレームの検索ブロツクデータＤ５４をそれぞれフイールドごとに読み出し、当該フイールドごとに動きベクトル及び残差を求め、これを動きベクトルデータＤ５６、Ｄ６０及び残差データＤ５７、Ｄ６１として制御判定部６２に供給する。
【００３９】
制御判定部６２は、複数のフイールド間隔の動きベクトル検出の残差を比較して、Ｍフイールド間の動きベクトル検出時の残差がＮフイールド間の残差よりも小さい時（Ｍ＜Ｎ）、検索範囲が不足していると判定する。
【００４０】
すなわち、図３において時刻「０」における基準フレーム（Ｂ４）から検索フレーム（Ｉ３）への動きベクトル検出を行う場合には、図４に示すように、４種類のフイールド動きベクトルＶ１〜Ｖ４が存在し、フイールド間隔は、１フイールド間隔、２フイールド間隔及び３フイールド間隔の３種類が存在する。
【００４１】
ここで１フイールド間の残差をＭＡＥ１とし、２フイールド間の残差をＭＡＥ２とし、３フイールド間の残差をＭＡＥ３とし、動き補償を行うことが可能であるか否の閾値をＴｈとする。閾値Ｔｈは一定ではなく画像ごとやマクロブロツクごとにより変化する場合がある。この閾値Ｔｈの例としては、動き補償せずにそのままマクロブロツクデータを伝送した場合に予測される情報量が考えられる。
【００４２】
そして、制御判定部６２は、フイールド間隔ごとに得られる３つの残差ＭＡＥ１、ＭＡＥ２及びＭＡＥ３の値に応じて検索範囲が足りているか否かを判定する。
【００４３】
すなわち、残差ＭＡＥ１、ＭＡＥ２及びＭＡＥ３の各値が、次式、
【００４４】
【数１】
0004003149.tif 000002
【００４５】
を満足するとき、制御判定部６２は検索範囲が十分に足りていると判定する。
【００４６】
従つて、この場合図５（Ａ）及び（Ｂ）に示すように、予め設定されている検索範囲にブロツクマツチングした検索ブロツクが存在していることになり、制御判定部６２は、図３の時刻「０」及び「３」において前方向予測及び後方向予測を行うことにより、各動きベクトルを検出する。
【００４７】
これに対して、次式、
【００４８】
【数２】
0004003149.tif 000003
【００４９】
で表される場合、又は次式、
【００５０】
【数３】
0004003149.tif 000004
【００５１】
で表されるように、１フイールド間の残差ＭＡＥ１及び２フイールド間の残差ＭＡＥ２が３フイールド間の残差ＭＡＥ３よりも小さい場合が圧倒的に多いとき、これは１フイールド間及び２フイールド間の動き検出においては、検索範囲が足りているのに対して３フイールド間の動き検出において検索範囲が不足していると判定される。因みに（３）式においてＴｈ２は１フイールド間の残差ＭＡＥ１の比率を表す閾値である。
【００５２】
またこれに対して、次式、
【００５３】
【数４】
0004003149.tif 000005
【００５４】
又は次式、
【００５５】
【数５】
0004003149.tif 000006
【００５６】
で表されるように、１フイールド間の残差ＭＡＥ１が閾値よりも小さく、２フイールド間の残差ＭＡＥ２及び３フイールド間の残差ＭＡＥ３が閾値Ｔｈよりも大きい場合か多いとき、制御判定部６２は１フイールド間の動き検出のみが検索範囲が足りていると判定する。
【００５７】
このようにして、少なくとも１フイールド間の動き検出において探索範囲が足りていると判定された場合、制御判定部６２は、探索範囲が足りている動きベクトル分布から１フイールド間の最大動き量を推定し、必要なフイールド間隔分の検索範囲の予測を行う。
【００５８】
すなわち、１フイールド間の動きベクトルをＭＶ１、２フイールド間の動きベクトルをＭＶ２、３フイールド間の動きベクトルをＭＶ３とすると、次式、
【００５９】
【数６】
0004003149.tif 000007
【００６０】
【数７】
0004003149.tif 000008
【００６１】
によつて表される関係があると推定する。
【００６２】
そして少なくとも１フイールド間の動き検出のみにおいて検索範囲が足りている状態では、図６（Ａ）に示すように、１フイールド間の動きベクトルＭＶ１のみが検索範囲ＡＲ１内に収まつており、２フイールド間の動きベクトルＭＶ２及び３フイールド間の動きベクトルＭＶ３は、検索範囲ＡＲ１の外にあると予想される。
【００６３】
従つて、このとき制御判定部６２は、（６）式及び（７）式に基づいて、２フイールド間の動きベクトルＭＶ２及び３フイールド間の動きベクトルＭＶ３を予測し、これに応じて検索範囲ＡＲ１の場所を変更する。この結果、図６（Ｂ）に示すように動きベクトルＭＶ２及びＭＶ３を検索するために足りる検索範囲ＡＲ１´が検索範囲ＡＲ１と同じ面積のまま異なる場所に求まる。因みに、図６においては１つの動きベクトルのみに注目して検索範囲ＡＲ１´を求めたが、本発明はこれに限らず、１画面すべてのマクロブロツクについて１フイールド間における動きベクトルＭＶ１の分布を求め、これに基づいて２フイールド間及び３フイールド間における多くの動きベクトルＭＶ２及びＭＶ３を求め、当該求められた動きベクトルＭＶ２及びＭＶ３のうち、できるだけ多くのベクトルが検出されるような検索範囲を決定することもできる。
【００６４】
このようにして図３の時刻「０」における基準フレーム（Ｂ４）から検索フレーム（Ｉ３）への動き検出において検索範囲が少なくとも２フイールド間で不足していると判定され新たな検索範囲ＡＲ１´が求められると、制御判定部６２は、図３の時刻「１」における基準フレーム（Ｂ５）から２フレーム離れた検索フレーム（Ｉ３）への動き検出を行わず、これに代えて図７に示すように、時刻「１」において再び基準フレームをＢピクチヤ（Ｂ４）として検索フレーム（Ｉ３）への１フレーム間での動き検出を新たに設定した検索範囲ＡＲ１´を用いて実行する。
【００６５】
この結果、図８（Ａ）に示すように、新たに設定された検索範囲ＡＲ１´を用いて動きベクトルが求められる。因みに図８（Ａ）は、水平右方向に大きな動きかあると判定された場合に設定された新たな検索範囲ＡＲ１´を示す。かくして図７の時刻「１」における基準フレーム（Ｂ４）の２回目の検索において、基準フレーム（Ｂ４）から検索フレーム（Ｉ３）への動きベクトルが検出される。
【００６６】
このようにして図７の時刻「１」において基準フレーム（Ｂ４）の動きベクトルが検出されると、時刻「３」において実行される予定の基準フレーム（Ｂ４）から検索フレーム（Ｐ６）への検索は行われず、これに代えて、新たな基準フレーム（Ｂ５）の１フレーム後方の検索フレーム（Ｐ６）への検索が行われる。このとき、図９（Ａ）に示すように、検索範囲ＡＲ２内に検出すべき動きベクトルが存在しないと、これに続く時刻「４」において図３に示すように基準フレーム（Ｂ８）から２フレーム前方の検索フレーム（Ｐ６）を検索しても図９（Ｂ）に示すように、検索範囲ＡＲ２が不足することが明らかである。従つて、このとき制御判定部６２は、図７の時刻「４」に示すように、基準フレーム（Ｂ５）から１フレーム離れた検索フレーム（Ｐ６）への検索と、基準フレーム（Ｂ７）から１フレーム離れた検索フレーム（Ｐ６）への検索を行う。
【００６７】
この結果、図９（Ｃ）に示すように、新たに検索範囲ＡＲ２´を設定して動きベクトルを求めることができる。
【００６８】
因みに、全く検索を行わなかつた方向の動きベクトルは、例えば強制的にゼロベクトルとして設定し、静止画部分については、画質が当該操作によつて低下しないようにする。
【００６９】
かくして図７の時刻「１」、「３」、「４」及び「６」においてそれぞれＢピクチヤ（Ｂ４、Ｂ５、Ｂ７及びＢ８）を基準フレームとする検索を、新たに設定した検索範囲を用いて１フレーム間で行うことにより、このとき２フレーム間の検索で検索範囲が不足していても、１フレーム間の検索で確実に動きベクトルを検出することができる。
【００７０】
ここで、図１０は制御判定部６２における検索処理手順を示し、制御判定部６２はステツプＳＰ０から当該処理手順に入ると、ステツプＳＰ１において動き検出部ＭＥ１から基準フレームを構成する２フイールド分の動きベクトルと残差を受け取り、また動き検出部ＭＥ２から検索フレームを構成する２フイールド分の動きベクトルと残差を受け取る。
【００７１】
そして制御判定部６２はステツプＳＰ２に移り、動き検出部ＭＥ１及びＭＥ２から受け取つた４フイールド分の動きベクトル及び残差から、１フイールド間の残差ＭＡＥ１と、２フイールド間の残差ＭＡＥ２と３フイールド間の残差ＭＡＥ３とを求め、閾値Ｔｈとの判定を上述の（１）式〜（５）式に基づいて行う。
【００７２】
そしてステツプＳＰ２における判定結果が、上述の（１）式を満足する場合（条件ａ）、制御判定部６２はステツプＳＰ３に移つて、図３に示す通常の双方向予測の検索範囲を設定し、当該設定された検索範囲及び検索フレームに基づき、ステツプＳＰ７において読出し制御信号Ｄ５２（図２）をフレームメモリ５１（図２）に供給することにより、動き検出部ＭＥ１及びＭＥ２で動き検出を行う。
【００７３】
これに対してステツプＳＰ２における判定が、上述の（２）式又は（３）式を満足する場合（条件ｂ）、制御判定部６２はステツプＳＰ４に移り、図６について上述した１フイールド間の動きベクトルＭＶ１及び２フイールド間の動きベクトルＭＶ２を用いて検索範囲を決定し、図７について上述したように１フレーム間の片方向予測のみを行うように設定する。かくしてステツプＳＰ７に移り、設定された検索範囲を用いて動き検出を行う。
【００７４】
これに対してステツプＳＰ２における判定が、上述の（４）式又は（５）式を満足する場合（条件ｃ）、制御判定部６２はステツプＳＰ５に移り、図６について上述した１フイールド間の動きベクトルＭＶ１を用いて検索範囲を決定し、図７について上述したように１フレーム間の片方向予測のみを行うように設定する。かくしてステツプＳＰ７に移り、設定された検索範囲を用いて動き検出を行う。
【００７５】
これに対してステツプＳＰ２における判定が、次式、
【００７６】
【数８】
0004003149.tif 000009
【００７７】
を満足する場合（条件ｄ）、このことはすべてのフイールド間の検索範囲が不足していることを表しており、このとき制御判定部６２はステツプＳＰ６に移り、通常の双方向予測における検索範囲を用い、ステツプＳＰ７において動き検出を行う。
【００７８】
因みに、図７の時刻「７」においては、制御判定部６２は各残差が十分に小さくなつたと判断し、図３に示す通常の処理に戻る。
【００７９】
以上の構成において、制御判定部６２は、双方向予測を行うＢピクチヤについて、異なる時刻で片方（前方向又は後方向）ごとに検索フレームに対する動き予測を行う（図３）。このとき、例えば図３の時刻「０」において始めに行つた片方の動きベクトルの検索において、このとき設定されている検索範囲の残差が大きく、検出すべき動きベクトルが見つからないと、制御判定部６２はこのときの検索フレームに対して最も短い間隔で動きを検出し得る１フイールド間の動きベクトルを基に２フイールド間での動きベクトルを検索し得る検索場所を予測し、これを新たな検索範囲として設定する。
【００８０】
そして図３に示す双方向予測のうち、２フレーム離れた予測を１フレーム間の予測に変更して動きベクトルの検索を行う。このように、動画像の動きが大きい場合でも、少なくとも１フイールド間における動きベクトルは正確に求められると予測される点と、動きが大きい場合には２フレーム間での動きベクトルの検索は困難である点とに着目し、双方向予測のうち２フレーム間の予測を１フレーム間に変更すると共に、検索範囲（場所）を変更して１フレーム間で動きベクトルを検索することにより、確実に動きベクトルを検出することができる。
【００８１】
かくして以上の構成によれば、双方向予測を行う符号化において画像の動きが大きい場合でも、少なくとも片方向予測の動きベクトルを検出することができ、この結果符号化効率を向上し得ると共に符号化画像の画質を向上できる。
【００８２】
なお上述の実施の形態においては、図７について上述したように別々のタイミングで動き検出部ＭＥ１及びＭＥ２を用いて１フレーム間の動き予測を行う場合について述べたが、本発明はこれに限らず、例えば図１１に示すように、２つの動き検出部ＭＥ１及びＭＥ２を用いて同時に異なる検索範囲を検索するようにしても良い。この場合、図８（Ｄ）及び図９（Ｄ）に示すように、２つの動き検出部ＭＥ１及びＭＥ２の検索範囲が設定される。
【００８３】
また上述の実施の形態においては、Ｂピクチヤが２枚である場合（Ｍ＝３）について述べたが、本発明はこれに限らず、Ｂピクチヤの数は１枚又は３枚以上であつても良い。
【００８４】
また上述の実施の形態においては、マクロブロツク単位でブロツクマツチングを行う場合について述べたが、本発明はこれに限らず、他の種々のデータ単位で検索を行うようにしても良い。
【００８５】
【発明の効果】
上述のように本発明によれば、画像のうち、双方向による動きベクトルを検出するべき双方向予測画像に対し、基準となる基準検索範囲において過去の参照画像に対して双方向予測画像を比較して動きベクトルを検出する前方向予測、及び未来の参照画像に対して双方向予測画像を比較して動きベクトルを検出する後方向予測のうち、一方向の予測よりも先に実行する逆方向の予測を当該一方向の予測よりも少ない画像間隔で実行する際、基準検索範囲で検索範囲が足りていると判別した場合には一方向の予測を実行し、基準検索範囲では検索範囲が不足していると判別した場合には検索範囲を基準検索範囲から変更して逆方向の予測を再度実行し、一方向の予測を省略することにより、画像の動きが大きい場合においても少なくとも片方向の動き検出を確実に行うことができ、この分符号化画像の画質を向上し得る。
【図面の簡単な説明】
【図１】本発明による画像符号化装置の一実施の形態を示すブロツク図である。
【図２】本発明による画像符号化装置の動きベクトル検出部の構成を示すブロツク図である。
【図３】通常状態における動き検出手順を示す略線図である。
【図４】フイールド間の動き検出の説明に供する略線図である。
【図５】検索範囲が足りている状態を示す略線図である。
【図６】検索範囲の決定方法の説明に供する略線図である。
【図７】検索範囲が不足しているときの動き検出手順を示す略線図である。
【図８】検索範囲の再設定の説明に供する略線図である。
【図９】検索範囲の再設定の説明に供する略線図である。
【図１０】本発明による動き検出処理手順を示すフローチヤートである。
【図１１】他の実施の形態による動き検出手順を示す略線図である。
【図１２】双方向予測における動き検出の説明に供する略線図である。
【図１３】従来の動き検出手順を示す略線図である。
【図１４】従来の問題点の説明に供する略線図である。
【符号の説明】
２０……画像符号化装置、２１……動きベクトル検出部、２４、２９……演算部、２５……ＤＣＴ部、２６……量子化部、２７……逆量子化部、２８……逆ＤＣＴ部、３０、５１……フレームメモリ、３１……動き補償部、３３……可変長符号化部、６２……制御判定部、ＭＥ１、ＭＥ２……動き検出部。
【図１】
0004003149.tif 000010
【図２】
0004003149.tif 000011
【図３】
0004003149.tif 000012
【図４】
0004003149.tif 000013
【図５】
0004003149.tif 000014
【図６】
0004003149.tif 000015
【図８】
0004003149.tif 000016
【図７】
0004003149.tif 000017
【図９】
0004003149.tif 000018
【図１０】
0004003149.tif 000019
【図１１】
0004003149.tif 000020
【図１２】
0004003149.tif 000021
【図１３】
0004003149.tif 000022
【図１４】
0004003149.tif 000023