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