以下、実施の形態に従って本発明を詳細に説明する。
図1に、本発明の適用されるスケーラブル動画像符号化装置1の装置構成の一例を図示する。
この図に示すように、本発明の適用されるスケーラブル動画像符号化装置1は、基本レイヤを符号化する基本レイヤ符号化部10と、拡張レイヤを符号化する拡張レイヤ符号化部11と、基本レイヤ符号化部10および拡張レイヤ符号化部11の生成した符号化データを出力する符号化データ出力部12とを備えることで、動画像をスケーラブルに符号化して、そのようにして生成した符号化データを出力するように処理するのである。
本発明の符号化処理は拡張レイヤに対する処理であり、基本レイヤ(直下レイヤと称することがある)には非スケーラブルのシングルレイヤ符号化処理を適用する。シングルレイヤ符号化処理の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの基本レイヤ部分の符号化処理が挙げられる。
このように構成されるスケーラブル動画像符号化装置1では、BLSkip予測モードと、IntraBL予測モードという2種類のレイヤ間予測モード(BLはベースレイヤの略)を有している。
このBLSkip予測モードは、直下SMB(サブマクロブロック)がインター予測の場合にのみ使用可能となるものであり、直下SMBにおける動きベクトル、参照インデックス、ブロック分割タイプを拡張レイヤの符号化対象マクロブロックにてそのまま流用するという予測モードである。
一方、IntraBL予測モードは、CIP(Constrained Intra Prediction)フラグがオンの場合には、直下SMBがイントラ予測の場合にのみ使用可能となるとともに、CIPフラグがオフの場合には、直下SMBがどの予測モードであっても使用可能となるものであり、直下SMBの復号信号を生成して、それを拡張レイヤの解像度までアップサンプルし、そのアップサンプルした復号信号を拡張レイヤの符号化対象マクロブロックの予測信号とするという予測モードである。
ここで、制約付きイントラ予測(Constrained Intra Prediction)とは、IntraBL予測モードを小さな復号負荷で実行可能とするために設けられたものであり、隣接ブロックの中で制約付きイントラ予測が選ばれているブロックのみからの予測を可能とするものである。直下SMBの復号信号を生成する場合、直下SMBが通常のイントラ予測であると、周囲のマクロブロックの復号信号が必要となることで、結局のところ直下レイヤをすべて復号する必要があることで復号負荷が大きくなってしまうという問題があることを考慮して、制約付きイントラ予測を設けて、制約付きイントラ予測を行っているSMBのみを復号すればよいようにしたものである。
〔1〕拡張レイヤ符号化部11の実行するフローチャート
図2〜図9に、本発明を実現すべく拡張レイヤ符号化部11が実行するフローチャートの一例を図示する。
次に、これらのフローチャートに従って、拡張レイヤ符号化部11の実行する処理について詳細に説明する。
〔1−1〕全体処理
まず最初に、図2のフローチャートについて説明する。ここで、図2に示すフローチャートは拡張レイヤ符号化部11の実行する全体処理についてのフローチャートである。
ステップS101:符号化処理の起点となる符号化対象のマクロブロック(以下、マクロブロックをMBと略記することがある)を1つ選択する。
ステップS102:符号化対象のマクロブロックの原信号を読み込み、本発明の高速予測モード選択処理を行い、符号化対象のマクロブロックに適用する予測モード情報を出力する。後述する図3、図4および図5で本処理の一例について詳細に説明する。
ステップS103:ステップS102の処理によって得られた予測モード情報を読み込み、その予測モードに従って予測信号を生成し、原信号と予測信号との差分をとった予測残差信号を生成する。
ステップS104:ステップS103の処理によって得られた予測残差信号を読み込み、その予測残差信号の符号化を行い、符号化データを生成する。本処理の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMのDCT、量子化、可変長符号化の一連処理の適用が考えられる。
ステップS105:すべてのマクロブロックの符号化が完了しているのか否かの判定処理を行い、真の場合には符号化処理を終了して最終的な符号化データを出力し、偽の場合にはステップS106の処理に移る。
ステップS106:次の符号化対象のマクロブロックを1つ選択して、ステップS102の処理を行う。
〔1−2〕ステップS102で実行する処理
次に、図3〜図5を用いて、拡張レイヤ符号化部11がステップS102で実行する処理の一例について詳細に説明する。ここで、図3、図4、図5のうちのいずれか一つが適用可能である。
最初に、図3のフローチャートについて説明する。
ステップS201:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが動き推定難MB(動きの激しいMB)であるのか否かの判定処理を行い、偽の場合にはステップS202の処理に移り、真の場合にはステップS203の処理に移る。後述する図6および図7で本処理の一例について詳細に説明する。
ステップS202:符号化対象のマクロブロックの動き推定が難しくない場合に実行するものであり、符号化対象のマクロブロックにおいて探索対象となっている予測モード群を読み込み、各予測モードの符号化コストを算出し、符号化コストを最小にする予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。本処理の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの予測モード選択方法の適用が考えられる。
ステップS203:符号化対象のマクロブロックの動き推定が難しい場合に実行するものであり、直下SMBにおいて適用された予測モード情報を読み込み、それがイントラ予測モードであるのか否かの判定処理を行い、真の場合にはステップS204の処理に移り、偽の場合にステップS206の処理に移る。
ステップS204:CIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはステップS205の処理に移り、偽の場合にはステップS202の処理に移る。ここで、CIPフラグがオフである場合に、BLSkip予測モードを適用しないでステップS202の処理に移るのは、直下SMBに適用された予測モードがイントラ予測モードであることで動きベクトルなどが存在せず、これからBLSkip予測モードを適用できないからである。
ステップS205:ステップS204の処理によって出力されるCIPフラグがオンであるという判定結果を読み込み、IntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS206:CIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはステップS207の処理に移り、偽の場合にはステップS208の処理に移る。
ステップS207:ステップS206の処理によって出力されるCIPフラグがオンであるという判定結果を読み込み、BLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS208:ステップS206の処理によって出力されるCIPフラグがオフであるという判定結果に応じて、IntraBL予測モードの符号化コスト(JIntraBL )と、BLSkip予測モードの符号化コスト(JBLSkip)とを読み込み、両者を比較し、JIntraBL <JBLSkipであるのか否かの判定処理を行い、真の場合にはステップS209の処理に移り、偽の場合にはステップS210の処理に移る。
ステップS209:ステップS208の処理によって出力されるJIntraBL <JBLSkipであるという判定結果を読み込み、IntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS210:ステップS208の処理によって出力されるJIntraBL <JBLSkipでないという判定結果を読み込み、BLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
このようにして、図3のフローチャートを実行する場合、拡張レイヤ符号化部11は、符号化対象のマクロブロックが動きの激しい画像領域であることで各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モード(IntraBL予測モードやBLSkip予測モード)を決定するのである。
次に、図4のフローチャートについて説明する。
ステップS301:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが輝度変化大MB(輝度変化の大きいMB)であるのか否かの判定処理を行い、真の場合にはステップS302の処理に移り、偽の場合にはステップS303の処理に移る。後述する図8および図9で本処理の一例について詳細に説明する。
ステップS302:符号化対象のマクロブロックの輝度変化が大きい場合に実行するものであり、符号化対象のマクロブロックにおいて探索対象となっている予測モード群を読み込み、各予測モードの符号化コストを算出し、符号化コストを最小にする予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。本処理の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの予測モード選択方法の適用が考えられる。
ステップS303:符号化対象のマクロブロックの輝度変化がほとんどない場合に実行するものであり、直下SMBにおいて適用された予測モード情報を読み込み、それがイントラ予測モードであるのか否かの判定処理を行い、真の場合にはステップS304の処理に移り、偽の場合にステップS306の処理に移る。
ステップS304:CIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはステップS305の処理に移り、偽の場合にはステップS302の処理に移る。ここで、CIPフラグがオフである場合に、BLSkip予測モードを適用しないでステップS302の処理に移るのは、直下SMBに適用された予測モードがイントラ予測モードであることで動きベクトルなどが存在せず、これからBLSkip予測モードを適用できないからである。
ステップS305:ステップS304の処理によって出力されるCIPフラグがオンであるという判定結果を読み込み、IntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS306:CIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはステップS307の処理に移り、偽の場合にはステップS308の処理に移る。
ステップS307:ステップS306の処理によって出力されるCIPフラグがオンであるという判定結果を読み込み、BLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS308:ステップS306の処理によって出力されるCIPフラグがオフであるという判定結果に応じて、IntraBL予測モードの符号化コスト(JIntraBL )と、BLSkip予測モードの符号化コスト(JBLSkip)とを読み込み、両者を比較し、JIntraBL <JBLSkipであるのか否かの判定処理を行い、真の場合にはステップS309の処理に移り、偽の場合にはステップS310の処理に移る。
ステップS309:ステップS308の処理によって出力されるJIntraBL <JBLSkipであるという判定結果を読み込み、IntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS310:ステップS308の処理によって出力されるJIntraBL <JBLSkipでないという判定結果を読み込み、BLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
このようにして、図4のフローチャートを実行する場合、拡張レイヤ符号化部11は、符号化対象のマクロブロックが輝度変化のほとんどない画像領域であることで各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モード(IntraBL予測モードやBLSkip予測モード)を決定するのである。
次に、図5のフローチャートについて詳細に説明する。
ステップS401:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが動き推定難MB(動きの激しいMB)であるのか否かの判定処理を行い、偽の場合にはステップS402の処理に移り、真の場合にはステップS404の処理に移る。後述する図6および図7で本処理の一例について詳細に説明する。
ステップS402:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが輝度変化大MB(輝度変化の大きいMB)であるのか否かの判定処理を行い、真の場合にはステップS403の処理に移り、偽の場合にはステップS404の処理に移る。後述する図8および図9で本処理の一例について詳細に説明する。
ステップS403:符号化対象のマクロブロックの動き推定が難しくなく、かつ、符号化対象のマクロブロックの輝度変化が大きい場合に実行するものであり、符号化対象のマクロブロックにおいて探索対象となっている予測モード群を読み込み、各予測モードの符号化コストを算出し、符号化コストを最小にする予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。本処理の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの予測モード選択方法の適用が考えられる。
ステップS404:符号化対象のマクロブロックの動き推定が難しい場合や、符号化対象のマクロブロックの輝度変化がほとんどない場合に実行するものであり、直下SMBにおいて適用された予測モード情報を読み込み、それがイントラ予測モードであるのか否かの判定処理を行い、真の場合にはステップS405の処理に移り、偽の場合にステップS407の処理に移る。
ステップS405:CIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはステップS406の処理に移り、偽の場合にはステップS403の処理に移る。CIPフラグがオフである場合に、BLSkip予測モードを適用しないでステップS403の処理に移るのは、直下SMBに適用された予測モードがイントラ予測モードであることで動きベクトルなどが存在せず、これからBLSkip予測モードを適用できないからである。
ステップS406:ステップS405の処理によって出力されるCIPフラグがオンであるという判定結果を読み込み、IntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS407:CIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはステップS408の処理に移り、偽の場合にはステップS409の処理に移る。
ステップS408:ステップS407の処理によって出力されるCIPフラグがオンであるという判定結果を読み込み、BLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS409:ステップS407の処理によって出力されるCIPフラグがオフであるという判定結果に応じて、IntraBL予測モードの符号化コスト(JIntraBL )と、BLSkip予測モードの符号化コスト(JBLSkip)とを読み込み、両者を比較し、JIntraBL <JBLSkipであるのか否かの判定処理を行い、真の場合にはステップS410の処理に移り、偽の場合にはステップS411の処理に移る。
ステップS410:ステップS409の処理によって出力されるJIntraBL <JBLSkipであるという判定結果を読み込み、IntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
ステップS411:ステップS409の処理によって出力されるJIntraBL <JBLSkipでないという判定結果を読み込み、BLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
このようにして、図5のフローチャートを実行する場合、拡張レイヤ符号化部11は、符号化対象のマクロブロックが動きの激しい画像領域であるか、あるいは、輝度変化がほとんどない画像領域であることで各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モードを決定するのである。
〔1−3〕ステップS201,ステップS401で実行する処理
次に、図6および図7を用いて、拡張レイヤ符号化部11がステップS201,ステップS401で実行する処理の一例について詳細に説明する。ここで、図6、図7のうちのいずれか一つが適用可能である。
最初に、図6のフローチャートについて説明する。
ステップS501:直下SMBにおいて原信号を読み込み、4×4インター予測モードによって生じた予測残差信号の二乗誤差和(SSD)の値(SSD0)を算出する。
ステップS502:ステップS501の処理によって得られたSSDの値(SSD0)を読み込み、その値が外部より与えられる閾値以上(SSD0≧閾値)であるのか否かの判定処理を行い、真の場合にはステップS503の処理に移り、偽の場合にはステップS504の処理に移る。ここで、この閾値は動き推定性能判定閾値であり、実験的に与える。
ステップS503:ステップS502の処理によって出力されるSSDが閾値以上であるという判定結果を読み込み、符号化対象のマクロブロックを動き推定が難しいマクロブロックとして設定して、それを示すフラグを出力する。
ステップS504:ステップS502の処理によって出力されるSSDが閾値以上でないという判定結果を読み込み、符号化対象のマクロブロックを動き推定が易しいマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図6のフローチャートを実行する場合、拡張レイヤ符号化部11は、直下レイヤで求められる予測残差信号のSSDの値が大きい場合には、符号化対象のマクロブロックを動き推定が難しいマクロブロックと判断するように処理するのである。
次に、図7のフローチャートについて説明する。
ステップS601:符号化対象のマクロブロックにおいて原信号を読み込み、4×4インター予測モードを実施して予測残差信号を生成し、その予測残差信号のSSD(SSD1)を算出する。ここで、この予測残差信号のSSD(SSD1)については、直下レイヤにおいて4×4インター予測モードを実施して予測残差信号を生成したときに求めておいたものをメモリに保存しておいて、それを読み出すようにして得ることでも実現可能である。
ステップS602:符号化対象のマクロブロックにおける原信号および直下SMBの符号化情報を読み込み、BLSkip予測モードを実施して予測残差信号を生成し、その予測残差信号のSSD(SSD2)を算出する。ここで、この予測残差信号のSSD(SSD1)については、直下レイヤにおいてBLSkip予測モードを実施して予測残差信号を生成したときに求めておいたものをメモリに保存しておいて、それを読み出すようにして得ることでも実現可能である。
ステップS603:ステップS601で得た4×4インター予測モードの予測残差信号のSSD(SSD1)と、ステップS602で得たBLSkip予測モードの予測残差信号のSSD(SSD2)との差分SSD(SSDe)を算出する。
ステップS604:ステップS603の処理によって出力される差分SSD(SSDe)の値を読み込み、その値が外部より与えられる閾値未満(SSDe<閾値)であるのか否かの判定処理を行い、真の場合にはステップS605の処理に移り、偽の場合にはステップS606の処理に移る。ここで、この閾値は動き推定性能判定閾値であり、実験的に与える。
ステップS605:ステップS604の処理によって出力されるSSDeが閾値未満であるという判定結果を読み込み、符号化対象のマクロブロックを動き推定が難しいマクロブロックとして設定して、それを示すフラグを出力する。
ステップS606:ステップS604の処理によって出力されるSSDが閾値未満でないという判定結果を読み込み、符号化対象のマクロブロックを動き推定が易しいマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図7のフローチャートを実行する場合、拡張レイヤ符号化部11は、拡張レイヤで求められる予測残差信号のSSDと直下レイヤで求められる予測残差信号のSSDとの差分値が小さい場合には、その2つのSSDが正しいことを判断して、符号化対象のマクロブロックを動き推定が難しいマクロブロックと判断するように処理するのである。
〔1−4〕ステップS301,ステップS402で実行する処理
次に、図8および図9を用いて、拡張レイヤ符号化部11がステップS301,ステップS402で実行する処理の一例について詳細に説明する。ここで、図8、図9のうちのいずれか一つが適用可能である。
最初に、図8のフローチャートについて説明する。
ステップS701:直下SMBの原信号を読み込み、隣接画素相関値(C0)を算出する。
ステップS702:ステップS701の処理によって得られた隣接画素相関値(C0)を読み込み、その値が外部より与えられる閾値未満(C0<閾値)であるのか否かの判定処理を行い、真の場合にはステップS703の処理に移り、偽の場合にはステップS704の処理に移る。ここで、この閾値は輝度変化判定閾値であり、実験的に与える。
ステップS703:ステップS702の処理によって出力される隣接画素相関値が閾値未満であるという判定結果(相関が低いことで輝度変化が大きいことを示している)を読み込み、符号化対象のマクロブロックを輝度変化が大きなマクロブロックとして設定して、それを示すフラグを出力する。
ステップS704:ステップS702の処理によって出力される隣接画素相関値が閾値未満でないという判定結果(相関が高いことで輝度変化が小さいことを示している)を読み込み、符号化対象のマクロブロックを輝度変化が小さなマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図8のフローチャートを実行する場合、拡張レイヤ符号化部11は、基本レイヤで求められる隣接画素相関値の値が小さい場合には、符号化対象のマクロブロックを輝度変化が大きいマクロブロックと判断するように処理するのである。
次に、図9のフローチャートについて説明する。
ステップS801:符号化対象のマクロブロックの原信号を読み込み、隣接画素相関値(C1)を算出する。
ステップS802:ステップS801の処理によって得られた隣接画素相関値(C1)を読み込み、その値が外部より与えられる閾値未満(C1<閾値)であるのか否かの判定処理を行い、真の場合にはステップS803の処理に移り、偽の場合にはステップS804の処理に移る。ここで、この閾値は輝度変化判定閾値であり、実験的に与える。
ステップS803:ステップS802の処理によって出力される隣接画素相関値が閾値未満であるという判定結果(相関が低いことで輝度変化が大きいことを示している)を読み込み、符号化対象のマクロブロックを輝度変化が大きなマクロブロックとして設定して、それを示すフラグを出力する。
ステップS804:ステップS802の処理によって出力される隣接画素相関値が閾値未満でないという判定結果(相関が高いことで輝度変化が小さいことを示している)を読み込み、符号化対象のマクロブロックを輝度変化が小さなマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図9のフローチャートを実行する場合、拡張レイヤ符号化部11は、拡張レイヤで求められる隣接画素相関値の値が小さい場合には、符号化対象のマクロブロックを輝度変化が大きいマクロブロックと判断するように処理するのである。
〔2〕拡張レイヤ符号化部11の装置構成
図10〜図17に、図2〜図9のフローチャートを実行する拡張レイヤ符号化部11の装置構成を図示する。
次に、これらの装置構成図に従って、拡張レイヤ符号化部11の装置構成について詳細に説明する。
〔2−1〕全体構成
まず最初に、図10の装置構成について説明する。ここで、図10の装置構成は拡張レイヤ符号化部11の全体構成を示している。
この図に示すように、拡張レイヤ符号化部11は、符号化対象MB初期選択部101と、高速予測モード判定部102と、予測モード情報記憶部103と、予測残差信号生成部104と、予測残差符号化部105と、全MB完了判定部106と、符号化対象MB更新部107とを備える。次に、これらの各処理部について説明する。
符号化対象MB初期選択部101:符号化処理の起点となる符号化対象のマクロブロックを1つ選択する。
高速予測モード判定部102:符号化対象のマクロブロックの原信号をバッファより読み込み、本発明の高速化予測モード選択処理を行い、符号化対象のマクロブロックに適用する予測モード情報を予測モード情報記憶部103に出力する。後述する図11、図12および図13で本処理部の構成の一例について詳細に説明する。
予測残差信号生成部104:予測モード情報記憶部103より符号化対象のマクロブロックに適用する予測モード情報を読み込み、その予測モードに従って予測信号を生成し、原信号と予測信号との差分をとった予測残差信号を生成してバッファに出力する。
予測残差符号化部105:バッファより予測残差信号を読み込み、その予測残差信号の符号化を行い、符号化データを生成する。本処理の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMのDCT、量子化、可変長符号化の一連処理の適用が考えられる。
全MB完了判定部106:すべてのマクロブロックの符号化が完了しているのか否かの判定処理を行い、真の場合には符号化処理を終了して最終的な符号化データを出力し、偽の場合には符号化対象MB更新部107の処理に移る。
符号化対象MB更新部107:次の符号化対象のマクロブロックを1つ選択して高速予測モード判定部102の処理を行う。
〔2−2〕高速予測モード判定部102の装置構成
次に、図11〜図13を用いて、高速予測モード判定部102の装置構成の一例について説明する。ここで、図11、図12、図13のうちのいずれか一つが適用可能である。
最初に、図11の装置構成図について説明する。
この装置構成に従う場合、高速予測モード判定部102は、動き推定難/易判定部201と、直下SMB予測モード情報記憶部202と、直下SMB予測モード情報判定部203と、CIPフラグ情報記憶部204と、CIPフラグ情報判定部205と、符号化コスト比較部206と、CIPフラグ情報判定部207と、符号化コスト最小予測モード探索部208とを備える。次に、これらの各処理部について説明する。
動き推定難/易判定部201:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが動き推定難MB(動きの激しいMB)であるのか否かの判定処理を行い、偽の場合には符号化コスト最小予測モード探索部208の処理に移り、真の場合には直下SMB予測モード情報判定部203の処理に移る。後述する図14および図15で本処理部の構成の一例について詳細に説明する。
直下SMB予測モード情報記憶部202:直下SMBにおいて適用された予測モード情報を読み込み、レジスタに出力する。
直下SMB予測モード情報判定部203:直下SMB予測モード情報記憶部202より直下SMBにおいて適用された予測モード情報を読み込み、それがイントラ予測モードであるのか否かの判定処理を行い、偽の場合にはCIPフラグ情報判定部205の処理に移り、真の場合にはCIPフラグ情報判定部207の処理に移る。
CIPフラグ情報記憶部204:CIPフラグを読み込み、レジスタに出力する。
CIPフラグ情報判定部205:CIPフラグ情報記憶部204よりCIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはBLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合には符号化コスト比較部206の処理に移る。
符号化コスト比較部206:IntraBL予測モードの符号化コスト(JIntraBL )と、BLSkip予測モードの符号化コスト(JBLSkip)とを読み込み、両者を比較し、JIntraBL <JBLSkipであるのか否かの判定処理を行い、真の場合にはIntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合にはBLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
CIPフラグ情報判定部207:CIPフラグ情報記憶部204よりCIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはIntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合には符号化コスト最小予測モード探索部208の処理に移る。
符号化コスト最小予測モード探索部208:符号化対象のマクロブロックにおいて探索対象となっている予測モード群を読み込み、各予測モードの符号化コストを算出し、符号化コストを最小にする予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。本処理部の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの予測モード選択方法の適用が考えられる。
このようにして、図11の装置構成に従って、高速予測モード判定部102は、符号化対象のマクロブロックが動きの激しい画像領域であることで、各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モードを決定するのである。
次に、図12の装置構成図について説明する。
この装置構成に従う場合、高速予測モード判定部102は、輝度変化大/小判定部301と、直下SMB予測モード情報記憶部302と、直下SMB予測モード情報判定部303と、CIPフラグ情報記憶部304と、CIPフラグ情報判定部305と、符号化コスト比較部306と、CIPフラグ情報判定部307と、符号化コスト最小予測モード探索部308とを備える。次に、これらの各処理部について説明する。
輝度変化大/小判定部301:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、輝度変化大MB(輝度変化の大きいMB)であるのか否かの判定処理を行い、真の場合には符号化コスト最小予測モード探索部308の処理に移り、偽の場合には直下SMB予測モード情報判定部303の処理に移る。後述する図16および図17で本処理部の構成の一例について詳細に説明する。
直下SMB予測モード情報記憶部302:直下SMBにおいて適用された予測モード情報を読み込み、レジスタに出力する。
直下SMB予測モード情報判定部303:直下SMB予測モード情報記憶部302より直下SMBにおいて適用された予測モード情報を読み込み、それがイントラ予測モードであるのか否かの判定処理を行い、偽の場合にはCIPフラグ情報判定部305の処理に移り、真の場合にはCIPフラグ情報判定部307の処理に移る。
CIPフラグ情報記憶部304:CIPフラグを読み込み、レジスタに出力する。
CIPフラグ情報判定部305:CIPフラグ情報記憶部304よりCIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはBLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合には符号化コスト比較部306の処理に移る。
符号化コスト比較部306:IntraBL予測モードの符号化コスト(JIntraBL )と、BLSkip予測モードの符号化コスト(JBLSkip)とを読み込み、両者を比較し、JIntraBL <JBLSkipであるのか否かの判定処理を行い、真の場合にはIntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合にはBLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
CIPフラグ情報判定部307:CIPフラグ情報記憶部304よりCIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはIntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合には符号化コスト最小予測モード探索部308の処理に移る。
符号化コスト最小予測モード探索部308:符号化対象のマクロブロックにおいて探索対象となっている予測モード群を読み込み、各予測モードの符号化コストを算出し、符号化コストを最小にする予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。本処理部の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの予測モード選択方法の適用が考えられる。
このようにして、図12の装置構成に従って、高速予測モード判定部102は、符号化対象のマクロブロックが輝度変化のほとんどない画像領域であることで、各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モードを決定するのである。
次に、図13の装置構成図について説明する。
この装置構成に従う場合、高速予測モード判定部102は、動き推定難/易判定部401と、輝度変化大/小判定部402と、直下SMB予測モード情報記憶部403と、直下SMB予測モード情報判定部404と、CIPフラグ情報記憶部405と、CIPフラグ情報判定部406と、符号化コスト比較部407と、CIPフラグ情報判定部408と、符号化コスト最小予測モード探索部409とを備える。次に、これらの各処理部について説明する。
動き推定難/易判定部401:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが動き推定難MB(動きの激しいMB)であるのか否かの判定処理を行い、偽の場合には輝度変化大/小判定部402の処理に移り、真の場合には直下SMB予測モード情報判定部404の処理に移る。後述する図14および図15で本処理部の構成の一例について詳細に説明する。
輝度変化大/小判定部402:拡張レイヤの原信号または符号化情報、もしくは直下レイヤの原信号または符号化情報を読み込み、符号化対象のマクロブロックが輝度変化大MB(輝度変化の大きいMB)であるのか否かの判定処理を行い、真の場合には符号化コスト最小予測モード探索部409の処理に移り、偽の場合には直下SMB予測モード情報判定部404の処理に移る。後述する図16および図17で本処理部の構成の一例について詳細に説明する。
直下SMB予測モード情報記憶部403:直下SMBにおいて適用された予測モード情報を読み込み、レジスタに出力する。
直下SMB予測モード情報判定部404:直下SMB予測モード情報記憶部403より直下SMBにおいて適用された予測モード情報を読み込み、それがイントラ予測モードであるのか否かの判定処理を行い、偽の場合にはCIPフラグ情報判定部406の処理に移り、真の場合にはCIPフラグ情報判定部408の処理に移る。
CIPフラグ情報記憶部405:CIPフラグを読み込み、レジスタに出力する。
CIPフラグ情報判定部406:CIPフラグ情報記憶部405よりCIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはBLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合には符号化コスト比較部407の処理に移る。
符号化コスト比較部407:IntraBL予測モードの符号化コスト(JIntraBL )と、BLSkip予測モードの符号化コスト(JBLSkip)とを読み込み、両者を比較し、JIntraBL <JBLSkipであるのか否かの判定処理を行い、真の場合にはIntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合にはBLSkip予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。
CIPフラグ情報判定部408:CIPフラグ情報記憶部405よりCIPフラグを読み込み、それがオンであるのか否かの判定処理を行い、真の場合にはIntraBL予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力し、偽の場合には符号化コスト最小予測モード探索部409の処理に移る。
符号化コスト最小予測モード探索部409:符号化対象のマクロブロックにおいて探索対象となっている予測モード群を読み込み、各予測モードの符号化コストを算出し、符号化コストを最小にする予測モードを符号化対象のマクロブロックに適用する予測モードとして決定して出力する。本処理部の一例に、H.264/AVCの参照エンコーダJMや、非特許文献1で挙げたSVCの参照エンコーダJSVMの予測モード選択方法の適用が考えられる。
このようにして、図13の装置構成に従って、高速予測モード判定部102は、符号化対象のマクロブロックが動きの激しい画像領域であったり、符号化対象のマクロブロックが輝度変化のほとんどない画像領域であることで、各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モードを決定するのである。
〔2−3〕動き推定難/易判定部201,401の装置構成
次に、図14および図15を用いて、動き推定難/易判定部201,401の装置構成の一例について詳細に説明する。ここで、図14、図15のうちのいずれか一つが適用可能である。
最初に、図14の装置構成図について説明する。
図14の装置構成に従う場合、動き推定難/易判定部201,401は、直下SMB4×4予測残差SSD値記憶部501と、直下SMB4×4予測残差SSD閾値記憶部502と、直下SMB4×4予測残差SSD比較部503とを備える。次に、これらの各処理部について説明する。
直下SMB4×4予測残差SSD値記憶部501:直下SMBにおいて原信号を読み込み、4×4インター予測モードによって生じた予測残差信号のSSDを算出し、レジスタに出力する。
直下SMB4×4予測残差SSD閾値記憶部502:直下SMBにおいて4×4画素単位の動き推定で生じた予測残差信号SSDの閾値を読み込み、レジスタに出力する。ここで、この閾値は、外部より与えられ、動き推定性能判定のために使用される。この閾値は実験的に与える。
直下SMB4×4予測残差SSD比較部503:直下SMB4×4予測残差SSD値記憶部501より直下SMBにおいて4×4画素単位の動き推定で生じた予測残差信号SSDを読み込み、それが直下SMB4×4予測残差SSD閾値記憶部502より読み込んだ閾値以上であるのか否かの判定処理を行い、真の場合には符号化対象のマクロブロックを動き推定が難しいマクロブロックとして設定して、それを示すフラグを出力し、偽の場合には符号化対象のマクロブロックを動き推定が易しいマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図14の装置構成に従って、動き推定難/易判定部201,401は、直下レイヤで求められる予測残差信号のSSDの値が大きい場合には、符号化対象のマクロブロックを動き推定が難しいマクロブロックと判断するように処理するのである。
次に、図15の装置構成図について説明する。
図15の装置構成に従う場合、動き推定難/易判定部201,401は、符号化対象MB4×4Inter 予測モード実施部601と、符号化対象MB4×4Inter 予測残差信号記憶部602と、符号化対象MB4×4Inter 予測残差SSD値計算部603と、符号化対象MBBLSkip予測モード実施部604と、符号化対象MBBLSkip予測残差信号記憶部605と、符号化対象MBBLSkip予測残差SSD値計算部606と、SSD差分値計算部607と、SSD差分値記憶部608と、SSD差分閾値記憶部609と、SSD差分値比較部610とを備える。次に、これらの各処理部について説明する。
符号化対象MB4×4Inter 予測モード実施部601:符号化対象のマクロブロックにおいて原信号を読み込み、4×4Inter予測モードを実行し、生じた予測残差信号を符号化対象MB4×4Inter 予測残差信号記憶部602に出力する。
符号化対象MB4×4Inter 予測残差SSD値計算部603:符号化対象MB4×4Inter 予測残差信号記憶部602より符号化対象のマクロブロックの4×4Inter予測モードによって生じた予測残差信号を読み込み、その予測残差信号のSSDを算出し、レジスタに出力する。
符号化対象MBBLSkip予測モード実施部604:符号化対象のマクロブロックにおいて原信号を読み込み、BLSkip予測モードを実行し、生じた予測残差信号を符号化対象MBBLSkip予測残差信号記憶部605に出力する。
符号化対象MBBLSkip予測残差SSD値計算部606:符号化対象MBBLSkip予測残差信号記憶部605より符号化対象のマクロブロックのBLSkip予測モードによって生じた予測残差信号を読み込み、その予測残差信号のSSDを算出し、レジスタに出力する。
SSD差分値計算部607:レジスタより、符号化対象のマクロブロックの4×4Inter予測モードによって生じた予測残差信号のSSDと符号化対象のマクロブロックのBLSkip予測モードによって生じた予測残差信号のSSDとを読み込み、両者の差分SSDを計算し、その結果をSSD差分値記憶部608に出力する。
SSD差分閾値記憶部609:符号化対象のマクロブロックの4×4Inter予測モードによって生じた予測残差信号のSSDと符号化対象のマクロブロックのBLSkip予測モードによって生じた予測残差信号のSSDとの差分値に対する閾値を読み込み、レジスタに出力する。ここで、この閾値は、外部より与えられ、動き推定性能判定のために使用される。この閾値は実験的に与える。
SSD差分値比較部610:SSD差分値記憶部608よりSSD差分値を読み込み、それがSSD差分閾値記憶部609より読み込んだ閾値未満であるか否かの判定処理を行い、真の場合には符号化対象のマクロブロックを動き推定の難しいマクロブロックとして設定して、それを示すフラグを出力し、偽の場合には符号化対象のマクロブロックを動き推定の易しいマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図15の装置構成に従って、動き推定難/易判定部201,401は、拡張レイヤで求められる予測残差信号のSSDと直下レイヤで求められる予測残差信号のSSDとの差分値が小さい場合には、符号化対象のマクロブロックを動き推定が難しいマクロブロックと判断するように処理するのである。
〔2−4〕輝度変化大/小判定部301,402の装置構成
次に、図16および図17を用いて、輝度変化大/小判定部301,402の装置構成の一例について詳細に説明する。ここで、図16、図17のうちのいずれか一つが適用可能である。
最初に、図16の装置構成図について説明する。
図16の装置構成に従う場合、輝度変化大/小判定部301,402は、直下SMB隣接画素相関値計算部701と、直下SMB隣接画素相関値記憶部702と、直下SMB隣接画素相関値閾値記憶部703と、直下SMB隣接画素相関値比較部704とを備える。次に、これらの各処理部について説明する。
直下SMB隣接画素相関値計算部701:直下SMBの原信号を読み込み、隣接画素相関値を算出し、その値を直下SMB隣接画素相関値記憶部702に出力する。
直下SMB隣接画素相関値閾値記憶部703:直下SMBにおける隣接画素相関値の閾値を読み込み、その値をレジスタに出力する。ここで、この閾値は外部より与えられ、輝度変化大小判定のために使用される。この閾値は実験的に与える。
直下SMB隣接画素相関値比較部704:直下SMB隣接画素相関値記憶部702より直下SMBにおける隣接画素相関値を読み込み、それが直下SMB隣接画素相関値閾値記憶部703より読み込んだ閾値未満であるか否かの判定処理を行い、真の場合には符号化対象のマクロブロックを輝度変化が大きなマクロブロックとして設定して、それを示すフラグを出力し、偽の場合には符号化対象のマクロブロックを輝度変化が小さなマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図16の装置構成に従って、輝度変化大/小判定部301,402は、基本レイヤで求められる隣接画素相関値の値が小さい場合には、符号化対象のマクロブロックを輝度変化が大きいマクロブロックと判断するように処理するのである。
次に、図17の装置構成図について説明する。
図17の装置構成に従う場合、輝度変化大/小判定部301,402は、符号化対象MB隣接画素相関値計算部801と、符号化対象MB隣接画素相関値記憶部802と、符号化対象MB隣接画素相関値閾値記憶部803と、符号化対象MB隣接画素相関値比較部804とを備える。次に、これらの各処理部について説明する。
符号化対象MB隣接画素相関値計算部801:符号化対象のマクロブロックの原信号を読み込み、隣接画素相関値を算出し、その値を符号化対象MB隣接画素相関値記憶部802に出力する。
符号化対象MB隣接画素相関値閾値記憶部803:符号化対象のマクロブロックにおける隣接画素相関値の閾値を読み込み、その値をレジスタに出力する。ここで、この閾値は外部より与えられ、輝度変化大小判定のために使用される。この閾値は実験的に与える。
符号化対象MB隣接画素相関値比較部804:符号化対象MB隣接画素相関値記憶部802より符号化対象のマクロブロックにおける隣接画素相関値を読み込み、それが符号化対象MB隣接画素相関値閾値記憶部803より読み込んだ閾値未満であるか否かの判定処理を行い、真の場合には符号化対象のマクロブロックを輝度変化が大きなマクロブロックとして設定して、それを示すフラグを出力し、偽の場合には符号化対象のマクロブロックを輝度変化が小さなマクロブロックとして設定して、それを示すフラグを出力する。
このようにして、図17の装置構成に従って、輝度変化大/小判定部301,402は、拡張レイヤで求められる隣接画素相関値の値が小さい場合には、符号化対象のマクロブロックを輝度変化が大きいマクロブロックと判断するように処理するのである。
以上に説明したように、本発明を実現する場合、拡張レイヤ符号化部11は、符号化対象のマクロブロックが動きの激しい画像領域であることで各予測モードにより発生する予測残差信号の差のない画像領域であることを判断したり、符号化対象のマクロブロックが輝度変化のほとんどない画像領域であることで各予測モードにより発生する予測残差信号の差のない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、符号化対象のマクロブロックに適用する予測モードとして、直ちに、符号量のオーバーヘッドが小さくかつ予測信号の生成処理が簡単な予測モードであるレイヤ間予測モードを決定するように処理するのである。
この構成に従って、本発明によれば、動画像をスケーラブルに符号化するときに、符号量の増加を抑制しつつ高速にその符号化を実行することができるようになる。
以上に説明した実施の形態では、拡張レイヤ符号化部11は、符号化対象のマクロブロックが動きの激しい画像領域であることを判断したり、符号化対象のマクロブロックが輝度変化のほとんどない画像領域であることを判断する場合には、符号化コストによる予測モードの探索を行わずに、直ちにレイヤ間予測モードを選択するようにしたが、拡張レイヤにおける予測モードの中のスキップモードやダイレクトモードのような動き推定を行わない予測モードを用いることでも、本発明の目的を達成することができる。
すなわち、スキップモードの場合、符号化側は、ただ単に符号化対象のマクロブロックがスキップモードであるということを示す情報を符号化すればよく(予測残差信号も生成しない)、これを受けて、復号側は、復号処理によりスキップモードであることを判断すると、復号対象のマクロブロックの近傍に位置するマクロブロックの動きベクトルを復号対象のマクロブロックの動きベクトルと見なして、その動きベクトルの指す画像信号をそのまま復号対象のマクロブロックの画像信号と見なすようにするので、符号量の増加を抑制しつつ高速に符号化を実行することができるようになる。
また、ダイレクトモードの場合、符号化側は、ダイレクトモードであるということを示す情報を符号化するとともに、1つ前のフレームの動きベクトルに従って符号化対象のマクロブロックの動きベクトルを推定して、その推定した動きベクトルに従って予測残差信号を求めて符号化を行い、これを受けて、復号側は、復号処理によりダイレクトモードであることを判断するときには、1つ前のフレームの動きベクトルに従って復号対象のマクロブロックの動きベクトルを推定して、その動きベクトルの指す画像信号と復号処理により復号した予測残差信号とを加算することで復号対象のマクロブロックの画像信号を復元するようにするので、符号量の増加を抑制しつつ高速に符号化を実行することができるようになる。
これから、拡張レイヤ符号化部11は、符号化対象のマクロブロックが動きの激しい画像領域であることを判断したり、符号化対象のマクロブロックが輝度変化のほとんどない画像領域であることを判断する場合に、直ちにレイヤ間予測モードを選択するのではなくて、レイヤ間予測モードとスキップモードやダイレクトモードのような動き推定を行わない予測モードとを選択対象として符号化コストを算出して、それらの予測モードの中で符号化コストが最小となる予測モードを選択することで、符号化に用いる最終的な予測モードを決定するようにしてもよい。このとき、動き推定を行わない予測モードの中にイントラ符号化の予測モードについても含めるようにしてもよい。
このような構成を採ることでも、動画像をスケーラブルに符号化するときに、符号量の増加を抑制しつつ高速にその符号化を実行することができるようになる。しかも、レイヤ間予測モードよりもスキップモードの方が符号化コストが小さくなるような場合や、レイヤ間予測モードよりもダイレクトモードの方が符号化コストが小さくなるような場合には、直ちにレイヤ間予測モードを選択する方法に比べて、符号化効率を高めることができるようになる。