(57)【要約】【課題】圧縮された画像データの伸張および伸張した画像データの所望の画像データサイズへの解像度変換を、ブロックノイズの発生を抑制しつつ、伸張した画像データのサイズよりも少ない容量のメモリを使用して実行する。【解決手段】  圧縮画像データを伸張しつつ、得られる伸張画像データをブロックごとに順に出力し、ブロックバッファ部にブロック単位で一時記憶する。ブロックバッファ部に記憶された伸張画像データの水平方向の解像度を変換し、ラインバッファ部に行単位で一時記憶する。ラインバッファ部に記憶された水平解像度変換画像データの垂直方向の解像度を変換する。【選択図】  図１
2010045814.tif 000002
【特許請求の範囲】
【請求項１】
圧縮画像データを伸張し、得られる伸張画像データの解像度を変換する画像処理装置であって、
前記圧縮画像データは、水平方向および垂直方向にマトリクス状に並ぶ複数の画素を単位とするブロックにより、水平方向および垂直方向にマトリクス状に区分された画像データを圧縮した画像データであり、
前記圧縮画像データを伸張しつつ、得られる前記伸張画像データを前記ブロックごとに順に出力する伸張部と、
前記伸張部から出力される前記ブロックごとの前記伸張画像データのうち、少なくとも、水平方向に並ぶ１行分のブロックのうちの一部のブロックの前記伸張画像データを、前記ブロック単位で一時記憶するブロックバッファ部と、
前記ブロックバッファ部に記憶される前記一部のブロックの前記伸張画像データのうち、水平方向に並ぶ複数の画素の前記伸張画像データに対して、フィルタ処理することにより、前記伸張画像データの水平方向の解像度を変換する水平解像度変換部と、
前記水平解像度変換部によって水平方向の解像度が変換され、水平方向および垂直方向にマトリクス状に並ぶ画素の画像データで構成される水平解像度変換画像データのうち、垂直方向に並ぶ一部の行の前記水平解像度変換画像データを行単位で一時記憶するラインバッファ部と、
前記ラインバッファ部に記憶される前記一部の行の前記水平解像度変換画像データのうち、垂直方向に並ぶ複数の画素の前記水平解像度変換画像データに対して、フィルタ処理することにより、前記水平解像度変換データの垂直方向の解像度を変換する垂直解像度変換部と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置であって、
前記ブロックバッファ部は、一時記憶されている前記一部のブロックの前記伸張画像データの中から、前記水平解像度変換部からの要求に応じて必要な複数の画素に対応する前記伸張画像データを読み出して、前記水平解像度変換部へ出力することを特徴とする画像処理装置。
【請求項３】
請求項２記載の画像処理装置であって、
前記ブロックバッファ部は、前記必要な複数の画素として、前記画像データの表す画像の左端よりも前側、あるいは、前記画像データの表す画像の右端よりも後側となる画素が対象となる場合において、前記左端よりも前側の画素に対しては、前記左端から右端へ向かって前記水平方向に並ぶ画素の伸張画像データを前記左端から左方向に折り返して割り当て、前記右端よりも後側の画素に対しては、前記右端から左端へ向かって前記水平方向に並ぶ画素の伸張画像データを前記右端から右方向に折り返して割り当てることを特徴とする画像処理装置。
【請求項４】
請求項１ないし請求項３のいずれかに記載の画像処理装置であって、
前記ラインバッファ部は、一時記憶されている前記一部の行の前記水平解像度変換画像データの中から、前記垂直解像度変換部からの要求に応じて必要な複数の画素に対応する前記水平解像度変換画像データを読み出して、前記垂直解像度変換部へ出力することを特徴とする画像処理装置。
【請求項５】
請求項４記載の画像処理装置であって、
前記ラインバッファ部は、前記必要な複数の画素として、前記画像データの表す画像の上端よりも上側、あるいは、前記画像データの表す画像の下端よりも下側となる画素が対象となる場合において、前記上端よりも上側の画素に対しては、前記上端から下端へ向かって前記垂直方向に並ぶ画素の水平解像度変換画像データを前記上端から上方向に折り返して割り当て、前記下端よりも下側の画素に対しては、前記下端から上側へ向かって前記垂直方向に並ぶ画素の水平解像度変換画像データを前記下端から下方向に折り返して割り当てることを特徴とする画像処理装置。
【請求項６】
圧縮画像データを伸張し、得られる伸張画像データの解像度を変換する画像処理方法であって、
前記圧縮画像データは、水平方向および垂直方向にマトリクス状に並ぶ複数の画素を単位とするブロックにより、水平方向および垂直方向にマトリクス状に区分された画像データを圧縮した画像データであり、
前記圧縮画像データを伸張しつつ、前記ブロックごとに順に得られる伸張画像データのうち、少なくとも、水平方向に並ぶ１行分のブロックのうちの一部のブロックの前記伸張画像データを前記ブロック単位で一時記憶し、
一時記憶される前記一部のブロックの前記伸張画像データのうち、水平方向に並ぶ複数の画素の前記伸張画像データに対して、フィルタ処理することにより、前記伸張画像データの水平方向の解像度を変換し、
水平方向の解像度が変換され、水平方向および垂直方向にマトリクス状に並ぶ画素の画像データで構成される水平解像度変換画像データのうち、垂直方向に並ぶ一部の行の前記水平解像度変換画像データを行単位で一時記憶し、
一時記憶される前記一部の行の前記水平解像度変換画像データのうち、垂直方向に並ぶ複数の画素の前記水平解像度変換画像データに対して、フィルタ処理することにより、前記水平解像度変換データの垂直方向の解像度を変換する、
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定の圧縮フォーマットで圧縮された画像データを伸張しつつ、伸張された画像データを所望の画像データサイズに解像度変換する画像処理装置に関する。
【背景技術】
【０００２】
ＪＰＥＧ（Joint Photographic Experts Group）等の種々のフォーマットによる圧縮画像データを伸張し、伸張画像データの表す画像を表示する画像表示装置や、伸張画像データの表す画像を印刷する印刷装置などの画像処理装置では、伸張画像データの画像データサイズが所望の画像データサイズと異なっている場合には、伸張画像データのサイズを所望の画像データサイズとなるように解像度変換することが行われている。なお、以下では、この画像データサイズを「解像度」とも呼ぶこととする。
【０００３】
上記解像度変換の機能は、一般的には、画像処理装置において、圧縮画像データを全て伸張し、伸張画像データの全体を一旦メモリに記憶し、メモリに記憶した伸張画像データを読み出して解像度変換を行うことにより実現される。
【０００４】
また、ＪＰＥＧフォーマットの圧縮画像データを１ＭＣＵ（Minimum Coded Unit）ごとに伸張しつつ、これにより得られた画像データを１ＭＣＵを構成する８×８画素のブロック単位で解像度変換する構成によっても実現可能である（特許文献１参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−８４７３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記一般的な構成の画像処理装置では、伸張画像データの全体を一旦メモリに記憶する必要があり、伸張画像データのサイズに対応した大容量のメモリが必要となる。また、伸張画像データの全体を一旦メモリに記憶し、メモリに記憶した伸張画像データを読み出して解像度変換を行うため、伸張画像データのサイズが大きくなるほど、すなわち、解像度が大きくなるほど、メモリに対するアクセスの頻度が高くなる。このため、メモリへのアクセスに要する時間が多く必要とされ、このアクセスに要する時間が画像処理装置全体としての処理速度の向上を妨げる要因となり、これに応じて伸張画像データの表す画像の解像度に対する変換可能な解像度の範囲に制限を加えなければならない、という問題がある。
【０００７】
また、特許文献１の画像処理装置では、ブロック単位で解像度変換が実行されるため、伸張された画像データを少ない容量のメモリで解像度変換すること、および、変換可能な解像度の範囲の制限を緩和することは可能であるが、ブロック間の境界における画像の画素間の連続性が損なわれるようなノイズ（「ブロックノイズ」とも呼ばれる。）が発生しやすく、解像度変換後の画像の画質が劣化する場合がある、という問題がある。
【０００８】
そこで、この発明は、従来技術における上述の課題を解決するためになされたものであり、圧縮された画像データの伸張および伸張した画像データの所望の画像データサイズへの解像度変換を、ブロックノイズの発生を抑制しつつ、伸張した画像データのサイズよりも少ない容量のメモリを使用して実行することが可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、上記した目的の少なくとも一部を達成するためになされたものであり、以下の形態または適用例として実現することが可能である。
【００１０】
［適用例１］
圧縮画像データを伸張し、得られる伸張画像データの解像度を変換する画像処理装置であって、
前記圧縮画像データは、水平方向および垂直方向にマトリクス状に並ぶ複数の画素を単位とするブロックにより、水平方向および垂直方向にマトリクス状に区分された画像データを圧縮した画像データであり、
前記圧縮画像データを伸張しつつ、得られる前記伸張画像データを前記ブロックごとに順に出力する伸張部と、
前記伸張部から出力される前記ブロックごとの前記伸張画像データのうち、少なくとも、水平方向に並ぶ１行分のブロックのうちの一部のブロックの前記伸張画像データを、前記ブロック単位で一時記憶するブロックバッファ部と、
前記ブロックバッファ部に記憶される前記一部のブロックの前記伸張画像データのうち、水平方向に並ぶ複数の画素の前記伸張画像データに対して、フィルタ処理することにより、前記伸張画像データの水平方向の解像度を変換する水平解像度変換部と、
前記水平解像度変換部によって水平方向の解像度が変換され、水平方向および垂直方向にマトリクス状に並ぶ画素の画像データで構成される水平解像度変換画像データのうち、垂直方向に並ぶ一部の行の前記水平解像度変換画像データを行単位で一時記憶するラインバッファ部と、
前記ラインバッファ部に記憶される前記一部の行の前記水平解像度変換画像データのうち、垂直方向に並ぶ複数の画素の前記水平解像度変換画像データに対して、フィルタ処理することにより、前記水平解像度変換データの垂直方向の解像度を変換する垂直解像度変換部と、
を備えることを特徴とする画像処理装置。
【００１１】
適用例１によれば、圧縮された画像データの伸張および伸張した画像データの所望の画像データサイズへの解像度変換を、ブロックノイズの発生を抑制しつつ、伸張した画像データのサイズよりも少ない容量のメモリを使用して実行することが可能となる。
【００１２】
［適用例２］
適用例１に記載の画像処理装置であって、
前記ブロックバッファ部は、一時記憶されている前記一部のブロックの前記伸張画像データの中から、前記水平解像度変換部からの要求に応じて必要な複数の画素に対応する前記伸張画像データを読み出して、前記水平解像度変換部へ出力することを特徴とする画像処理装置。
【００１３】
適用例２によれば、一時記憶されている一部のブロックの伸張画像データの中から、水平解像度変換部からの要求に応じて必要な複数の画素に対応する伸張画像データを、水平解像度変換部へ容易に出力することができる。
【００１４】
［適用例３］
適用例２記載の画像処理装置であって、
前記ブロックバッファ部は、前記必要な複数の画素として、前記画像データの表す画像の左端よりも前側、あるいは、前記画像データの表す画像の右端よりも後側となる画素が対象となる場合において、前記左端よりも前側の画素に対しては、前記左端から右端へ向かって前記水平方向に並ぶ画素の伸張画像データを前記左端から左方向に折り返して割り当て、前記右端よりも後側の画素に対しては、前記右端から左端へ向かって前記水平方向に並ぶ画素の伸張画像データを前記右端から右方向に折り返して割り当てることを特徴とする画像処理装置。
【００１５】
適用例３によれば、水平方向の解像度を変換することにより、画像の左端部分あるいは右端部分に発生するノイズを抑制することが可能である。
【００１６】
［適用例４］
適用例１ないし適用例３のいずれかに記載の画像処理装置であって、
前記ラインバッファ部は、一時記憶されている前記一部の行の前記水平解像度変換画像データの中から、前記垂直解像度変換部からの要求に応じて必要な複数の画素に対応する前記水平解像度変換画像データを読み出して、前記垂直解像度変換部へ出力することを特徴とする画像処理装置。
【００１７】
適用例４によれば、一時記憶されている一部の行の水平解像度変換画像データの中から、垂直解像度変換部からの要求に応じて必要な複数の画素に対応する水平解像度変換画像データを、垂直解像度変換部へ容易に出力することができる。
【００１８】
［適用例５］
適用例４記載の画像処理装置であって、
前記ラインバッファ部は、前記必要な複数の画素として、前記画像データの表す画像の上端よりも上側、あるいは、前記画像データの表す画像の下端よりも下側となる画素が対象となる場合において、前記上端よりも上側の画素に対しては、前記上端から下端へ向かって前記垂直方向に並ぶ画素の水平解像度変換画像データを前記上端から上方向に折り返して割り当て、前記下端よりも下側の画素に対しては、前記下端から上側へ向かって前記垂直方向に並ぶ画素の水平解像度変換画像データを前記下端から下方向に折り返して割り当てることを特徴とする画像処理装置。
【００１９】
適用例５によれば、垂直方向の解像度を変換することにより、画像の上端部分あるいは下端部分に発生するノイズを抑制することが可能である。
【００２０】
なお、本発明は、画像処理装置に限られず、画像処理方法の態様でも実現することができる。
【図面の簡単な説明】
【００２１】
【図１】この発明の一実施例としての画像処理装置１０を示すブロック図である。
【図２】ＪＰＥＧ伸張部１００の内部構成を示すブロック図である。
【図３】画像サイズおよび切り出しサイズについて示す説明図である。
【図４】圧縮モードについて示す説明図である。
【図５】ブロックバッファ部２００の内部構成を示すブロック図である。
【図６】ラインバッファ部４００の内部構成を示すブロック図である。
【図７】画像処理装置１０による解像度変換処理において各ブロックが実行する処理動作について示す説明図である。
【図８】画像処理装置１０による解像度変換処理において各ブロックが実行する処理動作について示す説明図である。
【図９】画像処理装置１０による解像度変換処理において各ブロックが実行する処理動作について示す説明図である。
【図１０】ブロックバッファ部２００のブロックバッファメモリ部２１０において実行される伸張データの記憶処理について示す説明図である。
【図１１】水平ミラーミラーリング処理について示す説明図である。
【図１２】ブロックバッファメモリ部２１０にブロック単位で記憶されている伸張データの更新について示す説明図である。
【図１３】ラインバッファ部４００のラインバッファメモリ部４１０において実行される水平処理データの記憶処理について示す説明図である。
【発明を実施するための形態】
【００２２】
以下、本発明を実施するための最良の形態を実施例に基づき以下の順序で説明する。
Ａ．画像処理装置の構成：
Ｂ．解像度変換処理動作：
Ｃ．変形例：
【００２３】
Ａ．画像処理装置の構成：
図１は、この発明の一実施例としての画像処理装置１０を示すブロック図である。図１に示す画像処理装置１０は、ＪＰＥＧ伸張部１００と、ブロックバッファ部２００と、水平解像度変換部３００と、ラインバッファ部４００と、垂直解像度変換部５００と、解像度変換制御部６００と、を備える。この画像処理装置１０は、プロジェクタに用いられる画像処理装置の一部を構成し、ＪＰＥＧフォーマットによる圧縮画像データを伸張しつつ、伸張された画像データ（以下、「伸張データ」と呼ぶ。）に対して順次解像度変換を実行する解像度変換装置である。
【００２４】
解像度変換制御部６００は、図示しないＣＰＵやメモリを含み、メモリに記憶されている制御プログラムに基づいて動作することにより、ＪＰＥＧ伸張部１００、ブロックバッファ部２００、水平解像度変換部３００、ラインバッファ部４００、および、垂直解像度変換部５００の各ブロックの動作を制御する。なお、解像度変換制御部６００と各ブロックとの間は、種々の信号線で結ばれているが、以下の説明で特に必要な、処理開始通知ＦＭＳＴ、ＪＰＥＧ画像情報ＪＩＮＦ、切り出し情報ＣＩＮＦ、圧縮モード情報ＪＰＭＤ、および、解像度変換情報ＲＩＮＦの伝送のための信号線のみが図示されている。
【００２５】
ＪＰＥＧ伸張部１００は、ＪＰＥＧフォーマットに従った任意サイズの１枚分の圧縮された画像データ（以下、単に「圧縮画像データ」と呼ぶ。）を入力し、入力された圧縮画像データを伸張し、伸張された画像データ（以下、単に「伸張画像データ」とも呼ぶ。）を、後述するブロック単位で順に出力する機能ブロックである。
【００２６】
図２は、ＪＰＥＧ伸張部１００の内部構成を示すブロック図である。このＪＰＥＧ伸張部１００は、ＪＰＥＧデータ復号部１１０と、ＭＣＵバッファ部１２０と、領域切り出し部１３０と、色変換部１４０と、ＪＰＥＧ伸張制御部１５０と、を備える。
【００２７】
ＪＰＥＧ伸張制御部１５０は、解像度変換制御部６００から供給される処理開始通知ＦＭＳＴ、切り出し情報ＣＩＮＦに基づいて、ＪＰＥＧデータ復号部１１０、ＭＣＵバッファ部１２０、領域切り出し部１３０、および、色変換部１４０の動作を制御する。
【００２８】
ＪＰＥＧ伸張制御部１５０は、処理開始通知ＦＭＳＴを受けると、これに基づいて、伸張処理のための制御動作を開始し、伸張開始通知ＤｓｔをＭＣＵ単位でブロックバッファ部２００へ出力する。また、ＪＰＥＧ伸張制御部１５０は、ＪＰＥＧデータ復号部１１０から、ＪＰＥＧデータとして入力される圧縮画像データ（ＪＰＥＧ画像データ）の表す画像の伸張後の画像サイズ（幅および高さ）を取得する。また、切り出し領域の大きさを示す切り出しサイズ（幅および高さ）および切り出しの開始位置を示す切り出し開始位置（ＢＸ，ＢＹ）を取得する。取得した画像サイズはＭＣＵバッファ部１２０および領域切り出し部１３０に供給され、取得した切り出しサイズおよび切り出し開始位置は領域切り出し部１３０に供給される。ここで、上記画像サイズは、ＪＰＥＧデータのヘッダを参照することにより取得することができる。また、切り出しサイズおよび切り出し開始位置は、解像度変換制御部６００から供給される切り出し情報ＣＩＮＦを参照することにより取得することができる。
【００２９】
図３は、画像サイズおよび切り出しサイズについて示す説明図である。ＪＰＥＧフォーマットによる圧縮画像データは、その元となる圧縮前の画像データが８×８画素のブロックおよびこのブロックにより構成されるＭＣＵを基準として処理されたデータである。そこで、画像サイズおよび切り出しサイズを示す幅および高さは、ブロックの数で表すことが可能である。また、切り出し開始位置は、左上のブロックを基準（原点）として、水平方向および垂直方向の座標（ＢＸ，ＢＹ）で表すことが可能である。例えば、図に示す切り出し開始位置の座標（ＢＸ，ＢＹ）は（２，２）となる。
【００３０】
また、ＪＰＥＧ伸張制御部１５０（図２）は、ＪＰＥＧデータ復号部１１０を制御してＭＣＵごとに入力される圧縮画像データの復号処理を実行するとともに、ブロックごとの復号処理の開始を示すブロック伸張開始通知ＤＢｓｔをＭＣＵバッファ部１２０へ出力し、また、処理の対象となっているブロックを示すポインタ（ｘ，ｙ）を、ＭＣＵバッファ部１２０および領域切り出し部１３０へ出力する。なお、ＭＣＵのブロック構成は、圧縮モードに応じて決められており、入力されるＪＰＥＧデータがいずれの圧縮モードであるかは、ヘッダに記載されている圧縮モード情報を参照することにより判断することができる。なお、この圧縮モード情報は、画像サイズとともに、ＪＰＥＧ画像情報ＪＩＮＦとして解像度変換制御部６００に供給される。
【００３１】
図４は、圧縮モードについて示す説明図である。図４に示すように、圧縮モードは、２種類の系列に分類される。
【００３２】
第１種類の系列は、図４（Ａ）に示すように、水平方向に並ぶ４つのブロックを１つのＭＣＵとする系列である。また、第２種類の系列は、図４（Ｂ）に示すように、水平方向の２ブロックおよび垂直方向の２ブロックの２×２ブロックを１つのＭＣＵとする系列である。図中の各ブロックに付されている符号Ｂ００〜Ｂ９９は、各ブロックをブロックの座標（ＢＸ，ＢＹ）を用いて示したものである。例えば、Ｂ００は座標（０，０）のブロックを示している。また、各ブロックに付されている括弧内の数字（１〜８０）は、ブロックの並び順を示している。
【００３３】
上記のように、ＭＣＵの構成が異なるので、切り出し領域の設定は、第１種類の系列の場合には、図４（Ａ）に示すように、ブロック単位で実行することができるが、第２種類の系列の場合には、図４（Ｂ）に示すように、ＭＣＵ単位、すなわち、２×２ブロックの４つのブロックを単位として設定しなければならない。なお、第１種類の系列に含まれる圧縮モードには、ＹＵＶ４４４，ＹＵＶ４２２，ＹＵＶ４１１，および、Ｇｒａｙｓｃａｌｅ等の圧縮モードがあげられる。また、第２種類の系列に含まれる圧縮モードには、ＹＵＶ４２０等のモードがあげられる。
【００３４】
ＪＰＥＧデータ復号部１１０は、図示しないＪＰＥＧデータ出力装置へ出力するＪＰＥＧデータ要求通知Ｃｄｒｑに対する応答として、上記出力装置からＭＣＵ単位で出力されるＪＰＥＧデータＣｄを、ＪＰＥＧデータＣｄとともに出力されるＪＰＥＧデータ有効通知Ｃｄｖｌｄに基づいて入力し、入力したＪＰＥＧデータとしての圧縮画像データを、ＭＣＵ単位で順に復号する。復号した画像データ（以下、「復号データ」と呼ぶ。）Ｃｃｄは、ＭＣＵバッファ部１２０から出力される復号データ要求通知Ｃｃｒｑに対する応答として、復号データ有効通知ＣｃｖｌｄとともにＭＣＵバッファ部１２０へ出力される。なお、ＪＰＥＧデータ復号部１１０から出力される復号データＣｃｄは、ＭＣＵを構成するブロック単位で順に出力される。
【００３５】
ＭＣＵバッファ部１２０は、ＪＰＥＧデータ復号部１１０から出力される復号データＣｃｄを、復号データＣｃｄとともに出力される復号データ有効通知Ｃｃｖｌｄに基づいて順に入力する。そして、入力した復号データに対して、圧縮モードに応じて不足する色差データ（Ｕデータ，Ｖデータ）の補完を行い、これにより得られた復号補完データＣｃｄｃを、ブロック単位で順に、復号補完データ有効通知Ｃｃｃｖｌｄとともに、領域切り出し部１３０へ出力する。
【００３６】
領域切り出し部１３０は、ＭＣＵバッファ部１２０から出力される復号補完データＣｃｄｃを、復号補完データ有効通知Ｃｃｃｖｌｄに基づいて入力する。領域切り出し部１３０は、入力した復号補完データから切り出し領域に対応するブロックの復号補完データを切り出し、切り出しデータＫｄとして切り出しデータ有効通知Ｋｄｖｌｄとともに色変換部１４０へ出力する。
【００３７】
色変換部１４０は、輝度（Ｙ）および２種類の色差（Ｕ，Ｖ）で表されたデータ（ＹＵＶデータと呼ばれる。）を、Ｒ，Ｇ，Ｂ各色の輝度で表されたデータ（ＲＧＢデータと呼ばれる。）に変換する。そして、色変換部１４０は、変換したＲＧＢデータを伸張データＤｄとして出力する。なお、この伸張データＤｄの出力は、ブロックバッファ部２００から出力される伸張データ要求通知Ｄｄｒｑに対する応答として、伸張データ有効通知Ｄｄｖｌｄの出力とともに、行われる。
【００３８】
ブロックバッファ部２００（図１）は、ＪＰＥＧ伸張部１００から出力される伸張データをブロック単位で一時記憶し、水平解像度変換部３００からの要求に応答して出力する機能ブロックである。
【００３９】
図５は、ブロックバッファ部２００の内部構成を示すブロック図である。このブロックバッファ部２００は、ブロックバッファメモリ部２１０と、ブロックバッファ管理部２２０と、を備える。
【００４０】
ブロックバッファメモリ部２１０は、伸張データをブロック（８×８画素）単位で記憶するための８つのブロックメモリＢＭ１〜ＢＭ８を有している。ブロックメモリへの伸張データの書き込みは、ブロックバッファ管理部２２０から供給されるライトデータ（伸張データ）ＷＤを、ブロックバッファ管理部２２０から供給されるブロック選択信号ＢＳＥＬ、ライトアドレスＷＡＤおよびライト制御信号ＷＣに基づいて書き込むことにより、実行される。また、ブロックメモリからの伸張データの読み出しは、ブロックバッファ管理部２２０から供給されるリードアドレスＲＡＤおよびリード制御信号ＲＣに基づいて読み出すことにより実行される。読み出したリードデータ（伸張データ）ＲＤは、ブロックバッファ管理部２２０へ供給される。
【００４１】
ブロックバッファ管理部２２０は、処理開始通知ＦＭＳＴ、伸張開始通知Ｄｓｔ、および、ブロック伸張開始通知ＤＢｓｔの入力に基づいて、伸張データＤｄの入力をブロック単位で実行する。伸張データＤｄの入力は、伸張データ要求通知Ｄｄｒｑを出力し、これに応答してＪＰＥＧ伸張部１００から出力される伸張データＤｄを、同時に出力される伸張データ有効通知Ｄｄｖｌｄに基づいて取り込むことにより、実行される。そして入力された伸張データＤｄをライトデータＷＤとし、ブロック選択信号ＢＳＥＬに従って選択されるブロックメモリの、ライトアドレスＷＡＤに対応するアドレスの記憶領域に、ライト制御信号ＷＣに基づいて書き込む。なお、ブロックバッファ管理部２２０は、あらかじめ解像度変換制御部６００から供給される圧縮モード情報ＪＰＭＤに応じて、ブロック単位の伸張データを記憶するブロックメモリの選択、書き込み、および、いずれのブロックメモリにいずれの伸張データが記憶されているか、を管理する。
【００４２】
また、ブロックバッファ管理部２２０は、水平解像度変換部３００から供給される水平対象画素位置データＸＹｈおよび水平対象データ要求通知Ｄｈｔｒｑに基づいて、水平対象データＤｈｔとして水平解像度変換部３００に供給するための伸張データを、ブロックバッファメモリ部２１０から読み出し、水平対象データＤｈｔとして出力する。水平対象データＤｈｔの出力は、水平対象データ要求通知Ｄｈｔｒｑに対する応答として、水平対象画素の画像データを生成するために必要な画素の画素データが記憶されているブロックメモリのアドレスをリードアドレスＲＡＤとして出力し、そのアドレスに書き込まれている伸張データを、リード制御信号ＲＣに基づいて読み出す。そして、読み出した伸張データを、水平対象データＤｈｔとして、水平対象データ有効通知Ｄｈｔｖｌｄとともに出力する。
【００４３】
水平解像度変換部３００（図１）は、解像度変換制御部６００から供給される解像度変換情報ＩＮＦに基づいて、ＪＰＥＧ伸張部１００で伸張された伸張データの表す画像の水平方向の解像度を変換する。この水平解像度変換部３００は、ｍタップ（ｍは２以上の整数であり、本例ではｍ＝１６とする。）のデジタルフィルタを用いた一般的な解像度変換回路により構成することができる。従って、水平解像度変換部３００は、水平対象画素位置データＸＹｈの表す水平対象画素位置を基準とし、この水平対象画素の水平方向の前後に並ぶｍ画素分の伸張データを水平対象データＤｈｔとして入力して、水平対象画素の画像データを生成することにより、水平方向についての解像度変換を実行する。
【００４４】
また、水平解像度変換部３００は、ラインバッファ部４００からの水平処理データ要求通知Ｄｈｒｑに応答して、解像度変換した画像データを水平処理データＤｈとして、水平処理データ有効通知Ｄｈｖｌｄとともに、ラインバッファ部４００へ出力する。
【００４５】
ラインバッファ部４００は、水平解像度変換部３００から出力される水平処理データを、ライン単位（行単位）で一時保存し、垂直解像度変換部５００からの要求に応答して出力する機能ブロックである。
【００４６】
図６は、ラインバッファ部４００の内部構成を示すブロック図である。このラインバッファ部４００は、ラインバッファメモリ部４１０と、ラインバッファ管理部４２０と、を備える。
【００４７】
ラインバッファメモリ部４１０は、水平処理データを水平ライン（以下、単に「ライン」と呼ぶ。）単位で記憶するためのラインメモリＬＭを有している。ラインメモリＬＭは水平方向に解像度変換された画像データをライン単位で記憶するための３２ライン分の記憶領域を有している。１ラインあたりの記憶領域は、水平方向に解像度変換された画像データ（水平処理データ）の水平方向の最大値に応じて設定される。なお、上記したように、圧縮伸張の処理単位は、ＭＣＵ単位およびＭＣＵを構成するブロック単位で扱われており、垂直方向について着目すると、１ブロックは８ライン単位で扱われているので、ラインメモリＬＭは、便宜上８ラインごとに区分した４つのラインブロックＬＭ１〜ＬＭ４で示されている。ラインメモリへの水平処理データの書き込みは、ラインバッファ管理部４２０から供給されるライトデータ（水平処理データ）ＷＤＬを、ラインバッファ管理部４２０から供給されるラインブロック選択信号ＬＳＥＬ、ライトアドレスＷＡＤＬおよびライト制御信号ＷＣＬに基づいて書き込むことにより、実行される。また、ラインメモリからの水平処理データの読み出しは、ラインバッファ管理部４２０から供給されるリードアドレスＲＡＤＬおよびリード制御信号ＲＣＬに基づいて読み出すことにより実行される。読み出したリードデータ（水平処理データ）ＲＤＬは、ラインバッファ管理部４２０へ供給される。
【００４８】
ラインバッファ管理部４２０は、処理開始通知ＦＭＳＴの入力に基づいて、水平処理データＤｈの入力をライン単位で実行する。水平処理データＤｈの入力は、水平処理データ要求通知Ｄｈｒｑを出力し、これに応答して水平解像度変換部３００から出力される水平処理データＤｈを、同時に出力される水平処理データ有効通知Ｄｈｖｌｄに基づいて取り込むことにより、実行される。そして入力された水平処理データＤｈをライトデータＷＤＬとし、ラインブロック選択信号ＬＳＥＬに従って選択されるラインメモリの、ライトアドレスＷＡＤＬに対応するアドレスの記憶領域に、ライト制御信号ＷＣＬに基づいて書き込む。なお、ラインバッファ管理部４２０は、あらかじめ解像度変換制御部６００から供給される圧縮モード情報ＪＰＭＤに応じて、ライン単位の水平処理データを記憶するラインメモリの選択、書き込み、および、いずれのラインにいずれの水平処理データが記憶されているか、を管理する。
【００４９】
また、ラインバッファ管理部４２０は、垂直解像度変換部５００から供給される垂直対象画素位置データＸＹｖおよび垂直対象データ要求通知Ｄｖｔｒｑに基づいて、垂直対象データＤｖｔとして垂直解像度変換部５００に供給するための水平処理データを、ラインバッファメモリ部４１０から読み出し、垂直対象データＤｖｔとして出力する。垂直対象データＤｖｔの出力は、垂直対象データ要求通知Ｄｖｔｒｑに対する応答として、垂直対象画素の画像データを生成するために必要な画素の画像データが記憶されているラインメモリのアドレスを、リードアドレスＲＡＤＬとして出力し、そのアドレスに書き込まれている水平処理データを、リード制御信号ＲＣＬに基づいて読み出す。そして、読み出した水平処理データを、垂直対象データＤｖｔとして、垂直対象データ有効通知Ｄｖｔｖｌｄとともに出力する。
【００５０】
垂直解像度変換部５００（図１）は、解像度変換制御部６００から供給される解像度変換情報ＩＮＦに基づいて、水平解像度変換部３００で水平方向について解像度変換されることにより得られた画像データ（ラインバッファ部４００から出力される水平処理データ）の垂直方向の解像度を変換する。この垂直解像度変換部５００は、水平解像度変換部３００と同様に、ｎタップ（ｎは２以上の整数であり、本例ではｎ＝１６とする。）のデジタルフィルタを用いた一般的な解像度変換回路により構成することができる。従って、垂直解像度変換部５００は、垂直対象画素位置データＸＹｖの表す垂直対象画素位置を基準とし、この垂直対象画素の垂直方向の上下に並ぶｎ画素分の水平処理データを垂直対象データＤｖｔとして入力して、垂直対象画素の画像データを生成することにより、垂直方向への解像度変換を実行する。
【００５１】
そして、垂直解像度変換部５００による垂直方向への解像度変換により得られた解像度変換データＤｒは、解像度変換データ有効通知Ｄｒｖｌｄとともにフレームメモリへ出力される。なお、フレームメモリでは、解像度変換データ有効通知Ｄｒｖｌｄに基づいて、解像度変換データＤｒが入力されて書き込まれる。
【００５２】
以上のようにして、本実施例の画像処理装置１０は、入力したＪＰＥＧデータに含まれる圧縮画像データを伸張処理しつつ、解像度変換を実行することができる。
【００５３】
Ｂ．解像度変換処理動作：
図７〜図９は、画像処理装置１０による解像度変換処理において、各ブロックが実行する処理動作について示す説明図である。
【００５４】
まず、ステップＳ１０２では、ＪＰＥＧ伸張部１００のＪＰＥＧ伸張制御部１５０（図２）に、伸張後の画像サイズ（幅および高さ）と、切り出しサイズ（幅および高さ）および切り出し開始位置（ＢＸ，ＢＹ）とが設定される。
【００５５】
また、ステップＳ１０４では、ブロックバッファ部２００およびラインバッファ部４００（図２）に、圧縮モードが設定される。
【００５６】
そして、上記設定の終了後、実際に解像度変換処理が開始される。なお、以下の説明では、ＭＣＵが２×２の４つのブロックで構成され、図４（Ｂ）に示すように、切り出し領域が設定された場合を例に説明することとする。
【００５７】
まず、ステップＳ１０６では、ＪＰＥＧ伸張部１００のＪＰＥＧデータ復号部１１０（図２）によって、１ＭＣＵ分のＪＰＥＧ画像データに対して復号処理が実行される。このとき、得られた復号データは、ＪＰＥＧ伸張部１００のＭＣＵバッファ部１２０（図２）に入力され、圧縮モードの種類に応じて、補完処理がなされた後、領域切り出し部１３０に入力される。
【００５８】
ステップＳ１０８では、ＪＰＥＧ伸張部１００の領域切り出し部１３０（図２）によって、復号処理された１つのＭＣＵを構成する全ブロックの中に切り出し領域に相当するブロックが含まれているか否か判断される。
【００５９】
ここで、切り出し領域に相当するブロックが含まれていない場合には（ステップＳ１０８：ＮＯ）、ステップＳ１１０において、領域切り出し部１３０によって、復号処理された１つのＭＣＵを構成する全ブロックの復号データは破棄される。
【００６０】
一方、切り出し領域に相当するブロックが含まれている場合には（ステップＳ１０８：ＹＥＳ）、ステップＳ１１２において、領域切り出し部１３０によって、切り出し領域に相当するブロックの復号データが切り出し処理されて、色変換部１４０（図２）へ出力される。
【００６１】
例えば、図４（Ｂ）に示すように切り出し領域が設定されているとする。このとき、番号１〜４が付されている４つのブロックＢ００，Ｂ１０，Ｂ０１，Ｂ１１により構成されるＭＣＵには、切り出し領域が含まれていないので、これに含まれる４つのブロックの復号データは破棄される。一方、番号２５〜２８が付されている４つのブロックＢ２２，Ｂ３２，Ｂ２３，Ｂ３３により構成されるＭＣＵには、切り出し領域が含まれているので、これに含まれる復号データは、ブロックごとに順に切り出し処理されて、色変換部１４０へ出力される。
【００６２】
そして、ステップＳ１１４では、色変換部１４０によって、領域切り出し部１３０から入力された切り出しデータが、ＹＵＶ形式のデータ（ＹＵＶデータ）からＲＧＢ形式のデータ（ＲＧＢデータ）に変換され、ステップＳ１１６では、色変換部１４０によって、ＲＧＢデータに変換された切り出しデータが、ＪＰＥＧ伸張部１００によって処理された伸張データとして、ブロックバッファ部２００（図１）へ出力される。なお、ブロックバッファ部２００へ出力された伸張データは、ブロックバッファ部２００のブロックバッファメモリ部２１０（図５）に記憶される。
【００６３】
そして、ステップＳ１１８では、ブロックバッファ部２００のブロックバッファ管理部２２０において、水平解像度変換処理に必要なブロック数の復号処理が終了し、必要なブロック数の伸張データがブロックバッファ部２００のブロックバッファメモリ部２１０に記憶されているか否か判断される。
【００６４】
ここで、まだ、必要なブロック数の伸張データがブロックバッファメモリ部２１０に記憶されておらず、水平解像度変換処理に必要なブロック数の復号処理が終了していない場合には（ステップＳ１１８：ＮＯ）、ステップＳ１０６に戻って、次のＭＣＵの復号処理が実行される。
【００６５】
一方、必要なブロック数の伸張データがブロックバッファメモリ部２１０に記憶されており、水平解像度変換処理に必要なブロック数の復号処理が終了している場合には（ステップＳ１１８：ＹＥＳ）、ブロックバッファ部２００において、後述するステップＳ１２０の処理が実行される。
【００６６】
図１０は、ブロックバッファ部２００のブロックバッファメモリ部２１０において実行される伸張データの記憶処理について示す説明図である。ＪＰＥＧ伸張部１００から出力される伸張データは、ＭＣＵ（２×２ブロック）単位で、かつ、ＭＣＵを構成する４つのブロックに対して規定されている順番で、ブロックバッファ部２００に入力され、ブロックバッファメモリ部２１０のブロックメモリＢＭ１〜ＢＭ８に記憶される。例えば、図４（Ｂ）に示した切り出し領域の先頭のＭＣＵを構成する番号２５〜２８が付された４つのブロックＢ２２，Ｂ３２，Ｂ２３，Ｂ３３は、まず、図１０（Ａ）に示すように、ブロックバッファメモリ部２１０の左側に並ぶ２行２列の４つのブロックメモリＢＭ１，ＢＭ２，ＢＭ５，ＢＭ６に記憶される。
【００６７】
上記したように、水平解像度変換部３００（図１）は、ｍ（ｍ＝１６）タップのデジタルフィルタによって構成されているため、水平解像度変換部３００において１つの水平対象画素の画像データを生成するために必要な画像データ（伸張データ）の数は、ｍ画素（１６画素）となる。従って、ブロックバッファ部２００は、水平解像度変換部３００から供給される水平対象画素位置データＸＹｈに対して、水平対象画素位置（ｘ，ｙ）を含み、水平方向に前後に並ぶｍ画素（１６画素）分の伸張データを、水平対象データとして出力する必要がある。ただし、水平対象画素位置データＸＹｈの表す座標は、実際の水平対象画素位置を示す座標の少数部分を無視して整数部分のみで表したものであり、実際の水平対象画素位置は、整数で表された座標ｘからその次の座標ｘ＋１までの間となる。しかしながら、ブロックバッファ部２００において、整数で表された座標を水平画素位置の座標として扱っても、水平解像度変換部３００における処理に関して何ら問題は無い。座標（ｘ，ｙ）の小数点以下の値を反映するために、水平解像度変換部３００に入力された１６画素分の伸張データに対して、座標（ｘ，ｙ）の小数点以下の値の重み付けを加味したフィルタ係数を用いて水平解像度変換の演算を行う。そこで、以下では、水平対象画素位置データＸＹｈの表す座標（ｘ，ｙ）を水平対象画素位置の座標として説明することとする。なお、水平対象データとして出力する１６画素分の伸張データとしては、水平対象画素位置データＸＹｈの表すｘ座標の画素と、この画素よりも前列側の７画素と、この画素よりも後列側の８画素の１６画素分（ｘ座標がｘ−７〜ｘ＋８）の伸張データが出力される。
【００６８】
このとき、水平対象画素位置データＸＹｈの表す座標（ｘ，ｙ）が、例えば、図に示すように、第２のブロックメモリＢＭ２に記憶されているブロックＢ３２内の伸張データを示している場合、２つのブロックメモリＢＭ１，ＢＭ２に記憶され、水平方向に並ぶ１６画素の伸張データのみでは、水平対象画素位置よりも後列側の８画素分の伸張データを得ることができない。このため、第２のブロックメモリＢＭ２に記憶されているブロックＢ３２の次のブロック（図４（Ｂ）のＢ４２（番号２９））の伸張データが必要となる。
【００６９】
そこで、このような状況下において、ステップＳ１１８では、水平解像度変換処理に必要なブロック数の伸張処理がまだ終了していないと判断され（ステップＳ１１８：ＮＯ）、ステップＳ１０６に戻って、次のＭＣＵの復号処理が開始される。これにより、図１０に示すように、例えば、図４（Ｂ）に示した切り出し領域における、次のＭＣＵを構成する４つのブロックＢ４２，Ｂ５２，Ｂ４３，Ｂ５３が、残りの４つのブロックメモリＢＭ３，ＢＭ４，ＢＭ７，ＢＭ８に記憶される。
【００７０】
なお、上記のように、水平対象画素位置の座標（ｘ，ｙ）が第２のブロックメモリＢＭ２に記憶されているブロックＢ４３内の伸張データを示している場合に、新たに必要な伸張データのブロック数は、ブロックＢ４２の次のブロックＢ５２のみでよいが、ＪＰＥＧ伸張部１００において実行される伸張処理は、ＭＣＵ単位であるので、４つのブロックの圧縮データが伸張処理されて出力される。従って、ブロックバッファ部２００では、４ブロック単位で伸張データをブロックバッファメモリ部２１０に記憶しておく必要がある。
【００７１】
以上のようにして、水平方向に連続する２つのＭＣＵに含まれる８つのブロックの伸張データがブロックバッファメモリ部２１０に記憶されることにより、ブロックバッファ部２００では、水平解像度変換部３００から要求される水平対象画素位置データＸＹｈの表す水平画素位置の座標（ｘ，ｙ）に対応する１６画素分（ｘ座標がｘ−７〜ｘ＋８）の伸張データを、水平解像度変換部３００へ供給することが可能となる。そして、水平解像度変換部３００では、ＪＰＥＧ伸張部１００で伸張された画像データの解像度変換を水平方向に対してのみ実行することができる。
【００７２】
次に、ステップＳ１２０では、ブロックバッファ部２００のブロックバッファ管理部２２０において、水平解像度変換部３００に対して水平対象データを供給するために、水平ミラーリング処理が必要か否か判断される。
【００７３】
ここで、水平ミラーリング処理が必要な場合には（ステップＳ１２０：ＹＥＳ）、ステップＳ１２２において、ブロックバッファメモリ部２１０に記憶されている伸張データに対して水平ミラーリング処理を実行することによりデータ補完が行われ、水平方向についての解像度変換に必要な水平対象データとして、水平方向に並ぶ１６画素分の画像データ（伸張データ）が水平解像度変換部３００へ出力される。
【００７４】
一方、水平ミラーリング処理が不要な場合には（ステップＳ１２０：ＮＯ）、ブロックバッファメモリ部２１０から、水平方向についての解像度変換に必要な水平対象データとして、水平方向に並ぶ１６画素分の伸張データが読み出されて、水平解像度変換部３００へ出力される。
【００７５】
図１１は、水平ミラーリング処理について示す説明図である。図は４つのブロックメモリＢＭ１，ＢＭ２，ＢＭ５，ＢＭ６に、図４（Ｂ）に示した切り出し領域の先頭のＭＣＵのブロックＢ２２（番号２５），Ｂ２３（番号２６），Ｂ２３（番号２７），Ｂ３３（番号２８）が記憶されている状態を示している。
【００７６】
水平対象画素位置の座標（ｘ，ｙ）が、画像の左端縁に相当する部分、例えば、図に示すように、切り出し領域の先頭のブロックＢ２２内の位置を示していた場合、対応する１６画素分のうち、その座標の画素よりも前列側の画素として存在しない画素が発生する。このような場合には、ブロックＢ２２の伸張データを水平方向にミラーリング処理することにより、ブロックＢ２２よりも前側のブロックを仮想的に構築して、不足する伸張データを補完するようにすればよい。例えば、図に示すように、水平対象画素位置の座標（ｘ，ｙ）に対応する行のブロックＢ３３の画素を先頭から後列に向かって順にａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇである場合には、ブロックＢ３３をミラーリング処理することにより、仮想的に構築されたブロックにおける画素は、前列に向かって順にａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇとされる。
【００７７】
なお、図１１で説明した例は、画像の左端縁に相当する部分について示したが、画像の右端縁に相当する部分についても同様であり、水平ミラーリング処理によりデータを補完すればよい。
【００７８】
以上のように、画像の左端縁および右端縁に相当する部分について、水平ミラーリング処理を利用することにより、水平解像度変換後の画像データにノイズが発生して画質が劣化することを抑制することができる。
【００７９】
そして、ステップＳ１２４では、水平解像度変換部３００（図１）において、ブロックバッファ部２００から水平対象データとして出力される１６画素分の伸張データを用いて、水平対象画素位置に対応する画像データを生成することにより、水平方向についての解像度変換が実行される。
【００８０】
また、ステップＳ１２６では、水平解像度変換部３００において、生成した画像データが水平方向について解像度変換された水平処理データとして、ラインバッファ部４００（図１）へ出力される。
【００８１】
そして、ステップＳ１２８では、ブロックバッファ部２００のブロックバッファ管理部２２０において、ブロックバッファメモリ部２１０（図６）にブロック単位で記憶されている伸張データの更新が必要であるか否か判断される。
【００８２】
ここで、伸張データの更新が必要でない場合には（ステップＳ１２８：ＮＯ）、ステップＳ１２０〜Ｓ１２６の処理が繰り返される。
【００８３】
一方、伸張データの更新が必要である場合には（ステップＳ１２８：ＹＥＳ）、ステップＳ１３０で、ラインバッファ部４００のラインバッファ管理部４２０（図６）において、垂直解像度変換処理に必要なライン数の復号処理が終了し、必要なライン数の水平処理データがラインバッファ部４００のラインバッファメモリ部４１０（図６）に記憶されているか否か判断される。
【００８４】
ここで、まだ、必要なライン数の水平処理データがラインバッファメモリ部４１０に記憶されておらず、垂直解像度変換処理に必要なライン数の水平解像度変換処理が終了していない場合には（ステップＳ１３０：ＮＯ）、ステップＳ１０６に戻って、ステップＳ１０６〜ステップＳ１２８までの処理が繰り返される。
【００８５】
図１２は、ブロックバッファメモリ部２１０にブロック単位で記憶されている伸張データの更新について示す説明図である。水平解像度変換部３００から順に供給される水平対象画素位置データＸＹｈの表す座標が順に変化して、例えば、図１２（Ａ）に示すように、水平方向に並ぶ４つめのブロックＢ６２（図４（Ｂ））内の伸張データを示している場合、解像度変換のために必要な伸張データの数に不足が発生する。そこで、このような場合には、上記処理ステップＳ１２８において、ブロック単位の伸張データの更新が必要と判断され（ステップＳ１２８：ＹＥＳ）、さらに、ステップＳ１３０において垂直解像度変換処理に必要な数のラインの水平解像度変換処理が終了したかを判断し、ステップＳ１０６に戻って、さらに、次のＭＣＵの復号処理が開始されることになる。これにより、図１２（Ｂ）に示すように、不要となった伸張データが記憶されていた４つのブロックメモリＢＭ１，ＢＭ２，ＢＭ５，ＢＭ６が更新され、次のＭＣＵの復号処理により得られた４つのブロックＢ６２，Ｂ７２，Ｂ６３，Ｂ７３の伸張データが記憶される。これにより、ブロックバッファメモリ部２１０の８つのブロックメモリＢＭ１〜ＢＭ８に記憶される画像データ（伸張データ）の更新を実行することができる。なお、図１２（Ｂ）に示す図は、水平方向のブロックの並び順をわかりやすくするために、便宜上、４つのブロックメモリＢＭ３，ＢＭ４，ＢＭ７，ＢＭ８を前段側、４つのブロックメモリＢＭ１，ＢＭ２，ＢＭ５，ＢＭ６を後段側として、示している。
【００８６】
一方、ステップＳ１３０において、必要なライン数の水平処理データがラインバッファメモリ部４１０に記憶されており、垂直解像度変換処理に必要なライン数の水平解像度変換処理が終了している場合には（ステップＳ１３０：ＹＥＳ）、ラインバッファ部４００において、後述する次のステップＳ１３２の処理が実行される。
【００８７】
ここで、図１３は、ラインバッファ部４００のラインバッファメモリ部４１０において実行される水平処理データの記憶処理について示す説明図である。水平解像度変換部３００から出力される水平処理データは、解像度変換前の垂直方向の２ブロックに相当するライン数、すなわち、８×２ライン（１６ライン）ごとに、ラインバッファメモリ部４１０のラインブロックＬＭ１〜ＬＭ４に記憶される。例えば、図４（Ｂ）に示した切り出し領域の１番上のブロックの行に並ぶブロックＢ２２（番号２５），Ｂ３２（番号２６），Ｂ４２（番号２９），Ｂ５２（番号３０），Ｂ６２（番号３３），Ｂ７２（番号３４）の８つのブロックの伸張データを水平方向に解像度変換することにより得られた水平処理データは、第１のラインブロックＬＭ１に記憶され、図４（Ｂ）に示した切り出し領域の２番目のブロックの行に並ぶブロックＢ２３（番号２７），Ｂ３３（番号２８），Ｂ４３（番号３１），Ｂ５３（番号３２），Ｂ６３（番号３５），Ｂ７３（番号３６）の８つのブロックの伸張データを水平方向に解像度変換することにより得られた水平処理データは、第２のラインブロックＬＭ２に記憶される。
【００８８】
上記したように、垂直解像度変換部５００（図１）は、ｎ（ｎ＝１６）タップのデジタルフィルタによって構成されているため、垂直解像度変換部５００において１つの垂直対象画素の画像データを生成するために必要な画像データ（水平処理データ）の数は、ｎ画素（１６画素）となる。従って、ラインバッファ部４００は、垂直解像度変換部５００から供給される垂直対象画素位置データＸＹｖに対して、垂直対象画素位置（ｘ，ｙ）を含み、垂直方向に上下に並ぶｎ画素（１６画素）分の水平処理データを、垂直対象データとして出力する必要がある。ただし、垂直対象画素位置データＸＹｖの表す座標は、水平対象画素位置データＸＹｈと同様に、実際の垂直対象画素位置を示す座標の小数部分を無視した整数部分のみで表したものであり、実際の垂直対象画素位置は、整数で表された座標ｙからその次の座標ｙ＋１までの間となる。しかしながら、ラインバッファ部４００において、整数で表された座標を垂直画素位置の座標として扱っても、垂直解像度変換部５００における処理に関して何ら問題は無い。座標（ｘ，ｙ）の小数点以下の値を反映するために、垂直解像度変換部３００に入力された１６画素分の伸張データに対して、座標（ｘ，ｙ）の小数点以下の値の重み付けを加味したフィルタ係数を用いて垂直解像度変換の演算を行う。そこで、以下では、垂直対象画素位置データＸＹｖの表す座標（ｘ，ｙ）を垂直対象画素位置の座標として説明することとする。なお、垂直対象データとして出力する１６画素分の水平処理データとしては、垂直対象画素位置データＸＹｖの表すｙ座標の画素と、この画素よりも上行側の７画素と、この画素よりも下行側の８画素の１６画素分（ｙ座標がｙ−７〜ｙ＋８）の水平処理データが出力される。
【００８９】
このとき、垂直対象画素位置データＸＹｖの表す座標（ｘ，ｙ）が、例えば、図に示すように、第２のラインブロックＬＭ２に記憶されている水平処理データ（図４（Ｂ）に示した切り出し領域の２番目のブロックの行に並ぶブロックＢ２３〜Ｂ７３の８つのブロックの水平方向について解像度変換した画像データ）を示している場合、２つのラインブロックＬＭ１，ＬＭ２に記憶され、垂直方向に並ぶ１６画素の水平処理データのみでは、垂直画素位置よりも下行側の８画素分の伸張データを得ることができない、このため、第２のラインブロックＬＭ２に記憶されている水平処理データに対応するブロックの行の次のブロックの行（例えば、図４（Ｂ）に示した切り出し領域における３番目のブロックの行に並ぶブロックＢ２４，Ｂ３４，Ｂ４４，Ｂ５４，Ｂ６４，Ｂ７４）の水平処理データが必要となる。
【００９０】
そこで、このような状況下においては、ステップＳ１３０では、垂直解像度変換処理に必要なライン数の伸張処理が終了していないと判断され（ステップＳ１３０：ＮＯ）、ステップＳ１０６に戻って、次のＭＣＵの復号処理が繰り返し実行される。これにより、図１３に示すように、例えば、図４（Ｂ）に示した切り出し領域の３番目のブロックの行に並ぶブロックＢ２４，Ｂ３４，Ｂ４４，Ｂ５４，Ｂ６４，Ｂ７４に対応する水平処理データが、第３のラインブロックＬＭ３に記憶され、図４（Ｂ）に示した切り出し領域の４番目のブロックの行に並ぶブロックＢ２５，Ｂ３５，Ｂ４５，Ｂ５５，Ｂ６５，Ｂ７５に対応する水平処理データが、第４のラインブロックＬＭ４に記憶される。
【００９１】
なお、上記のように、垂直対象画素位置の座標（ｘ，ｙ）が第２のラインブロックＬＭ２に記憶されている水平処理データを示していた場合に、新たに必要な水平処理データのライン数は、次のブロックの行、すなわち、８ライン分の水平処理データでよいが、上記したように、ＪＰＥＧ伸張部１００において実行される伸張処理は、２×２ブロックで構成されるＭＣＵ単位であるので、水平解像度変換部３００からは、垂直方向に並ぶ２つのブロックの行に相当するライン数、すなわち、１６ライン分の水平処理データが出力されることになる。従って、ラインバッファ部４００では、４つのブロックの行に対応するライン数、すなわち、８×４（＝３２）ライン分の水平処理データをラインバッファメモリ部４１０に記憶しておく必要がある。
【００９２】
以上のようにして、垂直方向に連続する４つのブロックの行に対応する３２ラインの水平処理データをラインバッファメモリ部４１０に記憶することにより、垂直解像度変換部５００では、垂直解像度変換部５００から要求される垂直対象画素位置データＸＹｖの表す垂直対象画素位置の座標（ｘ，ｙ）に対応する１６画素分（ｙ座標がｙ−７〜ｙ＋８）の水平処理データを、垂直解像度変換部５００へ供給することが可能となる。そして、垂直解像度変換部５００では、水平解像度変換部３００で水平方向について解像度変換された画像データを垂直方向について解像度変換することができる。
【００９３】
次に、ステップＳ１３２では、ラインバッファ部４００のラインバッファ管理部４２０において、垂直解像度変換部５００に対して垂直対象データを供給するために、垂直ミラーリング処理が必要か否か判断される。
【００９４】
ここで、垂直ミラーリング処理が必要な場合には（ステップＳ１３２：ＹＥＳ）、ステップＳ１３４において、ラインバッファメモリ部４１０に記憶されている水平処理データに対して垂直ミラーリング処理を実行することによりデータ補完が行われ、垂直方向についての解像度変換に必要な垂直対象データとして、垂直方向に並ぶ１６画素分の画像データ（水平処理データ）が垂直解像度変換部５００へ出力される。
【００９５】
一方、垂直ミラーリング処理が不要な場合には（ステップＳ１３２：ＮＯ）、ラインバッファメモリ部４１０から、垂直方向についての解像度変換に必要な垂直対象データとして、垂直方向に並ぶ１６画素分の水平処理データが読み出されて、垂直解像度変換部５００へ出力される。
【００９６】
なお、この垂直ミラーリング処理は、画像の上端縁および下端縁に相当する部分に関して実行される点を除いて、上記したブロックバッファメモリ部２１０における水平ミラーリング処理と同様であり、その目的および効果も同様であるので、ここでは説明を省略する。
【００９７】
そして、ステップＳ１３６では、垂直解像度変換部５００において、ラインバッファ部４００から垂直対象データとして出力される１６画素分の水平処理データを用いて、垂直対象画素位置に対応する画像データを生成することにより、垂直方向への解像度変換が実行される。
【００９８】
また、ステップＳ１３８では、垂直解像度変換部５００において、生成した解像度変換データがフレームメモリへ出力される。
【００９９】
そして、ステップＳ１４０では、ラインバッファ部４００において、ラインバッファメモリ部４１０にライン単位で記憶されている水平処理データの更新が必要であるか否か判断される。
【０１００】
ここで、水平処理データの更新が必要でない場合には（ステップＳ１４０：ＮＯ）、ステップＳ１３２〜Ｓ１３８の処理が繰り返される。
【０１０１】
一方、水平処理データの更新が必要である場合には（ステップＳ１４０：ＹＥＳ）、ステップＳ１４２において、さらに、１フレーム、すなわち、画像１枚分の処理が終了したか否か判断される。
【０１０２】
ここで、まだ、画像１枚分の処理が終了していない場合には（ステップＳ１４２：ＮＯ）、ステップＳ１０６へ戻って、ステップＳ１０６〜ステップＳ１４０までの処理が繰り返される。
【０１０３】
一方、画像１枚分の処理が終了した場合には（ステップＳ１４２：ＹＥＳ）、この解像度変換処理動作が終了する。
【０１０４】
なお、ステップＳ１４０における水平処理データの更新の判断は、上記したステップＳ１２８における伸張データの更新の判断と同様の手順で実行することができるので、ここでは説明を省略する。
【０１０５】
以上のように、上記実施例の解像度変換装置としての画像処理装置では、ＪＰＥＧフォーマットによる圧縮画像データを、ＭＣＵ単位で伸張処理しつつ、伸張処理された画像データを順次解像度変換することにより、少ない容量のメモリを用いて、ブロックノイズの発生を抑制しつつ、効率よく解像度変換することが可能である。
【０１０６】
また、伸張処理された画像データのうち、設定した切り出し領域に対応する画像データのみを切り出して順次解像度変換することができるので、不要な部分を解像度変換する必要がなく、効率よく解像度変換することが可能である。
【０１０７】
Ｃ．変形例：
なお、上記実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は付加的な要素であり、適宜省略可能である。また、この発明は上記実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１０８】
Ｃ１．変形例１：
上記実施例では、ＭＣＵを構成するブロックを２×２ブロックとした場合を例に説明したが、ＭＣＵを構成するブロックを水平方向に並ぶ４ブロックとした場合にも同様に適用可能である。ただし、この場合には、ブロックバッファメモリ部に備えるブロックメモリの数は最低３個でよく、ラインバッファメモリ部に備えるラインメモリのライン数は、２４ラインでよい。
【０１０９】
Ｃ２．変形例２：
上記実施例では、８×８画素で構成されるブロックを例に説明したが、これに限定されるものではなくｐ×ｑ画素（ｐ，ｑは２以上の整数）で構成されるブロックであってもよい。ただし、この場合には、ブロックのサイズに応じて、ブロックバッファ部のブロックバッファメモリ部に含まれるブロックメモリの構成や、ラインバッファ部のラインバッファメモリ部に含まれるラインメモリの構成を変更することが好ましい。
【０１１０】
また、ＭＣＵの構成も種々の構成とすることができる。ただし、この場合においても、同様に、ＭＣＵの構成に応じて、ブロックバッファ部のブロックバッファメモリ部に含まれるブロックメモリの構成や、ラインバッファ部のラインバッファメモリ部に含まれるラインメモリの構成を変更することが好ましい。
【０１１１】
Ｃ３．変形例３：
上記実施例では、任意の画像サイズを有する画像データ（伸張画像データ）から、あらかじめ設定された切り出しサイズを有する画像を有する画像データ（伸張画像データ）を切り出して、解像度を変換する場合を例に説明しているが、切り出しサイズを画像サイズに一致させることにより、切り出した画像データではなく、任意の画像サイズの画像データの解像度を変換することが可能である。なお、画像の切り出しが不要な場合には、ＪＰＥＧ伸張部に備える領域切り出し部を省略すればよい。
【０１１２】
Ｃ４．変形例４：
上記実施例では、ＪＰＥＧ伸張部を、ＹＵＶデータをＲＧＢデータに変換する色変換部を備える構成として説明しているが、これに限定されるものではなく、色変換部を省略する構成であってもよい。
【０１１３】
Ｃ５．変形例５：
上記実施例の画像処理装置は、プロジェクタに用いられる画像処理装置の一部を構成することとして説明したが、これに限定されるものではなく、他の画像表示装置や印刷装置等の種々の装置を構成する画像処理装置の構成要素として適用することが可能である。
【符号の説明】
【０１１４】
１０…画像処理装置
１００…ＪＰＥＧ伸張部
１１０…ＪＰＥＧデータ復号部
１２０…ＭＣＵバッファ部
１３０…領域切り出し部
１４０…色変換部
１５０…ＪＰＥＧ伸張制御部
２００…ブロックバッファ部
２１０…ブロックバッファメモリ部
２２０…ブロックバッファ管理部
３００…水平解像度変換部
４００…ラインバッファ部
４１０…ラインバッファメモリ部
４２０…ラインバッファ管理部
５００…垂直解像度変換部
６００…解像度変換制御部
【図１】
2010045814.tif 000003
【図２】
2010045814.tif 000004
【図３】
2010045814.tif 000005
【図４】
2010045814.tif 000006
【図５】
2010045814.tif 000007
【図６】
2010045814.tif 000008
【図７】
2010045814.tif 000009
【図８】
2010045814.tif 000010
【図９】
2010045814.tif 000011
【図１０】
2010045814.tif 000012
【図１１】
2010045814.tif 000013
【図１２】
2010045814.tif 000014
【図１３】
2010045814.tif 000015