(57)【要約】【課題】効率良い符号化、復号化が行われるようにする。【解決手段】ハフマンコード規範動き推定部７３は、ハフマンコードが最小になるブロックを探索することにより動きベクトルを求める。残差算出部７４は、供給されるブロック、１フレーム、動きベクトルとから残差を算出する。残差は、残差ハフマン符号化部７５により、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルが参照されることにより、ハフマン符号化される。ハフマンコード算出部７７は、残差がハフマン符号化される毎に、残差の度数分布を作成し、その作成した度数分布を元に、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルを更新する。本発明は、動画像を扱う符号化装置や復号化装置に適用することができる。【選択図】図３
2007116246.tif 000002
【特許請求の範囲】
【請求項１】
第１のフレームと第２のフレーム間で動き推定を行う動きベクトル推定装置において、
前記第１のフレームをブロック化して第１のブロックを生成するブロック化手段と、
前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定手段と、
前記第１のブロックと前記第２のブロックとの差分を算出する算出手段と、
前記算出手段により算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する変換手段と、
前記変換手段により変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定手段と
を備える動きベクトル推定装置。
【請求項２】
前記ハフマンテーブルは、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルであり、
前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロック以外である場合、前記所定の動画像が処理されることにより作成されたハフマンテーブルである
請求項１に記載の動きベクトル推定装置。
【請求項３】
第１のフレームと第２のフレーム間で動き推定を行う動きベクトル推定方法において、
前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、
前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、
前記第１のブロックと前記第２のブロックとの差分を算出する算出ステップと、
前記算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する変換ステップと、
前記変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップと
を含む動きベクトル推定方法。
【請求項４】
第１のフレームと第２のフレーム間で動き推定を行う動きベクトル推定装置における処理を、コンピュータに行わせるプログラムにおいて、
前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、
前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、
前記第１のブロックと前記第２のブロックとの差分を算出する算出ステップと、
前記算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する変換ステップと、
前記変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップと
を含むプログラム。
【請求項５】
第１のフレームと第２のフレームを有する入力フレームを符号化する符号化装置において、
前記第１のフレームをブロック化して第１のブロックを生成するブロック化手段と、
前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定手段と、
前記第１のブロックと前記第２のブロックとの差分を算出する第１の算出手段と、
前記第１の算出手段により算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する第１の変換手段と、
前記第１の変換手段により変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定手段と
前記動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出手段と、
前記第２の算出手段により算出された前記残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換手段と、
前記推定手段により推定された前記動きベクトルと、前記第２の変換手段により変換された前記残差のハフマンコードを、符号化データとして出力する出力手段と
を備える符号化装置。
【請求項６】
前記第２の算出手段により算出された前記残差の度数分布を作成し、
作成された前記度数分布に基づき、前記残差の出現確率分布を取得し、
取得された出現確率分布から、残差毎にハフマンコードを割り当て、前記ハフマンテーブルを更新する
請求項５に記載の符号化装置。
【請求項７】
前記ハフマンテーブルは、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルであり、
前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロック以外である場合、更新された前記ハフマンテーブルである
請求項６に記載の符号化装置。
【請求項８】
前記出力手段は、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルも出力する
請求項７に記載の符号化装置。
【請求項９】
第１のフレームと第２のフレームを有する入力フレームを符号化する符号化方法において、
前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、
前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、
前記第１のブロックと前記第２のブロックとの差分を算出する第１の算出ステップと、
前記第１の算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する第１の変換ステップと、
前記第１の変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップと
前記動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出ステップと、
前記第２の算出ステップの処理で算出された前記残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換ステップと、
前記推定ステップの処理で推定された前記動きベクトルと、前記第２の変換ステップの処理で変換された前記残差のハフマンコードを、符号化データとして出力する出力ステップと
を含む符号化方法。
【請求項１０】
第１のフレームと第２のフレームを有する入力フレームを符号化する符号化装置における処理を、コンピュータに行わせるプログラムにおいて、
前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、
前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、
前記第１のブロックと前記第２のブロックとの差分を算出する第１の算出ステップと、
前記第１の算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する第１の変換ステップと、
前記第１の変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップと
前記動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出ステップと、
前記第２の算出ステップの処理で算出された前記残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換ステップと、
前記推定ステップの処理で推定された前記動きベクトルと、前記第２の変換ステップの処理で変換された前記残差のハフマンコードを、符号化データとして出力する出力ステップと
を含むプログラム。
【請求項１１】
符号化されている第１のフレームからの第１のブロックを復号化する復号化装置において、
残差に関するハフマンコードと動きベクトルを受信する受信手段と、
ハフマンテーブルを参照して前記残差を復号化する残差復号化手段と、
前記動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得手段と、
前記残差復号化手段により復号化された前記残差を、前記取得手段により取得された前記予測ブロックに結合することにより、前記第１のブロックを復号化するブロック復号化手段と、
前記ブロック復号手段により復号化された前記第１のブロックを結合することにより、前記第１のフレームを生成するフレーム生成手段と
を備える復号化装置。
【請求項１２】
前記残差復号化手段により復号化された前記残差の度数分布を作成し、
作成された前記度数分布に基づき、前記残差の出現確率分布を取得し、
取得された出現確率分布から、残差毎にハフマンコードを割り当て、前記ハフマンテーブルを更新する
請求項１１に記載の符号化装置。
【請求項１３】
前記ハフマンテーブルは、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルであり、
前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロック以外である場合、更新された前記ハフマンテーブルである
請求項１２に記載の符号化装置。
【請求項１４】
前記受信手段は、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルも受信する
請求項１３に記載の符号化装置。
【請求項１５】
符号化されている第１のフレームからの第１のブロックを復号化する復号化方法において、
残差に関するハフマンコードと動きベクトルの受信を制御する受信制御ステップと、
ハフマンテーブルを参照して前記残差を復号化する残差復号化ステップと、
前記動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得ステップと、
前記残差復号化ステップの処理で復号化された前記残差を、前記取得ステップの処理で取得された前記予測ブロックに結合することにより、前記第１のブロックを復号化するブロック復号化ステップと、
前記ブロック復号ステップの処理で復号化された前記第１のブロックを結合することにより、前記第１のフレームを生成するフレーム生成ステップと
を含む復号化方法。
【請求項１６】
符号化されている第１のフレームからの第１のブロックを復号化する復号化装置における処理を、コンピュータに行わせるプログラムにおいて、
残差に関するハフマンコードと動きベクトルの受信を制御する受信制御ステップと、
ハフマンテーブルを参照して前記残差を復号化する残差復号化ステップと、
前記動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得ステップと、
前記残差復号化ステップの処理で復号化された前記残差を、前記取得ステップの処理で取得された前記予測ブロックに結合することにより、前記第１のブロックを復号化するブロック復号化ステップと、
前記ブロック復号ステップの処理で復号化された前記第１のブロックを結合することにより、前記第１のフレームを生成するフレーム生成ステップと
を含むプログラム。
【請求項１７】
請求項４、請求項１０、または、請求項１６に記載のプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動きベクトル推定装置および方法、符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体に関し、特に、動き補償残差をハフマン符号化して符号化を行うとき、または、ハフマン符号化された動き補償残差を用いて復号化処理を行うとき、その残差に対応するハフマンコードが最小長となるようにした動きベクトル推定装置および方法、符号化装置および方法、復号化装置および方法、プログラム、並びに記録媒体に関する。
【背景技術】
【０００２】
符号化処理には、一般的に分類すると可逆符号化と不可逆符号化とがある。可逆符号化は、符号化の対象とされたデータが同一のデータに復元可能であるように符号化する方式であり、不可逆符号化は、符号化の対象とされたデータが同一のデータには復元されない符号化の方式である。（例えば、特許文献１乃至３参照）
【０００３】
符号化の対象とされたデータを元データＶａｎ０とし、元データＶａｎ０が符号化されたデータを符号化データＶｃｄとし、符号化データＶｃｄが復号されたデータを復号データＶａｎ１とした場合、可逆符号化と不可逆符号化では、以下のような関係が成り立つ。
可逆符号化の場合
元データＶａｎ０＝復号データＶａｎ１
不可逆符号化の場合
元データＶａｎ０≠復号データＶａｎ１
【０００４】
可逆符号化の特徴としては、符号化によって失われる情報はなく、その為に、画質の劣化を防ぐことができるが、情報量が多くなってしまう（符号化データＶｃｄのデータ量が大きくなってしまう）ことがあげられる。
【０００５】
不可逆符号化の特徴としては、その処理の特性上、符号化の際に失われる情報が多いという点があげられる。符号化の際に失われた情報のため、ユーザによっては、復号化された画像を閲覧したときに、画像が劣化したと感じることがある。動画像の不可逆符号化の代表的な例としては、ＭＰＥＧ（Moving Picture Expert Group）がある。ＭＰＥＧ方式による符号化は、大幅な圧縮が可能ではあるが、高周波成分をカットすることでモスキートノイズが発生したり、ブロック処理のためブロックノイズが顕著であるといった問題点があった。
【０００６】
このような不可逆符号化に対し、可逆符号化は、上記したように、その処理の特性上、符号化によって失われる情報はないが、その分、不可逆符号化に比べ冗長な情報量が存在していた（データ量が大きくなってしまった）。動画像の可逆符号化を行う装置について図１を参照して説明する。
【０００７】
図１は、従来の符号化装置の構成例を示す図である。動画像を圧縮（符号化）するには時間方向の相関性を利用した、動き補償を利用するのが一般的であり、そのような符号化を行う符号化装置１０である。
【０００８】
符号化装置１０は、ブロック化部１１、フレームメモリ１２、ＳＮＲ(signal power to noise power ratio)規範動き推定部１３、残差算出部１４、残差ハフマン符号化部１５、ハフマンテーブル記憶部１６、および、データ合成部１７から構成されている。
【０００９】
符号化装置１０に供給された画像デジタル信号Vdgは、ブロック化部１１、フレームメモリ１２、および、残差算出部１４に供給される。ブロック化部１１は、入力された画像デジタル信号Vdgに基づく１フレームを、所定の画素数から構成されるブロックに、ブロック化（分割）する。ブロック化部１１によりブロック化されたブロックは、ＳＮＲ動き推定部１３に供給される。
【００１０】
ＳＮＲ規範動き推定部１３には、フレームメモリ１２に記憶されているフレームの画像デジタル信号も供給される。ＳＮＲ規範動き推定部１３に供給されるフレームは、処理対象とされているフレーム（ブロック化部１１によりブロック化されるフレーム）よりも１フレーム前のフレームである。ＳＮＲ規範動き推定部１３は、ブロック化部１１からのブロックに類似するブロックが、１フレーム前のフレーム内で存在する位置を検出し、その検出されたブロックとの相対座標を求めることにより、動きベクトルを検出する。
【００１１】
ＳＮＲ規範動き推定部１３からの動きベクトルは、残差算出部１４に供給される。残差算出部１４は、フレームメモリ１２からも処理対象とされているフレームより１フレーム前のフレームが供給される。残差算出部１４は、供給された動きベクトル、１フレーム前のフレーム、および現フレームから予測残差を算出する。
【００１２】
残差算出部１４により算出された予測残差は、残差ハフマン符号化部１５に供給される。残差ハフマン符号化部１５は、ハフマンテーブル記憶部１６に記憶されているハフマンテーブルを参照し、供給された予測残差をハフマン符号化する。ハフマンテーブル記憶部１６に記憶されているハフマンテーブルは、自然画像から作成されたハフマンテーブルである。
【００１３】
残差ハフマン符号化部１５からのハフマン符号化された予測残差は、データ合成部１７に供給される。データ合成部１７には、ＳＮＲ規範動き推定部１３からの動きベクトルも供給される。データ合成部１７は、ハフマン符号化された予測残差と動きベクトルを、データ合成し、符号データVcdとして、図示されていない他の装置（例えば、復号化装置）に出力する。
【００１４】
【特許文献１】特開２００３−２３０１５０号公報
【００１５】
【特許文献２】特開２００１−１６５９４号公報
【００１６】
【特許文献３】特開２０００−５０２７９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
図１の符号化装置１０において用いられるハフマンテーブルは、自然画像から作成されており、その作成の際に用いられた自然画像に依存するものである。換言すれば、処理対象とされる画像に依存するハフマンテーブルではなく、出現確率の異なる予測残差が反映されたテーブルではない。よって、残差ハフマン符号化部１５により予測残差をハフマン符号化する際、ハフマン符号割り当てに冗長な部分が存在してしまう。また前段でのブロックマッチングは、上記したようにＳＮＲ最小規範で行っており、前段の処理結果が後段に反映されていない点が、圧縮率の低下の一因にもなっている。
【００１８】
また、上記したように、動画像の不可逆符号化では、例えば、ＭＰＥＧ方式に代表されるように、大部幅な圧縮が可能ではあるが、その反面、高周波成分をカットすることでモスキートノイズが発生したり、ブロック化の処理のためブロックノイズが顕著であったりといったことが発生する可能性があった。
【００１９】
また、従来の動画像の可逆符号化では符号化によって情報は失われないが、その分、不可逆符号化に比べ、冗長な情報量が存在し、圧縮率が低下することがあった。
【００２０】
本発明は、このような状況に鑑みてなされたものであり、ハフマンテーブルを逐次更新しつつ後段のハフマン符号量が最小となるような動きベクトルを選択する処理を前段で行うことで、高品質、高圧縮を行うことができるようにするものである。
【課題を解決するための手段】
【００２１】
本発明の一側面の動きベクトル推定装置は、第１のフレームと第２のフレーム間で動き推定を行う動きベクトル推定装置であって、前記第１のフレームをブロック化して第１のブロックを生成するブロック化手段と、前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定手段と、前記第１のブロックと前記第２のブロックとの差分を算出する算出手段と、前記算出手段により算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する変換手段と、前記変換手段により変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定手段とを備える。
【００２２】
前記ハフマンテーブルは、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルであり、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロック以外である場合、前記所定の動画像が処理されることにより作成されたハフマンテーブルであるようにすることができる。
【００２３】
本発明の一側面における動きベクトル推定方法は、第１のフレームと第２のフレーム間で動き推定を行う動きベクトル推定方法であって、前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、前記第１のブロックと前記第２のブロックとの差分を算出する算出ステップと、前記算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する変換ステップと、前記変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップとを含む。
【００２４】
本発明の一側面の動きベクトル推定装置に処理を実行させるプログラムは、第１のフレームと第２のフレーム間で動き推定を行う動きベクトル推定装置における処理を、コンピュータに行わせるプログラムであって、前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、前記第１のブロックと前記第２のブロックとの差分を算出する算出ステップと、前記算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する変換ステップと、前記変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップとを含む。
【００２５】
本発明の一側面の符号化装置は、第１のフレームと第２のフレームを有する入力フレームを符号化する符号化装置であって、前記第１のフレームをブロック化して第１のブロックを生成するブロック化手段と、前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定手段と、前記第１のブロックと前記第２のブロックとの差分を算出する第１の算出手段と、前記第１の算出手段により算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する第１の変換手段と、前記第１の変換手段により変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定手段と前記動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出手段と、前記第２の算出手段により算出された前記残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換手段と、前記推定手段により推定された前記動きベクトルと、前記第２の変換手段により変換された前記残差のハフマンコードを、符号化データとして出力する出力手段とを備える。
【００２６】
前記第２の算出手段により算出された前記残差の度数分布を作成し、作成された前記度数分布に基づき、前記残差の出現確率分布を取得し、取得された出現確率分布から、残差毎にハフマンコードを割り当て、前記ハフマンテーブルを更新するようにすることができる。
【００２７】
前記ハフマンテーブルは、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルであり、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロック以外である場合、更新された前記ハフマンテーブルであるようにすることができる。
【００２８】
前記出力手段は、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルも出力するようにすることができる。
【００２９】
本発明の一側面における符号化方法は、第１のフレームと第２のフレームを有する入力フレームを符号化する符号化方法であって、前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、前記第１のブロックと前記第２のブロックとの差分を算出する第１の算出ステップと、前記第１の算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する第１の変換ステップと、前記第１の変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップと前記動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出ステップと、前記第２の算出ステップの処理で算出された前記残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換ステップと、前記推定ステップの処理で推定された前記動きベクトルと、前記第２の変換ステップの処理で変換された前記残差のハフマンコードを、符号化データとして出力する出力ステップとを含む。
【００３０】
本発明の一側面における符号化装置に処理を実行させるプログラムは、第１のフレームと第２のフレームを有する入力フレームを符号化する符号化装置における処理を、コンピュータに行わせるプログラムであって、前記第１のフレームをブロック化して第１のブロックを生成するブロック化ステップと、前記第２のフレームに探索領域を設定し、前記探索領域中に第２のブロックを設定する設定ステップと、前記第１のブロックと前記第２のブロックとの差分を算出する第１の算出ステップと、前記第１の算出ステップの処理で算出された前記差分を、ハフマンテーブルを用いてハフマンコードに変換する第１の変換ステップと、前記第１の変換ステップの処理で変換された前記ハフマンコードの符号長が最小になる第２のブロックを、前記第１のブロックに対応するブロックとし、前記第１のブロックの動きベクトルを推定する推定ステップと前記動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出ステップと、前記第２の算出ステップの処理で算出された前記残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換ステップと、前記推定ステップの処理で推定された前記動きベクトルと、前記第２の変換ステップの処理で変換された前記残差のハフマンコードを、符号化データとして出力する出力ステップとを含む。
【００３１】
本発明の一側面の復号化装置は、符号化されている第１のフレームからの第１のブロックを復号化する復号化装置であって、残差に関するハフマンコードと動きベクトルを受信する受信手段と、ハフマンテーブルを参照して前記残差を復号化する残差復号化手段と、前記動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得手段と、前記残差復号化手段により復号化された前記残差を、前記取得手段により取得された前記予測ブロックに結合することにより、前記第１のブロックを復号化するブロック復号化手段と、前記ブロック復号手段により復号化された前記第１のブロックを結合することにより、前記第１のフレームを生成するフレーム生成手段とを備える。
【００３２】
前記残差復号化手段により復号化された前記残差の度数分布を作成し、作成された前記度数分布に基づき、前記残差の出現確率分布を取得し、取得された出現確率分布から、残差毎にハフマンコードを割り当て、前記ハフマンテーブルを更新するようにすることができる。
【００３３】
前記ハフマンテーブルは、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルであり、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロック以外である場合、更新された前記ハフマンテーブルであるようにすることができる。
【００３４】
前記受信手段は、前記第１のブロックが、所定の動画像の先頭フレームの先頭ブロックである場合、自然画像を用いて予め作成されたハフマンテーブルも受信するようにすることができる。
【００３５】
本発明の一側面の復号化方法は、符号化されている第１のフレームからの第１のブロックを復号化する復号化方法であって、残差に関するハフマンコードと動きベクトルの受信を制御する受信制御ステップと、ハフマンテーブルを参照して前記残差を復号化する残差復号化ステップと、前記動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得ステップと、前記残差復号化ステップの処理で復号化された前記残差を、前記取得ステップの処理で取得された前記予測ブロックに結合することにより、前記第１のブロックを復号化するブロック復号化ステップと、前記ブロック復号ステップの処理で復号化された前記第１のブロックを結合することにより、前記第１のフレームを生成するフレーム生成ステップとを含む。
【００３６】
本発明の一側面の復号化装置に処理を実行させるプログラムは、符号化されている第１のフレームからの第１のブロックを復号化する復号化装置における処理を、コンピュータに行わせるプログラムであって、残差に関するハフマンコードと動きベクトルの受信を制御する受信制御ステップと、ハフマンテーブルを参照して前記残差を復号化する残差復号化ステップと、前記動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得ステップと、前記残差復号化ステップの処理で復号化された前記残差を、前記取得ステップの処理で取得された前記予測ブロックに結合することにより、前記第１のブロックを復号化するブロック復号化ステップと、前記ブロック復号ステップの処理で復号化された前記第１のブロックを結合することにより、前記第１のフレームを生成するフレーム生成ステップとを含む。
【００３７】
本発明の一側面の動きベクトル推定装置および方法、並びにプログラムにおいては、２つのブロックの差分にハフマンコードが割り当てられ、そのハフマンコードが最小となるブロック間の相対座標が算出されることにより動きベクトルが検出される。
【００３８】
本発明の一側面の符号化装置および方法、並びにプログラムにおいては、２つのブロックの差分にハフマンコードが割り当てられ、そのハフマンコードが最小となるブロック間の相対座標が算出されることにより動きベクトルが検出され、予測されたブロックと符号化対象とされているブロックとの残差が、ハフマンテーブルが参照され、ハフマンコードに変換される。
【００３９】
本発明の一側面の復号化装置および方法、並びにプログラムにおいては、ハフマンコードにされた残差が、ハフマンテーブルが参照されて復号化され、動きベクトルから予測ブロックが取得され、その予測ブロックに復号化された残差が結合されることにより、所定のフレームからのブロックが復号化される。
【発明の効果】
【００４０】
本発明の一側面によれば、ハフマン符号化またはハフマン復号化を行うことができる。
【００４１】
本発明の一側面によれば、符号化や復号化に用いられるハフマンテーブルを更新することができる。また、その更新は、符号化や復号化の対象とされている画像に依存させて行うことが可能となる。
【００４２】
本発明の一側面によれば、高画質、高圧縮を実現する符号化や復号化を行うことができる。
【発明を実施するための最良の形態】
【００４３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００４４】
本発明の一側面の動きベクトル推定装置（例えば、図３の符号化部４２に含まれる図５のハフマンコード規範動き推定部７３）は、第１のフレームをブロック化して第１のブロックを生成するブロック化手段（例えば、図３のブロック化部７１）と、第２のフレームに探索領域を設定し、探索領域中に第２のブロックを設定する設定手段（例えば、図５の動き検索部１１２）と、第１のブロックと第２のブロックとの差分を算出する算出手段（例えば、図５の動き検索部１１２）と、算出手段により算出された差分を、ハフマンテーブルを用いてハフマンコードに変換する変換手段（例えば、図５の差分変換部１１３）と、変換手段により変換されたハフマンコードの符号長が最小になる第２のブロックを、第１のブロックに対応するブロックとし、第１のブロックの動きベクトルを推定する推定手段（例えば、図５の動きベクトル取得部１１４）とを備える。
【００４５】
本発明の一側面の符号化装置（例えば、図３の符号化部４２）は第１のフレームをブロック化して第１のブロックを生成するブロック化手段（例えば、図３のブロック化部７１）と、第２のフレームに探索領域を設定し、探索領域中に第２のブロックを設定する設定手段（例えば、図３のハフマンコード規範動き推定部７３を構成する図５の動き検索部１１２）と、第１のブロックと第２のブロックとの差分を算出する算出手段（例えば、図５の動き検索部１１２）と、算出手段により算出された差分を、ハフマンテーブルを用いてハフマンコードに変換する変換手段（例えば、図５の差分変換部１１３）と、変換手段により変換されたハフマンコードの符号長が最小になる第２のブロックを、第１のブロックに対応するブロックとし、第１のブロックの動きベクトルを推定する推定手段（例えば、図５の動きベクトル取得部１１４）と、動きベクトルに対応する第２のブロックと第１のブロックの残差を算出する第２の算出手段（例えば、図３の残差算出部７４）と、第２の算出手段により算出された残差を、ハフマンテーブルを参照し、ハフマンコードに変換する第２の変換手段（例えば、図３の残差ハフマン符号化部７５）と、推定手段により推定された動きベクトルと、第２の変換手段により変換された残差のハフマンコードを、符号化データとして出力する出力手段（例えば、図３のデータ合成部７８）とを備える。
【００４６】
本発明の一側面の復号化装置（例えば、図１８の復号化部５１）は、残差に関するハフマンコードと動きベクトルを受信する受信手段（例えば、図１８の入力端子３１０）と、ハフマンテーブルを参照して残差を復号化する残差復号化手段（例えば、図１８の残差ハフマン復号化部３１６）と、動きベクトルと復号化されている第２のフレームから、予測ブロックを取得する取得手段（例えば、図１８のハフマンコード規範動き補償部３１３）と、残差復号化手段により復号化された残差を、取得手段により取得された予測ブロックに結合することにより、第１のブロックを復号化するブロック復号化手段（例えば、図１８の残差結合部３１７）と、ブロック復号手段により復号化された第１のブロックを結合することにより、第１のフレームを生成するフレーム生成手段（例えば、図１８のブロック結合部３１８）とを備える。
【００４７】
以下に、本発明の実施の形態について図面を参照して説明する。
【００４８】
［システムの構成について］
図２は、本発明を適用した符号化装置と復号化装置を含むシステムの一実施の形態の構成を示す図である。図２に示したシステムは、符号化装置３１、復号化装置３２、およびディスプレイ３３を含む構成とされている。符号化装置３１は、Ａ／Ｄ（Analog/Digital）変換部４１と符号化部４２から構成されている。復号化装置３２は、復号化部５１とＤ／Ａ変換部５２から構成されている。
【００４９】
符号化装置３１のＡ／Ｄ変換部４１には、アナログの画像データVan0 が入力される。Ａ／Ｄ変換部４１は、入力されたアナログ画像データVan0を、デジタルの画像データVdg0 に変換し、符号化部４２に供給する。符号化部４２は、供給されたデジタルの画像データVdg0を符号化処理し、符号化信号Vcdを生成する。生成された符号化信号Vcdは、復号化装置３２に供給（送信）される。
【００５０】
復号化装置３２の復号化部５１は、受信された符号化信号Vcd を、デジタルの画像データVdg1 に復号化し、Ｄ／Ａ 変換部５２に供給する。Ｄ／Ａ変換部５２は、供給されたデジタルの画像データVdg1を、アナログの画像データVan1に変換し、ディスプレイ３３に供給する。ディスプレイ３３は、供給されたアナログ画像データVan1に基づく画像を表示する。
【００５１】
このシステムにおいては、可逆符号化が行われ、その可逆符号化に対応する復号化が行われるとして以下の説明をする。可逆符号化は、その処理の特性上、符号化によって情報は失われことがないため、符号化側で符号化対象とされた画像データと同様の画像データを復号化側で取得することが可能である。すなわち、
アナログの画像データVan0＝アナログの画像データVan1
デジタルの画像データVdg0＝デジタルの画像データVdg1
という関係が成り立つ。
【００５２】
このような関係が成り立つ符号化と復号化について説明する。まず、符号化装置３１の構成および符号化装置３１により行われる符号化について説明し、その後、復号化装置３２の構成および復号化装置３２により行われる復号化について説明する。
【００５３】
［符号化装置の構成および動作について］
図３は、符号化装置３１の符号化部４２の構成例を示す図である。符号化部４２は、入力端子７０、ブロック化部７１、フレームメモリ７２、ハフマンコード規範動き推定部７３、残差算出部７４、残差ハフマン符号化部７５、ハフマンテーブル記憶部７６、ハフマンコード算出部７７、データ合成部７７、および、出力端子７９を含む構成とされている。
【００５４】
入力端子７０には、Ａ／Ｄ変換部４１によりデジタルデータに変換された画像データVdg（以下、単に、画像データと記述する）が入力される。入力端子７０に入力された画像データは、ブロック化部７１とフレームメモリ７２に供給される。ブロック化部７１は、入力された画像データに基づく画像を複数のブロックに分割する（１フレームを所定の画素数（例えば、６４画素）から構成されるブロックに分割する）。
【００５５】
分割されたブロックは、順次、ハフマンコード規範動き推定部７３と残差算出部７４に供給される。ハフマンコード規範動き推定部７３には、フレームメモリ７２からもフレーム（以下、適宜、フレームと記述するが、フレームとの記載は、そのフレームの画像データであるとの意味も含む）も供給される。フレームメモリ７２が供給するフレームは、ブロック化部７１でブロック化されるフレームよりも１フレーム前のフレームである。
【００５６】
ハフマンコード規範動き推定部７３は、ブロック化部７１によりブロック化されたブロック、フレームメモリ７２から供給されるフレーム、および、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルを用いて、ハフマン符号量が最小となる動きベクトルを検出する（詳細は後述する）。検出された動きベクトルは、残差算出部７４に供給される。残差算出部７４には、入力端子７０を介したフレーム（フレームＮとする）からブロック化部７１によりブロック化されたブロックと、フレームメモリ７２からフレームＮより１フレーム前のフレーム（フレームＮ−１とする）が供給される。
【００５７】
残差算出部７４は、供給されたデータを用いて残差を算出し、残差ハフマン符号化部７５に出力する。残差ハフマン符号化部７５は、供給された残差を、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルを参照し、符号化し、データ合成部７８とハフマンコード算出部７７に供給する。ハフマンコード算出部７７は、符号化された残差にハフマンコードを割り当てる。割り当てられたハフマンコードにより、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルが更新される。
【００５８】
データ合成部７８には、残差ハフマン符号化部７５から符号化された残差と、ハフマンコード規範動き推定部７３から動きベクトルとが、供給される。データ合成部７８は、供給されたこれらのデータを合成し、復号化装置３２（図２）に対して供給する。
【００５９】
次に、符号化部４２を構成する各部の構成について説明する。
【００６０】
図４は、ブロック化部７１の内部構成例を示す図である。ブロック化部７１は、オフセット部９１とブロック化部９２とを含む構成とされている。Ａ／Ｄ変換部４１からのデジタル画像データは、オフセット部９１に供給される。オフセット部９１は、入力された画像データ（フレーム）にオフセット処理を施し、ブロック化部９２に供給する。ブロック化部９２は、供給されたフレームを所定の画素数毎にブロック化し、ハフマンコード規範動き推定部７３に供給する。
【００６１】
図５は、ハフマンコード規範動き推定部７３の内部構成例を示す図である。ハフマンコード規範動き推定部７３は、初期ハフマンコード算出部１１１、動き探索部１１２、差分変換部１１３、動きベクトル取得部１１４、および、累計型ハフマンコード算出部１１５から構成されている。累計型ハフマンコード算出部１１５は、処理を行った結果（ハフマンコード）が累積されたハフマンテーブルを用い、初期ハフマンコード算出部１１１には、ハフマンコードが累積されていない状態のとき（例えば、初めのフレームを処理するとき）に用いられる初期ハフマンテーブルを用い、符号化を行う。
【００６２】
動き探索部１１２は、ブロック化部７１から供給されるフレームＮからのブロックと、フレームメモリ７２からフレームＮ−１が供給される。動き探索部１１２と差分変換部１１３は、フレームＮからのブロックと、フレームＮ−１内（フレームＮ―１内の所定のサーチ範囲内）のブロックとをブロックマッチングし、その結果を、ハフマン符号化する。差分変換部１１３が、ハフマン符号化を行う際、例えば、初めのフレームのときには、初期ハフマンコード算出部１１１からのコードが用いられ、その他のときには、累計型ハフマンコード算出部１１５からのコードが用いられる。
【００６３】
動きベクトル取得部１１４は、差分変換部１１３からのハフマン符号量が最小となるブロックを判断することにより動きベクトルを取得（検出）する。検出された動きベクトルは、残差算出回路７４に供給される。
【００６４】
図６は、残差算出回路７４の内部構成例を示す図である。残差算出部７４は、予測ブロック獲得部１３１と残差獲得部１３２から構成されている。予測ブロック獲得部１３１には、ハフマンコード規範動き推定部７３から動きベクトルと、フレームメモリ７２からフレームＮ−１が供給される。予測ブロック獲得部１３１は、供給された動きベクトルとフレームＮ−１から、フレームＮ−１内で、処理対象とされているフレームＮからのブロックに対応するブロック（予測ブロック）を獲得する。
【００６５】
残差獲得部１３２には、予測ブロック獲得部１３１からの予想ブロックと、ブロック化部７１からのブロックから供給される。そして、それらのブロックから残差が求められ、残差ハフマン符号化部７５に出力される。
【００６６】
図７は、残差ハフマン符号化部７５の内部構成例を示す図である。残差ハフマン符号化部７５は、度数分布作成部１５１とハフマン符号割り当て部１５２から構成されている。度数分布作成部１５１には、残差算出部７４からの残差が供給される。度数分布作成部１５１は、供給された残差を加えた度数分布を作成し、記憶するとともに、ハフマンコード算出部７７にも供給する。
【００６７】
ハフマン符号割り当て部１５２には、残差算出部７４からの残差と、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルとが供給される。ハフマン符号割り当て部１５２は、ハフマンテーブルを参照し、供給された残差にハフマンコードを割り当て、その割り当てたハフマンコード（ハフマン符号）を、ハフマンコード算出部７７に供給する。
【００６８】
図８は、ハフマンコード算出部７６の内部構成例を示す図である。ハフマンコード算出部７６は、バッファ１７１、度数分布マージ部１７２、出現確率分布取得部１７３、および、ハフマンコード割り当て部１７４を含む構成とされている。バッファ１７１は、度数分布マージ部１７２からの出力を一旦記憶する。バッファ１７１に記憶されているデータは、度数分布マージ部１７２に供給される。
【００６９】
度数分布マージ部１７２は、残差ハフマン符号化部７５からの残差の度数分布も供給される。度数分布マージ部１７２は、供給された度数分布を用いて、バッファ１７１に記憶されている度数分布を更新する。更新された度数分布は、バッファ１７１と出現確率分布出力部１７３に供給される。出現確率分布取得部１７３は、供給された度数分布から、残差毎に出現する回数（確率）を求め、その分布を作成し、ハフマンコード割り当て部１７４に供給する。
【００７０】
ハフマンコード割り当て部１７４は、残差毎にハフマンコードを割り当て、ハフマンテーブル記憶部７６に供給する。ハフマンテーブル記憶部７６は、供給されたハフマンコードにより記憶しているハフマンテーブルを更新する。
【００７１】
次に、符号化部４２の動作について説明する。図９のフローチャートを参照し、符号化部４２の動作について説明する。
【００７２】
ステップＳ１１において、ブロック化部７１は、入力端子７０を介して入力される画像データに基づく１フレームを所定の画素数のブロックに分割する。このブロック化の処理について、図１０のフローチャートを参照して説明する。ステップＳ３１において、ブロック化部７１のオフセット部９１は、Ａ／Ｄ変換部４１（図２）によりデジタルデータに変換された入力画像データを読み込む。
【００７３】
ステップＳ３２において、入力された画像データ（フレームＮ）のうち、オフセット分だけ処理対象とされる部分（ブロックとして切り出される部分）まで移動される。オフセット処理が施されたフレームＮは、ブロック化部９２に供給される。ブロック化部９２は、ステップＳ３３において、指定されている（予め設定されている）画素数のブロックサイズで分割を行う。
【００７４】
ブロック化部９２において行われるブロック化について、図１１を参照して説明する。ブロック化部９２には、１フレーム分の画像データ（有効画面を構成する画面の画像データ）が供給される。なお、ステップＳ３２において行われるオフセットの処理は、有効画面を構成する画面の部分まで処理の開始位置を移動させることである。
【００７５】
図１１は、供給されるフレームＮの一部分を示している。図１１において、「○」はブロックを構成する画素データを示している。１フレームは、水平方向８画素、垂直方向８画素で構成される６４画素毎のブロック（図１１において、線で囲んだ部分）に分割される。
【００７６】
ここでは、このように、１ブロックは８×８の６４画素で構成されるとして説明を続けるが、他の画素数で構成されるようにしても良い。ブロック化部９２によりブロック化されたブロックは、ハフマンコード規範動き推定部７３に供給される。
【００７７】
図９のフローチャートの説明に戻り、ステップＳ１１において、ブロック化処理が実行されることによりブロックに分割されると、ステップＳ１２において、動きベクトルの検出処理が実行される。動きベクトルの検出処理は、ハフマンコード規範動き推定部７３において実行される。ハフマンコード規範動き推定部７３において実行される動きベクトル検出について、図１２のフローチャートを参照して説明する。
【００７８】
ステップＳ５１において、ハフマンコード規範動き推定部７３の動き探索部１１２（図５）は、サーチ範囲内を動き探索する。サーチ範囲について、図１３Ａ，Ｂを参照して説明する。図１３Ａに示すように、ブロック化部７１によりブロック化され、処理対象とされるフレームＮ内の６４画素が注目ブロック２０１とされている。図１３Ｂに示すように、注目ブロック２０１がフレームＮ内で存在する位置と同一の位置に相当する位置で、フレームメモリ７２内に記憶されているフレームＮ―１内の６４画素が領域２０２とされる。
【００７９】
この領域２０２より大きな所定の領域が、サーチ範囲２０３として設定される。サーチ範囲２０３は、例えば、領域２０２よりも、水平方向（図中左右方向）に、−８画素〜＋８画素、垂直方向（図中上下方向）に−８画素〜＋８画素、大きな領域とされる。
【００８０】
動き探索部１１２は、サーチ範囲２０３内で、領域を順次移動し、注目ブロック２０１との差分を算出する。まず、動き探索部１１２は、ステップＳ５１において、サーチ範囲２０３内の所定の領域（例えば、サーチ範囲２０３内の左上の６４画素）を、差分を算出する領域（以下、適宜、設定領域と記述する）に設定し、ステップＳ５２において、その位置での差分を算出する。算出された差分は、差分変換部１１３（図５）に供給される。
【００８１】
差分変換部１１３は、ステップＳ５３において、先頭フレームの先頭ブロックに対する動き探索であるか否かを判断する。ステップＳ５３において、先頭フレームの先頭ブロックに対する動き探索であると判断された場合、ステップＳ５４に進められる。ステップＳ５４において、初期ハフマンコード算出部１１１で算出されるハフマンテーブルが利用されるように設定される。
【００８２】
一方、ステップＳ５３において、先頭フレームの先頭ブロックに対する動き探索ではないと判断された場合、ステップＳ５５に進められる。ステップＳ５５において、差分変換部１１３は、累積型ハフマンテーブル算出部１１５で算出されるハフマンテーブルが利用されるように設定される。このようにして、処理されたフレームがある場合には、過去のフレームを処理したことにより得られるハフマンテーブルが利用される
【００８３】
初期ハフマンコード算出部１１１や累計型ハフマンテーブル算出部１１５には、それぞれ、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルが供給され、その供給されるハフマンテーブルが利用される。
【００８４】
ステップＳ５４またはステップＳ５５において、設定されたハフマンテーブルを元に、ステップＳ５６において、供給された差分がハフマン符号化される（差分に対応するハフマンコードに変換される）。ステップＳ５７において、サーチ範囲２０３内の探索が終了されたか否かが判断される。上記したように、動き探索部１１２は、サーチ範囲２０３内で設定領域を順次移動させ、差分を算出し、差分変換部１１３によりその差分がハフマンコードに変換される。
【００８５】
このような処理がサーチ範囲２０３内の全てに対して行われたか否かが、ステップＳ５７において判断される。ステップＳ５７において、サーチ範囲２０３内の探索は終了していないと判断された場合、ステップＳ５１に戻り、それ以降の処理が繰り返される。
【００８６】
一方、ステップＳ５７において、サーチ範囲２０３内の探索は終了したと判断された場合、ステップＳ５８において、動きベクトル取得部１１４により、最小のハフマンコードが抽出される。すなわち、上記処理が行われることにより、複数の差分が算出され、ハフマンコードに変換されるが、その変換された複数のハフマンコードの内、最も小さい値を有するハフマンコードが抽出される。また、その抽出されたハフマンコードに対応するブロック（サーチ範囲２０３のうち、最小のハフマンコードに変換されたときに領域２０２が位置していた領域（図１４における検出ブロック２０４）も抽出される。
【００８７】
ステップＳ５９において、注目ブロック２０１と検出ブロック２０４とから、動きベクトル２０５が検出される。すなわち、領域２０２と検出ブロック２０４との相対座標が求められることにより、動きベクトル２０５が算出される。このようにして、動きベクトル検出処理が実行され、検出された動きベクトルが、残差算出部７４に供給される。
【００８８】
このように、ハフマンコード規範動き推定部７３は、第１のフレームからの第１のブロック（フレームＮからの注目ブロック２０１）と、第２のフレーム内に設定された探索領域内に設定された第２のブロック（フレームＮ−１内に設定されたサーチ範囲２０３内に設定された領域２０２）との差分を算出し、その差分をハフマンコードに変換する。
【００８９】
差分がハフマンコードに変換される際、ハフマンテーブルが参照されるが、差分が算出される第１のブロックが、処理対象とされている動画像の先頭フレームの先頭ブロックであった場合、自然画像を用いて予め作成されたハフマンテーブルが参照され、第１のブロックが、処理対象とされている動画像の先頭フレームの先頭ブロックで以外であった場合、後述する処理により、ブロックが処理される毎に更新されるハフマンテーブルが参照される。
【００９０】
ハフマンコード規範動き推定部７３は、ハフマンコードの符号長が最小となる第２のブロックを、第１のブロックに対応するブロックとして設定する（検出ブロック２０４として設定する）。そして、第１のブロックに対応するとして設定された第２のブロックと、第１のブロックとの相対座標が求められることにより、第１のブロックの動きベクトルが推定される。推定された（検出された）動きベクトルは、残差算出部７４に供給される。
【００９１】
残差算出部７４は、ステップＳ１３（図９）において、残差を算出する。ステップＳ１３において実行される残差算出処理について、図１５のフローチャートを参照して説明する。
【００９２】
ステップＳ７１において、予測ブロックが獲得される。残差算出部７４の予測ブロック獲得部１３１（図６）には、ハフマンコード規範動き推定部７３から動きベクトルと、フレームメモリ７２から、フレームＮ−１の画像データが、それぞれ供給される。予測ブロック獲得部１３１は、供給されたフレームＮ−１内の所定のブロック（予測ブロック）の位置を、動きベクトルを用いて確定し、その確定した予測ブロックの画像データを獲得する。
【００９３】
獲得された予測ブロックの画像データは、残差獲得部１３２に供給される。残差獲得部１３２には、ブロック化部７１から処理対象とされているブロック（注目ブロック）も供給される。残差獲得部１３２は、予測ブロックと注目ブロックとの残差を算出することにより、残差を獲得する。すなわち、予測値と真値との残差が算出される。獲得された残差は、残差ハフマン符号化部７５（図３）に供給される。
【００９４】
残差ハフマン符号化部７５は、ステップＳ１４において、残差ハフマン符号化処理を実行する。ステップＳ１４において、残差ハフマン符号化部７５により実行される残差ハフマン符号化処理について、図１６のフローチャートを参照して説明する。
【００９５】
ステップＳ９１において、ブロック化された残差が読み込まれる。残差ハフマン符号化部７５のハフマン符号割り当て部１５２（図７）は、残差算出部７４からの残差を取得する。ステップＳ９２において、取得された残差は、先頭フレームの先頭ブロックからの残差であるか否かが判断される。ステップＳ９２において、先頭フレームの先頭ブロックからの残差であると判断された場合、ステップＳ９３に処理が進められ、先頭フレームの先頭ブロックからの残差ではないと判断された場合、ステップＳ９４に処理が進められる。
【００９６】
ステップＳ９３に処理が進められた場合、ハフマン符号割り当て部１５２は、ハフマンテーブル記憶部７６から、初期ハフマンテーブルを読み込む。この処理は、図１２のステップＳ５４において初期ハフマンコード算出部１１１（図５）により実行される処理と基本的に同様である。
【００９７】
ステップＳ９４に処理が進められた場合、ハフマン符号割り当て部１５２は、ハフマンテーブル記憶部７６から、累計型ハフマンテーブルを読み込む。この処理は、図１２のステップＳ５５において累計型ハフマンコード算出部１１５（図５）により実行される処理と基本的に同様である。
【００９８】
ステップＳ９５において、ハフマン符号割り当て部１５２は、供給された残差に、ハフマンテーブルを参照し、ハフマン符号を割り当てる。ステップＳ９６において、度数分布作成部１５１（図７）は、残差の度数分布を作成する。ステップＳ９７において、ハフマン符号化された残差と、作成された度数分布が送信される。残差は、データ合成部７８に供給され、度数分布は、ハフマンコード算出部７７に供給される。
【００９９】
データ合成部７８は、ステップＳ１５（図９）において、残差ハフマン符号化７５からの残差に関するハフマンコードと、ハフマンコード規範動き推定部７３からの動きベクトルを合成し、その合成データを他の装置、例えば、復号化装置３２（図２）に送信する。
【０１００】
ステップＳ５４（図１２）やステップＳ９３（図１６）の処理が実行された場合、すなわち、初期ハフマンテーブルが用いられ、差分や残差がハフマンコードに変換された場合、ステップＳ１５において、合成データが復号化装置３２に送信されるときに、あわせて、初期ハフマンテーブルも送信されるようにしても良い。初期ハフマンテーブルが送信されるようにした場合、復号化装置３２は、初期ハフマンテーブルを記憶しておく必要がない（後述するように、復号化装置３２は、符号化装置３１と同じ初期ハフマンテーブルを有する必要がある）。
【０１０１】
初期ハフマンテーブルを送信するようにしたとしても、送信されるのは初期ハフマンテーブルだけであるので（復号化装置３２側で、初期ハフマンテーブルがあれば、累積型ハフマンテーブルを作成することができるので、復号化装置３２に、累積型ハフマンテーブルを送信する必要はない）、符号化の効率を低下させてしまう（データ量を増加させてしまう）ようなことは防ぐことができる。
【０１０２】
ステップ１６において、ハフマンコード算出部７７は、ハフマンコード算出処理を実行する。ハフマンコード算出部７７において実行されるハフマンコード算出処理について、図１７のフローチャートを参照して説明する。
【０１０３】
ステップＳ１１１において、ハフマンコード算出部７６のバッファ１７１（図８）に保持されている度数分布が、度数分布マージ部１７２により読み込まれる。バッファ１７１は、度数分布マージ部１７２に供給される度数分布より前の時点の度数分布が記憶されている。その記憶されている度数分布が、バッファ１７１から読み出される。
【０１０４】
ステップＳ１１２において、度数分布マージ部１７２は、残差ハフマン符号化部７５から送られてきた度数分布と、バッファ１７１から読み出された度数分布をマージ(Merge)する。すなわち、送信されてきた度数分布と読み出された度数分布という２つの度数分布が１つの度数分布にまとめられる。
【０１０５】
ステップＳ１１３において、度数分布マージ部１７２は、マージした度数分布をバッファ１７１に書き込む（上書きする）。マージされた度数分布は、出現確率分布取得部１７３にも供給される。出現確率分布取得部１７３は、ステップＳ１１４において、供給された度数分布を用いて、出現確率分布を作成（取得）する。作成された出現確率分布は、ハフマンコード割り当て部１７４に供給される。
【０１０６】
ハフマンコード割り当て部１７４は、ステップＳ１１５において、供給された出現確率分布を用いて、残差に対して、ハフマンコードを割り当てる。そして、ステップＳ１１６において、割り当てられたハフマンコードを元に、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルが更新される。
【０１０７】
ハフマンテーブル記憶部７６には、このような更新により作成されたハフマンテーブルが記憶されている。このようなハフマンテーブルを累積型ハフマンテーブルと称する。この累計型ハフマンテーブルは、上述した説明において、例えば、ハフマンコード規範動き推定部７３の累計型ハフマンコード算出部１１５（図５）が参照するハフマンテーブルである。
【０１０８】
また、ハフマンテーブル記憶部７６には、累積型ハフマンテーブルが作成されていないときに参照される初期ハフマンテーブルも記憶されている。累積型ハフマンコードは、上述してきたように、フレーム内のブロックが処理される毎に算出される残差に対してハフマンコードが割り当てられる毎に、更新されるテーブルである。よって、累積型ハフマンテーブルは、所定のブロック数が処理されないと作成されない（存在しない）テーブルである。
【０１０９】
累積型ハフマンテーブルが利用できないとき（上述した説明においては、先頭フレームの先頭ブロックが処理されるとき）に用いられるのが初期ハフマンテーブルである。初期ハフマンテーブルは、予め複数の自然画像を利用して作成されたテーブルである。
【０１１０】
このようにして、ハフマンテーブル記憶部７６に記憶されている累積型ハフマンテーブルが更新されると、ステップＳ１７（図９）において、最終ブロックであるか否かが判断される。説明してきたように、処理は、ブロック単位で行われる。そこで、処理対象とされているフレームＮ内から分割されたブロック全てに対して、処理が終了されたか否かが判断される。
【０１１１】
ステップＳ１７において、最終ブロックではないと判断された場合、ステップＳ１１に処理が戻され、それ以降の処理が繰り返される。一方、ステップＳ１７において、最終ブロックであると判断された場合、１フレームの処理が終了されたことを意味しているため、図９に示した１フレームに対する符号化処理は終了される。
【０１１２】
ハフマン符号化について、一般的な説明を加えると、“与えられた情報源の状態を、その生起確率に従って平均符号長が最も短くなるように符号を構成していく方式”である。本実施の形態においては、残差がハフマン符号化されるわけだが、残差として出現する確率（生起確率）が高い残差に対して、短い符号長が割り当てられれば、効率良く符号化が行われることを意味する。
【０１１３】
従来、図１に示したような符号化装置１０においては、ハフマンテーブル記憶部１６に記憶されているハフマンテーブルが用いられて符号化が行われていたが、このハフマンテーブル記憶部１６に記憶されているハフマンテーブルは更新されることがなかった。換言すれば、ハフマンテーブル記憶部１６に記憶されているハフマンテーブルは、自然画像を用いて予め作成されたハフマンテーブルであった。さらに換言するならば、ハフマンテーブル記憶部１６に記憶されているハフマンテーブルは、符号化装置１０で符号化対象とされている画像とは関係のない画像から生成されたハフマンテーブルであった。
【０１１４】
そのために、ハフマンテーブルの作成に用いられた自然画像と、符号化の対象とされている画像と大きく異なるような場合、残差に対して割り当てられるハフマンコードが、符号長が長いハフマンコードが割り当てられてしまい、効率良く符号化を行う（データ量を小さくするような符号化を行う）ことができないことがあった。
【０１１５】
しかしながら、本実施の形態においては、上述したように、ハフマンテーブル記憶部７６（図３）に記憶されるハフマンテーブルは、更新されるようにされている。またその更新は、処理されている画像に基づいて、符号化の処理とともに、順次更新される。よって、ハフマンテーブル記憶部７６に記憶されているハフマンテーブルは、符号化の対象とされている画像に依存したテーブルとすることができる。
【０１１６】
よって、符号化の対象とされている画像に、多く発生する残差には、短い符号長のハフマンコードが割り当てられることになり、効率良く、データ量を小さくすることができる符号化を行うことが可能となる。よって、可逆符号化において高品質、高圧縮を行うことができる。
【０１１７】
すなわち、本実施の形態におけるハフマンテーブル（ハフマンコード）は、処理された画像から作成されるため、処理されている画像に依存するものとすることができる。また、処理が進むにつれて、処理対象とされている画像により依存したハフマンテーブルとされていくため、処理対象とされている画像に最適化されたハフマンテーブルを作成することが可能となる。
【０１１８】
よって、例えば、処理されている画像とは関係のない自然画像から作成されたハフマンテーブルを用いて符号化を行うときと比べて、処理されている画像に依存するハフマンテーブルを用いた符号化を行う本実施の形態における符号化を行うときの方が、符号化された後のデータ量を小さくすることが可能となる。
【０１１９】
［復号化装置の構成および動作］
このような符号化が行われた画像データを受信し、復号化する復号化装置の構成と動作について、次に説明する。
【０１２０】
図１８は、復号化装置の構成例を示す図である。復号化装置５１は、入力端子３１０、データ分解部３１１、フレームメモリ３１２、ハフマンコード規範動き補償部３１３、ハフマンテーブル記憶部３１４、ハフマンコード算出部３１５、残差ハフマン符号化部３１６、残差結合部３１７、ブロック結合部３１８、および、出力端子３１９を含む構成とされている。
【０１２１】
入力端子３１０には、符号化装置３１から動きベクトルのデータと、ハフマン符号化された残差のデータが合成された合成データが供給される。入力端子３１０に供給された合成データは、データ分解部３１１に供給される。データ分解部３１１は、合成データを分解し、動きベクトルのデータを、ハフマンコード規範動き補償部３１３に、残差のデータを、残差ハフマン復号部３１６に、それぞれ供給する。
【０１２２】
ハフマンコード規範動き補償部３１３には、フレームメモリ３１２に記憶されているフレームも供給される。ハフマンコード規範動き補償部３１３は、動きベクトルとフレームを用いて、また、ハフマンテーブル記憶部３１４に記憶されているハフマンテーブルを参照し、処理対象（復号化対象）とされるブロック（予測ブロック）を特定し、残差結合部３１７に供給する。
【０１２３】
残差ハフマン復号化部３１６は、データ分解部３１１からの残差をハフマンテーブル記憶部３１４に記憶されているハフマンテーブルを参照し、復号化する。復号化された残差は、残差結合部３１７に供給される。また、残差ハフマン復号化部３１６は、後述するように、残差の度数分布を作成し、ハフマンコード算出部３１５に供給する。
【０１２４】
ハフマンコード算出部３１５は、供給された度数分布を元に、ハフマンテーブル記憶部３１４に記憶されているハフマンテーブルを更新する。
【０１２５】
残差結合部３１７は、ハフマンコード規範動き補償部３１３からの予測ブロックと、残差ハフマン復号化部３１６からの残差とから、復元されたブロック（真値ブロック）を生成し、ブロック結合部３１８に供給する。ブロック結合部３１８は、供給されたブロックを結合し、１フレームを生成する。生成されたフレームは、出力端子３１９とフレームメモリ３１２に対して供給される。
【０１２６】
出力端子３１９に供給されたフレームは、ディスプレイ３３（図２）に供給される。また、フレームメモリ３１２に供給されたフレームは、記憶されていたフレームに上書きされる。
【０１２７】
次に、復号化部５１を構成する各部について、必要に応じ説明を加える。図１９は、ハフマンコード規範動き補償部３１３の内部構成例を示す図である。ハフマンコード規範動き補償部３１３は、動きベクトル取得部３３１と予測ブロック獲得部３３２から構成されている。
【０１２８】
動きベクトル取得部３３１は、データ分解部３１１から動きベクトルが供給され、その供給された動きベクトルを予測ブロック獲得部３３２に供給する。予測ブロック獲得部３３２には、フレームメモリ３１２からフレームも供給される。フレームメモリ３１２から供給されるフレームは、既に復号化されているフレーム（過去のフレーム）であり、処理対象とされているフレーム（入力端子３１０に入力される合成データが作成されたフレーム（フレームＮとする））よりも１フレーム前のフレーム（以下、フレームＮ−１とする）である。
【０１２９】
予測ブロック獲得部３３２は、フレームＮ−１内から、予測ブロックを動きベクトルを用いて抽出する。抽出された予測ブロックは、残差結合部３１７に供給される。
【０１３０】
図２０は、残差ハフマン復号化部３１６の内部構成例を示す図である。残差ハフマン復号化部３１６は、残差取得部３５１と度数分布作成部３５２から構成されている。残差取得部３５１には、データ分解部３１１から残差が供給され、ハフマンテーブル記憶部３１４からハフマンテーブルが供給される。残差取得部３５１に供給される残差は、ハフマン符号化されているため残差取得部２５１は、供給された残差を、ハフマンテーブルを参照することにより復号化する。
【０１３１】
復号化された残差は、度数分布作成部３５２と残差結合部３１７（図１８）に供給される。度数分布作成部３５２は、残差の度数分布を作成し、ハフマンコード算出部３１５（図１８）に供給する。
【０１３２】
図２１は、ハフマンコード算出部３１５の内部構成例を示す図である。ハフマンコード算出部３１５は、バッファ３７１、度数分布マージ部３７２、出現確率分布取得部３７３、および、ハフマンコード割り当て部３７４を含む構成とされている。バッファ３７１は、度数分布マージ部３７２からの出力を一旦記憶する。バッファ３７１に記憶されているデータは、度数分布マージ部３７２に供給される。
【０１３３】
度数分布マージ部３７２は、残差ハフマン復号化部３１６からの残差の度数分布も供給される。度数分布マージ部３７２は、供給された度数分布を用いて、バッファ３７１に記憶されている度数分布を更新する。更新された度数分布は、バッファ３７１と出現確率分布出力部３７３に供給される。出現確率分布取得部３７３は、供給された度数分布から、所定の残差が出現する確率の分布を作成し、ハフマンコード割り当て部３７４に供給する。
【０１３４】
ハフマンコード割り当て部３７４は、残差にハフマンコードを割り当て、ハフマンテーブル記憶部３１４に供給する。ハフマンテーブル記憶部３１４は、供給されたハフマンコードにより記憶しているハフマンテーブルを更新する。
【０１３５】
図２２は、残差結合部３１７の内部構成例を示す図である。残差結合部３１７は、残差結合処理部３９１を含む構成とされている。残差結合部３１７の残差結合処理部３９１には、ハフマンコード規範動き補償部３１３から予測ブロックと、残差ハフマン復号化部３１６から残差が供給される。残差結合処理部３９１は、供給された予測ブロックと残差から、真値ブロック（すなわち、復号化されたブロック）を生成し、ブロック結合部３１８に供給する。
【０１３６】
次に、復号化部５１の動作について説明する。まず、図２３のフローチャートを参照し、復号化部５１の動作について説明する。
【０１３７】
ステップＳ２１１において、データ分解部３１１（図１８）は、入力端子３１０を介して入力された符号化装置３１からの合成データを受信する。受信される合成データは、動きベクトルと残差が合成された合成データである。データ分解部３１１は、受信された合成データを、動きベクトルのデータと残差のデータとに分解する。分解されたデータの内、動きベクトルのデータは、ハフマンコード規範動き補償部３１３に、残差は、残差ハフマン復号化部３１６に供給される。
【０１３８】
符号化装置３１側で、ステップＳ５４（図１２）やステップＳ９３（図１６）の処理が実行された場合、すなわち、初期ハフマンテーブルが用いられ、差分や残差がハフマンコードに変換された場合、合成データの他に、初期ハフマンテーブルも送信されるように構成されても良いと上述した。このように符号化装置３１が構成されていた場合には、ステップＳ２１１において、初期ハフマンテーブルも、合成データとともに、受信される可能性がある。
【０１３９】
ステップＳ２１１において、初期ハフマンテーブルも受信された場合、その受信された初期ハフマンテーブルは、ハフマンテーブル記憶３１４に供給され、記憶される。
【０１４０】
ステップＳ２１２において、ハフマンコード規範動き補償部３１３は、動きベクトル予測値算出処理を実行する。ステップＳ２１２において実行される動きベクトル予測値算出処理について、図２４のフローチャートを参照して説明する。
【０１４１】
ステップＳ２３１において、ハフマンコード規範動き補償部３１３の動きベクトル取得部３３１（図１９）は、データ分解部３１１からの動きベクトルを取得する。取得された動きベクトルは、予測ブロック獲得部３３２に供給される。予測ブロック獲得部３３２は、ステップＳ２３２において、１フレーム前の画像を読み込む。すなわち、フレームメモリ３１２（図１８）には、既に復号化された画像データが記憶されており、その画像データが読み出される。
【０１４２】
また、読み出されるデータは、復号対象とされているフレームをフレームＮとしたとき、そのフレームＮに対して１フレーム前のフレームである（フレームＮ−１とする）。予測ブロック獲得部３３２は、フレームＮ−１の画像データと動きベクトルから予測ブロックを取得する。
【０１４３】
予測ブロック獲得部３３２は、符号化装置３１の残差算出部７４の予測ブロック獲得部１３１（図６）と同様の処理により、予測ブロックを取得する。符号化装置３１の予測ブロック獲得部１３１も、フレームＮ−１と動きベクトルが供給され、それらのデータから予測ブロックを取得するが、復号化装置３２の予測ブロック獲得部３３２も、供給されるフレームＮ−１と動きベクトルから予測ブロックを取得する。
【０１４４】
例えば、符号化装置３１（図３）で符号化の対象とされたフレームがフレームＮであり、その符号化されたフレームＮを復号化装置３２側で復号するときに、復号化装置３２のフレームメモリ３１２に記憶されているフレームＮ−１は、符号化装置３１でフレームＮを符号化するときにフレームメモリ７２に記憶されているフレームＮ−１と同じである。また、動きベクトルは、同じフレームＮ−１から取得された動きベクトルであるので、同一である。よって、同一のデータを用いて取得される予測ブロックは、符号化装置３１と復号化装置３２とで同一のものとなる。
【０１４５】
このように、また、後述するように、符号化装置３１と復号化装置３２とで同一のデータが用いられて符号化や復号化が行われるため、結果的に、符号化の段階で情報が欠落する（例えば、不可逆符号化のときのように）といったことがなく、高画質を維持した符号化や復号化を行うことが可能となる。
【０１４６】
予測ブロック獲得部３３２により獲得された予測ブロックは、残差結合部３１７に供給される。
【０１４７】
図２３のフローチャートの説明に戻り、ステップＳ２１３において、残差ハフマン復号化部３１６において残差ハフマン復号化処理が実行される。ステップＳ２１３において実行される残差ハフマン復号化処理について、図２５のフローチャートを参照して説明する。
【０１４８】
ステップＳ２５１において、残差ハフマン復号化部３１６の残差取得部３５１（図２０）は、データ分解部３１１から供給される残差のデータを読み込む。読み込まれる残差のデータは、ハフマン符号化されている。ステップＳ２５２において、読み込まれた残差は、先頭フレームの先頭ブロックからの残差であるか否かが判断される。
【０１４９】
ステップＳ２５２において、先頭フレームの先頭ブロックからの残差であると判断された場合、ステップＳ２５３に処理が進められる。ステップＳ２５３において、ハフマンテーブル記憶部３１４から、初期ハフマンテーブルが読み出される。
【０１５０】
一方、ステップＳ２５２において、先頭フレームの先頭ブロックからの残差ではないと判断された場合、ステップＳ２５４に処理が進められる。ステップＳ２５４において、ハフマンテーブル記憶部３１４から、累積型ハフマンテーブルが読み出される。
【０１５１】
この初期ハフマンテーブルは、符号化部４２のハフマンテーブル記憶部７６（図３）に記憶されている初期ハフマンテーブルと同様のテーブルである。また、符号化部４２で符号化対象とされているブロック（ブロックＡとする）が符号化され、復号化部５１の復号の対象となっているときの累積型ハフマンテーブルは、符号化部４２でブロックＡが符号化されるときに、ハフマンテーブル記憶部７６に記憶されている累積型ハフマンテーブルと同様のテーブルである。
【０１５２】
すなわち、符号化側と復号側で、扱うブロックが同一であるときには、同一のハフマンテーブルが読み出され、処理されるように構成されている。
【０１５３】
ステップＳ２５５において、残差取得部３５１は、ステップＳ２５３またはステップＳ２５４において読み出されたハフマンテーブルを用いて、ハフマン符号化されている残差を復号化する。すなわち、残差取得部３５１は、ハフマン符号化されている残差を、読み出したハフマンテーブルを参照し、復号化を行う。復号化された残差は、度数分布作成部３５２に供給される。
【０１５４】
度数分布作成部３５２は、ステップＳ２５６において、残差取得部３５１から供給された残差を含めた度数分布を作成する。度数分布作成部３５２は、符号化部５１の残差ハフマン符号化部７５の度数分布作成部１５１（図７）と同様に、供給された残差を含めた度数分布を作成する。
【０１５５】
ステップＳ２５７において、残差取得部３５１により復号化された残差が、残差結合部３１７に供給され、度数分布作成部３５２により作成された度数分布が、ハフマンコード算出部３１５に供給される。
【０１５６】
度数分布が供給されるハフマンコード算出部３１５の動作について説明する。ハフマンコード算出部３１５は、ステップＳ２１４（図２３）において、ハフマンコード算出処理を実行する。
【０１５７】
ハフマンコード算出部３１５の構成は、符号化部４２のハフマンコード算出部７７と同様である。また、ハフマンコード算出部３１５に供給されるのは、残差であるという点も同じである。よって、ハフマンコード算出部３１５は、図１７に示したフローチャートの処理（符号化部４２のハフマンコード算出部７７が実行する処理）と同様の処理を実行する。
【０１５８】
このように、復号化部５１のハフマンコード算出部３１５は、符号化部４２のハフマンコード算出部７７と同様の構成とされ、同様のデータが供給され、同様の処理を行うことにより、ハフマンテーブル記憶部３１４に記憶されている累積ハフマンテーブルを更新する。このように、ハフマンテーブル記憶部３１４に記憶されているハフマンテーブルは、符号化部４２のハフマンテーブル記憶部７６と同様に更新される。よって、符号化部４２で符号化が行われたときと同様のテーブルが、復号化部５１で復号化が行われるときに記憶されているようにすることができる。
【０１５９】
このように更新されるハフマンテーブルが用いられて、ハフマン符号化されている残差が復号化されるので、符号長が短くなるように符号化された残差を、正確に復号化することができる。
【０１６０】
このようにして、ハフマンコード算出部３１５がハフマンコード算出処理を実行すると、ステップＳ２１５（図２３）に処理が進められる。ステップＳ２１５において、残差結合部３１７（図２２）により、真値算出処理が実行される。ステップＳ２１５における真値算出処理について、図２６のフローチャートを参照して説明する。
【０１６１】
ステップＳ２７１において、残差結合部３１７の残差結合処理部３９１は、残差と予測値を結合する。残差結合処理部３９１には、ハフマンコード規範動き補償部３１３から予測ブロック（予測値）と、残差ハフマン復号化部３１６から残差が供給される。残差結合処理部３９１は、供給された予測ブロック（予測値）と残差を結合することにより、真値（真値ブロック）を算出する。このようにして、所定フレーム内の所定のブロックが復号化される。
【０１６２】
ステップＳ２７２において、復号化されたブロック（算出された真値）は、ブロック結合部３１８（図１８）に供給される。
【０１６３】
ブロック結合部３１８は、ステップＳ２１６（図２３）において、供給されたブロックの結合処理を実行する。ブロック結合部３１８には、上述した処理が繰り返されることにより、順次、復号化されたブロックが供給される。図１１に示したように、符号化される際、所定のフレーム（フレームＮ）は、所定の画素数から構成されるブロックにブロック化され、ブロック単位で符号化が行われた。よって、復号化される際も、ブロック単位で復号化される。その結果、ブロック結合部３１８には、復号化されたブロックが、順次供給されることになる。
【０１６４】
ブロック結合部３１８は、順次供給されるブロックを結合し、１フレームを生成するための処理を実行する。
【０１６５】
ステップＳ２１７において、処理対象とされた（結合された）ブロックは、最終ブロックであったか否かが判断される。換言すれば、１フレームを構成できたか否かが判断される。ステップＳ２１７において、処理対象とされたブロックは、最終ブロックではないと判断された場合、ステップＳ２１１に処理が戻され、それ以降の処理が繰り返される。
【０１６６】
一方、ステップＳ２１７において、処理対象とされたブロックは、最終ブロックであると判断された場合、すなわち、１フレームが構成されたと判断された場合、１フレームを復号化するための処理である、図２３に示したフローチャートの処理は終了される。
【０１６７】
このように、本実施の形態における復号化部５１においては、ハフマンテーブルが、処理されている画像に応じて更新される。よって、効率良い符号化が行われた残差を、効率良く復号化することが可能である。
【０１６８】
本発明を適用することで、高画質で、高圧縮な符号化および復号化を行うことが可能となる。
【０１６９】
なお、上述した実施の形態においては、符号化および復号化の処理が実行される際、ブロックが処理される毎に、ハフマンテーブルが更新されるとして説明した。しかしながら、ハフマンテーブルの更新は、ブロックが処理される毎に行われなくても良い。例えば、１フレーム処理される毎に、ハフマンテーブルが更新されるようにしても良い。更新の頻度は、適宜、設計段階などに適切に設定されることが可能である。
【０１７０】
［記録媒体について］
図２７は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。ＣＰＵ（Central Processing Unit）４０１は、ＲＯＭ（Read Only Memory）４０２、または記憶部４０８に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Random Access Memory）４０３には、ＣＰＵ４０１が実行するプログラムやデータなどが適宜記憶される。これらのＣＰＵ４０１、ＲＯＭ４０２、およびＲＡＭ４０３は、バス４０４により相互に接続されている。
【０１７１】
ＣＰＵ４０１にはまた、バス４０４を介して入出力インタフェース４０５が接続されている。入出力インタフェース４０５には、キーボード、マウス、マイクロホンなどよりなる入力部４０６、ディスプレイ、スピーカなどよりなる出力部４０７が接続されている。ＣＰＵ４０１は、入力部４０６から入力される指令に対応して各種の処理を実行する。そして、ＣＰＵ４０１は、処理の結果を出力部４０７に出力する。
【０１７２】
入出力インタフェース４０５に接続されている記憶部４０８は、例えばハードディスクからなり、ＣＰＵ４０１が実行するプログラムや各種のデータを記憶する。通信部４０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０１７３】
また、通信部４０９を介してプログラムを取得し、記憶部４０８に記憶してもよい。
【０１７４】
入出力インタフェース４０５に接続されているドライブ４１０は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどのリムーバブルメディア４１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部４０８に転送され、記憶される。
【０１７５】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０１７６】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図２７に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ＲＯＭ(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ（Mini-Disc）を含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア４１１、または、プログラムが一時的もしくは永続的に格納されるＲＯＭ４０２や、記憶部４０８を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部４０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１７７】
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１７８】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１７９】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１８０】
【図１】従来の符号化装置の一例の構成を示す図である。
【図２】本発明のシステムの一実施の形態の構成を示す図である。
【図３】符号化部の構成例を示す図である。
【図４】ブロック化部の構成例を示す図である。
【図５】ハフマンコード規範動き推定部の構成例を示す図である。
【図６】残差算出部の構成例を示す図である。
【図７】残差ハフマン符号化部の構成例を示す図である。
【図８】ハフマンコード算出部の構成例を示す図である。
【図９】符号化処理について説明するフローチャートである。
【図１０】ブロック化処理について説明するフローチャートである。
【図１１】ブロック化について説明する図である。
【図１２】動きベクトル検出処理について説明するフローチャートである。
【図１３】動きベクトルについて説明する図である。
【図１４】動きベクトルについて説明する図である。
【図１５】残差算出処理について説明するフローチャートである。
【図１６】残差ハフマン符号化処理について説明するフローチャートである。
【図１７】ハフマンコード算出処理について説明するフローチャートである。
【図１８】復号化部の構成例を示す図である。
【図１９】ハフマンコード規範動き補償部の構成例を示す図である。
【図２０】残差ハフマン復号化部の構成例を示す図である。
【図２１】ハフマンコード算出部の構成例を示す図である。
【図２２】残差結合部の構成例を示す図である。
【図２３】復号処理について説明するフローチャートである。
【図２４】動きベクトル予測値算出処理について説明するフローチャートである。
【図２５】残差ハフマン復号化処理について説明するフローチャートである。
【図２６】真値算出処理について説明するフローチャートである。
【図２７】パーソナルコンピュータの構成例を示す図である。
【符号の説明】
【０１８１】
４２  符号化部，  ５１  復号化部，  ７０  入力端子，  ７１  ブロック化部，  ７２  フレームメモリ，  ７３  ハフマンコード規範動き推定部，  ７４  残差算出部，  ７５  残差ハフマン復号化部，  ７６  ハフマンテーブル記憶部，  ７７  ハフマンコード算出部，  ７８  データ合成部，  ７９  出力端子，  ３１０  入力端子，  ３１１  データ分解部，  ３１２  フレームメモリ，  ３１３  ハフマンコード動き補償部，  ３１４  ハフマンテーブル記憶部，  ３１５  ハフマンコード算出部，  ３１６  残差ハフマン復号化部，  ３１７  残差結合部，  ３１８  ブロック結合部，  ３１９  出力端子
【図１】
2007116246.tif 000003
【図２】
2007116246.tif 000004
【図３】
2007116246.tif 000005
【図４】
2007116246.tif 000006
【図５】
2007116246.tif 000007
【図６】
2007116246.tif 000008
【図７】
2007116246.tif 000009
【図８】
2007116246.tif 000010
【図９】
2007116246.tif 000011
【図１０】
2007116246.tif 000012
【図１１】
2007116246.tif 000013
【図１２】
2007116246.tif 000014
【図１３】
2007116246.tif 000015
【図１４】
2007116246.tif 000016
【図１５】
2007116246.tif 000017
【図１６】
2007116246.tif 000018
【図１７】
2007116246.tif 000019
【図１８】
2007116246.tif 000020
【図１９】
2007116246.tif 000021
【図２０】
2007116246.tif 000022
【図２１】
2007116246.tif 000023
【図２２】
2007116246.tif 000024
【図２３】
2007116246.tif 000025
【図２４】
2007116246.tif 000026
【図２５】
2007116246.tif 000027
【図２６】
2007116246.tif 000028
【図２７】
2007116246.tif 000029