以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態1)
本実施の形態の算術復号方法の概要について説明する。本実施の形態の算術復号方法は、復号対象となる信号に対応するコンテキストの更新を一定の大きさの処理単位に区分し、処理単位毎に一括して実施する。これにより、一定の処理単位内で算術復号処理の並列化を実現することができる。
以上が、本実施の形態の算術復号方法の概要についての説明である。
次に、本実施の形態の算術復号方法を行う算術復号部の構成について説明する。図1は本実施の形態1に係る算術復号部の構成の一例を示すブロック図である。なお、後述するように、本実施の形態1に係る算術復号部10は、圧縮符号化された符号化画像データを復号する画像復号装置400の一部に相当する。
図1に示されるように、算術復号部10は、コンテキスト導出部(Context Selection)11と、コンテキスト読出部(Context Loat)12と、2値算術復号部(Bin Decoder)13と、多値化部(De−Binarizer)14と、状態保持部(Reservoir)15と、コンテキスト一括更新部(Group Context Update)16と、コンテキスト格納部(Context Memory)17を含む。本実施の形態1に係る算術復号部10の動作について、図2を用いてさらに詳しく説明する。
図2は、算術復号の処理の流れを示すフローチャートである。
まず、コンテキスト導出部11において、復号対象の信号に対するコンテキストの導出処理を行う(ステップS101)。コンテキストの導出には、例えば、既に復号済みの復号シンボルや、既に復号済みであり、多値化された隣接ブロックの復号信号を取得し、あらかじめ決められた方法により、コンテキストを決定し、決定したコンテキスト番号をコンテキスト読出部12に伝える。
次に、コンテキスト読出部12では、コンテキスト番号に従い、コンテキスト格納部17より指定されたコンテキストに対応するシンボル発生確率を読み出す(ステップS102)。なお、シンボル発生確率とコンテキストとの対応については、例えばテーブルにおいて管理されてもよい。シンボル発生確率テーブルについては、後で詳しく説明する。
次に、読み出されたシンボル発生確率に基づき、2値算術復号部13において、算術復号処理が施される(ステップS103)。具体的には、コンテキスト読出部12より取得するシンボル発生確率に基づいて、2値算術復号部13の内部状態を更新し、状態に応じて復号対応のシンボルを出力する。ここで、2値算術復号部13の内部状態とは、初期化もしくはリセット処理が施されるまで逐次的に更新処理されていく値のことである。ここでの2値算術復号部13の動作の詳細は、例えば、H.264規格で用いられるものとしてよい。
次に、算術復号処理により得られる復号シンボルを状態保持部15に対して出力する(ステップS104)。ここでは、コンテキスト毎に復号シンボルを保持し、コンテキストの状態を管理する。なお、状態保持部15の詳細については、後で詳しく説明する。
一方、多値化部14は、算術復号により得られる復号シンボルに対し、多値化処理を施し(ステップS105)、復号対象信号の復号信号を出力する。
コンテキスト一括更新部16は、復号処理の単位が、コンテキスト一括更新処理の処理単位に達していなければ(ステップS106でNO)、次の復号対象信号に対するコンテキスト導出処理(S101)に戻る。
一方、コンテキスト一括更新処理の処理単位に達した場合(ステップS106でYES)、コンテキスト一括更新部16は、状態保持部15よりコンテキスト毎の復号シンボル群を取得し、コンテキスト一括更新処理を実行する(ステップS107)。なお、ここでコンテキスト一括更新部16は、状態保持部15の内容をリセットする。
コンテキストの一括更新処理では、コンテキスト毎に、コンテキストに対応するシンボル発生確率を変更し、更新したシンボル発生確率をコンテキスト格納部17に格納する。具体的な処理の詳細については、後で詳しく説明する。
以上が、本実施の形態の算術復号部10の構成についての説明である。
ここで、シンボル発生確率テーブルについて説明する。図3は、本実施の形態1に係るシンボル発生確率テーブルの一例を示す図である。
シンボル発生確率テーブルは、コンテキストとシンボル発生確率とを対応付けたテーブルである。図3におけるインデックス(ctxIdx)は、コンテキストを表すインデックスであり、具体的には、コンテキスト導出部11で符号化中のマクロブロックの周辺の情報、又は、ブロック内の既に符号化済みの情報、又は、符号化するビット位置によって決められるインデックスである。
各インデックスが示すエントリは、シンボル発生確率を示す確率情報(pStateIdx)と、発生確率の高いシンボル(Most Probable Symbol)を示すシンボル(valMPS)とを含んでいる。これらは、H.264規格に示されるものと同等である。すなわち、pStateIdxは、シンボル発生確率の値を示すインデックスである。コンテキスト格納部17は、さらに、pStateIdxに対応するシンボル発生確率の値を示すテーブルを保持している。
次に、状態保持部15について説明する。図4は、本実施の形態1に係る状態保持部15の動作の一例を示すフローチャートである。
(一括更新方式その1)
図4の(a)は、状態保持部15が算術復号処理により得られる復号シンボルから、コンテキスト更新処理を行い、更新したコンテキストを保持する場合の例である。まず、状態保持部15は、2値算術復号部13より復号シンボルを取得し(ステップS201)、取得した復号シンボルと、その算術復号に使用したコンテキストとに対して更新処理を行う(ステップS202)。
ここで、従来手法では、コンテキスト格納部17内のシンボル発生確率値を、コンテキストの更新毎に行っていたが、コンテキスト格納部17ではなく、状態保持部15で保持する(ステップS203)。この場合、図2のステップS107において、コンテキスト一括更新部16は、状態保持部15で保持している更新されたコンテキストの結果をコンテキスト格納部17内のシンボル発生確率値に反映させる。
この場合のコンテキストの更新処理は、例えば図5に示す遷移テーブルに基づいて実施してもよい。図5は、発生したシンボル確率値(pStateIdx)毎に、発生確率の高いシンボル(MPS)が発生した場合の次のシンボル発生確率値(pStateIdx)であるtransIdxMPSと、発生確率の低いシンボル(LPS)が発生した場合の次のシンボル発生確率値(pStateIdx)であるtransIdxLPSとを示すテーブルである。図4の(a)の例では、コンテキスト毎に復号シンボルがMPSかLPSかに応じてシンボル発生確率値を更新し、保持しておく例である。
なお、メモリの効率的な使用のために、コンテキスト格納部17内の別のメモリ領域に保持してもよい。この場合、コンテキスト更新部分は信号発生毎に実施することができるため、実行タイミングを制御しやすいというメリットがある。
(一括更新方式その2)
一方、図4の(b)は、状態保持部15が算術復号処理により得られる復号シンボルそのものを保持する場合の例である。
まず、状態保持部15は、2値算術復号部13より復号シンボルを取得し(ステップS301)、取得した復号シンボルを、その算術復号に使用したコンテキストに対応する方法で保持する(ステップS302)。この保持する方法としては、例えば図4の(c)に示すテーブルのようにコンテキスト毎に発生シンボルを保持しておいてもよい。発生シンボル長は、前述のコンテキスト一括更新処理単位によって最大値が決められる。
この場合、図2のステップS107において、コンテキスト一括更新部16は、状態保持部15で保持しているコンテキスト毎の発生シンボル結果を元に、コンテキスト更新処理を施し、コンテキスト格納部17内のシンボル発生確率値に反映させる。
なお、コンテキスト一括更新部16は、図5に示す遷移テーブルに基づいて、図4の(c)で保持された発生シンボルに応じて順番に更新処理をしてもよい(一括更新方式その2A)。
この場合、コンテキスト一括更新処理の処理単位に達した時点で逐次処理を実行して更新処理を行うこととなり、算術復号処理時にコンテキスト更新処理を実行しなくてよい。このため、処理負荷を分散できる可能性がある。
また、コンテキスト一括更新部16は、図4の(c)で保持された発生シンボルを事前処理した信号に対して更新処理を行ってもよい(一括更新方式その2B)。
具体的に事前処理とは、例えば次の方法がある。
第1の方法として、1と0の発生回数の差分を算出し、数の多い側の更新しかしない。具体的には、図4の(c)のctxIdx=0の場合では、1が3回、0が2回発生しているため、更新処理としては、1が1回発生したものとして更新処理を行う。
これにより、更新に係る処理量を削減することができる。
第2の方法として、あらかじめMPSが連続して発生する回数をカウントし、更新処理を一括して行う。具体的には、図4の(c)のctxIdx=1の場合では、0が2回発生している。0がMPSである場合、図5に示す遷移テーブルのように、現在のpStateIdxに+2する処理を行うだけでよく、逐次演算をしなくてよい。
これにより、更新に係る処理量を削減することができる。
第3の方法として、シンボル発生順を変更し、MPSを先にLPSを後に発生したものとする。具体的には、図4の(c)のctxIdx=0の場合では、1がMPSとした場合、11100と順番に発生したものとして処理してもよい。LPSが発生した場合の更新が大きく変更されるため、MPSを先にすることにより、安定したシンボル発生確率を導出することができる。また、逆にLPSを先にしてもよい。どちらを先に固めるかについては、あらかじめ決めておいてもよいし、ヘッダ情報として符号化された情報を用いてもよい。
これにより、さらに符号化効率を向上させることができる可能性がある。なお、上記の第1、第2、及び第3の方法はそれぞれ単独であってもよいし、組み合わせて実行してもよい。
図6は、算術復号処理をより高速に処理するために、処理を並列に実装した場合の、処理のタイミングを示す概要図である。
図6の(a)は一括更新方式その1、図6の(b)は一括更新方式その2A、図6の(c)は一括更新方式その2Bにそれぞれ対応している。
図6は、プロセス1(Proc1)の処理回路で、コンテキスト導出処理(CS)、コンテキスト読み出し処理(CL)、2値算術復号処理(BAD)、コンテキスト更新(CU)の動作を時間軸に沿って記述しており、簡単のため、それぞれの処理時間は同じものとして示している。同様に、プロセス2(Proc2)、プロセス3(Proc3)、プロセス4(Proc4)を含んでいる例である。また、図6の(c)のGroupCUとは、発生シンボルを事前処理した場合の一括コンテキスト処理を示しており、事前処理の内容によって処理時間は変わるため、1処理単位以上のサイズで表現している。
また、図中の矢印で示す部分は、矢印の根元から、矢印の先端部に対して、順番を維持する必要があるという依存関係を示している。2値算術復号処理では、2値算術復号部13の内部状態を復号毎に更新するため、2値算術復号処理に対して依存関係がある。また、同一コンテキストを使う場合(図中はこの場合を説明)、コンテキストを更新した結果をさらに参照するため、コンテキスト更新(CU)と次の復号のためのコンテキスト読み出し(CL)とに依存関係がある。しかしながら、本実施の形態によれば、この依存関係を分離することができるため、図6中にこの依存関係を示す矢印は不要となる。
図6の(a)に示される一括更新方式その1の場合、プロセス1は、それぞれの処理(コンテキスト導出処理、コンテキスト読み出し処理、2値算術復号処理)と順番に処理し、最後にコンテキスト更新処理を行う。ここでのコンテキスト更新処理は、更新結果をコンテキストメモリに反映しない。このため、プロセス2によるコンテキスト読み出し時には、常に過去の、より具体的には、コンテキストの一括更新処理直後の、シンボル発生確率値を読み出す。このため、プロセス1のコンテキスト更新処理が、プロセス2、プロセス3のコンテキスト読み出し処理よりも後にある(図中)場合であっても、正確に復号処理を実現することができる。
これにより、並列処理を行った場合であっても、処理遅延(latency)を最低限(図中は1処理時間)とすることができる。この処理遅延は、算術復号中の状態値の依存関係に起因しており、状態値の推定等によりさらに処理遅延を削減することができる。なお、本実施の形態は、このようなさらに処理遅延を削減する場合であっても、コンテキストの依存関係による処理遅延を削減するという観点で有効である。
次に、図6の(b)に示される一括更新方式その2Aの場合、図6の(a)と比べて、算術復号の直後にコンテキスト更新処理を行わず、コンテキストの一括更新処理の処理単位毎に、まとめて更新する場合の例である。この場合であっても、図6の(a)と同様に、算術復号時の処理遅延(latency)は1処理時間とすることができる。
次に、図6の(c)に示される一括更新方式その2Bの場合、図6の(a)と比べて、コンテキストの一括更新処理の処理単位毎に、前処理を行った後に、まとめて更新する場合の例である。この場合であっても、図6の(a)と同様に、算術復号時の処理遅延(latency)は1処理時間とすることができる。また、図6の(b)と比べて一括更新に必要な処理時間を短縮できる可能性がある。
なお、ここで、復号処理の単位が、コンテキスト一括更新処理の処理単位とは、例えば係数符号化単位である変換ブロック単位(TU)であってもよいし、予測符号化の予測方法を切り替える単位である予測ブロック単位(PU)であってもよいし、さらに符号化処理をまとめた単位である符号化ブロック単位(CU)であってもよいし、さらに取りうる最大の符号化処理単位ブロック単位(LCU)であってもよい。処理単位が大きいほど、並列度を高めることができる一方、コンテキストの更新が遅くなるため、シンボル発生確率の画面内での適応度が下がり、符号化効率が劣化する可能性が高くなる。
これらの処理単位は、符号化する信号種別毎にどの処理単位を用いるかをあらかじめ決めておいてもよいし、ヘッダ情報(例えばプロファイルを示す情報)によって切り替えてもよい。これにより、処理の並列度が必要かどうかによって、処理単位を制御することができるため、符号化効率の劣化を抑制しつつ処理の並列度を上げることができる。
なお、本実施の形態に係る算術復号部10は、圧縮符号化された符号化画像データを復号する画像復号装置に備えられる。図7は、本実施の形態に係る画像復号装置400の構成の一例を示すブロック図である。
画像復号装置400は、圧縮符号化された符号化画像データを復号する。例えば、画像復号装置400には、符号化画像データがブロック毎に復号対象信号として入力される。画像復号装置400は、入力された復号対象信号に、可変長復号、逆量子化及び逆変換を行うことで、画像データを復元する。
図7に示すように、画像復号装置400は、エントロピー復号部410と、逆量子化・逆変換部420と、加算器425と、デブロッキングフィルタ430と、メモリ440と、イントラ予測部450と、動き補償部460と、イントラ/インター切換スイッチ470とを備える。
エントロピー復号部410は、入力信号(入力ストリーム)を可変長復号することで、量子化係数を復元する。なお、ここで、入力信号(入力ストリーム)は、復号対象信号であり、符号化画像データのブロック毎のデータに相当する。また、エントロピー復号部410は、入力信号から動きデータを取得し、取得した動きデータを動き補償部460に出力する。
逆量子化・逆変換部420は、エントロピー復号部410によって復元された量子化係数を逆量子化することで、変換係数を復元する。そして、逆量子化・逆変換部420は、復元した変換係数を逆変換することで、予測誤差を復元する。加算器425は、復元された予測誤差と予測信号とを加算することで、復号画像を生成する。
デブロッキングフィルタ430は、生成された復号画像にデブロッキングフィルタ処理を行う。デブロッキングフィルタ処理された復号画像は、復号信号として出力される。メモリ440は、動き補償に用いられる参照画像を格納するためのメモリである。具体的には、メモリ440には、デブロッキングフィルタ処理が施された復号画像を格納する。
イントラ予測部450は、イントラ予測を行うことで、予測信号(イントラ予測信号)を生成する。具体的には、イントラ予測部450は、加算器425によって生成された復号画像における、復号対象ブロック(入力信号)の周囲の画像を参照してイントラ予測を行うことで、イントラ予測信号を生成する。
動き補償部460は、エントロピー復号部410から出力された動きデータに基づいて動き補償を行うことで、予測信号(インター予測信号)を生成する。
イントラ/インター切換スイッチ470は、イントラ予測信号及びインター予測信号のいずれかを選択し、選択した信号を予測信号として加算器425に出力する。
以上の構成により、本実施の形態に係る画像復号装置400は、圧縮符号化された符号化画像データを復号する。
なお、図7において、本実施の形態に係る算術復号部10は、エントロピー復号部410が備える。すなわち、算術復号部10は、入力ストリームISとして、予測符号化が実行された符号化画像データを算術復号及び多値化する。また、信号種別情報SEは、量子化係数の位置、動きデータ、又は、イントラ予測部450が用いるイントラ予測方向などを示す情報である。
なお、一括コンテキスト更新処理の処理単位の情報(処理単位や区分する信号種別)を示す情報が、ビットストリームの先頭(ストリームヘッダ)に記録されている場合、その記録された情報を読み取って、コンテキスト更新処理を切り替えてもよい。これにより、並列化処理をより適当に実行できるよう構成された符号化ストリームを復号することができる。
なお、ヘッダに記録する単位は、スライス、ピクチャに対応する単位であっても、同様に復号できる。また、符号化側と復号側とで共通として、何も伝送しなくてもよい。
以上のように、本実施の形態に係る画像復号装置及び画像復号方法によれば、算術復号処理の並列処理を可能にし、高速に処理することが可能となる。
具体的には、従来必要であった、コンテキストに対する依存関係を適切な単位で切り離すことができる。このため、符号化効率を維持しつつ、並列処理を実現し、例えば高解像度の映像のリアルタイム再生処理などで必要な、高速演算回路によって実現することができる。
(実施の形態2)
本実施の形態の算術復号方法の概要について説明する。本実施の形態の算術符号化方法は、符号化対象となる信号に対応するコンテキストの更新を一定の大きさに区分された処理単位毎に一括して実施する。これにより、一定の処理単位内で算術符号化処理の並列化を実現することができる。
以上が、本実施の形態の算術符号化方法の概要についての説明である。
次に、本実施の形態の算術符号化方法を行う算術符号化部の構成について説明する。図8は本実施の形態2に係る算術符号化部の構成の一例を示すブロック図である。なお、後述するように、本実施の形態2に係る算術符号化部20は、画像信号を圧縮符号化し、符号化画像データを出力する画像符号化装置200の一部に相当する。
図8に示されるように、算術符号化部20は、2値化部(Binarizer)21と、コンテキスト導出部(Context Selection)22と、コンテキスト読出部(Context Loat)23と、2値算術符号化部(Bin Encoder)24と、状態保持部(Reservoir)25と、コンテキスト一括更新部(Group Context Update)26と、コンテキスト格納部(Context Memory)27とを含む。本実施の形態2に係る算術符号化部20の動作について、図9を用いてさらに詳しく説明する。
図9は、算術符号化部20の処理の流れを示すフローチャートである。
まず、2値化部21によって、対象信号をあらかじめ決められた手法で2値信号に変換する(ステップS401)。例えば、0−3の信号に対して、1、01、001、0001といった2値化方法を用いても良い。
次に、2値化した信号に対して1ビットずつ算術符号化を行う。このため、対象2値信号に対して、コンテキスト導出部22において、コンテキストの導出処理を行う(ステップS402)。コンテキストの導出には、例えば、既に符号化済みの信号や、既に符号化済みである隣接ブロックの信号を取得し、あらかじめ決められた方法により、コンテキストを決定し、決定したコンテキスト番号をコンテキスト読出部23に伝える。
コンテキスト読出部23では、コンテキスト番号に従い、コンテキスト格納部27より指定されたコンテキストに対応するシンボル発生確率を読み出す(ステップS403)。なお、シンボル発生確率とコンテキストとの対応については、例えばテーブルにおいて管理されてもよい。シンボル発生確率テーブルについては、実施の形態1で説明したテーブルと同じものである。
次に、読み出されたシンボル発生確率に基づき、2値算術符号化部24において、算術符号化処理が施される(ステップS404)。具体的には、コンテキスト読出部23より取得するシンボル発生確率に基づいて、2値算術符号化部24の内部状態を更新し、状態に応じて符号化信号を出力する。ここで、2値算術符号化部24内部状態とは、初期化もしくはリセット処理が施されるまで逐次的に更新処理されていく値のことである。ここでの2値算術符号化部24の動作の詳細は、例えば、H.264規格で用いられるものとしてよい。
次に、算術符号化処理した符号化対象シンボルを状態保持部25に対して出力する(ステップS405)。ここでは、コンテキスト毎に符号化対象シンボルを保持し、コンテキストの状態を管理する。なお、状態保持部25の詳細については、実施の形態1で説明したものと同じ動作を行う。
符号化処理の単位が、コンテキスト一括更新処理の処理単位に達していなければ(ステップS406でNO)、次の符号化対象シンボルに対する2値化処理(S401)に戻る(既に2値化されている場合には、コンテキスト導出処理(S402))。
一方、コンテキスト一括更新処理の処理単位に達した場合(ステップS406でYES)、コンテキスト一括更新部26は、状態保持部25よりコンテキスト毎の符号化対象シンボル群を取得し、コンテキスト一括更新処理を実行する(ステップS407)。なお、ここでコンテキスト一括更新部26は、状態保持部25の内容をリセットする。
コンテキストの一括更新処理では、コンテキスト毎に、コンテキストに対応するシンボル発生確率を変更し、更新したシンボル発生確率をコンテキスト格納部27に格納する。具体的な処理の詳細については、実施の形態1のコンテキスト一括更新部16と同じであるので、再度の説明は省略する。
以上が、本実施の形態の算術符号化部20の構成についての説明である。
図10は、算術符号化処理をより高速に処理するために、処理を並列に実装した場合の、処理のタイミングを示す概要図である。
図10は、実施の形態1で説明した一括更新方式その1の場合について示している。なお、実施の形態1の一括更新方式その2A、一括更新方式その2Bにおいても同様に説明できる。
図10は、プロセス1(Proc1)の処理回路で、コンテキスト導出処理(CS)、コンテキスト読み出し処理(CL)、2値算術符号化処理(BAC)、コンテキスト更新(CU)の動作を時間軸に沿って記述しており、簡単のため、それぞれの処理時間は同じものとして示している。同様に、プロセス2(Proc2)、プロセス3(Proc3)、プロセス4(Proc4)を含んでいる例である。
また、図中の矢印で示す部分は、矢印の根元から、矢印の先端部に対して、順番を維持する必要があるという依存関係を示している。2値算術符号化処理では、2値算術符号化部24の内部状態を符号化毎に更新するため、2値算術符号化処理に対して依存関係がある。また、同一コンテキストを使う場合(図中はこの場合を説明)、コンテキストを更新した結果をさらに参照するため、コンテキスト更新(CU)と次の符号化のためのコンテキスト読み出し(CL)とに依存関係がある。しかしながら、本実施の形態によれば、この依存関係を分離することができるため、図10中にこの依存関係を示す矢印は不要となる。
実施の形態1で説明した一括更新方式その1の場合、プロセス1は、それぞれの処理(コンテキスト導出処理、コンテキスト読み出し処理、2値算術符号化処理)と順番に処理し、最後にコンテキスト更新処理を行う。ここでのコンテキスト更新処理は、更新結果をコンテキストメモリに反映しない。このため、プロセス2によるコンテキスト読み出し時には、常に過去の、より具体的には、コンテキストの一括更新処理直後の、シンボル発生確率値を読み出す。このため、プロセス1のコンテキスト更新処理が、プロセス2、プロセス3のコンテキスト読み出し処理よりも後にある(図中)場合であっても、正確に符号化処理を実現することができる。
これにより、並列処理を行った場合であっても、処理遅延(latency)を最低限(図中は1処理時間)とすることができる。この処理遅延は、算術符号化中の状態値の依存関係に起因しており、状態値の推定等によりさらに処理遅延を削減することができる。なお、本実施の形態は、このようなさらに処理遅延を削減する場合であっても、コンテキストの依存関係による処理遅延を削減するという観点で有効である。
なお、ここで、符号化処理の単位が、コンテキスト一括更新処理の処理単位とは、例えば係数符号化単位である変換ブロック単位(TU)であってもよいし、予測符号化の予測方法を切り替える単位である予測ブロック単位(PU)であってもよいし、さらに符号化処理をまとめた単位である符号化ブロック単位(CU)であってもよいし、さらに取りうる最大の符号化処理単位ブロック単位(LCU)であってもよい。処理単位が大きいほど、並列度を高めることができる一方、コンテキストの更新が遅くなるため、シンボル発生確率の画面内での適応度が下がり、符号化効率が劣化する可能性が高くなる。
これらの処理単位は、符号化する信号種別毎にどの処理単位を用いるかをあらかじめ決めておいてもよいし、ヘッダ情報(例えばプロファイルを示す情報)によって切り替えてもよい。これにより、処理の並列度が必要かどうかによって、処理単位を制御することができるため、符号化効率の劣化を抑制しつつ処理の並列度を上げることができる。
なお、本実施の形態2に係る算術符号化部20は、画像データを圧縮符号化する画像符号化装置に備えられる。図11は、本実施の形態2に係る画像符号化装置200の構成の一例を示すブロック図である。
画像符号化装置200は、画像データを圧縮符号化する。例えば、画像符号化装置200には、画像データがブロック毎に入力信号として入力される。画像符号化装置200は、入力された入力信号に、変換、量子化及び可変長符号化を行うことで、符号化信号を生成する。
図11に示すように、画像符号化装置200は、減算器205と、変換・量子化部210と、エントロピー符号化部220と、逆量子化・逆変換部230と、加算器235と、デブロッキングフィルタ240と、メモリ250と、イントラ予測部260と、動き検出部270と、動き補償部280と、イントラ/インター切換スイッチ290とを備える。
減算器205は、入力信号と予測信号との差分、すなわち、予測誤差を算出する。
変換・量子化部210は、空間領域の予測誤差を変換することで、周波数領域の変換係数を生成する。例えば、変換・量子化部210は、予測誤差にDCT(Discrete Cosine Transform)変換を行うことで、変換係数を生成する。さらに、変換・量子化部210は、変換係数を量子化することで、量子化係数を生成する。
エントロピー符号化部220は、量子化係数を可変長符号化することで、符号化信号を生成する。また、エントロピー符号化部220は、動き検出部270によって検出された動きデータ(例えば、動きベクトル)を符号化し、符号化信号に含めて出力する。
逆量子化・逆変換部230は、量子化係数を逆量子化することで、変換係数を復元する。さらに、逆量子化・逆変換部230は、復元した変換係数を逆変換することで、予測誤差を復元する。なお、復元された予測誤差は、量子化により情報が失われているので、減算器205が生成する予測誤差とは一致しない。すなわち、復元された予測誤差は、量子化誤差を含んでいる。
加算器235は、復元された予測誤差と予測信号とを加算することで、ローカル復号画像を生成する。デブロッキングフィルタ240は、生成されたローカル復号画像にデブロッキングフィルタ処理を行う。メモリ250は、動き補償に用いられる参照画像を格納するためのメモリである。具体的には、メモリ250は、デブロッキングフィルタ処理が施されたローカル復号画像を格納する。
イントラ予測部260は、イントラ予測を行うことで、予測信号(イントラ予測信号)を生成する。具体的には、イントラ予測部260は、加算器235によって生成されたローカル復号画像における、符号化対象ブロック(入力信号)の周囲の画像を参照してイントラ予測を行うことで、イントラ予測信号を生成する。
動き検出部270は、入力信号と、メモリ250に格納された参照画像との間の動きデータ(例えば、動きベクトル)を検出する。動き補償部280は、検出された動きデータに基づいて動き補償を行うことで、予測信号(インター予測信号)を生成する。
イントラ/インター切換スイッチ290は、イントラ予測信号及びインター予測信号のいずれかを選択し、選択した信号を予測信号として減算器205及び加算器235に出力する。
以上の構成により、本実施の形態2に係る画像符号化装置200は、画像データを圧縮符号化する。
なお、図11において、本実施の形態2に係る算術符号化部20は、エントロピー符号化部220が備える。すなわち、算術符号化部20は、入力信号SIとして量子化係数を2値化及び算術符号化する。また、信号種別情報SEは、量子化係数の係数位置、図11に示す動きデータ、又は、イントラ予測部260が用いたイントラ予測方向などを示す情報である。
なお、一括コンテキスト更新処理の処理単位の情報(処理単位や区分する信号種別)を示す情報を、ビットストリームの先頭(ストリームヘッダ)に記録しても良い。これにより、並列化処理をより適当に実行できるよう構成された符号化ストリームを生成することができる。
なお、ヘッダに記録する単位は、スライス、ピクチャに対応する単位であってもよい。また、符号化側と復号側で共通として、何も伝送しなくてもよい。
以上のように、本実施の形態に係る画像符号化装置及び画像符号化方法によれば、算術符号化処理の並列処理を可能にし、高速に処理することが可能となる。
具体的には、従来必要であった、コンテキストに対する依存関係を適切な単位で切り離すことができる。このため、符号化効率を維持しつつ、並列処理を実現し、例えば高解像度の映像のリアルタイム符号伝送処理などで必要な、高速演算回路によって実現することができる。
(実施の形態3)
本実施の形態の算術復号方法の概要について説明する。本実施の形態の算術復号方法は、復号対象となる信号に対応するコンテキストの更新を、一定の大きさに区分された処理単位毎に一括して実施する。これにより、一定の処理単位内で算術復号処理の並列化を実現することができる。
以上が、本実施の形態の算術復号方法の概要についての説明である。なお、実施の形態1との共通点の詳しい説明は省略し、相違点を中心に説明する。
次に、本実施の形態の算術復号方法を行う算術復号部の構成について説明する。図12は本実施の形態3に係る算術復号部の構成の一例を示すブロック図である。なお、本実施の形態3に係る算術復号部30は、圧縮符号化された符号化画像データを復号する画像復号装置400の一部に相当する。
図12に示されるように、算術復号部30は、コンテキスト導出部(Context Selection)31と、コンテキスト読出部(Context Loat)32と、2値算術復号部(Bin Decoder)33と、多値化部(De−Binarizer)34と、状態保持部(Reservoir)35と、コンテキスト並列更新部(Parallel Context Update)36と、コンテキスト格納部(Context Memory)37とを含む。本実施の形態3に係る算術復号部30の動作について、図13を用いてさらに詳しく説明する。
図13は、算術復号化の処理の流れを示すフローチャートである。
まず、コンテキスト導出部31において、復号対象の信号に対するコンテキストの導出処理を行う(ステップS501)。コンテキストの導出には、例えば、既に復号済みの復号シンボルや、既に復号済みであり、多値化された隣接ブロックの復号信号を取得し、あらかじめ決められた方法により、コンテキストを決定し、決定したコンテキスト番号をコンテキスト読出部32に伝える。
次に、コンテキスト読出部32では、コンテキスト番号に従い、コンテキスト格納部37より指定されたコンテキストに対応するシンボル発生確率を読み出す(ステップS502)。なお、シンボル発生確率とコンテキストとの対応については、例えばテーブルにおいて管理されてもよい。シンボル発生確率テーブルについては、実施の形態1で説明したテーブルと同じものであってもよい。
次に、読み出されたシンボル発生確率に基づき、2値算術復号部33において、算術復号処理が施される(ステップS503)。具体的には、コンテキスト読出部32より取得するシンボル発生確率に基づいて、2値算術復号部33の内部状態を更新し、状態に応じて復号対応のシンボルを出力する。ここで、2値算術復号部33の内部状態とは、初期化もしくはリセット処理が施されるまで逐次的に更新処理されていく値のことである。ここでの2値算術復号部33の動作の詳細は、例えば、H.264規格で用いられるものとしてよい。
次に、算術復号処理により得られる復号シンボルを状態保持部35に対して出力する(ステップS504)。ここでは、コンテキスト毎に復号シンボルを保持し、コンテキストの状態を管理する。なお、状態保持部35の詳細については、後で詳しく説明する。
一方、算術復号により得られる復号シンボルに対し、多値化処理を施し(ステップS505)、復号対象信号の復号信号を出力する。
復号処理の単位が、コンテキスト並列更新処理の処理単位に達していなければ(ステップS506でNO)、次の復号対象信号に対するコンテキスト導出処理(S501)に戻る。
一方、コンテキスト並列更新処理の処理単位に達した場合(ステップS506でYES)、コンテキスト並列更新部36は、状態保持部35よりコンテキスト毎の復号シンボル群を取得し、コンテキスト並列更新処理を実行する(ステップS507)。なお、ここでコンテキスト並列更新部36は、状態保持部35の内容をリセットする。
コンテキストの並列更新処理では、コンテキスト毎に、コンテキストに対応するシンボル発生確率を変更し、更新したシンボル発生確率をコンテキスト格納部37に格納する。具体的な処理の詳細については、後で詳しく説明する。
以上が、本実施の形態の算術復号部30の構成についての説明である。
(並列更新方式その1)
図14の(a)は、状態保持部35が算術復号処理により得られる復号シンボルから、コンテキスト更新処理を行い、更新したコンテキストを保持する場合の例である。まず、状態保持部35は、2値算術復号部33より復号シンボルを取得し(ステップS601)、取得した復号シンボルと、その算術復号に使用したコンテキストに対して更新処理を行う(ステップS602)。ここで、従来手法では、コンテキスト格納部37内のシンボル発生確率値を、コンテキストの更新毎に行っていたが、コンテキスト格納部37ではなく、状態保持部35で保持する(ステップS603)。この場合、図13のステップS507において、コンテキスト並列更新部36は、状態保持部35で保持している更新されたコンテキストの結果をコンテキスト格納部37内のシンボル発生確率値に反映させる。この場合のコンテキストの更新処理は、例えば図5に示す遷移テーブルに基づいて実施してもよい。
(並列更新方式その2)
一方、図14の(b)は、状態保持部35が算術復号処理により得られる復号シンボルそのものを保持する場合の例である。
まず、状態保持部35は、2値算術復号部33より復号シンボルを取得し(ステップS701)、取得した復号シンボルを、その算術復号に使用したコンテキストに対応する方法で保持する(ステップS702)。この保持する方法としては、例えば図14の(c)に示すテーブルのようにコンテキスト毎に発生シンボルを保持しておいてもよい。発生シンボル長は、前述のコンテキスト並列更新処理の処理単位によって最大値が決められる。
この場合、図13のステップS507において、コンテキスト並列更新部36は、状態保持部35で保持しているコンテキスト毎の発生シンボル結果を元に、コンテキスト更新処理を施し、コンテキスト格納部37内のシンボル発生確率値に反映させる。
なお、コンテキスト並列更新部36は、図5に示す遷移テーブルに基づいて図14の(c)で保持された発生シンボルに応じて順番に更新処理をしてもよい(並列更新方式その2A)。
この場合、コンテキスト並列更新処理の処理単位に到達した時点で逐次処理を実行して更新処理を行うこととなり、算術復号処理時にコンテキスト更新処理を実行しなくてよい。このため、処理負荷を分散できる可能性がある。
また、コンテキスト並列更新部36は、図14の(c)で保持された発生シンボルを事前処理した信号に対して更新処理を行ってもよい(並列更新方式その2B)。
具体的に事前処理は、実施の形態1と共通するので、再度の説明は省略する。
図15は、算術復号処理をより高速に処理するために、処理を並列に実装した場合の、処理のタイミングを示す概要図である。
図15の(a)は並列更新方式その1、図15の(b)は並列更新方式その2A、図15の(c)は並列更新方式その2Bにそれぞれ対応している。
図15は、プロセス1(Proc1)の処理回路で、コンテキスト導出処理(CS)、コンテキスト読み出し処理(CL)、2値算術復号処理(BAD)、コンテキスト更新(CU)の動作を時間軸に沿って記述しており、簡単のため、それぞれの処理時間は同じものとして示している。同様に、プロセス2(Proc2)、プロセス3(Proc3)、プロセス4(Proc4)を含んでいる例である。また、図15の(c)のGroupCUとは、発生シンボルを事前処理した場合の一括コンテキスト処理を示しており、事前処理の内容によって処理時間は変わるため、1処理単位以上のサイズで表現している。
また、図中の矢印で示す部分は、矢印の根元から、矢印の先端部に対して、順番を維持する必要があるという依存関係を示している。2値算術復号処理では、2値算術復号の内部状態を復号毎に更新するため、2値算術復号処理に対して依存関係がある。また、同一コンテキストを使う場合(図中はこの場合を説明)、コンテキストを更新した結果をさらに参照するため、コンテキスト更新(CU)と次の復号のためのコンテキスト読み出し(CL)とに依存関係があるが、本実施の形態によれば、この依存関係を分離することができるため、図15中にこの依存関係を示す矢印は不要となる。
図15の(a)に示される並列更新方式その1の場合、プロセス1は、それぞれの処理(コンテキスト導出処理、コンテキスト読み出し処理、2値算術復号処理)と順番に処理し、最後にコンテキスト更新処理を行う。ここでのコンテキスト更新処理は、更新結果をコンテキストメモリに反映しない。このため、プロセス2によるコンテキスト読み出し時には、常に過去の、より具体的には、コンテキストの並列更新処理直後の、シンボル発生確率値を読み出す。
このため、プロセス1のコンテキスト更新処理が、プロセス2、プロセス3のコンテキスト読み出し処理よりも後にある(図中)場合であっても、正確に復号処理を実現することができる。これにより、並列処理を行った場合であっても、処理遅延(latency)を最低限(図中は1処理時間)とすることができる。この処理遅延は、算術復号中の状態値の依存関係に起因しており、状態値の推定等によりさらに処理遅延を削減することができる。なお、本実施の形態は、このようなさらに処理遅延を削減する場合であっても、コンテキストの依存関係による処理遅延を削減するという観点で有効である。
図15の(b)に示される並列更新方式その2Aの場合、図15の(a)と比べて、算術復号の直後にコンテキスト更新処理を行わず、コンテキストの並列更新処理の処理単位で、まとめて更新する場合の例である。この場合であっても、図15の(a)と同様に、算術復号時の処理遅延(latency)は1処理時間とすることができる。
図15の(c)に示される並列更新方式その2Bの場合、図15の(a)と比べて、コンテキストの並列更新処理の処理単位で、前処理を行った後に、まとめて更新する場合の例である。この場合であっても、図15の(a)と同様に、算術復号時の処理遅延(latency)は1処理時間とすることができる。また、図15の(b)と比べて並列更新に必要な処理時間を短縮できる可能性がある。
図16Aに、上記で説明した図15の(a)のコンテキスト更新を実現する算術復号部の構成の一例を示すブロック図である。なお、図12で説明した構成のうち、コンテキスト管理部600の部分について、図15の(a)のコンテキスト更新の場合の詳細を示している。
コンテキスト管理部600は、コンテキスト更新部601と、スイッチ602、603と、制御部604と、コンテキスト格納部A605と、コンテキスト格納部B606とを備え、特に説明しない部分は図12で説明した構成と同様に動作するものとする。
コンテキスト管理部600は、2値算術復号部33より復号シンボルと、復号に用いたコンテキスト番号とを取得し、並列更新処理の処理単位毎で、コンテキスト毎のシンボル発生確率を更新し、コンテキスト読出部32に対して、要求されたコンテキストに対するシンボル発生確率を出力する。
コンテキスト管理部600の動作について図16Bを用いてさらに詳しく説明する。図16Bは図15の(a)のコンテキスト更新を実現する算術復号部の処理の流れを示すフローチャートである。
コンテキスト管理部600では、制御部604により、スイッチ602、603がそれぞれS1もしくは、S2に連動して切り替えるスイッチ(トグルスイッチ)として働くものとする。また、初期状態ではS1に設定されているものとして説明するが、実際は前の並列処理区分の結果に依存して切り替わるものである。
コンテキスト更新部601は、コンテキスト読出部32からコンテキスト番号を含むシンボル発生確率読み出し要求を受け取る(ステップS801)。この場合に、スイッチ603に接続されている側(S1)に接続するコンテキスト格納部A605に格納されているコンテキスト番号に対応するコンテキスト情報(シンボル発生確率)をコンテキスト読出部32に対して出力する(ステップS802)。
次に、コンテキスト更新部601は、2値算術復号部33よりコンテキスト番号と復号シンボルとを含むコンテキスト更新処理要求を受け取る(ステップS803)。この場合に、スイッチ602に接続されている側(S1)に接続するコンテキスト格納部B606内のコンテキスト番号に対応したシンボル発生確率値を変更する(ステップS804)。
ここで、コンテキスト並列処理の処理単位に到達していない場合(ステップS805でNO)、次のコンテキスト読み出し要求に対する処理を行う。一方、コンテキスト並列処理の処理単位に達した場合(ステップS805でYES)、制御部604は、スイッチ602、603の連動スイッチを切り替える。この切り替えは、スイッチ602、603のS1、S2を現状がS1の場合にはS2に、S2の場合にはS1に両方のスイッチを同時に切り替える(ステップS806)。これにより、従来と比較して一対の格納用のメモリを用意するだけで並列処理を可能とする。また、2つの格納部をスイッチで切り替えるため、データの転送を不要とし、処理時間を短縮することができる。
次に、コンテキスト並列更新処理の処理単位について図16Cを用いて説明する。
図16Cは、コンテキストの更新方法の処理単位の一例を説明するための模式図である。
図16Cの(a)は、最大符号化処理ブロック単位(LCU)を符号化処理ブロック(CU)に分けて処理された構造を示し、正方形で囲まれた単位が、符号化処理ブロックであり、矢印は、処理の順番を示す。
符号化処理単位ブロックの構造は、符号化側で符号化効率が高くなるように決められる。このため、大きな処理単位の場合には、比較的予測符号化が簡単な画像特徴(例えば平坦な画像)を有する。一方、小さな処理単位の場合には、比較的予測符号化難しい画像特徴(例えば複雑なテクスチャ)を有することが多い。
例えば、一定のBin(2値符号)数に応じて、コンテキストの更新を行うことが考えられるが(例えば4Bin復号毎にコンテキスト並列更新処理を実行)、この場合では、画像の特徴に無関係でコンテキストの更新単位を決めることになるため、画質の劣化が予測される。
このため、コンテキスト並列更新の処理単位を符号化処理ブロック単位にする。これにより、予測符号化が難しい画像特徴の場合には、コンテキストの更新を頻繁に実行する。一方、予測符号化が簡単な画像特徴の場合には、コンテキストの更新の頻度を下げて実行することができる。その結果、コンテキスト更新の並列化による画質劣化を抑制することが可能となる。
また、さらにCUは変換係数の処理単位、変換ブロック単位(TU)に分割される。後述する変換係数の符号化の処理単位として、さらに変換ブロック単位(TU)とすることで、さらに画像の特徴に応じたコンテキスト並列更新処理が可能となる。
次に変換係数に対して、本実施の形態を適用した場合について、図16Cの(b)〜図16Cの(d)を用いて説明する。
図16Cの(b)は、復号化される(符号化時の符号化対象となる)変換係数Coeffと、その処理順SCとを示す。また、図16Cの(c)は、変換係数Coeffを処理順SCでスキャンを行い、変換係数が非ゼロの場合を1、ゼロの場合を0とした2値化信号列Sigを示す。また、図16Cの(d)は、上記の2値化信号列Sigが最後の非ゼロ係数かどうかを示し、最後の非ゼロ係数の場合に1、異なる場合に0の2値化信号列LastFlagを示す。なお、この係数情報は、Significace Mapと呼ばれ、例えばH.264規格と同じとしてもよい。また、Lastの位置情報を別に符号化してもよい。
図16Cの(e)は、図16Cの(c)に対応するコンテキストの例を示す。例えば、最初のビットの復号のために参照されるコンテキスト番号はAであり、処理順SCにしたがって、A、B、C、C、C、A・・・とコンテキスト番号が決められたとした場合の例である。
ここで、処理区分を上記のように変換処理単位とした場合、複数回呼ばれるコンテキストAに対して、復号用シンボル発生確率値は同じ値となる。
すなわち、従来では、最初に呼ばれるコンテキストAと、6番目に呼ばれるコンテキストA(2回目のA)とでは、復号用シンボル発生確率値は異なるが、本実施の形態によれば、処理単位に達するまで値は更新されないため、同じシンボル発生確率となる。これは、コンテキストB、C、Dに対しても同様である。
なお、ここで、コンテキスト並列更新処理の処理単位は、例えば信号種別ごとに、係数符号化単位である変換ブロック単位(TU)、予測符号化の予測方法を切り替える単位である予測ブロック単位(PU)、さらに符号化処理をまとめた単位である符号化ブロック単位(CU)、さらに取りうる最大の符号化処理単位ブロック単位(LCU)を切り替えても良い。処理単位が大きいほど、並列度を高めることができる一方、コンテキストの更新が遅くなるため、シンボル発生確率の画面内での適応度が下がり、符号化効率が劣化する可能性が高くなる。
これらの処理単位は、符号化する信号種別毎にどの処理単位を用いるかをあらかじめ決めておいてもよいし、ヘッダ情報(例えばプロファイルを示す情報)によって切り替えてもよい。これにより、処理の並列度が必要かどうかによって、処理単位を制御することができるため、符号化効率の劣化を抑制しつつ処理の並列度を上げることができる。
次に、コンテキスト並列更新方式のシンボル毎の更新方法の変形例について図16Dを用いて説明する。
図16Dは、コンテキスト並列更新処理の例を示す。CUaNはコンテキストAに対するN番目の復号信号に対応するコンテキストAの更新処理を示す。同様にCubNは、コンテキストBに対する処理とする。
図16Dの(a)は、コンテキスト並列更新方法のうち、コンテキストの呼び出し順に逐次更新処理を行う例を示す。これは、図16Cの(a)又は図16Cの(b)に示すように発生した順番に処理をしていくことを表している。この方法のメリットとしては、例えば図16Aの回路構成を用いることで、限られた追加格納領域で実現することができる点である。
一方、図16Dの(b)は、コンテキスト並列更新処理をコンテキスト毎にさらに並列処理した場合の例である。この方法は、コンテキスト更新処理を行う処理回路を複数用意することにより実現でき、処理時間の短縮が期待できる。なお、この方法はコンテキストの呼び出し順に更新処理を行う場合の、図16Dの(a)の別の例である。
一方、図16Dの(c)は、コンテキストの並列更新方法のうち、コンテキストの呼び出し順とは逆順に更新処理を行う例を示す。これは、図16Dの(c)に示すように、一度、コンテキストに対応する復号シンボルを格納し、処理する場合の例である。より具体的には、それぞれのコンテキストに対して、処理単位の最後に復号したシンボルから順番に更新処理を行い、処理単位の最初に発生したシンボルに対応する更新処理を最後に実行する。
これにより、前述のように格納するためのメモリが必要となるが、処理単位を例えば、変換係数単位にした場合に、次の処理単位の最初のシンボルと、現在の処理単位の最初のシンボルの発生確率が似ていることが想定される。このため、最後に現在の処理単位の最初のシンボルに対する更新処理を実行することにより、次の処理単位の復号時により近いシンボル発生確率を利用できることとなる。このため、符号化効率を向上することが期待できる。
さらに、図16Dの(c’)は、図16Dの(c)で説明した逆順にコンテキストの更新処理を実行する場合の変形例である。これは、追加に必要なメモリ量を削減する方法であり、例えば、メモリ量を2とした場合、コンテキスト毎に処理単位の最初から2つのシンボルに対して格納処理を行い、それ以降のシンボル(3番目以降)に対しては、順番どおりに処理を行うことで、追加のメモリ量を削減する方法である。この方法であっても、図16Dの(c)で説明したように、現在の処理単位の最初の復号シンボルの結果を最後に更新に反映することができるため、次の処理単位の最初の復号シンボルに対してより近いシンボル発生確率を利用できる。このため、符号化効率を向上することが期待できる。
なお、ここで簡単のためにメモリ量を2としたがこれに限らない。あらかじめ符号化側と復号側とで同じ値ときめておけばよい。この値に関して、プロファイルで規定されている信号によって切り替えても良い。
なお、さらに更新処理を簡易化する例としては、復号シンボルとシンボル発生確率とが似ている場合と、大きく外れた場合とをそれぞれカウントし、そのカウント値に応じて更新処理を行っても良い。
また、上記カウント処理とは、重み付け演算としてもよい。頻繁に発生する信号(例えば変換係数における低周波数領域)に対する復号シンボルとシンボル発生確率との関係に対しては、2倍とする等の重みをつけることで、更新処理を並列化する際の符号化効率劣化を抑制することが期待できる。
(実施の形態4)
本実施の形態4の算術復号方法の概要について説明する。本実施の形態4の算術符号化方法は、符号化対象となる信号に対応するコンテキストの更新を一定の大きさの処理単位に区分し、処理単位毎に一括して実施する。これにより、一定の処理単位内で算術符号化処理の並列化を実現することができる。
以上が、本実施の形態の算術符号化方法の概要についての説明である。なお、実施の形態2との共通点の詳しい説明は省略し、相違点を中心に説明する。
次に、本実施の形態の算術符号化方法を行う算術符号化部の構成について説明する。図17は本実施の形態4に係る算術符号化部の構成の一例を示すブロック図である。なお、本実施の形態4に係る算術符号化部40は、画像信号を圧縮符号化し、符号化画像データを出力する画像符号化装置200の一部に相当する。
図17に示されるように、算術符号化部40は、2値化部(Binarizer)41と、コンテキスト導出部(Context Selection)42と、コンテキスト読出部(Context Loat)43と、2値算術符号化部(Bin Encoder)44と、状態保持部(Reservoir)45と、コンテキスト並列更新部(Parallel Context Update)46と、コンテキスト格納部(Context Memory)47とを含む。本実施の形態4に係る算術符号化部40の動作について、図18を用いてさらに詳しく説明する。
図18は、算術符号化部40の処理の流れを示すフローチャートである。
まず、2値化部41によって、対象信号をあらかじめ決められた手法で2値信号に変換する(ステップS901)。例えば、0−3の信号に対して、1、01、001、0001といった2値化方法を用いても良い。
次に、2値化した信号に対して1ビットずつ算術符号化を行う。このため、対象の2値信号に対して、コンテキスト導出部42において、コンテキストの導出処理を行う(ステップS902)。コンテキストの導出には、例えば、既に符号化済みの信号や、既に符号化済みである隣接ブロックの信号を取得し、あらかじめ決められた方法により、コンテキストを決定し、決定したコンテキスト番号をコンテキスト読出部に伝える。
コンテキスト読出部43では、コンテキスト番号に従い、コンテキスト格納部47より指定されたコンテキストに対応するシンボル発生確率を読み出す(ステップS903)。なお、シンボル発生確率とコンテキストとの対応については、例えばテーブルにおいて管理されてもよい。シンボル発生確率テーブルについては、実施の形態3で説明したテーブルと同じものである。
次に、読み出されたシンボル発生確率に基づき、2値算術符号化部44において、算術符号化処理が施される(ステップS904)。具体的には、コンテキスト読出部43より取得するシンボル発生確率に基づいて、2値算術符号化部44の内部状態を更新し、状態に応じて符号化信号を出力する。ここで、2値算術符号化部44の内部状態とは、初期化もしくはリセット処理が施されるまで逐次的に更新処理されていく値のことである。ここでの2値算術符号化部44の動作の詳細は、例えば、H.264規格で用いられるものとしてよい。
次に、算術符号化処理した符号化対象シンボルを状態保持部45に対して出力する(ステップS905)。ここでは、コンテキスト毎に符号化対象シンボルを保持しコンテキストの状態を管理する。なお、状態保持部45の詳細については、実施の形態3で説明したものと同じ動作を行う。
符号化処理の単位が、コンテキスト並列更新処理の処理単位に達していなければ(ステップS906でNO)、次の符号化対象シンボルに対する2値化処理(S901)に戻る(既に2値化されている場合には、コンテキスト導出処理(S902))。
一方、コンテキスト並列更新処理の処理単位に到達した場合(ステップS906でYES)、コンテキスト並列更新部46は、状態保持部45よりコンテキスト毎の符号化対象シンボル群を取得し、コンテキスト並列更新処理を実行する(ステップS907)。なお、ここでコンテキスト並列更新部46は、状態保持部45の内容をリセットする。
コンテキストの並列更新処理では、コンテキスト毎に、コンテキストに対応するシンボル発生確率を変更し、更新したシンボル発生確率をコンテキスト格納部47に格納する。具体的な処理の詳細については、実施の形態3のコンテキスト並列更新部36と同じである。
以上が、本実施の形態の算術符号化部40の構成についての説明である。
図19は、算術符号化処理をより高速に処理するために、処理を並列に実装した場合の、処理のタイミングを示す概要図である。
図19は実施の形態3で説明した並列更新方式その1の場合について示している。なお、実施の形態3の並列更新方式その2A、並列更新方式その2Bにおいても同様に説明できる。
図19は、プロセス1(Proc1)の処理回路で、コンテキスト導出処理(CS)、コンテキスト読み出し処理(CL)、2値算術符号化処理(BAC)、コンテキスト更新(CU)の動作を時間軸に沿って記述しており、簡単のため、それぞれの処理時間は同じものとして示している。同様に、プロセス2(Proc2)、プロセス3(Proc3)、プロセス4(Proc4)を含んでいる例である。
また、図中の矢印で示す部分は、矢印の根元から、矢印の先端部に対して、順番を維持する必要があるという依存関係を示している。2値算術符号化処理では、2値算術符号化の内部状態を符号化毎に更新するため、2値算術符号化処理に対して依存関係がある。また、同一コンテキストを使う場合(図中はこの場合を説明)、コンテキストを更新した結果をさらに参照するため、コンテキスト更新(CU)と次の符号化のためのコンテキスト読み出し(CL)とに依存関係がある。しかしながら、本実施の形態によれば、この依存関係を分離することができるため、図19中にこの依存関係を示す矢印は不要となる。
実施の形態3で説明した並列更新方式その1の場合、プロセス1は、それぞれの処理(コンテキスト導出処理、コンテキスト読み出し処理、2値算術符号化処理)と順番に処理し、最後にコンテキスト更新処理を行う。ここでのコンテキスト更新処理は、更新結果をコンテキストメモリに反映しない。このため、プロセス2によるコンテキスト読み出し時には、常に過去の、より具体的には、コンテキストの並列更新処理直後の、シンボル発生確率値を読み出す。
このため、プロセス1のコンテキスト更新処理が、プロセス2、プロセス3のコンテキスト読み出し処理よりも後にある(図中)場合であっても、正確に符号化処理を実現することができる。これにより、並列処理を行った場合であっても、処理遅延(latency)を最低限(図中は1処理時間)とすることができる。この処理遅延は、算術符号化中の状態値の依存関係に起因しており、状態値の推定等によりさらに処理遅延を削減することができる。なお、本実施の形態は、このようなさらに処理遅延を削減する場合であっても、コンテキストの依存関係による処理遅延を削減するという観点で有効である。
図20に、上記で説明した図19のコンテキスト更新を実現する算術符号化部の構成の一例を示すブロック図である。なお、図17で説明した構成のうち、コンテキスト管理部800の部分について、図19のコンテキスト更新の場合の詳細を示している。コンテキスト管理部800は、コンテキスト更新部801と、スイッチ802、803と、制御部804と、コンテキスト格納部A805と、コンテキスト格納部B806とを備え、特に説明しない部分は図17で説明した構成と同様に動作するものとする。
コンテキスト管理部800は、2値算術符号化部より符号化対象シンボルと、符号化に用いたコンテキスト番号とを取得し、並列更新処理の処理単位で、コンテキスト毎のシンボル発生確率を更新し、コンテキスト取得読出部に対して、要求されたコンテキストに対するシンボル発生確率を出力する。
コンテキスト管理部800の動作について図21を用いてさらに詳しく説明する。図21は図19のコンテキスト更新を実現する算術符号化部の処理の流れを示すフローチャートである。
コンテキスト管理部800では、制御部804により、スイッチ602、603がそれぞれS1もしくは、S2に連動して切り替えるスイッチ(トグルスイッチ)として働くものとする。なお、初期状態ではS1に設定されているものとして説明するが、実際は前の並列処理単位の結果に依存して切り替わるものである。
コンテキスト更新部801は、コンテキスト読出部43からコンテキスト番号を含むシンボル発生確率読み出し要求を受け取る(ステップS1101)。この場合に、スイッチ803に接続されている側(S1)に接続するコンテキスト格納部A805に格納されているコンテキスト番号に対応するコンテキスト情報(シンボル発生確率)をコンテキスト読出部43に対して出力する(ステップS1102)。
次に、コンテキスト更新部801は、2値算術符号化部44よりコンテキスト番号と符号化対象シンボルとを含むコンテキスト更新処理要求を受け取る(ステップS1103)。この場合に、スイッチ802に接続されている側(S1)に接続するコンテキスト格納部B806内のコンテキスト番号に対応したシンボル発生確率値を変更する(ステップS1104)。
ここで、コンテキスト並列処理区分に到達していない場合(ステップS1105でNO)、次のコンテキスト読み出し要求に対する処理を行う。一方、コンテキスト並列処理の処理単位に達している場合(ステップS1105でYES)、制御部804は、スイッチ802、803の連動スイッチを切り替える。この切り替えは、スイッチ802、803のS1、S2を現状がS1の場合にはS2に、S2の場合にはS1に両方のスイッチを同時に切り替える(ステップS1106)。
これにより、従来と比較して一対の格納用のメモリを用意するだけで並列処理を可能とする。また、2つの格納部をスイッチで切り替えるため、データの転送を不要とし、処理時間を短縮することができる。
コンテキスト並列更新の処理単位については、実施の形態3の復号の場合の説明と同様であり、図16Cを用いて説明する。
図16Cは、コンテキストの更新方法の処理単位の一例を説明するための模式図である。
図16Cの(a)は、最大符号化処理ブロック単位(LCU)を符号化処理ブロック(CU)に分けて処理された構造を示し、正方形で囲まれた単位が、符号化処理ブロックであり、矢印は、処理の順番を示す。
符号化処理単位ブロックの構造は、符号化側で符号化効率が高くなるように決められる。このため、大きな処理単位の場合には比較的予測符号化が簡単な画像特徴(例えば平坦な画像)を有する。一方、小さな処理単位の場合には、比較的予測符号化難しい画像特徴(例えば複雑なテクスチャ)を有することが多い。
例えば、一定のBin(2値符号)数に応じて、コンテキストの更新を行うことが考えられるが(例えば4Bin符号化毎にコンテキスト並列更新処理を実行)、この場合では、画像の特徴に無関係でコンテキストの更新単位を決めることになるため、画質の劣化が予測される。
このため、コンテキスト並列更新の処理単位を符号化処理ブロック単位にすることにより、予測符号化が難しい画像特徴の場合には、コンテキストの更新を頻繁に実行し、予測符号化が簡単な画像特徴の場合には、コンテキストの更新の頻度を下げて実行する。これにより、コンテキスト更新の並列化による画質劣化を抑制することが可能となる。
また、さらにCUは変換係数の処理単位、変換ブロック単位(TU)に分割される。後述する変換係数の符号化の処理単位として、さらに変換ブロック単位(TU)とすることで、さらに画像の特徴に応じたコンテキスト並列更新処理が可能となる。
次に変換係数に対して、本発明を適用した場合について、図16Cの(b)〜図16Cの(d)を用いて説明する。
図16Cの(b)は、符号化される(符号化時の符号化対象となる)変換係数Coeffと、その処理順SCを示す。また、図16Cの(c)は、変換係数Coeffを処理順SCでスキャンを行い、変換係数が非ゼロの場合を1、ゼロの場合を0とした2値化信号列Sigを示す。また、図16Cの(d)は、上記の2値化信号列Sigが最後の非ゼロ係数かどうかを示し、最後の非ゼロ係数の場合に1、異なる場合に0の2値化信号列LastFlagを示す。なお、この係数情報はSignificace Mapと呼ばれ、例えばH.264規格と同じとしてもよい。また、Lastの位置情報を別に符号化してもよい。
図16Cの(e)は、図16Cの(c)に対応するコンテキストの例を示す。例えば、最初のビットの符号化のために参照されるコンテキスト番号はAであり、処理順SCにしたがって、A、B、C、C、C、A・・・とコンテキスト番号が決められたとした場合の例である。
ここで、処理単位を上記のように変換処理単位とした場合、複数回呼ばれるコンテキストAに対して、符号化用シンボル発生確率値は同じ値となる。
すなわち、従来では、最初に呼ばれるコンテキストAと、6番目に呼ばれるコンテキストA(2回目のA)とでは、符号化用シンボル発生確率値は異なるが、本実施の形態によれば、処理単位に達するまで値は更新されないため、同じシンボル発生確率となる。これは、コンテキストB、C、Dに対しても同様である。
なお、ここで、コンテキスト並列更新処理の処理単位は、例えば信号種別ごとに、係数符号化単位である変換ブロック単位(TU)、予測符号化の予測方法を切り替える単位である予測ブロック単位(PU)、さらに符号化処理をまとめた単位である符号化ブロック単位(CU)、さらに取りうる最大の符号化処理単位ブロック単位(LCU)を切り替えても良い。処理単位が大きいほど、並列度を高めることができる。その一方、コンテキストの更新が遅くなるため、シンボル発生確率の画面内での適応度が下がり、符号化効率が劣化する可能性が高くなる。
これらの処理単位は、符号化する信号種別毎にどの処理単位を用いるかをあらかじめ決めておいてもよいし、ヘッダ情報(例えばプロファイルを示す情報)によって切り替えてもよい。これにより、処理の並列度が必要かどうかによって、処理単位を制御することができるため、符号化効率の劣化を抑制しつつ処理の並列度を上げることができる。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図25は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図25のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図26に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図27は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図28に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図29に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図27に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図30(a)は、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図30(b)を用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態6)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図31は、多重化データの構成を示す図である。図31に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図32は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図33は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図33における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図33の矢印yy1,yy2, yy3, yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図34は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図34下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図35はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図36に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図36に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図37に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図38に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態7)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図39に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態8)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図40は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図39のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図39の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態6で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態6で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図42のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図41は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態9)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図43(a)のex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明は、逆量子化に特徴を有していることから、例えば、逆量子化については専用の復号処理部ex901を用い、それ以外のエントロピー符号化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図43(b)のex1000に示す。この例では、本発明に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。