(57)【特許請求の範囲】
【請求項１】
水平方向にＭ個の画素ブロック、垂直方向にＮ個の画素ブロックで構成され、前記画素ブロックを単位に可変長符号化された符号化画像データを復号する画像復号装置であって、
前記符号化画像データを仮復号することで、前記符号化画像データ中の、画像の左端に位置するＮ個の画素ブロックそれぞれの符号化データのビット位置情報を抽出する仮復号手段と、
該仮復号手段により得られた前記Ｎ個の画素ブロックそれぞれの符号化データのビット位置情報を、復号テーブルに登録する登録手段と、
前記復号テーブルに登録されたビット位置情報に従って、水平方向Ｌ個（Ｌ＜Ｍ）の画素ブロックと垂直方向がＮ個の画素ブロックで表わされる着目矩形領域の画像を復号すると共に、前記着目矩形領域の右端に位置するＮ個の画素ブロックの復号処理結果に基づき、前記着目矩形領域の前記右端に位置するＮ個の画素ブロックそれぞれの符号化データのビット位置情報で前記復号テーブルを更新する復号手段と、
前記復号手段を複数回実行し、当該復号手段によって水平Ｌ画素ブロック、垂直Ｍ画素ブロック分の矩形領域の画像が得られる毎に、Ｐ×Ｑ画素サイズ（Ｐ、Ｑ＞２）のフィルタを用いて画像処理し、当該画像処理結果を出力する画像処理手段と
を備えることを特徴とする画像復号装置。
【請求項２】
前記画像処理手段は、前記矩形領域の水平方向の画素数分のラインバッファを有することを特徴とする請求項１に記載の画像復号装置。
【請求項３】
更に、前記矩形領域の画像を単位に、回転する回転手段を備えることを特徴とする請求項１又は２に記載の画像復号装置。
【請求項４】
水平方向にＭ個の画素ブロック、垂直方向にＮ個の画素ブロックで構成され、前記画素ブロックを単位に可変長符号化された符号化画像データを復号する画像復号装置の制御方法であって、
前記符号化画像データを仮復号することで、前記符号化画像データ中の、少なくとも画像の左端に位置するＮ個の画素ブロックそれぞれの符号化データのビット位置情報を抽出する仮復号工程と、
該仮復号工程により得られた前記Ｎ個の画素ブロックそれぞれの符号化データのビット位置情報を、復号テーブルに登録する登録工程と、
前記復号テーブルに登録されたビット位置情報に従って、水平方向Ｌ個（Ｌ＜Ｍ）の画素ブロックと垂直方向がＮ個の画素ブロックで表わされる着目矩形領域の画像を復号すると共に、前記着目矩形領域の右端に位置するＮ個の画素ブロックの復号処理結果に基づき、前記着目矩形領域の前記右端に位置するＮ個の画素ブロックそれぞれの符号化データのビット位置情報で前記復号テーブルを更新する復号工程と、
前記復号工程を複数回実行し、当該復号工程によって水平Ｌ画素ブロック、垂直Ｍ画素ブロック分の矩形領域の画像が得られる毎に、Ｐ×Ｑ画素サイズ（Ｐ、Ｑ＞２）のフィルタを用いて画像処理し、当該画像処理結果を出力する画像処理工程と
を有することを特徴とする画像復号装置の制御方法。
【請求項５】
コンピュータに読込ませ実行させることで、前記コンピュータを請求項１乃至３のいずれか１項に記載の画像復号装置として機能させることを特徴とするコンピュータプログラム。
【請求項６】
請求項５に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された画像符号化データを復号する技術に関するものである。
【背景技術】
【０００２】
近年普及しているディジタルカメラに代表される画像圧縮機能を有する装置には、その圧縮符号化としてＪＰＥＧ符号化方式を採用している。
【０００３】
ＪＰＥＧ符号化方式は、符号化対象の静止画像を８×８画素のブロック（以下、画素ブロックという）に分割し、各ブロックを離散コサイン変換（ＤＣＴ変換）して、変換係数ブロック（８×８個の変換係数値）を生成する。その後、変換係数ブロック内の各変換係数値をそれぞれ量子化する。そして、量子化された変換係数を一定の順序で走査し、走査された変換係数が連続して０となる個数と、変換係数が０以外の値の組に対して、複数ビットから成る可変長符号（ランレングス符号語）を割り当てることで、画素ブロック毎の符号化データを生成する。
【０００４】
ここで、符号化画像データ中の任意のブロック位置から復号を行う事を考えると、次の２つの理由から困難である事は自明である。
【０００５】
１つ目は復号を開始したいブロックに対応する画像符号化データ内の位置は、先頭の画素ブロックから順番に復号しない限り、特定できない点である。
【０００６】
２つ目は、或る画素ブロックのＤＣ（直流成分）係数値を可変長符号化する際に、その直前の画素ブロックのＤＣ係数値との差分（予測誤差）を符号化している点である。つまり、或る着目画素ブロックのＤＣ係数値を得るためには、その直前の画素ブロックのＤＣ係数値が必要となり、着目画素ブロックの符号化データのみでは、その着目画素ブロックの画像データを復元できない。
【０００７】
ところでＪＰＥＧ符号化された画像をプリンタで印刷出力する際に、印刷画像として復号した画像に対してマトリクスフィルタ等の画像処理を施したい場合がある。この時、一旦ＪＰＥＧ符号化画像をすべて復号して、復号画像を一旦メモリに保持した後にマトリクスフィルタ処理を施す方法が考えられる。しかしながら、この方法だと復号画像を保持するための莫大なメモリが必要になるとともに、マトリクスフィルタ処理を実行するためのラインバッファが必要となり、コストの増大を生じてしまう問題がある。
【０００８】
このような問題を解決する従来技術として、特許文献１が知られている。この文献には、画像符号化データをＭＣＵライン単位でリードして、一旦復号画像を復号装置に接続されるメモリに保存する。その後、復号画像を画素ライン単位でマトリクスフィルタ等の画像処理装置に出力する事でラインバッファを削減するものである。
【特許文献１】特開２００７−１８０６０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上記従来技術では、復号画像を複数ライン保持しするためのメモリは依然必要である。例えばＪＰＥＧ画像を対象とした場合には少なくとも１６ライン分の容量が必要となってしまう。昨今のデジタルカメラでの解像度は高くなる一方である。仮に、１ラインの画素数Ｗとすると結局のところ１６×Ｗ×（色成分数）のラインバッファを必要とするわけであるから、これは無視できない容量となる。
【００１０】
本発明は、符号化画像データに対してマトリクスフィルタに代表される画像処理を行う際に、従来技術では必要であったラインバッファを更に削減し得る技術を提供しようとするものである。
【課題を解決するための手段】
【００１１】
この課題を解決するため、本発明の画像復号装置は以下の構成を備える。すなわち、
水平方向にＭ個の画素ブロック、垂直方向にＮ個の画素ブロックで構成され、前記画素ブロックを単位に可変長符号化された符号化画像データを復号する画像復号装置であって、
前記符号化画像データを仮復号することで、前記符号化画像データ中の、画像の左端に位置するＮ個の画素ブロックそれぞれの符号化データのビット位置情報を抽出する仮復号手段と、
該仮復号手段により得られた前記Ｎ個の画素ブロックそれぞれの符号化データのビット位置情報を、復号テーブルに登録する登録手段と、
前記復号テーブルに登録されたビット位置情報に従って、水平方向Ｌ個（Ｌ＜Ｍ）の画素ブロックと垂直方向がＮ個の画素ブロックで表わされる着目矩形領域の画像を復号すると共に、前記着目矩形領域の右端に位置するＮ個の画素ブロックの復号処理結果に基づき、前記着目矩形領域の前記右端に位置するＮ個の画素ブロックそれぞれの符号化データのビット位置情報で前記復号テーブルを更新する復号手段と、
前記復号手段を複数回実行し、当該復号手段によって水平Ｌ画素ブロック、垂直Ｍ画素ブロック分の矩形領域の画像が得られる毎に、Ｐ×Ｑ画素サイズ（Ｐ、Ｑ＞２）のフィルタを用いて画像処理し、当該画像処理結果を出力する画像処理手段とを備える。
【発明の効果】
【００１２】
本発明によれば、画像の水平方向の画素ブロック数Ｍより少ないＬ個のブロックで示される矩形領域の画像を単位に復号するので、少ないメモリ容量でフィルタ処理を行なうことが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１４】
［第１の実施形態］
図１は第１の実施形態における画像復号装置１００のブロック構成図である。なお、実施形態では、復号対象の符号化画像データはＪＰＥＧ符号化されているものとして説明する。また、符号化画像データは、ホストコンピュータから受信しても良いし、メモリカードを装着可能なカードリーダから入力しても良く、その入力源の種類は問わない。
【００１５】
本実施形態における画像復号装置１００は、復号テーブル生成部１０１、装置全体の制御を司る制御部１０２、復号部１０３、及び、画像処理部１０４で構成される。
【００１６】
復号部１０３は、制御部１０２の制御に従い、ＪＰＥＧ符号化画像データの復号処理を行なう。
【００１７】
図２には復号対象の画像（ピクチャ）を矩形領域０〜３の４つの矩形領域の画像に分割した場合の一例を示す。ここでは、符号化画像データの画像のサイズは水平方向が１２ブロック、垂直方向が８ブロックである。
【００１８】
また各矩形領域の水平方向のブロック数は３ブロックである。ここで、符号化画像データがＪＰＥＧ符号化データである事から、各々のブロックはＭＣＵ（Minimum Coded Unit）に対応する。ＭＣＵは１つ以上の８×８画素のブロックから構成されるが、ここでは説明を簡単にするために、１ＭＣＵは１つの８×８画素ブロックから構成されるものとする。また以後説明中に表現される「ブロック」とは、ＪＰＥＧデータの「ＭＣＵ」と同じ意味である。
【００１９】
各ブロックのピクチャ内の座標は、図２中の、ＭＣＵ（ｘ，ｙ）(ｘは水平、ｙは垂直ブロック座標位置)で示される。入力されるＪＰＥＧ符号化データはピクチャ内をラスタスキャン順でブロックが可変長符号として符号化されている。このＪＰＥＧ符号化データ中の各ブロックのポインタ値(先頭からのビット位置)は不明であり、任意のブロックに対して直接リードする事は困難である。
【００２０】
ここで、制御部１０２から復号部１０３に対して指示する情報について説明する。図３に、制御部１０２から復号部１０３に対して指示される情報とその意味を示すテーブルを示す。図示の如く、制御部１０２が復号部１０３に与える指示情報で示されるモードには、解析モードと復号モードの２通りがある。
【００２１】
図４は、本実施形態の画像復号装置１００の動作処理手順を示すフローチャートである。以下、同図に従って、実施形態の画像復号装置の制御部１０２を主体とする処理内容を説明する。
【００２２】
ステップＳ４０１では、制御部１０２は、復号部１０３に対し、解析モードとして処理を実行するように要求する。復号部１０３は、この要求に従い、入力されるＪＰＥＧ符号化データの復号処理を行なうが、復号した画像データは出力せず、任意のブロックに対して復号するために必要な情報を取得し、復号テーブル生成部１０１にその情報を出力する。より詳しくは次の通りである。
【００２３】
解析モードにおいては、制御部１０２は図３で示す通り、復号開始ブロック位置としてＪＰＥＧデータの先頭ブロックであるＭＣＵ(０,０)を指定すると共に、復号ブロック数としてピクチャ内の全ブロック数を指定する。復号部１０３では、これらの指示を受けＪＰＥＧデータ内のすべてのブロックの仮の復号処理を行い、その処理中に得られた情報を復号テーブル生成部１０１に出力する。
【００２４】
復号部１０３において解析モード時に生成する情報は、図５中の矩形領域０の左端ブロックであるＭＣＵ(０,０)、ＭＣＵ(０,１)…ＭＣＵ(０,７)の各ＪＰＥＧデータ中の先頭からのビット位置及びＤＣ予測値である。また解析モード時のブロックの復号順は図５中の矢印で示されるラスタスキャン順である。なお、復号テーブル生成部１０１は、復号部１０３から入力される先頭からのビット位置及びＤＣ予測値を、内部に設けられた復号テーブルに随時登録する。
【００２５】
なお、上記例では、復号部１０３は図５における矩形領域０の左端ブロックであるＭＣＵ(０,０)、ＭＣＵ(０,１)…ＭＣＵ(０,７)の符号化データの格納位置（ビット位置）及びＤＣ予測値を、復号テーブル生成部１０１に出力すると説明したが、これに限定されるものではない。
【００２６】
例えば、解析モード時、復号部１０３は、全ＭＣＵの格納位置とＤＣ予測値（着目ＭＣＵの直前のＤＣ値）を復号テーブル生成部１０１に出力する。そして、復号テーブル生成部１０１は、復号部１０３から出力されてくるデータのうち、矩形領域０の左端のブロックであるＭＣＵ(０,０)、ＭＣＵ(０,１)…ＭＣＵ(０,７)の符号化データの格納位置（ビット位置）及びＤＣ予測値を、内部の復号テーブルに登録しても構わない。
【００２７】
以上のようにして、解析モードによる処理が行われる。この後、制御部１０２は、復号部１０３に対して、復号モードとして処理を要求する（ステップＳ４０２）。以下、復号モード時における処理内容を説明する。
【００２８】
図６は、矩形領域０の画像を復号する様子を表している。更に図７には、復号テーブル生成部１０１、制御部１０２、復号部１０３の復号モードにおける、一つの矩形領域に対する動作フローを示す。図６中の矩形領域０の画像内の矢印は、復号部１０３によるブロックの復号処理順を表している。
【００２９】
先ず、ステップＳ７０１において、制御部１０２は解析モード時に復号テーブルに登録されたＭＣＵ(０,０)のビット位置情報とＤＣ予測値(ＭＣＵ(０,０)では必ず０)をリードすると共に、ステップＳ７０２において復号部１０３に対して設定する。また制御部１０２は、矩形領域の水平方向の復号ブロック数として“３”を復号部１０３に設定する。
【００３０】
次にステップＳ７０３では、復号部１０３においてＭＣＵ(０,０)の復号が行われ、復号画像が画像処理部１０４へ出力される。ステップＳ７０４では現在処理対象となっているブロックが矩形領域０の右端ブロックであるか否かを判定する。ここで復号ブロック数として３が設定されているので、右端ブロックはＭＣＵ(０,２)に相当する。
【００３１】
現在処理対象ブロックはＭＣＵ(０,０)であるので、再度ステップＳ７０３の復号処理が実施される。ステップＳ７０３を更に２回実行すると、対象ブロックがＭＣＵ(２,０)となり、ステップＳ７０４の条件が真となる。従って復号部１０３は復号処理を中断すると共に、ステップＳ７０５で復号部１０３はＭＣＵ(２,０)のビット位置及びＤＣ予測値を復号テーブル生成部１０１に出力する。
【００３２】
ステップＳ７０６では復号テーブル生成部１０３は、復号テーブルに対して、ステップＳ７０５で出力された情報を基に更新する。
【００３３】
ステップＳ７０７では、処理対象ブロックが制御部１０２が矩形領域０の右下隅のブロック、すなわちＭＣＵ(２,７)であるか否かを判定する。ここでは、処理対象ブロックがＭＣＵ(２,０)であるので、再度ステップＳ７０１から処理を再開する。これら一連の処理を８回繰り返す事によって、矩形領域０の画像の復号処理が完了する。
【００３４】
さて、上記の処理の結果、矩形領域０の復号処理が行われると、復号テーブル生成部１０１は、その内部の復号テーブルを更新することになる。これが、ステップＳ４０３の処理となる。更新後の復号テーブルには、矩形領域０の右端のブロックのビット位置及びＤＣ予測値が格納されることになる。
【００３５】
次に、ステップＳ４０４では、画像処理部１０４は、復号部１０３から入力された復号画像に対して画像処理を行う。ここで、本実施形態では画像処理として５×５のマトリクスフィルタ処理を例に挙げて説明する。マトリクスフィルタ処理としては、ユーザが選択したフィルタ処理を行なえば良いが、一例を示すのであればスムージング処理（ローパスフォイルタ処理）が挙げられる。
【００３６】
図６で示す通り、画像処理部１０４において、必要となるラインバッファの水平サイズは矩形領域の水平方向の画素数分である。また、実施形態では、フィルタのマトリクスサイズが５×５画素単位に行なう。従って、フィルタ処理対象の画素が、或るブロックの１ライン目にあるとき、その１つ上のブロックの下から２ライン分の画素データを保持するラインバッファがあればよい。
【００３７】
更に図８には矩領域形０及び矩形領域１の画像の境界を拡大した図を示す。画像処理部１０４において、復号画像に対してラスタスキャン方向に各画素に対して、マトリクスフィルタ処理を行う。この際、矩形領域０の画像の右端２画素を処理するためには、矩形領域１の画像の左端２画素が必要であるため、矩形領域０画像が復号対象の期間には処理を行えない。そのため、これら右端の２画素の処理を行うために、次の矩形領域１の画像が復号対象の際に再度矩形領域０画像の右端ブロックの復号を行う事によって、所謂、矩形領域の画像境界のりしろ部分の画像処理を実現している。
【００３８】
次に図９を用いて矩形領域１の画像に対する処理について説明する。矩形領域０の画像の処理が完了した時点において、復号テーブルには矩形領域０の画像の右端ブロックＭＣＵ(２,０),ＭＣＵ(２,１)…ＭＣＵ(２,７)のビット位置及びＤＣ予測値が設定されている。ここでも同様に、図７に示す動作フローを実行する事によって矩形領域１画像の復号処理が実現出来る。矩形領域０の復号処理と異なる点は、制御部１０２が復号部１０３に対して設定する復号ブロック数が４である点のみである。
【００３９】
以上説明した手順を、矩形領域２及び矩形領域３に対して繰り返し実行する事によって、ピクチャすべての処理が完了する。
【００４０】
上記実施形態では、復号対象の画像が水平方向１２個の画素ブロック、垂直方向に８個の画素ブロックで構成され、且つ、１つの矩形領域の水平方向の画素ブロックの数を３つとする例を説明したが、これは一例である点に注意されたい。
【００４１】
すなわち、復号対象の符号化画像データが表わす画像が、水平方向にＭ個の画素ブロック、垂直方向にＮ個の画素ブロックで構成されると定義できる。そして、１つの矩形領域についても水平方向Ｌ個（Ｌ＜Ｍ）の画素ブロックと垂直方向がＮ個の画素ブロックと定義できる。この場合、先ず、符号化画像データを仮復号（解析モード）することで、その符号化画像データ中の、画像の左端に位置するＮ個の画素ブロックの符号化データのビット位置情報を抽出し、復号テーブルに登録する。そして、登録されたビット位置情報に従って、水平方向Ｌ個（Ｌ＜Ｍ）の画素ブロックと垂直方向がＮ個の画素ブロックで表わされる着目矩形領域の画像を復号する。このとき、着目矩形領域の右端に位置する画素ブロックの復号処理結果に基づき、着目矩形領域の右端に位置する画素ブロックのビット位置情報が得られるので、そのビット位置情報で復号テーブルを更新する。この復号処理を複数回実行することで得られる各矩形領域の画像に対して、Ｐ×Ｑ画素サイズ（Ｐ、Ｑ＞２）のフィルタを用いて画像処理し、この画像処理結果を出力する。この場合、画像処理に必要なバッファは、フィルタのサイズとＬ（矩形領域の水平サイズ）に依存したものとすればよい。
【００４２】
［第２の実施形態］
通常、デジタルカメラに搭載された撮像素子で撮像される画像の水平方向の画素数は、垂直方向の画素数よりも多い。ＪＰＥＧ符号化では、画素ブロックを単位とするラスタースキャン順に行われる。一方、一般的なプリンタは、装置大型化を防ぐため、最大印刷可能な記録紙のサイズの短辺の長さを、記録ヘッドの走査移動範囲としている。これはレーザビームプリンタでも同様である。従って、印刷装置の印刷処理では、ラスタースキャンとは直交する方向に並ぶ画素データが必要になる。しかし、ＪＰＥＧ画像では、各ブロックの符号化データは固定長ではない。従って、画像全体を復号しなければ、記録ヘッドの１走査運動や、レーザビームプリンタのレーザビームの１走査で印刷することになる画像を得ることができない。
【００４３】
本第２の実施形態では、先に説明した第１の実施形態を適用することで、かかる問題を解決するとともに、印刷処理等におけるフィルタリング処理を少ない容量のバッファメモリで実行するものである。印刷装置の構成そのものは公知の構成で構わないので、以下では、印刷装置に搭載される画像復号装置を例に説明する。
【００４４】
図１０には、第１の実施形態で説明した画像復号装置１００を、入力される画像符号化データを所定の角度だけ回転させるシステムへ適用した例を示す。例えばディジタルカメラで撮影したＪＰＥＧ画像をプリンタで印刷出力する際に、用紙のサイズや画像のレイアウトに応じて、ＪＰＥＧ画像を９０°、１８０°、あるいは２７０°回転させた状態で出力させたい場合が考えられる。図１０のシステムメモリ１００１には、ＪＰＥＧデータ１００３が保存されており、そのＪＰＥＧデータはＪＰＥＧ画像１００４で示される方向である。このＪＰＥＧデータ１００３を第１の実施形態の手順にて復号処理及び画像処理を繰り返す事によって、画像処理後の復号画像が矩形領域０、矩形領域１、矩形領域２及び矩形領域３の順で画像復号装置１００から出力される。この復号画像に対して、水平垂直アドレス転置部１００２が、矩形領域の画像内にて水平垂直のアドレスを転置する事によって回転処理を施し、その回転処理後の復号画像１００５がシステムメモリ１００１内に保存される。この際、矩形領域の画像単位で画像復号装置１００から復号画像が出力されるために、従来技術では回転前復号画像及び回転後復号画像に対して２つ必要となるシステムメモリ内の復号画像の容量が、回転後復号画像に対する１つのみで実現出来る。
【００４５】
［その他の実施形態］
以上本発明に係る実施形態を説明したが、本発明は、コンピュータに読込ませ実行させるコンピュータプログラムでもって実現しても構わない。この場合、このコンピュータプログラムは、図１に示すような構成要素に相当する関数やサブルーチンで構成されることになる。
【００４６】
また、通常コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されており、それをコンピュータが有する読取り装置（例えばＣＤ−ＲＯＭドライブ）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、本発明はかかるコンピュータ可読記憶媒体をその範疇とすることは明らかである。
【図面の簡単な説明】
【００４７】
【図１】第１の実施形態の画像復号装置のブロック構成図である。
【図２】第１の実施形態のピクチャの矩形領域の画像への分割を示す図である。
【図３】第１の実施形態の復号部１０３へ設定する情報とその意味を示す図である。
【図４】第１の実施形態の処理内容を説明するためのフローチャートである。
【図５】第１の実施形態における解析モードにおける復号処理のスキャン順を示す図である。
【図６】第１の実施形態の矩形領域０に対する画像処理を説明するための図である。
【図７】第１の実施形態の矩形領域に対する復号処理を示すフローチャートである。
【図８】第１の実施形態の画像処理部１０４の動作処理内容を説明するための図である。
【図９】第１の実施形態における矩形領域１の画像処理を示す図である。
【図１０】第２の実施形態における回転処理を行うシステムへ適用した場合の装置構成の例を示す図である。
【図１】
0005184959.tif 000002
【図２】
0005184959.tif 000003
【図３】
0005184959.tif 000004
【図４】
0005184959.tif 000005
【図５】
0005184959.tif 000006
【図６】
0005184959.tif 000007
【図７】
0005184959.tif 000008
【図８】
0005184959.tif 000009
【図９】
0005184959.tif 000010
【図１０】
0005184959.tif 000011