(57)【要約】      （修正有）【課題】複数のフレームを参照する場合に、効率良くメモリを使用できる画像処理装置、画像処理方法、プログラム及び記憶媒体を提供する。【解決手段】画像処理装置は、例えば、複数のフレームデータを参照して動画像データを符号化する。この画像処理装置は、動画像データを入力する入力手段と、前記動画像データの少なくとも１つのフレームデータを参照して、前記入力手段により入力された動画像データに動き補償を行って符号化する符号化手段と、前記符号化手段により参照されたフレームデータを特定するための参照情報を生成する参照情報生成器１６と、前記符号化された動画像データと前記参照情報とを合成する合成手段と、前記合成手段により合成されたデータを出力する出力器１８と、を備える。【選択図】図１
2005167720.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームデータを参照して動画像データを符号化する画像処理装置であって、
動画像データを入力する入力手段と、
前記動画像データの少なくとも１つのフレームデータを参照して、前記入力手段により入力された動画像データに動き補償を行って符号化する符号化手段と、
前記符号化手段により参照されたフレームデータを特定するための参照情報を生成する参照情報生成手段と、
前記符号化された動画像データと前記参照情報とを合成する合成手段と、
前記合成手段により合成されたデータを出力する出力手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記参照情報生成手段は、前記符号化手段がフレームデータを参照する毎に、どのフレームデータがどのフレームデータを参照しているかを示す情報を記録することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記参照情報生成手段は、前記符号化手段に参照される参照回数を求める参照情報評価手段を備え、該参照情報評価手段は、前記参照回数の少ないフレームを参照しないように前記符号化手段を指示することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記参照情報に基づいて、前記フレームデータを格納する複数のメモリのうちいずれを参照するかを制御する制御手段を備えることを特徴とする請求項１乃至請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記出力手段は、前記合成されたデータを通信可能に接続された通信回線に出力する通信インターフェースを備えることを特徴とする請求項１乃至請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
複数のフレームデータを参照して符号化された動画像データを復号化する画像処理装置であって、
符号化された動画像データとその符号化の際に参照されたフレームデータを特定するための参照情報とが合成されたデータを入力する入力手段と、
前記入力手段により入力されたデータを前記符号化された動画像データと前記参照情報とに分離する分離手段と、
前記分離手段により分離された符号化された動画像データを前記参照情報によって特定されたフレームデータを用いて復号化する復号化手段と、
前記復号化された動画像データを出力する出力手段とを有し、
前記復号化手段は、前記参照情報に応じて前記復号化された動画像データを参照フレームとして用いるために格納するメモリ手段を含むことを特徴とする画像処理装置。
【請求項７】
前記参照情報に基づいて、前記メモリ手段の動画像データを格納するメモリ領域を開放するように制御する制御手段を備えることを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記入力手段は、前記合成されたデータを通信可能に接続された通信回線から入力する通信インターフェースを備えることを特徴とする請求項６又は請求項７に記載の画像処理装置。
【請求項９】
前記参照情報は、前記フレームデータの時刻情報及び番号の少なくとも一方を含むことを特徴とする請求項１乃至請求項８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記参照情報は、最後に参照するフレームデータの時刻情報及び番号の少なくとも一方であることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
複数のフレームを参照して動き補償を行い、符号化する画像処理方法であって、
動画像データを入力する工程と、
前記動画像データのフレームデータの少なくとも１つを参照して、該動画像データに動き補償を行って符号化する工程と、
前記符号化する工程により参照されたフレームデータを特定するための参照情報を生成する工程と、
前記符号化された動画像データと前記参照情報とを合成して出力する工程と、
を含むことを特徴とする画像処理方法。
【請求項１２】
前記出力する工程では、前記合成されたデータを通信可能な通信回線に出力することを特徴とする請求項１１に記載の画像処理方法。
【請求項１３】
複数のフレームを参照して符号化データを復号化する画像処理方法であって、
符号化された動画像データとその符号化の際に参照されたフレームデータを特定するための参照情報とが合成されたデータを入力する工程と、
前記合成されたデータから前記符号化された動画像データと前記参照情報とを分離する工程と、
前記参照情報に基づいて、前記符号化された動画像データを復号化する工程と、
前記復号化されたデータを出力する工程と、
を含むことを特徴とする画像処理方法。
【請求項１４】
前記入力する工程では、前記合成されたデータを通信可能な通信回線から入力することを特徴とする請求項１３に記載の画像処理方法。
【請求項１５】
前記参照情報に基づいて、前記フレームデータを格納する複数のメモリのいずれを参照するかを制御する工程を含むことを特徴とする請求項１１乃至請求項１４のいずれか１項に記載の画像処理方法。
【請求項１６】
前記参照情報は、前記フレームデータの時刻情報及び番号の少なくとも一方を含むことを特徴とする請求項１１乃至請求項１５のいずれか１項に記載の画像処理方法。
【請求項１７】
請求項１１乃至請求項１６のいずれか１項に記載の画像処理方法をコンピュータによって実行させることを特徴とするプログラム。
【請求項１８】
請求項１１乃至請求項１６のいずれか１項に記載の画像処理方法をコンピュータによって実行させるためのプログラムを格納することを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、プログラム及び記憶媒体に関し、特に、複数のフレームを参照して符号化・復号化することに関するものである。
【背景技術】
【０００２】
近年、新しい動画符号化方式として、Ｈ．２６４が注目されている（例えば、非特許文献１参照。）。この符号化方式は、ＩＴＵ−Ｔ（International Telecommunication Union-Telecommunication Standardization Sector）とＩＳＯ/ＩＥＣ（ＩＳＯ:International Standardization Organization、 ＩＥＣ:International Electrotechnical Commission）によって、共同で開発されたものであり、２００３年夏に標準化される予定である。
【０００３】
Ｈ．２６４の特徴は、従来のＭＰＥＧ−１/−２/−４と異なり、４×４画素単位で整数変換を用い、イントラ予測も複数用意されている点にある。また、ループ・フィルタを用い、動き補償を７種類のサブブロックで行うという特徴がある。また、ＭＰＥＧ−４と同様に、１/４画素精度の動き補償を行うことができる。さらに、エントロピー符号化として、ユニバーサル可変長符号化やコンテキスト適応可変長符号化等を用いるという特徴がある。
【０００４】
さらに、Ｈ．２６４の大きな特徴は、ＭＰＥＧ−１/−２/−４では、前後２枚の参照画像を用いて動き補償を行っていたが、Ｈ．２６４では、より多くの参照画像を用いることが可能になった点にある。Ｈ．２６４では、ビット・ストリームの先頭のヘッダに含まれるnum_ref_frames符号が、最大１６の値をとることができる。すなわち、前後１６フレームを参照することが可能である。したがって、最大１６フレームの画像に対して、７種類のサブブロックを用いて１/４画素精度で予測誤差を求め、予測誤差が最小になるマクロブロックを選択することによって、符号化効率を大幅に改善することが可能となる。
【０００５】
図１２は、Ｈ．２６４の符号化器の構成を示す概略図である。
【０００６】
符号化対象となる画像データは、マクロブロック単位で入力される。切り替え器１０００は、イントラ符号化を行うか否かを切り替える。イントラ符号化を行う場合は、イントラ予測器１００１に画像データが入力され、９つのモードで予測が行われ、予測誤差が算出される。イントラ符号化以外の場合は、差分器１００２に画像データが入力され、予測画像との差分が求められ、予測誤差が算出される。変換/量子化器１００３は、イントラ予測器１００１あるいは差分器１００２で得られた予測誤差に対して、４×４画素単位で整数変換を行い、各係数を量子化する。量子化された結果は、エントロピー符号化器１００４で可変長符号化されて、出力器１０１４に出力される。同時に、この量子化された結果は、逆量子化/逆変換器１００５にも入力され、予測誤差が再生され、加算器１００６で動き補償器１０１２から出力される予測画像に加算される。その結果は、フレームメモリ１００７〜１０１０に適宜格納される。動き推定器１０１１は、入力画像とフレームメモリ１００７〜１０１０に格納された復号化画像とを比較し、各サブブロック単位で１/４画素精度で動きベクトルを求める。動きベクトルと選択したフレームの番号とは、動き補償器１０１２に入力され、該当するフレームメモリから参照画像を読み込み、予測誤差の最も小さいものを選択して、予測画像として差分器１００２に出力される。また、動きベクトルと選択されたフレームの番号とは、動き符号化器１０１３に入力されて符号化され、動きベクトルがmvd_idx_I0符号等として、参照フレームの情報がref_idx_I0符号等として、それぞれ出力器１０１４に出力される。出力器１０１４は、符号化データを書式に従って整形して出力する。
【０００７】
図１３は、Ｈ．２６４の復号化器の構成を示す概略図である。
【０００８】
符号化データは、入力器１０２０に入力され、符号が解釈されて、それぞれの復号化器に分配される。エントロピー復号化器１０２１は、可変長の復号化を行い、４×４の変換係数を量子化した結果を得る。この量子化結果は、逆量子化/逆変換器１０２２に入力され、予測誤差が再生される。イントラ符号化の場合は、イントラ予測器１０２３に画像データが入力され、周囲の画素から予測が行われ、画素データが再生されて出力される。イントラ符号化以外の場合は、加算器１０２４で予測画像に加算され、画素データが再生されて出力される。同時に、その結果は、フレームメモリ１０２５〜１０２８に適宜格納される。動き復号化器１０２９では、動きベクトルを表すmvd_idx_I0符号等、参照フレームの情報を表すref_idx_I0符号等が復号化され、動き補償器１０３０に入力される。動き補償器１０３０は、該当するフレームメモリから参照画像を読み込み、予測画像として加算器１０２４に出力する。
【０００９】
このように複数のフレームを参照することによって、一旦物体の陰に隠れて、しばらく後に現れるような場合であっても、時間的に隔たったフレームを参照することによって、符号化効率を改善することが可能になる。
【非特許文献１】新井将之、Ｐｈｉｌ Ｋｅｙｓ、“もたつくＭＰＥＧ−4を尻目にＨ．２６４がいざ発進”、平成１５年７月７日、日経エレクトロニクス２００３年７月７日号、ｐｐ．６５−７４
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、Ｈ．２６４のような複数のフレームを参照する符号化方式では、参照フレームの符号化側も復号化側も、num_ref_frames符号で設定されるシーケンスの始めに設定したフレーム数のデータを、保持し続けなければならない。したがって、参照されないフレームデータであっても、一定期間の間、メモリ空間が占有され続けてしまう。その結果、特に、携帯電話や携帯端末のように、メモリ容量に限りがある装置では、利用可能なメモリ容量が実質的に限られてしまうという問題がある。
【００１１】
本発明は上記の背景に鑑みてなされたものであり、複数のフレームを参照する場合に、効率良くメモリを使用できる画像処理装置、画像処理方法、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の第１の側面は、複数のフレームデータを参照して動画像データを符号化する画像処理装置に係り、動画像データを入力する入力手段と、前記動画像データの少なくとも１つのフレームデータを参照して、前記入力手段により入力された動画像データに動き補償を行って符号化する符号化手段と、前記符号化手段により参照されたフレームデータを特定するための参照情報を生成する参照情報生成手段と、前記符号化された動画像データと前記参照情報とを合成する合成手段と、前記合成手段により合成されたデータを出力する出力手段と、を備えることを特徴とする。
【００１３】
本発明の第２の側面は、複数のフレームデータを参照して符号化された動画像データを復号化する画像処理装置に係り、符号化された動画像データとその符号化の際に参照されたフレームデータを特定するための参照情報とが合成されたデータを入力する入力手段と、前記入力手段により入力されたデータを前記符号化された動画像データと前記参照情報とに分離する分離手段と、前記分離手段により分離された符号化された動画像データを前記参照情報によって特定されたフレームデータを用いて復号化する復号化手段とを有し、前記復号化手段は、前記参照情報に応じて前記復号化された動画像データを参照フレームとして用いるために格納するメモリ手段を含むことを特徴とする。
【００１４】
本発明の第３の側面は、複数のフレームを参照して動き補償を行い、符号化する画像処理方法に係り、動画像データを入力する工程と、前記動画像データのフレームデータの少なくとも１つを参照して、該動画像データに動き補償を行って符号化する工程と、前記符号化する工程により参照されたフレームデータを特定するための参照情報を生成する工程と、前記符号化された動画像データと前記参照情報とを合成して出力する工程と、を含むことを特徴とする。
【００１５】
本発明の第４の側面は、複数のフレームを参照して符号化データを復号化する画像処理方法に係り、符号化された動画像データとその符号化の際に参照されたフレームデータを特定するための参照情報とが合成されたデータを入力する工程と、前記合成されたデータから前記符号化された動画像データと前記参照情報とを分離する工程と、前記参照情報に基づいて、前記符号化された動画像データを復号化する工程と、前記復号化されたデータを出力する工程と、を含むことを特徴とする。
【００１６】
本発明の第５の側面は、プログラムに係り、上記の画像処理方法をコンピュータによって実行させることを特徴とする。
【００１７】
本発明の第６の側面は、記憶媒体に係り、上記の画像処理方法をコンピュータによって実行させるためのプログラムを格納することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、複数のフレームを参照する場合に、効率良くメモリを使用できる。
【発明を実施するための最良の形態】
【００１９】
以下、添付図面を参照して本発明の好適な実施の形態を詳細に説明する。本発明の好適な実施の形態では、符号化方式としてＨ．２６４を一例として示すが、これに限定されない。また、説明を容易にするため、過去のフレームを参照する前方向予測を例示的に示すが、これに限定されず、後方予測や両方向予測を用いてもよい。また、説明を容易にするため、参照フレーム数を３フレームとして説明するが、これに限定されず、任意の数のフレームを参照してもよい。
【００２０】
[第１実施形態]
本発明の好適な実施の形態に係る画像処理装置として、複数のフレームを参照して動き補償を行い、動画像を符号化する例を示す。
【００２１】
図１は、本実施形態に係る画像処理装置の構成を示すブロック図である。
【００２２】
図１において、セレクタ１は、フレーム内符号化あるいはフレーム間符号化のいずれのモードで出力するかを選択する。イントラ予測器２は、セレクタ１を通して入力された動画像データに対し、Ｈ．２６４の符号化方式でイントラ予測を行う。差分器３は、動き予測誤差を求める。変換/量子化器４は、整数型の直交変換を行い、その変換係数を量子化する。その反対に、逆量子化/逆変換器７は、変換/量子化器４からの出力に対して逆量子化を行い、これに変換/量子化器４が行う変換の逆変換を行う。エントロピー符号化器５は、変換/量子化器４の量子化結果を符号化する。バッファ６は、エントロピー符号化器５で生成された符号を複数フレーム分格納するとともに、動き符号化器１５からの出力を格納する。加算器８は、逆量子化/逆変換器７で結果として得られた予測誤差と動き補償器１４で生成された予測画像とを加算する。フレームメモリ９、１０、１１、１２は、結果として復号化された画像データをフレーム単位で格納する。動き推定器１３は、入力画像と復号化された画像データとに基づいて、最適な動きベクトルを該当するフレームメモリ９〜１２に格納されたフレームから抽出する。動き補償器１４は、動き推定器１３で算出された動きベクトルとフレームメモリ９〜１２に格納されたフレームのうち該当するフレームの情報とから予測画像を生成する。動き符号化器１５は、動き推定器１３で算出された動きベクトルとフレームメモリ９〜１２に格納された該当するフレームの情報（例えば、フレームの番号）とを符号化する。参照情報生成器１６は、参照するフレームの情報をフレーム毎にフレームメモリ９〜１２から取得し、参照したフレームデータを特定するための参照情報を生成する。
【００２３】
図２は、本実施形態に係る参照情報生成器１６の構成を示すブロック図である。
【００２４】
図２において、参照情報生成器１６は、マクロブロック毎に、動き推定器１３によりどのフレームが参照されたかを判定する。本実施形態では、どのフレームメモリ９〜１２を参照したかを判定している。セレクタ３０は、この判定結果に基づいて、後段に信号を出力する。マクロブロックカウンタ３１、３２、３３、３４は、セレクタ３０から信号が入力されると、その内部の値に１を加える。ラッチ３５〜４６は、フレームの処理が終わったときにその内部の値を出力し、外部からの入力を記憶する。参照情報判定器４７、４８、４９、５０は、各ラッチ３５〜４６からの情報に基づいて、どのフレームデータがどのフレームに参照されたかを判定し、参照されたフレームを特定するための参照情報を生成する。出力器５１は、参照情報判定器４７〜５０で生成された参照情報をフレームメモリ制御器１７の指示に従って選択して出力する。フレームメモリ制御器１７は、フレームメモリ９〜１２の入出力を制御する。出力器１８は、バッファ６に格納された符号化データと参照情報を合成して出力する。
【００２５】
上記のように構成された本実施形態の画像処理装置における動画像の符号化動作について、以下に説明する。
【００２６】
まず、動画像データの符号化を開始する前に、参照に用いることができるフレーム数などを含むヘッダ情報を出力器１８が生成し、出力する。入力された動画像のフレームデータは、セレクタ１に入力される。セレクタ１では一定間隔でフレーム内符号化を行い、それ以外ではフレーム間符号化を行うように設定される。例えば、図１では、フレーム内符号化を行う場合には、イントラ予測器２がセレクタ１に接続され、フレーム間符号化を行う場合には、差分器３がセレクタ１に接続される。
【００２７】
最初に、先頭の第1フレームに対してフレーム内符号化を行う場合について説明する。
【００２８】
まず、入力されたフレームデータは、マクロブロック単位でイントラ予測器２に入力され、ブロック毎にイントラ予測が行われる。イントラ予測器２の出力結果は、変換/量子化器４に入力され、整数型の直交変換が行われて、その変換係数が量子化される。変換/量子化器４により量子化された結果は、エントロピー符号化器５と逆量子化/逆変換器７とに入力される。エントロピー符号化器５は、変換/量子化器４から入力された量子化結果をエントロピー符号化し、バッファ６にフレーム単位で格納する。逆量子化/逆変換器７は、変換/量子化器４から入力された量子化結果に基づいて、上述の処理により復号化画像を得て、加算器８に出力する。フレーム内符号化を行う場合には、予測画像を用いないので、加算器８は、前記復号化画像に予測値０を加算して、フレームメモリ制御器１７の指示に従って、フレームメモリ９に格納する。また、フレーム内符号化を行う場合には、他のフレームを参照しないので、参照情報生成器１６は、第１フレームを符号化する時には他のフレームを参照しなかったこと示す情報を記録する。
【００２９】
参照情報生成器１６における参照情報の生成動作を図２を参照して説明する。
【００３０】
最初に、ラッチ３５〜４６の値を０にリセットする。次に、フレームの符号化を始める前に、マクロブロックカウンタ３１〜３４の値を０にリセットする。セレクタ３０は、マクロブロック毎に参照したフレームの番号が入力されると、入力されたフレームの番号がフレームメモリ９の内容であれば、マクロブロックカウンタ３１に信号を出力する。フレームメモリ１０の内容であればマクロブロックカウンタ３２に、フレームメモリ１１の内容であればマクロブロックカウンタ３３に、フレームメモリ１２の内容であればマクロブロックカウンタ３４に信号を出力する。マクロブロックカウンタ３１〜３４は、信号が入力されるとその値に１を加える。したがって、マクロブロックカウンタ３１〜３４の値は最初に０にリセットされているため、その値は１となる。フレームの全てのマクロブロックに対して符号化処理が終了したら、ラッチ３６、３９、４２、４５の値をラッチ３７、４０、４３、４６に、ラッチ３５、３８、４１、４４の値をラッチ３６、３９、４２、４５に、マクロブロックカウンタ３１、３２、３３、３４の値をラッチ３５、３８、４１、４４に、それぞれ移動させる。これによって、各フレームがどのフレームから何回参照されたかを、ラッチ３５〜４６に格納された値に基づいて判定することができる。フレームが参照されなければそれらの値は０である。したがって、第１フレームの符号化が終了した時点では、ラッチ３５、３８、４１、４４には０が格納される。
【００３１】
続いて、後続の第２フレームに対してフレーム間符号化する場合について図１を参照して説明する。
【００３２】
まず、入力された画像データは、マクロブロック単位でセレクタ１と動き推定器１３とに入力される。動き推定器１３は、フレームメモリ９の内容を読み出し、動きベクトルを求め、動き補償器１４に出力する。動き補償器１４は、動き推定器１３で算出された動きベクトルとフレームメモリ９〜１２に格納されたフレームのうち該当するフレームの情報とに基づいて予測画像を生成し、差分器３に出力する。セレクタ１は、出力先として差分器３を選択する。差分器３は、セレクタ１からの画像データと動き補償器１４からの予測画像とに基づいて予測誤差を求め、その結果を変換/量子化器４に出力する。変換/量子化器４は、差分器３からの出力に対して整数型の直交変換を行い、その変換係数を量子化する。変換/量子化器４による量子化結果は、エントロピー符号化器５と逆量子化/逆変換器７とにそれぞれ入力される。エントロピー符号化器５は、入力された前記量子化結果をエントロピー符号化し、バッファ６にフレーム単位で格納する。逆量子化/逆変換器７は、入力された前記量子化結果に対して逆量子化を行い、これに変換/量子化器４が行う変換の逆変換を行って予測誤差を求めて、加算器８に出力する。加算器８は、逆量子化/逆変換器７からの予測誤差に動き補償器１４からの予測画像を加算し、その結果をフレームメモリ制御器１７の指示に従って、フレームメモリ１０に格納する。
【００３３】
また、動き推定器１３によっていずれのフレームメモリが参照されて求められた動きベクトルであるかを示す情報が、マクロブロック毎に参照情報生成器１６に保持される。参照情報生成器１６は、フレーム内の全マクロブロックの符号化が終了した時点で、いずれのフレームが参照されたかを算出しておく。すなわち、第２フレームを符号化した場合では、参照されたフレームは、フレームメモリ９に格納された第１フレームの復号化画像である。したがって、第１フレームは、第２フレームを符号化した際に参照したマクロブロックの数で表される参照情報として記憶される。図２では、マクロブロックカウンタ３１に参照された回数が値として入っている。第２フレームの符号化が終了した時点では、ラッチ３６、３９、４２、４５には０が、ラッチ３５には参照されたマクロブロックの数が、ラッチ３８、４１、４４には０が格納される。
【００３４】
さらに、後続の第３フレームデータに対してフレーム間符号化する。
【００３５】
このとき、動き推定器１３及び動き補償器１４は、フレームメモリ９、１０の復号化画像を参照して動きベクトルを求める。第１、２フレームデータと同様にして、生成された符号化データは、バッファ６に格納され、復号化画像がフレームメモリ制御器１７の指示に従って、フレームメモリ１１に格納される。したがって、第１、２フレームについては、第３フレームを符号化した際に参照されたマクロブロックの数で表される参照情報として記憶される。図２では、マクロブロックカウンタ３１、３２に参照された回数が値として入っている。第３フレームの符号化が終了した時点では、ラッチ３７、４０、４３、４６には０が、ラッチ３６には第２フレームを符号化する際に第１フレームで参照されたマクロブロックの数が、ラッチ３９、４２、４５には０が格納される。ラッチ３５には第３フレームを符号化する際に第１フレームで参照されたマクロブロックの数が、ラッチ３８には第３フレームを符号化する際に第２フレームで参照されたマクロブロックの数が、ラッチ４１には第３フレームを符号化する際に第２フレームで参照されたマクロブロックの数が、ラッチ４４には０が格納される。
【００３６】
同様に、第４フレームデータをフレーム間符号化する。動き推定器１３及び動き補償器１４は、フレームメモリ９、１０、１１の復号化画像を参照して、動きベクトルを求める。第１、２フレームデータと同様にして、生成された符号化データは、バッファ６に格納され、復号化画像がフレームメモリ制御器１７の指示に従って、フレームメモリ１２に格納される。第３フレームと同様にフレームメモリ９、１０、１１に格納された第１、第２、第３フレームは、第４フレームを符号化する際にどのようにフレームを参照したかを示す情報が参照情報生成器１６で保持される。
さらに、後続の第５フレームデータに対してフレーム間符号化するが、これに先立ち、第１フレームの符号化データの出力を行う。
まず、出力器１８は、第１フレームの符号化データをバッファ６から読み出し、第１フレームの参照情報を参照情報生成器１６から読み出す。図２では、参照情報判定器４７は、ラッチ３５〜３７の値を読み出す。このとき、ラッチの値が０であれば０を、その他の値があれば１とする。すなわち、第１フレームの参照情報は、第２フレームの符号化時に参照されたか否か、第３フレームの符号化時に参照されたか否か及び第４フレームの符号化時に参照されたか否か、を示す３ビットの参照情報として生成される。この参照情報のビット長は、参照に用いることができるフレーム数に基づいて決定される。出力器５１は、フレームメモリ制御器１７からの指示に従って、最も古いフレームの参照情報（以下「被参照情報」という。）を生成する参照判定器４７の出力を選択して出力器１８に出力する。このようにして、出力器１８は、バッファ６に格納された符号化データに３ビットの被参照情報を付加して出力する。被参照情報は、例えば、ＳＥＩ領域等に書き込むことができる。
その後、第４フレームと同様に符号化を行う。復号化画像はフレームメモリ制御器１７の指示に従って、フレームメモリ９に格納される。
同様に、第６フレームの符号化の時には、第２フレームの符号化データの出力を行う。図２では、参照情報判定器４８はラッチ３８〜４０の値を読み出し、３ビットの参照情報を生成し、最も古いフレームの参照情報を被参照情報として出力器１８に出力する。出力器１８は、符号化データに３ビットの被参照情報を付加して出力する。
【００３７】
以後、同様にして、フレームを符号化するたびに符号化データの出力とフレームの符号化とを行う。すなわち、図２の出力器５１は、参照情報判定器４９、５０、４７、４８の順に繰り返してデータを読み出すことによって連続して被参照情報を生成する。
【００３８】
全てのフレームの符号化が終了した時点で、バッファ６には３フレーム分の符号化データが残されているので、出力器１８は、これらの符号化データを順に読み出し、対応する被参照情報を参照情報生成器１６から読み出して、これらを合成して出力する。全てのフレームの符号化データが出力器１８により出力された後に、一連の符号化処理を終了する。
【００３９】
次に、第１の実施形態で実行される符号化処理の概要を図６を用いて例示的に示す。
【００４０】
図６は、本実施形態に係る動画像符号化装置による動画像符号化処理の一例を示すフローチャートである。
【００４１】
ステップＳ１では、参照に用いることができるフレーム数などを含むヘッダ情報が出力器１８により生成され、出力される。
【００４２】
ステップＳ２では、全てのフレームの符号化が終了したか否かの判断を行い、終了していなければステップＳ３に進み（ステップＳ２でＮＯ）、終了していればステップＳ１４に進む（ステップＳ２でＹＥＳ）。
【００４３】
ステップＳ３では、動画像データの符号化すべきフレームデータが入力される。
【００４４】
ステップＳ４では、フレーム内の全マクロブロックの符号化が終了したか否かが判断され、全てのマクロブロックの符号化が終了していなければステップＳ５に進み（ステップＳ４でＮＯ）、終了したと判断されたらステップＳ１０に進む（ステップＳ４でＹＥＳ）。
【００４５】
ステップＳ５では、入力されたフレームデータの符号化モードがセレクタ１により選択される。例えば、イントラ符号化する場合はイントラ予測器２が選択され、動き補償を行う場合は差分器３が選択される。
【００４６】
ステップＳ６では、符号化するマクロブロックの動きベクトルが、その動画像データのフレームデータの少なくとも１つを参照して、動き推定器１３により算出される。
【００４７】
ステップＳ７では、選択された符号化モードに従って、変換/量子化器４によりマクロブロックのデータに対して整数型の直交変換及び量子化が行われ、その量子化結果がエントロピー符号化器５により符号化される。
【００４８】
ステップＳ８では、エントロピー符号化器５により符号化されたデータがバッファ６に蓄積される。
【００４９】
ステップＳ９では、ステップＳ６でどのフレームが参照されたかを示す参照情報が、参照情報生成器１６により生成、保持される。その後、ステップＳ４に戻る。
【００５０】
ステップＳ１０では、既に参照フレーム数分の符号化が終了したか否かを判断し、終了したと判断されたらステップＳ１１に進み（ステップＳ１０でＹＥＳ）、そうでなければ次のフレームの処理を行うためにステップＳ２に戻る（ステップＳ１０でＮＯ）。
【００５１】
ステップＳ１１では、バッファ６に入っている符号化データのうち最も古いフレームの符号化データを読み出す。
【００５２】
ステップＳ１２では、参照情報生成器１６に保持されたフレームのうち対応する参照情報を符号化データと合成する。
【００５３】
ステップＳ１３では、合成されたフレームの符号化データが出力器１８により出力され、次のフレームの処理を行うためにステップＳ２に戻る。
【００５４】
ステップＳ１４では、全フレームの符号化データを出力したか否かを判断し、終了していれば符号化処理を終了し（ステップＳ１４でＹＥＳ）、そうでなければステップＳ１５に進む（ステップＳ１４でＮＯ）。
【００５５】
ステップＳ１５では、バッファ６に入っている符号化データのうち最も古いフレームの符号化データを読み出す。
【００５６】
ステップＳ１６では、参照情報生成器１６に保持されたフレームのうち対応する参照情報を符号化データと合成する。
【００５７】
ステップＳ１７では、合成されたフレームの符号化データを出力し、次のフレームの処理を行うためにステップＳ１４に戻る。
【００５８】
以上の処理により、各フレームの符号化データに対して、どのフレームが参照されているかどうかの情報を符号化時に付加することができる。これによって、復号化時にフレームの参照を選択的に行うことができる。
【００５９】
なお、本実施形態では、参照情報として参照されたマクロブロックの数を用いたが、これに限定されず、例えば、参照されたか否かを表す１ビットの情報等を用いてもよい。
【００６０】
また、本実施形態では、参照するフレームを３フレームとしたが、これに限定されず、図１のフレームメモリや図２のマクロブロックカウンタ、ラッチ、参照情報判定器などを必要な数だけ揃えることによって、その他の数の参照にも対応できる。
【００６１】
また、本実施形態では、前方向の予測のみを例にとって説明したが、後方予測や両方向予測を用いた場合も、図１のフレームメモリや図２のマクロブロックカウンタ、ラッチ、参照情報判定器などを必要な数を揃えることによって、その他の数の参照にも対応することができる。
【００６２】
また、本実施形態の各部または全部の機能をソフトウェアで記述し、ＣＰＵ等の演算装置によって処理をさせてもよい。
【００６３】
[第２実施形態]
本発明の好適な実施の形態に係る画像処理装置として、第１実施形態で生成された符号化データを復号化する例を示す。
【００６４】
図３は、本実施形態に係る画像処理装置の構成を示すブロック図である。
【００６５】
図３において、入力器１００は、符号化データを入力し、後段に分離して出力する。エントロピー復号化器１０１は、符号化データを復号化して量子化結果を得る。逆量子化/逆変換器１０２は、この量子化結果を逆量子化して、整数型の直交変換の逆変換を行う。イントラ予測器１０３は、Ｈ．２６４の符号化方式でイントラ予測を行う。加算器１０４は、動き予測誤差を予測画像に加算する。フレームメモリ１１３は、復号化した画像を一時格納する。フレームメモリ１０５、１０６、１０７、１０８は、復号化された画像データをフレーム単位で格納する。本実施形態では、第１実施形態の符号化データを復号化する例を説明するために、参照画像を格納するフレームメモリを４つ備えるが、これに限定されない。また、フレームメモリ１０５〜１０８は、使用しないときにはリフレッシュ動作等を行わず、消費電力を抑えることができる。動き復号化器１０９は、動きベクトルと該当するフレームの情報とを復号化する。動き補償器１１０は、動き復号化器１０９で復号化された動きベクトルと該当するフレームの情報から予測画像を生成する。参照情報解析器１１１は、符号化データに含まれている参照情報を解析する。フレームメモリ制御器１１２は、フレームメモリ１０５〜１０８の入出力、活性化／不活性化を制御する。
【００６６】
上記のように構成された本実施形態の画像処理装置における動画像の復号化動作について、以下に説明する。
【００６７】
まず、入力器１００は、参照に用いることができるフレーム数などを含むヘッダ情報が入力されると、これを解釈して、後段の各部位を初期化する。
【００６８】
続いて、フレームの符号化データが読み込まれる。入力器１００は、符号化データから合成された被参照情報を抽出して参照情報解析器１１１に出力し、残りの符号化データのうち、動きベクトルに関する符号化データを動き復号化器１０９に、画像に関する符号化データをエントロピー復号化器１０１にそれぞれ出力する。
【００６９】
最初のフレームはフレーム内符号化された画像であるから、エントロピー復号化器１０１は入力された符号化データを復号化し、量子化結果を再生する。逆量子化/逆変換器１０２では、これを逆量子化し、整数型の直交変換の逆変換を施して、画像データを再生する。再生された画像は、イントラ予測器１０３でブロックごとのイントラ予測が行われて、再生画像が得られ、フレームメモリ１１３とフレームメモリ制御器１１２に従って活性化されたフレームメモリ１０５とに格納される。フレームメモリ１１３に格納された画像データは外部に出力される。また、参照情報解析器１１１は、後続の３フレームが復号化したフレームを参照するか否かを解析して、フレームメモリ制御器１１２に入力する。また、この情報は、復号化するフレームが参照される可能性がなくなるまで、すなわち、4フレーム先のフレームを復号化するまで、保持される。フレームメモリ制御器１１２は、この情報に従ってフレーメモリ１０５〜１０８の制御を行う。復号化したフレームが後続の３フレームの復号化を行うときに参照されないのであれば、フレームメモリ１０５〜１０８を活性化せずに、復号化画像の書き込みを行わない。
【００７０】
続いて、動き補償された符号化データの復号化を行う。復号化に先立ち、入力器１００は、被参照情報を分離し、参照情報解析器１１１に出力する。参照情報解析器１１１は、後続の３フレームが復号化したフレームを参照するか否かを解析して、フレームメモリ制御器１１２に入力する。また、既に復号化されたフレームで、以後参照されないフレームに関しては、そのフレームが格納されるフレームメモリが使用されないように、フレームメモリ制御器１１２に入力される。フレームメモリ制御器１１２は、これらの情報から使用されないフレームメモリを不活性化し、電力供給を制限する。動き復号化器１０９は、動きベクトルと参照するフレームの情報とを復号化し、これに従って動き補償器１１０がフレームメモリ１０５〜１０８を参照して予測誤差を算出し、加算器１０４に出力する。エントロピー復号化器１０１は、入力された符号化データを復号化し、量子化結果を再生する。逆量子化/逆変換器１０２では、これを逆量子化して、整数型の直交変換の逆変換を施して、予測誤差を再生する。再生された予測誤差は、加算器１０４でブロックごとに加算を行って再生画像を得て、フレームメモリ１１３とフレームメモリ制御器１１２に従って、フレームメモリ１０５〜１０８のうち使用していないフレームメモリまたは最も古いフレームデータの入っているフレームメモリに適宜格納される。
【００７１】
次に、第２の実施形態で実行される復号化処理の概要を図７を用いて例示的に示す。
【００７２】
図７は、本発明の好適な第２の実施形態に係る画像処理装置における動画像復号化処理を示すフローチャートである。
【００７３】
ステップＳ１０１では、ヘッダ情報が入力されて入力器１００により解析される。特に、参照可能なフレーム数を解析して保持する。
【００７４】
ステップＳ１０２では、全てのフレームの復号化が終了したか否かの判断を行い、終了していなければステップＳ１０３に（ステップＳ１０２でＮＯ）、終了していれば全ての動作を終了する（ステップＳ１０２でＹＥＳ）。
【００７５】
ステップＳ１０３では、復号化する符号化データを入力する。
【００７６】
ステップＳ１０４では、被参照情報と符号化データとを分離し、被参照情報の復号化を行う。  
ステップＳ１０５では、被参照情報を保持する。
【００７７】
ステップＳ１０６では、復号化済の画像が後続のフレームの復号化時に参照されるか否かを判断し、参照される場合にはステップＳ１０８に進み（ステップＳ１０６でＹＥＳ）、全く参照されない場合にはステップＳ１０７に進む（ステップＳ１０６でＮＯ）。
【００７８】
ステップＳ１０７では、書き込む予定のフレームメモリが活性化していればこれを不活性化して電力の消費を抑制した後に、ステップＳ１０８に進む。
【００７９】
ステップＳ１０８では、フレーム内の全てのマクロブロックの復号化が終了したか否かの判断を行い、終了していなければステップＳ１０９に（ステップＳ１０８でＮＯ）、終了していればステップＳ１１２に進む（ステップＳ１０８でＹＥＳ）。ステップＳ１１２では、出力用のフレームメモリの画像データを外部に出力し、次のフレームの復号化を行うため、ステップＳ１０２に戻る。
【００８０】
ステップＳ１０９では、マクロブロックのデータを復号化し、その結果を出力用のフレームメモリに格納する。
【００８１】
ステップＳ１１０では、復号化されたマクロブロックのデータをフレームメモリに格納する。ここで、復号化している画像が後続のフレームの復号化時に参照されるか否かを判断し、全く参照されない場合にはステップＳ１０８に進み（ステップＳ１１０でＮＯ）、次のマクロブロックの処理を行う。参照される場合は（ステップＳ１１０でＹＥＳ）、ステップＳ１１１に進む。
【００８２】
ステップＳ１１１では、復号化したマクロブロックのデータを参照画像用のフレームメモリへ格納した後に、ステップＳ１０８に進み、次のマクロブロックの処理を行う。
【００８３】
以上の処理により、各フレームの符号化データの復号化時に、そのフレームが参照されているかどうかの情報を参照することができる。これによって、参照されないメモリの電力を節約できる等の効果がある。
【００８４】
また、本実施形態では、参照するフレームを３フレームとしたが、これに限定されず、図３のフレームメモリや図２のマクロブロックカウンタ、ラッチ、参照情報判定器などを必要な数だけ揃えることによって、その他の数の参照にも対応することができる。
【００８５】
また、本実施形態では、前方向の予測のみを例にとって説明したが、後方予測や両方向予測を用いた場合も、図３のフレームメモリや図２のマクロブロックカウンタ、ラッチ、参照情報判定器などを必要な数を揃えることによって、その他の数の参照にも対応することができる。
【００８６】
また、本実施形態の各部または全部の機能をソフトウェアで記述し、ＣＰＵ等の演算装置によって処理をさせてもよい。
【００８７】
[第３実施形態]
本発明の好適な実施の形態に係る画像処理装置として、複数のフレームを参照して動き補償を行い、動画像を符号化する他の例を示す。
【００８８】
図４は、本実施形態に係る画像処理装置の構成を示すブロック図である。
【００８９】
図４において、第１実施形態の図１と同様の機能を果たす部分に関しては、同じ番号を付与して、説明を省略する。
【００９０】
フレームメモリ２００は、入力画像を保持する。参照情報評価器２０１は、参照情報を評価する。動き推定器２１３は、入力画像と復号化された画像データとから、参照情報評価器２０１の結果に基づいて、参照フレームを選択し、該当するフレームから最適な動きベクトルを抽出する。動き補償器２１４は、動き推定器２１３で算出された動きベクトルと該当するフレームの情報とから、参照情報評価器２０１の結果に基づいて、参照フレームを選択し、動き補償を行って予測画像を生成する。
【００９１】
上記のように構成された本実施形態の画像処理装置における動画像の符号化動作について、以下に説明する。
【００９２】
まず、第１実施形態と同様にして、動画像データの符号化を開始する前に、参照に用いることができるフレーム数などを含むヘッダ情報を出力器１８が生成し、出力する。入力された動画像のフレームデータは、セレクタ１に入力される。セレクタ１では、一定間隔でフレーム内符号化を行い、それ以外はフレーム間符号化を行うように設定される。
【００９３】
最初に、先頭の第1フレームに対してフレーム内符号化を行う場合について説明する。
【００９４】
まず、第1実施形態と同様にして、入力されたフレームデータは、フレームメモリ２００に入力され、その後、マクロブロック単位でイントラ予測器２に入力され、整数型の直交変換が行われて、その変換係数が量子化される。その結果は、エントロピー符号化５によりエントロピー符号化され、バッファ６に格納される。逆量子化/逆変換器７は、変換/量子化器４から入力された量子化結果に基づいて、上述の処理により復号化画像を得て、加算器８に出力する。フレーム内符号化を行う場合には、予測画像を用いないので、加算器８は、前記復号化画像に予測値０を加算して、フレームメモリ制御器１７の指示に従って、フレームメモリ９に格納する。参照情報生成器２１６は、図１の参照フレーム生成器１６と同様にして参照されたマクロブロックの数を計数する。
【００９５】
続いて、後続のフレームに対してフレーム間符号化する場合について説明する。
【００９６】
まず、入力された画像データは、マクロブロック単位でセレクタ１と動き推定器２１３とに入力される。動き推定器２１３は、参照可能な復号化画像を格納しているフレームメモリ９〜１２の内容を読み出し、動きベクトルを求め、参照するフレームの情報と共に、参照情報生成器２１６に出力する。参照情報生成器２１６は、図２の参照情報生成器１６と同様に構成されうるが、マクロブロックカウンタ３１〜３４の値を参照情報評価器２０１が読み取り可能である点が異なる。
【００９７】
１フレーム分の参照情報を求めたら、参照情報評価器２０１は、参照情報生成器２１６のマクロブロックカウンタ（図２の３１〜３４に対応）の値を読み出す。参照情報評価器２０１は、参照される回数を評価し、極端に参照回数が少ないフレームを抽出する。各マクロブロックカウンタの値を比較し。例えば、参照回数が予め決められた割合、例えば全体の５％、と比較して、これより少ない参照回数のフレームを抽出する。参照情報評価器２０１で極端に参照回数の少ないフレームが存在した場合、参照情報評価器２０１は、動き補償器２１４及び動き推定器２１３に対してそのフレームを参照しないように指示を行う。
【００９８】
この後、第1実施形態のフレーム間予測符号化と同じ手順で符号化を行う。
【００９９】
フレームメモリ２００から入力された画像データはマクロブロック単位でセレクタ１と動き推定器２１３に入力される。動き推定器２１３は、参照情報評価器２０１が参照を禁止するフレーム以外のフレームメモリ９〜１２の内容を読み出し、動きベクトルを求め、動き補償器２１４で予測画像を生成し、差分器３に出力する。一方で、予測誤差を求め、整数型直交変換を行い、その係数を量子化して、エントロピー符号化し、バッファ６にフレーム単位で格納する。逆量子化/逆変換器７は、入力された量子化結果から予測誤差を得て、加算器８に入力する。予測誤差に動き補償器１４からの予測画像を加算し、フレームメモリ制御器１７の指示に従って、フレームメモリ９〜１２の内、該当するフレームメモリに格納する。
【０１００】
また、第1実施形態と同様に、動き推定器２１３からマクロブロック毎に、いずれのフレームメモリを参照して得られた動きベクトルであるかを示す参照情報が参照情報生成器２１６に入力される。参照情報生成器２１６はこの参照情報を保持する。
【０１０１】
符号化されたデータの出力も第1実施形態と同様であり、参照情報生成器２１６から被参照情報を抽出し、出力器１８で合成して出力する。
【０１０２】
このような一連の選択動作により、復号化側においてソフトウェアで復号化を実現する場合、アクセスするメモリを限定することができ、キャッシュのヒット率を高め、復号化の高速化を行うことができる。
【０１０３】
さらに、参照しないフレームの発生頻度を高めることができ、第２実施形態の復号化装置で復号化した場合、不活性のメモリを増やすことができるので、電力の消費をさらに抑制できる効果がある。
【０１０４】
[第４実施形態]
本発明の好適な実施の形態に係る画像処理装置として、複数のフレームを参照して動き補償を行い、動画像を符号化するその他の例を示す。
【０１０５】
図５は、本実施形態に係る画像処理装置の構成を示すブロック図である。
【０１０６】
図５において、中央演算装置（ＣＰＵ）３００は、装置全体の制御、及び種々の処理を行う。メモリ３０１は、本画像処理装置の制御に必要な、オペレーティングシステム（ＯＳ）等のソフトウェア、演算に必要な記憶領域を提供するメモリである。バス３０２は、種々の装置をつなぎ、データ、制御信号をやり取りする。端末３０３は、装置の起動、各種条件の設定、再生の指示を行う。記憶装置３０４は、各種ソフトウェアを蓄積する。記憶装置３０５は、ストリームを蓄積する。なお、記憶装置３０４及び３０５は、システムから切り離して移動できる媒体で構成することも出来る。カメラ３０６は、動画像を1フレームずつ撮影することができる。モニタ３０７は、画像を表示する。通信回線３０９は、ＬＡＮ、公衆回線、無線回線、放送電波等で構成される。通信インターフェース３０８は、通信回線３０９を介してストリームを送受信する。
【０１０７】
メモリ３０１は、装置全体を制御し、各種ソフトウェアを動作させるためのＯＳや動作させるソフトウェアを格納し、画像データを格納する画像エリア、生成した符号化データを格納する符号エリア、各種演算や符号化の際のパラメータ等を格納しておくワーキングエリアが存在する。
【０１０８】
このような構成においてカメラ３０６から撮影した動画像を符号化しネットワークに送信する処理について説明する。ここでは符号化方式としてＨ．２６４符号化方式を例にとって説明するがこれに限定されず、2フレーム以上の複数フレームを参照して符号化する符号化方式であれば他の符号化方式であっても構わない。また、説明を容易にするために前後３フレームずつを参照することとするが、これに限定されない。
【０１０９】
処理に先立ち、端末３０３から装置全体に対して起動が指示され、各部が初期化される。すると、記憶装置３０４に格納されているソフトウェアがバス３０２を介してメモリ３０１に展開され、ソフトウェアが起動される。
【０１１０】
図８は、本実施形態に係るメモリ３０１の使用、格納状況を示す図である。メモリ３０１には、装置全体を制御し、各種ソフトウェアを動作させるためのＯＳ８０１、Ｈ．２６４で符号化する動画像符号化ソフトウェア８０２、画像エリアのメモリを制御するメモリ制御ソフトウェア８０３、通信を制御する通信ソフトウェア８０４等が格納されている。
【０１１１】
このような構成において、最初にメモリ制御ソフトウェア８０３が起動し、参照するフレームの数に対応する画像メモリの割り当てを行う。続いて、動画像符号化ソフトウェア８０２が起動する。あわせて、通信ソフトウェア８０４も起動する。
【０１１２】
次に、ＣＰＵ３００による動画像符号化を行う動作について図９に示すフローチャートに従って説明する。
【０１１３】
まず、ステップＳ３０１では、ヘッダ情報を生成してメモリ３０１上の符号エリア８０６に格納する。
【０１１４】
ステップＳ３０２では、全てのフレームの符号化が終了したか否かの判断を行い、終了していなければステップＳ３０３に（ステップＳ３０２でＮＯ）、終了していればステップＳ３１５に進む（ステップＳ３０２でＹＥＳ）。
【０１１５】
ステップＳ３０３では、カメラ３０６で撮影されたフレームデータを順次入力し、メモリ３０１上の画像エリア８０５−１に格納する。
【０１１６】
ステップＳ３０４では、フレーム内の全マクロブロックの符号化が終了したか否かの判断を行い、終了していればステップＳ３１０に（ステップＳ３０４でＹＥＳ）、終了していなければステップＳ３０５に進む（ステップＳ３０４でＮＯ）。
【０１１７】
ステップＳ３０５では、符号化モードを選択する。例えばイントラ符号化するのか、前方の動き補償を行うのか、両方向動き補償を行うのかを決定する。
【０１１８】
ステップＳ３０６では、符号化するフレームを画像エリア８０５−１から適宜読み出し、符号化するマクロブロックの動きベクトルをそれぞれの参照フレームを参照して算出する。
【０１１９】
ステップＳ３０７では、選択された符号化モードに従ってマクロブロックのデータを符号化し、符号化データをメモリ３０１上のワーキングエリア８０７に格納する。同時に局所復号化画像を参照画像としてメモリ３０１上の画像エリア８０５−２〜８０５−７のうち最も古い参照画像が格納されている画像エリアに格納する。
【０１２０】
ステップＳ３０８では、メモリ３０１上のワーキングエリア８０７にどのフレームを参照したかを示す情報を保持しておく。すなわち、符号化時に自分より前後のフレームで参照したフレームの相対的な位置を記憶しておく。例えば、２枚前、１枚前、２枚後といった具合である。その後、ステップＳ３０４に戻る。ステップＳ３０４では、全てのマクロブロックの符号化が終了したと判断されたらステップＳ３１０に進む。
【０１２１】
ステップＳ３１０では、既に参照フレーム数分の符号化が終了したか否かを判断し、終了したと判断されたらステップＳ３１１に進み（ステップＳ３１０でＹＥＳ）、そうでなければ次のフレームの処理を行うためにステップＳ３０２に戻る（ステップＳ３１０でＮＯ）。
【０１２２】
ステップＳ３１１では、メモリ３０１上のワーキングエリア８０７に入っている符号化データのうち符号化された順で最も古いフレームの符号化データを読み出す。
【０１２３】
ステップＳ３１２では、メモリ３０１上のワーキングエリア８０７にあるフレームの参照情報で自分のフレームの前後３フレームの情報を検索する。検索した結果、最も遅く（時間的に最後に）参照されたフレームの相対位置を±３の値で表し、これを被参照情報とする。
【０１２４】
ステップＳ３１３では、被参照情報を符号化データと合成し、メモリ３０１上の符号エリア８０６に格納し、ワーキングエリア８０７の符号データと該当するフレームの参照情報をクリアする。
【０１２５】
ステップＳ３１４では、メモリ３０１上の符号エリア８０６の符号化データを通信ソフトウェア８０４が読み出し通信インターフェース３０８を介して通信回線３０９に出力した後に、メモリ３０１上の符号エリア８０６の該当する部分をクリアし、次のフレームの処理を行うためにステップＳ３０２に戻る。ステップＳ３０２では、カメラ３０６からの画像の入力が無くなり、全フレームの符号化が終了した後（ステップＳ３０２でＹＥＳ）、ステップＳ３１５では、全てのフレームの符号化データを出力したか否かを判断し、終了していれば全てのソフトウェアを停止する（ステップＳ３１５でＹＥＳ）。このとき、メモリ制御ソフトウェア８０３は割り当てたメモリ領域を解放する。そうでなければステップＳ３１６に進む（ステップＳ３１５でＮＯ）。
【０１２６】
ステップＳ３１６では、ステップＳ３１１と同様にメモリ３０１上の符号エリア８０６に入っている符号化データのうち符号化された順で最も古いフレームの符号化データを読み出す。
【０１２７】
ステップＳ３１７では、ステップＳ３１２と同様に被参照情報を算定する。
【０１２８】
ステップＳ３１８では、ステップＳ３１２と同様にこの被参照情報と符号化データと合成する。
【０１２９】
ステップＳ３１９では、ステップＳ３１４と同様にフレームの符号化データを通信ソフトウェア８０４が読み出し通信インターフェース３０８を介して通信回路３０９に出力し、次のフレームの処理を行うためにステップＳ３１５に戻る。
【０１３０】
このような一連の選択動作により、各フレームの符号化データに符号化時にそのフレームがどの時間まで参照されているかどうかの情報を付加することが可能になり、復号化側で参照フレームがどの時間まで保持しておけばよいかの判断を行うことが可能になるといった効果がある。
【０１３１】
なお、本実施形態では、参照情報として参照の相対的な位置を用いたが、これに限定されず、例えば、参照したフレームの番号や再生時刻などを用いてもよい。
【０１３２】
また、本実施形態では、参照するフレームを前後３フレームとしたが、これに限定されず、画像エリアなどを必要な量を確保することでその他の数の参照にも対応できる。
【０１３３】
また、参照情報を固定長のデータで表したが、これに限定されず、可変長符号化してももちろん構わない。
【０１３４】
また、本実施形態の各部または全部の機能をハードウェアで記述し、処理の一部又は全部の機能を行わせてもよい。
【０１３５】
また、本実施形態では、通信ソフトウェアを起動して通信インターフェース３０８を介して通信回線３０９に送信する例について説明したが、記憶装置３０５に格納してもよい。
【０１３６】
[第５実施形態]
第４実施形態で送信された符号化データを図５の動画復号化装置の構成で復号化する実施形態を説明する。
【０１３７】
本実施形態のメモリ３０１’のメモリの使用、格納状況を図１０に示す。メモリ３０１’には装置全体を制御し、各種ソフトウェアを動作させるためのＯＳ５０１、Ｈ．２６４で符号化データを復号化する動画像復号化ソフトウェア５０２、復号化画像を格納する画像エリア５０５−１、メモリを制御するメモリ制御ソフトウェア５０３、通信を制御する通信ソフトウェア５０４が格納されている。画像エリア５０５−２〜５０５−７はメモリ制御ソフトウェア５０３が適宜、割り当てを行う領域である。
【０１３８】
このような構成において、最初にメモリ制御ソフトウェア５０３が起動し、参照するフレームの数に対応する画像エリア５０５−１の割り当てを行う。続いて、動画像符号化ソフトウェア５０２が起動する。あわせて、通信ソフトウェア５０４も起動する。
【０１３９】
次に、ＣＰＵ３００によって動画像を復号化して表示を行う動作について図１１に示すフローチャートに従って説明する。
【０１４０】
まず、ステップＳ４０１では、ヘッダ情報を通信インターフェース３０８を介してメモリ３０１’上の符号エリア５０６に格納し解析を行い、各部を初期化する。
【０１４１】
ステップＳ４０２では、全てのフレームの符号化が終了したか否かの判断を行い、終了していなければステップＳ４０３に（ステップＳ４０２でＮＯ）、終了していれば全てのソフトウェアを停止する（ステップＳ４０２でＹＥＳ）。
【０１４２】
ステップＳ４０３では、１フレーム分の符号化データを入力し、メモリ３０１’上の符号エリア５０６に格納する。
【０１４３】
ステップＳ４０４では、被参照情報と符号化データを分離し、被参照情報の復号化を行う。
【０１４４】
ステップＳ４０５では、被参照情報をメモリ３０１’上のワーキングエリア５０７に保持する。
【０１４５】
ステップＳ４０６では、ワーキングエリア５０７の各フレームの参照の相対位置と復号化するフレームの位置を比較し、復号化するフレームよりも最終の参照フレームの位置が前のフレームの有無を調べ、該当するフレームがあればステップＳ４０７に（ステップＳ４０６でＹＥＳ）、無ければステップＳ４０８に進む（ステップＳ４０６でＮＯ）。
【０１４６】
ステップＳ４０７では、該当するフレームのデータが入っている画像エリア５０５−１〜５０５−７のメモリを不使用メモリとしてメモリ制御ソフトウェア５０３が解放し、ステップＳ４０８に進む。
【０１４７】
ステップＳ４０８では、復号化画像を参照画像として残しておくための画像エリアが不足しているか否かを判断し、不足していればステップＳ４０９に進み（ステップＳ４０８でＹＥＳ）、不足していなければステップＳ４１０に進む（ステップＳ４０８でＮＯ）。
【０１４８】
ステップＳ４０９では、メモリ制御ソフトウェア５０３が新たに画像エリアを確保して、ステップＳ４１０に進む。
【０１４９】
ステップＳ４１０では、フレーム内の全マクロブロックの符号化が終了したか否かの判断を行い、終了していなければステップＳ４１１に（ステップＳ４１０でＮＯ）、終了していればステップＳ４１３に進む（ステップＳ４１０でＹＥＳ）。
【０１５０】
ステップＳ４１１では、マクロブロックのデータを復号化し、その結果を画像エリア５０５−１に格納する。
【０１５１】
ステップＳ４１２では、参照フレームのデータとして復号化したマクロブロックのデータを別な画像エリアに格納し、次のマクロブロックの処理のためにステップＳ４１０に戻る。ステップ４１０では、全てのマクロブロックが復号化されたか否かを判断し、全てのマクロブロックの復号化が終了したと判断された場合（ステップＳ４１０でＹＥＳ）、ステップＳ４１３では、出力用のフレームメモリの画像データをモニタ３０７に表示し、次のフレームの復号化を行うため、ステップＳ４０２に戻る。ステップＳ４０２では、全てのフレームの符号化データを出力したか否かを判断し、終了していれば全てのソフトウェアを停止する（ステップＳ４０２でＹＥＳ）。このとき、メモリ制御ソフトウェア５０３は割り当てたメモリ領域を解放する。
【０１５２】
このような一連の選択動作により、各フレームの符号化データに復号化時にそのフレームがどの時間まで参照されているかどうかの情報を抽出し、復号化側で参照フレームがどの時間まで保持しておけばよいかの判断を行ってメモリを制御することによって、動的にメモリ割り当てを行うが可能になるといった効果がある。これにより、少ないメモリ容量でも効率よく復号化が行え、使用しないメモリを解放して他の作業に割り当てることが可能になる。
【０１５３】
なお、本実施形態では、被参照情報を参照された最後のフレームの位置としたが、これに限定されず、最終的に参照された時刻などの情報等を用いてもよい。
【０１５４】
また、本実施形態では、参照するフレームを前後３フレームとしたが、これに限定されず、画像エリアなどを必要な量を確保することでその他の数の参照にも対応できる。
【０１５５】
また、本実施形態の各部または全部の機能をハードウェアで記述し、処理の一部又は全部を行わせてもよい。
【０１５６】
また、本実施形態では通信ソフトウェアを起動して通信インターフェース３０８を介して通信回線３０９に受信する例について説明したが、記憶装置３０５から読み出してもよい。
【０１５７】
また、本実施形態では、不使用メモリの解放の後で不足が生じた場合に、新たに画像エリアの確保を行っているが、これを統合して、不使用の画像エリアを次のフレームで使用する場合には、これを解放しないようにしてもよい。
【０１５８】
[他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成される。この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１５９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１６０】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【０１６１】
【図１】本発明の好適な第１の実施形態に係る画像処理装置の構成を示すブロック図である。
【図２】参照情報生成器の構成を示すブロック図である。
【図３】本発明の好適な第２の実施形態に係る画像処理装置の構成を示すブロック図である。
【図４】本発明の好適な第３の実施形態に係る画像処理装置の構成を示すブロック図である。
【図５】本発明の好適な第４、５の実施形態に係る画像処理装置の構成を示すブロック図である。
【図６】本発明の好適な第１の実施形態で実行される符号化処理の概要を示す図である。
【図７】本発明の好適な第２の実施形態で実行される復号化処理の概要を示す図である。
【図８】メモリの使用、格納状況を示す図である。
【図９】本発明の好適な第４の実施形態で実行される符号化処理の概要を示す図である。
【図１０】メモリの使用、格納状況を示す図である。
【図１１】本発明の好適な第５の実施形態で実行される復号化処理の概要を示す図である。
【図１２】従来の画像処理装置の構成を示すブロック図である。
【図１３】従来の画像処理装置の構成を示すブロック図である。
【符号の説明】
【０１６２】
１、１０００  …  セレクタ
２、１０３、１００１、１０２３  …  イントラ予測器
３、１００２  …  差分器
４、１００３  …  変換/量子化器
５、１００４  …  エントロピー符号化器
６  …  バッファ
７、１０２、１００５  …  逆変換/逆量子化器
８、１０４、１００６、１０２４  …  加算器
９〜１２、１０５〜１０８、１１３、２００、１００７〜１０１０、１０２５〜１０２８  …  フレームメモリ
１３、２１３、１０１１  …  動き推定器
１４、１１０、２１４、１０１２、１０３０  …  動き補償器
１５、１０１３  …  動き符号化器
１６、２１６  …  参照情報生成器
１７、１１２  …  フレームメモリ制御器
１８、５１、１０１４  …  出力器
３０  …  セレクタ
３１〜３４  …  マクロブロックカウンタ
３５〜４６  …  ラッチ
４７〜５０  …  参照情報判定器
１００、１０２０  …  入力器
１０１、１０２１  …  エントロピー復号化器
１０９、１０２９  …  動き復号化器
１１１  …  参照情報解析器
２０１  …  参照情報評価器
３００  …  ＣＰＵ
３０１  …  メモリ
３０２  …  バス
３０３  …  端末
３０４、３０５    …  記憶装置
３０６  …  カメラ
３０７  …  モニタ
３０８  …  通信インターフェース
３０９  …  通信回線
【図１】
2005167720.tif 000003
【図２】
2005167720.tif 000004
【図３】
2005167720.tif 000005
【図４】
2005167720.tif 000006
【図５】
2005167720.tif 000007
【図６】
2005167720.tif 000008
【図７】
2005167720.tif 000009
【図８】
2005167720.tif 000010
【図９】
2005167720.tif 000011
【図１０】
2005167720.tif 000012
【図１１】
2005167720.tif 000013
【図１２】
2005167720.tif 000014
【図１３】
2005167720.tif 000015