(57)【特許請求の範囲】
【請求項１】
複数のフレームを有する入力画像データを符号化する符号化装置において、
第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出する抽出手段と、
前記抽出手段により抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出する検出手段と、
前記検出手段により検出された前記クラス毎に、前記抽出手段により抽出された所定の画素を用いて正規方程式を生成する正規方程式生成手段と、
前記正規方程式を解法することにより予測係数を生成する予測係数生成手段と、
前記抽出手段により抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成する画像予測手段と、
前記予測画像と符号化対象とされる現フレームとの残差成分を求める残差生成手段と、
前記残差成分を符号化データとして出力する出力手段と
を備え、
前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で符号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で符号化の対象とされたフレームであり、
前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記検出手段により検出されるクラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、
前記残差成分を、割当られた前記符号で符号化データに変換し、前記出力手段で出力する
符号化装置。
【請求項２】
前記第１のフレームと前記第２のフレームは、それぞれ１フレーム分の画像データであるか、または、複数のフレーム分の画像データである
請求項１に記載の符号化装置。
【請求項３】
前記予測係数生成手段は、
前記第１のフレームと前記第２のフレームから、線形一次式を生成し、その線形一次式を満たす係数を算出することにより前記予測係数を生成する
請求項１に記載の符号化装置。
【請求項４】
複数のフレームを有する入力画像データを符号化する符号化装置の符号化方法において、
第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、
抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、
検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、
前記正規方程式を解法することにより予測係数を生成し、
前記抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、
前記予測画像と符号化対象とされる現フレームとの残差成分を求め、
前記残差成分を符号化データとして出力する
ステップを含み、
前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で符号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で符号化の対象とされたフレームであり、
前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、検出された前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、
前記残差成分を、割当られた前記符号で符号化データに変換し、出力する
符号化方法。
【請求項５】
複数のフレームを有する入力画像データを符号化する符号化装置の符号化処理を実行するコンピュータに、
第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、
抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、
検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、
前記正規方程式を解法することにより予測係数を生成し、
前記抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、
前記予測画像と符号化対象とされる現フレームとの残差成分を求め、
前記残差成分を符号化データとして出力する
ステップを含み、
前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で符号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で符号化の対象とされたフレームであり、
前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、検出された前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、
前記残差成分を、割当られた前記符号で符号化データに変換し、出力する
処理を実行させるためのプログラム。
【請求項６】
複数のフレームを有する入力画像データを復号化する復号化装置において、
第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出する抽出手段と、
前記抽出手段により抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出する検出手段と、
前記検出手段により検出された前記クラス毎に、前記抽出手段により抽出された所定の画素を用いて正規方程式を生成する正規方程式生成手段と、
前記正規方程式を解法することにより予測係数を生成する予測係数生成手段と、
前記抽出手段により抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成する画像予測手段と、
前記予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分を復号化する残差復号化手段と、
復号化された前記残差成分を前記予測画像に加算し、出力する出力手段と
を備え、
前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で復号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で復号化の対象とされたフレームであり、
前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記検出手段により検出されるクラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、割当られた符号を用いて、前記符号化されている残差成分を復号する
復号化装置。
【請求項７】
前記第１のフレームと前記第２のフレームは、それぞれ１フレーム分の画像データであるか、または、複数のフレーム分の画像データである
請求項６に記載の復号化装置。
【請求項８】
前記予測係数生成手段は、
前記第１のフレームと第２のフレームから、線形一次式を生成し、その線形一次式を満たす係数を算出することにより前記予測係数を生成する
請求項６に記載の復号化装置。
【請求項９】
複数のフレームを有する入力画像データを復号化する復号化装置の復号化方法において、
第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、
抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、
検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、
前記正規方程式を解法することにより予測係数を生成し、
抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、
前記予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分を復号化し、
復号化された前記残差成分を前記予測画像に加算し、出力する
ステップを含み、
前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で復号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で復号化の対象とされたフレームであり、
前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、割当られた符号を用いて、前記符号化されている残差成分を復号する
復号化方法。
【請求項１０】
複数のフレームを有する入力画像データを復号化する復号化装置の復号化処理を実行するコンピュータに、
第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、
抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、
検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、
前記正規方程式を解法することにより予測係数を生成し、
抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、
前記予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分を復号化し、
復号化された前記残差成分を前記予測画像に加算し、出力する
ステップを含み、
前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で復号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で復号化の対象とされたフレームであり、
前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、割当られた符号を用いて、前記符号化されている残差成分を復号する
処理を実行させるためのプログラム。
【請求項１１】
請求項５または請求項１０に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体に関し、特に、予測に関する処理を効率良く行い、予測に関わる情報を低減できるようにした符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
符号化の方式は、可逆符号化と不可逆符号化とに分類できる。可逆符号化は、符号化の対象とされたデータが同一のデータに復元可能であるように符号化する方式であり、不可逆符号化は、符号化の対象とされたデータが同一のデータには復元されない符号化の方式である。
【０００３】
可逆符号化の例として、特許文献１や特許文献２がある。特許文献１や特許文献２に記載されている可逆符号化の方式は、注目画素の周辺の画素の特徴量により予測に用いる画素を決定し、予測を行うものであった。
【０００４】
そのような符号化方式に対して、画像毎に最適な予測係数を算出して、符号化を行うことが、例えば、特許文献３乃至５で提案されている。特許文献３乃至５に記載されている符号化方式は、符号化の対象となるフレームや画素が、別のフレームや画素から予測される。そして予測係数が、予測誤差が最小となるような学習によって算出され、符号化されるものであった。
【０００５】
【特許文献１】特開２０００−０９２３２８号公報
【特許文献２】特開２０００−２９９８６６号公報
【特許文献３】特公平０７-０４６８６８号公報
【特許文献４】登録３５４３３３９号
【特許文献５】特開平０８-０８４３３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１，２に記載されている符号化方式では、予め決定された固定の予測係数が用いられるため、予測に用いる画素を適切に利用したとしても、画像によっては、大きな予測残差を生じ、情報量が増大してしまうことがあった。
【０００７】
また、特許文献３乃至５に記載されている符号化方式では、学習によって算出された予測係数を復号側に送信する必要があり、情報量の増大につながっていた。また特許文献４に記載されている符号化方式では、予測残差をハフマン符号等で符号化が行われるが、画像によって予測残差の分布が異なるため、画像によっては情報量が増大してしまうことがあった。
【０００８】
また、可逆符号化においては±１程度の残差成分は、ホワイトノイズとして扱われていたが、このホワイトノイズを低減させるための符号化などは提案されておらず、ホワイトノイズを低減させつつ圧縮率を一定以上上げることはできなかった。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、情報量が増大するようなことなく、効率良く符号化が行え、また、そのような符号化に対応する復号化が行えるようにするものである。
【課題を解決するための手段】
【００１０】
本発明の一側面の符号化装置は、複数のフレームを有する入力画像データを符号化する符号化装置において、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出する抽出手段と、前記抽出手段により抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出する検出手段と、前記検出手段により検出された前記クラス毎に、前記抽出手段により抽出された所定の画素を用いて正規方程式を生成する正規方程式生成手段と、前記正規方程式を解法することにより予測係数を生成する予測係数生成手段と、前記抽出手段により抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成する画像予測手段と、前記予測画像と符号化対象とされる現フレームとの残差成分を求める残差生成手段と、前記残差成分を符号化データとして出力する出力手段とを備え、前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で符号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で符号化の対象とされたフレームであり、前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記検出手段により検出されるクラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、前記残差成分を、割当られた前記符号で符号化データに変換し、前記出力手段で出力する。
【００１４】
前記第１のフレームと前記第２のフレームは、それぞれ１フレーム分の画像データであるか、または、複数のフレーム分の画像データであるようにすることができる。
【００１５】
前記予測係数生成手段は、前記第１のフレームと前記第２のフレームから、線形一次式を生成し、その線形一次式を満たす係数を算出することにより前記予測係数を生成するようにすることができる。
【００１６】
本発明の一側面の符号化方法は、複数のフレームを有する入力画像データを符号化する符号化装置の符号化方法において、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、前記正規方程式を解法することにより予測係数を生成し、前記抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、前記予測画像と符号化対象とされる現フレームとの残差成分を求め、前記残差成分を符号化データとして出力するステップを含み、前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で符号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で符号化の対象とされたフレームであり、前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、検出された前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、前記残差成分を、割当られた前記符号で符号化データに変換し、出力する。
【００１７】
本発明の一側面の第１のプログラムは、複数のフレームを有する入力画像データを符号化する符号化装置の符号化処理を実行するコンピュータに、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、前記正規方程式を解法することにより予測係数を生成し、前記抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、前記予測画像と符号化対象とされる現フレームとの残差成分を求め、前記残差成分を符号化データとして出力するステップを含み、前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で符号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で符号化の対象とされたフレームであり、前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、検出された前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、前記残差成分を、割当られた前記符号で符号化データに変換し、出力する処理を実行させる。
【００１８】
本発明の一側面の符号化装置および方法、並びに第１のプログラムにおいては、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素が抽出され、抽出された所定の画素にＡＤＲＣの処理が施され、その値が用いられた所定の演算によりクラスが検出され、検出されたクラス毎に、抽出された所定の画素が用いられて正規方程式が生成され、正規方程式が解法されることにより予測係数が生成され、抽出された所定の画素と、予測係数を用いた所定の演算が行われることで予測画像が生成され、予測画像と符号化対象とされる現フレームとの残差成分が求められ、残差成分が符号化データとして出力される。また第１のフレームと第２のフレームは、現フレームより前の時点で符号化の対象とされたフレームであり、第１のフレームは、第２のフレームより前の時点で符号化の対象とされたフレームであり、予測画像と第２のフレームとの残差が算出され、その算出された残差の分布が、検出されたクラス毎に蓄積され、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号が割当られ、残差成分が、割当られた符号で符号化データに変換され、出力される。
【００１９】
本発明の一側面の復号化装置は、複数のフレームを有する入力画像データを復号化する復号化装置において、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出する抽出手段と、前記抽出手段により抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出する検出手段と、前記検出手段により検出された前記クラス毎に、前記抽出手段により抽出された所定の画素を用いて正規方程式を生成する正規方程式生成手段と、前記正規方程式を解法することにより予測係数を生成する予測係数生成手段と、前記抽出手段により抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成する画像予測手段と、前記予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分を復号化する残差復号化手段と、復号化された前記残差成分を前記予測画像に加算し、出力する出力手段とを備え、前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で復号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で復号化の対象とされたフレームであり、前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記検出手段により検出されるクラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、割当られた符号を用いて、前記符号化されている残差成分を復号する。
【００２２】
前記第１のフレームと前記第２のフレームは、それぞれ１フレーム分の画像データであるか、または、複数のフレーム分の画像データであるようにすることができる。
【００２３】
前記予測係数生成手段は、前記第１のフレームと第２のフレームから、線形一次式を生成し、その線形一次式を満たす係数を算出することにより前記予測係数を生成するようにすることができる。
【００２４】
本発明の一側面の復号化方法は、複数のフレームを有する入力画像データを復号化する復号化装置の復号化方法において、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、前記正規方程式を解法することにより予測係数を生成し、抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、前記予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分を復号化し、復号化された前記残差成分を前記予測画像に加算し、出力するステップを含み、前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で復号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で復号化の対象とされたフレームであり、前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、割当られた符号を用いて、前記符号化されている残差成分を復号する。
【００２５】
本発明の一側面の第２のプログラムは、複数のフレームを有する入力画像データを復号化する復号化装置の復号化処理を実行するコンピュータに、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの前記注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素を抽出し、抽出された前記所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を施し、その値を用いた所定の演算によりクラスを検出し、検出された前記クラス毎に、抽出された所定の画素を用いて正規方程式を生成し、前記正規方程式を解法することにより予測係数を生成し、抽出された前記所定の画素と、前記予測係数を用いた所定の演算を行うことで予測画像を生成し、前記予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分を復号化し、復号化された前記残差成分を前記予測画像に加算し、出力するステップを含み、前記第１のフレームと前記第２のフレームは、前記現フレームより前の時点で復号化の対象とされたフレームであり、前記第１のフレームは、前記第２のフレームより前の時点で復号化の対象とされたフレームであり、前記予測画像と前記第２のフレームとの残差を算出し、その算出された残差の分布を、前記クラス毎に蓄積し、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号を割当、割当られた符号を用いて、前記符号化されている残差成分を復号する処理を実行させる。
【００２６】
本発明の一側面の記録媒体は、第１のプログラムまたは第２のプログラムを記録している。
【００２７】
本発明の一側面の復号化装置および方法、並びに第２のプログラムにおいては、第１のフレーム内で処理対象とされ、所定の画素数で構成される注目ブロックと第２のフレームの注目ブロックに対応する検出ブロックとからそれぞれ所定の位置に配置された所定の画素が抽出され、抽出された所定の画素にＡＤＲＣ（Adaptive Dynamic Range Coding）の処理が施され、その値が用いられた所定の演算によりクラスが検出され、検出されたクラス毎に、抽出された所定の画素が用いられて正規方程式が生成され、正規方程式が解法されることにより予測係数が生成され、抽出された所定の画素と、予測係数が用いられた所定の演算が行われることで予測画像が生成され、予測画像と復号化対象とされる現フレームとの残差であり、符号化されている残差成分が復号化され、復号化された残差成分が予測画像に加算され、出力される。また第１のフレームと第２のフレームは、現フレームより前の時点で復号化の対象とされたフレームであり、第１のフレームは、第２のフレームより前の時点で復号化の対象とされたフレームであり、予測画像と第２のフレームとの残差が算出され、その算出された残差の分布が、クラス毎に蓄積され、蓄積されているクラス毎の残差の分布から、クラス毎の残差に符号が割当られ、割当られた符号が用いられて、符号化されている残差成分が復号される。
【発明の効果】
【００３２】
本発明によれば、可逆符号化を行うことが可能となる。
【００３３】
本発明によれば、復号側に供給されるデータ量を小さくすることができる符号化を行うことが可能となる。
【発明を実施するための最良の形態】
【００４５】
以下に、本発明の実施の形態について図面を参照して説明する。
【実施例１】
【００４６】
以下の説明においては、まず符号化装置について説明をし、次に、符号化装置により符号化されたデータを復号する復号化装置について説明する。
【００４７】
［符号化装置の構成について］
図１は、本発明を適用した符号化装置の一実施の形態の構成を示す図である。図１に示した符号化装置１０は、入力端子２１、フレームメモリ２２、フレームメモリ２３、ブロック化部２４、動き検出部２５、タップ選択部２６、クラス検出部２７、動きベクトル符号割当部２８、正規方程式生成部２９、係数決定部３０、ブロック化部３１、動きベクトル検出部３２、タップ選択部３３、クラス検出部３４、係数メモリ３５、予測演算部３６、残差分布生成部３７、残差符号割当部３８、ブロック化部３９、動きベクトル検出部４０、タップ選択部４１、クラス検出部４２、予測演算部４３、残差算出部４４、残差符号化部４５、動きベクトル符号化部４６、および出力端子４７を含む構成とされる。
【００４８】
符号化装置１０を構成するこれらの各部における動作や、その動作により生成されるデータなどについては後述する。まずここでは、符号化装置１０内のデータの流れについて説明する。
【００４９】
入力端子２１に入力されたデータは、フレームメモリ２２とブロック化部３９に、それぞれ供給される。フレームメモリ２２からのデータは、フレームメモリ２３、ブロック化部２４、ブロック化部３１、動きベクトル検出部４０、およびタップ選択部４１に、それぞれ供給される。フレームメモリ２３からのデータは、動きベクトル検出部２５、タップ選択部２６、動きベクトル検出部３２、およびタップ選択部３３に、それぞれ供給される。
【００５０】
ブロック化部２４からのデータは、動きベクトル検出部２５、タップ選択部２６、および正規方程式生成部２９に、それぞれ供給される。動きベクトル検出部２５からのデータは、タップ選択部２６と動きベクトル符号割当部２８に、それぞれ供給される。タップ選択部２６からのデータは、クラス検出部２７と正規方程式生成部２９に、それぞれ供給される。クラス検出部２７からのデータは、正規方程式生成部２９に供給される。
【００５１】
動きベクトル符号割当部２８からのデータは、動きベクトル符号化部４６に供給される。正規方程式生成部２９からのデータは、係数決定部３０に供給される。係数決定部３０からのデータは、係数メモリ３５に供給される。
【００５２】
ブロック化部３１からのデータは、動きベクトル検出部３２、タップ選択部３３、および残差分布生成部３７に、それぞれ供給される。動きベクトル検出部３２からのデータは、タップ選択部３３に供給される。タップ選択部３３からのデータは、クラス検出部３４と予測演算部３６に、それぞれ供給される。クラス検出部３４からのデータは、係数メモリ３５と残差分布生成部３７に供給される。
【００５３】
係数メモリ３５からのデータは、予測演算部３６と予測演算部４３に、それぞれ供給される。予測演算部３６からのデータは、残差分布生成部３７に供給される。残差符号割当部３８からのデータは、残差符号化部４５に供給される。
【００５４】
ブロック化部３９からのデータは、動きベクトル検出部４０、タップ選択部４１、および残差算出部４４に、それぞれ供給される。動きベクトル検出部４０からのデータは、タップ選択部４１と動きベクトル符号化部４６に、それぞれ供給される。タップ選択部４１からのデータは、クラス検出部４２と予測演算部４３に、それぞれ供給される。クラス検出部４２からのデータは、係数メモリ３５と残差符号化部４５に、それぞれ供給される。
【００５５】
予測演算部４３からのデータは、残差算出部４４に供給される。残差算出部４４からのデータは、残差符号化部４５に供給される。残差符号化部４５からのデータは、出力端子４７に供給される。動きベクトル符号化部４６からのデータは、出力端子４７に供給される。
【００５６】
このように、図１に示した符号化装置１０においては、データが供給される。
【００５７】
このような各部を含み、データが流される符号化装置１０は、その構成を大きく分類すると、図２に示すように学習部６１、予測部６２、および符号化部６３に分類することができる。学習部６１は、主に、ブロック化部２４、動きベクトル検出部２５、タップ選択部２６、クラス検出部２７、動きベクトル符号割当部２８、正規方程式生成部２９、係数決定部３０を含む構成とされる。すなわち、図１において、図中左上側に図示した部分が、主に学習部６１による学習を実行する部分である。
【００５８】
予測部６２は、主に、ブロック化部３１、動きベクトル検出部３２、タップ選択部３３、クラス検出部３４、係数メモリ３５、予測演算部３６、残差分布生成部３７、残差符号割当部３８を含む構成とされる。すなわち、図１において、図中右上側に図示した部分が、主に予測部６２による予測を実行する部分である。
【００５９】
符号化部６３は、主に、ブロック化部３９、動きベクトル検出部４０、タップ選択部４１、クラス検出部４２、予測演算部４３、残差算出部４４、残差符号化部４５、動きベクトル符号化部４６を含む構成とされる。すなわち、図１において、図中下側に図示した部分が、主に符号化部６３による符号化を実行する部分である。
【００６０】
図１および図２に示した符号化装置１０は、以下に説明を加えるように、画像の特性に応じた予測を行い、また予測によって生じる残差の分布に応じた符号割当を行い、残差を符号化することを特徴とする。そのような特徴を実現するために、学習部６１による学習が行われ、予測係数が算出されるとともに、予測部６２により、算出された予測係数で予測処理を行った際の残差の分布から、残差の符号割当が行われる。
【００６１】
注目フレーム（入力端子２１に入力されたフレームであり、符号化の対象となるフレーム）の処理には、予測部６２により既に算出された予測係数で予測処理が行われ、残差は既に符号割当が行われた符号で符号化されることで、予測係数と符号割当の情報を復号側に送信せずに復号ができるようにする。
【００６２】
このような符号化を行う図１に示した符号化装置１０を構成する各部が行う処理について説明する。
【００６３】
フレームメモリ２２とフレームメモリ２３は、それぞれ、供給される動画像の画像データをフレーム単位で記憶する。図１のような構成にした場合、フレームメモリ２２に記憶されるのは、入力端子２１に入力されるフレームの画像データより、１フレーム前の画像データであり、フレームメモリ２３に記憶されるのは、フレームメモリ２２より１フレーム前の画像データ（すなわち、入力端子２１に入力されるフレームの画像データより２フレーム前の画像データ）である。
【００６４】
以下、入力端子２１に入力され、符号化の対象となるフレームをフレームＮとし、フレームメモリ２２に記憶されるフレームをフレームＮ−１とし、フレームメモリ２３に記憶されるフレームをフレームＮ−２とする。また、入力端子２１に入力され、符号化の対象とされるフレームを注目フレーム（適宜、注目フレームＮ）と記述する。
【００６５】
ブロック化部２４は、フレームメモリ２２に記憶されているフレーム（以下、適宜、フレームと記述するが、フレームとの記載は、そのフレームの画像データであるとの意味も含む）を、所定の大きさの複数のブロックに分割する。同様に、ブロック化部３１は、フレームメモリ２３に記憶されているフレームを、所定の大きさの複数のブロックに分割し、ブロック化部３９は、入力端子２１を介して入力されるフレームＮを、所定の大きさの複数のブロックに分割する。すなわち、ブロック化部２４、３１，３９により処理されるのは、連続する３フレームである。
【００６６】
ブロック化部２４において行われるブロック化について、図３を参照して説明する。ブロック化部２４には、フレームメモリ２２に記憶されている１フレーム分の画像データ（有効画面を構成する画面の画像データ）が供給される。図３は、供給されるフレームＮ−１の一部分を示している。図３において、「○」はブロックを構成する画素データを示している。１フレームは、水平方向８画素、垂直方向８画素で構成される６４画素毎のブロック（図３において、線で囲んだ部分）に分割される。
【００６７】
ここでは、このように、１ブロックは８×８の６４画素で構成されるとして説明を続けるが、他の画素数で構成されるようにしても良い。ブロック化部２４によりブロック化されたブロックは、動きベクトル検出部２５に供給される。
【００６８】
動きベクトル検出部２５は、ブロック化部２４によりブロック化されたフレームＮ−１と、フレームメモリ２３に記録されているフレームＮ−２とが供給される。動きベクトル検出部２５は、ブロック化部２４から供給されるフレームＮ−１のブロックに対する、フレームメモリ２３に記憶されているフレームＮ―２との関係における動きベクトルを検出する。
【００６９】
図４Ａ，図４Ｂおよび図５を参照して動きベクトル検出部２５が検出する動きベクトルについて説明する。図４Ａに示すように、フレームメモリ２２に記憶されているフレームＮ―１内の６４画素が処理対象の注目ブロック１０１（ブロック化部２４によりブロック化された１ブロック）とされている。図４Ｂに示すように、注目ブロック１０１がフレームＮ―１内で存在する位置と同一の位置に相当する位置で、フレームメモリ２３内に記憶されているフレームＮ―２内の６４画素が領域１０２とされる。
【００７０】
この領域１０２より大きな所定の領域が、サーチ範囲１０３として設定される。サーチ範囲１０３は、例えば、領域１０２よりも、水平方向（図中左右方向）に、−８画素〜＋８画素、垂直方向（図中上下方向）に−８画素〜＋８画素、大きな領域とされる。
【００７１】
動きベクトル検出部２５は、ブロック化部２４からの注目ブロック１０１が、フレームメモリ２３に記憶されているフレームＮ−２内の、どの位置に存在しているかを判断し、領域１０２を決定する。その決定に基づき、サーチ範囲１０３を設定する。そのサーチ範囲１０３内から、ブロックマッチングにより、例えば、注目している注目ブロック１０１の各画素との差分絶対値の総和が最小となるブロック（領域）を検出する。
【００７２】
図５を参照するに、注目ブロック１０１との差分の絶対値の総和が最小となるブロック（領域）が、検出ブロック１０４の位置に検出されたとする。動きベクトル検出部２５は、注目ブロック１０１がフレーム内で位置する領域に相当する領域１０２の座標位置から、検出ブロック１０４までの相対座標を、動きベクトルとして検出する。
【００７３】
このようにして、フレームＮ―１内の１ブロックに類似するブロックが、フレームＮ−２内から検出されることにより、動きベクトルが検出される。動きベクトル検出部２５により検出された動きベクトルは、タップ選択部２６と動きベクトル符号割当部２８に供給される。
【００７４】
タップ選択部２６には、フレームメモリ２３からフレームＮ−２、ブロック化部２４によりブロック化されたブロック、および、動きベクトル検出部２５により検出された動きベクトルが供給される。タップ選択部２６は、所定の画素（その画素の画素データ）を選択（抽出）する処理を実行する。タップ選択部２６が実行する画素の選択について、図６を参照して説明する。
【００７５】
図６に示すように、タップ選択部２６は、注目ブロック１０１内から所定の画素を抽出する。例えば、図６Ａに示すように、注目画素が注目画素１２１である場合、抽出される画素は、注目ブロック１０１から抽出画素１３１乃至１３６の６個である。
【００７６】
図６に示した例では、注目ブロック１０１から抽出される抽出画素１３１乃至１３６は、注目画素１２１に対して、上方向に位置する抽出画素１３１，１３４、左上方向に位置する抽出画素１３２、右上方向に位置する抽出画素１３４、および、左方向に位置する抽出画素１３５，１３６である。これらの抽出画素１３１乃至１３６は、ラスタースキャンされるときに、注目画素１２１より先にスキャンされる画素である。
【００７７】
また、検出ブロック１０４からも画素が抽出される。タップ選択部２６は、フレームメモリ２３から供給されるフレームＮ−２と、動きベクトル検出部２５から供給される動きベクトルから、フレームＮ−２内における注目ブロック１０１に対応するブロック、すなわち、検出ブロック１０４を検出する。
【００７８】
そして、タップ選択部２６は、検出ブロック１０４からも、抽出画素１４１乃至１４５の５個の画素を抽出する。検出ブロック１０４から抽出される抽出画素１４１乃至１４５は、注目画素１２１に対応する位置に位置する注目画素１４３と、その注目画素１４３に対して上方向、下方向、左方向、および右方向に、それぞれ位置する抽出画素１４１、抽出画素１４５、抽出画素１４２、および抽出画素１４４が抽出される。
【００７９】
このように、タップ選択部２６は、注目ブロック１０１と検出ブロック１０４とから、それぞれ所定の画素を抽出する（タップを選択する）。このようにしてタップ選択部２６により抽出された画素の画素データは、クラス検出部２７と正規方程式生成部２９に供給される。
【００８０】
クラス検出部２７は、タップ選択部２６で抽出された画素データから、画素の特徴量によりクラスを生成（分類）する。クラス検出部２７は、例えば、ＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を、抽出された画素データに対して施し、画素データに対応するクラスを生成する。
【００８１】
ＡＤＲＣは、画素データの最大値をＭＡＸ、画素データの最小値をＭＩＮ、画素データのダイナミックレンジをＤＲ（ＤＲ＝ＭＡＸ―ＭＩＮ＋１）、再量子化ビット数をＰとすると、画素データＫｉに対して次式（１）により、再量子化コードＱｉが算出される。次式（１）において、［］は切り捨て処理を意味する。
Ｑｉ＝［（ｋｉ−ＭＩＮ＋０．５）×２P／ＤＲ］    ・・・（１）
【００８２】
そしてタップ選択部２６から供給される抽出画素（この場合、抽出画素１３１乃至１３６，１４１乃至１４５の計１１個の抽出画素）の画素データ毎に得られる再量子化コードＱｉから、次式（２）に基づく演算を行うことにより、クラスコードＣＬが算出（生成）される。画素データとして、Ｎａ個の画素データがあるとき、ｉは、ｉ＝１乃至Ｎａである。
【００８３】
【数１】
0004662171.tif 000002
【００８４】
正規方程式生成部２９は、ブロック化部２４からの注目ブロック１０１、タップ選択部２６で抽出された画素の画素データ、およびクラス検出部２７で算出されたクラスとから、学習によって正規方程式を生成する。正規方程式生成部２９は、クラス毎に、生徒信号（この場合、タップ選択部２６から供給される画素）の画素データと教師信号（この場合、ブロック化部２４から供給される注目ブロック１０１内の画素）の画素データとを用いて、二乗誤差を最小にする係数値を決定するためのデータを生成する。
【００８５】
学習数をｍとし、ｋ番目（１≦ｋ≦ｍ）の学習データにおける残差をｅk、二乗誤差の総和をＥとすると、総和Ｅは次式（３）で演算される。式（３）において、ｘikはタップ選択部２６で抽出された画素（生徒信号）のｉ番目の予測タップ位置におけるｋ番目の画素のデータ、ｙkはそれに対応する注目画素（教師信号）のｋ番目の画素データ、ｗiはｉ番目の画素（予測タップ）における予測係数を表している。
【００８６】
【数２】
0004662171.tif 000003
【００８７】
最小二乗法による解法では、式（３）の予測係数ｗiによる偏微分が０になるような予測係数ｗiが求められる。このような予測係数ｗiは、次式（４）により求められる。
【００８８】
【数３】
0004662171.tif 000004
【００８９】
Ｘij、Ｙiを、次式（５）、（６）のように定義すると、式（４）は、行列を用いて次式（７）のように書き換えられる。
【００９０】
【数４】
0004662171.tif 000005
【００９１】
【数５】
0004662171.tif 000006
【００９２】
【数６】
0004662171.tif 000007
【００９３】
このような方程式は一般に正規方程式と呼ばれている。正規方程式生成部２９は、このような正規方程式をクラス毎に生成する。
【００９４】
係数決定部３０は、正規方程式生成部２９で生成された正規方程式を掃き出し法（Gauss-Jordanの消去法）等を用いて、予測係数ｗiについて解き、係数データを算出する。係数メモリ３５は、係数決定部３０で生成されたクラス毎の係数データを保持する。
【００９５】
動きベクトル符号割当部２８は、ブロック化部２４で分割される全てのブロックについて、動きベクトル検出部２５で検出される動きベクトルを蓄積する。そして動きベクトルの分布から、動きベクトルに対する符号割当を、例えばハフマン符号を用いて行う。
【００９６】
このようにして、学習部６１を構成する各部により学習の処理が実行される。すなわちこの場合、学習の結果、動きベクトル符号割当（後述する）が行われ、クラス毎の係数データが、係数メモリ３５に記憶される。
【００９７】
次に、予測部６２を構成する各部の処理について説明を加える。
【００９８】
ブロック化部３１は、ブロック化部２４と同様の処理を実行する。すなわちこの場合、ブロック化部３１は、フレームメモリ２２に記憶されているフレームＮ−１を、６４画素を１ブロックとするブロックに分割する（すなわち、ブロック化部２４と同一のフレームＮ−１を、同じようにブロック化する）。ブロック化部３１からのブロックは、動きベクトル検出部３２とタップ選択部３３に供給される。
【００９９】
動きベクトル検出部３２は、動きベクトル検出部２５と同様の処理により、ブロック化部３１によりブロック化されたブロックと、フレームメモリ２３に記憶されているフレームとを用いて、動きベクトルを検出する。動きベクトル検出部３２により検出された動きベクトルは、タップ選択部３３に供給される。
【０１００】
タップ選択部３３は、タップ選択部２６と同様の処理により、ブロック化部３１から供給される注目ブロック、フレームメモリ２３に記憶されているフレームＮ−２、および、動きベクトル検出部２５で検出された動きベクトルを用いて、所定の画素（画素データ）を抽出する。タップ選択部３３により抽出された画素の画素データは、クラス検出部３４と予測演算部３６に供給される。
【０１０１】
クラス検出部３４は、クラス検出部２７と同様な処理を実行することにより、クラスを生成（分類）する。クラス検出部３４により生成されたクラスは、係数メモリ３５に供給され、記憶されるとともに、残差分布生成部３７にも供給される。
【０１０２】
予測演算部３６は、クラス検出部３４から得られるクラスに対応して係数メモリ３５から読み出される係数データと、タップ選択部３３から得られる画素データとで、次式（８）に基づく予測演算を行い、予測値ｙ’を算出する。次式（８）においてｘiはタップ選択部３３から得られる画素データを示し、ｗiは係数データを表している。
【０１０３】
【数７】
0004662171.tif 000008
【０１０４】
残差分布生成部３７は、ブロック化部３１から得られる注目画素の値と、予測演算部３６から得られる予測値との残差を算出し、クラス毎に残差の分布を蓄積する。例えば、図７に示すような、クラス毎に、横軸を残差、縦軸を頻度としたグラフが、残差分布生成部３７により生成される（すなわち、クラス毎に残差の分布が蓄積される）。
【０１０５】
残差符号割当部３８は、残差分布生成部３７に蓄積されているクラス毎の残差分布から、クラス毎の残差の符号割当を、例えば、ハフマン符号を用いて行う。これにより、クラス毎の残差分布に対応した符号割当が行われる。
【０１０６】
このようにして予測部６２を構成する各部により予測処理が実行される。すなわち、この場合、クラス毎の残差分布に対応した符号割当が行われる。
【０１０７】
次に、符号化部６３を構成する各部の処理について説明を加える。
【０１０８】
ブロック化部３９は、入力端子２１に入力されるフレームＮを、ブロック化部２４と同じように、６４画素を１ブロックとするブロックに分割し、動きベクトル検出部４０とタップ選択部４１に供給する。
【０１０９】
動きベクトル検出部４０は、動きベクトル検出部２５と同様の処理により、ブロック化部３９によりブロック化されたブロックと、フレームメモリ２２に記憶されているフレームＮ−１とを用いて、動きベクトルを検出し、タップ選択部４１と動きベクトル符号化部４６に供給する。
【０１１０】
動きベクトル検出部４０は、動きベクトル検出部２５や動きベクトル検出部３２と異なり、入力端子２１を介して入力されたフレーム（フレームメモリ２２に記憶されているフレームＮ−１よりも１フレーム後のフレームＮと、フレームメモリ２２に記憶されているフレームＮ−１を用いて動きベクトルを検出する。
【０１１１】
タップ選択部４１は、タップ選択部２６と同様の処理により、ブロック化部３９から供給される注目ブロック、フレームメモリ２２に記憶されているフレームＮ−１、および、動きベクトル検出部４０で検出された動きベクトルを用いて、所定の画素（画素データ）を抽出し、クラス検出部４２と予想演算部４３に供給する。
【０１１２】
クラス検出部４２は、クラス検出部２７と同様な処理を実行することにより、クラスを生成（分類）し、残差符号化部４５に供給する。クラス検出部４２により検出されるクラスは、注目フレームＮに対するクラスである。なお、クラス検出部４２は、学習の際に用いられたクラス検出部２７と同様の構成とされる。
【０１１３】
予測演算部４３は、クラス検出部４２から得られるクラスに対応して係数メモリ３５から読み出される係数データと、タップ選択部４１から得られる画素データとで、式（８）と同様の予測演算を行い、予測値y’を算出し、残差算出部４４に供給する。
【０１１４】
残差算出部４４では、ブロック化部３９から得られる注目画素の値と、予測演算部４３から得られる予測値との残差を算出する。残差符号化部４５は、クラス検出部４２から得られるクラスと、残差符号割当部３８で決定された符合を用いて、残差に対して符号化を行い、残差の符号化データVcdoを出力する。このようにして、まず残差が符号化される。
【０１１５】
動きベクトル符号化部４６は、動きベクトル検出部４０で検出された動きベクトルに対し、動きベクトル符号割当部２８で決定された符号で符号化を行い、動きベクトルの符号化データVcdmvを出力する。このようにして、動きベクトルが符号化される。
【０１１６】
このように、動きベクトル符号化部４６により符号化された符号化データVcdmvと、残差符号化部４５により符号化された符号化データVcdoは、符号化データVcdとして、出力端子４７へ出力される。
【０１１７】
このような各部により、入力端子２１に入力された注目フレームＮが処理されると、新たに入力されるフレームが注目フレームとして処理される。そして、フレームメモリ２２やフレームメモリ２３に記憶されているフレームは、それぞれ更新される。
【０１１８】
ところで、フレームメモリ２２とフレームメモリ２３には、それぞれ、フレームＮ―１とフレームＮ−２が、それぞれ記憶されるが、入力端子２１に始めて（１番目に）入力されるフレームや２番目に入力されるフレームが、それぞれ入力されるときには、フレームメモリ２２とフレームメモリ２３にフレームが記録されている状態ではない。よって、フレームメモリ２２やフレームメモリ２３に、それぞれ記憶されているフレームを用いて、上記したような処理を各部で実行することにより、符号化を行うということはできない。
【０１１９】
よって、フレームメモリ２２とフレームメモリ２３に、それぞれフレームが記憶されるまでの間、すなわち、１番目のフレームと２番目のフレームは、それぞれ、上述したような処理以外の処理で符号化される。
【０１２０】
上述したように各部で処理が実行される場合、動きベクトル符号割当部２８、正規方程式生成部２９、および残差分布生成部３７は、それぞれ、データが蓄積されることにより、適切な処理を行えるように構成されている。換言すれば、動きベクトル符号割当部２８、正規方程式生成部２９、および残差分布生成部３７は、サンプルとなるデータが０であると、処理を適切に行うことができない。
【０１２１】
例えば、図７を参照して説明したように、残差分布生成部３７は、クラス毎に残差の分布を保持しているが、データ数が０であった場合、図７に示したような分布を得ることができず、処理を適切に行うことができない。
【０１２２】
そこで、動きベクトル符号割当部２８、正規方程式生成部２９、および残差分布生成部３７には、予め初期値が記録されているとする。初期値として記録されるデータは、事前に任意の画像で学習されたときのデータである。
【０１２３】
図８と図９を参照して、動きベクトル符号割当部２８に記憶されている初期値と、データの更新について説明する。図８には、時刻ｔ、時刻ｔ＋１、および時刻ｔ＋２のときに、動きベクトル符号割当部２８に記憶されている動きベクトルのデータを示した。時刻ｔは、初期状態のときであり、時刻ｔ＋１は、時刻ｔから１フレーム処理されたときであり、時刻ｔ＋２は、時刻ｔから２フレーム処理されたときを示す。
【０１２４】
時刻ｔの初期状態のときには、画像Ａ、Ｂ、Ｃ、Ｄ、Ｅの５枚の画像で事前に、それぞれ学習されたときの動きベクトルのデータが動きベクトル符号割当部２８には記録されている。時刻ｔ＋１のときには、１フレーム処理された後であるので、その処理された動きベクトルのデータが追加されて記憶される。同様に、時刻ｔ＋２のときには、時刻ｔの初期状態のときに比べて、２フレーム処理されている状態なので、新たに処理された画像（フレーム）からの動きベクトルのデータも記憶される。
【０１２５】
このように、初期状態のときには、所定の画像から事前学習により取得される動きベクトルのデータが記憶され、その後、フレームが処理される毎に、その処理されたフレームからの動きベクトルのデータが追加されて記憶される。そして、追記されて記憶されたデータも加算される。
【０１２６】
このように、フレームが処理される毎にデータを記憶し、加算していけば、データ量（学習量）が増加するので、学習が進むにつれて、動きベクトルの分布のロバスト性を保持したまま、動きベクトルの分布が入力端子２１に入力される画像により依存した（支配的になる）符号割当を行えるようになる。
【０１２７】
しかしながら、動きベクトル符号割当部２８の記憶容量は有限であるので、フレームが処理される毎にデータを、無限に記憶することはできない。そこで、図９に示すように、動きベクトル符号割当部２８には、一定のデータが記憶されるようにしても良い。すなわち、図９に示した例では、動きベクトル符号記憶部２８には、５つの画像からのデータが記憶されている。時刻ｔの初期状態のときには、画像Ａ乃至Ｅの５間の画像で事前に、それぞれ学習された動きベクトルのデータが記憶されている。
【０１２８】
このような状態から、時刻ｔ＋１になると、新たに処理された画像からの動きベクトルのデータが追加される。データが追加されるとき、追加されるデータの代わりに、１つのデータが削除される。図９に示した例では、画像Ａで学習した際の動きベクトルのデータが削除されている。さらに時刻ｔ＋２になると、さらに１枚の新たな画像からの動きベクトルのデータが追加されるため、画像Ｂで学習した際の動きベクトルのデータが削除される。
【０１２９】
このように、新たにデータが追加されると、その分のデータが削除されるようにし、データ量が常に一定の値以下に抑えられるようにしても良い。このようにした場合であっても、データ自体は更新され、学習が継続されるので、学習が進むにつれて、適切な値を算出できるようになる。すなわち、動きベクトルの分布のロバスト性を保持したまま、注目フレームと相関の低い画像の影響を排除することも可能となり、処理が進むにつれて、入力端子２１に入力される画像との相関が高い動きベクトルの分布を得ることが可能となる。
【０１３０】
同様に、正規方程式生成部２９にも、図１０に示すように、画像Ａ乃至Ｅの５枚の画像で学習した際の正規方程式が初期値として記憶される。時刻ｔの初期状態から、時刻ｔ＋１に移行されたとき、正規方程式生成部２９には、初期値の正規方程式に対し、新規に学習を行った正規方程式が記憶、加算される。さらに、時刻ｔ＋２において、新規に学習を行った正規方程式が記憶、加算される。このように、順次、画像が処理される毎に、正規方程式生成部２９の係数データが更新されるようにすることで、係数データのロバスト性を保持したまま、処理が進むにつれて入力端子２１に入力される画像による学習の結果が支配的になる係数が生成される。
【０１３１】
この場合も正規化方程式生成部２９は、有限な記憶容量を有すると考えられるので、図１１に示すように、適宜、データが削除されるようにしても良い。すなわち、図１１に示すように、時刻ｔのときに、画像Ａ乃至Ｅから学習された正規方程式が初期値として保持されており、時刻ｔ＋１や時刻ｔ＋２のときに、新規に得られる各データが順次加算されるとともに、古いデータが順次消去される。
【０１３２】
すなわち図１１に示すように、初期値に対して、新規に入力端子２１に入力された画像データのフレームＮとフレームＮ＋１とで学習が行われた場合、初期値の正規方程式に対し、新規に学習が行われた正規方程式が加算されるとともに、画像Ａや画像Ｂで学習された正規方程式のデータが消去される。こうすることで、係数データのロバスト性を保持したまま、注目フレームと相関の低いデータの影響を排除することも可能となり、処理が進むにつれて入力される画像データと時間的に近いフレームでの学習結果が支配的になる係数が生成される。
【０１３３】
さらに同様に、残差分布生成部３７も図１２に示すように、時刻ｔにおける初期値に対して、新規に入力端子２１にから入力された画像データのフレームＮとフレームＮ＋１とで学習が行われた場合、初期値の予測残差の分布に対して、新規に学習が行われた予測残差の分布が加算される。こうすることで、予測残差の分布のロバスト性を保持したまま、処理が進むにつれて入力される画像データの予測残差の結果が支配的になる符合割当が行えるようになる。
【０１３４】
この場合も、残差分布生成部３７の記憶容量は有限であるため、図１３に示すように、適宜、データが削除されるようにしても良い。図１３に示すように、初期値に対して、新規に入力された画像データのフレームＮとフレームＮ＋１とで学習が行われた場合、初期値の予測残差の分布に対して、新規に学習された予測残差の分布が加算されるとともに、画像Ａや画像Ｂの予測残差の分布データが消去される。こうすることで、予測残差の分布のロバスト性を保持したまま、注目フレームと相関の低いデータの影響を排除することが可能となり、処理が進むにつれて入力される画像データと時間的に近いフレーム（比較的相関が高いフレーム）での予測残差の結果が支配的になる符合割当が行えるようになる。
【０１３５】
なお図１３に示したような残差分布生成部３７における予測残差は、画像Ａ、Ｂ、Ｃ、Ｄ、Ｅにおいては、正規方程式生成部２９に初期値として保持される正規方程式から得られる係数データで予測した場合の残差で、入力された画像データにおいては、正規方程式生成部２９に初期値として保持される正規方程式に、入力された画像データのフレームＮとフレームＮ＋１とで学習が行われた正規方程式を加算し、画像Ａで学習した正規方程式のデータを消去したものから得られる係数データで予測した場合の残差である。
【０１３６】
このように、入力される画像データが処理されることにより、データが蓄積され、蓄積されることにより、より的確に処理が行えるようになる符号化装置１０内の動きベクトル符号割当部２８、正規方程式生成部２９、および残差分布生成部３７には、初期値を予め記憶させておくようにする。
【０１３７】
上述した符号化装置１０を構成する各部で実行される処理は、専用のハードウェアで実行されるようにしても良いし、ソフトウェアで実行されるようにしても良い。ソフトウェアで実行されるようにした場合、例えば、図１４に示すような構成を有するパーソナルコンピュータ２００で、上述したような符号化を実行させることが可能である。
【０１３８】
図１４に示したパーソナルコンピュータ２００のＣＰＵ（Central Processing Unit）２０１は、ＲＯＭ（Read Only Memory）２０２、または記憶部２０８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）２０３には、ＣＰＵ２０１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ２０１、ＲＯＭ２０２、およびＲＡＭ２０３は、バス２０４により相互に接続されている。
【０１３９】
ＣＰＵ２０１にはまた、バス２０４を介して入出力インターフェース２０５が接続されている。入出力インターフェース２０５には、キーボード、マウス、マイクロホンなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続されている。ＣＰＵ２０１は、入力部２０６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ２０１は、処理の結果を出力部２０７に出力する。
【０１４０】
入出力インターフェース２０５に接続されている記憶部２０８は、例えばハードディスクからなり、ＣＰＵ２０１が実行するプログラムや各種のデータを記憶する。通信部２０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０１４１】
また、通信部２０９を介してプログラムを取得し、記憶部２０８に記憶してもよい。
【０１４２】
入出力インターフェース２０５に接続されているドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア２１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部２０８に転送され、記憶される。
【０１４３】
このような構成を有するパーソナルコンピュータ２００において、上述したような符号化処理が行われる場合、記憶部２０８やＲＯＭ２０２に記憶されているプログラムが起動され、その起動されたプログラムに基づく処理をＣＰＵ２０１が実行することにより符号化処理が行われる。すなわち、図１に示した符号化装置１０内の各部は、ＣＰＵ２０１がプログラムに基づく処理を実行することにより実現される機能である。ただし、フレームメモリ２２とフレームメモリ２３は、ＲＡＭ２０３や記憶部２０８により実現される機能である。
【０１４４】
図１に示した符号化装置１０をハードウェアで実現したとき、またはソフトウェアで実現したときの符号化の手順について、図１５乃至図１８のフローチャートを参照して説明する。なお、以下に説明する符号化の手順は、主に、ソフトウェアで実現したときの処理であるとする。
【０１４５】
ステップＳ１１において、学習処理が行われる。学習処理は、予測係数などを算出する処理である。この学習処理の詳細は、図１６のフローチャートを参照して説明する。ステップＳ１２において、予測処理が行われる。予測処理は、予測係数を用いた予測などを行う処理である。この予測処理の詳細については、図１７のフローチャートを参照して説明する。ステップＳ１３において、符号化処理が行われる。符号化処理は、動きベクトルと残差を符号化する処理である。この符号化処理の詳細については、図１８のフローチャートを参照して説明する。
【０１４６】
ステップＳ１４において、処理が終了したか否かが判断される。処理が終了されたと判断されるのは、例えば、画像データが入力されなくなったときである。ステップＳ１４において、処理は終了していないと判断された場合、ステップＳ１５に処理が進められる。ステップＳ１５において、フレームメモリ２２，２３に記憶されている画像データが書き換えられる。
【０１４７】
すなわち、処理対象とされていたフレームが、フレームメモリ２２に記憶され、フレームメモリ２２に記憶されていたフレームが、フレームメモリ２３に記憶されることにより、フレームメモリ２２とフレームメモリ２３に、それぞれ記憶されている画像データの書き換えが行われる。
【０１４８】
フレームメモリ２２，２３の画像データの書き換えが終了されると、ステップＳ１１に戻り、それ以降の処理が繰り返される。すなわち、符号化の処理は、画像データが入力されている間、繰り返し行われる。
【０１４９】
図１６のフローチャートを参照し、ステップＳ１１において実行される学習処理について説明を加える。ステップＳ３１において、フレームメモリ２２，２３から画像データが読み出される。フレームメモリ２２から読み出されるのは、入力される画像データより１フレーム前の画像データであり、フレームメモリ２３から読み出されるのは、入力される画像データより２フレーム前の画像データである。
【０１５０】
ステップＳ３２において、フレームメモリ２２，２３からそれぞれ読み出されたフレームの画像データが用いられ、動きベクトルが算出される。ステップＳ３３において、算出（検出）された動きベクトルが用いられ、注目画素（処理対象とされている画素）に対する画素（タップ）の画素データが取得される。例えば、注目画素の近傍に位置する複数個の画素の画素データが取得される。
【０１５１】
次にステップＳ３４において、ステップＳ３３で取得された画素データからクラスが算出される。ステップＳ３５において、注目画素に対して、予測誤差が最小となるような学習が行われ、正規方程式が生成される。ステップＳ３６において、全ての画素に対して学習処理が終了したか否かが判断される。ステップＳ３６において、全ての画素に対して学習は終了してないと判断された場合、ステップＳ３２に処理が戻され、それ以降の処理が繰り返される。
【０１５２】
一方、ステップＳ３６において、全ての画素に対して学習が終了されたと判断された場合、ステップＳ３７に処理が進められる。ステップＳ３７において、ステップＳ３５において生成された正規方程式が解法され、係数データが算出され、記憶される。そして、ステップＳ３８において、学習によって算出された動きベクトルの分布から、動きベクトルに対する符号割当が行われ、その符号割当が記憶される。このようにして、係数データと動きベクトルの符号割当が学習され、記憶される。
【０１５３】
このような学習の処理が行われると共に、ステップＳ１２における予測処理も行われる。ステップＳ１２における予測処理について、図１７のフローチャートを参照して説明する。
【０１５４】
ステップＳ５１において、フレームメモリ２２，２３から画像データが読み出される。ステップＳ５２において、フレームメモリ２２，２３から読み出された画像データが用いられ、動きベクトルが検出される。ステップＳ５３において、ステップＳ５２において検出された動きベクトルが用いられて、注目画素に対する所定の画素（タップ）の画素データが取得される。
【０１５５】
ステップＳ５４において、ステップＳ５３において取得された画素データから、クラスが算出（生成）される。ステップＳ５５において、ステップＳ５３において取得された画素データとステップＳ３７（図１６）において生成された係数データとから、予測値が生成される。ステップＳ５６において、注目画素の画素値と予測値との残差が算出される。ステップＳ５７において、全ての画素に対して予測処理が終了したか否かが判断される。
【０１５６】
ステップＳ５７において、全ての画素に対して予測処理は終了されていないと判断された場合、ステップＳ５２に戻り、それ以降の処理が繰り返される。一方、ステップＳ５７において、全ての画素に対して予測処理は終了されたと判断された場合、ステップＳ５８に処理が進められる。
【０１５７】
ステップＳ５８において、クラス毎に蓄積された残差の分布データから、クラス毎の残差の符号割当が行われ、その符号割当が記憶される。
【０１５８】
このようにして、予測処理が行われていると共に、ステップＳ１３における注目フレームに対する符号化の処理も実行されている。ステップＳ１３における符号化処理について、図１８のフローチャートの処理を参照して説明する。
【０１５９】
ステップＳ７１において、処理対象とされるフレームの画像データが入力（取得）される。ステップＳ７２において、入力されたフレームと、フレームメモリ２２に記憶されているフレームとから、動きベクトルが検出される。ステップＳ７３において、ステップＳ７２で検出された動きベクトルを用いて、注目画素に対する所定の画素の画素データを取得する。ステップＳ７４において、ステップＳ７３で取得された画素データからクラスが算出される。
【０１６０】
次にステップＳ７４において、注目画素に対して、ステップＳ７３において取得された画素データとステップＳ３７（図１６）において生成された係数データとから、予測値が生成される。ステップＳ７６において、注目画素の画素値（真値）と予測値との残差が算出される。ステップＳ７７において、ステップＳ５８（図１７）において決定された符号割当が用いられて、残差の符号化が行われる。
【０１６１】
ステップＳ７８において、全ての画素に対して残差の符号化処理が終了されたか否かが判断される。ステップＳ７８において、全ての画素に対して残差の符号化処理が終了していないと判断された場合、ステップＳ７２に戻り、それ以降の処理が繰り返される。一方、ステップＳ７８において、全ての画素に対して予測処理が終了したと判断された場合、ステップＳ７９において、ステップＳ３８（図１６）において決定された符合割当が用いられ、動きベクトルの符号化が行われる。
【０１６２】
このように、本実施の形態における符号化においては、第１のフレーム（例えば、図１のフレームメモリ２３に記憶されているフレーム）から第２のフレーム（例えば、図１のフレームメモリ２２に記憶されているフレーム）が予測され、その予測に基づき予測係数が算出される。また、算出された予測係数と第３のフレーム（この場合、第２のフレームと同様にすることができ、例えば、フレームメモリ２２に記憶されているフレームとすることができる）が用いられ、予測画像が生成される。
【０１６３】
そして、その生成された予測画像と符号化対象とされている現フレームとの残差が算出され、その残差が、復号側に符号化されて送信される。次に、このような符号化された残差と動きベクトルが供給される復号化装置について説明する。
【０１６４】
［復号化装置の構成について］
図１９は、本発明を適用した復号化装置の一実施の形態の構成を示す図である。図１９に示した復号化装置３１０は、入力端子３２１、フレームメモリ３２２、フレームメモリ３２３、ブロック化部３２４、動きベクトル検出部３２５、タップ選択部３２６、クラス検出部３２７、動きベクトル符号割当部３２８、正規方程式生成部３２９、係数決定部３３０、ブロック化部３３１、動きベクトル検出部３３２、タップ選択部３３３、クラス検出部３３４、係数メモリ３３５、予測演算部３３６、残差分布生成部３３７、残差符号割当部３３８、データ分解部３３９、動きベクトル復号化部３４０、タップ選択部３４１、クラス検出部３４２、予測演算部３４３、残差加算部３４４、ブロック分解部３４５、残差復号化部３４６、および出力端子３４７を含む構成とされる。
【０１６５】
復号装置３１０を構成するこれらの各部における動作や、その動作により生成されるデータなどについては後述する。まずここでは、復号化装置３１０内のデータの流れについて説明する。
【０１６６】
入力端子３２１に入力されたデータは、データ分解部３３９に供給される。データ分解部３３９からのデータは、動きベクトル復号化部３４０と残差復号化部３４６に、それぞれ供給される。動きベクトル復号化部３４０からのデータは、タップ選択部３４１に供給される。タップ選択部３４１からのデータは、クラス検出部３４２と予測演算部３４３に、それぞれ供給される。クラス検出部３４２からのデータは、係数メモリ３３５と残差復号化部３４６に、それぞれ供給される。
【０１６７】
予測演算部３４３からのデータは、残差加算部３４４に供給される。残差加算部３４４からのデータは、ブロック分解部３４５に供給される。ブロック分解部３４５からのデータは、フレームメモリ３２２、タップ選択部３４１、および出力端子３４７に供給される。残差復号化部３４６からのデータは、残差加算部３４４に供給される。
【０１６８】
フレームメモリ３２２からのデータは、フレームメモリ３２３、ブロック化部３２４、ブロック化部３３１、およびタップ選択部３４１に、それぞれ供給される。フレームメモリ３２３からのデータは、動きベクトル検出部３２５、タップ選択部３２６、動きベクトル検出部３３２、およびタップ選択部３３３に、それぞれ供給される。
【０１６９】
ブロック化部３２４からのデータは、動きベクトル検出部３２５、タップ選択部３２６、および正規方程式生成部３２９に、それぞれ供給される。動きベクトル検出部３２５からのデータは、タップ選択部３２６と動きベクトル符号割当部３２８に、それぞれ供給される。タップ選択部３２６からのデータは、クラス検出部３２７と正規方程式生成部３２９に、それぞれ供給される。クラス検出部３２７からのデータは、正規方程式生成部３２９に供給される。
【０１７０】
動きベクトル符号割当部３２８からのデータは、動きベクトル復号化部３４０に供給される。正規方程式生成部３２９からのデータは、係数決定部３３０に供給される。係数決定部３３０からのデータは、係数メモリ３３５に供給される。
【０１７１】
ブロック化部３３１からのデータは、動きベクトル検出部３３２、タップ選択部３３３、および残差分布生成部３３７に、それぞれ供給される。動きベクトル検出部３３２からのデータは、タップ選択部３３３に供給される。タップ選択部３３３からのデータは、クラス検出部３３４と予測演算部３３６に、それぞれ供給される。クラス検出部３３４からのデータは、係数メモリ３３５と残差分布生成部３３７に供給される。
【０１７２】
係数メモリ３３５からのデータは、予測演算部３３６と予測演算部３４３に、それぞれ供給される。予測演算部３３６からのデータは、残差分布生成部３３７に供給される。全差分布生成部３３７からのデータは、残差符号割当部３３８に供給される。残差符号割当部３３８からのデータは、残差復号化部３４６に供給される。
【０１７３】
このように、図１９に示した復号化装置３１０においては、データが供給される。
【０１７４】
このような各部を含み、データが流される復号化装置３１０は、その構成を大きく分類すると、図２０に示すように学習部３６１、予測部３６２、および復号化部３６３に分類することができる。学習部３６１は、主に、ブロック化部３２４、動きベクトル検出部３２５、タップ選択部３２６、クラス検出部３２７、動きベクトル符号割当部３２８、正規方程式生成部３２９、係数決定部３３０を含む構成とされる。すなわち、図１９において、図中左上側に図示した部分が、主に学習部３６１による学習を実行する部分である。
【０１７５】
予測部３６２は、主に、ブロック化部３３１、動きベクトル検出部３３２、タップ選択部３３３、クラス検出部３３４、係数メモリ３３５、予測演算部３３６、残差分布生成部３３７、残差符号割当部３３８を含む構成とされる。すなわち、図１９において、図中右上側に図示した部分が、主に予測部３６２による予測を実行する部分である。
【０１７６】
復号化部３６３は、主に、データ分解部３３９、動きベクトル復号化部３４０、タップ選択部３４１、クラス検出部３４２、予測演算部３４３、残差加算部３４４、ブロック分解部３４５、残差復号化部３４６を含む構成とされる。すなわち、図１９において、図中下側に図示した部分が、主に復号化部３６３による復号化を実行する部分である。
【０１７７】
次に、図１９に示した復号化装置３１０を構成する各部が行う処理について説明する。
【０１７８】
復号化装置３１０は、図１９に示したように、フレームメモリ３２２とフレームメモリ３２３を含む構成とされている。フレームメモリ３２２は、入力端子３２１に入力された符号化されている画像信号Vcdより、１フレーム前の復号化済みの画像信号（フレーム）を保持する。フレームメモリ３２３は、入力端子３２１に入力された画像信号Vcdより２フレーム前の復号化済みの画像信号（フレーム）を保持する。
【０１７９】
以下、入力端子３２１に入力され、復号化の対象となるフレームをフレームＮとし、フレームメモリ３２２に記憶されるフレームをフレームＮ−１とし、フレームメモリ３２３に記憶されるフレームをフレームＮ−２とする。また、入力端子３２１に入力され、復号化の対象とされるフレームを注目フレームと記述する。
【０１８０】
ブロック化部３２４は、フレームメモリ３２２に記憶されているフレームを、所定の大きさの複数のブロックに分割する。ブロック化部３２４は、図１に示した符号化装置１０のブロック化部２４と同様の処理によりブロック化を行う。すなわち、図３を参照して説明したように、ブロック化部３２４は、フレームメモリ３２２に記憶されている１フレーム分の画像データ（有効画面を構成する画面の画像データ）を、水平方向８画素、垂直方向８画素で構成される６４画素毎のブロック（図３において、線で囲んだ部分）に分割する。
【０１８１】
ここでは、このように、１ブロックは８×８の６４画素で構成されるとして説明を続けるが、他の画素数で構成されるようにしても良い。ブロック化部３２４によりブロック化されたフレームＮ―１からのブロックは、動きベクトル検出部３２５に供給される。
【０１８２】
動きベクトル検出部３２５には、ブロック化部３２４によりブロック化されたフレームＮ−１と、フレームメモリ３２３に記録されているフレームＮ−２とが供給される。動きベクトル検出部３２５は、ブロック化部３２４から供給される所定のフレームＮ−１の所定の領域のブロックに対して、フレームメモリ３２３に記憶されているフレームＮ―２から動きベクトルを検出する。この動きベクトルの検出は、図１に示した符号化装置１０の動きベクトル検出部２５と同様の処理により行われるので、その説明は省略する。
【０１８３】
動きベクトル検出部３２５により検出された動きベクトルは、タップ選択部３２６と動きベクトル符号割当部３２８に供給される。タップ選択部３２６は、フレームメモリ３２３からフレームＮ−２、ブロック化部３２４によりブロック化されたブロック、および、動きベクトル検出部３２５により検出された動きベクトルが供給される。タップ選択部３２６は、図１の符号化装置１０のタップ検出部２６と同様の処理により、所定の画素（その画素の画素データ）を選択（抽出）する処理を実行する。
【０１８４】
タップ選択部３２６により抽出された画素の画素データは、クラス検出部３２７と正規方程式生成部３２９に供給される。クラス検出部３２７は、タップ選択部３２７で抽出された画素データから、画素の特徴量によりクラスを生成（分類）する。クラス検出部３２７は、図１の符号化装置１０のクラス検出部２７と同様の処理により、例えば、ＡＤＲＣ（Adaptive Dynamic Range Coding）の処理を、抽出された画素データに対して施し、画素データに対応するクラスを生成する。クラス検出部３２７により検出されたクラスは、正規方程式生成部３２９に供給される。
【０１８５】
正規方程式生成部３２９は、ブロック化部３２４からの注目ブロック、タップ選択部３２６で抽出された画素データ、およびクラス検出部３２７で算出されたクラスから、学習によって正規方程式を生成する。この生成は、図１の正規方程式生成部２９と同様に行われるため、その説明は省略する。
【０１８６】
係数決定部３３０は、正規方程式生成部３２９で生成された正規方程式を掃き出し法（Gauss-Jordanの消去法）等を用いて、予測係数ｗi（式（７））について解き、係数データを算出する。係数メモリ３３５は、係数決定部３３０で生成されたクラス毎の係数データを保持する。
【０１８７】
動きベクトル符号割当部３２８は、ブロック化部３２４で分割された全てのブロックについて、動きベクトル検出部３２５で検出される動きベクトルを蓄積している。そして動きベクトルの分布から、動きベクトルに対する符号割当を、例えばハフマン符号を用いて行うことによって行う。
【０１８８】
ブロック化部３３１は、ブロック化部３２４と同様の処理を実行する。すなわちこの場合、ブロック化部３３１は、フレームメモリ３２２に記憶されているフレームＮ−１を、６４画素を１ブロックとするブロックに分割する（すなわち、ブロック化部３２４と同一のフレームＮ−１を、同じようにブロック化する）。ブロック化部３３１からのブロックは、動きベクトル検出部３３２とタップ選択部３３３に供給される。
【０１８９】
動きベクトル検出部３３２は、動きベクトル検出部３２５と同様の処理により、ブロック化部３３１によりブロック化されたブロックと、フレームメモリ３２３に記憶されているフレームとを用いて、動きベクトルを検出する。動きベクトル検出部３３２により検出された動きベクトルは、タップ選択部３３３に供給される。
【０１９０】
タップ選択部３３３は、タップ選択部３２６と同様の処理により、ブロック化部３３１から供給される注目ブロック、フレームメモリ３２３に記憶されているフレームＮ−２、および、動きベクトル検出部３２５で検出された動きベクトルを用いて、所定の画素（画素データ）を抽出する。タップ選択部３３３により抽出された画素の画素データは、クラス検出部３３４と予測演算部３３６に供給される。
【０１９１】
クラス検出部３３４は、クラス検出部３２７と同様な処理を実行することにより、クラスを生成（分類）する。クラス検出部３３４により生成されたクラスは、係数メモリ３３５に供給され、記憶されるとともに、残差分布生成部３３７にも供給される。
【０１９２】
予測演算部３３６は、図１の符号化装置１０における予測演算部３６と同様の処理により、クラス検出部３３４から得られるクラスに対応して係数メモリ３３５から読み出され、供給される係数データと、タップ選択部３３３から供給される画素データを用いて、式（７）に基づく予測演算を行い、予測値ｙ’を算出する。式（７）においてｘiは、タップ選択部３３３から供給される画素データを表し、ｗiは、係数メモリ３３５から供給される係数データを表している。
【０１９３】
残差分布生成部３３７は、図１の符号化装置１０における残差分布生成部３７と同様の処理により、例えば、図７に示したように、ブロック化部３３１から供給される注目画素の値と、予測演算部３３６から供給される予測値との残差を算出し、クラス毎に残差の分布を蓄積する。
【０１９４】
残差符号割当部３３８は、図１の符号化装置１０における残差符号割当部３８と同様の処理により、残差分布生成部３３７に蓄積されているクラス毎の残差分布から、クラス毎の残差の符号割当を、例えば、ハフマン符号を用いて行う。これにより、クラス毎の残差分布に対応した符号割当が行われる。
【０１９５】
フレームメモリ３２２乃至残差符号割当部３３８の構成、および処理は、符号化装置１０のフレームメモリ２２乃至残差符号割当部３８の構成、および処理と同様である。また、フレームメモリ３２２とフレームメモリ３２３に記憶されるフレームは、復号の対象とされているフレームをフレームＮとしたとき、フレームＮ−１とフレームＮ−２である。これは、符号化装置１０が、フレームＮを符号化するときにフレームメモリ２２とフレームメモリ２３に記憶されているフレームと同一である。
【０１９６】
すなわち、フレームメモリに記憶されているフレームが同一であり、同一の構成で同一の処理が実行されるため、クラス毎の残差分布に対応した符号割当も、同一の符号が割り当てられることになる。また、同様に、動きベクトル符号割当部３２８により割り当てられる符号も、符号化装置１０側と同一の符号が割り当てられることになる。さらに、同様に、係数メモリ３３５に記憶される係数データも、復号化装置１０側と同一の係数データが記憶されることになる。
【０１９７】
このように、符号化装置１０側と同一の状況が、復号化装置３１０側でも再現される。このような学習と予測が行われると、それらの結果が用いられ、復号化の処理が実行される。
【０１９８】
データ分解部３３９は、入力端子３２１を介して入力される画像信号Vcdを、符号化されている残差データVcdoと、符号化されている動きベクトルデータVcdmvに分解する。そして、分解された残差データVcdoは、残差復号化部３４６に、動きベクトルデータVcdmvは、動きベクトル復号化部３４０に、それぞれ供給される。
【０１９９】
動きベクトル復号化部３４０は、データ分解部３３９からの符号化されている動きベクトルデータVcdmvに対し、動きベクトル符号割当部３２８で決定される符号を用いて、復号化を行い、動きベクトルデータを生成、タップ選択部３４１に供給する。
【０２００】
タップ選択部３４１は、図１の符号化装置１０におけるタップ選択部４１と同様の処理により、所定の画素の画素データを抽出する。タップ選択部３４１は、例えば、図６に示すように、注目ブロック１０１と、フレームメモリ３２２に記憶されているフレームと動きベクトル復号化部３４０から供給される動きベクトルから求まる検出ブロック１０４から、注目ブロック１０１内の各画素に対して、所定の画素データ（図６の例では、抽出画素１３１乃至１３６，１４１乃至１４５の計１１個）を抽出する。
【０２０１】
なお、注目ブロック１０１内において、復号化処理はラスター走査順に行われるため、注目画素より上もしくは左に位置する画素は、既に復号化済みのもので、これらの位置に存在する画素は、ブロック分解部３４５より供給される。
【０２０２】
クラス検出部３４２は、図１の符号化装置１０におけるクラス検出部４２と同様の処理により、タップ選択部３４１で抽出された画素データを用いて、画素の特徴量でクラス分けを行う。クラス検出部３４２は、クラス検出部３２７と同様の構成とされる。
【０２０３】
予測演算部３４３は、クラス検出部３４２から得られるクラスに対応して係数メモリ３３５から読み出される係数データと、タップ選択部３４１から得られる画素データとで、式（８）に基づく予測演算を行い、予測値y’を算出し、残差加算部３４４に供給する。
【０２０４】
残差加算部３４４は、残差復号化部３４６から供給される残差データの値と、予測演算部３４３から供給される予測値とを加算する。加算された値は、ブロック分解部３４５に供給される。ブロック分解部３４５は、残差加算部３４４から供給される注目画素の画素データを所定の位置に戻す。
【０２０５】
ここで復号化済みの画素データは、注目画素が次の位置の画素に移った場合に、復号化処理に利用するため、復号化が済むとタップ選択部３４１に順次供給される。また入力端子３２１に入力される符号化画像信号Vcdについて処理が完了した時点で、フレームメモリ３２２の内容がフレームメモリ３２３に上書きされ、ブロック分解部３４５で復号化された画像信号の内容がフレームメモリ３２２に上書きされる。
【０２０６】
また、ブロック分解部３４５からの出力は、復号化された画像信号として出力端子３４７に供給される。
【０２０７】
入力端子３２１に入力される符号化画像信号Vcdとして１番目に入力されたフレーム、もしくは２番目に入力されたフレームの場合、フレームメモリ３２２やフレームメモリ３２３に、フレームが記録されていない状態なので、上記したような復号化の処理を実行することができない。よって、入力端子３２１に入力された１番目のフレームと２番目のフレームは、上記した復号化とは別に、符号化装置１０側で用いられた可逆符号化に対応する復号化処理が用いられて復号化される。
【０２０８】
また正規方程式生成部３２９、残差分布生成部３３７、および動きベクトル符号割当部３２８は、初期値として、符号化装置１０の正規方程式生成部２９、残差分布生成部３７、および動きベクトル符号割当部２８に記憶されている初期値と全く同じデータが保持されている。すなわち、図８乃至１３を参照して説明したような初期値が記憶されている。また、図８乃至１３を参照して説明したように、処理が進むにつれて、記憶されている初期値に順次、処理されたデータが追加される。また、データ追加されるとともに、削除されるという処理も符号化装置１０側と同様に行われる。
【０２０９】
上述した復号化装置３１０を構成する各部で実行される処理は、専用のハードウェアで実行されるようにしても良いし、ソフトウェアで実行されるようにしても良い。ソフトウェアで実行されるようにした場合、例えば、図１４に示したような構成を有するパーソナルコンピュータ２００で、上述したような復号化を実行させることが可能である。
【０２１０】
図１４に示したような構成を有するパーソナルコンピュータ２００において、上述したような復号化処理が行われる場合、記憶部２０８やＲＯＭ２０２に記憶されているプログラムが起動され、その起動されたプログラムに基づく処理をＣＰＵ２０１が実行することにより復号化の処理が行われる。すなわち、図１９に示した復号化装置３１０内の各部は、ＣＰＵ２０１がプログラムに基づく処理を実行することにより実現される機能である。ただし、フレームメモリ３２２とフレームメモリ３２３は、ＲＡＭ２０３や記憶部２０８により実現される機能である。
【０２１１】
図１９に示した復号化装置３１０をハードウェアで実現したとき、またはソフトウェアで実現したときの復号化の手順について、図２１乃至図２４のフローチャートを参照して説明する。
【０２１２】
ステップＳ１１１において、学習処理が行われる。この学習処理の詳細は、図２２のフローチャートを参照して説明する。ステップＳ１１２において、予測処理が行われる。この予測処理の詳細については、図２３のフローチャートを参照して説明する。ステップＳ１１３において、復号化処理が行われる。この復号化処理の詳細については、図２４のフローチャートを参照して説明する。
【０２１３】
ステップＳ１１４において、処理が終了したか否かが判断される。処理が終了されたと判断されるのは、例えば、符号化されている画像データ（画像信号）が入力されなくなったときである。ステップＳ１１４において、処理は終了していないと判断された場合、ステップＳ１１５に処理が進められる。ステップＳ１１５において、フレームメモリ３２２，３２３に記憶されている画像データが書き換えられる。
【０２１４】
すなわち、処理対象とされていたフレームが、フレームメモリ２２に記憶され、フレームメモリ３２２に記憶されていたフレームが、フレームメモリ３２３に記憶されることにより、フレームメモリ３２２とフレームメモリ３２３に、それぞれ記憶されている画像データの書き換えが行われる。
【０２１５】
フレームメモリ３２２，３２３の画像データの書き換えが終了されると、ステップＳ１１１に戻り、それ以降の処理が繰り返される。
【０２１６】
図２２のフローチャートを参照し、ステップＳ１１１において実行される学習処理について説明を加える。ステップＳ１３１において、フレームメモリ３２２，３２３から画像データが読み出される。フレームメモリ３２２から読み出されるのは、入力端子３２１に入力される符号化画像信号Vcdより１フレーム前のフレームであり、既に復号化済みのフレームであり、フレームメモリ３２３から読み出されるフレーム（画像データ）は、符号化画像信号Vcdの２フレーム前のフレームであり、既に復号化済みのフレーム（画像データ）である。
【０２１７】
ステップＳ１３２において、フレームメモリ３２２，３２３からそれぞれ読み出されたフレームの画像データが用いられ、動きベクトルが算出される。ステップＳ１３３において、算出（検出）された動きベクトルが用いられ、注目画素（処理対象とされている画素）に対する画素（タップ）の画素データが取得される。例えば、注目画素の近傍に位置する複数個の画素の画素データが取得される。
【０２１８】
次にステップＳ１３４において、ステップＳ１３３で取得された画素データからクラスが算出される。ステップＳ１３５において、注目画素に対して、予測誤差が最小となるような学習が行われ、正規方程式が生成される。ステップＳ１３６において、全ての画素に対して学習処理が終了したか否かが判断される。ステップＳ１３６において、全ての画素に対しては学習が終了してないと判断された場合、ステップＳ１３２に処理が戻され、それ以降の処理が繰り返される。
【０２１９】
一方、ステップＳ１３６において、全ての画素に対して学習の処理が終了されたと判断された場合、ステップＳ１３７に処理が進められる。ステップＳ１３７において、ステップＳ１３５において生成された正規方程式が解法され、係数データが算出される。そして、ステップＳ１３８において、学習によって算出された動きベクトルの分布から、動きベクトルに対する符号割当が行われる。
【０２２０】
この図２２のフローチャートを参照して説明した学習処理は、図１６のフローチャートを参照して説明した学習処理と同様に行われる。図２２のフローチャートに基づく学習処理は、復号化装置３１０で行われる学習処理であるが、その学習処理は、符号化装置１０で行われる学習処理と同様に行われる。よって、学習の結果、取得される係数データや動きベクトルに対する符号割当は、同一のフレームを処理するときには、符号化装置１０と復号化装置３１０で同一のものとされる。すなわち、符号化装置１０側の状況が、復号化装置３１０側で再現されることが可能となる。このことは、同一のデータを生成する（復号する）ことが可能であることを意味している。
【０２２１】
このような学習の処理が行われると共に、ステップＳ１１２における予測処理も行われる。ステップＳ１１２における予測処理について、図２３のフローチャートを参照して説明する。
【０２２２】
ステップＳ１５１において、フレームメモリ３２２，３２３から画像データが読み出される。ステップＳ１５２において、フレームメモリ３２２，３２３から読み出された画像データが用いられ、動きベクトルが検出される。ステップＳ１５３において、ステップＳ１５２において検出された動きベクトルが用いられて、注目画素に対する所定の画素（タップ）の画素データが取得される。
【０２２３】
ステップＳ１５４において、ステップＳ１５３において取得された画素データから、クラスが算出（生成）される。ステップＳ１５５において、ステップＳ１１３において取得された画素データとステップＳ１３７（図２２）において生成された係数データとから、予測値が生成される。ステップＳ１５６において、注目画素の画素値と予測値との残差が算出される。ステップＳ１５７において、全ての画素に対して予測処理が終了したか否かが判断される。
【０２２４】
ステップＳ１５７において、全ての画素に対して予測処理は終了されていないと判断された場合、ステップＳ１５２に戻り、それ以降の処理が繰り返される。一方、ステップＳ１５７において、全ての画素に対して予測処理は終了されたと判断された場合、ステップＳ１５８に処理が進められる。
【０２２５】
ステップＳ１５８において、クラス毎に蓄積された残差の分布データから、クラス毎の残差の符号割当が行われる。
【０２２６】
この図２３のフローチャートを参照して説明した予測処理は、図１７のフローチャートを参照して説明した予測処理と同様に行われる。図２３のフローチャートに基づく予測処理は、復号化装置３１０で行われる予測処理であるが、その予測処理は、符号化装置１０で行われる予測処理と同様に行われる。よって、予測の結果、取得されるクラス毎の残差の符号割当は、同一のフレームを処理するときには、符号化装置１０と復号化装置３１０で同一のものとされる。すなわち、符号化装置１０側の状況が、復号化装置３１０側で再現されることが可能となる。このことは、同一のデータを生成する（復号する）ことが可能であることを意味している。
【０２２７】
このようにして、予測処理が行われていると共に、ステップＳ１１３における注目フレームに対する復号化の処理も実行されている。ステップＳ１１３における復号化処理について、図２４のフローチャートの処理を参照して説明する。
【０２２８】
ステップＳ１７１において、処理対象とされるフレームの画像データが入力（取得）される。ステップＳ１７２において、ステップＳ１３８（図２２）で決定された動きベクトルの符号割当から、動きベクトルのデータが復号される。ステップＳ１７３において、ステップＳ１７２で復号された動きベクトルが用いられて、注目画素に対する所定の画素の画素データが取得される。ステップＳ１７４において、ステップＳ１７３で取得された画素データからクラスが算出される。
【０２２９】
次にステップＳ１７４において、注目画素に対して、ステップＳ１７３で取得した画素データとステップＳ１３７（図２２）で生成した係数データとから、予測値が生成される。ステップＳ１７６において、ステップＳ１５８（図２３）で決定された符号割当が用いられて、残差の復号化が行われる。ステップＳ１７７で、ステップＳ１７５で生成された予測値と、ステップＳ１７６で復号化された残差が加算される。
【０２３０】
ステップＳ１７４において生成される予測値は、符号化装置１０側で予測された予測値と同一の値である。なぜならば、上記したように、学習処理や予測処理において算出される値（予測値を算出するときに用いられる値）は、符号化装置１０側と同一の値であるからである。そのような予測値に、残差を加算することにより、符号化装置１０で符号化される前の画素値（真値）を算出することができる。すなわち、符号化される前のデータと同一のデータを復号化できることになる。
【０２３１】
ステップＳ１７８において、全ての画素に対して残差の復号化処理が終了されたか否かが判断される。ステップＳ１７８において、全ての画素に対して残差の復号化処理が終了していないと判断された場合、ステップＳ１７２に戻り、それ以降の処理が繰り返される。一方、ステップＳ１７８において、全ての画素に対して復号化処理が終了したと判断された場合、ステップＳ１１４（図２１）に処理が進められる。
【０２３２】
このように、本実施の形態における復号化においては、符号化側で、符号化された残差と、符号化された動きベクトルが供給されことにより、復号化が行われる。
【０２３３】
このように、本実施の形態における復号化においては、第１のフレーム（例えば、図１９のフレームメモリ３２３に記憶されているフレーム）から第２のフレーム（例えば、図１９のフレームメモリ３２２に記憶されているフレーム）が予測され、その予測に基づき予測係数が算出される。また、算出された予測係数と第３のフレーム（この場合、第２のフレームと同様にすることができ、例えば、フレームメモリ３２２に記憶されているフレームとすることができる）が用いられ、予測画像が生成される。
【０２３４】
そして、その生成された予測画像に、符号化装置１０側から送信されてきた残差を復号したあと、加算することにより現フレームが復号される。
【０２３５】
このように本実施の形態においては、画像の特性に応じた予測が行われ、予測により生じる残差の分布に応じた符号割当が行われることにより、可逆符号化が実現される。そして符号化が実行される際、既に符号化されているフレームの情報が用いられて学習が行われ、予測係数が算出されるとともに、算出された予測係数で予測処理が行われた際の残差の分布から、残差の符号割当が行われる。処理対象とされる注目フレームの処理には、既に算出されている予測係数で予測処理が行われ、残差も同様に既に符号割当がされている符号で符号化されることで、予測係数と符号割当の情報を送信せずに復号側で、復号化が行える。すなわち、復号側に送信する情報が少なくても、可逆符号化を実現することが可能となる。
【実施例２】
【０２３６】
実施例１と同じく、過去のフレームを用いて符号化を行い、復号化されているフレームを用いて復号化を行うことにより、符号化、復号化を行う実施例１とは異なる形態について説明する。
【０２３７】
［符号化装置の構成および動作について］
図２５は、実施例２における符号化装置の構成例を示す図である。図２５に示した符号化装置４１０は、残差演算部４１１、線形予測部４１２、記憶部４１３、予測係数算出部４１５から構成される。記憶部４１３は、フレームメモリ４１４−１乃至４１４−４を備える構成とされている。すなわち図２５に示した符号化装置４１０は、４枚のフレームを記憶する構成とされている。
【０２３８】
図２５に示した符号化装置４１０におけるデータの流れについて説明する。処理するフレーム（符号化対象とされるフレーム）の画像データは、残差演算部４１１と記憶部４１３のうちのフレームメモリ４１４−１乃至４１４−４のうちの、いずれかのフレームメモリ４１４に供給される。ただし、ここでは、符号化が終了した時点で、フレームメモリ４１４−１乃至４１４−４内のフレームが書き換えられるとして説明し、処理対象とされるフレームより過去のフレームが、フレームメモリ４１４−１乃至４１４−４に記憶されるとして説明を続ける。
【０２３９】
また、処理対象とされるフレームを注目フレームと記述し、フレームＮと記述する。フレームメモリ４１４−１には、フレームＮより１フレーム前のフレームであるフレームＮ−１が記憶される。フレームメモリ４１４−２には、フレームＮより２フレーム前のフレームであるフレームＮ−２が記憶される。フレームメモリ４１４−３には、フレームＮより３フレーム前のフレームであるフレームＮ−３が記憶される。フレームメモリ４１４−４には、フレームＮより４フレーム前のフレームであるフレームＮ−４が記憶される。
【０２４０】
記憶部４１３に記憶されたフレームは、線形予測部４１２と予測係数算出部４１５に、必要に応じ供給される。線形予測部４１２には、フレームメモリ４１４−１乃至４１４−３からのデータが供給され、予測係数算出部４１５には、フレームメモリ４１４−１乃至４１４−４からのデータが供給される。
【０２４１】
予測係数算出部４１５からのデータは、線形予測部４１２に供給される。線形予測部４１２からのデータは、残差演算部４１１に供給される。残差演算部４１１からのデータは、図示されていない他の部（装置）に対して供給される。
【０２４２】
このような構成を有し、データが流される符号化装置４１０において行われる符号化について、図２６を参照して説明する。
【０２４３】
フレームメモリ４１４−１乃至４１４−４には、それぞれフレームＮ−１乃至Ｎ−４が記録されている。フレームＮ−１の所定の画素の画素値を画素値ｘ1とし、フレームＮ−２の所定の画素の画素値を画素値ｘ2とし、フレームＮ−３の所定の画素の画素値を画素値ｘ3とし、フレームＮ−４の所定の画素の画素値を画素値ｘ4とする。また、注目フレームＮの所定の画素の画素値を画素値ｘ0とする。
【０２４４】
画素値ｘ0、画素値ｘ1、画素値ｘ2、画素値ｘ3、画素値ｘ4は、それぞれのフレーム内における位置が同一の位置（同じ座標）に存在する画素である。
【０２４５】
フレームＮ−１乃至フレームＮ−４（すなわち、フレームメモリ４１４−１乃至４１４−４に記憶されているフレーム）が用いられ、予測係数が算出され、その予測係数とフレームＮ−１乃至フレームＮ−３が用いられ、注目フレームＮが予測される。
【０２４６】
予測係数は、次式（９）に基づいて算出される。
ｘ1＝ａ4ｘ4＋ａ3ｘ3＋ａ2ｘ2      ・・・（９）
式（９）において、ａ4，ａ3，ａ2が予測係数である。この式（９）（この場合、線形一時式）を満たす予測係数が算出される。すなわち、予測係数は、フレームＮ−４乃至Ｎ−２から、フレームＮ−１を予測したときの係数である。
【０２４７】
この予測係数は、画素値x2、画素値x3、画素値x4、あるいは過去のフレームのその他の画素値から得られる特徴量（クラスコード）によって複数用意してもよい。例えば、画素値x2、画素値x3、画素値x4の平均値Ｍを算出し、以下の式を満たすクラスコードＣＬによって分類する（分類手法１）。ただしＣＬは整数で、画素値の取り得る値の範囲が０乃至２５５である場合、ＣＬは０乃至１５の範囲の整数となる。
１６×ＣＬ  ≦  Ｍ  ＜  １６×（ＣＬ＋１）
【０２４８】
また他の例としては、
Ｃ1  ＝  ｘ4 − ｘ3 ＋５
Ｃ2  ＝  ｘ3 − ｘ2 ＋５
とし、
ＣＬ  ＝  １１×Ｃ1 ＋ Ｃ2
によって得られるＣＬによって分類する（分類手法２）。ただし上記のＣ1、Ｃ2において、Ｃ1あるいはＣ2がマイナスになる場合は、Ｃ1あるいはＣ2は０とされる。またＣ1あるいはＣ2が１０より大きい場合は、Ｃ1あるいはＣ2は１０とされる。
【０２４９】
このように、図２６の上図に示したように、過去のフレームＮ−４乃至Ｎ−２の画素値ｘ4，ｘ3，ｘ2から、フレームＮ―１の画素値ｘ1が予測される。このようにして予測係数が求められると、その予測係数が用いられ、注目フレームＮの画素値ｘ0が予測される。その予測は、図２６の下図に示すように、フレームＮ―３乃至Ｎ−１の画素値ｘ3，ｘ2，ｘ1を用いられて、注目フレームＮの画素値ｘ0が、次式（１０）に基づき予測される。
ｘ0＝ａ4ｘ3＋ａ3ｘ2＋ａ2ｘ1      ・・・（１０）
【０２５０】
予測係数を特徴量（クラスコード）によって複数用意した場合は、過去フレームでの特徴量の算出と同様に、注目フレームでも特徴量が算出される。例えば上記、分類手法１で特徴量が算出されている場合、画素値x1、画素値x2、画素値x3の平均値Ｍが算出され、以下の式を満たすクラスコードＣＬによって分類される。ただしＣＬは整数で、画素値の取り得る値の範囲が０乃至２５５である場合、ＣＬは０乃至１５の範囲の整数となる。
１６×ＣＬ  ≦  Ｍ  ＜  １６×（ＣＬ＋１）
【０２５１】
また分類手法２で特徴量が算出される場合は、
Ｃ1  ＝  ｘ3 − ｘ2 ＋５
Ｃ2  ＝  ｘ2 − ｘ1 ＋５
とし、
ＣＬ  ＝  １１×Ｃ１ ＋ Ｃ２
によって得られるＣＬによって分類する。ただし上記のＣ1、Ｃ2において、Ｃ1あるいはＣ2がマイナスになる場合は、Ｃ1あるいはＣ2は０とされる。またＣ1あるいはＣ2が１０より大きい場合は、Ｃ1あるいはＣ2は１０とされる。そして算出された特徴量に応じた予測係数が用いられて予測が行われる。クラスコードＣＬは、予測係数同様、過去のフレームから算出しているため、別途復号側に送信する必要はない。
【０２５２】
このように、過去のフレームから予測係数を算出し、その予測係数を用いて、注目フレームが予測される。予測されたフレームと、実際のフレームとの残差が、符号化され、復号側に送信される。
【０２５３】
すなわち、実施例１の符号化装置１０における符号化と同じような処理が行われることにより符号化が行われる。例えば、実施例１においては、図２を参照するに、学習部６１は、予測係数を算出し、予測部６２は、予測係数を用いた予測を用い、符号化部６３は、予測された予測値と真値との残差を符号化した。実施例２における符号化装置４１０も、式（９）に基づき、予測係数を算出し、式（１０）に基づき、予測係数を用いて予測を行い、その予測された予想値と実際の値との残差を符号化する。
【０２５４】
このように、実施例２も、実施例１と同様に、学習、予測、符号化という処理を行う。
【０２５５】
このようにして、予測（符号化）を行う符号化装置４１０の動作について、図２７のフローチャートを参照して説明する。
【０２５６】
ステップＳ２１１において、予測係数算出部４１５により予測係数が算出される。図２６の上図を参照して説明したように行われる。すなわちこの場合、フレームメモリ４１４−４乃至４１４―２にそれぞれ記憶されているフレームＮ−４乃至Ｎ−２内の画素値が用いられ、フレームメモリ４１４−１に記憶されているフレームＮ−１の画素値が予測されることにより、予測係数が算出される。
【０２５７】
ステップＳ２１２において、線形予測部４１２は、注目フレームＮの処理対象となっている画素（注目画素）の予測値を算出する。この算出は、図２６の下図を参照して説明したように、ステップＳ２１１で算出された予測係数と、フレームメモリ４１４−１乃至４１４−３に記憶されているフレームＮ−１乃至Ｎ−３の画素値が用いられて、式（１０）に基づき算出される。算出される値を予測値と記述する。
【０２５８】
ステップＳ２１３において、残差演算部４１１により、真値と予測値との残差が算出される。真値とは、残差演算部４１１に入力される注目フレームＮ内の注目画素の値である。ステップＳ２１３においては、実際に入力された注目フレームＮ内の注目画素の値（真値）と、その真値と予測した予測値との残差が演算される。
【０２５９】
ステップＳ２１４において、ステップＳ２１３において算出された残差が、符号化され、図２５においては図示されていない他の装置などに送信される。
【０２６０】
ステップＳ２１５において、処理対象となっている注目フレームＮ内の全ての画素について、処理が終了したか否かが判断される。ステップＳ２１５において、全ての画素について処理が終了してはいないと判断された場合、ステップＳ２１１に処理が戻され、それ以降の処理が繰り返されることにより、注目フレームＮ内の全ての画素に対して、符号化処理が実行される。
【０２６１】
一方、ステップＳ２１５において、全画素について処理が終了したと判断された場合、ステップＳ２１６に処理が進められ、記憶部４３３に記憶されているフレームが更新される。すなわち、この場合、注目フレームＮが、フレームＮ−１としてフレームメモリ４１４−１に記憶され、フレームメモリ４１４−１に記憶されていたフレームＮ−１が、フレームＮ−２としてフレームメモリ４１４−２に記憶され、フレームメモリ４１４−２に記憶されていたフレームＮ−２が、フレームＮ−３としてフレームメモリ４１４−３に記憶され、フレームメモリ４１４−３に記憶されていたフレームＮ−３が、フレームＮ−４としてフレームメモリ４１４−４に記憶されといった処理が行われる。
【０２６２】
ステップＳ２１６の処理が終了されると、ステップＳ２１１に処理が戻され、それ以降の処理が繰り返される。このような符号化処理は、符号化の対象とされるフレームが入力されている間、繰り返し行われ、符号化の対象とされるフレームの入力が終了された時点で、割り込み処理として、符号化処理も終了される。
【０２６３】
なお、ここでは、このように、フレームメモリ４１４内のフレームが順次移動されることにより更新されるとして説明するが、最も古いフレームが削除され、その削除されたフレームが記憶されていたフレームメモリに、新たなフレームが記録されるようにしても良い。
【０２６４】
このように、本実施の形態における符号化においては、第１のフレーム（例えば、図２５のフレームメモリ４１４−２乃至４１４−４に記憶されているフレームＮ−２乃至Ｎ−４）から第２のフレーム（例えば、図２５のフレームメモリ４１４−１に記憶されているフレームＮ−１）が予測され、その予測に基づき予測係数が算出される。また、算出された予測係数と第３のフレーム（例えば、フレームメモリ４１４−１乃至４１４−３に記憶されているフレームＮ−１乃至Ｎ−３）が用いられ、予測画像が生成される。
【０２６５】
そして、その生成された予測画像と符号化対象とされている現フレーム（フレームＮ）との残差が算出され、その残差が、復号側に符号化されて送信される。
【０２６６】
このように、過去のフレームを用いて、予測係数を算出し、その予測係数を用いて処理対象とされているフレームが予測され、その予測された値と、実際の値との差分（残差）が取られ、その残差が符号化されて、復号側に送信される。この残差は、データ量としては大きくならないため、復号側に送信するデータ量が小さくなることを意味している。換言すれば、符号化における圧縮率を高めることが可能となる。
【０２６７】
［復号化装置の構成と動作について］
符号化装置４１０による符号化に対応する復号化を行う復号化装置について説明する。図２８は、復号化装置の構成例を示す図である。
【０２６８】
図２８に示した復号化装置４３０は、加算部４３１、線形予測部４３２、記憶部４３３、予測係数算出部４３５から構成される。記憶部４３３は、フレームメモリ４３４−１乃至４３４−４を備える構成とされている。すなわち図２８に示した復号化装置４３０は、４枚のフレームを記憶する構成とされている。
【０２６９】
図２８に示した復号化装置４３０におけるデータの流れについて説明する。処理するフレーム（復号化対象とされるフレーム）の画像データは、加算部４３１に供給される。記憶部４３３には、復号化が終了されたフレームが記憶される。
【０２７０】
ここでは、処理対象とされるフレームを注目フレームと記述し、フレームＮと記述する。フレームメモリ４３４−１には、フレームＮより１フレーム前のフレームであるフレームＮ−１が記憶される。フレームメモリ４３４−２には、フレームＮより２フレーム前のフレームであるフレームＮ−２が記憶される。フレームメモリ４３４−３には、フレームＮより３フレーム前のフレームであるフレームＮ−３が記憶される。フレームメモリ４３４−４には、フレームＮより４フレーム前のフレームであるフレームＮ−４が記憶される。
【０２７１】
記憶部４３３に記憶されたフレームは、線形予測部４３２と予測係数算出部４３５に、必要に応じ供給される。線形予測部４３２には、フレームメモリ４３４−１乃至４３４−３からのデータが供給され、予測係数算出部４３５には、フレームメモリ４３４−１乃至４３４−４からのデータが供給される。
【０２７２】
予測係数算出部４３５からのデータは、線形予測部４３２に供給される。線形予測部４３２からのデータは、加算部４３１に供給される。加算部４３１からのデータは、図示されていない他の部（装置）に対して供給される。また、加算部４３１からのデータ（すなわち、復号化されたデータ）は、記憶部４３３にも供給される。
【０２７３】
加算部４３１からのデータは、記憶部４３３のうちのフレームメモリ４３４−１乃至４３４−４のうちの、いずれかのフレームメモリ４３４に供給される。ただし、ここでは、復号化が終了した時点で、フレームメモリ４３４−１乃至４３４−４内のフレームが書き換えられるとして説明し、処理対象とされるフレームより過去のフレーム（既に復号化されているフレーム）が、フレームメモリ４３４−１乃至４３４−４に記憶されるとして説明を続ける。
【０２７４】
このような構成を有し、データが流される復号化装置４３０において行われる復号化について説明する。復号化装置４３０において行われる復号化は、復号化装置４１０において行われる符号化と類似している。すなわち、過去のフレーム（復号化されたフレーム）から予測係数を算出し、その予測係数を用いて、注目フレーム（復号化対象のフレーム）が予測される点が同じである。
【０２７５】
例えば、注目フレームＮ（符号化装置４１０における符号化の説明をしたときと同じ注目フレームＮであるとする）が復号されるときを例に挙げて説明する。注目フレームＮが復号されるときには、既に、復号化装置４３０には、復号されたフレームＮ−１乃至Ｎ−４が、フレームメモリ４３４−１乃至４３４−４に記憶されている状態である。すなわち、符号化装置４１０側で、注目フレームＮを符号化するときの状況と同じ状況である。
【０２７６】
よって、復号化装置４３０の予測係数算出部４３５で、フレームメモリ４３４−１乃至４３４−４に記憶されているフレームＮ−１乃至Ｎ−４を用いて算出される予測係数は、符号化装置４１０の予測係数算出部４１５で算出された予測係数と同一の値となる。そして、復号化装置４３０の線形予測部４３４で算出される予測値も、符号化装置４１０の線形予測部４３２で算出される予測値と同じになる。
【０２７７】
復号化装置４３０の加算部４３１には、符号化装置４１０側から、真値と予測値との残差が供給（送信）されてくる。そのような残差を、加算部４３１は、線形予測部４３２からの予測値に加算することにより、真値を算出する。このようにして、復号化が行われる。
【０２７８】
図２９のフローチャートを参照し、復号化装置４３０の動作について説明する。
【０２７９】
ステップＳ２３１において、予測係数算出部４３５により予測係数が算出される。この場合、フレームメモリ４３４−４乃至４３４―２にそれぞれ記憶されているフレームＮ−４乃至Ｎ−２内の画素値が用いられ、フレームメモリ４３４−１に記憶されているフレームＮ−１の画素値が予測されることにより、予測係数が算出される。
【０２８０】
ステップＳ２３２において、線形予測部４３２は、注目フレームＮの処理対象となっている画素（注目画素）の予測値を算出する。この算出は、ステップＳ２３１で算出された予測係数と、フレームメモリ４３４−１乃至４３４−３に記憶されているフレームＮ−１乃至Ｎ−３の画素値が用いられて、式（１０）に基づき算出される。算出される値を予測値と記述する。
【０２８１】
ステップＳ２３３において、加算部４３１により、符号化装置４１０側から送信されてきた符号化されている残差が復号される。ステップＳ２３４において、ステップＳ２３３において復号された残差が、ステップＳ２３２において算出された予測値に加算され、真値が算出（すなわち復号化）され、図２８においては図示されていない他の装置などに送信される。
【０２８２】
ステップＳ２３５において、処理対象となっている注目フレームＮ内の全ての画素について、処理が終了したか否かが（復号化されたか否かが）判断される。ステップＳ２３５において、全ての画素について処理が終了してはいないと判断された場合、ステップＳ２３１に処理が戻され、それ以降の処理が繰り返されることにより、注目フレームＮ内の全ての画素に対して、復号化処理が実行される。
【０２８３】
一方、ステップＳ２３５において、全画素について処理が終了したと判断された場合、ステップＳ２３６に処理が進められ、記憶部４３３に記憶されているフレームが更新される。すなわち、この場合、注目フレームＮが、フレームＮ−１としてフレームメモリ４３４−１に記憶され、フレームメモリ４３４−１に記憶されていたフレームＮ−１が、フレームＮ−２としてフレームメモリ４３４−２に記憶され、フレームメモリ４３４−２に記憶されていたフレームＮ−２が、フレームＮ−３としてフレームメモリ４３４−３に記憶され、フレームメモリ４３４−３に記憶されていたフレームＮ−３が、フレームＮ−４としてフレームメモリ４３４−４に記憶されといった処理が行われる。
【０２８４】
ステップＳ２３６の処理が終了されると、ステップＳ２３１に処理が戻され、それ以降の処理が繰り返される。このような復号化処理は、復号化の対象とされるフレームが入力されている間、繰り返し行われ、復号化の対象とされるフレームの入力が終了された時点で、割り込み処理として、復号化処理も終了される。
【０２８５】
なお、ここでは、このように、フレームメモリ４３４内のフレームが順次移動されることにより更新されるとして説明するが、最も古いフレームが削除され、その削除されたフレームが記憶されていたフレームメモリに、新たなフレームが記録されるようにしても良い。
【０２８６】
このように、本実施の形態における復号化においては、第１のフレーム（例えば、図２８のフレームメモリ４３４−２乃至４３４−４に記憶されているフレームＮ−２乃至Ｎ−４）から第２のフレーム（例えば、図２８のフレームメモリ４３４−１に記憶されているフレームＮ−１）が予測され、その予測に基づき予測係数が算出される。また、算出された予測係数と第３のフレーム（例えば、フレームメモリ４３４−１乃至４３４−３に記憶されているフレームＮ−１乃至Ｎ−３）が用いられ、予測画像が生成される。
【０２８７】
そして、その生成された予測画像に、符号化装置４１０から供給される、符号化されている残差を復号し、加算することにより、現フレーム（フレームＮ）が復号される。
【０２８８】
このように、過去のフレーム（復号化されたフレーム）を用いて、予測係数を算出し、その予測係数を用いて処理対象とされているフレームが予測され、その予測された値と、実際の値との差分（残差）を加算することにより復号化が行われる。この残差は、符号化装置側から送信されてくるが、その残差自体のデータ量は大きくないため、復号側に送信されてくるデータ量が小さくなることを意味している。換言すれば、符号化における圧縮率を高めることができ、かつ、復号化も行えることを示している。
【０２８９】
このような符号化および復号化を行うことにより、情報量を付加しなくても、微少な±１程度の変動も予測できるようになり、圧縮率を向上させることが可能となる。また、±１程度の変動も予測できるようになると、ホワイトノイズとして扱われてしまうようなノイズも除去できるようになる。
【０２９０】
また、図２５や図２８で示したように、符号化装置４１０や復号化装置４３０の構成は比較的簡易な構成とすることができ、既存の装置に組み込むことや、今後製造される装置に組み込むことが比較的容易であると考えられる。さらに、容易に組み込める構成であるにもかかわらず、その効果は、上記したような効果を得ることが可能となる。
【０２９１】
なお、上述した実施の形態においては、４枚のフレームを記憶する例を挙げて説明したが、４枚以外のフレーム（例えば、５枚とか６枚のフレーム）を記憶し、４枚以外のフレーム数を用いて予測係数や予測値が算出されるようにしても良い。また、予測係数や予測値を算出するために必要とされるフレーム数は、例えば、事前に最適なフレーム数（残差が小さくなるようなフレーム数）を実験的に求め、設定しておくようにしても良い。
【０２９２】
また、上述した実施の形態においては、過去のフレームから予測係数だけでなく、残差を符号化する際の符号割当を決定することも可能である。この場合、算出された予測係数による予測値と予測の対象となる画素との間で差分（残差）が算出され、残差の分布に応じて、例えばハフマン符号を用いて符号割当が決定される。そして決定された符合割当が用いられて、現フレームの残差に対して符号化が行われる。また予測係数が複数用いられる場合では、符号割当も予測係数毎に決定される。
【０２９３】
また、記憶するフレームを２枚にし、さらに予測係数が事前に設定されるようにしても良い。予測係数が1に設定された場合、注目フレームの１つ前のフレームの画素値が、そのまま予測値として用いられる（前置ホールド）ことになる。
【０２９４】
また、上述した実施の形態においては、４枚のフレームが記憶される例を挙げて説明したが、この例のように、４枚のフレームを記憶して処理を実行するようにした場合、符号化装置４１０や復号化装置４３０が、１乃至４番目までに入力されるフレームを処理するときには、記憶部４１３（記憶部４３３）には、処理を行うのに充分なフレームが記憶されていない状況であることになる。
【０２９５】
このような状況は、実施例１においても発生するため、実施例１においては、初期値を記憶することにより対処するとして説明した。実施例２においても、実施例２と同様に、初期値を記憶することにより、１乃至４番目に入力されるフレームを処理するようにしても良い。
【０２９６】
なお、実施例１と実施例２は、別々に設ける（異なる符号化装置や復号化装置として設ける）ようにすることができることは勿論であるが、同一の装置内に設けることも可能である（すなわち、実施例１で説明した符号化処理（復号処理）が行われると共に、実施例２で説明した符号化処理（復号処理）が行われるようにすることも可能である）。
【０２９７】
［記録媒体について］
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできることは既に説明した。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０２９８】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図１４に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ（Mini-Disc）を含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア２１１、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ２０２や、記憶部２０８を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部２０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０２９９】
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３００】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０３０１】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３０２】
【図１】本発明を適用した符号化装置の第１の実施の形態の構成を示す図である。
【図２】符号化装置の機能について説明する図である。
【図３】ブロック化について説明する図である。
【図４】サーチ範囲について説明する図である。
【図５】動きベクトルの検出について説明する図である。
【図６】タップについて説明する図である。
【図７】残差の分布について説明する図である。
【図８】動きベクトルに関する初期値について説明する図である。
【図９】動きベクトルに関する初期値について説明する図である。
【図１０】正規方程式に関する初期値について説明する図である。
【図１１】正規方程式に関する初期値について説明する図である。
【図１２】残差分布に関する初期値について説明する図である。
【図１３】残差分布に関する初期値について説明する図である。
【図１４】パーソナルコンピュータの構成例を示す図である。
【図１５】符号化装置の動作について説明するフローチャートである。
【図１６】学習処理について説明するフローチャートである。
【図１７】予測処理について説明するフローチャートである。
【図１８】符号化処理について説明するフローチャートである。
【図１９】復号化装置の構成例を示す図である。
【図２０】復号化装置の機能について説明する図である。
【図２１】復号化装置の動作について説明するフローチャートである。
【図２２】学習処理について説明するフローチャートである。
【図２３】予測処理について説明するフローチャートである。
【図２４】復号化処理について説明するフローチャートである。
【図２５】本発明を適用した符号化装置の第２の実施の形態の構成を示す図である。
【図２６】第２の実施の形態における符号化について説明する図である。
【図２７】符号化処理について説明するフローチャートである。
【図２８】復号化装置の構成例を示す図である。
【図２９】復号化処理について説明するフローチャートである。
【符号の説明】
【０３０３】
１０  符号化装置，  ２１  入力端子，  ２２，２３  フレームメモリ，  ２４  ブロック化部，  ２５  動きベクトル検出部，  ２６  タップ選択部，  ２７  クラス検出部，  ２８  動きベクトル符号割当部，  ２９  正規方程式生成部，  ３０  係数決定部，  ３１  ブロック化部，  ３２  動きベクトル検出部，  ３３  タップ選択部，  ３４  クラス検出部，  ３５  係数メモリ，  ３６  予測演算部，  ３７  残差分布生成部，  ３８  残差符号割当部，  ３９  ブロック化部，  ４０  動きベクトル検出部，  ４１  タップ選択部，  ４２  クラス検出部，  ４３  予測演算部，  ４４  残差算出部，  ４５  残差符号化部，  ４６  動きベクトル符号化部，  ６１  学習部，  ６２  予測部，  ６３  符号化部，  ３１０  復号化装置，  ３２１  入力端子，  ３２２，３２３  フレームメモリ，  ３２４  ブロック化部，  ３２５  動きベクトル検出部，  ３２６  タップ選択部，  ３２７  クラス検出部，  ３２８  動きベクトル符号割当部，  ３２９  正規方程式生成部，  ３３０  係数決定部，  ３３１  ブロック化部，  ３３２  動きベクトル検出部，  ３３３  タップ選択部，  ３３４  クラス検出部，  ３３５  係数メモリ，  ３３６  予測演算部，  ３３７  残差分布生成部，  ３３８  残差符号割当部，  ３３９  データ分解部，  ３４０  動きベクトル検出部，  ３４１  タップ選択部，  ３４２  クラス検出部，  ３４３  予測演算部，  ３４４  残差加算部，  ３４５  ブロック分解部，  ３４６  残差復号化部，  ４１０  符号化装置，  ４１１  残差演算部，  ４１２  線形予測部，  ４１３  記憶部，  ４１４  フレームメモリ，  ４１５  予測係数算出部，  ４３０  復号化装置，  ４３１  加算部，  ４３２  線形予測部，  ４３３  記憶部，  ４３４  フレームメモリ，  ４３５  予測係数算出部
【図１】
0004662171.tif 000009
【図２】
0004662171.tif 000010
【図３】
0004662171.tif 000011
【図４】
0004662171.tif 000012
【図５】
0004662171.tif 000013
【図６】
0004662171.tif 000014
【図７】
0004662171.tif 000015
【図８】
0004662171.tif 000016
【図９】
0004662171.tif 000017
【図１０】
0004662171.tif 000018
【図１１】
0004662171.tif 000019
【図１２】
0004662171.tif 000020
【図１３】
0004662171.tif 000021
【図１４】
0004662171.tif 000022
【図１５】
0004662171.tif 000023
【図１６】
0004662171.tif 000024
【図１７】
0004662171.tif 000025
【図１８】
0004662171.tif 000026
【図１９】
0004662171.tif 000027
【図２０】
0004662171.tif 000028
【図２１】
0004662171.tif 000029
【図２２】
0004662171.tif 000030
【図２３】
0004662171.tif 000031
【図２４】
0004662171.tif 000032
【図２５】
0004662171.tif 000033
【図２６】
0004662171.tif 000034
【図２７】
0004662171.tif 000035
【図２８】
0004662171.tif 000036
【図２９】
0004662171.tif 000037