(57)【要約】【課題】画質劣化を低減させた量子化処理ができ、更にデータ処理の高速化を図ることが可能な画像情報処理装置及び画像情報処理方法を提供すること。【解決手段】撮像素子から出力された画素データを所定数毎に分割しブロックを生成するブロック化部１３２と、ブロック内の画素データのレベル変化に応じてブロックを分割しサブブロックを生成する分割処理部１３４と、生成されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成する量子化部１３６と、ブロック内の画素データのレベル変化に関する情報と量子化データを集約し圧縮データを生成する圧縮データ生成部１３８とを有することを特徴とする。【選択図】図２
2009290556.tif 000002
【特許請求の範囲】
【請求項１】
撮像素子から出力された画素データを所定数毎に分割しブロックを生成するブロック化部と、
前記ブロック内の画素データのレベル変化に応じて前記ブロックを分割しサブブロックを生成する分割処理部と、
前記生成されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成する量子化部と、
前記ブロック内の画素データのレベル変化に関する情報と前記量子化データを集約し圧縮データを生成する圧縮データ生成部と
を有する、画像情報処理装置。
【請求項２】
前記分割処理部は、前記ブロック内の画素データレベルの振幅値と変化量に応じて、前記ブロックを分割しサブブロックを生成する、請求項１に記載の画像情報処理装置。
【請求項３】
前記分割処理部は、
前記ブロック内の画素データレベルの振幅値と変化量に基づいて前記ブロックを分割する数及び分割位置を決定する分割決定部と、
前記決定された分割数及び分割位置に応じて、前記ブロックを分割しサブブロックを生成するサブブロック生成部と
を有する、請求項１に記載の画像情報処理装置。
【請求項４】
圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、前記ブロックが分割されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で前記画素データが量子化された量子化データを抽出する抽出部と、
前記レベル変化に関する情報に基づいて、前記量子化データを逆量子化し逆量子化画素データを生成する逆量子化部と
を有する、画像情報処理装置。
【請求項５】
前記レベル変化に関する情報は、前記画素データのレベルの振幅値と変化量に関する情報である、請求項４に記載の画像情報処理装置。
【請求項６】
撮像素子から出力された画素データを所定数毎に分割しブロックを生成するステップと、
前記ブロック内の画素データのレベル変化に応じて前記ブロックを分割しサブブロックを生成するステップと、
前記生成されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成するステップと、
前記ブロック内の画素データのレベル変化に関する情報と前記量子化データを集約し圧縮データを生成するステップと
を有する、画像情報処理方法。
【請求項７】
圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、前記ブロックが分割されたサブブロック毎に前記画素データレベルの変化量及び前記サブブロックの区間の長さに応じて決定された量子化語長で前記画素データが量子化された量子化データを抽出するステップと、
前記レベル変化に関する情報に基づいて、前記量子化データを逆量子化し逆量子化画素データを生成するステップと
を有する、画像情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像情報処理装置及び画像情報処理方法に関する。
【背景技術】
【０００２】
デジタルカメラ、ビデオカメラ等の撮像装置は、ＣＣＤ、ＣＭＯＳ等の撮像素子などを用いて被写体をデジタルデータに変換する。近年、撮像素子は多画素化が進み、撮像装置は高性能化が要求されている。撮像素子の多画素化が進むと、撮像装置内における撮像信号の処理負荷が増大する。従って、撮像装置は、ユーザーにとって操作性がスムーズとなるように、データを高速処理することが求められている。
【０００３】
また、ＣＣＤ、ＣＭＯＳ等の撮像素子から出力された信号は、不可逆圧縮処理や信号処理されて記録媒体に記録される場合もあるが、信号処理を施さずにＲＡＷデータとして記録媒体に記録される場合もある。この場合、撮像装置の内部バスに伝送されるデータ量は多大であり、記録媒体への書き込み処理、記録媒体からの読み出し処理にかかる時間が長時間化する。例えば、特許文献１及び２では、撮像装置においてＲＡＷデータを処理する技術について開示されている。
【０００４】
【特許文献１】特開平５−１９１７７０号公報
【特許文献２】特開２００７−２２８５１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えば、特許文献１では、撮像装置の内部バスにおけるデータ伝送の際、ＲＡＷデータを可逆圧縮して伝送する技術が開示されている。しかし、可逆圧縮したとしても、例えば、ハフマン符号化などは可変長符号化処理となるため、内部バスにおける帯域を一定に維持することは困難である。また、可変長符号化処理では、帯域削減の効果を常時得ることができないという問題があった。
【０００６】
特許文献２では、記録媒体で読み書きされる画像データが圧縮される。この圧縮処理では、所定数の画素データからなるブロック内の画素データの最大値及び最小値と、ブロック内での位置情報と、ブロック内の画素データから最小値を減算した減算値が量子化される。特許文献２の圧縮処理は、固定長符号化処理であり、圧縮効率が８ｂｉｔ／ｐｉｘの場合では、１画素あたり７ビットの量子化で達成可能であった。
【０００７】
しかし、圧縮処理において、圧縮効率を更に向上させるため単純に量子化語長を４ｂｉｔなどに下げるだけでは、波形の変動の激しい部分が上記ブロック内に存在した場合、量子化ノイズが顕在化するという問題があった。例えば、被写体が黒い幕を背景にして立った人物であって、暗い背景と明るい人物の肌色とのグラデーション変化のある境界部分が上記圧縮処理対象となる１つのブロック内に存在する場合、肌色部分が段差となる等の量子化ノイズが目立ってしまう。
【０００８】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、画質劣化を低減させた量子化処理ができ、更にデータ処理の高速化を図ることが可能な、新規かつ改良された画像情報処理装置及び画像情報処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明のある観点によれば、撮像素子から出力された画素データを所定数毎に分割しブロックを生成するブロック化部と、ブロック内の画素データのレベル変化に応じてブロックを分割しサブブロックを生成する分割処理部と、生成されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成する量子化部と、ブロック内の画素データのレベル変化に関する情報と量子化データを集約し圧縮データを生成する圧縮データ生成部とを有する画像情報処理装置が提供される。
【００１０】
上記分割処理部は、ブロック内の画素データレベルの振幅値と変化量に応じて、ブロックを分割しサブブロックを生成してもよい。
【００１１】
上記分割処理部は、ブロック内の画素データレベルの振幅値と変化量に基づいてブロックを分割する数及び分割位置を決定する分割決定部と、決定された分割数及び分割位置に応じて、ブロックを分割しサブブロックを生成するサブブロック生成部とを有してもよい。
【００１２】
また、上記課題を解決するために、本発明の別の観点によれば、圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、ブロックが分割されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データが量子化された量子化データを抽出する抽出部と、レベル変化に関する情報に基づいて、量子化データを逆量子化し逆量子化画素データを生成する逆量子化部とを有する画像情報処理装置が提供される。
【００１３】
上記レベル変化に関する情報は、画素データのレベルの振幅値と変化量に関する情報であってもよい。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、撮像素子から出力された画素データを所定数毎に分割しブロックを生成するステップと、ブロック内の画素データのレベル変化に応じてブロックを分割しサブブロックを生成するステップと、生成されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データを量子化し量子化データを生成するステップと、ブロック内の画素データのレベル変化に関する情報と量子化データを集約し圧縮データを生成するステップとを有する画像情報処理方法が提供される。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、圧縮データから、所定数の画素データからなるブロック内の画素データのレベル変化に関する情報と、ブロックが分割されたサブブロック毎に画素データレベルの変化量及びサブブロックの区間の長さに応じて決定された量子化語長で画素データが量子化された量子化データを抽出するステップと、レベル変化に関する情報に基づいて、量子化データを逆量子化し逆量子化画素データを生成するステップとを有する画像情報処理方法が提供される。
【発明の効果】
【００１６】
本発明によれば、画質劣化を低減させた量子化処理ができ、更にデータ処理の高速化を図ることができる。
【発明を実施するための最良の形態】
【００１７】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１８】
まず、本発明の第１の実施形態に係る撮像装置１００について説明する。図１は、本実施形態に係る撮像装置１００を示すブロック図である。本実施形態に係る撮像装置１００は、例えばデジタルスチルカメラ、デジタルビデオカメラなどであり、被写体像をデジタルデータとして記録することができる。
【００１９】
撮像装置１００は、図１に示すように、例えば、撮像素子１０１、ＡＦＥ回路１０２、デジタル画像処理部１０３、ＳＤＲＡＭ１０４、ＲＯＭ１０５及びストレージデバイス１０６等を備えている。
また、デジタル画像処理部１０３は、カメラ信号前処理部１１１、カメラ信号処理部１１２、解像度変換部１１３、ＪＰＥＧエンジン１１４、ＣＰＵ１１５、ビデオ出力エンコーダ１１６及びＳＤＲＡＭコントローラ１１７などを有する。これらの各構成要素は、内部バス１１８によって相互に接続されている。さらに、本実施形態のデジタル画像処理部１０３は、ＲＡＷ圧縮部１２１及びＲＡＷ伸張部１２２を有する。
【００２０】
撮像素子１０１は、例えばＣＣＤ（Charge  Coupled  Devices）、ＣＭＯＳ（Complementary  Metal  Oxide  Semiconductor）撮像素子などの固体撮像素子であり、図示しないレンズブロック（光学系）を通じて被写体から入射された光を電気信号に変換する。
【００２１】
ＡＦＥ回路１０２は、撮像素子１０１から出力された画像信号に対して、ＣＤＳ処理によりＳ／Ｎ（Signal／Noise）比を良好に保つようにサンプルホールドを行う。ＡＦＥ回路１０２は、ＡＧＣ処理により利得を制御し、Ａ／Ｄ（Analog／Digital）変換を行ってデジタル画像信号を出力する。
【００２２】
デジタル画像処理部１０３は、例えば、ＳｏＣ（System  on  a  Chip）回路などとして形成される。デジタル画像処理部１０３において、カメラ信号前処理部１１１は、ＡＦＥ回路１０２から供給された画像信号に対して、撮像素子１０１における欠陥画素の信号補正処理、レンズの周辺光量落ちを補正するシェーディング処理などを施す。また、カメラ信号前処理部１１１は、処理後の信号をＲＡＷデータとして出力する。
【００２３】
ＲＡＷ圧縮部１２１は、カメラ信号前処理部１１１からのＲＡＷデータを、後述する圧縮方法により圧縮し、ＳＤＲＡＭコントローラ１１７を介して、ＳＤＲＡＭ１０４に供給する。
ＲＡＷ伸張部１２２は、ＳＤＲＡＭ１０４からＳＤＲＡＭコントローラ１１７を介して読み出した、圧縮されたＲＡＷデータを、後述する方法により伸張して、カメラ信号処理部１１２に出力する。
【００２４】
カメラ信号処理部１１２は、ＲＡＷ伸張部１２２からＲＡＷデータにデモザイク処理を施す。その後、カメラ信号処理部１１２は、ＡＦ（Auto  Focus）、ＡＥ（Auto  Exposure）、ホワイトバランス制御などのための信号検波処理や、ホワイトバランス調整に代表される信号補正処理など、いわゆるカメラ信号処理、またはその処理の一部を実行する。さらに、カメラ信号処理部１１２は、信号補正後の画像データを、例えば４：２：２などの所定フォーマットの輝度信号（Ｙ）と色差信号（Ｒ−Ｙ，Ｂ−Ｙ）に変換する。
【００２５】
解像度変換部１１３は、カメラ信号処理部１１２で処理された画像データ、又はＪＰＥＧエンジン１１４で伸張復号化された画像データの入力を受けて、所定の解像度に変換する。
【００２６】
ＪＰＥＧエンジン１１４は、解像度変換部１１３で処理された画像データを圧縮符号化し、ＪＰＥＧ方式の符号化データを生成する。また、ＪＰＥＧエンジン１１４は、ストレージデバイス１０６から読み出されたＪＰＥＧ画像データを伸張復号化する。なお、デジタル画像処理部１０３には、このＪＰＥＧエンジン１１４以外の他の静止画圧縮方式、又は動画圧縮方式のエンコード／デコードエンジンが設けられてもよい。
【００２７】
ＣＰＵ１１５は、ＲＯＭ１０５に格納されたプログラムを実行することにより、デジタル画像処理部１０３及び撮像装置１００全体を統括的に制御し、また、その制御のための各種演算を実行する。
【００２８】
ビデオ出力エンコーダ１１６は、例えばＮＴＳＣ（National  Television  Standards  Committee）エンコーダなどである。ビデオ出力エンコーダ１１６は、解像度変換部１１３などから出力された画像データを基に、モニタ表示用の画像信号を生成し、モニタ（図示せず。）又はビデオ出力端子２６ａに出力する。
【００２９】
ＳＤＲＡＭコントローラ１１７は、ＳＤＲＡＭ１０４に対するインタフェースブロックであり、アドレスデコーダなどを有する。ＳＤＲＡＭコントローラ１１７は、ＣＰＵ１１５からの制御信号に従って、ＳＤＲＡＭ１０４の書き込み及び読み出し動作を制御する。
【００３０】
ＳＤＲＡＭ１０４は、ＤＤＲ（Double  Data  Rate）ＳＤＲＡＭなどの揮発性のメモリである。ＳＤＲＡＭ１０４は、デジタル画像処理部１０３におけるデータ処理のためのワークエリアである。ＳＤＲＡＭ１０４は、キャプチャデータエリア１０４ａと、ＪＰＥＧ符号エリア１０４ｂと、ＣＰＵワークエリア１０４ｃなどを含む。キャプチャデータエリア１０４ａは、撮像素子１０１からキャプチャされたデータ、即ち、ＲＡＷ圧縮部１２１で圧縮されたＲＡＷデータを一時的に格納する。ＪＰＥＧ符号エリア１０４ｂは、ＪＰＥＧエンジン１１４により符号化された画像データや、その符号化・復号化処理で利用されるデータなどを一時的に格納する。ＣＰＵワークエリア１０４ｃは、ＣＰＵ１１５の処理で利用されるデータを一時的に格納する。
【００３１】
ＲＯＭ１０５は、ＣＰＵ１１５が実行するプログラムや各種データを保持する。ＲＯＭ１０５は、例えば、ＥＥＰＲＯＭ（Electronically  Erasable  and  Programmable  ROM）、フラッシュメモリなどの不揮発性メモリである。
【００３２】
ストレージデバイス１０６は、符号化された画像データのファイルを記録するためのデバイスである。ストレージデバイス１０６は、例えば、フラッシュメモリ、光ディスク、磁気テープなどの記録媒体と、記録媒体の記録／再生ドライブなどからなる。
【００３３】
上記のような撮像装置１００において、撮像素子１０１による撮像信号は、順次ＡＦＥ回路１０２に供給され、ＣＤＳ処理やＡＧＣ処理が施された後、デジタル信号に変換されて、デジタル画像処理部１０３のカメラ信号前処理部１１１に供給される。カメラ信号前処理部１１１では、入力された画像信号に対して、欠陥画素補正やシェーディング補正などを施したＲＡＷデータが生成され、このＲＡＷデータは、ＲＡＷ圧縮部１２１により圧縮された後、ＳＤＲＡＭ１０４に一旦書き込まれる。
【００３４】
上記ＲＡＷデータは、ＳＤＲＡＭ１０４から読み出されると、ＲＡＷ伸張部１２２により伸張された後、カメラ信号処理部１１２により各種画質補正処理が施される。処理後の画像データは、例えばＳＤＲＡＭ１０４に一旦格納された後、解像度変換部１１３により、表示に適した解像度のデータに変換され、さらに例えばＳＤＲＡＭ１０４に格納された後、ビデオ出力エンコーダ１１６に供給される。これにより、カメラスルー画像がモニタに表示される。
【００３５】
また、図示しない入力部などを通じて画像の記録が要求されると、解像度変換部１１３は、カメラ信号処理部１１２で処理された画像データを、必要に応じて記録用に設定された解像度のデータに変換して、例えばＳＤＲＡＭ１０４に一旦格納する。ＪＰＥＧエンジン１１４は、画像データを圧縮符号化して、符号化データを生成する。符号化データは、例えばＳＤＲＡＭ１０４に一旦記録された後、ストレージデバイス１０６に記録される。
【００３６】
また、ストレージデバイス１０６に記録された画像データ（符号化データ）は、ＪＰＥＧエンジン１１４で伸張復号化され、解像度変換部１１３で解像度変換される。その後、画像データは、ビデオ出力エンコーダ１１６に出力されることで、モニタに画像を表示させることができる。
【００３７】
本実施形態のデジタル画像処理部１０３には、カメラ信号前処理部１１１から内部バス１１８に対する画像データの入力位置に、ＲＡＷデータを圧縮するＲＡＷ圧縮部１２１が設けられる。これにより、内部バス１１８を通じてＳＤＲＡＭ１０４に伝送されるＲＡＷデータのデータ量を低減することができる。また、内部バス１１８からカメラ信号処理部１１２に対する画像データの入力位置に、ＲＡＷデータを伸張するＲＡＷ伸張部１２２が設けられる。これにより、ＳＤＲＡＭ１０４からカメラ信号処理部１１２に伝送されるＲＡＷデータのデータ量を低減することができる。
【００３８】
本実施形態によれば、撮像動作中の内部バス１１８の伝送負荷を軽減し、ＳＤＲＡＭ１０４に対する書き込み／読み出し処理に要する時間を短縮することが可能となる。特に、圧縮／伸張の処理をできるだけ簡単にすることで、処理時間の短縮効果を上げることができる。また、バス上の伝送周波数を低減して、消費電力を抑制することもできる。
【００３９】
また、本実施形態によれば、ＳＤＲＡＭ１０４の容量を小さくすることができる。更に、ＳＤＲＡＭ１０４の領域を他の処理に利用したり、複数フレーム分のＲＡＷデータを格納して、連写できる枚数を増やしたり、あるいは連写速度を向上させたりなど、高画質化・高機能化に寄与する。従って、撮像処理やデータ記録処理に必要な時間を短くすることができる、高性能かつ小型、低コストの撮像装置１００を実現できる。
【００４０】
また、ＲＡＷ圧縮部１２１によるＲＡＷデータの圧縮処理では、可逆圧縮手法を用いることで、ＲＡＷデータの品質を完全に保持できるが、非可逆圧縮であっても、圧縮歪みの発生量が、輝度／色差信号に変換された時点で、肉眼では感知できない程度となるならば、画質としては許容できる。一般に、輝度／色差信号に変換された時点のＰＳＮＲ（Peak  Signal  to  Noise  Ratio）が５０ｄＢ〜４０ｄＢ程度であれば、圧縮歪みは許容されるレベルになる。
【００４１】
更に、本実施形態の撮像装置１００は、ＲＡＷデータを圧縮する場合に、固定長で符号化できる。その結果、ＳＤＲＡＭ１０４に対して読み書きするＲＡＷデータの帯域を一定に保つことができ、内部バス１１８における伝送負荷を安定的に低減できる。また、カメラ信号処理部１１２におけるＲＡＷデータの取り扱い（例えばＳＤＲＡＭ１０４からの読み出し制御処理）や、内部バス１１８を通じたＲＡＷデータの伝送制御処理を、単純化することもできる。
【００４２】
例えば、可変長で符号化した場合、圧縮されたＲＡＷデータをＳＤＲＡＭ１０４から読み出す際に、バースト状にアクセスしなければならない場合が多い。一方、固定長で符号化することにより、任意の位置のＲＡＷデータのＳＤＲＡＭ１０４上のアドレスを簡単に計算し、読み出すことができる。従って、カメラ信号処理部１１２は、１Ｈの数分の一程度のディレイラインしか持たずに、全画面を部分的に（例えば、縦方向の短冊状に）処理するとしてもよい。また、デジタル画像処理部１０３内のＤＭＡ（Direct  Memory  Access）コントローラによりアクセスすることも可能となる。
【００４３】
以下では、本実施形態の撮像装置１００のＲＡＷ圧縮部１２１の構成について詳細に説明する。本実施形態の撮像装置１００は、固定長の符号化が可能で、かつ、画像品質を良好に保つことができ、比較的簡単な処理で実現できる非可逆圧縮／伸張方法が用いられる。
【００４４】
なお、以下の例では、ＲＡＷデータ信号を１画素（ピクセル）当たり１４ビットとする。また、例えば図６に示すように、同一色成分を持つ水平方向の２０画素分を、１ブロックの符号化データに変換する。図６は、ベイヤ配列と抽出された同色１ラインを示す模式図である。量子化語長は、例えば２〜４ビットの可変とする。本実施形態のＲＡＷ圧縮部１２１は、２０画素を１ブロックとして、この１ブロックを１２８ビットの固定長に圧縮する。その結果、１画素当たり６．４ビットとなる。通常、１４ビットのデータは、２０画素を１ブロックとすると、ＲＡＷデータを圧縮しない場合、１ブロックに対応するデータ量は２８０ビットとなる。一方、本実施形態によれば、２８０ビットのデータ量を１２８ビット分に圧縮でき、データ量を約４６％に低減する圧縮率を達成できる。
【００４５】
図２は、本実施形態に係るＲＡＷ圧縮部１２１を示すブロック図である。
図２に示すように、ＲＡＷ圧縮部１２１は、折れ線圧縮部１３１、ブロック化部１３２、バッファ１３３、ブロック分割数決定部１３４、減算部１３５、量子化部１３６、量子化データバッファ１３７及びパッキング部１３８などを有する。
【００４６】
折れ線圧縮部１３１は、入力された１４ビットのＲＡＷデータを、折れ線を用いた近似により１０ビットのデータに非線形で圧縮する。折れ線圧縮部１３１は、この後の圧縮手順の前に、できるだけ階調を下げておくことで、全体的な圧縮効率を向上させることを目的として設けられる。目的とする圧縮率によっては、省略されてもよい。なお、この場合には、後の図１１で説明するＲＡＷ伸張部１２２の出力段に設けられる逆折れ線伸張部１９２についても、省略できる。
【００４７】
ここで、図９は、折れ線圧縮部１３１で用いられる折れ線の例を示すグラフである。
図９に示すグラフによって入力データの階調を変換する。この例では、人間の視覚特性に合わせて、入力データが小さいほど、すなわち暗いほど（または色がうすいほど）、高い階調を割り当てるようにしている。このような折れ線は、例えば色成分ごとに用意し、入力画素の色成分ごとに切り換えて利用してもよい。
【００４８】
折れ線圧縮部１３１では、例えば、このような折れ線を用いて、入力データの階調を変換した後、変換後のデータを１６で除算（すなわち４ビット分下位にシフト）して、１０ビットデータに圧縮する。このとき、捨てられる下位ビットは、例えば四捨五入する。なお、以上のような演算に基づく、入力データと圧縮後の出力データとを対応付けて記憶したＲＯＭテーブルを用意し、折れ線圧縮部１３１では、このＲＯＭテーブルに従って入出力データの変換が行われてもよい。
【００４９】
ブロック化部１３２は、折れ線圧縮部１３１から出力されたデータを、水平方向に隣接する２０画素分の同色成分画素からなるブロックに分割し、分割したブロック毎に出力する。これにより、ブロック内のデータの相関が強くなり、この後の量子化処理による画質劣化を抑制することができる。
【００５０】
例えば、図６に示すようなベイヤ配列の撮像素子が用いられた場合、出力データには、Ｒ成分とＧｒ成分の繰り返しと、Ｂ成分とＧｂ成分の繰り返しとが、１ラインごとに出現する。例えば、ブロック化部１３２への入力データに、Ｒ０，Ｇｒ０，Ｒ１，Ｇｒ１，・・・，Ｒ１９，Ｇｒ１９のように、Ｒ成分とＧｒ成分が繰り返し現れる場合には、Ｒ０，Ｒ１，Ｒ２，・・・，Ｒ１９，Ｇｒ０，Ｇｒ１，・・・，Ｇｒ１９のように、同色成分の画素が２０個連続して現れるように、出力順序を変換して、ブロック化する。
【００５１】
バッファ１３３は、ブロック化部１３２からのデータを保持する。バッファ１３３は、ブロック分割数決定部１３４において最小値が算出されるまでの間、入力データに対応するブロックを保持し遅延時間合わせをする。
【００５２】
ブロック分割数決定部１３４は、ブロックを更にサブブロックに分割するための分割数や、圧縮用の要素を決定する。ブロック分割数決定部１３４の詳細は後述する。ブロック分割数決定部１３４は、分割処理部の一例である。
【００５３】
減算部１３５は、ブロック化部１３２から出力された画素データから、ブロック分割数決定部１３４が出力した、対応するブロック内の最小値を減算する。この減算は、１ブロック内の画素に共通するＤＣオフセット分を、各画素のデータから差し引くことと等価である。
【００５４】
量子化部１３６は、減算部１３５の出力データを、ブロック分割数決定部１３４から出力されるシフト量に従って量子化する。本実施形態では、一例として、２〜５ビットの可変長で量子化する。
【００５５】
この量子化部１３６としては、例えば、整数型の除算器を利用して、減算部１３５の出力データをシフト量で除算する。また、量子化ステップを２のべき乗に限定した場合には、右シフタを適用でき、これにより回路規模を削減することができる。なお、圧縮処理側で右シフタを利用すると、伸張処理側の逆量子化においても同様に回路規模を削減できる。
量子化データバッファ１３７は、量子化部１３６から出力される２０画素分の量子化データを一時的に保持する。
【００５６】
パッキング部１３８は、量子化データバッファ１３７及びブロック分割数決定部１３４からの出力データを利用して、１ブロック当たり１２８ビットの圧縮データにパッキングする。ブロック分割数決定部１３４からの出力データには、ブロック内の画素データの最小値、シフト量、サブブロックの座標（位置情報）、量子化データ２０画素分及びどの形式で圧縮したかという圧縮タイプを示すフラグを図１０に示すようにパッキングする。これにより、２８０ビットのデータ量を１２８ビット分に圧縮できる。パッキング部１３８は、圧縮データ生成部の一例である。
【００５７】
次に、図３〜５を参照して、本実施形態のブロック分割数決定部１３４について説明する。図３は、本実施形態に係るブロック分割数決定部１３４を示すブロック図である。ブロック分割数決定部１３４は、例えば、バッファ１４１、ブロック分割判断部１４２及びブロック分割用データ生成部１４３からなる。
【００５８】
バッファ１４１は、ブロック化部１３２からのデータを保持する。バッファ１４１は、ブロック分割判断部１４２においてサブブロックの座標やブロック分割判断終了信号などが出力されるまでの間、入力データに対応するブロックを保持し遅延時間合わせをする。
【００５９】
ブロック分割判断部１４２は、図４に示すように、例えば、最大値最小値検出部１５１、差分算出部１５２、語長検出部１５３、領域検出部１５４、アドレスカウンタ１５５、変化点ラッチ部１５６、変化点カウンタ１５７、タイプ判断部１５８及び領域２値化部１５９からなる。ブロック分割数決定部１３４は、サブブロックを生成する、又はサブブロックを生成しないという判断や、サブブロック分割座標を生成する。図４は、本実施形態に係るブロック分割判断部１４２を示すブロック図である。ブロック分割判断部１４２は、分割決定部の一例である。
【００６０】
最大値最小値検出部１５１は、ブロック毎に、ブロック化された水平２０画素のデータのうちから最大値（ＭＡＸ）及び最小値（ＭＩＮ）を検出する。最大値最小値検出部１５１は、検出した最大値（ＭＡＸ）及び最小値（ＭＩＮ）を差分算出部１５２及び領域検出部１５４に出力する。
【００６１】
差分算出部１５２は、１つのブロック内の最大値（ＭＡＸ）及び最小値（ＭＩＮ）の差分を計算して、１つのブロックでのダイナミックレンジ（ＤＲ０）を算出する。差分算出部１５２は、ダイナミックレンジ（ＤＲ０）を語長検出部１５３に出力する。
【００６２】
語長検出部１５３は、ダイナミックレンジ（ＤＲ０）から、１つのブロック内に存在する画素データのダイナミックレンジの桁数を検出する。語長検出部１５３は、検出したダイナミックレンジの桁数（ＤＥＰＴＨ）を出力する。
【００６３】
領域検出部１５４は、最大値（ＭＡＸ）及び最小値（ＭＩＮ）と、以下の閾値とによって、画素データの入力波形が最大と最小の両端に振れるまでの遷移区間（遷移領域）を判断する。そして、遷移領域にある画素は、ＡＲＥＡ＿ＤＥＴ＝１とし、最小値近傍にある画素は、ＡＲＥＡ＿ＤＥＴ＝０とし、最大値近傍にある画素は、ＡＲＥＡ＿ＤＥＴ＝２として、ＡＲＥＡ＿ＤＥＴを出力する。図７に画素データの入力値（Ｐｉ）と領域との関係を示す。図７は、画素データの入力波形を示す説明図である。
【００６４】
閾値は、例えば下記の通りである。
ＭＩＮ≦Ｐｉ＜（ＭＡＸ−ＭＩＮ）／４＋ＭＩＮ  ・・・  ＡＲＥＡ＿ＤＥＴ＝０
（ＭＡＸ−ＭＩＮ）／４＋ＭＩＮ≦Ｐｉ＜３×（ＭＡＸ−ＭＩＮ）／４＋ＭＩＮ  ・・・  ＡＲＥＡ＿ＤＥＴ＝１
３×（ＭＡＸ−ＭＩＮ）／４＋ＭＩＮ≦Ｐｉ≦ＭＡＸ  ・・・  ＡＲＥＡ＿ＤＥＴ＝２
【００６５】
なお、この閾値は一例であり、例えば、入力波形のヒストグラムや統計情報に基づいて、波形の傾向を閾値に反映させてもよい。閾値は、２つとしたが、これに限定されない。領域検出部１５４は、ＡＲＥＡ＿ＤＥＴを変化点ラッチ部１５６及び領域２値化部１５９に出力する。
【００６６】
アドレスカウンタ１５５は、入力される２０画素の画素信号を数え上げる（カウントアップする）。アドレスカウンタ１５５は、２０画素が入力される毎にブロック分割判断終了信号を後段のブロック分割用データ生成部１４３に出力し、自分自身を０（ゼロ）にリセットする。
【００６７】
変化点ラッチ部１５６は、領域検出部１５４から出力されたＡＲＥＡ＿ＤＥＴの２ビット出力から領域の変化点を検出する。そして、変化点ラッチ部１５６は、領域の変化点（ＰＯＳｎ（ｎ＝０，１，２））をサブブロックの切り替え座標候補（ブロックをサブブロックに分割するときの分割座標候補）として最大３つまで保持する。変化点ラッチ部１５６は、検出された変化点のアドレスカウンタ１５５から出力されたカウンタ値（本実施形態では０〜１９）を保持して、そのカウンタ値を座標候補とする。変化点ラッチ部１５６は、変化点のカウンタ値（ＰＯＳｎ（ｎ＝０，１，２）＝０〜１９）を出力する。
【００６８】
変化点カウンタ１５７は、変化点ラッチ部１５６で、変化点のカウンタの値が座標候補として保持される毎に、画素信号をカウントアップする。そして、変化点カウンタ１５７は、サブブロックの切り替え座標候補の数を数え、保持する。変化点カウンタ１５７は、切り替え座標候補の数（ＣＮＴ１）を出力する。
【００６９】
タイプ判断部１５８は、サブブロックを生成する、又はサブブロックを生成しないという判断をする。サブブロックを生成する、即ち１つのブロックをサブブロックに分割するという判断は、１つのブロック内の画素データのレベルの振幅と、切り換え座標候補の数に基づく。例えば、語長検出部１５３で検出されたダイナミックレンジの桁数（ＤＥＰＴＨ）が、入力信号の桁数（本実施形態では１０桁）に対して、同じ桁数〜１／２以下の桁数の範囲にある場合（例えば、ＤＥＰＴＨ＝１０又は９など）は、１つのブロック内の画素データの変化が大きい（振幅が大きい）。
【００７０】
タイプ判断部１５８は、１つのブロック内の振幅が大きく、かつ、１つのブロックを４つ以内のサブブロックに分割できる場合、サブブロックを生成すると判断する。タイプ判断部１５８は、それ以外の場合は、サブブロックを生成しないと判断し、１つのブロックをひとまとまりとして画素データを圧縮する。タイプは、下記のように決定される。タイプは、伸張時の手順を決めるために必要であるため、圧縮データに含まれる。１つのブロックを４つ以内のサブブロックに分割できる場合とは、変化点カウンタ１５７から出力された値が、ＣＮＴ１≦３のときである。
ｔｙｐｅ００：１つのブロックのみとする場合
ｔｙｐｅ０１：２つのサブブロックを生成する場合
ｔｙｐｅ１０：３つのサブブロックを生成する場合
ｔｙｐｅ１１：４つのサブブロックを生成する場合
タイプ判断部１５８は、決定されたタイプを出力する。
【００７１】
領域２値化部１５９は、最大４つのサブブロックのそれぞれのＡＲＥＡ＿ＤＥＴの値を保持する。そして、領域２値化部１５９は、サブブロック毎のＡＲＥＡ＿ＤＥＴの値を、遷移領域、最大値又は最小値近傍領域に応じて、２値化する。
具体的には、ＡＲＥＡ＿ＤＥＴ＝０のとき、ＡＲＥＡｎ（ｎ＝０，１，２，３）＝１とし、ＡＲＥＡ＿ＤＥＴ＝１のとき、ＡＲＥＡｎ（ｎ＝０，１，２，３）＝０とし、ＡＲＥＡ＿ＤＥＴ＝２のとき、ＡＲＥＡｎ（ｎ＝０，１，２，３）＝１とする。領域２値化部１５９は、ＡＲＥＡｎ（ｎ＝０，１，２，３）＝０又は１を出力する。ＡＲＥＡｎ（ｎ＝０，１，２，３）は、４つ以内のサブブロックの各サブブロックを意味する。
【００７２】
次に、図５を参照して、ブロック分割用データ生成部１４３について説明する。図５は、本実施形態に係るブロック分割用データ生成部１４３を示すブロック図である。
ブロック分割用データ生成部１４３は、図５に示すように、例えば、アドレスカウンタ１６１、変化点保持部１６２、ラッチパルス出力部１６３、区間幅計算部１６４、最大値最小値検出部１６５、差分算出部１６６、最小値ラッチ部１６７、セレクタ１６８、領域２値化値保持部１６９、量子化語長決定部１７０、シフト量計算部１７１、シフト量ラッチ部１７２、セレクタ１７３、変化点保持部１７４及びアドレスカウンタ１７５からなる。
ブロック分割用データ生成部１４３は、サブブロック単位での量子化に必要な要素を生成する。ブロック分割用データ生成部１４３は、サブブロック生成部の一例である。
【００７３】
アドレスカウンタ１６１及びアドレスカウンタ１７５は、いずれも１つのブロック分の画素数を数え上げる。
アドレスカウンタ１６１は、ブロック分割判断終了信号を受けて、アドレスカウントスタート信号とする。アドレスカウンタ１６１の出力（ＣＮＴ２）は、ラッチパルス出力部１６３の出力（ｌａｔｃｈ２）を介して、最大値最小値検出部１６５、サブブロック毎の最小値を決定する最小値ラッチ部１６７、シフト量を決定するシフト量ラッチ部１７２を制御する。
【００７４】
アドレスカウンタ１７５は、アドレスカウンタ１６１が２０画素分のカウントを終了すると起動される。アドレスカウンタ１７５は、ＣＯＮＴ信号を出力する。ＣＯＮＴ信号は、タイプ（ｔｙｐｅ００，０１，１０，１１）に応じた分割数と、座標レジスタ（ＰＯＳ０’，１’，２’）に基づいてセレクタ１７３を切り替える制御をする。この制御によって、サブブロック毎に画素データの量子化が行われる。
【００７５】
変化点保持部１６２及び変化点保持部１７４は、サブブロックの数に応じて、最大３つの座標を保持する。変化点保持部１６２は、変化点のカウンタ値（座標レジスタＰＯＳｎ（ｎ＝０，１，２）＝０〜１９）を保持する。変化点保持部１７４は、変化点のカウンタ値（座標レジスタＰＯＳｎ（ｎ＝０’，１’，２’）＝０〜１９）を保持する。座標レジスタＰＯＳ０’〜ＰＯＳ２’は、座標レジスタＰＯＳ０〜ＰＯＳ２のコピーであり、量子化終了後にパッキング部１３８で圧縮データとしてパックされるときに使用されるときまで保持される。
【００７６】
ラッチパルス出力部１６３は、アドレスカウンタ１６１からのカウンタ値と変化点保持部１６２からの座標レジスタに基づいて、サブブロック単位でラッチパルス（ｌａｔｃｈ２）を出力する。
【００７７】
区間幅計算部１６４は、タイプ（ｔｙｐｅ００，０１，１０，００）によって、サブブロック分割数を検知する。区間幅計算部１６４は、座標の差分から区間幅を計算する。区間幅計算部１６４は、例えば、以下のとおり計算して、区間幅Ｗ０，Ｗ１，Ｗ２，Ｗ３を出力する。
ｔｙｐｅ００の場合、区間幅Ｗ０＝１９である。区間幅Ｗ１，Ｗ２，Ｗ３は使用しない。
ｔｙｐｅ０１の場合、区間幅Ｗ０＝ＰＯＳ０−０、Ｗ１＝１９−ＰＯＳ０である。区間幅Ｗ２，Ｗ３は使用しない。
ｔｙｐｅ１０の場合、区間幅Ｗ０＝ＰＯＳ０−０、Ｗ１＝ＰＯＳ１−ＰＯＳ０、Ｗ２＝１９−ＰＯＳ１である。区間幅Ｗ３は使用しない。
ｔｙｐｅ１１の場合、区間幅Ｗ０＝ＰＯＳ０−０、Ｗ１＝ＰＯＳ１−ＰＯＳ０、Ｗ２＝ＰＯＳ２−ＰＯＳ１、Ｗ３＝１９−ＰＯＳ２である。
【００７８】
最大値最小値検出部１６５は、サブブロック単位で、サブブロック内での画素データの最大値及び最小値を検出する。最大値最小値検出部１６５は、検出した最大値及び最小値を差分算出部１６６及び最小値ラッチ部１６７に出力する。
【００７９】
差分算出部１６６は、最大値最小値検出部１６５で検出されたサブブロック内の最大値及び最小値の差分を計算して、サブブロック単位でのダイナミックレンジ（ＤＲ１）を算出する。
【００８０】
最小値ラッチ部１６７は、サブブロック単位にレジスタＭＩＮｎ（ｎ＝０，１，２，３）に最小値を順次保持する。
セレクタ１６８は、最小値ラッチ部１６７のレジスタＭＩＮｎ（ｎ＝０，１，２，３）から、サブブロック毎の最小値を順次読み出して、出力する。
領域２値化値保持部１６９は、領域２値化部１５９から出力されたＡＲＥＡｎ（ｎ＝０，１，２，３）＝０又は１を保持する。
【００８１】
量子化語長決定部１７０は、サブブロック単位の量子化語長を決定する。量子化語長決定部１７０は、サブブロック毎に量子化語長（Ｑｎ（ｎ＝０，１，２，３）＝２〜５）を出力する。ここで、決定される量子化語長は、２〜５である。
【００８２】
本実施形態のアルゴリズムとしては、サブブロックが、１つのブロックの入力波形のうち最大値及び最小値というレベル両端への遷移領域に該当し、サブブロックの区間幅が狭いとき、画素データの変化が激しい区間と判断する。そして、画素データの変化が激しい区間と判断されたサブブロックについては、優先的により多くの量子化語長を割り当てるとする。
【００８３】
量子化語長決定部１７０は、区間幅Ｗｎ（ｎ＝０，１，２，３）の値、ＡＲＥＡｎ（ｎ＝０，１，２，３）＝０又は１、ｔｙｐｅ（＝００，０１，１０，１１）を用いて、量子化語長を割り当てる順位を検出する。
【００８４】
１ブロックに割り当てられた語長（本実施形態では１２８ビット）のうち量子化データに使用できるビット数は、図１０に示すデータ構造を有する圧縮データでは、タイプ毎にそれぞれ異なり、以下のとおりである。
ｔｙｐｅ００：１００ビット
ｔｙｐｅ０１：９３ビット
ｔｙｐｅ１０：７４ビット
ｔｙｐｅ１１：５５ビット
【００８５】
これらの量子化データに使用できるビット数に基づいて、１つのブロック内の各画素に割り当てられる量子化語長の組み合わせは、例えば、以下のとおりに決定しておくことができる。
ｔｙｐｅ００：２０画素全て５ビット（計１００ビット）
ｔｙｐｅ０１：最大１３画素まで５ビット、残りの画素は４ビット（計９３ビット）
ｔｙｐｅ１０：最大１４画素まで４ビット、残りの画素は３ビット（計７４ビット）
ｔｙｐｅ１１：最大１５画素まで３ビット、残りの画素は２ビット（計５５ビット）
【００８６】
更に、ｔｙｐｅ０１，１０，１１のように割りあてられる量子化語長が画素によって異なる場合、量子化語長の大きいものを割り当てるルールとしては、以下のとおりに決定しておくことができる。
１）ＡＲＥＡｎ＝０（波形の遷移領域）に該当するサブブロックであって、区間幅Ｗが短いサブブロックの順に、上記の制限数以内で、各画素に量子化語長の大きいほうを割り当てる。
２）次に、依然として量子化語長の大きいほうを割り当てられる余裕がある場合は、ＡＲＥＡｎ＝１に該当するサブブロックであって、区間幅Ｗが短いサブブロックの順に、上記の制限数以内で、各画素に量子化語長の大きいほうを割り当てる。
３）大きいほうの量子化語長が割り当てられなくなった時点で、残りのサブブロックは全て小さいほうの量子化語長が割り当てられる。
【００８７】
次に、図８を参照して、量子化語長の割り当てについて一例を説明する。図８は、画素データの入力波形を示す説明図である。ここでは、圧縮対象のブロックが、ｔｙｐｅ１０であって、サブブロック数を３にするように分割する場合について説明する。
【００８８】
ｔｙｐｅ１０であるため、上述したルールとしては、大きいほうの量子化語長は４ビットであり、最大１４画素まで割り当てることができる。残りの画素は全て３ビットが割り当てられる。
【００８９】
図８に示す入力波形によれば、対象とするブロック内の各サブブロックの区間幅Ｗと領域ＡＲＥＡは、次のとおりである。
Ｗ０＝７    ＡＲＥＡ０＝１
Ｗ１＝３    ＡＲＥＡ１＝０
Ｗ２＝１０  ＡＲＥＡ２＝１
【００９０】
このとき、区間幅の大小関係は、Ｗ１＜Ｗ０＜Ｗ２となる。従って、上述したルールでは、Ｗ１，Ｗ０，Ｗ２の順に大きいほうの量子化語長を割り当てるようにしていく。まず、Ｗ１の区間へＱ０＝４ビットを割り当てる。次に、Ｗ０の区間へ量子化語長を割り当てる。最大１４画素まで４ビットを割り当てられ、Ｗ０＋Ｗ１＜１４であるため、Ｗ０の区間へＱ１＝４ビットを割り当てる。次に、Ｗ２の区間へ量子化語長を割り当てる。Ｗ２＝１０であるが、既に量子語長４ビットを１０画素分割り当てているため、Ｗ２の区間へ４ビットを割り当てることはできない。そのため、Ｗ２の区間へＱ２＝３ビットを割り当てる。区間幅Ｗ３は、ｔｙｐｅ１０によれば、サブブロック分割数は３つなので該当なしとなり、Ｑ３は計算しない。
【００９１】
なお、この量子化語長の割当手順は、伸張処理側でも同様のルールで行われて、逆量子化処理がされる。また、本発明は割り当てる量子化語長の大きさや種類は上述した例に限定されない。このとき、タイプに応じて量子化データに使用できるビット数は限定されるが、圧縮処理側と伸張処理側で同じルールであればよい。
【００９２】
シフト量計算部１７１は、サブブロック単位のダイナミックレンジ（ＤＲ１）と量子化語長（Ｑｎ（ｎ＝０，１，２，３）＝２〜５）に基づいて、減算部１３５の出力を右に何ビットシフトするかを計算する。シフト量計算部１７１は、計算結果をシフト量ラッチ部１７２のレジスタＳＦＴｎ（ｎ＝０，１，２，３）に出力する。
【００９３】
シフト量ラッチ部１７２は、シフト量計算部１７１から出力されたシフト量をレジスタＳＦＴｎ（ｎ＝０，１，２，３）に順次記録する。セレクタ１７３は、シフト量ラッチ部１７２のレジスタＳＦＴｎ（ｎ＝０，１，２，３）から、サブブロック毎のシフト量を順次読み出して、出力する。
【００９４】
ここで、シフト量計算は、圧縮する領域（サブブロック）のダイナミックレンジ（ＤＲ１）と、出力したい量子化語長に基づいて、量子化部１３６で行われる右シフトの量を計算する。
例えば、１０ビットを５ビットに量子化する場合、
０≦ＤＲ１≦３１のとき、入力データ（減算部１３５からの出力データ）をそのまま出力する。
３２≦ＤＲ１≦６３のとき、入力データを１ビット分右へシフトする。
６４≦ＤＲ１≦１２７のとき、入力データを２ビット分右へシフトする。
１２８≦ＤＲ１≦２５５のとき、入力データを３ビット分右へシフトする。
２５６≦ＤＲ１≦５１１のとき、入力データを４ビット分右へシフトする。
５１２≦ＤＲ１≦１０２３のとき、入力データを５ビット分右へシフトする。
【００９５】
また、１０ビットを４ビットに量子化する場合も、５ビットの例と同様に、ダイナミックレンジ（ＤＲ１）に応じて、「そのまま出力する」〜「６ビット右へシフトする」という処理をする。
１０ビットを３ビットに量子化する場合は、ダイナミックレンジ（ＤＲ１）に応じて、「そのまま出力する」〜「７ビット右へシフトする」という処理をする。１０ビットを２ビットに量子化する場合は、ダイナミックレンジ（ＤＲ１）に応じて、「そのまま出力する」〜「８ビット右へシフトする」という処理をする。
【００９６】
次に、図１１を参照して本実施形態に係るＲＡＷ伸張部１２２について説明する。図１１は、本実施形態に係るＲＡＷ伸張部１２２を示すブロック図である。
図１１に示すように、ＲＡＷ伸張部１２２は、例えば、圧縮符号ラッチ部１８１、区間幅計算部１８２、量子化語長決定部１８３、アドレスカウンタ１８４、セレクタ１８５、符号シフタ１８６、セレクタ１８７、セレクタ１８８、逆量子化部１８９、加算部１９１及び逆折れ線伸張部１９２からなる。
【００９７】
圧縮符号ラッチ部１８１は、ＳＤＲＡＭ１０４から読み出された１２８ビットの圧縮データを保持する。圧縮符号ラッチ部１８１は、図１０に示す圧縮データのうち、ＭＳＢ（Most  Significant  Bit）２ビットからタイプを判別して、各サブブロックのシフト量、最小値を保持する。圧縮符号ラッチ部１８１は、抽出部の一例である。
【００９８】
区間幅計算部１８２は、サブブロック切り替え座標の座標データ（ＰＯＳ０，１，２）を受け、座標データ（ＰＯＳ０，１，２）の差分を計算して、区間幅Ｗ０，１，２を算出する。区間幅計算部１８２は、ＲＡＷ圧縮部１２１の区間幅計算部１６４と同様である。
【００９９】
量子化語長決定部１８３は、区間幅計算部１８２で算出された区間幅Ｗ０，１，２，３及びタイプに基づいて、サブブロックの量子化語長を割り当て計算し、サブブロック毎の量子化語長（Ｑ０，１，２，３）を決定する。量子化語長決定部１８３は、ＲＡＷ圧縮部１２１の量子化語長決定部１７０と同様のアルゴリズムでサブブロック毎の量子化語長（Ｑ０，１，２，３）を決定する。
【０１００】
セレクタ１８５は、量子化語長決定部１８３で決定された量子化語長を受取、順次符号シフタ１８６に出力する。
アドレスカウンタ１８４は、タイプと座標データによって、伸張処理する画素が属するサブブロックの切り替え座標を検出し、セレクタ１８５、１８７、１８８を順次切り替える。
【０１０１】
符号シフタ１８６は、圧縮符号ラッチ部１８１で保持されたデータのうち、タイプに応じた量子化データ（１００ビット、９３ビット、７４ビット、５５ビット）を受け取る。そして、符号シフタ１８６は、サブブロック単位の量子化語長（Ｑ０，１，２，３）に基づいて、２〜５ビットの符号をシフト動作によって抽出し、逆量子化部１８９に出力する。
【０１０２】
セレクタ１８７は、圧縮符号ラッチ部１８１で保持された図１０のデータ構造を有する圧縮データのうち、各サブブロックのシフト量を受け取り、順次逆量子化部１８９に出力する。セレクタ１８８は、圧縮符号ラッチ部１８１で保持された圧縮データのうち、図１０のデータ構造を有する圧縮データのうち、各サブブロックの最小値を受け取り、順次加算部１９１に出力する。
【０１０３】
逆量子化部１８９は、符号シフタ１８６からの画素毎の量子化データを、セレクタ１８７からのシフト量に応じて、逆量子化する。本実施形態では、逆量子化部１８９は、２〜５ビットの符号を逆量子化して１０ビットのデータを出力する。ＲＡＷ圧縮部１２１の量子化部１３６で右シフタとして量子化した場合、逆量子化部１８９は、以下のような左シフタとしての計算をする。
【０１０４】
例えば、５ビットを１０ビットに逆量子化する場合、
０≦ＤＲ１≦３１のとき、入力データ（符号シフタ１８６からの出力データ）をそのまま出力する。
３２≦ＤＲ１≦６３のとき、入力データを１ビット分左へシフトする。
６４≦ＤＲ１≦１２７のとき、入力データを２ビット分左へシフトする。
１２８≦ＤＲ１≦２５５のとき、入力データを３ビット分左へシフトする。
２５６≦ＤＲ１≦５１１のとき、入力データを４ビット分左へシフトする。
５１２≦ＤＲ１≦１０２３のとき、入力データを５ビット分左へシフトする。
【０１０５】
また、４ビットを１０ビットに逆量子化する場合も、５ビットの例と同様に、ダイナミックレンジ（ＤＲ１）に応じて、「そのまま出力する」〜「６ビット左へシフトする」という処理をする。
３ビットを１０ビットに逆量子化する場合は、ダイナミックレンジ（ＤＲ１）に応じて、「そのまま出力する」〜「７ビット左へシフトする」という処理をする。２ビットを１０ビットに逆量子化する場合は、ダイナミックレンジ（ＤＲ１）に応じて、「そのまま出力する」〜「８ビット左へシフトする」という処理をする。
【０１０６】
加算部１９１は、逆量子化部１８９が出力した符号に、サブブロック毎の共通ＤＣオフセット値となる最小値を加算する。加算部１９１は、最小値を加算したデータを逆折れ線伸張部１９２に出力する。
【０１０７】
逆折れ線伸張部１９２は、加算部１９１からのデータを、ＲＡＷ圧縮部１２１の折れ線圧縮部１３１と逆の特性により、１０ビットから１４ビットのデータに伸張する。
【０１０８】
ここで、図１２は、逆折れ線伸張部１９２で用いられる折れ線の例を示す図である。
この図１２の折れ線は、図９で示した折れ線圧縮部１３１における折れ線と、逆の特性により階調を変換するようになっている。なお、入力データと伸張後の出力データとを対応付けて記憶したＲＯＭテーブルを用意し、このＲＯＭテーブルに従って入出力データの変換が行われてもよい。なお、圧縮時に、折れ線圧縮部１３１による圧縮が適用されなかった場合には、伸張時には、この逆折れ線変換部１９２でのデータ変換もバイパスされる。
【０１０９】
次に、図１０を参照して、本実施形態で生成される圧縮データのデータ構造について説明する。図１０は、パッキング部１３８により生成される１ブロック分の圧縮データのデータ構造を示す説明図である。
圧縮データは、本実施形態のＲＡＷ圧縮部で生成されたものであり、ＲＡＷデータの１４ビットを折れ線圧縮部１０ビットに変換し、更に水平方向の２０画素単位でブロック化し、各画素を量子化語長２〜５ビットで符号化したものである。圧縮データは、ブロック毎に１２８ビットで構成される。
【０１１０】
図１０に示すように、圧縮時にサブブロック毎に分割しないｔｙｐｅ００の圧縮データは、識別フラグ（２ビット）、ブロック内の最小値（１０ビット）、ブロック内の例えば２のべき乗に変換したダイナミックレンジ（３ビット）、ブロックの量子化データ（１００ビット）からなる。
一方、サブブロックに分割するｔｙｐｅ０１，１０，１１の圧縮データの場合、識別フラグ（２ビット）、サブブロック毎のサブブロック内の最小値（１０ビット）、サブブロック毎のサブブロック内の例えば２のべき乗に変換したダイナミックレンジ（３ビット）、領域を示すＡＲＥＡｎ（１ビット）、切り替え座標ＰＯＳｎ（５ビット）、ブロックの量子化データ（９３ビット，７４ビット，５５ビット）からなる。
【０１１１】
以上の構成のＲＡＷ圧縮部１２１およびＲＡＷ伸張部１２２によれば、量子化による画質劣化が最小限に抑制されるような、より適切なサブブロック分割が選択され、量子化処理が実行される。その結果、高画質な撮像画像を高速処理によって得ることができる。また、圧縮率を向上させることができるため、内部バス１１８の帯域を有効に使用することができ、連写機能による撮影時の応答速度の高速化を図ることができる。
【０１１２】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【０１１３】
【図１】本発明の第１の実施形態に係る撮像装置を示すブロック図である。
【図２】同実施形態に係るＲＡＷ圧縮部を示すブロック図である。
【図３】同実施形態に係るブロック分割数決定部を示すブロック図である。
【図４】同実施形態に係るブロック分割判断部を示すブロック図である。
【図５】同実施形態に係るブロック分割用データ生成部を示すブロック図である。
【図６】ベイヤ配列と抽出された同色１ラインを示す模式図である。
【図７】画素データの入力波形を示す説明図である。
【図８】画素データの入力波形を示す説明図である。
【図９】折れ線圧縮部で用いられる折れ線の例を示すグラフである。
【図１０】パッキング部により生成される１ブロック分の圧縮データのデータ構造を示す説明図である。
【図１１】本発明の第１の実施形態に係るＲＡＷ伸張部を示すブロック図である。
【図１２】逆折れ線伸張部で用いられる折れ線の例を示す図である。
【符号の説明】
【０１１４】
１００      撮像装置
１０１      撮像素子
１０２      ＡＦＥ回路
１０３      デジタル画像処理部
１０４      ＳＤＲＡＭ
１０５      ＲＯＭ
１０６      ストレージデバイス
１１１      カメラ信号前処理部
１１２      カメラ信号処理部
１１３      解像度変換部
１１４      ＪＰＥＧエンジン
１１５      ＣＰＵ
１１６      ビデオ出力エンコーダ
１１７      ＳＤＲＡＭコントローラ
１２１      ＲＡＷ圧縮部
１２２      ＲＡＷ伸張部
【図１】
2009290556.tif 000003
【図２】
2009290556.tif 000004
【図３】
2009290556.tif 000005
【図４】
2009290556.tif 000006
【図５】
2009290556.tif 000007
【図６】
2009290556.tif 000008
【図７】
2009290556.tif 000009
【図８】
2009290556.tif 000010
【図９】
2009290556.tif 000011
【図１０】
2009290556.tif 000012
【図１１】
2009290556.tif 000013
【図１２】
2009290556.tif 000014