(57)【特許請求の範囲】
【請求項１】
第１の画像処理を実行可能に構成されており、前記第１の画像処理用の入力フォーマットに従ってデータの入力を受け付け、受け付けたデータに対して前記第１の画像処理を実行し、処理済みデータを出力する、画像処理モジュールと、
前記画像処理モジュールとバスとの間に接続されており、前記画像処理モジュールと前記バスとを仲介するラッパー処理を行う、ラッパーと
を備え、
前記ラッパー処理は、
前記バスを介して、前記第１の画像処理に供される画像データをその画像サイズに合わせて読み込む、第１の読み込み処理と、
前記第１の読み込み処理と並行してまたは前記第１の読み込み処理の終了後に、読み込んだ画像データを前記第１の画像処理用の前記入力フォーマットに適合するように変換する、変換処理と
を含み、
前記変換処理は、
前記第１の画像処理用の前記入力フォーマットで規定された入力画像サイズに満たない小さい画像ブロックが存在する場合に、ダミーデータを補充して前記小さい画像ブロックを前記入力画像サイズに拡大する、補充処理
を含み、
前記ラッパーは、
前記第１の読み込み処理によって前記バスを介して読み込んだ前記画像データを、前記ダミーデータ用に保持しておく、ダミーデータ保持部を含み、
前記ダミーデータ保持部が保持しておいた前記画像データを、前記補充処理の際に前記ダミーデータとして利用する、
画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記ラッパー処理は、
前記第１の画像処理によって得られた第１の処理済みデータを前記バスへ書き出す第１の書き出し処理
を含み、
前記第１の書き出し処理は、
前記第１の処理済みデータに、前記ダミーデータが補充された領域を特定可能な情報である補充関連情報を付加する情報付加処理
を含む、画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記画像処理モジュールは、前記第１の画像処理として圧縮処理を実行可能であると共に、前記第１の処理済みデータに対する伸長処理を第２の画像処理として実行可能に構成されており、
前記ラッパー処理は、
前記第１の処理済みデータを前記バスを介して読み込む第２の読み込み処理と、
前記第２の画像処理によって前記第１の処理済みデータから得られた第２の処理済みデータが前記ダミーデータを含む場合に、前記第１の処理済みデータに付加されていた前記補充関連情報に基づいて前記第２の処理済みデータから前記ダミーデータを削除するダミー削除処理と、
前記ダミーデータが削除された前記第２の処理済みデータを前記バスへ書き出す第２の書き出し処理と
を含む、画像処理装置。
【請求項４】
請求項１ないし請求項３のうちのいずれか１項に記載の画像処理装置であって、
前記補充処理では、前記小さい画像ブロックの右辺と下辺とのうちの少なくとも一方からなる画像端部を引き伸ばした画像が形成されるように、前記ダミーデータを補充する、画像処理装置。
【請求項５】
請求項１ないし請求項３のうちのいずれか１項に記載の画像処理装置であって、
前記補充処理では、前記小さい画像ブロックの右辺と下辺とのうちの少なくとも一方を対称軸とした鏡像が形成されるように、前記ダミーデータを補充する、画像処理装置。
【請求項６】
請求項１ないし請求項３のうちのいずれか１項に記載の画像処理装置であって、
前記補充処理では、前記小さい画像ブロックの右辺と下辺とのうちの少なくとも一方を対称軸とし前記小さい画像ブロック中の画素データのみからなる鏡像部分と、前記鏡像部分の右辺と下辺とのうちの少なくとも一方からなる鏡像端部を引き伸ばした引き伸ばし部分とを有する画像が形成されるように、前記ダミーデータを補充する、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
ＪＰＥＧ（Joint Photographic Experts Group）等の圧縮処理では、処理単位（ＭＣＵ（Minimum Coded Unit）とも称される）となる画像サイズが予め規定されている。このため、圧縮対象画像は上記所定の画像サイズごとにＪＰＥＧモジュールへ入力される。ＪＰＥＧのＭＣＵは、ＹＵＶ４２２の場合、例えば幅（Ｈ）が１６画素、高さ（Ｖ）が８画素の矩形画像である。
【０００３】
ＪＰＥＧモジュールは、図１４に示す従来の構成下では、バスに直接接続されている。同様に、ＣＰＵ（Central Processing Unit）と、ＤＲＡＭ（Dynamic Random Access Memory）と、ＤＭＡ（Direct Memory Access）コントローラもそれぞれバスに直接接続されている。なお、その他のモジュールがバスに接続されていても構わない。図１４の構成によれば、ＪＰＥＧモジュールとＤＲＡＭとの間でのデータ転送は、ＤＭＡコントローラによって行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１７５０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のように、ＪＰＥＧモジュールへの入力は所定の入力画像サイズごとに行う必要がある。ところが、圧縮対象画像は必ずしも、その入力画像サイズの倍数（具体的には、幅方向の画素数が１６の倍数、且つ、高さ方向の画素数が８の倍数）であるとは限らない。このため、実際には上記入力画像サイズに満たない小さいブロックは、不要な画素（すなわち不要な画素データ）を含んだ状態で圧縮されることになる。そのような不要画素は、圧縮の品質に影響を及ぼす可能性がある。また、不要画素も一緒にＤＲＡＭ等から読み出すことにより、バスの帯域が増加してしまう。
【０００６】
ここで、不要画素を含んだ状態で圧縮を行うと、それを伸長して得られる画像は不要画素を含むことになる。このため、伸長画像を不要画素も一緒にＤＲＡＭ等へ書き出すことにより、帯域が増加してしまう。
【０００７】
また、ＤＲＡＭの表示用メモリ領域に既に背景画像が置かれており、その上に伸長画像を配置する場合、伸長画像に含まれる不要画素が背景画像を上書きしてしまう。これを避けるためには、図１５に示すように、伸長画像を一旦、別のメモリ領域に展開し、不要部分を除いた部分、すなわち画像本体部分を、背景画像が既に置かれているメモリ領域へ転送すればよい。しかし、この手法によれば、余分な転送動作が必要になるので、帯域増加およびパフォーマンス低下を招いてしまう。
【０００８】
なお、上記ではＪＰＥＧを例示したが、他の圧縮／伸長技術についても同様の問題が生じうる。また、画像圧縮／伸長処理だけでなく、他の画像処理についても同様の問題が生じうる。
【０００９】
本発明は、帯域増加の防止等を実現可能な画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の態様に係る画像処理装置は、画像処理モジュールと、ラッパーとを含む。前記画像処理モジュールは、第１の画像処理を実行可能に構成されており、前記第１の画像処理用の入力フォーマットに従ってデータの入力を受け付け、受け付けたデータに対して前記第１の画像処理を実行し、処理済みデータを出力する。前記ラッパーは、前記画像処理モジュールとバスとの間に接続されており、前記画像処理モジュールと前記バスとを仲介するラッパー処理を行う。前記ラッパー処理は、前記バスを介して、前記第１の画像処理に供される画像データをその画像サイズに合わせて読み込む、第１の読み込み処理と、前記第１の読み込み処理と並行してまたは前記第１の読み込み処理の終了後に、読み込んだ画像データを前記第１の画像処理用の前記入力フォーマットに適合するように変換する、変換処理とを含む。前記変換処理は、前記第１の画像処理用の前記入力フォーマットで規定された入力画像サイズに満たない小さい画像ブロックが存在する場合に、ダミーデータを補充して前記小さい画像ブロックを前記入力画像サイズに拡大する、補充処理を含む。前記ラッパーは、前記第１の読み込み処理によって前記バスを介して読み込んだ前記画像データを、前記ダミーデータ用に保持しておく、ダミーデータ保持部を含む。前記ラッパーは、前記ダミーデータ保持部が保持しておいた前記画像データを、前記補充処理の際に前記ダミーデータとして利用する。
【００１１】
本発明の第２の態様に係る画像処理装置は、上記の第１の態様に係る画像処理装置であって、前記ラッパー処理は、前記第１の画像処理によって得られた第１の処理済みデータを前記バスへ書き出す第１の書き出し処理を含み、前記第１の書き出し処理は、前記第１の処理済みデータに、前記ダミーデータが補充された領域を特定可能な情報である補充関連情報を付加する情報付加処理を含む。
【００１２】
本発明の第３の態様に係る画像処理装置は、上記の第２の態様に係る画像処理装置であって、前記画像処理モジュールは、前記第１の画像処理として圧縮処理を実行可能であると共に、前記第１の処理済みデータに対する伸長処理を第２の画像処理として実行可能に構成されている。前記ラッパー処理は、前記第１の処理済みデータを前記バスを介して読み込む第２の読み込み処理と、前記第２の画像処理によって前記第１の処理済みデータから得られた第２の処理済みデータが前記ダミーデータを含む場合に、前記第１の処理済みデータに付加されていた前記補充関連情報に基づいて前記第２の処理済みデータから前記ダミーデータを削除するダミー削除処理と、前記ダミーデータが削除された前記第２の処理済みデータを前記バスへ書き出す第２の書き出し処理とを含む。
【００１３】
本発明の第４の態様に係る画像処理装置は、上記の第１ないし第３の態様のうちのいずれか１つに係る画像処理装置であって、前記補充処理では、前記小さい画像ブロックの右辺と下辺とのうちの少なくとも一方からなる画像端部を引き伸ばした画像が形成されるように、前記ダミーデータを補充する。
【００１４】
本発明の第５の態様に係る画像処理装置は、上記の第１ないし第３の態様のうちのいずれか１つに係る画像処理装置であって、前記補充処理では、前記小さい画像ブロックの右辺と下辺とのうちの少なくとも一方を対称軸とした鏡像が形成されるように、前記ダミーデータを補充する。
【００１５】
本発明の第６の態様に係る画像処理装置は、上記の第１ないし第３の態様のうちのいずれか１つに係る画像処理装置であって、前記補充処理では、前記小さい画像ブロックの右辺と下辺とのうちの少なくとも一方を対称軸とし前記小さい画像ブロック中の画素データのみからなる鏡像部分と、前記鏡像部分の右辺と下辺とのうちの少なくとも一方からなる鏡像端部を引き伸ばした引き伸ばし部分とを有する画像が形成されるように、前記ダミーデータを補充する。
【発明の効果】
【００１６】
上記の第１の態様によれば、第１の読み込み処理では、第１の画像処理に供される画像データを、その画像サイズに合わせて読み込む。すなわち、不要なデータは読み込まない。したがって、帯域増加を防止できる。また、第１の読み込み処理に伴って、第１の画像処理用の入力画像サイズに満たない小さい画像ブロックが生じたとしても、当該小さい画像ブロックは補充処理によって上記入力画像サイズに拡大される。このため、画像処理モジュールへのデータ入力に支障を来さない。
【００１７】
また、第１の態様によれば、ラッパーが画像処理モジュールとは別個に用意され、画像処理モジュールとバスとの間に接続されている。このため、例えばバスの仕様を変更する場合、その仕様変更をラッパーの修正で吸収することにより、画像処理モジュール自体は修正しなくて済む。また、別仕様の画像処理モジュールを採用する場合にも、ラッパーを修正すれば足りる。したがって、開発期間の短縮、開発コストの削減等を図ることができる。
【００１８】
上記の第２の態様によれば、画像処理モジュール自体は、ダミーデータの補充を把握および管理する機能を必要としない。このため、そのような機能を有さない画像処理モジュールを利用可能である。したがって、画像処理モジュールの選択、開発等の自由度が高くなる。
【００１９】
上記の第３の態様によれば、伸長データ（第２の処理済みデータ）は、圧縮時に補充したダミーデータを削除した上で、バスに書き出される。すなわち、不要なデータは書き出さない。したがって、帯域増加を防止できる。また、例えば、伸長データを表示用メモリ領域へ直接転送可能になるので、ダミーデータを削除するために一旦、別のメモリ領域へ転送する構成に比べて、パフォーマンスが向上する。
【００２０】
上記の第４の態様によれば、処理中の小さい画像ブロックに含まれる画素データをダミーデータに利用するので、当該小さい画像ブロックに近似しないデータを補充する構成に比べて、第１の画像処理に起因した画質劣化を抑制できる。また、ダミーデータとして利用するために保持しておくデータ量が少なくて済むので、回路規模を小さくできる。
【００２１】
上記の第５の態様によれば、処理中の小さい画像ブロックに含まれる画素データをダミーデータに利用するので、当該小さい画像ブロックに近似しないデータを補充する構成に比べて、第１の画像処理に起因した画質劣化を抑制できる。また、鏡像の利用によれば画像の急激な変化を抑制可能であるので、かかる点も画質劣化の抑制に貢献する。
【００２２】
上記の第６の態様によれば、処理中の小さい画像ブロックに含まれる画素データをダミーデータに利用するので、当該小さい画像ブロックに近似しないデータを補充する構成に比べて、第１の画像処理に起因した画質劣化を抑制できる。また、鏡像の利用によれば画像の急激な変化を抑制可能であるので、かかる点も画質劣化の抑制に貢献する。また、鏡像部分および引き伸ばし部分は処理中の小さい画像ブロックの画素データのみからなるので、当該小さい画像ブロックに隣接する画像ブロックのデータを保持しておく必要がない。このため、隣接画像ブロックのデータもダミーデータ用に保持する構成に比べて、回路規模を小さくできる。
【００２３】
本発明の目的、特徴、局面、および利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態について画像処理装置を例示するブロック図である。
【図２】実施の形態について処理対象画像を例示する図である。
【図３】実施の形態について画像処理装置による圧縮動作を例示するフローチャートである。
【図４】実施の形態についてラスタスキャン順のデータ読み込みを例示する図である。
【図５】実施の形態について画像処理モジュールへのデータ供給を例示する図である。
【図６】実施の形態について補充処理の対象となる小さい画像ブロックを例示する図である。
【図７】実施の形態について補充処理（引き伸ばし法）を例示する図である。
【図８】実施の形態について補充処理（折り返し法）を例示する図である。
【図９】実施の形態について補充処理（折り返し法＋引き伸ばし法）を例示する図である。
【図１０】実施の形態について画像処理装置による伸長動作を例示するフローチャートである。
【図１１】実施の形態についてラッパーを例示するブロック図である。
【図１２】実施の形態について補充処理回路を例示するブロック図である。
【図１３】実施の形態について補充処理回路（引き伸ばし法）を例示するブロック図である。
【図１４】従来技術の概略図である。
【図１５】従来技術について表示上の問題点を説明する図である。
【発明を実施するための形態】
【００２５】
＜１．画像処理装置の構成＞
図１に、実施の形態に係る画像処理装置１０のブロック図を例示する。図１の例によれば、画像処理装置１０は、ＣＰＵ１２と、メモリ１４と、画像処理モジュール１６と、ラッパー１８と、バス２０とを含んでいる。ＣＰＵ１２は画像処理装置１０の全体的な制御を行う。メモリ１４は例えばＤＲＡＭ等で構成される。図１の例では、ＣＰＵ１２およびメモリ１４はバス２０にそれぞれ直接接続されている。
【００２６】
画像処理モジュール１６は、所定の画像処理を行うように構成されたハードウェアモジュールである。ここでは、画像処理モジュール１６として、ＪＰＥＧに従って圧縮処理および伸長処理を行うＪＰＥＧモジュール１６を例示する。但し、この例に限定されるものではなく、例えばＪＰＥＧ ＸＲ（Joint Photographic Experts Group eXtended Range）等の他の圧縮／伸長方式を採用したモジュールを採用することも可能である。また、画像処理モジュール１６は、圧縮処理および伸長処理以外の画像処理を行うモジュールであってもよい。
【００２７】
また、ＪＰＥＧモジュール１６は、既存のモジュール、例えばいわゆるＩＰ（Intellectual Property）コアとして提供されるモジュールを用いることにする。そのような既存のモジュールでは、データの入力フォーマットおよび出力フォーマットが予め規定されている。このため、例えば圧縮処理に関し、ＪＰＥＧモジュール１６は、圧縮処理用の入力フォーマットに従ってデータの入力を受け付け、受け付けたデータに対して圧縮処理を実行し、処理済みデータすなわち圧縮データを圧縮処理用の出力フォーマットに従って出力する。伸長処理に関しても同様である。
【００２８】
例えば、圧縮処理用の入力フォーマットとして、処理単位（換言すればＭＣＵ）となる画像サイズが予め規定されている。なお、当該所定の画像サイズを処理画像サイズ、入力画像サイズ等とも称することにする。例えば、入力画像データがＹＵＶ４２２で構成されており、ＪＰＥＧモジュール１６の入力画像サイズが幅（Ｈ）方向に１６画素であり高さ（Ｖ）方向に８画素である場合を例示する。また、例えば圧縮対象の画像データのＹ、ＵおよびＶの各成分の入力順序も、入力フォーマットとして、予め規定されている。
【００２９】
ラッパー１８は、画像処理モジュール１６用に設けられたハードウェアモジュールである。ラッパー１８は、画像処理モジュール１６の外部に配置されており、画像処理モジュール１６とバス２０との間に接続されている。すなわち、画像処理モジュール１６はラッパー１８を介してバス２０に接続されており、画像処理モジュール１６とバス２０との間でのデータ転送等はラッパー１８によって仲介される。なお、ラッパー１８によるそのような仲介処理をラッパー処理とも称する。ラッパー処理の具体例は後述する。
【００３０】
なお、バス２０に、他のモジュール、例えばＪＰＥＧ処理以外の画像処理（各種補正等）を実行するモジュール、外部接続用（外部記憶媒体用、表示装置用等）のインターフェースを提供するモジュールが接続されていてもよい。
【００３１】
また、画像処理装置１０は１チップに集積された画像集積回路として提供可能であるが、その例に限定されるものではない。また、画像処理装置１０は種々に変形可能である。例えば、ＣＰＵ１２を画像処理装置１０内から省き、外部のＣＰＵを画像処理装置１０に接続するように変形可能である。また、ＣＰＵ１２の替わりにあるいはＣＰＵ１２と共に、メモリ１４とバス２０の一方または両方を画像処理装置１０内から省いてもよい。
【００３２】
＜２．圧縮動作＞
まず、図２に、以下の説明で用いる画像を例示する。図２に例示の画像３０は、幅（Ｈ）方向に７６画素が並び高さ（Ｖ）方向に４５画素が並んだ矩形をしている。但し、この例に限定されるものではない。
【００３３】
図３に、画像処理装置１０による圧縮動作フローＳ１００を例示する。かかる圧縮動作フローＳ１００は、読み込み処理Ｓ１１０と、変換処理Ｓ１２０と、圧縮処理Ｓ１３０と、書き出し処理Ｓ１４０とに大別される。圧縮処理Ｓ１３０はＪＰＥＧモジュール１６が実行し、他の処理Ｓ１１０，Ｓ１２０，Ｓ１４０はラッパー１８が実行する。
【００３４】
＜２．１．圧縮対象画像の読み込み処理＞
読み込み処理Ｓ１１０では、ラッパー１８が、圧縮処理に供される画像３０のデータをバス２０を介して、画像供給元（ここではメモリ１４とする）から読み込む。ここでは、図４に示すように、画像３０の画素データをラスタスキャン順にメモリ１４から読み込むものとする。特にこのとき、ラッパー１８は、画像３０のデータを、当該画像３０の全体サイズ（幅７６画素×高さ４５画素）に合わせて読み込む。具体的には、第０行目の７６画素分のデータを左端（すなわち第０列目）の画素から右端（すなわち第７５列目）の画素へ向けて順に読み込み、その後、第１行目の７６画素分のデータを同様の順序で読み込み、第２行目〜第４４行目の画素データも同様に読み込む。
【００３５】
＜２．２．圧縮対象画像の変換処理＞
変換処理Ｓ１２０では、ラッパー１８が、読み込み処理Ｓ１１０で読み込んだ画像データを、ＪＰＥＧモジュール１６の入力フォーマットに適合するように変換し、変換したデータをＪＰＥＧモジュール１６へ供給する。
【００３６】
例えば、画素データの並びを変換する。すなわち、読み込み処理Ｓ１１０でラスタスキャン順に読み込んだデータを、ＪＰＥＧモジュール１６の入力フォーマットに適合した順序に並び替える。
【００３７】
具体的には、読み込み処理Ｓ１１０で読み込んだ画像３０を、図２に示すように、左上隅の画素を起点（換言すれば原点）にして、ＪＰＥＧモジュール１６の入力画像サイズ単位に分割していく（分割処理Ｓ１２１）。
【００３８】
なお、分割された画像（以下、画像ブロック、ブロック等と称する場合もある）Ｂを区別する場合は、図２に示すように、符号Ｂに、その分割画像の位置を示す文字列を付加することにする。具体的には、起点となる画像左上隅に位置するブロックＢに符号Ｂ００を用い、当該ブロックＢ００から幅（Ｈ）方向に沿って順に符号Ｂ０１，Ｂ０２，Ｂ０３，Ｂ０４を用い、また、当該ブロックＢ００から高さ（Ｖ）方向に沿って順に符号Ｂ１０，Ｂ２０，Ｂ３０，Ｂ４０，Ｂ５０を用いる。その他のブロックＢについても同様の規則で符号を割り当てるものとする。なお、高さ方向の位置が同じで幅方向に並んだ複数のブロックＢ（例えばブロックＢ００，Ｂ０１，Ｂ０２，Ｂ０３，Ｂ０４）をまとめてブロックラインと称する場合もある。
【００３９】
分割処理Ｓ１２１は、圧縮対象画像３０全体の読み込みが完了した後に実行可能である。あるいは、画像３０がラスタスキャン順に読み込まれる場合（図４参照）には、１つのブロックラインの読み込みが完了する度に、ブロック分割処理Ｓ１２１を実行することも可能である。後者の例によれば、読み込み処理Ｓ１１０と分割処理Ｓ１２１以降の処理とを並行して実行可能である。
【００４０】
ブロック分割の際、ＪＰＥＧモジュール１６の入力画像サイズに満たない小さい画像ブロックＢが生じる場合がある。図２の例では、全体画像３０の右辺部および下辺部に位置するブロックＢ０４，Ｂ１４，Ｂ２４，Ｂ３４，Ｂ４４，Ｂ５４，Ｂ５０，Ｂ５１，Ｂ５２，Ｂ５３（図２では分かりやすくするために斜線ハッチングを施している）が、ここで言う小さい画像ブロックに該当する。
【００４１】
ラッパー１８は、そのような小さいブロックＢの存在を判別し（サイズ判別処理Ｓ１２２）、小さいブロックＢについては後述の補充処理Ｓ１２３によってＪＰＥＧモジュール１６の入力画像サイズに拡大する。なお、例えば、ラッパー１８は読み込み処理Ｓ１１０においてＣＰＵ１２から画像３０の全体画像サイズ（幅方向の画素数、高さ方向の画素数）の情報を得るので、ラッパー１８はその全体画像サイズと入力画像サイズとの比較によって（例えば全体画像サイズを入力画像サイズで割った剰余によって）、小さいブロックＢの存在およびそのサイズを取得可能である。
【００４２】
サイズ判別処理Ｓ２１２でＪＰＥＧモジュール１６の入力画像サイズを有していると判別されたブロックＢについては、ラッパー１８は、図５に示すようにブロックＢ内の画素データをラスタスキャン順にＪＰＥＧモジュール１６へ供給する。また、後述の補充処理Ｓ１２３によってＪＰＥＧモジュール１６の入力画像サイズに拡大されたブロックＢも、同様にＪＰＥＧモジュール１６へ供給される。
【００４３】
このように、ラッパー１８は、ブロックＢがラスタスキャン順に並ぶように、且つ、各ブロック内の画素データがラスタスキャン順に並ぶように、圧縮対象画像３０の画素データの並びを変換する。
【００４４】
なお、ＪＰＥＧモジュール１６の入力フォーマットが各画素データのＹ、Ｕ、Ｖ成分データの入力順序を規定している場合、例えばＹ，Ｙ，Ｙ，…，Ｕ，Ｕ，Ｕ，…，Ｖ，Ｖ，Ｖ，…の入力順序を規定している場合には、そのような並び替えもラッパー１８による変換処理Ｓ１２０で行うものとする。
【００４５】
また、例えば読み込み処理Ｓ１１０で読み込む画像データがＲＧＢ成分で構成されている場合、ＲＧＢ成分からＹＵＶ成分への色空間変換（換言すれば、コンポーネント変換）もラッパー１８による変換処理Ｓ１２０で行うものとする。但し、そのような色空間変換機能をＪＰＥＧモジュール１６が有している場合には、ラッパー１８はＲＧＢ成分のままＪＰＥＧモジュール１６へ画像データを供給すればよい。
【００４６】
＜２．３．補充処理＞
補充処理Ｓ１２３においてラッパー１８は、ＪＰＥＧモジュール１６の入力画像サイズに満たない小さいブロックＢに対してダミーの画素データを補充し、それによりその小さいブロックＢをＪＰＥＧモジュール１６の入力画像サイズに拡大する。
【００４７】
図６に、補充処理Ｓ１２３の対象となる小さいブロックＢの一例として、画像３０の右下隅のブロックＢ５４を太線枠で囲んで図示している。ブロックＢ５４は幅方向に１２画素が並び高さ方向に５画素が並んだ矩形画像である。なお、ブロックＢ５４中の各画素Ｐを区別する場合、ブロックＢの表記と同様に、符号Ｐの後ろに位置を示す文字列を付加することにする。また、説明を簡単にするため、各画素Ｐの画素データにも符号Ｐを用いることにする。
【００４８】
また、図６には、ＪＰＥＧモジュール１６の入力画像サイズ４０をブロックＢ５４に重ねて図示している。すなわち、図６において砂状ハッチングが施され一点鎖線で区切られた各領域が、ダミーの画素データが補充される空き画素である。
【００４９】
以下ではブロックＢ５４を例に挙げて具体的なデータ補充手法を説明するが、かかる手法は他の小さいブロックＢ０４，Ｂ１４，Ｂ２４，Ｂ３４，Ｂ４４，Ｂ５０，Ｂ５１，Ｂ５２，Ｂ５３（図２参照）にも応用可能である。また、以下で例示する手法以外のデータ補充手法を採用してもよい。
【００５０】
＜２．３．１．引き伸ばし法＞
図７を参照し、ダミーデータの補充手法の第１例として引き伸ばし法を説明する。図７に示すように、引き伸ばし法によれば、ブロックＢ５４の右辺および下辺からなる画像端部を引き伸ばした画像が形成されるように、ダミーデータが補充される。具体的には、上記画像端部に位置する各画素Ｐ０Ｂ，Ｐ１Ｂ，Ｐ２Ｂ，Ｐ３Ｂ，Ｐ４Ｂ，Ｐ４Ａ，Ｐ４９，Ｐ４８，Ｐ４７，Ｐ４６，Ｐ４５，Ｐ４４，Ｐ４３，Ｐ４２，Ｐ４１，Ｐ４０の画素データが、引き伸ばし方向（例えば、右辺部の場合は幅方向）へコピーされた画像が得られる。
【００５１】
＜２．３．２．折り返し法＞
次に、図８を参照し、ダミーデータの補充手法の第２例として折り返し法を説明する。折り返し法によれば、ブロックＢ５４の右辺および下辺を対称軸とした鏡像が形成されるように、ダミーデータが補充される。例えば、画素Ｐ０Ｂの右側の４つの空き画素には、ブロックＢ５４から遠ざかる方向に向けて順番に、画素データＰ０Ｂ，Ｐ０Ａ，Ｐ０９，Ｐ０８が補充される。
【００５２】
ここで、折り返し法によれば、データ補充を要する小さいブロックＢの幅が入力画像サイズ４０の幅の半分よりも小さい場合、そのブロックＢ自身の画素データだけでは空き画素を補充しきれない。しかし、そのような場合には、処理中の小さいブロックＢの左側の隣接ブロックＢの画素データも利用すればよい。また、小さいブロックＢの高さが入力画像サイズ４０の高さの半分よりも小さい場合についても同様である。
【００５３】
＜２．３．３．折り返し法＋引き伸ばし法＞
隣接ブロックＢの画素データで補充する替わりに、引き伸ばし法を適用することも可能である。そのような折り返し法と引き伸ばし法の組み合わせを、データ補充手法の第３例として説明する。かかる手法では、図９に例示するように、処理中の小さいブロックＢの画素データのみで折り返し法を適用した鏡像部分と、当該鏡像部分の端部（ここでは鏡像部分の右辺部および下辺部からなる）に引き伸ばし法を適用した引き伸ばし部分とを有した画像が形成されるように、ダミーデータが補充される。
【００５４】
＜２．４．圧縮処理＞
圧縮処理Ｓ１３０（図３参照）では、ＪＰＥＧモジュール１６が、ラッパー１８から入力画像サイズごとのデータを受け取り、当該入力データを所定の圧縮手法で圧縮し、圧縮データをラッパー１８へ出力する。
【００５５】
＜２．５．圧縮データの書き出し処理＞
書き出し処理Ｓ１４０（図３参照）では、ラッパー１８が、ＪＰＥＧモジュール１６から受け取った圧縮データを、バス２０へ書き出す。より具体的には、圧縮データは、バス２０を介して、圧縮データ転送先（ここではメモリ１４とする）へ書き出される。
【００５６】
特に、書き出し処理Ｓ１４０においてラッパー１８は、圧縮データに、ダミーデータが補充された領域を特定可能な情報である補充関連情報を付加する（情報付加処理Ｓ１４１）。補充関連情報として、例えば、補充処理前の画像３０の全体サイズ（読み込み処理Ｓ１１０で取得されている）を利用可能である。すなわち、画像３０の全体サイズを越える部分を、ダミーデータ領域として特定可能である。補充関連情報は例えば圧縮データのヘッダ（より具体的には、ＪＰＥＧストリームのヘッダ）に付加される。補充関連情報は例えば、以下に説明する伸長動作で利用される。
【００５７】
＜３．伸長動作＞
図１０に、画像処理装置１０による伸長動作フローＳ２００を例示する。かかる伸長動作フローＳ２００は、読み込み処理Ｓ２１０と、伸長処理Ｓ２２０と、変換処理Ｓ２３０と、ダミー削除処理Ｓ２４０と、書き出し処理Ｓ２５０とに大別される。伸長処理Ｓ２２０はＪＰＥＧモジュール１６が実行し、他の処理Ｓ２１０，Ｓ２３０，Ｓ２４０，Ｓ２５０はラッパー１８が実行する。
【００５８】
＜３．１．圧縮データの読み込み処理＞
読み込み処理Ｓ２１０では、ラッパー１８が、圧縮データすなわち伸長対象データをバス２０を介して、圧縮データ保存元（ここではメモリ１４とする）から読み込む。そして、ラッパー１８は、読み込んだ圧縮データを、伸長処理用の入力フォーマットに従ってＪＰＥＧモジュール１６へ供給する。例えば、図２に例示の画像３０はブロックＢ単位で圧縮されているので、圧縮データをブロックＢ単位でＪＰＥＧモジュール１６へ供給する。
【００５９】
＜３．２．伸長処理＞
伸長処理Ｓ２２０では、ＪＰＥＧモジュール１６が、ラッパー１８からブロックＢ単位の圧縮データを受け取り、当該圧縮データを所定の伸長手法で伸長し、処理済みデータすなわち伸長データをラッパー１８へ出力する。
【００６０】
＜３．３．伸長データの変換処理＞
変換処理Ｓ２３０では、ラッパー１８が伸長データを所定のフォーマットに変換する。例えば、上記のように伸長データはブロックＢ単位で生成されるので（図５参照）、伸長画像全域の伸長データをラスタスキャン順に並び替える（図４参照）。
【００６１】
変換処理Ｓ２３０は、画像全体の伸長が完了した後に実行可能である。あるいは、１つのブロックラインの伸長が完了する度に、変換処理Ｓ２３０を実行することも可能である。後者の例によれば、伸長処理Ｓ２２０と変換処理Ｓ２３０以降の処理とを並行して実行可能である。
【００６２】
なお、圧縮動作に係る変換処理Ｓ１２０で例示したのと同様に、各画素データのＹＵＶ成分データの並び順の変換、色空間変換、等も、この変換処理Ｓ２３０で実行するようにしてもよい。
【００６３】
＜３．４．ダミー削除処理＞
ダミー削除処理Ｓ２４０では、伸長画像が圧縮時の上記ダミーデータを含む場合に、ラッパー１８がそのダミーデータを削除する。伸長画像中のダミーデータ領域は、圧縮データに付加されていた上記補充関連情報に基づいて判別可能である。例えば、図２を再び参照すると、画像３０の幅方向の画素数（７６画素）は補充関連情報から取得可能である。その画素数（７６画素）を、ＪＰＥＧモジュール１６の圧縮処理用の入力画像サイズの幅方向の画素数（１６画素）で割ると、商が４で余りが１２となる。これにより、幅方向に５つのブロックＢが並び、最右のブロックにおいて第１２列目〜第１５列目の画素はダミーであることが求められる。高さ方向のダミーデータ領域も同様に求められる。
【００６４】
＜３．５．伸長データの書き出し処理＞
書き出し処理Ｓ２５０では、ラッパー１８が、変換処理Ｓ２３０およびダミー削除処理Ｓ２４０を経た伸長データを、バス２０へ書き出す。より具体的には、伸長データは、バス２０を介して、伸長データ転送先（ここではメモリ１４とする）へ書き出される。
【００６５】
＜４．ラッパーの構成例＞
図１１にラッパー１８の構成の一例を示す。なお、図１１には説明のためにＪＰＥＧモジュール１６およびバス２０も図示している。図１１の例によれば、ラッパー１８は、ＤＭＡリーダー５１と、変換部５２と、出力選択部５３と、ＤＭＡライター５４とを含んでいる。
【００６６】
ＤＭＡリーダー５１は、上記の読み込み処理Ｓ１１０，Ｓ２１０（図３および図１０参照）を実行するＤＭＡコントローラである。特に圧縮動作における読み込み処理Ｓ１１０では、読み込む画像３０の全体サイズ（幅７６画素×高さ４５画素）に合わせて、例えば転送開始アドレス、転送終了アドレス等がＣＰＵ１２からＤＭＡリーダー５１に与えられる。これにより、ＤＭＡリーダー５１は、画像３０を当該画像３０の全体サイズに合わせて読み込むことが可能である。すなわち、不要画素のデータを読み込まないようにできる。
【００６７】
図１１の例ではＤＭＡリーダー５１の出力部が、変換部５２の圧縮動作用入力部と、ＪＰＥＧモジュール１６の伸長動作用入力部とに接続されているが、圧縮動作では、読み込んだ圧縮対象データが変換部５２によって有効に取得され、伸長動作では、読み込んだ圧縮済みデータがＪＰＥＧモジュール１６によって有効に取得される。
【００６８】
変換部５２は、上記の変換処理Ｓ１２０，Ｓ２３０（図３および図１０参照）を実行するモジュールである。図１１の例では、変換処理Ｓ１２０，Ｓ２３０の両方で共用可能な回路を単一の変換部５２内に設けることにより、ハードウェアリソースの削減が図られている。なお、変換処理Ｓ１２０，Ｓ２３０で別々の変換部を設けることも可能である。変換部５２は、圧縮動作では、ＤＭＡリーダー５１から入力される圧縮対象データに対して変換処理Ｓ１２０を実行し、伸長動作では、ＪＰＥＧモジュール１６から入力される伸長済みデータに対して変換処理Ｓ２３０を実行する。
【００６９】
図１１の例では変換部５２の出力部が、ＪＰＥＧモジュール１６の圧縮動作用入力部と、出力選択部５３の伸長動作用入力部とに接続されているが、圧縮動作では、変換処理Ｓ１２０を経た圧縮対象データがＪＰＥＧモジュール１６によって有効に取得され、伸長作時には、変換処理Ｓ２３０を経た伸長済みデータが出力選択部５３によって有効に取得される。
【００７０】
出力選択部５３は、ＪＰＥＧモジュール１６の圧縮動作用出力端と、変換部５２の出力端とに接続されており、圧縮動作では、ＪＰＥＧモジュール１６が出力する圧縮済みデータをＤＭＡライター５４へ伝達し、伸長動作では、変換部５２が出力する伸長済みデータをＤＭＡライター５４へ伝達する。
【００７１】
ＤＭＡライター５４は、上記の書き出し処理Ｓ１４０，Ｓ２５０（図３および図１０参照）を実行するＤＭＡコントローラであり、出力選択部５３から受け取ったデータをバス２０へ書き出す。特に圧縮動作における書き出し処理Ｓ１４０において、ＤＭＡライター５４は、上記の補充関連情報付加処理Ｓ１４１（図３参照）を行う。また、ＤＭＡライター５４は、伸長動作では、ダミー削除処理Ｓ２４０（図１０参照）を行う。
【００７２】
なお、補充関連情報付加処理Ｓ１４１とダミー削除処理Ｓ２４０のうちの一方または両方を、出力選択部５３が実行するようにしてもよい。また、ダミー削除処理Ｓ２４０については、変換部５２が実行するようにしてもよい。
【００７３】
＜５．補充処理回路の構成例＞
図１２に、上記のダミーデータ補充処理Ｓ１２３を実行するための回路例を示す。図１２の例によれば、処理対象のブロックＢ中の画素データが入力される画素データ入力端と、ダミーデータ保持部６２からダミーデータが入力されるダミーデータ入力端とを有したセレクタ６１が利用される。また、セレクタ６１には、上記２つの入力データのいずれを出力するかを指示する選択指示が入力される。
【００７４】
より具体的には、上記入力画素サイズ４０（図６参照）に対応する幅１６画素×高さ８画素の領域中の各画素位置をラスタスキャン順にカウントしていき、処理対象のブロックＢにおいてそのカウント値で示される位置に画素データが実在すれば、その実在する画素データがセレクタ６１へ入力され且つセレクタ６１から出力される。これに対し、処理対象のブロックＢにおいて、カウント値で示される位置に画素データが実在しなければ、ダミーデータがセレクタ６１から出力される。
【００７５】
ダミーデータ保持部６２は、セレクタ６１から出力されるデータをダミーデータ用に保持しておき、採用されているデータ補充手法に応じてダミーデータを出力する。図１３に、引き伸ばし法に応じて構成されたダミーデータ保持部６２を例示する。
【００７６】
図１３の例によれば、上記セレクタ６１の出力データが、１画素分の画素データを保持するフリップフロップ（ＦＦ）７１と、１６画素分の画素データを保持するＦＩＦＯ（First In First Out）型のラインメモリ７２とに入力される。ＦＦ７１の出力データとラインメモリ７２の出力データとのうちのいずれかの一方が、セレクタ７３によって選択され、ダミーデータ保持部６２の出力データとして出力される。
【００７７】
セレクタ７３は、図７の例を参照すると、小さいブロックＢ５４の右側にダミーデータを補充する場合にはＦＦ７１の出力データを選択し、小さいブロックＢ５４の下側にダミーデータを補充する場合にはラインメモリ７２の出力データを選択する。換言すれば、処理対象のブロックＢの各行において第０列目に画素データが実在する場合にはＦＦ７１の出力データを選択し、そうでなければラインメモリ７２の出力データを選択する。
【００７８】
＜６．効果＞
上記の各種構成によれば、以下の効果が得られる。
【００７９】
まず、圧縮動作における読み込み処理Ｓ１１０では、上記のように、圧縮処理に供される画像３０のデータを、その画像サイズに合わせて読み込む。すなわち、不要なデータは読み込まない。したがって、帯域増加を防止できる。
【００８０】
また、そのような読み込み処理Ｓ１１０によって、圧縮処理用の入力画像サイズ４０に満たない小さい画像ブロック（ブロックＢ５４等）が生じたとしても、当該小さい画像ブロックは補充処理Ｓ１２３によって上記入力画像サイズ４０に拡大される。このため、ＪＰＥＧモジュール１６へのデータ入力に支障を来さない。
【００８１】
また、ラッパー１８がＪＰＥＧモジュール１６とは別個に用意され、ＪＰＥＧモジュール１６とバス２０との間に接続されている（図１参照）。このため、例えばバス２０の仕様を変更する場合、その仕様変更をラッパー１８の修正で吸収することにより、ＪＰＥＧモジュール１６自体は修正しなくて済む。また、別仕様のＪＰＥＧモジュール１６を採用する場合にも、ラッパー１８を修正すれば足りる。したがって、開発期間の短縮、開発コストの削減等を図ることができる。
【００８２】
また、ＪＰＥＧモジュール１６自体は、ダミーデータの補充を把握および管理する機能を必要としない。このため、そのような機能を有さないＪＰＥＧモジュールを利用可能である。したがって、ＪＰＥＧモジュール１６の選択、開発等の自由度が高くなる。
【００８３】
また、伸長データは、圧縮時に補充したダミーデータをダミー削除処理Ｓ２４０で削除した上で、バス２０に書き出される（図１０参照）。すなわち、不要なデータは書き出さない。したがって、帯域増加を防止できる。また、例えば、伸長データを表示用メモリ領域へ直接転送可能になるので、ダミーデータを削除するために一旦、別のメモリ領域へ転送する構成に比べて、パフォーマンスが向上する。
【００８４】
また、ダミーデータの補充に関し、上記引き伸ばし法（図７参照）によれば、処理中の小さい画像ブロックに含まれる画素データをダミーデータに利用するので、当該小さい画像ブロックに近似しないデータを補充する構成（例えば一律に白色のデータを補充する構成）に比べて、圧縮による画質劣化を抑制できる。また、引き伸ばし法によれば、ダミーデータとして利用するために保持しておくデータ量が少なくて済むので、回路規模を小さくできる。
【００８５】
また、折り返し法（図８参照）においても、処理中の小さい画像ブロックに含まれる画素データをダミーデータに利用する。このため、引き伸ばし法と同様に、当該小さい画像ブロックに近似しないデータを補充する構成に比べて、圧縮による画質劣化を抑制できる。特に折り返し法によれば、鏡像を利用するので、画像の急激な変化を抑制可能である。かかる点も画質劣化の抑制に貢献する。
【００８６】
また、折り返し法と引き伸ばし法の組み合わせ（図９参照）によれば、上記２つの手法と同様に、圧縮による画質劣化を抑制できる。また、折り返し法と同様に、鏡像の利用も画質劣化の抑制に貢献する。
【００８７】
特に折り返し法と引き伸ばし法との組み合わせによれば、鏡像部分および引き伸ばし部分は処理中の小さい画像ブロックの画素データのみからなる。このため、折り返し法とは異なり、隣接画像ブロックのデータを保持しておく必要がない。このため、隣接画像ブロックのデータもダミーデータ用に保持する構成に比べて、回路規模を小さくできる。
【００８８】
＜７．変形例＞
本発明は詳細に説明されたが、上記した説明は、すべての局面において、例示であって、本発明がそれに限定されるものではない。例示されていない無数の変形例が、本発明の範囲から外れることなく想定され得るものと解される。
【産業上の利用可能性】
【００８９】
本発明に係る画像処理装置は例えばデジタルカメラに搭載可能である。但し、この例に限定されるものではない。
【符号の説明】
【００９０】
１０  画像処理装置
１６  ＪＰＥＧモジュール（画像処理モジュール）
１８  ラッパー
２０  バス
３０  画像
４０  入力画像サイズ
Ｓ１１０，Ｓ２１０  読み込み処理
Ｓ１２０，Ｓ２３０  変換処理
Ｓ１２３  補充処理
Ｓ１３０  圧縮処理
Ｓ１４０，Ｓ２５０  書き出し処理
Ｓ１４１  情報付加処理
Ｓ２２０  伸長処理
Ｓ２４０  ダミー削除処理
【図１】
0006030321.tif 000002
【図２】
0006030321.tif 000003
【図３】
0006030321.tif 000004
【図４】
0006030321.tif 000005
【図５】
0006030321.tif 000006
【図６】
0006030321.tif 000007
【図７】
0006030321.tif 000008
【図８】
0006030321.tif 000009
【図９】
0006030321.tif 000010
【図１０】
0006030321.tif 000011
【図１１】
0006030321.tif 000012
【図１２】
0006030321.tif 000013
【図１３】
0006030321.tif 000014
【図１４】
0006030321.tif 000015
【図１５】
0006030321.tif 000016