(57)【要約】【課題】静止画像の利用と高圧縮率とが両立する動画圧縮処理を行うことができる動画圧縮装置および動画圧縮プログラムを提供する。【解決手段】画像データが表す静止画像上で見て数値相互における数値の相関が所定程度に達しているか否かや、動画で時間的に隣接した複数の静止画像相互における画像の相関が所定程度に達しているか否かや、推定された圧縮率が所定程度に達しているか否かなどといった基準を用いて、動画で時間的に隣接した複数の静止画像相互の差分データあるいは静止画像上で見て隣接する数値どうしの差分データを適切に選択し、選択したデータに対して圧縮処理が施される。【選択図】        図２
2010021881.tif 000002
【特許請求の範囲】
【請求項１】
数値の連続で静止画像が表現された画像データの連続で動画を表した被圧縮データを構成する画像データに対し、該画像データが表す静止画像上で見て隣接する数値どうしの差分を求めることにより該差分を表す数値の連続からなる第１の差分データを生成する第１の差分生成部と、
前記動画で時間的に隣接した複数の静止画像それぞれを表した複数の画像データを構成する数値のうち該動画の時間軸方向に隣接する数値どうしの差分を求めることにより該差分を表す数値の連続からなる第２の差分データを生成する第２の差分生成部と、
前記第２の差分データあるいは前記第１の差分データを選択するデータ選択部と、
前記データ選択部によって選択されたデータに対して圧縮処理を施す圧縮部とを備えたことを特徴とする動画圧縮装置。
【請求項２】
前記第２の差分データに基づいて、前記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを導出する相関導出部を備え、
前記データ選択部が、前記相関導出部によって導出された相関が所定程度に達しているか否かに応じて、前記第２の差分データあるいは前記第１の差分データを選択するものであることを特徴とする請求項１記載の動画圧縮装置。
【請求項３】
前記相関導出部が、前記第２の差分データを構成する各数値の、差分「０」を表す数値への集中度を、前記相関の強さを表す情報として求めるものであり、
前記データ選択部が、前記集中度が所定程度に達しているか否かに応じて、前記第２の差分データあるいは前記第１の差分データを選択するものであることを特徴とする請求項２記載の動画圧縮装置。
【請求項４】
前記相関導出部が、
前記第２の差分データを構成する数値の連続に従って各数値が入力され、各数値と差分「０」を表す数値との差の絶対値を求める差分器と、
前記差分器によって求められた絶対値に応じたパルス幅を有するパルス信号を生成するパルス信号生成器と、
前記パルス信号の信号強度を積分し、積分結果を、前記相関の強さを表す情報として出力する積分器とを備えたものであり、
前記データ選択部が、前記積分結果が所定程度に達しているか否かに応じて、前記第２の差分データあるいは前記第１の差分データを選択するものであることを特徴とする請求項２または３記載の動画圧縮装置。
【請求項５】
前記第１の差分データを構成する各数値を所定値だけオフセットさせることで、そのオフセットされた数値の連続からなる新たな被圧縮データを生成する第１のオフセット部と、
前記第２の差分データを構成する各数値を所定値だけオフセットさせることで、そのオフセットされた数値の連続からなる新たな被圧縮データを生成する第２のオフセット部とを備え、
前記相関導出部が、前記第２のオフセット部によって生成された新たな被圧縮データに基づいて、前記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを導出するものであり、
前記データ選択部が、前記相関導出部によって導出された相関が所定程度に達しているか否かに応じて、前記第２のオフセット部あるいは前記第１のオフセット部によって生成された新たな被圧縮データを選択するものであり、
前記圧縮部が、前記データ選択部によって選択された被圧縮データに対して圧縮処理を施すものであることを特徴とする請求項２から４のうちいずれか１項記載の動画圧縮装置。
【請求項６】
前記第１の差分生成部が、前記画像データを構成する数値について、前記静止画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた２次元的な差分を求めるものであることを特徴とする請求項１から５のうちいずれか１項記載の動画圧縮装置。
【請求項７】
前記画像データが、所定の単位ビット数で表わされる数値の連続で前記静止画像を表現したものであり、
前記圧縮部が、
前記データ選択部によって選択された被圧縮データの各数値を、前記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、該被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
前記分割部によって分割された上位データに対して可逆圧縮処理を施す上位データ圧縮部を備えたことを特徴とする請求項１から６のうちいずれか１項記載の動画圧縮装置。
【請求項８】
前記上位データ圧縮部が、上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部を備えたものであることを特徴とする請求項７記載の動画圧縮装置。
【請求項９】
前記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
符号と数値を対応づけるテーブルを用いて、前記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることを特徴とする請求項７または８記載の動画圧縮装置。
【請求項１０】
前記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
ハフマンテーブルを用いて、前記第１の符号化部で符号化された後のデータにハフマン符号化を施す第２の符号化部を備えたものであることを特徴とする請求項７から９のうちいずれか１項記載の動画圧縮装置。
【請求項１１】
前記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、該圧縮対象数値と、該圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
前記第１の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
前記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
前記符号割当部で符号が割り当てられたテーブルを用いて、前記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることを特徴とする請求項項７から１０のうちいずれか１項記載の動画圧縮装置。
【請求項１２】
前記分割部によって分割された下位データに対して可逆圧縮処理を施す下位データ圧縮部を備えたことを特徴とする請求項７から１１のうちいずれか１項記載の動画圧縮装置。
【請求項１３】
前記下位データ圧縮部が、符号と数値を対応づけるテーブルを用いて下位データにエントロピー符号化を施すものであることを特徴とする請求項１２記載の動画圧縮装置。
【請求項１４】
前記下位データ圧縮部が、ハフマンテーブルを用いて下位データにハフマン符号化を施すものであることを特徴とする請求項１２または１３記載の動画圧縮装置。
【請求項１５】
前記下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであることを特徴とする請求項１２から１４のうちいずれか１項記載の動画圧縮装置。
【請求項１６】
前記画像データが、所定の単位ビット数で表わされる数値の連続で前記静止画像を表現したものであり、
前記動画を表した被圧縮データを構成する各画像データに対し、該画像データを構成する数値の連続から周期的に数値を間引くことにより、その間引きで該画像データから取り出された数値の連続からなる新たな画像データの連続で動画を表した第１の被圧縮データと、その間引きの残りの数値の連続からなる第２の被圧縮データとを作成する間引き処理部を備え、
前記第１の差分生成部が、前記間引き処理部で作成された第１の被圧縮データを構成する画像データに対し、該画像データが表す静止画像上で見て隣接する数値どうしの差分を求めることにより該差分を表す数値の連続からなる第１の差分データを生成するものであり、
前記第２の差分生成部が、前記間引き処理部で作成された第１の被圧縮データを構成する、時間的に連続した複数の画像データを構成する数値のうち前記動画の時間軸方向に隣接する数値どうしの差分を求めることにより該差分を表す数値の連続からなる第２の差分データを生成するものであり、
さらに、前記静止画像中のエッジ部分を判定する判定部と、
前記間引き処理部で作成された第２の被圧縮データを構成する数値について、前記判定部で判定されたエッジ部分でない場合には、前記単位ビット数よりも少ないビット数の所定符号を出力し、エッジ部分である場合には、その数値を前記単位ビット数以下の少ビット数で表現した数値を出力する非可逆圧縮部とを備えたことを特徴とする請求項１から１５のうちいずれか１項記載の動画圧縮装置。
【請求項１７】
前記非可逆圧縮部が、数値を前記少ビット数で表現するに当たり、前記単位ビット数のビット値の下位桁を切り捨てるものであることを特徴とする請求項１６記載の動画圧縮装置。
【請求項１８】
前記判定部が、前記第１の差分生成部によって求められた差分に基づいて前記静止画像中のエッジ部分を判定するものであることを特徴とする請求項１６または１７記載の動画圧縮装置。
【請求項１９】
プログラムを実行する情報処理装置内に組み込まれて該情報処理装置に動画圧縮処理を実行させる動画圧縮プログラムにおいて、
前記情報処理装置上に、
数値の連続で静止画像が表現された画像データの連続で動画を表した被圧縮データを構成する画像データに対し、該画像データが表す静止画像上で見て隣接する数値どうしの差分を求めることにより該差分を表す数値の連続からなる第１の差分データを生成する第１の差分生成部と、
前記動画で時間的に隣接した複数の静止画像それぞれを表した複数の画像データを構成する数値のうち該動画の時間軸方向に隣接する数値どうしの差分を求めることにより該差分を表す数値の連続からなる第２の差分データを生成する第２の差分生成部と、
前記第２の差分データあるいは前記第１の差分データを選択するデータ選択部と、
前記データ選択部によって選択されたデータに対して圧縮処理を施す圧縮部とを構築することを特徴とする動画圧縮プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画を表した被圧縮データに対して圧縮処理を施す動画圧縮装置および動画圧縮プログラムに関する。
【背景技術】
【０００２】
近年、動画撮影の機能を備えたデジタルカメラが出現するようになったことや、ビデオカメラの小型化・軽量化・低価格化が進んだことで、こうした撮影装置が普及するようになり、多くの人が手軽に動画撮影を楽しめるようになってきた。
【０００３】
また、従来より、記憶容量の低減化や通信量の低減化等のために、画像データ等のデータを圧縮する技術が広く採用されている。
【０００４】
例えば、特許文献１には、動画を構成するフレーム毎に静止画圧縮して、動画を静止画像の連続として処理する技術が提案されている。
【０００５】
また、特許文献２には、動画を構成する各フレーム毎の差分を取り、その差分を圧縮処理する技術が提案されている。
【特許文献１】特開平８−２１４２２２号公報
【特許文献２】特開平８−１４９４７６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１に提案された、静止画像として記録する方式では、各フレームが１枚の独立画像として処理される為、動画中のいずれの瞬間についても静止画像として利用できるという利点を有する。しかし、圧縮処理においてフレーム間の情報を利用しない為、高い圧縮率を得ることができないという問題がある。
【０００７】
また、特許文献２に提案された技術はフレーム間差分情報を記録するので高い圧縮率が期待できるが、動画中のどの瞬間についても、静止画像としての利用が難しい。
【０００８】
また、動画中の定期的時点について静止画像を記録して他の時点はその静止画像を起点としたフレーム間差分を記録することも考えられるが、その定期的時点が、静止画像としての利用に適した瞬間となるとは限らず、利用に適さない静止画像の無駄な記録になってしまうおそれがある。
【０００９】
本発明は、上記事情に鑑み、静止画像の利用と高圧縮率とが両立する動画圧縮処理を行うことができる動画圧縮装置および動画圧縮プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の動画圧縮装置は、
数値の連続で静止画像が表現された画像データの連続で動画を表した被圧縮データを構成する画像データに対し、その画像データが表す静止画像上で見て隣接する数値どうしの差分を求めることによりその差分を表す数値の連続からなる第１の差分データを生成する第１の差分生成部と、
上記動画で時間的に隣接した複数の静止画像それぞれを表した複数の画像データを構成する数値のうちその動画の時間軸方向に隣接する数値どうしの差分を求めることによりその差分を表す数値の連続からなる第２の差分データを生成する第２の差分生成部と、
上記第２の差分データあるいは上記第１の差分データを選択するデータ選択部と、
上記データ選択部によって選択されたデータに対して圧縮処理を施す圧縮部とを備えたことを特徴とする。
【００１１】
ここで、『隣接する数値どうしの差分』とは、１次元的な差分のみならず２次元以上の多次元的な差分も含む意である。以下においても同様である。
【００１２】
また、上記データ選択部による選択は、例えば、上記画像データが表す静止画像上で見て数値相互における数値の相関が所定程度に達しているか否かや、上記動画で時間的に隣接した複数の静止画像相互における画像の相関が所定程度に達しているか否かや、推定された圧縮率が所定程度に達しているか否かなど、どのような基準に応じた選択であってもよい。
【００１３】
ここで、本発明の動画圧縮装置は、
上記第２の差分データに基づいて、上記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを導出する相関導出部を備え、
上記データ選択部が、上記相関導出部によって導出された相関が所定程度に達しているか否かに応じて、上記第２の差分データあるいは上記第１の差分データを選択するものであることが好ましい。
【００１４】
また、上記相関導出部を備えた本発明の動画圧縮装置は、
上記相関導出部が、上記第２の差分データを構成する各数値の、差分「０」を表す数値への集中度を、上記相関の強さを表す情報として求めるものであり、
上記データ選択部が、上記集中度が所定程度に達しているか否かに応じて、上記第２の差分データあるいは上記第１の差分データを選択するものであることが好ましい。
【００１５】
また、上記相関導出部を備えた本発明の動画圧縮装置は、
上記相関導出部が、
上記第２の差分データを構成する数値の連続に従って各数値が入力され、各数値と差分「０」を表す数値との差の絶対値を求める差分器と、
上記差分器によって求められた絶対値に応じたパルス幅を有するパルス信号を生成するパルス信号生成器と、
上記パルス信号の信号強度を積分し、積分結果を、上記相関の強さを表す情報として出力する積分器とを備えたものであり、
上記データ選択部が、上記積分結果が所定程度に達しているか否かに応じて、上記第２の差分データあるいは上記第１の差分データを選択するものであることも好ましい形態である。
【００１６】
また、上記相関導出部を備えた本発明の動画圧縮装置は、
上記第１の差分データを構成する各数値を所定値だけオフセットさせることで、そのオフセットされた数値の連続からなる新たな被圧縮データを生成する第１のオフセット部と、
上記第２の差分データを構成する各数値を所定値だけオフセットさせることで、そのオフセットされた数値の連続からなる新たな被圧縮データを生成する第２のオフセット部とを備え、
上記相関導出部が、上記第２のオフセット部によって生成された新たな被圧縮データに基づいて、上記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを導出するものであり、
上記データ選択部が、上記相関導出部によって導出された相関が所定程度に達しているか否かに応じて、上記第２のオフセット部あるいは上記第１のオフセット部によって生成された新たな被圧縮データを選択するものであり、
上記圧縮部が、上記データ選択部によって選択された被圧縮データに対して圧縮処理を施すものであることが、さらに好ましい。
【００１７】
ここで、上記第１のオフセット部によって生成された新たな被圧縮データは、上記第１の差分生成部によって生成された第１の差分データを構成する各数値を所定値だけオフセットさせたデータであるため、その新たな被圧縮データが表している内容はその第１の差分データが表している内容と同質である。また、上記第２のオフセット部によって生成された新たな被圧縮データは、上記第２の差分生成部によって生成された第２の差分データを構成する各数値を所定値だけオフセットさせたデータであるため、データが表している内容はその第２の差分データが表している内容と同質である。従って、上記データ選択部が、上記第２のオフセット部あるいは上記第１のオフセット部によって生成された新たな被圧縮データを選択するということは、本質的には、このデータ選択部が、上記第２の差分データあるいは上記第１の差分データを選択することにほかならない。
【００１８】
また、本発明の動画圧縮装置は、
上記第１の差分生成部が、上記画像データを構成する数値について、上記静止画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた２次元的な差分を求めるものであることが、より好ましい。
【００１９】
また、本発明の動画圧縮装置は、
上記画像データが、所定の単位ビット数で表わされる数値の連続で上記静止画像を表現したものであり、
上記圧縮部が、
上記データ選択部によって選択された被圧縮データの各数値を、上記単位ビット数よりも小さい所定の分割ビット数のところで上位ビット部分と下位ビット部分とに分けることによって、その被圧縮データを、各数値における上位ビット部分の連続からなる上位データと各数値の下位ビット部分の連続からなる下位データとに分割する分割部と、
上記分割部によって分割された上位データに対して可逆圧縮処理を施す上位データ圧縮部を備えたことが好適である。
【００２０】
また、上記上位データ圧縮部を備えた動画圧縮装置は、
上記上位データ圧縮部が、上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部を備えたものであることが好ましい。
【００２１】
また、上記上位データ圧縮部を備えた動画圧縮装置は、
上記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
符号と数値を対応づけるテーブルを用いて、上記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることが、より好ましい。
【００２２】
また、上記上位データ圧縮部を備えた動画圧縮装置は、
上記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
ハフマンテーブルを用いて、上記第１の符号化部で符号化された後のデータにハフマン符号化を施す第２の符号化部を備えたものであってもよい。
【００２３】
また、上記上位データ圧縮部を備えた動画圧縮装置は、
上記上位データ圧縮部が、
上位データ中、１つもしくは複数の所定の圧縮対象数値を除く数値についてはそのまま出力するとともに、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力する第１の符号化部と、
上記第１の符号化部で符号化された後のデータ中に出現する数値のヒストグラムを求めるヒストグラム算出部と、
上記ヒストグラム算出部で求められたヒストグラムに基づき、符号と数値を対応づけるテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる符号割当部と、
上記符号割当部で符号が割り当てられたテーブルを用いて、上記第１の符号化部で符号化された後のデータにエントロピー符号化を施す第２の符号化部を備えたものであることが、より好ましい。
【００２４】
また、上記分割部を備えた動画圧縮装置は、
上記分割部によって分割された下位データに対して可逆圧縮処理を施す下位データ圧縮部を備えたことが好適である。
【００２５】
また、上記下位データ圧縮部を備えた動画圧縮装置は、
上記下位データ圧縮部が、符号と数値を対応づけるテーブルを用いて下位データにエントロピー符号化を施すものであることが好ましい。
【００２６】
また、上記下位データ圧縮部を備えた動画圧縮装置は、
上記下位データ圧縮部が、ハフマンテーブルを用いて下位データにハフマン符号化を施すものであってもよい。
【００２７】
また、上記下位データ圧縮部を備えた動画圧縮装置は、
上記下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであることも好適である。
【００２８】
また、本発明の動画圧縮装置は、
上記画像データが、所定の単位ビット数で表わされる数値の連続で上記静止画像を表現したものであり、
上記動画を表した被圧縮データを構成する各画像データに対し、その画像データを構成する数値の連続から周期的に数値を間引くことにより、その間引きでその画像データから取り出された数値の連続からなる新たな画像データの連続で動画を表した第１の被圧縮データと、その間引きの残りの数値の連続からなる第２の被圧縮データとを作成する間引き処理部を備え、
上記第１の差分生成部が、上記間引き処理部で作成された第１の被圧縮データを構成する画像データに対し、その画像データが表す静止画像上で見て隣接する数値どうしの差分を求めることによりその差分を表す数値の連続からなる第１の差分データを生成するものであり、
上記第２の差分生成部が、上記間引き処理部で作成された第１の被圧縮データを構成する、時間的に連続した複数の画像データを構成する数値のうち上記動画の時間軸方向に隣接する数値どうしの差分を求めることによりその差分を表す数値の連続からなる第２の差分データを生成するものであり、
さらに、上記静止画像中のエッジ部分を判定する判定部と、
上記間引き処理部で作成された第２の被圧縮データを構成する数値について、上記判定部で判定されたエッジ部分でない場合には、上記単位ビット数よりも少ないビット数の所定符号を出力し、エッジ部分である場合には、その数値を上記単位ビット数以下の少ビット数で表現した数値を出力する非可逆圧縮部とを備えたことが好ましい。
【００２９】
ここで、上記所定符号には、０ビットの符号（即ち実質的には何も出力しない状態）も含まれる。このように０ビットの符号が用いられる場合に対する復号化は、例えば次のような手順で行われる。即ち、復号化された第１の被圧縮データに基づいてエッジ部分であるか否かを確認し、エッジ部分である場合には上記少ビット数の数値から第２の被圧縮データを復号化し、エッジ部分でない場合には第１の被圧縮データを用いた補間処理により第２の被圧縮データに対応したデータを生成する。
【００３０】
また、上記非可逆圧縮部を備えた動画圧縮装置は、
上記非可逆圧縮部が、数値を上記少ビット数で表現するに当たり、上記単位ビット数のビット値の下位桁を切り捨てるものであってもよい。
【００３１】
また、上記判定部を備えた動画圧縮装置は、
上記判定部が、上記第１の差分生成部によって求められた差分に基づいて上記静止画像中のエッジ部分を判定するものであることが好ましい。
【００３２】
上記目的を達成する本発明の動画圧縮プログラムは、
プログラムを実行する情報処理装置内に組み込まれてその情報処理装置に動画圧縮処理を実行させる動画圧縮プログラムにおいて、
上記情報処理装置上に、
数値の連続で静止画像が表現された画像データの連続で動画を表した被圧縮データを構成する画像データに対し、その画像データが表す静止画像上で見て隣接する数値どうしの差分を求めることによりその差分を表す数値の連続からなる第１の差分データを生成する第１の差分生成部と、
上記動画で時間的に隣接した複数の静止画像それぞれを表した複数の画像データを構成する数値のうちその動画の時間軸方向に隣接する数値どうしの差分を求めることによりその差分を表す数値の連続からなる第２の差分データを生成する第２の差分生成部と、
上記第２の差分データあるいは上記第１の差分データを選択するデータ選択部と、
上記データ選択部によって選択されたデータに対して圧縮処理を施す圧縮部とを構築することを特徴とする。
【００３３】
なお、本発明にいう動画圧縮プログラムについては、ここではその基本形態のみを示すのにとどめるが、これは単に重複を避けるためであり、本発明にいう動画圧縮プログラムには、上記の基本形態のみではなく、前述した動画圧縮装置の各形態に対応する各種の形態が含まれる。
【００３４】
また、本発明の動画圧縮プログラムがコンピュータ上に構成する第１の差分生成部などといった要素は、１つの要素が１つのプログラム部品によって構築されるものであってもよく、１つの要素が複数のプログラム部品によって構築されるものであってもよく、複数の要素が１つのプログラム部品によって構築されるものであってもよい。また、これらの要素は、そのような作用を自分自身で実行するものとして構築されてもよく、あるいは、コンピュータに組み込まれている他のプログラムやプログラム部品に指示を与えて実行するものとして構築されても良い。
【発明の効果】
【００３５】
上記本発明の動画圧縮装置ないし動画圧縮プログラムによれば、例えば、上記画像データが表す静止画像上で見て数値相互における数値の相関が所定程度に達しているか否かや、上記動画で時間的に隣接した複数の静止画像相互における画像の相関が所定程度に達しているか否かや、推定された圧縮率が所定程度に達しているか否かなどといった基準を用いて、上記第２の差分データあるいは上記第１の差分データを適切に選択し、選択したデータに対して圧縮処理を施すことができるため、適宜な静止画像の利用と、適宜な高圧縮率とが両立する。
【００３６】
また、上記相関導出部を備え、上記データ選択部が、上記相関導出部によって導出された相関が所定程度に達しているか否かに応じて、上記第２の差分データあるいは上記第１の差分データを選択するものであると、動画で時間的に隣接した複数の静止画像相互における画像の相関の強さが強い場合には、それらの静止画像相互の差分データに圧縮処理が施され、その相関の強さが弱い場合には、静止画像上で見て隣接する数値どうしの差分データに対して圧縮処理が施されるため好ましい。これにより、動画中で画像が大きく切り替わる時点では、必ず静止画像が記録され、このような時点を除く他の時点では、フレーム間の情報が利用されて高い圧縮率となる。また、動画中で画像が大きく切り替わる時点は、静止画像としての利用が望まれる可能性が高い時点であるので、静止画像の利用に適した動画圧縮を実現できる。
【００３７】
また、上記相関導出部が、相関の強さを表す情報として差分「０」への集中度を求めるものであると、相関の強さが容易かつ正確に求められる。
【００３８】
さらに、上記相関導出部が差分器や積分器などを備えると、簡易な回路による高速処理で相関の強さが求められる。
【００３９】
また、第１の差分生成部が、画像データを構成する数値の連続について差分を求める際に、２次元的な差分を求めるものであると、差分ゼロの頻度が増して可逆圧縮による圧縮がより一層効率よくなる。
【００４０】
また、上記圧縮部が、分割部などを備え上位データと下位データとを分けて処理する形態によれば、後で詳述するように、データ中の数値の分布傾向が顕著に異なっている上位データと下位データとで、各々に適した可逆な処理を施すことができ、画質と圧縮率とのより高レベルでの両立が図られる。また、このような上位データおよび下位データは、アルゴリズムが単純な可逆圧縮処理で大幅な圧縮が期待できるため圧縮の処理時間が短い。
【００４１】
また、上記の上位データ圧縮部が第１の符号化部を備えると、圧縮対象数値のみが、その圧縮対象数値と連続数とを表わす数値とに符号化されるため、原データよりも冗長度が増すという事態が回避され、圧縮率が向上する。
【００４２】
また、上記の上位データ圧縮部が第２の符号化部を備えると、エントロピー符号化（典型的にはハフマン符号化）による、圧縮率の更なる向上が見込まれる。
【００４３】
さらに、上記の上位データ圧縮部が、ヒストグラム算出部と符号割当部とを備え、第２の符号化部が、符号割当部で符号が割り当てられたテーブルを用いてエントロピー符号化（例えばハフマン符号化）を施すものであると、符号の割り当てが固定されたテーブルを用いたエントロピー符号化と比べ、圧縮率をさらに大きく向上させることができる。
【００４４】
また、上記可逆圧縮部が下位データ圧縮部を備えると、下位データについても適切な可逆圧縮が施されて圧縮率が向上する。
【００４５】
また、上記の下位データ圧縮部が、エントロピー符号化を施すものであると、エントロピー符号化（典型的にはハフマン符号化）による、圧縮率の更なる向上が見込まれる。
【００４６】
さらに、上記の下位データ圧縮部が、圧縮省略の指示を受けて下位データを無圧縮で出力するものであると、そのような指示によってより高速な圧縮処理を選択することができる。
【００４７】
また、間引き処理部などを備えた形態によれば、上記非可逆圧縮部が、第２の被圧縮データを圧縮する際に、画像中のエッジであるか否かで圧縮方式を切り換えるので、非エッジ部分では大幅な圧縮を実現すると共に、エッジ部分については圧縮を控えることで画質を維持することができる。
【００４８】
また、上記非可逆圧縮部が、下位桁を切り捨てるものであると演算が不要となり変換が容易である。
【００４９】
また、上記判定部が、第１の差分生成部によって求められた差分に基づいて前記静止画像中のエッジ部分を判定するものであるとエッジ判定が容易であり、更に、差分が２次元的な差分であると、エッジ部分の判定はより確からしくなる。
【発明を実施するための最良の形態】
【００５０】
以下、本発明の実施形態について説明する。
【００５１】
図１は、ＵＳＢを利用したカメラシステム１の概略図である。
【００５２】
図１に示すカメラシステム１は、ＵＳＢカメラ２とＵＳＢケーブル３とパーソナルコンピュータ４とを備えている。
【００５３】
ＵＳＢカメラ２は、画像データを圧縮して転送する機能を有したものである。このＵＳＢカメラ２が、本発明の動画圧縮装置の一実施形態である。
【００５４】
パーソナルコンピュータ４は、ＵＳＢケーブル３を介してＵＳＢカメラ２から送信されてきた圧縮画像データを受信し、受信した圧縮画像データを伸長する機能を有している。
【００５５】
図２は、図１のＵＳＢカメラ２の内部ブロック図である。
【００５６】
図２に示すＵＳＢカメラ２は、撮影を実行する撮影部２０、圧縮処理を実行する圧縮処理部５００Ａを備えている。
【００５７】
撮影部２０は、対物レンズ２０１とフォーカスレンズ２０２と、これらレンズを経由した被写体光が結像されるＣＣＤ２０３と、ビットマップ生成回路２０４とを備えている。
【００５８】
ビットマップ生成回路２０４は、ＣＣＤ２０３から出力されてきた、ＣＣＤ配列に則したＢａｙｅｒパターン画像又は、各色（Ｒ色、Ｇ色、Ｂ色）毎のアナログ信号にサンプリングホールドおよびゲイン調整等の画像処理をそれぞれ行った後、不図示のＡ／Ｄコンバータによりそれぞれをデジタル信号に変換し、さらに必要ならばラスターイメージに変換することで各色毎のビットマップデータを生成する。
【００５９】
ビットマップ生成回路２０４でビットマップに展開されて圧縮処理部５００Ａに入力された画像データＤ０（即ちフレームを表したデータ）は可逆圧縮処理が施される。
【００６０】
ここで、圧縮処理部５００Ａには、可逆圧縮処理を実行するための各部として、第１差分符号化部１５１０、第１オフセット部１５２０、第２差分符号化部１５１５、第２オフセット部１５２５、第１プレーン分割部１５３０、第１Ｌプレーン圧縮部１５４０、第１Ｈプレーン圧縮部１５５０、第１相関導出部１５７０、および第１データ選択部１５８０が備えられている。
【００６１】
圧縮処理部５００Ａ内の各部の詳細は後述するが、この圧縮処理部５００Ａ内での圧縮処理の流れは以下のとおりである。
【００６２】
圧縮処理部５００Ａ内に入力される画像データＤ０は、８ビットの数値の連続で静止画像が表現された画像データの連続で動画を表しており、この画像データＤ０が圧縮処理部５００Ａに入力されると、圧縮処理部５００Ａ内の第１差分符号化部１５１０および第２差分符号化部１５１５に入力される。
【００６３】
画像データＤ０が第１差分符号化部１５１０に入力されると、２次元差分符号化処理、すなわち、入力されてきた画像データＤ０を構成する画像データに対し、この画像データを構成する数値の連続について、その画像データが表す静止画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた２次元的な差分を求めることによりその差分を表わす８ビットの数値の連続からなる画像データを生成する処理が行われる。第１差分符号化部１５１０で生成された、差分を表わす数値の連続からなる画像データは、次に、第１オフセット部１５２０に入力されて所定量のオフセットが施される。この第１差分符号化部１５１０は、本発明にいう第１の差分生成部の一例に相当し、この第１オフセット部１５２０は、本発明にいう第１のオフセット部の一例に相当する。尚、第１のオフセット部１５２０によって生成された新たな画像データは、第１差分符号化部１５１０で生成された画像データを構成する各数値を所定値だけオフセットさせたデータであるため、差分を表しているという本質には変わりはなく、第１差分符号化部１５１０で生成された画像データと同等のデータである。
【００６４】
また、画像データＤ０が第２差分符号化部１５１５に入力されると、上記動画で時間的に隣接した複数の静止画像（フレーム）それぞれを表した複数の画像データを構成する数値のうちその動画の時間軸方向に隣接する数値どうしの差分を求めることによりその差分を表す８ビットの数値の連続からなる画像データを生成する処理が行われる。第２差分符号化部１５１５で生成された、差分を表わす数値の連続からなる画像データは、次に、第２オフセット部１５２５に入力されて所定量のオフセットが施される。この第２差分符号化部１５１５は、本発明にいう第２の差分生成部の一例に相当し、この第２オフセット部１５２５は、本発明にいう第２のオフセット部の一例に相当する。尚、第２のオフセット部１５２５によって生成された新たな画像データは、第２差分符号化部１５１５で生成された画像データを構成する各数値を所定値だけオフセットさせたデータであるため、差分を表しているという本質には変わりがなく、第２差分符号化部１５１５で生成された画像データと同等のデータである。
【００６５】
第１相関導出部１５７０では、第２オフセット部１５２５によって生成された新たな画像データに基づいて、上記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを導出する。具体的には、第１相関導出部１５７０による導出では、オフセット後の画像データを構成する各数値のオフセット値への集中度が求められる。後述するように、フレーム間の相関の強さが強いほどオフセット値への数値の集中度が高くなるので、この集中度は相関の強さを表すよい指標となる。第１相関導出部１５７０には、第１相関導出部１５７０による導出に先立ち、圧縮処理部５００Ａにおける圧縮処理を適用する画像データを選択する基準となる閾値があらかじめ入力されており、第１データ選択部１５８０は、第１相関導出部１５７０によって導出された相関（即ちオフセット値への集中度）が閾値に達しているときは第２オフセット部１５２５によって生成された新たな画像データを選択し、第１相関導出部１５７０によって導出された相関が閾値に達していないときは第１オフセット部１５２０によって生成された新たな画像データを選択する。この第１相関導出部１５７０は、本発明にいう相関導出部の一例に相当し、この第１データ選択部１５８０は、本発明にいうデータ選択部の一例に相当する。尚、ここでは、第１データ選択部１５８０が、第２のオフセット部１５２５あるいは第１のオフセット部１５２０によって生成された新たな画像データを選択しているが、この選択は、第２差分符号化部１５１５あるいは第１差分符号化部１５１０で生成された画像データを結果として選択していることにほかならない。
【００６６】
第１プレーン分割部１５３０では、第１データ選択部１５８０によって選択された画像データ中の８ビットの各数値が、下位ビットと上位ビットとに分けられることにより、画像データが、下位ビットの数値の連続からなる下位サブプレーン１Ｄ１Ｌと上位ビットの数値の連続からなる上位サブプレーン１Ｄ１Ｈとに分割される。この第１プレーン分割部１５３０は、本発明にいう分割部の一例に相当する。また、下位サブプレーン１Ｄ１Ｌおよび上位サブプレーン１Ｄ１Ｈは、それぞれ、本発明にいう下位データおよび上位データの各一例に相当する。
【００６７】
第１プレーン分割部１５３０で分割された下位サブプレーン１Ｄ１Ｌおよび上位サブプレーン１Ｄ１Ｈは、それぞれ、第１Ｌプレーン圧縮部１５４０および第１Ｈプレーン圧縮部１５５０において可逆圧縮が施される。これら第１Ｌプレーン圧縮部１５４０および第１Ｈプレーン圧縮部１５５０は、それぞれ、本発明にいう下位データ圧縮部および上位データ圧縮部の各一例に相当する。
【００６８】
第１Ｌプレーン圧縮部１５４０にはハフマン符号化部１５４１が備えられており、ハフマン符号化部１５４１では、数値と符号とを対応づけるハフマンテーブルに従って、そのハフマン符号化部１５４１に入力されてきた下位サブプレーン１Ｄ１Ｌを構成する数値をそのハフマンテーブルに従う符号に置き換える符号化処理が行われる。このハフマン符号化は、エントロピー符号化の一種である。なお、第１Ｌプレーン圧縮部１５４０にはモード切換部１５４２が組み込まれており、このモード切換部１５４２は、ユーザから、高速モードと通常モードとの切り換えを指示されて、上記のハフマン符号化部１５４１によるハフマン符号化を経る通常モードと、ハフマン符号化を省略して下位サブプレーン１Ｄ１Ｌをそのまま出力する高速モードとを切り換える。従って、最終的に第１Ｌプレーン圧縮部１５４０からは、通常モードの場合には、下位サブプレーン１Ｄ１Ｌがハフマン符号化により圧縮された下位圧縮データ１Ｄ２Ｌが出力され、高速モードの場合には、ハフマン符号化が施されていない下位圧縮データ１Ｄ２Ｌが出力されることになる。
【００６９】
一方、第１Ｈプレーン圧縮部５５０には、ランレングス符号化部１５５１と、データスキャニング部１５５２と、ハフマン符号化部１５５３が備えられており、上位サブプレーン１Ｄ１Ｈは、第１Ｈプレーン圧縮部１５５０中のランレングス符号化部１５５１に入力される。
【００７０】
第１Ｈプレーン圧縮部１５５０中のランレングス符号化部１５５１は、先ず、入力されてきた上位サブプレーン１Ｄ１Ｈのデータの中から１つもしくは複数の圧縮対象数値の存在及び同一の圧縮対象数値の連続数が検出される。次いで、ランレングス符号化部１５５１では、その検出結果を受けて、上位サブプレーン１Ｄ１Ｈのデータ中、圧縮対象数値を除く数値についてはそのまま出力すると共に、圧縮対象数値については、その圧縮対象数値と、その圧縮対象数値と同一の圧縮対象数値の連続数を表わす数値とに符号化して出力するという符号化処理が行なわれる。このランレングス符号化部１５５１では、その符号化処理にあたっては、同一の圧縮対象数値の連続数に応じ、その連続数を異なるビット数で表現する符号化が行なわれる。ここでは、具体的には、同一の圧縮対象数値の連続数が所定数以下のときはその連続数を１単位ビット数で表現し、その連続数が所定数を越えるときは２単位ビット数で表現する符号化が行なわれる。本実施形態では、第１Ｈプレーン圧縮部１５５０中のランレングス符号化部１５５１が、本発明にいう第１の符号化部の一例に相当する。
【００７１】
また、第１Ｈプレーン圧縮部１５５０中のランレングス符号化部１５５１での符号化後のデータは、次に、データスキャニング部１５５２とハフマン符号化部１５５３との双方に入力される。データスキャニング部１５５２では、ランレングス符号化部１５５１で符号化された後のデータの全てをスキャニングして、そのデータ中に出現する全ての数値の出現頻度（ヒストグラム）が求められる。ここで、この出現頻度を求める処理は、本実施形態では、図２に示す上位サブプレーン１Ｄ１Ｈのデータ１つずつを単位として実行され、各上位サブプレーン１Ｄ１Ｈの、ランレングス符号化部１５５１で符号化された後のデータ中の数値の出現頻度が求められる。さらに、データスキャニング部１５５２では、求められたデータヒストグラム（数値の出現頻度）に基づき、ハフマンテーブルに、出現頻度の高い数値ほど符号長の短かい符号を割り当てる。このデータスキャニング部１５５２が、本発明にいうヒストグラム算出部および符号割当部の各一例を兼ね備えたものに相当する。
【００７２】
データスキャニング部１５５２で数値に符号が割り当てられてなるハフマンテーブルは、ハフマン符号化部１５５３に渡され、ハフマン符号化部１５５３では、その渡されたハフマンテーブルに従って、そのハフマン符号化部１５５３に入力されてきたデータを構成する数値を、そのハフマンテーブルに従う符号、すなわち、出現頻度の高い数値ほど短かいビット長で表わされる符号に置き換える符号化処理が行われる。このハフマン符号化部１５５３は、本発明にいう第２の符号化部の一例に相当する。
【００７３】
ハフマン符号化部１５５３でハフマン符号化された後のデータは、データスキャニング部１５５２で割り当てられた数値と符号との割当テーブルを含む圧縮情報が添付され、上位サブプレーン１Ｄ１Ｈが圧縮された上位圧縮データ１Ｄ２Ｈとして第１Ｈプレーン圧縮部１５５０から出力される。
【００７４】
このように第１Ｌプレーン圧縮部１５４０および第１Ｈプレーン圧縮部１５５０のそれぞれから出力される下位圧縮データ１Ｄ２Ｌと上位圧縮データ１Ｄ２Ｈとの組で、元の画像データに対する可逆圧縮処理が施された圧縮データが構成される。この圧縮データは、ＵＳＢケーブル３を介して図１のパーソナルコンピュータ４に向けて送信される。
【００７５】
パーソナルコンピュータ４に送られてきた圧縮データは、パーソナルコンピュータ４においてデータ伸長処理が施される。ここで、データ伸長処理にあたっては、上述した各種の符号化処理に対応する復号化処理が施される。そして、復号化処理後の画像データに基づき、パーソナルコンピュータ４の表示画面上に画像が表示される。
【００７６】
以上説明したような画像データの圧縮処理と復号化処理が繰り返し行われることで、パーソナルコンピュータ４の表示画面上にはリアルタイムで画像が表示される。
【００７７】
次に、図２の圧縮処理部５００Ａでの可逆圧縮処理について詳しく説明する。
【００７８】
図３は、図２の圧縮処理部５００Ａに入力される画像データの構造を示す図、図４は、この画像データに対して２次元差分符号化処理が施された後のデータの構造を示す図である。
【００７９】
画像データで表される静止画像は、所定の主走査方向に画素がＭ個並んでなるラインが、その主走査方向とは直角な副走査方向にＮライン並ぶことによって構成されており、このような構成を反映してその画像データも、図３に示すように、主走査方向（図の左右方向）に画素値がＭ個並んでなるラインが、副走査方向（図の上下方向）にＮライン並んでいるという構造を備えている。この図では、上からｎ番目のライン中の、左からｍ番目の画素値はＰｎ，ｍと表記されており、この表記法を用いて、副走査方向にｎ番目のラインについては、主走査方向に並ぶ各画素の画素値が、その並び順に、
Ｐｎ，１，Ｐｎ，２，…，Ｐｎ，ｍ−１，Ｐｎ，ｍ，…，Ｐｎ，Ｍ−２，Ｐｎ，Ｍ−１，Ｐｎ，Ｍ
と表されている。これらの画素値は、１６進表示で表された数値である。
【００８０】
ここで、図２に示す圧縮処理部５００Ａを構成する第１差分符号化部１５１０には、上記のような画像データが入力されて２次元差分符号化処理が施され、主走査方向に隣接する画素どうしの差分における副走査方向での更なる差分が求められる。
【００８１】
図４には、２次元差分符号化処理が施されたデータの構造が示されており、このデータも、２次元差分符号化後の画素値が主走査方向にＭ個並んでなるラインが、副走査方向にＮライン並んでいるという構造を備えている。この図では、上からｎ番目のライン中の、左からｍ番目の、２次元差分符号化後の画素値は、Ｘｎ，ｍと表記されており、この２次元差分符号化後の画素値Ｘｎ，ｍは、図３の中央部に示す、２次元差分符号化前の４つの画素値｛Ｐｎ−１，ｍ−１，Ｐｎ−１，ｍ，Ｐｎ，ｍ−１，Ｐｎ，ｍ｝から、下記の変換式によって得られる。
Ｘｎ，ｍ＝（Ｐｎ，ｍ−Ｐｎ，ｍ−１）−（Ｐｎ−１，ｍ−Ｐｎ−１，ｍ−１）                …（１）
ここで、ｎ＝１の場合やｍ＝１の場合には、右辺の２次元差分符号化前の画素値の添え字に０が現れることとなるが、添え字が０となる画素値については、下記のように定義する。
Ｐ０，０＝Ｐ０，ｍ＝００  （ｍ＝１〜Ｍ），  Ｐｎ，０＝Ｐｎ−１，Ｍ  （ｎ＝１〜Ｎ）…（２）  ここで、式（２）の「００」は、画素値を１６進表示で表したときに値がゼロであることを表している。以下、式（１）および式（２）の意味について簡単に説明する。
【００８２】
式（１）は、主走査方向に隣接する画素どうしの差分（すなわち、カッコの中の値）における副走査方向での更なる差分によって２次元差分符号化後の画素値Ｘｎ，ｍが得られることを表しており、２次元差分符号化前の画素値Ｐｎ，ｍが隣接する画素の画素値と相関が強い（すなわち同じような大きさの画素値である）場合には、２次元差分符号化後の画素値Ｘｎ，ｍは、ゼロに近い値となる。
【００８３】
式（２）は、副走査方向の仮想的な０番目のラインと、各ラインの左から０番目の仮想的な画素値とを新たに設けたときの各画素値の定義を表す式である。主走査方向については左端の画素値（左から０番目の画素値Ｐｎ，０）とそのラインより１ライン前のラインの右端の画素値Ｐｎ−１，Ｍとを同一視するという定義となっている。また、副走査方向については、図の一番上側の画素値（０番目のライン上の画素値）、すなわち、Ｐ０，０やＰ０，ｍが全て０に固定された定義となっている。
【００８４】
２次元差分符号化後のデータにおいて、１ライン目の画素値、および各ラインの１番目の画素値については、式（１）の変換式の右辺に、添え字が「０」である項が現れるため、式（２）の定義が適用されることとなる。具体的には上記の式（１）および式（２）により、２次元差分符号化後の１ライン目の画素値は、
Ｘ１，１＝Ｐ１，１，
Ｘ１，２＝Ｐ１，２−Ｐ１，１，
Ｘ１，３＝Ｐ１，３−Ｐ１，２，
…………
Ｘ１，Ｍ＝Ｐ１，Ｍ−Ｐ１，Ｍ−１
のように表される。
【００８５】
一方、２次元差分符号化後のデータにおいて、各ラインの１番目の画素値については、上記の式（２）により、
Ｘ１，１＝Ｐ１，１，
Ｘ２，１＝（Ｐ２，１−Ｐ１，Ｍ）−Ｐ１，１，
Ｘ３，１＝（Ｐ３，１−Ｐ２，Ｍ）−（Ｐ２，１−Ｐ１，Ｍ），
…………
ＸＮ，１＝（ＰＮ，１−ＰＮ−１，Ｍ）−（ＰＮ−１，１−ＰＮ−２，Ｍ）
のように表される。このように、１ライン目の画素値、および各ラインの１番目の画素値については、その変換の仕方がやや特殊であるが、これらの画素値以外の画素値については、式（２）の定義が適用されることなく、式（１）がそのまま適用される。例えば、２ライン目の画素値のうち一番左端を除いた画素値は、
Ｘ２，２＝（Ｐ２，２−Ｐ２，１）−（Ｐ１，２−Ｐ１，１），
Ｘ２，３＝（Ｐ２，３−Ｐ２，２）−（Ｐ１，３−Ｐ１，２），
…………
Ｘ２，Ｍ＝（Ｐ２，Ｍ−Ｐ２，Ｍ−１）−（Ｐ１，Ｍ−Ｐ１，Ｍ−１）
のように表される。
【００８６】
この２次元差分符号化処理を、具体的な数値を用いて説明する。
【００８７】
図５は、図２の圧縮処理部５００Ａを構成する第１差分符号化部１５１０における２次元差分符号化処理を例示して示す図である。
【００８８】
この図の左側（パート（Ａ））に示す各数値が画像データを構成する画素値であり、この図の右側（パート（Ｂ））に示す各数値が２次元差分符号化処理で出力される出力値である。この図の横方向が主走査方向であり、主走査方向に並んだ８つの数値の並びが上記のラインである。この図に示すデータにはこうした８つの数値が並んだラインが全部で８本あり、図３および図４のデータにおいてＮ＝８，Ｍ＝８の場合のデータに相当する。
【００８９】
図５のパート（Ａ）に示すデータの２次元差分符号化処理では、先ず、１ライン目の各画素値「９０  ８Ａ  ８Ａ  ７Ｂ  …」のうち、一番左の「９０」については、この値がそのまま上記のＸ１，１として出力され、それ以外のＸ１，２，Ｘ１，３，…については、主走査方向に隣接する画素値どうしの差分の値「８Ａ−９０＝ＦＡ」「８Ａ−８Ａ＝００」…が出力される。ここで、「８Ａ」から「９０」を引き算した結果は実際には負の数となり、９ビットで「１ＦＡ」と表されるが、ＭＳＢの１ビットである最上位の「１」は省略し、下位８ビットである「ＦＡ」のみを出力する。
【００９０】
２ライン目については、Ｘ２，１を求める式、
Ｘ２，１＝（Ｐ２，１−Ｐ１，Ｍ）−Ｐ１，１
において、Ｍ＝８としたときの右辺の｛Ｐ２，１，Ｐ１，８，Ｐ１，１｝に対し、図５のパート（Ａ）に示す数値が代入されて、「（８７−５８）−９０＝９Ｆ」がＸ２，１として出力される。それ以外のＸ２，２，Ｘ２，３，…については、２ライン目についての主走査方向に隣接する画素値どうしの差分と、１ライン目についての主走査方向に隣接する画素値どうしの差分とのさらなる差分の値「（８４−８７）−（８Ａ−９０）＝３」「（８８−８４）−（８Ａ−８Ａ）＝０４」…が出力される。
【００９１】
３ライン目については、Ｘ３，１を求める式、
Ｘ３，１＝（Ｐ３，１−Ｐ２，Ｍ）−（Ｐ２，１−Ｐ１，Ｍ）
において、Ｍ＝８としたときの右辺の｛Ｐ３，１，Ｐ２，８，Ｐ２，１，Ｐ１，８｝に、図５のパート（Ａ）に示す数値が代入されて、「（８Ｂ−４Ｃ）−（８７−５８）＝１０」がＸ３，１として出力される。それ以外のＸ３，２，Ｘ３，３，…については、３ライン目についての主走査方向に隣接する画素値どうしの差分と、２ライン目についての主走査方向に隣接する画素値どうしの差分とのさらなる差分の値「（８６−８Ｂ）−（８４−８７）＝ＦＥ」「（８Ａ−８６）−（８８−８４）＝００」…が出力される。
【００９２】
以下、４ライン目以降についても、３ライン目の演算と同じ演算を繰り返すことにより、図５のパート（Ｂ）に示す各数値が得られることとなる。
【００９３】
図１に示すパーソナルコンピュータ４では、このように２次元差分符号化されたデータに対してデータの復号化処理が行われる。この復号化処理では、２次元差分符号化されたデータの値からＰｎ，ｍを求める式が使用されており、この式は以下のようにして求めることができる。
【００９４】
２次元差分符号化後の画素値Ｘｉ，ｊを、ｉ＝１からｉ＝ｍまで足し上げ、さらにｊ＝１からｊ＝ｍについて足し上げた結果は、式（１）および式（２）を用いて下記の式（３）のように表される。
【００９５】
【数１】
2010021881.tif 000003
【００９６】
ここで、式の途中に現れる｛Ｐ０，０，Ｐｎ，０，Ｐ０，ｍ｝に対して、式（２）が適用されている。この式から、２次元差分符号化前の画素値Ｐｎ，ｍは、下記の式（４）のように表される。
【００９７】
【数２】
2010021881.tif 000004
【００９８】
図１に示すパーソナルコンピュータ４では、上記の式（４）により、先ず、１ライン目の画素値Ｐ１，１，Ｐ１，２，…，Ｐ１，Ｍが求められる。例えば、１ライン目の画素値のうち主走査方向にｍ番目の画素値は、上記の式（４）にｎ＝１を代入し、さらに式（２）のＰ０，Ｍ＝０を利用して、下記の式（５）のように表される。
【００９９】
【数３】
2010021881.tif 000005
【０１００】
このようにして、１ライン目の画素値、Ｐ１，１，Ｐ１，２，…，Ｐ１，Ｍがすべて求められる。
【０１０１】
２ライン目の画素値Ｐ２，１，Ｐ２，１，…，Ｐ２，Ｍについては、同様に上記の式（４）にｎ＝２を代入し、さらに１ライン目の画素値の複合化で得られたＰ１，Ｍを用いることで求めることができる。例えば、２ライン目の画素値のうち主走査方向にｍ番目の画素値は、下記の式（６）のように表される。
【０１０２】
【数４】
2010021881.tif 000006
【０１０３】
３ライン目以降の画素値についても同様にして、上記の式（６）やそれ以降の計算で複合化された画素値を用いて求めることができる。図１に示すパーソナルコンピュータ４では、このような方式でデータの復号化処理が行われる。
【０１０４】
図２の第１差分符号化部１５１０では、以上説明したような２次元差分符号化が画像データに施される。この２次元差分符号化によって得られるデータは、図２の第１オフセット部１５２０に入力され、そのデータの各数値について所定のオフセット値が加算される。
【０１０５】
ここで、このような２次元差分符号化およびオフセットの効果について、具体的な静止画像を表す画像データを例に用いて説明する。
【０１０６】
図６は、静止画像を表す画像データの例を示す図である。
【０１０７】
この図６のパート（Ａ）には、静止画像の一例としてモノクロの風景画像が示されており、本実施形態では、このような静止画像の各画素における色の濃度が８ビットの数値で表現された画像データが用いられる。図６のパート（Ｂ）には、パート（Ａ）に示す風景画像を表す画像データにおけるデータ値のヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸はデータ数（画素数）を表している。通常の画像ではヒストグラムの幅が広く、ヒストグラム中でデータ数の山谷は生じてもヒストグラムの途中にデータ数が「０」の領域が生じることは極めてまれである。
【０１０８】
図７は、画像データに対する２次元差分符号化およびオフセットの効果を示す図である。
【０１０９】
この図７のパート（Ａ）には、図６に示した画像データに対して２次元差分符号化が施されて得られるデータのヒストグラムが示されており、このヒストグラムの横軸はデータ値、縦軸は出現頻度を表している。画像データに対して、図４および図５で説明した２次元差分符号化が施されると、データのヒストグラムは、一般に、この図７のパート（Ａ）に示すような、最小データ値と最大データ値の双方に鋭いピークを有するヒストグラムとなる。そして、このようなデータに対してオフセットが施されると、データのヒストグラムは、図７のパート（Ｂ）に示すような、オフセット値のところに鋭いピークを持つヒストグラムとなる。本実施形態ではオフセット値として「８」が用いられており、オフセットの結果、値が「１６」以上となるデータの頻度はほとんど「０」となっている。このように変形させたヒストグラムのピークが鋭いほど、この後の処理で高い圧縮率が期待される。この後の処理の説明に移る前に、第２差分符号化部１５１５および第２オフセット部１５２５における処理について説明する。
【０１１０】
図８は、図２の圧縮処理部５００Ａを構成する第２差分符号化部１５１５における差分符号化処理を例示して示す図である。
【０１１１】
ここでは、上記動画で時間的に隣接した複数の静止画像それぞれを表した複数の画像データを構成する画素値のうち、静止画像の固定位置における、その動画の時間軸方向に隣接する一連の画素値が、図８の「画像データ」の欄に示すように、
「１２  ０１  ０２  ＦＦ  ６４  …  ４０  ４０  ３Ｆ  …」
であったとする。尚、ここでは、各画素値は、１６進２桁（１バイト＝８ビット）で表現されている。また「フレーム」は上記動画中の静止画像と同義である。
【０１１２】
先ず、１フレーム目の画素値「１２」については、そのまま出力する。
【０１１３】
次に、２フレーム目の画素値「０１」から１フレーム目の画素値「１２」を引き算し、その結果を出力する。ここで、「０１」から「１２」を引き算した結果は負の数となり、９ビットで「１ＥＦ」と表わされるが、ＭＳＢの１ビットである「１」は省略し、下位８ビットである「ＥＦ」のみを出力する。
【０１１４】
次に、３フレーム目の画素値「０２」から２フレーム目の画素値「０１」を引き算し、その結果の値「０１」を出力する。
【０１１５】
次に、４フレーム目の画素値「ＦＦ」から３フレーム目の画素値「０２」を引き算し、その結果の値「ＦＤ」を出力する。
【０１１６】
次に、５フレーム目の画素値「６４」から４フレーム目の画素値「ＦＦ」を引き算し、その結果の値から、ＭＳＢの１ビットである「１」を省略し、下位８ビットである「６５」を出力する。
【０１１７】
以下、これと同じ演算を繰り返すことにより、図８の「差分エンコード（下位８ビット）」の欄に表わされている
「（１２）  ＥＦ  ０１  ＦＤ  ６５  …  Ｃ０  ００  ＦＦ  …」
が出力される。
【０１１８】
フレーム間の差分は、この図８では、説明の便宜上、時間軸方向に連続して実行されるかのように記述したが、実際には、１つのフレーム中の全画素について差分が求められてから次のフレームについての差分算出に移る。つまり、「差分エンコード」の欄に表されている１つの数値が１フレーム分の差分を代表したものに相当している。
【０１１９】
図１に示すパーソナルコンピュータ４では、この差分符号化されたデータを復号化するにあたり、図８の右側に示す演算が行なわれる。
【０１２０】
先ず１フレーム目の画素値は「１２」のそのままである。
【０１２１】
２フレーム目の画素値は、差分値「ＥＦ」に１フレーム目の画素値「１２」を足し算した結果のうちの下位８ビットで表わされる「０１」である。
【０１２２】
３フレーム目の画素値は、差分値「０１」に、上記で求めた２フレーム目の画素値「０１」を足し算することにより求められる「０２」である。
【０１２３】
４フレーム目の画素値は、差分値「ＦＤ」に、上記で求めた３フレーム目の画素値「０２」を足し算することにより求められる「ＦＦ」である。
【０１２４】
５フレーム目の画素値は差分値「６５」に、上記で求めた４フレーム目の画素値「ＦＦ」を足し算した結果のうちの下位８ビットで表わされる「６４」である。
【０１２５】
以下これと同様の演算を繰り返すことにより、差分符号化を行なう前のデータと同一のデータに復号化される。
【０１２６】
図２の第２差分符号化部１５１５では、以上説明したような差分符号化が画像データに施される。この差分符号化によって得られるデータは、図２の第２オフセット部１５２５に入力され、そのデータの各数値について所定のオフセット値が加算される。
【０１２７】
上述した第１差分符号化部１５１０では静止画像の画像内差分が求められるのに対し、この第２差分符号化部１５１５ではフレーム間差分が求められる。フレーム間で画像変化が少ない場合（即ち、フレーム間で相関が強い場合）には、第２オフセット部１５２５から出力されるデータのヒストグラムにおけるピークが鋭くなり、フレーム間の相関がある程度以上強くなると、第１オフセット部１５２０から出力されるデータのヒストグラムにおけるピークよりも鋭くなって、後の処理での高圧縮が期待されることとなる。
【０１２８】
図９は、ピークの鋭さが異なる２つのヒストグラムを表した図である。
【０１２９】
図９は、差分データが第２オフセット部１５２５に入力されて所定量のオフセットが施されて生成された新たな画像データのヒストグラムを表した図であって、図９のパート（ａ）には、オフセット値付近への集中度の低いデータのヒストグラムの一例が示されており、図９のパート（ｂ）には、オフセット値付近への集中度の高いデータのヒストグラムの一例が示されている。図９のパート（ｂ）のデータの方が、図９のパート（ａ）のデータに比べてオフセット値付近への集中度が高いために、上記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さがより強いことがわかる。本実施形態では、図２の圧縮処理部５００Ａ内の第１相関導出部１５７０により、オフセット後のデータのヒストグラムの解析が行われて、相関の強さを表す情報が得られる。
【０１３０】
図１０は、図２の第１相関導出部１５７０の構成を表した模式図である。
【０１３１】
第１相関導出部１５７０に入力された、第２オフセット部１５２５によって生成されたオフセット後のデータは、まず、絶対値差分器１５７０ｂに入力される。この絶対値差分器１５７０ｂには、データを構成する数値の数が、オフセット後のデータを構成する数値の数と同じで、データ値が全て＋８となっている参照データ１５７０ａも入力されており、絶対値差分器１５７０ｂでは、オフセット後のデータを構成する数値と参照データ１５７０ａを構成する数値との差の絶対値が計算される。すなわち、絶対値差分器１５７０ｂにおいて、オフセット後のデータを構成する各数値から８を引くことで得られる差の絶対値が求められることとなる。この絶対値差分器１５７０ｂは、本発明にいう差分器の一例に相当する。次に、このような差の絶対値の連続で構成されたデータは、パルス幅変調（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）器１５７０ｃに入力されて、このデータを構成する各数値の大きさがそれぞれパルス幅として表された一連のパルス波の波形が生成される。ここで、参照データ１５７０ａを構成する数値である「＋８」は、上述したようにオフセット値の数値である。このため、図９のパート（ａ）のヒストグラムを与えるデータのように、オフセット値への集中度が低い（即ち、相関が弱い）データからは、パルス幅変調器１５７０ｃにおいてパルス幅の広いパルス波が多数存在する波形が生成され、図９のパート（ｂ）のヒストグラムを与えるデータのように、オフセット値への集中度が高い（即ち、相関が強い）データからは、パルス幅の狭いパルス波が多数存在する波形が生成される。このパルス幅変調器１５７０ｃは、本発明にいうパルス信号生成器の一例に相当する。この波形は積分器１５７０ｄに入力され、積分処理（横軸と波形で囲まれる領域の面積計算）が行われる。パルス幅の狭いパルス波が多数存在する波形ほど、この積分器１５７０ｄで積分された値は小さくなり、本実施形態では、この積分値の小ささが、上記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを表す情報となる。この積分器１５７０ｄは、本発明にいう積分器の一例に相当する。
【０１３２】
第１データ選択部１５８０では、このようにして得られた相関の強さを、第１相関導出部１５７０にあらかじめ入力されている閾値と比較し、上述したように、相関の強さがこの閾値に達していると第２オフセット部１５２５からの出力データを選択し、達していないと第１オフセット部１５２０からの出力データを選択する。第１データ選択部１５８０による選択結果は、図２の第１プレーン分割部１５３０に出力される。
【０１３３】
図１１は、第１相関導出部１５７０にあらかじめ入力される閾値の設定を説明するグラフである。このグラフの横軸はフレーム間の相関（％）、縦軸は圧縮率（％）を表している。尚、横軸のフレーム間の相関（％）は、フレーム間のデータが全て同じ場合を１００％とし、全て異なる場合を０％としている。
【０１３４】
第１差分符号化部１５１０で行われる、画像データが表す静止画像上で見てその数値に複数方向それぞれに隣接する複数の数値に基づいた２次元的な差分を求めることによりその差分を表わす８ビットの数値の連続からなる画像データを生成する２次元差分符号化処理（２Ｄ−ＬＤＥ）は、動画で時間的に隣接した複数の静止画像（フレーム）毎でも、フレーム間の相関への依存はなく、同じような絵柄であろう隣接フレーム画像では、図１１に示すように、ほぼ一定の圧縮率となる。
【０１３５】
しかし、第２差分符号化部１５１５で行われる、動画で時間的に隣接した複数の静止画像（フレーム）それぞれを表した複数の画像データを構成する数値のうちその動画の時間軸方向に隣接する数値どうしの差分を求めることによりその差分を表す８ビットの数値の連続からなる画像データを生成する処理（ＦＤＥ）では、同一画像が続く場合に、フレーム間差分値がゼロになり、その後の可逆圧縮率はゼロに近い値になる。そして、図１１に示すように、フレーム間の相関が減少すれば、フレーム間差分後の可逆圧縮率は悪化する。
【０１３６】
従って、面内差分後の可逆圧縮率とフレーム間差分後の可逆圧縮率がほぼ同等となるフレーム間相関を閾値として設定することにより、適切な可逆圧縮率が得られることとなる。
【０１３７】
次に、第１オフセット部１５２０によってヒストグラムが変形されたデータ、および第２オフセット部１５２５によってヒストグラムが変形されたデータのうちの、第１データ選択部１５８０によって選択されたデータは、図２の第１プレーン分割部１５３０によって下位サブプレーン１Ｄ１Ｌと上位サブプレーン１Ｄ１Ｈとに分割される。
【０１３８】
図１２は、第１プレーン分割部１５３０によるデータ分割の効果を説明する図である。
【０１３９】
この図１２には、図７のパート（Ｂ）に示すヒストグラムがデータ値「１５」とデータ値「１６」との間で切り離されたヒストグラムが示されており、図２の第１プレーン分割部１５３０によるデータ分割は、まさにこのようなヒストグラムの分割に相当する効果を生じる。すなわち、本実施形態では、データを構成している８ビットの各数値が上位４ビットと下位４ビットとに分割されることで、下位４ビットが表す数値の連続からなる下位サブプレーン１Ｄ１Ｌと上位４ビットが表す数値の連続からなる上位サブプレーン１Ｄ１Ｈとが得られる。そして、下位サブプレーン１Ｄ１Ｌを構成する４ビットの数値が値「０」から値「１５」までの各数値をそのまま表現していて、上位サブプレーン１Ｄ１Ｈを構成する４ビットの数値の場合は、値「１６」から値「２５６」までの、１６間隔１６種類の数値を表現していると解釈すると、下位サブプレーン１Ｄ１Ｌのヒストグラムは、この図１２の左側に示されたヒストグラムとほぼ同じものとなり、上位サブプレーン１Ｄ１Ｈのヒストグラムは、図１２の右側に示されたヒストグラムとほぼ同じものとなる。ただし、上位サブプレーン１Ｄ１Ｈのヒストグラムについては、図１２の右側に示されたヒストグラムのデータ値「１６」のところに、図１２の左側に示されたヒストグラムの面積に等しい高さのピークが付加されたものとなる。
【０１４０】
以下では、上位サブプレーン１Ｄ１Ｈと下位サブプレーン１Ｄ１Ｌとに分割された後のデータの処理について説明する。
【０１４１】
まず、上位サブプレーン１Ｄ１Ｈに対する処理について説明する。
【０１４２】
図１２の右側に示されたヒストグラムにおいて画素の出現頻度がほとんどゼロに近いことからわかるように、上位サブプレーン１Ｄ１Ｈ中の数値は、ゼロに近い値（１６進数表示での「００」や「０１」や「ＦＦ」）の連続が多いことが予想される。このため、上位サブプレーン１Ｄ１Ｈに圧縮を施すには、同一の数値の連続を符号化することで圧縮を行うランレングス符号化が有効であり、上位サブプレーン１Ｄ１Ｈは、図２に示す第１Ｈプレーン圧縮部１５５０の構成要素の１つであるランレングス符号化部１５５１に入力される。
【０１４３】
本実施形態では、処理の都合上、ランレングス符号化部１５５１で、上位サブプレーン１Ｄ１Ｈを構成する連続した４ビットの数値が２つで１つの８ビットの数値として取り扱われ、１６進数表示で値「００」から値「ＦＦ」までの数値の連続に対して以下の符号化処理が適用される。
【０１４４】
この符号化処理では、複数の８ビットの数値のうちの特定の数値についてのみ符号化処理が行なわれる。このため、このランレングス符号化部１５５１では、受け取ったデータの中から、符号化処理を行なう数値（ここでは、この数値を「圧縮対象数値」と称する）と、その圧縮対象数値の連続数が検出される。
【０１４５】
本実施形態では、一例として、「０１」、「ＦＦ」および「００」の３つの数値を圧縮対象数値としている。
【０１４６】
図１３は、図２に示すランレングス符号化部１５５１での符号化の説明図である。
【０１４７】
図１３の上のラインは、上位サブプレーン１Ｄ１Ｈを構成するデータ、下のラインは、ランレングス符号化部１５５１での符号化処理を行なった後のデータである。
【０１４８】
ここでは、図１３の上のラインに示すように、第１プレーン分割部１５３０からは、
「０６  ０２  ０２  ０２  ０１  ０１  ０１  ０１  ０４  ０５  ００  …  」
なるデータが入力されたものとする。このとき、図２のランレングス符号化部１５５１では、先頭の「０６」は圧縮対象数値ではなく、次に続く「０２  ０２  ０２」も圧縮対象数値ではなく、次に、圧縮対象数値である「０１」が４つ連続していること、次に、圧縮対象数値ではない「０４」、「０５」を間に置いて、圧縮対象数値である「００」が３２７６７個連続していることが検出される。
【０１４９】
図１４は、ランレングス符号化部１５５１における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【０１５０】
この図１４中、Ｚは同一の圧縮対象数値の連続数、例えば図１３の上のラインの「０１」についてはＺ＝４、「００」についてはＺ＝３２７６７である。
【０１５１】
また、図１４中、「ＹＹ」は、１６進２桁で表わされた圧縮対象数値自体を表わしている。その「ＹＹ」に続く、「０」又は「１」は１ビットで表現された「０」又は「１」であり、さらにそれに続く「ＸＸＸ  ＸＸＸＸ…」は、１つの「Ｘ」が１ビットを表わしており、この「ＸＸＸ  ＸＸＸＸ…」でＺの値を表現している。
【０１５２】
すなわち、図１４は、圧縮対象数値「ＹＹ」がＺ＜１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く１バイトで、先頭ビットが「０」、それに続く７ビットでＺの値を表現すること、また、圧縮対象数値「ＹＹ」がＺ≧１２８連続するときは、１バイト目で圧縮対象数値「ＹＹ」を表現し、それに続く２バイト（１６ビット）のうちの先頭の１ビットを「１」とすることで２バイトに跨って表現されていることを表現し、それに続く１５ビットで、Ｚの値を表現することを意味している。
【０１５３】
この図１４に示す規則に従って図１３に示す符号化の例について説明する。
【０１５４】
図２の第１プレーン分割部１５３０から入力されてきた上位サブプレーン１Ｄ１Ｈのデータ（上のライン）を構成する先頭の数値「０６」は圧縮対象数値ではないため、その「０６」のまま出力される。また、それに続く「０２  ０２  ０２」も、「０２」は圧縮対象数値ではなく、これら３つの「０２」もそのまま出力される。次に、圧縮対象数値である「０１」が４個連続するため、「０１  ０４」に符号化される。次の「０４」及び「０５」は圧縮対象数値ではないため、そのまま「０４  ０５」が出力される。
【０１５５】
次に「００」が３２７６７個連続しているため、「００」を置き、次の１バイトのうちの先頭の１ビットを「１」とし、次いで１５ビットで３２７６７−１２８を表現することにより、「００  ＦＦ  ７Ｆ」の３バイトで「００」が３２７６７個連続していることを表現する。すなわち、連続数１２８は、最初のビット「１」を除き、「００  ００」と表現される。
【０１５６】
図１５は、図２のランレングス符号化部１５５１における、連続数に応じた符号化処理の例を示す図である。
・「００」が１２７個連続するときは、２バイトを用いて「００  ７Ｆ」に符号化され、
・「００」が３２７６７個連続するときは、３バイトを用いて「００  ＦＦ  ７Ｆ」に符号化され、
・「００」が３２８９５個連続するときは、３バイトを用いて「００  ＦＦ  ＦＦ」に符号化され、
「００」が１２８個連続するときは、３バイトを用いて「００  ８０  ００」に符号化され、
「０１」が１２９個連続するときは、３バイトを用いて「０１  ８０  ０１」に符号化され、
・「ＦＦ」が４０９６個連続するときは、３バイトを用いて「ＦＦ  ８Ｆ  ８０」に符号化される。
【０１５７】
図２に示すランレングス符号化部１５５１では、上記のような符号化処理が行なわれる。
【０１５８】
本実施形態によるランレングス符号化部１５５１によれば、最大圧縮率は、３／３２８９５＝１／１０，９６５にまで向上する。また、このランレングス符号化部１５５１が符号化処理の対象としている上位サブプレーン１Ｄ１Ｈのデータは、図１２のヒストグラムで説明したように、４ビットの数値のほとんどが、データ値「１６」を表現した数値「０」であり、その４ビットの数値から作られる８ビットの数値も、多くが、１６進数表示で数値「００」となる。このためランレングス符号化部１５５１における符号化処理によって大幅なデータ圧縮が期待される。
【０１５９】
図２の第１Ｈプレーン圧縮部１５５０内のランレングス符号化部１５５１で上記の符号化処理の行なわれた後のデータは、次に図２の第１Ｈプレーン圧縮部１５５０を構成するデータスキャニング部１５５２とハフマン符号化部１５５３に入力される。
【０１６０】
このデータスキャニング部１５５２では、先ず、ランレングス符号化部１５５１から出力されたデータの全体がスキャニングされてデータ値の出現頻度が求められる。
【０１６１】
図１６は、データスキャニング部１５５２によるスキャニング結果の例を示す図である。
【０１６２】
ここでは、「Ａ１」の出現頻度が最も強く、以下順に、「Ａ２」、「Ａ３」、「Ａ４」、…の順であるとする。尚、これら「Ａ１」、「Ａ２」等は数値を直接表わしている訳ではなく、数値を表わす符号である。すなわち、「Ａ１」は例えば数値「００」、「Ａ２」は数値「ＦＦ」等である。また、ここでは、簡単のため、図２のランレングス符号化部１５５１から送られてくるデータは全てのデータ値が「Ａ１」〜「Ａ１６」の１６個の数値のうちのいずれかの数値であるものとする。そして、このような１６個の数値それぞれに対して、データスキャニング部１５５２では、出現頻度に応じた符号が割り当てられてハフマンテーブルが作成される。即ち、出現頻度の最も高い「Ａ１」には、２ビットで表わされた符号「００」が割り当てられ、次の「Ａ２」には、やはり２ビットで表わされた符号「０１」が割り当てられ、次の「Ａ３」、さらに次の「Ａ４」には、３ビットで表わされる、それぞれ、符号「１００」、符号「１０１」が割り当てられ、次の「Ａ５」〜「Ａ８」には、５ビットで表わされる各符号が割り当てられ、以下同様に、出現頻度が低い数値ほど多くのビット数で表わされた符号が割り当てられる。
【０１６３】
図１７は、ハフマンテーブルの一例を示す図である。
【０１６４】
このハフマンテーブルは、図１６と一致させてあり、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられるように並べられた、符号化前（置き換え前）の数値と符号化後（置き換え後）の数値との対応テーブルである。
【０１６５】
図２の第１Ｈプレーン圧縮部１５５０を構成するハフマン符号化部１５５３では、このようなハフマンテーブルに従ってデータの数値が符号化され、その結果、多くの数値が短かいビット数の符号に置き換えられることとなってデータ圧縮が実現される。
【０１６６】
図１８は、ハフマンテーブルに用意される符号列の具体例を示す図である。
【０１６７】
図１８に示す符号列では、各符号列中の「，」よりも右側の数値がビット長を意味しており、その「，」から左側に並ぶそのビット長分の２進符号が実際の符号を表わしている。例えば、図１８の左上の第１番目の符号は「１１」の２ビット、次の２番目の符号は「０１１」の３ビット、その次の３番目の符号は「０１０」の３ビット、さらにその次の４番目の符号は「１０１０」の４ビットである。このような符号列により、出現頻度が高い数値ほど短かいビット数で表わされた符号に置き換えられる。
【０１６８】
以上の図１３〜図１８で説明した処理により、図２の第１Ｈプレーン圧縮部１５５０に入力される上位サブプレーン１Ｄ１Ｈについては、ランレングス符号化部１５５１による符号化とハフマン符号化部１５５３による符号化が施されることにより高い圧縮率で圧縮されて上位圧縮データ１Ｄ２Ｈとなる。
【０１６９】
次に、下位サブプレーン１Ｄ１Ｌに対する処理について説明する。第１プレーン分割部１５３０で分割された下位サブプレーン１Ｄ１Ｌは、第１Ｌプレーン圧縮部１５４０を構成するハフマン符号化部１５４１において、図１６〜図１８で説明したハフマン符号化処理が行われる。ハフマン符号化後の下位サブプレーン１Ｄ１Ｌは、下位圧縮データ１Ｄ２Ｌとして第１Ｌプレーン圧縮部１５４０から出力される。なお、上述したように、ユーザから、高速モードが指示された場合には、上記のハフマン符号化部１５４１によるハフマン符号化処理は省略されて、第１Ｌプレーン圧縮部１５４０から出力されることになる。
【０１７０】
以上説明してきた、第１Ｈプレーン圧縮部１５５０および第１Ｌプレーン圧縮部１５４０による可逆圧縮においては、図２の第１オフセット部１５２０でオフセットされたデータのヒストグラムに現れるピークが鋭いデータほど、データを構成する数値がオフセット値付近に集中しているためにランレングス符号化やハフマン符号化により大きく圧縮されることが期待される。
【０１７１】
パーソナルコンピュータ４では、送信されてきた画像データに対し、データの復号化処理が行われて、パーソナルコンピュータ４の表示画面上に画像が表示される。
【０１７２】
以上の説明は、撮影は、ＵＳＢカメラ２によって行われていたが、本発明は、ＵＳＢカメラ２に代えて、動画機能を備えたデジタルカメラを採用してもよい。
【０１７３】
図１９は、本発明の別の一実施形態が適用されるカメラシステムの構成図である。
【０１７４】
図１９のカメラシステムは、デジタルカメラ１００とパーソナルコンピュータ２００とを有している。このカメラシステムでは、デジタルカメラ１００を用いた撮影が行われて撮影画像を表す画像データが生成され、生成された画像データは圧縮処理が施された後、ＵＳＢケーブル３００を介してデジタルカメラ１００からパーソナルコンピュータ２００へ送られ、パーソナルコンピュータ２００が有する表示画面（不図示）上に表示される。ここで、このデジタルカメラ１００には、静止画撮影機能に加え、動画撮影機能も備えられており、図１９のカメラシステムでは、デジタルカメラ１００で主に動画撮影が行われて、撮影で得られた動画が、パーソナルコンピュータ２００の表示画面上にほぼリアルタイムで表示される。
【０１７５】
図１９のカメラシステムにおいては、デジタルカメラ１００が、本発明の動画圧縮装置の一実施形態として動作する。以下では、このデジタルカメラ１００について説明する。
【０１７６】
図２０は、図１９のデジタルカメラ１００を前面斜め上から見た外観斜視図であり、図２１は、このデジタルカメラ１００を背面斜め上から見た外観斜視図である。
【０１７７】
図２０に示すように、このデジタルカメラ１００の前面中央部に撮影レンズ１０１が備えられており、前面上部には光学式ファインダ対物窓１０２および閃光発光部１０３が備えられている。さらに、このデジタルカメラ１００の上面には、スライド式の電源スイッチ１０４、ユーザが撮影を指示する際に用いられるレリーズボタン１５０、およびデジタルカメラ１００内部に備えられたマイクロフォン（図２０および図２１では不図示）に音を伝達する複数の穴からなる受話口１２５ａが備えられている。
【０１７８】
さらに図２１に示すように、このデジタルカメラ１００の背面には、光学式ファインダ接眼窓１０６、メニューボタン１６０、実行／画面切換スイッチ１７０、画像表示部１３０、十字キー２４、モードダイヤル１０が備えられている。モードダイヤル１０は、図で両矢印で示す方向に回転することができるダイヤルとなっており、ユーザは、このモードダイヤル１０を操作することによって、デジタルカメラ１００の動作モードとして、再生モードを表す「再生」、動作設定モードを表す「設定」、静止画撮影モードを表す「静止画撮影」、動画撮影モードを表す「動画撮影」の４つの動作モードの中から、所望の動作モードを選択することができる。この図では、「動画撮影」が選択された状態が示されている。また、このデジタルカメラ１００の側面には、図１９のパーソナルコンピュータ２００との間でＵＳＢケーブル３００を介してデータのやり取りが行われる際に、ＵＳＢケーブルのＵＳＢ端子が差し込まれるＵＳＢコネクタ１３１や、画像データをはじめ各種のデータを記憶するメモリカード１４１が挿入されるメモリカードスロット１４２が設けられている。
【０１７９】
図２２は、図２０および図２１に外観を示すデジタルカメラの概略構成図である。
【０１８０】
このデジタルカメラ１００には、ピント調節のためのフォーカスレンズ１１４や光学ズームを行うためのズームレンズ１１５などといった各種レンズや、光量を調節するための絞り１１３などが配備された撮影光学系１１０が備えられている。本来撮影光学系には複数のレンズが配備され、それらの複数のレンズの中の少なくとも１つがピント調節に大きく関与し、それら複数のレンズの相対位置が焦点距離に関与するが、この図２２では、焦点距離の変化に係わるレンズをズームレンズ１１５として模式的に示しており、同じくピントの調節に係わるレンズをフォーカスレンズ１１４として模式的に示している。また、これらフォーカスレンズ１１４、ズームレンズ１１５、絞り１１３をそれぞれ駆動するためのフォーカス制御部１１４ａ、ズーム制御部１１５ａ、絞り制御部１１３ａも備えられている。絞り制御部１１３ａは、絞り１１３を制御して露出の調節を行う。ズーム制御部１１５ａは、ズームレンズ１１５を移動させることで光学ズームの倍率を変化させる役割を担う。フォーカス制御部１１４ａは、このデジタルカメラ１００の有するオートフォーカス機能が作動する際に、フォーカスレンズ１１４を、被写体距離の最遠点に対応する位置から被写体距離の至近点に対応する位置まで移動させることにより、被写界のコントラストを変化させるとともに、その変化の様子から決定されたピント位置にフォーカスレンズ１１４を配置する役割を担う。このデジタルカメラ１００には、露出量の算出およびコントラストの検出を行うＡＦ／ＡＥ演算部１２６が備えられており、このＡＦ／ＡＥ演算部１２６が、生成された画像データから被写界輝度を検出して露出量を算出し、さらに、フォーカスレンズ１１４の移動に伴って変化する被写界のコントラストも検出する。このＡＦ／ＡＥ演算部１２６により算出された露出量に基づき、適切な露出量が決定されて、決定された露出量を実現するように、絞り１１３やタイミングジェネレータ１１１ａが駆動されて露出量の制御が行われる。また、ＡＦ／ＡＥ演算部１２６により検出された被写界のコントラストに基づき、コントラストのピークが得られる位置が上述のピント位置として決定され、フォーカス制御部１１４ａによりそのピント位置にフォーカスレンズ１１４が配置される。
【０１８１】
また、このデジタルカメラ１００には、撮影光学系１１０を通って結像された被写体光を受光して、被写体光を表わすアナログの画像信号を生成するＣＣＤ１１１が備えられており、図で一点鎖線で示す被写体光はＣＣＤ１１１において、被写体光を表わすアナログの画像信号に変換され、シャッタ速度を決定する、タイミングジェネレータ１１１ａのタイミング信号に合わせてＣＣＤ１１１から出力される。
【０１８２】
ＣＣＤ１１１から出力されたアナログの画像信号は、画像信号処理部１２２によって読み出されてデジタルの画像データに変換され、さらに、この画像信号処理部１２２においてホワイトバランスの補正やγ補正などといった種々の画像処理が施される。画像処理が施された画像データは、画像表示の制御を行う表示制御部１２３に送られ、画像表示部１３０上にこの画像データが表す画像（いわゆるスルー画像）が表示される。
【０１８３】
また、このデジタルカメラ１００には、撮影時の音声を電気信号に変換するマイクロフォン１２５が備えられている。マイクロフォン１２５で得られた電気信号も、上述の画像信号処理部１２２でデジタルのデータに変換される。
【０１８４】
また、このデジタルカメラ１００では、撮影画像データに対して圧縮処理が施され、圧縮された撮影画像データは、ＵＳＢコネクタ１３１にＵＳＢ端子が差し込まれた図１９のＵＳＢケーブル３００を介して、図１９のパーソナルコンピュータ２００に送信される。このデジタルカメラ１００には、メモリーカードスロット１４２に挿入されたメモリーカード１４１に対してデータの書き込みや読出しを行う書込／読出部１４０が備えられており、上記の圧縮処理は、メモリーカード１４１に記憶された画像圧縮プログラムが、書込／読出部１４０に読み込まれることでデジタルカメラ１００にインストールされて、ＣＰＵ１２０が圧縮処理部として機能することで実行される処理であり、圧縮対象となる撮影画像データは、圧縮処理部として機能するＣＰＵ１２０に渡されて圧縮処理が施される。なお、上述した撮影画像データも、この圧縮処理部として機能するＣＰＵ１２０に渡される。
【０１８５】
このデジタルカメラ１００には、ＲＯＭ１２１が配備されており、このＲＯＭ１２１には、このデジタルカメラ１００の各部の制御を行うＣＰＵ１２０が実行する動作の手順を示した実行データが格納されている。ここで、図２２では、図２０および図２１に示す、電源スイッチ１０４、モードダイヤル１０、レリーズボタン１５０などといった各種のスイッチやボタンは操作部１５１として一括して示されており、操作部１５１が操作されると、ＲＯＭ１２１に格納された実行データに従ってその操作に応じた処理が実行される。
【０１８６】
ＣＰＵ１２０と、撮影光学系１１０、画像信号処理部１２２、表示制御部１２３、書込／読出部１４０などの各部との間のデータの受け渡しはバス１２００を介して行われ、そのバス１２００を介してデータの受け渡しが行われるときのバッファとしてＲＡＭ１２９が備えられている。このＲＡＭ１２９に各部の処理プロセスの進行状況に応じて変数となるデータが随時書き込まれて、前述の撮影光学系１１０、画像信号処理部１２２などの各部では、そのデータを参照することにより、それぞれ適切な処理が行われる。
【０１８７】
以下、動画撮影が行われる際のデジタルカメラ１００の動作について説明する。
【０１８８】
図２１のモードダイヤル１０により、デジタルカメラ１００の動作モードが動画撮影モードに設定された状態で、撮影者が図２０に示すレリーズボタン１５０を押すと、レリーズボタン１５０が押されたという情報がＣＰＵ１２０に伝えられる。ＣＰＵ１２０は、この情報を受けると、上述のＡＦ／ＡＥ演算部１２６、絞り制御部１１３ａ、タイミングジェネレータ１１１ａ、フォーカス制御部１１４ａに指示を出し、上述したように露出量の制御やオートフォーカスを実行させる。そして、ＣＣＤ４０で生成された画像信号が、ＣＰＵ１２０からの指示に基づき、画像信号処理部１２２において、上述したスルー画像のときよりもより細かく読み出されてデジタルの画像データに変換され、高解像度な撮影画像データが生成される。生成された撮影画像データは、さらに、画像信号処理部１２２において、ホワイトバランスの補正やγ補正などといった種々の画像処理が施されて、一旦、バッファメモリ１４３に記憶される。バッファメモリ１４３に記憶された撮影画像データは、圧縮処理部として機能するＣＰＵ１２０に供給され、圧縮処理が施される。
【０１８９】
圧縮処理部として機能するＣＰＵ１２０では、同一の撮影画像データから、可逆圧縮処理が施された撮影画像データと、非可逆圧縮処理が施された撮影画像データとの２種類の圧縮データが生成され、図１９のパーソナルコンピュータ２００に送信される。
【０１９０】
以上の動作が、撮影者が図２０に示すレリーズボタン１５０を再び押すまで繰り返され、図１９のパーソナルコンピュータ２００に、撮影画像データが連続的に送信され続ける。
【０１９１】
なお、図１９のカメラシステムでは、主に動画撮影が行われるため、以上では動画撮影の際のデジタルカメラ１００の動作について説明したが、このデジタルカメラ１００は、上述したように静止画の撮影機能も備えており、静止画撮影は、図２１のモードダイヤル１０により、デジタルカメラ１００の動作モードが静止画撮影モードに設定されている状態で、ユーザによりレリーズボタン１５０が押されることで実行される。静止画撮影の場合には、レリーズボタン１５０の押下直後の１枚分の画像（静止画）を表す画像データが、上述したのと同じ過程を経て生成され、パーソナルコンピュータ２００に送信される。なお、静止画撮影の場合には、被写体が暗いときには、ＣＰＵ１２０の指示に基づき、レリーズボタン１５０の押下に同期して図２０の閃光発光部１０３により閃光が発せられる。
【０１９２】
図２３は、圧縮処理部５００Ｂとして機能するＣＰＵ１２０の機能ブロック図である。
【０１９３】
図２３に示す圧縮処理部５００Ｂには、撮影画像を構成する全画素から可逆圧縮処理の対象となるＴＲＵＥ画素を間引く間引き処理部２５０５と、ＴＲＵＥ画素が間引かれた後に残った画素であって非可逆圧縮処理の対象となるＦＡＫＥ画素について非可逆圧縮処理を実行するための各部として、ＦＡＫＥ画素データ圧縮部２５６０、およびエッジ検出部２５９０とが備えられている。さらに、圧縮処理部５００Ｂには、ＴＲＵＥ画素について可逆圧縮処理を実行するための各部として、第３差分符号化部２５１０、第３オフセット部２５２０、第４差分符号化部２５１５、第４オフセット部２５２５、第２プレーン分割部２５３０、第２Ｌプレーン圧縮部２５４０、第２Ｈプレーン圧縮部２５５０、第２相関導出部２５７０、および第２データ選択部２５８０が備えられている。
【０１９４】
圧縮処理部５００Ｂ内の各部の詳細は後述するが、この圧縮処理部５００Ｂ内での圧縮処理の流れは以下のとおりである。
【０１９５】
圧縮処理部５００Ｂ内に入力される画像データＤ０は、８ビットの数値の連続で静止画像が表現された画像データの連続で動画を表しており、この画像データＤ０が圧縮処理部５００Ａに入力されると、圧縮処理部５００Ａ内の間引き処理部２５０５に入力される。この間引き処理部２５０５は、本発明にいう間引き処理部の一例に相当する。
【０１９６】
画像データＤ０が間引き処理部２５０５に入力されると、可逆圧縮処理の対象となるＴＲＵＥ画素の画素データと、非可逆圧縮処理の対象となるＦＡＫＥ画素の画素データとに分けられる。この２種類の画素データに分ける方式については後述する。これらＴＲＵＥ画素データおよびＦＡＫＥ画素データが、それぞれ、本発明にいう第１の被圧縮データおよび第２の被圧縮データの各一例に相当する。
【０１９７】
ＴＲＵＥ画素の画素データに対しては、圧縮処理部５００Ｂ内の第３差分符号化部２５１０、第３オフセット部２５２０、第４差分符号化部２５１５、第４オフセット部２５２５、第２プレーン分割部２５３０、第２Ｌプレーン圧縮部２５４０、第２Ｈプレーン圧縮部２５５０、第２相関導出部２５７０、および第２データ選択部２５８０により、図２の圧縮処理部５００Ａの可逆圧縮処理と同様の処理が行われる。すなわち、第３差分符号化部２５１０で、図２の第１差分符号化部１５１０と同様の２次元差分符号化処理が行われ、第３オフセット部２５２０に入力されて所定量のオフセットが施される。この第３差分符号化部２５１０は、本発明にいう第１の差分生成部の一例に相当し、この第３オフセット部２５２０は、本発明にいう第１のオフセット部の一例に相当する。尚、第３のオフセット部２５２０によって生成された新たな画像データは、第３差分符号化部２５１０で生成された画像データを構成する各数値を所定値だけオフセットさせたデータであるため、第３差分符号化部２５１０で生成された画像データと本質的に同等のデータである。また、第４差分符号化部２５１５で、図２の第２差分符号化部１５１５と同様の差分符号化処理が行われ、第４オフセット部２５２５に入力されて所定量のオフセットが施される。この第４差分符号化部２５１５は、本発明にいう第２の差分生成部の一例に相当し、この第４オフセット部２５２５は、本発明にいう第２のオフセット部の一例に相当する。尚、第４のオフセット部２５２５によって生成された新たな画像データは、第４差分符号化部２５１５で生成された画像データを構成する各数値を所定値だけオフセットさせたデータであるため、第４差分符号化部２５１５で生成された画像データと本質的に同等のデータである。そして、第２相関導出部２５７０で、上記動画で時間的に隣接した複数の静止画像相互における画像の相関の強さを導出し、第２データ選択部２５８０で、図２の第１データ選択部１５８０と同様に画像データが選択される。この第２相関導出部２５７０は、本発明にいう相関導出部の一例に相当し、この第２データ選択部２５８０は、本発明にいうデータ選択部の一例に相当する。尚、ここでは、第３データ選択部２５８０が、第４のオフセット部２５２５あるいは第３のオフセット部２５２０によって生成された新たな画像データを選択しているが、この選択は、第４差分符号化部２５１５あるいは第３差分符号化部２５１０で生成された画像データを結果として選択していることにほかならない。尚、図２の圧縮処理部５００Ａ中の第１相関導出部１５７０には、相関の強さを表す情報を得るために、絶対値差分器、パルス幅変調器、および積分器（図１０参照）といったハードウェアが備えられていたが、第２相関導出部２５７０では、絶対値差分器および積分器が行う演算を、ＣＰＵ１２０が実行する点が異なる。すなわち、図２２のデジタルカメラ１００では、ＣＰＵ１２０が、オフセット後のデータを構成する各数値から８を引いてその差の絶対値を求め、さらに、全数値についてその差の絶対値の和を求める演算を行って、積分器１５７０ｄで得られる積分値と同じものを算出する。そして、第２プレーン分割部２５３０で、第２データ選択部２５８０によって選択された画像データが、下位ビットの数値の連続からなる下位サブプレーン２Ｄ１Ｌと上位ビットの数値の連続からなる上位サブプレーン２Ｄ１Ｈとに分割され、それぞれ、第２Ｌプレーン圧縮部２５４０および第２Ｈプレーン圧縮部２５５０に入力される。第２Ｌプレーン圧縮部２５４０および第２Ｈプレーン圧縮部２５５０は、それぞれ、図２の第１Ｌプレーン圧縮部１５４０および第１Ｈプレーン圧縮部１５５０と同様の構成を備えている。例えば、第２Ｌプレーン圧縮部２５４０にも、ハフマン符号化部２５４１およびモード切換部２５４２が備えられており、これらにより、第１Ｌプレーン圧縮部１５４０と同様な処理が施されて下位圧縮データ２Ｄ２Ｌが出力される。一方、第２Ｈプレーン圧縮部２５５０には、ランレングス符号化部２５５１と、データスキャニング部２５５２と、ハフマン符号化部２５５３が備えられており、これらにより、第１Ｈプレーン圧縮部１５５０と同様な処理が施されて上位圧縮データ２Ｄ２Ｈが出力される。この第２プレーン分割部２５３０は、本発明にいう分割部の一例に相当する。また、下位サブプレーン２Ｄ１Ｌおよび上位サブプレーン２Ｄ１Ｈは、それぞれ、本発明にいう下位データおよび上位データの各一例に相当する。また、これら第２Ｌプレーン圧縮部２５４０および第２Ｈプレーン圧縮部２５５０は、それぞれ、本発明にいう下位データ圧縮部および上位データ圧縮部の各一例に相当する。また、本実施形態では、第２Ｈプレーン圧縮部２５５０中のランレングス符号化部２５５１が、本発明にいう第１の符号化部の一例に相当する。また、このデータスキャニング部２５５２が、本発明にいうヒストグラム算出部および符号割当部の各一例を兼ね備えたものに相当する。また、このハフマン符号化部２５５３は、本発明にいう第２の符号化部の一例に相当する。
【０１９８】
一方、ＦＡＫＥ画素の画素データに対しては、ＦＡＫＥ画素データ圧縮部２５６０により、非可逆圧縮処理が施される。このＦＡＫＥ画素データ圧縮部２５６０には、ビット短縮部２５６１と、ランレングス符号化部２５６２と、ハフマン符号化部２５６３とが備えられており、ＦＡＫＥ画素データを構成する数値はビット短縮部２５６１で１ビットまたは４ビットの符号に置換される。ここで、ＦＡＫＥ画素データを構成する数値が、ビット短縮部２５６１において４ビットあるいは１ビットの２種類の符号のいずれに置換されるは、その数値の画素値を有するＦＡＫＥ画素が、画像のエッジ部分に属する画素であるか否かによって決定され、エッジ部分に属するか否かの判定は、エッジ検出部２５９０によって行われる。このエッジ検出部２５９０は、本発明にいう判定部の一例に相当する。このエッジ検出部２５９０の判定に基づき、ビット短縮部２５６１では、画像のエッジ部分に属する画素の画素値は４ビットの符号に置換され、画像のエッジ部分に属さない画素の画素値は１ビットの符号に置換される。１ビットまたは４ビットの符号に置換されたデータは、ランレングス符号化部２５６２およびハフマン符号化部２５６３によって、上記第１Ｈプレーン圧縮部１５５０における処理と全く同様の処理が施される。ここで、ＦＡＫＥ画素データ圧縮部２５６０にも、第１Ｈプレーン圧縮部１５５０のデータスキャニング部１５５２と同様の働きをするデータスキャニング部が存在するが、その図示は省略されている。ランレングス符号化処理およびハフマン符号化処理が施されたＦＡＫＥ画素データは、非可逆圧縮データ２Ｄ３としてＦＡＫＥ画素データ圧縮部２５６０から出力される。
【０１９９】
第２Ｌプレーン圧縮部２５４０および第２Ｈプレーン圧縮部２５５０のそれぞれから出力される下位圧縮データ２Ｄ２Ｌと上位圧縮データ２Ｄ２Ｈとに、さらに非可逆圧縮データ２Ｄ３が加わったデータの組で、元の画像データＤ０に対し、圧縮処理部５００Ｂにおいて非可逆圧縮処理が施された圧縮データが構成される。この圧縮データは、ＵＳＢケーブル３００を介して図１９のパーソナルコンピュータ２００に向けて送信される。
【０２００】
パーソナルコンピュータ２００に送られてきた圧縮データは、パーソナルコンピュータ２００においてデータ伸長処理が施される。ここで、データ伸長処理にあたっては、上述した各種の符号化処理に対応する復号化処理が施される。そして、復号化処理後の画像データに基づき、パーソナルコンピュータ２００の表示画面上に画像が表示される。
【０２０１】
以上説明したような画像データの圧縮処理と復号化処理が繰り返し行われることで、パーソナルコンピュータ２００の表示画面上にはリアルタイムで画像が表示される。
【０２０２】
図２４は、本発明の動画圧縮プログラムの一実施形態に相当する画像圧縮プログラムの模式構成図である。
【０２０３】
ここでは、この画像圧縮プログラム６００は、メモリーカード１４１に記憶されている。この画像圧縮プログラム６００は、間引き処理部２６０５、第３差分符号化部２６１０、第３オフセット部２６２０、第４差分符号化部２６１５、第４オフセット部２６２５、エッジ検出部２６９０、第２プレーン分割部２６３０、第２Ｌプレーン圧縮部２６４０、第２Ｈプレーン圧縮部２６５０、ＦＡＫＥ画素圧縮部２６６０、第２相関導出部２６７０、および第２データ選択部２６８０を備えている。
【０２０４】
この図２４に示すメモリーカード１４１が、図２２に示すデジタルカメラ１００のメモリーカードスロット１４２に装填され、メモリーカード１４１に記憶されている画像圧縮プログラム６００が、デジタルカメラ１００にインストールされてＣＰＵ１２０で実行されることにより、デジタルカメラ１００が画像データの圧縮処理を行う装置として動作する。より具体的には、上記の画像圧縮プログラム６００内の各部が書込／読出部１４０により読み出されてＲＡＭ１２９に展開され、ＣＰＵ１２０によって実行されることで、ＣＰＵ１２０と画像信号処理部１２２とを合わせたものが、図２３の圧縮処理部５００Ｂとして機能する。ここで、図２４に示す画像圧縮プログラム６００内の、間引き処理部２６０５、第３差分符号化部２６１０、第３オフセット部２６２０、第４差分符号化部２６１５、第４オフセット部２６２５、エッジ検出部２６９０、第２プレーン分割部２６３０、第２Ｌプレーン圧縮部２６４０、第２Ｈプレーン圧縮部２６５０、ＦＡＫＥ画素圧縮部２６６０、第２相関導出部２６７０、および第２データ選択部２６８０は、ＣＰＵ１２０を、図２３の、間引き処理部２５０５、第３差分符号化部２５１０、第３オフセット部２５２０、第４差分符号化部２５１５、第４オフセット部２５２５、エッジ検出部２５９０、第２プレーン分割部２５３０、第２Ｌプレーン圧縮部２５４０、第２Ｈプレーン圧縮部２５５０、ＦＡＫＥ画素圧縮部２５６０、第２相関導出部２５７０、および第２データ選択部２５８０として動作させるプログラム部品である。つまり、これらのプログラム部品により、図２３の圧縮処理部５００Ｂの構成要素がデジタルカメラ１００上に実質的に構築されることとなる。
【０２０５】
図２４の画像圧縮プログラム６００を構成する各部の、ＣＰＵ１２０で実行されたときの作用は、それぞれ、図２３の圧縮処理部５００Ｂを構成する各部の作用そのものである。
【０２０６】
次に、図２３の圧縮処理部５００Ｂでの可逆圧縮処理について詳しく説明する。
【０２０７】
上述したように、８ビットの数値の連続で静止画像が表現された画像データの連続で動画を表した画像データＤ０が図２３の圧縮処理部５００Ｂに入力されると、まず、間引き処理部２５０５に入力されて、間引き処理部２５０５により、可逆圧縮処理の対象となるＴＲＵＥ画素の画素データと、非可逆圧縮処理の対象となるＦＡＫＥ画素の画素データとに分けられる。
【０２０８】
図２５は、図２３の間引き処理部２５０５で行われる間引き処理の概念を示す図である。
【０２０９】
図２５には、画像データＤ０のデータ構造も示されており、図２５に示す画像データＤ０のデータ構造は、実際には、図３に示す画像データＤ０のデータ構造と同じものであるが、図２５では、間引き処理の概念を示すため、データ構造が図３とは異なる形式で表されている。
【０２１０】
図２５では、図２５の横方向が、図３で上述した主走査方向であり、その主走査方向とは直角な方向が副走査方向である。上述したように主走査方向に並ぶ画素の列はラインと称され、ここでは６ライン分の画素が示されている。図２５では、各画素の位置は、画素値を表す符号Ｔ，Ｆに付された添え字で表現される。例えば３番目のラインについて、主走査方向に並ぶ各画素の画素値には、その並び順に、
３＿１，３＿２，３＿３，３＿４，…
という添え字が付されている。
【０２１１】
図２３に示す圧縮処理部５００Ｂを構成する間引き処理部２５０５には、このように並んだ画素値からなる画像データが入力され、間引き処理部２５０５は、各画素を、ＴＲＵＥ画素とＦＡＫＥ画素とに分類する。この図２５に示す各画素のうちＴＲＵＥ画素は画素値が符号Ｔで表され、ＦＡＫＥ画素は画素値が符号Ｆで表されている。ＴＲＵＥ画素は、画素の並びの中から周期的に間引かれる画素であり、この図は、副走査方向に１ラインおきの各ライン（奇数番目のライン）について、主走査方向に１画素おきの各画素（奇数番目の画素）がＴＲＵＥ画素として間引き出されることを示している。この結果、ＴＲＵＥ画素は、元の解像度の半分の解像度に低下した画像を構成する画素に相当しており、元の画像データの４分の１に相当する画素が間引き出されたこととなる。このように間引き出されたＴＲＵＥ画素は、そのようなＴＲＵＥ画素の連続からなるＴＲＵＥ画素データを構成し、そのＴＲＵＥ画素データの構造は、元の画像データと同様に、主走査方向と副走査方向に画素が並んだ構造となっている。ＴＲＵＥ画素の間引きによって残ったＦＡＫＥ画素についても、そのＦＡＫＥ画素の画素値の連続からなるＦＡＫＥ画素データを構成する。ＴＲＵＥ画素データが可逆圧縮処理の対象となるのに対し、このＦＡＫＥ画素データは非可逆圧縮処理の対象となる。
【０２１２】
ＴＲＵＥ画素データに対しては、圧縮処理部５００Ｂ内の第３差分符号化部２５１０、第３オフセット部２５２０、第４差分符号化部２５１５、第４オフセット部２５２５、第２プレーン分割部２５３０、第２Ｌプレーン圧縮部２５４０、第２Ｈプレーン圧縮部２５５０、第２相関導出部２５７０、および第２データ選択部２５８０により、図２の圧縮処理部５００Ａの可逆圧縮処理と同様の可逆圧縮処理が行われる。この処理の内容については、図３〜図１８において説明したものと同じであり、ここではその説明は省略する。ＴＲＵＥ画素データに対する可逆圧縮処理の結果、第２Ｌプレーン圧縮部２５４０から下位圧縮データ２Ｄ２Ｌが出力され、第２Ｈプレーン圧縮部２５５０から上位圧縮データ２Ｄ２Ｈが出力される。
【０２１３】
次に、ＦＡＫＥ画素データについての非可逆圧縮処理について説明する。間引き処理部２５０５で得られたＦＡＫＥ画素データはＦＡＫＥ画素データ圧縮部２５６０に入力され、ＦＡＫＥ画素データ圧縮部２５６０内のビット短縮部２５６１は、そのＦＡＫＥ画素データがエッジ部分の画素データであるか否かに応じて、このＦＡＫＥ画素データを、４ビットあるいは１ビットに符号化する。エッジ部分であるか否かは、図２３のエッジ検出部２５９０によって、オフセット後の差分データに基づいて判定され、差分データがヒストグラム（図１２参照）の右側の部分に属していて上位データが「０」以外の値を有しているとエッジ部分であると判定される。
【０２１４】
以下、ＦＡＫＥ画素データが符号化される様子について説明する。
【０２１５】
図２５に示すＴＲＵＥ画素の画素値をＴｎ＿ｋと表現した場合に、そのＴＲＵＥ画素に隣接するＦＡＫＥ画素の画素値はＦｎ＿ｋ＋１，Ｆｎ＋１＿ｋ，Ｆｎ＋１＿ｋ＋１というように表現され、そのＴＲＵＥ画素に対してそれらのＦＡＫＥ画素を挟んだ位置のＴＲＵＥ画素の画素値は、Ｔｎ＿ｋ＋２，Ｔｎ＋２＿ｋ，Ｔｎ＋２＿ｋ＋２と表現される。ビット短縮部２５６１では、このような４つのＴＲＵＥ画素の画素値Ｔｎ＿ｋ，Ｔｎ＿ｋ＋２，Ｔｎ＋２＿ｋ，Ｔｎ＋２＿ｋ＋２から２次元差分符号化処理で得られる差分値が、エッジ部分であることを示す大きな差分値である場合に、上述した３つのＦＡＫＥ画素の画素値Ｆｎ＿ｋ＋１，Ｆｎ＋１＿ｋ，Ｆｎ＋１＿ｋ＋１が、「１」から始まる４ビットの符号に符号化される。
【０２１６】
図２６は、４ビット符号への符号化方式を表す図である。
【０２１７】
この符号化方式では、ＦＡＫＥ画素の画素値は、その画素値を表した８ビットのビット値の下位５桁が切り捨てられ、残った上位３桁の先頭に「１」が付加されることで「１０００」〜「１１１１」の符号に符号化される。従って、この図の表に示すように、符号化前の「０」〜「２５５」の数値のうち「０」〜「３１」の数値は「１０００」に符号化され、「２２」〜「６３」の数値は「１００１」に符号化される。以下同様に、「６４」〜「９５」、「９６」〜「１２７」、「１２８」〜「１５９」、「１６０」〜「１９１」、「１９２」〜「２２３」、「２２４」〜「２５５」の数値は、それぞれ、「１０１０」、「１０１１」、「１１００」、「１１０１」、「１１１０」、「１１１１」に符号化される。このような符号化方式は、ビット値の桁の切り捨てというごく単純な処理で実現される。このような４ビット符号への符号化によって元の画像の情報がある程度維持されて画質低下が回避される。
【０２１８】
ビット短縮部２５６１では、上述した４つのＴＲＵＥ画素の画素値Ｔｎ＿ｋ，Ｔｎ＿ｋ＋２，Ｔｎ＋２＿ｋ，Ｔｎ＋２＿ｋ＋２から２次元差分符号化処理で得られる差分値が、エッジ部分でないことを示す小さな差分値である場合には、上述した３つのＦＡＫＥ画素の画素値Ｆｎ＿ｋ＋１，Ｆｎ＋１＿ｋ，Ｆｎ＋１＿ｋ＋１が１ビットの符号「０」に符号化される。
【０２１９】
１ビットまたは４ビットの符号に置換されたデータは、ランレングス符号化部２５６２およびハフマン符号化部２５６３によって、図２の第１Ｈプレーン圧縮部１５５０における処理と全く同様の処理が施される。ここで、ＦＡＫＥ画素データ圧縮部２５６０にも、第１Ｈプレーン圧縮部１５５０のデータスキャニング部１５５２と同様の働きをするデータスキャニング部が存在するが、図２３ではその図示は省略されている。ランレングス符号化処理およびハフマン符号化処理が施されたＦＡＫＥ画素データは、非可逆圧縮データ２Ｄ３としてＦＡＫＥ画素データ圧縮部２５６０から出力される。
【０２２０】
第２Ｌプレーン圧縮部２５４０および第２Ｈプレーン圧縮部２５５０のそれぞれから出力される下位圧縮データ２Ｄ２Ｌと上位圧縮データ２Ｄ２Ｈとに、さらに非可逆圧縮データ２Ｄ３が加わったデータの組で、元の画像データに対し、圧縮処理部５００Ｂにおいて非可逆圧縮処理が施された圧縮データが構成される。
【０２２１】
パーソナルコンピュータ２００では、送信されてきた画像データに対し、データの復号化処理が行われて、パーソナルコンピュータ２００の表示画面上に画像が表示される。なお、この復号化処理では、非可逆圧縮されたＦＡＫＥ画素データについては、復号時において、４ビットに符号化されたＦＡＫＥ画素データについては８段階の画素データに量子化され、１ビットに符号化されたＦＡＫＥ画素データについては周りのＴＲＵＥ画素の画素データから補間計算を行うことにより、伸張処理が施される。
【０２２２】
以上が、本実施形態の説明である。
【０２２３】
以上の説明では、圧縮処理を行う動画圧縮装置はＵＳＢカメラや、動画撮影機能を備えたデジタルカメラであるが、本発明の動画圧縮装置は、例えばビデオカメラであってもよい。
【０２２４】
また、上記説明では、本発明にいう第２の差分生成部の一例として、動画で時間的に隣接した複数の静止画像の固定位置における画素ごとに差分を求めるものが示されているが、本発明にいう第２の差分生成部は、まず、その静止画像上で差分を求め、さらに、動画で時間的に隣接した静止画像について差分同士の差分を求めるものであってもよい。また、そのように静止画像上で差分を求めるにあたっては、主走査方向の差分や副走査方向の差分といったいわば１次元的な差分演算を用いて差分を求めてもよく、あるいは、静止画像の縦横双方の差分を複合したいわば２次元的な差分演算を用いて差分を求めてもよい。
【図面の簡単な説明】
【０２２５】
【図１】ＵＳＢを利用したカメラシステムの概略図である。
【図２】図１のＵＳＢカメラの内部ブロック図である。
【図３】図２の圧縮処理部に入力される画像データの構造を示す図である。
【図４】図２の圧縮処理部に入力される画像データに対して２次元差分符号化処理が施された後のデータの構造を示す図である。
【図５】図２の圧縮処理部を構成する第１差分符号化部における２次元差分符号化処理を例示して示す図である。
【図６】静止画像を表す画像データの例を示す図である。
【図７】画像データに対する２次元差分符号化およびオフセットの効果を示す図である。
【図８】図２の圧縮処理部を構成する第２差分符号化部における差分符号化処理を例示して示す図である。
【図９】ピークの鋭さが異なる２つのヒストグラムを表した図である。
【図１０】図２の第１相関導出部の構成を表した模式図である。
【図１１】第１相関導出部にあらかじめ入力される閾値の設定を説明するグラフである。
【図１２】第１プレーン分割部によるデータ分割の効果を説明する図である。
【図１３】図２に示すランレングス符号化部での符号化の説明図である。
【図１４】ランレングス符号化部における、圧縮対象数値を対象にした符号化のアルゴリズムを示す図である。
【図１５】図２のランレングス符号化部における、連続数に応じた符号化処理の例を示す図である。
【図１６】データスキャニング部によるスキャニング結果の例を示す図である。
【図１７】ハフマンテーブルの一例を示す図である。
【図１８】ハフマンテーブルに用意される符号列の具体例を示す図である。
【図１９】本発明の別の一実施形態が適用されるカメラシステムの構成図である。
【図２０】図１９のデジタルカメラを前面斜め上から見た外観斜視図である。
【図２１】図１９のデジタルカメラを背面斜め上から見た外観斜視図である。
【図２２】図２０および図２１に外観を示すデジタルカメラの概略構成図である。
【図２３】圧縮処理部として機能するＣＰＵの機能ブロック図である。
【図２４】本発明の動画圧縮プログラムの一実施形態に相当する画像圧縮プログラムの模式構成図である。
【図２５】図２３の間引き処理部で行われる間引き処理の概念を示す図である。
【図２６】４ビット符号への符号化方式を表す図である。
【符号の説明】
【０２２６】
１  カメラシステム
２  ＵＳＢカメラ
２０  撮影部
２０１  対物レンズ
２０２  フォーカスレンズ
２０３  ＣＣＤ
２０４  ビットマップ生成回路
１００  デジタルカメラ
１０１  撮影レンズ
１０２  光学式ファインダ対物窓
１０３  閃光発光部
１０４  電源スイッチ
１０  モードダイヤル
２４  十字キー
１０６  光学式ファインダ接眼窓
１１０  撮影光学系
１１１  ＣＣＤ
１１１ａ  タイミングジェネレータ
１１３  絞り
１１３ａ  絞り制御部
１１４  フォーカスレンズ
１１４ａ  フォーカス制御部
１１５  ズームレンズ
１１５ａ  ズーム制御部
１２０  ＣＰＵ
１２１  ＲＯＭ
１２２  画像信号処理部
１２３  表示制御部
１２５  マイクロフォン
１２５ａ  受話口
１２６  ＡＦ／ＡＥ演算部
１２９  ＲＡＭ
１３０  画像表示部
１３１  ＵＳＢコネクタ
１４０  書込／読出部
１４１  メモリカード
１４２  メモリカードスロット
１４３  バッファメモリ
１５０  レリーズボタン
１５１  操作部
１６０  メニューボタン
１７０  実行／画面切換スイッチ
１２００  バス
４，２００  パーソナルコンピュータ
３，３００  ＵＳＢケーブル
５００  圧縮処理部
１５１０  第１差分符号化部
１５２０  第１オフセット部
１５１５  第２差分符号化部
１５２５  第２オフセット部
１５３０  第１プレーン分割部
１５４０  第１Ｌプレーン圧縮部
１５５０  第１Ｈプレーン圧縮部
１５７０  第１相関導出部
１５７０ａ  参照データ
１５７０ｂ  絶対値差分器
１５７０ｃ  パルス幅変調器
１５７０ｄ  積分器
１５８０  第１データ選択部
２５０５  間引き処理部
２５１０  第３差分符号化部
２５２０  第３オフセット部
２５１５  第４差分符号化部
２５２５  第４オフセット部
２５９０  エッジ検出部
２５３０  第２プレーン分割部
２５４０  第２Ｌプレーン圧縮部
２５５０  第２Ｈプレーン圧縮部
２５６０  ＦＡＫＥ画素データ圧縮部
２５７０  第２相関導出部
２５８０  第２データ選択部
１５４１，１５５３，２５４１，２５５３，２５６３  ハフマン符号化部
１５４２，２５４２  モード切換部
１５５１，２５５１，２５６２  ランレングス符号化部
１５５２，２５５２  データスキャニング部
２５６１  ビット短縮部
６００  画像圧縮プログラム
２６０５  間引き処理部
２６１０  第３差分符号化部
２６２０  第３オフセット部
２６１５  第４差分符号化部
２６２５  第４オフセット部
２６９０  エッジ検出部
２６３０  第２プレーン分割部
２６４０  第２Ｌプレーン圧縮部
２６５０  第２Ｈプレーン圧縮部
２６６０  ＦＡＫＥ画素データ圧縮部
２６７０  第２相関導出部
２６８０  第２データ選択部
【図１】
2010021881.tif 000007
【図２】
2010021881.tif 000008
【図３】
2010021881.tif 000009
【図４】
2010021881.tif 000010
【図５】
2010021881.tif 000011
【図６】
2010021881.tif 000012
【図７】
2010021881.tif 000013
【図８】
2010021881.tif 000014
【図９】
2010021881.tif 000015
【図１０】
2010021881.tif 000016
【図１１】
2010021881.tif 000017
【図１２】
2010021881.tif 000018
【図１３】
2010021881.tif 000019
【図１４】
2010021881.tif 000020
【図１５】
2010021881.tif 000021
【図１６】
2010021881.tif 000022
【図１７】
2010021881.tif 000023
【図１８】
2010021881.tif 000024
【図１９】
2010021881.tif 000025
【図２０】
2010021881.tif 000026
【図２１】
2010021881.tif 000027
【図２２】
2010021881.tif 000028
【図２３】
2010021881.tif 000029
【図２４】
2010021881.tif 000030
【図２５】
2010021881.tif 000031
【図２６】
2010021881.tif 000032