(57)【要約】ディジタルイメージセンサデータワード群をインストリーム圧縮する方法及びシステム。ディジタルイメージセンサデータワードのうち最下位ビットから所定ビット数分をマスクし又はドロップさせることにより（図５中の５４）画像データのフレームにおけるデータ量を減らす。このマスキングの後、ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得る（図５中の５６及び６４）。そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータの差分ワード群を分割する（図５中の６５）。各チャネルについて個々別々の累積分布関数による処理を実行し（図５中の６６、６８及び７０）多重化する（図５中の７２）。多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化する（図５中の７４）。本方法及びシステムでは更に除算不要型算術符号化方法を使用して符号化用ハードウェアの必要条件を緩和する。そして、本方法及びシステムではラウンドロビン方式削除手法を使用してヒストグラム内の元の個数を適応的に固定する。
2006502673.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）シーンを捕捉し捕捉したシーンをディジタルイメージセンサデータワード群に変換するステップと、
（ｂ）当該ディジタルイメージセンサデータワード群を圧縮するステップと、
（ｃ）圧縮されたディジタルイメージセンサデータワード群を一時メモリ内に保存するステップと、
（ｄ）一時メモリから恒久メモリへとディジタルイメージセンサデータワード群を転送するステップと、
を有するディジタルイメージセンサデータワード群インストリーム圧縮方法。
【請求項２】
請求項１記載の方法において、一時メモリから恒久メモリへと転送されるディジタルイメージセンサデータワード群が、圧縮されたディジタルイメージセンサデータワード群である方法。
【請求項３】
請求項１記載の方法において、圧縮されたディジタルイメージセンサデータワード群が、一時メモリから恒久メモリへの転送に先立ち展開される方法。
【請求項４】
請求項１記載の方法において、一時メモリがＳＲＡＭである方法。
【請求項５】
請求項１記載の方法において、恒久メモリがフラッシュメモリである方法。
【請求項６】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）ディジタルイメージセンサデータワードのうち最下位ビットから所定ビット数分をマスクするステップと、
（ｂ２）マスクされたディジタルイメージセンサデータワード群を符号化することにより圧縮されたディジタルイメージセンサデータワード群を生成するステップと、
を含む方法。
【請求項７】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、
（ｂ２）ディジタルイメージセンサデータの差分ワード群を符号化することにより圧縮されたディジタルイメージセンサデータワード群を生成するステップと、
を含む方法。
【請求項８】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）ディジタルイメージセンサデータワードのうち最下位ビットから所定ビット数分をマスクするステップと、
（ｂ２）ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、
（ｂ３）ディジタルイメージセンサデータの差分ワード群を符号化することにより圧縮されたディジタルイメージセンサデータワード群を生成するステップと、
を含む方法。
【請求項９】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータワードを分割するステップと、
（ｂ２）個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、
（ｂ３）分布化されたディジタルイメージセンサデータを多重化するステップと、
（ｂ４）多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、
を含む方法。
【請求項１０】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）ディジタルイメージセンサデータワードのうち最下位ビットから所定ビット数分をマスクするステップと、
（ｂ２）そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、マスクされたディジタルイメージセンサデータワードを分割するステップと、
（ｂ３）個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、
（ｂ４）分布化されたディジタルイメージセンサデータを多重化するステップと、
（ｂ５）多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、
を含む方法。
【請求項１１】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、
（ｂ２）そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータの差分ワードを分割するステップと、
（ｂ３）個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、
（ｂ４）分布化されたディジタルイメージセンサデータを多重化するステップと、
（ｂ５）多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、
を含む方法。
【請求項１２】
請求項１記載の方法において、ディジタルイメージセンサデータワード群を圧縮するステップが、
（ｂ１）ディジタルイメージセンサデータワードのうち最下位ビットから所定ビット数分をマスクするステップと、
（ｂ２）ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、
（ｂ３）そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータの差分ワードを分割するステップと、
（ｂ４）個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、
（ｂ５）分布化されたディジタルイメージセンサデータを多重化するステップと、
（ｂ６）多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、
を含む方法。
【請求項１３】
（ａ）その最下位ビットから所定ビット数に亘り各ディジタルイメージセンサデータワードをマスクするステップと、
（ｂ）ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、
を有するディジタルイメージセンサデータワード群圧縮用インストリームモデリング方法。
【請求項１４】
（ａ）そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータワードを分割するステップと、
（ｂ）個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、
（ｃ）分布化されたディジタルイメージセンサデータを多重化するステップと、
（ｄ）多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、
を有するディジタルイメージセンサデータワード群圧縮用インストリーム符号化方法。
【請求項１５】
（ａ）その最下位ビットから所定ビット数に亘り各ディジタルイメージセンサデータワードをマスクするステップと、
（ｂ）ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、
（ｃ）そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータの差分ワードを分割するステップと、
（ｄ）個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、
（ｅ）分布化されたディジタルイメージセンサデータを多重化するステップと、
（ｆ）多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、
を有するディジタルイメージセンサデータワード群インストリーム圧縮方法。
【請求項１６】
（ａ）ヒストグラム内の元の個数を２のべき乗に固定するステップと、
（ｂ）ヒストグラムのビン内にある元の個数を判別するステップと、
（ｃ）ヒストグラムのビン内にある元の個数の判別値に対してビットシフト処理を実行することによりシンボル符号化確率を探索するステップと、
を有する除算不要型算術符号化方法。
【請求項１７】
請求項１６記載の方法において、新たな元が到来するたびにヒストグラムから元を適応的に削除することによりヒストグラム内の元の個数が固定される方法。
【請求項１８】
請求項１６記載の方法において、新たな元が到来するたびに加重ラウンドロビン方式に従いヒストグラムから元を適応的に削除することによりヒストグラム内の元の個数が固定される方法。
【請求項１９】
請求項１７記載の方法において、新たな元の到来に応じたヒストグラムからの元の削除が、元が追加された順序を追跡しその順序に従い元を削除することにより行われる方法。
【請求項２０】
請求項１９記載の方法において、元が追加されまた削除される順序の追跡が、ヒストグラムに追加すべき新たなデータ元が得られたときに、追加ポインタが指し示しているビンの値をインクリメントし且つ削除ポインタが指し示しているビンの値をデクリメントすることにより、行われる方法。
【請求項２１】
（ａ）ヒストグラムに追加すべき新たなデータ元を得るステップと、
（ｂ）この新たなデータ元をヒストグラムに追加するステップと、
（ｃ）新たなデータ元が追加される順序を追跡するステップと、
（ｄ）追跡により得られた順序に従いヒストグラムからデータ元を削除するステップと、
を有するヒストグラム内元個数適応固定方法。
【請求項２２】
請求項２１記載の方法において、元が追加されまた削除される順序の追跡が、ヒストグラムに追加すべき新たなデータ元が得られたときに、追加ポインタが指し示しているビンの値をインクリメントし且つ削除ポインタが指し示しているビンの値をデクリメントすることにより、行われる方法。
【請求項２３】
（ａ）ヒストグラムに追加すべき新たなデータ元を得るステップと、
（ｂ）この新たなデータ元をヒストグラムに追加するステップと、
（ｃ）ヒストグラムに新たなデータ元を追加するときに、そのビン内の元の個数を示すビン値をインクリメントするステップと、
（ｄ）ヒストグラム内の現在のビンが元削除の対象であるか判別するステップと、
（ｅ）ヒストグラム内の現在のビンが元削除の対象であると判別されたときに、ヒストグラム内の現在のビンから削除する元の個数を表す値を減らすステップと、
（ｆ）削除する元の個数を表す値が減らされたときに、ヒストグラムから元を削除するステップと、
を有するヒストグラム内元個数適応固定方法。
【請求項２４】
請求項２３記載の方法において、更に、
（ｇ）ヒストグラム内の現在のビンが元削除の対象でないと判別されたときに、元を削除しようとしていたビンから次のビンへと進むステップと、
（ｈ）ヒストグラム内の現在のビンから削除する元の個数を表す値を所定値にリセットするステップと、
を有する方法。
【請求項２５】
請求項２４記載の方法において、上記所定値が、ヒストグラム内の現在のビンから削除する元の個数を４で除した値と等しい方法。
【請求項２６】
請求項２３記載の方法において、ヒストグラム内の現在のビンから削除する元の個数を表す値が１に等しいときには、ヒストグラムから元を削除しない方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、この参照を以てその全内容が本願に繰り入れられるところの２００２年１０月１１日付米国暫定特許出願第６０／４１７９７８号に基づく優先権主張を伴っている。
【０００２】
本発明は、その処理や保存（格納）に際しディジタルイメージセンサデータをインストリーム圧縮即ちオンザフライ圧縮できるようにするファームウェア及び処理技術に関する。
【背景技術】
【０００３】
通常、ＣＭＯＳイメージセンサ等のイメージセンサを用いて画像データを取得したら、後のアクセス例えばコンピュータやネットワークやプリンタへのダウンロードに備え、イメージセンサからの画像データを保存しておくのが望ましい。そのようにすれば、ダウンロード先のコンピュータにてその画像データを保存乃至操作することや、ダウンロード先のネットワークにてその画像データを保存乃至転送することや、ダウンロード先のプリンタにてその画像データをプリントアウトすることができる。
【０００４】
図１に、従来におけるディジタル画像記録システム例えばディジタルカメラの基本ブロック構成を示す。この図に示す画像信号記録システム１は、レンズ２、イメージセンサ３、カメラ信号処理回路４、画像信号圧縮回路５、記録モード選択回路６、カード識別回路７、システムコントローラ８、モニタスクリーン９、カードソケット１０、ＰＣカード１１及び基準情報保存回路１２を備えている。
【０００５】
システム１においては、レンズ２によってイメージセンサ３上に画像が収束形成され、イメージセンサ３によってこの画像が電気的な画像信号に変換され、白バランス回路等の既知回路を内蔵するカメラ信号処理回路４によってこの画像信号が処理され、処理された画像信号が圧縮回路５によって圧縮され、圧縮により得られた静止画像データがソケット１０を介しＰＣカード１１内に保存・格納される。また、記録される画像は、画像信号記録システム１のオペレータがモニタできるよう、モニタスクリーン９上に表示される。
【０００６】
看取できる通り、この図に示した構成は、ＪＰＥＧ圧縮や自動露出や白バランス等のプロセスをその内部で実行するハイエンドカメラを実現する際に、採用される構成である。即ち、この図は、その内部でＪＰＥＧ圧縮や自動露出や白バランス等のプロセスを実行しないローエンドカメラにてどのような構成が普通かを、示すものではない。
【０００７】
通常の乃至既存のローエンドカメラは、単純に、生画像をＲＡＭ上に捕捉（キャプチャ）し、その画像を画像データ保存用不揮発性メモリ例えばフラッシュメモリへと転送する、といった構成を採る。ユーザがこのディジタルカメラのシャッタボタンを押す等すると、イメージセンサにより画像が取得され、取得された画像のフレームがイメージセンサから画像データ保存用不揮発性メモリへと転送される。しかしながら、この画像フレーム転送は、単一画像フレームに対して割り当てられている時間内、即ちイメージセンサのフレームレートにより定まるある時間内に、行わねばならない。これは、普通、イメージセンサが画像データを単一フレーム長より長くは保持できないためである。
【０００８】
イメージセンサの使い道にもよるが、フラッシュメモリの特性には、イメージセンサからのデータを初期的に保存する媒体としては最善ではない面がある。より具体的には、フラッシュメモリによるデータ受付速度が通常のイメージセンサフレーム時間に見合った速度でない、ということが、多くのディジタル画像利用分野に関して判明している。言い換えれば、フラッシュメモリが低速すぎて所定の画像フレーム到来周期内に画像フレームの全体を受け取れない、といったことがしばしばある。
【０００９】
ディジタルスチルカメラの分野においては、画像に圧縮を施すことが望ましいとされている。これは、不揮発性メモリ内に保存できる画像の枚数を増やすと同時に、そのカメラからホストへと画像をダウンロードする際の所要時間を短縮するためである。また、不揮発性メモリへの書込速度はイメージセンサにおけるデータレート期待値より低いため、カメラ内にフレームバッファを設けるのが普通である。従って、画像データは、通常、イメージセンサからフレームバッファへと転送されその上で画像圧縮が施される。これは、フレームバッファに格納されている画像データに対しては素早いアクセスが可能であり従って複雑な画像圧縮手法も適用可能であるためであるが、典型的な圧縮手法例えばＪＰＥＧ圧縮が望ましくない場合もある。
【００１０】
従って、フラッシュメモリをイメージセンサからのデータの初期保存に好適利用できるシステム乃至方法を得ることが、望まれている。また、フラッシュメモリが通常のイメージセンサフレーム時間に見合った速度でデータを受け取ることができるシステム乃至方法を得ることが、望まれている。更に、フラッシュメモリが十分高速でデータを受け取ることができ所定の画像フレーム周期内で画像フレーム全体を受け取ることができるシステム乃至方法を得ることが、望まれている。加えて、イメージセンサとフレームバッファの間で圧縮を行うようにしフレームバッファのサイズ及びフレームバッファに要するコストを抑えることができるシステム乃至方法を得ることが、望まれている。
【発明の開示】
【００１１】
本発明の第１の構成に係るディジタルイメージセンサデータワード群インストリーム圧縮方法は、シーンを捕捉し捕捉したシーンをディジタルイメージセンサデータワード群に変換するステップと、当該ディジタルイメージセンサデータワード群を圧縮するステップと、圧縮されたディジタルイメージセンサデータワード群を一時メモリ内に保存するステップと、一時メモリから恒久メモリへとディジタルイメージセンサデータワード群を転送するステップと、を有する。
【００１２】
本発明の第２の構成に係るディジタルイメージセンサデータワード群圧縮用インストリームモデリング方法は、その最下位ビットから所定ビット数に亘り各ディジタルイメージセンサデータワードをマスクするステップと、ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、を有する。
【００１３】
本発明の第３の構成に係るディジタルイメージセンサデータワード群圧縮用インストリーム符号化方法は、そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータワードを分割するステップと、個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、分布化されたディジタルイメージセンサデータを多重化するステップと、多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、を有する。
【００１４】
本発明の第４の構成に係るディジタルイメージセンサデータワード群インストリーム圧縮方法は、その最下位ビットから所定ビット数に亘り各ディジタルイメージセンサデータワードをマスクするステップと、ディジタルイメージセンサデータに交番的に現れるワード同士を減算することによりエントロピーが低減されたデータモデルを得るステップと、そのビット幅を合計するとディジタルイメージセンサデータワードのビット幅に等しくなるようそのビット幅が設定されている所定個数のチャネルへと、ディジタルイメージセンサデータの差分ワードを分割するステップと、個々別々の累積分布関数による処理をディジタルイメージセンサデータの各チャネルについて実行するステップと、分布化されたディジタルイメージセンサデータを多重化するステップと、多重化されたディジタルイメージセンサデータを算術圧縮符号化処理により符号化するステップと、を有する。
【００１５】
本発明の第５の構成に係る除算不要型算術符号化方法は、ヒストグラム内の元の個数を２のべき乗に固定するステップと、ヒストグラムのビン内にある元の個数を判別するステップと、ヒストグラムのビン内にある元の個数の判別値に対してビットシフト処理を実行することによりシンボル符号化確率を探索するステップと、を有する。
【００１６】
本発明の第６の構成に係るヒストグラム内元個数適応固定方法は、ヒストグラムに追加すべき新たなデータ元を得るステップと、この新たなデータ元をヒストグラムに追加するステップと、新たなデータ元が追加される順序を追跡するステップと、追跡により得られた順序に従いヒストグラムからデータ元を削除するステップと、を有する。
【００１７】
本発明のもう一つの構成に係るヒストグラム内元個数適応固定方法は、ヒストグラムに追加すべき新たなデータ元を得るステップと、この新たなデータ元をヒストグラムに追加するステップと、ヒストグラムに新たなデータ元を追加するときに、そのビン内の元の個数を示すビン値をインクリメントするステップと、ヒストグラム内の現在のビンが元削除の対象か判別するステップと、ヒストグラム内の現在のビンが元削除の対象であると判別されたときに、ヒストグラム内の現在のビンから削除する元の個数を表す値を減らすステップと、削除する元の個数を表す値が減らされたときに、ヒストグラムから元を削除するステップと、を有する。
【発明を実施するための最良の形態】
【００１８】
本発明は、様々なコンポーネント若しくはステップによって又はそれらの様々な配置乃至組合せによって、実現することができる。添付図面は好適な実施形態を説明するためのものであり、図面に基づき本発明を限定解釈してはならない。
【００１９】
以下、本発明の好適な実施形態に関して説明する。但し、本発明を本願に記載の実施形態に限定する意図はないことを理解されたい。むしろ、添付した請求の範囲に記載の通り、本発明の技術的範囲及び思想には、本願に記載の実施形態に対する代替物、変形物乃至均等物まで包含され得る。
【００２０】
また、本発明を全般的に理解できるようにするため、以下の説明では図面を参照する。図中、同一の又は等価な構成要素に対しては一貫して同様の参照符号を付してある。また、本発明を示す図面における尺度乃至縮尺が均一ではないことに注意すべきであろう。即ち、本発明の特徴及び基本概念を適切に描き出すため、本発明に係る図面においては意図的に、特定領域を他の領域に対し拡大又は縮小して描いてある。
【００２１】
先に述べたように、ディジタルスチルカメラの分野においては、不揮発性メモリに保存できる画像の枚数を増やすため及びカメラからホストへと画像をダウンロードする際の所要時間を短縮するため、画像に圧縮を施すことが望ましいとされている。この要請に応えるため並びにフレームバッファのサイズ及びフレームバッファに要するコストを抑えるため、本発明においては、イメージセンサとフレームバッファとの間で圧縮を施すこととしている。また、このような圧縮を実現するため、本発明においては、ハードウェアを効率的に利用する圧縮エンジンによってインストリーム画像圧縮を行わせることとしている。
【００２２】
更に、イメージセンサから来るデータストリームは生のベイヤ（Ｂａｙｅｒ）データから構成されている。ベイヤデータは、あるロー（行）では赤色画素と緑色画素とが交番的に現れ、その隣のローでは緑色画素と青色画素が交番的に現れる、といった画素配列乃至配色を有するデータである。このような配色下では、一つおきに画素を取り出して作成したデータセットにおける相関性が、隣り合っている画素を隣り合っているままに取り出して作成した単純な画素列における相関性に比べて、強いものになりやすい。また、ローバッファを用いないでインストリーム圧縮を行うためには、データのモデリングを一次元的なものにしなければならない。そこで、本発明においては、画素を一つおきに取り出して差分を求めその結果を符号化する一次予測モデルを採用することとしている。
【００２３】
これらを実現するため、本発明においては、図２に例示するようにＳＲＡＭを含む回路構成を採用している。
【００２４】
図２に、本発明の実施形態に係りディジタル画像の捕捉及び保存を実行可能なイメージャシステム例について、コンポーネント間の関係をブロック図により示す。この図に示すイメージャシステムは、画像シーンを捕捉し電気信号乃至画像データに変換するイメージャ２０を備えている。コントローラ３０は、ＡＳＩＣ等のハードウェアコントローラ又はファームウェアコントローラとして実現されており、イメージャ２０とメモリユニットとの間でのデータ転送を管理している。即ち、コントローラ３０は、イメージャ２０が指令に応じて画像を捕捉しているときに、イメージャ２０から圧縮エンジン４０へと画像データフレームを転送させる。圧縮エンジン４０はコントローラ３０を構成するコンポーネントであり、Ｖｅｒｉｌｏｇで記述することにより実現できる。コントローラ３０は、圧縮エンジン４０によりイメージャ２０からの画像データをインストリーム圧縮しながら、圧縮した画像データをＳＲＡＭ４８に転送して一時保存させる。１フレーム分の画像データがまるまる圧縮されＳＲＡＭ４８に保存された時点で、コントローラ３０はＳＲＡＭ４８内の画像データをフラッシュメモリ４５に送る。
【００２５】
注記すべきことに、本発明においては、圧縮エンジン４０による画像データのインストリーム圧縮を、イメージャ２０からの画像データ転送に使用するクロックレートにて実行しなければならない。即ち、利用するシステムクロックのレートを画像データ転送レートよりも高めて圧縮エンジン４０に対し多くの処理時間を与えることが、できない。
【００２６】
しかしながら、多くの用途では、ＳＲＡＭ４８はシステムクロックレートでは動作させることができず、例えばシステムクロックの１／３以下のレートでしかデータを取り扱うことができない。この条件下では、圧縮エンジン４０は、ＳＲＡＭ４８に書き込む各圧縮画像データワード毎に、３クロックサイクル分の処理時間を利用することができる。即ち、圧縮エンジン４０は、実質的に、画像データストリーム転送を管理するシステムクロックに比して３倍速いクロックで制御されているかのように、動作する。後により詳細に説明するように、このような状況乃至条件を利用すれば、コントローラ３０、イメージャ２０及びＳＲＡＭ４８間で高効率データ転送を実行できる。
【００２７】
なお、図２においては、イメージャ２０とコントローラ３０の間のデータバスと、コントローラ３０とＳＲＡＭ４８の間のデータバスと、ＳＲＡＭ４８とフラッシュメモリ４５の間のデータバスとが、別々のバスであるかのように描かれている。しかしながら、本発明を実施するに際してそのようなバス構成を採る必要はなく、イメージャシステムコンポーネント間でのデータ転送は単一のバスによって行うことができる。言い換えれば、本発明に係る思想は、一種類のデータバスしか利用していない構成或いは各種コンポーネント間のデータ転送全てを単一のデータバス上で行う構成を、包含している。
【００２８】
更に注記すべきことに、以下の説明では本発明を単一バスシステムにより実施する例を示すけれども、単一バスシステムは本発明に係る思想を実現する上で必須の事項ではない。
【００２９】
本発明によれば、フラッシュメモリに係る帯域幅制限乃至速度制限を、所定の画像フレーム取得期間にて取得された画像データフレームを受け取って保存する一時バッファ、例えば図２中のＳＲＡＭ４８を用いることにより補償できる。一時バッファに画像データフレームを保存しておけば、保存したデータを後でフラッシュメモリへとルーティングしまた当該フラッシュメモリ内に恒久的に保存させることができる。
【００３０】
ここに、既に幾つかの利用分野において判明していることであるが、使用するイメージセンサに比肩してそのデータ保存能力が十分でないＳＲＡＭを使用する場合、データ保存問題が発生し得る。例えば、ＳＲＡＭのデータ保存能力が１ＭＢであるとする。この場合、１３０万画素ディジタルＣＭＯＳイメージセンサから８ビット幅画素からなる画像データを受け取りこれをそのままＳＲＡＭに保存しようとしても、１３０万バイトにもなる画像データフレームを丸ごとそのＳＲＡＭ内に保持することはどうやっても不可能である。この場合に最もよいのは、単一フレーム取得期間（普通は例えば１０ｍｓ以下の時間）内に画像データフレームを丸ごと保存できるよう、一時バッファのサイズを設定し或いは画像データフレームのサイズを調整することである。本発明によれば、このデータ保存問題を様々な形で解決できる。
【００３１】
まず、本発明の実施形態としては、イメージセンサからのデータストリームをＳＲＡＭとフラッシュメモリとに振り分け、これらＳＲＡＭ及びフラッシュメモリの双方を用い、同一フレーム期間に係るセンサ画像データを保存する、という実施形態を示すことができる。この実施形態においては、ＳＲＡＭに向かうストリームにおけるデータレートと、フラッシュメモリに向かうストリームにおけるデータレートとを足すと、イメージセンサにおけるデータレートに等しくなる。従って、フラッシュメモリに向かうストリームにおけるデータレートを最大限まで高めればＳＲＡＭに向かうストリームにおけるデータレートを最低限まで低くすることができ、従ってＳＲＡＭのサイズ及び速度を最小化できる。例えば、１３０万画素イメージセンサを１０フレーム／ｓｅｃで動作させており従ってイメージセンサからのデータレートが１３ＭＢ／ｓｅｃである場合、フラッシュメモリに向かうストリームにおけるデータレートを最大値例えば５ＭＢ／ｓｅｃまで高めれば、ＳＲＡＭに向かうストリームにおけるデータレートを８ＭＢ／ｓｅｃまで下げることができる。１フレーム分の画像の取得を終えた時点では、フラッシュメモリ内には５００ＫＢのデータが、またＳＲＡＭ内には８００ＫＢのデータがあるから、この段階でＳＲＡＭ内にある８００ＫＢのデータをフラッシュメモリに転送すれば、フラッシュメモリ内に画像フレーム全体のデータを恒久保存することができる。
【００３２】
本発明の実施形態としては、第２に、イメージセンサからデータを受け取るのに複数個のＳＲＡＭバッファを使用する実施形態を示すことができる。例えば、１ＭＢのＳＲＡＭを５１２ＫＢのＳＲＡＭと共に用いれば、十分に、単一フレーム取得期間内に１３０万バイトの画像データフレーム全部を一時保存することができる。
【００３３】
本発明の実施形態としては、第３に、単一フレーム取得期間内にてイメージセンサから画像データを受け取りつつ且つその画像データをＳＲＡＭに書き込むのに先立ち、当該画像データをインストリーム圧縮即ちオンザフライ圧縮する実施形態を示すことができる。このとき圧縮率を十分に高くすれば、使用しているイメージセンサに比肩してそのデータ保存能力が劣る（小さな）ＳＲＡＭ内に、画像データフレーム全体を取り込むことができる。
【００３４】
例えば、データ圧縮率を十分高くすれば、１ＭＢのＳＲＡＭ内に１３０万画素イメージセンサからの画像データを取り込むこともできる。引き続いて、ＳＲＡＭ内に保存されている圧縮画像データを（圧縮状態のままで又は展開して）フラッシュメモリへと送れば、その画像データをより恒久的に保存することができる。
【００３５】
注記すべきことに、大概の用途では、画像データを圧縮状態でフラッシュメモリに送る方がよい。これは、フラッシュメモリ内に圧縮状態でデータを保存すれば、フラッシュメモリのデータ保存能力が相対的に高まり、より容量が小さくまた安価なフラッシュメモリを使用可能になるからである。また、フラッシュメモリ上の画像データが圧縮されていれば、フラッシュメモリから後段階への画像データの転送例えばＰＣへの転送を迅速に行うことが可能で、その際に必要となるデータ転送能力も低いものでよい。
【００３６】
図４に、本発明に係る制御手法のフロー、特に上掲のインストリーム画像データ圧縮を実現する実施形態におけるフローを示す。この図に示した実施形態においては、コントローラはまず新規画像フレームの開始を待ち（Ｓ１２）、新規画像フレームの開始をうけて圧縮エンジンをリセットする（Ｓ１６）。コントローラは更に現フレームの新規ローの開始を待ち（Ｓ１８）、新規ローの開始をうけて（Ｓ２０）イメージャから画像データを１ワード取得し（Ｓ２２）そのデータを圧縮エンジンへと送る（Ｓ２４）。
【００３７】
圧縮エンジンにデータを１ワードを送るたびに、コントローラは、圧縮エンジンによる圧縮が済んだデータがあるかどうか、即ちＳＲＡＭへと転送してよい圧縮データがあるかどうかをチェックする（Ｓ２６）。転送してよい圧縮データがなければ、コントローラは現ローの画像データを処理し終えたかどうかをチェックする（Ｓ２８）。現ローの処理が終わっていない場合は、コントローラは、イメージャからデータをもう１ワード取得し（Ｓ２２）圧縮エンジンに送る。現ローの処理が終わっている場合は、コントローラは更に現フレームの処理が終わっているかどうかをチェックする（Ｓ３０）。現フレームの処理が終わっていない場合は、コントローラはイメージャからの新規ローの画像データを待ち新規ローが始まったらその画像データを受け取る。現フレームの処理が終わっている場合は、コントローラは新規フレームの開始を待つ。
【００３８】
圧縮エンジンから転送してよい圧縮データがあるかどうかをコントローラがチェックした結果（Ｓ２６）、転送してよい圧縮データがあるとの判別結果が得られた場合は、コントローラはその圧縮データのＳＲＡＭへの送信を開始する（Ｓ３２）。ＳＲＡＭへのデータ送信を始めた後、コントローラは、圧縮エンジンが圧縮中のデータで満杯になっていないかどうか、並びに圧縮エンジンが現画像データローを全部処理し終えていないかどうかを、チェックする（Ｓ３４）。圧縮エンジンが圧縮すべきデータで満杯になっている場合は、コントローラはＳＲＡＭへのデータ書込を実行し（Ｓ３６）、現ローについての圧縮処理が終了したかどうかをチェックする（Ｓ２８）。
【００３９】
圧縮エンジンが圧縮中のデータで満杯になっておらず且つ現画像データローを全部処理し終えていない場合は、コントローラは、可能であればライトサイクルタイムのうちＳＲＡＭが必要としていない期間を利用して、イメージャからデータを１ワード取得し圧縮エンジンに送信する（Ｓ３８）。そして、コントローラは、現ＳＲＡＭライトサイクル中にそのデータワードをＳＲＡＭに書き込む（Ｓ３６）。このように、本発明の好適な実施形態は、コントローラとイメージャ及びＳＲＡＭとの間のデータ転送に単一データバスを必須的に又は好適に採用するアーキテクチャ乃至システムにおいて、利用することができる。
【００４０】
図３に、ＳＲＡＭに宛ててデータバス上に送出したデータに関しシステムクロックとＳＲＡＭタイミング条件との対応関係の例を示す。この例におけるシステムクロック周期は２０ｎｓｅｃである。また、この例においてはＳＲＡＭのライトサイクルとして８０ｎｓｅｃを必要としている。即ち、ＳＲＡＭは８０ｎｓｅｃ毎に１ワードの新規データを受け取れる。但し、ＳＲＡＭに送るべきデータがデータバス上で有効となっていなければならないのは、８０ｎｓｅｃのＳＲＡＭライトサイクルのうちライトイネーブル信号（ＳＲＡＭ  ＷＥＮ）がセットされている一部期間例えば４０ｎｓｅｃの間のみである。
【００４１】
このようにＳＲＡＭライトサイクル中の一部期間のみでデータが有効であればよいという条件下では、ＳＲＡＭライトサイクル中の他の一部期間にてデータバスを他の目的、例えばイメージャから圧縮エンジンへのデータ転送に利用できる。そこで、本発明においては、ＳＲＡＭライトサイクルのうち当該他の目的に利用可能な期間を好適に利用することにより、単一データバス上で且つ同一ＳＲＡＭライトサイクル内でイメージャからのデータと圧縮データとを効率的に多重化し、データバスのより効率的な利用を図ると共に、圧縮エンジンに対しより多くの時間を与えＳＲＡＭに送る画像データを処理させる。従って、実質的に、圧縮エンジンはＳＲＡＭにおけるクロックレートより高いクロックレートにて動作する。即ち、この手法を用いることによって、圧縮エンジンにおけるデータ圧縮速度やＳＲＡＭにおけるデータ保存速度に見合った速度（これらを収容できる速度）までイメージセンサのフレームレートを落とす必要がなくなる。
【００４２】
さて、本発明に係る手法によるデータ圧縮においては、一般に二種類のタスクが必要となる。そのうち第１のタスクはモデリングタスクであり、第２のタスクはコーディングタスクである。モデリングタスクは、データに含まれる各種の冗長性を記述するようデータをモデリングし、これによりデータセットのエントロピーを低減するタスクである。コーディングタスクは、データを符号化することにより圧縮されたデータを得るタスクである。
【００４３】
まずデータモデリングタスクについて考えるに、一般に、画像情報は冗長性の高い情報であり、この冗長性を利用すれば画像データのエントロピーを低減することができる。ここに、データセットはそのデータ自体のエントロピーまでしかロスレス圧縮できないのであるから、高エントロピーデータセットは低エントロピーデータセットに比べて小幅にしか圧縮できない。この制約に抗するため、本発明においては、ＣＡＬＩＣ（Ｃｏｎｔｅｘｔ  Ａｄａｐｔｉｖｅ  Ｌｏｓｓｌｅｓｓ  Ｉｍａｇｅ  Ｃｏｍｐｒｅｓｓｉｏｎ）等で採用されている予測モデル等、様々なデータモデルを好適に選択及び採用することにより、データセットのエントロピーを低減することとしている。
【００４４】
モデリング手法を使用する際には、多くの場合、ローバッファ及び関連ハードウェアが必要とされる。しかしながら、イメージャ関連分野の多くでは、ハードウェアに課される制約が厳しく、これらローバッファ及び関連する典型的なハードウェアを使用することができない。例えば、注目画素に隣接する画素のデータ値を調べ、それによりそれら隣接画素間に位置する注目画素のデータ値を予測する、というモデリング手法においては、しばしばローバッファが必要となるが、ハードウェア的制約が厳しくその種のローバッファを用いることができないイメージャシステムにおいては、隣接画素を利用したモデリング手法を用いることができない。このような場合に望ましいのは、イメージャシステムの特性に応じてハードウェア上の制約条件を緩和することや、一次予測モデリング手法等、ハードウェア上の制約条件に相応したモデリング手法を採用することである。
【００４５】
そこで、本発明においては、イメージセンサから画像データとして与えられる生ベイヤデータを対象として一次予測モデリング手法を適用することとしている。生ベイヤデータは、あるローにおいては赤色画素と緑色画素が交互に現れ、その次のローにおいては緑色画素と青色画素が交互に現れる、といった色配置を有する複数のローから構成されるデータである。従って、生ベイヤデータにおいては、同一ロー内にあり間に１画素を挟んでいる２個の画素間のデータの相関性（同一ロー内で交番的に現れる画素のデータ間の相関性）が、隣り合っている画素間の相関性に比べて強くなる。
【００４６】
本一次予測モデリング手法においては、このような相関性パターンを前提としている。即ち、本手法では、同一ローに属する同色画素のうち互いに最も近い位置にある２個の同色画素のデータ値同士は概ね等しいものである、との想定の下に両データ値間の差分を求め、求めた差分（誤差分）を符号化する。この処理、即ちベイヤ差分化処理は、符号化対象とされている注目画素のデータ値を、イメージセンサの画素アレイ上で当該着目画素と同一ローにあり且つ当該着目画素から見て２カラム（列）前にある画素のデータ値から減ずることによって、実現できる。
【００４７】
このようなベイヤ差分化処理を施すことによって、画像データセットにおけるエントロピーをかなり低減することができる。例えば、原画像データ中のある画像をエントロピー符号化したとき９％分圧縮できるならベイヤ差分化処理であれば２５％分圧縮でき、また原画像データ中の別の画像をエントロピー符号化したとき２８％圧縮できるならベイヤ差分化処理であれば５５％圧縮できる、といった具合である。従って、ベイヤ差分化処理は、エントロピーを低減し圧縮率を高める強力な手法として、採用できるものである。
【００４８】
しかしながら、ベイヤ差分化処理だけでは所望の圧縮率を保証できない。これは、先に説明したように、バッファメモリたるＳＲＡＭの保存容量が画像データのフレームを丸ごと保存するのに必要な容量より小さいことに、関連している。
【００４９】
そこで、本発明においては、ベイヤ差分化処理を用いつつ所望の圧縮率を実現するため、ビットドロッピングと称する手法を採用することとしている。本発明に係るビットドロッピング手法においては、まず、イメージセンサによって取得した画像データフレームを圧縮してバッファメモりたるＳＲＡＭに送る際、圧縮画像データフレームの全体をＳＲＡＭ内に十分に保存できるかどうかを判別する。ＳＲＡＭ内に圧縮画像データフレーム全体が入りきらないと判別した場合は、コントローラは、次フレームの画像データを取得したとき、各画素値の最下位ビット（ＬＳＢ）をドロップさせる処理を、ベイヤ差分化処理及び圧縮処理に先だってそのフレームの画像データに施す。
【００５０】
ホワイトノイズ画像であれば、８ビット幅画像データの下位１ビットをドロップさせることにより圧縮率をおよそ１２．５％高めることができる。また、画像データのＬＳＢをドロップさせてもなおＳＲＡＭ内に圧縮画像データフレーム全体が入りきらない場合は、コントローラは、その次に受け取る画像データフレームから、画像データストリーム中の各ワード毎に下位２ビットを指定してドロップさせる。本発明においては、バッファたるＳＲＡＭ内に画像データフレーム全体を保存できる程に高い圧縮率が得られるまで、下位ビットをドロップさせていく処理が断続的に繰り返される。
【００５１】
図５の左半分に、上述したベイヤ差分化処理及びビットドロッピング処理を実行するためのブロック構成を示す。この構成においては、まず、図示しないイメージセンサ２０により取得された画像データ５０がＦＩＦＯ５２に送られる。ＦＩＦＯ５２は、送られてくる画像データワード値を相連続する３画素に亘り保持する。画像データワードから下位ビットをドロップさせる必要があるときは、相応するマスク５４を構成すべく、プログラマブルファームウェアその他によりドロップ対象下位ビット数を指定する。このマスク５４は、画素データ値に対して適用されるマスクであり、例えばバレルシフタ等により構成できる。
【００５２】
マスク５４によってビットドロッピングが施された画素データは、ベイヤ差分化処理を施すべくパイプライン５６（例えば二段階乃至２バイトのパイプライン）に送られる。パイプライン５６は、図示の如く時間的に相連続する３画素分のデータ値５８、６０及び６２を保持しており、そのうち交番関係にある画素ワード５８及び６２の間の差分が、減算器６４により求められる。これによって、エントロピーが低減されたデータモデル即ちデータ圧縮用符号化の対象となるデータモデルが得られる。
【００５３】
このモデリングを経た画像データストリームは符号化され、それによって得られた圧縮画像データストリームはバッファたるＳＲＡＭに保存される。本発明にて採用でき画像データストリームを好適に符号化できる手法には、様々なものがある。
【００５４】
符号化手法の第１の例は、辞書ベースランレングス符号化手法の一つであるＬＺＷ法である。この手法は非常にハードウェア集約的であるため全ての用途において好適であるとは言い難い。加えて、ＬＺＷ法を実施するには大規模な適応ルックアップテーブル群が必要であり、一般にその処理能力を増すにもテーブルの個数乃至規模を増やす措置を執る。更に、ＬＺＷ法ではこれらルックアップテーブル間のマッチングが必要であり、単一クロックサイクル内で処理を実行し終えるのは難しい。
【００５５】
符号化手法の第２の例はハフマン（Ｈｕｆｆｍａｎ）符号化である。ハフマン符号化も多くの用途にて採用可能であるが、ＬＺＷ法と同様、ハードウェア生産性がさほど高くない。これは、ツリーを保存する必要があるため及び可変長符号化テーブルルックアップ処理を実行する必要があるためである。
【００５６】
圧縮手法のうち多くの用途に適しているのは算術符号化である。算術符号化を用いれば、計算結果たる圧縮符号を単一クロックサイクル内で得ることができ、この符号化によりそのデータセットのエントロピーまでデータを圧縮できる。
【００５７】
中でも適応算術符号化は高圧縮率を実現できる手法であり、好適にも、累積ヒストグラム内にデータ値を保存していくこと、即ちヒストグラムの移動加算（移動総和）処理を行うことにより、実現できる。
【００５８】
本発明においてデータストリームの符号化に算術符号化を採用するのは、算術符号化では大規模なハードウェアルックアップテーブルやツリーが不要であるからである。また、算術符号化であれば、計算結果たる符号化シンボルを単一クロックサイクル内で効率的に得ることができる。更に、算術符号化を用いれば、確率分布の如何によらずそのデータセットのエントロピーまでデータを圧縮することができる。確率分布の如何によらないため、後に述べるチャネル分割を採用できる。
【００５９】
高圧縮率を達成するには適応算術符号化が有用である。しかしながら、適応算術符号化に当たっては二種類のハードウェア集約的処理が必要となる。そのうち一つは適応ヒストグラムから確率を計算するための除算であり、もう一つは算術エンコーダの状態変数をリスケールするための乗算である。但し、ある種の手法を使用すれば、乗算なしで算術エンコーダを実現でき、ひいてはエンコーダ機能を実現するハードウェアに課される条件を緩和できる。
【００６０】
本発明においては、ハードウェアを更に節約するため、除算不要の適応ヒストグラム処理手法を使用することとしている。次に、除算不要型適応ヒストグラム処理手法を、例を用いてより詳細に説明する。
【００６１】
まず、Ｍ個のビンを有するヒストグラムを考える。各ビンにおける度数をそれぞれｍ1、ｍ2、…、ｍMとすると、このヒストグラムに含まれる元（ｅｌｅｍｅｎｔ）の個数ＮはＮ＝ｍ1＋ｍ2＋…＋ｍMとなり、算術エンコーダが符号化のためシークするシンボルそれぞれの符号化確率はｐx＝ｍx／Ｎとなる。
【００６２】
この確率計算における除算をなくすため、本発明に係る適応ヒストグラム処理手法では、２のべき乗となるようＮを固定・保持することによって、単なるビットシフトでＮによる除算を実行できるようにしている。また、Ｎを固定・保持するため、本発明においては、新たな元が到来するたびに、加重ラウンドロビン方式に従いヒストグラムから元を削除する。このプロセスを図８に示す。
【００６３】
図８中、ステップＳ１００ではｋ及びｘに共に０をセットすることによりデータ構造が初期化され、ヒストグラムの各ビンが０にセットされる。ステップＳ１０２では次のシンボルｙを待つ。次のシンボルｙを受け取ったとき、このプロセスにおいてはシンボルｙがヒストグラムに追加される。即ち、ステップＳ１０４にて、ビンｙに属する元の個数を示すｍyの値が１インクリメントされる。ステップＳ１０６では、削除加重係数ｋが０であるかどうかが判別される。なお、削除対象ビンについてのｋは削除すべき元の個数を与えている。
【００６４】
ステップＳ１０６にてｋが０であると判別されると、このプロセスは次のビンに進む。即ち、ステップＳ１０８にて、元を削除すべきビンを示すｘの値が１インクリメントされる。但し、ヒストグラム中に含まれるビンの個数に達したらこの計数値ｘの値は０に戻される。ステップＳ１１２では、ｋ＝（ｍx）／４の式により削除加重係数ｋがリセットされる。
【００６５】
ステップＳ１０６にて逆にｋが０でないと判別されると、このプロセスにおいては削除加重係数ｋがｋ＝ｋ−１なる処理によりデクリメントされる（Ｓ１１０）。ステップＳ１１４では、ヒストグラムからシンボルが削除される。即ち、ビンｘに含まれる元の個数を示すｍx（但しｍxは常に０より大きい）が１デクリメントされる。もしｍxが１に等しければ元の追加も削除も行われない。
【００６６】
しかしながら、ここで、ヒストグラムを保存する必要があることが問題となる。例えば、各画素（ワード）のビット幅が８ビットである画像データにおいては、２５６個のビンを有するヒストグラムが必要である。また、各種の画像について実験的に明らかになっている通り、各データビンにおけるデータ桁数を１０ビット程のデータ桁数即ち１０２４バイト分のデータに相当するデータ桁数とするのが望ましい。そのようにすれば、符号化対象データ窓のサイズが大きすぎて符号化用の統計情報に局部的な情報が正確に現れない、といったことがないよう、またそれでいて、当該データ窓のサイズが小さすぎ有意な統計情報を得るには不十分なデータしか利用できない、といったこともないよう、良好なトレードオフを図ることができる。言い換えれば、各ビンにおけるデータ深度を１０ビットとすることにより、適応ヒストグラムの陳腐化を防ぎつつも良好な統計情報を得るのに十分なデータを得る、という良好なトレードオフを実現できる。
【００６７】
しかし、各ビンのデータ桁数を１０ビットにするということは、１０×２５６＝２５６０ビット分のデータ保存レジスタが必要であるということである。このとき、圧縮処理がクロックレートにより規制乃至拘束されており従って圧縮対象ワード毎にもう利用できるクロックサイクルが余っていないのであれば、更新を施すのに全データビンに対して同時アクセスできねばならないことからして当該データ保存レジスタをＳＲＡＭ内で実現することはできない。
【００６８】
このようにハードウェアに対する要求が高水準であると、ヒストグラムを用いた適応符号化手法による８ビットデータ値の圧縮符号化は、多くの用途にとり採用困難なものになってしまいかねない。そこで、本発明においては、８ビット幅画像データのストリームにおける各ワードを複数のチャネルに分割し、各チャネルを別個のデータストリームとして処理する、という手法を用いることにより、この困難性を克服している。以下より詳細に説明するように、このようなチャネル分割手法を用いても、データストリームを分割しない手法により得られるものに比肩する圧縮率を得ることができる。
【００６９】
本発明に係るチャネル分割手法の第１実施形態においては、８ビット幅画像データストリームを分割して二通りの４ビット幅データストリームとし、これら二通りの４ビット幅データストリームに対し、それぞれヒストグラムを用いて算術符号化を適用する。従って、この符号化プロセスにおいては、符号化に用いる統計情報の変化が、２個のヒストグラムによりＬＳＢ側のチャネルとＭＳＢ側のチャネルとに分けて追尾、追跡される。このようにすれば、単一チャネルで処理した場合に比べて、ハードウェアが満たすべき条件が顕著に緩和される。それは、本実施形態にて必要とする２個のヒストグラムにおけるビン数が各１６個で足り、またヒストグラムにおけるデータ桁数を９ビットに減らせるからである。結果として、ヒストグラムレジスタでは２×９×１６＝２８８ビットを計数できればよくなり、８ビット幅の画像データストリームをそのまま処理した場合に対して１／１０近くまでヒストグラムレジスタ規模乃至個数が小さくなる。
【００７０】
本発明に係るチャネル分割手法は更に拡張することができる。例えば、８ビット幅画像データストリームを、３個のデータストリーム即ち３個の別個なチャネルに分割することも可能である。分割の仕方は色々であり、例えば、ＭＳＢからＬＳＢへと順に３ビット−２ビット−３ビット、２ビット−３ビット−３ビット等のパターンとなるよう、２ビット幅のチャネル１個と３ビット幅のチャネル２個とに分ければよい。
【００７１】
このように３個のチャネルに分割することによって、８ビット幅画像データチャネルを分割しないで処理した場合に得られる圧縮結果と同様の圧縮結果を得つつ、ヒストグラムのビンにおけるデータ桁数を８ビットに落とすことができる。３個のチャネルに分割されたヒストグラムを実現するため必要となるハードウェアは、レジスタの個数で言って２×８×８＋４×８＝１６０個まで顕著に縮小される。即ち、適応ヒストグラムを実現するのに必要なレジスタの個数が、データストリームを分割しない場合に比べ１／１６まで減る。このような画像データチャネル分割は、その用途に適合する限りにおいて、また使用するチャネル個数に相応する個数のクロックサイクルを利用できる限りにおいて、更に拡張することができる。
【００７２】
先に示した図５の右半分には、本発明におけるチャネル分割手法を実施するための装置構成の一例が示されている。この構成においては、上述の如く減算処理によってベイヤ差分化処理が施された８ビット幅画像データワードが、チャネルスプリッタ６５によって複数のチャネルに分割される。図示した例は、ＭＳＢからＬＳＢへと順に３ビット−３ビット−２ビットとなるパターンに従い、３個のチャネルに分割する例である。チャネルスプリッタ６５は単純なレジスタにより実現することができる。また、分割によって得られた３個のチャネルにはそれぞれ別々のヒストグラムが対応づけられており、各チャネルは対応するヒストグラム即ち３個の累積分布関数（ＣＤＦ）６６、６８及び７０のうち対応するものへと送られる。これら３個のＣＤＦ６６、６８及び７０から得られるデータはマルチプレクサ７２により多重化され、更に好適な算術圧縮符号化実行回路７４により後述の通り符号化される。その結果として得られる圧縮画像データは、画素データ毎にビット数が変わり得るデータであり、ＦＩＦＯ７６へ、更にイメージャコントローラ３０によってＳＲＡＭ４８へと送られて、ＳＲＡＭ４８内に一時保存される。
【００７３】
さて、次に、本発明にて各データチャネルのＣＤＦ即ちヒストグラムに対し適用するヒストグラム保存更新手法について説明する。先にも述べたことであるが、ヒストグラムに算術符号化を適用する際の乗算処理はある種の手法を使用すればなくすことができるため、本発明においては算術符号化に際する乗算処理を不要にしている。また、本発明に係る適合符号化手法においては更に、符号化実行中におけるヒストグラム内元数Ｎの変動に対処するため必要となる除算処理をも、簡素化している。
【００７４】
即ち、本発明においては、所与のヒストグラムにおける元の個数Ｎを２のべき乗に固定するという条件を付加することによって、各除算処理をビットシフト処理へと単純化している。この条件を成立させるには、ヒストグラムにデータ元を１個追加する毎に１個のデータ元をヒストグラムから削除しなければならない。これは、元の追加順序を追跡しその順序で元を削除するというＦＩＦＯ式のアプローチを用いることによっても実現できるが、それには本発明に比べて大規模なハードウェアが必要となる。
【００７５】
本発明において使用するのは、それぞれヒストグラム内の何れかのビンを指し示す２個のポインタ、即ち追加ポインタ及び削除ポインタである。概略、ヒストグラムに追加すべき新たなデータ元がパイプラインから供給されると、追加ポインタにより指し示されているビンに属する元の個数がインクリメントされ、削除ポインタにより指し示されているビンに属する元の個数がデクリメントされる。
【００７６】
理論的的に言えば、８ビット幅のデータを３個の別々なチャネルに分割するということは、近似的に、元々の８ビット幅のデータストリームを３個のチャネルの幾何学的分布として扱うことである。先に述べたようにこの近似は成立しているため、上述の除算不要型適応ヒストグラム手法を用いた場合、チャネル分割を全く行わない場合と比肩し得る結果が得られる。なお、分割により得られるチャネルの個数を増やすと性能が劣化することや、それでいてハードウェア規模削減の効果がさほど増大しないことからすれば、本発明を実施するに際してはチャネル個数を３個とするのが妥当であろう。
【００７７】
上述した各種の手法を組み合わせれば、ハードウェア生産性が高いロスレスインストリーム画像圧縮手法を実現できる。本発明においては、様々なクラスの画像について、平均で４６％の圧縮率を実現できる。図９に、チャネル分割について他の実施形態を示す。この実施形態においては、自己完結型の圧縮エンジンに小出力ＦＩＦＯを付加し、可変長符号化によって生じるジッタをこのＦＩＦＯにより吸収するようにしてる。
【００７８】
図９に示す構成においては、ベイヤ差分化処理モジュール乃至回路２００はデータを受け取って８ビット幅のデータワードを出力する。この８ビット幅データワードはスプリッタ乃至マスク２１０により３個のチャネルに分割される。例えば、先に好適な実施形態として示したように、８ビット幅データワードは２個の３ビットデータワードと１個の２ビットデータワードとに分割される。分割により得られたデータワードは、先に説明したラウンドロビン方式除算不要型適応ヒストグラム２２０に供給される。ラウンドロビン方式除算不要型適応ヒストグラム２２０は３個のヒストグラム２２１、２２３及び２２５を有しており、これら３個のヒストグラム２２１、２２３及び２２５からのデータはマルチプレクサ２３０により多重化され、更に好適な算術圧縮符号化実行回路２４０により後述の通り符号化される。その結果得られる圧縮画像データは、画素データ毎にビット数が変わり得るデータであり、ＦＩＦＯ２５０へと送られる。
【００７９】
図９に示した圧縮エンジンは、ＲＡＭやプロセッサといった周辺デバイスがなくとも機能し得る自己完結型の圧縮エンジンであり、その内部に含まれるレジスタの総数は２６９個である。０．３５μｍプロセスにより作成した場合、この圧縮エンジンは０．３ｍｍ2の面積内に収まり、そのゲート個数は約７０００個となる。
【００８０】
図６に、本発明に係るヒストグラム保存更新手法について他の実施形態を示す。この図に示すのは、特に、本実施形態においてロスレスインストリーム画像圧縮を実現する手順の流れである。
【００８１】
図６に示す手順においては、まず、ヒストグラム即ちＣＤＦを既知の値に設定することにより、各ビン内の元の個数が等しくなるよう（ＣＤＦが等化されるよう）システムが初期化される（Ｓ８０）。後述の通り、圧縮データとこれを展開して得られる展開データとの間の対応関係を正確に保つには、圧縮エンジンのエンコーダとこれに対応するデコーダとが何れも画像データストリーム内の共通位置から処理を開始しなければならないのであるから、ＣＤＦの等化は重要な処理である。また、ステップＳ８０においては、削除ポインタＳＵＢ＿ＰＯＩＮＴＥＲが、０番目のビンを指し示すようセットされ、所与のビンから何個のデータ元が削除されたかを表す削除カウントＳＵＢ＿ＣＯＵＮＴが、１にリセットされ、削除ポインタＳＵＢ＿ＰＯＩＮＴＥＲによって指し示されているビンから削除されるデータ元の総数を示す削除最大値ＳＵＢ＿ＭＡＸが、そのビンの値ＰＤＦ［ＳＵＢ＿ＰＯＩＮＴＥＲ］を所定の除算係数ここでは４で除した値にセットされる。この除算係数は、そのヒストグラム内のビン同士の間における元の個数の相互比率が一定に保持されるという条件が満たされるよう、選択する。この条件を満足させるため、所与のビン内の元の個数をある比例係数例えば４で除した個数に相応する個数の符号化サイクルに亘り、当該所与のビンを指し示すよう削除ポインタＳＵＢ＿ＰＯＩＮＴＥＲを保持する。
【００８２】
ＣＤＦの初期化が終わった後は、システムは、チャネル分割パイプから新たなデータ元が到来するのを待つ（Ｓ８２）。新たなデータ元がＣＤＦに到来すると（Ｓ８４）、ＣＤＦのビンのうち削除ポインタＳＵＢ＿ＰＯＩＮＴＥＲにより指し示されているビンがチェックされる。即ち、そのビンがデータ値の元を１個より多く含んでいるかどうかが判別される。なお、従来方式に従い算術符号化を行うには、ＣＤＦの各ビンに少なくとも１個の元が含まれていなければならない。そのビンが１個より多くの元を含んでいる場合、新たな元の値と等しくなるよう追加ポインタＡＤＤ＿ＰＯＩＮＴＥＲの値が更新される（Ｓ８８）。
【００８３】
次のステップＳ９０においては、追加ポインタＡＤＤ＿ＰＯＩＮＴＥＲが現在指し示しているビン番号以上のビン番号を有する全てのビンに１を加算し（元を１個追加し）、削除ポインタＳＵＢ＿ＰＯＩＮＴＥＲが現在指し示しているビン番号以上のビン番号を有する全てのビンから１を減算する（元を１個削除する）ことにより、ヒストグラムが更新される。この更新を終えた後は、ステップＳ９２にて、削除カウントＳＵＢ＿ＣＯＵＮＴが削除最大値ＳＵＢ＿ＭＡＸと等しいかどうかが判別される。等しくなければステップ９４にて削除カウントＳＵＢ＿ＣＯＵＮＴがインクリメントされ、ＣＤＦは次の元を待つ状態となる（Ｓ８２）。
【００８４】
削除カウントＳＵＢ＿ＣＯＵＮＴが削除最大値ＳＵＢ＿ＭＡＸと等しいならば、ステップＳ９６にて、次のビンを指し示すこととなるよう削除ポインタＳＵＢ＿ＰＯＩＮＴＥＲがインクリメントされ、現在のＣＤＦにおける現在のビンの値と等しくなるよう削除最大値ＳＵＢ＿ＭＡＸがリセットされ、そして削除カウントＳＵＢ＿ＣＯＵＮＴが１にリセットされる。この更新を終えた後は、システムは次のデータ元を待つ状態となる（Ｓ８２）。以上で、ＣＤＦに含まれるデータ値項目の個数を一定に保持する処理の１サイクルが終わる。
【００８５】
本発明においては、このヒストグラム更新手法と、画像データをチャネル分割することによりヒストグラムのサイズを相対的に小さくする手法とが、互いに関わり合っている。即ち、ヒストグラムサイズが比較的小さいと削除ポインタがヒストグラム全体を比較的短い時間で周回できるため、ＣＤＦによるデータ統計が陳腐化することを防ぎつつも十分な量のデータを得て良好な結果をもたらすことができる。このようにチャネル分割手法を用いることにより、システムに課せられるハードウェア上の必要条件を緩和しつつシステムの性能を高めることができる。即ち、従来であれば、性能を向上させるには往々にして例えば１６ビットや２４ビットへとチャネルサイズを増すようにしていたが、本発明はこれとは対照的であり、データチャネルのサイズを小さくすることによってより良い結果を得ることができる。
【００８６】
データを複数のチャネルに分割しつつも良好な圧縮率を得ることができる、というこの効果は、特に、算術符号化を用いることによって得られたものである。他の圧縮手法例えばハフマン符号化では、各元をある整数ビット数に符号化する必要があるため、高スキューな統計情報を、算術符号化程にはデータセットのエントロピーに近づけることができない。一例として画像データの上位ビット群を考えると、ベイヤ差分化処理を経た画像における上位ビット群は０になることが多く、ハフマン符号化ではこのような０値にも最低１ビットのコードを割り当てねばならないが、算術符号化であれば表すべき情報に対して必要最小個数のビットのみが割り当てられる。
【００８７】
画像データチャネルを圧縮するための算術符号化手法には様々な実施形態があり、その中には乗算不要型の実施形態も含まれる。その際、従来型信号シフト加算処理による２ビット乗算処理よりは、３ビット乗算処理を用いる方が性能上は望ましい。即ち、桁数一杯か３ビットかでは結果に目立った差が生じないが、３ビットか２ビットかでは結果の差が数パーセント程にもなる。
【００８８】
従って、３ビット乗算処理を用いるとシフト加算処理が新たに追加されそれに伴いハードウェアを追加する必要が生じるものの、３ビット乗算処理を用いることによる圧縮率向上効果によってこの問題は穴埋めされることとなる。一実施形態においては、キャリオーバの効果を抑えるために８ビットのガードレジスタを用い、またこのキャリオーバレジスタが８個又はそれ以上連続する「１」で一杯になったときにビットスタッフィングを実行する。また、符号化処理は、拡張型チャネル分割を可能にするため、相並行して実行される複数の処理に分割できる。ここで認識しておくべきことに、結果として得られる高い効率と、多重化を伴う比較的複雑な信号経路及び複雑な決定ツリーを含む算術エンコーダを複製乃至再現できねばならないという条件との間には、トレードオフの関係がある。
【００８９】
図７に、先に述べた圧縮処理に相応する展開処理のための構成を示す。この構成による展開処理は、画像データ処理の様々な段階で実行できる。例えば、更なる処理や保存のためその画像データをダウンロードした先のコンピュータやネットワークにおいて、この処理を行うことができる。展開処理においては、圧縮データ１００がデコーダ１０２に送られ復号される。また、デコーダ１０２における展開処理は、復号データと元々の非圧縮データとの間に正しい対応関係が生じるようマルチプレクサ１０４と同期して、即ちマルチプレクサ１０４が３個のヒストグラム即ちＣＤＦ１  ６６、ＣＤＦ２  ６８及びＣＤＦ３  ７０から得られるデータを多重化する動作と同期して、行う。
【００９０】
その結果得られたデータはデマルチプレクサ１０６に送られ、デマルチプレクサ１０６は、このデータを、画像データ圧縮に先だって行われたチャネル分割時のチャネル個数に相当する個数のチャネルに分割する。更に、レジスタ１０８においては、チャネルに分割されたデータに基づき、８ビット幅一杯のデータワードが再構成される。再構成された画像データワードは、３個のデータワード１１２、１１４及び１１６を保持可能な二段階パイプライン１１０に送られる。これらのデータワードのうち間に１ワードを挟んでいるデータワード即ち交番的に現れているデータワード１１２及び１１６は加算器１１８により互いに加算され、これにより、先に施されたベイヤ差分化処理の効果が補償される。この加算によって得られるのは再構築された展開データ１２０であり、この展開データ１２０は更なる処理や保存のため所望に応じ後段に送られる。
【００９１】
注記すべきことに、上述した各種のプロセスは、本発明の技術的範囲及び思想を離れることなく、ハードウェア的にもファームウェア的にもソフトウェア的にも実行できる。
【００９２】
以上、本発明の様々な実施形態乃至実施例に関して説明したが、本件技術分野における習熟者であれば認め得るように、本発明の技術的範囲及び思想は明細書及び図面中の記載の特定部分により限定されるべきものではなく、むしろそれらに基づく各種変形物乃至改変物を包含するものである。
【図面の簡単な説明】
【００９３】
【図１】従来におけるディジタルカメラシステムを示すブロック図である。
【図２】本発明に係るディジタルカメラシステムを示すブロック図である。
【図３】ＳＲＡＭに宛ててデータバス上に送出したデータに関しシステムクロックとＳＲＡＭタイミング条件との対応関係の例を示す図である。
【図４】本発明に係るインストリーム画像データ圧縮を実現する制御手法の例を示すフローチャートである。
【図５】本発明に係るベイヤ差分化処理及びビットドロッピング処理を示すブロック図である。
【図６】本発明に係るヒストグラム保存更新手法の例を示すフローチャートである。
【図７】本発明に係る展開処理を示す図である。
【図８】本発明に係る除算不要型算術符号化用加重ラウンドロビン方式ヒストグラム更新プロセスを示すフローチャートである。
【図９】本発明に係るエンコーダを示すブロック図である。
【図１】
2006502673.tif 000003
【図２】
2006502673.tif 000004
【図３】
2006502673.tif 000005
【図４】
2006502673.tif 000006
【図５】
2006502673.tif 000007
【図６】
2006502673.tif 000008
【図７】
2006502673.tif 000009
【図８】
2006502673.tif 000010
【図９】
2006502673.tif 000011
【国際調査報告】
2006502673.tif 000012
2006502673.tif 000013
2006502673.tif 000014
2006502673.tif 000015
2006502673.tif 000016