(57)【要約】【課題】データ変換を精度良く行い、かつメモリ使用領域の削減を可能にする。【解決手段】データ変換装置は、入力データを、当該入力データよりもビット数が少なく、かつ入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の出力データに変換される入力データのうち、最大値を有する入力データおよび最小値を有する入力データのいずれか一方が比較用データとして出力データ毎に格納されるメモリと、メモリから選出された比較用データと、変換する入力データとを比較する比較部と、比較部の比較結果に基づき、次に比較部により比較すべき他の比較用データをメモリから選出する選出部と、比較部の比較結果に基づき、出力データを導出する出力データ導出部とを備える。【選択図】図１２
2007194960.tif 000002
【特許請求の範囲】
【請求項１】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）を備えたことを特徴とするデータ変換装置。
【請求項２】
前記入力データは、画像を構成する各画素のデータであることを特徴とする請求項１に記載のデータ変換装置。
【請求項３】
前記入力データは、ＲＧＢ画像データのＲＧＢ各色のデータであることを特徴とする請求項１または２に記載のデータ変換装置。
【請求項４】
前記出力データは、前記画像に対して所定の画像処理を施した後のデータであることを特徴とする請求項１〜３のいずれか１項に記載のデータ変換装置。
【請求項５】
前記メモリがＳＲＡＭにより構成されていることを特徴とする請求項１〜４のいずれか１項に記載のデータ変換装置。
【請求項６】
前記メモリを複数備えたことを特徴とする請求項１〜５のいずれか１項に記載のデータ変換装置。
【請求項７】
前記比較部を複数備え、
前記選出部は、複数の前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出することを特徴とする請求項１〜６のいずれか１項に記載のデータ変換装置。
【請求項８】
前記出力データ導出部は、前記比較部の比較結果に基づき、前記出力データを所定のビット数ずつ導出することを特徴とする請求項１〜７のいずれか１項に記載のデータ変換装置。
【請求項９】
前記出力データ導出部により導出された前記出力データをラッチするラッチ回路を備えたことを特徴とする請求項１〜８のいずれか１項に記載のデータ変換装置。
【請求項１０】
前記入力データを記憶するレジスタと、
前記レジスタに記憶された前記入力データと、次に変換される入力データとを比較する比較部とを備え、
前記比較部により前記レジスタに記憶された前記入力データと、次に変換される入力データとが同一であると判別されたときに、前記ラッチ回路によりラッチされた前記出力データを出力データとして出力することを特徴とする請求項９に記載のデータ変換装置。
【請求項１１】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）を備え、
（Ｆ）前記入力データは、画像を構成する各画素のデータであり、
（Ｇ）前記入力データは、ＲＧＢ画像データのＲＧＢ各色のデータであり、
（Ｈ）前記出力データは、前記画像に対して所定の画像処理を施した後のデータであり、
（Ｉ）前記メモリがＳＲＡＭにより構成され、
（Ｊ）前記メモリを複数備え、
（Ｋ）前記比較部を複数備え、前記選出部は、複数の前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出し、
（Ｌ）前記出力データ導出部は、前記比較部の比較結果に基づき、前記出力データを所定のビット数ずつ導出し、
（Ｍ）前記出力データ導出部により導出された前記出力データをラッチするラッチ回路を備え、
（Ｎ）前記入力データを記憶するレジスタと、前記レジスタに記憶された前記入力データと、次に変換される入力データとを比較する比較部とを備え、前記比較部により前記レジスタに記憶された前記入力データと、次に変換される入力データとが同一であると判別されたときに、前記ラッチ回路によりラッチされた前記出力データを出力データとして出力することを特徴とするデータ変換装置。
【請求項１２】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎にメモリに格納するステップと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較するステップと、
（Ｃ）比較した結果に基づき、次に比較すべき他の前記比較用データを前記メモリから選出するステップと、
（Ｄ）比較した結果に基づき、出力データを導出するステップと、
（Ｅ）を有することを特徴とするデータ変換方法。
【請求項１３】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）前記出力データに基づき画像を印刷する印刷部と、
（Ｆ）を備えたことを特徴とする印刷装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力データをこれよりもビット数の少ない出力データに変換するデータ変換装置、データ変換方法、および、印刷装置に関する。
【背景技術】
【０００２】
近年、スキャナ機能やプリンタ機能（印刷機能）、ローカルコピー機能などを備えた複合機とも呼ばれる複合装置が知られている。この複合装置は、原稿から画像を読み取るスキャナ部と、媒体に対して画像を印刷するプリンタ部（印刷部）とを備えている。スキャナ機能では、スキャナ部により原稿から画像を読み取って画像データを生成してパソコンなどの外部のコンピュータに向けて出力する。また、プリント機能では、パソコンなどの外部のコンピュータから送られてきた印刷データに基づき印刷用紙等の各種媒体にプリンタ部により印刷をする。また、ローカルコピー機能では、スキャナ部により原稿から画像を読み取り、そして読み取った画像をプリンタ部により媒体に印刷して複写する。
【０００３】
このような複合装置にあっては、最近のデジタルカメラの著しい普及に対応するために、デジタルカメラで使用される各種メモリカード、例えば、コンパクトフラッシュやスマートメディア、メモリスティック、ＳＤメモリカード、ｘＤピクチャーカードなどといった各種フラッシュメモリなどから直接データを読み込むためにカードリーダー部が設けられている。複合装置には、このカードリーダー部にセットされたメモリカードに記録された写真データを読み出して印刷をする機能が設けられている。
【０００４】
ところで、デジタルカメラ等により撮影された画像は、各種メモリカードに、一般にＪＰＥＧ（Joint Photographic Experts Group）と呼ばれる形式の画像データにて記録される。このようなＪＰＥＧ形式にて記録された画像を印刷する場合には、このＪＰＥＧ形式の画像をＲＧＢ画像データに変換して、当該ＲＧＢ画像データに対して各種画像処理を実行してから印刷処理を実行する必要がある。具体的には、例えば、ＪＰＥＧ画像データから変換されたＲＧＢ画像データに対してガンマ補正処理や逆ガンマ補正処理等の各種画像処理を施す必要があった。このような画像処理を実行する場合、一般的にデータ変換用テーブルが用いられていた。
【０００５】
しかしながら、特に最近、画像データの高解像度化が進み、各画素の画素データの大きさも大きくなっている。このため、データ変換用テーブルを格納するためのメモリ容量が大幅に必要とするといった問題が発生していた。そこで、従来から、このようなデータ変換用テーブルのメモリ容量を削減するために、様々な方法が提案されている（特許文献１及び２）。
【特許文献１】特開２００４−１１８４３２号公報
【特許文献２】特開平８−１８８２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来より提案されている方法にあっては、入出力データのビット数が増えるほど誤差が大きくなったり、また入出力関係の傾きが急峻になるほど誤差が大きくなるなどの不具合が生じる場合があった（例えば、特許文献１等）。また、入出力関係に平坦な部分がある場合には、ビット数を増やす必要があったり、結果的にデータの削減効果が得られず、したがってメモリ容量の削減を図ることができないなどの問題が発生する場合があった（例えば、特許文献２等）。このようなことから、大きな誤差を発生することなくかつメモリ容量の削減を図ることができるようなデータ変換方法が望まれていた。
【０００７】
本発明は、このような事情に鑑みてなされたものであって、その目的は、入力データから出力データへの変換誤差を小さくすることができ、かつメモリ使用領域の削減を図ることができるようにすることにある。
【課題を解決するための手段】
【０００８】
前記目的を達成するための主たる発明は、
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）を備えたことを特徴とするデータ変換装置である。
【０００９】
本発明の他の特徴は、本明細書及び添付図面の記載により明らかにする。
【発明を実施するための最良の形態】
【００１０】
本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
【００１１】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）を備えたことを特徴とするデータ変換装置。
【００１２】
このようなデータ変換装置にあっては、同一の出力データに変換される入力データのうち、最大値を有する入力データおよび最小値を有する入力データのいずれか一方が比較用データとして出力データ毎にメモリに格納されることで、入力データを出力データに変換するために必要なメモリの容量の削減を図ることができる。
【００１３】
かかるデータ変換装置にあっては、前記入力データは、画像を構成する各画素のデータであっても良い。このように入力データが画像を構成する各画素のデータである場合に、変換に必要なメモリの容量の削減を図ることができる。
【００１４】
また、かかるデータ変換装置にあっては、前記入力データは、ＲＧＢ画像データのＲＧＢ各色のデータであっても良い。このように入力データがＲＧＢ画像データのＲＧＢ各色のデータである場合に、変換に必要なメモリの容量の削減を図ることができる。
【００１５】
また、かかるデータ変換装置にあっては、前記出力データは、前記画像に対して所定の画像処理を施した後のデータであっても良い。このように出力データが、画像に対して所定の画像処理を施した後のデータである場合に、変換に必要なメモリの容量の削減を図ることができる。
【００１６】
また、かかるデータ変換装置にあっては、前記メモリがＳＲＡＭにより構成されていても良い。このようにメモリがＳＲＡＭにより構成されれば、大幅なコストアップを招くことなくかつ高速にデータの変換が可能である。
【００１７】
また、かかるデータ変換装置にあっては、前記メモリを複数備えても良い。このようにメモリを複数備えれば、入力データから出力データを効率よく導出することができる。
【００１８】
また、かかるデータ変換装置にあっては、前記比較部を複数備え、前記選出部は、複数の前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出しても良い。このように比較部を複数備え、複数の比較部の比較結果に基づき他の比較用データをメモリから選出すれば、入力データから出力データを効率よく導出することができる。
【００１９】
また、かかるデータ変換装置にあっては、前記出力データ導出部は、前記比較部の比較結果に基づき、前記出力データを所定のビット数ずつ導出しても良い。このように出力データ導出部が比較部の比較結果に基づき出力データを所定のビット数ずつ導出することで、簡単に出力データを導出することができる。
【００２０】
また、かかるデータ変換装置にあっては、前記出力データ導出部により導出された前記出力データをラッチするラッチ回路を備えても良い。このように出力データ導出部により導出された出力データをラッチするラッチ回路を備えることで、出力データ導出部により導出された出力データを保持することができる。
【００２１】
また、かかるデータ変換装置にあっては、前記入力データを記憶するレジスタと、前記レジスタに記憶された前記入力データと、次に変換される入力データとを比較する比較部とを備え、前記比較部により前記レジスタに記憶された前記入力データと、次に変換される入力データとが同一であると判別されたときに、前記メモリに格納された前記出力データを出力データとして出力しても良い。このようにレジスタに記憶された入力データと、次に変換される入力データとを比較部により比較して、レジスタの入力データと次に変換される入力データとが同一であったときに、ラッチ回路によりラッチされた前記出力データを出力データとして出力することで、入力データが前回と同じ場合に、出力データ導出部が前回導出した出力データを再度利用することができる。これにより、比較部によりメモリから選出された前記比較用データと、変換する入力データとを比較する処理を省くことができる。
【００２２】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）を備え、
（Ｆ）前記入力データは、画像を構成する各画素のデータであり、
（Ｇ）前記入力データは、ＲＧＢ画像データのＲＧＢ各色のデータであり、
（Ｈ）前記出力データは、前記画像に対して所定の画像処理を施した後のデータであり、
（Ｉ）前記メモリがＳＲＡＭにより構成され、
（Ｊ）前記メモリを複数備え、
（Ｋ）前記比較部を複数備え、前記選出部は、複数の前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出し、
（Ｌ）前記出力データ導出部は、前記比較部の比較結果に基づき、前記出力データを所定のビット数ずつ導出し、
（Ｍ）前記出力データ導出部により導出された前記出力データをラッチするラッチ回路を備え、
（Ｎ）前記入力データを記憶するレジスタと、前記レジスタに記憶された前記入力データと、次に変換される入力データとを比較する比較部とを備え、前記比較部により前記レジスタに記憶された前記入力データと、次に変換される入力データとが同一であると判別されたときに、前記メモリに格納された前記出力データを出力データとして出力することを特徴とするデータ変換装置。
【００２３】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎にメモリに格納するステップと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較するステップと、
（Ｃ）比較した結果に基づき、次に比較すべき他の前記比較用データを前記メモリから選出するステップと、
（Ｄ）比較した結果に基づき、出力データを導出するステップと、
（Ｅ）を有することを特徴とするデータ変換方法。
【００２４】
（Ａ）入力データを、当該入力データよりもビット数が少なく、かつ前記入力データに対して単調増加または単調減少の関係にある出力データに変換するために、同一の前記出力データに変換される前記入力データのうち、最大値を有する前記入力データおよび最小値を有する前記入力データのいずれか一方が比較用データとして前記出力データ毎に格納されるメモリと、
（Ｂ）前記メモリから選出された前記比較用データと、変換する入力データとを比較する比較部と、
（Ｃ）前記比較部の比較結果に基づき、次に前記比較部により比較すべき他の前記比較用データを前記メモリから選出する選出部と、
（Ｄ）前記比較部の比較結果に基づき、出力データを導出する出力データ導出部と、
（Ｅ）前記出力データに基づき画像を印刷する印刷部と、
（Ｆ）を備えたことを特徴とする印刷装置。
【００２５】
＝＝＝複合装置の概要＝＝＝
本発明に係る印刷装置等について、印刷部を備えた複合装置を例にして説明する。この複合装置は、原稿から画像を読み取って画像データを生成するスキャナ部（画像読み取り部）と、媒体に対して印刷を施す印刷部とを備えている。
【００２６】
図１〜図６は、複合装置の一例について説明したものである。図１は、複合装置１の外観を示した斜視図である。図２は、複合装置１のスキャナ部１０の概要を説明する斜視図である。図３は、複合装置１のプリンタ部の概要を説明する斜視図である。図４は、複合装置１の内部構成を概略的に説明する説明図である。図５は、複合装置１の操作パネル２を説明する平面図である。図６は、複合装置１のシステム構成例を説明した図である。
【００２７】
この複合装置１は、原稿から画像を読み取って画像データを生成するスキャナ機能と、ホストコンピュータ（図示外）から送られてきた印刷データに基づき印刷用紙等の各種媒体に印刷を施すプリンタ機能と、原稿から読み取った画像を媒体に印刷して複写するローカルコピー機能とを備えている。この複合装置１は、図１に示すように、その上部６に原稿５から画像を読み取るためのスキャナ部１０を備えている。また、この複合装置１は、その下部９に印刷用紙等の媒体Ｓに印刷をするためのプリンタ部３０を備えている。また、この複合装置１の前面部には、操作パネル２と、カードリーダー部２０とが設けられている。
【００２８】
スキャナ部１０は、図２に示すように、原稿５がセットされるガラス板が設けられた原稿台１１と、当該原稿台１１を上方から覆う原稿台カバー１２とを備えている。原稿台カバー１２は、複合装置１の後端部に回動可能に取付けられ、原稿台１１の上面部を開閉するように設けられている。
【００２９】
一方、プリンタ部３０は、図３に示すように、スキャナ部１０を上方に持ち上げることによって、その内部が外部に開放されるように構成されている。つまり、スキャナ部１０は、複合装置１の後部にヒンジ部３４を介して回動自在に装着されている。スキャナ部１０が上方へと持ち上げられると、プリンタ部３０の内部が開放される。プリンタ部３０の内部には、キャリッジ４１などが配置されている。このキャリッジ４１には、インクを吐出するヘッド２１が設けられている。ヘッド２１は、キャリッジ４１とともに移動しながら用紙等の媒体に向けてインクを吐出して印刷を施す。
【００３０】
この他に、プリンタ部３０には、媒体を搬送する搬送部（不図示）が設けられている。この搬送部は、複合装置１の背部に設けられた背部給紙口２２又は複合装置１の前部に設けられた前部給紙口２３にセットされた媒体をプリンタ部３０の内部へと送り込み、そして、ヘッド２１により印刷された媒体を、複合装置１の前部に設けられた排紙トレイ２５を通じて排紙する。
【００３１】
また、複合装置１の下部９の前面の左右には、インクカートリッジカバー２７が設けられている。インクカートリッジ２６の取り付け時又は交換時、ユーザは、このインクカートリッジカバー２７を開き、インクカートリッジ２６を取り付け又は交換する。取り付け後又は交換後にユーザがインクカートリッジカバー２７を閉じることにより、インクカートリッジ２６のセットが完了する。このインクカートリッジ２６には、インクが収容されており、このインクは、キャリッジ４１に搭載されたヘッドに供給される。
【００３２】
カードリーダー部２０は、各種メモリカードを差し込むなどしてセットする部分である。そして、カードリーダー部２０は、セットされた各種メモリカードから、格納された画像データを読み込む。ここで読み込まれた画像データの画像は、プリンタ部３０により印刷することができる。カードリーダー部２０にセットすることができるメモリカードとしては、例えば、コンパクトフラッシュやスマートメディア、メモリスティック、ＳＤメモリカード、ｘＤピクチャーカードなどといった各種フラッシュメモリがある。この他、カードリーダー部２０は、デジタルカメラや携帯電話で使用される各種メモリカードに対応することができる。
【００３３】
＝＝＝スキャナ部１０・プリンタ部３０の内部機構＝＝＝
図４は、スキャナ部１０およびプリンタ部３０の内部機構を示したものである。
【００３４】
＜スキャナ部＞
スキャナ部１０は、同図の上部に示すように、原稿台１１の下側に、スキャナ用キャリッジ６０と、このスキャナ用キャリッジ６０を原稿台１１に対して所定の間隔を保ちつつ図中矢印Ａ方向に沿って平行に移動させる駆動機構６２と、このスキャナ用キャリッジ６０を支持しつつその移動を案内するガイド６４とを備えている。
【００３５】
スキャナ用キャリッジ６０には、原稿台１１を介して原稿５に対し光を照射する光源としての露光ランプ６６と、原稿５により反射された反射光が入射するレンズ７０と、このレンズ７０を通じてスキャナ用キャリッジ６０の内部に取り込まれた反射光を受光するイメージセンサ７２とが設けられている。
【００３６】
本実施形態では、このイメージセンサ７２は、光信号を電気信号に変換するフォトダイオード等の光電変換素子が列状に配置されたリニアＣＣＤセンサにより構成されている。また、このイメージセンサ７２は、密着型イメージセンサ(ＣＩＳイメージセンサ：Contact Image Sensor)となっていて、その幅寸法が読み取り可能な原稿の最大サイズに対応して設定されている。つまり、イメージセンサ７２は、原稿台１１にセットされた原稿５の画像を等倍にて読み取ることができるようになっている。イメージセンサ７２により読み取られた画像に関するデータは、制御部５０に出力される。
【００３７】
また、駆動機構６２は、スキャナ用キャリッジ６０に接続されたタイミングベルト７４と、このタイミングベルト７４が掛け渡された一対のプーリ７５、７６と、一方のプーリ７５を回転駆動する駆動モータ７７とを備えている。駆動モータ７７は、制御部５０からの制御信号によって駆動制御される。
【００３８】
＜プリンタ部＞
一方、プリンタ部３０は、図４の下部に示すように、プリンタ用キャリッジ４１と、このプリンタ用キャリッジ４１に搭載されたヘッド２１と、プリンタ用キャリッジ４１を媒体Ｓに対して所定の間隔を保持しつつ相対的に平行に移動させる駆動機構２４と、媒体Ｓをプリンタ用キャリッジ４１の移動方向と直交する方向に沿って搬送する搬送機構３６とを備えている。
【００３９】
プリンタ用キャリッジ４１には、カートリッジ装着部が設けられ、このカートリッジ装着部には、ブラック（Ｋ）、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）等のインクが収容されたインクカートリッジが装着される。ヘッド２１は、インクカートリッジから供給された各色のインクを媒体Ｓに向けて吐出して当該媒体Ｓ上にドットを形成して、媒体Ｓに画像を印刷する。
【００４０】
駆動機構２４は、プリンタ用キャリッジ４１に接続されたタイミングベルト４５と、このタイミングベルト４５に噛合されたプーリ４４と、このプーリ４４を回転駆動するキャリッジモータ４２（以下、ＣＲモータともいう）と、プリンタ用キャリッジ４１の移動を案内するガイドレール４６と、プリンタ用キャリッジ４１の位置を検出するリニア式エンコーダとしてリニア式エンコーダ符号板５１およびこのリニア式エンコーダ符号板５１を読み取る検出部５２とを備えている。この駆動機構２４は、キャリッジモータ４２を駆動してプーリ４４を介してタイミングベルト４５を回転させる。これにより、プリンタ用キャリッジ４１は、媒体Ｓに対してガイドレール４６に沿って相対的に移動する。キャリッジモータ４２は、制御部５０からの制御信号により駆動制御される。
【００４１】
搬送機構３６は、プラテン１４と、搬送ローラ１７Ａと、当該搬送ローラ１７Ａを回転駆動する搬送モータ１５と、媒体Ｓが所定位置に到達したか否かを検出する紙検知センサ５３と、搬送ローラ１７Ａの回転量を検出するロータリ式エンコーダ５６とを備えている。プラテン１４は、ヘッド２１に対向して配置されている。搬送モータ１５が駆動すると、搬送ローラ１７Ａが回転して、媒体Ｓがプラテン１４上を搬送される。搬送モータ１５は、制御部５０からの制御信号により駆動制御される。
【００４２】
印刷時には、媒体Ｓが搬送ローラ１７Ａにより間欠的に所定の搬送量で搬送され、その間欠的な搬送の合間にプリンタ用キャリッジ４１が、搬送ローラ１７Ａによる搬送方向に対して交差する方向に沿って移動しながら、ヘッド２１から媒体Ｓに向けてインクが吐出されて印刷が施される。
【００４３】
＝＝＝操作パネル＝＝＝
図５は、操作パネル２について詳しく説明した図である。操作パネル２は、液晶ディスプレイ８０と、各種ボタンを有する。ここで設けられているボタンの種類としては、例えば、電源ボタン８２、設定ボタン８３、ストップボタン８４、モード選択ボタン８５、カーソル操作ボタン群８６、スタートボタン８７等がある。電源ボタン８２は、複合装置１の電源をオン／オフするためのボタンである。設定ボタン８３は、ヘッドクリーニング、ノズルチェック、インク残量等の設定や確認を行うためのボタンである。ストップボタン８４は、動作中の機能を中止するためのボタンである。モード選択ボタン８５は、複合装置１の機能の選択を行うためのボタンである。カーソル操作ボタン群８６は、液晶ディスプレイ８０に表示される項目の設定等を行うためのボタンである。スタートボタン８７は、カラーボタン８７Ｃ及びモノクロボタン８７Ｂを有し、カラー印刷又はモノクロ印刷の開始に用いられる。
【００４４】
＝＝＝制御部の構成＝＝＝
次にこの複合装置１の内部に搭載された制御部５０の構成について説明する。図６は、この制御部５０の構成の一例を説明するためのブロック構成図である。
【００４５】
この制御部５０は、複合装置１全体の制御を司るＣＰＵ９０と、制御のためのプログラムを記憶したメモリ９２と、スキャナ機能、プリント機能、ローカルコピー機能の各制御を司る制御ＡＳＩＣ９４と、ＣＰＵ９０から直接データを読み書き可能なＳＤＲＡＭ９６と、カードＡＳＩＣ９２とを備えている。これらＣＰＵ９０と、メモリ９２と、制御ＡＳＩＣ９４と、ＳＤＲＡＭ９６と、カードＡＳＩＣ９３とは、ＣＰＵバス９８により接続されている。ＳＤＲＡＭ９６には、イメージバッファ１３２（イメージバッファ１３３、１３４）が設けられている。
【００４６】
制御ＡＳＩＣ９４には、ＳＤＲＡＭ１０２と、このＳＤＲＡＭ１０２を制御するためのＳＤＲＡＭコントローラ１０３とが設けられている。また、カードＡＳＩＣ９３には、カードインターフェイス９５が接続されている。
【００４７】
制御ＡＳＩＣ９４は、スキャナコントロールユニット１０４と、リサイズユニット１０６と、２値化処理ユニット１０８と、インターレース処理ユニット１１０と、イメージバッファユニット１１２と、バスコントロールユニット１１４と、ヘッドコントロールユニット１１６と、外部のホストコンピュータ１４０との入出力手段としてのＵＳＢインターフェイス１１８とを備えている。さらに、本実施形態では、制御ＡＳＩＣ９４は、ＪＰＥＧデコーダユニット１４２と、ピクセル化ユニット１４４と、ＰＩＭユニット１４６とを備えている。これらスキャナコントロールユニット１０４と、リサイズユニット１０６と、２値化処理ユニット１０８と、インターレース処理ユニット１１０と、イメージバッファユニット１１２と、バスコントロールユニット１１４と、ヘッドコントロールユニット１１６と、ＪＰＥＧデコーダユニット１４２と、ピクセル化ユニット１４４と、ＰＩＭユニット１４６とはそれぞれローカルバス１２８に接続されている。
【００４８】
また、制御ＡＳＩＣ９４に接続されたＳＤＲＡＭ１０２には、ラインバッファ１２０と、リサイズバッファ１２２と、ルックアップテーブル（ＬＵＴ）１３６と、インターレースバッファ１２４と、イメージバッファ１２６、１２７とがそれぞれ設けられている。この他に、本実施形態では、ＳＤＲＡＭ１０２には、ＪＰＥＧデータが格納されるＪＰＥＧバッファ１４８と、ガンマ補正用テーブル１５０と、ＲＧＢデータバッファ１５２とが設けられている。なお、このガンマ補正用テーブル１５０は、「データ変換用テーブル」に相当する。
【００４９】
スキャナコントロールユニット１０４は、スキャナ部１０に設けられた露光ランプ６６やイメージセンサ７２、駆動モータ７７等を制御する。そして、スキャナコントロールユニット１０４は、スキャナ部１０から画像データを読み込んで、その画像データをＳＤＲＡＭ１０２上のラインバッファ１２０に格納してライン間補正を実行する。このようにして読み込んだ画像データに対して各種処理を施した後、スキャナコントロールユニット１０４は、読み込んだ画像データを送出する。
【００５０】
リサイズユニット１０６は、所定のサイズの画像データを受け取った後、その画像データを一旦ＳＤＲＡＭ１０２上のリサイズバッファ１２２に格納してから、リサイズバッファ１２２に格納した画像データに対してサイズを変更する処理、即ちリサイズ処理を実行する。その後、リサイズユニット１０６は、サイズ変更された画像データを送出する。
【００５１】
２値化処理ユニット１０８は、送出された多階調のＲＧＢデータをＣＭＹＫの２値データ（又は２ビットデータ）に変換する。この際に、２値化処理ユニット１０８は、ＳＤＲＡＭ１０２上のルックアップテーブル（ＬＵＴ）１３６を参照しながら、多階調のＲＧＢデータをＣＭＹＫの２値データ（又は２ビットデータ）に変換する。その変換後、２値化処理ユニット１０８は、その変換により生成されたＣＭＹＫの２値データ（又は２ビットデータ）をインターレース処理ユニット１１０に送出する。
【００５２】
インターレース処理ユニット１１０は、２値化処理ユニット１０８から送られてきたＣＭＹＫの２値データ（又は２ビットデータ）を、ＳＤＲＡＭ１０２のインターレースバッファ１２４に格納する。そして、インターレース処理ユニット１１０は、インターレースバッファ１２４に格納されたＣＭＹＫの２値データ（又は２ビットデータ）を所定のサイズ毎に読み出して、ノズル配列に対応させるべく並び替えてイメージバッファユニット１１２に送出する。
【００５３】
イメージバッファユニット１１２では、インターレース処理ユニット１１０から送出されたデータから、プリンタ用のキャリッジ４１の移動毎の各ノズルにインクを吐出させるためのヘッド駆動データを生成する。ここで、イメージバッファユニット１１２は、ＳＤＲＡＭ１０２上に設けられたイメージバッファ１２６、１２７にヘッド駆動データを格納する。イメージバッファ１２６、１２７には、それぞれプリンタ用のキャリッジ４１が１回移動する毎のヘッド駆動データが格納される。
【００５４】
イメージバッファ１２６、１２７に格納されたヘッド駆動データは、バスコントロールユニット１１４を介して、ＣＰＵにより読み出される。そして、ＣＰＵ９０は、イメージバッファ１２６、１２７から読み出したヘッド駆動データをヘッドコントロールユニット１１６に送出する。ヘッドコントロールユニット１１６は、ＣＰＵ９０により送られてきたヘッド駆動データに基づきヘッド２１を駆動して、ヘッド２１の各ノズルからインクを吐出させる。
【００５５】
一方、ＳＤＲＡＭコントローラ１０３は、ＳＤＲＡＭ１０２を制御するとともに、各ユニット１０４、１０６、１０８、１１０、１１２、１１４，１１６、１１９からＳＤＲＡＭ１０２に対するアクセスを管理する。すなわち、ＳＤＲＡＭコントローラ１０３は、各ユニット１０４、１０６、１０８、１１０、１１２、１１４，１１６、１１９と、ＳＤＲＡＭ１０２との間で、アクセスをスムーズに行わせる役割を果たしている。ＣＰＵ９０（バスコントロールユニット１１４）や各ユニット１０４、１０６、１０８、１１０、１１２、１１６、１１９がＳＤＲＡＭ１０２にアクセスをする場合には、必ずＳＤＲＡＭコントローラ１０３にリクエストを発する。
【００５６】
バスコントロールユニット１１４は、制御ＡＳＩＣ９４に接続されたＳＤＲＡＭ１０２へのＣＰＵ９０からのアクセスを可能にしている。すなわち、バスコントロールユニット１１４は、ＣＰＵ９０がＳＤＲＡＭ１０２にデータを書き込むデータ書き込み処理や、またＳＤＲＡＭ１０２からデータを読み込むデータ読み込み処理を可能にしている。ＣＰＵ９０とＳＤＲＡＭ１０２との間のやり取りは、全てバスコントロールユニット１１４を介して行われている。
【００５７】
ＣＰＵ９０は、ＣＰＵバス９８を経由してバスコントロールユニット１１４を介してＳＤＲＡＭ１０２にアクセスする。具体的には、ＣＰＵ９０は、ＳＤＲＡＭ１０２に対してデータを書き込むデータ書き込み処理を行ったり、またＳＤＲＡＭ１０２からデータを読み込むデータ読み込み処理を行ったりする。
【００５８】
カードＡＳＩＣ９３は、カードリーダー部２０にセットされた各種メモリカードから、当該メモリカードに格納された画像データを読み込む処理を行う。カードＡＳＩＣ９３は、カードインターフェイス９５を介してカードリーダー部２０にセットされた各種メモリカードから画像データを読み込む。なお、カードＡＳＩＣ９２は、カードリーダー部２０にセットされたメモリカードに、カードインターフェイス９５を介してデータを書き込むことも可能である。
【００５９】
また、ＪＰＥＧデコーダユニット１４２は、カードリーダー部２０にセットされた各種メモリカードから読み出されたＪＰＥＧ形式の画像データをデコードする機能を有する。ＪＰＥＧデコーダユニット１４２は、ＳＤＲＡＭ１４８のＪＰＥＧバッファ１４８に一時的に格納されたＪＰＥＧ形式の画像データを読み出してデコードする。ＪＰＥＧデコーダユニット１４２は、このデコードによってＪＰＥＧ形式の画像データからＹＵＶ色空間により表現される画像データ（以下、ＹＵＶ画像データともいう）を取得する。このＹＵＶ色空間とは、Ｙ（輝度）と、Ｕ（色差：Ｃｂ）と、Ｖ（色差：Ｃｒ）とにより表現される色空間である。ＪＰＥＧデコーダユニット１４２は、ＪＰＥＧ形式の画像データをデコードして得られたＹＵＶ画像データ（ＹＵＶデータ）をピクセル化ユニット１４４に送出する。
【００６０】
一方、ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２によりデコードされて出力されたＹＵＶ画像データから１画素ずつ切り出して１画素分のＹＵＶデータとして出力する。ここで、ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２によりデコードされて出力されたＹＵＶ画像データに対して間引き処理を実行しても良い。この間引き処理とは、ＪＰＥＧデコーダユニット１４２から送られてきたＹＵＶ画像データをこれよりもサイズの小さなＹＵＶ画像データに変換する処理のことである。ここで、ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２から送られてきたＹＵＶ画像データを１画素ずつ切り出しながら、一部の画素のデータを削減したり、また複数の画素のデータを１画素分のデータに置き換えるなどして、サイズの小さなＹＵＶ画像データに変換する。ピクセル化ユニット１４４により１画素ずつ切り出されて出力されたＹＵＶデータは、ピクセル化ユニット１４４からＰＩＭユニット１４６へと出力される。
【００６１】
ＰＩＭユニット１４６は、このようにしてピクセル化ユニット１４４によりピクセル化されたＹＵＶデータをＲＧＢ色空間により表現されたＲＧＢデータに変換する。なお、ＲＧＢ色空間とは、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の３色により表現される色空間のことである。さらに、ＰＩＭユニット１４６は、ＹＵＶデータから変換して得られたＲＧＢデータに対してガンマ補正処理を施す。ここで、ＰＩＭユニット１４６は、ＳＤＲＡＭ１５０に格納されたガンマ補正用テーブル１５０を参照しながらガンマ補正処理を実施する。この他に、ＰＩＭユニット１４６は、ガンマ補正処理以外の他の画像処理を施しても良い。このような各種画像処理を施すことによって、ＰＩＭユニット１４６は、ＹＵＶデータを変換して得られたＲＧＢデータを印刷処理に適した画像データに変換する。ＰＩＭユニット１４６は、ＹＵＶ画像データを変換して得られたＲＧＢ画像データをＳＤＲＡＭ１０２のＲＧＢデータバッファ１５２に一旦格納した後、印刷処理を行うユニット、例えば、２値化処理ユニット１０８等へと送出する。
【００６２】
＝＝＝制御部５０内のデータの流れ＝＝＝
＜スキャナ機能時について＞
スキャナ機能時には、ＵＳＢインターフェイス１１８に接続されたホストコンピュータ１４０から、スキャナ部１０による画像読み取り指令信号と、読み取り解像度、読み取り領域等の読み取り情報データとが制御部５０に送信される。制御部５０では、画像読み取り指令信号と読み取り情報データとに基づいて、スキャナコントロールユニット１０４が制御され、スキャナ部１０による原稿５の読み取りが開始される。このとき、スキャナコントロールユニット１０４は、スキャナ部１０の露光ランプ６６やイメージセンサ７２、駆動機構６２等を駆動して順次画像データとして読み込む。そして、スキャナコントロールユニット１０４は、読み込んだ画像データをＳＤＲＡＭ１０２のラインバッファ１２０に一旦格納する。そして、スキャナコントロールユニット１０４は、ラインバッファ１２０から画像データを順次読み出して、読み出した画像データに対してライン間補正処理等を施したり、またシェーディング補正を実行したりする。このようにして読み込んだ画像データに対して各種処理を施した後、スキャナコントロールユニット１０４は、読み込んだ画像データをＵＳＢインターフェイス１１８に出力する。そして、画像データは、その後、ＵＳＢインターフェイス１１８からホストコンピュータ１４０へと送信される。
【００６３】
＜プリンタ機能時について＞
プリンタ機能時には、ホストコンピュータ１４０のプリンタドライバが画像データをヘッド駆動データに変換する。ホストコンピュータ１４０により変換されて生成されたヘッド駆動データは、ホストコンピュータ１４０からＵＳＢインターフェイス１１８へと送られる。ＵＳＢインターフェイス１１８は、ホストコンピュータ１４０から送られてきたヘッド駆動データを受信する。そして、ＵＳＢインターフェイス１１８は、受信したヘッド駆動データをＣＰＵ９０へと送信する。
【００６４】
ＣＰＵ９０は、ＵＳＢインターフェイス１１８が受信したヘッド駆動データをＳＤＲＡＭ９６のイメージバッファ１３２に格納する。イメージバッファ１３２は、２つに分けられたメモリ領域（イメージバッファ１３３、１３４）を備えている。各イメージバッファ１３３、１３４は、プリンタ用のキャリッジ４１の１回の移動により印刷するためのヘッド駆動データを記憶することができる容量を有する。そして、一方のイメージバッファ１３３に１回の移動分のデータが書き込まれると、ヘッドコントロールユニット１１６に転送される。このとき、一方のイメージバッファ１３３のヘッド駆動データがヘッドコントロールユニット１１６に転送されると、他方のイメージバッファ１３４には、次の移動の際に印刷するためのヘッド駆動データが記憶される。そして、他方のイメージバッファ１３４に１回の移動分のデータが書き込まれると、ヘッドコントロールユニット１１６に転送され、一方のイメージバッファ１３３にイメージデータが書き込まれる。このように、２つのイメージバッファ１３３，１３４を用いて、ヘッド駆動データの書き込み、読み出しを交互に行いながらヘッドコントロールユニット１１６によりヘッド２１が駆動されて印刷が実行される。
【００６５】
＜ローカルコピー機能時について＞
ローカルコピー機能時には、操作パネル２上のカラーボタン８７Ｃまたはモノクロボタン８７Ｂが操作されるなどしてローカルコピーが実行されると、スキャナコントロールユニット１０４が制御され、スキャナ部１０による原稿５の読み取りが開始される。このとき、スキャナコントロールユニット１０４は、スキャナ部１０の露光ランプ６６やイメージセンサ７２、駆動機構６２等を駆動して順次画像データとして読み込む。そして、スキャナコントロールユニット１０４は、読み込んだ画像データをＳＤＲＡＭ１０２のラインバッファ１２０に一旦格納する。そして、スキャナコントロールユニット１０４は、ラインバッファ１２０から画像データを順次読み出して、読み出した画像データに対してライン間補正処理やシェーディング補正等を施す。このようにして読み込んだ画像データに対して各種処理を施した後、スキャナコントロールユニット１０４は、読み込んだ画像データをＲＧＢデータとして２値化処理ユニット１０８へと送出する。
【００６６】
２値化処理ユニット１０８は、スキャナコントロールユニット１０４から送られてきたＲＧＢデータを、ＳＤＲＡＭ１０２上のルックアップテーブル（ＬＵＴ）１３６を参照しながら、ＣＭＹＫの色毎の２値データ（又は２ビットデータ）に変換する。そして、２値化処理ユニット１０８は、この変換により生成したＣＭＹＫの２値データをインターレース処理ユニット１１０に送出する。
【００６７】
インターレース処理ユニット１１０は、２値化処理ユニット１０８から送られてきたＣＭＹＫの２値データ（又は２ビットデータ）を、ＳＤＲＡＭ１０２のインターレースバッファ１２４に格納する。そして、インターレース処理ユニット１１０は、インターレースバッファ１２４に格納されたＣＭＹＫの２値データ（又は２ビットデータ）をインターレースバッファ１２４から所定のサイズ毎に順次読み出して、ノズル配列に対応させるべく並び替えてイメージバッファユニット１１２に送出する。
【００６８】
イメージバッファユニット１１２は、インターレース処理ユニット１１０から送られてきたデータから、プリンタ用のキャリッジ４１の移動毎の各ノズルにインクを吐出させるためのヘッド駆動データを生成する。ここで、イメージバッファユニット１１２は、ＳＤＲＡＭ１０２上に設けられたイメージバッファ１２６、１２７にヘッド駆動データを格納する。イメージバッファ１２６、１２７には、それぞれプリンタ用のキャリッジ４１が１回移動する毎のヘッド駆動データが格納される。
【００６９】
イメージバッファ１２６、１２７に格納されたヘッド駆動データは、バスコントロールユニット１１４を介してＣＰＵ９０により順次読み出される。ここで、ＣＰＵ９０は、イメージバッファ１２６、１２７からヘッド駆動データを交互に読み込む。ＣＰＵ９０により読み込まれたヘッド駆動データは、ヘッドコントロールユニット１１６に転送される。そして、ヘッドコントロールユニット１１６は、送られてきたヘッド駆動データに基づき、ヘッド２１を駆動して、ヘッド２１の各ノズルからインクを吐出させる。
【００７０】
＜メモリカード印刷時＞
操作パネル２上のモード選択ボタン８５が操作されてモードが選択され、スタートボタン８７が操作されると、カードリーダー部２０にセットされたメモリカードに格納された画像データについて印刷処理が行われる。ここでは、まず、カードＡＳＩＣによりカードリーダー部２０にセットされたメモリカードから当該メモリカードに格納された画像データがカードインターフェイス９５を介してカードＡＳＩＣ９２へと読み込まれる。ここで、メモリカードに格納された画像データとしては、ＪＰＥＧ形式やビットマップ形式等の各種形式により記録された画像データが含まれる。
【００７１】
カードＡＳＩＣ９２に読み込まれた画像データは、カードＡＳＩＣ９２からＣＰＵ９０へと送られる。ＣＰＵ９０は、カードＡＳＩＣ９２から送られてきた画像データがＪＰＥＧ形式の画像データであった場合には、その画像データをバスコントロールユニット１１４を介して制御ＡＳＩＣ９４側のＳＤＲＡＭ１０２のＪＰＥＧバッファ１４８に格納する。一方、カードＡＳＩＣ９２から送られてきた画像データがＪＰＥＧ形式以外の他の形式の画像データであった場合には、ＣＰＵ９０は、カードＡＳＩＣ９２から送られてきた画像データに対して各種処理を施す。
【００７２】
ＪＰＥＧデコーダユニット１４２は、ＳＤＲＡＭ１０２のＪＰＥＧバッファ１４８からこれに格納された画像データを読み込む。そして、ＪＰＥＧデコーダユニット１４２は、読み込んだＪＰＥＧ形式の画像データをデコードする。これにより、ＪＰＥＧデコーダユニット１４２は、ＹＵＶ画像データを取得する。そして、ＰＥＧデコーダユニット１４２は、取得したＹＵＶ画像データをピクセル化ユニット１４４へと出力する。
【００７３】
ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２によりデコードされて生成されたＹＵＶ画像データから１画素ずつ切り出して１画素分のＹＵＶデータとして出力する。ここで、ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２によりデコードされて出力されたＹＵＶ画像データに対して間引き処理を実行しても良い。この間引き処理では、ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２から送られてきたＹＵＶ画像データを１画素ずつ切り出しながら、一部の画素のデータを削減したり、また複数の画素のデータを１画素分のデータに置き換えるなどして、サイズの小さなＹＵＶ画像データに変換する。ピクセル化ユニット１４４は、１画素ずつ切り出して生成したＹＵＶデータをＰＩＭユニット１４６に出力される。また、ピクセル化ユニット１４４は、１画素ずつ切り出して生成したＹＵＶデータをＳＤＲＡＭコントローラ１０３を介してＳＤＲＡＭ１０２に格納する。
【００７４】
ＰＩＭユニット１４６は、ピクセル化ユニット１４４またはＳＤＲＡＭ１０２からＹＵＶデータを取得し、そのＹＵＶデータをＲＧＢ色空間により表現されたＲＧＢデータに変換する。その後、ＰＩＭユニット１４６は、変換したＲＧＢデータにガンマ補正処理等の各種画像処理を施す。ここで、ガンマ補正処理を施す場合には、ＰＩＭユニット１４６は、ＳＤＲＡＭ１０２に格納されたガンマ補正用テーブル１５０を参照しながら、変換したＲＧＢデータにガンマ補正処理を施す。そして、ＰＩＭユニット１４６は、ガンマ処理等を施したＲＧＢデータをＳＤＲＡＭ１０２のＲＧＢデータバッファ１５２に一旦格納する。そして、ＰＩＭユニット１４６は、ＲＧＢデータバッファ１５２から順次ＲＧＢデータを読み出して、印刷処理を行うユニット、即ちここでは、２値化処理ユニット１０８に送出する。
【００７５】
２値化処理ユニット１０８は、ＰＩＭユニット１４６から送られてきたＲＧＢデータを、ＳＤＲＡＭ１０２上のルックアップテーブル（ＬＵＴ）１３６を参照しながら、ＣＭＹＫの色毎の２値データ（又は２ビットデータ）に変換する。そして、２値化処理ユニット１０８は、この変換により生成したＣＭＹＫの２値データをインターレース処理ユニット１１０に送出する。
【００７６】
インターレース処理ユニット１１０は、２値化処理ユニット１０８から送られてきたＣＭＹＫの２値データ（又は２ビットデータ）を、ＳＤＲＡＭ１０２のインターレースバッファ１２４に格納する。そして、インターレース処理ユニット１１０は、インターレースバッファ１２４に格納されたＣＭＹＫの２値データ（又は２ビットデータ）をインターレースバッファ１２４から所定のサイズ毎に順次読み出して、ノズル配列に対応させるべく並び替えてイメージバッファユニット１１２に送出する。
【００７７】
イメージバッファユニット１１２は、インターレース処理ユニット１１０から送られてきたデータから、プリンタ用のキャリッジ４１の移動毎の各ノズルにインクを吐出させるためのヘッド駆動データを生成する。ここで、イメージバッファユニット１１２は、ＳＤＲＡＭ１０２上に設けられたイメージバッファ１２６、１２７にヘッド駆動データを格納する。イメージバッファ１２６、１２７には、それぞれプリンタ用のキャリッジ４１が１回移動する毎のヘッド駆動データが格納される。
【００７８】
イメージバッファ１２６、１２７に格納されたヘッド駆動データは、バスコントロールユニット１１４を介してＣＰＵ９０により順次読み出される。ここで、ＣＰＵ９０は、イメージバッファ１２６、１２７からヘッド駆動データを交互に読み込む。ＣＰＵ９０により読み込まれたヘッド駆動データは、ヘッドコントロールユニット１１６に転送される。そして、ヘッドコントロールユニット１１６は、送られてきたヘッド駆動データに基づき、ヘッド２１を駆動して、ヘッド２１の各ノズルからインクを吐出させる。
【００７９】
＝＝＝ＪＰＥＧデータの処理＝＝＝
＜ＪＰＥＧデコーダユニット＞
ここで、ＪＰＥＧデコーダユニット１４２が実行するＪＰＥＧ形式の画像データをデコードする処理について詳しく説明する。図７は、この処理について詳しく説明したものである。ＪＰＥＧデコーダユニット１４２は、同図に示すように、カードリーダー部２０にセットされた各種メモリカードから読み出すなどして取得したＪＰＥＧ形式の画像データを１ＭＣＵ単位にてデコード処理をする。
【００８０】
このＭＣＵとは、ＪＰＥＧ規格において画像を扱う基本単位のことであり、横８画素×縦８画素が１つの単位となっている。ＪＰＥＧデコーダユニット１４２は、ＪＰＥＧ規格に基づいて圧縮された画像データをＭＣＵ単位にてデコード処理する。すなわち、ＪＰＥＧデコーダユニット１４２は、ＪＰＥＧ形式の画像データをデコード処理することによって、１ＭＣＵ単位、即ち横８画素×縦８画素分のＹＵＶ画像データを取得するのである。そして、ＪＰＥＧデコーダユニット１４２は、ＪＰＥＧ形式の画像データから１ＭＣＵ分ずつＹＵＶ画像データを取得する。
【００８１】
ＪＰＥＧデコーダユニット１４２の処理順序は次の通りである。すなわち、ＪＰＥＧデコーダユニット１４２は、同図に示すように、横方向に沿って順次ＭＣＵ単位にてデコード処理を行う。そして、横方向の全てのＭＣＵについてデコード処理が終わった後、次にＪＰＥＧデコーダユニット１４２は、その下の行のＭＣＵについて順次デコード処理を行う。ＪＰＥＧデコーダユニット１４２は、このデコード処理によって得られた横８画素×縦８画素分のＹＵＶ画像データを１ＭＣＵ単位にてピクセル化ユニット１４４に送出する。
【００８２】
＜ピクセル化ユニット＞
ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２によりデコードされて出力された１ＭＣＵ単位のＹＵＶ画像データから１画素ずつ切り出して１画素分のＹＵＶデータとして出力する。具体的には、図７に示すように、同図中の各画素内に記載した数字の順番に従って１画素ずつ切り出しながら、１画素ずつＹＵＶデータを出力する。ここで、ピクセル化ユニット１４４は、ＪＰＥＧ形式の画像データの記録形式、即ち、『４：４：４』形式や『４：２：２』形式、『Ｖ４：２：２』形式、『４：２：０』形式などに応じて異なる処理を実行する。そして、ピクセル化ユニット１４４は、これら各記録形式に応じた方法により、ＪＰＥＧデコーダユニット１４２から出力された１ＭＣＵ単位のＹＵＶ画像データを１画素ずつ切り出して１画素分のＹＵＶデータとして出力する。
【００８３】
図８Ａ〜図８Ｄは、ＪＰＥＧ形式の画像データの各記録形式についてそれぞれ説明したものである。図８Ａは、『４：４：４』形式について説明したものである。図８Ｂは、『４：２：２』形式について説明したものである。図８Ｃは、『Ｖ４：２：２』形式について説明したものである。図８Ｄは、『４：２：０』形式について説明したものである。
【００８４】
『４：４：４』形式の場合には、ＪＰＥＧ形式の画像データは、図８Ａに示すように、Ｙ（輝度）、Ｕ（色差：Ｃｂ）、およびＶ（色差：Ｃｒ）の各データがそれぞれ１ＭＣＵ分ずつ割り当てられる。そして、Ｙ（輝度）、Ｕ（色差：Ｃｂ）、およびＶ（色差：Ｃｒ）の各データがそれぞれ１画素ずつ割り当てられる。つまり、Ｙ（輝度）の１画素分のデータに対して、Ｕ（色差：Ｃｂ）およびＶ（色差：Ｃｒ）の各データがそれぞれ１画素分ずつ割り当てられる。ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２から出力された１ＭＣＵ単位のＹＵＶ画像データを１画素ずつ切り出して１画素分のＹＵＶデータとして出力するときに、Ｙ（輝度）、Ｕ（色差：Ｃｂ）、およびＶ（色差：Ｃｒ）の各データからそれぞれ順次１画素ずつ切り出すことになる。
【００８５】
また、『４：２：２』形式の場合には、ＪＰＥＧ形式の画像データは、図８Ｂに示すように、Ｙ（輝度）のデータが横方向に２ＭＣＵ分（『Ｙ１』、『Ｙ２］』）割り当てられるのに対して、Ｕ（色差：Ｃｂ）およびＶ（色差：Ｃｒ）のデータがそれぞれ１ＭＣＵ分ずつ割り当てられる。ここでは、Ｙ（輝度）の横方向の相隣接する２画素分のデータに対して、Ｕ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータがそれぞれ１画素分ずつ割り当てられる。すなわち、Ｙ（輝度）の横方向の相隣接する２画素分のデータが、同一の１画素分のＵ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータを共有する形になっている。ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２から出力された１ＭＣＵ単位のＹＵＶ画像データを１画素ずつ切り出して１画素分のＹＵＶデータとして出力するときに、Ｙ（輝度）の横方向の相隣接する２画素分のデータに対応して、Ｕ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータから同じ画素のデータをそれぞれ２回ずつ切り出すことになる。ピクセル化ユニット１４４は、このようにして切り出した各画素のデータをＹＵＶデータとして順次出力する。
【００８６】
また、『Ｖ４：２：２』形式の場合には、図８Ｃに示すように、Ｙ（輝度）のデータが縦方向に２ＭＣＵ分割り当てられ、また、Ｕ（色差：Ｃｂ）およびＶ（色差：Ｃｒ）のデータがそれぞれ１ＭＣＵ分ずつ割り当てられて設定される。ここでは、Ｙ（輝度）の縦方向に相隣接する２画素分のデータに対して、Ｕ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータがそれぞれ１画素分それぞれ割り当てられる。すなわち、Ｙ（輝度）の縦方向の相隣接する２画素分のデータが、同一の１画素分のＵ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータを共有する形になっている。ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２から出力された１ＭＣＵ単位のＹＵＶ画像データを１画素ずつ切り出して１画素分のＹＵＶデータとして出力するときに、Ｙ（輝度）の横方向の相隣接する２画素分のデータに対応して、Ｕ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータから同じ画素のデータをそれぞれ２回ずつ切り出すことになる。ピクセル化ユニット１４４は、このようにして切り出した各画素のデータをＹＵＶデータとして順次出力する。
【００８７】
また、『４：２：０』形式の場合には、図８Ｄに示すように、Ｙ（輝度）のデータが横方向および縦方向にそれぞれ２ＭＣＵ分ずつ、計４ＭＣＵ割り当てられ、また、Ｕ（色差：Ｃｂ）およびＶ（色差：Ｃｒ）のデータがそれぞれ１ＭＣＵ分ずつ割り当てられて設定される。ここでは、Ｙ（輝度）の横方向及び縦方向に相隣接する横２画素×縦２画素、計４画素分のデータに対して、Ｕ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータがそれぞれ１画素分ずつ割り当てられる。すなわち、Ｙ（輝度）の横方向および縦方向に相隣接する横２画素×縦２画素、計４画素分のデータが、同一の１画素分のＵ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータを共有する形になっている。ピクセル化ユニット１４４は、ＪＰＥＧデコーダユニット１４２から出力された１ＭＣＵ単位のＹＵＶ画像データを１画素ずつ切り出して１画素分のＹＵＶデータとして出力するときに、Ｙ（輝度）の横方向及び縦方向に相隣接する横２画素×縦２画素、計４画素分のデータに対応して、Ｕ（色差：Ｃｂ）のデータおよびＶ（色差：Ｃｒ）のデータから同じ画素のデータをそれぞれ４回ずつ切り出すことになる。ピクセル化ユニット１４４は、このようにして切り出した各画素のデータをＹＵＶデータとして順次出力する。
【００８８】
ピクセル化ユニット１４４は、このようにしてＪＰＥＧ形式の画像データの記録形式に応じて、異なる方法により１画素ずつ切り出して生成したＹＵＶデータをＰＩＭユニット１４６に順次出力する。ここでは、１画素分のＹＵＶデータが、例えば、Ｙ（輝度）、Ｕ（色差：Ｃｂ）およびＶ（色差：Ｃｒ）、各８ビットのデータにより構成されて出力される。
【００８９】
＜ＰＩＭユニット＞
ＰＩＭユニット１４６は、ピクセル化ユニット１４４から出力されたＹＵＶデータをＲＧＢデータに変換するとともに、変換して得られたＲＧＢデータに対してガンマ補正処理等の各種画像処理を施す。
【００９０】
図９は、ＰＩＭユニット１４６の構成の一例について説明したものである。ＰＩＭユニット１４６は、入力データコントローラ１６２と、第１演算回路１６４と、ガンマ補正回路１６６と、第２演算回路１６８と、逆ガンマ補正回路１７０と、出力データコントローラ１７２とを備えている。
【００９１】
入力データコントローラ１６２は、ピクセル化ユニット１４４により生成されたＹＵＶデータをピクセル化ユニット１４４から直接取得したり、また、ピクセル化ユニット１４４により生成されてＳＤＲＡＭ１０２に格納されたＹＵＶデータをＳＤＲＡＭ１０２からＳＤＲＡＭコントローラ１０３を介して取得したりする。そして、入力データコントローラ１６２は、このようにして取得したＹＵＶデータを第１演算回路１６４に出力する。
【００９２】
第１演算回路１６４は、入力データコントローラ１６２から出力されたＹＵＶデータをＲＧＢデータに変換する。具体的には、第１演算回路１６４は、次のようにして変換を行う。すなわち、第１演算回路１６４は、入力データコントローラ１６２から出力されたＹＵＶデータのうちの各データ、即ち、Ｙ（輝度）のデータ、Ｕ（色差（Ｃｂ））のデータ、およびＶ（色差（Ｃｒ））のデータに基づき、ＲＧＢの各色のデータ、即ち、レッド（Ｒ）のデータ、グリーン（Ｇ）のデータ、およびブルー（Ｂ）のデータをそれぞれ演算により求める。
【００９３】
この演算にあっては、例えば、次の（ｉ）〜（iii）のような演算式が用いられる。  
（ｉ）Ｒ＝Ｙ＋１．４０２００×（Ｖ−１２８）
（ii）Ｇ＝Ｙ−０．３４４１４×（Ｕ−１２８）−０．７１４１４×（Ｖ−１２８）
（iii）Ｂ＝Ｙ＋１．７７２００×（Ｕ−１２８）
なお、ここで、『Ｒ』はＲ（レッド）のデータである。『Ｇ』はＧ（グリーン）のデータである。『Ｂ』はＢ（ブルー）のデータである。また、『Ｙ』は、Ｙ（輝度）のデータである。『Ｕ』は、Ｕ（色差（Ｃｂ））のデータである。『Ｖ』は、Ｖ（色差（Ｃｒ））のデータである。
【００９４】
第１演算回路１６４は、このような（ｉ）〜（iii）の演算を例えばマトリックス演算等により実行する。これによって、第１演算回路１６４は、例えば、Ｙ（輝度）、Ｕ（色差：Ｃｂ）およびＶ（色差：Ｃｒ）、各８ビットのデータを、Ｒ（レッド）、Ｇ（グリーン）、Ｂ（ブルー）の各色それぞれ１２ビットのデータに変換する。
【００９５】
第１演算回路１６４は、このような変換により得られたＲ（レッド）のデータ、Ｇ（グリーン）のデータおよびＢ（ブルー）のデータをそれぞれ順次、ガンマ補正回路１６６に出力する。
【００９６】
ガンマ補正回路１６６は、第１演算回路１６４から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対してガンマ補正処理を実行する。ここで実行されるガンマ補正処理とは、第１演算回路１６４から出力されたＲＧＢデータを所望のＲＧＢデータに変換するための処理である。具体的には、このガンマ補正処理によって画像全体の明るさや色合い、色調等が調節される。これにより、ガンマ補正回路１６６は、ＲＧＢ画像データをユーザー等から指定された明るさや色合い、色調等の画像データに変換する。
【００９７】
ガンマ補正回路１６６は、ガンマ補正処理を実行するために、ガンマ補正用テーブルを用いて、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータをガンマ補正処理後のデータに変換する。具体的には、ガンマ補正回路１６６は、第１演算回路１６４から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対応するガンマ補正処理後のデータをガンマ補正用テーブルから読み出す。これによって、ガンマ補正回路１６６は、第１演算回路１６４から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを、ガンマ補正処理が施されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに簡単に変換することができる。
【００９８】
ここでは、より豊かな色表現を実現するために、ガンマ補正回路１６６は、第１演算回路１６４から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）各色１２ビットのデータが、例えば、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色１６ビットまたは各色２０ビットのガンマ補正済みのデータに置き換える。
【００９９】
ガンマ補正回路１６６は、このようにしてガンマ補正処理を施して得られたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータをそれぞれ順次、第２演算回路１６８に向けて出力する。
【０１００】
第２演算回路１６８は、ガンマ補正回路１６６から出力された、ガンマ補正処理が施されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対して所定の演算処理を実行して、印刷装置に適したＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに変換する。ここで、第２演算回路１６８は、ガンマ補正回路１６６から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対してマトリックス演算等が演算処理として実行される。第２演算回路１６８は、このようにして演算処理を行ったＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを逆ガンマ補正回路１７０に送出する。
【０１０１】
逆ガンマ補正回路１７０は、第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対して、逆ガンマ補正処理を施す。ここで、逆ガンマ補正処理は、逆ガンマ関数に基づいて実行されるもので、第２演算回路１６８の場合と同様に、印刷装置に適したＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに変換するために実行される。
【０１０２】
逆ガンマ補正回路１７０は、逆ガンマ補正処理を実行するために、逆ガンマ補正用テーブルを用いて、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを逆ガンマ補正処理後のデータに変換する。具体的には、逆ガンマ補正回路１７０は、第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対応する逆ガンマ補正処理後のデータを逆ガンマ補正用テーブルから読み出す。これによって、逆ガンマ補正回路１７０は、第２演算回路１６８から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを、逆ガンマ補正処理が施されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに簡単に変換することができる。
【０１０３】
ここでは、逆ガンマ補正用テーブルは、ＳＤＲＡＭ１０２に格納されている。逆ガンマ補正回路１７０は、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータに対して逆ガンマ補正処理を施す際に、ＳＤＲＡＭ１０２に格納された逆ガンマ補正用テーブルを参照する。
【０１０４】
このような逆ガンマ補正処理によって、逆ガンマ補正回路１７０は、第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色、１６ビットのデータを、例えば、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色、８ビットのデータに置き換える。そして、変換後、逆ガンマ補正回路１７０は、逆ガンマ補正処理を施したＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを出力データコントローラ１７２に出力する。
【０１０５】
出力データコントローラ１７２は、逆ガンマ補正回路１７０から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを次の処理ユニット、即ち、ここでは、例えば、２値化処理ユニット１０８等へと送出する。また、出力データコントローラ１７２は、逆ガンマ補正回路１７０から送られてきたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータをＳＤＲＡＭコントローラ１０３を介してＳＤＲＡＭ１０２のＲＧＢデータバッファ１５２に一旦格納する。
【０１０６】
＝＝＝問題点及び解決方法＝＝＝
＜問題点＞
ところで、このような構成のＰＩＭユニット１４６には、次のような問題が発生した。すなわち、逆ガンマ補正回路１７０が逆ガンマ補正処理に用いる逆ガンマ補正用テーブルをＰＩＭユニット１４６の内部に設けられた、例えばＳＲＡＭなどのメモリに格納しようとした場合、相当なメモリ領域を確保しなければならなかった。つまり、第２演算回路１６８から出力されるＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータは、ここでは、１６ビットのデータである。一方、逆ガンマ補正処理が施されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータは、ここでは８ビットのデータである。このように入力データが１６ビットであり、出力データが８ビットのデータであるようなデータ変換用テーブルを持つとなると、６４ＫＢｙｔｅほどのメモリ領域が必要となる。
【０１０７】
図１０Ａおよび図１０Ｂは、逆ガンマ補正処理に用いる逆ガンマ補正用テーブルについて説明したものである。図１０Ａは、入力データ、即ち、第２演算回路１６８から出力されるＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータと、出力データ、即ち、逆ガンマ補正処理が施されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータとの関係について説明したものである。図１０Ｂは、逆ガンマ補正用テーブルを格納するために必要なメモリ容量について説明したものである。
【０１０８】
入力データ、即ち、第２演算回路１６８から出力されるＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータは、ここでは、それぞれ１６ビットのデータであるから、合計６５５３６通りのデータをとり得る。一方、出力データ、即ち、逆ガンマ補正処理が施されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータは、ここでは、それぞれ８ビットのデータであるから、合計２５６通りのデータをとり得る。
【０１０９】
入力データがとり得る値を『ａ０』〜『ａ６５５３５』とし、出力データが取り得る値を『ｂ０』〜『ｂ２５５』とすると、図１０Ａに示すように、『ａ０』〜『ａ６５５３５』の６５５３６種類の入力データに対して、『ｂ０』〜『ｂ２５５』の２５６種類の出力データが対応することになる。出力データよりも入力データの種類が多いことから、複数の入力データが同一の出力データに変換されることになる。例えば、同図に示すように、出力データ『ｂ０』には、入力データ『ａ0』〜『ａn1』が変換される。また、出力データ『ｂ１』には、入力データ『ａn1+1』〜『ａn2』が変換される。また、出力データ『ｂ２』には、入力データ『ａn2+1』〜『ａn3』が変換される。
【０１１０】
このため、逆ガンマ補正用テーブルのデータを格納するために必要なメモリ容量は、図１０Ｂに示すように、６５５３６×８ビット（１Ｂｙｔｅ）＝計６４ＫＢｙｔｅとなる。すなわち、逆ガンマ補正処理に用いられる逆ガンマ補正用テーブルのデータを格納するためには、６４ＫＢｙｔｅものメモリ容量を確保する必要があるのである。このようなメモリ容量を制御ＡＳＩＣ９４（ＰＩＭユニット１４６）の内部にＳＲＡＭ等として確保した場合に、大幅なコストアップを招くことになった。
【０１１１】
＜解決方法＞
そこで、本実施形態では、制御ＡＳＩＣ９４（ＰＩＭユニット１４６）の内部に確保するメモリ容量を小さくするために、次のような方法を採用する。すなわち、逆ガンマ補正用テーブルの出力データをアドレスとして、１６ビットの入力データの変化する値を出力とするテーブルを作成する。これは、複数の入力データが同一の出力データに変換されることを利用したものである。
【０１１２】
図１１Ａおよび図１１Ｂは、ここで作成するテーブルについて説明したものである。図１１Ａは、メモリにテーブルとして格納されるデータについて説明したものである。図１１Ｂは、この場合に必要なメモリ容量について説明したものである。
【０１１３】
ここで作成されるテーブルは、図１１Ａに示すように、逆ガンマ補正用テーブルの出力データをアドレスとして、当該出力データに変換される複数の入力データのうちの最大値を有する入力データおよび最小値を有する入力データのいずれか一方をメモリに格納することにする。具体的には、例えば、ここでは、入力データ『ａ0』〜『ａn1』が同一の出力データ『ｂ０』に変換されるから、入力データ『ａ0』〜『ａn1』のうちの最大値を有する入力データまたは最小値を有する入力データがメモリに格納される。また、入力データ『ａn1+1』〜『ａn2』は、同一の出力データ『ｂ１』に変換されることから、入力データ『ａn1+1』〜『ａn2』のうちの最大値を有する入力データまたは最小値を有する入力データがメモリに格納される。また、入力データ『ａn2+1』〜『ａn3』は、同一の出力データ『ｂ２』に変換されることから、入力データ『ａn2+1』〜『ａn3』のうちの最大値を有する入力データまたは最小値を有する入力データがメモリに格納される。
【０１１４】
そして、メモリに格納された同一の出力データに変換される入力データのうちの最大値を有する入力データまたは最小値を有する入力データと、変換しようとする入力データとを逐次比較することによって、変換しようとする入力データに対応する出力データを探し出して変換する。
【０１１５】
このようにして同一の出力データに変換される入力データのうちの最大値を有する入力データおよび最小値を有する入力データのいずれか一方をメモリに格納することで、メモリに格納すべきデータの量は、大幅に削減することができる。ここでは、入力データが１６ビットであり、出力データが８ビット、即ち２５６通りあることから、メモリに必要な記憶容量は、図１１Ｂに示すように、１６ビット（２バイト）×２５６個＝計５１２バイト（０．５ＫＢｙｔｅ）となる。したがって、逆ガンマ補正用テーブルを格納する場合の６４ＫＢｙｔｅに比べて、制御ＡＳＩＣ９４（ＰＩＭユニット１４６）の内部に確保すべきメモリ容量を大幅に削減することができる。
【０１１６】
＝＝＝逆ガンマ補正回路＝＝＝
ここで、逆ガンマ補正回路１７０の一例について説明する。
【０１１７】
＜回路構成＞
図１２は、本実施形態の逆ガンマ補正回路１７０の一例について説明したものである。この逆ガンマ補正回路は、第１〜第３セレクタ１８０、１８２、１８４と、第１〜第３ＳＲＡＭ１８６、１８８、１９０と、第１〜第３比較回路１９２、１９４、１９６と、アドレス生成回路１９８と、データラッチ回路２００とを備えている。さらに、本実施形態の逆ガンマ補正回路１７０は、第４セレクタ２０２と、第１〜第３キャッシュレジスタ２０４、２０６、２０８と、第４〜第６比較回路２１０、２１２、２１４と、キャッシュコントローラ２１６とを備えている。ここで、第１〜第３キャッシュレジスタ２０４、２０６、２０８と、第４〜第６比較回路２１０、２１２、２１４と、キャッシュコントローラ２１６とは、キャッシュ判定回路２１８を構成している。
【０１１８】
なお、第１〜第３ＳＲＡＭ１８６、１８８、１９０は、それぞれ「メモリ」に相当する。また、第１〜第３比較回路１９２、１９４、１９６は、それぞれ「比較部」に相当する。また、アドレス生成回路１９８は、「選出部」および「出力データ導出部」に相当する。また、データラッチ回路２００は、「ラッチ回路」に相当する。また、第１〜第３キャッシュレジスタ２０４、２０６、２０８は、「レジスタ」に相当する。また、第４〜第６比較回路２１０、２１２、２１４は、「比較部」に相当する。
【０１１９】
第１〜第３セレクタ１８０、１８２、１８４は、それぞれＣＰＵ９０から出力された信号およびアドレス生成回路１９８から出力された信号のうちのいずれか一方を選択して第１〜第３ＳＲＡＭ１８６、１８８、１９０に各々出力する。なお、ここで、第１〜第３セレクタ１８０、１８２、１８４が第１〜第３ＳＲＡＭ１８６、１８８、１９０に出力する信号は、第１〜第３ＳＲＡＭ１８６、１８８、１９０のアドレスを指定する信号である。
【０１２０】
第１〜第３ＳＲＡＭ１８６、１８８、１９０は、それぞれ逆ガンマ補正処理を行うためのデータを格納する。すなわち、第１〜第３ＳＲＡＭ１８６、１８８、１９０には、それぞれ同一の出力データに変換される入力データのうちの最大値を有する入力データおよび最小値を有する入力データのいずれか一方が格納される。なお、ここで、第１〜第３ＳＲＡＭ１８６、１８８、１９０にそれぞれ格納される入力データは、「比較用データ」に相当する。本実施形態では、第１〜第３ＳＲＡＭ１８６、１８８、１９０には、それぞれ同一のデータが格納されている。第１〜第３ＳＲＡＭ１８６、１８８、１９０は、それぞれ第１〜第３セレクタ１８０、１８２、１８４により選択されて出力された信号、即ちアドレス信号に基づき、これに対応するデータを読み出して第１〜第３比較回路１９２、１９４、１９６に各々出力する。第１〜第３ＳＲＡＭ１８６、１８８、１９０へのデータの格納は、本実施形態では、ＣＰＵ９０により行われる。
【０１２１】
第１〜第３比較回路１９２、１９４、１９６は、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ出力されたデータと、第２演算回路１６８から出力されるＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータとをそれぞれ比較する。ここで、第１〜第３比較回路１９２、１９４、１９６は、例えば、第２演算回路１６８から出力されるＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータが、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ出力されたデータと同じ若しくはこれよりも大きい場合にはフラグ『１』の信号を、また小さい場合にはフラグ『０』の信号を比較結果として出力する。第１〜第３比較回路１９２、１９４、１９６は、このような比較結果をアドレス生成回路１９８に向けてそれぞれ出力する。
【０１２２】
アドレス生成回路１９８は、これら第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。アドレス生成回路１９８は、第１〜第３ＳＲＡＭ１８６、１８８、１９０から、第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを読み出すためのアドレス信号を第１〜第３セレクタ１８０、１８２、１８４に出力する。ここで、アドレス生成回路１９８は、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ異なるデータを読み出すべく、第１〜第３セレクタ１８０、１８２、１８４に対してそれぞれ異なるアドレス信号を出力する。
【０１２３】
そして、再び第１〜第３比較回路１９２、１９４、１９６にて、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ出力されたデータと、第２演算回路１６８から出力されるＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータとが比較されて、その比較結果が第１〜第３比較回路１９２、１９４、１９６から出力される。アドレス生成回路１９８は、再び第１〜第３比較回路１９２、１９４、１９６から受信した比較結果に基づき、再度、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。このようにアドレス生成回路１９８は、入力データに対応する出力データが導出されるまで繰り返し第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。
【０１２４】
データラッチ回路２００は、アドレス生成回路１９８により導出された出力データをラッチする。ここで、データラッチ回路２００は、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色の出力データを色別にラッチする。すなわち、データラッチ回路２００は、Ｒ（レッド）の出力データと、Ｇ（グリーン）の出力データと、Ｂ（ブルー）の出力データとをそれぞれ並列にラッチすることができる。したがって、データラッチ回路２００は、例えば、Ｒ（レッド）の出力データをラッチした後、再びＲ（レッド）の出力データがアドレス生成回路１９８から入力されない限り、Ｒ（レッド）の出力データを更新しないのである。つまり、例えば、Ｒ（レッド）の出力データをラッチした後、アドレス生成回路１９８からＢ（ブルー）の出力データが入力されても、Ｒ（レッド）の出力データはラッチされている。
【０１２５】
一方、第４セレクタ２０２は、キャッシュコントローラ２１６からの信号によって、変換しようとする入力データ、即ち第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを第１〜第３比較回路１９２、１９４、１９６に向けてそれぞれ出力する。
【０１２６】
第１〜第３キャッシュレジスタ２０４、２０６、２０８は、変換しようとする入力データ、即ち第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータをそれぞれ各色別に記憶する。ここでは、第１キャッシュレジスタ２０４がＲ（レッド）のデータを記憶する。また、第２キャッシュレジスタ２０６がＧ（グリーン）のデータを記憶する。また、第３キャッシュレジスタ２０８がＢ（ブルー）のデータを記憶する。そして、ここでは、第１〜第３キャッシュレジスタ２０４、２０６、２０８には、それぞれ１画素分のデータが記憶されるようになっている。第１〜第３キャッシュレジスタ２０４、２０６、２０８は、それぞれ記憶しているＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色の１画素分のデータをそれぞれ第４〜第６比較回路２１０、２１２、２１４に出力する。
【０１２７】
第４〜第６比較回路２１０、２１２、２１４は、第１〜第３キャッシュレジスタ２０４、２０６、２０８に記憶された前回のＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータと、これから変換しようとする今回の入力データ、即ち第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータとを比較する。ここでは、第４比較回路２１０は、第２演算回路１６８から出力された今回のＲ（レッド）のデータと、第１キャッシュレジスタ２０４から出力された前回のＲ（レッド）のデータとを比較する。また、第５比較回路２１２は、第２演算回路１６８から出力された今回のＧ（グリーン）のデータと、第２キャッシュレジスタ２０６から出力された前回のＧ（グリーン）のデータとを比較する。また、第６比較回路２１４は、第２演算回路１６８から出力された今回のＢ（ブルー）のデータと、第３キャッシュレジスタ２０８から出力された前回のＢ（ブルー）のデータとを比較する。
【０１２８】
そして、第４〜第６比較回路２１０、２１２、２１４は、それぞれ比較結果をキャッシュコントローラ２１６に出力する。ここで、第４〜第６比較回路２１０、２１２、２１４は、例えば、これから変換しようとする今回の入力データ、即ち第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータが、第１〜第３キャッシュレジスタ２０４、２０６、２０８に記憶された前回のＲ（レッド）、Ｇ（グリーン）またはＢ（ブルー）の各色のデータと場合にはフラグ『１』の信号を、また異なる場合にはフラグ『０』の信号を比較結果としてそれぞれ出力する。
【０１２９】
キャッシュコントローラ２１６は、第４〜第６比較回路２１０、２１２、２１４から出力された比較結果に基づき、これから変換すべき入力データが前回と同じデータか否かを判定する。そして、これから変換すべき入力データが前回と同じデータであるときには、データラッチ回路２００に対してラッチしている出力データを変換後の出力データとして出力するように指示する。また、キャッシュコントローラ２１６は、第４セレクタ２０２に伝達して、第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータを第１〜第３比較回路２１０、２１２、２１４に出力しないように指示する。
【０１３０】
＜回路動作＞
（１）キャッシュ利用可否の判定
この逆ガンマ補正回路１７０の動作例について説明する。第２演算回路１６８から出力されて逆ガンマ補正回路１７０に入力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータは、第４〜第６比較回路２１０、２１２、２１４に各色別にそれぞれ入力される。ここで、変換しようとする入力データがＲ（レッド）のデータの場合は、第４比較回路２１０に入力される。また、変換しようとする入力データがＧ（グリーン）のデータの場合には、第５比較回路２１２に入力される。また、変換しようとする入力データがＢ（ブルー）のデータの場合には、第６比較回路２１４に入力される。
【０１３１】
第４〜第６比較回路２１０、２１２、２１４は、第２演算回路１６８から出力されて逆ガンマ補正回路１７０に入力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色のデータと、第１〜第３キャッシュレジスタ２０４、２０６、２０８に格納されたデータとをそれぞれ比較する。すなわち、第４比較回路２１０は、変換しようとする入力データがＲ（レッド）のデータである場合に、入力データと、第１キャッシュレジスタ２０４に格納されたデータとを比較する。また、第５比較回路２１２は、変換しようとする入力データがＧ（グリーン）のデータである場合に、入力データと、第２キャッシュレジスタ２０６に格納されたデータとを比較する。また、第６比較回路２１４は、変換しようとする入力データがＢ（ブルー）のデータである場合に、入力データと、第３キャッシュレジスタ２０８に格納されたデータとを比較する。第４〜第６比較回路２１０、２１２、２１４は、比較結果をキャッシュコントローラ２１６に伝達する。
【０１３２】
キャッシュコントローラ２１６は、第４〜第６比較回路２１０、２１２、２１４から出力された比較結果に基づき、これから変換しようとする入力データが前回変換した入力データと同じか否かを判別する。ここで、キャッシュコントローラ２１６は、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色別に、入力データが前回の入力データと同じか否かを判別する。そして、これから変換しようとする入力データが前回のデータと同じである場合には、データラッチ回路２００に対してラッチしている出力データを変換後の出力データとして出力するように指示する。
【０１３３】
一方、これから変換しようとする入力データが前回のデータと異なる場合には、キャッシュコントローラ２１６は、第４セレクタ２０２に対して、第２演算回路１６８から出力されたＲ（レッド）、Ｇ（グリーン）およびＢ（ブルー）のいずれかの色のデータを第１〜第３比較回路２１０、２１２、２１４に出力するように指示する。
【０１３４】
（２）出力データの導出
変換しようとする入力データは、第４セレクタ２０２から第１〜第３比較回路２１０、２１２、２１４にそれぞれ出力される。つまり、第１〜第３比較回路２１０、２１２、２１４には、第４セレクタ２０２から同じデータが入力される。また、これに併せて、第１〜第３比較回路２１０、２１２、２１４には、第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されたデータが入力される。ここで、第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されて第１〜第３比較回路２１０、２１２、２１４に入力されるデータは、アドレス生成回路１９８から第１〜第３セレクタ１８０、１８２、１８４をそれぞれ経由して第１〜第３ＳＲＡＭ１８６、１８８、１９０に向けて出力されたアドレス信号に基づき読み出されたデータである。アドレス生成回路１９８は、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ異なるデータを読み出すべくアドレス信号を出力する。これにより、第１〜第３比較回路２１０、２１２、２１４には、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ異なるアドレスにて読み出されたデータが入力される。
【０１３５】
第１〜第３比較回路２１０、２１２、２１４は、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ出力されたデータと、これから変換しようとする入力データとを比較する。そして、第１〜第３比較回路２１０、２１２、２１４は、それらの比較結果をアドレス生成回路１９８に出力する。
【０１３６】
アドレス生成回路１９８は、これら第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。そして、アドレス生成回路１９８は、第１〜第３ＳＲＡＭ１８６、１８８、１９０から、第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを読み出すためのアドレス信号を第１〜第３セレクタ１８０、１８２、１８４に出力する。
【０１３７】
アドレス生成回路１９８から出力されたアドレス信号は、第１〜第３セレクタ１８０、１８２、１８４を経由して第１〜第３ＳＲＡＭ１８６、１８８、１９０に入力される。第１〜第３ＳＲＡＭ１８６、１８８、１９０は、アドレス生成回路１９８からのアドレス信号に基づき、それぞれ対応するデータを読み出して第１〜第３比較回路１９２、１９４、１９６に出力する。第１〜第３比較回路１９２、１９４、１９６は、再び第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されたデータと、これから変換しようとする入力データとを比較して、比較結果をそれぞれアドレス生成回路１９８に出力する。アドレス生成回路１９８は、これら第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、再び次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。このような処理は、出力データが導出されるまで繰り返しアドレス生成回路１９８により実行される。
【０１３８】
そして、アドレス生成回路１９８は、導出した出力データをデータラッチ回路２００に出力する。データラッチ回路２００は、アドレス生成回路１９８から出力された出力データをラッチする。ここで、データラッチ回路２００は、Ｒ（レッド）、Ｇ（グリーン）およびＢ（ブルー）の各色の出力データを色別にラッチする。すなわち、データラッチ回路２００は、アドレス生成回路１９８により導出された出力データがＲ（レッド）の場合には、Ｒ（レッド）の出力データとしてラッチする。また、アドレス生成回路１９８により導出された出力データがＧ（グリーン）の場合には、データラッチ回路２００は、Ｇ（グリーン）の出力データとしてラッチする。また、アドレス生成回路１９８により導出された出力データがＢ（ブルー）の場合には、データラッチ回路２００は、Ｂ（ブルー）の出力データとしてラッチする。データラッチ回路２００は、ラッチしている出力データを出力データコントローラ１７２に向けて出力する。
【０１３９】
＝＝＝出力データの導出方法＝＝＝
次にアドレス生成回路１９８による出力データの導出方法について説明する。図１３Ａ〜図１３Ｄは、アドレス生成回路１９８による出力データの導出方法の一例について説明したものである。
【０１４０】
ここでは、第１〜第３ＳＲＡＭ１８６、１８８、１９０に対してそれぞれ異なるアドレスを指定して、これら第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ異なるデータを順次読み出して、第１〜第３比較回路１９２、１９４、１９６によって各々入力データと比較することで、出力データを逐次導出する。
【０１４１】
具体的には、第１〜第３ＳＲＡＭ１８６、１８８、１９０に格納されているデータの領域を４分割して、分割された各領域の境界に対応するアドレスを第１〜第３ＳＲＡＭ１８６、１８８、１９０に対して指定して当該アドレスに対応するデータを読み出して比較を行う。この比較によって、変換により取得される出力データがどの領域に該当するのか逐次チェックする。そして、変換により取得される出力データが属する領域を順次絞り込み、最終的に出力データを特定する。
【０１４２】
本実施形態では、出力データが８ビットのデータであり、『ｂ０』〜『ｂ２５５』までのデータがあることから、出力データを導出するために、まず、図１３Ａに示すように、第１〜第３ＳＲＡＭ１８６、１８８、１９０に対してそれぞれアドレスとして出力データ『ｂ１９２』、『ｂ１２８』、『ｂ６４』をアドレス生成回路１９８により指定する。具体的には、第１ＳＲＡＭ１８６には、アドレスとして出力データ『ｂ１９２』を指定する。また、第２ＳＲＡＭ１８８には、アドレスとして出力データ『ｂ１２８』を指定する。また、第３ＳＲＡＭ１９０には、アドレスとして出力データ『ｂ６４』を指定する。
【０１４３】
そして、第１〜第３ＳＲＡＭ１８６、１８８、１９０によって各アドレスに対応するデータが読み出される。第１〜第３比較回路１９２、１９４、１９６は、第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されたデータと、入力データとを比較する。ここで第１〜第３比較回路１９２、１９４、１９６は、入力データが、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ読み出されたデータと同じ若しくはこれよりも大きい場合にはフラグ『１』の信号を、また小さい場合にはフラグ『０』の信号を比較結果として出力するものとする。
【０１４４】
第１〜第３比較回路１９２、１９４、１９６の比較結果は、アドレス生成回路１９８に入力される。アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。具体的に、例えば、第１比較回路１９２及び第２比較回路１９４から出力された比較結果が『０』であり、第３比較回路１９６から出力された比較結果が『１』であるとする。このことから、出力データが該当する領域は、出力データ『ｂ６４』と出力データ『ｂ１２７』との間の領域であることが判明する。つまり、ここでは、８ビットの出力データの最上位２ビットのデータが『０１』であることが判明する。
【０１４５】
アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、出力データが該当する領域を判定する。そして、アドレス生成回路１９８は、出力データが該当する領域の判定結果に基づき、次に第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出すべきデータに対応するアドレスを選出する。具体的には、例えば、ここでは、出力データが該当する領域は、出力データ『ｂ６４』と出力データ『ｂ１２７』との間の領域であることが判明したことから、出力データ『ｂ６４』と出力データ『ｂ１２７』との間の領域をさらに４分割して、分割された各領域の境界に対応するアドレスを順次第１〜第３ＳＲＡＭ１８６、１８８、１９０に対して指定して当該アドレスに対応するデータを読み出すようにする。ここでは、アドレス生成回路１９８は、図１３Ｂに示すように、第１〜第３ＳＲＡＭ１８６、１８８、１９０に対してそれぞれアドレスとして出力データ『ｂ１１２』、『ｂ９６』、『ｂ８０』を指定する。詳しくは、第１ＳＲＡＭ１８６には、アドレスとして出力データ『ｂ１１２』が指定される。また、第２ＳＲＡＭ１８８には、アドレスとして出力データ『ｂ９６』が指定される。また、第３ＳＲＡＭ１９０には、アドレスとして出力データ『ｂ８０』が指定される。
【０１４６】
そして、第１〜第３ＳＲＡＭ１８６、１８８、１９０によって各アドレスに対応するデータが読み出される。第１〜第３比較回路１９２、１９４、１９６は、第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されたデータと、入力データとを比較する。第１〜第３比較回路１９２、１９４、１９６の比較結果は、アドレス生成回路１９８に入力される。アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。具体的に、例えば、第１比較部１９２から出力された比較結果が『０』であり、第２比較部１９４及び第３比較部１９６から出力された比較結果が『１』であるとする。このことから、出力データが該当する領域は、出力データ『ｂ９６』と出力データ『ｂ１１１』との間の領域であることが判明する。つまり、ここでは、８ビットの出力データのうちの上から３ビット目と４ビット目のデータが『１０』であることが判明する。
【０１４７】
アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、出力データが該当する領域の判定結果に基づき、次に第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出すべきデータに対応するアドレスを選出する。ここでは、出力データが該当する領域が、出力データ『ｂ９６』と出力データ『ｂ１１１』との間の領域であることが判明したことから、出力データ『ｂ９６』と出力データ『ｂ１１１』との間の領域をさらに４分割して、分割された各領域の境界に対応するアドレスを順次第１〜第３ＳＲＡＭ１８６、１８８、１９０に対して指定して当該アドレスに対応するデータを読み出すようにする。ここでは、アドレス生成回路１９８は、図１３Ｃに示すように、第１〜第３ＳＲＡＭ１８６、１８８、１９０に対してそれぞれアドレスとして出力データ『ｂ１０８』、『ｂ１０４』、『ｂ１００』を指定する。詳しくは、第１ＳＲＡＭ１８６には、アドレスとして出力データ『ｂ１０８』が指定される。また、第２ＳＲＡＭ１８８には、アドレスとして出力データ『ｂ１０４』が指定される。また、第３ＳＲＡＭ１９０には、アドレスとして出力データ『ｂ１００』が指定される。
【０１４８】
そして、第１〜第３ＳＲＡＭ１８６、１８８、１９０によって各アドレスに対応するデータが読み出される。第１〜第３比較回路１９２、１９４、１９６は、第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されたデータと、入力データとを比較する。第１〜第３比較回路１９２、１９４、１９６の比較結果は、アドレス生成回路１９８に入力される。アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、次に第１〜第３比較回路１９２、１９４、１９６により比較すべきデータを第１〜第３ＳＲＡＭ１８６、１８８、１９０から選出する。具体的には、例えば、第１比較部１９２、第２比較部１９４及び第３比較部１９６から出力された比較結果が共に『１』であるとすると、出力データが該当する領域は、出力データ『ｂ１０８』と出力データ『ｂ１１１』との間の領域であることが判明する。つまり、ここでは、８ビットの出力データのうちの上から５ビット目と６ビット目のデータが『１１』であることが判明する。
【０１４９】
アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、出力データが該当する領域の判定結果に基づき、次に第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出すべきデータに対応するアドレスを選出する。ここでは、出力データが該当する領域が、出力データ『ｂ１０８』と出力データ『ｂ１１１』との間の領域であることが判明したことから、出力データ『ｂ１０８』と出力データ『ｂ１１１』との間の領域をさらに４分割して、分割された各領域の境界に対応するアドレス、ここでは各領域にそれぞれ１つのアドレスしかないことから、図１３Ｄに示すように、出力データ『ｂ１１１』、『ｂ１１０』、『ｂ１０９』を第１〜第３ＳＲＡＭ１８６、１８８、１９０に対して指定して当該アドレスに対応するデータを読み出すようにする。詳しくは、第１ＳＲＡＭ１８６には、アドレスとして出力データ『ｂ１１１』が指定される。また、第２ＳＲＡＭ１８８には、アドレスとして出力データ『ｂ１１０』が指定される。また、第３ＳＲＡＭ１９０には、アドレスとして出力データ『ｂ１０９』が指定される。
【０１５０】
そして、第１〜第３ＳＲＡＭ１８６、１８８、１９０によって各アドレスに対応するデータが読み出される。第１〜第３比較回路１９２、１９４、１９６は、第１〜第３ＳＲＡＭ１８６、１８８、１９０から読み出されたデータと、入力データとを比較する。第１〜第３比較回路１９２、１９４、１９６の比較結果は、アドレス生成回路１９８に入力される。アドレス生成回路１９８は、第１〜第３比較回路１９２、１９４、１９６からの比較結果に基づき、出力データを特定する。具体的には、例えば、ここで、第１〜第３比較回路１９２、１９４、１９６からの比較結果として、第１比較回路１９２及び第２比較回路１９４の比較結果が『０』であり、第３比較回路１９６の比較結果が『１』であった場合には、アドレス生成回路１９８は、入力データに対応する出力データは『ｂ１０９』であると特定する。つまり、ここでは、８ビットの出力データのうちの上から７ビット目と８ビット目のデータが『００』であることが判明する。したがって、出力データは、『０１１０１１０１』であることが導き出せる。
【０１５１】
なお、ここでは、第１〜第３比較回路１９２、１９４、１９６は、入力データが、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ読み出されたデータと同じ若しくはこれよりも大きい場合にはフラグ『１』の信号を、また小さい場合にはフラグ『０』の信号を比較結果として出力する場合を例にして説明したが、このような場合のみに限定されるものではない。
【０１５２】
また、ここでは、第１〜第３比較回路１９２、１９４、１９６は、比較結果としてフラグ『０』の信号と、フラグ『１』の信号の２種類出力していたが、これらの他の種類の信号を出力するようになっていても構わない。例えば、入力データと、第１〜第３ＳＲＡＭ１８６、１８８、１９０からそれぞれ読み出されたデータとが一致するような場合には特定の信号を出力させるようにしても構わない。このような特定の信号を出力することができれば、データが一致した場合に、処理を速やかに終了させることができる。
【０１５３】
また、出力データの導出方法については、メモリ、即ち第１〜第３ＳＲＡＭ１８６、１８８、１９０に比較用データとして格納されるデータが、最大値を有する入力データなのか、最小値を有する入力データなのかによっても異なるとともに、また、第１〜第３比較回路１９２、１９４、１９６が比較結果として出力する信号の形態によっても異なる。
【０１５４】
＝＝＝まとめ＝＝＝
以上本実施形態にあっては、逆ガンマ補正処理を行うために、同一の出力データに変換される入力データのうち、最大値を有する入力データおよび最小値を有する入力データのいずれか一方をメモリ（第１〜第３ＳＲＡＭ１８６、１８８、１９０）に格納して、当該メモリ（第１〜第３ＳＲＡＭ１８６、１８８、１９０）から逐次入力データを比較データとして読み出して、変換しようとする入力データと比較することによって、出力データを簡単にかつ確実に導出することができる。しかも、メモリ（第１〜第３ＳＲＡＭ１８６、１８８、１９０）に格納されるデータは、同一の出力データに変換される入力データのうちの最大値を有する入力データおよび最小値を有する入力データのいずれか一方であることから、メモリ容量の大幅な削減を図ることができる。これにより、確保しなければならないメモリ容量を減らすことができ、大幅なコストアップを招かずに済む。
【０１５５】
＝＝＝その他の実施の形態＝＝＝
以上、一実施形態に基づき、プリンタ等の印刷装置について説明したが、上記の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更または改良され得るとともに、本発明には、その等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に含まれるものである。
【０１５６】
＜入力データについて＞
前述した実施の形態では、「入力データ」として、逆ガンマ補正が施される前のデータを例にして説明したが、ここでいう「入力データ」にあっては、必ずしもこのような逆ガンマ補正が施される前のデータである場合に限られない。また、前述した実施の形態では、「入力データ」として、ＲＧＢ画像データのＲＧＢ各色のデータを例にして説明したが、ここでいう「入力データ」にあっては、必ずしもこのようなＲＧＢ各色のデータである場合に限られない。  
すなわち、ここでいう「入力データ」にあっては、入力データよりもビット数が少なく、かつ入力データに対して単調増加または単調減少の関係にある出力データに変換されるデータであれば、どのようなタイプのデータも「入力データ」に含まれる。
【０１５７】
＜出力データについて＞
前述した実施の形態では、「出力データ」として、逆ガンマ補正が施された後のデータを例にして説明したが、ここでいう「出力データ」にあっては、必ずしもこのような逆ガンマ補正が施された後のデータである場合に限られない。また、前述した実施の形態では、「出力データ」として、ＲＧＢ画像データのＲＧＢ各色のデータを例にして説明したが、ここでいう「出力データ」にあっては、必ずしもこのようなＲＧＢ各色のデータである場合に限られない。すなわち、ここでいう「出力データ」にあっては、入力データよりもビット数が少なく、かつ入力データに対して単調増加または単調減少の関係にある出力データであれば、どのようなタイプのデータも「出力データ」に含まれる。
【０１５８】
＜メモリについて＞
前述した実施の形態では、「メモリ」として、制御ＡＳＩＣ９４内部に設けられたＳＲＡＭ１８６、１８８、１９０を例にして説明したが、ここでいう「メモリ」にあっては、必ずしもこのようなＳＲＡＭ１８６、１８８、１９０である必要はなく、また必ずしもこのようにＡＳＩＣ内部に設けられる必要はない。つまり、ここでいう「メモリ」にあっては、入力データを出力データに変換するために、同一の出力データに変換される入力データのうち、最大値を有する入力データおよび最小値を有する入力データのいずれか一方が比較用データとして出力データ毎に格納されるメモリであれば、どのようなタイプのメモリであっても構わない。
【０１５９】
また、前述した実施の形態では、「メモリ」として、３つのメモリ、即ち第１ＳＲＡＭ１８６、第２ＳＲＡＭ１８８および第３ＳＲＡＭ１９０を備えていたが、ここでいう「メモリ」にあっては、必ずしもこのように３つのメモリを備えている必要はない。すなわち、ここでは、「メモリ」として１つのメモリや２つのメモリを備えていても良く、また４つの以上のメモリを備えていても良い。つまり、複数のメモリを備えることで、データ変換処理の効率化を図れるのであれば、たくさんのメモリを備えていても構わない。
【０１６０】
＜比較部について（１）＞
前述した実施の形態では、「比較部」として、３つの比較回路、即ち第１比較回路１９２、第２比較回路１９４および第３比較回路１９６を備えていが、ここでいう「比較部」にあっては、必ずしもこのような３つの比較回路１９２、１９４、１９６を備える必要はない。すなわち、ここで「比較部」としては、１つの比較部（比較回路）や２つの比較部（比較回路）を備えていても良く、また、４つ以上の比較部（比較回路）を備えていても良い。つまり、複数の「比較部」（比較回路）を備えることで、データ変換処理の効率化を図れるのであれば、たくさんの比較部（比較回路）を備えていても構わない。
【０１６１】
＜選出部について＞
前述した実施の形態では、「選出部」として、アドレス生成回路１９８を例にして説明したが、ここでいう「選出部」にあっては、必ずしもこのようなアドレス生成回路１９８の場合には限られない。すなわち、ここでいう「選出部」にあっては、比較部の比較結果に基づき、次に比較部により比較すべき他の比較用データをメモリから選出するのであれば、どのようなタイプの「選出部」であっても構わない。
【０１６２】
＜出力データ導出部について＞
前述した実施の形態では、「出力データ導出部」として、アドレス生成回路１９８を例にして説明したが、ここでいう「出力データ導出部」にあっては、必ずしもこのようなアドレス生成回路１９８の場合には限られない。すなわち、ここでいう「出力データ導出部」にあっては、比較部の比較結果に基づき、出力データを導出するのであれば、どのようなタイプの「出力データ導出部」であっても構わない。
【０１６３】
＜データ変換装置について＞
前述した実施の形態では、「データ変換装置」として、逆ガンマ補正処理を行う装置を例にして説明したが、ここでいう「データ変換装置」にあっては、必ずしもこのような逆ガンマ補正処理を行う装置には限られない。つまり、ここでいう「データ変換装置」にあっては、入力データを、当該入力データよりもビット数が少なく、かつ入力データに対して単調増加または単調減少の関係にある出力データに変換するデータ変換装置であれば、どうような装置であっても良い。すなわち、ここでいう「データ変換装置」にあっては、例えば、逆ガンマ補正処理以外の処理、例えば、ガンマ補正処理を行うような装置であっても良く、この他に各種画像処理を行うためにデータの変換を行う装置であっても良い。さらに、この「データ変換装置」にあっては、画像処理以外の処理にてデータを変換するような処理に適用されても良い。
【０１６４】
＜レジスタについて＞
前述した実施の形態では、「レジスタ」として、３つのキャッシュレジスタ、即ち、第１キャッシュレジスタと、第２キャッシュレジスタと、第３キャッシュレジスタとを備えていたが、ここでいう「レジスタ」にあっては、必ずしもこのように３つのレジスタを備える必要はない。つまり、ここでいう「レジスタ」にあっては、１つであっても良く、また２つであっても良く、さらに４つ以上であっても良い。  
ここでは、ＲＧＢの各色毎にそれぞれ１つずつ「レジスタ」としてキャッシュレジスタを備えていたが、他の色が存在する場合には各色毎に設けるようにしても良い。もちろん、必ずしも色毎に「レジスタ」を設ける必要もない。
【０１６５】
＜比較部について（２）＞
前述した実施の形態では、レジスタに記憶された入力データと、次に変換される入力データとを比較するための「比較部」として、３つの比較回路、即ち、第４比較回路２１０と、第５比較回路２１２と、第６比較回路２１４とを備えていたが、ここでいう「比較部」にあっては、必ずしもこのように各色毎に３つの比較部を備える必要はない。つまり、ここでいう「比較部」にあっては、レジスタに記憶された入力データと、次に変換される入力データとを比較するのであれば、どのようなタイプの「比較部」であっても構わない。
【０１６６】
＜所定のビット数について＞
前述した実施の形態では、第１〜第３比較回路１９２、１９４、１９６（比較部）の比較結果に基づき、「所定のビット数」として「２ビット」ずつ出力データの導出を行っていたが、ここでいう「所定のビット数」にあっては必ずしもこのように「２ビット」ずつ出力データを導出する場合には限られない。つまり、ここでいう「所定のビット数」とは、１ビットであっても良く、また３ビット以上であっても構わない。出力データのビット数や比較部の個数等に応じて、ここでいう「所定のビット数」は変化する。
【０１６７】
＜印刷装置について＞
前述した実施の形態では、「印刷装置」として、原稿から画像を読み取って画像データを生成するスキャナ部（画像読み取り部）と、媒体に対して印刷を施す印刷部とを備えた複合装置を例にして説明したが、ここでいう「印刷装置」にあっては、必ずしもこのような複合装置には限らない。すなわち、ここでいう「印刷装置」にあっては、媒体に対して印刷を施す印刷部を備えていればよく、その他の構成について備えていてもいなくてもどちらでも良い。
【０１６８】
また、前述した実施の形態では、印刷装置として、インクジェットプリンタを例にして説明したが、ここでいう「印刷装置」にあっては、必ずしもこのようにインクを吐出して印刷をする印刷装置には限られず、他の方式によりインクを吐出するプリンタや、インク以外のその他の方式により印刷を行う印刷装置、例えばレーザープリンタ等であっても構わない。
【図面の簡単な説明】
【０１６９】
【図１】複合装置の一例を説明する斜視図。
【図２】複合装置のスキャナ部のカバーを開いたときの斜視図。
【図３】複合装置の印刷部を示す斜視図。
【図４】複合装置のスキャナ部及びプリンタ部の構成を説明する説明図。
【図５】複合装置の操作パネルを説明する説明図。
【図６】複合装置の制御部のシステム構成の一例の説明図。
【図７】ＪＰＥＧ形式の画像データのデコード処理の説明図。
【図８Ａ】『４：４：４』形式についての説明図。
【図８Ｂ】『４：２：２』形式についての説明図。
【図８Ｃ】『Ｖ４：２：２』形式についての説明図。
【図８Ｄ】『４：２：０』形式についての説明図。
【図９】ＰＩＭユニットの構成の一例の説明図。
【図１０Ａ】入力データと出力データとの関係の説明図。
【図１０Ｂ】従来の逆ガンマ補正用テーブルに必要なメモリ容量の説明図。
【図１１Ａ】メモリ容量を削減する方法を説明する説明図。
【図１１Ｂ】本実施形態のデータを格納するために必要なメモリ容量の説明図。
【図１２】逆ガンマ補正回路の一実施形態の説明図。
【図１３Ａ】出力データの導出方法の一例の説明図。
【図１３Ｂ】図１３Ａの次のステップの説明図。
【図１３Ｃ】図１３Ｂの次のステップの説明図。
【図１３Ｄ】図１３Ｃの次のステップの説明図。
【符号の説明】
【０１７０】
１  複合装置、２  操作パネル、３  排紙部、４  給紙部、５  原稿、６  上部、
７  排紙トレイ、９  下部、１０  スキャナ部、１１  原稿台、１２  原稿台カバー、
１４  プラテン、１５  搬送モータ、１７Ａ  搬送ローラ、２０  カードリーダー部、
２１  ヘッド、２２  背部給紙口、２３  前部給紙口、２４  駆動機構、
２５  排紙トレイ、２６  インクカートリッジ、２７  インクカートリッジカバー、
３０  プリンタ部、３４  ヒンジ部、３６  搬送機構、４１  キャリッジ、
４２  キャリッジモータ、４４  プーリ、４５  タイミングベルト、
４６  ガイドレール、５０  制御部、５１  リニア式エンコーダ符号板、
５２  検出部、５３  紙検知センサ、５６  ロータリ式エンコーダ、
６０  スキャナ用キャリッジ、６２  駆動機構、６４  ガイド、６６  露光ランプ、
７０  レンズ、７２  イメージセンサ、７４  タイミングベルト、
７５  プーリ、７６  プーリ、７７  駆動モータ、
８０  液晶ディスプレイ、８２  電源ボタン、８３  設定ボタン、
８４  ストップボタン、８５  モード選択ボタン、８６  カーソル操作ボタン群、
８７  スタートボタン、８７Ｃ  カラーボタン、８７Ｂ  モノクロボタン、
９０  ＣＰＵ、９２  メモリ、９３  カードＡＳＩＣ、９４  制御ＡＳＩＣ、
９５  カードインターフェイス、９６  ＳＤＲＡＭ、９８  ＣＰＵバス、
１０２  ＳＤＲＡＭ、１０３  ＳＤＲＡＭコントローラ、
１０４  スキャナコントロールユニット、１０６  リサイズユニット、
１０８  ２値化処理ユニット、１１０  インターレース処理ユニット、
１１２  イメージバッファユニット、１１４  バスコントロールユニット、
１１６  ヘッドコントロールユニット、１１８  ＵＳＢインターフェイス、
１２０  ラインバッファ、１２２  リサイズバッファ、
１２４  インターレースバッファ、１２６  イメージバッファ、
１２７  イメージバッファ、１２８  ローカルバス、
１３２  イメージバッファ、１３３  イメージバッファ、１３４  イメージバッファ、
１３６  ルックアップテーブル（ＬＵＴ）、１４０  ホストコンピュータ、
１４２  ＪＰＥＧデコーダユニット、１４４  ピクセル化ユニット、
１４６  ＰＩＭユニット、１４８  ＪＰＥＧバッファ、
１５０  ガンマ補正用テーブル、１５２  ＲＧＢデータバッファ、
１６２  入力データコントローラ、１６４  第１演算回路、
１６６  ガンマ補正回路、１６８  第２演算回路、
１７０  逆ガンマ補正回路、１７２  出力データコントローラ、
１８０  第１セレクタ、１８２  第２セレクタ、１８４  第３セレクタ、
１８６  第１ＳＲＡＭ、１８８  第２ＳＲＡＭ、１９０  第３ＳＲＡＭ、
１９２  第１比較回路、１９４  第２比較回路、１９６  第３比較回路、
１９８  アドレス生成回路、２００  データラッチ回路、
２０２  第４セレクタ、２０４  第１キャッシュレジスタ、
２０６  第２キャッシュレジスタ、２０８  第３キャッシュレジスタ、
２１０  第４比較回路、２１２  第５比較回路、２１４  第６比較回路、
２１６  キャッシュコントローラ、２１８  キャッシュ判定回路
【図１】
2007194960.tif 000003
【図２】
2007194960.tif 000004
【図３】
2007194960.tif 000005
【図４】
2007194960.tif 000006
【図５】
2007194960.tif 000007
【図６】
2007194960.tif 000008
【図７】
2007194960.tif 000009
【図８Ａ】
2007194960.tif 000010
【図８Ｂ】
2007194960.tif 000011
【図８Ｃ】
2007194960.tif 000012
【図８Ｄ】
2007194960.tif 000013
【図９】
2007194960.tif 000014
【図１０Ａ】
2007194960.tif 000015
【図１０Ｂ】
2007194960.tif 000016
【図１１Ａ】
2007194960.tif 000017
【図１１Ｂ】
2007194960.tif 000018
【図１２】
2007194960.tif 000019
【図１３Ａ】
2007194960.tif 000020
【図１３Ｂ】
2007194960.tif 000021
【図１３Ｃ】
2007194960.tif 000022
【図１３Ｄ】
2007194960.tif 000023