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