(57)【要約】【課題】  並列処理を行う場合にタイル分割や算術符号のＷａｖｅｆｒｏｎｔ処理は併用することができなかった。【解決手段】  符号化データから、前記符号化データが前タイルの符号化データであるタイルデータに分割されて符号化されているか否かを示すタイルデータ分割情報と、前記タイルデータの位置を示すタイルデータ位置情報と、前記タイルがライン状のブロックの集合である第１のブロックラインの符号化データである第１ブロックラインデータ及び前記第１のブロックラインに隣接する２のブロックラインの符号化データである第２ブロックラインデータに分割されて符号化されているか否かを示すブロックラインデータ分割情報と、前記第２ブロックラインデータの位置を示すブロックラインデータ位置情報とに基づいて復号する。【選択図】  図１
2014011638.tif 000002
【特許請求の範囲】
【請求項１】
フレームが矩形状のタイルに分割されて符号化されている符号化データを復号する復号装置であって、
前記符号化データから、前記符号化データが前記タイルの符号化データであるタイルデータに分割されて符号化されているか否かを示すタイルデータ分割情報と、前記タイルデータの位置を示すタイルデータ位置情報と、前記タイルがライン状のブロックの集合である第１のブロックラインの符号化データである第１ブロックラインデータ及び前記第１のブロックラインに隣接する２のブロックラインの符号化データである第２ブロックラインデータに分割されて符号化されているか否かを示すブロックラインデータ分割情報と、前記第２ブロックラインデータの位置を示すブロックラインデータ位置情報を取得する取得手段と、
前記取得手段によって取得された情報に基づいて前記第１のブロックラインを復号する第１の復号手段と、
前記取得手段によって取得された情報と前記第１のブロックラインに属する所定の位置のブロックの符号化データを復号した後の復号情報とに基づいて前記第２ブロックラインデータを復号する第２の復号手段と
を有することを特徴とする画像復号装置。
【請求項２】
前記フレームのＮ（Ｎ≧１）番目のタイルに属する、０番目のブロックラインデータの位置は、Ｎ番目の前記タイルデータ位置情報で表され、Ｍ（Ｍ≧１）番目以降のブロックラインデータの位置は、ブロックラインデータ位置情報として前記Ｍ−１番目のブロックラインデータの大きさで表されていることを特徴とする請求項１に記載の画像復号装置。
【請求項３】
フレームが矩形状のタイルに分割されて符号化されている符号化データを復号する復号装置における復号方法であって、
前記符号化データから、前記符号化データが前記タイルの符号化データであるタイルデータに分割されて符号化されているか否かを示すタイルデータ分割情報と、前記タイルデータの位置を示すタイルデータ位置情報と、前記タイルがライン状のブロックの集合である第１のブロックラインの符号化データである第１ブロックラインデータ及び前記第１のブロックラインに隣接する２のブロックラインの符号化データである第２ブロックラインデータに分割されて符号化されているか否かを示すブロックラインデータ分割情報と、前記第２ブロックラインデータの位置を示すブロックラインデータ位置情報を取得する取得工程と、
前記取得工程によって取得された情報に基づいて前記第１のブロックラインを復号する第１の復号工程と、
前記取得工程によって取得された情報と前記第１のブロックラインに属する所定の位置のブロックの符号化データを復号した後の復号情報とに基づいて前記第２ブロックラインデータを復号する第２の復号工程と
を有することを特徴とする画像復号方法。
【請求項４】
コンピュータが読み出して実行することにより、前記コンピュータを、請求項１に記載の画像復号装置として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラムに関し、特に各ピクチャが矩形状のタイルに分割された画像の並列処理による符号化方法・復号方法に関する。
【背景技術】
【０００２】
動画像の圧縮記録に用いられる符号化方式として、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣ（以下Ｈ．２６４）が知られている。（非特許文献１）
Ｈ．２６４においては、ピクチャを複数のスライスに分割して符号化する事が可能である。各スライス間にはデータの依存性が少なく、並列に符号化・復号化処理を実施する事ができる。マルチコアのＣＰＵ等で並列に処理を実行し、処理時間を短縮できる事が、スライス分割の大きな利点の一つとして挙げられる。
【０００３】
また、各スライスはＨ．２６４に採用されている従来の２値算術符号化の手法によって、符号化される。すなわち、各シンタックス要素が２値化され、２値信号が生成される。各シンタックス要素には、あらかじめ発生確率がテーブル（以下、発生確率テーブル）として与えられ、前記２値信号は前記発生確率テーブルに基づいて算術符号化される。この発生確率テーブルは復号時には復号情報として、続く符号の復号に使用される。符号化時には符号化情報として、続く符号化に使用される。そして符号化が行われる毎に、符号化された２値信号が発生確率の高い方のシンボルであったか否か、という統計情報に基づいて発生確率テーブルが更新される。
【０００４】
近年、Ｈ．２６４の後継としてさらに高効率な符号化方式の国際標準化を行う活動が開始されて、ＪＣＴ−ＶＣ（Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ）がＩＳＯ／ＩＥＣとＩＴＵ−Ｔの間で設立された。ＪＣＴ−ＶＣでは、Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ符号化方式（以下、ＨＥＶＣ）の標準化が進められている。
【０００５】
ＨＥＶＣの標準化にあたっては、種々の符号化ツールが、符号化効率向上のみならず実装の容易性や処理時間の短縮といった観点も含めて幅広く検討されている。処理時間の短縮の中には、並列性を高めるための手法も検討されている。その中には、エントロピー符号化・復号化を並列に処理するための、Ｗａｖｅｆｒｏｎｔと呼ばれる手法がある（非特許文献２）。符号化対象の２値信号は、常に更新された発生確率テーブルを用いて符号化を行う必要があるため、統計情報をリセットしなければ処理を並列に行う事ができない。しかし、統計情報をリセットしてしまうと符号化効率が低下してしまうという課題があった。それに対してＷａｖｅｆｒｏｎｔは、複数の、予め指定された位置のブロックを符号化処理した時点での発生確率のテーブルを、次のラインの左端のブロックに適用する事で、符号化効率の低下を抑制した上でライン単位でのブロックの並列な符号化処理が可能となる。上記、Ｗａｖｅｆｒｏｎｔに関しては主に符号化処理に関して説明したが、復号処理に関しても同様である。
【０００６】
また、ＨＥＶＣでは、並列性を高める手法としてタイル処理も含まれている（非特許文献２）。このタイルはピクチャ内を矩形に分割し、それぞれを独立に処理を行う技術である。これにより、符号化・復号の並列処理による高速化を実現すると共に符号化装置・復号装置が備えるメモリ容量を削減することが可能となっている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＩＴＵ−Ｔ  Ｈ．２６４  （０３／２０１０）  Ａｄｖａｎｃｅｄ  ｖｉｄｅｏ  ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏ  ｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓ
【非特許文献２】ＪＣＴ−ＶＣ  寄書  ＪＣＴＶＣ−Ｉ１００３．ｄｏｃ  インターネット＜  ｈｔｔｐ：／／ｐｈｅｎｉｘ．ｉｎｔ‐ｅｖｒｙ．ｆｒ／ｊｃｔ／ｄｏｃ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来、ＨＥＶＣでは、ｔｉｌｅｓ＿ｏｒ＿ｅｎｔｒｏｐｙ＿ｃｏｄｉｎｇ＿ｓｙｎｃ＿ｉｄｃ符号を用いて、タイル、Ｗａｖｅｆｒｏｎｔ等の処理を排他的に行っていた。その値が０であれば、ピクチャに１つのタイルのみが存在し、Ｗａｖｅｆｒｏｎｔ並列処理を行わない。その値が１であれば、ピクチャ内に複数のタイルが存在するが、Ｗａｖｅｆｒｏｎｔ処理を行わない。その値が２であれば、ピクチャ内に１つのタイルのみが存在し、Ｗａｖｅｆｒｏｎｔ等の並列処理を行う。その値が３であれば、ピクチャ内に１つのタイルのみが存在し、Ｗａｖｅｆｒｏｎｔの並列処理を行わず、独立に復号可能なエントロピスライスを用いる。これ以外の値に関しては使用できないとしている。これは画像がハイビジョンのように十分に小さい時に複数の並列処理を行うと、並列処理の制御が複雑になり、ピクチャサイズの割には複雑度が高くなるという問題があったため、排他的な処理を行うことにしたものである。特に８Ｋ４Ｋ等画像が非常に大きい時は、リアルタイムで復号するためには高い並列性が求められる。タイルを非常に細かく分割して並列性を高める事は可能だが、タイル境界では予測に使える情報が限られるため符号化効率が低下してしまう。一方ブロックラインのみで分割してＷａｖｅｆｒｏｎｔ並列処理をすることは、ラインバッファの増大を招く上、ブロックライン間で発生確率テーブル等依存関係があるためタイル程並列性を高める事はできない。また、このような大画面を扱う場合、画面を有る程度のサイズに分割して、其々をコンピュータのノードに割り当て、ノード毎に複数のプロセッサで動作させることが必要になった。例えば、ノード単位にタイルを割り当てて処理を行う場合、タイル内をＷａｖｅｆｒｏｎｔなどで並列に処理を行うことができないという問題が生じた。
【０００９】
したがって、本発明は、多段階の並列処理を可能な符号化フォーマットを実現することで、処理の並列性を高め、高速に符号化・復号処理を実現することを目的としている。
【課題を解決するための手段】
【００１０】
上述の問題点を解決するため、本発明の画像復号装置は以下の構成を有する。すなわち、フレームが矩形状のタイルに分割されて符号化されている符号化データを復号する復号装置であって、前記符号化データから、前記符号化データが前記タイルの符号化データであるタイルデータに分割されて符号化されているか否かを示すタイルデータ分割情報と、前記タイルデータの位置を示すタイルデータ位置情報と、前記タイルがライン状のブロックの集合である第１のブロックラインの符号化データである第１ブロックラインデータ及び前記第１のブロックラインに隣接する２のブロックラインの符号化データである第２ブロックラインデータに分割されて符号化されているか否かを示すブロックラインデータ分割情報と、前記第２ブロックラインデータの位置を示すブロックラインデータ位置情報を取得する取得手段と、前記取得手段によって取得された情報に基づいて前記第１のブロックラインを復号する第１の復号手段と、前記取得手段によって取得された情報と前記第１のブロックラインに属する所定の位置のブロックの符号化データを復号した後の復号情報とに基づいて前記第２ブロックラインデータを復号する第２の復号手段とを有する。
【発明の効果】
【００１１】
本発明により、多段階の並列処理を可能な符号化フォーマットを実現することで、処理の並列性を高め、高速に符号化・復号処理が行えることができる。
【図面の簡単な説明】
【００１２】
【図１】実施形態１の画像復号装置が復号する画像符号化フォーマットを示す図
【図２】画像のタイル分割を示す図
【図３】タイルのブロックライン分割を示す図
【図４】実施形態１、２の画像復号装置の構成を示すブロック図
【図５】実施形態１、２の画像復号装置の動作を示すフローチャート図
【図６】実施形態１、２の上端のブロックラインの復号動作を示すフローチャート図
【図７】実施形態１、２の非上端のブロックラインの復号動作を示すフローチャート図
【図８】実施形態１、２のブロックの復号動作を示すフローチャート図
【図９】実施形態１のタイルデータサイズの取得方法を示すフローチャート図
【図１０】実施形態２の画像復号装置が復号する画像符号化フォーマットを示す図
【図１１】実施形態２のタイルデータサイズの取得方法を示すフローチャート図
【図１２】実施形態２のブロックラインデータサイズの取得方法を示すフローチャート図
【図１３】実施形態３、４の画像符号化装置の構成を示すブロック図
【図１４】実施形態３の画像符号化装置の動作を示すフローチャート図
【図１５】実施形態３の上端のブロックラインの符号化動作を示すフローチャート図
【図１６】実施形態３のブロックの符号化動作を示すフローチャート図
【図１７】実施形態３の非上端のブロックラインの符号化動作を示すフローチャート図
【図１８】実施形態３の位置情報の計算方法を示すフローチャート図
【図１９】実施形態１、２のタイル復号部の構成を示すブロック図
【図２０】実施形態１、２のタイル復号の動作を示すフローチャート図
【図２１】実施形態１のブロックラインデータサイズの取得方法を示すフローチャート図
【図２２】実施形態４の位置情報の計算方法を示すフローチャート図
【図２３】実施形態３、４のタイル符号化部の構成を示すブロック図
【図２４】実施形態３、４のタイル符号化の動作を示すフローチャート図
【図２５】本発明の復号装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図
【発明を実施するための形態】
【００１３】
以下、添付の図面を参照して、本願発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１４】
＜実施形態１＞
本発明の実施形態１の画像復号装置が復号する画像符号化フォーマットにおいては１フレームが複数の矩形状の領域であるタイルに分割される。図２に実施形態１におけるタイル構造を示す。図２においては水平７６８０画素×垂直４３２０画素のフレームが水平２タイル×垂直２タイルの４個のタイルに分割された様子を示している。本発明の符号化フォーマットではブロックは水平１６画素×垂直１６画素で構成され、ブロック単位で符号化・復号が行われる。本実施形態ではブロックを１６×１６画素としているが、本発明はこれに限定されるものではない。ブロックは３２×３２画素でもよいし、６４×６４画素でもよい。各タイルサイズはブロックサイズの逓倍であり、図２において各タイルは水平２４０個×垂直１３５個のブロックから構成される。前記タイルは更に複数のブロックラインに分割されて符号化されている。ブロックラインとは、図３に示すように、タイル内のブロックをライン状に集合させたものである。図３において、細線による正方形で表されている３０１はブロックを表し、太線による長方形で表されている３０２はブロックラインを表している。
【００１５】
本実施形態におけるＨＥＶＣによる符号化データのフォーマットを図１に示す。図１の符号化データには、まずシーケンスの符号化に関わる情報が含まれたヘッダ情報であるシーケンス・パラメータ・セットが存在する。さらに、ピクチャの符号化に関わる情報が含まれたヘッダ情報であるピクチャ・パラメータ・セット、スライスの符号化に関わる情報が含まれたヘッダ情報であるスライスヘッダ及び各タイルの符号化データが多重化される。ピクチャ・パラメータ・セットには、タイルデータ分割情報及びブロックラインデータ分割情報が存在する。スライスヘッダにはタイルデータ位置情報及びブロックラインデータ位置情報が存在する。
【００１６】
ピクチャ・パラメータ・セットには、タイルデータ分割情報として、まずフレームがタイルに分割されて符号化されているか否かを示すＴｉｌｅＦｌａｇが存在する。ＴｉｌｅＦｌａｇが１の時はフレームがタイルに分割されて符号化されている事を示し、そうでない場合はフレームがタイルに分割されずに符号化されている事を示す。ＴｉｌｅＦｌａｇが１の時は、フレーム内の水平タイル数を表すｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１、垂直タイル数を表すｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１、タイル形状を示すｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇの情報が挿入される。ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１及びｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１はそれぞれフレーム内の実際の水平タイル数、垂直タイル数から１を減じた数を示す。なお図１中のＮはスライス中のタイル数であり、（ｎｕｍ＿ｔｉｌｅ＿ｃｏｌｕｍｎｓ＿ｍｉｎｕｓ１＋１）×（ｎｕｍ＿ｔｉｌｅ＿ｒｏｗｓ＿ｍｉｎｕｓ１＋１）により一意に決まる数である。ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇは、フレーム内の各タイルが同じ大きさであるか否かを示すフラグであり、値が１の時は各タイルが同じ大きさである事を示す。なお図２は各タイルが同じサイズが使用される、ｕｎｉｆｏｒｍ＿ｓｐａｃｉｎｇ＿ｆｌａｇ＝１である時の例である。このフラグの値が０の時は各タイルの大きさが異なるため、それぞれの大きさを符号にする必要が生じる。
【００１７】
また、ピクチャ・パラメータ・セットにはブロックラインデータ分割情報としてＷＰＰＦｌａｇが存在する。ＷＰＰＦｌａｇが１の時は、各タイルがブロックラインに分割されて符号化されている事を示す。本実施形態では、ブロックラインデータ分割情報及びタイルデータ分割情報を別個のフラグとして用意したが、本発明はこれに限定されず、タイルデータ分割とブロックラインデータ分割が併用される事がわかれば良い。例えば、二つのフラグを統合したシンタックスを用意して以下のように定めてもよい。
【００１８】
該シンタックスの値が０の時はタイルデータ分割がなく、かつブロックラインデータ分割がないことを表す。値が１の時はタイルデータ分割があり、かつブロックラインデータ分割ないことを表す。値が２の時はタイルデータ分割がなく、かつブロックラインデータ分割があることを表す。値が３の時はタイルデータ分割があり、かつブロックラインデータ分割があることを表す。
【００１９】
スライスヘッダには、ＴｉｌｅＦｌａｇが１の時にはタイルデータ位置情報が存在し、ＷＰＰＦｌａｇが１の時にはブロックラインデータ位置情報が存在する。タイルデータ位置情報としてｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓ、ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔが存在する。ブロックラインデータ位置情報の中には、タイルの数だけｎｕｍ＿ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓ及びｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔのセットが存在する。ｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は、スライス中のタイル数を表すＮから１を減じた値となる。ｎｕｍ＿ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は、タイル内のブロックライン数を表すＭから１を減じた値となる。ＴｉｌｅＦｌａｇが０の時は、ｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は０として扱われる。ＷＰＰＦｌａｇが０の時は、ｎｕｍ＿ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの符号は省略され、値は０として扱われる。
【００２０】
ｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓは、当該スライスに存在するタイルの符号化データのエントリポイント数を表す。タイルの符号化データのエントリポイント数は、スライスに含まれるタイル数により一意に定まり、タイル数が２の場合はエントリポイント数が１、タイル数が４ならばエントリポイント数は３になる。本実施形態では、フレームがタイルを４つ含む単一のスライスで構成されているものとする。即ち、ｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は３である。ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔはタイルの符号化データのエントリポイント、即ちタイルの符号化データの先頭位置を表す。ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔは、ｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの数だけ存在し、ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］はｉ番目のタイルの符号化データのエントリポイントを示す。スライスヘッダの直後に、０番目のタイルの符号化データが存在する事がわかっているため、０番目のタイルのエントリポイントは省略される。そして、ｉ−１番目のタイルの符号化データの大きさがｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］シンタックスとして符号化されている。ｎｕｍ＿ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値が０の時は、ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔは不要であるため言及しない。
【００２１】
ｎｕｍ＿ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓはタイルに属するブロックラインの符号化データのエントリポイント数を表す。本実施形態では、タイルは垂直１３５ブロックから成るので、ｎｕｍ＿ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は１３４になる。ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔはブロックラインの符号化データのエントリポイント、即ちブロックラインの符号化データの先頭位置を表す。ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｊ］はｊ番目のブロックラインの符号化データのエントリポイントを示す。０番目のブロックラインの符号化データの先頭位置は、該ブロックラインが属するタイルの符号化データの先頭位置と同じであるため省略される。そして、ｊ−１番目のブロックラインの符号化データの大きさがｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓ［ｊ］シンタックスとして符号化される。ｎｕｍ＿ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値が０の時は、ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔは不要であるため言及しない。
【００２２】
図４に前記画像符号化フォーマットに従った符号化データを復号する画像復号装置の内容を示す。
【００２３】
図４において、４０１は入力された符号化データのシーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、スライスヘッダ等のヘッダを解析するビットストリーム解析部である。４０２及び４０３は、入力された符号化データを、入力された符号化パラメータに基づいてタイル単位で復号を行う復号部である。本実施形態において、タイル復号部を２つ用いる場合について説明するが、本発明はこれに限定されない。４０４は第一タイル復号部４０２及び第二タイル復号部４０３で生成された画像データを成形し、出力するタイル画像データ統合部である。
【００２４】
上記構成において、ビットストリーム解析部４０１は、ピクチャ・パラメータ・セット及びスライスヘッダを解析し、タイルデータ分割情報、ブロックラインデータ分割情報、タイルデータ位置情報、ブロックラインデータ位置情報を取得する。ビットストリーム解析部４０１はヘッダに続く符号化データをこれらの情報に基づいて後段の第一タイル復号部４０２、または第二タイル復号部４０３に入力する。ここでは、先頭のタイルを０番目として、処理対象のブロックが偶数番目のタイルに属しているのならば第一タイル復号部４０２へ、奇数番目のタイルに属しているならば第二タイル復号部４０３へ出力する。図２においては、タイル０とタイル２が第一タイル復号部４０２で復号され、タイル１とタイル３が第二タイル復号部４０３で復号される。
【００２５】
第一タイル復号部４０２及び第二タイル復号部４０３の詳細について図１９のブロック図を用いて説明する。
【００２６】
１９０１は、処理対象のブロックがタイル内で偶数番目のブロックラインに属するかを判定するセレクタである。セレクタ１９０１には、タイル単位の符号化データが入力される。そして前記ブロックが偶数番目のブロックライン属しているのならば第一ブロックライン復号部１９０２へ前記ブロックラインの符号化データを出力し、そうでないならば第二ブロックライン復号部１９０３へ前記ブロックラインの符号化データを出力する。１９０２、１９０３はブロックライン復号部である。ブロックライン復号部１９０２、１９０３は入力されたブロックラインの符号化データをブロック単位で復号する。復号においては算術符号化方式の復号が行われる。算術復号が行われ発生確率テーブルを生成・更新する。１９０４は第一ブロックライン復号部１９０２で生成された発生確率テーブルを復号情報として保持する第一発生確率テーブル記憶部である。１９０５は第二ブロックライン復号部１９０３で生成された発生確率テーブルを復号情報として保持する第二発生確率テーブル記憶部である。１９０６は第一ブロックライン復号部１９０２、第二ブロックライン復号部１９０３で生成された画像データを成形し、出力するブロックライン画像データ統合部である。
【００２７】
図３において、上端のブロックライン（０ライン目）を含む偶数番目のブロックラインを示す白色のブロックは第一ブロックライン復号部１９０２にて復号され、奇数番目のブロックラインを示す斜線のブロックは第二ブロックライン復号部１９０３にて復号される。すなわち第一ブロックラインと第二ブロックラインとは隣接する関係にある。
【００２８】
各ブロックライン復号部においては、まず復号対象の符号化データの２値信号に対し発生確率テーブルが選択され、前記発生確率テーブルを基に算術復号が行われ、量子化係数が生成される。次に、前記量子化係数は、量子化パラメータに基づいて逆量子化が行われ、変換係数が生成される。さらに、変換係数は逆直交変換が行われ、予測誤差が生成される。最後に、復号対象のブロックの周辺の画素の参照によるフレーム内予測、または他のフレームの参照によるフレーム間予測が行われ、復号対象のブロックの画像データが生成される。
【００２９】
本実施形態の画像復号装置の動作を、図５のフローチャートを用いて詳細に説明する。本実施形態では符号化データはフレーム単位で入力される。フレームは複数のタイルで構成されており該タイルはブロック単位の符号化データに分割されて復号される。本実施形態では入力をフレーム単位としたが、フレームを分割したスライス単位に入力してもよい。また、本実施形態では、説明を容易にするため、イントラ予測復号の処理のみを説明するが、これに限定されずインター予測復号の処理においても適用可能である。
【００３０】
まず、ステップＳ５０１では、ビットストリーム解析部４０１において、入力されたビットストリームのヘッダが解析される。ここでは、シーケンス・パラメータ・セット、ピクチャ・パラメータ・セット、スライスヘッダ等が解析される。特に、ピクチャ・パラメータ・セットからＴｉｌｅＦｌａｇ及びＷＰＰＦｌａｇが解析され、スライスヘッダからタイルデータ位置情報及びブロックラインデータ位置情報が取得される。
【００３１】
ステップＳ５０２では、変数ＣｕｒＴｉｌｅが０に初期化される。ＣｕｒＴｉｌｅは処理対象のタイルの番号を示す。ステップＳ５０３において、ビットストリーム解析部４０１で第一タイル復号部４０２あるいは第二タイル復号部４０３に送信する送信データ量（処理対象のタイルの符号化データのサイズ）が求められる。
【００３２】
ビットストリーム解析部４０１でのタイルデータサイズの取得方法に関して図９のフローチャートを用いて説明する。図９において、まずステップＳ９０１では、処理対象のタイルがフレーム内の最後のタイルであるか否かが判定される。最後のタイルであるならば（ステップＳ９０１でＹｅｓ）ステップＳ９０２に進み、そうでないならばステップＳ９０３の処理に進む。
【００３３】
ステップＳ９０２では、タイルの符号化データの先頭から次のＮＡＬユニットまでのデータサイズが、送信データ量として設定される。ＮＡＬユニットとは、シーケンス・パラメータ・セットやピクチャ・パラメータ・セット、符号化済みスライスを格納する箱である。ＮＡＬユニットのデータの先頭には、０ｘ０００００１等の特定のビット列含まれているため、データの先頭を正しく識別する事ができる。ステップＳ９０３では、ＣｕｒＴｉｌｅ番目のタイルの符号化データサイズを表すｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ＋１］の値が読み出され、送信データ量が決定される。
【００３４】
図５のフローチャートに戻り、ステップＳ５０４では、第一タイル復号部４０２もしくは第二タイル復号部４０３においてタイルの復号処理が行われる。この際、ビットストリーム解析部４０１において、偶数番目のタイルは第一タイル復号部４０２に、奇数番目のタイルは第二タイル復号部４０３にそれぞれ送信される。ステップＳ５０３で求められたサイズだけデータが送信される。タイル復号処理の詳細は後述する。
【００３５】
ステップＳ５０５では、タイル画像データ統合部４０４において、第一タイル復号部４０２及び第二タイル復号部４０３から出力されたタイル画像が統合され、復号画像が生成、出力される。ステップＳ５０６では、フレーム内の全てのタイルの復号処理が完了したか否かが判定される。完了したならば（ステップＳ５０６でＹｅｓ）１フレームの復号処理を終了し、完了していないならばステップＳ５０７の処理に進む。ステップＳ５０７の処理では、ＣｕｒＴｉｌｅの値がインクリメントされる。この処理は、次のタイルが次の処理対象となることを意味する。
【００３６】
続いて、ステップＳ５０４のタイル復号処理に関して図２０のフローチャートを用いて詳細に説明する。図２０において、まずステップＳ２００１で変数ＣｕｒＢＬが０に初期化される。変数ＣｕｒＢＬは復号処理対象のブロックラインの番号を表す。
【００３７】
ステップＳ２００２の処理において、セレクタ１９０１が第一ブロックライン復号部１９０２あるいは第二ブロックライン復号部１９０３に送信する送信データ量（処理対象のブロックラインの符号化データのサイズ）が求められる。送信データ量取得方法の詳細については後述する。ステップＳ２００３の処理において、処理対象のブロックラインがタイルの上端のブロックラインであるか否かが判定される。上端のブロックラインならば（ステップＳ２００３でＹｅｓ）ステップＳ２００４の処理へ、そうでないならばステップＳ２００５の処理へ進む。
【００３８】
ステップＳ２００４はタイルの上端のブロックラインを復号する処理であり、ブロックラインの画像データを再生する。詳細は後述する。ステップＳ２００５の処理は、上端以外のブロックラインを復号する処理であり、ブロックラインの画像データを再生する。ブロックラインの復号に関しては、セレクタ１９０１において、変数ＣｕｒＢＬの値によって、処理対象のブロックラインが偶数番目であるか奇数番目であるかが判定される。偶数番目であるならば第一ブロックライン復号部１９０２で、そうでないならば第二ブロックライン復号部１９０３で、それぞれブロックライン単位で並列に復号されるものとする。同じく詳細は後述する。
【００３９】
ステップＳ２００６では、ブロックライン画像データ統合部１９０６において、第一ブロックライン復号部１９０２及び第二ブロックライン復号部１９０３から出力された各ブロックライン画像データを統合し、タイル画像を生成、出力する。ステップＳ２００７では、タイル内の全てのブロックラインの復号処理が完了したか否かが判定される。完了したならば（ステップＳ２００７でＹｅｓ）タイル復号処理を終了し、そうでないならばステップＳ２００８の処理に進む。
【００４０】
ステップＳ２００８の処理では、ＣｕｒＢＬの値がインクリメントされる。これは、処理対象のタイル内の次のブロックラインが処理対象となる事を意味する。ステップＳ２００２の、ビットストリーム解析部４０１でのブロックラインデータサイズ取得処理に関して図２１のフローチャートを用いて詳細に説明する。本処理には、処理対象のブロックラインの番号を表す変数ＣｕｒＢＬ及び処理対象のタイルの番号を表す変数ＣｕｒＴｉｌｅが入力として与えられる。
【００４１】
まずステップＳ２１０１の処理では、処理対象のブロックラインがタイル内で最後のブロックラインであるか否かが判定される。最後のブロックラインであるならば（ステップＳ２１０１でＹｅｓ）ステップＳ２１０３の処理に進み、そうでないならばステップＳ２１０２の処理に進む。
【００４２】
ステップＳ２１０２の処理ではＣｕｒＴｉｌｅ番目のタイルのＣｕｒＢＬ番目のブロックラインの符号化データサイズを表すｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ＋１］［ＣｕｒＢＬ＋１］の値が読み出され送信データ量が決定される。また、ステップＳ２１０３の処理において、処理対象のタイルがフレーム内の最終タイルであるか否かが判定される。最終タイルであるならば（ステップＳ２１０３でＹｅｓ）ステップＳ２１０４の処理に進み、そうでないならばステップＳ２１０５の処理に進む。
【００４３】
ステップＳ２１０４の処理では、処理対象のブロックラインの符号化データの先頭から次のＮＡＬユニットまでのデータサイズが、最終タイルの最後のブロックラインの送信データ量として設定される。ＮＡＬユニットのデータの先頭には、０ｘ０００００１等の特定のビット列含まれているため、データの先頭を正しく識別する事ができる。
【００４４】
ステップＳ２１０５の処理では、最終タイルではないタイル内の最後のブロックラインのデータサイズが送信データ量として求められる。タイル内の最後のブロックラインのデータサイズは、ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ  の要素として与えられていない。そのため、処理対象のタイルの符号化データサイズを表すｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ＋１］から、これまでに処理したタイルのデータサイズを減算することで算出される。
【００４５】
図２０に戻り、ステップＳ２００４の処理（上端のブロックラインを復号する処理）に関して、図６のフローチャートを用いて詳細に説明する。上端のブロックラインは、偶数番目のブロックラインなので、処理対象のブロックラインの符号化データはセレクタ１９０１によって第一ブロックライン復号部１９０２へ入力され復号される。ここで、セレクタ１９０１は、ステップＳ２００２で取得されたデータ送信量（処理対象のブロックラインの符号化データサイズ）だけ符号化データを第一ブロックライン復号部１９０２へ出力する。
【００４６】
図６では、まずステップＳ６０１において、発生確率テーブルが所定の方法で初期化される。初期化された発生確率テーブルは、ブロックラインの左端のブロックの最初の２値信号を算術復号する際に用いられ、後述するステップＳ６０２で随時更新される。以下、ブロックラインの最初のブロックの２値信号を算術復号する際に用いられる発生確率テーブルを、ブロックライン基準発生確率テーブルと記す。
【００４７】
次に、ステップＳ６０２では、第一ブロックライン復号部１９０２によって符号化データがブロック単位で復号され画素データが生成される。ステップＳ６０２のブロック単位の復号処理について、図８のフローチャートを用いて詳細に説明する。
【００４８】
図８では、まずステップＳ８０１において、符号化データが前記発生確率テーブルに基づいて算術復号され、２値信号が生成される。更に、Ｈ．２６４と同様にシンタックス要素毎に、ユーナリー・バイナリゼーション、固定長バイナリゼーション等の種々の２値化方式で２値化されている前記２値信号を復号し、量子化係数を含むシンタックス要素を生成する。ステップＳ８０２では、算術復号された２値信号が、発生確率の高い方のシンボルであったか否かに基づいて前記発生確率テーブルが更新される。ステップＳ８０３では、ブロック内の全シンタックス要素が算術復号されたか否かが判定される。全シンタックス要素が算術復号されたならば（ステップＳ８０３でＹｅｓ）ステップＳ８０４の処理に進む。そうでないならばステップＳ８０１の処理に進み、次のシンタックス要素の復号が行われる。ステップＳ８０４では、前記量子化係数が逆量子化され、変換係数が生成される。更に、前記変換係数には逆直交変換が適用され、予測誤差が生成される。ステップＳ８０５では、処理対象のブロックの周辺の画素からイントラ予測が行われ予測画像が生成される。更に、前記予測誤差と予測画像を足し合わせる事で、ブロック単位の画像データを生成する。
【００４９】
図６のフローチャートに戻り、ステップＳ６０３では、発生確率テーブルを格納する条件を満たしているか否かが判定される。本実施形態では、ステップＳ６０２で復号したブロックが、ブロックラインの左端から所定数目のブロックであったか否かを、前記発生確率テーブルを格納する条件とする。前記条件を満たしている際には（ステップＳ６０３でＹｅｓ）ステップＳ６０４の処理に進み、発生確率テーブルを第一発生確率テーブルとして第一発生確率テーブル記憶部１９０４に記憶する。条件を満たしていない場合はステップＳ６０５の処理に進む。第一発生確率テーブルは、次のブロックラインの左端のブロックを復号する際のブロックライン基準発生確率テーブルとして用いられる。
【００５０】
次に、ステップＳ６０５において、処理対象のブロックラインの全ブロックを復号したか否かが判定される。全てのブロックを復号したならば（ステップＳ６０５でＹｅｓ）上端のブロックラインの復号を終了し、そうでないならばステップＳ６０２の処理に進みラスタ順で次のブロックを復号する。
【００５１】
次に、図２０のステップＳ２００５の処理（上端以外のブロックラインを復号する処理）に関して、図７のフローチャートを用いて詳細に説明する。処理対象のブロックラインが偶数番目のブロックラインであるならば、第一ブロックライン復号部１９０２に処理対象のブロックラインの符号化データが入力され復号される。奇数番目のブロックラインであるならば、第二ブロックライン復号部１９０３に処理対象のブロックラインの符号化データが入力され復号される。ここで、セレクタ１９０１は、ステップＳ２００２で取得されたデータ送信量（処理対象のブロックラインの符号化データサイズ）だけ符号化データを第一ブロックライン復号部１９０２もしくは第二ブロックライン復号部１９０３に出力する。まず、奇数番目のブロックラインを第二ブロックライン復号部１９０３で復号する際のフローについて説明する。
【００５２】
図７において、まずステップＳ７０１において、第一発生確率テーブルが第一発生確率テーブル記憶部１９０４から、ブロックライン基準発生確率テーブルとして入力される。
【００５３】
ステップＳ７０２、Ｓ７０３の処理は、ステップＳ６０２、Ｓ６０３の処理と同一であるため説明を省略する。ステップＳ７０４の処理では、発生確率テーブルが第二発生確率テーブルとして、第二発生確率テーブル記憶部１９０５に格納される。第二発生確率テーブルは、次のブロックラインの左端のブロックを算術復号する際にブロックライン基準発生確率テーブルとして用いられる。ステップＳ７０５の処理はステップＳ６０５と同じであり、奇数番目のブロックライン内の全ブロックの復号処理が終了したかの判定を行う。続いて、偶数番目のブロックラインを第一ブロックライン復号部１９０２で復号する際のフローを説明する。まず、ステップＳ７０１の処理では、第二発生確率テーブルが第二発生確率テーブル記憶部１９０５からブロックライン基準発生確率テーブルとして入力される。ステップＳ７０２〜７０５の処理に関しては、ステップＳ６０２〜Ｓ６０５の処理と同一であるため説明を省略する。
【００５４】
以上の構成と動作により、タイル及び各ブロックラインの符号化データの先頭位置を正しく認識できるため、タイル単位で並列に復号可能とした上で、更にタイル内においてもブロックライン単位に並列に復号が可能になる。これにより、フレームをタイルに分割し、更にタイルをブロックラインに分割可能とする事で、並列性及び符号化効率の両方を高める事ができる。
【００５５】
なお、本実施形態でタイル復号部やブロックライン復号部が２つの場合について説明したが、例えば第三タイル復号部、第三ブロックライン復号部、第三発生確率テーブル記憶部を加えることで、より多くの復号部での並列処理が可能であることは明白である。
【００５６】
＜実施形態２＞
本発明の実施形態２の画像復号装置が復号する画像符号化フォーマットは、実施形態１と同様に１フレームが複数の矩形状の領域であるタイルに分割される。実施形態２のタイル構造は実施形態１の図２と同一であるため説明を省略する。
【００５７】
本実施形態におけるＨＥＶＣによる符号化データのフォーマットを図１０に示す。図１０の符号化データは、スライスヘッダ以外は実施形態１と同様であるため、スライスヘッダのみを説明する。図１０のスライスヘッダには、ＴｉｌｅＦｌａｇが１もしくはＷＰＰＦｌａｇが１の時には位置情報としてｎｕｍ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓ及びｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔが存在する。
【００５８】
ＴｉｌｅＦｌａｇが１かつＷＰＰＦｌａｇが０の時は、フレームが複数タイルに分割され、ブロックラインには分割されずに符号化されていることを意味する。この時、ｎｕｍ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓはスライス内のタイル数を表すＮから１を減じた値となる。ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］は、ｉ番目のタイルの符号化データのエントリポイントを示す。スライスヘッダの直後に、０番目のタイルの符号化データが存在する事がわかっているため、０番目のタイルのエントリポイントは省略される。そして、ｉ−１番目のタイルの符号化データの大きさがｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］シンタックスとして符号化されている。
【００５９】
ＴｉｌｅＦｌａｇが０かつＷＰＰＦｌａｇが１の時は、フレームが単一のタイルで構成され、ブロックラインに分割されて符号化されていることを意味する。この時、ｎｕｍ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓはスライス内のブロックラインの数から１を減じた値となる。ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］は、ｉ番目のブロックラインの符号化データのエントリポイントを示す。スライスヘッダの直後に、０番目のブロックラインの符号化データが存在する事がわかっているため、０番目のブロックラインのエントリポイントは省略される。そして、ｉ−１番目のブロックラインの符号化データの大きさがｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］シンタックスとして符号化されている。
【００６０】
ＴｉｌｅＦｌａｇが１かつＷＰＰＦｌａｇが１の時は、フレームが複数のタイルに分割され、各タイルが更にブロックラインに分割されて符号化されていることを意味する。この時、ｎｕｍ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は、スライス内のタイル数Ｎとタイル内のブロックライン数Ｍの積から１を減じた値となる。ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］は、ｉ番目のブロックラインの符号化データのエントリポイントを示す。スライスヘッダの直後に、０番目のブロックラインの符号化データが存在する事がわかっているため、０番目のブロックラインのエントリポイントは省略される。そして、ｉ−１番目のブロックラインの符号化データの大きさがｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ｉ］シンタックスとして符号化されている。
【００６１】
ＴｉｌｅＦｌａｇが０かつＷＰＰＦｌａｇが０の時、すなわちフレームが単一のタイルで構成され、ブロックラインにも分割されずに符号化されている時はｎｕｍ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は０として扱われる。
【００６２】
本実施形態では、ＴｉｌｅＦｌａｇ及びＷＰＰＦｌａｇはいずれも１である。本実施形態における符号化データのスライスは４つのタイルで構成されており、個々のタイルは垂直１３５ブロックからなるので、ｎｕｍ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔｓの値は４×１３５−１＝５３９となる。
【００６３】
前記画像符号化フォーマットに従った符号化データを復号する、本実施形態の画像復号装置の構成は実施形態１の図４及び図１９と同様であるため説明を省略する。
【００６４】
本実施形態の画像復号装置の動作を、図５のフローチャートを用いて詳細に説明する。図５において、まず、ステップＳ５０１では、実施形態１と同様に、ピクチャ・パラメータ・セットからＴｉｌｅＦｌａｇ及びＷＰＰＦｌａｇが解析され、スライスヘッダから位置情報が取得される。次に、ステップＳ５０２の処理において、変数ＣｕｒＴｉｌｅが０に初期化される。次に、ステップＳ５０３でビットストリーム解析部４０１において実施形態１とは異なる方法で、第一タイル復号部４０２あるいは第二タイル復号部４０３に送信する送信データ量が求められる。
【００６５】
本実施形態のタイルデータサイズの取得方法に関して図１１のフローチャートを用いて説明する。図１１において、ステップＳ１１０１及びステップＳ１１０２の処理は、図９のステップＳ９０１及びステップＳ９０２の処理と同一であるため説明を省略する。
【００６６】
ステップＳ１１０３では、タイルの垂直ブロック数から、処理対象のタイル内のエントリポイント数を判定し、ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔの対応する各要素を足し合わせて送信データ量として設定する。本実施形態では、タイルの垂直ブロック数は１３５で固定である。そのため、ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ＊１３５＋１］からｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［（ＣｕｒＴｉｌｅ＋１）＊１３５］までの値が足しあわされ、送信データ量として設定される。各タイルの垂直ブロック数が同一でない場合は、それまでに処理した各タイルのブロックライン数を足し合わせて、足し合わせを開始するｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［］の要素の位置を決定する。
【００６７】
図５に戻り、ステップＳ５０４の処理では、実施形態１と同様に、第一タイル復号部４０２もしくは第二タイル復号部４０３においてタイルの復号処理が行われる。ステップＳ５０４のタイル復号処理に関しては、実施形態１と同様図２０のフローチャートを用いて説明する。図２０では、ステップＳ２００２のブロックラインデータサイズ取得処理を除いては実施形態１と同一であるため、本実施形態ではステップＳ２００２についてのみ図１２を用いて説明する。図１２において、まずステップＳ１２０１で、ビットストリーム解析部４０１において処理対象のブロックラインがフレーム内の最後のブロックラインか否かが判定される。最後のブロックラインならば（ステップＳ１２０１でＹｅｓ）ステップＳ１２０３の処理に進み、そうでないならばステップＳ１２０２の処理に進む。
【００６８】
ステップＳ１２０２の処理では処理対象のブロックラインの符号化データサイズを表すｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔの要素の値が読み出され、送信データ量が決定され、ブロックラインデータサイズ取得処理が終了される。本実施形態では、各タイルの垂直ブロック数が１３５で固定のため、読み出される要素は、ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ×１３５＋ＣｕｒＢＬ＋１］となる。各タイルの垂直ブロック数が異なる場合は、処理済みのタイルの垂直ブロック数を足し合わせた数字を、ＣｕｒＴｉｌｅ×１３５の数字と置き換える必要がある。
【００６９】
ステップＳ１２０３では、処理対象のブロックラインの符号化データの先頭から次のＮＡＬユニットまでのデータサイズが、送信データ量として設定されブロックラインデータサイズ取得処理が終了される。ＮＡＬユニットのデータの先頭には、０ｘ０００００１等の特定のビット列含まれているため、データの先頭を正しく識別する事ができる。
【００７０】
図５に戻り、ステップＳ５０５からステップＳ５０７の処理に関しては、実施形態１と同一であるため説明を省略する。
【００７１】
以上の構成と動作により、各タイル及び各ブロックラインの符号化データの先頭位置を正しく認識できるため、タイル単位で並列に復号可能とした上で、タイル内においてもブロックライン単位に並列に復号が可能になる。実施形態１ではタイルのエントリポイント数及びエントリポイントに加え、ブロックラインのエントリポイント数及びエントリポイントのセットをタイルの数だけシンタックスとして持つ必要があった。本実施形態では、エントリポイントが全てブロックラインの符号化データのサイズで表されるため、タイルのエントリポイントとブロックラインのエントリポイントの情報を別々に持つ必要がないため、より少ない情報量で並列な復号が可能となる。
【００７２】
なお、本実施形態でタイル復号部やブロックライン復号部が２つの場合について説明したが、例えば第三タイル復号部、第三ブロックライン復号部、第三発生確率テーブル記憶部を加えることで、より多くの復号部での並列処理が可能であることは明白である。
【００７３】
＜実施形態３＞
本発明の実施形態３の画像符号化装置が符号化する画像符号化フォーマットにおいては実施形態１と同様に１フレームが複数の矩形状の領域であるタイルに分割される。実施形態３のタイル構造は実施形態１の図２と同一であるため説明を省略する。但し、これに限定されない。
【００７４】
本実施形態におけるＨＥＶＣによる符号化ストリームのフォーマットを図１に示すが、実施形態１と同様であるため説明を省略する。図１３に、前記画像符号化フォーマットに従った符号化ストリームを符号化する画像符号化装置の内容を示す。
【００７５】
図１３において、１３０１は、処理対象のブロックが偶数番目のタイルに属するかを判定するタイルセレクタである。タイルセレクタ１３０１は、前記ブロックが偶数番目のタイルに属しているのならば第一タイル符号化部１３０２へ前記ブロックを出力し、そうでないならば第二タイル符号化部１３０３へ前記ブロックを出力する。
【００７６】
１３０２及び１３０３は、入力画像をｎ×ｎ画素（ｎは２以上の正の整数）に分割したブロックをタイル単位で符号化を行うタイル符号化部である。本実施形態において、タイル符号化部を２つ用いる場合について説明するが、本発明はこれに限定されない。図２においては、タイル０とタイル２が第一タイル符号化部１３０２で符号化され、タイル１とタイル３が第二タイル符号化部１３０３で符号化される。
【００７７】
第一タイル符号化部１３０２及び第二タイル符号化部１３０３の詳細について図２３のブロック図を用いて説明する。
【００７８】
２３０１は、処理対象のブロックがタイル内で偶数番目のブロックラインに属するか否かを判定し、その判定結果によって出力先を選択するブロックラインセレクタである。２３０２は第一ブロックライン符号化部であり、偶数番目のブロックラインのブロックの符号化を行う。２３０２は第二ブロックライン符号化部であり、奇数番目のブロックラインのブロックの符号化を行う。２３０４は第一ブロックライン符号化部２３０２で生成された発生確率テーブルを符号化情報として保持する第一発生確率テーブル記憶部である。以下、第一発生確率テーブル記憶部２３０４に記憶される発生確率テーブルを、第一発生確率テーブルと記す。２３０５は第二ブロックライン符号化部２３０３で生成された発生確率テーブルを符号化情報として保持する第二発生確率テーブル記憶部である。以下、第二発生確率テーブル記憶部に記憶される発生確率テーブルを、第二発生確率テーブルと記す。２３０６は第一ブロックライン符号化部２３０２で生成された符号化データと、第二ブロックライン符号化部２３０３で生成された符号化データを統合し、位置情報を含む符号化パラメータと併せて出力するブロックライン統合符号化部である。
【００７９】
ブロックラインセレクタ２３０１には、タイル単位の画像データが入力される。そして前記ブロックが偶数番目のブロックライン属しているのならば第一ブロックライン符号化部２３０２へ前記ブロックを出力し、そうでないならば第二ブロックライン符号化部２３０３へ前記ブロックを出力する。図３において、偶数番目のブロックラインを示す白色のブロックは第一ブロックライン符号化部２３０２にて符号化され、奇数番目のブロックラインを示す斜線のブロックは第二ブロックライン符号化部２３０３にて符号化される。上端のブロックラインは０ライン目であるので第一ブロックライン符号化部２３０２で符号化される。第一ブロックライン符号化部２３０２及び第二ブロックライン符号化部２３０３を用いた符号化処理の詳細については後述する。
【００８０】
図１３に戻り、１３０４は第一タイル符号化部１３０２で生成された符号化データと符号化パラメータ、第二タイル符号化部１３０３で生成された符号化データと符号化パラメータを統合し、ビットストリームとして出力する統合符号化部である。統合符号化部１３０４は、ＴｉｌｅＦｌａｇやＷＰＰＦｌａｇ等の分割情報をピクチャ・パラメータ・セットに、位置情報をスライスヘッダに統合し出力する。
【００８１】
本実施形態の画像符号化装置の動作を、図１４から図１７のフローチャートを用いて詳細に説明する。本実施形態では画像はフレーム単位で入力される。フレームは複数のタイルで構成されており、該タイルは更にブロック単位の画像データに分割されて符号化される。本実施形態では入力をフレーム単位としたが、フレームを分割したスライス単位に入力してもよい。また、本実施形態では、説明を容易にするため、イントラ予測符号化の処理のみを説明するが、これに限定されずインター予測符号化の処理においても適用可能である。
【００８２】
図１４において、１フレームの符号化について説明する。ステップＳ１４０１では、タイルの番号を表す変数ＣｕｒＴｉｌｅが０に初期化される。ステップＳ１４０２では、図１３の第一タイル符号化部１３０２もしくは第二タイル符号化部１３０３においてタイルの符号化処理が行われる。この際、タイルセレクタ１３０１において、偶数番目のタイルは第一タイル符号化部１３０２に、奇数番目のタイルは第二タイル符号化部１３０３にそれぞれ送信される。タイル符号化処理の詳細について図２４のフローチャートを用いて説明する。
【００８３】
図２４では、まずステップＳ２４０１において、符号化処理対象のブロックラインの番号を表す変数ＣｕｒＢＬが０に初期化される。ステップＳ２４０２において、符号化処理対象のブロックラインがタイルの上端のブロックラインであるか否かが判定される。上端のブロックラインならば（ステップＳ２４０２でＹｅｓ）ステップＳ２４０３の処理へ、そうでないならばステップＳ２４０４の処理へ進む。
【００８４】
ステップＳ２４０３はタイルの上端のブロックラインを符号化する処理である。ステップＳ２４０４の処理は、上端以外のブロックラインを符号化する処理である。これらの詳細は後述する。ステップＳ２４０５の処理は、スライスヘッダに格納される位置情報（ｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ及びｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ）を設定する処理で、同じく詳細は後述する。
【００８５】
ステップＳ２４０６では、ブロックライン統合符号化部２３０６において、第一ブロックライン符号化部２３０２及び第二ブロックライン符号化部２３０３から出力された各符号化データが統合される。更にステップＳ２４０５で計算された位置情報を含む符号化パラメータと統合された符号化データが併せて出力される。
【００８６】
ステップＳ２４０７では、タイル内の全てのブロックラインの符号化処理が完了したか否かが判定される。完了したならば（ステップＳ２４０７でＹｅｓ）タイル符号化処理を終了し、そうでないならばステップＳ２４０８の処理に進む。
【００８７】
ステップＳ２４０８では、変数ＣｕｒＢＬの値がインクリメントされる。これは、符号化処理対象のタイル内の次のブロックラインが符号化処理対象となる事を意味する。
【００８８】
図１４に戻り、ステップＳ１４０３では、フレーム内の全てのタイルの符号化処理が完了したか否かが判定される。完了したならば（ステップＳ１４０３でＹｅｓ）ステップＳ１４０５の処理に進み、完了していないならばステップＳ１４０４の処理に進む。ステップＳ１４０４の処理では、タイル番号を表す変数ＣｕｒＴｉｌｅの値がインクリメントされる。この処理は、次のタイルが次の処理対象となることを意味する。ステップＳ１４０５では、統合符号化部１３０４において、第一タイル符号化部１３０２及び第二タイル符号化部１３０３から出力された各符号化データを統合する。更に、ステップＳ１４０２で計算された位置情報を含む符号化パラメータを統合してビットストリームを生成、出力する。
【００８９】
次に、図２４のタイル符号化処理に含まれるブロックラインの符号化の各処理の詳細について説明する。まず、ステップＳ２４０３の処理（上端のブロックラインを符号化する処理）に関して、図１５のフローチャートを用いて詳細に説明する。上端のブロックラインは、偶数番目のブロックラインなので、処理対象のブロックラインの画像はタイルセレクタ１３０１によって第一タイル符号化部１３０２へ入力され符号化される。
【００９０】
図１５では、まずステップＳ１５０１において、発生確率テーブルが所定の方法で初期化される。初期化された発生確率テーブルは、ブロックラインの左端のブロックの最初の２値信号を算術符号化する際に用いられ、後述するステップＳ１５０２で随時更新される。以下、ブロックラインの最初のブロックの２値信号を算術符号化する際に用いられる発生確率テーブルを、ブロックライン基準発生確率テーブルと記す。
【００９１】
ステップＳ１５０２では、第一タイル符号化部１３０２によって画像がブロック単位で符号化され、符号化データが生成される。ステップＳ１５０２のブロック符号化処理について、図１６のフローチャートを用いて詳細に説明する。
【００９２】
図１６において、ステップＳ１６０１では、入力された画像ブロックに対してブロック周辺の画素を利用したイントラ予測が行われ、予測誤差が生成される。ステップＳ１６０２では、前記予測誤差に対して直交変換が行われ変換係数が生成される。更に、画像の特性や符号量等に基づいて決定された量子化パラメータを用いて、前記変換係数が量子化され、量子化係数が生成される。ステップＳ１６０３では、量子化パラメータや予測モード等の各シンタックス要素が２値化され、２値信号が生成される。シンタックス要素毎に、Ｈ．２６４と同様に、ユーナリー・バイナリゼーション、固定長バイナリゼーション等の種々の２値化の手法が切り替えられて用いられる。更に、前記２値信号は前記発生確率テーブルに基づいて算術符号化される。ステップＳ１６０４では、算術符号化された２値信号が、発生確率の高い方のシンボルであったか否かに基づいて前記発生確率テーブルが更新される。ステップＳ１６０５では、ブロック内の全シンタックス要素が算術符号化されたか否かが判定される。全シンタックス要素が算術符号化されたならば（ステップＳ１６０５でＹｅｓ）ブロック符号化処理を終了し、そうでないならばステップＳ１６０３の処理に進み、次のシンタックス要素の符号化を行う。
【００９３】
図１５のフローチャートに戻り、ステップＳ１５０３では、発生確率テーブルを格納する条件を満たしているか否かが判定される。本実施形態では、ステップＳ１６０２で符号化したブロックが、ブロックラインの左端から所定数目のブロックであったか否かを、前記発生確率テーブルを格納する条件とする。前記条件を満たしている際には（ステップＳ１５０３でＹｅｓ）ステップＳ１５０４の処理に進み、発生確率テーブルを第一発生確率テーブルとして第一発生確率テーブル記憶部２３０４に記憶する。条件を満たしていない場合はステップＳ１５０５の処理に進む。第一発生確率テーブルは、次のブロックラインの左端のブロックを符号化する際のブロックライン基準発生確率テーブルとして用いられる。
【００９４】
ステップＳ１５０５において、処理対象のブロックラインの全ブロックを符号化したか否かが判定される。全てのブロックを符号化したならば（ステップＳ１５０５でＹｅｓ）上端のブロックラインの符号化を終了し、そうでないならばステップＳ１５０２の処理に進みラスタ順で次のブロックを符号化する。
【００９５】
次に、図２４のステップＳ２４０４の処理（上端以外のブロックラインを符号化する処理）に関して、図１７のフローチャートを用いて詳細に説明する。処理対象のブロックラインが偶数番目のブロックラインであるならば第一ブロックライン符号化部２３０２に処理対象のブロックの画像が入力され符号化される。奇数番目のブロックラインであるならば第二ブロックライン符号化部２３０３に処理対象のブロックの画像が入力され符号化される。まず、奇数番目のブロックラインを第二ブロックライン符号化部２３０３で復号する際のフローについて説明する。
【００９６】
ステップＳ１７０１において、第一発生確率テーブルが第一発生確率テーブル記憶部２３０４から、ブロックライン基準発生確率テーブルとして入力される。ステップＳ１７０２、Ｓ１７０３の処理は、ステップＳ１５０２、Ｓ１５０３の処理と同一であるため説明を省略する。ステップＳ１７０４の処理では、発生確率テーブルが第二発生確率テーブルとして、第二発生確率テーブル記憶部２３０５に格納される。第二発生確率テーブルは、次のブロックラインの左端のブロックを算術符号化する際にブロックライン基準発生確率テーブルとして用いられる。ステップＳ１７０５の処理はステップＳ１５０５と同じであり、奇数番目のブロックライン内の全ブロックが符号化処理を行う。
【００９７】
続いて、偶数番目のブロックラインを第一ブロックライン符号化部２３０２で符号化する際のフローを説明する。ステップＳ１７０１の処理では、第二発生確率テーブルが第二発生確率テーブル記憶部２３０５からブロックライン基準発生確率テーブルとして入力される。ステップＳ１７０２〜１７０４の処理に関しては、ステップＳ１５０２〜Ｓ１５０４の処理と同一であるため説明を省略する。Ｓ１７０５の処理はＳ１５０５と同じであり、偶数番目のブロックライン内の全ブロックが符号化処理を行う。
【００９８】
続いて、図２４のステップＳ２４０５の、位置情報の計算処理について、図１８のフローチャートを用いて詳細に説明する。この処理には入力として、変数ＣｕｒＢＬ及び変数ＣｕｒＴｉｌｅが与えられる。
【００９９】
図１８では、まずステップＳ１８０１で処理対象のブロックラインが、処理対象のタイル内で最後のブロックラインであるか否かが判定される。最後のブロックラインであるならば（ステップＳ１８０１でＹｅｓ）ステップＳ１８０３の処理に進み、そうでないならばステップＳ１８０２の処理に進む。
【０１００】
ステップＳ１８０２の処理では、処理対象のブロックラインの符号化データサイズがシンタックスｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ＋１］［ＣｕｒＢＬ＋１］として設定される。ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ］［ＣｕｒＢＬ］は、ＣｕｒＴｉｌｅ番目のタイル内のＣｕｒＢＬ番目のブロックラインの符号化データサイズを表すシンタックスである。
【０１０１】
また、ステップＳ１８０３の処理において、処理対象のタイルがフレーム内の最後のタイルであるか否かが判定される。最後のタイルであるならば位置情報計算の処理を終了し、そうでないならばステップＳ１８０４の処理に進む。ここで、最後のタイルである場合は、最後のタイルの最後のブロックラインであり、ブロックラインのエントリポイントの情報はシンタックスとして符号化されない。
【０１０２】
ステップＳ１８０４の処理において、処理対象のタイルの符号化データサイズが、ＣｕｒＴｉｌｅ番目のタイルの符号化データサイズを表すシンタックスｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ＋１］として設定される。ｗｐｐ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ及びｔｉｌｅ＿ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［］の値は、図１４のステップＳ１４０５の処理でスライスヘッダに統合される。
【０１０３】
以上の構成と動作により、画像をタイル分割し、さらにブロックライン単位で並列に符号化が行えるようになるため、符号化においても高速な符号化が可能になった。さらに、タイル及び各ブロックラインの符号化データの先頭位置を正しく認識できるため、タイル単位で並列に復号可能とした上で、更にタイル内においてブロックライン単位に並列に復号が可能なビットストリームを符号化可能になる。これにより、フレームをタイルに分割し、更にタイルをブロックライン分割可能とする事で、並列性及び符号化効率の両方を高める事ができる。
【０１０４】
なお、本実施形態ではタイル符号化部やブロックライン符号化部が２つの場合について説明した。しかし例えば第三タイル符号化部、第三ブロックライン符号化部、第三発生確率テーブル記憶部を加えることで、より多くの符号化部での並列処理が可能であることは明白である。
【０１０５】
＜実施形態４＞
本発明の実施形態４の画像符号化装置が符号化する画像符号化フォーマットにおいては実施形態１と同様に１フレームが複数の矩形状の領域であるタイルに分割される。実施形態４のタイル構造は実施形態１の図２と同一であるため説明を省略する。但し、これに限定されない。
【０１０６】
本実施形態におけるＨＥＶＣによる符号化ストリームのフォーマットを図１０に示す。図１０の符号化ストリームは、実施形態２と同様であり、全てのエントリポイントがブロックラインのエントリポイントで表される。
【０１０７】
図１３に、本実施形態の画像符号化フォーマットに従った符号化ストリームを符号化する、本実施形態の画像符号化装置の内容を図１３及び図２３示す。本実施形態の画像符号化装置の構成は実施形態３と同様であるため説明を省略する。
【０１０８】
本実施形態の画像符号化装置の動作は、図２４のステップＳ２４０５の位置情報計算処理を除いて実施形態３と同一であるため、ステップＳ２４０５のみを図２２を用いて説明する。
【０１０９】
図２２では、まずステップＳ２２０１において処理対象のブロックラインがフレーム内の最後のブロックラインか否かが判定される。最後のブロックラインであるならば（ステップＳ２２０１でＹｅｓ）位置情報計算処理を終了し、最後でないならばステップＳ２２０２の処理に進む。ここで、最後のブロックラインである場合は、ブロックラインのエントリポイントの情報はシンタックスとして符号化されない。
【０１１０】
ステップＳ２２０２では、処理対象のブロックラインの符号化データサイズがｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔの要素として設定される。本実施形態では、各タイルの垂直ブロック数が１３５で固定のため、ＣｕｒＴｉｌｅ番目のタイルのＣｕｒＢＬ番目のブロックラインの符号化データサイズは、ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔ［ＣｕｒＴｉｌｅ×１３５＋ＣｕｒＢＬ＋１］として設定される。各タイルの垂直ブロック数が異なる場合は、処理済みのタイルの垂直ブロック数を足し合わせた数字を、ＣｕｒＴｉｌｅ×１３５の数字と置き換える必要がある。
【０１１１】
図２４に戻り、ステップＳ２４０５の位置情報計算処理で求められた位置情報ｅｎｔｒｙ＿ｐｏｉｎｔ＿ｏｆｆｓｅｔは、実施形態３と同様に、ステップＳ１４０５の処理でスライスヘッダのシンタックスとして統合される。
【０１１２】
以上の構成と動作により、画像をタイル分割し、さらにブロックライン単位で並列に符号化が行えるようになるため、符号化においても高速な符号化が可能になる。タイル及び各ブロックラインの符号化データの先頭位置を正しく認識できるため、タイル単位で並列に復号可能とした上で、更にタイル内においてブロックライン単位に並列に復号が可能なビットストリームを符号化可能になる。
【０１１３】
実施形態３ではタイルのエントリポイント数及びエントリポイントに加え、ブロックラインのエントリポイント数及びエントリポイントのセットをタイルの数だけシンタックスとして持つ必要があった。本実施形態では、エントリポイントが全てブロックラインの符号化データのサイズで表されるため、タイルのエントリポイントとブロックラインのエントリポイントの情報を別々に持つ必要がなく、より少ない情報量で並列な復号が可能なストリームを符号化できる。
なお、本実施形態でタイル符号化部やブロックライン符号化部が２つの場合について説明した。しかし例えば第三タイル符号化部、第三ブロックライン符号化部、第三発生確率テーブル記憶部を加えることで、より多くの符号化部での並列処理が可能であることは明白である。
【０１１４】
＜実施形態５＞
図４、図１３、図１９、図２３に示した各処理部はハードウェアでもって構成しているものとして上記実施形態では説明した。しかし、図４、図１３、図１９、図２３に示した各処理部で行なう処理をコンピュータプログラムでもって構成しても良い。
【０１１５】
図２５は、上記各実施形態に係る画像表示装置に適用可能なコンピュータのハードウェアの構成例を示すブロック図である。
【０１１６】
ＣＰＵ２５０１は、ＲＡＭ２５０２やＲＯＭ２５０３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各実施形態に係る画像処理装置が行うものとして上述した各処理を実行する。即ち、ＣＰＵ２５０１は、図４、図１３、図１９、図２３に示した各処理部として機能することになる。
【０１１７】
ＲＡＭ２５０２は、外部記憶装置２５０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）２５０７を介して外部から取得したデータなどを一時的に記憶するためのエリアを有する。更に、ＲＡＭ２５０２は、ＣＰＵ２５０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ２５０２は、例えば、フレームメモリとして割当てたり、その他の各種のエリアを適宜提供することができる。
【０１１８】
ＲＯＭ２５０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。操作部２５０４は、キーボードやマウスなどにより構成されており、本コンピュータのユーザが操作することで、各種の指示をＣＰＵ２５０１に対して入力することができる。出力部２５０５は、ＣＰＵ２５０１による処理結果を出力する。また出力部２５０５は例えば液晶ディスプレイのような表示装置で構成して処理結果を表示することができる。
【０１１９】
外部記憶装置２５０６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。外部記憶装置２５０６には、ＯＳ（オペレーティングシステム）や、図４、図１３、図１９、図２３に示した各部の機能をＣＰＵ２５０１に実現させるためのコンピュータプログラムが保存されている。更には、外部記憶装置２５０６には、処理対象としての各画像が保存されていても良い。
【０１２０】
外部記憶装置２５０６に保存されているコンピュータプログラムやデータは、ＣＰＵ２５０１による制御に従って適宜ＲＡＭ２５０２にロードされ、ＣＰＵ２５０１による処理対象となる。Ｉ／Ｆ２５０７には、ＬＡＮやインターネット等のネットワーク、投影装置や表示装置などの他の機器を接続することができ、本コンピュータはこのＩ／Ｆ２５０７を介して様々な情報を取得したり、送出したりすることができる。２５０８は上述の各部を繋ぐバスである。
【０１２１】
上述の構成からなる作動は前述のフローチャートで説明した作動をＣＰＵ２５０１が中心となってその制御を行う。
【０１２２】
＜その他の実施形態＞
本発明の目的は、前述した機能を実現するコンピュータプログラムのコードを記録した記憶媒体を、システムに供給し、そのシステムがコンピュータプログラムのコードを読み出し実行することによっても達成される。この場合、記憶媒体から読み出されたコンピュータプログラムのコード自体が前述した実施形態の機能を実現し、そのコンピュータプログラムのコードを記憶した記憶媒体は本発明を構成する。また、そのプログラムのコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した機能が実現される場合も含まれる。
【０１２３】
さらに、以下の形態で実現しても構わない。すなわち、記憶媒体から読み出されたコンピュータプログラムコードを、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。そして、そのコンピュータプログラムのコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行って、前述した機能が実現される場合も含まれる。
【０１２４】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するコンピュータプログラムのコードが格納されることになる。
【図１】
2014011638.tif 000003
【図２】
2014011638.tif 000004
【図３】
2014011638.tif 000005
【図４】
2014011638.tif 000006
【図５】
2014011638.tif 000007
【図６】
2014011638.tif 000008
【図７】
2014011638.tif 000009
【図８】
2014011638.tif 000010
【図９】
2014011638.tif 000011
【図１０】
2014011638.tif 000012
【図１１】
2014011638.tif 000013
【図１２】
2014011638.tif 000014
【図１３】
2014011638.tif 000015
【図１４】
2014011638.tif 000016
【図１５】
2014011638.tif 000017
【図１６】
2014011638.tif 000018
【図１７】
2014011638.tif 000019
【図１８】
2014011638.tif 000020
【図１９】
2014011638.tif 000021
【図２０】
2014011638.tif 000022
【図２１】
2014011638.tif 000023
【図２２】
2014011638.tif 000024
【図２３】
2014011638.tif 000025
【図２４】
2014011638.tif 000026
【図２５】
2014011638.tif 000027