(57)【要約】【課題】  ある画素ブロックから部分的に画素ブロックを復号する処理において、復号処理に必要な情報を保持するために必要なバッファの削減。【解決手段】  着目起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該次の起点マクロブロック用の、定期的に初期化されない符号化パラメータを求める。定期的に初期化されない符号化パラメータを用いて、次の起点マクロブロックから水平方向において更に次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで該各マクロブロックのそれぞれの復号画像を生成して出力する。【選択図】  図１
2012199671.tif 000002
【特許請求の範囲】
【請求項１】
画像をマクロブロック単位で符号化することで生成された符号化画像データを復号する画像処理装置であって、
それぞれのマクロブロックを符号化するために用いられ且つ符号化処理の過程で定期的に初期化する符号化パラメータであって、該初期化されたときの符号化パラメータを用いて符号化したマクロブロックを起点マクロブロックとし、前記画像上の並び順において着目起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該次の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求める計算手段と、
前記定期的に初期化されない符号化パラメータを用いて、前記画像上の並び順において前記次の起点マクロブロックから水平方向において更に次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該各マクロブロックのそれぞれの復号画像を生成して出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記起点マクロブロックは、前記画像上で垂直方向に連続的に並んでいるマクロブロック列を形成しており、該マクロブロック列は水平方向に規定の距離だけ離間して複数列ならんでいることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
更に、
前記初期化されない符号化パラメータを格納するためのメモリを備え、
前記計算手段は、前記次の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求めると、該求めた符号化パラメータを、前記メモリにすでに格納されている符号化パラメータに上書きして格納することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記符号化画像データは、JPEG XR符号化形式に従って前記画像を符号化した符号化画像データであることを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記初期化されない符号化パラメータは、適応スキャンの順序、適応スキャンのカウンタ値、Modelbits、可変長符号化のコンテキスト情報、を含むことを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記初期化されない符号化パラメータは、DC成分、Lowpass成分、Highpass成分の予測値を含むことを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項７】
画像をマクロブロック単位で符号化することで生成された符号化画像データを復号する画像処理装置が行う画像処理方法であって、
前記画像処理装置の計算手段が、それぞれのマクロブロックを符号化するために用いられ且つ符号化処理の過程で定期的に初期化する符号化パラメータであって、該初期化されたときの符号化パラメータを用いて符号化したマクロブロックを起点マクロブロックとし、前記画像上の並び順において着目起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該次の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求める計算工程と、
前記画像処理装置の出力手段が、前記定期的に初期化されない符号化パラメータを用いて、前記画像上の並び順において前記次の起点マクロブロックから水平方向において更に次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該各マクロブロックのそれぞれの復号画像を生成して出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化された画像を復号する画像復号技術に関するものである。
【背景技術】
【０００２】
近年普及しているディジタル・カメラの画像圧縮機能には、静止画符号化方式としてJPEG符号化方式が広く用いられている。JPEG符号化方式においては、符号化対象の静止画像を８画素×８画素の画素ブロックに分割し、各画素ブロックを離散コサイン変換して、変換係数ブロックを生成する。その後、変換係数ブロック内の各変換係数を量子化し、該量子化した変換係数を一定の順序で走査する。そして、走査された変換係数が連続して０となる個数と、変換係数が０以外の値の組に対して、可変長符号を割り当てて符号化する。
【０００３】
ところで、画像データを取り扱うに際し、入力した画像を所定の角度だけ回転させたい場合がある。ディジタル・カメラで撮影したJPEG画像をプリンタで印刷出力する際に、用紙のサイズや画像のレイアウトに応じて、JPEG画像を９０°、１８０°、あるいは２７０°回転させた状態で出力させたい場合も多い。このような場合、対象となるJPEG画像の全体を復号し、しかる後に所定の角度だけ回転処理を施す方法も考えられる。
【０００４】
しかし、この方法によると、復号した画像の全体を一時的に保持するための大容量メモリが必要となるばかりでなく、大容量の画像を回転処理するために回転処理の所要時間も増大するという問題が生ずる。
【０００５】
このような問題を解決する従来技術として、特許文献１、特許文献２が開示されている。従来技術では、まず、符号化データを最初から順番に復号し、図６に示す原画像中に予め定めた起点ブロックを復号するために必要とされる復号情報を得る。しかる後に、復号情報を利用して符号化データを起点ブロックから復号し、所定の角度だけ回転させて画像バッファに出力する。以上の処理を行うことにより、原画像を所定の角度だけ回転させた状態とした時に、上方に位置するブロックから順に復号画像データを出力可能とする。
【０００６】
特許文献１、特許文献２の技術では、JPEG符号化データを所望のMCUのみ復号する場合は、復号を再開する符号化データのビット位置（アドレス）とDC予測値をメモリから読み出していた。また、復号済みMCUの状態から、復号に用いる情報が適応的に変化することはなく、そのため、起点ブロックから復号するために必要とされる情報量は少なかった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１９４７４８号公報
【特許文献２】特開２００６−３０４２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、JPEG XR符号化方式では、原画像を符号化するに際し、符号化の結果によって適応的に符号化に用いる情報が変化する。よって、復号を行う際も、符号化データの復号結果を学習して、適応的に復号に用いる情報が変化する。JPEG XR符号化データの復号を行うにあたって、この適応的に変化する情報が必要となる。そのため、所定のブロックから符号化データの復号を開始または再開するために必要な情報量が膨大であり、ワークメモリを圧迫する問題がある。
【０００９】
本発明はこのような問題に鑑み、ある画素ブロックから部分的に画素ブロックを復号する処理において、復号処理に必要な情報を保持するために必要なバッファの削減を目的とする。
【課題を解決するための手段】
【００１０】
本発明の目的を達成するために、たとえば、本発明の画像処理装置は、画像をマクロブロック単位で符号化することで生成された符号化画像データを復号する画像処理装置であって、それぞれのマクロブロックを符号化するために用いられ且つ符号化処理の過程で定期的に初期化する符号化パラメータであって、該初期化されたときの符号化パラメータを用いて符号化したマクロブロックを起点マクロブロックとし、前記画像上の並び順において着目起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該次の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求める計算手段と、前記定期的に初期化されない符号化パラメータを用いて、前記画像上の並び順において前記次の起点マクロブロックから水平方向において更に次の起点マクロブロックの直前のマクロブロックまでの間の各マクロブロックを復号することで、該各マクロブロックのそれぞれの復号画像を生成して出力する出力手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、ある画素ブロックから部分的に画素ブロックを復号する処理において、復号処理に必要な情報を保持するために必要なバッファの削減を可能とする。
【図面の簡単な説明】
【００１２】
【図１】画像処理装置の機能構成例を示すブロック図。
【図２】復号処理のフローチャート。
【図３】復号処理のフローチャート。
【図４】画像符号化について説明する図。
【図５】起点マクロブロックを説明する図。
【図６】起点ブロックを説明するための図。
【図７】復号起点マクロブロックを説明する図。
【図８】復号処理を説明する図。
【図９】復号画像を説明する図。
【図１０】２回目のスキャン処理を説明する図。
【図１１】復号処理を説明する図。
【図１２】復号画像を説明する図。
【図１３】２回目のスキャン処理を説明する図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の一つである。
【００１４】
［第１の実施形態］
本実施形態では、画像をマクロブロック単位で符号化することで生成された符号化画像データを復号する画像処理装置について説明する。なお、本実施形態では、この符号化の形式がJPEG XR符号化形式である場合について説明するが、これに限るものではなく、そのほかの符号化の形式を採用してもよい。
【００１５】
JPEG XR符号化方式で用いる符号化パラメータには、定期的（周期的）に初期化される符号化パラメータと、定期的に初期化されない符号化パラメータと、がある。定期的（周期的）に初期化される符号化パラメータには、適応スキャンの順序、適応スキャンのカウンタ値がある。定期的に初期化されない符号化パラメータには、Modelbits、可変長符号化のコンテキスト情報がある。
【００１６】
可変長符号化のコンテキスト情報には、符号化テーブル番号、符号化テーブル切り替え判定値、符号化テーブル切り替え判定値のテーブル番号、などが含まれる。また、JPEG XR符号化方式では、マクロブロック(MB)と呼ばれるブロックを処理単位として符号化および復号が行われる。
【００１７】
本実施形態では、画像を、M個（垂直方向）×N個（水平方向）のマクロブロック群に分割し、マクロブロックごとにJPEG XR符号化形式に従って符号化された符号化画像データ復号する。すなわち、この符号化画像データは、図４に示す如く、画像を複数のタイルに分割し、更に１つのタイルを複数のマクロブロックに分割し、マクロブロックごとに符号化したものである。なお、画像を必ずしも複数のタイルに分割する必要はなく、画像は１つのタイルで構成されていてもよい。
【００１８】
そして図８に示す如く、起点マクロブロックで区切られるM個×P個の短冊状のマクロブロック群をP×n（P×n＜N、ｎは0以上の整数）個目の起点マクロブロックを復号起点マクロブロックとして部分的に復号し、回転処理を行う。ここでＰは、P＜Nであり、水平方向における次の起点マクロブロックまでのマクロブロック数を示す。
【００１９】
まず、本実施形態に係る画像処理装置の機能構成例について、図１のブロック図を用いて説明する。入力バッファ１０２には、上記の復号対象となる符号化画像データが格納されており、画像処理装置１０１はこの入力バッファ１０２からこの符号化画像データを読み出して復号し、復号した結果である画像データを出力バッファ１０７に格納する。
【００２０】
画像処理装置１０１が有する復号情報記憶部１０５、復号情報生成部１０４、復号部１０３は何れも、画像処理装置１０１の制御部１０６によってその動作が制御され、これら各部の動作については以下で、図２のフローチャートに従って詳細に説明する。
【００２１】
画像処理部１０８は、出力バッファ１０７に格納されている画像データに対し、印刷のための様々な画像処理を行う。画像処理部１０８によって行われる画像処理には、例えば、画像回転処理や色変換などが挙げられるが、如何なる画像処理を行うのかについてはここでの本質ではない。
【００２２】
画像印刷部１０９は、画像処理部１０８により画像処理が施された画像データから印刷データを生成し、生成した印刷データに従って、紙などの記録媒体上に画像を形成する印刷処理を行う。
【００２３】
なお、図１では復号して画像処理を施した画像を印刷するための構成を示している。しかし、この画像の用途は印刷以外であってもよく、復号および画像処理を施した画像をメモリに格納しておいてもよいし、表示装置に表示させてもよいし、ネットワークを介して外部に対して送信してもよい。
【００２４】
次に、画像処理装置１０１が行う画像復号処理について、図２のフローチャートに従って説明する。図２のフローチャートでは、符号化画像データを２回スキャンして復号処理を達成する。
【００２５】
まず、１回目のスキャン処理（ステップS２０２〜S２１０）の処理を行う。ステップＳ２０２では制御部１０６は、これから参照するマクロブロックの画像上におけるY座標位置（画像における垂直方向をＹ軸方向としている）を示す変数MBｙを０に初期化すると共に、後述する変数ＩＤＸを１に初期化する。
【００２６】
次にステップＳ２０３では制御部１０６は、これから参照するマクロブロックの画像上におけるＸ座標位置（画像における水平方向をＸ軸方向としている）を示す変数ＭＢｘを０に初期化する。
【００２７】
本実施形態では、画像上における座標位置（ＭＢｘ、MBｙ）＝（０，０）は、画像の左上隅の位置におけるマクロブロックを指し示しているものとして説明するが、この位置が画像上のどこであるのかについてはこれに限るものではない。
【００２８】
次にステップＳ２０４では復号部１０３は、画像上における座標位置（ＭＢｘ、MBｙ）にあるマクロブロックの復号処理を行う。ここでの復号は、マクロブロックを構成する各画素の画素値を得る段階まで行ってもよいが、予測処理まで行えればよい。
【００２９】
ここで、それぞれのマクロブロックを符号化するために用いられ且つ符号化処理の過程で定期的に初期化する符号化パラメータであって、該初期化されたときの符号化パラメータを用いて符号化したマクロブロックを起点マクロブロックと呼称する。この起点マクロブロックは、図６に示す如く（図６では起点ブロック）、画像上で垂直方向に連続的に並んでいるマクロブロック列であり、該マクロブロック列は水平方向に規定の距離だけ離間して複数列ならんでいる。
【００３０】
なお、各マクロブロック列には左から１，２，３…というように固有のＩＤ（ＩＤＸ）があらかじめ割り当てられている。このとき、ＩＤＸ＝Ｑの起点マクロブロックのＸ座標位置をＰＭＢｘ［Ｑ］とする。
【００３１】
このとき、ステップＳ２０５では制御部１０６は、画像上における座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックであるか否かを判断する。この判断の結果、画像上における座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックである場合には処理はステップＳ２０６に進み、起点マクロブロックではない場合は処理はステップＳ２０７に進む。
【００３２】
ステップＳ２０６では復号部１０３は、制御部１０６による制御に従って、画像上における座標位置（ＭＢｘ、MBｙ）にあるマクロブロックの復号結果を復号情報生成部１０４に送出する。ここで、ＭＢｘ＋１＝ＰＭＢｘ［Ｑ］であるとする。この場合、復号情報生成部１０４はこの復号結果から、座標位置（ＰＭＢｘ［Ｑ］、MBｙ）の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求める（計算）。この求める符号化パラメータは、座標位置（ＰＭＢｘ［Ｑ］、MBｙ）の起点マクロブロックから座標位置（ＰＭＢｘ［Ｑ＋１］−１、MBｙ）のマクロブロックまでの各マクロブロックを完全に復号するために用いられるものである。そして復号情報生成部１０４は、求めた符号化パラメータを復号情報記憶部１０５に格納する。
【００３３】
このように、着目起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでの各マクロブロックを復号することで、該次の起点マクロブロックの符号化時に用いた、定期的に初期化されない符号化パラメータを求める。また、このように、復号は起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでの各マクロブロックについて行うことから、図７に示す如く、復号の起点は常に起点マクロブロックとなる。然るに本明細書では、この復号の起点となる起点マクロブロックを復号起点マクロブロックと呼称する場合がある。
【００３４】
次に、ステップＳ２０７では制御部１０６は、｛ＭＢｘ＝Ｎ−１およびMBｙ＝Ｍ−１｝であるか否かを判断する。この判断の結果、｛ＭＢｘ＝Ｎ−１およびMBｙ＝Ｍ−１｝であれば処理はステップＳ２１１に進み、｛ＭＢｘ＝Ｎ−１およびMBｙ＝Ｍ−１｝でなければ、処理はステップＳ２０８に進む。
【００３５】
ステップＳ２０８では制御部１０６は、変数ＭＢｘの値を１つインクリメントする。そしてステップＳ２０９では制御部１０６は、ＭＢｘ＝Ｎであるか否かを判断する。この判断の結果、ＭＢｘ＝Ｎであれば処理はステップＳ２１０に進み、ＭＢｘ＜Ｎであれば処理はステップＳ２０４に戻る。
【００３６】
ステップＳ２１０では制御部１０６は、変数MBｙの値を１つインクリメントする。そして処理はステップＳ２０３に戻る。
【００３７】
次に、２回目のスキャン処理（ステップS２１１〜S２２２）の処理を行う。２回目のスキャン処理では、図１０に示す如く、垂直に配置された起点マクロブロックごとに保持した符号化パラメータを用いて各起点マクロブロックに対応した位置から復号して、短冊状の復号画像を出力する。該短冊に隣接する水平方向の次の起点マクロブロック群を次の復号起点マクロブロック群として復号できるように、該起点マクロブロックの直前のマクロブロックでは符号化パラメータを保持する。
【００３８】
ステップＳ２１１では制御部１０６は、変数MBｙを０に初期化する。次にステップＳ２１２では制御部１０６は、変数ＭＢｘにＰＭＢｘ［ＩＤＸ］の値を設定する。すなわち、座標位置（ＭＢｘ、MBｙ）は、起点マクロブロックの座標位置を指し示している。
【００３９】
ステップＳ２１３で復号部１０３は座標位置（ＰＭＢｘ［ＩＤＸ］、ＭＢｙ）の起点マクロブロックから水平方向で次の起点マクロブロックの１つ前のマクロブロック迄の各マクロブロックを復号する為の符号化パラメータを復号情報記憶部１０５から取得する。そして復号部１０３は、この取得した符号化パラメータを用いて、座標位置（ＭＢｘ、MBｙ）におけるマクロブロックを復号し、このマクロブロックの復号画像を生成する。
【００４０】
ステップＳ２１４では復号部１０３は、ステップＳ２１３で生成した復号画像を出力バッファ１０７に出力する。ステップＳ２１５では復号部１０３は、復号画像の一部を予測値として復号情報生成部１０４に出力し、復号情報生成部１０４はこの予測値を復号情報記憶部１０５に格納する。
【００４１】
ステップＳ２１６では制御部１０６は、座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックであるか否かを判断する。この判断の結果、座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックである場合には処理はステップＳ２１８に進む。一方、座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックではない場合は処理はステップＳ２１７に進む。
【００４２】
ステップＳ２１７では制御部１０６は、変数ＭＢｘの値を１つインクリメントし、その後、処理はステップＳ２１３に進む。
【００４３】
ステップＳ２１８で復号部１０３は、制御部１０６による制御に従って、画像上における座標位置（ＭＢｘ、MBｙ）にあるマクロブロックの復号結果を復号情報生成部１０４に送出する。ここで、ＭＢｘ＋１＝ＰＭＢｘ［Ｑ］であるとする。この場合、復号情報生成部１０４はこの復号結果から、座標位置（ＰＭＢｘ［Ｑ］、MBｙ）の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求める（計算）。この求める符号化パラメータは、座標位置（ＰＭＢｘ［Ｑ］、MBｙ）の起点マクロブロックから座標位置（ＰＭＢｘ［Ｑ＋１］−１、MBｙ）のマクロブロックまでの各マクロブロックを完全に復号するために用いられるものである。そして復号情報生成部１０４は、求めた符号化パラメータを復号情報記憶部１０５に上書きして格納する。
【００４４】
ステップＳ２１９では制御部１０６は、変数MBｙの値を１つインクリメントする。ステップＳ２２０では制御部１０６は、変数MBｙの値＜Ｍであるか否かを判断する。この判断の結果、変数MBｙの値＜Ｍであれば処理はステップＳ２１２に進み、変数MBｙの値≧Ｍであれば処理はステップＳ２２１に進む。
【００４５】
ステップＳ２２１では制御部１０６は、すべてのマクロブロックの復号が完了したか否かを判断する。この判断の結果、すべてのマクロブロックの復号が完了したのであれば本処理は終了し、まだ復号していないマクロブロックがあれば、処理はステップＳ２２２に進む。
【００４６】
ステップＳ２２２では制御部１０６は変数ＩＤＸの値を１つインクリメントする。そして処理はステップＳ２１１に進む。なお、ステップＳ２２２の時点では図９（a）に示すように、画像左端に位置するM個×P個のマクロブロックから成る領域の復号画像データが、出力バッファ１０７に格納されている。ここでＰはＰ＜Ｎであり、着目起点マクロブロックから水平方向において次の起点マクロブロックの直前のマクロブロックまでのマクロブロックの数を示す。
【００４７】
本実施形態では、このような短冊状の画像領域を回転させて印刷する。然るに、図９（b）に示すように、画像を回転した時に最初に印刷される領域（（０，０）、（P−１，０）、（P−１，M−１）、（０，M−１）を４隅とする領域）の復号画像データが既に出力バッファ１０７に格納されている。よって、この時点で画像処理部１０８は出力バッファ１０７に格納されている復号画像データに対して回転処理を開始できる。
【００４８】
以上の説明により、本実施形態によれば、JPEG XR符号化方式で符号化した符号化画像データを部分的に復号しながら短冊状の画像データを復元し、該短冊状の画像データに回転処理を施し、復号画像全体の回転を実現する。部分的に復号する際に、起点マクロブロックを設け、初期化されない符号化パラメータのみを保持することにより、部分的な復号を行うのに必要な保持情報を削減すると共に、回転処理を行うのに必要な画像格納領域を削減することができる。
【００４９】
＜変形例＞
第１の実施形態の変形例として次のようなものが考えられる。すなわち、１回目のスキャンで復号した復号画像が、画像の左端の起点マクロブロックから復号する領域であって、２回目のスキャンでこの起点マクロブロックから復号し出力する予定である場合、１回目のスキャンと同時に復号画像を出力してもよい。さらに、２回目のスキャンでは水平方向において次の起点マクロブロックから部分的な復号を再開してもよい。
【００５０】
［第２の実施形態］
本実施形態では、図１に示した構成を有する画像処理装置により、第１の実施形態とは異なる画像復号処理を行う。なお、本実施形態においても、第１の実施形態と同様、画像を、M個（垂直方向）×N個（水平方向）のマクロブロック群に分割し、マクロブロックごとにJPEG XR符号化形式に従って符号化された符号化画像データ復号する。しかし本実施形態においても、第１の実施形態と同様、そのほかの符号化の形式を採用してもよい。
【００５１】
本実施形態では次のような復号方法を採用する。たとえば図１１に示す如く、M×R個（Rは１以上の任意の整数）の短冊状のマクロブロック群を復号するとする。この場合、P×n（P×n＜N、Pは水平方向における次の起点マクロブロックまでのマクロブロックの個数、ｎは０以上の整数）個目の起点マクロブロックから復号する。そして、P×n＋Q（Q＜P）列目までは復号画像を出力バッファ１０７に出力せず、P×n＋Q個目以降の復号画像を出力し、回転処理を行う。
【００５２】
第１の実施形態では、部分的な復号処理の水平方向の終端は起点マクロブロックの１つ手前のマクロブロックであった。しかし、本実施形態では出力バッファ１０７に出力し始める画素位置が起点マクロブロックとずれているため、部分的な復号処理の水平方向の終端はその分だけ後ろにずれる。よって、起点マクロブロックをまたいで復号することになる。但し、Rの値によっては、起点マクロブロックを必ずしもまたいで復号するわけではない。
【００５３】
次に、本実施形態に係る復号処理について、図３のフローチャートに従って説明する。なお、図３のフローチャートに登場する各変数は何れも第１の実施形態で説明したものである。
【００５４】
本実施形態においても、第１の実施形態と同様に、符号化画像データを２回スキャンして復号処理を達成する。１回目のスキャン処理（ステップS３０２〜ステップS３１０）では第１の実施形態における１回目のスキャン処理と同様の処理を行うため、これに係る説明は省略する。
【００５５】
２回目のスキャン処理では、図１３に示す如く、１回目のスキャン処理で各起点マクロブロック（復号起点マクロブロック）用に取得した符号化パラメータを用いて、起点マクロブロック間のマクロブロック群を復号する。ただし、第１の実施形態とは異なり、復号したすべてのマクロブロックの画像を出力バッファ１０７に出力するのではない。また、垂直に配置される水平方向の次の起点マクロブロック群を次の復号起点マクロブロック群として復号できるように、該起点マクロブロックの直前のマクロブロックでは符号化パラメータを保持する。
【００５６】
２回目のスキャン処理は、ステップＳ３１１から始まる。ステップＳ３１１では制御部１０６は、変数ＭＢｙの値を０に初期化する。次にステップＳ３１２では制御部１０６は、変数ＭＢｘにＰＭＢｘ［ＩＤＸ］の値を設定する。すなわち、座標位置（ＭＢｘ、MBｙ）は、起点マクロブロックの座標位置を指し示している。
【００５７】
ステップＳ３１３で復号部１０３は座標位置（ＰＭＢｘ［ＩＤＸ］、MBｙ）の起点マクロブロックから水平方向で次の起点マクロブロックの１つ前のマクロブロック迄の各マクロブロックを復号する為の符号化パラメータを復号情報記憶部１０５から取得する。そして復号部１０３は、この取得した符号化パラメータを用いて、座標位置（ＭＢｘ、MBｙ）におけるマクロブロックを復号し、このマクロブロックの復号画像を生成する。
【００５８】
次に、ステップＳ３１４では復号部１０３は、ステップＳ３１３で復号したマクロブロックが出力バッファ１０７への出力対象マクロブロックであるか否かを判断する。この判断の結果、出力対象マクロブロックであれば処理はステップＳ３１５に進み、出力対象マクロブロックではない場合は処理はステップＳ３１７に進む。
【００５９】
ステップＳ３１５では、復号部１０３は、ステップＳ３１３で復号したマクロブロックの復号画像を出力バッファ１０７に対して出力する。ステップＳ３１６では復号部１０３は、復号画像の一部を予測値として復号情報生成部１０４に出力し、復号情報生成部１０４はこの予測値を復号情報記憶部１０５に格納する。
【００６０】
ステップＳ３１７では制御部１０６は、座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックであるか否かを判断する。この判断の結果、座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックである場合には処理はステップＳ３１８に進む。一方、座標位置（ＭＢｘ＋１、MBｙ）におけるマクロブロックが起点マクロブロックではない場合は処理はステップＳ３１９に進む。
【００６１】
ステップＳ３１８で復号部１０３は、制御部１０６による制御に従って、画像上における座標位置（ＭＢｘ、MBｙ）にあるマクロブロックの復号結果を復号情報生成部１０４に送出する。ここで、ＭＢｘ＋１＝ＰＭＢｘ［Ｑ］であるとする。この場合、復号情報生成部１０４はこの復号結果から、座標位置（ＰＭＢｘ［Ｑ］、MBｙ）の起点マクロブロックの符号化時に用いられた、定期的に初期化されない符号化パラメータを求める（計算）。この求める符号化パラメータは、座標位置（ＰＭＢｘ［Ｑ］、MBｙ）の起点マクロブロックから座標位置（ＰＭＢｘ［Ｑ＋１］−１、MBｙ）のマクロブロックまでの各マクロブロックを完全に復号するために用いられるものである。そして復号情報生成部１０４は、求めた符号化パラメータを復号情報記憶部１０５に格納する。
【００６２】
ステップＳ３１９では制御部１０６は、ステップＳ３１３で所定数（Ｒ個）のマクロブロックを復号したか否かを判断する。この判断の結果、所定数のマクロブロックを復号した場合は処理はステップＳ３２１に進み、まだ所定数のマクロブロックを復号していない場合は処理はステップＳ３２０に進む。
【００６３】
ステップＳ３２０では制御部１０６は、変数ＭＢｘの値を１つインクリメントし、処理はステップＳ３１３に進む。一方、ステップＳ３２１では制御部１０６は、変数MBｙの値を１つインクリメントする。ステップＳ３２２では制御部１０６は、変数MBｙの値＜Ｍであるか否かを判断する。この判断の結果、変数MBｙの値＜Ｍであれば処理はステップＳ３１２に進み、変数MBｙの値≧Ｍであれば処理はステップＳ３２３に進む。
【００６４】
ステップＳ３２３では制御部１０６は、すべてのマクロブロックの復号が完了したか否かを判断する。この判断の結果、すべてのマクロブロックの復号が完了したのであれば本処理は終了し、まだ復号していないマクロブロックがあれば、処理はステップＳ３２４に進む。ステップＳ３２４では制御部１０６は変数ＩＤＸの値を１つインクリメントする。そして処理はステップＳ３１１に進む。
【００６５】
なお、水平方向に復号するマクロブロックの個数（R個）によっては、ステップS３１８の処理が行われない場合がある。その場合、ステップS３２４の処理を行わずにステップS３１１に戻り、同じ復号起点マクロブロックから復号する。そして、ステップS３１４の判定で、出力バッファ１０７に未出力の復号画像を出力してもよい。
【００６６】
また、ステップS３２３に入った時点で、図１２（a）に示すように、M個×R個のマクロブロックから成る領域の復号画像が、出力バッファ１０７に格納されている。即ち、図１２（b）に示すように、画像を回転した時に最初に印刷される領域（（Q，０）、（Q＋R−１，０）、（Q＋R−１，M−１）、（Q，M−１）を四隅とする領域）の復号画像が既に出力バッファ１０７に格納されている。よって、この時点で画像処理部１０８は出力バッファ１０７に格納されている復号画像に対して回転処理を開始できる。
【００６７】
以上の説明により、本実施形態によれば、JPEG XR符号化方式の符号化画像データを部分的に復号する場合に、復号起点マクロブロックを設け、初期化されない符号化パラメータのみを保持する。そして、復号起点マクロブロックから復号はするが、復号画像を出力しないことで、復号起点マクロブロック以外からの復号画像を出力する場合でも部分的に復号を行い、回転処理を行うのに必要な情報を削減することができる。
【００６８】
以上説明した各実施形態は一例であり、すべての構成要件が必須なものではない。いずれにせよ、以上の各実施形態では、図５に示すように、適応的に変化する情報である符号化パラメータが初期化されるマクロブロックを、部分的に復号開始する起点マクロブロックとして設ける。そして、起点マクロブロックにおいて初期化されない符号化パラメータを保持することで、復号に必要な情報を削減する。
【００６９】
なお、上記の説明では、初期化されない符号化パラメータは、適応スキャンの順序、適応スキャンのカウンタ値、Modelbits、可変長符号化のコンテキスト情報、を含むとしている。しかし、これに限るものではなく、初期化されない符号化パラメータは、DC成分、Lowpass成分、Highpass成分の予測値を含むようにしてもよい。
【００７０】
［第３の実施形態］
図１に示した、画像処理装置１０１を構成する各部はハードウェアで構成してもよいが、ソフトウェア（コンピュータプログラム）で実装してもよい。この場合、ＰＣ（パーソナルコンピュータ）等のコンピュータが有するメモリにこのソフトウェアをインストールしておく。そして、このコンピュータが有するＣＰＵがこのソフトウェアを読み出して実行することで、このコンピュータは、画像処理装置１０１が有する各部として機能することになる。
【００７１】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012199671.tif 000003
【図２】
2012199671.tif 000004
【図３】
2012199671.tif 000005
【図４】
2012199671.tif 000006
【図５】
2012199671.tif 000007
【図６】
2012199671.tif 000008
【図７】
2012199671.tif 000009
【図８】
2012199671.tif 000010
【図９】
2012199671.tif 000011
【図１０】
2012199671.tif 000012
【図１１】
2012199671.tif 000013
【図１２】
2012199671.tif 000014
【図１３】
2012199671.tif 000015