(57)【特許請求の範囲】
【請求項１】
画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら符号化を行う画像符号化方法であって，
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定ステップと，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域内に存在する被写体ごとに，各被写体を代表する１つの画素値を該被写体を識別する被写体識別子に対応づけて，被写体画素値として設定する被写体画素値設定ステップと，
処理領域内の各画素の画素値と被写体画素値とから，処理領域内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する被写体マップ生成ステップと，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成ステップと，
前記被写体マップを符号化する被写体マップ符号化ステップと，
前記被写体画素値を符号化する被写体画素値符号化ステップと，
前記予測画像を用いて処理領域に対する画像信号を予測符号化する画像信号符号化ステップとを有する
ことを特徴とする画像符号化方法。
【請求項２】
画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら符号化を行う画像符号化方法であって，
処理領域内に存在する被写体の数を被写体数として設定する被写体数設定ステップと，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に符号化済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体を識別する被写体識別子に対応づけて設定する被写体画素値設定ステップと，
処理領域内の各画素の画素値と被写体画素値とから，処理領域内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する被写体マップ生成ステップと，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成ステップと，
前記被写体マップを符号化する被写体マップ符号化ステップと，
前記予測画像を用いて処理領域に対する画像信号を予測符号化する画像信号符号化ステップとを有する
ことを特徴とする画像符号化方法。
【請求項３】
画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら符号化を行う画像符号化方法であって，
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定ステップと，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に符号化済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体を識別する被写体識別子に対応づけて設定する被写体画素値設定ステップと，
処理領域内の各画素の画素値と被写体画素値とから，処理領域内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する被写体マップ生成ステップと，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成ステップと，
前記被写体マップを符号化する被写体マップ符号化ステップと，
前記予測画像を用いて処理領域に対する画像信号を予測符号化する画像信号符号化ステップとを有する
ことを特徴とする画像符号化方法。
【請求項４】
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測する被写体数予測ステップと，
前記被写体数予測ステップで予測した被写体数または符号化済みの被写体数を用いて，前記被写体数設定ステップで設定した被写体数を予測符号化する被写体数符号化ステップとをさらに有し，
前記被写体数設定ステップでは，処理領域周辺の画像信号から予測した被写体数を設定する代わりに，処理領域内の画素に対する画像信号を用いて処理領域内に存在する被写体数を設定する
ことを特徴とする請求項１または請求項３に記載の画像符号化方法。
【請求項５】
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測する被写体画素値予測ステップと，
前記被写体画素値予測ステップで予測した被写体画素値または符号化済みの被写体画素値を用いて，前記被写体画素値設定ステップで設定した被写体画素値を予測符号化する被写体画素値符号化ステップとをさらに有し，
前記被写体画素値設定ステップでは，処理領域周辺の画像信号から予測した被写体画素値を設定する代わりに，処理領域内に存在する画素に対する画像信号を用いて，各被写体を代表する画素値を，前記被写体識別子に対応づけられる被写体画素値として設定する
ことを特徴とする請求項２または請求項３に記載の画像符号化方法。
【請求項６】
画像の符号データを復号するに際し，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら復号を行う画像復号方法であって，
処理領域周辺の既に復号済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定ステップと，
処理領域内の各画素に撮影されている被写体を被写体識別子によって表した被写体マップを前記符号データから復号する被写体マップ復号ステップと，
前記被写体識別子ごとに１つ設定された被写体画素値を前記符号データから復号する被写体画素値復号ステップと，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成ステップと，
前記予測画像を用いて処理領域に対する画像信号を前記符号データから復号する画像信号復号ステップとを有する
ことを特徴とする画像復号方法。
【請求項７】
画像の符号データを復号するに際し，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら復号を行う画像復号方法であって，
処理領域内に存在する被写体の数を被写体数として設定する被写体数設定ステップと，
処理領域内の各画素に撮影されている被写体を被写体識別子によって表した被写体マップを前記符号データから復号する被写体マップ復号ステップと，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に復号済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体識別子に対応づけて設定する被写体画素値設定ステップと，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成ステップと，
前記予測画像を用いて処理領域に対する画像信号を前記符号データから復号する画像信号復号ステップとを有する
ことを特徴とする画像復号方法。
【請求項８】
画像の符号データを復号するに際し，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら復号を行う画像復号方法であって，
処理領域周辺の既に復号済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定ステップと，
処理領域内の各画素に撮影されている被写体を被写体識別子によって表した被写体マップを前記符号データから復号する被写体マップ復号ステップと，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に復号済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体識別子に対応づけて設定する被写体画素値設定ステップと，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成ステップと，
前記予測画像を用いて処理領域に対する画像信号を前記符号データから復号する画像信号復号ステップとを有する
ことを特徴とする画像復号方法。
【請求項９】
処理領域周辺の既に復号済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測する被写体数予測ステップと，
前記被写体数予測ステップで予測した被写体数または復号済み被写体数を用いて，前記符号データから被写体数を復号する被写体数復号ステップとをさらに有し，
前記被写体数設定ステップでは，予測した被写体数を設定する代わりに，前記被写体数復号ステップで復号した被写体数を設定する
ことを特徴とする請求項６または請求項８に記載の画像復号方法。
【請求項１０】
処理領域周辺の既に復号済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測する被写体画素値予測ステップと，
前記被写体画素値予測ステップで予測した被写体画素値または復号済み被写体画素値を用いて，前記符号データから被写体画素値を復号する被写体画素値復号ステップとをさらに有し，
前記被写体画素値設定ステップでは，処理領域周辺の画像信号から予測した被写体画素値を設定する代わりに，前記復号データから復号した被写体画素値を設定する
ことを特徴とする請求項７または請求項８に記載の画像復号方法。
【請求項１１】
画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら符号化を行う画像符号化装置であって，
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定手段と，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域内に存在する被写体ごとに，各被写体を代表する１つの画素値を該被写体を識別する被写体識別子に対応づけて，被写体画素値として設定する被写体画素値設定手段と，
処理領域内の各画素の画素値と被写体画素値とから，処理領域内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する被写体マップ生成手段と，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成手段と，
前記被写体マップを符号化する被写体マップ符号化手段と，
前記被写体画素値を符号化する被写体画素値符号化手段と，
前記予測画像を用いて処理領域に対する画像信号を予測符号化する画像信号符号化手段とを備える
ことを特徴とする画像符号化装置。
【請求項１２】
画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら符号化を行う画像符号化装置であって，
処理領域内に存在する被写体の数を被写体数として設定する被写体数設定手段と，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に符号化済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体を識別する被写体識別子に対応づけて設定する被写体画素値設定手段と，
処理領域内の各画素の画素値と被写体画素値とから，処理領域内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する被写体マップ生成手段と，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成手段と，
前記被写体マップを符号化する被写体マップ符号化手段と，
前記予測画像を用いて処理領域に対する画像信号を予測符号化する画像信号符号化手段とを備える
ことを特徴とする画像符号化装置。
【請求項１３】
画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら符号化を行う画像符号化装置であって，
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定手段と，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に符号化済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体を識別する被写体識別子に対応づけて設定する被写体画素値設定手段と，
処理領域内の各画素の画素値と被写体画素値とから，処理領域内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する被写体マップ生成手段と，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成手段と，
前記被写体マップを符号化する被写体マップ符号化手段と，
前記予測画像を用いて処理領域に対する画像信号を予測符号化する画像信号符号化手段とを備える
ことを特徴とする画像符号化装置。
【請求項１４】
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測する被写体数予測手段と，
前記被写体数予測手段で予測した被写体数または符号化済みの被写体数を用いて，前記被写体数設定手段で設定した被写体数を予測符号化する被写体数符号化手段とをさらに備え，
前記被写体数設定手段は，処理領域周辺の画像信号から予測した被写体数を設定する代わりに，処理領域内の画素に対する画像信号を用いて処理領域内に存在する被写体数を設定する
ことを特徴とする請求項１１または請求項１３に記載の画像符号化装置。
【請求項１５】
処理領域周辺の既に符号化済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測する被写体画素値予測手段と，
前記被写体画素値予測手段で予測した被写体画素値または符号化済みの被写体画素値を用いて，前記被写体画素値設定手段で設定した被写体画素値を予測符号化する被写体画素値符号化手段とをさらに備え，
前記被写体画素値設定手段は，処理領域周辺の画像信号から予測した被写体画素値を設定する代わりに，処理領域内に存在する画素に対する画像信号を用いて，各被写体を代表する画素値を，前記被写体識別子に対応づけられる被写体画素値として設定する
ことを特徴とする請求項１２または請求項１３に記載の画像符号化装置。
【請求項１６】
画像の符号データを復号するに際し，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら復号を行う画像復号装置であって，
処理領域周辺の既に復号済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定手段と，
処理領域内の各画素に撮影されている被写体を被写体識別子によって表した被写体マップを前記符号データから復号する被写体マップ復号手段と，
前記被写体識別子ごとに１つ設定された被写体画素値を前記符号データから復号する被写体画素値復号手段と，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成手段と，
前記予測画像を用いて処理領域に対する画像信号を前記符号データから復号する画像信号復号手段とを備える
ことを特徴とする画像復号装置。
【請求項１７】
画像の符号データを復号するに際し，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら復号を行う画像復号装置であって，
処理領域内に存在する被写体の数を被写体数として設定する被写体数設定手段と，
処理領域内の各画素に撮影されている被写体を被写体識別子によって表した被写体マップを前記符号データから復号する被写体マップ復号手段と，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に復号済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体識別子に対応づけて設定する被写体画素値設定手段と，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成手段と，
前記予測画像を用いて処理領域に対する画像信号を前記符号データから復号する画像信号復号手段とを備える
ことを特徴とする画像復号装置。
【請求項１８】
画像の符号データを復号するに際し，画像フレームを予め定められた大きさの処理領域に分割し，処理領域ごとに各画素の画素値を予測しながら復号を行う画像復号装置であって，
処理領域周辺の既に復号済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測し，予測した被写体数を設定する被写体数設定手段と，
処理領域内の各画素に撮影されている被写体を被写体識別子によって表した被写体マップを前記符号データから復号する被写体マップ復号手段と，
処理領域内に前記設定した被写体数と同じ数の被写体が存在すると仮定して，処理領域周辺の既に復号済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測し，予測した被写体画素値をそれぞれ被写体識別子に対応づけて設定する被写体画素値設定手段と，
前記被写体マップに従って各画素に前記被写体画素値の値を割り当てることで処理領域に対する予測画像を生成する予測画像生成手段と，
前記予測画像を用いて処理領域に対する画像信号を前記符号データから復号する画像信号復号手段とを備える
ことを特徴とする画像復号装置。
【請求項１９】
処理領域周辺の既に復号済みの画素に対する画像信号を用いて処理領域内に存在する被写体の数であるところの被写体数を予測する被写体数予測手段と，
前記被写体数予測手段で予測した被写体数または復号済み被写体数を用いて，前記符号データから被写体数を復号する被写体数復号手段とをさらに備え，
前記被写体数設定手段は，予測した被写体数を設定する代わりに，前記被写体数復号手段で復号した被写体数を設定する
ことを特徴とする請求項１６または請求項１８に記載の画像復号装置。
【請求項２０】
処理領域周辺の既に復号済みの画素に対する画像信号を用いて被写体ごとの代表的な画素値であるところの被写体画素値を予測する被写体画素値予測手段と，
前記被写体画素値予測手段で予測した被写体画素値または復号済み被写体数を用いて，前記符号データから被写体画素値を復号する被写体画素値復号手段とをさらに備え，
前記被写体画素値設定手段は，処理領域周辺の画像信号から予測した被写体画素値を設定する代わりに，前記復号データから復号した被写体画素値を設定する
ことを特徴とする請求項１７または請求項１８に記載の画像復号装置。
【請求項２１】
請求項１から請求項５までのいずれか１項に記載の画像符号化方法をコンピュータに実行させるための画像符号化プログラム。
【請求項２２】
請求項６から請求項１０までのいずれか１項に記載の画像復号方法をコンピュータに実行させるための画像復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，画像の符号化および復号技術に関し，特に距離画像のような画像の符号化に適した画像符号化方法，画像復号方法，画像符号化装置，画像復号装置およびそれらのプログラムに関するものである。
【背景技術】
【０００２】
距離画像とは，カメラから被写体までの距離を画素値として表現した画像のことである。カメラから被写体までの距離はシーンの奥行きとも言えるため，距離画像は奥行き画像と呼ばれることもある。また，奥行きはデプス（Ｄｅｐｔｈ）とも呼ばれるため，デプスマップ（Ｄｅｐｔｈ  Ｍａｐ）と呼ばれることもある。コンピュータグラフィックスの分野では，デプスはＺバッファに蓄積された情報となるためＺ画像やＺマップと呼ばれることもある。なお，カメラから被写体までの距離の他に，表現対象空間上に張られた三次元座標系のＺ軸に対する座標値を距離（デプス）として用いることもある。一般に，撮影された画像に対して水平方向をＸ軸，垂直方向をＹ軸とするため，Ｚ軸はカメラの向きと一致するが，複数のカメラに対して共通の座標系を用いる場合など，Ｚ軸がカメラの向きと一致しない場合もある。以下では，距離・奥行き・Ｚ値を区別せずに距離情報と呼び，距離情報を画素値として表した画像を距離画像と呼ぶ。
【０００３】
距離情報を画素値として表す際に，物理量に対応する値をそのまま画素値とする方法と，最小値と最大値の間をある数に量子化して得られる値を用いる方法と，最小値からの差をあるステップ幅で量子化して得られる値を用いる方法がある。表現したい範囲が限られている場合には，最小値などの付加情報を用いるほうが距離情報を高精度に表現することができる。また，等間隔に量子化する際に，物理量をそのまま量子化する方法と物理量の逆数を量子化する方法とがある。一般に距離情報の逆数は視差に比例した値となるため，距離情報を高精度に表現する必要がある場合には，前者が使用され，視差情報を高精度に表現する必要がある場合には，後者が使用されることが多い。以下では，距離情報の画素値化の方法や量子化の方法に関係なく，距離情報が画像として表現されたものを全て距離画像と呼ぶ。
【０００４】
距離画像の利用用途の１つとして立体画像がある。一般的な立体画像の表現では，観測者の右目用の画像と左目用の画像からなるステレオ画像であるが，あるカメラにおける画像とその距離画像とを用いて立体画像を表現することができる（詳しい技術は非特許文献１を参照）。
【０００５】
このような１視点における映像と距離画像とを用いて表現された立体映像を符号化する方式には，ＭＰＥＧ−Ｃ  Ｐａｒｔ．３(ISO/IEC 23002-3) を使用することが可能である（詳しい内容は非特許文献２を参照）。
【０００６】
映像と距離画像とを複数視点に対して持つことで，単視点の場合に表現可能な立体映像よりも，大きな視差を持った立体映像を表現することが可能となる（詳細は非特許文献３を参照）。
【０００７】
また，このような立体映像を表現する用途以外に，距離画像は，鑑賞者が撮影カメラの配置を気にせずに自由に視点を移動できる自由視点映像を生成するデータの１つとしても使用される。このような撮影カメラとは別のカメラからシーンを見ているとしたときの合成画像を仮想視点画像と呼ぶことがあり，Image-based Rendering の分野で盛んにその生成法が検討されている。多視点の映像と距離画像とから仮想視点映像を生成する代表的な手法としては，非特許文献４に記載の手法がある。
【０００８】
距離画像は１つのコンポーネントで構成されているため，グレースケール画像とみなすことができる。また，被写体が実空間上で連続的に存在し，瞬間的に離れた位置へ移動することができないため，画像信号と同様に空間的相関および時間的相関を持つと言える。したがって，通常の画像信号や映像信号を符号化するために用いられる画像符号化方式や動画像符号化方式によって，距離画像や距離動画像は空間的冗長性や時間的冗長性を取り除きながら効率的に符号化することが可能である。実際にＭＰＥＧ−Ｃ  Ｐａｒｔ．３では，既存の動画像符号化方式を用いて符号化を行っている。
【０００９】
ここで，従来の一般的な映像信号の符号化方式について説明する。一般に被写体が実空間上で空間的および時間的連続性を持つことから，その見え方は空間的および時間的に高い相関をもつ。映像信号の符号化では，そのような相関性を利用して高い符号化効率を達成している。
【００１０】
具体的には，符号化対象ブロックの映像信号を既に符号化済みの映像信号から予測して，その予測残差のみを符号化することで，符号化する必要がある情報の量を減らし，高い符号化効率を達成する。代表的な映像信号の予想の手法としては，隣接するブロックから空間的に予測信号を生成する画面内予測や，異なる時刻に撮影された符号化済みフレームから被写体の動きを推定して時間的に予測信号を生成する動き補償予測がある。また，予測残差信号と呼ばれる予測の誤差も，空間的な相関と人間の視覚特性を利用するために，ＤＣＴ等を用いて予測残差信号を周波数空間でのデータへ変換し，低周波領域に残差信号のエネルギーを集中させることで，効率的に符号化を行う。各手法の詳細は動画像国際標準規格のＭＰＥＧ−２やＨ．２６４／ＭＰＥＧ−４  ＡＶＣ（非特許文献５）を参照されたい。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】C. Fehn, P. Kauff, M. Op de Beeck, F. Emst, W. IJsselsteijn, M. Pollefeys, L. Van Gool, E. Ofek and I. Sexton, "An Evolutionary and Optimised Approach on 3D-TV", Proceedings of International Broadcast Conference, pp.357-365, Amsterdam, The Netherlands, September 2002.
【非特許文献２】W.H.A. Bruls, C. Varekamp, R. Klein Gunnewiek, B. Barenbrug and A. Bourge, "Enabling Introduction of Stereoscopic (3D) Video: Formats and Compression Standards", Proceedings of IEEE International Conference on Image Processing, pp.I-89-I-92, San Antonio, USA, September 2007.
【非特許文献３】A. Smolic, K. Mueller, P. Merkle, N. Atzpadin, C. Fehn, M. Mueller, O. Schreer, R. Tanger, P. Kauff and T. Wiegand, "Multi-view video plus depth (MVD) format for advanced 3D video systems", Joint Video Team of ISO/IEC JTC1/SC29/WG11 and ITU-T SG16 Q.6, Doc. JVT-W100, San Jose, USA, April 2007.
【非特許文献４】C. L. Zitnick, S. B. Kang, M. Uyttendaele, S. A. J. Winder, and R. Szeliski, "High-quality Video View Interpolation Using a Layered Representation", ACM Transactions on Graphics, vol.23, no.3, pp.600-608, August 2004.
【非特許文献５】Recommendation ITU-T H.264, "Advanced video coding for generic audiovisual services", March 2009.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
被写体は実空間上で連続であるため高い空間相関をもち，瞬間的に離れた位置へ移動することが不可能であるため高い時間相関を持つ。したがって，空間相関と時間相関とを利用する既存の動画像符号化方式を用いることで，グレースケール画像として表した距離画像を効率的に符号化することが可能である。
【００１３】
しかしながら，距離情報は被写体内部では変化が少なく，被写体間では非常に大きな違いがあることから，空間的または時間的な予測の結果，正確な予測が達成でき予測残差が非常に小さくなるか，全く有効な予測ができず予測残差が非常に大きくなってしまうかのどちらかとなる。つまり，予測残差信号に強いエッジが生成されることになる。そのような強いエッジは，ＤＣＴ等を用いて周波数空間でのデータへ変換されると，低周波領域に残差信号のエネルギーを集中させることができず，多くの高周波成分が生じることになる。その結果，残差信号を効率的に符号化することができない。
【００１４】
図３０に，ある距離画像の９×９画素のブロックの一例を示した。このブロックには２つの被写体が存在し，一方の画素値が５０前後で，もう一方の画素値が２００前後である。空間的な予測では，このブロックの１行目と１列目の情報を用いて残りの８×８画素を予測する。予測の方法には様々なものがあるが，ここではＨ．２６４に採用されている代表的な２つの予測方法，水平予測と垂直予測の２つの例を示した。図の右側に示されるとおり，予測残差には大きく分けて−１５０前後，０前後，１５０前後の３種類の値しか存在せず，かなり大きなエッジが生じている。
【００１５】
図３１は，図３０に示した予測残差に８×８の二次元ＤＣＴをかけた結果を示している。直流（ＤＣ）成分は図の一番奥になり，左右に行くほど高周波を表している。図から明らかなように，どちらの場合にも，多くの高周波領域に大きな信号が生じており，残差信号のコンパクト化に失敗していることが分かる。
【００１６】
予測を行わずに，ＤＣＴ等の変換のみを用いて符号化することも可能であるが，別のブロックとの空間的相関を取り除くことができず，さらに符号化効率が悪化してしまう。また，ＤＣＴ等の変換を行わずに符号化することも可能であるが，その場合には，ブロック内の局所的な相関を利用することができず，効率的な符号化を達成することができない。
【００１７】
なお，一般に高周波領域の成分は主観品質に大きな影響を与えないといわれるため，上記のような信号でも，高周波領域の成分を大きく量子化するなどして，符号量を削減することも可能である。しかしながら，この例のように強いエッジがある部分の高周波成分を量子化してしまうと，エッジ周辺にモスキートノイズと呼ばれる歪みが発生してしまい，画像の品質を著しく低下させてしまう。
【００１８】
本発明は，以上のような事情に鑑みてなされたものであって，距離画像のような画素値がオブジェクトに大きく依存する画像に対して，オブジェクトごとの代表画素値とオブジェクト識別情報を用いることで，距離画像のような画素値がオブジェクトに大きく依存する画像を効率的に符号化する画像符号化技術およびそのビットストリームを復号する画像復号技術を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明は，上記課題を解決するため，画像を伝送または蓄積するにあたり，画像フレームを予め定められた大きさの処理領域（以下，ブロックともいう）に分割し，ブロックごとに各画素の画素値を予測しながら符号化を行う画像符号化において，ブロック内に，固定数の被写体またはブロックごとに可変数の被写体が存在すると仮定し，各ブロックの画像を，「各被写体を代表する画素値（以下，被写体画素値という）」，「各画素の被写体識別情報」という情報で表現する。すなわち，ブロック内の１つの画素に対して，どの被写体であるかを示す１つの被写体識別情報が割り振られ，１つの被写体識別情報には１つの被写体画素値が対応付けられる。この情報に従い，画素ごとに最も類似する値を割り当てるため，複雑なエッジ形状を保持した予測画像を生成することができる。なお，ブロック内に含まれる被写体の数は高々数個に限られるため，この情報の量は限られる。
【００２０】
特に，本発明では，符号化対象ブロックの被写体数もしくは被写体画素値，またはその双方を符号化対象ブロック周辺の既に符号化済みの画素に対する画像信号を用いて予測する。このように，既に符号化済みの画素に対する画像信号を用いて予測することにより，復号側において，符号化側と同じ情報を共有することができ，予測画像の生成に用いる付加情報の符号量を削減することができる。
【００２１】
ここでいう被写体とは，撮影されている個々の物体や人物そのものを意味するのではなく，情報を付与する対象であり，例えば類似する画像信号（輝度，色彩，デプスなど）を持つ領域である。つまり，単一物体であっても，場所によって異なる色を持つ場合には，複数の被写体とみなす。また，画像信号を符号化する必要のない物体や物体の一部分は被写体とはみなさない。すなわち，被写体は，フレーム内の実オブジェクト（被写体）とは関係なく，情報が付与されない実オブジェクトは，本発明でいう“被写体”ではない。また，１つの実オブジェクトに対して２つの情報が付与される場合には，それぞれ別の被写体として扱われる。
【００２２】
本発明およびその実施形態の説明で使用する用語を説明する。
【００２３】
「被写体数」：被写体数は，ブロック内に存在する“被写体”の数であり，情報を付与する対象の個数である。被写体数は，ブロック内の画素値を解析することで生成することができる。例えば，ブロック内の画素を画素値や位置などの情報を用いてクラスタリングし，各クラスタの評価値（例えば，画素値の分散）が一定値以下となるクラスタ数の最大値を被写体数とすることが可能である。また，経験などに基づいて外部から与えたり，予め定められた値を用いることも可能である。被写体数は，付加情報の１つである被写体画素値の個数を表現するために用いられる。また，被写体マップに登場する被写体識別子の最大値を表現するためにも用いられる。
【００２４】
「被写体画素値」：被写体画素値は，“被写体”に対して１つ定義される値であり，その“被写体”を代表する画素値である。画素値としては，輝度値や色差値，Ｒ値などを用いることができる。また，ＲＧＢ値などの複数の色コンポーネント値の集合を用いる場合もある。被写体画素値は，ブロック内の画素値を解析することで生成する。具体的には，ブロック内の画素を画素値や位置などの情報を用いて“被写体数”のクラスタにクラスタリングし，各クラスタごとに，含まれる画素の画素値に対する平均値や中央値を計算することで得る。ブロック内の各画素に対して，その画素の“被写体”に対応する被写体画素値を割り当てることで，そのブロックの予測画像を生成するために用いられる。
【００２５】
「被写体マップ」：被写体マップは，ブロック内の各画素にどの“被写体”が存在しているかを示したものである。具体的には，各画素を“被写体”（被写体画素値）に対応付けられた被写体識別子で表現したものである。最も単純な表現では２次元情報として表現できるが，木構造を用いて表現することもできる。被写体マップは，ブロック内の各画素に対して，その画素値に最も近い被写体画素値に対応する被写体識別子を割り当てることで生成する。なお，画素値と被写体画素値の類似度だけでなく，被写体マップ自体の表現に必要なビット数も鑑みて生成することもある。被写体マップは，予測画素を生成する際に，ブロック内の各画素に対して，どの被写体画素値を割り当てるのかを示すために用いられる。
【００２６】
「付加情報」：本発明で処理対象フレームの画像（映像）信号を予測するために用いる情報を付加情報と呼ぶ。付加情報は処理を行うブロック単位で生成される。付加情報は，基本的には，被写体数・被写体画素値・被写体マップの３つの情報で構成される。
【００２７】
「予測付加情報」：予測付加情報は，付加情報の予測値である。具体的には，被写体数の予測値と被写体画素値の予測値とで構成される。被写体数の予測値は，処理ブロック周辺の既に処理済みの画素群に対する画素値を解析することで生成することができる。例えば，処理ブロック周辺の既に処理済みの画素群の画素を画素値や位置などの情報を用いてクラスタリングし，各クラスタの評価値（例えば，画素値の分散）が一定値以下となるクラスタ数の最大値を被写体数の予測値とすることが可能である。
【００２８】
被写体画素値の予測値は，処理ブロック周辺の既に処理済みの画素群に対する画素値を解析することで生成する。具体的には，処理ブロック周辺の既に処理済みの画素群の画素を画素値や位置などの情報を用いて「被写体数」のクラスタにクラスタリングし，各クラスタごとに，含まれる画素の画素値に対する平均値や中央値を計算することで得た値を用いることができる。また，「被写体数の予測値」と同じ数のクラスタにクラスタリングし，各クラスタごとに，含まれる画素の画素値に対する平均値や中央値を計算することで得た値を用いる方法もある。さらに，上記のような方法で出た値を順に並べ，その順番より若い番号の被写体識別子が割り当てられた被写体画素値の値と，上記の方法で得た値とを用いて生成した値を用いる方法もある。
【００２９】
予測付加情報は，付加情報を符号化／復号する際の予測値として用いられる。つまり，被写体マップ以外の付加情報を符号化する際に，付加情報内の値と予測付加情報内の値との差分を計算し，その差分値を符号化する。被写体マップ以外の付加情報を復号する際には，符号データから復号して得られた値に，予測付加情報内の値を加えることで，付加情報の値を生成する。また，一部または全部の差分値を符号化せずに，予測付加情報の値をそのまま付加情報の値として用いる方法もある。
【００３０】
本発明の画像符号化では，以下の処理を行う。
（１）処理対象のブロック内に存在する被写体の数を被写体数として設定する。この被写体数の設定では，予め定められた被写体数を設定する場合と，ブロック内の画素値を解析して設定する場合と，ブロック周辺の符号化済みの画像情報から予測した被写体数を設定する場合とがある。
（２）ブロック内に被写体数だけの被写体が存在すると仮定して，被写体ごとに１つの画素値を，被写体を識別する被写体識別子に対応づけて被写体画素値として設定する。この被写体画素値の設定では，ブロック内の画素値を解析して設定する場合と，ブロック周辺の符号化済みの画像情報から被写体画素値を予測して設定する場合とがある。
（３）ブロック内の各画素の画素値と被写体画素値とから，ブロック内の各画素にどの被写体が撮影されているかを被写体識別子で示す被写体マップを生成する。
（４）被写体マップに従って各画素に被写体画素値の値を割り当てることでブロックに対する予測画像を生成する。
（５）被写体マップを符号化する。
（６）予測画像を用いてブロックに対する画像信号を予測符号化する。
（７）被写体数については，符号化する場合と，符号化しない場合がある。上記（１）の被写体数を設定するステップにおいて，予め定められた被写体数を設定した場合と，ブロック周辺の符号化済みの画像情報から予測した被写体数を設定した場合には，復号側で復号済みの画像情報から同じ情報を得られるので，符号化はしない。被写体数として，ブロック内の画素値を解析して設定した場合には，被写体数の符号量を少なくするため，被写体数を予測符号化する。すなわち，実際の被写体数と，ブロック周辺の符号化済みの画像情報から予測した被写体数との差分値を符号化する。
（８）被写体画素値についても，符号化する場合と，符号化しない場合がある。上記（２）の被写体画素値を設定するステップにおいて，ブロック周辺の符号化済みの画像情報から予測した被写体数を設定した場合には，復号側で復号済みの画像情報から同じ情報を得られるので，符号化はしない。被写体画素値として，ブロック内の画素値を解析して設定した場合には，被写体画素値の符号量を少なくするため，被写体画素値を予測符号化する。すなわち，予測画像の生成に用いる被写体画素値と，ブロック周辺の符号化済みの画像情報から予測した被写体画素値との差分値を符号化する。また，例えば被写体画素値が昇順に並ぶ場合に，直前の被写体画素値からの増分の情報を符号化してもよい。
（９）以上の被写体マップの符号データ，画像信号の符号データ，さらに被写体数を符号化した場合にはその符号データ，また，被写体画素値を符号化した場合にはその符号データを多重化して出力する。
【００３１】
以上のように，本発明では，予測画像を生成するために，被写体の代表的な画素値である被写体画素値，およびどの被写体画素値を用いて予測画像を生成するかを画素ごとに示す被写体マップの２つの付加情報を用いる。これらは被写体数に応じて定められる。予測画像の生成に「予測方向」という情報を用いていた従来技術と比較して，本発明は，付加情報の符号量が増加するが，正確な予測画像を生成することで，予測残差の符号化に必要な符号量を大幅に減らし，トータルとしてブロックあたりに必要な符号量を削減することができる。
【００３２】
また，付加情報についても予測によって符号量を削減することができる。すなわち，ブロックによって写っている被写体の数が異なる画像においても，予測被写体数を用いるとことにより，被写体数を表現するのに必要な符号量を削減することができる。ブロックによって写っている被写体の数が異なる場合というのは，次の２つの場合が考えられる。ある被写体が隣接領域には存在するが，現在のブロックには存在しない場合と，ある被写体が隣接領域には存在しないが，現在のブロックには存在する場合である。つまり，現在のブロックの被写体数は，隣接領域の被写体の数を基準として，増加もしくは減少すると言える。そのため，現在のブロックの被写体数を符号化する場合に，被写体数をそのまま符号化するのではなく，「被写体数の増減」の情報を符号化することで，必要な符号量を削減できる。
【００３３】
また，ブロックによって写っている被写体の種類（色彩など）が変化する画像においても，予測被写体画素値を用いることにより，各被写体を代表する被写体画素値を表現するのに必要な符号量を削減することができる。ブロックによって写っている被写体の色彩が異なる場合というのは，次の２つの場合が考えられる。（ａ）隣接領域と同じ被写体であるが照明効果が異なる場合，（ｂ）隣接領域には被写体が存在しない場合である。（ａ）の照明効果の場合，同じ被写体の色彩であるため，その色彩の違いは，隣接領域の被写体の色彩を基準として，変化したものと言える。そのため，現在のブロックの被写体画素値を符号化する場合には，被写体画素値をそのまま符号化するのではなく，「被写体画素値の変化」の情報を符号化することで，必要な符号量を削減できる。（ｂ）の新たな被写体の場合，隣接領域にはその被写体が存在しなかったことから，「予測被写体画素値」は有効な予測であるとは言えないが，被写体画素値をその値が小さな順に符号化している場合，被写体画素値をそのまま符号化するのではなく，直前に符号化した被写体画素値からの増分の情報を符号化することで，必要な符号量を削減することができる。
【００３４】
本発明の画像復号では，以下の処理を行う。
（１）ブロック内に存在する被写体の数を被写体数として設定する。この被写体数の設定では，予め定められた被写体数を設定する場合と，ブロック周辺の復号済みの画像情報から予測した被写体数を設定する場合と，符号データを復号して得られた被写体数を設定する場合とがある。被写体数を符号データから復号する場合には，ブロック周辺の復号済みの画像情報から予測した被写体数を用いて復号する。
（２）各被写体識別子に対応づけられた被写体画素値を設定する。この被写体画素値の設定では，ブロック周辺の復号済みの画像情報から予測した被写体画素値を設定する場合と，符号データを復号して得られた被写体画素値を設定する場合とがある。被写体画素値を符号データから復号する場合には，ブロック周辺の復号済みの画像情報から予測した被写体画素値または直前に復号した被写体画素値などを用いて復号する。
（３）符号データから被写体マップを復号する。
（４）被写体マップに従って各画素に被写体画素値の値を割り当てることでブロックに対する予測画像を生成する。
（５）予測画像を用いてブロックに対する画像信号を符号データから復号する。
【００３５】
これにより，上記画像符号化によって符号化された画像を復号することができる。
【発明の効果】
【００３６】
本発明によれば，距離画像のような画素値が被写体に大きく依存し，局所的には限られた数の被写体しか存在しないような画像に対して，画像全体を分割して領域ごとに異なる方法で画像信号を予測しながら画像を予測符号化する場合に，被写体の存在の空間的な連続性を用いて，被写体数や各被写体の代表的な画素値を予測することで，被写体ごとの代表画素値と被写体識別情報を用いた画像信号予測に必要な付加情報の表現に必要な符号量を削減し，効率的な画像符号化を実現することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の第１実施形態による画像符号化装置の構成例を示すブロック図である。
【図２】第１実施形態による画像符号化装置の処理フローチャートである。
【図３】被写体数設定処理のフローチャートである。
【図４】被写体画素値設定処理のフローチャートである。
【図５】被写体マップの例を示す図である。
【図６】符号化対象画素に被写体識別子を割り当てる例を説明する図である。
【図７】木構造被写体マップの例を示す図である。
【図８】木構造被写体マップの例を示す図である。
【図９】第１実施形態による画像符号化装置の他の構成例を示すブロック図である。
【図１０】本発明の第２実施形態による画像符号化装置の構成例を示すブロック図である。
【図１１】第２実施形態による画像符号化装置の処理フローチャートである。
【図１２】第３実施形態による画像復号装置の構成例を示すブロック図である。
【図１３】第３実施形態による画像復号装置の処理フローチャートである。
【図１４】復号された木構造被写体マップの例を示す図である。
【図１５】復号された被写体マップの例を示す図である。
【図１６】第３実施形態による画像復号装置の他の構成例を示すブロック図である。
【図１７】第４実施形態による画像復号装置の構成例を示すブロック図である。
【図１８】第４実施形態による画像復号装置の処理フローチャートである。
【図１９】符号データのブロックごとのシンタックスの一例を示す図である。
【図２０】符号データのブロックごとのシンタックスの一例を示す図である。
【図２１】予測画像の生成に用いる付加情報のデータ構造の例を示す図である。
【図２２】予測付加情報のデータ構造の例を示す図である。
【図２３】各ブロックで符号化されるデータの構造の例１を示す図である。
【図２４】各ブロックで符号化されるデータの構造の例２を示す図である。
【図２５】各ブロックで符号化されるデータの構造の例３を示す図である。
【図２６】各ブロックで符号化されるデータの構造の例４を示す図である。
【図２７】画像符号化装置をコンピュータとソフトウェアプログラムとによって構成する場合のハードウェア構成例を示す図である。
【図２８】画像復号装置をコンピュータとソフトウェアプログラムとによって構成する場合のハードウェア構成例を示す図である。
【図２９】本手法と従来手法を用いて符号化した場合の発生符号量の比較を示す図である。
【図３０】本発明の課題を説明する図である。
【図３１】本発明の課題を説明する図である。
【発明を実施するための形態】
【００３８】
本発明では，画像全体を分割して領域ごとに異なる方法で画像信号を予測しながら画像を予測符号化する場合に，被写体（オブジェクト）の存在の空間的な連続性を用いて，被写体数や各被写体の代表的な画素値を，処理領域の周辺の既に処理が終了した領域の復号画素値を用いて予測する。これにより，処理領域内の各被写体を代表する画素値と，処理領域内の各画素の被写体を識別するための情報とを用いた任意の被写体形状に対応した高精度な画像信号予測を行う際に必要となる「処理領域内の被写体数」や「処理領域内の各被写体を代表する画素値」の符号化に必要な符号量を減らし，効率的な画像符号化を実現することが可能となる。
【００３９】
また，符号化側と復号側で同じ情報となる既に処理済みの周辺領域における画素の復号画素値を用いることで，Ｈ．２６４のように，領域ごとに多数の画像信号予測モードの中から１つを選択しながら符号化を行う場合においても，適切に予測を行うことができる。
【００４０】
以下，本発明の一実施形態を，図面を参照して説明する。
【００４１】
〔第１実施形態：画像符号化装置〕
まず，第１実施形態について説明する。図１は，本発明の第１実施形態による画像符号化装置の構成例を示すブロック図である。画像符号化装置１００は，図１に示すように，符号化対象フレーム入力部１０１，符号化対象フレームメモリ１０２，被写体数設定部１０３，被写体画素値設定部１０４，被写体マップ生成部１０５，被写体マップ符号化部１０６，予測画像生成部１０７，画像信号符号化部１０８，画像信号復号部１０９，復号画像メモリ１１０，および多重化部１１１を備えている。
【００４２】
符号化対象フレーム入力部１０１は，符号化対象となる画像フレームを入力する。符号化対象フレームメモリ１０２は，入力された符号化対象フレームを蓄積する。被写体数設定部１０３は，予め定められた大きさの処理領域に含まれる被写体数を設定する。被写体画素値設定部１０４は，処理領域に与えられた数の被写体が存在すると仮定して，処理領域の周辺の復号画像を用いて，被写体ごとに被写体を代表する画素値を設定する。処理領域の被写体ごとに生成された被写体を代表する画素値を被写体画素値と呼ぶ。
【００４３】
被写体マップ生成部１０５は，処理領域内の各画素に撮影されている被写体を識別する情報を表す被写体マップを生成する。被写体マップ符号化部１０６は，被写体マップを符号化する。予測画像生成部１０７は，処理領域に対して生成された被写体画素値と被写体マップから，処理領域に対する予測画像を生成する。
【００４４】
画像信号符号化部１０８は，処理領域ごとに予測画像を用いて符号化対象フレームの画像信号を符号化する。画像信号復号部１０９は，処理領域ごとに予測画像を用いて符号化対象フレームの画像信号の符号データを復号する。復号画像メモリ１１０は，復号された画像信号を蓄積する。多重化部１１１は，被写体マップの符号データと，符号化対象フレームの画像信号の符号データを多重化して出力する。
【００４５】
図２は，第１実施形態による画像符号化装置１００の動作を説明するためのフローチャートである。このフローチャートに従って，画像符号化装置１００の実行する処理について詳細に説明する。
【００４６】
まず，符号化対象フレーム入力部１０１により，符号化対象フレームを入力し，符号化対象フレームメモリ１０２に格納する（ステップＳ１０１）。符号化対象フレームの格納が終了したら，符号化対象フレームを分割し，分割した領域ごとに，符号化対象フレームの画像信号を符号化する（ステップＳ１０２〜Ｓ１１２）。つまり，符号化対象ブロックインデックスをｂｌｋ，総符号化対象ブロック数をｎｕｍＢｌｋｓで表すとすると，ｂｌｋを０で初期化し（ステップＳ１０２），その後，ｂｌｋに１を加算しながら（ステップＳ１１１），ｂｌｋがｎｕｍＢｌｋｓになるまで（ステップＳ１１２），以下の処理（ステップＳ１０３〜Ｓ１１０）を繰り返す。
【００４７】
符号化対象ブロックごとに繰り返される処理では，まず，被写体数設定部１０３で，復号画像メモリ１１０に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ブロックｂｌｋに含まれる被写体の数ｎｕｍＯｂｊｓを設定する（ステップＳ１０３）。ここで，復号画像メモリ１１０に蓄積されているブロックｂｌｋの周辺画素の集合を第１の参照画素と呼ぶ。この第１の参照画素の選び方や第１の参照画素に対する画素値から被写体数ｎｕｍＯｂｊｓを設定する方法には，復号側と同じ処理であれば，どのような方法を用いてもかまわない。
【００４８】
第１の参照画素の選び方としては，例えば，予め定められた位置関係に存在する画素群としてもかまわないし，フレームやブロック群などの単位ごとに選び方を示す情報を符号化して復号側へ伝えてもかまわない。
【００４９】
被写体数ｎｕｍＯｂｊｓの決定方法としては，例えば，参照画素に対してｋ−ｍｅａｎｓ法やＡｆｆｉｎｉｔｙ  Ｐｒｏｐａｇａｔｉｏｎなどのクラスタリング手法を適用し，各クラスタ内の画素値分散が全てのクラスタで予め定められた値以下になるクラスタリング結果のうち，最小のクラスタ数をｎｕｍＯｂｊｓとして設定する方法がある。なお，クラスタリングに用いる尺度としては，画素値のみを用いてもかまわないし，画素値と画素位置とからなる値を用いてもかまわない。
【００５０】
図３に，被写体数を設定する処理（図２のステップＳ１０３）の詳細なフローチャートを示す。被写体数を設定する処理では，図３（Ａ）に示すように，まず，復号画像メモリ１１０に蓄積されているブロックｂｌｋの周辺画素の集合であるところの第１の参照画素を設定する（ステップＳ１０３１）。次に，第１の参照画素に含まれる画素の情報（位置や画素値）を解析して被写体数を決定する（ステップＳ１０３２）。
【００５１】
このステップＳ１０３２の詳細なフローの例を，図３（Ｂ）に示す。まず，被写体数ｎｕｍＯｂｊｓを１で初期化した後（ステップＳ１０３２１），第１の参照画素に含まれる画素群をｎｕｍＯｂｊｓ個のクラスタに分割し（ステップＳ１０３２２），各クラスタに対してクラスタ内の画素の画素値の分散値ｖａｒを計算し，その最大値をｍａｘＶａｒとする（ステップＳ１０３２３〜Ｓ１０３２８）。ｍａｘＶａｒが予め定められた閾値ｔｈよりも小さければ（ステップＳ１０３２９），被写体数として現在のｎｕｍＯｂｊｓを採用し，処理を終了する。そうでない場合には，ｎｕｍＯｂｊｓに１を加えて（ステップＳ１０３３０），再度クラスタリングする処理（ステップＳ１０３２２）に戻って同様に処理を繰り返す。
【００５２】
なお，第１の参照画素を使わずに常に同じ値を設定してもかまわないし，被写体数が多い場合には，後述する被写体マップの符号量が大きくなり効率的な符号化を実現できないため，被写体数に最大値を別途設定し，その最大値を超えない範囲で設定するようにしてもよい。
【００５３】
被写体数の設定が終了したら，次に，被写体画素値設定部１０４で，復号画像メモリ１１０に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ブロックｂｌｋ内の被写体ごとに，被写体を代表する画素値を設定する（ステップＳ１０４）。以下では，この被写体を代表する画素値を被写体画素値と呼び，Ｖａｌｕｅ（ｉ）と表す。ここで，ｉは被写体を識別するための被写体識別子とし，０以上ｎｕｍＯｂｊｓ未満の整数である。被写体識別子は予め定められた規則に従って割り当てる。ここでは，被写体画素値が小さい順に割り当てられているとする。また，ここで使われる復号画像メモリ１１０に蓄積されているブロックｂｌｋの周辺画素の集合を第２の参照画素と呼ぶ。第２の参照画素の選び方や第２の参照画素に対する画素値を用いて被写体画素値を決定する方法には，復号側と同じ処理であれば，どのような方法を用いてもかまわない。
【００５４】
第２の参照画素の選び方としては，例えば，予め定められた位置関係に存在する画素群としてもかまわないし，フレームやブロック群などの単位ごとに選び方を示す情報を符号化して復号側へ伝えてもかまわない。また，第１の参照画素と同じでもかまわないし，異なっていてもかまわない。
【００５５】
各被写体を代表する被写体画素値を設定する方法としては，例えば，第２の参照画素を前述のようなクラスタリング手法を用いて，ｎｕｍＯｂｊｓ個のクラスタに分割し，各クラスタに含まれる画素の画素値の平均値や中央値を，被写体画素値として設定する方法がある。なお，第１の参照画素と第２の参照画素が同じであり，被写体数を設定する際に，クラスタリングを用いている場合には，被写体数と被写体画素値を同時に設定してもかまわない。
【００５６】
図４に，被写体画素値を設定する処理（図２のステップＳ１０４）の詳細なフローチャートを示す。被写体画素値を設定する処理では，図４（Ａ）に示すように，まず，復号画像メモリ１１０に蓄積されているブロックｂｌｋの周辺画素の集合であるところの第２の参照画素を設定する（ステップＳ１０４１）。次に，第２の参照画素に含まれる画素の情報（位置や画素値）を解析して，ｎｕｍＯｂｊｓ個の被写体画素値Ｖａｌｕｅ（ｉ）を決定する（ステップＳ１０４２）。
【００５７】
このステップＳ１０４２の詳細なフローの例を，図４（Ｂ）に示す。まず，第２の参照画素に含まれる画素群をｎｕｍＯｂｊｓ個のクラスタに分割する（ステップＳ１０４２１）。なお，クラスタリングに用いる情報としては，画素位置や画素値が使用できる。クラスタリングが終了したならば，クラスタごとに，そのクラスタに含まれる画素群に対して画素値の平均値または中央値を求める（ステップＳ１０４２２〜Ｓ１０４２５）。その後，得られた値を予め定められた順（ここでは昇順）にソートして，Ｖａｌｕｅ（ｉ）とする（ステップＳ１０４２６）。
【００５８】
別の方法としては，ｎｕｍＯｂｊｓ個以下のクラスタ数で，クラスタ内の画素値分散値の最大値が別途定められた閾値より小さくなる最小のクラスタ数で分割して，クラスタごとの平均値や中央値を被写体画素値に設定し，ｎｕｍＯｂｊｓ個に不足する分は適当に被写体画素値を設定する方法がある。例えば，第１の参照画素と第２の参照画素が異なる場合には，第１の参照画素を用いて求めたｎｕｍＯｂｊｓが，第２の参照画素を分割するのに最適なクラスタ数でない可能性がある。そのため，このように第２の参照画素に対して，再度最適なクラスタを求めることで，より適切な被写体画素値を設定することが可能となる。
【００５９】
ｎｕｍＯｂｊｓが２の場合における軽量な被写体画素値の決定方法としては，第２の参照画素の全画素の画素値の平均値を求め，その平均値より画素値が小さい第２の参照画素の平均値または中央値と，その平均値以上の画素値を持つ第２の参照画素の平均値または中央値とを被写体画素値とする方法もある。
【００６０】
被写体画素値が得られたら，次に，被写体マップ生成部１０５でブロックｂｌｋに対して被写体マップを生成する（ステップＳ１０５）。ここで，被写体マップとは，ブロックｂｌｋの各画素に対して，被写体識別子を割り当てたものである。被写体マップは，例えば図５のような２次元情報である。各画素に対して被写体識別子を割り当てる方法としては，各画素に対して，その画素値に最も近い被写体画素値を持つ被写体識別子を割り当てる方法がある。
【００６１】
別の方法としては，ブロックｂｌｋ内の画素に対して，前述のようなクラスタリングを行い，各クラスタを代表する画素値を決定し，その値に最も近い被写体画素値を持つ被写体識別子を，そのクラスタに属する全ての画素に対して設定する方法がある。この際，クラスタ数をｎｕｍＯｂｊｓとしてもかまわないし，ｎｕｍＯｂｊｓ以下としてもかまわないし，任意の数と最適なクラスタを求めてもかまわない。
【００６２】
さらに別の方法としては，複数の被写体マップ候補を生成し，被写体マップ候補ごとに，その被写体マップ候補を用いて符号化を行った際の符号量と歪み量との重み付き和で与えられるレート歪みコストを計算し，その値が最小となるものを被写体マップとして設定する方法がある。可能性のある全ての被写体マップを被写体マップ候補にしてもかまわないし，限定した幾つかの特徴的な被写体マップのみを被写体マップ候補にしてもかまわない。特徴的な被写体マップとしては，各画素に対して，その画素値に最も近い被写体画素値を持つ被写体識別子を割り当てて生成した被写体マップや，全ての画素が同じ被写体識別子となるような被写体マップ，水平や垂直に２分割された被写体マップなどがある。
【００６３】
次に，生成された被写体マップを，被写体マップ符号化部１０６で符号化する（ステップＳ１０６）。符号化にはどのような方法を用いてもかまわない。例えば，被写体数に応じて各被写体識別子に固定長または可変長の符号を割り当て，ラスタースキャンやジグザグスキャンなどを用いて２次元のマップ情報を１次元のバイナリデータへ変換することで符号化してもかまわない。
【００６４】
別の方法としては，予め定められた順序にスキャンしながらブロックｂｌｋ内の各画素に対する被写体識別子を符号化する際に，各画素に対して周囲の既に符号化済みの画素群を第３の参照画素に設定し，その第３の参照画素に対する被写体識別子に応じて，確率テーブルを変化させながら算術符号化する方法がある。符号化対象の画素との位置関係で第３の参照画素となる画素群を決定する場合，該当する位置の画素が画面外であったり，被写体マップを用いないＨ．２６４のイントラ予測などで予測符号化されていたりすることがある。そのような画素に対しては予め定められた被写体識別子を割り当てるか，不明のラベルを割り当てて確率テーブルを別途定義してもかまわない。
【００６５】
例えば，被写体数が２の際に，図６（Ａ）のように符号化対象画素ｘに対して，３つの画素ａ，ｂ，ｃを第３の参照画素として定義し，不明のラベル（図中のＮ）も用いる場合には，図６（Ｂ）のように，全部で２７通りの確率テーブルを用いて符号化することになる。
【００６６】
この確率テーブルは復号側で同じものが得られる限りは，固定のものであっても，それまでの符号化履歴に応じて更新を行う可変の確率テーブルであってもかまわない。一般に同じ被写体は連続して出現するため，このように周辺の状況を用いることで，符号化対象シンボルの発生確率をより高精度に表現することが可能となり，算術符号化における符号化効率を向上させることが可能となる。なお，上記の例では隣接する３つの画素を第３の参照画素として設定したが，より多くの周辺画素の情報を用いることで，発生確率を高精度に予測することが可能となる。
【００６７】
さらに別の方法として，被写体マップを木構造の情報に変換してから符号化する方法がある。具体的には，ブロックｂｌｋをルートとして，各ノードの子ノードには，親ノードのブロックを分割した複数のサブブロックを対応させた木構造を用いる。このような木構造を用いることで，まとまって存在する単一被写体の画素集合を効率よく表現することが可能となり，符号化効率を向上させることが可能となる。
【００６８】
木構造としては，任意の定義のものを用いることが可能である。例えば，各ノードに対して，そのノードに対応するブロック内の全ての画素の被写体識別子が同じか否かを表すバイナリ情報を付加し，子ノードとして，被写体識別子が全て同じ場合にはその被写体識別子の番号を持つリーフ，被写体識別子が全て同じではない場合には自身のブロックを４分割して生成したサブブロックに対応する４つのノードを定義して木構造の情報を生成することができる。なお，対応するブロックが１画素になった場合には，全ての画素の被写体識別子が同じか否かを表すバイナリ情報のノードを省略することができる。図５の被写体マップに対して，以上の方法により生成した木構造を図７に示す。
【００６９】
別の定義としては，各ノードに対して，そのノードに対応するブロック内の全ての画素の被写体識別子が同一な場合にはその被写体識別子の番号に１を足した数，そうでない場合には０を情報として付与し，情報０を付与されたノードに対してのみ，そのブロックを４分割したサブブロックに対する子ノードを定義する方法もある。図５の被写体マップに対して，この方法で生成した木構造が図８である。
【００７０】
生成された木を符号化する際には，木を深さ優先探索，または幅優先探索してスキャンし，スキャン順に各ノードの持つ情報を符号化する。このときリーフとリーフ以外を分けて符号化することも可能である。図７を木の深さ優先探索によるスキャン結果の数列は，01001000222110221201011000011111となる。これをリーフとそれ以外とで分けると，リーフは0002221221201000111 ，リーフ以外は0101010011011 となる。図８の木の深さ優先探索によるスキャン結果の数列は，0101013332033230120111222 となる。
【００７１】
数列はそのまま２値化して符号データとしてもかまわないし，隣接画素における被写体識別子の状況に応じて確率テーブルを切り替えながら算術符号化してもかまわない。例えば，図７のリーフ以外を符号化する場合，各ノードに対応するブロックに隣接する画素の被写体識別子を調べ，最も画素数が多い被写体識別子に対する画素数に応じて確率テーブルを切り替える方法がある。また，図７のリーフを符号化する場合には，各ノードに対応するブロックに隣接する画素の被写体識別子の状況に応じて確率テーブルを切り替える方法がある。なお，確率テーブルは復号側で同じものが得られる限りは，固定のものであっても，それまでの符号化履歴に応じて更新を行う可変の確率テーブルであってもかまわない。
【００７２】
被写体マップの符号化が終了したら，次に，予測画像生成部１０７で，被写体マップと被写体画素値とを用いて，ブロックｂｌｋに対する予測画像を生成する（ステップＳ１０７）。具体的には，各画素に対して，被写体マップから得られる被写体識別子に対応する被写体画素値を割り当てることで予測画像を生成する。
【００７３】
なお，上記のように作られた予測画像に対して，さらにディザを加えてもかまわない。被写体マップと被写体画素値を用いた予測画像では，被写体数と同じ数の画素値しか存在しないため，自然画とは異なる性質をもつ画像となる。そのため，ディザを加えることでより自然画に近い変化を与えることができる。ディザ生成には任意の方法を用いることが可能であるが，復号側で同じものを発生できるようにする必要がある。そのために付加情報が必要な場合には，その付加情報を符号化する必要がある。
【００７４】
予測画像が得られたら，画像信号符号化部１０８で，ブロックｂｌｋに対する画像信号を予測符号化する（ステップＳ１０８）。符号化にはどのような方法を用いてもかまわない。ＭＰＥＧ−２やＨ．２６４／ＡＶＣなどの一般的な符号化では，ブロックｂｌｋの画像信号と予測画像との差分信号に対して，ＤＣＴなどの周波数変換，量子化，２値化，エントロピー符号化を順に施すことで符号化を行う。
【００７５】
次に，画像信号復号部１０９で，符号化結果として得られた符号データと予測画像とを用いて，ブロックｂｌｋに対する画像信号を復号し，復号結果を復号画像メモリ１１０に蓄積する（ステップＳ１０９）。ここでは，符号化時に用いられた手法に対応する手法を用いて符号データを復号する。例えば，ＭＰＥＧ−２やＨ．２６４／ＡＶＣなどの一般的な符号化であれば，符号データに対して，エントロピー復号，逆２値化，逆量子化，ＩＤＣＴなどの周波数逆変換を順に施し，得られた２次元信号に対して予測信号を加え，最後に画素値の値域でクリッピングを行うことで画像信号を復号する。復号して得られた画像信号は，他のブロックを符号化する際に，被写体数や被写体画素値を生成または予測するために用いられる。
【００７６】
最後に，多重化部１１１で，被写体マップの符号データと，画像信号の符号データとを多重化して出力する（ステップＳ１１０）。なお，ここではブロックごとに多重化しているが，フレーム単位で多重化してもかまわない。ただし，その場合には復号側で１フレーム分の符号データをバッファリングしてから復号する必要が生じる。
【００７７】
なお，第１実施形態では，被写体数と被写体画素値の両方をブロックｂｌｋの周辺画素の画素値を分析して設定しているが，どちらか一方のみをブロックｂｌｋの周辺画素の画素値を分析して設定してもかまわない。その場合，設定されなかった方の情報は，ブロックｂｌｋの画素値を分析して設定し，設定された情報を符号化し，その符号データを被写体マップの符号データと画像信号の符号データと共に多重化して出力することになる。
【００７８】
図９に，ブロックｂｌｋの周辺画素の画素値を分析して被写体数のみを設定し，被写体画素値を符号化する場合の画像符号化装置のブロック図を示す。図９に示す画像符号化装置１００′が，図１に示す画像符号化装置１００と違う点は，被写体画素値設定部１０４が設定した各被写体の被写体画素値を符号化する被写体画素値符号化部１１２を有し，被写体画素値符号化部１１２が符号化した被写体画素値の符号データを，付加情報として多重化部１１１で多重化することである。他の構成は，図１に示した画像符号化装置１００と同様である。
【００７９】
〔第２実施形態：画像符号化装置〕
次に，本発明の第２実施形態について説明する。図１０は本発明の第２実施形態による画像符号化装置の構成例を示すブロック図である。画像符号化装置２００は，図１０に示すように，符号化対象フレーム入力部２０１，符号化対象フレームメモリ２０２，被写体数設定部２０３，被写体画素値設定部２０４，被写体マップ生成部２０５，被写体数予測部２０６，被写体数符号化部２０７，被写体マップ符号化部２０８，被写体画素値予測部２０９，被写体画素値符号化部２１０，予測画像生成部２１１，画像信号符号化部２１２，画像信号復号部２１３，復号画像メモリ２１４，および多重化部２１５を備えている。
【００８０】
符号化対象フレーム入力部２０１は，符号化対象となる画像フレームを入力する。符号化対象フレームメモリ２０２は，入力された符号化対象フレームを蓄積する。被写体数設定部２０３は，予め定められた大きさの処理領域に含まれる被写体数を設定する。被写体画素値設定部２０４は，処理領域に与えられた数の被写体が存在すると仮定して，処理領域に対する入力フレームの画素値を用いて，被写体ごとに被写体を代表する画素値を設定する。この処理領域の被写体ごとに生成された被写体を代表する画素値を被写体画素値と呼ぶ。被写体マップ生成部２０５は，処理領域内の各画素に撮影されている被写体を識別する情報を表す被写体マップを生成する。
【００８１】
被写体数予測部２０６は，処理領域に含まれる被写体数の予測値を設定する。この被写体数の予測値を予測被写体数と呼ぶ。被写体数符号化部２０７は，予測被写体数を用いて被写体数を符号化する。被写体マップ符号化部２０８は，被写体マップを符号化する。被写体画素値予測部２０９は，処理領域に与えられた数の被写体が存在すると仮定して，処理領域の周辺の復号画像を用いて，被写体画素値の予測値を設定する。この被写体画素値の予測値を予測被写体画素値と呼ぶ。被写体画素値符号化部２１０は，予測被写体画素値を用いて被写体画素値を符号化する。
【００８２】
予測画像生成部２１１は，処理領域に対して生成された被写体画素値と被写体マップから，処理領域に対する予測画像を生成する。画像信号符号化部２１２は，処理領域ごとに予測画像を用いて符号化対象フレームの画像信号を符号化する。画像信号復号部２１３は，処理領域ごとに予測画像を用いて符号化対象フレームの画像信号の符号データを復号する。復号画像メモリ２１４は，復号された画像信号を蓄積する。多重化部２１５は，被写体数の符号データと，被写体マップの符号データと，被写体画素値の符号データと，符号化対象フレームの画像信号の符号データを多重化して出力する。
【００８３】
図１１は，第２実施形態による画像符号化装置２００の動作を説明するためのフローチャートである。このフローチャートに従って，画像符号化装置２００の実行する処理について詳細に説明する。
【００８４】
まず，符号化対象フレーム入力部２０１により，符号化対象フレームを入力し，符号化対象フレームメモリ２０２に格納する（ステップＳ２０１）。符号化対象フレームの格納が終了したら，符号化対象フレームを分割し，その領域ごとに，符号化対象フレームの画像信号を符号化する（ステップＳ２０２〜Ｓ２１６）。つまり，符号化対象ブロックインデックスをｂｌｋ，総符号化対象ブロック数をｎｕｍＢｌｋｓで表すとすると，ｂｌｋを０で初期化し（ステップＳ２０２），その後，ｂｌｋに１を加算しながら（ステップＳ２１５），ｂｌｋがｎｕｍＢｌｋｓになるまで（ステップＳ２１６），以下の処理（ステップＳ２０３〜Ｓ２１４）を繰り返す。
【００８５】
符号化対象ブロックごとに繰り返される処理では，まず，被写体数設定部２０３で，ブロックｂｌｋに含まれる被写体の数ｎｕｍＯｂｊｓを設定する（ステップＳ２０３）。被写体数は復号側と同じ処理であれば，どのような処理を用いて決定してもかまわない。
【００８６】
例えば，符号化対象ブロックの画素値に従って被写体数を設定する方法がある。具体的には，符号化対象ブロックの画素に対してｋ−ｍｅａｎｓ法やＡｆｆｉｎｉｔｙ  Ｐｒｏｐａｇａｔｉｏｎなどのクラスタリング手法を用いて，各クラスタ内の画素値分散が予め定められた値以下になるクラスタリング結果のうち，最小のクラスタ数を被写体数にする方法がある。クラスタリングに用いる尺度としては，画素値のみを用いてもかまわないし，画素値と画素位置とからなる値を用いてもかまわない。別の方法としては，被写体数の候補ごとに，その被写体数を設定して符号化した場合の符号量と歪み量との重み付き和で与えられるレート歪みコストを計算し，そのコストが最小になる被写体数を設定する方法がある。また，被写体数が大きくなると符号化効率が低下する場合があるため，被写体数の最大値を予め定めておき，被写体数が一定値以上になるのを防いでもかまわない。
【００８７】
被写体数の設定が終了したら，次に，被写体数予測部２０６で，復号画像メモリ２１４に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ブロックｂｌｋの予測被写体数を生成する（ステップＳ２０４）。ここで使用される復号画像メモリ２１４に蓄積されているブロックｂｌｋの周辺画素の集合を第１の参照画素と呼ぶ。ここでの処理は，求められた値が予測被写体数となる以外は，第１実施形態におけるステップＳ１０３で被写体数を設定する処理と同じであり，第１の参照画素の選び方や第１の参照画素に対する画素値から予測被写体数を設定する方法には，復号側と同じ処理であれば，どのような方法を用いてもかまわない。
【００８８】
予測被写体数が求まったら，被写体数予測部２０６で，予測被写体数を用いて被写体数を予測符号化する（ステップＳ２０５）。つまり，被写体数と予測被写体数の差分値を符号化する。符号化にはどのような手法を用いてもかまわない。例えば，符号テーブルを用意しておき，差分値に該当する符号語を出力する形で符号化を行ってもかまわない。
【００８９】
一般に，被写体はある程度の大きさを持ち，空間的に連続して存在していると考えられるため，ある領域における被写体数は，周辺の領域における被写体数と高い相関があるといえる。そのため，周辺の領域における被写体数を予測値として，ある領域における被写体数を符号化することで，被写体数を少ない符号量で符号化することが可能となる。なお，前述のような符号テーブルを用意する場合には，０付近の符号長を短く設定することで相関を利用した効率的な符号化を実現することができる。
【００９０】
次に，被写体画素値設定部２０４で，ブロックｂｌｋ内の被写体ごとに，被写体を代表する画素値を設定する（ステップＳ２０６）。以下では，この被写体を代表する画素値を被写体画素値と呼び，Ｖａｌｕｅ（ｉ）と表す。ここで，ｉは被写体を識別するための被写体識別子とし，０以上ｎｕｍＯｂｊｓ未満の整数である。また，被写体識別子は予め定められた規則に従って割り当てる。ここでは，被写体画素値が小さい順に割り当てられているとする。
【００９１】
被写体ごとに１つの画素値を設定する方法には，どのような方法を用いてもかまわない。例えば，ブロックｂｌｋの画素を前述のようなクラスタリング手法を用いて，ｎｕｍＯｂｊｓ個のクラスタに分割し，各クラスタに含まれる画素の画素値の平均値や中央値を，被写体画素値とする方法がある。なお，被写体数を設定する際に，ブロックｂｌｋの画素をクラスタリングしている場合には，被写体数と被写体画素値を同時に設定してもかまわない。
【００９２】
被写体画素値が得られたら，次に，被写体画素値予測部２０９で，復号画像メモリ２１４に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ｎｕｍＯｂｊｓ個の予測被写体画素値を生成する（ステップＳ２０７）。以下では，予測被写体画素値をＰｒｅｄＶａｌｕｅ（ｊ）と表す。インデックス値ｊは予測被写体画素値に対して，被写体識別子を被写体画素値に割り当てた規則と同じ規則に従って割り当てられているものとする。つまり，被写体画素値が小さい順に被写体識別子が割り当てられている場合，予測被写体画素値が小さい順にインデックス値が割り当てられているとする。
【００９３】
また，ここで使われる復号画像メモリ２１４に蓄積されているブロックｂｌｋの周辺画素の集合を第２の参照画素と呼ぶ。ここでの処理は，求められた値が予測被写体画素値となる以外は，第１実施形態におけるステップＳ１０３で被写体画素値を決定する処理と同じであり，第２の参照画素の選び方や第２の参照画素に対する画素値から予測被写体画素値を設定する方法には，復号側と同じ処理であれば，どのような方法を用いてもかまわない。
【００９４】
予測被写体画素値が求まったら，被写体画素値符号化部２１０で，予測被写体画素値を用いて被写体画素値を予測符号化する（ステップＳ２０８）。符号化にはどのような手法を用いてもかまわない。例えば，ある被写体識別子に対応する被写体画素値を符号化する場合に，同じ値をインデックス値に持つ予測被写体画素値との差分値を，符号テーブルを参照して符号化してもかまわない。また，差分値をそのまま符号化するのではなく，差分値を別途与えられた量子化パラメータに従って量子化した結果の値を符号化してもかまわない。この場合，量子化パラメータが別途符号化される必要があるが，別の場所で用いた量子化パラメータを流用する場合には，ここで改めて符号化する必要はない。
【００９５】
別の方法として，予測被写体画素値だけでなく，ブロックｂｌｋで先に符号化した被写体画素値を用いて予測符号化する方法がある。以下，被写体画素値の小さい順に符号化する場合を例に挙げて説明する。なお，被写体識別子ｉやインデックス値ｊは被写体画素値や予測被写体画素値が小さい順に付与されているものとする。
【００９６】
まず，被写体識別子が０の被写体画素値を，予測値がインデックス値０の予測被写体画素値として予測符号化する。つまり，Ｖａｌｕｅ（０）―ＰｒｅｄＶａｌｕｅ（０）の値を符号化する。次に，それを復号して復号被写体画素値ＤｅｃＶａｌｕｅ（０）を得る。なお，前記の予測差分を量子化して符号化するなど，歪みありで符号化する場合には，ＤｅｃＶａｌｕｅとＶａｌｕｅとが一致しないことがあるが，予測差分を歪みなしで符号化する場合，ＤｅｃＶａｌｕｅとＶａｌｕｅは完全に一致するため，復号処理を行う必要はない。次に，被写体識別子がｋの被写体画素値をｋが小さい順に符号化する。なお，ｋは１以上ｎｕｍＯｂｊｓ未満の整数である。
【００９７】
被写体識別子ｋの被写体画素値の符号化では，最初にＤｅｃＶａｌｕｅ（ｋ−１）との差が予め定められた閾値以上になる最小の予測被写体画素値のインデックス値を求めｊ（ｋ）とする。ここでｊ（０）＝０とすると，ｊ（ｋ）が求まる場合は，ｊ（ｋ）はｊ（ｋ−１）以上ｎｕｍＯｂｊｓ未満の整数となる（ただし，ｋは１以上ｎｕｍＯｂｊｓ未満の整数）。ｊ（ｋ）が求まったら，ＰｒｅｄＶａｌｕｅ（ｊ（ｋ））を予測値として，Ｖａｌｕｅ（ｋ）を予測符号化する。なお，ｊ（ｋ）が求まらなかった場合には，ＤｅｃＶａｌｕｅ（ｋ−１）とＰｒｅｄＶａｌｕｅ（ｎｕｍＯｂｊｓ−１）の大きいほうを予測値として，Ｖａｌｕｅ（ｋ）を予測符号化する。このとき，Ｖａｌｕｅ（ｋ−１）とＰｒｅｄＶａｌｕｅ（ｎｕｍＯｂｊｓ−１）の大きいほうと，画素値の最大値（８ビットで表現される場合には２５５）との中間値に最も近い整数を予測値とする方法もある。符号データは，次の被写体画素値を符号化する前に，復号されＤｅｃＶａｌｕｅ（ｋ）が計算される。
【００９８】
一般に，被写体はある程度の大きさを持ち，空間的に連続して存在しており，画素値は被写体に大きく依存するため，ある領域における被写体画素値は，周辺の領域における被写体画素値と高い相関があるといえる。そのため，周辺の領域における被写体画素値を予測値として，ある領域における被写体画素値を符号化することで，被写体画素値を少ない符号量で符号化することが可能となる。
【００９９】
被写体画素値の符号化が終了したら，次に，被写体マップ生成部２０５でブロックｂｌｋに対して被写体マップを生成する（ステップＳ２０９）ここでの処理は第１実施形態のステップＳ１０５と同じである。なお，被写体画素値の符号化において，量子化などを用いた歪みあり符号化が行われた場合には，符号化された被写体画素値を復号して得られる復号被写体画素値を，被写体画素値の代わりに用いる。
【０１００】
生成された被写体マップは，次に，被写体マップ符号化部２０８で符号化する（ステップＳ２１０）。ここでの処理は第１実施形態のステップＳ１０６と同じであり，符号化にはどのような方法を用いてもかまわない。
【０１０１】
次に，予測画像生成部２１１で，被写体マップと被写体画素値とを用いて，ブロックｂｌｋに対する予測画像を生成する（ステップＳ２１１）。ここでの処理は第１実施形態のステップＳ１０７と同じである。なお，被写体画素値の符号化において，量子化などを用いた歪みあり符号化が行われた場合には，符号化された被写体画素値を復号して得られる復号被写体画素値を，被写体画素値の代わりに用いる。
【０１０２】
予測画像が得られたら，画像信号符号化部２１２で，ブロックｂｌｋに対する画像信号を予測符号化する（ステップＳ２１２）。ここでの処理は第１実施形態のステップＳ１０８と同じであり，符号化にはどのような方法を用いてもかまわない。
【０１０３】
次に，画像信号復号部２１３で，符号化結果として得られた符号データと予測画像とを用いて，ブロックｂｌｋに対する画像信号を復号し，復号結果を復号画像メモリ２１４に蓄積する（ステップＳ２１３）。復号して得られた画像信号は，他のブロックを符号化する際に，被写体数や被写体画素値を生成または予測するために用いられる。ここでの処理は第１実施形態のステップＳ１０９と同じであり，符号化時に用いられた手法に対応する手法を用いて符号データを復号する。
【０１０４】
最後に，多重化部２１５で，被写体数の符号データと，被写体画素値の符号データと，被写体マップの符号データと，画像信号の符号データとを多重化して出力する（ステップＳ２１４）。なお，ここではブロックごとに多重化しているが，フレーム単位で多重化してもかまわない。ただし，その場合には復号側で１フレーム分の符号データをバッファリングしてから復号する必要が生じる。
【０１０５】
第２の実施形態では，被写体画素値を被写体マップ生成前に符号化しているが，被写体マップに全ての被写体識別子が現れない場合には，被写体マップの生成後に被写体画素値を符号化するか，被写体マップの生成ごとに被写体画素値を再符号化することでさらに符号量を削減することができる。つまり，被写体マップに現れた被写体識別子に対する被写体画素値のみを出力する符号データに含めるようにすることで，復号に必要のない被写体画素値の符号量を削減することが可能となる。ただし，被写体画素値の符号化において歪みあり符号化を行っていた場合には，再符号化前と後とで復号して得られる被写体画素値の値が同じになるように制御するか，再符号化した結果を用いて被写体マップを再度生成する必要がある。
【０１０６】
この第２の実施形態では，被写体数と被写体画素値の両方に対して，ブロックｂｌｋの周辺画素の画素値を分析して予測被写体数と予測被写体画素値を設定して予測符号化しているが，どちらか一方のみを予測符号化するようにしてもかまわない。その場合，予測符号化されなかった情報は，第１の実施形態のように符号化の必要ない情報として生成するか，予測値を生成せずにそのまま符号化してもかまわない。
【０１０７】
〔第３実施形態：画像復号装置）
次に，本発明の第３実施形態について説明する。図１２は，第３実施形態による画像復号装置の構成例を示すブロック図である。画像復号装置３００は，図１２に示すように，符号データ入力部３０１，符号データメモリ３０２，分離部３０３，被写体数設定部３０４，被写体画素値設定部３０５，被写体マップ復号部３０６，予測画像生成部３０７，画像信号復号部３０８，および復号画像メモリ３０９を備えている。
【０１０８】
符号データ入力部３０１は，復号対象となる画像フレームの符号データを入力する。符号データメモリ３０２は，入力された符号データを蓄積する。分離部３０３は，多重化された符号データを複数の異なる情報が符号化されている符号データへと分離する。
【０１０９】
被写体数設定部３０４は，予め定められた大きさの処理領域に含まれる被写体数を設定する。被写体画素値設定部３０５は，処理領域に与えられた数の被写体が存在すると仮定して，処理領域の周辺の復号画像を用いて，被写体ごとに被写体を代表する画素値を設定する。処理領域の被写体ごとに生成された被写体を代表する画素値を被写体画素値と呼ぶ。
【０１１０】
被写体マップ復号部３０６は，符号データから被写体マップを復号する。被写体マップとは，処理領域の各画素における被写体を識別するための情報のことである。予測画像生成部３０７は，処理領域に対して被写体画素値と被写体マップから，処理領域に対する予測画像を生成する。画像信号復号部３０８は，処理領域ごとに予測画像を用いて符号データから復号対象フレームの画像信号を復号する。復号画像メモリ３０９は，復号された画像信号を蓄積する。
【０１１１】
図１３は，第３実施形態による画像復号装置３００の動作を説明するためのフローチャートである。このフローチャートに従って，画像復号装置３００の実行する処理について詳細に説明する。
【０１１２】
まず，符号データ入力部３０１により，復号対象フレームに対する符号データを入力し，符号データメモリ３０２に格納する（ステップＳ３０１）。符号データの格納が終了したら，復号対象フレームを分割し，その領域ごとに，復号対象フレームの画像信号を復号する（ステップＳ３０２〜Ｓ３１０）。つまり，復号対象ブロックインデックスをｂｌｋ，総復号対象ブロック数をｎｕｍＢｌｋｓで表すとすると，ｂｌｋを０で初期化し（ステップＳ３０２），その後，ｂｌｋに１を加算しながら（ステップＳ３０９），ｂｌｋがｎｕｍＢｌｋｓになるまで（ステップＳ３１０），以下の処理（ステップＳ３０３〜Ｓ３０８）を繰り返す。
【０１１３】
復号対象ブロックごとに繰り返される処理では，まず，分離部３０３で，入力された符号データを複数の情報の符号データへと分離する（ステップＳ３０３）。第３実施形態では，複数の情報の符号データがブロック単位でインターリーブされている例で説明しているが，フレームなど異なる単位でインターリーブされている場合には，この符号データの分離をブロック単位で繰り返す必要はない。
【０１１４】
次に，被写体数設定部３０４で，復号画像メモリ３０９に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ブロックｂｌｋに含まれる被写体の数ｎｕｍＯｂｊｓを設定する（ステップＳ３０４）。ここで用いた復号画像メモリ３０９に蓄積されているブロックｂｌｋの周辺画素の集合を第１の参照画素と呼ぶ。ここでの処理は第１実施形態のステップＳ１０３と同じであり，この第１の参照画素の選び方や第１の参照画素に対する画素値からｎｕｍＯｂｊｓを設定する方法には，符号化側と同じ処理であれば，どのような方法を用いてもかまわない。
【０１１５】
なお，第１の参照画素の選び方としては，例えば，予め定められた位置関係に存在する画素群としてもかまわないし，フレームやブロック群などの単位ごとに選び方を示す情報が符号化されて，他の符号データと共に画像符号化装置３００に入力されてもかまわない。その場合には，適切なタイミングで，分離部３０３で分離された符号データの一部から，フレームやブロック群などの単位ごとに選び方を示す情報を復号して，復号結果を被写体数設定部３０４へ通知する必要がある。
【０１１６】
被写体数の設定が終了したら，次に，被写体画素値設定部３０５で，復号画像メモリ３０９に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ブロックｂｌｋ内の被写体ごとに，被写体を代表する画素値を設定する（ステップＳ３０５）。以下では，この被写体を代表する画素値を被写体画素値と呼び，Ｖａｌｕｅ（ｉ）と表す。ここで，ｉは被写体を識別するための被写体識別子とし，０以上ｎｕｍＯｂｊｓ未満の整数である。被写体識別子は予め定められた規則に従って割り当てる。ここでは，被写体画素値が小さい順に割り当てられているとする。また，ここで使われる復号画像メモリ３０９に蓄積されているブロックｂｌｋの周辺画素の集合を第２の参照画素と呼ぶ。ここでの処理は第１実施形態のステップＳ１０４の処理と同じであり，第２の参照画素の選び方や第２の参照画素に対する画素値を用いて被写体画素値を決定する方法には，符号化側と同じ処理であれば，どのような方法を用いてもかまわない。
【０１１７】
次に，被写体マップ復号部３０６で，分離された符号データから被写体マップを復号する（ステップＳ３０６）。被写体マップの復号は，符号化時に用いられた方法に応じて異なる。
【０１１８】
例えば，被写体数に応じて各被写体識別子に固定長または可変長の符号を割り当てて，ラスタースキャンやジグザグスキャンなどを用いて２次元のマップ情報を１次元のバイナリデータへ変換することで符号化が行われている場合がある。その場合には，符号データとして与えられた１次元のバイナリデータを順に走査し，対応する被写体識別子が見つかるごとに，ラスタースキャンやジグザグスキャンなど，符号化時と同じ順に，画素ごとに被写体識別子を割り当てていくことで復号を行う。
【０１１９】
別の方法として，予め定められた順序にスキャンしながらブロックｂｌｋ内の各画素に対する被写体識別子を符号化する際に，各画素に対して周囲の既に符号化済みの画素を参照画素に設定し，その参照画素における被写体識別子に応じて，確率テーブルを変化させながら算術符号化を行っている場合がある。そのような場合には，使用されたスキャン順と同様の順に画素ごとに，周囲の既に復号済みの画素を参照画素に設定し，その画素における被写体識別子に応じて，確率テーブルを変化させながら算術復号を行う。確率テーブルの数や初期値，更新方法，設定方法は符号化時と同じ手法を用いることで正しく復号を行うことが可能である。
【０１２０】
さらに別の方法として，木構造のデータを用いて被写体マップが符号化されている場合がある。その場合も符号化時の方法に応じた方法を用いることで符号データから被写体マップを復号することが可能である。
【０１２１】
与えられた符号データから木構造のデータを介して，被写体マップを復号する処理では，まず，符号データのバイナリ列から木構造のデータをあらわす数列を復号する。バイナリ列から木構造データ数列の復号には，符号化時に用いられた方法に応じた方法を用いる必要がある。例えば，可変確率テーブルを用いた算術符号化が行われている場合には，符号化時と同じ方法で確率テーブルを更新しながら符号データから非圧縮のバイナリ列を復号する。非圧縮のバイナリ列は，符号化時に用いたものと同じ固定長または可変長のテーブルを参照して逆変換を行い，符号化前の数列を復号する。
【０１２２】
木構造データを表す数列が復号できたら，その数列を解読して木構造のデータを構築する。ここでは，符号化時に木構造から数列を生成したのと逆の変換を行う必要がある。なお，木構造の定義も符号化側と共有している必要がある。例えば，ブロックｂｌｋをルートとして，各ノードは０〜ｎｕｍＯｂｊｓの数字を持ち，０が割り当てられているノードは４つの子ノードを持つ木構造が定義され，木を深さ優先探索でスキャンして数列を生成している場合，数列0100133332033231020232222 が与えられた場合には，図１４のような木が復元されることになる。
【０１２３】
木構造データが得られたら，そこから被写体マップを復元する。この復元には，符号化側と木構造の定義を共有している必要があり，その定義を用いて復元を行う。例えば，木のルートはブロックｂｌｋ全体を現し，子ノードは親ノードを縦横２等分してできる４つのサブブロック（ラスタースキャン順）に対応しており，各ノードに割り当てられた０以外の数字が，対応するブロックに含まれる全ての画素の被写体識別子が，その数字から１を引いた数であることを示している場合，図１４の木からは図１５の被写体マップを復号することが可能である。
【０１２４】
なお，ここで示した木構造や数列の定義などは一例であり，符号化側と定義を共有することが可能であればどのような方法を用いてもかまわない。
【０１２５】
被写体マップの復号が終了したら，次に，予測画像生成部３０７で，ブロックｂｌｋに対する予測画像を生成する（ステップＳ３０７）。ここでの処理は第１実施形態のステップＳ１０７と同じである。
【０１２６】
なお，上記のように作られた予測画像に対して，さらにディザを加えてもかまわない。被写体マップと被写体画素値を用いた予測画像では，被写体数と同じ数の画素値しか存在しないため，自然画とは異なる性質をもつ画像となる。そのため，ディザを加えることでより自然画に近い変化を与えることができる。ディザ生成には任意の方法を用いることが可能であるが，ディザを加えるか否かを含めて，符号化側と同じ手法を用いる必要がある。なお，符号データにディザ生成装置の初期化等に付加情報が含まれている場合には，それを復号して用いる。
【０１２７】
予測画像が得られたら，画像信号復号部３０８で，ブロックｂｌｋに対する画像信号を復号し，復号結果の画像信号を出力すると共に復号画像メモリ３０９に蓄積する（ステップＳ３０８）。画像信号の復号は，符号化時に用いられた方法に応じて異なる。例えば，ＭＰＥＧ−２やＨ．２６４／ＡＶＣなどの一般的な符号化が用いられている場合には，符号データに対して，エントロピー復号，逆２値化，逆量子化，ＩＤＣＴなどの周波数逆変換を行うことで予測残差を復号し，その結果に予測画像を加えることでブロックｂｌｋの画像信号を復元する。復号して得られた画像信号は，他のブロックを復号する際に，被写体数や被写体画素値を生成または予測するために用いられる。
【０１２８】
なお，第３実施形態では，被写体数と被写体画素値の両方をブロックｂｌｋの周辺画素の画素値を分析して設定しているが，どちらか一方のみをブロックｂｌｋの周辺画素の画素値を分析して設定してもかまわない。その場合，設定されなかったほうの情報は，符号データの一部として符号化されて入力されるとする。つまり，分離部３０３によって，設定されなかったほうのデータに対する符号データを分離し，それを復号することで必要な情報を設定する。
【０１２９】
図１６に，ブロックｂｌｋの周辺画素の画素値を分析して被写体数のみを設定し，被写体画素値を符号データから復号して設定する場合の画像復号装置のブロック図を示す。図１６に示す画像復号装置３００′が，図１２に示す画像復号装置３００と違う点は，被写体画素値設定部３０５の代わりに，被写体画素値復号部３１０を有し，被写体画素値復号部３１０は，分離部３０３で分離した被写体画素値の符号データから，各被写体の被写体画素値を復号することである。他の構成は，図１２に示した画像復号装置３００と同様である。                                          
【０１３０】
〔第４実施形態：画像復号装置〕
次に，本発明の第４実施形態について説明する。図１７は，第４実施形態による画像復号装置の構成例を示すブロック図である。画像復号装置４００は，図１７に示すように，符号データ入力部４０１，符号データメモリ４０２，分離部４０３，被写体数予測部４０４，被写体数復号部４０５，被写体マップ復号部４０６，被写体画素値予測部４０７，被写体画素値復号部４０８，予測画像生成部４０９，画像信号復号部４１０，および復号画像メモリ４１１を備えている。
【０１３１】
符号データ入力部４０１は，復号対象となる画像フレームの符号データを入力する。符号データメモリ４０２は，入力された符号データを蓄積する。分離部４０３は，多重化された符号データを複数の異なる情報が符号化されている符号データへと分離する。
【０１３２】
被写体数予測部４０４は，処理領域に含まれる被写体数の予測値を設定する。この被写体数の予測値を予測被写体数と呼ぶ。被写体数復号部４０５は，処理領域ごとに予測被写体数を用いて符号データから処理領域に含まれる被写体数を復号する。被写体マップ復号部４０６は，符号データから被写体マップを復号する。被写体マップとは，処理領域の各画素における被写体を識別するための情報のことである。被写体画素値予測部４０７は，処理領域に与えられた数の被写体が存在すると仮定して，処理領域の周辺の復号画像を用いて，被写体画素値の予測値を設定する。この被写体画素値の予測値を予測被写体画素値と呼ぶ。被写体画素値復号部４０８は，処理領域ごとに予測被写体画素値を用いて符号データから被写体画素値を復号する。
【０１３３】
予測画像生成部４０９は，処理領域に対して被写体画素値と被写体マップから，処理領域に対する予測画像を生成する。画像信号復号部４１０は，処理領域ごとに予測画像を用いて符号データから復号対象フレームの画像信号を復号する。復号画像メモリ４１１は，復号された画像信号を蓄積する。
【０１３４】
図１８は，第４実施形態による画像復号装置４００の動作を説明するためのフローチャートである。このフローチャートに従って，画像復号装置４００の実行する処理について詳細に説明する。
【０１３５】
まず，符号データ入力部４０１により，復号対象フレームに対する符号データを入力し，符号データメモリ４０２に格納する（ステップＳ４０１）。符号データの格納が終了したら，復号対象フレームを分割し，その領域ごとに，復号対象フレームの画像信号を復号する（ステップＳ４０２〜Ｓ４１２）。つまり，復号対象ブロックインデックスをｂｌｋ，総復号対象ブロック数をｎｕｍＢｌｋｓで表すとすると，ｂｌｋを０で初期化し（ステップＳ４０２），その後，ｂｌｋに１を加算しながら（ステップＳ４１１），ｂｌｋがｎｕｍＢｌｋｓになるまで（ステップＳ４１２），以下の処理（ステップＳ４０３〜Ｓ４１０）を繰り返す。
【０１３６】
復号対象ブロックごとに繰り返される処理では，まず，分離部４０３で，入力された符号データを複数の情報の符号データへと分離する（ステップＳ４０３）。第４実施形態では，複数の情報の符号データがブロック単位でインターリーブされている例で説明しているが，フレームなど異なる単位でインターリーブされている場合には，この符号データの分離をブロック単位で繰り返す必要はない。
【０１３７】
次に，被写体数予測部４０４で，復号画像メモリ４１１に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，ブロックｂｌｋに対する予測被写体数を生成する（ステップＳ４０４）。ここで用いた復号画像メモリ４１１に蓄積されているブロックｂｌｋの周辺画素の集合を第１の参照画素と呼ぶ。ここでの処理は第２実施形態のステップＳ２０４と同じであり，この第１の参照画素の選び方や第１の参照画素に対する画素値から予測被写体数を設定する方法には，符号化側と同じ処理であれば，どのような方法を用いてもかまわない。
【０１３８】
予測被写体数の生成が終了したら，次に，被写体数復号部４０５で，符号データから予測被写体数を用いて被写体数を復号する（ステップＳ４０５）。ここで用いる復号の方法は，符号化時に用いられた方法に応じて異なる。例えば，符号データが被写体数と予測被写体数の差分値の値に対するある符号テーブル上の符号語である場合，同じ符号テーブルを使い，符号データに該当する符号語を持つ差分値を見つけ，その値に予測被写体数を加えることで被写体数を復号する。
【０１３９】
次に，被写体マップ復号部４０６で，分離された符号データから被写体マップを復号する（ステップＳ４０６）。被写体マップの復号は，符号化時に用いられた方法に応じて異なる。なお，ここでの処理は第３実施形態のステップＳ３０６の処理と同じである。
【０１４０】
次に，被写体画素値予測部４０７で，復号画像メモリ４１１に蓄積されているブロックｂｌｋの周辺画素群に対する画像信号を用いて，被写体数と同じ数の予測被写体画素値を生成する（ステップＳ４０７）。また，ここで使われる復号画像メモリ４１１に蓄積されているブロックｂｌｋの周辺画素の集合を第２の参照画素と呼ぶ。ここでの処理は，第２実施形態におけるステップＳ２０７の処理と同じであり，第２の参照画素の選び方や第２の参照画素に対する画素値から予測被写体画素値を設定する方法には，符号化側と同じ処理であれば，どのような方法を用いてもかまわない。
【０１４１】
予測被写体画素値の生成が終了したら，次に，被写体画素値復号部４０８で，符号データから予測被写体画素値を用いて被写体画素値を復号する（ステップＳ４０８）。ここで用いる復号の方法は，符号化時に用いられた方法に応じて異なる。以下，いくつか例を挙げるが，どの手法を用いて符号化されているかは，復号側では既知であるか，または何らかの付加情報を用いて通知される。
【０１４２】
例えば，被写体画素値と予測被写体画素値をそれぞれ小さな順に並べてペアを作り，それぞれのペアにおいて被写体画素値から予測被写体画素値を引いた差分値を計算し，その差分値に対応するある符号テーブル上の符号語を用いて符号データが作られていた場合には，同じ符号テーブルを用いて，符号データに該当する符号語を持つ差分値を見つけ，その差分値に予測被写体画素値を加えることで被写体画素値を順に復号する。
【０１４３】
また，差分値がそのまま符号化されておらず，差分値が量子化して符号化されていた場合には，逆量子化した後に予測被写体画素値を加えて復号処理を行う。なお，量子化パラメータが符号化されている場合には，それを先に復号しておく必要がある。別の場所で用いた量子化パラメータを流用する場合には，そのパラメータ値を，先に被写体画素値復号部４０８へ通知しておく必要がある。
【０１４４】
また，別の方法として，予測被写体画素値だけでなく，ブロックｂｌｋで先に符号化した被写体画素値を用いて予測符号化される方法が用いられていることがある。その場合には，符号化側で行った手順と同様の方法で予測符号化する際の予測値を生成して，符号データから得られる差分値に加えることで，被写体画素値を復号する必要がある。
【０１４５】
さらに別の例として，被写体マップに１度も現れない被写体識別子に対する被写体画素値を符号化していない場合もある。そのときは，被写体画素値を順に復号していく際に，被写体マップに１度も現れていない被写体識別子に対する被写体画素値を復号する順番になった際に，適当な値を割り当てるなどして，復号をスキップする必要がある。
【０１４６】
被写体画素値の復号が終了したら，次に，予測画像生成部４０９で，ブロックｂｌｋに対する予測画像を生成する（ステップＳ４０９）。ここでの処理は，第２実施形態のステップＳ２１１と同じである。
【０１４７】
なお，上記のように作られた予測画像に対して，さらにディザを加えてもかまわない。被写体マップと被写体画素値を用いた予測画像では，被写体数と同じ数の画素値しか存在しないため，自然画とは異なる性質をもつ画像となる。そのため，ディザを加えることでより自然画に近い変化を与えることができる。ディザ生成には任意の方法を用いることが可能であるが，ディザを加えるか否かを含めて，符号化側と同じ手法を用いる必要がある。なお，符号データにディザ生成装置の初期化等に付加情報が含まれている場合には，それを復号して用いる。
【０１４８】
予測画像が得られたら，画像信号復号部４１０で，ブロックｂｌｋに対する画像信号を復号し，復号結果の画像信号を出力すると共に復号画像メモリ４１１に蓄積する（ステップＳ４１０）。復号して得られた画像信号は，他のブロックを復号する際に，被写体数や被写体画素値を生成または予測するために用いられる。
【０１４９】
画像信号の復号は，符号化時に用いられた方法に応じて異なる。例えば，ＭＰＥＧ−２やＨ．２６４／ＡＶＣなどの一般的な符号化が用いられている場合には，符号データに対して，エントロピー復号，逆２値化，逆量子化，ＩＤＣＴなどの周波数逆変換を行うことで予測残差を復号し，その結果に予測画像を加えることでブロックｂｌｋの画像信号を復元する。
【０１５０】
第４の実施形態では，被写体数と被写体画素値の両方に対して，ブロックｂｌｋの周辺画素の画素値を分析して予測被写体数と予測被写体画素値を設定して予測符号化しているが，どちらか一方のみを予測符号化するようにしてもかまわない。その場合，予測符号化されなかった情報は，第３の実施形態のように符号化の必要ない情報として生成するか，予測値を生成せずにそのまま符号化してもかまわない。
【０１５１】
図１９に，上述した第１実施形態で生成される符号データおよび第３実施形態で入力される符号データのブロックごとのシンタックスの一例を示す。ここで，mb＿typeは予測モードを示す情報であり，Ｈ．２６４／ＡＶＣなどのイントラ予測などが混在する場合に，本発明によって符号化されたブロックであるかどうかを判別するための情報である。この例では，mb＿typeが MAP＿BASED ＿PREDと等しい場合に，本発明によって符号化されたブロックであることを示す。なお，もし全てのブロックで本発明を適用する場合，シンタックスmb＿typeとその次の条件分岐も必要ない。map ＿objectは被写体マップ，residuals は画像信号の予測残差を表している。この例では，residuals をｉｆブロックの中に入れているが，予測モードによらず残差信号を符号化する場合には，ｉｆブロックの外に出してもかまわない。
【０１５２】
図２０に，上述した第２実施形態で生成される符号データおよび第４実施形態で入力される符号データのブロックごとのシンタックスの一例を示す。ここで，diff＿num ＿objects は被写体数の予測残差，num ＿objects は被写体数，exist(i, j) は被写体マップｊ内に被写体識別子ｉが存在する場合にＴＲＵＥ，そうでない場合にＦＡＬＳＥを返す関数，residual＿value ＿object［ｉ］は被写体識別子がｉの被写体画素値の予測残差を表している。この例では，residuals をｉｆブロックの外に出しているが，予測モードによっては残差信号を符号化しない場合には，ｉｆブロックの内に入れる必要がある。
【０１５３】
次に，本実施形態において，被写体数，被写体マップ，被写体画素値を管理するためのデータ構造の例を説明する。
【０１５４】
図２１は，予測画像の生成に用いる付加情報のデータ構造の例を示す図である。被写体画素値を用いた予測符号化では，例えば図２１（Ａ）に示すような，付加情報をメモリ内で管理する。
【０１５５】
この付加情報として，被写体数と，被写体マップと，各被写体識別子ごとの被写体画素値が設定される。被写体数Ｎは整数である。被写体マップは，ブロック内の画素数と同じ長さの１〜Ｎの整数列である。被写体画素値は，予測なしの場合，符号なし整数であり，予測ありの場合，符号付き整数である。
【０１５６】
図２１（Ｂ）は，付加情報の具体例を示している。被写体数は４であるが，被写体マップには被写体識別子が２の画素が一つも存在しない。そのため，被写体識別子２に対応する被写体画素値のデータは省かれている。
【０１５７】
なお，被写体マップを木構造で表現した木構造被写体マップとして保持してもよい。木構造被写体マップは，可変長の整数列であり，例えば，図８の木構造被写体マップの場合，0101013332033230120111222 の整数列となる。
【０１５８】
また，被写体マップをブロック分割情報とブロック内被写体識別子情報とに分けて管理してもよい。ブロック分割情報は，木構造被写体マップを用いた際のリーフ以外のノードをスキャンした結果を示し，ブロック内被写体識別子情報は，木構造被写体マップを用いた際のリーフをスキャンした結果を示す。例えば図７の木構造被写体マップの場合，ブロック分割情報は，0101010011011 となり，ブロック内被写体識別子情報は，0002221221201000111 となる。
【０１５９】
図２２は，予測付加情報のデータ構造の例を示す図である。本実施形態では，被写体数または被写体画素値を予測値を用いて符号化するため，図２２（Ａ）に示すような予測付加情報を生成する。被写体数予測値は，整数であり，被写体画素値予測値は，入力画像と同じビット深度の符号なし整数である。図２２は，その具体例を示しており，被写体数予測値は２であり，被写体識別子０，１，２の被写体画素値予測値は，それぞれ２５，１２３，１９１となっている。
【０１６０】
以上の情報をもとに，各符号化対象ブロックについて符号化を行う。以下，各ブロックで符号化されるデータの構造の例について説明する。
【０１６１】
［符号化されるデータの構造の例１］
図２３は，各ブロックで符号化されるデータの構造の例１を示す図である。この例は，第１実施形態，第３実施形態で用いられる例である。符号データへの付加情報として，図２３（Ａ）に示すように，予測モードを示す情報mb＿typeと，被写体マップと，予測残差信号とが設定される。被写体画素値予測差分値は，符号付き整数であり，入力画像のビット深度に１ビット加えたビット深度となる。図２３（Ｂ）に，その具体例を示す。本発明を用いた画像予測を行う場合，予測モードを示す情報mb＿typeは， MAP＿BASED ＿PREDとなる。
【０１６２】
［符号化されるデータの構造の例２］
図２４は，各ブロックで符号化されるデータの構造の例２を示す図である。この例は，被写体数のデータのみ符号化しない場合の例である。符号データへの付加情報として，図２４（Ａ）に示すように，予測モードを示す情報mb＿typeと，被写体マップと，各被写体の被写体画素値予測差分値と，予測残差信号とが設定される。被写体画素値予測差分値は，符号付き整数であり，入力画像のビット深度に１ビット加えたビット深度となる。図２４（Ｂ）に，その具体例を示す。各被写体識別子０，１，２に対して，−２，＋３，＋１０の被写体画素値予測差分値が設定されている。
【０１６３】
［符号化されるデータの構造の例３］
図２５は，各ブロックで符号化されるデータの構造の例３を示す図である。この例は，第２実施形態，第４実施形態で用いられる例である。符号データへの付加情報として，図２５（Ａ）に示すように，予測モードを示す情報mb＿typeと，被写体数予測差分値と，木構造被写体マップと，各被写体の被写体画素値予測差分値と，予測残差信号とが設定される。図２５（Ｂ）に，その具体例を示す。この例では，被写体マップが木構造で表現されている。
【０１６４】
［符号化されるデータの構造の例４］
図２６は，各ブロックで符号化されるデータの構造の例４を示す図である。この例は，使用されない被写体識別子がある場合の例である。符号データへの付加情報として，図２６（Ａ）に示すように，予測モードを示す情報mb＿typeと，ブロック分割情報およびブロック内被写体識別子情報で表現される被写体マップと，各被写体の被写体画素値予測差分値と，予測残差信号とが設定される。図２６（Ｂ）に，その具体例を示す。この例では，被写体識別子２が使用されていないので，その被写体画素値予測値が符号化されるデータから省かれている。
【０１６５】
上述した第１〜４実施形態では，１フレーム中の全てのブロックを本発明によって符号化および復号する処理を説明したが，一部のブロックにのみ適用し，その他のブロックでは，Ｈ．２６４／ＡＶＣなどで用いられる画面内予測符号化や動き補償予測符号化などを用いて符号化を行ってもかまわない。その場合にはブロックごとにどの方法を用いて符号化したかを示す情報を符号化および復号する必要がある。
【０１６６】
上述した第１〜第４実施形態では，１フレームを符号化および復号する処理を説明したが，複数フレーム繰り返すことで動画像符号化にも適用することができる。また，動画像の一部のフレームや一部のブロックにのみ適用することもできる。その場合，被写体の存在には空間的だけでなく時間的な連続性があることから，周辺の画素を空間方向だけでなく時間方向にも拡張して用いることは容易に類推可能である。
【０１６７】
以上説明した画像符号化および画像復号の処理は，コンピュータとソフトウェアプログラムとによっても実現することができ，そのプログラムをコンピュータ読み取り可能な記録媒体に記録して提供することも，ネットワークを通して提供することも可能である。
【０１６８】
図２７に，画像符号化装置をコンピュータとソフトウェアプログラムとによって構成する場合のハードウェア構成例を示す。本システムは，プログラムを実行するＣＰＵ５０と，ＣＰＵ５０がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ５１と，カメラ等からの符号化対象の画像信号を入力する符号化対象フレーム入力部５２（ディスク装置等による画像信号を記憶する記憶部でもよい）と，図１および図２等で説明した処理をＣＰＵ５０に実行させるソフトウェアプログラムである画像符号化プログラム５３１が格納されたプログラム記憶装置５３と，ＣＰＵ５０がメモリ５１にロードされた画像符号化プログラム５３１を実行することにより生成された多重化符号データを，例えばネットワークを介して出力する多重化符号データ出力部５４（ディスク装置等による多重化符号データを記憶する記憶部でもよい）とが，バスで接続された構成になっている。
【０１６９】
図示省略するが，他に，被写体数記憶部，被写体マップ記憶部，被写体画素値記憶部，予測画像記憶部，被写体マップ符号データ記憶部，画像情報符号データ記憶部，復号画像記憶部などのハードウェアが設けられ，本手法の実施に利用される。また，被写体画素値符号データ記憶部が用いられることもあり，さらに，被写体数符号データ記憶部，被写体数予測値記憶部，被写体画素値予測値記憶部が用いられることもある。
【０１７０】
図２８に，画像復号装置をコンピュータとソフトウェアプログラムとによって構成する場合のハードウェア構成例を示す。本システムは，プログラムを実行するＣＰＵ６０と，ＣＰＵ６０がアクセスするプログラムやデータが格納されるＲＡＭ等のメモリ６１と，画像符号化装置が本手法により符号化した多重化符号データを入力する多重化符号データ入力部６２（ディスク装置等による多重化符号データを記憶する記憶部でもよい）と，図１０および図１１等で説明した処理をＣＰＵ６０に実行させるソフトウェアプログラムである画像復号プログラム６３１が格納されたプログラム記憶装置６３と，ＣＰＵ６０がメモリ６１にロードされた画像復号プログラム６３１を実行することにより，多重化符号データを復号して得られた復号画像データを，再生装置などに出力する復号画像データ出力部６４とが，バスで接続された構成になっている。
【０１７１】
図示省略するが，他に，被写体数記憶部，被写体マップ記憶部，被写体画素値記憶部，予測画像記憶部，被写体マップ符号データ記憶部，画像情報符号データ記憶部などのハードウェアが設けられ，本手法の実施に利用される。また，被写体画素値符号データ記憶部が用いられることもあり，さらに，被写体数符号データ記憶部，被写体数予測値記憶部，被写体画素値予測値記憶部が用いられることもある。
【０１７２】
〔効果の検証〕
従来手法（例えば，Ｈ．２６４／ＡＶＣ）と本発明を用いた手法（本手法という）との符号量の比較を行う。
【０１７３】
１．概念的な符号量の比較
１．１  付加情報の符号量
付加情報は，従来手法ではエッジの向きを示す情報であり，２次元ベクトルである。これに対し，本手法による付加情報は，被写体マップ（二次元情報）であり，条件にもよるが，処理ブロックを１６×１６，被写体数を４とした場合，ビット量は約６４倍になる（ただし，エントロピー符号化することで，約４倍程度にすることができる）。
【０１７４】
１．２  予測残差の符号量
エッジの強い画像においては，予測画像と入力画像とで物体形状が大きく異なると，その予測残差を周波数領域へ変換しても，情報を効率的に低域へ集中させることができず，予測残差の符号量が非常に多くなる。
【０１７５】
つまり，直線しか表現できない従来手法よりも，任意の形状を表現できる本手法のほうが予測残差の符号量を少なくすることが可能である。対象画像や符号化条件にもよるが，予測残差の符号量は約３分の１にすることが可能である。
【０１７６】
１．３  トータルの符号量
一般的な符号化レートにおいて，従来手法の予測残差の符号量は，符号量全体の約９割を占める。つまり，全体の符号量を１００とすると，付加情報が１０で予測残差が９０となる。本手法により，付加情報が４倍，予測残差が１／３になるとすると，本手法によって全体の符号量は７０とすることが可能である。
【０１７７】
２．実験例
図２９に，あるサンプル画像について，本手法と従来手法を用いて符号化した場合の発生符号量の比較を示す。図２０に示すグラフにおいて，縦軸のＹ−ＰＳＮＲは画像の品質（単位はｄＢ），横軸のｂｉｔｒａｔｅは符号量（単位はｂｐｓ／ｖｉｅｗ）を表している。Ｙ−ＰＳＮＲの値は，大きなほど綺麗な画像であることを示す。
【０１７８】
図２９において，Ａの曲線が本手法による符号量と画像の品質の関係を示しており，Ｂの曲線が従来手法による符号量と画像の品質の関係を示している。
【０１７９】
２．１  符号量削減効果としての解釈（太い矢印）
図２９のグラフから，Ｙ−ＰＳＮＲが４３ｄＢとなるとき，従来手法（Ｈ．２６４／ＡＶＣ）では，約６５０ｋｂｐｓの符号量が必要であり，本手法では，約３２５ｋｂｐｓの符号量が必要であることが分かる。ここから，同じ品質で符号化する場合，本手法によって符号量を半分にできたことが分かる。
【０１８０】
２．２  品質改善効果としての解釈（細い矢印）
図２９のグラフから，ｂｉｔｒａｔｅが４００ｋｂｐｓとなるとき，従来手法（Ｈ．２６４／ＡＶＣ）では，約３９ｄＢの品質であり，本手法では，約４４．５ｄＢの品質であることが分かる。ここから，同じ符号量で符号化する場合，本手法によって５．５ｄＢ画質を改善（歪み量を約７２％削減）できたことが分かる。
【０１８１】
以上，図面を参照して本発明の実施の形態を説明してきたが，上記実施の形態は本発明の例示に過ぎず，本発明が上記実施の形態に限定されるものでないことは明らかである。したがって，本発明の精神および技術的範囲を逸脱しない範囲で構成要素の追加，省略，置換，その他の変更を行ってもよい。
【符号の説明】
【０１８２】
１００，２００  画像符号化装置
１０１，２０１  符号化対象フレーム入力部
１０２，２０２  符号化対象フレームメモリ
１０３，２０３，３０４  被写体数設定部
１０４，２０４，３０５  被写体画素値設定部
１０５，２０５  被写体マップ生成部
１０６，２０８  被写体マップ符号化部
１０７，２１１  予測画像生成部
１０８，２１２  画像信号符号化部
１０９，２１３  画像信号復号部
１１０，２１４  復号画像メモリ
１１１，２１５  多重化部
１１２，２１０  被写体画素値符号化部
２０６，４０４  被写体数予測部
２０７  被写体数符号化部
２０９，４０７  被写体画素値予測部
３００，４００  画像復号装置
３０１，４０１  符号データ入力部
３０２，４０２  符号データメモリ
３０３，４０３  分離部
３０６，４０６  被写体マップ復号部
３０７，４０９  予測画像生成部
３０８，４１０  画像信号復号部
３０９，４１１  復号画像メモリ
３１０，４０８  被写体画素値復号部
４０５  被写体数復号部
【図１】
0005281624.tif 000002
【図２】
0005281624.tif 000003
【図３】
0005281624.tif 000004
【図４】
0005281624.tif 000005
【図５】
0005281624.tif 000006
【図６】
0005281624.tif 000007
【図７】
0005281624.tif 000008
【図８】
0005281624.tif 000009
【図９】
0005281624.tif 000010
【図１０】
0005281624.tif 000011
【図１１】
0005281624.tif 000012
【図１２】
0005281624.tif 000013
【図１３】
0005281624.tif 000014
【図１４】
0005281624.tif 000015
【図１５】
0005281624.tif 000016
【図１６】
0005281624.tif 000017
【図１７】
0005281624.tif 000018
【図１８】
0005281624.tif 000019
【図１９】
0005281624.tif 000020
【図２０】
0005281624.tif 000021
【図２１】
0005281624.tif 000022
【図２２】
0005281624.tif 000023
【図２３】
0005281624.tif 000024
【図２４】
0005281624.tif 000025
【図２５】
0005281624.tif 000026
【図２６】
0005281624.tif 000027
【図２７】
0005281624.tif 000028
【図２８】
0005281624.tif 000029
【図２９】
0005281624.tif 000030
【図３０】
0005281624.tif 000031
【図３１】
0005281624.tif 000032