(57)【要約】      （修正有）【課題】符号化画素ブロックをスキャン方向に直行な方向に復号し、処理を高速化する。【解決手段】復号部は第１復号処理ステージで、入力バッファにある符号化画像データを順に復号し、復号の間、画像の左端から水平方向Ｐ個の画素ブロックの符号化データは、復号した画素ブロックに対応する画像データを出力バッファに格納し、水平方向Ｐ＋１個目以降については出力バッファへ格納しない。復号テーブル作成部は、復号部の第１復号処理ステージの処理中、水平方向Ｐ×ｎ＋１（ｎは１以上の整数）個目の画素ブロックの符号化データのビット位置とＤＣ予測値を復号テーブルメモリに格納する。第１復号処理ステージを終え第２復号処理ステージで復号部は、復号テーブルメモリにある復号指標情報に基づき、水平方向の範囲｛Ｐ×ｎ＋１乃至Ｐ×（ｎ＋１）｝、垂直方向がＮ個の画素ブロックとされる領域の復号及び出力を、ｎ＝１，２，３…について繰返し実行する。【選択図】図１
2009194748.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素で表わされる画素ブロックを単位に可変長符号化された、水平方向Ｍ個（Ｍ＞１）、垂直方向Ｎ個（Ｎ＞１）の画素ブロックの符号化データで構成される符号化画像データから、水平方向Ｐ（１≦Ｐ＜Ｍ）個、垂直方向Ｎ個の画素ブロックで構成される領域を単位に、当該領域内の画素ブロックの符号化データを復号し、出力する画像復号装置であって、
前記符号化画像データを順に復号し、当該復号処理を行なっている間、画像の左端から水平方向Ｐ個の画素ブロックの符号化データについては、復号して得られた画素ブロックに対応する画像データを出力し、水平方向のＰ＋１個目以降に位置する画素ブロックについては復号画像データの出力は行なわない第１の復号手段と、
該第１の復号手段の復号処理中、水平方向のＰ×ｎ＋１（ｎは１以上の整数）個目に位置する画素ブロックの符号化データの、前記符号化画像データ中のビット位置を特定する情報を含む復号指標情報を、予め設定された復号テーブルメモリに格納する格納手段と、
前記復号テーブルメモリに格納された前記復号指標情報に基づき、水平方向のＰ×ｎ＋１乃至Ｐ×（ｎ＋１）個目の画素ブロック、垂直方向がＮ個の画素ブロックで示される領域の復号及び出力を、ｎ＝１，２，３…について繰り返し実行する第２の復号手段と
を備えることを特徴とする画像復号装置。
【請求項２】
前記符号化画像データはＪＰＥＧ符号化データであって、
前記復号指標情報には、前記水平方向の前記Ｐ×ｎ＋１個目の画素ブロックのＤＣ成分予測値が含まれることを特徴とする請求項１に記載の画像復号装置。
【請求項３】
複数の画素で表わされる画素ブロックを単位に可変長符号化された、水平方向Ｍ個（Ｍ＞１）、垂直方向Ｎ個（Ｎ＞１）の画素ブロックの符号化データで構成される符号化画像データから、水平方向Ｐ（１≦Ｐ＜Ｍ）個、垂直方向Ｎ個の画素ブロックで構成される領域を単位に、当該領域内の画素ブロックの符号化データを復号し、出力する画像復号装置であって、
前記符号化画像データ中のＮ個の画素ブロックを復号するため、当該Ｎ個の画素ブロックそれぞれの符号化データのビット位置を示す情報を含む復号指標情報を格納するための復号テーブルメモリと、
前記符号化画像データを順に復号し、当該復号処理を行なっている間、画像の左端から水平方向Ｐ（１≦Ｐ＜Ｍ）個の画素ブロックの符号化データについては、復号して得られた画素ブロックに対応する画像データを出力し、水平方向Ｐ＋１個目の画素ブロックに対応する前記復号指標情報を前記復号テーブルメモリに格納し、前記水平方向Ｐ＋１個目以降の画素ブロックの復号による画像データを出力しない第１の復号手段と、
前記復号テーブルメモリに格納された前記復号指標情報に基づき、水平方向のＰ×ｎ＋１乃至Ｐ×（ｎ＋１）個目の画素ブロック、垂直方向がＮ個の画素ブロックで示される領域の復号及び出力を行なうと共に、水平方向Ｐ×（ｎ＋１）＋１個目の画素ブロックに対応する前記復号指標情報で前記復号テーブルを更新することを、ｎ＝１，２，３…について繰り返し実行する第２の復号手段と
を備えることを特徴とする画像復号装置。
【請求項４】
前記符号化画像データはＪＰＥＧ符号化データであって、
前記復号指標情報には、前記水平方向Ｐ×（ｎ＋１）＋１個目の画素ブロックのＤＣ成分予測値が含まれることを特徴とする請求項３に記載の画像復号装置。
【請求項５】
複数の画素で表わされる画素ブロックを単位に可変長符号化された、水平方向Ｍ個（Ｍ＞１）、垂直方向Ｎ個（Ｎ＞１）の画素ブロックの符号化データで構成される符号化画像データから、水平方向Ｐ（１≦Ｐ＜Ｍ）個、垂直方向Ｎ個の画素ブロックで構成される領域を単位に、当該領域内の画素ブロックの符号化データを復号し、出力する画像復号装置の制御方法であって、
前記符号化画像データを順に復号し、当該復号処理を行なっている間、画像の左端から水平方向Ｐ個の画素ブロックの符号化データについては、復号して得られた画素ブロックに対応する画像データを出力し、水平方向のＰ＋１個目以降に位置する画素ブロックについては復号画像データの出力は行なわない第１の復号工程と、
該第１の復号工程による復号処理中、水平方向のＰ×ｎ＋１（ｎは１以上の整数）個目に位置する画素ブロックの符号化データの、前記符号化画像データ中のビット位置を特定する情報を含む復号指標情報を、予め設定された復号テーブルメモリに格納する格納工程と、
前記復号テーブルメモリに格納された前記復号指標情報に基づき、水平方向のＰ×ｎ＋１乃至Ｐ×（ｎ＋１）個目の画素ブロック、垂直方向がＮ個の画素ブロックで示される領域の復号及び出力を、ｎ＝１，２，３…について繰り返し実行する第２の復号工程と
を備えることを特徴とする画像復号装置の制御方法。
【請求項６】
複数の画素で表わされる画素ブロックを単位に可変長符号化された、水平方向Ｍ個（Ｍ＞１）、垂直方向Ｎ個（Ｎ＞１）の画素ブロックの符号化データで構成される符号化画像データから、水平方向Ｐ（１≦Ｐ＜Ｍ）個、垂直方向Ｎ個の画素ブロックで構成される領域を単位に、当該領域内の画素ブロックの符号化データを復号し、出力すると共に、
前記符号化画像データ中のＮ個の画素ブロックを復号するため、当該Ｎ個の画素ブロックそれぞれの符号化データのビット位置を示す情報を含む復号指標情報を格納するための復号テーブルメモリとを備える画像復号装置の制御方法であって、
前記符号化画像データを順に復号し、当該復号処理を行なっている間、画像の左端から水平方向Ｐ（１≦Ｐ＜Ｍ）個の画素ブロックの符号化データについては、復号して得られた画素ブロックに対応する画像データを出力し、水平方向Ｐ＋１個目の画素ブロックに対応する前記復号指標情報を前記復号テーブルメモリに格納し、前記水平方向Ｐ＋１個目以降の画素ブロックの復号による画像データを出力しない第１の復号工程と、
前記復号テーブルメモリに格納された前記復号指標情報に基づき、水平方向のＰ×ｎ＋１乃至Ｐ×（ｎ＋１）個目の画素ブロック、垂直方向がＮ個の画素ブロックで示される領域の復号及び出力を行なうと共に、水平方向Ｐ×（ｎ＋１）＋１個目の画素ブロックに対応する前記復号指標情報で前記復号テーブルを更新することを、ｎ＝１，２，３…について繰り返し実行する第２の復号工程と
を備えることを特徴とする画像復号装置の制御方法。
【請求項７】
コンピュータが読み込み実行することで、前記コンピュータを請求項１乃至４のいずれか１項に記載の画像復号装置として機能させることをコンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された画像データを復号するための画像復号装置に関する。
【背景技術】
【０００２】
近年普及しているディジタルカメラは、撮像した静止画をメモリに格納する際の圧縮技術としてＪＰＥＧ符号化を採用している。
【０００３】
ＪＰＥＧ符号化においては、符号化対象の静止画像を８×８画素のブロックを単位に分割し、各ブロックを離散コサイン変換（ＤＣＴ変換）して、変換係数ブロックを生成する。その後、変換係数ブロック内の各変換係数を量子化し、該量子化した変換係数を一定の順序で走査する。そして、走査された変換係数が連続して０となる個数と、変換係数が０以外の値の組に対して、可変長符号化を行なう（以下、この符号化された画像をＪＰＥＧ画像という）。
【０００４】
ところで、画像データを取り扱うに際して、入力した画像を所定の角度だけ回転させたい場合がある。例えば、ディジタルカメラで撮影したＪＰＥＧ画像をプリンタで印刷出力する際に、用紙のサイズや画像のレイアウトに応じて、ＪＰＥＧ画像を９０°、１８０°、あるいは２７０°回転させた状態で出力させることがある。
【０００５】
このような場合に、対象となるＪＰＥＧ画像の全体を一旦復号し、しかる後に所定の角度だけ回転処理を施すことが考えられる。
【０００６】
しかし、この方法によると、復号した画像の全体を一時的に保持するための大容量メモリが必要となるばかりでなく、大容量の画像データを回転処理するために回転処理の所要時間も増大するという問題が生ずる。
【０００７】
このような問題を解決する技術として知られている文献としては、特許文献１が知られている。この文献によると、まず、符号化画像データを最初から順番に復号し、図８に示す原画像中に予め定めた起点ブロックを復号するために必要とされる復号情報を得る。しかる後に、前記復号情報を利用して前記符号化画像データを前記起点ブロックから復号し、所定の角度だけ回転させて画像バッファに出力する。以上の処理を行なうことにより、前記原画像を前記所定の角度だけ回転させた状態とした時に、上方に位置するブロックから順に復号データを出力可能とする。
【特許文献１】特開２００１−８６３１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記の従来技術では、復号情報を得るために符号化画像データを最初から順番に復号し終えた後に、起点ブロックから復号する為、復号画像がバッファに格納されるまで時間がかかるという問題があった。例えば、従来技術を印刷装置に応用する場合、上記復号情報を得るための処理は、ユーザが印刷開始を指示してから印刷が開始されるまでの待ち時間となってしまう。
【０００９】
本発明は、かかる問題点に鑑みなされたものであり、符号化する際の画素ブロックのスキャン方向に対して直行する方向の画素ブロックの符号化データを復号し、出力すると共に、その復号処理を更に高速化する技術を提供しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため、例えば本発明の画像復号装置は以下の構成を備える。すなわち、
水平方向Ｍ個（Ｍ＞１）、垂直方向Ｎ個（Ｎ＞１）の画素ブロックで構成され、前記画素ブロックを単位に可変長符号化された符号化画像データから、水平方向Ｐ（１≦Ｐ＜Ｍ）個、垂直方向Ｎ個の画素ブロックで構成される領域を単位に、当該領域内の画素ブロックの符号化データを復号し、出力する画像復号装置であって、
前記符号化画像データを順に復号し、当該復号処理を行なっている間、画像の左端から水平方向Ｐ個の画素ブロックの符号化データについては、復号して得られた画素ブロックに対応する画像データを出力し、水平方向のＰ＋１個目以降に位置する画素ブロックについては復号画像データの出力は行なわない第１の復号手段と、
該第１の復号手段の復号処理中、水平方向のＰ×ｎ＋１（ｎは１以上の整数）個目に位置する画素ブロックの符号化データの、前記符号化画像データ中のビット位置を特定する情報を含む復号指標情報を、予め設定された復号テーブルメモリに格納する格納手段と、
前記復号テーブルメモリに格納された前記復号指標情報に基づき、水平方向の範囲｛Ｐ×ｎ＋１乃至Ｐ×（ｎ＋１）｝、垂直方向がＮ個の画素ブロックで示される領域の復号及び出力を、ｎ＝１，２，３…について繰り返し実行する第２の復号手段とを備える。
【発明の効果】
【００１１】
本発明によれば、符号化する際の画素ブロックのスキャン方向に対して直行する方向の画素ブロックの符号化データを復号し、出力するだけでなく、その復号処理を更に高速化することが可能になる。
【発明を実施するための最良の形態】
【００１２】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１３】
［第１の実施形態］
図１は、第１の実施形態における装置のブロック構成図である。実施形態では、例えばメモリカードスロットを備えたプリンタ装置を例にして説明する。
【００１４】
本装置は、上記のメモリカードスロットに挿入したメモリカード（デジタルカメラから取り出した記憶媒体）から復号対象の符号化画像データを格納する入力バッファ１１、入力バッファに格納された符号化画像データを復号する画像復号処理部１０を備える。また、復号して得られた画像データに対して各種処理（ＹＭＣＫ空間への変換、２値化等のハーフトーン処理等）を行なう画像処理部１２、そして、実際に印刷処理を行なう印刷部１３を有する。
【００１５】
なお、実施形態では、上記の通り、符号化画像データはメモリスロットに格納されたメモリカードから符号化画像データを入力バッファに格納し、それを復号して、印刷する例を説明する。印刷部１３は、インクジェットプリンタであって、インク液滴を吐出する複数のノズルを搭載したキャリッジが走査移動することで印刷するものとして説明する。
【００１６】
但し、本実施形態の特徴は画像復号処理部１０にあるので、符号化画像データの発生源はメモリスロットに限らず、ネットワーク上のサーバでも構わない。また、復号して得られた画像の最終出力先も印刷部に限らず、ハードディスク等の記憶装置でも構わない。図１はその一例である点に注意されたい。
【００１７】
実施形態における画像復号処理部１０の復号対象の符号化画像データは、ＪＰＥＧ符号化方式で符号化された画像データ（ＪＰＥＧ符号化データ）とする。ＪＰＥＧ符号化では、少なくとも１つの変換係数ブロックから成るＭＣＵ（Minimum Coded Unit）と呼ばれる画素ブロックを処理単位として符号化、復号が行なわれる。また、多くのデジタルカメラでは、カメラを正立状態（ランドスケープ撮影状態）での撮像素子の水平方向の画素数をＷ、垂直方向の画素数をＨとすると、Ｗ＞Ｈの関係にある。また、符号化順は、この水平方向を基準とするラスタースキャン順である。また、符号化する場合、着目ＭＣＵをＤＣＴ変換、量子化、及び、エントロピー符号化を行なう。このとき、着目ＭＣＵにおけるＤＣＴ変換で得られたＤＣ成分（直流成分）については、そのＤＣ成分に対する予測値として直前のＭＣＵのＤＣ成分を用いて符号化を行なっている。
【００１８】
一方、一般にプリンタ装置は、その装置の印刷可能な記録紙の最大サイズが仮にＡ４であるとした場合、記録ヘッドの走査運動による記録できる範囲は、コスト削減、並びに、装置の小型化のため、Ａ４の短辺を基準に設計されている。これは、実施形態における印刷部１３でも同じである。従って、印刷処理を行なう場合、一旦、全域の符号化画像データを復号した後、９０度回転させる、もしくは、一旦全域の画像データを復号し、その画像データからラスタースキャンに対して直行する方向にスキャンして読込み、印刷データを生成する必要がある。いずれの場合であっても、復号した画像全体をメモリに格納する必要があるので、大容量のメモリが必要となる。本実施形態は、印刷部１３による一回の記録ヘッドの走査運動によって印刷される符号化画像データのみを復号するだけでなく、その復号処理を高速に行なうものである。
【００１９】
以下、かかる課題を解決する実施形態における画像復号処理部１０を更に詳しく説明する。なお、水平、垂直という表現を使うが、この表現は、符号化された画像データに対してのものであり、地上における水平、垂直と意味するものではない点に注意されたい。
【００２０】
なお、実施形態ではＭＣＵは８×８画素のサイズであり、復号対象の画像データは水平方向Ｍ個、垂直方向Ｎ個のＭＣＵで構成されているものとする。
【００２１】
画像復号処理部１０は、装置全体の制御を司る制御部１０４をはじめ、復号部１０１、復号テーブル作成部１０２、復号テーブルメモリ１０３、復号して得られた画像データを格納し、画像処理部１２に出力するための出力バッファ１０５を備える。
【００２２】
復号部１０１は、制御部１０４の制御下で、入力バッファ１１に格納された符号化画像データ（復号画像データファイル）の指示されたＭＣＵの符号化データを復号する。復号したＭＣＵ単位の画像データは、出力バッファ１０５に格納する場合と、格納しない場合がある（詳細後述）。また、復号部１０１は、制御部１０４から指示された着目ＭＣＵの符号化データを復号した際、「着目ＭＣＵの符号化データの末端のビット位置＋１」を、後続ＭＣＵの符号化データの読出すビットアドレス（以下、ファイルポインタという）として復号テーブル作成部１０２に出力する。また、後続するＭＣＵのＤＣ成分を復号できるように、着目ＭＣＵのＤＣ成分を、後続ＭＣＵのＤＣ成分予測値（以下、単にＤＣ予測値という）として復号テーブル作成部１０２に出力する。つまり、復号部１０１は、制御部１０４で指示されたＭＣＵを復号した際、一対の｛ファイルポインタ，ＤＣ予測値｝の情報（以下、復号指標情報という）を復号テーブル作成部１０２に出力する。
【００２３】
復号テーブル作成部１０２は、制御部１０４の制御下で、復号部１０２から出力された復号指標情報（ＭＣＵのファイルポインタとＤＣ予測値）を復号テーブルメモリ１０３に格納する。
【００２４】
次に、実施形態における制御部１０４と、復号部１０１、復号テーブルメモリ１０３の動作について、図２のフローチャートに従って説明する。復号処理は、第１の復号処理ステージと、それに後続する第２の復号処理ステージの２つに分けられる。
【００２５】
図２においては、H_INDEXは処理対象のＭＣＵの水平位置を表す変数である。V_INDEXは処理対象のＭＣＵの垂直位置を表す変数である。NUM_H_MCUは、画像データの水平方向のＭＣＵ数である。NUM_V_MCUは画像データの垂直方向のＭＣＵ数である。出力バッファ１０５は、NUM_V_MCU×P個のＭＣＵの画像データを格納できる容量を持つ。この「Ｐ」は、印刷部１３の記録ヘッドが１回の走査運動で印刷できる範囲で決めればよい。
【００２６】
先ず、ファイルポインタを、符号化画像の先頭のＭＣＵが位置する入力バッファ１１内部のアドレスに設定する（ステップＳ１０１）。次に、V_INDEX、H_INDEXを各々初期化する（ステップＳ１０２、Ｓ１０３）。
【００２７】
次に、水平方向における復号処理を終えていないＭＣＵ数がＰ以下か否かを判定する（ステップＳ１０４）。このステップＳ１０４の判定を行なう理由は、画像の水平方向のＭＣＵの数が、必ずしもＰの整数倍になるとは限らないためである。
【００２８】
さて、ステップＳ１０４にて、復号処理を終えていないＭＣＵ数がＰ以下の場合は、復号を終えていない水平ＭＣＵの数を変数Ｑにセットする（ステップＳ１０５）。そうでない場合は、変数ＱにＰをセットする（ステップＳ１０６）。
【００２９】
次に、処理対象の着目ＭＣＵ（V_INDEX、H_INDEXで特定されるＭＣＵ）が、画像の左端に位置しているか否かを判定する（ステップＳ１０７）。画像の左端に位置している場合は（ステップＳ１０７でYes）、復号部１０１は着目ＭＣＵとそれに後続する計Ｑ個のＭＣＵの符号化データを復号し、各ＭＣＵの符号化データに対応する復号画像データを出力バッファ１０５に格納する（ステップＳ１０８）。なお、ここでは、水平方向を基準とするラスタースキャン順で符号化された符号化データを順に復号している。よって、ステップＳ１０８で用いられるＤＣ予測値は、一つ上の行（V_INDEX-1）の右端に位置するＭＣＵのＤＣ成分値である。ただし、リスタート・マーカが左端のＭＣＵの直前に挿入されている場合は、ＤＣ予測値は０となる。また、画像の左上端のＭＣＵを復号する場合は、該ＭＣＵは符号化データの先頭のＭＣＵなので、ＤＣ予測値は０が用いられる。
【００３０】
一方、ステップＳ１０７にて、着目ＭＣＵが画像の左端位置ではないと判断した場合、Ｑ個のＭＣＵの符号化データを復号する。但し、生成された画像データを出力バッファ１０５には格納しない（ステップＳ１０９）。なお、復号部１０１は、ステップＳ１０８とＳ１０９のいずれにおいても、着目ＭＣＵ以降のＱ個のＭＣＵを復号するので、それに後続するＱ＋１個目のＭＣＵのファイルポインタと、復号した最後のＭＣＵ（着目ＭＣＵを起点とするＱ個のＭＣＵ）のＤＣ成分値を復号指標情報として、復号テーブル作成部１０２に出力する。この結果、復号テーブル作成部１０２は、復号テーブルメモリにその復号指標情報を格納（追加）する。
【００３１】
次に、H_INDEXにＰを加算する（ステップＳ１１０）。そして、水平方向の全ＭＣＵに対する復号を終えたか否かを判定する（ステップＳ１１１）。水平方向に未復号のＭＣＵが存在する場合には（ステップＳ１１１でNo）、着目ＭＣＵからＱ＋１個目のＭＣＵのファイルポインタとＤＣ成分予測値（復号指標情報）を、復号テーブルメモリ１０３に格納し（ステップＳ１１２）、ステップＳ１０４に戻る。また、ステップＳ１１１にて、Ｎｏと判定された場合には、V_INDEXに“１”を加算する（ステップＳ１１３）。そして。ステップＳ１１４にて、垂直方向のMCUを全て復号したか否かを判定する。ステップＳ１１４にて未完であると判断した場合には、ステップＳ１０３に戻る。そうでなければ（ステップＳ１１４でYes）、ステップＳ１１５へ進む。
【００３２】
以上が、第１の復号処理ステージである。上記からもわかるように、ステップＳ１１５に進んだ時点、すなわち、第１の復号処理ステージの復号処理を終えた時点では、画像の左端からＰ個目、垂直方向Ｎ個のＭＣＵで表わされる領域の復号画像データが出力バッファ１０５に出力される。しかし、水平方向Ｐ＋１個目以降のＭＣＵで表わされる復号画像は出力バッファ１０５には出力されない。但し、第１の復号処理ステージにおける復号処理中、Ｐ×ｎ＋１個目（ｎ＝１，２，３…）のＭＣＵの復号指標情報は復号テーブル１０３に格納される。かかる点を分かりやすく示したのが図４である。
【００３３】
図４において、水平方向のＭＣＵ単位の座標ｎ×Ｐ＋１（ｎは１以上の整数）の列（斜線部分）のＭＣＵのそれぞれについては、復号指標情報「ファイルポインタ、ＤＣ予測値」が復号テーブルメモリ１０３に格納される。
【００３４】
また、画像の左端から水平方向Ｐ個分のＭＣＵ（＝NUM_V_MCU×P個）から得られた復号画像データが、出力バッファ１０５に格納され、それ以外は復号画像データは出力バッファ１０５には格納されない。より分かりやすく示すのであれば、図５（ａ）に示すように画像左端に位置する左端の太枠で囲まれた領域内の画像データは、出力バッファ１０５に格納される。即ち、図５（ｂ）に示すように、最初に印刷される矩形領域の対角に位置(1,1)と(P,NUM_V_MCU)で囲まれる領域内のＭＣＵの復号画像データが、上記の最初の復号処理で出力バッファ１０５に格納されている。この出力バッファ１０５に格納される画像データは、画像をちょうど９０度回転させた後の、最初に印刷される画像となる。よって、画像処理部１２は、復号画像データに対する画像処理を開始し、印刷部１３による印刷処理を実行する。
【００３５】
さて、上記のようにして、最初の第１乃至Ｐ列の復号画像データが出力バッファ１０５に格納されると、制御部１０４は画像処理部１２に対して処理開始の指示信号を出力し、画像処理及び印刷処理を実行させる。そして、処理はステップＳ１１５以降の第２の復号処理ステージに移行する。
【００３６】
第２復号処理ステージでは、復号テーブルメモリ１０３に格納された復号指標情報に基づき、水平方向の範囲｛Ｐ×ｎ＋１乃至Ｐ×（ｎ＋１）｝、垂直方向がＮ個の画素ブロックで示される領域の復号及び出力を、ｎ＝１，２，３…について繰り返し実行する。以下、その詳細を説明する。
【００３７】
先ず、H_INDEXにＰ＋１を設定する（ステップＳ１１５）。次に、復号画像データバッファ１０５に未だ出力していない水平方向のＭＣＵ数がＰ以下であるか否かを判定する（ステップＳ１１６）。未だ出力していない水平方向のＭＣＵ数がＰ以下である場合（ステップＳ１１６でYes）、復号画像データバッファ１０５に出力していない水平方向のＭＣＵ数(NUM_H_MCU - H_INDEX + 1)を変数Ｑにセットする（ステップＳ１１７）。そうでない場合は（ステップＳ１１６でNo）、変数ＱにＰをセットする（ステップＳ１１８）。
【００３８】
次に、V_INDEXを「１」に初期化する（ステップＳ１１９）。次に、復号テーブルメモリ１０３から、V_INDEX行H_INDEX列に位置するＭＣＵのファイルポインタとＤＣ予測値を読み出す（ステップＳ１２０）。読み出されたファイルポインタを参照して、復号部１０１は、V_INDEX行、H_INDEX列に位置するＭＣＵを起点とする、連続するＱ個のＭＣＵの復号処理を行なう。そして、復号して得られたＱ個の復号画像データを出力バッファ１０５に格納する（ステップＳ１２１）。
【００３９】
次に、V_INDEXに「１」を加算し（ステップＳ１２２）、垂直方向のＭＣＵを全て復号したか否かを判定する（ステップＳ１２３）。垂直方向のＭＣＵを全て復号した場合は（ステップＳ１２３でYes）、ステップＳ１２４に進む。このとき、画像処理部１２は、出力バッファ１０５に画像処理のための画像データが格納されているので、その処理を開始することになる。また、ステップＳ１２３にて、最も下段のＭＣＵまで復号処理が進んでいないと判断した場合には、ステップＳ１１９に戻る。
【００４０】
ステップＳ１２４では、H_INDEXにPを加算した後、水平方向のＭＣＵを全て復号したか否かを判定する（ステップＳ１２５）。水平方向のＭＣＵを全て復号した場合は（ステップＳ１２５でYes）、処理を終了する。そうでない場合は（ステップＳ１２５でNo）、ステップＳ１１６へ戻る。
【００４１】
ここで、本実施形態の装置による復号処理と、先に示した従来技術の文献による復号処理との違いを、図７を用いて説明する。
【００４２】
図７（ａ−１）乃至（ａ−４）は、本実施形態の画像復号装置によって符号化画像データが復号される様子を示した概念図である。また、図７（ｂ−１）〜（ｂ−５）は、従来技術によって符号化画像データが復号される様子を示した概念図である。ここで、説明を簡単なものとするため、出力バッファ１０５は、３列分のＭＣＵを格納できる容量を備えるものとする。即ち、図２に示すフローチャートにおいて、Ｐ＝３とする。
【００４３】
本実施形態の画像復号装置では、最初のステージにて、復号テーブルが復号テーブルメモリ１０３に作成されると共に、画像の左端から３列分のＭＣＵの符号化画像データが出力バッファ１０５に格納される（図７（ａ−１））。
【００４４】
次に、図２のステップＳ１１５〜ステップＳ１２５の処理により、４列目のMCUを起点として３列分の復号処理が部分的に行なわれる（図７（ａ−２））。さらに、７列目（図７（ａ−３））、１０列目（図７（ａ−４））を各々起点として、３列分のMCUの復号処理が順番に行なわれる。
【００４５】
一方、従来技術の文献では、図７（ｂ−１）に示すように、符号化画像データを一旦最初から順番に復号して復号テーブルを作成した後に、図７（ｂ−２）に示すように最も左の列のMCUを起点として部分的に復号を開始する。つまり、画像の左端の３列分のＭＣＵの復号処理を実質２回行なってしまう。
【００４６】
これに対し、本実施形態の装置では、先に説明したように、図７（ａ−１）に示すように、復号テーブルを作成した時点で、画像の左端領域のＭＣＵの復号画像データを出力バッファ１０５に格納されていることになる。従って、この時点で復号画像データに対する処理を開始できるため、従来技術よりも早く画像処理を開始できる。すなわち、実施形態の如く、印刷装置（もしは表示装置）に応用した場合に、迅速な印刷（表示）が可能となる。
【００４７】
なお、上記実施形態では、第１の復号処理ステージでは、画像の左端からＰ＋１個目以降のＭＣＵの符号化データを復号するものの、その復号画像データを出力バッファに出力しないものとして説明した。しかしながら、Ｐ＋１個目以降では、ＤＣＴ係数のＤＣ成分値を予測復号するまでを行なえばよく、逆ＤＣＴ変換して画像データにまで復号しなくても良い。
【００４８】
［第２の実施形態］
本発明の実施形態２の画像復号装置について説明する。本実施形態の画像復号装置の構成は、図１に示す実施形態２の画像復号装置と同じである。それ故、以下では、本第２の実施形態の装置の復号部１０１、復号テーブルメモリ１０３、制御部１０４の動作について、図３に示すフローチャートを参照して詳細に説明する。なお、以下の説明から明らかになるように、本第２の実施形態でも、復号処理は２つのステージで構成される。
【００４９】
まず、符号化画像ファイルポインタを、符号化画像の先頭のＭＣＵが位置する符号化画像データバッファ１１内部のアドレスに設定する（ステップＳ２０１）。次に、V_INDEXを初期化する（ステップＳ２０２）。
【００５０】
次に、復号部１０１はＰ個のＭＣＵを復号し、得られた復号画像データを出力バッファ１０５に格納する（ステップＳ２０３）。次いで、復号部１０１はＰ＋１個目のＭＣＵのファイルポインタと、そのＤＣ予測値（Ｐ個目のＤＣ値）を出力し、それらを復号テーブルメモリ１０３に格納する（ステップＳ２０４）。さらに、水平方向の残りのＭＣＵを復号する（ステップＳ２０５）。水平方向の残りのＭＣＵの数は、NUM_H_MCU−Pで求められる。なお、ステップＳ２０５では、復号画像データを出力バッファ１０５に格納せず、破棄する。
【００５１】
次に、V_INDEXに「１」を加算し（ステップＳ２０６）、垂直方向のMCUを全て復号したか否かを判定する（ステップＳ２０７）。垂直方向のＭＣＵを全て復号した場合は（ステップＳ２０７でYes）、ステップＳ２０８へ処理を進める。そうでない場合は（ステップＳ２０７でNo）、ステップＳ２０３へ戻る。
【００５２】
ステップＳ２０８に到達した時点で、図６（ａ）に示すように、Ｐ＋１列目のＭＣＵを各々起点として部分的に復号するための情報が復号テーブルメモリ１０３に全て揃っている。さらに、画像左端に位置するNUM_V_MCU×P個のＭＣＵの符号化データから得られた復号画像データが既に出力バッファ１０５に格納されている。よって、この時点で画像処理部１２は復号画像データに対する処理を開始できる。
【００５３】
次に、H_INDEXにP+1を設定する（ステップＳ２０８）。復号画像データバッファ１０５に出力していない水平方向のＭＣＵ数がＰ以下であるか否かを判定する（ステップＳ２０９）。Ｐ以下の場合は（ステップＳ２０９でYes）、復号画像データバッファ１０５に出力していない水平方向のＭＣＵ数（NUM_H_MCU - H_INDEX + 1）を変数Ｑにセットする（ステップＳ２１０）。そうでない場合は（ステップＳ２０９でNo）、変数ＱにＰをセットする（ステップＳ２１１）。
【００５４】
次に、V_INDEXを「１」に初期化する（ステップＳ２１２）。復号テーブルメモリ１０３から、V_INDEX行H_INDEX列に位置するＭＣＵのファイルポインタとＤＣ予測値を読み出す（ステップＳ２１３）。読み出されたファイルポインタを参照して、V_INDEX行、H_INDEX列に位置するＭＣＵを起点として復号部１０１がＱ個のＭＣＵを復号し、復号画像データを出力バッファ１０５に格納する（ステップＳ２１４）。また、復号部１０１はＱ＋１個目のＭＣＵのファイルポインタとＤＣ予測値を出力し、それらを復号テーブルメモリ１０３に格納する（ステップＳ２１５）。
【００５５】
次に、V_INDEXに「１」を加算し（ステップＳ２１６）、垂直方向のMCUを全て復号したか否かを判定する（ステップＳ２１７）。垂直方向のＭＣＵを全て復号した場合は（ステップＳ２１７でYes）、ステップＳ２１８に進む。そうでない場合は（ステップＳ２１７でNo）、ステップＳ２１３へ戻る。
【００５６】
垂直方向のＭＣＵを全て復号し終えた時点で、図６（ｂ）や図６（ｃ）に示すように、復号テーブルに格納されている各ＭＣＵのファイルポインタとＤＣ予測値が全て更新されている。
【００５７】
ステップＳ２１８でH_INDEXにPを加算した後、水平方向のＭＣＵを全て復号したか否かを判定する（ステップＳ２１９）。水平方向のＭＣＵを全て復号した場合は（ステップＳ２１９でYes）、処理を終了する。そうでない場合は（ステップＳ２１９でNo）、ステップＳ２０９へ戻る。
【００５８】
本第２の実施形態の装置では、図６（ａ）に示すように、復号テーブルを作成した時点で、最も左の列のＭＣＵを含む領域が既に復号画像データバッファに格納されている。よって、この時点で復号画像データに対する処理を開始できるため、第１の実施形態と同様、本第２の実施形態の画像復号装置を印刷装置や表示装置に応用した場合に、迅速な印刷や表示が可能となる。
【００５９】
更に、本第２の実施形態によると、図６（ｂ）及び図（ｃ）に示すように、復号テーブルメモリ１０３に格納されている各ＭＣＵのファイルポインタとＤＣ予測値が、ステップＳ２０８以降の処理で順次更新される。よって、復号テーブルメモリ１０３に必要となるメモリ容量は、画像の垂直方向のＭＣＵ数（NUM_V_MCU）で済む。すなわち、復号テーブルに必要なメモリ容量を、第１の実施形態よりも少なくできる。
【００６０】
［その他の実施形態］
以上説明した第１，第２の実施形態では、ハードウェアによるものであった。しかし、同等の処理をパーソナルコンピュータ等の汎用情報処理装置が実行するコンピュータプログラムでもって実現しても構わない。この場合、そのプログラムは、図２、又は図３に示したフローチャートに示す処理手順に従って実行する機能を有すればよいので、説明するまでもないであろう。なお、コンピュータプログラムで実現する場合、図１に示す構成要素中、入力バッファ１１、出力バッファ１０５は、コンピュータが有するＲＡＭやハードディスクを利用する。また、印刷部１３を除く他の要素はコンピュータプログラムにおける関数（サブルーチン）として実現できる。
【００６１】
また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納されていて、それをコンピュータが有する読取り装置（ＣＤ−ＲＯＭドライブ等）にセットして、システムにコピーもしはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も本発明の範疇になるのは明らかである。
【００６２】
なお、実施形態では、復号対象の符号化画像データはＪＰＥＧ符号化データを例にして説明したが、複数の画素で構成される画素ブロックを単位にして可変長符号化された画像データであれば適用できるので、上記実施形態に限定されるものではない。特に、実施形態では、ＪＰＥＧ符号化としているので、符号化画像データ中の途中の或る画素ブロック（ＭＣＵ）のビット位置と、その画素ブロックのＤＣ予測値とを記憶するものとした。しかしながら、或る画素ブロックの符号化データのみからその画素ブロックの画像データを復号できるのであれば、ＤＣ予測値等、他の画素ブロックの復号結果は不要にできる。
【図面の簡単な説明】
【００６３】
【図１】実施形態が適用するプリンタ装置のブロック構成図である。
【図２】第１の実施形態における復号及び出力の処理手順を示すフローチャートである。
【図３】第２の実施形態における復号及び出力の処理手順を示すフローチャートである。
【図４】第１の実施形態における符号化画像データに対する復号処理のシーケンスと復号テーブルメモリとの関係を示す図である。
【図５】第１の実施形態の画像復号装置により画像を回転する様子を例示する概念図である。
【図６】第２の実施形態における符号化画像データに対する復号処理のシーケンスと復号テーブルメモリとの関係を示す図である。
【図７】第１の実施形態と従来技術の画像復号処理を比較して示す図である。
【図８】従来技術の画像復号装置において定められる起点ブロックの例を示す図である。
【図１】
2009194748.tif 000003
【図２】
2009194748.tif 000004
【図３】
2009194748.tif 000005
【図４】
2009194748.tif 000006
【図５】
2009194748.tif 000007
【図６】
2009194748.tif 000008
【図７】
2009194748.tif 000009
【図８】
2009194748.tif 000010