(57)【特許請求の範囲】
【請求項１】
動画像を構成する各フレームの画像を動き補償によって符号化する符号化装置であって、
各フレームの画像を入力する入力手段と、
前記入力手段が入力した第１のフレームの画像から該入力手段による画像入力順に各フレームの画像を参照し、参照した第２のフレームの画像と当該第２のフレームの次のフレームである第３のフレームの画像との間の相違度が予め設定された閾値以上であると判断した場合には、前記第１のフレームから前記第２のフレームまでを１つの区間として設定することにより、前記各フレームを複数の区間に分割する区間分割手段と、
前記区間分割手段が分割したそれぞれの区間毎に、区間内の他フレームの画像群との相違度の総和値が最も小さい自フレームの画像を代表画像として設定する代表画像設定手段と、
前記それぞれの区間毎に設定した代表画像から、注目フレームの画像を符号化するために参照する代表画像を参照画像として選択する参照画像選択手段とを備え、
前記参照画像選択手段が選択した参照画像、若しくは当該参照画像を含む区間内の各フレームの画像を用いて、前記注目フレームの画像を動き補償により符号化することを特徴とする符号化装置。
【請求項２】
動画像を構成する各フレームの画像を動き補償によって符号化する符号化装置であって、
各フレームの画像を入力する入力手段と、
前記入力手段が入力した第１のフレームの画像から該入力手段による画像入力順に各フレームの画像を参照し、参照した第２のフレームの画像と当該第２のフレームの次のフレームである第３のフレームの画像との間の相違度が予め設定された閾値以上であると判断した場合には、前記第１のフレームから前記第２のフレームまでを１つの区間として設定することにより、前記各フレームを複数の区間に分割する区間分割手段と、
前記区間分割手段が分割したそれぞれの区間毎に、区間内の各フレームの画像を代表する代表画像を１つ設定する代表画像設定手段と、
前記それぞれの区間毎に設定した代表画像毎に、符号化対象のフレームの画像との動き補償による予測誤差を求め、当該予測誤差が最も小さくなる代表画像を、前記符号化対象のフレームの画像を符号化するために参照する参照画像として選択する参照画像選択手段とを備え、
前記参照画像選択手段が選択した参照画像、若しくは当該参照画像を含む区間内の各フレームの画像を用いて、前記符号化対象のフレームの画像を動き補償により符号化することを特徴とする符号化装置。
【請求項３】
前記相違度は、２つの画像においてそれぞれ対応する画素の画素値の差分を、当該画像を構成する全て又は一部の画素について加算した総和値であることを特徴とする請求項１又は２に記載の符号化装置。
【請求項４】
動画像を構成する各フレームの画像を動き補償によって符号化する符号化方法であって、
各フレームの画像を入力する入力工程と、
前記入力工程で入力した第１のフレームの画像から該入力工程による画像入力順に各フレームの画像を参照し、参照した第２のフレームの画像と当該第２のフレームの次のフレームである第３のフレームの画像との間の相違度が予め設定された閾値以上であると判断した場合には、前記第１のフレームから前記第２のフレームまでを１つの区間として設定することにより、前記各フレームを複数の区間に分割する区間分割工程と、
前記区間分割工程で分割したそれぞれの区間毎に、区間内の他フレームの画像群との相違度の総和値が最も小さい自フレームの画像を代表画像として設定する代表画像設定工程と、
前記それぞれの区間毎に設定した代表画像から、注目フレームの画像を符号化するために参照する代表画像を参照画像として選択する参照画像選択工程とを備え、
前記参照画像選択工程で選択した参照画像、若しくは当該参照画像を含む区間内の各フレームの画像を用いて、前記注目フレームの画像を動き補償により符号化することを特徴とする符号化方法。
【請求項５】
動画像を構成する各フレームの画像を動き補償によって符号化する符号化方法であって、
各フレームの画像を入力する入力工程と、
前記入力工程で入力した第１のフレームの画像から該入力工程による画像入力順に各フレームの画像を参照し、参照した第２のフレームの画像と当該第２のフレームの次のフレームである第３のフレームの画像との間の相違度が予め設定された閾値以上であると判断した場合には、前記第１のフレームから前記第２のフレームまでを１つの区間として設定することにより、前記各フレームを複数の区間に分割する区間分割工程と、
前記区間分割工程で分割したそれぞれの区間毎に、区間内の各フレームの画像を代表する代表画像を１つ設定する代表画像設定工程と、
前記それぞれの区間毎に設定した代表画像毎に、符号化対象のフレームの画像との動き補償による予測誤差を求め、当該予測誤差が最も小さくなる代表画像を、前記符号化対象のフレームの画像を符号化するために参照する参照画像として選択する参照画像選択工程とを備え、
前記参照画像選択工程で選択した参照画像、若しくは当該参照画像を含む区間内の各フレームの画像を用いて、前記符号化対象のフレームの画像を動き補償により符号化することを特徴とする符号化方法。
【請求項６】
コンピュータを、請求項１乃至３の何れか１項に記載の符号化装置が有する各手段として機能させることで、前記コンピュータを前記符号化装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像を構成する各フレームを動き補償により符号化するための技術に関するものである。
【背景技術】
【０００２】
近年、新しい動画像の符号化方式としてＨ.２６４符号化方式が注目されている。本符号化方式はＩＴＵ−ＴとＩＳＯが共同で開発した符号化方式である。
【０００３】
この新しい符号化方式の特徴は従来のＭＰＥＧ−１、２、４符号化方式と異なり、４ｘ４整数変換を用い、イントラ予測も複数用意されている。また、ループないフィルタが用いられ、動き補償も７種類のサブブロックで行なわれている。また、その動き補償の画素精度もＭＰＥＧ−４符号化方式と同様に１／４画素精度の動き補償を行なうことができる。さらにエントロピー符号化としてユニバーサル可変長符号化やコンテキスト適応可変長符号化が用いられている。
【０００４】
さらに大きな特徴として、ＭＰＥＧ−１、２、４では前後２枚の参照画像を用いて動き補償を行なっていたが、より多くの参照画像を用いることが可能になった。ビットストリームの先頭のヘッダに含まれるnum_ref_frames符号は最大１６の値をとることができる。すなわち、前後１６フレームを参照することが可能である。符号化対象となるマクロブロックは前述のとおり、最大１６フレームの画像に対して、７種類のサブブロックについて１／４画素精度で予測誤差を求め、予測誤差が最小になるマクロブロックを選択することで符号化効率を大幅に改善することが可能となる。
【０００５】
図１１にＨ．２６４の符号化器の構成を示す。この符号化器には画像データがマクロブロック単位で入力される。
【０００６】
切り替え器１０００はイントラ符号化するか否かを切り替える。イントラ符号化の場合はイントラ予測器１００１に画像データが入力され、９つのモードで予測を行ない、予測誤差を算出する。イントラ符号化以外の場合は画像データは差分器１００２に入力され、予測画像との差分を求め、予測誤差とする。
【０００７】
変換／量子化器１００３は得られた予測誤差を４×４画素ブロックの整数変換を行ない、各係数を量子化する。量子化された結果はエントロピー符号化器１００４で可変長符号化されて出力器１０１４に出力される。同時に量子化された結果は逆量子化／逆変換器１００５に入力され、予測誤差を再生し、加算器１００６で予測画像に加算する。その結果はフレームメモリ１００７〜１０１０に適宜格納される。
【０００８】
動き推定器１０１１は、フレームメモリ１００７〜１０１０に格納された復号画像と入力画像を比較し、各サブブロック単位で１／４画素精度で動きベクトルを求める。動きベクトルと選択したフレームの番号は動き補償器１０１２に入力され、該当するフレームメモリから参照画像を読み込み、予測誤差の最も小さいものを選択して予測画像として差分器１００２に出力する。また、動きベクトルと選択されたフレームの番号は動き符号化器１０１３に入力され符号化され、動きベクトルはmvd_idx_I0符号等に、参照フレームの情報はref_idx_I0符号等になり、出力器１０１４に出力される。出力器１０１４は符号化データを書式に従って整形して出力する。
【０００９】
図２２にＨ．２６４の復号器の構成を示す。符号化データが入力器５１０２０に入力されると、符号は解釈され、それぞれの復号器に分配される。エントロピー復号器５１０２１は可変長の復号を行ない、４×４の変換係数を量子化した結果を得る。量子化結果は逆量子化／逆変換器５１０２２に入力され、予測誤差を再生する。イントラ符号化の場合はイントラ予測器５１０２３に画像データが入力され、周囲の画素から予測を行ない、画素データを再生して出力する。イントラ符号化以外の場合は、加算器５１０２４で予測画像に加算し画素データを再生して出力する。同時にその結果はフレームメモリ５１０２５〜５１０２８に適宜格納される。動き復号器５１０２９では動きベクトルを表すmvd_idx_I0符号等、参照フレームの情報を表すref_idx_I0符号等を復号し、動き補償器５１０３０に入力する。動き補償器５１０３０は、該当するフレームメモリから参照画像を読み込み、予測画像として加算器５１０２４に出力する。
【００１０】
このように複数フレームを参照することにより、物体の陰に１度なって、しばらく後に現れるような場合のように時間的に隔たったフレームを参照することで符号化効率を改善することが可能になる。
【非特許文献１】ISO／IEC14496-10 Information technology − Coding of audio-visual objects −Part 10: Advanced video coding
【発明の開示】
【発明が解決しようとする課題】
【００１１】
前述の符号化装置では、複数フレームを参照して符号化するが、多くのフレームを見ることによって予測誤差を小さくしようとしている。しかしながら、参照するフレーム数が大きくなると、動き補償のための動きベクトル探索に非常に大きな処理が必要になる。
【００１２】
本発明は以上の問題に鑑みてなされたものであり、より高速に動き保証を行なうことを目的とする。
【００１３】
また、前述の符号化装置では、大きな変化がない状況では全ての参照フレームが非常に似通っており、少ないフレーム数では、長時間を参照することができず、変化が生じたときに大きな符号量を発生させることになる。例えば、線路の状態を監視しているモニタでは電車が走っていない時間が殆どであり、電車がフレームに入った瞬間に大きな符号量を発生させる。これでは複数フレームを参照しても符号化効率を向上させる効果が低くなるといった問題が生じる。また、長い時間に対応する場合は保持するフレーム数が非常に多くなり、回路規模が膨大になり、処理も多くなるため、処理時間がかかるといった問題点が生じる。
【００１４】
また、符号化時にノイズが多い画像を参照画像として選択すると符号量が大きくなるといった欠点がある。
【００１５】
また、一般的にフレーム内符号化された画像はフレーム間符号化された画像よりも劣化が小さいため、参照フレームには最適であるが、符号量が大きくなるといった欠点がある。
【００１６】
本発明は以上の問題に鑑みてなされたものであり、参照するフレームの数を効果的に減らし、より高速な動き補償による符号化処理を行なうことを目的とする。
【課題を解決するための手段】
【００１７】
本発明の目的を達成するために、例えば本発明の符号化装置は以下の構成を備える。
【００１８】
即ち、動画像を構成する各フレームの画像を動き補償によって符号化する符号化装置であって、
各フレームの画像を入力する入力手段と、
前記入力手段が入力した第１のフレームの画像から該入力手段による画像入力順に各フレームの画像を参照し、参照した第２のフレームの画像と当該第２のフレームの次のフレームである第３のフレームの画像との間の相違度が予め設定された閾値以上であると判断した場合には、前記第１のフレームから前記第２のフレームまでを１つの区間として設定することにより、前記各フレームを複数の区間に分割する区間分割手段と、
前記区間分割手段が分割したそれぞれの区間毎に、区間内の他フレームの画像群との相違度の総和値が最も小さい自フレームの画像を代表画像として設定する代表画像設定手段と、
前記それぞれの区間毎に設定した代表画像から、注目フレームの画像を符号化するために参照する代表画像を参照画像として選択する参照画像選択手段とを備え、
前記参照画像選択手段が選択した参照画像、若しくは当該参照画像を含む区間内の各フレームの画像を用いて、前記注目フレームの画像を動き補償により符号化することを特徴とする。
【発明の効果】
【００４９】
本発明の構成により、参照するフレームの数を効果的に減らすことができ、より高速な動き補償による符号化処理を行なうことができる。
【発明を実施するための最良の形態】
【００５０】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００５１】
［第１の実施形態］
図１は本実施形態に係る動画像符号化装置の構成を示す図である。本実施形態では、Ｈ．２６４符号化方式をベースにとって説明するが、Ｈ．２６４と異なり、参照フレームは時間的に不連続のものを参照することになる。但し、ベースはＨ．２６４に限定されない。また、説明を簡単にするため、過去のフレームを参照する前方向予測を例に取るが、これに限定されず、両方向予測に適用してももちろん構わない。また、以下の説明では、フレームの画像データをフレームデータと呼称する場合もある。また、このフレームデータ（フレームの画像）には、このフレームのフレーム番号を示すデータも含まれているものとする。
【００５２】
図１において、１９〜２２は外部から入力された動画像の各フレームの画像（入力画像）を格納するためのフレームメモリである。２６は入力先を選択して出力するセレクタである。１はフレーム内符号化／フレーム間符号化のモードに従って出力先を選択するセレクタである。
【００５３】
２はＨ．２６４符号化方式によるイントラ予測を行なうイントラ予測器であり、３は動き予測誤差を求める差分器である。４は整数型直交変換を行ない、入力された係数を量子化する変換／量子化器であり、７はその逆の作用を施す逆量子化／逆変換器である。８は動き予測画像を加算する加算器である。５は変換／量子化器４による量子化結果を符号化するエントロピー符号化器であり、６は発生した複数フレーム分の符号を格納するバッファである。
【００５４】
９、１０、１１、１２はフレームメモリであり、局所復号された画像データとフレームの番号をフレーム単位で格納する。１３は入力画像と復号された画像データから最適な動きベクトルを該当するフレームから抽出する動き推定器であり、１４は動き推定器１３で算出された動きベクトルと該当するフレームの情報から予測画像を生成する動き補償器である。１５は算出された動きベクトルと該当するフレームの情報から動きの情報を符号化する動き符号化器である。
【００５５】
１７はフレームメモリ９〜１２の入出力を制御するフレームメモリ制御器であり、１６はバッファ６に格納された符号化データを出力する出力器である。２５は入力画像を比較して類似度を算出して区間を設定する区間設定器である。１８は区間を代表する代表フレームを判定する代表フレーム判定器である。２６は符号化を行なうフレームを選択するセレクタである。２７は設定された区間を格納しておく区間メモリであり、２８は判定された代表フレームを格納しておく代表フレームメモリである。２９は参照する区間を判定する参照フレーム判定器である。
【００５６】
上記のように構成された動画像符号化装置における動画像の符号化動作を以下、説明する。
【００５７】
符号化に先立ち、各フレームメモリ、区間メモリ２７、代表フレームメモリ２８を初期化する。初期化としては例えば各メモリ内を０のデータで埋める。
【００５８】
また、区間設定器２５には、区間の先頭を表す始点値と終点を表す終点値として第１フレームを表す１を設定する。また、出力器１６は参照するフレームの最大数を表すヘッダ情報を生成して出力する。
【００５９】
本動画像符号化装置に入力されたフレームの画像データはフレームメモリ１９〜２３に順に格納される。また、入力された画像データはそれぞれ、直前に入力されたフレームの画像データと共に区間設定器２５に入力される。すなわち、第Ｎフレーム目の画像と第（Ｎ−１）フレーム目の画像とがセットなって区間設定器２５に入力される。
【００６０】
区間設定器２５では入力された２つのフレームデータ（フレームの画像データ）の相違度Ｒを求める。ここでは説明を簡単にするため、２つの画像で対応する画素同士の画素値の差分の絶対値を全ての画素について加算した総和値を相違度Ｒとする。
【００６１】
例えば、フレームメモリ１９に格納されている第Ｎフレーム目の画像ＸＮの画素値をＸＮ（ｉ，ｊ）（ｉ，ｊは画像ＸＮにおける画素の位置）、フレームメモリ２０に格納されている第（Ｎ−１）フレーム目の画像ＸＮ−１の画素値をＸＮ−１（ｉ，ｊ）とする。
【００６２】
この場合、この２つの画像（第Ｎフレーム目の画像と第（Ｎ−１）フレーム目の画像）との間の相違度ＲＮは以下の式に従って求めることができる。
【００６３】
ＲＮ＝ΣΣ（｜ＸＮ（ｉ，ｊ）―ＸＮ−１（ｉ，ｊ）｜）      （１）
ここで「ΣΣ」は全てのｉ、ｊについて加算することを示している。
【００６４】
そして区間設定器２５は、求めた相違度ＲＮが予め設定された閾値Ｔｈよりも小さければ終点値に１を加え、Ｎを１つインクリメントして同様の処理を行なう。
【００６５】
一方、相違度ＲＮが予め設定された閾値Ｔｈよりも大きかった場合、または、符号化していないフレームデータでフレームメモリ１９〜２２がいっぱいになってしまった場合、区間判定器２５は区間の始点値と終点値を区間メモリ２７の空いた領域または、空いた領域が無ければ最も古い区間を表すデータに上書きして格納する。また、これらの値は代表フレーム判定器１８に入力される。
【００６６】
代表フレーム判定器１８は区間を表すこれらの値（始点値、終点値）とフレームメモリ１９〜２２の中でこの区間内の各フレームの画像データを読み込み、相違度Ｑを求める。本実施形態では、区間の始点値をＳ、終点値をＥとしたとき、第Ｎフレームとその他のフレーム（第Ｎフレーム目をのぞく第Ｓフレーム目から第Ｅフレーム目までの各フレーム）との相違度ＱＮは
ＱＮ＝Σ（ΣΣ（｜ＸＮ（ｉ，ｊ）―ＸＭ（ｉ，ｊ）｜）    （Ｍ＝Ｓ〜Ｅ）      （２）
すなわち、全てのｉ、ｊについて（｜ＸＮ（ｉ，ｊ）―ＸＭ（ｉ，ｊ）｜の総和値を求め、更にその結果を全てのＭ（Ｓ〜Ｅ）について加算する。特にＮ＝Ｍの場合は計算を省略することができる。
【００６７】
すなわち本実施形態に係る相違値ＱＮは、第Ｎフレーム目の画像と第Ｍフレーム目の画像とで対応する画素同士の画素値の差分の絶対値を全ての画素について加算した総和値を全てのＭ（Ｍ＝Ｓ、Ｓ＋１、、、Ｅ−１、Ｅ）について求め、その総和を計算することにより求められるものである。
【００６８】
代表フレーム判定器１８は求めた各相違度ＱＮのうち、最も小さい相違度Ｑのフレームを選択する。選択したフレームの番号を代表フレームメモリ２８に入力する。
【００６９】
そして、区間設定器２５は終点値に１を加えたものを始点値と終点値にセットする。
【００７０】
続いて、セレクタ２６は区間メモリ２７に最近格納した始点値、終点値を参照し、フレームメモリ１９〜２３のそれぞれが格納するフレームデータにおいて始点値から終点値の間のフレームデータを順に読み出し、セレクタ１に入力する。
【００７１】
セレクタ１は一定間隔、例えば１５フレーム毎にフレームをフレーム内符号化するために、出力にイントラ予測器２を選択し、そうでない場合は、フレーム間符号化するために出力に差分器３を選択する。
【００７２】
イントラ予測器２が選択された場合、入力されたフレームデータはブロック毎に予測が行なわれる。一方、差分器３が選択された場合は、入力された画像データはスライス単位で動き推定器１３に入力される。
【００７３】
先ず代表フレームメモリ２８に保持されている「過去に設定した各区間の代表フレーム番号」を参照して、各区間の代表フレームのデータをフレームメモリ９〜１２から読み出し、動き推定器１３、動き補償器１４により、それぞれの代表フレームの入力画像に対する予測画像を生成する。そしてそれぞれの代表フレームの予測画像と入力画像との誤差（予測誤差）を求め、入力画像との予測誤差が最も小さい代表フレームを特定する。
【００７４】
そして特定した代表フレームのフレーム番号を含む区間の両端を示す情報である始点値、終点値を代表フレームメモリ２８から読み出し、読み出した始点値、終点値でもって規定される区間内の各フレームの画像をフレームメモリ９〜１２から読み出し、読み出した画像群と入力画像とを用いて、動き推定器１３、補償器１４により、周知の動き補償による符号化処理を行なう。
【００７５】
そして、入力画像に対する予測画像を動き補償器１４により生成するので、これを差分器３に入力する。差分器３は入力画像と予測画像から予測誤差を求める。また、動きベクトルは動き符号化器１５で符号化され、バッファ６に格納される。イントラ予測器２または差分器３で得られた結果は変換／量子化器４に入力され、整数型直交変換を行ない、その係数を量子化する。その結果はエントロピー符号化器５と逆量子化／逆変換器７に入力される。エントロピー符号化器５では、入力された量子化結果をエントロピー符号化し、バッファ６にフレーム単位で格納する。
【００７６】
一方、イントラ予測器２、差分器３の何れにおいても予測誤差が出力されるので、この予測誤差が変換／量子化器４，逆量子化／逆変換器７を介して加算器８で、動き補償器１４から入力される「入力画像に対する予測画像」と加算される。例えば予測誤差が差分器３から出力された場合、この予測誤差とは、セレクタ２６から入力された入力画像と、この入力画像に対する予測画像との差分であるので、加算器８がこの差分と動き補償器１４から入力される「入力画像に対する予測画像」と加算することにより、復号画像が復元される。よって、フレームメモリ９〜１２には、フレームメモリ１９〜２２に格納されているフレームデータが復元されて格納されることになる。
【００７７】
以上の動き補償による符号化処理は、参照する画像（上記説明では、特定した代表フレームのフレーム番号を含む区間内の各フレームの画像）を特定する処理以外は周知の動き補償による符号化処理である。
【００７８】
このように本実施形態に係る符号化処理では、連続するフレーム間で画像にさほど差がない（隣接するフレーム間での相違度Ｒｎが閾値Ｔｈ以下）ようなフレーム列の区間を設定し、更にこの区間内の各フレームにおいてその他のフレームとの差が最も少ないフレームを参照画像のフレームとして設定するので、区間内の各フレームを符号化する際に参照する画像は１つであり、参照すべき画像の数を軽減することができ、より高速に符号化処理を行なうことができる。
【００７９】
なお、逆量子化／逆変換器７では、入力された量子化結果から予測誤差（入力画像と予測画像との差）を得、加算器８はこの予測誤差と動き補償器１４からの予測画像とを加算することにより、入力画像を復元する。そして復元した入力画像をフレームメモリ９〜１２のうち、データが入っていないフレームメモリか、最も古いフレームの画像データのフレームメモリに格納する。
【００８０】
最後に、バッファ６に格納された符号化データは出力器１６により外部に出力する。また、符号化が終了したフレームの画像データはフレームメモリ１９〜２２のうちから消去される。
【００８１】
以上の処理を本動画像符号化装置に入力される全てのフレームを符号化するまで行なう。
【００８２】
図２は、以上説明した符号化処理のフローチャートである。
【００８３】
先ず、上述の通り、図１に示した各部の初期化を行ない、更に、出力器１６は、参照するフレームの最大数を表すヘッダ情報を生成して出力する（ステップＳ１）。次に、符号化すべき全てのフレームについて符号化処理を行ったか否かを判断する（ステップＳ２）。符号化すべきフレームがまだ残っている場合には処理をステップＳ３に進め、符号化していないフレームの画像データでフレームメモリ１９〜２２がいっぱいになってしまったか否かを判定する（ステップＳ４）。フレームメモリに余裕があれば処理をステップＳ４に進め、フレームメモリに余裕がなく満杯であれば処理をステップＳ８に進める。
【００８４】
フレームメモリに余裕がある場合、フレームメモリ１９〜２２に符号化対象のフレームデータを順に入力する（ステップＳ４）。そして区間設定器２５により、始点値で示される位置のフレームから順に参照するのであるが、現在参照しているフレームと、この次のフレームとの相違度Ｒを上記式（１）に従って求める（ステップＳ５）。そして求めた相違度Ｒが予め決まっている閾値Ｔｈよりも小さいか否かを判断する（ステップＳ６）。Ｒ＜Ｔｈの場合、区間設定器２５により、現在参照しているフレームの画像と、この次のフレームの画像とがさほど差がないと判断され、終点値に１を足して更新し（ステップＳ７）、ステップＳ３以降の処理を繰り返す。このようにして、現在参照しているフレームの画像と、この次のフレームの画像とがさほど差がないと判断した場合には、終了点を１つずつ増やして更新していき、始点値と終点値とで規定される区間を更新する。
【００８５】
一方、ステップＳ６において相違度Ｒが閾値Ｔｈ以上の場合、もしくはステップＳ３においてフレームメモリに余裕がなく満杯である場合、区間設定器２５により、現在参照しているフレームの画像と、この次のフレームの画像とに差があると判断され、始点値と終点値とで規定される区間を以降の処理で参照すべく、この始点値、終点値を区間メモリ２７に格納する（ステップＳ８）。
【００８６】
そして、代表フレーム判定器１８は、区間を表すこれらの値（始点値、終点値）とフレームメモリ１９〜２２の中でこの区間内の各フレームの画像データを読み込み、この各フレームについて式（２）に従って相違度Ｑを求める処理を行なう（ステップＳ９）。そして各フレームについて求めた相違度Ｑのうち、最も小さい相違度Ｑとなったフレームを代表フレームとして設定するため、最も小さい相違度Ｑとなったフレームのフレーム番号を代表フレームメモリ２８に入力し、格納する（ステップＳ１０）。
【００８７】
そして以降の処理により、この区間内の各フレームについて動きベクトルを求め、符号化する処理を行なう。
【００８８】
先ず、区間内の各フレームについて符号化を行ったか否かを判断し（ステップＳ１１）、行っていない場合には処理をステップＳ１２に進め、まだ符号化していないフレームの画像を１つずつ符号化する。
【００８９】
以下に１つのフレームの画像を符号化するための処理について説明する。
【００９０】
先ず、１つのフレームの画像は符号化単位（ここではスライスと呼称する）毎に符号化を行なうのであるが、１つの画像の全ての符号化単位について符号化を行ったか否かを判断する（ステップＳ１２）。
【００９１】
まだ符号化を行っていない符号化単位があった場合には、処理をステップＳ１３に進め、動き補償器１４は、代表フレームメモリ２８に保持されている「過去に設定した各区間毎の代表フレーム番号」に基づいて、各区間の代表フレームのデータをフレームメモリ９〜１２から読み出し、それぞれの代表フレームの符号化対象フレームの画像に対する予測画像を生成し、それぞれの代表フレームに対する予測画像と符号化対象フレームの画像との誤差（予測誤差）を求める（ステップＳ１３）。
【００９２】
そして、符号化対象フレームとの予測誤差が最も小さい代表フレームを特定し、特定した代表フレームのフレーム番号を含む区間の両端を示す情報である始点値、終点値を代表フレームメモリ２８から読み出すことで、符号化しようとする符号化単位を符号化するために参照する区間を設定することができる（ステップＳ１４）。
【００９３】
そしてステップＳ１４で設定した区間内の各フレームの画像をフレームメモリ１９〜２２から読み出し、読み出した画像群と符号化対象の符号化単位とを用いて、この符号化単位に対して符号化処理を行なう（ステップＳ１５）。
【００９４】
ステップＳ１５における処理をより詳細に説明すると、フレーム間符号化のモードが設定されている場合には、動き推定器１３は、まだ符号化を行っていない符号化単位について、ステップＳ１４で設定した区間内の各フレームの画像の該当部分と比較して周知の技術により動きベクトルを求め、動き符号化器１５はこの動きベクトルを符号化してその符号化結果をバッファ６に出力する。
【００９５】
また、求めた動きベクトルから動き補償器１４はこの符号化単位に対する予測画像を生成し、差分器３はこの予測画像と符号化単位との差分を予測誤差として求める。そしてこの予測誤差を変換／量子化器４、エントロピー符号化器５により符号化してバッファ６に出力する。これにより、バッファ６には、この符号化単位に対する符号化結果として、動きベクトルの符号化データ、予測誤差の符号化データが格納されることになる。
【００９６】
一方、フレーム内符号化のモードが設定されている場合には、この符号化単位をそのまま符号化する。
【００９７】
そして次の符号化単位に対する符号化処理を行なうべく、処理をステップＳ１２に戻し、以降の処理を繰り返す。以上のステップＳ１２〜Ｓ１５の符号化処理は周知のものであるが、本実施形態では、符号化時に参照する画像の選択方法に以上のような特徴がある。
【００９８】
一方、ステップＳ１２において、１つのフレームの画像を構成する符号化単位全てについて符号化処理を行った場合には処理をステップＳ１６に進め、ステップＳ１２〜Ｓ１５で符号化した対象のフレームの画像をフレームメモリ９〜１２の内で画像データを未格納のフレームメモリ、またはフレームメモリ９〜１２の内で最も古い番号のフレームを格納しているフレームメモリに格納する（ステップＳ１６）。
【００９９】
そして出力器１６はバッファ６に出力された符号化データを外部に出力し（ステップＳ１７）、区間内の次のフレームを符号化すべく、処理をステップＳ１１に戻し、以降の処理を繰り返す。
【０１００】
そしてステップＳ１１で区間内の全てのフレームについて符号化を行った場合には処理をステップＳ１８に進め、区間設定器２５は終点値に１を加えたものを始点値と終点値にセットすることで始点値、終点値を更新し（ステップＳ１８）、処理をステップＳ２に戻し、以降の処理を繰り返す。
【０１０１】
以上の説明により、本実施形態に係る動画像符号化装置は、より少ないフレーム数の参照で効率よく最適な動き補償を行なうことが可能になり、高速に符号化することが可能になるといった効果がある。なお、本実施形態では相違度は画像間での画素毎の差分であったが、画像間の類似度を示すものであれば、特に限定するものではない。
【０１０２】
また、本実施形態では画素毎の差分をフレームの全ての画素について行なったが、サブサンプリングした画素に対して行なっても構わない。
【０１０３】
また本実施形態に係る動画像符号化装置は、図１に示した構成を有するハードウェアとしたが、これに限定するものではなく、他にも例えば、図１に示した各部の機能をソフトウェアでもって実装し、このプログラムをＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）などのコンピュータにインストールし、このコンピュータのＣＰＵがこれを実行することにより、このコンピュータは上述した動画像符号化処理を実行することになる。よってこの場合、このコンピュータをもってして本実施形態に係る動画像符号化装置とすることができる。
【０１０４】
このように、ソフトウェアでもって実装可能であるのは本実施形態だけではなく、以降の実施形態においても同様である。
【０１０５】
［第２の実施形態］
図３は本実施形態に係る動画像符号化装置の構成を示す図である。同図において図１と同じ部分については同じ番号をつけており、その説明を省略する。
【０１０６】
１１７はフレームメモリ９〜１２の入出力を制御するフレームメモリ制御器であり、１２５は入力画像を比較して類似度を算出して区間を設定する区間設定器である。１１８は区間を代表する代表フレームを判定する代表フレーム判定器である。
【０１０７】
以下に本実施形態に係る動画像符号化装置が行なう動画像符号化処理について説明する。
【０１０８】
第１の実施形態と同様に、符号化に先立ち、各フレームメモリ、区間メモリ２７、代表フレームメモリ２８を初期化する。初期化としては例えば各メモリ内を０のデータで埋める。
【０１０９】
また、区間設定器１２５には、区間の先頭を表す始点値と終点を表す終点値として第１フレームを表す１を設定する。また、出力器１６は参照するフレームの最大数を表すヘッダ情報を生成して出力する。
【０１１０】
動画像を構成する各フレームは順次フレームメモリ１９に入力される。セレクタ１は、フレーム内符号化を行なうモードが設定されている場合には、フレームメモリ１９に入力され、格納されているフレームデータをマクロブロック単位で順次イントラ予測器２に入力する。そしてイントラ予測器２はブロック毎に予測を行ない、予測結果である予測誤差は変換／量子化器４で整数型直交変換と量子化が行なわれ、その結果はエントロピー符号化器５に入力される。エントロピー符号化器５では、入力された量子化結果をエントロピー符号化し、バッファ６にフレーム単位で格納する。
【０１１１】
逆量子化／逆変換器７では、入力された量子化結果から復号画像を得る。フレームメモリ制御器１１７の指示に従って、フレームメモリ９〜１２のうち、空いているフレームメモリ、または最も古い代表フレームの画像データのフレームメモリに復号画像データを格納する。バッファ６に格納された符号化データは出力器１６から出力される。
【０１１２】
このように、フレーム内符号化を行なう場合については第１の実施形態と同様である。
【０１１３】
一方、フレーム間符号化のモードが設定されている場合について説明する。
【０１１４】
基本的には第１の実施形態と同様にして符号化処理を行なうのであるが、第１の実施形態と異なるのは、予め区間、及び代表フレームを決めておくのではなく、符号化を行っていくのと並行して、この区間、代表フレームを適宜更新する点にある。以下ではその更新処理について説明する。
【０１１５】
第１の実施形態と同様に、差分器３は、入力画像と予測画像との差分を予測誤差として出力するのであるが、この予測誤差は加算器８でこの予測画像に加算され、復号画像を復元し、この復号画像をフレームメモリ９〜１２のいずれかに格納される。
【０１１６】
そしてフレームメモリ９〜１２に格納され、入力された画像データはそれぞれ、直前に入力されたフレームの画像データと共に区間設定器１２５に入力される。すなわち、第Ｎフレーム目の画像と第（Ｎ−１）フレーム目の画像とがセットなって区間設定器１２５に入力される。
【０１１７】
区間設定器１２５では入力された２つのフレームデータの相違度Ｒを式（１）に従って求める。なお、本実施形態においても、相違度Ｒの求め方はこれに限定するものではない。そして区間設定器１２５は、求めた相違度Ｒが予め設定された閾値Ｔｈよりも小さければ終点値に１を加え、終点値を更新する。
【０１１８】
次に、区間設定器１２５により更新後の終点値が示すフレームが第Ｎフレーム目である場合、代表フレーム判定器１１６は、現在始点値が示すフレームから第（Ｎ−１）フレームまでの各フレームの画像と第Ｎフレーム目の画像とを用いて、式（２）に従って、相違度ＱＮを求める（その場合、「現在始点値が示すフレームから第（Ｎ−１）フレームまでの各フレームの画像」が式（２）におけるＸＭ（ｉ，ｊ）に相当し、「第Ｎフレーム目の画像」がＸＮ（ｉ，ｊ）に相当することになる）。
【０１１９】
また、区間設定器１２５は、第Ｎフレーム目の画像と、現在の区間の代表フレームとして設定されているフレームの画像データとの相違度ＳＮを式（１）に従って求める。
【０１２０】
そして代表フレーム判定器２９は、相違度ＳＮと第（Ｎ−１）フレームまでを符号化した際の代表フレームとの相違度の累積ＱＤ（相違度ＱＤの初期値は０）と加算し、新しい累積相違度ＱＤ’を算出する。この累積相違度ＱＤ’と相違度ＱＮとの大小比較を行なう。
【０１２１】
比較の結果、相違度ＱＮが累積相違度ＱＤ‘よりも小さい場合、第Ｎフレーム目を新しい代表フレームとするため、第Ｎフレームのフレーム番号（すなわちＮ）を代表フレームメモリ２８に設定する。その後、相違度ＱＤの値として相違度ＱＮの値を代入する。
【０１２２】
一方、相違度ＱＮが相違度ＱＤ‘以上であれば、代表フレームの更新は行なわず、その後、相違度ＱＤの値として相違度ＱＤ‘の値を代入する。
【０１２３】
以上の処理により、代表フレーム、及び区間の終点値を、次のフレームの符号化の直前に設定することができる。
【０１２４】
図４は、以上説明した符号化処理のフローチャートである。同図において図２と同じ処理ステップについては同じステップ番号をつけており、説明を簡略化する。また本実施形態では、フレーム単位で代表フレームを選択する例をとって説明するが、これに限定されず、第１の実施形態のようにスライスやマクロブロックを単位にしてももちろん構わない。
【０１２５】
先ず、上述の通り、図３に示した各部の初期化を行ない、更に、出力器１６は、参照するフレームの最大数を表すヘッダ情報を生成して出力する（ステップＳ１）。次に、符号化すべき全てのフレームについて符号化処理を行ったか否かを判断する（ステップＳ２）。符号化すべきフレームがまだ残っている場合には処理をステップＳ４に進め、フレームメモリ１９に符号化対象のフレームデータを順に入力する（ステップＳ４）。
【０１２６】
次に、フレーム内符号化、フレーム間符号化の何れのモードが設定されているのかを判断する（ステップＳ１０１）。ここでフレーム内符号化を行なう場合には処理をステップＳ１０２に進め、セレクタ１はフレームメモリ１９からの入力画像をイントラ予測器２に出力し、イントラ予測器２は入力された画像に対して周知のイントラ符号化を行なう（ステップＳ１０２）。
【０１２７】
一方、フレーム間符号化を行なう場合には処理をステップＳ１０４に進め、動き補償器１４は、代表フレームメモリ２８に保持されている「過去に設定した各区間毎の代表フレーム番号」に基づいて、各区間毎の代表フレームのデータをフレームメモリ９〜１２から読み出し、それぞれの代表フレームの符号化対象フレームに対する予測画像を生成し、そしてそれぞれの代表フレームの予測画像と符号化対象フレームの画像との誤差（予測誤差）を求める（ステップＳ１０４）。
【０１２８】
そして、符号化対象フレームとの予測誤差が最も小さい代表フレームを特定し、特定した代表フレームのフレーム番号を含む区間の両端を示す情報である始点値、終点値を代表フレームメモリ２８から読み出すことで、符号化しようとする符号化対象フレームを符号化するために参照する区間を設定することができる（ステップＳ１０５）。
【０１２９】
そしてステップＳ１０５で設定した区間内の各フレームの画像をフレームメモリ９〜１２から読み出し、読み出した画像群と符号化対象フレームとを用いて、この符号化対象フレームに対して周知の動き補償による符号化処理を行なう（ステップＳ１０６）。
【０１３０】
ステップＳ１０４からステップＳ１０６までの各ステップにおける処理はそれぞれ、符号化単位が異なる以外は、ステップＳ１３からステップＳ１５までの各ステップにおける処理と同じである。
【０１３１】
そして以上の処理により、第１の実施形態と同様に、バッファ６には符号化対象の符号化データが格納されるので、出力器１６は、バッファ６に格納されたこの符号化データを外部に出力し、更に、ステップＳ１６と同様にして、符号化したフレームの復元画像をフレームメモリ１９〜２２のうち画像データを未格納のフレームメモリ、またはフレームメモリ９〜１２の内で最も古い番号のフレームを格納しているフレームメモリに格納する（ステップＳ１０７）。
【０１３２】
次に、以降の処理では、次のフレームの符号化のために参照され得る情報、すなわち、代表フレームの位置、及び区間を設定する処理を行なう。
【０１３３】
先ず代表フレーム判定器１１８は、ステップＳ１０６で符号化されたフレームの復元画像（ステップＳ１０７で復元）と、このフレームの直前のフレームの画像（同様に復元されてフレームメモリ９〜１２のいずれかに格納されている）とを比較し、式（１）に基づいて、相違度Ｒを求める（ステップＳ１０８）。
【０１３４】
そして求めた相違度Ｒと閾値Ｔｈを比較し（ステップＳ１０９）、相違度Ｒが閾値Ｔｈ以上であれば処理をステップＳ１１０に進め、そうでなければ処理をステップＳ１１２に進める。
【０１３５】
相違度Ｒが閾値Ｔｈ以上である場合、処理をステップＳ１１０に進め、ステップＳ１０６で符号化したフレームは直前の区間内のフレームには属さない、換言すれば、直前の区間内のどのフレームとも大きな差があるフレームであると判断するので、ステップＳ１０６で符号化したフレームを次の新たな区間に属するフレームであると判断し、次の区間の開始点、終了点、及びこの区間における代表フレームの設定処理を行なう。
【０１３６】
まず区間設定器１２５は、区間メモリ２７中に新規の区間の開始点、及び終了点としてステップＳ１０６で符号化したフレームの番号を設定する（ステップＳ１１０）。次に、新たに設定する区間における代表フレームとして、ステップＳ１０６で符号化したフレームとすべく、このフレームの番号を代表フレームメモリ２８に格納する（ステップＳ１１１）。
【０１３７】
そして次のフレームの符号化処理を行なうべく、処理をステップＳ２に戻し、以降の処理を行なう。
【０１３８】
一方、ステップＳ１０９において相違度Ｒが閾値Ｔｈよりも小さい場合には処理をステップＳ１１２に進め、現在区間メモリ２７に格納されている終了点に１を加えて、ステップＳ１０６で符号化したフレームを直前の区間に含める処理を行なう（ステップＳ１１２）。
【０１３９】
次に、区間設定器１２５は上記式（１）に従って上記相違度ＱＮ、ＳＮを求める（ステップＳ１１３）。より具体的には、更新後の終点値が示すフレーム（ここではステップＳ１０６で符号化したフレーム）が第Ｎフレーム目である場合、代表フレーム判定器１１６は、現在始点値が示すフレームから第（Ｎ−１）フレームまでの各フレームの画像と第Ｎフレーム目の画像とを用いて、式（２）に従って、相違度ＱＮを求める（その場合、「現在始点値が示すフレームから第（Ｎ−１）フレームまでの各フレームの画像」が式（２）におけるＸＭ（ｉ，ｊ）に相当し、「第Ｎフレーム目の画像」がＸＮ（ｉ，ｊ）に相当することになる）。
【０１４０】
また、第Ｎフレーム目の画像と、現在代表フレームとして設定されているフレームの画像データとの相違度ＳＮを式（１）に従って求める。
【０１４１】
そして代表フレーム判定器２９は、相違度ＳＮと第（Ｎ−１）フレームまでを符号化した際の代表フレームとの相違度の累積ＱＤ（相違度ＱＤの初期値は０）と加算し、新しい累積相違度ＱＤ’を算出する（ステップＳ１１４）。更新後のＱＤをＱＤ’と表す。
【０１４２】
そして、累積相違度ＱＤ’と相違度ＱＮとの大小比較を行なう（ステップＳ１１５）。
【０１４３】
比較の結果、累積相違度ＱＮが相違度ＱＤ‘よりも小さい場合、処理をステップＳ１１６に進め、第Ｎフレーム目（すなわちステップＳ１０６で符号化したフレーム）を新たな代表フレームとするため、第Ｎフレームのフレーム番号（すなわちＮ）を代表フレームメモリ２８に設定する（ステップＳ１１６）。その後、累積相違度ＱＤの値として相違度ＱＮの値を代入する（ステップＳ１１７）。
【０１４４】
一方、相違度ＱＮが累積相違度ＱＤ‘以上であれば処理をステップＳ１１５からステップＳ１１８に進め、累積相違度ＱＤの値として累積相違度ＱＤ‘の値を代入する（ステップＳ１１８）。
【０１４５】
そしてステップＳ１１７、Ｓ１１８何れの場合であってもその後、次のフレームを符号化するために処理をステップＳ２に戻し、以降処理を繰り返す。
【０１４６】
以上の処理により、次のフレームを符号化する際に参照画像として参照すべきフレーム（代表フレーム）、及び区間の終点値を、次のフレームの符号化の直前に設定することができる。
【０１４７】
このような構成と一連の選択動作により、復号画像で区間の設定と代表フレームの判定を行なうため、フレームメモリとして第１の実施形態よりも少ないメモリ容量（本実施形態の場合、入力画像を保持しておくフレームメモリは第１の実施形態が複数なのに比べて単数である）でも高速に動き補償を行なうことが可能になるといった効果がある。
【０１４８】
［第３の実施形態］
図５は、本実施形態に係る動画像符号化装置の基本構成を示すブロック図である。
【０１４９】
同図において、３００はメモリ３０１にロードされたプログラムやデータを用いて、本装置全体の制御を行なうとともに、後述する各処理を実行するＣＰＵである。３０１はメモリで、記憶装置３０４、３０５からロードされたプログラムやデータを一時的に格納するためのエリアを備えるとともに、ＣＰＵ３００が各処理を実行する際に使用するワークエリアを備える。
【０１５０】
３０３は、本動画像符号化装置に対する各種の設定や、各種の指示などを入力するための端末装置である。３０４は、ＣＰＵ３００に各種の処理を実行させるためのソフトウェアのプログラムやデータを記憶するための記憶装置で、これらのソフトウェアの一部、もしくは全部はＣＰＵ３００の制御によりメモリ３０１にロードされ、ＣＰＵ３００による処理対象となる。
【０１５１】
３０５は、動画像のストリームのデータを記憶する記憶装置で、このストリームの一部、もしくは全部はＣＰＵ３００の制御によりメモリ３０１にロードされ、ＣＰＵ３００による処理対象となる。
【０１５２】
なお、同図では記憶装置３０４、３０５はそれぞれ別個の装置としているが、これに限定するものではなく、１つの記憶装置内に、記憶装置３０４、３０５それぞれが記憶するプログラムやデータを記憶させても良い。また、記憶装置３０４、３０５はそれぞれリムーバブルな記憶媒体としてもよく、その場合、本動画像符号化装置にはこれら記憶媒体に記録されたプログラムやデータを読み出す装置を付加する必要がある。
【０１５３】
３０６は、動画像を撮像するためのカメラで、撮像された動画像のデータ（各フレームの画像データ）は、記憶装置３０５内に記録される。３０７はＣＲＴや液晶画面などにより構成される表示装置で、各種の画像や文字などを表示する。３０８は通信Ｉ／Ｆ（インターフェース）で、本動画像符号化装置はこの通信Ｉ／Ｆ３０８、そしてＬＡＮ、公衆回線、無線回線、放送電波等のネットワーク３０９を介して外部とデータ通信を行なう。
【０１５４】
３０２は、上述の各部を繋ぐバスやネットワークを含む通信路である。
【０１５５】
次に、上記構成を備える動画像符号化装置が行なう、カメラ３０６により撮像され、記憶装置３０５に記録された動画像を符号化し、符号化結果を通信Ｉ／Ｆ３０８を介してネットワーク３０９に送出する処理について説明する。なお、符号化方式としてＨ．２６４符号化方式を例にとって説明するがこれに限定されず、２フレーム以上の複数フレームを参照して符号化する符号化方式であれば構わない。また、説明を容易にするために前方向予測のみとするが、これに限定されない。さらに、一定の間隔でフレーム内符号化を行なうこととし、それ以外はフレーム間符号化を行なうこととする。
【０１５６】
端末装置３０３に備わっている不図示のキーボードやマウスを用いて符号化指示を入力すると、この指示はＣＰＵ３００に通知され、ＣＰＵ３００は各部の初期化を行なう。またＣＰＵ３００は、ＣＰＵ３００に後述の動画像符号化処理を実行させるためのソフトウェア、ＣＰＵ３００に後述の通信処理を行わせるためのソフトウェア等のソフトウェアのプログラムやデータを記憶装置３０５から読み出してメモリ３０１にロードする。
【０１５７】
図６はメモリ３０１内のメモリマップの一例を示す図である。同図に示すように、メモリ３０１には、動画像符号化ソフトウェア、通信ソフトウェアを記憶するためのエリアが設けられているとともに、これらソフトウェアを制御するなどの処理をＣＰＵ３００に実行させるためのＯＳ（オペレーティングシステム）を記憶するためのエリアも備えている。また、後述する画像エリア（１〜９）、符号エリア、ワーキングエリアも備える。
【０１５８】
図７は、ＣＰＵ３００が、この動画像符号化ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【０１５９】
先ず、メモリ３０１上の各画像エリア、符号エリアをクリアし、ヘッダ情報を生成して符号エリアに格納する（ステップＳ２０１）。このとき、ワーキングエリア上に区間を表すテーブルの領域を確保する。テーブルの内容（構成例）を図９に示す。
【０１６０】
各レコードは有効フラグ、区間始点値、区間終点値、代表フレーム番号からなり、レコードの数は最大、参照画像を格納する画像エリアの個数になる。本実施形態では、画像エリア１は入力画像を格納するので参照画像は８フレームとなる。レコードｘの有効フラグ、区間始点値、区間終点値、代表フレーム番号をそれぞれＦ（ｘ）、Ｓ（ｘ）、Ｅ（ｘ）、Ｄ（ｘ）とする。
【０１６１】
図７に戻って、次に、全てのフレームの符号化が終了したか否かの判定を行なう（ステップＳ２０２）。全てのフレームの符号化処理を行っていない場合には処理をステップＳ２０３に進め、記憶装置３０５から、カメラ３０６が撮像した動画像のうち、１フレーム分のデータを読み出して、メモリ３０１の画像エリアに格納する（ステップＳ２０３）。ステップＳ２０３における処理が最初の場合には、画像エリア１に格納する。なお、格納するフレームのデータには、このフレームのフレーム番号も含まれている。
【０１６２】
符号化するフレームがフレーム内符号化を行なうフレームであれば、処理をステップＳ２１４に進め、そうでなければ処理をステップＳ２０５に進め、ステップＳ２０３で画像エリアに格納したフレームの画像と、代表フレームである画像データとの動き補償を行なう（ステップＳ２５０）。
【０１６３】
フレーム内符号化を行なう場合、イントラ予測を行ないながらフレーム内符号化を行なう。（ステップＳ２１０）次に、通信ソフトウェアを実行することにより、メモリ３０１上の符号エリアの符号化データを通信インターフェース３０８を介して通信回路３０９に出力し、その後に、メモリ３０１上の符号エリアの該当する部分をクリアする（ステップＳ２１１）。
【０１６４】
図８は、ステップＳ２０５における処理の詳細を示すフローチャートである。
【０１６５】
先ず、レコード数をカウントするための変数ｘに０を代入して初期化する（ステップＳ２５０）。次に、変数ｘを参照し、変数ｘの値が、最大のレコード数に達したか否かを判断することで、全レコードについて動き補償処理が終了したか否かを判定し（ステップＳ２５１）、終了していれば処理を図７のステップＳ２０６に進め、終了していなければ処理をステップＳ２５２に進める。
【０１６６】
全レコードについて動き補償処理が終了していない場合、レコードｘに有効なデータが格納されているか否かを示す有効フラグＦ（ｘ）を参照し、０か否かを判断する（ステップＳ２５２）。
【０１６７】
Ｆ（ｘ）＝０の場合、すなわちレコードｘに有効なデータが格納されていない場合（例えば、Ｆ（ｘ）＝Ｓ（ｘ）＝Ｅ（ｘ）＝Ｄ（ｘ）＝０の場合）、処理をステップＳ２５３に進め、変数Ｒ（ｘ）に最大数ＭＡＸを代入する（ステップＳ２５３）。そして変数ｘの値を１つインクリメントし（ステップＳ２５６）、処理をステップＳ２５１に戻す。
【０１６８】
一方、Ｆ（ｘ）≠０の場合、すなわち、レコードｘに有効なデータが格納されている場合、処理をステップＳ２５２からステップＳ２５４に進め、変数Ｒ（ｘ）に０を代入し、初期化する（ステップＳ２５４）。そして次に、ステップＳ２５７〜ステップＳ２５９の処理を、ステップＳ２０３で画像エリアに格納したフレームの画像を構成する全てのマクロブロックについて行ったか否かを判断する（ステップＳ２５５）。
【０１６９】
ステップＳ２０３で画像エリアに格納したフレームの画像を構成する全てのマクロブロックについてステップＳ２５７〜ステップＳ２５９の処理を行った場合には処理をステップＳ２５６に進める。
【０１７０】
一方、ステップＳ２０３で画像エリアに格納したフレームの画像を構成する全てのマクロブロックについてステップＳ２５７〜ステップＳ２５９の処理を行っていない場合には処理をステップＳ２５５からステップＳ２５７に進め、図９に示したテーブルを参照し、代表フレーム番号Ｄ（ｘ）のフレームデータを読み出し、ステップＳ２０３で画像メモリに格納したフレームの画像と比較しながら周知の動きベクトルの探索処理を行なう（ステップＳ２５７）。
【０１７１】
そして、ステップＳ２０３で画像エリアに格納した画像と、この動きベクトルに基づいて生成されるこの画像の予測画像との予測誤差ρを求める（ステップＳ２５８）。予測誤差を求めるための処理については上記実施形態と同様、周知の技術である。そして求めた予測誤差ρを変数Ｒ（ｘ）に加算する（ステップＳ２５９）。そして処理をステップＳ２５５に戻し、全てのマクロブロックについてステップＳ２５７〜ステップＳ２５９の処理を繰り返す。これにより、代表フレーム番号Ｄ（ｘ）のフレームの画像と、ステップＳ２０３で画像エリアに格納された画像とに基づいた予測誤差を求めることができる。
【０１７２】
また、以上の処理を、Ｆ（ｘ）≠０である全てのレコードについて行なうことにより、各代表画像毎に、ステップＳ２０３で画像メモリに格納された画像の予測画像との予測誤差を求めることができる。
【０１７３】
図７に戻って、各代表画像毎に、ステップＳ２０３で画像エリアに格納された画像の予測画像との予測誤差を求めると、次に、全てのｘ（本実施形態では０から７）についての変数Ｒ（ｘ）の値を参照し、変数Ｒ（ｘ）の値を最小にする変数ｘの値（ｘ＿ｍ）を特定し、図９のテーブルからＳ（ｘ＿ｍ）、Ｅ（ｘ＿ｍ）のデータを読み出すことで、Ｓ（ｘ＿ｍ）を始点値、Ｅ（ｘ＿ｍ）を終点値とする区間を、動き補償を行なう区間として選択する（ステップＳ２０６）。
【０１７４】
そして、ステップＳ２０３で画像エリアに格納された画像を、ステップＳ２０６で選択された区間内の各フレームの画像との間で上記周知の動き補償による符号化処理であるフレーム間符号化を行なう（ステップＳ２０７）。符号化結果のデータはメモリ３０１上の符号エリアに格納される。また、局所復号された画像データは最も古いフレーム番号の画像エリアに格納される。また、このときの動きベクトル探索を行なった際に算出される予測誤差をマクロブロックごとに求め、その総和値をβとして求めておく。
【０１７５】
次に、通信ソフトウェアを実行することにより、メモリ３０１上の符号エリアの符号化データを通信インターフェース３０８を介して通信回路３０９に出力し、その後に、メモリ３０１上の符号エリアの該当する部分をクリアする（ステップＳ２０８）。
【０１７６】
次に、ステップＳ２０７で求めた上記βの値と、メモリ３０１の所定のエリアに記憶されている閾値Ｔｈとを比較し、β≧Ｔｈであるか否かを判断する（ステップＳ２０９）。
【０１７７】
β≧Ｔｈの場合、ステップＳ２１２にて、有効フラグが０のレコードを検出し、そのレコードの有効フラグを１にし、その始点値と終点値に符号化したフレームの番号を格納する。もし有効フラグが全て1であれば、各レコードの始点値を比較し、最も小さい（古い）区間にレコードに上書きする。ステップＳ２１３にて、代表フレーム番号に符号化したフレームの番号を格納する。
【０１７８】
ステップＳ２１４にて、図９のテーブルで、復号画像を上書きしたフレームの属するレコードの終点値を１つ繰り上げる。また、最新の区間（符号化したフレームの直前の区間）の終点値を符号化したフレームの番号に変更する。
次のフレームの処理を行なうためにステップＳ２０２に戻る。
【０１７９】
このような一連の選択動作により、参照するフレーム数を減らし、高速に動き補償処理を実現しながら予測誤差の増大を抑えることができる。
【０１８０】
また、符号化時に計算される動き補償時の誤差によって区間の更新を行なうかどうか判断することで、新たな計算を生じることがないため、処理規模の増大を最小限に抑える効果もある。
【０１８１】
なお、本実施形態では参照するフレームを８フレームとしたが、これに限定されず、画像エリア等を必要な量だけ確保することでその他の枚数の参照にも対応できることは明らかである。
【０１８２】
また本実施形態に係る上記処理を第１、２の実施形態のように、専用のハードウェアでもって実現するようにしても良い。
【０１８３】
また本実施形態では、符号化結果は通信インターフェース３０８を介して外部に出力したが、これに限定するものではなく、例えば、記憶装置３０５に記録するようにしても良い。
【０１８４】
また本実施形態では、カメラ３０６で撮像された画像データは記憶装置３０５に一旦記録する例を取ったが、これに限定されず、直接メモリ３０１の画像エリアに格納してももちろん構わない。
【０１８５】
［第４の実施形態］
第３の実施形態とは異なる符号化処理について説明する。
【０１８６】
図１０は、本実施形態に係る動画像符号化処理のフローチャートである。なお、本実施形態に係る動画像符号化装置は第３の実施形態と同様の構成を備えるものであるとする。従って、図１０に示すフローチャートに従った処理は、ＣＰＵ３００が実行する。
【０１８７】
また、図１０において、図７と同じ処理ステップ部分には同じステップ番号をつけており、その説明を省略する。
【０１８８】
フレーム間符号化を行なう場合、先ず、区間の参照回数を記録するための変数Ｔ（ｘ）に０を代入し、初期化する（ステップＳ３００）。次に、全てのスライスの符号化が終了したか否かを判断し（ステップＳ３０１）、終了していなければ処理をステップＳ３０２に進め、図８に示したフローチャートに従った処理をスライス単位で行ない、変数Ｒ（ｘ）の値を求める（ステップＳ３０２）。
【０１８９】
そして、ステップＳ２０６と同様にして（本実施形態の場合にはスライス単位に）区間を設定する（ステップＳ３０３）。そして設定した区間に対する参照回数を示す変数Ｔ（ｘ）の値を１つインクリメントする（ステップＳ３０４）。このときの変数ｘの値は、ステップＳ３０３で設定した区間（始点値、終点値）を格納するレコードｘの値である。
【０１９０】
そして符号化対象のスライスに対して上記実施形態と同様な処理により符号化処理を行なう（ステップＳ３０５）。
【０１９１】
一方、全てのスライスに対する符号化処理が完了している場合、処理をステップ２０８に進め、第３の実施形態と同様に、符号化データを出力する（ステップＳ２０８）。次に、変数Ｔ（ｘ）の値、及び変数ｘの値を参照し、変数Ｔ（ｘ）の値を最大にする変数ｘの値は最大値であるか否かを判断する（ステップＳ３０６）。すなわち、最もよく参照された区間が最新区間か否かの判断を行なう。
【０１９２】
最もよく参照された区間が最新区間ではない場合、処理をステップＳ２１２に進め、第３の実施形態と同様にしてステップＳ２１２からステップＳ２１３の処理を行なう。
【０１９３】
一方、最もよく参照された区間が最新区間である場合、処理をステップＳ２１４に進め、第３の実施形態と同様にして区間変更処理を行ない（ステップＳ２１４）、更新された区間の代表フレームを更新する（ステップＳ３０７）。
【０１９４】
ステップＳ３０７における処理をより詳細に説明すると、先ず更新された区間のレコードから区間の始点値Ｓ（ｘ）、終点値Ｅ（ｘ）を読み出す。新たな区間の代表フレーム番号Ｄ（ｘ）は次式にしたがって算出して更新する。
【０１９５】
Ｄ（ｘ）＝（Ｓ（ｘ）＋Ｅ（ｘ））／２      （３）
このような一連の選択動作により、参照するフレーム数を減らし、高速に動く補償処理を実現しながら、予測誤差の増大を抑えることができる。
【０１９６】
また、代表フレームを区間の更新と共に行なうので、常に、最適な代表フレームを選択できる。代表フレームを区間の中央とすることによって、時間的に区間をよりよく代表することが可能にもなる。
【０１９７】
また、代表フレームを区間の中央としたが、これに限定されず、区間の始点、終点の両フレームとしても構わないし、区間内に複数枚にしてももちろん構わない。
【０１９８】
なお、本実施形態においては参照するフレームを８フレームとしたが、これに限定されず、画像エリアなどを必要な量を確保することでその他の枚数の参照にも対応できることは明らかである。
【０１９９】
［第５の実施形態］
図１２は、本実施形態に係る動画像符号化装置の構成を示すブロック図である。本実施形態では、Ｈ．２６４符号化方式をベースにとって説明するが、これに限定されない。また、説明を容易にするため、過去のフレームを参照する前方向予測を例に取るが、これに限定されず、両方向予測に適用してももちろん構わない。また、説明を容易にするため、参照フレームを３フレームとして説明するが、これに限定されない。
【０２００】
同図において５１９〜５２３は動画像を構成する各フレームの画像（入力画像）を格納するフレームメモリである。
【０２０１】
５２５は入力先を選択して出力するセレクタである。５１はフレーム内符号化／フレーム間符号化のモードで出力を選択するセレクタ、５２はＨ．２６４符号化方式によるイントラ予測を行なうイントラ予測器、５３は動き予測誤差を求める差分器である。
【０２０２】
５４は整数型直交変換を行ない、係数を量子化する変換／量子化器、５７はその逆の作用を施す逆量子化／逆変換器である。５８は動き予測誤差を加算する加算器である。５５は量子化結果を符号化するエントロピー符号化器、５６は発生した複数フレーム分の符号を格納するバッファである。
【０２０３】
５９、５１０、５１１、５１２はフレームメモリで、局所復号された画像データとフレームの番号をフレーム単位で格納する。５１３は入力画像と復号された画像データから最適な動きベクトルを該当するフレームから抽出する動き推定器、５１４は動き推定器５１３で算出された動きベクトルと該当するフレームの情報から予測画像を生成する動き補償器である。
【０２０４】
５１５は算出された動きベクトルと該当するフレームの情報から動きの情報を符号化する動き符号化器である。５１７はフレームメモリ５９〜５１２の入出力を制御するフレームメモリ制御器、５１６はバッファ５６に格納された符号化データと参照情報を合成して出力する出力器である。５１８は入力画像を比較して代表フレームを判定する代表フレーム判定器である。５２４は代表フレーム判定器５１８が代表フレームであると判定した際に、この代表フレームのフレーム番号を出力器５１６に出力する代表フレームフラグ発生器である。
【０２０５】
上記構成を備える本実施形態に係る動画像符号化装置が行なう処理について以下、説明する。
【０２０６】
符号化に先立ち、本符号化データが代表フレームを参照する方式であることを示す符号を代表フレームフラグ発生器５２４が生成して出力器５１６に出力する。この符号はＨ．２６４符号化方式と互換性を保つために、ユーザデータとして符号化されることとするがこれに限定されず、電子的な透かしとして埋め込みを行なってももちろん構わない。
【０２０７】
さらに、参照に用いることができるフレーム数などを含むヘッダ情報を出力器５１６が生成して出力する。このとき、参照に用いることのできるフレーム数は３としておく。また、各フレームメモリは０にリセットされる。
【０２０８】
本装置に入力された各フレームの画像データはフレームメモリ５１９〜５２３に順に格納される。本実施形態に係る動画像符号化装置に備わっている入力画像格納用フレームメモリの数は５つであるので、一度に格納しておく入力画像の数は５つであるが、入力画像格納用フレームメモリの数はこれに限定するものではないので、当然、一度に格納しておく入力画像の数もこれに限定するものではない。
【０２０９】
フレームメモリ５１９〜５２３のそれぞれに入力画像が格納されると、代表フレーム判定器５１８は各フレーム間相違度Ｒを求める。ここでは説明を容易にするため、第１の実施形態と同様に、それぞれの画像において位置的に対応する画素間の画素値の差分の絶対値の総和を相違度Ｒとする。
【０２１０】
すなわち、フレームメモリ５１９に格納されている第Ｎフレームの画素の値をＸＮ（ｉ，ｊ）（ｉ，ｊは画素の位置）、フレームメモリ５２０に格納されている第（Ｎ＋１）フレームの画素の値をＸＮ＋１（ｉ，ｊ）、フレームメモリ５２１に格納されている第（Ｎ＋２）フレームの画素の値をＸＮ＋２（ｉ，ｊ）、フレームメモリ５２２に格納されている第（Ｎ＋３）フレームの画素の値をＸＮ＋３（ｉ，ｊ）、フレームメモリ５２３に格納されている第（Ｎ＋４）フレームの画素の値をＸＮ＋４（ｉ，ｊ）とする。
【０２１１】
このとき、第Ｎフレームとその他のフレーム（第（Ｎ＋１）フレーム目〜第（Ｎ＋４）フレーム目の各フレーム）との相違度ＲＮは、以下の式でもって求められる。
【０２１２】
ＲＮ＝ΣΣ（｜ＸＮ（ｉ，ｊ）―Ｘ（Ｎ＋１）（ｉ，ｊ）｜）
＋ΣΣ（｜ＸＮ（ｉ，ｊ）―Ｘ（Ｎ＋２）（ｉ，ｊ）｜）
＋ΣΣ（｜ＸＮ（ｉ，ｊ）―Ｘ（Ｎ＋３）（ｉ，ｊ）｜）
＋ΣΣ（｜ＸＮ（ｉ，ｊ）―Ｘ（Ｎ＋４）（ｉ，ｊ）｜）      （４）
ここで「ΣΣ」は全てのｉ、ｊについて加算することを示している。
【０２１３】
同様に、第（Ｎ＋１）フレームとその他のフレームとの相違度Ｒ（Ｎ＋１）は、以下の式でもって求められる。
【０２１４】
ＲＮ＋１＝ΣΣ（｜ＸＮ＋１（ｉ，ｊ）―ＸＮ（ｉ，ｊ）｜）
＋ΣΣ（｜ＸＮ＋１（ｉ，ｊ）―Ｘ（Ｎ＋２）（ｉ，ｊ）｜）
＋ΣΣ（｜ＸＮ＋１（ｉ，ｊ）―Ｘ（Ｎ＋３）（ｉ，ｊ）｜）
＋ΣΣ（｜ＸＮ＋１（ｉ，ｊ）―Ｘ（Ｎ＋４）（ｉ，ｊ）｜）      （５）
以下、同様に相違度Ｒ（Ｎ＋２）、Ｒ（Ｎ＋３）、Ｒ（Ｎ＋４）を求める。
【０２１５】
代表フレーム判定器５１８はこれら相違度ＲＮ〜Ｒ（Ｎ＋４）を参照し、最も小さい相違度となったフレームを代表フレームとして選択する。例えば、相違度ＲＮ〜Ｒ（Ｎ＋４）のうち、Ｒ（Ｎ＋２）が最も小さい場合、第（Ｎ＋２）フレーム目を代表フレームとして選択する。
【０２１６】
そして代表フレーム判定器５１８は、最も小さい相違度となったフレームのフレーム番号を保持しておく。
【０２１７】
続いて、セレクタ５２５はフレーム５１９〜５２３のフレームデータを順に読み出し、セレクタ５１に入力する。セレクタ５１は一定間隔、例えば１５フレーム毎にフレームをフレーム内符号化するために、出力にイントラ予測器５２を選択し、そうでない場合は、フレーム間符号化するために出力に差分器５３を選択する。イントラ予測器５２が選択された場合、入力されたフレームデータはブロック毎に予測が行なわれる。
【０２１８】
一方、差分器５３が選択された場合は、入力された画像データはマクロブロック単位で動き推定器５１３に入力される。
【０２１９】
そして、動き推定器５１３、動き補償器５１４、動き符号化器５１５は図１の動き推定器１３、動き補償器１４、動き符号化器１５と同様の処理を行ない、これら５フレームの各フレームに対する動き補償による符号化処理を行なう。なお、これら５フレームの各フレームに対する動き補償を行なう際に参照する画像は以下のようにして生成される画像である。
【０２２０】
すなわち、フレームメモリ５９〜５１２に保持しておいた各代表フレームのデータの符号化対象フレームに対する予測画像を生成し、そしてそれぞれの代表フレームの予測画像と符号化対象フレームの画像との誤差（予測誤差）を求め、そして、符号化対象フレームとの予測誤差が最も小さい代表フレームを参照画像とする。
【０２２１】
ここで本実施形態に係る特徴は、本実施形態のように一度に５フレーム分しか符号化できなくても、後で５フレーム分の符号化を行なう際にはフレームメモリ５９〜５１２には代表フレームの画像が記憶されているので、一度に５フレーム以上の符号化を行なうことに等しくなる点にある。
【０２２２】
また、代表フレーム判定器５１８は、フレームメモリ５１９〜５２３から読み出す各フレームデータのうち、保持された代表フレームの番号によって代表フレームを検知すると、そのフレーム番号を代表フレームフラグ発生器５２４に出力する。代表フレームフラグ発生器５２４はこのフレーム番号を出力器５１６に出力する。なお、代表フレームフラグ発生器５２４は、通知された最新のフレーム番号を保持しており、新たに通知されるまで、現在保持しているフレーム番号を出力する。なお、代表フレームが特定できるのであれば、フレーム番号に限定するものではない。
【０２２３】
最後に、バッファ５６に格納された５フレーム分の各フレームの符号化データは出力器５１６により、代表フレームフラグ発生器５２４からの「代表フレームのフレーム番号」を付加して外部に出力される。なお、代表フレームが特定できるのであれば、フレーム番号に限定するものではない。
【０２２４】
そして、イントラ予測器５２、差分器５３の何れにおいても注目フレームデータに対する予測誤差が出力されるので、この予測誤差が変換／量子化器５４、逆量子化／逆変換器５７を介してそのままの状態で加算器５８で、後述する動き補償器５１４から入力される「注目フレームデータに対する予測画像」と加算される。例えば予測誤差が差分器５３から出力された場合、この予測誤差とは、セレクタ５２５から入力された注目フレームデータと、この注目フレームデータに対する予測画像との差分であるので、加算器５８がこの差分と動き補償器５１４から入力される「注目フレームデータに対する予測画像」と加算することにより、注目フレームデータが復元される。フレームメモリ制御器５１７は代表フレーム判定器５１８で打表フレームと判定された場合に、復元されたフレームデータがフレームメモリ５９〜５１２に格納するように制御する。
【０２２５】
図１３は、以上説明した本実施形態に係る符号化処理のフローチャートである。
【０２２６】
先ず、出力器５１６は、以下行なう符号化方式が代表フレームを用いる符号化方式であることを示す情報や、参照するフレームの最大数情報を含むヘッダ情報を生成して出力する（ステップＳ５１）。
【０２２７】
次に、符号化処理すべき対象のフレーム全てについて以下の符号化処理を行っていない場合には（ステップＳ５２）、処理をステップＳ５３に進め、以降の処理を行なう。代表フレーム判定器５１８は、フレームメモリ５１９〜５２３の各フレームメモリにフレームデータが格納される（すなわち５フレーム分のフレームデータがフレームメモリ５１９〜５２３のそれぞれに用意される）まで処理を待つ（ステップＳ５３）。従ってその間、各フレームメモリ５１９〜５２３にはそれぞれ１フレームずつフレームデータが格納される（ステップＳ５４）。
【０２２８】
フレームメモリ５１９〜５２３の各フレームメモリにフレームデータが格納される（すなわち５フレーム分のフレームデータがフレームメモリ５１９〜５２３のそれぞれに用意される）と、処理をステップＳ５５に進め、代表フレーム判定器５１８は、上記処理により、この５フレーム分の各フレームについて、相違度ＲＮを求める（ステップＳ５５）。そして求めた５つの相違度のうち、最小の相違度となったフレームを代表フレームとして決定する（ステップＳ５６）。その場合、代表フレーム判定器５１８は、代表フレームのフレーム番号を代表フレームフラグ発生器５２４に出力する。
【０２２９】
そして以下、この５フレーム分の各フレームを符号化する。
【０２３０】
先ず、この５フレーム分全てについて符号化処理を行ったかを判断し（ステップＳ５７）、行った場合には処理をステップＳ５２に戻し、以降の処理を繰り返す。一方、この５フレーム分全てについて符号化処理を行っていない場合には処理をステップＳ５８に進め、符号化しようとするフレームが代表フレームであるかを判断する。
【０２３１】
符号化しようとするフレームが代表フレームであるか否かは、符号化しようとするフレームのフレーム番号が代表フレーム判定器５１８により得られるフレーム番号と一致するか否かでもって判定可能であるので（一致する場合には代表フレームであると判定）、この判定を行ない（ステップＳ５８）、符号化対象フレームが代表フレームである場合には処理をステップＳ５９に進め、代表フレームフラグ発生器５２４は、代表フレームのフレーム番号を出力器５１６に出力する（ステップＳ５９）。そして符号化対象フレームに対して動き補償による符号化処理を行なうのであるが、この符号化処理は上述の通り、第１の実施形態と同じである。
【０２３２】
そして符号化した代表フレームの画像を第１の実施形態と同様にして復号し、復号画像をフレームメモリ５９〜５１２の内、最も古いフレーム番号のフレームを格納しているフレームメモリに格納する（ステップＳ５１１）。
【０２３３】
一方、符号化しようとするフレームが代表フレームではない場合、処理をステップＳ５８からステップＳ５１２に進め、ステップＳ５１０と同様の処理でもって符号化を行なう（ステップＳ５１２）。
【０２３４】
以上の処理により、バッファ５６には、５フレーム分の各フレームの符号化データが格納されるので、出力器５１６はバッファ５６からこれら各フレームの符号化データに、代表フレームフラグ発生器５２４から得られる「代表フレームのフレーム番号」を付加して外部に出力する（ステップＳ５１３）。
【０２３５】
このような一連の選択動作により、少ないフレーム数で長い時間のフレームを参照することが可能になり、符号化時にメモリ容量を抑制するといった効果がある。また、代表フレームをその他のフレームとの類似度の高いフレームを選択することで、符号化効率を向上させることができる。
【０２３６】
また、代表フレームの符号化データを、ユーザデータなどの復号時に無視することができる符号化データとすることで既存のＨ．２６４と互換性を保つことも可能となる。
【０２３７】
また、本実施形態では参照の対象をフレームとしたが、これに限定されず、スライス等のフレームを分割した単位で行なってももちろん構わない。
【０２３８】
また、代表フレームの符号化方式をフレーム内符号化としてもよく、その場合、高い画質のフレームを参照画像データとすることで画質が向上するという効果がある。
【０２３９】
［第６の実施形態］
本実施形態は、第５の実施形態に係る動画像符号化装置が出力した符号化結果を復号する復号装置について説明する。
【０２４０】
図１４は、本実施形態に係る復号装置の構成を示す図である。
【０２４１】
５１００は符号化データを入力し、後段に分離して出力する入力器である。この符号化データには第５の実施形態に係る説明の通り、代表フレームのフレーム番号が付加されている。
【０２４２】
５１０１は符号化データを復号して量子化結果を得るエントロピー復号器である。５１０２は量子化結果を逆量子化し、整数型直交変換の逆変換を行なう逆量子化／逆変換器である。５１０３はＨ．２６４符号化方式によるイントラ予測を行なうイントラ予測器であり、５１０４は逆量子化／逆変換器５１０２からの動き予測誤差を、動き補償器５１１０からの予測画像に加算する加算器である。５１１３は復号した画像を一時格納するフレームメモリである。
【０２４３】
５１０５、５１０６、５１０７、５１０８はフレームメモリであり、復号された画像データとそのフレーム番号をフレーム単位で格納する。本実施形態では第５の実施形態に係る動画像符号化装置が出力した符号化結果を復号するためにフレームメモリの数を４としたが、これに限定するものではない。
【０２４４】
５１０９は動きベクトルと該当するフレームの情報を復号する動き復号器であり、５１１０は動き復号器５１０９で復号された動きベクトルと該当するフレームの情報から予測画像を生成する動き補償器である。５１１１は入力器５１００が入力した符号化データに付加されていた「代表フレームのフレーム番号」を参照し、後段のフレームメモリ制御器５１１２に通知する代表フレーム解析器、５１１２はフレームメモリ５１０５〜５１０８の入出力を制御するフレームメモリ制御器である。
【０２４５】
以上の構成を備える、本実施形態に係る復号装置が行なう復号処理について、以下説明する。
【０２４６】
先ず、入力器５１００は代表フレームを参照する方式である符号参照に用いることができるフレーム数などを含むヘッダ情報を入力し、これを解釈し、後段の各部を初期化する。
【０２４７】
そして入力器５１００は、各フレームの符号化データ（各フレームの代表フレームのフレーム番号が付加されている）を読み込み、この符号化データに付加されている「代表フレームのフレーム番号」のデータを代表フレーム解析器５１１１に出力する。
【０２４８】
また入力器５１００は、この符号化データのうち、動きベクトルに関する符号化データを動き復号器５１０９に、画像に関する符号化データをエントロピー復号器５１０１に出力する。
【０２４９】
フレームの符号化モードがフレーム内符号化であれば、エントロピー復号器５１０１は入力された符号化データを復号し、量子化結果を再生する。逆量子化／逆変換器５１０２はこれを逆量子化し、整数型直交変換の逆変換を施して画像データを再生する。
【０２５０】
再生された画像はイントラ予測器５１０３でブロックごとの予測を行なって再生画像を得る。復号された画像データはフレームメモリ５１１３に出力される。
【０２５１】
フレームメモリ制御器５１１２は、代表フレーム解析器５１１１から通知されたフレーム番号と同じフレーム番号の復号データ（すなわち、代表フレームの復号画像）がイントラ予測器５１０３、もしくは加算器５１０４から出力されると、この復号画像データを、フレームメモリ５１０５〜５１０８のうち最も古いフレーム番号のフレームを格納しているフレームメモリに格納する。
【０２５２】
なお、イントラ予測器５１０３、もしくは加算器５１０４から出力された復号画像が代表フレームの復号画像ではない場合には、フレームメモリ５１０５〜５１０８への復号画像の書き込みは行なわない。
【０２５３】
そしてフレームメモリ５１１３に格納された復号画像のデータは所定のタイミング（例えば所定フレーム数毎、もしくは所定時間毎）でもって外部に出力する。
【０２５４】
一方、フレームの符号化モードがフレーム間符号化であれば、動き復号器５１０９は動きベクトルと参照するフレームの情報を復号し、これに従って動き補償器５１１０がフレームメモリ５１０５〜５１０８を参照して予測誤差を算出し、加算器５１０４に出力する。エントロピー復号器５１０１は入力された符号化データを復号し、量子化結果を再生する。逆量子化／逆変換器５１０２ではこれを逆量子化し整数型直交変換の逆変換を施して予測誤差を再生する。再生された予測誤差は加算器５１０４でブロックごとに加算を行なって再生画像を得て、フレームメモリ５１１３に格納する。この場合、フレームメモリ５１０５〜５１０８への書き込みは行なわれない。最後に、フレームメモリ５１１３に格納された画像データは外部に出力される。
【０２５５】
すなわち、上記復号処理は、代表フレームの復号画像をフレームメモリ５１０５〜５１０８に格納する処理、及び、参照する画像が代表フレームの画像であること以外は、動き補償による符号化処理の符号化結果を復号する周知の処理である。
【０２５６】
図１５は、以上説明した本実施形態に係る復号処理のフローチャートである。
【０２５７】
先ず入力器５１００は、符号化データに先立って入力される上記ヘッダ情報を参照し、解析する（ステップＳ５１０１）。特に参照可能なフレーム数を解析して保持しておく。
【０２５８】
次に、全てのフレームの復号が終了したか否かを判断し（ステップＳ５１０２）、終了していなければ処理をステップＳ５１０３に進め、入力器５１００は各フレームの符号化データを入力する（ステップＳ５１０３）。次に、この符号化データに付加されている、このフレームの代表フレームのフレーム番号を、この符号化データから分離して代表フレーム解析器５１１１に入力し、代表フレーム解析器５１１１は、このフレーム番号のデータをフレームメモリ制御器５１１２に出力する（ステップＳ５１０４）。
【０２５９】
そして、動き復号器５１０９、動き補償器５１１０、エントロピー復号器５１０１、逆量子化／逆変換器５１０２、イントラ予測器５１０３もしくは加算器５１０４により、入力された符号化データをＨ．２６４符号化方式の復号方法に従って復号する（ステップＳ５１０５）。復号結果のデータ、すなわち、復号画像のデータはフレームメモリ５１１３に出力される。
【０２６０】
フレームメモリ制御器５１１２には、現在復号されているフレームの代表フレームのフレーム番号がステップＳ５１０４で通知されているので、現在復号されているフレームが代表フレームであるか否かを、現在復号されているフレームのフレーム番号を参照することで判断することができる。
【０２６１】
よってこの判断により、現在復号されているフレームが代表フレームである場合には処理をステップＳ５１０７に進め、フレームメモリ５１０５〜５１０８のうち、最も古いフレーム番号のフレームを格納しているフレームメモリを特定し（ステップＳ５１０７）、特定したフレームメモリに、復号した代表フレームの復号画像データを格納する（ステップＳ５１０８）。
【０２６２】
そして、フレームメモリ５１１３に出力された復号画像のデータを外部に出力する（ステップＳ５１０９）。
【０２６３】
このような一連の選択動作により、代表フレームの符号化データのみを動き補償時に参照することが可能になり、参照画像を格納するメモリを少なくできるといった効果がある。
【０２６４】
また本実施形態に係る復号装置は、図１４に示した構成を有するハードウェアとしたが、これに限定するものではなく、他にも例えば、図１４に示した各部の機能をソフトウェアでもって実装し、このプログラムをＰＣ（パーソナルコンピュータ）やＷＳ（ワークステーション）などのコンピュータにインストールし、このコンピュータのＣＰＵがこれを実行することにより、このコンピュータは上述した復号処理を実行することになる。よってこの場合、このコンピュータをもってして本実施形態に係る復号装置とすることができる。
【０２６５】
［第７の実施形態］
図１６は、本実施形態に係る動画像符号化装置の構成を示す図である。なお同図において図１２と同じ部分については同じ番号をつけており、その説明を省略する。
【０２６６】
５２００は符号化しようとする動画像を構成する各フレームの画像（入力画像）を保持するフレームメモリである。５２１３は動き推定器であり、入力画像データとフレームメモリ５９〜５１２の画像データとを比較して動きベクトルとその参照したフレーム番号を出力する。また、そのときの誤差も出力する。
【０２６７】
５２０２はフレームカウンタであり、フレームメモリ５２００から１フレーム出力されるたびに１つカウントアップする。すなわち、フレームメモリ５２００から出力されたフレームの数をカウントする。
【０２６８】
５２０１はセレクタで、フレームカウンタ５２０２によるカウント値を整数Ｍで割った余りがＮ（＜Ｍ）の時に、出力先をイントラ予測器５２に切り替え、それ以外では出力先を差分器５３に切り替える。なお、このＭ、Ｎの値については特に限定するものではなく、要は、セレクタ５２０１は通常は出力先を差分器５３とし、周期的に１回だけ出力先をイントラ予測器５２に切り替える。よってこの処理が達成されるのであれば、その構成は特に限定するものではない。以下の説明では例としてＭ＝５、Ｎ＝１とする。
【０２６９】
５２１８は代表フレームを判定する代表フレーム判定器である。５２２４は代表フレーム判定器５２１８が代表フレームであると判定した際に、この代表フレームのフレーム番号を出力器５１６に出力する代表フレームフラグ発生器である。なお、代表フレームフラグ発生器５２２４は、通知された最新のフレーム番号を保持しており、新たに通知されるまで、現在保持しているフレーム番号を出力する。
【０２７０】
以上の構成を備える、本実施形態に係る動画像符号化装置が行なう処理について以下、説明する。
【０２７１】
第５の実施形態と同様に、符号化に先立ち、本符号化データが代表フレームを参照する方式であることを示す符号を代表フレーム符号化器５２２４が生成して出力器５１６に出力する。さらに、参照に用いることができるフレーム数などを含むヘッダ情報を出力器５１６が生成して出力する。このとき、参照に用いることのできるフレーム数は３としておく。また、各フレームメモリは０にリセットされる。また、フレームカウンタ５２０２が保持するカウント値を０にリセットする。
【０２７２】
そしてフレームメモリ５２００には、各フレームの画像データが入力され、後段のセレクタ５２０１に出力するのであるが、フレームカウンタ５２０２はこの出力毎にカウント値を１つカウントアップする。代表フレーム判定器５２１８はこのカウント値を常に参照し、カウント値を５で割った余りが１である時にフレームメモリ５２００から出力されたフレームを代表フレーム、カウンタ値がそれ以外の時にフレームメモリ５２００から出力されたフレームを非代表フレームと判定する。
【０２７３】
そして上述の通り、フレームメモリ５２００から出力されたフレームデータが代表フレーム、非代表フレームの何れであるかに応じてイントラ予測器５２、もしくは差分器５３を介して変換／量子化器５４に予測誤差として出力されるのであるが、この予測差分が代表フレームの予測差分である（代表フレーム判定器５２１８が代表フレームであると判定した）場合、第５の実施形態と同様に、逆量子化／逆変換器５７、加算器５８を動作させて代表フレームの画像を復号し、復号した画像をバッファ５６に出力するとともに、復号した画像をフレームメモリ５９〜５１２のうち、最も古いデータに画像データとフレーム番号上書きするようにフレームメモリ制御器５１７に指示を出す。
【０２７４】
更に代表フレームフラグ発生器５２２４は、代表フレーム判定器５２１８が代表フレームであると判定した際に代表フレーム判定器５２１８から送出されたこの代表フレームのフレーム番号を出力器５１６に出力する。
【０２７５】
一方、予測差分が代表フレームの予測差分ではない（代表フレーム判定器５２１８が代表フレームではないと判定した）場合、第５の実施形態と同様に、逆量子化／逆変換器５７、加算器５８を動作させて代表フレームの画像を復号し、復号した画像をバッファ５６に出力するのであるが、復号した画像をフレームメモリ５９〜５１２には格納しないよう、フレームメモリ制御器５１７に指示を出す。
【０２７６】
また、第５の実施形態と同様に、セレクタ５２０１によって一定の間隔でフレーム内符号化を行なう場合、入力されたフレームデータはマクロブロック単位でイントラ予測器５２に入力され、ブロック毎に予測が行なわれる。その結果は変換／量子化器５４で整数型直交変換と量子化が行なわれ、その結果はエントロピー符号化器５５に入力される。
【０２７７】
エントロピー符号化器５５では、入力された量子化結果をエントロピー符号化し、バッファ５６にフレーム単位で格納する。代表フレームであれば、逆量子化／逆変換器５７では、入力された量子化結果から復号画像を得る。
【０２７８】
そしてフレームメモリ制御器５１７の指示に従って、フレームメモリ５９〜５１２のうち、空いているフレームメモリ、または最も古い代表フレームの画像データのフレームメモリに復号画像データとフレーム番号を格納する。非代表フレームであれば、フレームメモリ５９〜５１２への格納は行なわない。
【０２７９】
そしてバッファ５６に格納された符号化データは出力器５１６で代表フレームフラグ発生器５２２４が出力する代表フレームを付加して出力される。
【０２８０】
一方、フレーム間符号化を行なう場合についても第５の実施形態と同じである。すなわち、セレクタ２０１はフレームデータの出力先を差分器３に切り替える。フレームメモリ５２００からはマクロブロック単位でセレクタ５２０１、動き推定器５１３に入力され、動き推定器５１３はフレームメモリ５９〜５１２の内容を読み出し、動きベクトルとフレーム番号を算出し、動き補償器５１４で予測画像を生成し、差分器５３に入力する。差分器５３は予測誤差を求め、その結果は変換／量子化器５４に入力され、整数型直交変換と量子化を行なう。その結果はエントロピー符号化器５５に入力される。エントロピー符号化器５５では、入力された量子化結果をエントロピー符号化し、バッファ５６にフレーム単位で格納する。
【０２８１】
バッファ５６に格納された符号化データは出力器５１６で代表フレームフラグ発生器５２２４が出力する代表フレームを付加して出力される。
【０２８２】
図１７は、以上説明した符号化処理のフローチャートである。なお、同図において図１４と同じ処理ステップには同じステップ番号をつけており、その説明を省略する。
【０２８３】
先ず、上記ステップＳ５１の処理を行ない、次に、フレームカウンタ５２０２が保持するカウンタ値を０にリセットする（ステップＳ５２００）。次に、全フレームについて符号化を行っていない場合には処理をステップＳ５４に進め、上記ステップＳ５４と同様の処理でもってフレームメモリ５２００からフレームデータを後段の各部に出力する（ステップＳ５４）。
【０２８４】
そしてフレームメモリ５２００から１フレームのフレームデータが出力される毎にフレームカウンタ５２０２が保持するカウンタ値を１つカウントアップする（ステップＳ５２０１）。現在のカウント値をＭで割った余りが１の場合（すなわちステップＳ５４でフレームメモリ５２００から出力されたフレームのフレーム番号が（ｎＭ＋１）の場合）、ステップＳ５４でフレームメモリ５２００から出力されたフレームが代表フレームであると判定し、処理をステップＳ５２０４に進め、先ず、代表フレームフラグ発生器５２２４により、代表フレーム判定器５２１８から送出されたこの代表フレームのフレーム番号を出力器５１６に出力する（ステップＳ５２０４）。次に、上記各部によりこの代表フレームに対してフレーム内符号化（イントラ符号化）を行ない（ステップＳ５２０５）、更に符号化結果を復号して復元画像を生成し、これをフレームメモリ５９〜５１２のうち、上記条件に従ったフレームメモリに格納する（ステップＳ５２０６）。上述の通り、このようにフレームメモリに格納した代表フレームの画像データは、以降符号化されるフレームを符号化する際に参照されうるものである。
【０２８５】
一方、現在のカウント値をＭで割った余りが１にはならない場合（すなわちステップＳ５４でフレームメモリ５２００から出力されたフレームのフレーム番号が（ｎＭ＋１）ではない場合）、ステップＳ５４でフレームメモリ５２００から出力されたフレームは代表フレームではないと判定し、処理をステップＳ５２０３に進め、上記各部によりこの非代表フレームに対してフレーム間符号化を行なう（ステップＳ５２０３）。
【０２８６】
符号化された対象が代表フレーム、非代表フレームの何れであっても、その符号化結果はバッファ５６に出力されるので、出力器５１６は、この符号化結果に代表フレームフラグ発生器５２２４から出力された「代表フレームのフレーム番号」を付加して外部に出力する（ステップＳ５２０６）。
【０２８７】
このような構成と一連の選択動作により、一定間隔で代表フレームを設定することで符号化側のフレームメモリを削減することが可能になり、回路を小型化できコストを下げるといった効果がある。
【０２８８】
［第８の実施形態］
本実施形態に係る動画像符号化装置は、第３の実施形態と同様の構成を有する装置である。以下では、本実施形態に係る動画像符号化装置によって、第３の実施形態に係る動画像符号化処理とは異なる動画像符号化処理を実行する場合について説明する。
【０２８９】
本実施形態に係る動画像符号化装置は第３の実施形態と同様に、カメラ３０６により撮像され、記憶装置３０５に記録された動画像を符号化し、符号化結果をメモリ３０１に格納する、もしくは通信Ｉ／Ｆ３０８を介してネットワーク３０９に送出する。なお、符号化方式としてＨ．２６４符号化方式を例にとって説明するがこれに限定されず、２フレーム以上の複数フレームを参照して符号化する符号化方式であれば構わない。また、説明を容易にするために前後３フレームずつを参照することとするが、これに限定されない。
【０２９０】
端末装置３０３に備わっている不図示のキーボードやマウスを用いて符号化指示を入力すると、この指示はＣＰＵ３００に通知され、ＣＰＵ３００は各部の初期化を行なう。またＣＰＵ３００は、ＣＰＵ３００に後述の動画像符号化処理を実行させるためのソフトウェア、ＣＰＵ３００に後述の通信処理を行わせるためのソフトウェア等のソフトウェアのプログラムやデータを記憶装置３０５から読み出してメモリ３０１にロードする。
【０２９１】
図１８はメモリ３０１内のメモリマップの一例を示す図である。同図に示すように、メモリ３０１には、動画像符号化ソフトウェア、通信ソフトウェアを記憶するためのエリアが設けられているとともに、これらソフトウェアを制御するなどの処理をＣＰＵ３００に実行させるためのＯＳ（オペレーティングシステム）を記憶するためのエリアも備えている。また、後述する画像エリア（１〜７）、符号エリア（１〜３）、ワーキングエリアも備える。なお、符号エリアの数が３であるのは、参照するフレーム数を３としているためであって、参照するフレーム数が異なれば、符号エリアの数もそれに応じて異ならせる。
【０２９２】
図１９は、ＣＰＵ３００が、この動画像符号化ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【０２９３】
先ず、以下行なう符号化方式が代表フレームを用いる符号化方式であることを示す情報や、参照するフレームの最大数情報を含むヘッダ情報を生成し、メモリ３０１に保持しておく（ステップＳ５３０１）。
【０２９４】
次に、全てのフレームの符号化が終了していない場合には処理をステップＳ５３０２からステップＳ５３０３に進め、３フレーム分の符号化が終了したか否かを判定する（ステップＳ５３０３）。３フレーム分の符号化処理を行っていない場合には処理をステップＳ５３０４に進め、記憶装置３０５から、カメラ３０６が撮像した動画像のうち、１フレーム分のデータを読み出して、メモリ３０１の画像エリアに格納する（ステップＳ５３０４）。ステップＳ５３０４における処理が最初の場合には、画像エリア１に格納する。
【０２９５】
次に、ステップＳ５３０４で入力したフレームデータをフレーム間符号化／フレーム内符号化の何れかでもって符号化する（ステップＳ５３０５）。フレーム間符号化／フレーム内符号化の何れを行なう場合であっても、上記実施形態のいずれかの方法を適用することができる。本実施形態では、フレーム間符号化でもって符号化したものとする。
【０２９６】
そしてステップＳ５３０５で符号化した結果を符号エリアに格納する（ステップＳ５３０６）。なお、ステップＳ５３０６における処理を最初に行った場合には、符号エリア１に格納する。
【０２９７】
次に、ステップＳ５３０５で符号化したフレームの画像を上記実施形態と同様の処理を行なうことで復号し、復号結果（復号画像）を画像エリア２〜４のうち１つに格納する（ステップＳ５３０７）。なお、格納する際、各画像エリアに格納されているフレームデータのフレーム番号を参照し、最も古いフレーム番号のフレームデータを格納している画像エリアに格納する。
【０２９８】
次に、ステップＳ５３０６で格納した画像と、ステップＳ５３０７でこの画像を復元した復元画像との歪みを計算する（ステップＳ５３０８）。この歪みを求めるための計算の一例として、例えば、２つの画像において位置的に対応する画素同士で画素値の差分の絶対値を計算し、画素毎に計算した差分の絶対値の総和値を計算することで、この１つの画像間の歪み求める。なお、この歪みを求めるための方法については特に限定するものではないが、要は、一度符号化され、そして復号した画像が元の画像とどれだけかけ離れたものになっているのか（相違）を示す指標が値として得られればよい。
【０２９９】
そして処理をステップＳ５３０３に戻し、以降の処理を繰り返す。そして繰り返した結果、３フレーム分の符号化処理を行った場合、処理をステップＳ５３０３からステップＳ５３０９に進め、符号化した３フレーム分の各フレームについてステップＳ５３０８で求めた歪みを参照し、最も歪みの小さいフレームを、符号化した３フレームの各フレームを代表するフレームである代表フレームとして決定する（ステップＳ５３０９）。
【０３００】
そして、決定した代表フレームのフレーム番号を、符号エリアに格納した各符号化データに付加する（ステップＳ５３１０）。
【０３０１】
そして、代表フレームの復号画像（画像エリア２〜４のいずれかのメモリに格納されており、フレーム番号でもって一意に１つ選択できる）を画像エリア５〜７内、最も古いフレーム番号のフレームを格納している画像エリアに格納する（ステップＳ５３１１）。
【０３０２】
そして、通信ソフトウェアを実行することにより、メモリ３０１上の各符号エリアに格納されている各フレームの符号化データを通信インターフェース３０８を介して通信回路３０９に出力する（ステップＳ５３１２）。なお、ステップＳ５３１２では、各フレームの符号化データの出力先はこれに限定するものではなく、メモリ３０１中の所定のエリアに格納するようにしても良いし、記憶装置３０４，３０５などに保存するようにしても良い。
【０３０３】
そして、次の３フレームを符号化するために処理をステップＳ５３０２に戻し、以降の処理を繰り返す。当然、次の３フレームが存在しない場合には同図に示したフローチャートに従った処理を終了する。
【０３０４】
このような一連の選択動作により、符号化による歪みが最も少ないフレームを代表フレームとして選択することで、符号化による画質の劣化を防ぎ、劣化を最小に抑える効果がある。
【０３０５】
なお、本実施形態では３フレームずつ符号化しているが、このフレーム数は特に限定するものではない。
【０３０６】
［第９の実施形態］
本実施形態は、第８の実施形態に係る動画像符号化装置による符号化データを復号する復号装置に関するものである。本実施形態に係る復号装置は、第３の実施形態と同様の構成を有する装置である。
【０３０７】
よって、本実施形態に係る復号装置と第８の実施形態に係る動画像符号化装置とを一体化し、同じ装置内で符号化、復号処理を行なうようにしても良い。その場合、第８の実施形態では、符号化結果をメモリ３０１内の所定のエリアに記録するなど、装置内で符号化結果を保持しておく必要がある。
【０３０８】
また、本実施形態に係る復号装置と第８の実施形態に係る動画像符号化装置とを別個の装置にしてもよく、その場合、第８の実施形態では、符号化結果を通信インターフェース３０８を介して通信回路３０９に出力し、本実施形態に係る復号装置に入力する必要がある。
【０３０９】
しかし以下の説明は何れの場合であっても本質的な処理は同じである。
【０３１０】
図２０はメモリ３０１内のメモリマップの一例を示す図である。同図に示すように、メモリ３０１には、Ｈ．２６４符号化データを復号する動画像復号ソフトウェア、通信ソフトウェアを記憶するためのエリアが設けられているとともに、これらソフトウェアを制御するなどの処理をＣＰＵ３００に実行させるためのＯＳ（オペレーティングシステム）を記憶するためのエリアも備えている。また、後述する画像エリア（１〜７）、符号エリア、ワーキングエリアも備える。なお、画像エリア１は復号画像を、画像エリア２〜７は参照画像を格納する為のものである。なお、画像エリア２〜７に画像を格納する際、画像エリア２〜７の順に格納する。
【０３１１】
図２１は、ＣＰＵ３００が、この動画像復号ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【０３１２】
先ず、符号化データに先立って外部から、もしくはメモリなどの内部から入力される上記ヘッダ情報を参照し、解析するとともに、各種の初期化処理を行なう（ステップＳ５４０１）。
【０３１３】
次に、全てのフレームの復号が終了したか否かを判断し（ステップＳ５４０２）、終了していなければ処理をステップＳ５４０３に進め、各フレームの符号化データをメモリ３０１上の符号エリアに入力する（ステップＳ５４０３）。次に、この符号化データに付加されている、このフレームの代表フレームのフレーム番号を、この符号化データから分離する（ステップＳ５４０４）。
【０３１４】
そして入力された符号化データに対して第６の実施形態で説明したように復号処理を行ない、復号画像を画像エリア１に格納する（ステップＳ５４０５）。この復号処理の際、復号対象がフレーム間符号化によるものである場合には、画像エリア２〜７に格納されている参照画像を参照して復号する。また、復号したフレームのフレーム番号をワーキングエリアに格納する。
【０３１５】
次に、ステップＳ５４０５で復号したフレームが代表フレームであるか否かを、ワーキングエリアに書き込んだフレーム番号を参照し、ステップＳ５４０４で分離したフレーム番号に一致するか否かで判断する（ステップＳ５４０６）。非代表フレームである場合には処理をステップＳ５４０７に進め、画像エリア２〜４のうち、最も古いフレーム番号のフレームデータを格納している画像エリアを特定し（ステップＳ５４０７）、特定した画像エリアに画像エリア１に格納されている画像を複写する（ステップＳ５４０８）。
【０３１６】
一方、代表フレームである場合には処理をステップＳ５４０９に進め、画像エリア５〜７のうち、最も古いフレーム番号のフレームデータを格納している画像エリアを特定し（ステップＳ５４０９）、特定した画像エリアに画像エリア１に格納されている画像を複写する（ステップＳ５４１０）。
【０３１７】
そして、画像エリア１に格納されている復号画像データを出力する（ステップＳ５４１１）。出力先は特に限定しないが、例えば表示装置３０７に出力し、表示しても良い。
【０３１８】
そして、処理をステップＳ５４０２に戻し、以降の処理を繰り返す。
【０３１９】
このような一連の選択動作により、時間的に遠いフレームを代表フレームとして保持し、時間的に近いフレームの両方を参照することで、少ない情報量で再生画像を得ることが可能になるという効果がある。
【０３２０】
なお、本実施形態においては被参照情報を参照された最後のフレームの位置としたがこれに限定されず、最終的に参照された時刻などの情報でももちろんかまわない。
【０３２１】
［第１０の実施形態］
図２３は本実施形態に係る動画像符号化装置の構成を示す図である。本実施形態では、Ｈ．２６４符号化方式をベースにとって説明するが、Ｈ．２６４と異なり、参照フレームは時間的に不連続のものを参照することになる。但し、ベースはＨ．２６４に限定されない。また、説明を簡単にするため、過去のフレームを参照する前方向予測を例に取るが、これに限定されず、両方向予測に適用してももちろん構わない。また、以下の説明では、フレームの画像データをフレームデータと呼称する場合もある。また、このフレームデータ（フレームの画像）には、このフレームのフレーム番号を示すデータも含まれているものとする。
【０３２２】
図２３において、６１９〜６２１は外部から入力された動画像の各フレームの画像（入力画像）のうち、後述する処理により選択された代表フレームの画像を格納するためのフレームメモリである。６１はフレーム内符号化／フレーム間符号化のモードに従って出力先を選択するセレクタである。
【０３２３】
６２はＨ．２６４符号化方式によるイントラ予測を行なうイントラ予測器であり、６３は動き予測誤差を求める差分器である。６４は整数型直交変換を行ない、入力された係数を量子化する変換／量子化器であり、６７はその逆の作用を施す逆量子化／逆変換器である。６５は変換／量子化器６４による量子化結果を符号化するエントロピー符号化器であり、６６は発生した複数フレーム分の符号を格納するバッファである。
【０３２４】
６９、６１０、６１１、６１２はフレームメモリであり、局所復号された画像データとフレームの番号をフレーム単位で格納する。６１３は入力画像と復号された画像データから最適な動きベクトルを該当するフレームから抽出する動き推定器であり、６１４は動き推定器６１３で算出された動きベクトルと該当するフレームの情報から予測画像を生成する動き補償器である。６１５は算出された動きベクトルと該当するフレームの情報から動きの情報を符号化する動き符号化器である。
【０３２５】
６１７はフレームメモリ６９〜６１２の入出力を制御するフレームメモリ制御器であり、６１６はバッファ６６に格納された符号化データを出力する出力器である。６１８は入力画像と代表フレームの画像とを比較して類似度を算出する類似度判定器である。６２２は、代表フレームのフレーム番号を出力器６１６に出力する代表フレームフラグ発生器である。
【０３２６】
上記のように構成された動画像符号化装置における動画像の符号化動作を以下、説明する。
【０３２７】
符号化に先立ち、本符号化データが代表フレームを参照する方式であることを示す符号を代表フレームフラグ発生器６２２が生成して出力器６１６に出力する。この符号はＨ．２６４符号化方式と互換性を保つために、ユーザデータとして符号化されることとするがこれに限定されず、電子的な透かしとして埋め込みを行なってももちろん構わない。
【０３２８】
さらに、参照に用いることができるフレーム数などを含むヘッダ情報を出力器６１６が生成して出力する。このとき、参照に用いることのできるフレーム数は３としておく。また、各フレームメモリは０にリセットされる。
【０３２９】
動画像を構成する各フレームの画像（入力画像）は順次セレクタ６１、類似度判定器６１８に入力される。類似度算出器６１８は入力画像と、フレームメモリ６１９、６２０、６２１に格納されている代表フレームの画像データと比較を行ない、類似度を算出する。本実施形態ではこの類似度の計算方法として、入力画像と代表フレームの画像とで位置的に対応する画素同士の画素値の差分の絶対値を計算し、そして画素毎に計算した絶対値の総和を計算することで求めるが、計算方法はこれに限定するものではなく、他の計算方法を用いても良い。
【０３３０】
このようにして類似度判定器６１８は入力画像と、３つの代表フレームの画像それぞれに対する類似度を求め、求めた３つの類似度のうち最小の類似度と所定の閾値との比較処理を行ない、最小の類似度が所定の閾値以上である場合には、この入力画像を代表フレームの画像として判定する。一方、最小の類似度が所定の閾値以下である場合には、この入力画像を非代表フレームの画像として判定する。
【０３３１】
セレクタ６１は、類似度判定器６１８が代表フレームと判定した入力画像に対しては、この入力画像の出力先をイントラ予測器６２に切り替え、類似度判定器６１８が非代表フレームと判定した入力画像に対しては、この入力画像の出力先を差分器６３に切り替える。
【０３３２】
また、類似度判定器６１８は、入力画像が代表フレームの画像であると判定した場合には、この入力画像を、フレームメモリ６１９〜６２１のうち、最も古いフレーム番号のフレームデータを格納しているフレームメモリに格納する。
【０３３３】
また、類似度判定器６１８は、入力画像が代表フレームの画像であると判定した場合には、この入力画像のフレーム番号を代表フレームフラグ発生器６２２に通知し、代表フレームフラグ発生器６２２は、通知されたフレーム番号を出力器６１６に出力する。なお、代表フレームフラグ発生器６２２は、通知された最新のフレーム番号を保持しており、新たに通知されるまで、現在保持しているフレーム番号を出力する。
【０３３４】
まず、代表フレームの画像データに対してフレーム内符号化を行なう場合について説明する。
【０３３５】
入力画像はマクロブロック単位でイントラ予測器６２に入力され、ブロック毎に予測が行なわれる。その結果は変換／量子化器６４に入力され、整数型直交変換を行ない、その係数を量子化する。その結果はエントロピー符号化器６５と逆量子化／逆変換器７に入力される。
【０３３６】
エントロピー符号化器６５では、入力された量子化結果をエントロピー符号化し、バッファ６６にフレーム単位で格納する。逆量子化／逆変換器６７では、入力された量子化結果から復号画像を得る。この復号画像は、フレームメモリ制御器６１７の指示に従って、フレームメモリ６９〜６１２のうち、最も古いフレーム番号の代表フレームを格納しているフレームメモリに格納される。
【０３３７】
一方、バッファ６６に格納された符号化データは出力器６１６によって、代表フレームフラグ発生器６２２からの「代表フレームのフレーム番号」が付加されて外部に出力される。
【０３３８】
一方、非代表フレームに対してフレーム間符号化を行なう場合について説明する。入力画像データはマクロブロック単位でセレクタ６１と動き推定器６１３に入力される。動き推定器６１３はフレームメモリ６９〜６１２に保持されている画像を読み出し、第１の実施形態と同様にして動きベクトルを求める。そして動き補償器６１４は第１の実施形態と同様にして予測画像を生成し、差分器６３に入力する。
【０３３９】
差分器６３には上述の通りセレクタ６１から非代表フレームの入力画像が入力されるので、これと予測画像との差分、すなわち予測誤差を求める。求めた予測誤差は後段の変換／量子化器６４に入力され、整数型直交変換によって量子化され、更にその量子化結果はエントロピー符号化器６５でエントロピー符号化が施される。そしてエントロピー符号化結果はバッファ６６にフレーム単位で格納される。また、動きベクトルについても第１の実施形態と同様にして動き符号化器６１５で符号化され、バッファ６６に格納される。
【０３４０】
そして、バッファ６６に格納された符号化データは出力器６１６により、代表フレームフラグ発生器６２２から出力する代表フレームのフレーム番号とともに出力される。
【０３４１】
図２４は、以上説明した、本実施形態に係る動画像符号化処理のフローチャートである。
【０３４２】
先ず、出力器６１６は、以下行なう符号化方式が代表フレームを用いる符号化方式であることを示す情報や、参照するフレームの最大数情報を含むヘッダ情報を生成して出力する（ステップＳ６１）。次に、符号化すべき全てのフレームについて符号化処理を行ったか否かを判断する（ステップＳ６２）。符号化すべきフレームがまだ残っている場合には処理をステップＳ６３に進め、類似度判定器６１８、セレクタ６１に符号化対象のフレームデータを順に入力する（ステップＳ６３）。そして類似度判定器６１８は上述の通り、フレームメモリ６１９〜６２１に格納されている各代表フレームの画像と入力画像との類似度を求め（ステップＳ６４）、最小の類似度が所定の閾値以下であるか否かを判断する（ステップＳ６５）。
【０３４３】
最小の類似度が所定の閾値以上である場合には処理をステップＳ６６に進め、入力画像を代表フレームの画像であると判断し、この入力画像に対して上述したようにフレーム内符号化処理を行なう（ステップＳ６６）。この符号化処理には第１の実施形態と同様に、符号化した入力画像を復号し、フレームメモリ６９〜６１２のうち、最も古いフレーム番号のフレームを格納しているフレームメモリに格納する処理を含む。
【０３４４】
また、代表フレームフラグ発生器６２２は、この入力画像のフレーム番号を出力器６１６に出力する（ステップＳ６７）。また、ステップＳ６３で入力した入力画像を、フレームメモリ６１９〜６２１のいずれかに格納する（ステップＳ６８）。
【０３４５】
一方、最小の類似度が所定の閾値以下である場合には処理をステップＳ６９に進め、入力画像を非代表フレームの画像であると判断し、この入力画像に対して上述したようにフレーム間符号化処理を行なう（ステップＳ６９）。ステップＳＳ６６，ステップＳ６９の何れの符号化結果も上述の通り、バッファ６６に出力されるので、出力器６１６はこの符号化結果に代表フレームフラグ発生器６２２から出力されたフレーム番号を付加し（ステップＳ６１１）、外部に出力する（ステップＳ６１２）。
【０３４６】
このような一連の選択動作により、少ないフレーム数で長い時間のフレームを参照することが可能になり、符号化時にメモリ容量を抑制するといった効果がある。また、代表フレームをフレーム内符号化することで、エラーの伝播による画質の劣化を防ぎ、劣化を最小に抑える効果がある。
【０３４７】
また、符号化前の入力画像で類似度を比較することで、符号化による歪の影響を受けずに代表画像を選択することができる。
【０３４８】
なお、本実施形態においては代表フレームのみをフレーム内符号化したが、これに限定されず、他のフレーム、例えば、代表フレーム以外を一定間隔でフレーム内符号化してももちろんかまわない。
【０３４９】
また、符号化単位なども以上のようにフレーム単位に限定するものではない。
【０３５０】
［第１１の実施形態］
図２５は本実施形態に係る動画像符号化装置の構成を示す図である。図２３と同じ部分については同じ番号を付けており、その説明を省略する。
【０３５１】
６２００は符号化しようとする動画像を構成する各フレームの画像（入力画像）を保持するフレームメモリである。６２１３は動き推定器であり、入力画像データとフレームメモリ６９〜６１２の画像データとを比較して動きベクトルとその参照したフレーム番号を出力する。また、そのときの誤差も出力する。
【０３５２】
６２０２は類似度判定器で、動き推定器６２１３から動きベクトル探索時の誤差を入力し、後述の類似度を算出し、入力画像が代表フレームであるか否かを判定する。６２０１はセレクタで通常の出力先は差分器６３とするが、類似度判定器６２０２が代表フレームであると最後に判定したタイミングから予め決められた間隔毎には出力先をイントラ予測器６２に切り替える。
【０３５３】
以上の構成を備える、本実施形態に係る動画像符号化装置が行なう処理について以下、説明する。
【０３５４】
第１０の実施形態と同様に、符号化に先立ち、本符号化データが代表フレームを参照する方式であることを示す符号を代表フレームフラグ発生器６２２が生成して出力器６１６に出力する。さらに、参照に用いることができるフレーム数などを含むヘッダ情報を出力器６１６が生成して出力する。このとき、参照に用いることのできるフレーム数は１５としておく。また、各フレームメモリは０にリセットされる。また、フレームカウンタ６２０２が保持するカウント値を０にリセットする。
【０３５５】
そして先ずフレームメモリ制御器６１７は、フレームメモリ６９〜６１２が保持する各フレームのうち、フレ−ムメモリ６２００から入力される入力画像から１５フレーム以上離れているフレームについては、削除する。これは、フレームメモリ６９〜６１２が保持する各フレームのフレーム番号、フレ−ムメモリ６２００から入力される入力画像のフレーム番号を参照し、入力画像のフレーム番号から１５以上異なるフレーム番号を有するフレームデータを削除することによりなされる処理である。これにより、フレ−ムメモリ６２００から入力される入力画像から１５フレーム以上離れているフレームについては動き推定器６２１３は参照することができなくなる。
【０３５６】
そしてフレームメモリ６２００には、各フレームの画像データが入力され、各フレームの画像は後述の符号化に先立ち、動き推定器６１３に入力される。動き推定器６１３は、フレームメモリ６９〜６１２に格納されている全ての画像に対してそれぞれのマクロブロック単位で動きベクトルの算出を行なう。
【０３５７】
動きベクトルの算出はブロックマッチング法で行なわれる。これは参照画像の該当する部分と入力部分の画素単位での差異の絶対値和が最小となる画素位置の差異を動きベクトルとする方式である。その際の最小の際の絶対値和を誤差として類似度判定器６２０２に入力する。
【０３５８】
類似度判定器６２０２は、フレームごとに発生した誤差の絶対値の総和を求める。この総和を類似度とする。誤差の絶対値の総和が予め決められた閾値よりも小さければ、入力画像は非代表フレームと判断し、誤差の絶対値の総和が予め決められた閾値よりも大きければ、この入力画像を代表フレームと判断する。
【０３５９】
また、類似度判定器６２０２は、入力画像が代表フレームであると判断した際には、この入力画像のフレーム番号を代表フレームフラグ発生器６２２に通知するので、代表フレームフラグ発生器６２２は通知されたフレーム番号を後段の出力器６１６に出力する。
【０３６０】
また、代表フレームの画像、又は一定間隔でフレーム内符号化を行なう場合、第１０の実施形態と同様に、入力画像はマクロブロック単位でイントラ予測器６２に入力され、ブロック毎に予測が行なわれる。その結果は変換／量子化器６４で整数型直交変換と量子化が行なわれ、その結果はエントロピー符号化器６５と逆量子化／逆変換器６７に入力される。
【０３６１】
エントロピー符号化器６５は、入力された量子化結果をエントロピー符号化し、その符号化結果をバッファ６６にフレーム単位で格納する。逆量子化／逆変換器６７は、入力された量子化結果から第１０の実施形態と同様にして復号画像を得る。
【０３６２】
フレームメモリ制御器６１７には、類似度判定器６２０２による判断結果が入力されるので、逆量子化／逆変換器６７からの復号画像が代表フレームのものであるか否かを判断することができる。よって復号画像が代表フレームのものである場合には、この入力画像を、フレームメモリ６９〜６１２のうち、最も古いフレーム番号のフレームを格納しているフレームメモリに格納する。
【０３６３】
そして以上の処理によりバッファ６６に格納された符号化データは、出力器６１６により、代表フレームフラグ発生器６２２からの「フレーム番号」が付加されて外部に出力される。
【０３６４】
一方、非代表フレームに対してフレーム間符号化を行なう場合にも、第１０の実施形態と同様である。すなわち、非代表フレームの入力画像データはマクロブロック単位でセレクタ６２０１と動き推定器６２１３に入力される。動き推定器６２１３はフレームメモリ６９〜６１２に保持されている画像を読み出し、第１０の実施形態と同様にして動きベクトルを求める。そして動き補償器６１４は第１０の実施形態と同様にして予測画像を生成し、差分器６３に入力する。
【０３６５】
差分器６３には上述の通りセレクタ６２０１から非代表フレームの入力画像が入力されるので、これと予測画像との差分、すなわち予測誤差を求める。求めた予測誤差は後段の変換／量子化器６４に入力され、整数型直交変換によって量子化され、更にその量子化結果はエントロピー符号化器６５でエントロピー符号化が施される。そしてエントロピー符号化結果はバッファ６６にフレーム単位で格納される。また、動きベクトルについても第１０の実施形態と同様にして動き符号化器６１５で符号化され、バッファ６６に格納される。
【０３６６】
そして、バッファ６６に格納された符号化データは出力器６１６により、代表フレームフラグ発生器６２２から出力する代表フレームのフレーム番号とともに出力される。
【０３６７】
図２６は、以上説明した、本実施形態に係る動画像符号化処理のフローチャートである。なお、同図において、図２４と同じ処理ステップには同じステップ番号を付けており、その説明を省略する。
【０３６８】
ステップＳ６２００では上述の通り、フレームメモリ制御器６１７は、フレームメモリ６９〜６１２が保持する各フレームのうち、フレ−ムメモリ６２００から入力される入力画像から１５フレーム以上離れているフレームについては、削除する。
【０３６９】
またステップＳ６２０１では、図２４におけるステップＳ６８とは格納先が異なるのみでそれ以外は同じ処理である。すなわちステップＳ６２０１では、代表フレームの画像をフレームメモリ６９〜６１２に格納する。
【０３７０】
このような構成と一連の選択動作により、局所復号画像を参照することで符号化側のフレームメモリを削減することが可能になり、回路を小型化できコストを下げるといった効果がある。
【０３７１】
また、類似度の算出で動き補償後の誤差を使用することで、画像の動きを考慮した類似度を判定でき、精度を向上することができる。
【０３７２】
また、代表フレームをフレーム内符号化することで、エラーの伝播による画質の劣化を防ぎ、劣化を最小に抑える効果がある。
【０３７３】
また、参照フレーム数を限定することで既存のＨ．２６４と互換性を保つことが可能となり、第６の実施形態に係る復号装置のみならず、既存の復号装置でも復号が可能になる。
【０３７４】
［第１２の実施形態］
本実施形態に係る動画像符号化装置は、第３の実施形態と同様の構成を有する装置である。以下では、本実施形態に係る動画像符号化装置によって、第３の実施形態に係る動画像符号化処理とは異なる動画像符号化処理を実行する場合について説明する。
【０３７５】
本実施形態に係る動画像符号化装置は第３の実施形態と同様に、カメラ３０６により撮像され、記憶装置３０５に記録された動画像を符号化し、符号化結果をメモリ３０１に格納する、もしくは通信Ｉ／Ｆ３０８を介してネットワーク３０９に送出する。なお、符号化方式としてＨ．２６４符号化方式を例にとって説明するがこれに限定されず、２フレーム以上の複数フレームを参照して符号化する符号化方式であれば構わない。また、説明を容易にするために前後３フレームずつを参照することとするが、これに限定されない。
【０３７６】
端末装置３０３に備わっている不図示のキーボードやマウスを用いて符号化指示を入力すると、この指示はＣＰＵ３００に通知され、ＣＰＵ３００は各部の初期化を行なう。またＣＰＵ３００は、ＣＰＵ３００に後述の動画像符号化処理を実行させるためのソフトウェア、ＣＰＵ３００に後述の通信処理を行わせるためのソフトウェア等のソフトウェアのプログラムやデータを記憶装置３０５から読み出してメモリ３０１にロードする。
【０３７７】
本実施形態に係るメモリ３０１内のメモリマップの一例としては図２０に示したものが適用可能である。
【０３７８】
図２７は、ＣＰＵ３００が、この動画像符号化ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【０３７９】
先ず、以下行なう符号化方式が代表フレームを用いる符号化方式であることを示す情報や、参照するフレームの最大数情報を含むヘッダ情報を生成し、メモリ３０１に保持しておく（ステップＳ６３０１）。
【０３８０】
次に、全てのフレームの符号化が終了していない場合には処理をステップＳ６３０２からステップＳ６３０３に進め、記憶装置３０５から、カメラ３０６が撮像した動画像のうち、１フレーム分のデータを読み出して、メモリ３０１の画像エリア１に格納する（ステップＳ６３０３）。
【０３８１】
そして画像エリア４〜７に格納されているそれぞれの画像について、画像エリア１に格納されている画像との類似度を計算する（ステップＳ６３０４）。この類似度の計算方法については特に限定しないが、本実施形態では２つの画像間で位置的に対応する画素同士の画素値の差分の絶対値を計算し、それぞれの画素について計算した絶対値の総和値を求め、これをこの２つの画像間の類似度とする。
【０３８２】
そして画像エリア４〜７に格納されているそれぞれの画像について求めた類似度のうち、最小の類似度の値が所定の閾値以下であるか否かを判断する（ステップＳ６３０５）。最小の類似度の値が所定の閾値以下であれば処理をステップＳ６３０６に進め、画像エリア１に格納されている画像は代表フレームにおける画像として判断し、この代表フレームのフレーム番号をメモリ３０１中の所定のエリア（例えばワーキングエリア）に出力（格納）する（ステップＳ６３０６）。そして上記実施形態と同様にしてこの代表フレームの画像に対してフレーム内符号化を施し、その符号化結果を符号エリアに格納する（ステップＳ６３０７）。
【０３８３】
そして符号化したフレームの画像を上記実施形態と同様の処理を行なうことで復号し、復号結果（復号画像）を画像エリア５以降のうち１つに格納する（ステップＳ６３０８）。なお、格納する際、各画像エリアに格納されているフレームデータのフレーム番号を参照し、最も古いフレーム番号のフレームデータを格納している画像エリアに格納する。
【０３８４】
一方、最小の類似度の値が所定の閾値以上であれば処理をステップＳ６３０９に進め、画像エリア１に格納されている画像は非代表フレームにおける画像として判断し、そして上記実施形態と同様にしてこの代表フレームの画像に対してフレーム内符号化もしくはフレーム間符号化を施し、その符号化結果を符号エリアに格納する（ステップＳ６３０９）。
【０３８５】
そして符号化したフレームの画像を上記実施形態と同様の処理を行なうことで復号し、復号結果（復号画像）を画像エリア２〜４のうち１つに格納する（ステップＳ６３１０）。なお、格納する際、各画像エリアに格納されているフレームデータのフレーム番号を参照し、最も古いフレーム番号のフレームデータを格納している画像エリアに格納する。
【０３８６】
そして、通信ソフトウェアを実行することにより、メモリ３０１上の各符号エリアに格納されている各フレームの符号化データを、ステップＳ６３０６で格納したフレーム番号を付加して、通信インターフェース３０８を介して通信回路３０９に出力する（ステップＳ６３１２）。なお、ステップＳ６３１２では、各フレームの符号化データの出力先はこれに限定するものではなく、メモリ３０１中の所定のエリアに格納する要にしても良いし、記憶装置３０４、３０５などに保存するようにしても良い。
【０３８７】
そして、次のフレームを符号化するために処理をステップＳ６３０２に戻し、以降の処理を繰り返す。当然、次のフレームが存在しない場合には同図に示したフローチャートに従った処理を終了する。
【０３８８】
このような一連の選択動作により、時間的に近いフレームと時間的に遠い代表フレームを参照することで、時間的に近くて、類似度の高いフレームも参照が可能になり、符号化効率を改善できる効果がある。
【０３８９】
また、代表フレームをフレーム内符号化することで、エラーの伝播による画質の劣化を防ぎ、劣化を最小に抑える効果がある。
【０３９０】
［第１３の実施形態］
本実施形態は、第１２の実施形態に係る動画像符号化装置による符号化データを復号する復号装置に関するものである。本実施形態に係る復号装置は、第３の実施形態と同様の構成を有する装置である。
【０３９１】
よって、本実施形態に係る復号装置と第１２の実施形態に係る動画像符号化装置とを一体化し、同じ装置内で符号化、復号処理を行なうようにしても良い。その場合、第１３の実施形態では、符号化結果をメモリ３０１内の所定のエリアに記録するなど、装置内で符号化結果を保持しておく必要がある。
【０３９２】
また、本実施形態に係る復号装置と第１２の実施形態に係る動画像符号化装置とを別個の装置にしてもよく、その場合、第１３の実施形態では、符号化結果を通信インターフェース３０８を介して通信回路３０９に出力し、本実施形態に係る復号装置に入力する必要がある。
【０３９３】
しかし以下の説明は何れの場合であっても本質的な処理は同じである。
【０３９４】
本実施形態に係るメモリ３０１内のメモリマップの一例としては図２０に示したものが適用可能である。
【０３９５】
図２８は、ＣＰＵ３００が、動画像復号ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【０３９６】
先ず、符号化データに先立って外部から、もしくはメモリなどの内部から入力される上記ヘッダ情報を参照し、解析するとともに、各種の初期化処理を行なう（ステップＳ６４０１）。
【０３９７】
次に、全てのフレームの復号が終了したか否かを判断し（ステップＳ６４０２）、終了していなければ処理をステップＳ６４０３に進め、各フレームの符号化データをメモリ３０１上の符号エリアに入力する（ステップＳ６４０３）。次に、この符号化データに付加されている、このフレームの代表フレームのフレーム番号を、この符号化データから分離する（ステップＳ６４０４）。
【０３９８】
そして入力された符号化データに対して第６の実施形態で説明したように復号処理を行ない、復号画像を画像エリア１に格納する（ステップＳ６４０５）。この復号処理の際、復号対象がフレーム間符号化によるものである場合には、画像エリア２〜７に格納されている参照画像を参照して復号する。また、復号したフレームのフレーム番号をワーキングエリアに格納する。
【０３９９】
次に、ステップＳ６４０５で復号したフレームが代表フレームであるか否かを、ワーキングエリアに書き込んだフレーム番号を参照し、ステップＳ６４０４で分離したフレーム番号に一致するか否かで判断する（ステップＳ６４０６）。非代表フレームである場合には処理をステップＳ６４０７に進め、画像エリア２〜４のうち、最も古いフレーム番号のフレームデータを格納している画像エリアを特定し（ステップＳ６４０７）、特定した画像エリアに画像エリア１に格納されている画像を複写する（ステップＳ６４０８）。
【０４００】
一方、代表フレームである場合には処理をステップＳ６４０９に進め、画像エリア５〜７のうち、最も古いフレーム番号のフレームデータを格納している画像エリアを特定し（ステップＳ６４０９）、特定した画像エリアに画像エリア１に格納されている画像を複写する（ステップＳ６４１０）。
【０４０１】
そして、画像エリア１に格納されている復号画像データを出力する（ステップＳ６４１１）。出力先は特に限定しないが、例えば表示装置３０７に出力し、表示しても良い。
【０４０２】
そして、処理をステップＳ６４０２に戻し、以降の処理を繰り返す。
【０４０３】
このような一連の選択動作により、時間的に遠いフレームを代表フレームとして保持し、時間的に近いフレームの両方を参照することで、少ない情報量で再生画像を得ることが可能になるという効果がある。
また、代表フレームをフレーム内符号化することで、高い画質のフレームを参照画像データとすることで画質が向上するという効果がある。
【０４０４】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０４０５】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４０６】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０４０７】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０４０８】
【図１】本発明の第１の実施形態に係る動画像符号化装置の構成を示す図である。
【図２】本発明の第１の実施形態に係る符号化処理のフローチャートである。
【図３】本発明の第２の実施形態に係る動画像符号化装置の構成を示す図である。
【図４】本発明の第２の実施形態に係る符号化処理のフローチャートである。
【図５】本発明の第３の実施形態に係る動画像符号化装置の基本構成を示すブロック図である。
【図６】メモリ３０１内のメモリマップの一例を示す図である。
【図７】ＣＰＵ３００が、本発明の第３の実施形態に係る動画像符号化ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【図８】ステップＳ２０５における処理の詳細を示すフローチャートである。
【図９】区間を表すテーブルの内容を示す図である。
【図１０】本発明の第４の実施形態に係る動画像符号化処理のフローチャートである。
【図１１】Ｈ．２６４の符号化器の構成を示すブロック図である。
【図１２】本発明の第５の実施形態に係る動画像符号化装置の構成を示すブロック図である。
【図１３】本発明の第５実施形態に係る符号化処理のフローチャートである。
【図１４】本発明の第６の実施形態に係る復号装置の構成を示す図である。
【図１５】本発明の第６の実施形態に係る復号処理のフローチャートである。
【図１６】本発明の第７の実施形態に係る動画像符号化装置の構成を示す図である。
【図１７】本発明の第７の実施形態に係る符号化処理のフローチャートである。
【図１８】本発明の第８の実施形態におけるメモリ３０１内のメモリマップの一例を示す図である。
【図１９】ＣＰＵ３００が、本発明の第８の実施形態に係る動画像符号化ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【図２０】本発明の第９の実施形態に係るメモリ３０１内のメモリマップの一例を示す図である。
【図２１】ＣＰＵ３００が、本発明の第９の実施形態に係る動画像復号ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【図２２】Ｈ．２６４の従来の復号器の構成を示す図である。
【図２３】本発明の第１０の実施形態に係る動画像符号化装置の構成を示す図である。
【図２４】本発明の第１０の実施形態に係る動画像符号化処理のフローチャートである。
【図２５】本発明の第１１の実施形態に係る動画像符号化装置の構成を示す図である。
【図２６】本発明の第１１の実施形態に係る動画像符号化処理のフローチャートである。
【図２７】ＣＰＵ３００が、本発明の第１２の実施形態に係る動画像符号化ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。
【図２８】ＣＰＵ３００が、本発明の第１３の実施形態に係る動画像復号ソフトウェア、通信ソフトウェアを実行することでなされる処理のフローチャートである。態にかかる符号化処理のフローチャートである。
【図１】
0004612797.tif 000002
【図２】
0004612797.tif 000003
【図３】
0004612797.tif 000004
【図４】
0004612797.tif 000005
【図５】
0004612797.tif 000006
【図６】
0004612797.tif 000007
【図７】
0004612797.tif 000008
【図８】
0004612797.tif 000009
【図９】
0004612797.tif 000010
【図１０】
0004612797.tif 000011
【図１１】
0004612797.tif 000012
【図１２】
0004612797.tif 000013
【図１３】
0004612797.tif 000014
【図１４】
0004612797.tif 000015
【図１５】
0004612797.tif 000016
【図１６】
0004612797.tif 000017
【図１７】
0004612797.tif 000018
【図１８】
0004612797.tif 000019
【図１９】
0004612797.tif 000020
【図２０】
0004612797.tif 000021
【図２１】
0004612797.tif 000022
【図２２】
0004612797.tif 000023
【図２３】
0004612797.tif 000024
【図２４】
0004612797.tif 000025
【図２５】
0004612797.tif 000026
【図２６】
0004612797.tif 000027
【図２７】
0004612797.tif 000028
【図２８】
0004612797.tif 000029