(57)【要約】【課題】  画像データの符号化に係る処理性能と圧縮効率の低下を抑制する。【解決手段】  画像データを符号化する画像処理装置であって、符号化対象の画像データを、複数の分割画像データに分割する分割部と、連続する所定数を画素データを単位として符号化する符号化部と、符号化部を制御し、分割部で得られた分割画像データそれぞれの符号化を行わせる制御部とを有する。ここで制御部は、符号化部による符号化対象の分割画像データのサイズが上記単位の整数倍であるか否かを判定する判定部と、該判定部が、符号化対象の分割画像データのサイズが上記単位の整数倍ではないと判定した場合、上記単位の整数倍とするための不足する画素を追加する追加部とを有する。【選択図】  図１
2018137540.tif 000002
【特許請求の範囲】
【請求項１】
画像データを符号化する画像処理装置であって、
符号化対象の画像データを、複数の分割画像データに分割する分割手段と、
連続する所定数を画素データを単位として符号化する符号化手段と、
前記符号化手段を制御し、前記分割手段で得られた分割画像データそれぞれの符号化を行わせる制御手段とを有し、
前記制御手段は、
前記符号化手段による符号化対象の分割画像データのサイズが前記単位の整数倍であるか否かを判定する判定手段と、
該判定手段が、前記符号化対象の分割画像データのサイズが前記単位の整数倍ではないと判定した場合、前記単位の整数倍とするための不足する画素を追加する追加手段とを有する
ことを特徴とする画像処理装置。
【請求項２】
前記分割手段は、前記符号化対象の画像データの中央位置から両端に向かう方向に、前記単位の整数倍のサイズを有する分割画像を決定していくことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記分割手段は、前記符号化対象の画像データの一方の端部から他方の端部に向かう方向に、前記単位の整数倍のサイズを有する分割画像を決定していくことを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記追加手段は、
前記分割画像データの境界から所定の距離までの領域に対して所定の解析を行い、当該領域が低周波成分を表す領域であるか否かを判定する解析手段を有し、
前記解析手段により前記領域が低周波成分を表しているとの解析結果を得た場合、前記境界の内側に位置する画素のコピーを追加する画素として生成し、
前記解析手段により前記領域が低周波成分を表していないとの解析結果を得た場合、所定の乱数で生成した画素を、追加する画素として生成する
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
画像データを符号化する画像処理装置の制御方法であって、
符号化対象の画像データを、複数の分割画像データに分割する分割工程と、
連続する所定数を画素データを単位として符号化する符号化工程と、
前記符号化工程を制御し、前記分割工程で得られた分割画像データそれぞれの符号化を行わせる制御工程とを有し、
前記制御工程は、
前記符号化工程による符号化対象の分割画像データのサイズが前記単位の整数倍であるか否かを判定する判定工程と、
該判定工程で、前記符号化対象の分割画像データのサイズが前記単位の整数倍ではないと判定した場合、前記単位の整数倍とするための不足する画素を追加する追加工程とを有する
ことを特徴とする画像処理装置の制御方法。
【請求項６】
画像データを符号化する画像処理装置であって、
符号化対象の画像データを、複数の分割画像データに分割する分割手段と、
連続する複数の画素の画素データを符号化する符号化手段と、
前記符号化手段を制御し、前記分割手段で得られた分割画像データそれぞれの符号化を行わせる制御手段とを有し、
前記制御手段は、
前記符号化手段による符号化対象の分割画像データにおける、水平ラインに沿った未符号化の画素数が、予め設定された閾値以上か否かを判定する判定手段を有し、
該判定手段が、未符号化の画素数が前記閾値以上と判定した場合、前記分割画像データから前記閾値が示す数の画素データを前記符号化手段で符号化させ、
前記判定手段が、未符号化の画素数が前記閾値に満たないと判定した場合、前記分割画像データから前記未符号化の画素数の画素データを前記符号化手段で符号化させる
ことを特徴とする画像処理装置。
【請求項７】
前記制御手段は、前記符号化手段で符号化させるたびに、符号化することなる画素数を前記符号化手段に通知することを特徴とする画像処理装置。
【請求項８】
前記制御手段は、
前記分割画像データにおける水平ラインにおける隣接する画素間の差分を求め、
当該差分が予め設定された閾値を超える数を計数し、
当該計数の基づき、前記符号化手段による符号化単位の画素数を決定する
ことを特徴とする請求項５又は６に記載の画像処理装置。
【請求項９】
画像データを符号化する画像処理装置の制御方法であって、
符号化対象の画像データを、複数の分割画像データに分割する分割工程と、
連続する複数の画素の画素データを符号化する符号化工程と、
前記符号化工程を制御し、前記分割工程で得られた分割画像データそれぞれの符号化を行わせる制御工程とを有し、
前記制御工程は、
前記符号化工程による符号化対象の分割画像データにおける、水平ラインに沿った未符号化の画素数が、予め設定された閾値以上か否かを判定する判定工程を有し、
該判定工程で、未符号化の画素数が前記閾値以上と判定した場合、前記分割画像データから前記閾値が示す数の画素データを前記符号化工程で符号化させ、
前記判定工程でが、未符号化の画素数が前記閾値に満たないと判定した場合、前記分割画像データから前記未符号化の画素数の画素データを前記符号化工程で符号化させる
ことを特徴とする画像処理装置の制御方法。
【請求項１０】
コンピュータが読み込み実行することで、前記コンピュータに請求項５又は９に記載の方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データの符号化技術に関するものである。
【背景技術】
【０００２】
近年、デジタルカメラ等の画像処理装置で扱う画像の多画素化に伴って、処理すべき画像のデータ量も増加している。１つの画像に対し画像処理回路が単純なフィルタ処理を行う場合であっても、その回路には処理対象の画像の水平１ライン分の画素を保持するラインメモリが必要になり、回路規模が増大してしまう。そのため、ラインメモリを節約するために、処理すべき画像を分割して処理している。また、データ量の増大は、メモリ帯域を圧迫して、動画のフレームレートや静止画の連写枚数を下げることになる。そこで、分割処理した画像を一時的にメモリに保持する場合、分割画像データに対して圧縮する技術が特許文献１、特許文献２に提案されている。特許文献１では、分割画像を複数のサブブロックラインに分割して、サブブロックライン毎に圧縮し、元画像サイズと圧縮率に基づいてメモリの書き込みアドレスを決定することが提案されている。特許文献２では、画像データの分割する位置をランダムにしてライン毎に処理し、圧縮する画素単位に合わせるために、分割画像の端にダミー領域を付加することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５５９７１７５号公報
【特許文献２】特開２０１５−２２０５４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されている技術では、サブブロックライン毎に圧縮するため、分割画像の水平サイズがサブブロックラインの整数倍ではない場合、サブブロックとしての不足分の画素を付加する必要がある。つまり、本来処理する必要のない画素までを処理して圧縮することとなり、処理性能と圧縮効率低下の要因となる。このため、係る問題に対して対策が望まれていた。また、特許文献２に開示されている技術では、ダミー領域を付加するため、圧縮効率低下の要因となるため、それに対する対策が望まれていた。
【０００５】
本発明は上記の問題点に鑑み、処理性能と圧縮符号化効率の低下を抑制する技術を提供しようとするもいのである。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像処理装置は以下の構成を備える。すなわち、
画像データを符号化する画像処理装置であって、
符号化対象の画像データを、複数の分割画像データに分割する分割手段と、
連続する所定数を画素データを単位として符号化する符号化手段と、
前記符号化手段を制御し、前記分割手段で得られた分割画像データそれぞれの符号化を行わせる制御手段とを有し、
前記制御手段は、
前記符号化手段による符号化対象の分割画像データのサイズが前記単位の整数倍であるか否かを判定する判定手段と、
該判定手段が、前記符号化対象の分割画像データのサイズが前記単位の整数倍ではないと判定した場合、前記単位の整数倍とするための不足する画素を追加する追加手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像データの符号化に係る処理性能と圧縮効率の低下を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態における撮像装置のブロック図。
【図２】第１の実施形態における画像処理部のブロック図。
【図３】第１の実施形態における画素追加を示す図。
【図４】第１の実施形態における画像分割の例を示す図。
【図５】第１の実施形態における分割画像サイズの決定処理を示すフローチャート。
【図６】第１の実施形態における追加画素決定処理を示すフローチャート。
【図７】第２の実施形態における画像分割の例を示す図。
【図８】第２の実施形態における分割画像サイズの決定処理を示すフローチャート。
【図９】第３の実施形態における撮像装置のブロック図。
【図１０】第３の実施形態における画像処理部のブロック図。
【図１１】第３の実施形態における画像分割の例を示す図。
【図１２】第３の実施形態における追加画素決定処理を示すフローチャート。
【図１３】第４の実施形態における撮像装置のブロック図。
【図１４】第４の実施形態における画像処理部のブロック図。
【図１５】第４の実施形態における画像分割の例を示す図。
【図１６】第４の実施形態における圧縮単位決定処理を示すフローチャート。
【図１７】第４の実施形態におけるＲＤＤＭＡＣのブロック図。
【図１８】第４の実施形態における伸長単位決定処理を示すフローチャート。
【図１９】第５の実施形態における画像処理部のブロック図。
【図２０】第５の実施形態における画像分割の例を示す図。
【図２１】第５の実施形態における圧縮単位決定処理を示すフローチャート。
【図２２】第５の実施形態における伸長単位決定処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお以下では、本実施形態における画像処理装置を撮像装置の一部として実装されるものとして説明する。また撮像装置がデジタルカメラとして説明するが、デジタルビデオカメラ、スマートフォン、カメラ付き携帯電話、車載カメラ等の撮像装置を採用することも可能である。
【００１０】
［第１の実施形態］
図１は第１の実施形態に係るデジタルカメラの構成の一例を示すブロック図である。デジタルカメラは、画像処理部１００、圧縮部１０１、データ転送部１０２、データバス１０３、制御バス１０４、メモリ制御部１０５、メモリ１０６、不揮発性メモリ制御部１０７、不揮発性メモリ１０８、ＣＰＵ１０９を有する。なお、図示していないが、デジタルカメラは、受光した被写体像を電気信号に変換して画像データを作成するＣＣＤやＣＭＯＳセンサ等の撮像素子、撮像素子からのアナログ信号をデジタル信号に変換するＡＤ変換器、画像データを例えばＪＰＥＧやＭＰＥＧ形式などに圧縮または圧縮されたデータを伸張する圧縮伸張部、さらには、ユーザが操作する操作部なども有する。
【００１１】
画像処理部１００は、データ転送部１０２と接続され、不図示の撮像素子による撮像して得られた画像データをデータ転送部１０２を介して入力し、画像処理して、その処理結果をデータ転送部１０２あるいは圧縮部１０１へ出力する。この画像処理部１００は、図２に示すように、画像処理コア部２００と画素追加部２０１から構成される。画像処理コア部２００は、画素補正、黒レベル補正、シェーディング補正、傷補正、倍率色収差補正、ガンマ補正、輝度・色生成処理、幾何変形、ノイズリダクション、画像のリサイズ（拡縮）などの複数の処理を実行し、画像データに対して適切な画像処理を施すブロックである。画素追加部２０１は、画像処理コア部２００で処理した画像データあるいはデータ転送部１０２から転送された画像データに対して、コピー画素あるいはランダムな値（乱数）の画素を、ＣＰＵ１０９より設定された画素数分、追加するブロックである。
【００１２】
画素追加の例を、図３（Ａ），（Ｂ）を用いて説明する。図３（Ａ）、（Ｂ）は、画像データの１水平ラインを示しており、斜線部が追加される画素を意味している。図３（Ａ）は、Ｂａｙｅｒ配列の画像データ、図３（Ｂ）はＹＵＶ４２２フォーマットの画像データである。Ｂａｙｅｒ配列の場合、境界位置に線対称に２画素単位でコピーを行われる。ＹＵＶ４２２フォーマットの場合、境界位置に線対称に、Ｙ画素は端からコピーし、ＵＶ画素は２画素単位でコピーする。なお、図３（Ａ），（Ｂ）で示した画素追加は一例であり、端以外からコピーしても良いし、コピーするのではなく、ランダムな値を画素として追加することも可能とする。
【００１３】
圧縮部１０１は、画像処理部１００で処理した画像データを符号化対象として入力し、水平方向に連続する予め設定された所定数の画素（実施形態では３２画素とする）といったサブブロックの単位で、差分パルス符号変調（ＤＰＣＭ）方式で圧縮符号化する。なお、符号化単位であるサブブロックの画素数は、３２画素に限らず、６４画素単位であっても良く、そのサイズ（画素数）は特に問わない。また、符号化方式は別の方式で行っても構わない。
【００１４】
データ転送部１０２は、データ転送を行う複数のＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓコントローラ（ＤＭＡＣ）を有し、その中にはメモリ１０６への書き込み用のＷＲＤＭＡＣと、読出用のＲＤＤＭＡＣが含まれる。画像データは、ＷＲＤＭＡＣによってバス１０３に出力し、メモリ制御部１０５を介してメモリ１０６に一時記憶される。メモリ１０６に一時記憶された画像データは、ＲＤＤＭＡＣによってメモリ１０６からバス１０３に出力され、画像処理部１００にデータを出力される。バス１０３は、データバスであり、バス１０４は制御バスである。
【００１５】
メモリ制御部１０５は、ＣＰＵ１０９或いはデータ転送部１０２からの指示に応じて、メモリ１０６にデータを書き込んだり、メモリ１０６からデータを読み出したりする。メモリ１０６は、所定枚数の静止画像や所定時間の動画像、音声等のデータやＣＰＵ１０９の動作用の定数、プログラム等を格納するのに十分な記憶容量を備える記憶装置であり、ＤＲＡＭなどから構成される。
【００１６】
不揮発性メモリ制御部１０７は、ＣＰＵ１０９からの指示に応じて、不揮発性メモリ１０８にデータを書き込んだり、不揮発性メモリ１０８からデータを読み出したりする。不揮発性メモリ１０８は、電気的に消去・記録可能なメモリであり、例えばＥＥＰＲＯＭ等が用いられる。不揮発性メモリ１０８には、ＣＰＵ１０９の動作用の定数、プログラム等が記憶される。
【００１７】
ＣＰＵ１０９は、デジタルカメラの動作制御を司るマイクロコンピュータなどで構成され、デジタルカメラを構成する各機能ブロックに対して様々な指示を行ったり、各種の制御処理を実行する。例えば、ＣＰＵ１０９は、バス１０４を介して接続された画像処理部１００、データ転送部１０２、メモリ制御部１０５、不揮発性メモリ制御部１０７を制御する。ＣＰＵ１０９は、前述した不揮発性メモリ１０８に記録されたプログラムを実行することで、本実施形態の各処理を実現する。また、ＣＰＵ１０９は、画像データの分割処理時の分割サイズを決定する。ここで、実施形態におけるＣＰＵ１０９での画像の分割例を図４に、その分割サイズの決定処理手順を図５に示す。
【００１８】
図４を参照して、実施形態における画像分割処理を説明する。実施形態における画像分割処理は、符号化対象の画像データの水平方向の中央位置に分割画像データを決定し、その後で水平方向の両端部に向かって他の分割画像データを決定していく。同図において、画像データ４００は、撮像して得た符号化前の画像を示している。実施形態では、この画像を破線で示すように３分割して、分割画像データ４０１、４０４、４０６を生成する。点線ブロック４０３、４０５、４０８及び参照符号を付していない他の点線ブロックは、圧縮部１０１による圧縮処理単位であるサブブロックを示しており、そのサブブロックの水平方向のサイズは、画像処理部１００内に設けられたラインメモリのサイズの容量に依存している。
【００１９】
斜線部４０２、４０７は、画素追加部２０１で追加する画素を示す。なお、図４は３分割であるが、分割数に限定されるものでなく、３分割以上でも良いのものとする。
【００２０】
次に、図４に示す画像データの分割サイズの決定処理を行うＣＰＵ１０９の処理手順を、図５のフローチャートに従って説明する。
【００２１】
Ｓ５００にてＣＰＵ１０９は、分割画像データ４０４の水平方向のサイズを、点線ブロック４０５が切りよく収まるように決定する。
【００２２】
例えば、実施形態では、サブブロックの水平方向のサイズは３２画素としているので、分割画像データ４０４の水平方向のサイズは３２画素の整数倍である。具体的には、ＣＰＵ１０９は、以下の数式（１）、（２）が成り立つように分割画像データ４０４の水平方向のサイズｂ１を算出する。
ｂ１％ｎ１  ＝  ０  …（１）
ｍ１≧ｂ１        …（２）
ここで、Ｘ％Ｙは、整数Ｘを整数Ｙで除算した際の余りを返す関数である。また、ｂ１は分割画像データ４０４の水平画素数、ｍ１は遅延ラインに格納できる画素数、ｎ１はサブブロック（点線ブロック４０３）の水平方向画素数である。
【００２３】
つまり、分割画像データ４０４は、サブブロックの整数倍であり、尚且つ、分割画像データは遅延ラインの容量以下である。処理のオーバーヘッドを最少にし、効率良く処理するためには、上記条件を満たす、最大のｂ１を求めることである。なお、ｍ１は画像処理コア部２００の遅延ラインに格納できる画素数のため固定値となり、ｎ１もサブブロック画素の単位のため固定値となる。
【００２４】
Ｓ５０１には、ＣＰＵ１０９は、分割画像データ４０１のサイズ及び分割画像データ４０６のサイズを決定する。具体的には、以下の数式（３）、（４）、（５）が成り立つように分割画像データ４０１の水平方向のサイズａ１と、分割画像データ４０６の水平方向のサイズｃ１を算出する。
ｋ１＝ａ１＋ｂ１＋ｃ１  …（３）
ｍ１≧ａ１              …（４）
ｍ１≧ｃ１              …（５）
ここで、ｋ１は画像データ４００の水平画素数であり、ａ１は分割画像データ４０１の水平画素数、ｃ１は分割画像データ４０６の水平画素数である。なお、分割画像データ４０１の水平画素数ａ１、分割画像データ４０６の水平画素数ｃ１はａ１＝ｃ１としても良いし、ａ１＞ｃ１やａ１＜ｃ１としても良く、本実施形態のデジタルカメラのシステムに応じた値に設定可能である。
【００２５】
Ｓ５０２にて、ＣＰＵ１０９は、分割画像データ４０１の水平画素数ａ１が、サブブロックの水平方向画素数ｎ１で割り切れるか否か（又は、ｎ１の整数倍か）を判定する。ＣＰＵ１０９は、割り切れると判定した場合には処理をＳ５０４へ進め、割り切れないと判定した場合には処理をＳ５０３へ進める。また、割り切れる場合は、分割画像データ４０１の端部への追加する画素を表す、図４の斜線部４０２の水平画素数は０となる。つまり、斜線部４０２は不要、言い換えれば、画素追加部２０１による画素の追加処理は無いことを意味する。
【００２６】
Ｓ５０３にて、ＣＰＵ１０９は、斜線部４０２の画素数、つまり画素追加部２０１が追加する画素数ｄ１を次式（６）に従って算出し、処理をＳ５０４に進める。
ｄ１＝（ａ１／ｎ１＋１）＊ｎ１−ａ１  …（６）
なお、式（６）における“／”は、小数点以下を切り捨てる除算記号である。ここで、算出するｄ１は、遅延ラインの画素数の整数倍に満たない不足分ということができる。
【００２７】
また、Ｓ５０３にて、ＣＰＵ１０９は、追加する画素をコピー画素にするかランダム画素にするかの決定処理（追加画素決定処理）を行う。この追加画素決定処理は、図６のフロー図を用いて後述する。
【００２８】
Ｓ５０４にてＣＰＵ１０９は、分割画像データ４０６の水平画素数ｃ１が、サブブロックの水平方向画素数ｎ１で割り切れるかどうか判定する。ＣＰＵ１０９は、割り切れると判定した場合、この分割サイズ決定処理を終了する。ＣＰＵ１０９は、割り切れないと判定した場合、処理をＳ５０５に進める。なお、割り切れる場合は、画素追加部２０１による画素の追加処理は無い。
【００２９】
Ｓ５０５にて、ＣＰＵ１０９は、図４の斜線部４０７の画素数、つまり画素追加部２０１で追加する画素数を、ステップ５０３と同様の方法で算出する。
【００３０】
次に図６のフロー図を用いて、ＣＰＵ１０９の追加画素決定処理を説明する。
【００３１】
Ｓ６００にて、ＣＰＵ１０９は、画像の端に付加する画素をコピー画素を用いるコピーモードかどうかを判定する。ＣＰＵ１０９はコピーモードが設定されていると判断した場合、Ｓ６０１へ処理を進める。ＣＰＵ１０９は、コピーモードが設定されていないと判断した場合、処理をＳ６０２に進める。コピーモードは、本実施例のデジタルカメラのモードで低画質記録モード、あるいは高圧縮率モードをユーザにより、不図示の操作部から選択されていることを示している。また、本実施例のデジタルカメラのモードで明示的にコピーモードをユーザに選択した場合や、画像処理コア部２００で処理する前に画素追加部２０１で画素を追加する場合などである。画像処理コア部２００で処理する前にコピー画素にする利点としては、画像処理コア部２００がフィルタ処理する時に必要とするフィルタタップ長の画素を画像処理コア部２００の内部の画像処理でコピーする必要がなくなる点が挙げられる。さらには、画像処理コア部２００でコピー画素をフィルタ処理した画素をサブブロック画素の単位となるように保持して置くことで、画像処理コア部２００の処理後に画素追加の必要がなくなる。さらには、画像の端を単なるコピー画素にした場合、コピー画素を多く含むことでサブブロックの圧縮効率が上がり、付近のサブブロックの圧縮率と乖離し、その乖離が画質に影響を与える可能性があるが、フィルタ処理した画素を用いることで、付近のサブブロックの圧縮率と乖離することがなくなり、サブブロック毎の画質差を抑えることが出来る。
【００３２】
Ｓ６０１にて、ＣＰＵ１０９は、追加画素をコピー画素にして、追加画素決定処理を終える。
【００３３】
Ｓ６０２にて、ＣＰＵ１０９は、分割左端画像（又は分割右端画像）の左端側（右端側）から画像の内側に向かって予め設定された距離までの領域（or範囲）内に存在する画素の画素値を解析し、その解析結果に基づき低周波成分の度合いを求める。そして、Ｓ６０３には、ＣＰＵ１０９は、低周波成分を多く含んでいるか否かを判定する。
【００３４】
例えば、ＣＰＵ１０９は、その範囲内に存在する画素の隣り合う画素の差の絶対値を求め、差の絶対値が閾値以下であれば低周波成分と判断する。なお、これは一例であって、これ以外の論理に従って判断しても構わない。
【００３５】
Ｓ６０３にて、ＣＰＵ１０９は、低周波成分を多く含んでいると判定した場合、処理はＳ６０１に進める。一方、ＣＰＵ１０９は、低周波成分が少ない（高周波成分が多い）と判定した場合、処理をＳ６０４に進める。
【００３６】
Ｓ６０４にて、ＣＰＵ１０９は、追加画素をランダムに発生するものとして決定し、この追加画素決定処理を終える。なお、追加する画素に対して全てランダム画素にしても良いし、追加する画素に対して同じランダム画素を用いても良い。
【００３７】
追加画素決定処理で低周波成分であればコピー画素にして、低周波成分以外はランダム画素にするのは、サブブロック単位で圧縮するため、付近のサブブロックと近い圧縮率で圧縮した方が、圧縮率の差異による画質差を抑えることが可能となるためである。
【００３８】
この後、圧縮部１０１は、画像処理部１００からの分割画像データを入力しては、サブブロック単位に圧縮符号化処理を行っていくことになる。生成された符号化データは、データ転送部１０２を介して、メモリ１０６に格納されることになる。
【００３９】
以上説明したように、第１の実施形態によれば、分割中央画像サイズを任意と決めた場合と比べて、分割画像のサイズが圧縮のサブブロックの整数倍となるので、圧縮時にサブブロック画素の単位に合わせる必要がなく、符号化処理がスムースを行うことが可能になり、符号化処理性能と圧縮効率の低下を抑制できる。また、分割数が多くなればなるほど、本実施形態の効果は顕著となってくる。
【００４０】
以上、第１の実施形態に基づき具体的に説明したが、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることは言うまでもない。
【００４１】
［第２の実施形態］
次に、第２の実施形態について説明する。なお、ここでは、前述した第１の実施形態と異なる部分のみを説明し、同一の部分については、同一の符号を付すなどして詳細な説明を省略する。
【００４２】
図７は、画像データ７００を、点線を境界に、分割画像データ７０１、７０３に２分割する例である。点線ブロック７０２、７０５、及び図番を付加していない点線ブロックは、圧縮部１０１で圧縮処理するサブブロックを示している。斜線部７０４は、画素追加部２０１で追加する画素領域を示している。
【００４３】
次に、ＣＰＵ１０９による、図７に示す画像データの分割サイズの決定方法を、図８のフローチャートに従って説明する。
【００４４】
Ｓ８００にて、ＣＰＵ１０９は、分割左端画像データ７０１の水平方向のサイズを、点線ブロック７０２が切りよく収まるように決定する。つまり、サブブロック画素の単位が３２画素であれば、分割画像データ７０１の水平方向のサイズを３２画素の整数倍にする。
【００４５】
次に、ＣＰＵ１０９は、Ｓ８０１にて、以下の数式（７）、（８）が成り立つように分割右端画像データ７０３のサイズｂ２を算出する。
ｂ２％ｎ２＝０  …（７）
ｍ２≧ｂ２      …（８）
ここで、ｂ２は分割左端画像データ７０１の水平画素数、ｍ２は遅延ラインに格納できる画素数、ｎ２はサブブロックの水平方向画素数（点線ブロック７０２の水平画素数）である。なお、ｍ２は画像処理コア部２００の遅延ラインに格納できる画素数のため固定値となり、ｎ２もサブブロック画素の単位のため固定値となる。ｂ２は、本実施形態のデジタルカメラのシステムに応じて、数式（７）、（８）を満たす最大値とすると効率が良い。
【００４６】
Ｓ８０１にて、ＣＰＵ１０９は、分割画像データ７０３のサイズを決定し、Ｓ８０２へ処理を進める。具体的には、以下の数式（９）、（１０）が成り立つように分割画像データ７０３のサイズｃ２を算出する。
ｋ２＝ｂ２＋ｃ２    …（９）
ｍ２≧ｃ２          …（１０）
ここで、ｋ２は画像データ７００の水平画素数、ｃ２は分割右端画像データ７０３の水平画素数である。
【００４７】
Ｓ８０２にて、ＣＰＵ１０９は、分割右端画像データ７０３の水平画素数ｃ２が、サブブロックのサイズｎ２で割り切れるかどうか判定する。ＣＰＵ１０９は、割り切れると判定した場合には、分割サイズ決定処理を終了する。また、ＣＰＵ１０９は、割り切れないと判定した場合は、Ｓ８０３に処理を進める。なお、ｃ２がｎ２で割り切れる場合、斜線部７０４の水平画素数は０となり、画素の追加処理は不要となる。
【００４８】
Ｓ８０３にて、ＣＰＵ１０９は、斜線部７０４が表す画素数、つまり画素追加部２０１で追加する画素数ｄ２を、次式（１１）より算出する。
ｄ２＝（ｃ２／ｎ２＋１）＊ｎ２−ｃ２  ・・・（１１）
また、追加する画素をコピー画素にするかランダム画素にするかを図６に示す追加画素決定処理にて決定する。
【００４９】
以上説明したように、本第２の実施形態によれば、第１の実施形態の作用効果に加えて、追加する画素数を判定する分割画像は、分割右端画像の１つとなり、その判定に係る処理及び画素追加処理が簡略化され、処理性能と圧縮効率の低下を更に抑制できる。
【００５０】
なお、上記第２の実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能である。
【００５１】
［第３の実施形態］
次に、第３の実施形態について説明する。なお、ここでは、上記第１の実施形態と異なる部分のみを説明し、同一の部分については、同一の符号を付すなどして詳細な説明を省略する。
【００５２】
図９は第３の実施形態に係るデジタルカメラの構成の一例を示すブロック図であり、図１に対して伸長部（復号部）９００を追加した構成である。
【００５３】
伸長部９００は、メモリ１０６に記憶されている圧縮部１０１で圧縮された画像データを、データ転送部１０２を介して読み込む。そして、伸長部９００は、読み込んだ圧縮画像データを圧縮部１０１で圧縮したサブブロック画素の単位で伸長（復号）して、伸長結果である画像データを画像処理部１００へ渡す。
【００５４】
図１０は、本第３の実施形態における画像処理部１００の内部構成図である。図２に対して、画素削除部１０００を追加された点が異なる。この画素削除部１０００は、入力された画像データの任意の場所の画素を削除して、削除後の画像データを画像処理コア部２００へ渡す。なお、画素削除部１０００は、伸長部９００内に設けられるようにしても良い。
【００５５】
図１１は、画像データ１１００を、図示の点線を境界に分割画像データ１１０１、１１０５、１１０７に３分割した図である。点線ブロック１１０４、１１０６、１１１０及び図番を付加していない点線ブロックは、圧縮部１０１で圧縮処理するサブブロックの水平方向のサイズ（圧縮符号化単位）を示すものである。斜線部１１０２、１１０８及びクロス斜線部１１０３、１１０９は、画素追加部２０１で追加する画素を示す。なお、図１１は３分割であるが、分割数は３以上でも構わない。
【００５６】
本第３の実施形態における分割画像サイズ決定は、図５のフローに沿って決定するものとするが、画素追加部２０１により追加する画素は、図１２に示す追加画素決定処理で決定される。
【００５７】
図１２に係るプログラムは、不揮発性メモリ１０８に格納されており、ＣＰＵ１０９が実行するものでもある。以下、同図に従ってＣＰＵ１０９による追加画素決定処理を説明する。
【００５８】
Ｓ１２００にて、ＣＰＵ１０９は、追加する画素の内、伸長部９００で伸長して画像処理する際にフィルタ処理で必要な画素分をコピー画素として決定する。なお、図１１の斜線部１１０２、１１０８がコピー画素領域を示している。つまり、圧縮時に必要なサブブロック画素の単位に合わせるための画素を、次の画像処理コア部２００でフィルタ処理するための左端、右端を予めコピー画素にしておく。これにより、ランダム画素にした時と比べて、次の画像処理時にコピー画素を追加する必要がなくなるため、処理性能の向上がはかれる。
【００５９】
Ｓ１２０１にて、ＣＰＵ１０９は、追加する画素のうち、ステップ１２００で決定したコピー画素数以外をランダム画素として決定し、この追加画素決定処理を終える。なお、図１１のクロス斜線部１１０３、１１０９がランダム画素を示しており、伸長部９００で伸長後、画素削除部１０００で削除する領域である。つまり、クロス斜線部１１０３、１１０９は、画像処理コア部２００では処理しない画素となるため、無駄な画素を処理する必要がなくなるため、処理性能の低下を抑制できる。
【００６０】
以上説明したように、本第３の実施形態によれば、分割画像サイズが、圧縮のサブブロック画素の単位となることで、圧縮時にサブブロック画素の単位に合わせる必要がなくなるため、余分な画素の処理が不要となり、処理性能と圧縮効率の低下を抑制できる。また、分割数が多くなればなるほど、本実施形態の効果は顕著となってくる。さらには、次の画像処理でフィルタ処理を行う場合には、フィルタ処理で使用する画素を圧縮時にコピー画素にすることで処理性能の向上をはかり、伸長後にフィルタ処理で不要な画素をカットすることで処理性能の低下を抑制することもできる。
【００６１】
以上、第３の実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることは言うまでもない。
【００６２】
［第４の実施形態］
次に第４の実施形態を説明する。図１３は第４の実施形態に係るデジタルカメラの構成の一例を示すブロック図である。図示のように、本装置は、画像処理部１３００、ＲＤＤＭＡＣ１３０１、ＷＲＤＭＡＣ１３０２、圧縮部１３０３、伸長部１３０４、データバス１３０５、制御バス１３０６、メモリ制御部１３０７、メモリ１３０８、不揮発性メモリ１３０９、不揮発性メモリ１３１０、ＣＰＵ１３１１を有する。また、図示していないが、受光した被写体像を電気信号に変換して画像データを作成するＣＣＤやＣＭＯＳセンサ等の撮像素子、撮像素子からのアナログ信号をデジタル信号に変換するＡＤ変換器、画像データを例えばＪＰＥＧやＭＰＥＧ形式などに圧縮または圧縮されたデータを伸張する圧縮伸張部、ユーザが操作する操作部なども有する。
【００６３】
画像処理部１３００は、ＲＤＤＭＡＣ１３０１、伸長部１３０４、ＷＲＤＭＡＣ１３０２、圧縮部１３０３と接続される。画像処理部１３００は、ＲＤＤＭＡＣ１３０１から画像データを入力し、画像処理して、処理結果をＷＲＤＭＡＣ１３０２あるいは圧縮部１３０３へ出力する。
【００６４】
画像処理部１３００は、図１４に示すように、画像処理コア部１４００と画素圧縮単位決定部１４０１を含む。画像処理コア部１４００は、画素補正、黒レベル補正、シェーディング補正、傷補正、倍率色収差補正ガンマ補正や輝度・色生成処理、幾何変形、ノイズリダクション、拡縮といったリサイズなどの複数の処理を実行し、画像データに対して適切な画像処理を施すブロックである。画素圧縮単位決定部１４０１は、圧縮部１３０３が画像データを水平方向にサブブロックの単位に分割して圧縮する時のサブブロックの画素数を決定する。詳細な説明は、図１５、図１６を用いて後術する。なお、画素圧縮単位決定部１４０１は、圧縮部１３０３の中に持つ構成としても良い。
【００６５】
ＲＤＤＭＡＣ１３０１は、データの読み込み転送を行う複数のＤＭＡ（Direct Memory Access）コントローラで構成され、図１７に示すように、ＲＤＤＭＡＣコア部１７００と画素伸長単位決定部１７０１を含む。メモリ１３０８に一時記憶された画像データは、ＲＤＤＭＡＣコア部１７００によって、そのメモリ１３０８からデータバス１３０５を介してＲＤＤＭＡＣ１３０１に出力され、画像処理部１３００あるいは伸長部１３０４に転送される。画素伸長単位決定部１７０１は、伸長する画像データのサブブロックの画素数を算出する。詳細な説明は、図１８のフロー図を用いて後術する。なお、画素伸長単位決定部１７０１は、伸長部１３０４の中に含まれる構成としても良い。
【００６６】
ＷＲＤＭＡＣ１３０２は、メモリ１３０８へのデータの書き込み転送を行う複数のＤＭＡコントローラで構成される。画像データは、ＷＲＤＭＡＣ１３０２によってデータバス１３０５に出力され、メモリ制御部１３０７を介してメモリ１３０８に一時記憶される。
【００６７】
圧縮部１３０３は、画像処理部１３００で処理した画像データに対して、水平方向に例えば３２画素といったサブブロックの画素数単位に、差分パルス符号変調（ＤＰＣＭ）方式で圧縮するブロックである。なお、サブブロックの画素数は、画素圧縮単位決定部１４０１で決定される。圧縮方式は別の方式で行っても良いものとする。
【００６８】
伸長部１３０４は、メモリ１３０８に記憶されている、圧縮部１３０３で圧縮された画像データを、ＲＤＤＭＡＣ１３０１を介して読み込む。そして、伸長部１３０４は、読み込んだ圧縮画像データを、圧縮されたサブブロックの画素数単位に伸長して、伸長結果である画像データを画像処理部１３００へ渡す。なお、サブブロックの画素数は、画素伸長単位決定部１７０１で決定される。
【００６９】
データバス１３０５は、画像データを転送するためのバスであり、制御バス１３０６は、ＣＰＵ１３１１から画像処理部１３００、ＲＤＤＭＡＣ１３０１、ＷＲＤＭＡＣ１３０２、圧縮部１３０３、伸長部１３０４へアクセスする制御バスである。
【００７０】
メモリ制御部１３０７は、ＣＰＵ１３１１或いはＲＤＤＭＡＣ１３０１、ＷＲＤＭＡＣ１３０２からの指示に応じて、メモリ１３０８にデータを書き込んだり、メモリ１３０８からデータを読み出したりする。メモリ１３０８は、所定枚数の静止画像や所定時間の動画像、音声等のデータやＣＰＵ１３１１の動作用の定数、プログラム等を格納するのに十分な記憶容量を備える記憶装置であり、ＤＲＡＭなどから構成される。
【００７１】
不揮発性メモリ制御部１３０９は、ＣＰＵ１３１１からの指示に応じて、不揮発性メモリ１３１０にデータを書き込んだり、不揮発性メモリ１３１０からデータを読み出したりする。不揮発性メモリ１３１０は、電気的に消去・記録可能なメモリであり、例えばＥＥＰＲＯＭ等が用いられる。不揮発性メモリ１３１０には、ＣＰＵ１３１１の動作用の定数、プログラム等が記憶される。
【００７２】
ＣＰＵ１３１１は、デジタルカメラの動作制御を司るマイクロコンピュータなどで構成され、デジタルカメラを構成する各機能ブロックに対して様々な指示を行ったり、各種の制御処理を実行する。ＣＰＵ１３１１は、制御バス１３０６を介して接続された画像処理部１３００、ＲＤＤＭＡＣ１３０１、ＷＲＤＭＡＣ１３０２、圧縮部１３０３、伸長部１３０４、メモリ制御部１３０７、不揮発性メモリ制御部１３０９を制御する。ＣＰＵ１０９は、前述した不揮発性メモリ１３１０に記録されたプログラムを実行することで、本実施形態の各処理を実現する。また、ＣＰＵ１３１１は、画像データの分割処理時の分割サイズを決定する。なお、ＣＰＵ１３１１による画像の分割例を図１５に示す。
【００７３】
図１５は、画像データ１５００を、図示の点線を境界に、分割画像データ１５０１、１５０４、１５０７に３分割した例を示している。点線ブロック１５０２、１５０５、１５０８は、圧縮部１３０３で圧縮処理するサブブロックを示し、それらの水平方向の画素数は同一である。
【００７４】
また、分割画像データ１５０１の右端に位置する点線ブロック１５０３の水平方向の画素数は、分割画像データ１５０１の水平画素数から、点線ブロック１５０３より左側に位置する全サブブロックの画素数の総和を引いた値である。
【００７５】
分割画像データ１５０１の水平方向の画素数をＮとし、符号化処理単位の水平方向の画素数をＳとしたとき、次式の関係を有する。
Ｎ＝Ｓ×ｉ＋ｒ
点線ブロック１５０３は、上記式の端数“ｒ”に相当する部分を表すことになる。なお、ｒは、Ｓより小さい値であり、圧縮部１３０３が有するラインメモリの容量の範囲内の値でもある。
【００７６】
なお、サブブロックの画素数の算出方法は、図１６の圧縮単位決定処理のフロー図を用いて後術する。
【００７７】
点線ブロック１５０５、１５０８及びそれに続く図番を付加してない点線ブロックに示すサブブロックの画素数の考え方は、点線ブロック１５０２と同様である。そして、分割画像データの右端に位置する点線ブロック１５０６、１５０９に示すサブブロックの画素数の考え方は、点線ブロック１５０３と同様である。
【００７８】
図１６に従い、ＣＰＵ１３１１による、分割画像データ１５０１を圧縮部１３０３で圧縮処理する圧縮単位の画素数、つまり、サブブロックの画素数を算出する圧縮単位決定処理のフローを説明する。なお、分割画像データ１５０１で説明するが、分割画像データ１５０４、１５０７も同様に適応される。
【００７９】
Ｓ１６００にて、ＣＰＵ１３１１は、分割画像データ１５０１の点線ブロック１５０２及びそれに続く図番を付加してない点線ブロック（サブブロック）の先頭画素を処理するか判定する。ＣＰＵ１３１１は、先頭画素を処理すると判定した場合、Ｓ１６０１に処理を進める。ＣＰＵ１３１１が、先頭以外の画素を処理すると判定した場合には、圧縮単位決定処理を終了する。
【００８０】
Ｓ１６０１にて、ＣＰＵ１３１１は、水平方向の処理画素位置を取得し、Ｓ１６０２に処理を進める。ＣＰＵ１３１１は、分割画像データ１５０１の水平画素数が予めわかっている。そこで、Ｓ１６０２にてＣＰＵ１３１１は、Ｓ１６０１で取得した画素位置より、分割画像データ１５０１の水平方向の残りの画素数（未符号化画素数でもある）を算出し、Ｓ１６０３へ処理を進める。
【００８１】
Ｓ１６０３にて、ＣＰＵ１３１１は、Ｓ１６０２で算出した残りの画素数と、閾値Ａを比較する。ＣＰＵ１３１１は、算出した画素数が閾値以上であると判定した場合は、処理をＳ１６０４進め、閾値に満たないと判定した場合にはＳ１６０５に処理を進める。
【００８２】
Ｓ１６０５にて、ＣＰＵ１３１１は、圧縮単位の画素数を閾値Ａとし、圧縮部に画素数を通知し、圧縮単位決定処理を終了する。
【００８３】
Ｓ１６０５にて、ＣＰＵ１３１１は、圧縮単位の画素数をＳ１６０１で算出した残りの画素数とし、圧縮部１３０３に画素数を通知し、圧縮単位決定処理を終了する。
【００８４】
次に図１８に従って、分割画像データ１５０１を圧縮した画像データについて、伸長部１３０４で伸長処理する伸長単位の画素数つまり、サブブロックの画素数を算出する伸長単位決定処理を説明する。
【００８５】
なお、分割画像データ１５０１を圧縮した画像データについて説明するが、分割画像データ１５０４、１５０７を圧縮した画像データについても同様に適応される。また、伸長単位決定処理は、圧縮部１３０３で圧縮した圧縮サブブロックのデータサイズがサブブロック内の画素数換算で固定長となるように圧縮される前提の処理となる。例えば、圧縮前の画素が１画素１４ｂｉｔの場合、サブブロックの画素数が３２画素で非圧縮であれば４４８ｂｉｔ、圧縮した場合は３２０ｂｉｔとなり、画素数が８画素で非圧縮であれば１１２ｂｉｔ、圧縮した場合は８０ｂｉｔとなるように圧縮する。つまり、サブブロック内の画素数に応じて圧縮サブブロックのデータサイズを固定長にすることで、データ量から水平の画素位置を把握することができる。
【００８６】
Ｓ１８００にて、ＣＰＵ１３１１は、分割画像データ１５０１を圧縮した画像データにおける点線ブロック（サブブロック）の先頭画素を処理するか判定する。ＣＰＵ１３１１が、点線ブロックの先頭画素が処理対象であると判定した場合、Ｓ１８０１に処理を進める。また、ＣＰＵ１３１１は、先頭以外の画素が処理対象であると判定した場合には、この伸長単位決定処理を終了する。
【００８７】
Ｓ１８０１にて、ＣＰＵ１３１１は、水平方向の処理位置を取得し、処理をＳ１８０２に進める。Ｓ１８０２にて、ＣＰＵ１３１１は、水平方向の処理位置から、水平方向の残りの画素数を算出し、Ｓ１８０３に処理を進める。
【００８８】
Ｓ１８０３にて、ＣＰＵ１３１１は、Ｓ１８０２で算出した残りの画素数と、閾値Ａを比較する。ＣＰＵ１３１１は、算出した画素数が閾値Ａより大きいと判定した場合、処理をＳ１８０４に進める。また、ＣＰＵ１３１１は、算出した画素数が閾値Ａ以下であると判定した場合、Ｓ１８０５に処理を進める。
【００８９】
Ｓ１８０４にて、ＣＰＵ１３１１は、伸長単位の画素数を閾値Ａとし、伸長部１３０４にその画素数を通知し、伸長単位決定処理を終了する。
【００９０】
Ｓ１８０５にて、ＣＰＵ１３１１は、伸長単位の画素数を、Ｓ１８０１で算出した残りの画素数とし、伸長部１３０４に画素数を通知し、伸長単位決定処理を終了する。
【００９１】
以上説明したように、本第４の実施形態によれば、分割画像をサブブロックに分ける時に、分割画像の右端のサブブロックの画素数を異ならせることで、処理性能と圧縮効率の低下を抑制できる。また、分割画像の境界データを圧縮する時に、コピー画素やランダム画素を使用しないで圧縮するので、画像境界の符号量と画像境界以外の符号量とが大きくことなることがなくなり、分割境界と分割境界以外の画質差の影響を抑制することもできる。
【００９２】
以上、第４の実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることは言うまでもない。
【００９３】
［第５の実施形態］
次に、第５の実施形態を説明する。本第５の実施形態では、上述した第４の実施形態と異なる部分のみを説明し、同一の部分については、同一の符号を付すなどして詳細な説明を省略する。
【００９４】
図１９は、第５の実施形態における画像処理部１３００の構成図である。図示の如く、画像処理コア部１４００、画素圧縮単位決定部１４０１、及び、ラインバッファ１９００を含み、圧縮部１３０３と接続される。ラインバッファ１９００は、ＳＲＡＭなどで構成され、水平方向に２ラインの画素データを格納する、ダブルバッファ構成となっている。画素圧縮単位決定部１４０１は、１ラインの画像データをダブルバッファの一方に格納する処理と、他方から圧縮部１３０３が圧縮処理する圧縮単位の画素数のサブブロックの画素数を算出し、圧縮部１３０３へ出力する処理を行う。詳細は、図２０、２１を用いて説明する。
【００９５】
なお、画素圧縮単位決定部１４０１とラインバッファ１９００は、圧縮部１３０３の中に持つ構成としても良い。圧縮部１３０３は、画素圧縮単位決定部１４０１から通知されるサブブロックの画素数に応じてデータ圧縮処理を行い、サブブロック圧縮後のデータサイズが固定長となるように圧縮を行う。つまり、サブブロック内の画素数が異なっても、圧縮後のデータサイズは固定となる。なお、サブブロック圧縮後のデータサイズは、ＣＰＵ１３１１より設定することが可能である。また圧縮時、ヘッダにサブブロック内の画素数を付加する。
【００９６】
図２０は、画像データ２０００を、点線境界で、分割画像データ２００１、２００４、２００７に３分割した例を示している。図示の点線ブロック２００２、２００３、２００５、２００６、２００８、２００９及び図番を付加していない点線ブロックは、圧縮部１３０３で圧縮処理するサブブロックを示すものである。点線ブロック２００２とそれに続く図番を付加してない点線ブロックと、右端に位置する点線ブロック２００３に示すサブブロックの画素数は、それぞれ異なる。ただし、分割画像データ２００１内の画素データによっては、サブブロックの画素数は、同じ画素数となることもある。つまり、サブブロックの画素数が分割画像データ２００１の位置によって可変となることを意味している。画素数が可変となるサブブロックの画素数の算出方法は、図２１の圧縮単位決定処理のフロー図を用いて後術する。点線ブロック２００５、２００６、２００８、２００９に示すサブブロックの画素数の考え方は、点線ブロック２００２と同様である。
【００９７】
図２１を用いて、ＣＰＵ１３１１による、圧縮部１３０３の圧縮処理単位の画素数、つまり、サブブロックの画素数を算出する処理を説明する。なお、分割画像データ２００１を例にして説明するが、分割画像データ２００４、２００７も同様に適応される。
【００９８】
Ｓ２１００にて、ＣＰＵ１３１１は、隣接画素間と差分αｎ（ｎは１以上の整数でサブブロック数Ｎ−１までの値となる）を取り、ラインバッファ１９００の片側Ａ（Ｂ）に入力画素を保持し、Ｓ２１０１へ処理を進める。また、ラインバッファ１９００の片側Ａを奇数行で使用する場合、ラインバッファ１９００の他方側Ｂは偶数行で使用することになる。
【００９９】
Ｓ２１０１にて、ＣＰＵ１３１１は、差分αｎと閾値Ｂを比較する。ＣＰＵ１３１１は、差分αｎが閾値Ｂより大きいと判断した場合、Ｓ２１０２へ処理を進める。また、ＣＰＵ１３１１は、差分αｎが閾値Ｂ以下であると判定した場合には、Ｓ２１０７に処理を進める。
【０１００】
Ｓ２１０２において、ＣＰＵ１３１１は、差分αｎとサブブロックの画素数Ｈｎ（ｎは１以上の整数でサブブロック数Ｎまでの値となる）を保持し、サブブロック数Ｎをカウントアップ（計数）し、Ｓ２０１３へ処理を進める。
【０１０１】
Ｓ２１０３にて、ＣＰＵ１３１１は、分割画像データ２００１の１ライン分の画素を処理したかを判定する。ＣＰＵ１３１１は、１ライン分の画像処理を終えたと判定した場合、処理をＳ２１０４へ進める。また、ＣＰＵ１３１１は、１ライン分の処理が未終了であると判定した場合、Ｓ２１０７に処理を進める。
【０１０２】
Ｓ２０１４にて、ＣＰＵ１３１１は、サブブロック数Ｎと閾値Ｃを比較し、サブブロック数Ｎが閾値Ｃより大きいか否かを判定する。ＣＰＵ１３１１は、サブブロック数Ｎが閾値Ｃより大きいと判定した場合、Ｓ２１０５に処理を進める。また、ＣＰＵ１３１１は、サブブロック数Ｎが閾値Ｃ以下であると判定した場合、処理をＳ２１０６に進める。
【０１０３】
Ｓ２１０５にて、ＣＰＵ１３１１は、サブブロック数Ｎが閾値Ｃとなるように、差分αｎの値が小さい順にサブブロックを結合して、サブブロック数Ｎを変更する。そして、ＣＰＵ１３１１は、処理をＳ２１０６に進める。
【０１０４】
Ｓ２１０６にて、ＣＰＵ１３１１は、サブブロック数Ｎを初期化する。そして、ＣＰＵ１３１１は、処理をＳ２１０７に進める。
【０１０５】
Ｓ２１０７にて、ＣＰＵ１３１１は、ラインバッファ１９００の片面Ｂ（Ａ）、つまり、Ｓ２１００でデータを溜めていないラインバッファ１９００の片面に出力するデータがあるかないかを判定する。ＣＰＵ１３１１は、出力すべきデータがあると判断した場合には、Ｓ２１０８に処理を進める。また、出力すべきデータがないと判断した場合には、圧縮単位決定処理を終了する。
【０１０６】
Ｓ２１０８にて、ＣＰＵ１３１１は、ラインバッファ１９００の片面Ｂ（Ａ）に溜めてある画素を圧縮部に出力し、かつサブブロックの先頭になったら、サブブロックの画素数Ｈｎを通知し、圧縮単位決定処理を終了する。
【０１０７】
次に図２２を用いて、分割画像データ２００１の圧縮画像データについて、伸長部１３０４で伸長処理する伸長単位の画素数、つまり、サブブロックの画素数を算出する伸長単位決定処理のフローを説明する。なお、分割画像データ２００１の圧縮画像データについて説明するが、分割画像データ２００４、２００７の圧縮画像データについても同様に適応される。
【０１０８】
Ｓ２２００にて、ＣＰＵ１３１１は、サブブロック圧縮画像データの先頭か否かを判別する。ＣＰＵ１３１１が、先頭の画素であると判定した場合、Ｓ２２０１に処理を進める。ＣＰＵ１３１１が、先頭の画素ではないと判定した場合には、この伸長単位決定処理を終了する。サブブロック圧縮画像データの先頭かどうかの判定は、分割画像データ２００１の先頭データであるかどうかで判定する。あるいは、処理したデータのサイズを累積加算した処理済データサイズと、予めＣＰＵ１３１１で設定したサブブロック圧縮後のデータサイズと等しくなった次のデータかどうかで判定し、先頭データであった場合は、処理済データサイズは初期化する。つまり、圧縮前の分割画像データ２００１で説明すると、点線ブロック２００２とそれに続く図番を付加してない点線ブロックと、点線ブロック２００３に示すサブブロックの先頭かどうかを判定する。
【０１０９】
ステップ２２０１にて、ＣＰＵ１３１１は、サブブロック圧縮画像データのヘッダからサブブロック内の画素数を取得し、その画素数を伸長部１３０４に通知して、伸長単位決定処理部を終了する。
【０１１０】
以上説明したように、第５の実施形態によれば、分割画像データの１ライン中のサブブロック数が閾値以下となるように、圧縮するサブブロック内の画素数を可変にすることで、処理性能と圧縮効率の低下を抑制できる。また、分割画像の境界データを圧縮する時に、コピー画素やランダム画素を使用しないで圧縮する。従って、画像境界の符号量と画像境界以外の符号量とが大きくことなることがなくなるため、分割境界と分割境界以外の画質差の影響を抑制できる。さらには、隣接画素の差分からサブブロック内の画素数を決めることで、１画素あたりに割り当てる符号量が均一化されるため、圧縮による画像劣化を抑制できる。
【０１１１】
以上、第５の実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることは言うまでもない。
【０１１２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１３】
１００…画像処理部、１０１…圧縮部、１０２…データ転送部、１０３…データバス、１０４…制御バス、１０５…メモリ制御部、１０６…メモリ、１０７…不揮発性メモリ制御部、１０８…不揮発性メモリ、１０９…ＣＰＵ
【図１】
2018137540.tif 000003
【図２】
2018137540.tif 000004
【図３】
2018137540.tif 000005
【図４】
2018137540.tif 000006
【図５】
2018137540.tif 000007
【図６】
2018137540.tif 000008
【図７】
2018137540.tif 000009
【図８】
2018137540.tif 000010
【図９】
2018137540.tif 000011
【図１０】
2018137540.tif 000012
【図１１】
2018137540.tif 000013
【図１２】
2018137540.tif 000014
【図１３】
2018137540.tif 000015
【図１４】
2018137540.tif 000016
【図１５】
2018137540.tif 000017
【図１６】
2018137540.tif 000018
【図１７】
2018137540.tif 000019
【図１８】
2018137540.tif 000020
【図１９】
2018137540.tif 000021
【図２０】
2018137540.tif 000022
【図２１】
2018137540.tif 000023
【図２２】
2018137540.tif 000024