(57)【要約】【課題】符号化単位ブロックのサイズには規格化されたものを用いながらも、符号化データの情報量を削減すること。【解決手段】符号化装置１において、複数の符号化単位ブロックからなる符号化単位ブロック群を単位として動き推定処理を行い、該符号化単位ブロック群についての動きベクトルを取得するマクロブロック群動き推定部２０と、マクロブロック群動き推定部２０により取得された動きベクトルを、上記複数の符号化単位ブロックそれぞれについての動きベクトルとして取得する動きベクトル取得部４１と、を含むことを特徴とする。【選択図】図１
2008206047.tif 000002
【特許請求の範囲】
【請求項１】
複数の符号化単位ブロックからなる符号化単位ブロック群を単位として動き推定処理を行い、該符号化単位ブロック群についての動きベクトルを取得する符号化単位ブロック群動き推定手段と、
前記符号化単位ブロック群動き推定手段により取得された前記動きベクトルを、前記複数の符号化単位ブロックそれぞれについての動きベクトルとして取得する動きベクトル取得手段と、
を含むことを特徴とする符号化装置。
【請求項２】
請求項１に記載の符号化装置において、
複数の符号化単位ブロックそれぞれを単位として動き推定処理を行い、該複数の符号化単位ブロックそれぞれについての動きベクトルを取得する符号化単位ブロック動き推定手段と、
前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する動きベクトル決定手段と、
を含むことを特徴とする符号化装置。
【請求項３】
請求項２に記載の符号化装置において、
前記動きベクトル決定手段は、動きベクトルの方向の成分ごとに、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルの平均値と、前記符号化単位ブロック群動き推定手段により取得される前記符号化単位ブロック群についての動きベクトルと、の差を算出し、各成分の差に基づいて、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する、
ことを特徴とする符号化装置。
【請求項４】
請求項２又は３に記載の符号化装置において、
前記動きベクトル決定手段は、動きベクトルの方向の成分ごとに、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルのうちで最大又は最小のものと、他の動きベクトルの平均値と、の差を算出し、各成分の差に基づいて、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する、
ことを特徴とする符号化装置。
【請求項５】
請求項２に記載の符号化装置において、
前記符号化単位ブロック群動き推定手段により取得された前記動きベクトルに基づき、前記符号化単位ブロック群についての誤差データを取得する符号化単位ブロック群動き補償手段と、
前記動きベクトル取得手段により取得された前記各動きベクトルのうちの少なくとも１つ又はこれら各動きベクトルの前記複数の符号化単位ブロック間での差分を示す動きベクトル差分データをそれぞれ含む符号化情報を前記複数の符号化単位ブロックそれぞれについて取得する第１符号化情報取得手段と、
前記符号化単位ブロック動き推定手段により取得された前記各動きベクトルそれぞれに基づき、前記複数の符号化単位ブロックそれぞれについての誤差データを取得する符号化単位ブロック動き補償手段と、
前記符号化単位ブロック動き推定手段により取得された前記各動きベクトルのうちの少なくとも１つ又はこれら各動きベクトルの前記複数の符号化単位ブロック間での差分を示す動きベクトル差分データをそれぞれ含む符号化情報を前記複数の符号化単位ブロックそれぞれについて取得する第２符号化情報取得手段と、
を含み、
前記動きベクトル決定手段は、前記符号化単位ブロック群動き補償手段により取得された誤差データの情報量と、前記第１符号化情報取得手段により取得された各符号化情報の情報量と、の評価値と、前記符号化単位ブロック動き補償手段により取得された各誤差データの情報量と、前記第２符号化情報取得手段により取得された各符号化情報の情報量と、の評価値と、を取得し、各評価値に基づいて、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する、
ことを特徴とする符号化装置。
【請求項６】
請求項５に記載の符号化装置において、
前記動きベクトル決定手段が前記動きベクトル取得手段により取得される前記各動きベクトルを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定した場合に、前記符号化単位ブロック群動き補償手段により取得された誤差データと、前記第１符号化情報取得手段により取得された各符号化情報と、を符号化し、
前記動きベクトル決定手段が前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定した場合に、前記符号化単位ブロック動き補償手段により取得された各誤差データと、前記第２符号化情報取得手段により取得された各符号化情報と、を符号化する符号化処理手段、
を含むことを特徴とする符号化装置。
【請求項７】
複数の符号化単位ブロックからなる符号化単位ブロック群を単位として動き推定処理を行い、該符号化単位ブロック群についての動きベクトルを取得する符号化単位ブロック群動き推定手段、及び
前記符号化単位ブロック群動き推定手段により取得された前記動きベクトルを、前記複数の符号化単位ブロックそれぞれについての動きベクトルとして取得する動きベクトル取得手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化装置及びプログラムに関する。
【背景技術】
【０００２】
ＩＳＯ(International Organization for Standardization)／ＩＥＣ(International Electrotechnical Commission)  ＪＴＣ１／ＳＣ２９／ＷＧ１１（ＭＰＥＧ）で規格化されたＭＰＥＧ−２方式（例えば、非特許文献１参照。）や、ＭＰＥＧとＩＴＵ−Ｔ(International Telecommunication Union Telecommunication Standardization Sector)で規格化されたＨ．２６４／ＭＰＥＧ−４  ＡＶＣ(Advanced Video Coding)方式（例えば、非特許文献２参照。）といった動画像の圧縮符号化規格では、動画像は一連の画像により構成される。符号化装置は各画像を１つずつ符号化していくのであるが、その際、画像を所定の大きさのブロック（以下、符号化単位ブロックという。）に分割し、この符号化単位ブロックを単位とする符号化処理を行い、符号化データを得る。この符号化処理には、動き補償処理やＤＣＴ(Discrete Cosine Transform：離散コサイン変換)処理などが含まれる。以下、このうちの動き補償処理について詳細に説明する。
【０００３】
ＭＰＥＧ−２では、符号化単位ブロックの大きさは水平１６画素×垂直１６ラインである。この大きさのブロックは一般にマクロブロックと呼ばれ、動画像を符号化する際の基本の大きさとなっている。
【０００４】
ＭＰＥＧ−２の動き補償処理においては、符号化装置は、マクロブロックごとに、既に符号化済みの、例えば直前に符号化した画像内から、当該マクロブロックの中に含まれる画像に似た部分を探す。そして、発見された部分の全体中での位置から、当該マクロブロックの全体中での位置への移動量を示すベクトル情報を取得する。このベクトル情報は動きベクトルと呼ばれるもので、動きベクトルを求める処理は動き推定と呼ばれる。なお、このようにして動きベクトルを取得することは、マクロブロックを単位として、その中に含まれる画像は全て同じ動きベクトルで代表される平行移動をしているという動きモデルを仮定していることを意味している。
【０００５】
符号化装置はさらに、取得した動きベクトルに基づき、過去に符号化した画像内でその各部分の位置を変更することにより予測画像を生成する。そして、符号化対象の画像と、予測画像と、の差分を示す誤差データを取得する。動き補償処理では、最終的に動きベクトルと誤差データとが出力される。符号化装置は、これらを含むデータを符号化して符号化データを取得する。
【０００６】
一方、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣでは、符号化単位ブロックとして、上記マクロブロックに加え、水平１６画素×垂直８ライン、水平８画素×垂直１６ラインなどの長方形ブロックや、水平８画素×垂直８ライン、水平８画素×垂直４ライン、水平４画素×垂直８ライン、水平４画素×垂直４ラインなどの、マクロブロックをさらに細かく分割してなるブロックも用いられる。その結果、動き補償処理も、この細かいブロック単位で行われることになる。ただしこの場合、符号化装置は、上記動きベクトル及び誤差データに加え、ブロックの分割方法を示す分割情報も含むデータを符号化して符号化データを取得する。このようにブロックを細かくしていくことで、全体として誤差データの情報量が少なくなる一方、動きベクトルの数が多くなるため、動きベクトルなどの情報量は全体として多くなる。その結果、ブロックを細かくしたからといって、必ずしも符号化データの情報量が削減されるとは限らない。
【０００７】
そこで、動きベクトルの情報量を削減するための技術が知られている。この技術では、動きベクトルそのものではなく、動きベクトルの符号化単位ブロック間での差分である動きベクトル差分データを符号化することにより、動きベクトルの情報量を削減する。
【０００８】
図４はＨ．２６４において動きベクトル差分データを求める例の説明図である。同図では、各四角形が符号化単位ブロックを示している。Ｈ．２６４では、左上の符号化単位ブロックから右方向に向けて順次符号化を行い、右端に到達したら一段下に降り、その列の一番左に位置する符号化単位ブロックから右方向に向けて順次符号化を行うという処理を繰り返すことにより、符号化が行われる。符号化装置は、ある符号化単位ブロックＡの動きベクトル差分データを求める場合、先に符号化した符号化単位ブロックのうち、符号化単位ブロックＡの左、上、右上にある各符号化単位ブロックＢ，Ｃ，Ｄの動きベクトルの中央値を動きベクトルの方向の成分ごとに算出する。そして、この中央値と符号化単位ブロックＡの動きベクトルの差分を動きベクトル差分データとする。このような処理によれば、隣接する符号化単位ブロック間で動きベクトルの値が近いほど、符号化する動きベクトルの情報量は小さくなる。
【０００９】
なお、特許文献１には、符号化された動画像を縮小するための動画像符号列変換装置が開示されている。この装置では、縮小後の動画像において、縮小前の動画像を構成する各符号化単位ブロックをそのまま用いるモード（サブブロックモード）と、いくつかを結合して用いるモード（通常モード）と、が用意される。サブブロックモードでは、縮小前の動画像における各符号化単位ブロックについての動きベクトルを、対応する縮小後の符号化単位ブロックの動きベクトルとして用いる。一方、通常モードでは、縮小後の動画像における各符号化単位ブロックそれぞれについて、対応する縮小前の複数の符号化単位ブロックそれぞれについての動きベクトルの中から１つを選択して用いる。
【非特許文献１】「ＩＳＯ（国際標準化機構）／ＩＥＣ（国際電気標準会議）  １３８１８−２」、１９９４年
【非特許文献２】「ＩＴＵ−Ｔ（国際電気通信連合電気通信標準化部門）  Ｒｅｃ．（勧告）  Ｈ．２６４｜ＩＳＯ（国際標準化機構）／ＩＥＣ（国際電気標準会議）  １４４９６−１０  Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（アドバンスドビデオコーディング）」、２００５年
【特許文献１】特開２００３−１５３２７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述した従来技術では、符号化単位ブロックの大きさは規格化されており、規格を変更しない限り、符号化単位ブロックの大きさを変更することはできない。しかしながら、規格化された符号化単位ブロックでの動き補償処理では、符号化データの情報量が大きくなってしまう場合があった。
【００１１】
図５は、この場合について、具体的な例を示しながら説明するための説明図である。この例は、ＳＨＶ（スーパーハイビジョン）などのように超高精細な動画像を用いた場合の例である。高精細になればなるほど、水平１６画素×垂直１６ラインのマクロブロックの大きさは、全体の大きさと比較して相対的に小さくなる。このため、図５において楕円形の物体内部に位置するマクロブロックのように、１つのマクロブロック内の各画素の輝度値および色差値がほぼ同一となってしまう可能性が高くなる。
【００１２】
ある物体の画像を含むマクロブロックについての動きベクトルを求める際には、該物体全体の画像全体中での位置変化量に等しい位置変化量を示す動きベクトルを求められるようにすることが望ましいが、実際には該マクロブロックと似ている部分を見つけ、その部分の位置に基づき動きベクトルを取得しているだけであるので、上記のように１つのマクロブロック内の各画素の輝度値および色差値がほぼ同一となってしまうと、取得される動きベクトルが上述の望ましい動きベクトルとならない場合が多くなり、その結果、各マクロブロックの動きベクトルがバラバラになり、上記動きベクトル差分データの情報量が大きくなって、符号化データの情報量が増大してしまうのである。
【００１３】
従って、本発明の課題の一つは、符号化単位ブロックのサイズには規格化されたものを用いながらも、符号化データの情報量を削減することのできる符号化装置及びプログラムを提供することにある。
【課題を解決するための手段】
【００１４】
上記課題を解決するための本発明にかかる符号化装置は、複数の符号化単位ブロックからなる符号化単位ブロック群を単位として動き推定処理を行い、該符号化単位ブロック群についての動きベクトルを取得する符号化単位ブロック群動き推定手段と、前記符号化単位ブロック群動き推定手段により取得された前記動きベクトルを、前記複数の符号化単位ブロックそれぞれについての動きベクトルとして取得する動きベクトル取得手段と、を含むことを特徴とする。
これによれば、符号化単位ブロックのサイズには規格化されたものを用いながらも、符号化データの情報量を削減することが可能になる。
【００１５】
また、上記符号化装置において、請求項１に記載の符号化装置において、複数の符号化単位ブロックそれぞれを単位として動き推定処理を行い、該複数の符号化単位ブロックそれぞれについての動きベクトルを取得する符号化単位ブロック動き推定手段と、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する動きベクトル決定手段と、を含むこととしてもよい。
これによれば、符号化単位ブロック群を単位とした動き推定処理の処理結果と、符号化単位ブロックそれぞれを単位とした動き推定処理の処理結果と、のうちのいずれかを用いることができるようになる。
【００１６】
また、上記符号化装置において、前記動きベクトル決定手段は、動きベクトルの方向の成分ごとに、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルの平均値と、前記符号化単位ブロック群動き推定手段により取得される前記符号化単位ブロック群についての動きベクトルと、の差を算出し、各成分の差に基づいて、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する、こととしてもよい。
これによれば、符号化単位ブロックそれぞれを単位とした動き推定処理の結果得られた各符号化単位ブロックの動きベクトル間の違いが少なく、各符号化単位ブロック内に同一の物体の画像があると考えられる場合に、符号化単位ブロック群を単位とした動き推定処理の処理結果を用いることができるようになる。
【００１７】
また、上記符号化装置において、前記動きベクトル決定手段は、動きベクトルの方向の成分ごとに、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルのうちで最大又は最小のものと、他の動きベクトルの平均値と、の差を算出し、各成分の差に基づいて、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する、こととしてもよい。
これによれば、符号化単位ブロックそれぞれを単位とした動き推定処理の結果得られた各符号化単位ブロックの動きベクトル間の違いが大きく、各符号化単位ブロック内に同一の物体の画像がないと考えられる場合に、符号化単位ブロックそれぞれを単位とした動き推定処理の処理結果を用いることができるようになる。
【００１８】
また、上記符号化装置において、前記符号化単位ブロック群動き推定手段により取得された前記動きベクトルに基づき、前記符号化単位ブロック群についての誤差データを取得する符号化単位ブロック群動き補償手段と、前記動きベクトル取得手段により取得された前記各動きベクトルのうちの少なくとも１つ又はこれら各動きベクトルの前記複数の符号化単位ブロック間での差分を示す動きベクトル差分データをそれぞれ含む符号化情報を前記複数の符号化単位ブロックそれぞれについて取得する第１符号化情報取得手段と、前記符号化単位ブロック動き推定手段により取得された前記各動きベクトルそれぞれに基づき、前記複数の符号化単位ブロックそれぞれについての誤差データを取得する符号化単位ブロック動き補償手段と、前記符号化単位ブロック動き推定手段により取得された前記各動きベクトルのうちの少なくとも１つ又はこれら各動きベクトルの前記複数の符号化単位ブロック間での差分を示す動きベクトル差分データをそれぞれ含む符号化情報を前記複数の符号化単位ブロックそれぞれについて取得する第２符号化情報取得手段と、を含み、前記動きベクトル決定手段は、前記符号化単位ブロック群動き補償手段により取得された誤差データの情報量と、前記第１符号化情報取得手段により取得された各符号化情報の情報量と、の評価値と、前記符号化単位ブロック動き補償手段により取得された各誤差データの情報量と、前記第２符号化情報取得手段により取得された各符号化情報の情報量と、の評価値と、を取得し、各評価値に基づいて、前記動きベクトル取得手段により取得される前記各動きベクトルと、前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルと、のいずれかを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する、こととしてもよい。
これによれば、上記評価値により、より好ましい方の処理結果を用いることができるようになる。
【００１９】
また、この符号化装置において、前記動きベクトル決定手段が前記動きベクトル取得手段により取得される前記各動きベクトルを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定した場合に、前記符号化単位ブロック群動き補償手段により取得された誤差データと、前記第１符号化情報取得手段により取得された各符号化情報と、を符号化し、前記動きベクトル決定手段が前記符号化単位ブロック動き推定手段により取得される前記各動きベクトルを前記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定した場合に、前記符号化単位ブロック動き補償手段により取得された各誤差データと、前記第２符号化情報取得手段により取得された各符号化情報と、を符号化する符号化処理手段、を含むこととしてもよい。
これによれば、動きベクトル決定手段の決定に従った符号化をすることができるようになる。
【００２０】
また、本発明にかかるプログラムは、複数の符号化単位ブロックからなる符号化単位ブロック群を単位として動き推定処理を行い、該符号化単位ブロック群についての動きベクトルを取得する符号化単位ブロック群動き推定手段、及び前記符号化単位ブロック群動き推定手段により取得された前記動きベクトルを、前記複数の符号化単位ブロックそれぞれについての動きベクトルとして取得する動きベクトル取得手段、としてコンピュータを機能させるためのプログラムである。
【発明を実施するための最良の形態】
【００２１】
本発明の実施の形態について、図面を参照しながら説明する。
【００２２】
図１は、本実施の形態にかかる符号化装置１のシステム構成を示す概略ブロック図である。符号化装置１はマクロブロックを上述の符号化単位ブロックとする符号化装置であり、同図に示すように、マクロブロック群取得部１０、マクロブロック群動き推定部２０、マクロブロック群動き補償部２１、マクロブロック動き推定部３０、マクロブロック動き補償部３１、動きベクトル決定部４０、符号化処理部５０、参照画像蓄積部６０を含んで構成される。また、動きベクトル決定部４０はその内部に、動きベクトル取得部４１、符号化情報取得部４２及び４３を含んで構成される。
【００２３】
マクロブロック群取得部１０は、図示しない撮影装置や受信装置などから、一連の画像により構成される動画像データを取得する。各画像は、例えば水平７６８０画素×垂直４３２０ラインの画素ごとに、輝度及び色差を示すデータである。
【００２４】
マクロブロック群取得部１０は、取得した各画像を、それぞれ複数のマクロブロックに分割する。各マクロブロックの大きさは、上述したように、水平１６画素×垂直１６ラインである。そして、マクロブロック群取得部１０はマクロブロックを複数ずつまとめ、マクロブロック群を構成する。
【００２５】
図２は、こうして構成されるマクロブロック群の例を示す図である。同図に示す例では、マクロブロック群は４つのマクロブロックから構成される。また、各マクロブロック群の形状は正方形である。マクロブロック群を構成するマクロブロックは４つに限られるものではなく、またマクロブロック群の形状も正方形に限られるものではないが、以下では、図２に示す例のマクロブロック群の例を用いて説明を続ける。
マクロブロック群取得部１０は、取得したマクロブロック群を、１つずつマクロブロック群動き推定部２０及びマクロブロック動き推定部３０に出力する。
【００２６】
マクロブロック群動き推定部２０は、入力されたマクロブロック群を単位とする動き推定処理を行い、その結果を示す動きベクトルを、マクロブロック群動き補償部２１に出力する。これにより、マクロブロック群取得部１０は符号化単位ブロック群動き推定手段として機能する。この動き推定処理は、上述したように、例えば直前の画像内から、当該マクロブロック群の中に含まれる画像に似た部分を探し出し、発見された部分の画像全体中での位置から、当該マクロブロック群の画像全体中での位置への移動量を示す動きベクトルを取得する処理である。なお、このとき必要となる直前の画像は、後述する符号化処理部５０の処理により参照画像蓄積部６０に記憶されるものである。
【００２７】
ここで、動き推定処理における「似た部分を探し出す」処理の具体的な例としては、ブロックマッチング法や勾配法が挙げられる。このうち、例えばブロックマッチング法を用いる場合、マクロブロック群動き推定部２０は、直前の画像内からマクロブロック群と同じ大きさの部分を順次切り出し、切り出した部分とマクロブロック群との画素値の差分の絶対値や2乗値の総和が最小になるような部分を見つけ出す。そして、見つけ出した部分を、上記「似た部分」として取り扱う。
【００２８】
マクロブロック動き推定部３０は、入力されたマクロブロック群を構成するマクロブロックごとに動き推定処理を行い、その結果を示す各動きベクトルを、マクロブロック動き補償部３１に出力する。これにより、マクロブロック動き推定部３０は符号化単位ブロック動き推定手段として機能する。マクロブロックごとに行われる点を除き、具体的な処理はマクロブロック群動き推定部２０が行うものと同様である。
【００２９】
マクロブロック群動き補償部２１は、マクロブロック群動き推定部２０が行った動き推定処理の結果取得された動きベクトルに基づき、該動き推定処理の対象となったマクロブロック群について、誤差データを取得する。これにより、マクロブロック群動き補償部２１は符号化単位ブロック群動き補償処理手段として機能する。具体的には、マクロブロック群動き推定部２０から入力された動きベクトルに基づき、直前の画像内でその各部分の位置を変更することにより予測画像を生成する。そして、マクロブロック群内の画像と、予測画像と、の画素値の差分を求め、誤差データとする。なお、動き推定処理に上記ブロックマッチング法を用いた場合には、その過程で求められる上記差分を用いて誤差データを取得してもよい。また、得られた差分にＤＣＴ処理を施した結果得られる係数値群を誤差データとして用いてもよい。
【００３０】
マクロブロック群動き補償部２１は、マクロブロック群動き推定部２０から入力された動きベクトルと、上記のようにして取得した誤差データと、を動きベクトル決定部４０に出力する。なお、上記誤差データ及び上記動きベクトルの他、ブロック分割やブロックタイプを表すモード情報も出力することとしてもよい。
【００３１】
マクロブロック動き補償部３１は、マクロブロック動き推定部３０により取得された各動きベクトルそれぞれに基づき、マクロブロック群を構成する複数のマクロブロックそれぞれについて、誤差データを取得する。これにより、マクロブロック動き補償部３１は符号化単位ブロック動き補償処理手段として機能する。各マクロブロックについて行われる点を除き、具体的な処理はマクロブロック群動き補償部２１が行うものと同様である。マクロブロック動き補償部３１は、マクロブロック動き推定部３０から入力された各動きベクトルと、上記のようにして取得した各誤差データと、を動きベクトル決定部４０に出力する。なお、上記各誤差データ及び上記各動きベクトルの他、ブロック分割やブロックタイプを表すモード情報も出力することとしてもよい。
【００３２】
動きベクトル取得部４１は、マクロブロック群動き推定部２０により取得された動きベクトルを、マクロブロック群を構成する複数のマクロブロックそれぞれについての動きベクトルとして取得する。これにより、動きベクトル取得部４１は動きベクトル取得手段として機能する。
【００３３】
動きベクトル決定部４０は、動きベクトル取得部４１により取得される各動きベクトルと、マクロブロック動き推定部３０により取得される各動きベクトルと、のいずれかを、マクロブロック群を構成する複数のマクロブロックについての動きベクトルとして決定する。これにより、動きベクトル決定部４０は動きベクトル決定手段として機能する。
【００３４】
動きベクトル決定部４０の処理について、より具体的に説明する。まず、符号化情報取得部４２は、動きベクトル取得部４１により取得された各動きベクトルの、マクロブロック群を構成する複数の符号化単位ブロック間での差分を示す動きベクトル差分データを含む符号化情報を取得する。これにより、符号化情報取得部４２は第１手段符号化情報取得手段として機能する。
【００３５】
具体的には、符号化情報取得部４２は、マクロブロック群を構成する複数の符号化単位ブロックのうちの１つを選択し、該マクロブロックについて取得されている動きベクトルを基準ベクトルとする。そして、他のマクロブロックについて取得されている動きベクトルと基準ベクトルとの差分を取得する。これにより、他のマクロブロックについて動きベクトル差分データを算出する。
【００３６】
なお、符号化情報取得部４２は、上記符号化情報をマクロブロックごとに取得する。上記基準ベクトルに対応するマクロブロックについて取得する符号化情報には、該基準ベクトルが含まれる。また、動きベクトル差分データに対応するマクロブロックについて取得する符号化情報には、該動きベクトル差分データが含まれる。なお、符号化情報は、上記モード情報などの他の情報を含むこととしてもよい。
【００３７】
符号化情報取得部４３は、マクロブロック動き推定部３０により取得された各動きベクトルの、マクロブロック群を構成する複数の符号化単位ブロック間での差分を示す動きベクトル差分データを含む符号化情報を取得する。これにより、符号化情報取得部４３は第２符号化情報取得手段として機能する。符号化情報の詳細及び符号化情報を求めるための具体的な処理は符号化情報取得部４２の処理と同様である。
【００３８】
ここまでの処理により、動きベクトル決定部４０は、マクロブロック群について、誤差データ及び符号化情報の組み合わせを２組取得したことになる。動きベクトル決定部４０は、これらに基づいてマクロブロック群を構成する複数のマクロブロックについての動きベクトルを決定し、符号化処理部５０に出力する。以下、この決定処理について、２つの例を挙げて具体的に説明する。
【００３９】
１つ目の例は、誤差データ及び符号化情報の情報量を用いる例である。この例では、動きベクトル決定部４０は、マクロブロック群動き補償部２１により取得された誤差データの情報量と、符号化情報取得部４２により取得された各符号化情報の情報量と、の評価値であるコスト関数Ｊ１と、マクロブロック動き補償部３１により取得された各誤差データの情報量と、符号化情報取得部４３により取得された各符号化情報の情報量と、の評価値であるコスト関数Ｊ２と、を取得し、各評価値に基づいて、動きベクトル取得部４１により取得される各動きベクトルと、マクロブロック動き推定部３０により取得される前記各動きベクトルと、のいずれかを上記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する。
【００４０】
この例にかかる動きベクトル決定部４０の処理について、具体的に説明する。動きベクトル決定部４０は、式（１）及び式（２）により、上記コスト関数Ｊ１及びＪ２を求める。式（１）及び式（２）において、Ｄ１はコスト関数Ｊ１にかかる誤差データ（マクロブロック群についての誤差データ）の情報量であり、Ｒ１はコスト関数Ｊ１にかかるマクロブロックごとの符号化情報の情報量の合計である。また、Ｄ２（ｉ）はコスト関数Ｊ２にかかるマクロブロックごとの誤差データの情報量であり、Ｒ２（ｉ）はコスト関数Ｊ２にかかるマクロブロックごとの符号化情報の情報量である。変数ｉは、マクロブロック群内の各マクロブロックの番号を示している。
Ｊ１＝Ｄ１＋λＲ１  ・・・（１）
Ｊ２＝Σｉ＝１〜４（Ｄ２（ｉ）＋λｉＲ２（ｉ））  ・・・（２）
【００４１】
動きベクトル決定部４０は、算出したコスト関数Ｊ１とＪ２とを比較し、その値の小さい方を選択し、選択したコスト関数にかかる符号化情報及び誤差データを、実際に用いるものとして決定する。
【００４２】
なお、式（１）及び式（２）に示すように、動きベクトル決定部４０は、符号化情報量にλ又はλｉの重みを付けた上で、コスト関数を算出している。λ＝λｉ＝０としたときには、誤差データの情報量のみによって、動きベクトル決定部４０が選択する符号化情報及び誤差データが決定されることになる。誤差データの情報量は、コスト関数Ｊ１とＪ２とでは、普通後者の方が少なくなるので、λ＝λｉ＝０とした場合にはコスト関数Ｊ２にかかる符号化情報及び誤差データが選択されることが多くなる。λ及びλｉを大きくしていくと、コスト関数Ｊ１にかかる符号化情報及び誤差データが選択される可能性が高まる。λ及びλｉの具体的な値は、最適な結果が得られるよう、実験等により決定される。
【００４３】
２つ目の例は、マクロブロックごとの動きベクトルを用いる例である。すなわち、マクロブロックごとの動きベクトルが、図３に示すようにいずれもほぼ同じ値であり、かつマクロブロック群の動きベクトルに近い値を有していれば、各マクロブロックに含まれる画像は、いずれも１つの物体の画像である蓋然性が高いと言える。この場合、マクロブロック群の動きベクトルをもって、各符号化単位ブロックの動きベクトルとすれば、動きベクトル差分データの情報量が小さくなり、符号化データの情報量を減らすことができる。
【００４４】
そこで、１つの具体例では、動きベクトル決定部４０は、動きベクトルの方向の成分ごとに、マクロブロック動き推定部３０により取得される４つの動きベクトルのうちで最大のもの又は最小のものと、他の３つの動きベクトルの平均値と、の差を算出する。そして、成分ごとの差がそれぞれ所定値以下であるか否かを判定する。その結果、成分ごとの差がいずれも所定値以下、すなわち両者にほとんど差がない場合には、動きベクトル決定部４０は、動きベクトル取得部４１により取得される各動きベクトルを上記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する。そうでない場合には、マクロブロック動き推定部３０により取得される前記各動きベクトルを上記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する。
【００４５】
また、別の具体例では、動きベクトル決定部４０は、成分ごとに、マクロブロック動き推定部３０により取得される各動きベクトルの平均値と、マクロブロック群動き推定部２０により取得される動きベクトルの値と、の差を算出する。その結果、成分ごとの差がいずれも所定値以下、すなわち両者にほとんど差がない場合には、動きベクトル取得部４１により取得される各動きベクトルを上記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する。そうでない場合には、マクロブロック動き推定部３０により取得される前記各動きベクトルを上記複数の符号化単位ブロックそれぞれについての動きベクトルとして決定する。
【００４６】
なお、動きベクトル決定部４０は、上記２つの具体例を組み合わせて用いることとしてもよい。すなわち、例えば１つ目の具体例にかかる成分ごとの差がいずれも所定値以下である場合に、さらに２つ目の具体例にかかる処理を行うこととしてもよい。
【００４７】
符号化処理部５０は、動きベクトル決定部４０により決定された各動きベクトルを用い、各マクロブロックを符号化する。すなわち、符号化処理部５０は、動きベクトル決定部４０が動きベクトル取得部４１により取得される各動きベクトルを上記複数のマクロブロックそれぞれについての動きベクトルとして決定した場合に、マクロブロック群動き補償部２１により取得された誤差データと、符号化情報取得部４２により取得された各符号化情報と、を符号化する。一方、動きベクトル決定部４０がマクロブロック動き推定部３０により取得される各動きベクトルを上記複数のマクロブロックそれぞれについての動きベクトルとして決定した場合に、マクロブロック動き補償部３１により取得された各誤差データと、符号化情報取得部４３により取得された各符号化情報と、を符号化する。これにより、符号化処理部５０は、符号化処理手段として機能する。
具体的な例では、符号化処理部５０は、各誤差データ及び各符号化情報に対しＤＣＴ処理を施す。そして、その結果得られる係数値群に量子化処理を施し、さらに誤り訂正符号化処理を施して出力する。
【００４８】
また、符号化処理部５０は、量子化処理まで施した上記係数値群に対して、逆量子化処理及び逆ＤＣＴ処理を施し、誤差データを取得する。さらに、誤差データとそれまでに参照画像蓄積部６０に記憶した画像とに基づいて画像を取得し、参照画像蓄積部６０に記憶させる。
【００４９】
以上説明したように、符号化装置１によれば、マクロブロックより大きなブロック単位（マクロブロック群単位）で動き推定処理を行いつつも、その結果に基づき、マクロブロックそれぞれについての動きベクトルを取得することができるので、マクロブロックのサイズには規格化されたものを用いながらも、従来に比べ、符号化データの情報量を削減することが可能になっている。
【００５０】
また、符号化装置１は、マクロブロック群を単位とした動き推定処理の処理結果と、符号化単位ブロックそれぞれを単位とした動き推定処理の処理結果と、のうちのいずれか好ましい方を選択して用いることができるようになる。
【００５１】
以上本発明の実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明は、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【００５２】
例えば、上記実施形態では、符号化単位ブロックとしてマクロブロックを用いたが、マクロブロックより小さいブロックを符号化単位ブロックとして用いても構わない。この場合、上記実施の形態において、マクロブロックに代えて符号化単位ブロックが、マクロブロック群に代えて符号化単位ブロック群が、それぞれ用いられる。
【００５３】
また、上記実施の形態では、マクロブロック群動き推定部２０とマクロブロック動き推定部３０とは独立に処理を行っていたが、どちらか一方の推定結果を、他方の推定に利用することも可能である。例えば、マクロブロック動き推定部３０で得られた４つの動きベクトルを、マクロブロック群動き推定部２０において動き推定の初期値として用い、その初期値を中心に動き推定を行うようにすることで、マクロブロック群動き推定部２０の処理量を低減することが可能になる。
【００５４】
また、符号化装置１の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、上記符号化装置１の各処理を行ってもよい。
ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、この「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに、「コンピュータ読み取り可能な記録媒体」には、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
さらに、上記プログラムは、上述した各機能の一部を実現するためのものであってもよい。さらに、上述した各機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施の形態にかかる符号化装置のシステム構成を示す概略ブロック図である。
【図２】本発明の実施の形態にかかるマクロブロック群の例を示す図である。
【図３】本発明の実施の形態にかかるマクロブロックごとの動きベクトルの例を示す図である。
【図４】Ｈ．２６４において動きベクトル差分データを求める例の説明図である。
【図５】動き補償処理結果データの情報量を少なくできる場合の例の説明図である。
【符号の説明】
【００５６】
１  符号化装置、
１０  マクロブロック群取得部、
２０  マクロブロック群動き推定部、
２１  マクロブロック群動き補償部、
３０  マクロブロック動き推定部、
３１  マクロブロック動き補償部、
４０  動きベクトル決定部、
４１  動きベクトル取得部、
４２，４３  符号化情報取得部、
５０  符号化処理部、
６０  参照画像蓄積部。
【図１】
2008206047.tif 000003
【図２】
2008206047.tif 000004
【図３】
2008206047.tif 000005
【図４】
2008206047.tif 000006
【図５】
2008206047.tif 000007