(本発明の基礎となった知見)
本発明者は、「背景技術」の欄において記載した、算術符号化を用いる画像符号化方法に関し、課題を見出した。以下に具体的に説明する。
H.26xと称されるITU−T規格、および、MPEG−xと称されるISO/IEC規格に代表される画像符号化方式に係る画像符号化装置は、ピクチャを予め定められた単位に分割し、その単位で符号化を行う。例えば、H.264/MPEG−4 AVC方式(非特許文献1参照)に係る画像符号化装置は、水平16画素および垂直16画素のマクロブロックと呼ばれる単位で処理を行う。
画像符号化装置は、動き補償を行う場合、マクロブロックをサブブロック(最小で水平4画素および垂直4画素)に分割する。そして、画像符号化装置は、サブブロック毎に異なる動きベクトルを用いて動き補償を行い、原信号と予測信号との差分信号を周波数変換し、差分信号の情報を低周波数領域に集め、量子化をすることで情報を圧縮することができる。
差分信号の情報を低周波数領域に集めるDCT等の直交変換を用いてブロック単位でピクチャを符号化するための方法では、ブロックの境界にブロック歪みと呼ばれる格子状の歪みが見られることが知られている。画像符号化装置は、デブロッキングフィルタ処理により、ブロック歪みを低減することができる。
しかしながら、上記のデブロッキングフィルタのようなブロック境界のみを処理する方式では、ブロック歪み以外の符号化劣化を低減することが困難である。
そこで、本発明の一態様に係る画像符号化方法は、可変の確率を用いる算術符号化であるコンテキスト算術符号化によって、(i)画素値のオフセット処理であるSAO(サンプル適応オフセット)処理を画像の第1領域に対して行うか否かを示す第1情報、および、(ii)前記第1領域に対するSAO処理に前記第1領域とは別の領域に対するSAO処理の情報を用いるか否かを示す第2情報を連続して符号化するコンテキスト算術符号化ステップと、前記第1情報および前記第2情報が符号化された後、固定の確率を用いる算術符号化であるバイパス算術符号化によって、前記第1領域に対するSAO処理の情報であり前記第1情報とも前記第2情報とも異なる情報である他の情報を符号化するバイパス算術符号化ステップとを含み、前記他の情報は、前記第1領域に対するSAO処理がエッジに応じて行われるエッジオフセット処理であるか画素値に応じて行われるバンドオフセット処理であるかを示す第3情報を含み、前記コンテキスト算術符号化ステップでは、前記第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの値を前記第1情報として符号化し、前記バイパス算術符号化ステップでは、前記パラメータのビット列のうち前記最初のビットの次のビットの値を前記第3情報として符号化する。
これにより、画質の向上のためのSAO処理の1つのパラメータのうち、コンテキスト算術符号化を用いることが適切な部分には、コンテキスト算術符号化が用いられ、バイパス算術符号化を用いることが適切な部分には、バイパス算術符号化が用いられる。さらに、コンテキスト算術符号化が連続して行われる。すなわち、コンテキスト算術符号化およびバイパス算術符号化の頻繁な切り替えが抑制され、同種の処理が連続して行われる。したがって、処理効率が向上する。
例えば、前記コンテキスト算術符号化ステップでは、前記第2情報を符号化した後、前記第1情報を符号化してもよい。
これにより、コンテキスト算術符号化の連続性が維持された状態で、パラメータに含まれる最初のビットの値をコンテキスト算術符号化で符号化した直後に、パラメータに含まれる次のビットの値をバイパス算術符号化で符号化することが可能である。したがって、パラメータに対する複雑な処理が軽減され、処理効率が向上する。
また、例えば、前記バイパス算術符号化ステップでは、オフセット値の絶対値を示す第4情報を含む前記他の情報を符号化してもよい。
これにより、コンテキスト算術符号化の後、様々な情報がバイパス算術符号化で符号化される。すなわち、同種の処理がまとめて行われる。したがって、処理効率が向上する。
また、例えば、前記バイパス算術符号化ステップでは、前記第1領域に対するSAO処理がバンドオフセット処理である場合、前記オフセット値の正負を示す第5情報、および、前記オフセット値の適用範囲を示す第6情報を含む前記他の情報を符号化してもよい。
これにより、コンテキスト算術符号化の後、状況に応じてさらに様々な情報がバイパス算術符号化で符号化される。したがって、処理効率が向上する。
また、例えば、前記コンテキスト算術符号化ステップでは、前記第1領域に対するSAO処理に前記第1領域の左に隣接する左領域に対するSAO処理の情報を用いるか否かを示す情報、および、前記第1領域に対するSAO処理に前記第1領域の上に隣接する上領域に対するSAO処理の情報を用いるか否かを示す情報のうち少なくとも1つを含む前記第2情報を符号化してもよい。
これにより、連続して行われるコンテキスト算術符号化において、上または左からの流用を示す情報が適切に符号化される。
また、本発明の一態様に係る画像復号方法は、可変の確率を用いる算術復号であるコンテキスト算術復号によって、(i)画素値のオフセット処理であるSAO(サンプル適応オフセット)処理を画像の第1領域に対して行うか否かを示す第1情報、および、(ii)前記第1領域に対するSAO処理に前記第1領域とは別の領域に対するSAO処理の情報を用いるか否かを示す第2情報を連続して復号するコンテキスト算術復号ステップと、前記第1情報および前記第2情報が復号された後、固定の確率を用いる算術復号であるバイパス算術復号によって、前記第1領域に対するSAO処理の情報であり前記第1情報とも前記第2情報とも異なる情報である他の情報を復号するバイパス算術復号ステップとを含み、前記他の情報は、前記第1領域に対するSAO処理がエッジに応じて行われるエッジオフセット処理であるか画素値に応じて行われるバンドオフセット処理であるかを示す第3情報を含み、前記コンテキスト算術復号ステップでは、前記第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの値を前記第1情報として復号し、前記バイパス算術復号ステップでは、前記パラメータのビット列のうち前記最初のビットの次のビットの値を前記第3情報として復号する画像復号方法でもよい。
これにより、画質の向上のためのSAO処理の1つのパラメータのうち、コンテキスト算術復号を用いることが適切な部分には、コンテキスト算術復号が用いられ、バイパス算術復号を用いることが適切な部分には、バイパス算術復号が用いられる。さらに、コンテキスト算術復号が連続して行われる。すなわち、コンテキスト算術復号およびバイパス算術復号の頻繁な切り替えが抑制され、同種の処理が連続して行われる。したがって、処理効率が向上する。
例えば、前記コンテキスト算術復号ステップでは、前記第2情報を復号した後、前記第1情報を復号してもよい。
これにより、コンテキスト算術復号の連続性が維持された状態で、パラメータに含まれる最初のビットの値をコンテキスト算術復号で復号した直後に、パラメータに含まれる次のビットの値をバイパス算術復号で復号することが可能である。したがって、パラメータに対する複雑な処理が軽減され、処理効率が向上する。
また、例えば、前記バイパス算術復号ステップでは、オフセット値の絶対値を示す第4情報を含む前記他の情報を復号してもよい。
これにより、コンテキスト算術復号の後、様々な情報がバイパス算術復号で復号される。すなわち、同種の処理がまとめて行われる。したがって、処理効率が向上する。
また、例えば、前記バイパス算術復号ステップでは、前記第1領域に対するSAO処理がバンドオフセット処理である場合、前記オフセット値の正負を示す第5情報、および、前記オフセット値の適用範囲を示す第6情報を含む前記他の情報を復号してもよい。
これにより、コンテキスト算術復号の後、状況に応じてさらに様々な情報がバイパス算術復号で復号される。したがって、処理効率が向上する。
また、例えば、前記コンテキスト算術復号ステップでは、前記第1領域に対するSAO処理に前記第1領域の左に隣接する左領域に対するSAO処理の情報を用いるか否かを示す情報、および、前記第1領域に対するSAO処理に前記第1領域の上に隣接する上領域に対するSAO処理の情報を用いるか否かを示す情報のうち少なくとも1つを含む前記第2情報を復号してもよい。
これにより、連続して行われるコンテキスト算術復号において、上または左からの流用を示す情報が適切に復号される。
また、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの非一時的な記録媒体で実現されてもよく、システム、装置、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を用いて詳細に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示す。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置および接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
また、下記ではcodingはencodingの意味で使用する場合もある。
(実施の形態1)
本実施の形態に係る画像符号化装置の構成を図1に示す。図1に示された画像符号化装置100は、制御部110および符号化部120を備える。符号化部120は、減算部121、周波数変換部122、量子化部123、エントロピー符号化部124、逆量子化部125、逆周波数変換部126、加算部127、ループフィルタリング部128、記憶部129、面内予測部130、動き補償部131、動き検出部132およびスイッチ133を含む。
符号化部120は、画像141をブロック毎に符号化して、符号化ストリーム142を生成する。その際、符号化部120の減算部121は、画像141の複数の画素値で構成される画素ブロックから、予測画像の複数の画素値で構成される画素ブロックを減算する。周波数変換部122は、減算により得られた画素ブロックを複数の周波数係数で構成される係数ブロックに変換する。量子化部123は、周波数変換部122により得られた係数ブロックを量子化する。
一方、動き検出部132は、画像141の画素ブロックを用いて動きベクトルを検出する。動き補償部131は、記憶部129の参照画像、および、動き検出部132により検出された動きベクトルを用いて、面間予測(インター予測)を行う。面内予測部130は、面内予測モードに従い、加算部127で得られた画素ブロックを用いて、面内予測(イントラ予測)を行う。スイッチ133は、面内予測または面間予測により得られた予測画像の画素ブロックを減算部121および加算部127に入力する。
そして、エントロピー符号化部124は、ブロックのパーティション情報、予測の種別、動きベクトル、予測モード(面内予測モード)、量子化パラメータ、および、量子化された係数ブロック等に対して、エントロピー符号化を施すことにより、符号化ストリーム142を生成する。
また、逆量子化部125は、量子化された係数ブロックを逆量子化する。そして、逆周波数変換部126は、逆量子化された係数ブロックを画素ブロックに変換する。そして、加算部127は、逆周波数変換部126により得られた画素ブロックに、予測画像の画素ブロックを加算する。ループフィルタリング部128は、加算部127で得られた画素ブロックから歪みを抑制し、画素ブロックを参照画像として記憶部129に格納する。
また、制御部110は、符号化部120を制御する。
画像符号化装置100は、上記の動作によって、画像141を符号化する。そして、画像符号化装置100は、周波数変換、量子化、面内予測、面間予測、エントロピー符号化およびループフィルタリング等の様々な処理によって、符号化ストリーム142のデータ量を低減させる。
図1に示された画像符号化装置100に対応する画像復号装置200の構成を図2に示す。図2に示された画像復号装置200は、制御部210および復号部220を備える。復号部220は、エントロピー復号部224、逆量子化部225、逆周波数変換部226、加算部227、ループフィルタリング部228、記憶部229、面内予測部230、動き補償部231およびスイッチ233を含む。
復号部220は、符号化ストリーム242に含まれる画像241をブロック毎に復号する。その際、復号部220のエントロピー復号部224は、符号化ストリーム242に対して、エントロピー復号を施すことにより、ブロックのパーティション情報、予測の種別、動きベクトル、面内予測モード、量子化パラメータ、および、量子化された係数ブロック等を取得する。
そして、制御部210は、復号部220の動作を制御する。
復号部220の逆量子化部225は、量子化された係数ブロックを逆量子化する。逆周波数変換部226は、逆量子化された係数ブロックを画素ブロックに変換する。
加算部227は、逆周波数変換部226により得られた画素ブロックに予測画像の画素ブロックを加算する。ループフィルタリング部228は、加算部227により得られた画素ブロックから歪みを抑制する。その後、ループフィルタリング部228は、画素ブロックで構成される参照画像を記憶部229に格納する。また、ループフィルタリング部228は、画素ブロックで構成される画像241を出力する。
予測の種別が面内予測である場合、面内予測部230が、面内予測モードに従い、加算部227で得られた画素ブロックを用いて面内予測を行う。予測の種別が面間予測である場合、動き補償部231が、動きベクトル、および、記憶部229の参照画像を用いて、面間予測を行う。スイッチ233は、面内予測または面間予測により得られた予測画像の画素ブロックを加算部227に入力する。
画像復号装置200は、上記のように、画像符号化装置100に対応する動作によって、符号化ストリーム242に含まれる画像241をブロック毎に復号する。
ここで、ループフィルタリング処理について、さらに詳しく説明する。ループフィルタリング処理は、再構成信号の符号化劣化を低減するための処理であり、H.264/MPEG−4 AVC方式(非特許文献1参照)では、マクロブロック境界に発生するブロック状の歪みを低減するデブロッキングフィルタ処理が行われる。
ただし、マクロブロック内に生じる符号化劣化については、デブロッキングフィルタ処理では解消されない。そのため、本実施の形態では、符号化劣化を低減するためのオフセット処理が行われる。オフセット処理は、再構成信号の処理対象ブロック内に含まれる画素にオフセット値を加算することにより、原信号に対する歪みを軽減する。
また、オフセット処理は、処理対象ブロック内の画素を複数カテゴリに分類し、カテゴリ毎に共通のオフセット値を使用する。画素分類方法には、分類対象画素とその隣接画素との比較により行われるエッジオフセットの画素分類方法と、分類対象画素の画素値により行われるバンドオフセットの画素分類方法とがある。エッジオフセットは、エッジに応じて行われるオフセットであり、バンドオフセットは、画素値に応じて行われるオフセットである。
以下では、エッジオフセットの画素分類方法を用いることを、画素分類方法がエッジオフセットである、あるいは、画素分類方法にエッジオフセットを用いると表現する場合がある。また、同様に、バンドオフセットの画素分類方法を用いることを、画素分類方法がバンドオフセットである、あるいは、画素分類方法にバンドオフセットを用いると表現する場合がある。
図3は、エッジオフセットによる画素分類方法の例を示した模式図である。エッジオフセットでは、分類対象画素cとその左右の隣接画素c1、c2との大小関係により分類を行う。
図4は、エッジオフセットにより処理対象ブロックを5つのカテゴリに分類する例を示した模式図である。例えば、cの画素値がc1の画素値よりも大きく、c2の画素値と等しい場合、対象画素はカテゴリ3に分類され、カテゴリ3に割り当てられているオフセット値Offset[3]が加算される。
また、図5に示すように、エッジオフセットにおいて、分類対象画素と比較される画素は、左右隣接画素(EO(0))、上下隣接画素(EO(1))、斜め隣接画素(EO(2)あるいはEO(3))、あるいはそれらの組合せ(EO(4)あるいはEO(5))などである。
図6は、バンドオフセットによる画素分類方法の例を示した模式図である。ここで、処理対象画素値の取り得る階調が均等にM分割されている。Mは例えば32である。分割された階調区分がカテゴリとなる。処理対象画素は、その画素値が含まれるカテゴリに分類される。
図7は、バンドオフセットにより処理対象ブロックを16のクラスに分類した例を示した模式図である。例えば、cの画素値が、R9以上R10未満の場合、処理対象画素はカテゴリ9に分類され、カテゴリ9に割り当てられているオフセット値Offset[9]が加算される。
また、全てのカテゴリに対してオフセット値を割り当てる必要はなく、図8に示すように、画像符号化装置100は、オフセット効果の高いカテゴリに対するオフセット値のみを符号化できる。その際、画像符号化装置100は、符号化したオフセット値のカテゴリを示すカテゴリインデックス番号も合わせて符号化する。
また、SAO(サンプル適応オフセット:Sample Adaptive Offset)は、図9Aに示すように、階層的にブロックを分割することで得られる処理対象領域単位に、最適な画素分類方法およびオフセット値を決定する。分割パターンの一例を図9Bに示す。
図10は、本実施の形態に係る画像符号化装置100におけるループフィルタリング部128の構成の一例を示すブロック図である。
ループフィルタリング部128は、信号取得部151、オフセット情報算出部152、オフセット処理部153、オフセット情報符号化部154、および、信号出力部155を含む。
信号取得部151は、再構成済みの処理対象領域の画素信号を取得する。
オフセット情報算出部152は、オフセット処理に使用する分割パターン、画素分類方法およびオフセット値などのオフセット情報を算出する。
オフセット処理部153は、オフセット情報を用いて、処理対象領域内の画素をカテゴリに分類し、カテゴリ毎にオフセット処理を行う。
オフセット情報符号化部154は、オフセット情報を図1に示すエントロピー符号化部124へ出力する。なお、オフセット情報符号化部154が、オフセット情報を符号化してもよい。また、オフセット情報符号化部154は、エントロピー符号化部124に含まれてもよい。
信号出力部155は、オフセット処理が行われた処理対象領域の画素信号を出力する。
図11は、本実施の形態に係る画像復号装置200におけるループフィルタリング部228の構成の一例を示すブロック図である。
ループフィルタリング部228は、信号取得部251、オフセット情報復号部252、オフセット処理部253、および、信号出力部254を含む。
信号取得部251は、再構成済みの処理対象領域の画素信号を取得する。
オフセット情報復号部252は、オフセット処理に使用する分割パターン、画素分類方法およびオフセット値などのオフセット情報を取得する。なお、オフセット情報復号部252が、オフセット情報を復号してもよい。また、オフセット情報復号部252は、エントロピー復号部224に含まれてもよい。
オフセット処理部253は、オフセット情報を用いて、処理対象領域内の画素をカテゴリに分類し、カテゴリ毎にオフセット処理を行う。
信号出力部254は、オフセット処理が行われた処理対象領域の画素信号を出力する。
図12は、主に、図1に示された画像符号化装置100のうち、図10に示されたループフィルタリング部128の動作を示すフローチャートである。
まず、信号取得部151は、加算部127から再構成済みの処理対象領域の画素信号を取得する(S151)。次に、オフセット情報算出部152は、オフセット処理に使用する分割パターン、画素分類方法およびオフセット値などのオフセット情報を算出する(S152)。次に、オフセット処理部153は、オフセット情報に基づき、領域を分割し、分割領域の画素をカテゴリに分類し、カテゴリ毎にオフセット値を加算する(S153)。
次に、オフセット情報符号化部154は、分割パターン、画素分類方法、カテゴリインデックス番号およびオフセット値などのオフセット情報をエントロピー符号化部124へ出力する。エントロピー符号化部124はオフセット情報を符号化して、符号化されたオフセット情報を符号化ストリームへ挿入する(S154)。なお、オフセット情報符号化部154がオフセット情報を符号化して、符号化されたオフセット情報を符号化ストリームへ挿入してもよい。
次に、信号出力部155は、オフセット済みの処理対象領域の画素信号を記憶部129へ出力する(S155)。
図13は、主に、図2に示された画像復号装置200のうち、図11に示されたループフィルタリング部228の動作を示すフローチャートである。
まず、信号取得部251は、加算部227から再構成済みの処理対象領域の画素信号を取得する(S251)。
次に、エントロピー復号部224は、符号化ストリームから分割パターン、画素分類方法、カテゴリインデックス番号およびオフセット値などのオフセット情報を復号し、オフセット情報復号部252は、復号されたオフセット情報を取得する(S252)。なお、オフセット情報復号部252が、符号化ストリームからオフセット情報を復号してもよい。
次に、オフセット処理部253は、オフセット情報に基づき、領域を分割し、分割領域の画素をカテゴリに分類し、カテゴリ毎にオフセット値を加算する(S253)。次に、信号出力部254は、オフセット済みの処理対象領域の画素信号を記憶部229へ出力する(S254)。
ここで、オフセット情報符号化部154およびオフセット情報復号部252におけるオフセット情報の符号化および復号について、さらに詳しく説明する。オフセット処理における画素分類方法には、一例として、エッジオフセットにEO(0)、EO(1)、EO(2)およびEO(3)、バンドオフセットにBO(0)の5種類がある。
上記の各画素分類方法を示すインデックス番号の割り当ての一例を図14に示す。図14では、小さな値は小さなビット長になり、大きな値は大きなビット長になるように、インデックス番号が2値化され、最大ビット長は5ビットに指定されている。しかし、割り当て方法はこれに限定されない。例えば、最大ビット長が指定されずに全てのインデックス番号で最後尾が0になるようにビットが割り当てられてもよい。
また、処理対象ブロックに対して、オフセット処理を行わないことを示す情報がインデックス番号の0番に割り当てられている。
実施の形態1に係る画像符号化装置100は、動画像を符号化することで符号化ストリームを生成する。符号化ストリームは、図15に示すように、SPS(Sequence Parameter Set)およびPPS(Picture Parameter Set)などのヘッダ部分と、符号化された画像データであるピクチャデータとを含んでいる。
ピクチャデータは、さらに、スライスヘッダ(SH)と、スライスデータとを含んでいる。スライスデータは、スライスに含まれる符号化された画像データを含んでいる。スライスデータは、さらに、ブロックヘッダ(BH)と、ブロックデータとを含んでいる。ブロックデータは、ブロックに含まれる符号化された画像データを含んでいる。
また、符号化ストリームは、上記とは別に1つあるいは複数のスライスで使用するパラメータを格納したAPS(Adaptation Parameter Set)を含んでいる。APSにはインデックス番号aps_idxが割り当てられており、画像符号化装置100は、使用するAPSを呼び出すためのインデックス番号aps_idxをスライスヘッダに挿入することができる。
オフセット情報は、オフセット情報符号化部154(またはエントロピー符号化部124)において、符号化され、SPS、PPS、SH、スライスデータ、BH、ブロックデータおよびAPSのいずれかに挿入される。また、オフセット情報は、オフセット情報復号部252(またはエントロピー復号部224)において、SPS、PPS、SH、スライスデータ、BH、ブロックデータおよびAPSのいずれかから取得され、復号される。
オフセット情報をAPSに挿入する例を図16A、図16Bおよび図16Cに示す。画像符号化装置100は、スライス内にある全てのブロックのオフセット情報を一括してAPSに挿入することができ、画像復号装置200は、APSからオフセット情報を一括して取得できる。
また、オフセット情報をスライスデータに挿入する例を図17A、図17Bおよび図17Cに示す。画像符号化装置100は、オフセット情報をスライスデータにおけるブロック単位に挿入でき、画像復号装置200は、オフセット情報をスライスデータにおけるブロック単位に取得できる。
本実施の形態において、画像符号化装置100(画像復号装置200)は、図18に示すように複数の処理対象領域でオフセット情報を共用することができる。図18の実線はオフセット処理の処理対象領域区分の境界であり、点線は、共通のオフセット情報を使用する領域区分の境界である。ここで、画像符号化装置100は、符号化ストリームへ、オフセット値などを示すオフセット情報ではなく、オフセット値などを共用することを示す情報を挿入することで、オフセット処理によるビット量の増加を抑制することができる。
例えば、画像符号化装置100は、図16Aのsao_one_luma_unit_flag、sao_one_cr_unit_flagおよびsao_one_cb_unit_flagのように、スライス内の全てのブロックでオフセット情報を共用することを示すフラグを符号化してもよい。また、画像符号化装置100は、図16Aのsao_repeat_row_flagのように1ライン分のオフセット情報を1つ上のラインからコピーすることを示すフラグを符号化してもよい。
また、画像符号化装置100は、図16BのsaoRunおよびsao_run_diffのようにオフセット情報を共有する処理対象領域の数を示すパラメータを符号化してもよい。また、画像符号化装置100は、図16Bおよび図17Bのように、左あるいは上の領域からオフセット情報をコピーすることを示すsao_merge_left_flagあるいはsao_merge_up_flagを符号化してもよい。
図19は、オフセット情報符号化部154がオフセット情報のうち画素分類方法を示すインデックス番号を符号化する動作を示すフローチャートである。
まず、オフセット情報符号化部154は、オフセット処理を行ったか否かを判定する(S1541)。オフセット情報算出部152は、分割パターン、画素分類方法、カテゴリインデックス番号およびオフセット値などのオフセット情報を算出する。オフセット情報算出部152は、符号化劣化の補正量に対して、オフセット情報に要するビット量が大きくなった場合、オフセット処理を行わないと判定する。この場合、オフセット処理部153は、オフセット処理を行わない。
ここでは、オフセット情報符号化部154は、オフセット情報算出部152またはオフセット処理部153から、オフセット処理を行ったか否かに関する情報を取得する。オフセット処理が行われなかった場合(S1541でNo)、オフセット情報符号化部154は、画素分類方法を示すインデックス番号を0として符号化する(S1542)。
オフセット処理が行われた場合(S1541でYes)、オフセット情報符号化部154は、画素分類方法がエッジオフセットEO(0)であるか否かを判定する(S1543)。画素分類方法がエッジオフセットEO(0)である場合(S1543でYes)、オフセット情報符号化部154は、画素分類方法を示すインデックス番号を1として符号化する(S1544)。
画素分類方法がエッジオフセットEO(0)でない場合(S1543でNo)、オフセット情報符号化部154は、画素分類方法がエッジオフセットEO(1)であるか否かを判定する(S1545)。画素分類方法がエッジオフセットEO(1)である場合(S1545でYes)、オフセット情報符号化部154は、画素分類方法を示すインデックス番号を2として符号化する(S1546)。
画素分類方法がエッジオフセットEO(1)でない場合(S1545でNo)、オフセット情報符号化部154は、画素分類方法がエッジオフセットEO(2)であるか否かを判定する(S1547)。画素分類方法がエッジオフセットEO(2)である場合(S1547でYes)、オフセット情報符号化部154は、画素分類方法を示すインデックス番号を3として符号化する(S1548)。
画素分類方法がエッジオフセットEO(2)でない場合(S1547でNo)、オフセット情報符号化部154は、画素分類方法がエッジオフセットEO(3)であるか否かを判定する(S1549)。画素分類方法がエッジオフセットEO(3)である場合(S1549でYes)、オフセット情報符号化部154は、画素分類方法を示すインデックス番号を4として符号化する(S1550)。
画素分類方法がエッジオフセットEO(3)でない場合(S1549でNo)、オフセット情報符号化部154は、画素分類方法を示すインデックス番号を5として符号化する(S1551)。
図20は、オフセット情報復号部252がオフセット情報のうち画素分類方法を示すインデックス番号を復号する動作、および、オフセット処理部253がオフセット処理を行う動作を示すフローチャートである。
まず、オフセット処理部253は、オフセット情報復号部252が復号したインデックス番号が0であるか否かを判定する(S2521)。インデックス番号が0である場合(S2521でYes)、オフセット処理部253はオフセット処理を行わない(S2522)。
インデックス番号が0でない場合(S2521でNo)、オフセット処理部253は、オフセット情報復号部252が復号したインデックス番号が1であるか否かを判定する(S2523)。インデックス番号が1である場合(S2523でYes)、オフセット処理部253は、エッジオフセットEO(0)を行う(S2524)。
インデックス番号が1でない場合(S2523でNo)、オフセット処理部253は、オフセット情報復号部252が復号したインデックス番号が2であるか否かを判定する(S2525)。インデックス番号が2である場合(S2525でYes)、オフセット処理部253は、エッジオフセットEO(1)を行う(S2526)。
インデックス番号が2でない場合(S2525でNo)、オフセット処理部253は、オフセット情報復号部252が復号したインデックス番号が3であるか否かを判定する(S2527)。インデックス番号が3である場合(S2527でYes)、オフセット処理部253は、エッジオフセットEO(2)を行う(S2528)。
インデックス番号が3でない場合(S2527でNo)、オフセット処理部253は、オフセット情報復号部252が復号したインデックス番号が4であるか否かを判定する(S2529)。インデックス番号が4である場合(S2529でYes)、オフセット処理部253は、エッジオフセットEO(3)を行う(S2530)。
インデックス番号が4でない場合(S2529でNo)、オフセット処理部253は、バンドオフセットBO(0)を行う(S2531)。
以上により、画像符号化装置100および画像復号装置200は、再構成済みの画像信号に、原信号と再構成済みの画像信号との差を補うためのオフセット値を加算する。これにより、原信号に近い再構成信号を生成することが可能となる。
(実施の形態2)
実施の形態1では、オフセット情報を複数の領域で共用することが可能である。しかし、低処理遅延あるいは低メモリ量を考慮すると、共用対象領域は近傍の領域に限定される。例えば、共用対象領域を左と上に隣接する領域のみに限定すれば、処理遅延は低減する。また、共用対象領域を左に隣接する領域のみに限定すれば、処理済みの領域のオフセット情報を格納するためのメモリ量が抑制される。
一方、共用対象領域の限定によって、大きな領域でオフセット情報を共用することが困難になる。そのため、オフセット情報そのものの符号化の頻度が上昇し、ビット量が増加する。ここで、図16Cあるいは図17Cに示すようにバンドオフセットではパラメータとしてバンドオフセット符号化開始カテゴリsao_band_positionが符号化される。そのため、エッジオフセットよりもビット量が大きい。したがって、ビット量の増加の観点からはエッジオフセットを使用する方が有利である。
そこで、本実施の形態に係る画像符号化装置は、エッジオフセットに対するバンドオフセットの不利を改善するため、バンドオフセットの使用時に要するビット量を削減する。なお、バンドオフセット符号化開始カテゴリsao_band_positionは、オフセット値の適用範囲を示す情報の例である。
以下、本実施の形態に係る画像符号化装置、および、画像符号化装置に対応する画像復号装置について説明する。
図21は、本実施の形態に係る画像符号化装置のループフィルタリング部の構成を示すブロック図である。本実施の形態に係る画像符号化装置のその他の構成は、図1に示された画像符号化装置100の構成と同様である。図22は、本実施の形態に係る画像復号装置のループフィルタリング部の構成を示すブロック図である。本実施の形態に係る画像復号装置のその他の構成は、図2に示された画像復号装置200の構成と同様である。
図23は、図21に示されたループフィルタリング部300(画像符号化装置のループフィルタリング部)の動作を示すフローチャートである。図24は、図22に示されたループフィルタリング部400(画像復号装置のループフィルタリング部)の動作を示すフローチャートである。
まず、図21に示されたループフィルタリング部300(画像符号化装置のループフィルタリング部)の構成および動作を説明する。ループフィルタリング部300は、信号取得部301、オフセット情報算出部302、オフセット処理部303、信号出力部304、オフセット情報符号化部305および制御部306を備える。実施の形態1との重複部分の説明を省略し、相違点について、すなわち、図21の制御部306、図21のオフセット情報符号化部305、および、図23のステップS304について説明する。
制御部306は、画素分類方法がバンドオフセットである場合、バンドオフセットのオフセット情報のビット量が小さくなるようにオフセット情報符号化部305を制御する。
オフセット情報符号化部305は、画素分類方法がバンドオフセットであることを示すインデックス番号の数値が小さくなるように符号化を行う。
図23のステップS304において、オフセット情報符号化部305は、画素分類方法にインデックス番号を割り当てて、オフセット情報を符号化する。この時、オフセット情報符号化部305は、バンドオフセットBO(0)を示すインデックス番号が4つのエッジオフセットEO(0)、EO(1)、EO(2)およびEO(3)よりも小さくなるように、インデックス番号を割り当てる。そして、オフセット情報符号化部305は、符号化されたオフセット情報を符号化ストリームへ挿入する。
次に、図22に示されたループフィルタリング部400(画像復号装置のループフィルタリング部)の構成および動作を説明する。ループフィルタリング部400は、信号取得部401、オフセット情報復号部402、オフセット処理部403、信号出力部404および制御部405を備える。実施の形態1との重複部分の説明を省略し、相違点について、すなわち、図22の制御部405、図22のオフセット情報復号部402、および、図24のステップS402について説明する。
制御部405は、画素分類方法がバンドオフセットである場合、小さいビット量でバンドオフセットのオフセット情報が復号されるようにオフセット情報復号部402を制御する。
オフセット情報復号部402は、数値の小さいインデックス番号を画素分類方法がバンドオフセットであることを示すインデックス番号として復号する。
図24のステップS402において、オフセット情報復号部402は、画素分類方法にインデックス番号を割り当てて、オフセット情報を復号する。この時、オフセット情報復号部402は、バンドオフセットBO(0)を示すインデックス番号が4つのエッジオフセットEO(0)、EO(1)、EO(2)およびEO(3)よりも小さくなるように、インデックス番号を割り当てる。
ここで、オフセット情報符号化部305およびオフセット情報復号部402におけるオフセット情報の符号化および復号について、さらに詳しく説明する。オフセット処理における画素分類方法には、実施の形態1と同様に、エッジオフセットEO(0)、EO(1)、EO(2)およびEO(3)、および、バンドオフセットBO(0)が採用される。この場合、画素分類方法を示すインデックス番号に対応する最小ビット量と最大ビット量との差は、オフセット処理をしない場合のインデックス番号0を除いて、3ビットである。
実施の形態1では、図14のように、バンドオフセットに最大ビット量が割り当てられている。バンドオフセットのカテゴリ数が32である場合、sao_band_positionを含めて最大で8ビットおよび最小で5ビットの差が、バンドオフセットとエッジオフセットとの間で発生する。
このため、本実施の形態では、図25のようにバンドオフセットを示すインデックス番号に対して、エッジオフセットよりも小さなビットが割り当てられる。これにより、バンドオフセットとエッジオフセットとのビット量の差は最大で4ビットおよび最小で2ビットとなり、エッジオフセットに対するバンドオフセットの不利は改善される。
なお、図26のように、オフセット処理ON/OFFフラグ(オフセット処理フラグ)は、sao_on_flagとして、画素分類方法を示すインデックス番号sao_type_idxから独立していてもよい。
図26では、バンドオフセットをインデックス番号の0番に割り当てている。そして、小さな値は小さなビット長になり、大きな値は大きなビット長になるように、インデックス番号が2値化され、最大ビット長は4ビットに指定されている。しかし、割り当て方法は、これに限定されない。例えば、最大ビット長が指定されずに全てのインデックス番号で最後尾が0になるようにビットが割り当てられてもよい。以降、図26のビット割り当てを前提に説明する。
オフセット情報をAPSに挿入する例を図27Aおよび図27Bに示す。画素分類方法を示すインデックスから独立したオフセット処理ON/OFFフラグsao_on_flagが、図27Aのsao_unit_vlc内に新たに設けられている。また、図27Bのsao_offset_vlc内のsao_type_idxにおいて、バンドオフセットへ最小のビットが割り当てられる。
図27Cは、APS内のオフセット情報のコンテキストの一例を示す図である。図27Dは、APS内のオフセット情報の符号化の一例を示すフローチャートである。図27Eは、APS内のオフセット情報の復号の一例を示すフローチャートである。
また、オフセット情報をスライスデータに挿入する例を図28Aおよび図28Bに示す。図28Aのsao_unit_cabac内にオフセット処理ON/OFFフラグsao_on_flagが新たに設けられている。また、図28Bのsao_offset_cabac内のsao_type_idxにおいて、バンドオフセットへ最小のビットが割り当てられる。
図28Cは、スライスデータ内のオフセット情報のコンテキストの一例を示す模式図である。図28Dは、スライスデータ内のオフセット情報の符号化の一例を示すフローチャートである。図28Eは、スライスデータ内のオフセット情報の復号の一例を示すフローチャートである。
図29は、オフセット情報符号化部305がオフセット情報のうち画素分類方法を示すインデックス番号を符号化する動作を示すフローチャートである。
まず、オフセット情報符号化部305は、オフセット処理を行ったか否かを判定する(S3051)。オフセット情報算出部302は、分割パターン、画素分類方法、カテゴリインデックス番号およびオフセット値などのオフセット情報を算出する。オフセット情報算出部302は、符号化劣化の補正量に対して、オフセット情報に要するビット量が大きくなった場合、オフセット処理を行わないと判定する。この場合、オフセット処理部303は、オフセット処理を行わない。
ここでは、オフセット情報符号化部305は、オフセット情報算出部302またはオフセット処理部303から、オフセット処理を行ったか否かに関する情報を取得する。オフセット処理が行われなかった場合(S3051でNo)、オフセット情報符号化部305は、オフセット処理ON/OFFフラグを0として符号化する(S3052)。
オフセット処理が行われた場合(S3051でYes)、オフセット情報符号化部305は、オフセット処理ON/OFFフラグを1として符号化する(S3053)。そして、オフセット情報符号化部305は、画素分類方法がバンドオフセットBO(0)であるか否かを判定する(S3054)。
画素分類方法がバンドオフセットBO(0)である場合(S3054でYes)、オフセット情報符号化部305は、画素分類方法を示すインデックス番号を0として符号化する(S3055)。画素分類方法がバンドオフセットBO(0)でない場合(S3054でNo)、オフセット情報符号化部305は、画素分類方法がエッジオフセットEO(0)であるか否かを判定する(S3056)。
画素分類方法がエッジオフセットEO(0)である場合(S3056でYes)、オフセット情報符号化部305は、画素分類方法を示すインデックス番号を1として符号化する(S3057)。画素分類方法がエッジオフセットEO(0)でない場合(S3056でNo)、オフセット情報符号化部305は、画素分類方法がエッジオフセットEO(1)であるか否かを判定する(S3058)。
画素分類方法がエッジオフセットEO(1)である場合(S3058でYes)、オフセット情報符号化部305は、画素分類方法を示すインデックス番号を2として符号化する(S3059)。画素分類方法がエッジオフセットEO(1)でない場合(S3058でNo)、オフセット情報符号化部305は、画素分類方法がエッジオフセットEO(2)であるか否かを判定する(S3060)。
画素分類方法がエッジオフセットEO(2)である場合(S3060でYes)、オフセット情報符号化部305は、画素分類方法を示すインデックス番号を3として符号化する(S3061)。画素分類方法がエッジオフセットEO(2)でない場合(S3060でNo)、オフセット情報符号化部305は、画素分類方法を示すインデックス番号を4として符号化する(S3062)。
図30は、オフセット情報復号部402がオフセット情報のうち画素分類方法を示すインデックス番号を復号する動作、および、オフセット処理部403がオフセット処理を行う動作を示すフローチャートである。
まず、オフセット処理部403は、オフセット情報復号部402が復号したオフセット処理ON/OFFフラグが0であるか否かを判定する(S4021)。オフセット処理ON/OFFフラグが0である場合(S4021でYes)、オフセット処理部403はオフセット処理を行わない(S4022)。
オフセット処理ON/OFFフラグが0でない場合(S4021でNo)、オフセット情報復号部402は、インデックス番号を復号する(S4023)。そして、オフセット処理部403は、オフセット情報復号部402が復号したインデックス番号が0であるか否かを判定する(S4024)。
インデックス番号が0である場合(S4024でYes)、オフセット処理部403は、バンドオフセットBO(0)を行う(S4025)。インデックス番号が0でない場合(S4024でNo)、オフセット処理部403は、オフセット情報復号部402が復号したインデックス番号が1であるか否かを判定する(S4026)。
インデックス番号が1である場合(S4026でYes)、オフセット処理部403は、エッジオフセットEO(0)を行う(S4027)。インデックス番号が1でない場合(S4026でNo)、オフセット処理部403は、オフセット情報復号部402が復号したインデックス番号が2であるか否かを判定する(S4028)。
インデックス番号が2である場合(S4028でYes)、オフセット処理部403は、エッジオフセットEO(1)を行う(S4029)。インデックス番号が2でない場合(S4028でNo)、オフセット処理部403は、オフセット情報復号部402が復号したインデックス番号が3であるか否かを判定する(S4030)。
インデックス番号が3である場合(S4030でYes)、オフセット処理部403は、エッジオフセットEO(2)を行う(S4031)。インデックス番号が3でない場合(S4030でNo)、オフセット処理部403は、エッジオフセットEO(3)を行う(S4032)。
以上により、画像符号化装置および画像復号装置は、バンドオフセットとエッジオフセットのオフセット情報の符号化に要するビット量の差分を小さくする。これにより、画像符号化装置および画像復号装置は、処理対象領域毎に適切なオフセット処理を行うことができる。したがって、符号化効率および主観画質が向上する。
なお、画像符号化装置および画像復号装置は、輝度信号に対してオフセット処理を行う場合、エッジオフセットのインデックス番号に小さなビット量を割り当ててもよい。そして、画像符号化装置および画像復号装置は、色差信号に対してオフセット処理を行う場合、バンドオフセットのインデックス番号に小さなビット量を割り当ててもよい。これにより、処理される信号の特徴に適した画素分類方法が使用されやすくなる。したがって、符号化効率および主観画質がさらに向上する。
また、画像符号化装置および画像復号装置は、周波数変換係数を参照し、低周波成分の小さい処理対象領域では、エッジオフセットのインデックス番号に小さなビット量を割り当ててもよい。そして、画像符号化装置および画像復号装置は、低周波成分の大きな処理対象領域では、バンドオフセットのインデックス番号に小さなビット量を割り当ててもよい。これにより、処理される信号の特徴に適した画素分類方法が使用されやすくなる。したがって、符号化効率および主観画質がさらに向上する。
また、上記低周波成分の多寡の判定には、閾値が用いられてもよいし、この閾値が符号化されてもよい。
ここで、オフセット情報符号化部305およびオフセット情報復号部402において、オフセット情報の符号化および復号を行う方法として算術符号化について説明する。算術符号化では、画像符号化装置は、まず、符号化対象信号を多値信号から2値信号(bin、0または1の信号)に変換(2値化)し、2値信号を算術符号化して符号列を生成する。算術符号化には、適応的なシンボル発生確率を用いて算術符号化するコンテキスト算術符号化(コンテキスト適応算術符号化)がある。
コンテキスト算術符号化において、画像符号化装置は、符号化対象の信号毎にコンテキストを選択し、コンテキストに対応してシンボル発生確率を特定する。より具体的には、コンテキスト算術符号化において、画像符号化装置は、最初にコンテキストをロードし、そのコンテキストに対するシンボル発生確率に基づいて対象信号の算術符号化を行う。そして、画像符号化装置は、符号化した対象信号の値に応じてコンテキストに対応するシンボル発生確率を更新する。
輝度信号、色差信号Cbおよび色差信号Crにおいて、オフセット処理ON/OFFフラグsao_on_flagの符号化には、共通のコンテキストが使用されてもよいし、図27Cまたは図28Cのようにそれぞれの信号でコンテキストが切り替えられてもよい。
図28Dは、オフセット情報符号化部305が、オフセット処理ON/OFFフラグsao_on_flagを符号化しスライスデータに挿入する場合に3つのコンテキストを使用する例を示すフローチャートである。
まず、オフセット情報符号化部305は、処理対象信号が輝度信号であるか否かを判定する(S3041)。オフセット情報符号化部305は、輝度信号の判定に、図28Aに示されるcIdxを用いる。ここでは、cIdx=0の場合、処理対象信号は輝度信号である。
処理対象信号が輝度信号である場合(S3041でYes)、オフセット情報符号化部305は、コンテキスト1を選択し、ロードする(S3042)。処理対象信号が輝度信号でない場合(S3041でNo)、オフセット情報符号化部305は、処理対象信号が色差信号Cbであるか否かを判定する(S3043)。オフセット情報符号化部305は、色差信号Cbの判定に、輝度信号の判定(S3041)と同様、cIdxを用いる。ここでは、cIdx=1の場合、処理対象信号は色差信号Cbである。
処理対象信号が色差信号Cbである場合(S3043でYes)、オフセット情報符号化部305は、コンテキスト2を選択し、ロードする(S3044)。処理対象信号が色差信号Cbでない場合(S3043でNo)、オフセット情報符号化部305は、コンテキスト3を選択し、ロードする(S3045)。
そして、オフセット情報符号化部305は、選択されロードされたコンテキストを用いて、オフセット処理ON/OFFフラグsao_on_flagを符号化する(S3046)。
なお、図27Dのフローチャートは、オフセット処理ON/OFFフラグsao_on_flagが符号化され、APSに挿入される場合の例を示しているが、上記の図28Dと同じであるため、説明を省略する。
図28Eは、オフセット情報復号部402が、スライスデータに挿入されたオフセット処理ON/OFFフラグsao_on_flagを復号する場合に3つのコンテキストを使用する例を示すフローチャートである。
まず、オフセット情報復号部402は、処理対象信号が輝度信号であるか否かを判定する(S4021)。オフセット情報復号部402は、輝度信号の判定に、図28Aに示されるcIdxを用いる。ここでは、cIdx=0の場合、処理対象信号は輝度信号である。
処理対象信号が輝度信号である場合(S4021でYes)、オフセット情報復号部402は、コンテキスト1を選択し、ロードする(S4022)。処理対象信号が輝度信号でない場合(S4021でNo)、オフセット情報復号部402は、処理対象信号が色差信号Cbであるか否かを判定する(S4023)。オフセット情報復号部402は、色差信号Cbの判定に、輝度信号の判定(S4021)と同様、cIdxを用いる。ここでは、cIdx=1の場合、処理対象信号は色差信号Cbである。
処理対象信号が色差信号Cbである場合(S4023でYes)、オフセット情報復号部402は、コンテキスト2を選択し、ロードする(S4024)。処理対象信号が色差信号Cbでない場合(S4023でNo)、オフセット情報復号部402は、コンテキスト3を選択し、ロードする(S4025)。
そして、オフセット情報復号部402は、選択されロードされたコンテキストを用いて、オフセット処理ON/OFFフラグsao_on_flagを復号する(S4026)。
なお、図27Eのフローチャートは、APSに挿入されたオフセット処理ON/OFFフラグsao_on_flagが復号される場合の例を示しているが、上記の図28Eと同じであるため、説明を省略する。
以上により、画像符号化装置および画像復号装置は、輝度信号、色差信号Cbおよび色差信号Crでそれぞれ異なるコンテキストを使用することによって、各信号の特徴に応じてシンボル発生確率を割り当てることができる。そのため、画像符号化装置および画像復号装置は、オフセット処理ON/OFFフラグsao_on_flagの符号量を抑制することができる。
なお、画像符号化装置および画像復号装置は、色差信号CbおよびCrのみコンテキストを共用することで、符号化および復号に用いられるコンテキストの数を2つ(輝度信号および色差信号)にしてもよい。
(実施の形態3)
実施の形態1に係る画像符号化装置および画像復号装置は、原信号と再構成信号との差分値から算出されたオフセット値を再構成信号に加算することにより、原信号に対する再構成信号の歪みを軽減することができる。さらに、画像符号化装置および画像復号装置は、オフセット情報を複数の処理対象領域で共用することにより、符号化ストリームにおけるオフセット情報のビット量の増加を抑制する。
また、実施の形態2では、画像符号化装置は、処理対象領域毎にオフセット処理を行うか否かを示す情報をオフセット処理ON/OFFフラグsao_on_flagとして画素分類方法sao_type_idxから独立してオフセット情報の先頭で符号化する。そして、画像符号化装置は、オフセット処理を行わない場合、左あるいは上の領域からオフセット情報をコピーするか否かを示すsao_merge_left_flagあるいはsao_merge_up_flagの符号化を行わない。
これにより、ビット量を抑制することが可能である。本実施の形態に係る画像符号化装置は、さらに、各オフセット情報に対する算術符号化の統一化あるいは簡略化を行うことにより、スループットを改善できる。
算術符号化には、実施の形態2で説明したコンテキスト算術符号化の他にバイパス算術符号化がある。コンテキスト算術符号化は、適応的なシンボル発生確率を使用する。一方、バイパス算術符号化は、シンボル発生確率を50%として算術符号化を行う。これにより、画像符号化装置は、バイパス算術符号化において、コンテキストのロードおよび更新を行わなくてもよいため、処理の高速化が可能となる。
本実施の形態に係るオフセット情報符号化部およびオフセット情報復号部の動作は、実施の形態1に係るオフセット情報符号化部154およびオフセット情報復号部252の動作と異なる。また、本実施の形態に係るオフセット情報符号化部およびオフセット情報復号部の動作は、実施の形態2に係るオフセット情報符号化部305およびオフセット情報復号部402の動作とも異なる。以降、この差異について説明する。
本実施の形態に係る画像符号化装置においてオフセット情報の符号化を行うオフセット情報符号化部507の構成を図31に示す。オフセット情報符号化部507は、算術符号化制御部5071、コンテキスト算術符号化部5072およびバイパス算術符号化部5073を含む。
算術符号化制御部5071は、オフセット情報に応じて、コンテキスト算術符号化およびバイパス算術符号化のどちらを使用するかを切り替える。なお、算術符号化制御部5071は、図1に示された画像符号化装置100の制御部110に含まれてもよい。コンテキスト算術符号化部5072は、オフセット情報に応じて、コンテキストをロードし、符号化を行う。バイパス算術符号化部5073は、シンボル発生確率に50%を用いて、符号化を行う。
本実施の形態に係る画像復号装置においてオフセット情報の復号を行うオフセット情報復号部606の構成を図32に示す。オフセット情報復号部606は、算術復号制御部6061、コンテキスト算術復号部6062およびバイパス算術復号部6063を含む。
算術復号制御部6061は、オフセット情報に応じて、コンテキスト算術復号(コンテキスト適応算術復号)およびバイパス算術復号のどちらを使用するかを切り替える。なお、算術復号制御部6061は、図2に示された画像復号装置200の制御部210に含まれてもよい。コンテキスト算術復号部6062は、オフセット情報に応じて、コンテキストをロードし、復号を行う。バイパス算術復号部6063は、シンボル発生確率に50%を用いて、復号を行う。
図33は、本実施の形態の第1例に係るオフセット情報へのコンテキスト(コンテキストインデックス)の割り当てを示し、また、オフセット情報の各シンタックス要素に使用される算術符号化の種別を示す。
オフセット情報の符号化および復号についてのシンタックスは、図17A、図17Bおよび図17Cに示された実施の形態1のシンタックスと同じである。
ここで、画素分類方法sao_type_idxの最初の1ビット目は、図14に示したように、オフセット処理を行うか否かのON/OFFの役割を果たしている。この1ビット目は、他のオフセット情報に比べてシンボル発生確率の偏りが大きい。そのため、画素分類方法sao_type_idxの1ビット目のみコンテキスト算術符号化が使用され、画素分類方法sao_type_idxの2ビット目以降を含む他のオフセット情報にはバイパス算術符号化が使用される。
図34は、オフセット情報符号化部507が図33に示された算術符号化の組合せに基づいてオフセット情報を符号化する例を示すフローチャートである。
まず、オフセット情報符号化部507で処理が開始される時点で、算術符号化制御部5071は、符号化方法としてバイパス算術符号化を設定する(S5070)。
次に、算術符号化制御部5071は、処理対象領域がスライスまたはタイルの左端であるか否かを判定する(S5071)。オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみである。そのため、左側オフセット情報コピーフラグsao_merge_left_flagの符号化前に、上記の判定が行われる。
処理対象領域が左端でない場合(S5071でNo)、バイパス算術符号化部5073は、左側オフセット情報コピーフラグsao_merge_left_flagを符号化する(S5072)。
左端の場合(S5071でYes)、または、sao_merge_left_flagの符号化(S5072)の後、算術符号化制御部5071は、sao_merge_left_flagが0であるか否かを判定する(S5073)。ここで、sao_merge_left_flagが0であることは、左の領域からオフセット情報をコピーしないことを示し、1であることは、左の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_left_flagの符号化(S5072)が行われない場合、sao_merge_left_flagの値が存在しない。この場合、sao_merge_left_flagの値は0として処理される。また、オフセット情報符号化部507は、処理を開始する時点で、sao_merge_left_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_left_flagが0である場合(S5073でYes)、算術符号化制御部5071は、処理対象領域がスライスまたはタイルの上端であるか否かを判定する(S5074)。左端の判定(S5071)と同様に、オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみであるため、上側オフセット情報コピーフラグsao_merge_up_flagの符号化前に、上記の判定が行われる。
処理対象領域が上端でない場合(S5074でNo)、バイパス算術符号化部5073は、上側オフセット情報コピーフラグsao_merge_up_flagを符号化する(S5075)。
上端の場合(S5074でYes)、または、sao_merge_up_flagの符号化(S5075)の後、算術符号化制御部5071は、sao_merge_up_flagが0であるか否かを判定する(S5076)。ここで、sao_merge_up_flagが0であることは、上の領域からオフセット情報をコピーしないことを示し、1であることは、上の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_up_flagの符号化(S5075)が行われない場合、sao_merge_up_flagの値が存在しない。この場合、sao_merge_up_flagの値は0として処理される。また、オフセット情報符号化部507は、処理を開始する時点で、sao_merge_up_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_up_flagが0である場合(S5076でYes)、算術符号化制御部5071は、符号化方法をコンテキスト算術符号化に切り替える(S5077)。
次に、コンテキスト算術符号化部5072は、画素分類方法sao_type_idxのbinIdx0用のコンテキストをロードする。そして、コンテキスト算術符号化部5072は、画素分類方法sao_type_idxのbinIdx0を符号化する(S5078)。
次に、算術符号化制御部5071は、sao_type_idxのbinIdx0が1であるか否かを判定する(S5079)。ここで、binIdx0が0であることは、処理対象領域のオフセット処理を行わないことを示し、1であることは、オフセット処理を行うことを示す。
binIdx0が1である場合(S5079でYes)、算術符号化制御部5071は、符号化方法をバイパス算術符号化に切り替える(S5080)。
そして、バイパス算術符号化部5073は、binIdx0を除く残りの画素分類方法sao_type_idx、および、オフセット絶対値sao_offsetを符号化する(S5081)。ここで、本実施の形態において、複数のオフセット絶対値sao_offsetの個数は、いずれの画素分類方法でも同じ4である。しかし、バイパス算術符号化部5073は、画素分類方法毎に異なる個数のオフセット絶対値を符号化してもよい。
次に、算術符号化制御部5071は、画素分類方法がバンドオフセットであるか否かを判定する(S5082)。ここで、算術符号化制御部5071は、判定に、画素分類方法sao_type_idxを使用する。
この例では、sao_type_idxの値として、バンドオフセットに5が割り当てられている。そのため、算術符号化制御部5071は、sao_type_idxが5である場合、画素分類方法がバンドオフセットであると判定し、sao_type_idxが5でない場合、画素分類方法がバンドオフセットでないと判定する。
画素分類方法がバンドオフセットである場合(S5082でYes)、バイパス算術符号化部5073は、オフセット値±符号sao_offset_sign、および、バンドオフセット符号化開始カテゴリsao_band_positionを符号化する(S5083)。
なお、本実施の形態では、バンドオフセットの場合のみ、バイパス算術符号化部5073は、オフセット値±符号sao_offset_signを符号化する。しかし、エッジオフセットの場合にも、バイパス算術符号化部5073は、オフセット値±符号sao_offset_signを符号化してよい。この場合、オフセット値±符号sao_offset_signは、ステップS5081で符号化される。
また、この場合、ステップS5081において、オフセット絶対値sao_offsetとオフセット値±符号sao_offset_signとが、統合され、オフセット値として符号化されてもよい。
図35は、オフセット情報復号部606が図33に示された算術復号の組合せに基づいてオフセット情報を復号する例を示すフローチャートである。
まず、オフセット情報復号部606で処理が開始される時点で、算術復号制御部6061は、復号方法としてバイパス算術復号を設定する(S6060)。
次に、算術復号制御部6061は、処理対象領域がスライスまたはタイルの左端であるか否かを判定する(S6061)。オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみである。そのため、左側オフセット情報コピーフラグsao_merge_left_flagの復号前に、上記の判定が行われる。
処理対象領域が左端でない場合(S6061でNo)、バイパス算術復号部6063は、左側オフセット情報コピーフラグsao_merge_left_flagを復号する(S6062)。
左端の場合(S6061でYes)、または、sao_merge_left_flagの復号(S6062)の後、算術復号制御部6061は、sao_merge_left_flagが0であるか否かを判定する(S6063)。ここで、sao_merge_left_flagが0であることは、左の領域からオフセット情報をコピーしないことを示し、1であることは、左の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_left_flagの復号(S6062)が行われない場合、sao_merge_left_flagの値が存在しない。この場合、sao_merge_left_flagの値は0として処理される。また、オフセット情報復号部606は、処理を開始する時点で、sao_merge_left_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_left_flagが0である場合(S6063でYes)、算術復号制御部6061は、処理対象領域がスライスまたはタイルの上端であるか否かを判定する(S6064)。左端の判定(S6061)と同様に、オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみであるため、上側オフセット情報コピーフラグsao_merge_up_flagの復号前に、上記の判定が行われる。
処理対象領域が上端でない場合(S6064でNo)、バイパス算術復号部6063は、上側オフセット情報コピーフラグsao_merge_up_flagを復号する(S6065)。
上端の場合(S6064でYes)、または、sao_merge_up_flagの復号(S6065)の後、算術復号制御部6061は、sao_merge_up_flagが0であるか否かを判定する(S6066)。ここで、sao_merge_up_flagが0であることは、上の領域からオフセット情報をコピーしないことを示し、1であることは、上の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_up_flagの復号(S6065)が行われない場合、sao_merge_up_flagの値が存在しない。この場合、sao_merge_up_flagの値は0として処理される。また、オフセット情報復号部606は、処理を開始する時点で、sao_merge_up_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_up_flagが0である場合(S6066でYes)、算術復号制御部6061は、復号方法をコンテキスト算術復号に切り替える(S6067)。
次に、コンテキスト算術復号部6062は、画素分類方法sao_type_idxのbinIdx0用のコンテキストをロードする。そして、コンテキスト算術復号部6062は、画素分類方法sao_type_idxのbinIdx0を復号する(S6068)。
次に、算術復号制御部6061は、sao_type_idxのbinIdx0が1であるか否かを判定する(S6069)。ここで、binIdx0が0であることは、処理対象領域のオフセット処理を行わないことを示し、1であることは、オフセット処理を行うことを示す。
binIdx0が1である場合(S6069でYes)、算術復号制御部6061は、復号方法をバイパス算術復号に切り替える(S6070)。
そして、バイパス算術復号部6063は、binIdx0を除く残りの画素分類方法sao_type_idx、および、オフセット絶対値sao_offsetを復号する(S6071)。ここで、本実施の形態において、複数のオフセット絶対値sao_offsetの個数は、いずれの画素分類方法でも同じ4である。しかし、バイパス算術復号部6063は、画素分類方法毎に異なる個数のオフセット絶対値を復号してもよい。
次に、算術復号制御部6061は、画素分類方法がバンドオフセットであるか否かを判定する(S6072)。ここで、算術復号制御部6061は、判定に、画素分類方法sao_type_idxを使用する。
この例では、sao_type_idxの値として、バンドオフセットに5が割り当てられている。そのため、算術復号制御部6061は、sao_type_idxが5である場合、画素分類方法がバンドオフセットであると判定し、sao_type_idxが5でない場合、画素分類方法がバンドオフセットでないと判定する。
画素分類方法がバンドオフセットである場合(S6072でYes)、バイパス算術復号部6063は、オフセット値±符号sao_offset_sign、および、バンドオフセット符号化開始カテゴリsao_band_positionを復号する(S6073)。
なお、本実施の形態では、バンドオフセットの場合のみ、バイパス算術復号部6063は、オフセット値±符号sao_offset_signを復号する。しかし、エッジオフセットの場合にも、バイパス算術復号部6063は、オフセット値±符号sao_offset_signを復号してよい。この場合、オフセット値±符号sao_offset_signは、ステップS6071で復号される。
また、この場合、ステップS6071において、オフセット絶対値sao_offsetとオフセット値±符号sao_offset_signとが、統合され、オフセット値として復号されてもよい。
以上のように、画素分類方法sao_type_idxのbinIdx0を除く全てのオフセット情報の符号化および復号にバイパス算術符号化およびバイパス算術復号が使用される。これにより、画像符号化装置および画像復号装置は、コンテキストのロードおよび更新を随所に行わなくてもよい。したがって、スループットが改善される。
図36Aは、本実施の形態の第2例に係るオフセット情報へのコンテキスト(コンテキストインデックス)の割り当てを示し、また、オフセット情報の各シンタックス要素に使用される算術符号化の種別を示す。
この例では、画素分類方法sao_type_idxの1ビット目が、オフセット処理ON/OFFフラグsao_on_flagとして、画素分類方法sao_type_idxから独立して、オフセット情報の先頭で符号化(復号)される。オフセット情報の符号化および復号についてのシンタックスは、図28Aおよび図28Bに示された実施の形態2のシンタックスと同じである。
ここで、オフセット処理ON/OFFフラグsao_on_flagは、他のオフセット情報に比べてシンボル発生確率の偏りが大きい。そのため、オフセット処理ON/OFFフラグsao_on_flagのみに対して、コンテキスト算術符号化が使用される。そして、オフセット処理ON/OFFフラグsao_on_flagの次に符号化(復号)される左側オフセット情報コピーフラグsao_merge_left_flag、および、その後のオフセット情報に対して、バイパス算術符号化が使用される。
左側オフセット情報コピーフラグsao_merge_left_flag以降の全てのオフセット情報に対して、バイパス算術符号化が使用されることにより、さらにスループットが改善される。
ここでは、オフセット処理ON/OFFフラグsao_on_flagおよび画素分類方法sao_type_idxへのビット割り当ては、図26に示された実施の形態2と同じである。しかし、ビット割り当て方法は、これに限らない。画素分類方法sao_type_idxへのビットの割り当てに関して、図36Bに示すように、エッジオフセット(0)に最小のビット量が割り当てられ、バンドオフセットに最大のビット量が割り当てられてもよい。
図28Bの例では、if文による条件分岐数を抑制するために、オフセット値±符号sao_offset_signおよびバンドオフセット符号化開始カテゴリsao_band_positionが連続して符号化(復号)される。しかし、符号化(復号)の順序は、図28Bの例に限定されない。
図36Cは、図36Aの例に係る画像符号化装置および画像復号装置の客観性能を示す表である。図36Cは、非特許文献2の指標に基づいて、客観性能の劣化が少ないことを示している。図36Aの例に対応する客観性能については後述する。
図37は、オフセット情報符号化部507が図36Aに示された算術符号化の組合せに基づいてオフセット情報を符号化する例を示すフローチャートである。
まず、オフセット情報符号化部507で処理が開始される時点で、算術符号化制御部5071は、符号化方法としてコンテキスト算術符号化を設定する(S5170)。
次に、コンテキスト算術符号化部5072は、オフセット処理ON/OFFフラグsao_on_flag用のコンテキストをロードし、そのコンテキストを用いて、オフセット処理ON/OFFフラグsao_on_flagを符号化する(S5171)。
次に、算術符号化制御部5071は、オフセット処理ON/OFFフラグsao_on_flagが1であるか否かを判定する(S5172)。ここで、sao_on_flagが0であることは、処理対象領域のオフセット処理を行わないことを示し、1であることは、処理対象領域のオフセット処理を行うことを示す。
オフセット処理ON/OFFフラグsao_on_flagが1である場合(S5172でYes)、算術符号化制御部5071は、符号化方法をバイパス算術符号化に切り替える(S5173)。これにより、以降の符号化ステップは全てバイパス算術符号化を使用して行われる。
次に、算術符号化制御部5071は、処理対象領域がスライスまたはタイルの左端であるか否かを判定する(S5174)。オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみである。そのため、左側オフセット情報コピーフラグsao_merge_left_flagの符号化前に、上記の判定が行われる。
処理対象領域が左端でない場合(S5174でNo)、バイパス算術符号化部5073は、左側オフセット情報コピーフラグsao_merge_left_flagを符号化する(S5175)。
左端の場合(S5174でYes)、または、sao_merge_left_flagの符号化(S5175)の後、算術符号化制御部5071は、sao_merge_left_flagが0であるか否かを判定する(S5176)。ここで、sao_merge_left_flagが0であることは、左の領域からオフセット情報をコピーしないことを示し、1であることは、左の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_left_flagの符号化(S5175)が行われない場合、sao_merge_left_flagの値が存在しない。この場合、sao_merge_left_flagの値は0として処理される。また、オフセット情報符号化部507は、処理を開始する時点で、sao_merge_left_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_left_flagが0である場合(S5176でYes)、算術符号化制御部5071は、処理対象領域がスライスまたはタイルの上端であるか否かを判定する(S5177)。左端の判定(S5174)と同様に、オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみであるため、上側オフセット情報コピーフラグsao_merge_up_flagの符号化前に、上記の判定が行われる。
処理対象領域が上端でない場合(S5177でNo)、バイパス算術符号化部5073は、上側オフセット情報コピーフラグsao_merge_up_flagを符号化する(S5178)。
上端の場合(S5177でYes)、または、sao_merge_up_flagの符号化(S5178)の後、算術符号化制御部5071は、sao_merge_up_flagが0であるか否かを判定する(S5179)。ここで、sao_merge_up_flagが0であることは、上の領域からオフセット情報をコピーしないことを示し、1であることは、上の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_up_flagの符号化(S5178)が行われない場合、sao_merge_up_flagの値が存在しない。この場合、sao_merge_up_flagの値は0として処理される。また、オフセット情報符号化部507は、処理を開始する時点で、sao_merge_up_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_up_flagが0である場合(S5179でYes)、バイパス算術符号化部5073は、画素分類方法sao_type_idx、および、オフセット絶対値sao_offsetを符号化する(S5180)。ここで、本実施の形態において、複数のオフセット絶対値sao_offsetの個数は、いずれの画素分類方法でも同じ4である。しかし、バイパス算術符号化部5073は、画素分類方法毎に異なる個数のオフセット絶対値を符号化してもよい。
次に、算術符号化制御部5071は、画素分類方法がバンドオフセットであるか否かを判定する(S5181)。ここで、算術符号化制御部5071は、判定に、画素分類方法sao_type_idxを使用する。
この例では、sao_type_idxの値として、バンドオフセットに0が割り当てられている。そのため、算術符号化制御部5071は、sao_type_idxが0である場合、画素分類方法がバンドオフセットであると判定し、sao_type_idxが0でない場合、画素分類方法がバンドオフセットでないと判定する。
画素分類方法がバンドオフセットである場合(S5181でYes)、バイパス算術符号化部5073は、オフセット値±符号sao_offset_sign、および、バンドオフセット符号化開始カテゴリsao_band_positionを符号化する(S5182)。
なお、本実施の形態では、バンドオフセットの場合のみ、バイパス算術符号化部5073は、オフセット値±符号sao_offset_signを符号化する。しかし、エッジオフセットの場合にも、バイパス算術符号化部5073は、オフセット値±符号sao_offset_signを符号化してよい。この場合、オフセット値±符号sao_offset_signは、ステップS5180で符号化される。
また、この場合、ステップS5180において、オフセット絶対値sao_offsetとオフセット値±符号sao_offset_signとが、統合され、オフセット値として符号化されてもよい。
図38は、オフセット情報復号部606が図36Aに示された算術復号の組合せに基づいてオフセット情報を復号する例を示すフローチャートである。
まず、オフセット情報復号部606で処理が開始される時点で、算術復号制御部6061は、復号方法としてコンテキスト算術復号を設定する(S6160)。
次に、コンテキスト算術復号部6062は、オフセット処理ON/OFFフラグsao_on_flag用のコンテキストをロードし、そのコンテキストを用いて、オフセット処理ON/OFFフラグsao_on_flagを復号する(S6161)。
次に、算術復号制御部6061は、オフセット処理ON/OFFフラグsao_on_flagが1であるか否かを判定する(S6162)。ここで、sao_on_flagが0であることは、処理対象領域のオフセット処理を行わないことを示し、1であることは、処理対象領域のオフセット処理を行うことを示す。
オフセット処理ON/OFFフラグsao_on_flagが1である場合(S6162でYes)、算術復号制御部6061は、復号方法をバイパス算術復号に切り替える(S6163)。これにより、以降の復号ステップは全てバイパス算術復号を使用して行われる。
次に、算術復号制御部6061は、処理対象領域がスライスまたはタイルの左端であるか否かを判定する(S6164)。オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみである。そのため、左側オフセット情報コピーフラグsao_merge_left_flagの復号前に、上記の判定が行われる。
処理対象領域が左端でない場合(S6164でNo)、バイパス算術復号部6063は、左側オフセット情報コピーフラグsao_merge_left_flagを復号する(S6165)。
左端の場合(S6164でYes)、または、sao_merge_left_flagの復号(S6165)の後、算術復号制御部6061は、sao_merge_left_flagが0であるか否かを判定する(S6166)。ここで、sao_merge_left_flagが0であることは、左の領域からオフセット情報をコピーしないことを示し、1であることは、左の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_left_flagの復号(S6165)が行われない場合、sao_merge_left_flagの値が存在しない。この場合、sao_merge_left_flagの値は0として処理される。また、オフセット情報復号部606は、処理を開始する時点で、sao_merge_left_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_left_flagが0である場合(S6166でYes)、算術復号制御部6061は、処理対象領域がスライスまたはタイルの上端であるか否かを判定する(S6167)。左端の判定(S6164)と同様に、オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみであるため、上側オフセット情報コピーフラグsao_merge_up_flagの復号前に、上記の判定が行われる。
処理対象領域が上端でない場合(S6167でNo)、バイパス算術復号部6063は、上側オフセット情報コピーフラグsao_merge_up_flagを復号する(S6168)。
上端の場合(S6167でYes)、または、sao_merge_up_flagの復号(S6168)の後、算術復号制御部6061は、sao_merge_up_flagが0であるか否かを判定する(S6169)。ここで、sao_merge_up_flagが0であることは、上の領域からオフセット情報をコピーしないことを示し、1であることは、上の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_up_flagの復号(S6168)が行われない場合、sao_merge_up_flagの値が存在しない。この場合、sao_merge_up_flagの値は0として処理される。また、オフセット情報復号部606は、処理を開始する時点で、sao_merge_up_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_up_flagが0である場合(S6169でYes)、バイパス算術復号部6063は、画素分類方法sao_type_idx、および、オフセット絶対値sao_offsetを復号する(S6170)。ここで、本実施の形態において、複数のオフセット絶対値sao_offsetの個数は、いずれの画素分類方法でも同じ4である。しかし、バイパス算術復号部6063は、画素分類方法毎に異なる個数のオフセット絶対値を復号してもよい。
次に、算術復号制御部6061は、画素分類方法がバンドオフセットであるか否かを判定する(S6171)。ここで、算術復号制御部6061は、判定に、画素分類方法sao_type_idxを使用する。
この例では、sao_type_idxの値として、バンドオフセットに0が割り当てられている。そのため、算術復号制御部6061は、sao_type_idxが0である場合、画素分類方法がバンドオフセットであると判定し、sao_type_idxが0でない場合、画素分類方法がバンドオフセットでないと判定する。
画素分類方法がバンドオフセットである場合(S6171でYes)、バイパス算術復号部6063は、オフセット値±符号sao_offset_sign、および、バンドオフセット符号化開始カテゴリsao_band_positionを復号する(S6172)。
なお、本実施の形態では、バンドオフセットの場合のみ、バイパス算術復号部6063は、オフセット値±符号sao_offset_signを復号する。しかし、エッジオフセットの場合にも、バイパス算術復号部6063は、オフセット値±符号sao_offset_signを復号してよい。この場合、オフセット値±符号sao_offset_signは、ステップS6170で復号される。
また、この場合、ステップS6170において、オフセット絶対値sao_offsetとオフセット値±符号sao_offset_signとが、統合され、オフセット値として復号されてもよい。
以上のように、先頭のオフセット処理ON/OFFフラグsao_on_flagを除く全てのオフセット情報の符号化および復号にバイパス算術符号化およびバイパス算術復号が使用される。これにより、画像符号化装置および画像復号装置は、コンテキストのロードおよび更新を随所に行わなくてもよい。したがって、スループットが改善される。
図36Cは、HEVC規格で策定されているテスト条件(非特許文献2参照)に基づく結果を図36Aの例に係る客観性能として示す。
図36CのConfigurationは、符号化のパラメータ設定条件である。BD−rateは、再構成画像のPSNR(Peak Signal−to−Noise Ratio)および符号化ストリームの符号量から算出される客観指標である。負のBD−rateは客観性能の改善を示し、正のBD−rateは客観性能の劣化を示す。なお、図36CのBD−rateは、実施の形態1との比較に基づいて図36Aの例に係る客観性能の改善または劣化を示す。
図36Cの通り、BD−rateは、±0.1の範囲内に収まっている。これは、図36Aの例に係る客観性能が実施の形態1とほぼ同等であることを示す。すなわち、図36Aの例では、客観性能の劣化が少なく、スループットが改善されている。
図39Aは、本実施の形態の第3例に係るオフセット情報へのコンテキスト(コンテキストインデックス)の割り当てを示し、また、オフセット情報の各シンタックス要素に使用される算術符号化の種別を示す。
この例では、図36Aと比較して、左側オフセット情報コピーフラグsao_merge_left_flagおよび上側オフセット情報コピーフラグsao_merge_up_flagに対して、コンテキスト算術符号化が使用される。オフセット情報の符号化および復号についてのシンタックスは、図28Aおよび図28Bに示された実施の形態2のシンタックスと同じである。
sao_on_flag、sao_merge_left_flagおよびsao_merge_up_flagのシンボル発生確率の偏りは他のオフセット情報に比べて大きい。そのため、上記3つのフラグのみにコンテキスト算術符号化が使用され、画素分類方法sao_type_idx以降のオフセット情報にはバイパス算術符号化が使用される。これにより、画像符号化装置は、符号化効率とスループットとをバランス良く維持しながら、オフセット情報を符号化できる。
オフセット処理ON/OFFフラグsao_on_flagおよび画素分類方法sao_type_idxには、図26のようにビットが割り当てられてもよいし、図36Bのように割り当てられてもよい。
図28Bの例では、if文による条件分岐数を抑制するために、オフセット値±符号sao_offset_signおよびバンドオフセット符号化開始カテゴリsao_band_positionが連続して符号化(復号)される。しかし、符号化(復号)の順序は、図28Bの例に限定されない。
また、図39Aの例では、オフセット処理ON/OFFフラグsao_on_flag、左側オフセット情報コピーフラグsao_merge_left_flag、および、上側オフセット情報コピーフラグsao_merge_up_flagにコンテキストが用いられる。これらのフラグに用いられるコンテキストが輝度信号、色差信号Cbおよび色差信号Crで共用されてもよい。これにより、コンテキストの数の削減、および、メモリサイズの削減が、可能である。
また、画像符号化装置は、輝度信号、色差信号Cbおよび色差信号Crに異なるコンテキストを使用してもよいし、色差信号CbおよびCrのみで同じコンテキストを共用してもよい。これにより、画像符号化装置は、全ての信号で同じコンテキストを共用するよりも符号化効率を向上できる。
図39Bは、図39Aの例に係る画像符号化装置および画像復号装置の客観性能を示す表である。図39Bは、非特許文献2の指標に基づいて、客観性能の劣化が少ないことを示している。図39Aの例に対応する客観性能については後述する。
図40は、オフセット情報符号化部507が図39Aに示された算術符号化の組合せに基づいてオフセット情報を符号化する例を示すフローチャートである。
まず、オフセット情報符号化部507で処理が開始される時点で、算術符号化制御部5071は、符号化方法としてコンテキスト算術符号化を設定する(S5270)。
次に、コンテキスト算術符号化部5072は、オフセット処理ON/OFFフラグsao_on_flag用のコンテキストをロードし、そのコンテキストを用いて、オフセット処理ON/OFFフラグsao_on_flagを符号化する(S5271)。
次に、算術符号化制御部5071は、オフセット処理ON/OFFフラグsao_on_flagが1であるか否かを判定する(S5272)。ここで、sao_on_flagが0であることは、処理対象領域のオフセット処理を行わないことを示し、1であることは、処理対象領域のオフセット処理を行うことを示す。
オフセット処理ON/OFFフラグsao_on_flagが1である場合(S5272でYes)、算術符号化制御部5071は、処理対象領域がスライスまたはタイルの左端であるか否かを判定する(S5273)。オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみである。そのため、左側オフセット情報コピーフラグsao_merge_left_flagの符号化前に、上記の判定が行われる。
処理対象領域が左端でない場合(S5273でNo)、コンテキスト算術符号化部5072は、左側オフセット情報コピーフラグsao_merge_left_flag用のコンテキストをロードする。そして、コンテキスト算術符号化部5072は、左側オフセット情報コピーフラグsao_merge_left_flagを符号化する(S5274)。
左端の場合(S5273でYes)、または、sao_merge_left_flagの符号化(S5274)の後、算術符号化制御部5071は、sao_merge_left_flagが0であるか否かを判定する(S5275)。ここで、sao_merge_left_flagが0であることは、左の領域からオフセット情報をコピーしないことを示し、1であることは、左の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_left_flagの符号化(S5274)が行われない場合、sao_merge_left_flagの値が存在しない。この場合、sao_merge_left_flagの値は0として処理される。また、オフセット情報符号化部507は、処理を開始する時点で、sao_merge_left_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_left_flagが0である場合(S5275でYes)、算術符号化制御部5071は、処理対象領域がスライスまたはタイルの上端であるか否かを判定する(S5276)。左端の判定(S5273)と同様に、オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみであるため、上側オフセット情報コピーフラグsao_merge_up_flagの符号化前に、上記の判定が行われる。
処理対象領域が上端でない場合(S5276でNo)、コンテキスト算術符号化部5072は、上側オフセット情報コピーフラグsao_merge_up_flag用のコンテキストをロードする。そして、コンテキスト算術符号化部5072は、上側オフセット情報コピーフラグsao_merge_up_flagを符号化する(S5277)。
上端の場合(S5276でYes)、または、sao_merge_up_flagの符号化(S5277)の後、算術符号化制御部5071は、sao_merge_up_flagが0であるか否かを判定する(S5278)。ここで、sao_merge_up_flagが0であることは、上の領域からオフセット情報をコピーしないことを示し、1であることは、上の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_up_flagの符号化(S5277)が行われない場合、sao_merge_up_flagの値が存在しない。この場合、sao_merge_up_flagの値は0として処理される。また、オフセット情報符号化部507は、処理を開始する時点で、sao_merge_up_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_up_flagが0である場合(S5278でYes)、算術符号化制御部5071は、符号化方法をバイパス算術符号化に切り替える(S5279)。これにより、以降の符号化ステップは全てバイパス算術符号化を使用して行われる。
次に、バイパス算術符号化部5073は、画素分類方法sao_type_idx、および、オフセット絶対値sao_offsetを符号化する(S5280)。ここで、本実施の形態において、複数のオフセット絶対値sao_offsetの個数は、いずれの画素分類方法でも同じ4である。しかし、バイパス算術符号化部5073は、画素分類方法毎に異なる個数のオフセット絶対値を符号化してもよい。
次に、算術符号化制御部5071は、画素分類方法がバンドオフセットであるか否かを判定する(S5281)。ここで、算術符号化制御部5071は、判定に、画素分類方法sao_type_idxを使用する。
この例では、sao_type_idxの値として、バンドオフセットに0が割り当てられている。そのため、算術符号化制御部5071は、sao_type_idxが0である場合、画素分類方法がバンドオフセットであると判定し、sao_type_idxが0でない場合、画素分類方法がバンドオフセットではないと判定する。
画素分類方法がバンドオフセットである場合(S5281でYes)、バイパス算術符号化部5073は、オフセット値±符号sao_offset_sign、および、バンドオフセット符号化開始カテゴリsao_band_positionを符号化する(S5282)。
なお、本実施の形態では、バンドオフセットの場合のみ、バイパス算術符号化部5073は、オフセット値±符号sao_offset_signを符号化する。しかし、エッジオフセットの場合にも、バイパス算術符号化部5073は、オフセット値±符号sao_offset_signを符号化してよい。この場合、オフセット値±符号sao_offset_signは、ステップS5280で符号化される。
また、この場合、ステップS5280において、オフセット絶対値sao_offsetとオフセット値±符号sao_offset_signとが、統合され、オフセット値として符号化されてもよい。
図41は、オフセット情報復号部606が図39Aに示された算術復号の組合せに基づいてオフセット情報を復号する例を示すフローチャートである。
まず、オフセット情報復号部606で処理が開始される時点で、算術復号制御部6061は、復号方法としてコンテキスト算術復号を設定する(S6260)。
次に、コンテキスト算術復号部6062は、オフセット処理ON/OFFフラグsao_on_flag用のコンテキストをロードし、そのコンテキストを用いて、オフセット処理ON/OFFフラグsao_on_flagを復号する(S6261)。
次に、算術復号制御部6061は、オフセット処理ON/OFFフラグsao_on_flagが1であるか否かを判定する(S6262)。ここで、sao_on_flagが0であることは、処理対象領域のオフセット処理を行わないことを示し、1であることは、処理対象領域のオフセット処理を行うことを示す。
次に、sao_on_flagが1である場合(S6262でYes)、算術復号制御部6061は、処理対象領域がスライスまたはタイルの左端であるか否かを判定する(S6263)。オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみである。そのため、左側オフセット情報コピーフラグsao_merge_left_flagの復号前に、上記の判定が行われる。
処理対象領域が左端でない場合(S6263でNo)、コンテキスト算術復号部6062は、左側オフセット情報コピーフラグsao_merge_left_flag用のコンテキストをロードする。そして、コンテキスト算術復号部6062は、左側オフセット情報コピーフラグsao_merge_left_flagを復号する(S6264)。
左端の場合(S6263でYes)、または、sao_merge_left_flagの復号(S6264)の後、算術復号制御部6061は、sao_merge_left_flagが0であるか否かを判定する(S6265)。ここで、sao_merge_left_flagが0であることは、左の領域からオフセット情報をコピーしないことを示し、1であることは、左の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_left_flagの復号(S6264)が行われない場合、sao_merge_left_flagの値が存在しない。この場合、sao_merge_left_flagの値は0として処理される。また、オフセット情報復号部606は、処理を開始する時点で、sao_merge_left_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_left_flagが0である場合(S6265でYes)、算術復号制御部6061は、処理対象領域がスライスまたはタイルの上端であるか否かを判定する(S6266)。左端の判定(S6263)と同様に、オフセット情報のコピーは、同じスライスかつ同じタイルの領域からのみであるため、上側オフセット情報コピーフラグsao_merge_up_flagの復号前に、上記の判定が行われる。
処理対象領域が上端でない場合(S6266でNo)、コンテキスト算術復号部6062は、上側オフセット情報コピーフラグsao_merge_up_flag用のコンテキストをロードする。そして、コンテキスト算術復号部6062は、上側オフセット情報コピーフラグsao_merge_up_flagを復号する(S6267)。
上端の場合(S6266でYes)、または、sao_merge_up_flagの復号(S6267)の後、算術復号制御部6061は、sao_merge_up_flagが0であるか否かを判定する(S6268)。ここで、sao_merge_up_flagが0であることは、上の領域からオフセット情報をコピーしないことを示し、1であることは、上の領域からオフセット情報をコピーすることを示す。
なお、sao_merge_up_flagの復号(S6267)が行われない場合、sao_merge_up_flagの値が存在しない。この場合、sao_merge_up_flagの値は0として処理される。また、オフセット情報復号部606は、処理が開始される時点で、sao_merge_up_flag用のメモリを確保し、初期値0を設定してもよい。
次に、sao_merge_up_flagが0である場合(S6268でYes)、算術復号制御部6061は、復号方法をバイパス算術復号に切り替える(S6269)。これにより、以降の復号ステップは全てバイパス算術復号を使用して行われる。
次に、バイパス算術復号部6063は、画素分類方法sao_type_idx、および、オフセット絶対値sao_offsetを復号する(S6270)。ここで、本実施の形態において、複数のオフセット絶対値sao_offsetの個数は、いずれの画素分類方法でも同じ4である。しかし、バイパス算術復号部6063は、画素分類方法毎に異なる個数のオフセット絶対値を復号してもよい。
次に、算術復号制御部6061は、画素分類方法がバンドオフセットであるか否かを判定する(S6271)。ここで、算術復号制御部6061は、判定に画素分類方法sao_type_idxを使用する。
この例では、sao_type_idxの値として、バンドオフセットに0が割り当てられている。そのため、算術復号制御部6061は、sao_type_idxが0である場合、画素分類方法がバンドオフセットであると判定し、sao_type_idxが0でない場合、画素分類方法がバンドオフセットではないと判定する。
画素分類方法がバンドオフセットである場合(S6271でYes)、バイパス算術復号部6063は、オフセット値±符号sao_offset_signおよびバンドオフセット符号化開始カテゴリsao_band_positionを復号する(S6272)。
なお、本実施の形態では、バンドオフセットの場合のみ、バイパス算術復号部6063は、オフセット値±符号sao_offset_signを復号する。しかし、エッジオフセットの場合にも、バイパス算術復号部6063は、オフセット値±符号sao_offset_signを復号してもよい。この場合、オフセット値±符号sao_offset_signは、ステップS6270で復号される。
また、この場合、ステップS6270において、オフセット絶対値sao_offsetとオフセット値±符号sao_offset_signとが、統合され、オフセット値として復号されてもよい。
以上のように、オフセット処理ON/OFFフラグsao_on_flag、左側オフセット情報コピーフラグsao_merge_left_flag、および、上側オフセット情報コピーフラグsao_merge_up_flagの先頭の3つのパラメータの後の全てのパラメータの符号化(復号)にバイパス算術符号化(復号)が使用される。これにより、画像符号化装置および画像復号装置は、コンテキストのロードおよび更新を随所に行わなくてもよい。したがって、スループットが改善される。
図39Bは、HEVC規格で策定されているテスト条件(非特許文献2参照)に基づく結果を図39Aの例に係る客観性能として示す。
図39BのConfigurationは、符号化のパラメータ設定条件である。BD−rateは、再構成画像のPSNR(Peak Signal−to−Noise Ratio)および符号化ストリームの符号量から算出される客観指標である。負のBD−rateは客観性能の改善を示し、正のBD−rateは客観性能の劣化を示す。なお、図39BのBD−rateは、実施の形態1との比較に基づいて図39Aの例に係る客観性能の改善または劣化を示す。
図39Bの通り、BD−rateは、±0.1の範囲内に収まっている。これは、図39Aの例に係る客観性能が実施の形態1とほぼ同等であることを示す。すなわち、図39Aの例では、客観性能の劣化が少なく、スループットが改善されている。
図42は、上記の符号化の特徴の一例を示すフローチャートである。まず、コンテキスト算術符号化部5072は、コンテキスト算術符号化によって、第1情報および第2情報を連続して符号化する(S711)。コンテキスト算術符号化は、可変の確率を用いる算術符号化である。第1情報は、画素値のオフセット処理であるSAO(サンプル適応オフセット)処理を画像の第1領域に対して行うか否かを示す。第2情報は、第1領域に対するSAO処理に第1領域とは別の領域に対するSAO処理の情報を用いるか否かを示す。
例えば、図33の例に従って、コンテキスト算術符号化部5072は、第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの値をコンテキスト算術符号化によって第1情報として符号化する。
次に、バイパス算術符号化部5073は、第1情報および第2情報が符号化された後、バイパス算術符号化によって、他の情報を符号化する(S712)。バイパス算術符号化は、固定の確率を用いる算術符号化である。他の情報は、第1領域に対するSAO処理の情報であり第1情報とも第2情報とも異なる情報である。また、他の情報は、第1領域に対するSAO処理がエッジに応じて行われるエッジオフセット処理であるか画素値に応じて行われるバンドオフセット処理であるかを示す第3情報を含む。
例えば、図33の例に従って、バイパス算術符号化部5073は、第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの次のビットの値をバイパス算術符号化によって第3情報として符号化する。ここで、最初のビットの次のビットの値は、図25の例のように、バンドオフセットかエッジオフセットかを示す。
図43は、上記の復号の特徴の一例を示すフローチャートである。まず、コンテキスト算術復号部6062は、コンテキスト算術復号によって、第1情報および第2情報を連続して復号する(S721)。コンテキスト算術復号は、可変の確率を用いる算術復号である。第1情報は、画素値のオフセット処理であるSAO(サンプル適応オフセット)処理を画像の第1領域に対して行うか否かを示す。第2情報は、第1領域に対するSAO処理に第1領域とは別の領域に対するSAO処理の情報を用いるか否かを示す。
例えば、図33の例に従って、コンテキスト算術復号部6062は、第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの値をコンテキスト算術復号によって第1情報として復号する。
次に、バイパス算術復号部6063は、第1情報および第2情報が復号された後、バイパス算術復号によって、他の情報を復号する(S722)。バイパス算術復号は、固定の確率を用いる算術復号である。他の情報は、第1領域に対するSAO処理の情報であり第1情報とも第2情報とも異なる情報である。また、他の情報は、第1領域に対するSAO処理がエッジに応じて行われるエッジオフセット処理であるか画素値に応じて行われるバンドオフセット処理であるかを示す第3情報を含む。
例えば、図33の例に従って、バイパス算術復号部6063は、第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの次のビットの値をバイパス算術復号によって第3情報として復号する。ここで、最初のビットの次のビットの値は、図25の例のように、バンドオフセットかエッジオフセットかを示す。
なお、第1情報および第2情報のどちらが先に符号化されてもよい。同様に、第1情報および第2情報のどちらが先に復号されてもよい。しかし、第2情報が第1情報よりも先に処理されることで、1つのパラメータに対応する第1情報および第3情報を連続して処理することが可能である。
また、符号化の順序は、符号化ストリームに情報を符号(コード)として書き込む順序であり、復号の順序は、符号化ストリームから符号(コード)を情報として読み込む順序である。すなわち、複数の図面を用いて上記に例示された符号化および復号の順序は、符号化ストリーム内の情報の順序に対応する。また、複数の図面を用いて上記に例示されたシンタックス要素の順序は、符号化ストリーム内の情報の順序に対応し、符号化および復号の順序に対応する。
また、エッジオフセット処理は、より具体的には、エッジに応じた分類に基づいて行われる。また、バンドオフセット処理は、より具体的には、画素値に応じた分類に基づいて行われる。
また、画像符号化装置は、図42に示された処理のみを行う装置でもよい。同様に、画像復号装置は、図43に示された処理のみを行う装置でもよい。その他の装置が、その他の処理を行ってもよい。
以上のように、本実施の形態に係る画像符号化装置は、高い処理効率で画像を符号化することができる。また、本実施の形態に係る画像復号装置は、高い処理効率で画像を復号することができる。
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
言い換えると、画像符号化装置および画像復号装置は、制御回路(control circuitry)と、当該制御回路に電気的に接続された(当該制御回路からアクセス可能な)記憶装置(storage)とを備える。制御回路は、専用のハードウェア及びプログラム実行部の少なくとも一方を含む。また、記憶装置は、制御回路がプログラム実行部を含む場合には、当該プログラム実行部により実行されるソフトウェアプログラムを記憶する。
ここで、上記各実施の形態の画像符号化装置などを実現するソフトウェアは、次のようなプログラムである。
すなわち、このプログラムは、コンピュータに、可変の確率を用いる算術符号化であるコンテキスト算術符号化によって、(i)画素値のオフセット処理であるSAO(サンプル適応オフセット)処理を画像の第1領域に対して行うか否かを示す第1情報、および、(ii)前記第1領域に対するSAO処理に前記第1領域とは別の領域に対するSAO処理の情報を用いるか否かを示す第2情報を連続して符号化するコンテキスト算術符号化ステップと、前記第1情報および前記第2情報が符号化された後、固定の確率を用いる算術符号化であるバイパス算術符号化によって、前記第1領域に対するSAO処理の情報であり前記第1情報とも前記第2情報とも異なる情報である他の情報を符号化するバイパス算術符号化ステップとを含み、前記他の情報は、前記第1領域に対するSAO処理がエッジに応じて行われるエッジオフセット処理であるか画素値に応じて行われるバンドオフセット処理であるかを示す第3情報を含み、前記コンテキスト算術符号化ステップでは、前記第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの値を前記第1情報として符号化し、前記バイパス算術符号化ステップでは、前記パラメータのビット列のうち前記最初のビットの次のビットの値を前記第3情報として符号化する画像符号化方法を実行させる。
また、このプログラムは、コンピュータに、可変の確率を用いる算術復号であるコンテキスト算術復号によって、(i)画素値のオフセット処理であるSAO(サンプル適応オフセット)処理を画像の第1領域に対して行うか否かを示す第1情報、および、(ii)前記第1領域に対するSAO処理に前記第1領域とは別の領域に対するSAO処理の情報を用いるか否かを示す第2情報を連続して復号するコンテキスト算術復号ステップと、前記第1情報および前記第2情報が復号された後、固定の確率を用いる算術復号であるバイパス算術復号によって、前記第1領域に対するSAO処理の情報であり前記第1情報とも前記第2情報とも異なる情報である他の情報を復号するバイパス算術復号ステップとを含み、前記他の情報は、前記第1領域に対するSAO処理がエッジに応じて行われるエッジオフセット処理であるか画素値に応じて行われるバンドオフセット処理であるかを示す第3情報を含み、前記コンテキスト算術復号ステップでは、前記第1領域に対するSAO処理の種別を示すパラメータのビット列のうち最初のビットの値を前記第1情報として復号し、前記バイパス算術復号ステップでは、前記パラメータのビット列のうち前記最初のビットの次のビットの値を前記第3情報として復号する画像復号方法を実行させてもよい。
また、各構成要素は、回路であってもよい。これらの回路は、全体として1つの回路を構成してもよいし、それぞれ別々の回路であってもよい。また、各構成要素は、汎用的なプロセッサで実現されてもよいし、専用のプロセッサで実現されてもよい。
以上、一つまたは複数の態様に係る画像符号化装置などについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。
例えば、オフセット処理ON/OFFフラグおよびオフセット情報コピーフラグ以外のオフセット情報について、シンボル発生確率に偏りがある場合、画像符号化装置は、コンテキスト算術符号化を使用して、そのオフセット情報を符号化してもよい。同様に、画像復号装置は、コンテキスト算術復号を使用して、そのオフセット情報を復号してもよい。
また、コンテキスト算術符号化(復号)が適用されるオフセット情報とバイパス算術符号化(復号)が適用されるオフセット情報とが、それぞれ可能な限り連続して符号化(復号)されるように最適な設計が行われてもよい。
また、オフセット処理を行うか否かを示す情報が、オフセット処理ON/OFFフラグsao_on_flag、あるいは、画素分類方法sao_type_idxのビット列の一部として設計されていなくてもよい。このような場合でも、オフセット処理を行うか否かを示す情報(ビット)のみにコンテキスト算術符号化が使用されてもよい。
また、オフセット情報コピーフラグは、左または上以外の隣接領域からオフセット情報をコピーするか否かを示してもよい。また、左側オフセット情報コピーフラグおよび上側オフセット情報コピーフラグのうちいずれか一方だけが存在してもよい。
また、画像符号化復号装置が、画像符号化装置および画像復号装置を備えてもよい。また、特定の処理部が実行する処理を別の処理部が実行してもよい。また、処理を実行する順序が変更されてもよいし、複数の処理が並行して実行されてもよい。また、各種情報を記憶するための専用または共用の記憶部が構成に追加されてもよい。
(実施の形態4)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図44は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図44のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局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の例に限らず、図45に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図46は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)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の構成を図47に示す。情報再生/記録部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はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図48に光ディスクである記録メディア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の構成は例えば図46に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図49Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図49Bを用いて説明する。携帯電話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において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図50は、多重化データの構成を示す図である。図50に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(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が、それぞれ割り当てられている。
図51は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図52は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図52における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図52の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図53は、多重化データに最終的に書き込まれる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フィルタへの転送開始時刻を示す。多重化データには図53下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号は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時間の情報を持つ。
図54はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図55に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図55に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図56に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図57に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態6)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図58に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に置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態7)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図59は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図58のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図58の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態5で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態5で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図61のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図60は、本実施の形態の方法を実施するステップを示している。まず、ステップ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を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態8)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図62Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、エントロピー復号に特徴を有していることから、例えば、エントロピー復号については専用の復号処理部ex901を用い、それ以外の逆量子化、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図62Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。