(57)【特許請求の範囲】
【請求項１】
入力画像を、動きベクトルを用いて符号化する符号化装置であって、
入力画像中の所定サーチ範囲を変換−逆変換処理画像のマクロブロック単位でサーチして前記動きベクトルを検出するための第一検出部と、
前記マクロブロックよりも大きなブロックであるグローバルマクロブロック単位で入力画像間でのグローバル動きベクトルを検出するための第二検出部と、
前記第二検出部で検出されたグローバル動きベクトルを利用して、第一検出部で行うサーチのサーチ範囲を決定可能なサーチ範囲決定部と、
前記グローバル動きベクトルを利用するか、利用しないかを判断するグローバル動きベクトル利用判断部と、
前記入力画像の画像サイズを取得する画像サイズ取得部と、を有し、
前記グローバル動きベクトル利用判断部は、前記画像サイズ取得部で取得した画像サイズに基づいて、前記判断処理を実行する画像サイズ依存判断手段を有する画像符号化装置。
【請求項２】
符号化をするに際して、動きベクトルを利用して符号化すべきフレームと、動きベクトルを生成するために参照されるべきフレームと、を特定するフレーム特定情報を取得するフレーム特定情報取得部と、
第二検出部にて検出されるグローバル動きベクトルとして隣接フレーム間での値である隣接グローバル動きベクトルを保持する隣接グローバル動きベクトル保持部と、
フレーム特定情報で特定される二つのフレーム間のグローバル動きベクトルを、隣接グローバル動きベクトル保持部に保持されている複数の隣接グローバル動きベクトルに基づいて演算する検出フレーム間グローバル動きベクトル演算部と、
をさらに有する請求項１に記載の画像符号化装置。
【請求項３】
変換−逆変換処理画像のマクロブロック単位でサーチして検出された動きベクトルを用いて、入力画像を符号化する符号化方法であって、
前記マクロブロックよりも大きなブロックであるグローバルマクロブロック単位で入力画像間でのグローバル動きベクトルを検出する第二検出ステップと、
前記第二検出ステップにて検出されたグローバル動きベクトルを利用して前記サーチのサーチ範囲を決定するサーチ範囲決定ステップと、
前記決定されたサーチ範囲をマクロブロック単位でサーチして前記動きベクトルを検出する第一検出ステップと、
前記入力画像の画像サイズを取得する画像サイズ取得ステップと、
前記画像サイズ取得ステップで取得した画像サイズに基づいて、前記グローバル動きベクトルを利用するか、利用しないかを判断する画像サイズ依存判断ステップと、
を計算機に実行させる画像符号化方法。
【請求項４】
符号化をするに際して、動きベクトルを利用して符号化すべきフレームと、動きベクトルを生成するために参照されるべきフレームと、を特定するフレーム特定情報を取得するフレーム特定情報取得ステップと、
第二検出ステップにて検出されるグローバル動きベクトルとして隣接フレーム間での値である隣接グローバル動きベクトルを保持するために記録する隣接グローバル動きベクトル記録ステップと、
フレーム特定情報で特定される二つのフレーム間のグローバル動きベクトルを動きベクトル記録ステップにて記録され保持されている複数の隣接グローバル動きベクトルに基づいて演算する検出フレーム間グローバル動きベクトル演算ステップと、
をさらに有する請求項３に記載の画像符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトルを用いて入力画像を符号化する際に、グローバル動きベクトルを利用する画像符号化装置の技術に関する。
【背景技術】
【０００２】
従来、動画像の高効率符号化に際しては、主に以下の３つの画像変換を用いて動画像情報量を圧縮し符号化が行われている。すなわち画像内（空間）相関を利用した第一の画像変換、画像間（時間）相関を利用した第二の画像変換、そして符号の出現確率に応じた可変長符号化を利用した第三の画像変換である。その中で、時間相関を利用した第二の画像変換では、時間的に異なるフレーム（入力画像）間における画像の移動方向と移動量をマクロブロック単位で「動きベクトル」として検出し、そのマクロブロックの画素情報と動きベクトルの情報とによってフレームを表現することで動画像情報量を削減することができる。
【０００３】
しかし、この「動きベクトル」の検出処理において、マクロブロックの移動先（または移動元）となる別のフレーム内のブロックを探索しようとすると、例えばスポーツ映像など動き量の多い動画像ではその探索範囲を広く取る必要があり、従って、その演算量も膨大となる可能性があった。そこで、特許文献１では、現フレームの縮小画像を利用して、最初に画像全体でのグローバルな動きベクトルを検出し、そのグローバル動きベクトルを利用してマクロブロックの移動先サーチ（探索）範囲を絞り込んだうえで動きベクトルを検出する、という技術が開示されている。
【０００４】
図１７に示すのは、このグローバル動きベクトルを利用した、マクロブロック単位の動きベクトル検出の別の一例を説明するための図である。この図（ａ）にあるように、まずは動きベクトルを検出したいマクロブロックαを含むさらに大きな（グローバル）マクロブロックα´におけるグローバル動きベクトル（１７０１）を、通常の動きベクトル検出と同様の処理にて検出する。すると、このグローバル動きベクトルで示されるグローバルマクロブロックα´の移動先を含む所定の範囲内にマクロブロックαの移動があると考えることができる。したがって、図（ｂ）で示す範囲βをマクロブロックαの動きベクトルの探索範囲として演算することで、探索範囲を無駄に広げずにマクロブロックαの動きベクトル（１７０２）を検出することができる、という具合である。
【特許文献１】ＷＯ００／０５８９９号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、第二の画像変換に用いられる上記グローバル動きベクトルの検出処理では、そのグローバル動きベクトルの検出器が、第一の動画像変換技術である空間相関を利用した画像変換器などと同一のチップ上に配置されているため、以下のような２つの課題がある。第一に、グローバル動きベクトルを検出する際に参照する参照先のフレームが、必ずしも正確な入力画像と一致していない可能性がある、という課題である。なぜならば、その参照先フレームは、空間相関を利用して、ＤＣＴ（離散コサイン変換）変換で得られた高周波成分を排除したり、量子化により余りを切り捨てたりして非可逆変換され符号化されたデータを逆変換することで再現された画像であるため、完全に元フレームと同じ画像にはなっていないことがあるからである。そのため、そのように不正確に再現された参照フレームを参照して検出されたグローバル動きベクトルに誤差が生じる可能性がある、ということである。
【０００６】
また、従来には、画像の高効率符号化に際しグローバル動きベクトルを検出する必要の無いような場合でもグローバル動きベクトルの検出処理が行われてしまう、という第二の課題もある。これは例えば１９２０×１０８０画素のハイビジョン画像で構成されている動画像では、その画素単位での動き量は最大で横方向に１９２０、縦方向に１０８０（半画素単位ではその２倍の動き量）であり、その探索範囲も広く取る必要がある。一方、３２０×２４０画素で構成されている動画像では、その画素単位での動き量は最大で横方向に３２０、縦方向に２４０であり、上記と同じ動きの動画像であっても、その画素（あるいは半画素、１／４画素など）単位での動き量探索範囲は上記に比べて狭くてすむ。あるいは、ニュースのスタジオ映像とスポーツ映像とではその平均的な動き量は格段に異なる、という具合に映像種類などによってもその探索範囲に違いが生じる可能性が高い。従って、上記動画像の画像サイズやその動画内容などによっては、グローバル動きベクトルの検出処理を行わず、通常のマクロブロック単位での動きベクトル検出のみでもその演算量は比較的少なくて済む場合がある、ということである。
【課題を解決するための手段】
【０００７】
以上の課題を解決するために、本発明は、入力画像を、動きベクトルを用いて符号化する符号化装置において、ＤＣＴ変換後の高周波成分除去や量子化による余りの切捨てなどや、可変長符号化を利用した画像変換器の外部にグローバル動きベクトル検出器を備えた画像符号化装置を提供する。このような構成をとることにより、本発明は、非可逆圧縮される前の入力画像を利用してグローバル動きベクトルを検出することができる。また、グローバル動きベクトル検出器が画像変換器の外部にあるため、画像変換に際してそのグローバル動きベクトル検出器を利用するか否かの切替えも容易に行うことができる。なお「外部に備える」とはハードウェア構造が物理的に別個である構成のほか、同一のハードウェアがソフトウェア処理上で外部的に取り扱われるような構成であっても良い。
【発明の効果】
【０００８】
このように、非可逆圧縮される前の入力画像を利用してグローバル動きベクトルを検出することができるので、参照先画像の再現誤差を原因とするグローバル動きベクトルの誤検出を無くすことができる。また、動画像の符号化に際してそのグローバル動きベクトル検出機構を利用するか否か、を、その状況などに応じて容易に切替えることができるので無駄な演算処理を省くことができる。
【発明を実施するための最良の形態】
【０００９】
以下に、図を用いて本発明の実施の形態を説明する。なお、本発明はこれら実施の形態に何ら限定されるものではなく、その要旨を逸脱しない範囲において、種々なる態様で実施しうる。なお、実施例１は、主に請求項１、５について説明する。また、実施例２は、主に請求項２、６について説明する。また、実施例３は、主に請求項３、７について説明する。また、実施例４は、主に請求項４、８について説明する。
【００１０】
≪実施例１≫    <実施例１の概要>  図１に示すのは、本実施例の画像符号化装置を実装した装置の一例（ここではテレビチューナ付画像符号化ボード）を表す概略図である。この図にあるように、本実施例の画像符号化装置は、ＤＣＴ演算や空間周波数の高周波成分除去、量子化、可変長符号化、あるいは動きベクトルを用いた符号化などの演算処理を行い画像変換処理を行う第一変換処理チップの外部に、グローバル動きベクトルを検出しサーチ範囲を決定する第二のグローバル動きベクトル検出チップを別個に備える画像符号化ボードである。したがって、本発明の画像符号化装置においては、グローバル動きベクトル検出チップでの検出処理に際し、第一変換チップで非可逆圧縮され逆変換された入力画像ではなく、テレビチューナ（画像入力器）から入力された入力デジタル画像を直接参照利用することができる。
【００１１】
<実施例１の構成>  図２に示すのは、本実施例の画像符号化装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「画像符号化装置」（０２００）は、動きベクトルを用いて入力画像を符号化する符号化装置であって、そのために「第一チップ」（０２１０）と、「第二チップ」（０２２０）と、が別個に配置されている。そして、第一チップは、「変換処理部」（０２１１）と、「逆変換処理部」（０２１２）と、「第一検出部」（０２１３）と、を有している。また、第二チップは「第二検出部」（０２２１）と、「サーチ範囲決定部」（０２２２）と、を有し相互に独立して処理を行うことを可能としている。なお本発明は、前述のように第一チップと第二チップとが物理的に別個である構成のほか、同一のハードウェアチップがソフトウェア処理上で別個に取り扱われるような構成などであっても良い。
【００１２】
また、以下に記載する本装置の機能ブロックは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方として実現され得る。具体的には、コンピュータを利用するものであれば、ＣＰＵや主メモリ、バス、あるいはハードディスクや不揮発性メモリなどの記憶装置、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶メディア、それらメディアの読取ドライブ、各種通信や印刷機器用の送受信ポート、その他の周辺装置などのハードウェア構成部や、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラム、情報入力に利用されるインターフェースなどが挙げられる。そして、これらハードウェアやソフトウェアは、メモリ上に展開したプログラムをＣＰＵで順次演算処理したり、メモリやハードディスク上に保持されているデータや、インターフェースを介して入力されたデータなどを加工、蓄積、出力処理したり、あるいは各ハードウェア構成部の制御を行ったりするために利用される。また、この発明は装置として実現できるのみでなく、方法としても実現可能である。また、このような発明の一部をソフトウェアとして構成することができる。さらに、そのようなソフトウェアをコンピュータに実行させるために用いるソフトウェア製品、及び同製品を記録媒体に固定した記録媒体も、当然にこの発明の技術的な範囲に含まれる（本明細書の全体を通じて同様である）。
【００１３】
「変換処理部」（０２１１）は、入力画像に対し、画像の高効率符号化のための変換処理を行う機能を有する。「画像の高効率符号化のための変換処理」とは、例えば上記画像内（空間）相関を利用した第一の画像変換、画像間（時間）相関を利用した第二の画像変換、そして符号の出現確率に応じた可変長符号化を利用した第三の画像変換、などによる画像の変換処理が挙げられる。そして、上記空間相関を利用した第一の画像変換に際しては、例えば一枚の入力画像の空間周波数を直交変換するためのＤＣＴ変換（離散コサイン変換）処理やそのＤＣＴ変換処理によって得られた画像の高周波成分の除去処理、あるいはそのＤＣＴ変換後の画素ブロックの係数をある除数で除し、その余りを切り捨て商のみでＤＣＴ係数を表現する量子化などの処理が行われる。また、後述する第二検出部にて検出されたグローバル動きベクトルを利用した動きベクトルの検出や、その動きベクトルを利用したフレーム間予測による第二の画像変換処理もこの変換処理部にて行われる。
【００１４】
「逆変換処理部」（０２１２）は、変換処理部（０２１１）にて変換処理された入力画像の高効率符号化データを逆変換し画像として再現する機能を有する。逆変換処理とは、変換処理部での処理がＤＣＴ変換処理であれば逆ＤＣＴ変換処理、量子化処理であれば逆量子化処理などが挙げられる。ただし動画データの高効率符号化のための変換処理として一般的な高周波成分除去を行うＤＣＴ変換処理や量子化処理は非可逆変換処理であるため、この逆変換処理部での逆ＤＣＴ変換処理、逆量子化処理では入力画像が正確には再現されないことになる。そのためグローバル動きベクトルを検出する際に、この逆変換され正確に再現されていない画像が用いられるとグローバル動きベクトルの検出精度も落ちてしまう可能性がある。そこで、本発明では以下に説明するように、グローバル動きベクトル検出に際してこの逆変換処理部で逆変換処理され（不正確に）再現された入力画像は利用しない。
【００１５】
「第一検出部」（０２１３）は、入力画像中の所定サーチ範囲を変換−逆変換処理画像のマクロブロック単位でサーチして動きベクトルを検出する機能を有する。「所定サーチ範囲」とは、後述する第二検出部で検出されたグローバル動きベクトルに基づいてサーチ範囲決定部によって決定された、動きベクトルの検出処理のためのサーチ範囲をいう。なお、この所定サーチ範囲の決定処理については、後述の第二検出部およびサーチ範囲決定部において説明する。また、「変換−逆変換処理画像」とは、変換処理部（０２１１）にて変換処理された入力画像の符号化データを、逆変換処理部（０２１２）にて逆変換処理し再現された画像のデータを言う。
【００１６】
図３に示すのは、入力画像と、その入力画像の変換−逆変換画像と、の一例を表す概略図である。この図にあるように、画像の空間相関を利用した変換では、図（ａ）に示す例えばチェスの盤目のように白から黒へと言う具合に隣接画素が急激に変化するなどの画像で効率的な変換を行うことが困難である。したがって、圧縮効率を高く設定していると、入力画像の変換処理後に逆変換処理した場合、図（ｂ）に示すように、その盤目の輪郭部などが正確に復元されない、という可能性がある。すると時間相関を利用した第二の画像変換処理のため動きベクトルを検出する際に、動きの参照先としてこの正しく再現されていない入力画像が用いられると、その入力画像の再現誤差の大きさによっては動きベクトルの検出精度も落ちてしまうことになる。そして、従来の画像符号化装置では、グローバル動きベクトルを検出するための第二検出部もこの第一チップに配置されているため、グローバル動きベクトルの検出においても同様の検出精度低下の問題があった。そこで、本実施例では、上記「所定サーチ範囲」を決定するための第二検出部でのグローバル動きベクトルの検出を、入力画像を直接利用して行えるように以下のような構成をとる。すなわち、上記変換処理部、逆変換処理部、第一検出部が配された第一チップとは別個に設けられた第二チップに配置することを特徴としている。
【００１７】
「第二検出部」（０２２１）は、グローバルマクロブロック単位で入力画像間でのグローバル動きベクトルを検出する機能を有する。「グローバルマクロブロック」とは、第一検出部での動きベクトルの検出単位であるマクロブロックよりも大きなブロックをいうが、その大きさは適宜設計により設定可能であって構わない。そして、このグローバルマクロブロック単位で検出されたグローバル動きベクトルが、前述の第一検出部での動きベクトル検出のためのサーチ範囲を決定するために利用されることになる。
【００１８】
図４に示すのは、グローバル動きベクトルの検出処理の一例について説明するための概念図である。ここで、図にあるように、例えばフレーム（入力画像）２のマクロブロックαがフレーム１ではどこに移動しているかを前述の第一検出部で探索するための、この第二検出部でのグローバル動きベクトルの検出処理について説明する。そのために、まず、第一検出部にて動きベクトルを検出する入力画像の識別情報「フレーム２」と、そのマクロブロックαの座標情報、およびその動き先探索のための参照用入力画像の識別情報「フレーム１」が第一チップから第二チップへと送信される。第二チップでは、受信したそれら識別情報や座標情報などに基づき、この図（ａ）にあるように、まずフレーム２におけるマクロブロックαを含むグローバルマクロブロックであるα´を特定する。そしてそのグローバルマクロブロックα´のフレーム１での動き先を探索する。そこでサーチ範囲としてフレーム１の画像全体のβ´をサーチ範囲とし、その範囲内にあるグローバルマクロブロックと同サイズのブロックγ´１とグローバルマクロブロックα´との相関係数を求める。具体的には、例えばα´を構成する画素とγ´１を構成する画素の、対応画素間での差分の絶対値の総和を求める。つまりこの相関係数が小さいほどα´とγ´１の画像を構成する画素が類似していると言える。そして、「α´とγ´２」、「α´とγ´３」、・・・・・「α´とγ´X」という具合に探索範囲β´内を所定の画素単位で動かしながらサーチし、それぞれのブロックとの相関係数を算出する。そしてその中から最も小さい相関係数をとるブロックを、グローバルマクロブロックα´のフレーム１における移動先γ´と特定する。なお、この相関係数を算出するための参照先の入力画像のブロックγ´１、γ´２、・・・は、グローバルマクロブロックと同一のサイズを持つブロックを、その探索範囲内で所定の画素単位で移動させることで得られるブロックである。そして、グローバルマクロブロックα´の移動先γ´への移動方向と移動量からグローバル動きベクトルが検出される、という具合である。ここで、所定の画素単位とは1画素・半画素・１／４画素、あるいは２画素・4画素などを示し、システム仕様上要求される演算量とベクトルの検出精度に従って値が規定されると良い。もちろん上記のように探索範囲内のブロック全ての相関係数を演算する検出処理は一例であり、演算負荷を下げるため任意の３つのブロックの相関係数を求め、その大小関係から移動先のブロックを絞り込んでいく、いわゆるログサーチと呼ばれる処理などでグローバル動きベクトルを検出しても構わない。また、グローバルベクトルを検出する入力画像としては符号化の対象となる原画像のほかに、原画像を縮小した画像であっても良く、その縮小比率はシステム仕様上で要求される演算の処理量・メモリ容量・画像サイズなどに従って適宜設定される。
【００１９】
そして本実施例の特徴は、この相関係数を求めるための参照先となるフレーム「１」が、ＤＣＴや量子化などによる変換後に逆変換された画像ではない点である。そのため正確な入力画像での比較を行うことができ、ひいては正確なグローバル動きベクトルを検出することができることになる。
【００２０】
「サーチ範囲決定部」（０２２２）は、第二検出部（０２２１）で検出されたグローバル動きベクトルを利用して、第一検出部で行うサーチのサーチ範囲を決定する機能を有する。このサーチ範囲の決定は、例えば検出されたグローバル動きベクトルで示される移動先を中心とする所定の範囲をサーチ範囲と決定する方法や、第二検出部で検出されたグローバルマクロブロックの移動先とされるブロックそのもの、あるいはそのブロックを所定倍率分広くしたブロックをサーチ範囲と決定する方法などが挙げられる。
【００２１】
そして、このようにして従来技術と比較してより正確なグローバル動きベクトルに基づいて決定されたサーチ範囲を示す情報が第一検出部に送信され、第一検出部ではその受信したサーチ範囲内でマクロブロック単位の動きベクトルの検出を行うことができる。したがって、第一検出部での動きベクトル検出処理において、そのマクロブロックの移動先探索範囲を限定することができるので、装置全体での処理負荷を抑えることができる。なお、このサーチ範囲決定部は、第二チップではなく第一チップに備えられていても構わない。第二検出部さえ第一チップとは別個のチップに備えられていれば、従来と比べて正確なグローバル動きベクトルを検出することが可能だからである。
【００２２】
<実施例１のハードウェア構成例>  図５に示すのは、本実施例の画像符号化装置におけるハードウェア構成の一例を表す概略図である。この図を利用してグローバル動きベクトルの検出処理におけるそれぞれのハードウェア構成部の働きについて説明する。なお、ここでは例として、常に１フレーム前の画像を参照フレームとし、またグローバルベクトルを検出する画像は、符号化対象の入力画像のままで縮小など処理を行わないものとして説明する。この図にあるように、本実施例の画像符号化装置は、第一検出部、変換処理部、および逆変換処理部の機能を備える「第一変換チップ」（０５０１）と、第二検出部、およびサーチ範囲決定部の機能を備える「第二変換チップ」（０５０２）とが、「演算器」と「主メモリ」とをそれぞれ備え、個別に配置されている点を特徴としている。また高効率符号化の対象となる画像を入力する「画像入力手段」（０５０３）や、その入力画像を格納する「ビデオメモリ」（０５０４）、変換チップによって符号化された画像を記憶装置などに出力する「出力手段」（０５０５）も備えている。そしてそれらがバスなどのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
【００２３】
また、「ビデオメモリ」は、第一変換チップと第二変換チップとで共用されても良いし、それぞれが別個にビデオメモリを有していても良い（図面は共用のビデオメモリを記載）。また第一および第二変換チップ内のそれぞれの「主メモリ」は、演算器で実行するプログラムの作業領域であるワーク領域と、そのプログラムによって処理するためのデータを格納するデータ領域とを提供する。そして、この「ビデオメモリ」や「主メモリ」には複数のメモリアドレスが割り当てられており、「演算器」で実行されるプログラムは、そのメモリアドレスを特定しアクセスすることで相互にデータのやりとりを行い、処理を行うことが可能になっている。
【００２４】
ここで、「画像入力手段」から高効率符号化の対象となる画像が入力される。ここでの入力画像は、例えばテレビチューナにて受信したアナログ放送波を無圧縮で符号化した動画像データや、デジタルビデオカメラで撮影した無圧縮の符号化動画像データなどさまざまであって良い。あるいは高効率符号化された動画像データを展開した符号化動画像であっても良い。そして、ここで入力された動画を構成する画像がシステムバスを介しビデオメモリの所定のメモリアドレスに、例えばメモリアドレスＡに入力画像１（動画像データの最初のフレーム）、メモリアドレスＢに入力画像２（動画像データの２番目のフレーム）、・・・という具合に格納される。
【００２５】
そして、まず、第二変換チップのグローバル動きベクトル検出プログラムが演算器２により実行され、入力画像２の各グローバルマクロブロックの入力画像１に対するグローバル動きベクトルが検出される。そのために、例えば予め設定されたグローバルマクロブロックの画素サイズを示す情報などに基づいてグローバル動きベクトルの検出対象となるグローバルマクロブロックα´の座標情報が順次特定され、主メモリ２のメモリアドレスｄに格納される。そして、前述の相関係数を算出するため、グローバルマクロブロックの画素情報の取得が行われる。具体的には、メモリアドレスａに格納された入力画像の識別情報「２」と、メモリアドレスｄに格納されたグローバルマクロブロックの座標情報と、に基づいて、「ビデオメモリに格納されている入力画像「２」のグローバルマクロブロックα´内の画素情報を、それぞれの画素識別情報と関連付けて主メモリ２に格納せよ」という具合の命令が演算器２より送出され実行される。
【００２６】
また、同様に入力画像「１」のブロック（前述の例ではγ´１、γ´２、・・・・γ´Ｘ）の座標情報の特定、およびその特定に基づく画素情報の取得、及び主メモリ２への格納も行われる。続いて、「画素識別情報に基づいて「α´とγ´１」の対応する画素の差分値をとり、その絶対値の総和を演算し、その演算結果（相関係数）を、演算対象となる入力画像「１」のブロックの識別情報と関連付けて主メモリ２のメモリアドレスｅに格納せよ」とのプログラム命令に従い、演算器での演算、および演算結果のメモリアドレスｅへの格納が実行される。また、同様の演算処理が「α´とγ´２」、「α´とγ´３」、・・・「α´とγ´Ｘ」に関しても実行され、その演算結果が主メモリのメモリアドレスｆ、ｇ、・・・ｘに格納される。
【００２７】
つづいてプログラムの命令、「主メモリ２のメモリアドレスｅ，ｆ，ｇ、・・・ｘにそれぞれ格納されている演算結果（相関係数）の大小比較を行い、最小となる相関係数を特定せよ」、にしたがい、演算器２の演算処理による大小比較が実行されその最小を取る相関係数が特定される。そして、「特定された相関係数をとるブロックの識別情報を取得し、主メモリのメモリアドレス１０に格納せよ」との命令にしたがい、その相関係数と関連付けられたブロックの識別情報が、グローバルマクロブロック「α´」の、フレーム１における動き先ブロックを示す識別情報「γ」として取得され、主メモリ２のメモリアドレス１０に格納される。そして「グローバルマクロブロックと動き先として特定されたブロックの中心座標の情報からグローバル動きベクトルを算出し主メモリ２のメモリアドレス１１に格納せよ」といった命令に従い、それぞれの中心点の座標情報から演算器２の演算によりグローバル動きベクトルが算出され、主メモリ２のメモリアドレス１１に格納される。そして、この操作をフレーム２の全体のグローバルマクロブロックについて行い、フレーム２のフレーム１に対するグローバル動きベクトルテーブルを作成する。さらに、フレーム３が入力されたときは、以上の処理をフレーム２との間で行い、フレーム３のフレーム２に対するグローバル動きベクトルテーブルを作成する、という具合である。
【００２８】
つづいて、上記作成されテーブルとしてメモリなどに保持されているグローバル動きベクトルを利用したマクロブロックでの動きベクトルの検出処理が行われる。そのために第一変換チップの演算器１の演算処理によって第一の画像変換、すなわち入力画像１のＤＣＴ変換処理や量子化処理などが行われる。次に入力画像２のＤＣＴ変換処理や量子化処理などが行われるが、その際に、例えば動きベクトルの検出対象となるフレーム（入力画像）の識別情報「２」とマクロブロックαの識別情報やその座標情報、また動きベクトル検出の際の参照先となるフレームの識別情報「１」とが特定され、それら識別情報がシステムバスなどを介し第二変換チップへと送信される。
【００２９】
続いてこのようにして送信された識別情報や座標情報が主メモリのメモリアドレスｂ、ｃなどに格納され、それら情報をキーとして、ＣＰＵによりグローバル動きベクトルテーブルの検索処理が実行される。そして、その検索の結果、フレーム２のグローバルマクロブロック「α´」におけるフレーム１へグローバル動きベクトルがグローバル動きベクトルテーブルから読み出され、そのグローバル動きベクトルに基づいて所定サーチ範囲の算出処理が行われる。そしてその算出された所定サーチ範囲を示す情報などがバスなどを介し第一変換チップに送信される。
【００３０】
そして第一チップでは、受信した所定サーチ範囲内で、マクロブロック「α」の動きベクトルの検出処理が行われ、検出された動きベクトルに基づいて入力画像の高効率符号化を行う、という具合である。なお、それぞれのチップの演算器１および演算器２が物理的に別個の演算器である場合、それぞれで処理される情報がバスなどの情報送受信経路上でコンフリクトしないようにその情報の流れ順などが制御器などよって制御される構造になっていると良い。
【００３１】
<実施例１の処理の流れ>  図６に示すのは、本実施例の画像符号化装置の第二チップにおける処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。この図にあるように、まず、第二チップにて、変換処理前の入力画像の各グローバルマクロブロックにおけるグローバル動きベクトルをそれぞれ検出し、グローバル動きベクトルテーブルを作成する（ステップＳ０６０１）。つづいて、第一チップでの動きベクトル検出処理における検出対象の入力画像や参照先となる入力画像、またマクロブロックの座標などを特定するための情報を、第二チップにて取得する（ステップＳ０６０２）。次に、第二チップにて、前記取得した特定情報に基づいて前記グローバル動きベクトルテーブルを参照し、動きベクトルの検出対象となるマクロブロックを含むグローバルマクロブロックのグローバル動きベクトルを取得し（ステップＳ０６０３）、そのグローバル動きベクトルに基づいて第一チップでの動きベクトル検出のためのサーチ範囲を決定する（ステップＳ０６０４）。そして、第一チップにおいて、前記決定されたサーチ範囲内で前記検出対象のマクロブロックにおける動きベクトルを検出する（ステップＳ０６０５）。
【００３２】
<実施例１の効果の簡単な説明>  以上のように、本実施例の画像符号化装置によってグローバル動きベクトル検出チップでの検出処理に際し、非可逆圧縮され逆変換された入力画像ではなく、入力画像を直接参照利用することができる。したがって、参照先画像の再現誤差を原因とするグローバル動きベクトルの誤検出を無くすことができ、従来よりも正確なグローバル動きベクトルの検出を可能とすることができる。
【００３３】
≪実施例２≫    <実施例２の概要>  画像間での動き量の少ない動画、例えばニュースのスタジオ画像など、ではグローバル動きベクトルを利用しなくても演算量を抑えることができる可能性が高い。そこで本実施例の画像符号化装置では、実施例１を基本として、そのような状況に応じてグローバル動きベクトルを利用するか否かの判断を行う機能をさらに有する。このように判断処理によってグローバル動きベクトルを利用せずに動きベクトルを用いて入力画像を符号化することは、その動きベクトルを用いた画像符号化チップの外部に第二検出部を配置することで容易に可能とすることができる。
【００３４】
<実施例２の構成>  図７に示すのは、本実施例の画像符号化装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「画像符号化装置」（０７００）は、実施例１を基本として、「第一チップ」（０７１０）と、「第二チップ」（０７２０）と、が別個に配置されている。そして、第一チップは、「変換処理部」（０７１１）と、「逆変換処理部」（０７１２）と、「第一検出部」（０７１３）と、を有している。また、第二チップは「第二検出部」（０７２１）と、「サーチ範囲決定部」（０７２２）と、を有し相互に独立して処理を行うことを可能としている。なお、これら機能ブロックについては実施例１においてすでに記載済みであるのでその説明は省略する。そして本実施例の画像符号化装置の特徴点は、さらに「グローバル動きベクトル利用判断部」（０７３０）を有している点である。
【００３５】
「グローバル動きベクトル利用判断部」（０７３０）は、前記グローバル動きベクトルを利用するか、利用しないかを判断する機能を有する。この判断は、例えば上記のようにニュース番組やスポーツ番組などその動画内容に応じた判断のほか、実施例３で説明する動画像の画像サイズに応じた判断などが挙げられる。また、その判断基準となる情報は、例えばインターフェースを介しユーザーに入力してもらう動画内容などの情報や、放送番組の録画であれば電子番組表などから取得可能な番組ジャンル情報などが挙げられる。あるいは動画像では通常中心以外の周囲部分には背景など動かない被写体が多い、という前提で、とりあえず中心部分のグローバルマクロブロックにおけるグローバル動きベクトルを検出し、その動き量が閾値以下であれば画像全体でグローバル動きベクトルを利用しないと判断する、という構成にしても良い。
【００３６】
また、このグローバル動きベクトル利用判断部の具体的な構成例としては、例えばユーザー入力用や情報取得用インターフェースとＣＰＵとから構成され、インターフェースから取得した情報（例えば動画内容のジャンルを示す識別情報など）に応じて、ＣＰＵ（中央演算装置）にてグローバル動きベクトルを利用する／しないの判断処理を行うと良い。なお、「グローバル動きベクトルを利用しない」とは、例えば第二検出部にてグローバル動きベクトルの検出自体を行わないことであっても良いし、あるいは、第二検出部での検出は実行するが、その検出したグローバル動きベクトルをサーチ範囲決定部の対し送出しないことであっても良い。また、サーチ範囲決定部への送出は行うが、そこでのサーチ範囲の決定処理が行われないことであっても良いし、あるいは、決定されたサーチ範囲を、動きベクトル検出のための第一検出部には送出しないことであっても良い。そして、このような場合の第一検出部におけるサーチ範囲は、入力画像全体であったり、あるいは予め設定された所定のサーチ範囲などが利用されたりすると良い。
【００３７】
<実施例２の処理の流れ>  図８に示すのは、本実施例の画像符号化装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。この図にあるように、まず、グローバル動きベクトルの検出処理を行うか否かの判断が行われる（ステップＳ０８０１）。なお、その判断の基準となる情報は、前述のとおりジャンル情報や中央部の動きベクトル情報などさまざまであって良い。またその取得もインターフェースを介して入力取得したり電子番組表から自動で取得したりするなど様々であって良い。そして、前記判断結果がグローバル動きベクトルを利用するというものであった場合、実施例１で説明したように第二チップにおいてグローバル動きベクトルの検出処理（ステップＳ０８０２）、およびそれに基づくサーチ範囲の決定処理が行われる（ステップＳ０８０３）。そしてその決定されたサーチ範囲に基づいて探索が行われ動きベクトルが検出される（ステップＳ０８０５）。
【００３８】
また、前記判断結果が利用しない、というものであった場合、例えばグローバル動きベクトルの検出処理やサーチ範囲の決定処理は行われずに、画像全体をサーチ範囲とするなどして第一チップにおいてマクロブロックの動きベクトル検出処理が実行される（ステップＳ０８０４）。
【００３９】
<実施例２の効果の簡単な説明>  以上の本実施例の画像符号化装置によってグローバル動きベクトルの検出処理を行うか否か状況に応じて切替えることができる。したがって、マクロブロックの動きベクトル検出処理に当たって場合によっては無駄となるグローバル動きベクトル検出の演算処理を省くことができる。したがって装置の演算負荷を抑えることができ、電力消費の低減や、それによる環境への負荷低減をも実現しうる。
【００４０】
≪実施例３≫    <実施例３の概要>  本実施例の画像符号化装置は、実施例２を基本として、上記グローバル動きベクトル利用判断部での判断が、動画像の画像サイズに応じて行われることを特徴とする画像符号化装置である。図９に示すのは、この動画像の画像サイズに応じた判断の一例について説明するための概略図である。この図にあるように、例えば動画像の画像サイズが「３２０×２４０」である動画像（ａ）と、画像サイズが「１９２０×１０８０」である動画像（ｂ）とでは、おじぎをして上体を倒すという同じ動きであっても破線で示すその画素単位での上体の動き量は動画像（ｂ）の方がはるかに大きい。しかも２００５年現在の動画像の圧縮変換での動きベクトルの検出において、そのサーチは半画素、あるいは１／４画素単位であるため探索量の差はさらに大きくなる。このように、同じ動画像であってもその画像サイズによって動きベクトルのサーチ範囲は変わってくることになる。そこで、本実施例の画像符号化装置では、サーチ範囲が画素（あるいは半画素、１／４画素など）単位では大きくならない画像サイズの動画データの場合には、その圧縮変換処理に際してグローバル動きベクトルを利用しない判断を行う機能を備えている。これにより結果的に処理負荷の軽減や処理スピードを向上させることができる。
【００４１】
<実施例３の構成>  図１０に示すのは、本実施例の画像符号化装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「画像符号化装置」（１０００）は、実施例２を基本として、「第一チップ」（１０１０）と、「第二チップ」（１０２０）と、が別個に配置され、また、「グローバル動きベクトル利用判断部」（１０３０）も有している。そして、第一チップは、「変換処理部」（１０１１）と、「逆変換処理部」（１０１２）と、「第一検出部」（１０１３）と、を有している。また、第二チップは「第二検出部」（１０２１）と、「サーチ範囲決定部」（１０２２）と、を有し相互に独立して処理を行うことを可能としている。なお、これら機能ブロックについては実施例１や２においてすでに記載済みであるのでその説明は省略する。そして本実施例の画像符号化装置の特徴点は、さらに「画像サイズ取得部」（１０４０）を有し、またそのグローバル動きベクトル利用判断部が「画像サイズ依存判断手段」（１０５０）、を有している点である。
【００４２】
「画像サイズ取得部」（１０４０）は、前記入力画像の画像サイズを取得する機能を有する。なお、この画像サイズの取得は、例えば動画像取得時にそのファイル情報などから取得すると良い。また「画像サイズ」とは、例えばその入力画像を構成する画素数であっても良いし、一画素ごとのデータ量が決まっている場合などはそのデータ量であっても構わない。
【００４３】
「画像サイズ依存判断手段」（１０５０）は、画像サイズ取得部（１０４０）で取得した画像サイズに基づいて、グローバル動きベクトルを利用するか否かの判断処理を行う機能を有する。これは、例えば予め「動画像の縦画面サイズの閾値」、あるいは「動画像の横画面サイズの閾値」などを設定しておき、演算器にて画像サイズ取得部で取得した画像サイズとこの予め設定された閾値とを大小比較することで判断するなどの方法が挙げられる。
【００４４】
<実施例３のハードウェア構成例>  図１１に示すのは、本実施例の画像符号化装置におけるハードウェア構成の一例を表す概略図である。この図を利用して画像サイズに依存したグローバル動きベクトルの利用判断処理におけるそれぞれのハードウェア構成部の働きについて説明する。この図にあるように、本実施例の画像符号化装置は、実施例１と同様に第一検出部、変換処理部、および逆変換処理部の機能を備える「第一変換チップ」（０５０１）と、第二検出部、およびサーチ範囲決定部の機能を備える「第二変換チップ」（０５０２）とが、「演算器」と「主メモリ」とをそれぞれ備え、個別に配置されている。また符号化するための画像、およびその画像サイズの情報を取得する「画像入力手段」（０５０３）や、その入力画像を格納する「ビデオメモリ」（０５０４）、変換チップによって符号化された画像を出力する「出力手段」（０５０５）も備えている。そしてそれらが配線やシステムバスなどのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。また、本実施例では、さらにグローバル動きベクトルを利用するか否かの判断処理を行うための演算器３やその演算器３用の主メモリ３などもシステムバスなどを介し接続されている。
【００４５】
もちろん、それぞれの「主メモリ」は、演算器で実行するプログラムの作業領域であるワーク領域と、そのプログラムによって処理するためのデータを格納するデータ領域とを提供し、また、この「ビデオメモリ」や「主メモリ」には複数のメモリアドレスが割り当てられ、「演算器」で実行されるプログラムは、そのメモリアドレスを特定しアクセスすることで相互にデータのやりとりを行い、処理を行うことが可能になっている。
【００４６】
ここで、「画像入力手段」から符号化されるべき画像が入力される。するとその入力画像の取得と同時に、その動画データのファイル情報に含まれる動画像の画像データサイズ「７２０×４８０（画素）」も取得される。そして、この入力画像取得をトリガーとし、画像サイズ依存判断プログラムが実行され、その命令によりこの画像データサイズの情報「７２０×４８０」が、主メモリ３のメモリアドレスｂに格納される。また、予め保持されている閾値、例えば「横サイズ６４０」、「縦サイズ４８０」、などの情報も主メモリ３のメモリアドレスａに格納される。そして、主メモリ３のメモリアドレスａとｂに格納されている数値の大小を比較し、画像データサイズが閾値以下か判断せよ」との命令に従い、演算器３により数値データの大小比較処理が行われる。そして、また、「大小比較結果が、画像データサイズが閾値よりも大きいことを示す場合、第二チップでのグローバル動きベクトル検出処理を実行するための命令を送出せよ。あるいは大小比較結果が、画像データサイズが閾値よりも小さいことを示す場合、第二チップでのグローバル動きベクトル検出処理を実行しないための命令を送出せよ。」といった具合の命令に従い、その大小比較の判断結果に応じた命令送出処理が行われる、という具合である。
【００４７】
<実施例３の処理の流れ>  図１２に示すのは、本実施例の画像符号化装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。この図にあるように、まず、入力画像の画像サイズを取得する（ステップＳ１２０１）。続いて、取得した画像サイズが予め設定などされている所定サイズ（閾値）以上であるか否かの判断処理が行われる（ステップＳ１２０２）。ここで、前記判断結果が閾値以上であるとの判断結果である場合、グローバル動きベクトルの検出処理が行われ（ステップＳ１２０３）、それに基づいてサーチ範囲が決定される（ステップＳ１２０４）。そしてその決定されたサーチ範囲に基づいて探索が行われ動きベクトルが検出される（ステップＳ１２０５）。
【００４８】
また、前記判断結果が閾値以下である場合、例えばグローバル動きベクトルの検出処理やサーチ範囲の決定処理は行われずに、画像全体をサーチ範囲とするなどして第一チップにおいてマクロブロックの動きベクトル検出処理が実行される（ステップＳ１２０５）。
【００４９】
<実施例３の効果の簡単な説明>  以上の本実施例の画像符号化装置によって画像サイズに応じてグローバル動きベクトルの検出処理を行うか否か状況に応じて切替えることができる。その画像サイズを示す情報は、動画データのファイル情報に通常含まれているので、この画像サイズを示す情報は自動的に取得されることになる。従ってマクロブロックの動きベクトル検出処理に当たって無駄となる可能性の高い演算処理を自動的に省くことができる。したがって実施例２同様、装置の演算負荷を抑えることができ、電力消費の低減や、それによる環境への負荷低減をも実現しうる。
【００５０】
<実施例３のその他の実施例>  また、本実施例の画像符号化装置は、さらに「グローバルマクロブロックサイズ決定部」を備えていても良い。「グローバルマクロブロックサイズ決定部」は、画像サイズ取得部にて取得した画像サイズに基づいてグローバルマクロブロックのサイズを決定する機能を有する。この決定は、例えば画像サイズが「３２０×２４０」画素ではグローバルマクロブロックのサイズを「３２×２４」画素、画像サイズが「１９２０×１０８０」画素ではグローバルマクロブロックのサイズを「９６×７２」画素とする、などの対応テーブルを利用して決定する方法や、画像サイズを変数ｘとする所定の関数ｆ（ｘ）を利用してグローバルマクロブロックのサイズを算出、決定する方法などが挙げられる。そして、このように入力画像の画像サイズに応じてグローバルマクロブロックを決定する機能をさらに備えることで、本実施例の画像符号化装置は、さらに無駄な演算処理を省くことができ、その処理負荷を低減させることができる。また、「グローバルマクロブロックサイズ決定部」より算出された値により縮小比率を決定し、符号化対象となる原画像からこの縮小比率にて縮小画像を作成し、その画像を用いてグローバルベクトル検出を行うことで、さらに処理量と使用するメモリ容量を低減することが可能となる。
【００５１】
≪実施例４≫    <実施例４の概要>  図１３に示すのは従来の画像符号化装置が保持する、検出したグローバル動きベクトルの保持テーブルの一例を表す概念図である。この図にあるように、圧縮率と画質向上を図る近年の処理においては、グローバル動きベクトルは隣接フレーム間のみならず、非隣接の任意の２フレーム間で検出することが求められる。そのような場合、画像符号化装置が保持すべきグローバル動きベクトルのデータ数は、図のテーブルに示すように入力画像の数（あるいは１枚のフレーム画像の参照する可能性のあるフレーム画像の数）×グローバルマクロブロックの数、となる。しかし、本実施例の画像符号化装置では、（非隣接の）任意の２フレーム間でのグローバル動きベクトルを、複数の隣接グローバル動きベクトルの累積演算などによって擬似的に算出することで、その保持すべきグローバル動きベクトルの数を少なくすることができる。
【００５２】
図１４に示すのは、本実施例の画像符号化装置における、非隣接２フレーム間のグローバル動きベクトル算出処理の一例について説明するための概念図である。この図にあるように、本実施例では例えば斜線で示すフレーム＃５のグローバルマクロブロックの、フレーム＃１−＃５間のグローバル動きベクトルを以下のようにして算出する。すなわちフレーム＃４−＃５間のグローバル動きベクトルＤと、フレーム＃３−＃４間のグローバル動きベクトルＣと、・・・と、フレーム＃１−＃２間のグローバル動きベクトルＡと、を累積演算することで算出する。
【００５３】
このように本実施例では、隣接フレーム間でのグローバル動きベクトルを保持しておけば良いので、その保持データ量を削減することができる。なお、後述するようにグローバルマクロブロックの次のフレームでの動き先がそのグローバルマクロブロックと完全に一致するというケースは稀であるので、その場合は、例えば周辺４つのグローバルマクロブロックにおけるグローバル動きベクトル値からバイリニア補間などでそのグローバル動きベクトルを推定すると良い。
【００５４】
<実施例４の構成>  図１５に示すのは、本実施例の画像符号化装置における機能ブロックの一例を表す図である。この図にあるように、本実施例の「画像符号化装置」（１５００）は、実施例１を基本として、「第一チップ」（１５１０）と、「第二チップ」（１５２０）と、が別個に配置されている。そして、第一チップは、「変換処理部」（１５１１）と、「逆変換処理部」（１５１２）と、「第一検出部」（１５１３）と、を有している。また、第二チップは「第二検出部」（１５２１）と、「サーチ範囲決定部」（１５２２）と、を有し相互に独立して処理を行うことを可能としている。もちろん、実施例２や３を基本として「グローバル動きベクトル利用判断部」などを有していても良い。なお、これら機能ブロックについては実施例１などにおいてすでに記載済みであるのでその説明は省略する。そして本実施例の画像符号化装置の特徴点は、さらに「フレーム特定情報取得部」（１５３０）と、「隣接グロ−バル動きベクトル保持部」（１５４０）と、「検出フレーム間グローバル動きベクトル演算部」（１５５０）と、を有している点である。
【００５５】
「フレーム特定情報取得部」（１５３０）は、フレーム特定情報を取得する機能を有する。「フレーム特定情報」とは、符号化をするに際して、動きベクトルを利用して符号化すべきフレームと、動きベクトルを生成するために参照されるべきフレームと、を特定するための情報をいい、例えば、その符号化対象フレームおよび動きベクトルの参照先フレームの識別情報などが挙げられる。そして本実施例の画像符号化装置は、ここで取得されるフレーム特定情報にて特定されるフレーム間のグローバル動きベクトルを、次で説明する２つの機能ブロックの作用により算出することになる。
【００５６】
「隣接グローバル動きベクトル保持部」（１５４０）は、隣接グローバル動きベクトルを保持する機能を有する。「隣接グローバル動きベクトル」とは、第二検出部（１５２１）にて検出される隣接フレーム間でのグローバル動きベクトル値をいう。この隣接グローバル動きベクトル保持部は、例えば図１４に示すようなグローバル動きベクトルのテーブルデータのように、「グローバルマクロブロック２のフレーム＃１−＃２間でのグローバル動きベクトルはＡ」、「グローバルマクロブロック２のフレーム＃２−＃３間でのグローバル動きベクトルはＢ」、という具合に、グローバルマクロブロックごとの隣接フレーム間でのグローバル動きベクトルのデータを保持していると良い。このように、隣接フレーム間でのグローバル動きベクトルのみ保持しているので、本実施例では、任意のフレーム間全てのグローバル動きベクトルを保持する場合に比べその保持データ量を削減することができる。
【００５７】
そして、非隣接の任意のフレーム間におけるグローバル動きベクトルが必要となる場合には、次の「検出フレーム間グローバル動きベクトル演算部」での隣接グローバル動きベクトルに基づく演算によってその非隣接フレーム間でのグローバル動きベクトルを推定検出する点が本実施例の特徴である。
【００５８】
「検出フレーム間グローバル動きベクトル演算部」（１５５０）は、フレーム特定情報で特定される二つのフレーム間のグローバル動きベクトルを、隣接グローバル動きベクトル保持部（１５４０）に保持されている複数の隣接グローバル動きベクトルに基づいて演算する機能を有する。「複数の隣接グローバル動きベクトルに基づく演算」とは、例えば隣接グローバル動きベクトルの累積演算や、隣接グローバル動きベクトルを利用し線形補間などで推定された（推定）隣接グローバル動きベクトルの累積演算などが挙げられる。例えば図１４に示すフレーム＃５のグローバルマクロブロック６の（隣接フレームである）フレーム＃４での動き先が、フレーム＃４のグローバルマクロブロック５と完全に一致する、という具合に隣接フレーム間でのグローバルマクロブロックの動き先がそのマクロブロックと完全に一致する場合は、フレーム＃５−＃３のグローバル動きベクトルは、単純に隣接グローバル動きベクトルであるＤとＣを加算することで算出することができる。しかし、通常そのようなケースは稀である。したがって、本実施例ではフレーム＃５のグローバルマクロブロック６の動き先を、例えば動き先近傍のグローバルマクロブロックのグローバル動きベクトルのバイリニア補間などで推定する、などの処理を行い、その推定したグローバル動きベクトルを累積する。
【００５９】
具体的には、例えばフレーム＃５のグローバルマクロブロック６の隣接フレーム＃４での動き先は、メモリに格納されたそのグローバル動きベクトルＤを利用してＣＰＵの演算により算出することが可能である。そしてその算出したフレーム＃４での動き先位置（座標）情報を利用して、例えば４つのグローバルマクロブロック「１」「２」「５」「６」、という具合にその近傍にあるグローバルマクロブロックがＣＰＵの演算処理により選定される。そして、例えばそれぞれのグローバルマクロブロックの中心座標と、動き先中心座標との距離比率などからそれぞれの重み係数がＣＰＵの演算処理により算出される。そしてそれぞれのグローバルマクロブロックにおけるグローバル動きベクトルの成分を、それぞれの重み係数を乗じた上で累積し、その平均をＣＰＵの演算により算出することで、線形補間によって推定されたフレーム＃４の動き先におけるグローバル動きベクトルを演算することができる、という具合である。そして隣接フレーム間でのその推定されたグローバル動きベクトルなどを累積することで、非隣接のフレーム間のグローバル動きベクトルを演算することができる。つまり、本実施例の画像符号化装置によって、図１４に示すような情報量を抑えたデータテーブルのみの保持で、非隣接のフレーム間のグローバル動きベクトルを演算することが可能になる。
【００６０】
<実施例４の処理の流れ>  図１６に示すのは、本実施例の画像符号化装置における処理の流れの一例を表すフローチャートである。なお、以下に示すステップは、媒体に記録され計算機を制御するためのプログラムを構成する処理ステップであっても構わない。また、第一チップや第二チップでの動きベクトルの検出処理や隣接グローバル動きベクトルの検出処理は、実施例１で説明した処理と同様であるので省略しする。この図にあるように、まず、隣接グローバル動きベクトルを保持するために記録する（ステップＳ１６０１）。続いて、フレーム特定情報を取得する（ステップｓ１６０２）。そして、前記ステップＳ１６０２で取得したフレーム特定情報で特定される２つのフレーム間のグローバル動きベクトルを、前記ステップＳ１６０１にて記録され保持されている複数の隣接グローバル動きベクトルに基づいて、例えば線形補間を利用した推定や累積などによって演算する（ステップＳ１６０３）。
【００６１】
<実施例４の効果の簡単な説明>  以上の本実施例の画像符号化装置によって、隣接グローバル間のグローバル動きベクトルのデータテーブルのみの保持により保持データ量を抑えつつ、任意の非隣接フレーム間のグローバル動きベクトルを演算することが可能になる。
【００６２】
<実施例４のその他の実施例>  なお、実施例４の画像符号化装置は上記のような構成以外に、以下に示すような構成をとっても良い。すなわち上記画像符号化装置では、隣接フレーム間のグローバル動きベクトルを利用し累積演算などすることで非隣接フレーム間のグローバル動きベクトルを推定する。しかし、それとは逆に非隣接フレーム間でのグローバル動きベクトルのみを保持しておき、その非隣接グローバル動きベクトルを利用して線形補間演算などを行い、隣接グローバル動きベクトル、あるいは上記非隣接フレーム間と時間的な幅の異なる非隣接フレーム間でのグローバル動きベクトルを推定算出する、という機能を備えた画像符号化装置である。具体的には、上記実施例４の「隣接グローバル動きベクトル保持部」の代わりに「非隣接グローバル動きベクトル保持部」を備える画像符号化装置である。また、逆に、参照する非隣接フレーム間の画像の動きが一様であると仮定して、「参照する非隣接フレーム間のフレーム数×隣接フレームとのグローバル動きベクトル」の演算で求めたベクトル値を、参照する非隣接フレーム間のグローバル動きベクトルとしても良い。このような処理を行うことで、グローバル動きベクトルテーブルの参照回数を減らし、処理量を軽減することも可能である。
【図面の簡単な説明】
【００６３】
【図１】実施例１の画像符号化装置を実装した装置の一例を表す概略図
【図２】実施例１の画像符号化装置における機能ブロックの一例を表す図
【図３】画像符号化装置において処理される、入力画像と、その入力画像の変換処理―逆変換処理画像と、の一例を表す概略図
【図４】実施例１の画像符号化装置の第二検出部でのグローバル動きベクトルの検出処理の一例について説明するための概念図
【図５】実施例１の画像符号化装置におけるハードウェア構成の一例を表す概略図
【図６】実施例１の画像符号化装置における処理の流れの一例を表すフローチャート
【図７】実施例２の画像符号化装置における機能ブロックの一例を表す図
【図８】実施例２の画像符号化装置における処理の流れの一例を表すフローチャート
【図９】実施例３の画像符号化装置での、動画像の画像サイズに応じた切替の一例について説明するための概略図
【図１０】実施例３の画像符号化装置における機能ブロックの一例を表す図
【図１１】実施例３の画像符号化装置におけるハードウェア構成の一例を表す概略図
【図１２】実施例３の画像符号化装置における処理の流れの一例を表すフローチャート
【図１３】従来の画像符号化装置が保持する、検出したグローバル動きベクトルの保持テーブルの一例を表す概念図
【図１４】実施例４の画像符号化装置における、非隣接２フレーム間のグローバル動きベクトル算出処理の一例について説明するための概念図
【図１５】実施例４の画像符号化装置における機能ブロックの一例を表す図
【図１６】実施例４の画像符号化装置における処理の流れの一例を表すフローチャート
【図１７】従来のグローバル動きベクトルを利用した、マクロブロック単位の動きベクトル検出の一例を説明するための図
【符号の説明】
【００６４】
０２００  画像符号化装置
０２１０  第一チップ
０２１１  変換処理部
０２１２  逆変換処理部
０２１３  第一検出部
０２２０  第二チップ
０２２１  第二検出部
０２２２  サーチ範囲決定部
【図１】
0004606311.tif 000002
【図２】
0004606311.tif 000003
【図３】
0004606311.tif 000004
【図４】
0004606311.tif 000005
【図５】
0004606311.tif 000006
【図６】
0004606311.tif 000007
【図７】
0004606311.tif 000008
【図８】
0004606311.tif 000009
【図９】
0004606311.tif 000010
【図１０】
0004606311.tif 000011
【図１１】
0004606311.tif 000012
【図１２】
0004606311.tif 000013
【図１３】
0004606311.tif 000014
【図１４】
0004606311.tif 000015
【図１５】
0004606311.tif 000016
【図１６】
0004606311.tif 000017
【図１７】
0004606311.tif 000018