<一実施の形態>
[符号化装置の一実施の形態の構成例]
図1は、本技術を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
図1の符号化装置50は、多視点カラー画像撮像部51、多視点カラー画像補正部52、多視点視差画像補正部53、視点生成用情報生成部54、および多視点画像符号化部55により構成される。
符号化装置50は、所定の視点の視差画像を、視差画像に関する情報を用いて符号化する。
具体的には、符号化装置50の多視点カラー画像撮像部51は、多視点のカラー画像を撮像し、多視点カラー画像として多視点カラー画像補正部52に供給する。また、多視点カラー画像撮像部51は、外部パラメータ、視差最大値、および視差最小値(詳細は後述する)を生成する。多視点カラー画像撮像部51は、外部パラメータ、視差最大値、および視差最小値を視点生成用情報生成部54に供給するとともに、視差最大値と視差最小値を多視点視差画像生成部53に供給する。
なお、外部パラメータは、多視点カラー画像撮像部51の水平方向の位置を定義するパラメータである。また、視差最大値と視差最小値は、それぞれ、多視点視差画像においてとり得る世界座標上の視差値の最大値、最小値である。
多視点カラー画像補正部52は、多視点カラー画像撮像部51から供給される多視点カラー画像に対して、色補正、輝度補正、歪み補正等を行う。これにより、補正後の多視点カラー画像における多視点カラー画像撮像部51の水平方向(X方向)の焦点距離は、全視点で共通となる。多視点カラー画像補正部52は、補正後の多視点カラー画像を多視点補正カラー画像として多視点視差画像生成部53と多視点画像符号化部55に供給する。
多視点視差画像生成部53は、多視点カラー画像撮像部51から供給される視差最大値と視差最小値に基づいて、多視点カラー画像補正部52から供給される多視点補正カラー画像から、多視点の視差画像を生成する。具体的には、多視点視差画像生成部53は、多視点の各視点について、多視点補正カラー画像から各画素の視差値を求め、その視差値を視差最大値と視差最小値に基づいて正規化する。そして、多視点視差画像生成部53は、多視点の各視点について、正規化された各画素の視差値を視差画像の各画素の画素値とする視差画像を生成する。
また、多視点視差画像生成部53は、生成された多視点の視差画像を多視点視差画像として多視点画像符号化部55に供給する。さらに、多視点視差画像生成部53は、多視点視差画像の画素値の精度を表す視差精度パラメータを生成し、視点生成用情報生成部54に供給する。
視点生成用情報生成部54は、多視点の補正カラー画像と視差画像を用いて、その多視点以外の視点のカラー画像を生成する際に用いられる視点生成用情報を生成する。具体的には、視点生成用情報生成部54は、多視点カラー画像撮像部51から供給される外部パラメータに基づいて、カメラ間距離を求める。カメラ間距離とは、多視点視差画像の視点ごとに、その視点のカラー画像を撮像するときの多視点カラー画像撮像部51の水平方向の位置と、そのカラー画像と視差画像に対応する視差を有するカラー画像を撮像するときの多視点カラー画像撮像部51の水平方向の位置の距離である。
視点生成用情報生成部54は、多視点カラー画像撮像部51からの視差最大値と視差最小値、カメラ間距離、および多視点視差画像生成部53からの視差精度パラメータを視点生成用情報とする。視点生成用情報生成部54は、生成された視点生成用情報を多視点画像符号化部55に供給する。
多視点画像符号化部55は、多視点カラー画像補正部52から供給される多視点補正カラー画像をHEVC方式で符号化する。また、多視点画像符号化部55は、視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離を視差に関する情報として用いて、多視点視差画像生成部53から供給される多視点視差画像を、HEVC方式に準じた方式で符号化する。
また、多視点画像符号化部55は、視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離を差分符号化し、多視点視差画像を符号化する際に用いる符号化に関する情報(符号化パラメータ)に含める。そして、多視点画像符号化部55は、符号化された多視点補正カラー画像および多視点視差画像、差分符号化された視差最大値、視差最小値、およびカメラ間距離を含む符号化に関する情報、視点生成用情報生成部54からの視差精度パラメータ等からなるビットストリームを、符号化ビットストリームとして伝送する。
以上のように、多視点画像符号化部55は、視差最大値、視差最小値、およびカメラ間距離を差分符号化して伝送するので、視点生成用情報の符号量を削減することができる。快適な3D画像を提供するために、視差最大値、視差最小値、およびカメラ間距離はピクチャ間で大きく変化させない可能性が高いため、差分符号化を行うことは符号量の削減において有効である。
なお、符号化装置50では、多視点視差画像が、多視点補正カラー画像から生成されたが、多視点カラー画像の撮像時に、視差値を検出するセンサにより生成されてもよい。
[視点生成用情報の説明]
図2は、視点生成用情報の視差最大値と視差最小値を説明する図である。
なお、図2において、横軸は、正規化前の視差値であり、縦軸は、視差画像の画素値である。
図2に示すように、多視点視差画像生成部53は、各画素の視差値を、視差最小値Dminと視差最大値Dmaxを用いて、例えば0乃至255の値に正規化する。そして、多視点視差画像生成部53は、0乃至255のいずれかの値である正規化後の各画素の視差値を画素値として、視差画像を生成する。
即ち、視差画像の各画素の画素値Iは、その画素の正規化前の視差値d、視差最小値Dmin、および視差最大値Dmaxは、以下の式(1)で表される。
従って、後述する復号装置では、以下の式(2)により、視差画像の各画素の画素値Iから、視差最小値Dminと視差最大値Dmaxを用いて、正規化前の視差値dを復元する必要がある。
よって、視差最小値Dminと視差最大値Dmaxが、復号装置に伝送される。
図3は、視点生成用情報の視差精度パラメータを説明する図である。
図3の上段に示すように、正規化後の視差値1当たりの正規化前の視差値が0.5である場合、視差精度パラメータは、視差値の精度0.5を表すものとなる。また、図3の下段に示すように、正規化後の視差値1当たりの正規化前の視差値が1である場合、視差精度パラメータは、視差値の精度1.0を表すものとなる。
図3の例では、1番目の視点である視点#1の正規化前の視差値が1.0であり、2番目の視点である視点#2の正規化前の視差値が0.5である。従って、視点#1の正規化後の視差値は、視差値の精度が0.5であっても1.0であっても、1.0である。一方、視点#2の視差値は、視差値の精度が0.5である場合0.5であり、視差値の精度が1.0である場合0である。
図4は、視点生成用情報のカメラ間距離を説明する図である。
図4に示すように、視点#1の、視点#2を基点とする視差画像のカメラ間距離は、視点#1の外部パラメータが表す位置と、視点#2の外部パラメータが表す位置の距離である。
[多視点画像符号化部の構成例]
図5は、図1の多視点画像符号化部55の構成例を示すブロック図である。
図5の多視点画像符号化部55は、SPS符号化部61、PPS符号化部62、スライスヘッダ符号化部63、およびスライス符号化部64により構成される。
多視点画像符号化部55のSPS符号化部61は、シーケンス単位でSPSを生成し、PPS符号化部62に供給する。
PPS符号化部62は、図1の視点生成用情報生成部54から供給される視点生成用情報のうちの、同一のPPSが付加される単位(以下では、同一PPS単位という)を構成する全てのスライスの視差最大値、視差最小値、およびカメラ間距離が、それぞれ、そのスライスより符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離と一致するかどうかを判定する。
そして、同一PPS単位を構成する全てのスライスの視差最大値、視差最小値、およびカメラ間距離が、符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離と一致すると判定された場合、PPS符号化部62は、視差最大値、視差最小値、およびカメラ間距離の差分符号化結果の伝送の無しを表す伝送フラグを生成する。
一方、同一PPS単位を構成する少なくとも1つのスライスの視差最大値、視差最小値、およびカメラ間距離が、符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離と一致しないと判定された場合、PPS符号化部62は、視差最大値、視差最小値、およびカメラ間距離の差分符号化結果の伝送の有りを表す伝送フラグを生成する。
PPS符号化部62は、伝送フラグと視点生成用情報のうちの視差精度パラメータとを含むPPSを生成する。PPS符号化部62は、SPS符号化部61から供給されるSPSにPPSを付加し、スライスヘッダ符号化部63に供給する。
スライスヘッダ符号化部63は、PPS符号化部62から供給されるPPSに含まれる伝送フラグが伝送の無しを表す場合、そのPPSの同一PPS単位を構成する各スライスのスライスヘッダとして、そのスライスの視差最大値、視差最小値、およびカメラ間距離以外の符号化に関する情報を生成する。
一方、PPS符号化部62から供給されるPPSに含まれる伝送フラグが伝送の有りを表す場合、スライスヘッダ符号化部63は、そのPPSの同一PPS単位を構成するイントラタイプのスライスのスライスヘッダとして、そのスライスの視差最大値、視差最小値、およびカメラ間距離を含む符号化に関する情報を生成する。
また、この場合、スライスヘッダ符号化部63は、PPSの同一PPS単位を構成するインタータイプのスライスについては、そのスライスの視差最大値、視差最小値、およびカメラ間距離を差分符号化する。具体的には、スライスヘッダ符号化部63は、視点生成用情報生成部54から供給される視点生成用情報のうちのインタータイプのスライスの視差最大値、視差最小値、およびカメラ間距離から、そのスライスより符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離を、それぞれ減算し、差分符号化結果とする。そして、スライスヘッダ符号化部63は、インタータイプのスライスのスライスヘッダとして視差最大値、視差最小値、およびカメラ間距離の差分符号化結果を生成する。スライスヘッダ符号化部63は、生成されたスライスヘッダを、PPS符号化部62から供給されるPPSが付加されたSPSにさらに付加し、スライス符号化部64に供給する。
スライス符号化部64は、図1の多視点カラー画像補正部52から供給される多視点補正カラー画像に対して、HEVC方式でスライス単位の符号化を行う。また、スライス符号化部64は、視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離を視差に関する情報として用いて、多視点視差画像生成部53からの多視点視差画像に対して、HEVC方式に準じた方式でスライス単位の符号化を行う。スライス符号化部64は、符号化の結果得られるスライス単位の符号化データ等を、スライスヘッダ符号化部63から供給されるPPSとスライスヘッダが付加されたSPSに付加し、ビットストリームを生成する。スライス符号化部64は、伝送部として機能し、ビットストリームを符号化ビットストリームとして伝送する。
[スライス符号化部の構成例]
図6は、図5のスライス符号化部64のうちの任意の1視点の視差画像を符号化する符号化部の構成例を示すブロック図である。即ち、スライス符号化部64のうちの多視点視差画像を符号化する符号化部は、視点数分の図6の符号化部120により構成される。
図6の符号化部120は、A/D変換部121、画面並べ替えバッファ122、演算部123、直交変換部124、量子化部125、可逆符号化部126、蓄積バッファ127、逆量子化部128、逆直交変換部129、加算部130、デブロックフィルタ131、フレームメモリ132、画面内予測部133、動き予測・補償部134、補正部135、選択部136、およびレート制御部137により構成される。
符号化部120のA/D変換部121は、図1の多視点視差画像生成部53から供給される所定の視点のフレーム単位の多重化画像をA/D変換し、画面並べ替えバッファ122に出力して記憶させる。画面並べ替えバッファ122は、記憶した表示の順番のフレーム単位の視差画像を、GOP(Group of Picture)構造に応じて、符号化のための順番に並べ替え、演算部123、画面内予測部133、および動き予測・補償部134に出力する。
演算部123は、符号化部として機能し、選択部136から供給される予測画像と、画面並べ替えバッファ122から出力された符号化対象の視差画像の差分を演算することにより、符号化対象の視差画像を符号化する。具体的には、演算部123は、画面並べ替えバッファ122から出力された符号化対象の視差画像から、選択部136から供給される予測画像を減算する。演算部123は、減算の結果得られる画像を、残差情報として直交変換部124に出力する。なお、選択部136から予測画像が供給されない場合、演算部123は、画面並べ替えバッファ122から読み出された視差画像をそのまま残差情報として直交変換部124に出力する。
直交変換部124は、演算部123からの残差情報に対して離散コサイン変換、カルーネン・レーベ変換等の直交変換を施し、その結果得られる係数を量子化部125に供給する。
量子化部125は、直交変換部124から供給される係数を量子化する。量子化された係数は、可逆符号化部126に入力される。
可逆符号化部126は、量子化部125から供給される量子化された係数に対して、可変長符号化(例えば、CAVLC(Context-Adaptive Variable Length Coding)など)、算術符号化(例えば、CABAC(Context-Adaptive Binary Arithmetic Coding)など)などの可逆符号化を行う。可逆符号化部126は、可逆符号化の結果得られる符号化データを蓄積バッファ127に供給し、蓄積させる。
蓄積バッファ127は、可逆符号化部126から供給される符号化データを、一時的に記憶し、スライス単位で出力する。出力されたスライス単位の符号化データは、スライスヘッダ符号化部63から供給されるPPSとスライスヘッダが付加されたSPSに付加され、符号化ストリームとされる。
また、量子化部125より出力された、量子化された係数は、逆量子化部128にも入力され、逆量子化された後、逆直交変換部129に供給される。
逆直交変換部129は、逆量子化部128から供給される係数に対して、逆離散コサイン変換、逆カルーネン・レーベ変換等の逆直交変換を施し、その結果得られる残差情報を加算部130に供給する。
加算部130は、逆直交変換部129から供給される復号対象の視差画像としての残差情報と、選択部136から供給される予測画像を加算して、局部的に復号された視差画像を得る。なお、選択部136から予測画像が供給されない場合、加算部130は、逆直交変換部129から供給される残差情報を局部的に復号された視差画像とする。加算部130は、局部的に復号された視差画像をデブロックフィルタ131に供給するとともに、参照画像として画面内予測部133に供給する。
デブロックフィルタ131は、加算部130から供給される局部的に復号された視差画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ131は、その結果得られる視差画像をフレームメモリ132に供給し、蓄積させる。フレームメモリ132に蓄積された視差画像は、参照画像として動き予測・補償部134に出力される。
画面内予測部133は、加算部130から供給された参照画像を用いて、候補となる全てのイントラ予測モードの画面内予測を行い、予測画像を生成する。
また、画面内予測部133は、候補となる全てのイントラ予測モードに対してコスト関数値(詳細は後述する)を算出する。そして、画面内予測部133は、コスト関数値が最小となるイントラ予測モードを最適イントラ予測モードに決定する。画面内予測部133は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、選択部136に供給する。画面内予測部133は、選択部136から最適イントラ予測モードで生成された予測画像の選択が通知された場合、最適イントラ予測モード等を示す画面内予測情報を符号化に関する情報として、スライスヘッダ符号化部63から供給されるスライスヘッダに含める。
なお、コスト関数値は、RD(Rate Distortion)コストともいい、例えば、H.264/AVC方式における参照ソフトウェアであるJM(Joint Model)で定められているような、High Complexity モードか、Low Complexity モードのいずれかの手法に基づいて算出される。
具体的には、コスト関数値の算出手法としてHigh Complexity モードが採用される場合、候補となる全ての予測モードに対して、仮に可逆符号化までが行われ、次の式(3)で表わされるコスト関数値が各予測モードに対して算出される。
Cost(Mode)=D+λ・R ・・・(3)
Dは、原画像と復号画像の差分(歪)、Rは、直交変換の係数まで含んだ発生符号量、λは、量子化パラメータQPの関数として与えられるラグランジュ乗数である。
一方、コスト関数値の算出手法としてLow Complexity モードが採用される場合、候補となる全ての予測モードに対して、復号画像の生成、および、予測モードを示す情報などのヘッダビットの算出が行われ、次の式(4)で表わされるコスト関数が各予測モードに対して算出される。
Cost(Mode)=D+QPtoQuant(QP)・Header_Bit ・・・(4)
Dは、原画像と復号画像の差分(歪)、Header_Bitは、予測モードに対するヘッダビット、QPtoQuantは、量子化パラメータQPの関数として与えられる関数である。
Low Complexity モードにおいては、全ての予測モードに対して、復号画像を生成するだけでよく、可逆符号化を行う必要がないため、演算量が少なくて済む。なお、ここでは、コスト関数値の算出手法としてHigh Complexity モードが採用されるものとする。
動き予測・補償部134は、画面並べ替えバッファ122から供給される視差画像と、フレームメモリ132から供給される参照画像とに基づいて、候補となる全てのインター予測モードの動き予測処理を行い、動きベクトルを生成する。具体的には、動き予測・補償部134は、インター予測モードごとに、参照画像と、画面並べ替えバッファ122から供給される視差画像のマッチングを行い、動きベクトルを生成する。
なお、インター予測モードとは、インター予測の対象とするブロックのサイズ、予測方向、および参照インデックスを表す情報である。予測方向には、インター予測の対象とする視差画像よりも表示時刻が早い参照画像を用いた前方向の予測(L0予測)、インター予測の対象とする視差画像よりも表示時刻が遅い参照画像を用いた後方向の予測(L1予測)、およびインター予測の対象とする視差画像よりも表示時刻が早い参照画像と遅い参照画像を用いた両方向の予測(Bi-prediction)がある。また、参照インデックスとは、参照画像を特定するための番号であり、例えば、インター予測の対象とする視差画像に近い画像の参照インデックスほど番号が小さい。
また、動き予測・補償部134は、予測画像生成部として機能し、インター予測モードごとに、生成された動きベクトルに基づいて、フレームメモリ132から参照画像を読み出すことにより、動き補償処理を行う。動き予測・補償部134は、その結果生成される予測画像を補正部135に供給する。
補正部135は、図1の視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離を視差画像に関する情報として用いて、予測画像を補正する際に用いる補正係数を生成する。補正部135は、動き予測・補償部134から供給される各インター予測モードの予測画像を、補正係数を用いて補正する。
ここで、符号化対象の視差画像の被写体の奥行方向の位置Zcと予測画像の被写体の奥行方向の位置Zpは、以下の式(5)で表される。
なお、式(5)において、Lc,Lpは、それぞれ、符号化対象の視差画像のカメラ間距離、予測画像のカメラ間距離である。fは、符号化対象の視差画像と予測画像に共通の焦点距離である。また、dc,dpは、それぞれ、符号化対象の視差画像の正規化前の視差値の絶対値、予測画像の正規化前の視差値の絶対値である。
また、符号化対象の視差画像の視差値Icと予測画像の視差値Ipは、正規化前の視差値の絶対値dc,dpを用いて、以下の式(6)で表される。
なお、式(6)において、Dc
min,Dp
minは、それぞれ、符号化対象の視差画像の視差最小値、予測画像の視差最小値である。Dc
max,Dp
maxは、それぞれ、符号化対象の視差画像の視差最大値、予測画像の視差最大値である。
従って、符号化対象の視差画像の被写体の奥行方向の位置Zcと予測画像の被写体の奥行方向の位置Zpが同一であっても、カメラ間距離LcとLp、視差最小値Dc
minとDp
min、および視差最大値Dc
max,Dp
maxの少なくとも1つが異なると、視差値Icと視差値Ipは異なってしまう。
そこで、補正部135は、位置Zcと位置Zpが同一である場合に視差値Icと視差値Ipが同一となるように予測画像を補正する補正係数を生成する。
具体的には、位置Zcと位置Zpが同一である場合、上述した式(5)より、以下の式(7)が成立する。
また、式(7)を変形すると、以下の式(8)になる。
そして、上述した式(6)を用いて、式(8)の正規化前の視差値の絶対値dc,dpを視差値Icと視差値Ipに置換すると、以下の式(9)になる。
これにより、視差値Icは、視差値Ipを用いて以下の式(10)で表される。
従って、補正部135は、式(10)のaとbを補正係数として生成する。そして、補正部135は、補正係数a,bと視差値Ipを用いて、式(10)における視差値Icを補正後の予測画像の視差値として求める。
また、補正部135は、補正後の予測画像を用いて、各インター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター測モードに決定する。そして、補正部135は、最適インター予測モードで生成された予測画像とコスト関数値とを選択部136に供給する。
さらに、補正部135は、選択部136から最適インター予測モードで生成された予測画像の選択が通知された場合、動き情報を符号化に関する情報として、スライスヘッダ符号化部63から供給されるスライスヘッダに含める。この動き情報は、最適インター予測モード、予測ベクトルインデックス、現在の動きベクトルから予測ベクトルインデックスが表す動きベクトルを減算した差分である動きベクトル残差等により構成される。なお、予測ベクトルインデックスとは、復号済みの視差画像の予測画像の生成に用いられた候補となる動きベクトルのうちの1つの動きベクトルを特定する情報である。
選択部136は、画面内予測部133および補正部135から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのいずれかを、最適予測モードに決定する。そして、選択部136は、最適予測モードの予測画像を、演算部123および加算部130に供給する。また、選択部136は、最適予測モードの予測画像の選択を画面内予測部133または補正部135に通知する。
レート制御部137は、蓄積バッファ127に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部125の量子化動作のレートを制御する。
[符号化ビットストリームの構成例]
図7は、符号化ビットストリームの構成例を示す図である。
なお、図7では、説明の便宜上、多視点視差画像のスライスの符号化データのみを記載しているが、実際には、符号化ビットストリームには、多視点カラー画像のスライスの符号化データも配置される。このことは、後述する図22および図23においても同様である。
図7の例では、0番目のPPSであるPPS#0の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの視差最大値、視差最小値、およびカメラ間距離が、それぞれ、符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離と一致しない。従って、PPS#0には、伝送の有りを表す伝送フラグ「1」が含まれる。また、図7の例では、PPS#0の同一PPS単位を構成するスライスの視差精度が0.5であり、PPS#0には、視差精度パラメータとして視差精度0.5を表す「1」が含まれる。
さらに、図7の例では、PPS#0の同一PPS単位を構成するイントラタイプのスライスの視差最小値が10であり、視差最大値が50であり、カメラ間距離が100である。従って、そのスライスのスライスヘッダには、視差最小値「10」、視差最大値「50」、およびカメラ間距離「100」が含まれる。
また、図7の例では、PPS#0の同一PPS単位を構成する1番目のインタータイプのスライスの視差最小値が9であり、視差最大値が48であり、カメラ間距離が105である。従って、そのスライスのスライスヘッダには、そのスライスの視差最小値「9」から、符号化順で1つ前のイントラタイプのスライスの視差最小値「10」を減算した差分「-1」が、視差最小値の差分符号化結果として含まれる。同様に、視差最大値の差分「-2」が視差最大値の差分符号化結果として含まれ、カメラ間距離の差分「5」がカメラ間距離の差分符号化結果として含まれる。
さらに、図7の例では、PPS#0の同一PPS単位を構成する2番目のインタータイプのスライスの視差最小値が7であり、視差最大値が47であり、カメラ間距離が110である。従って、そのスライスのスライスヘッダには、そのスライスの視差最小値「7」から、符号化順で1つ前の1番目のインタータイプのスライスの視差最小値「9」を減算した差分「-2」が、視差最小値の差分符号化結果として含まれる。同様に、視差最大値の差分「-1」が視差最大値の差分符号化結果として含まれ、カメラ間距離の差分「5」がカメラ間距離の差分符号化結果として含まれる。
また、図7の例では、1番目のPPSであるPPS#1の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの視差最大値、視差最小値、およびカメラ間距離が、それぞれ、符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離と一致する。即ち、PPS#1の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの視差最小値、視差最大値、カメラ間距離は、それぞれ、PPS#0の同一PPS単位を構成する2番目のインタータイプのスライスと同一の「7」、「47」、「110」である。従って、PPS#1には、伝送の無しを表す伝送フラグ「0」が含まれる。また、図7の例では、PPS#1の同一PPS単位を構成するスライスの視差精度が0.5であり、PPS#1には、視差精度パラメータとして視差精度0.5を表す「1」が含まれる。
[PPSのシンタックスの例]
図8は、図7のPPSのシンタックスの例を示す図である。
図8に示すように、PPSには、視差精度パラメータ(disparity_precision)と伝送フラグ(dsiparity_pic_same_flag)が含まれる。視差精度パラメータは、例えば、視差精度1を表す場合「0」であり、視差精度0.25を表す場合「2」である。また、上述したように、視差精度パラメータは、視差精度0.5を表す場合「1」である。また、伝送フラグは、上述したように、伝送の有りを表す場合「1」であり、伝送の無しを表す場合「0」である。
[スライスヘッダのシンタックスの例]
図9および図10は、スライスヘッダのシンタックスの例を示す図である。
図10に示すように、伝送フラグが1であり、スライスのタイプがイントラタイプである場合、スライスヘッダには、視差最小値(minimum_disparity)、視差最大値(maximum_disparity)、およびカメラ間距離(translation_x)が含まれる。
一方、伝送フラグが1であり、スライスのタイプがインタータイプである場合、スライスヘッダには、視差最小値の差分符号化結果(delta_minimum_disparity)、視差最大値の差分符号化結果(delta_maximum_disparity)、およびカメラ間距離の差分符号化結果(delta_translation_x)が含まれる。
[符号化装置の処理の説明]
図11は、図1の符号化装置50の符号化処理を説明するフローチャートである。
図11のステップS111において、符号化装置50の多視点カラー画像撮像部51は、多視点のカラー画像を撮像し、多視点カラー画像として多視点カラー画像補正部52に供給する。
ステップS112において、多視点カラー画像撮像部51は、視差最大値、視差最小値、および外部パラメータを生成する。多視点カラー画像撮像部51は、視差最大値、視差最小値、および外部パラメータを視点生成用情報生成部54に供給するとともに、視差最大値と視差最小値を多視点視差画像生成部53に供給する。
ステップS113において、多視点カラー画像補正部52は、多視点カラー画像撮像部51から供給される多視点カラー画像に対して、色補正、輝度補正、歪み補正等を行う。これにより、補正後の多視点カラー画像における多視点カラー画像撮像部51の水平方向(X方向)の焦点距離は、全視点で共通となる。多視点カラー画像補正部52は、補正後の多視点カラー画像を多視点補正カラー画像として多視点視差画像生成部53と多視点画像符号化部55に供給する。
ステップS114において、多視点視差画像生成部53は、多視点カラー画像撮像部51から供給される視差最大値と視差最小値に基づいて、多視点カラー画像補正部52から供給される多視点補正カラー画像から、多視点の視差画像を生成する。そして、多視点視差画像生成部53は、生成された多視点の視差画像を多視点視差画像として多視点画像符号化部55に供給する。
ステップS115において、多視点視差画像生成部53は、視差精度パラメータを生成し、視点生成用情報生成部54に供給する。
ステップS116において、視点生成用情報生成部54は、多視点カラー画像撮像部51から供給される外部パラメータに基づいて、カメラ間距離を求める。
ステップS117において、視点生成用情報生成部54は、多視点カラー画像撮像部51からの視差最大値および視差最小値、カメラ間距離、並びに多視点視差画像生成部53からの視差精度パラメータを視点生成用情報として生成する。視点生成用情報生成部54は、生成された視点生成用情報を多視点画像符号化部55に供給する。
ステップS118において、多視点画像符号化部55は、多視点カラー画像補正部52からの多視点補正カラー画像と多視点視差画像生成部53からの多視点視差画像を符号化する多視点符号化処理を行う。この多視点符号化処理の詳細については、後述する図12を参照して説明する。
ステップS119において、多視点画像符号化部55は、多視点符号化処理の結果得られる符号化ビットストリームを伝送し、処理を終了する。
図12は、図11のステップS118の多視点符号化処理を説明するフローチャートである。
図12のステップS131において、多視点画像符号化部55のSPS符号化部61は、シーケンス単位でSPSを生成し、PPS符号化部62に供給する。
ステップS132において、PPS符号化部62は、図1の視点生成用情報生成部54から供給される視点生成用情報のうちの、同一PPS単位を構成する全てのスライスのカメラ間距離、視差最大値、および視差最小値が、それぞれ、そのスライスより符号化順で1つ前のスライスのカメラ間距離、視差最大値、および視差最小値と一致するかどうかを判定する。
ステップS132でカメラ間距離、視差最大値、および視差最小値が一致すると判定された場合、ステップS133において、PPS符号化部62は、視差最大値、視差最小値、およびカメラ間距離の差分符号化結果の伝送の無しを表す伝送フラグを生成する。そして、処理はステップS135に進む。
一方、ステップS132でカメラ間距離、視差最大値、および視差最小値が一致しないと判定された場合、処理はステップS134に進む。ステップS134において、PPS符号化部62は、視差最大値、視差最小値、およびカメラ間距離の差分符号化結果の伝送の有りを表す伝送フラグを生成し、処理をステップS135に進める。
ステップS135において、PPS符号化部62は、伝送フラグと視点生成用情報のうちの視差精度パラメータとを含むPPSを生成する。PPS符号化部62は、SPS符号化部61から供給されるSPSにPPSを付加し、スライスヘッダ符号化部63に供給する。
ステップS136において、スライスヘッダ符号化部63は、PPS符号化部62から供給されるPPSに含まれる伝送フラグが伝送の有りを表す1であるかどうかを判定する。ステップS136で伝送フラグが1であると判定された場合、処理はステップS137に進む。
ステップS137において、スライスヘッダ符号化部63は、ステップS132の処理対象である同一PPS単位を構成する各スライスのスライスヘッダとして、そのスライスのカメラ間距離、視差最大値、および視差最小値以外の符号化に関する情報を生成する。スライスヘッダ符号化部63は、生成されたスライスヘッダを、PPS符号化部62から供給されるPPSが付加されたSPSにさらに付加してスライス符号化部64に供給し、処理をステップS141に進める。
一方、ステップS136で伝送フラグが1ではないと判定された場合、処理はステップS138に進む。なお、後述するステップS138乃至S140の処理は、ステップS132の処理対象である同一PPS単位を構成するスライスごとに行われる。
ステップS138において、スライスヘッダ符号化部63は、ステップS133の処理対象である同一PPS単位を構成するスライスのタイプがイントラタイプであるかどうかを判定する。ステップS138でスライスのタイプがイントラタイプであると判定された場合、ステップS139において、スライスヘッダ符号化部63は、そのスライスのスライスヘッダとして、そのスライスのカメラ間距離、視差最大値、および視差最小値を含む符号化に関する情報を生成する。スライスヘッダ符号化部63は、生成されたスライスヘッダを、PPS符号化部62から供給されるPPSが付加されたSPSにさらに付加してスライス符号化部64に供給し、処理をステップS141に進める。
一方、ステップS138でスライスのタイプがイントラタイプではないと判定された場合、即ちスライスのタイプがインタータイプである場合、処理はステップS140に進む。ステップS140において、スライスヘッダ符号化部63は、そのスライスのカメラ間距離、視差最大値、および視差最小値を差分符号化し、そのスライスのスライスヘッダとして、差分符号化結果を含む符号化に関する情報を生成する。スライスヘッダ符号化部63は、生成されたスライスヘッダを、PPS符号化部62から供給されるPPSが付加されたSPSにさらに付加してスライス符号化部64に供給し、処理をステップS141に進める。
ステップS141において、スライス符号化部64は、多視点カラー画像補正部52からの多視点補正カラー画像と、多視点視差画像生成部53からの多視点視差画像を、スライス単位で符号化する。具体的には、スライス符号化部64は、多視点補正カラー画像をHEVC方式で符号化するカラー画像符号化処理をスライス単位で行う。また、スライス符号化部64は、視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離を用いて、多視点視差画像をHEVC方式に準じた方式で符号化する視差画像符号化処理をスライス単位で行う。この視差画像符号化処理の詳細は、後述する図13および図14を参照して説明する。
ステップS142において、スライス符号化部64は、スライスヘッダ符号化部63から供給されるPPSとスライスヘッダが付加されたSPSのうちのスライスヘッダに画面内予測情報または動き情報を符号化に関する情報を含め、符号化の結果得られるスライス単位の符号化データを付加して符号化ストリームを生成する。スライス符号化部64は、生成された符号化ストリームを伝送する。
図13および図14は、図5のスライス符号化部64の視差画像符号化処理の詳細を説明するフローチャートである。この視差画像符号化処理は、視点ごとに行われる。
図13のステップS160において、符号化部120のA/D変換部121は、多視点視差画像生成部53から入力された所定の視点のフレーム単位の視差画像をA/D変換し、画面並べ替えバッファ122に出力して記憶させる。
ステップS161において、画面並べ替えバッファ122は、記憶した表示の順番のフレームの視差画像を、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ122は、並べ替え後のフレーム単位の視差画像を、演算部123、画面内予測部133、および動き予測・補償部134に供給する。
ステップS162において、画面内予測部133は、加算部130から供給される参照画像を用いて、候補となる全てのイントラ予測モードの画面内予測処理を行う。このとき、画面内予測部133は、候補となる全てのイントラ予測モードに対してコスト関数値を算出する。そして、画面内予測部133は、コスト関数値が最小となるイントラ予測モードを最適イントラ予測モードに決定する。画面内予測部133は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、選択部136に供給する。
ステップS163において、動き予測・補償部134は、画面並べ替えバッファ122から供給される視差画像と、フレームメモリ132から供給される参照画像とに基づいて、動き予測・補償処理を行う。
具体的には、動き予測・補償部134は、画面並べ替えバッファ122から供給される視差画像と、フレームメモリ132から供給される参照画像とに基づいて、候補となる全てのインター予測モードの動き予測処理を行い、動きベクトルを生成する。また、動き予測・補償部134は、インター予測モードごとに、生成された動きベクトルに基づいて、フレームメモリ132から参照画像を読み出すことにより、動き補償処理を行う。動き予測・補償部134は、その結果生成される予測画像を補正部135に供給する。
ステップS164において、補正部135は、図1の視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離に基づいて、補正係数を算出する。
ステップS165において、補正部135は、動き予測・補償部134から供給される各インター予測モードの予測画像を、補正係数を用いて補正する。
ステップS166において、補正部135は、補正後の予測画像を用いて、各インター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター測モードに決定する。そして、補正部135は、最適インター予測モードで生成された予測画像とコスト関数値とを選択部136に供給する。
ステップS167において、選択部136は、画面内予測部133および補正部135から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのコスト関数値が最小となる方を、最適予測モードに決定する。そして、選択部136は、最適予測モードの予測画像を、演算部123および加算部130に供給する。
ステップS168において、選択部136は、最適予測モードが最適インター予測モードであるかどうかを判定する。ステップS168で最適予測モードが最適インター予測モードであると判定された場合、選択部136は、最適インター予測モードで生成された予測画像の選択を補正部135に通知する。
そして、ステップS169において、補正部135は、動き情報を出力し、処理をステップS171に進める。
一方、ステップS168で最適予測モードが最適インター予測モードではないと判定された場合、即ち最適予測モードが最適イントラ予測モードである場合、選択部136は、最適イントラ予測モードで生成された予測画像の選択を画面内予測部133に通知する。
そして、ステップS170において、画面内予測部133は、画面内予測情報を出力し、処理をステップS171に進める。
ステップS171において、演算部123は、画面並べ替えバッファ122から供給される視差画像から、選択部136から供給される予測画像を減算する。演算部123は、減算の結果得られる画像を、残差情報として直交変換部124に出力する。
ステップS172において、直交変換部124は、演算部123からの残差情報に対して直交変換を施し、その結果得られる係数を量子化部125に供給する。
ステップS173において、量子化部125は、直交変換部124から供給される係数を量子化する。量子化された係数は、可逆符号化部126と逆量子化部128に入力される。
ステップS174において、可逆符号化部126は、量子化部125から供給される量子化された係数を可逆符号化する。
図14のステップS175において、可逆符号化部126は、可逆符号化処理の結果得られる符号化データを蓄積バッファ127に供給し、蓄積させる。
ステップS176において、蓄積バッファ127は、蓄積されている符号化データを出力する。
ステップS177において、逆量子化部128は、量子化部125から供給される量子化された係数を逆量子化する。
ステップS178において、逆直交変換部129は、逆量子化部128から供給される係数に対して逆直交変換を施し、その結果得られる残差情報を加算部130に供給する。
ステップS179において、加算部130は、逆直交変換部129から供給される残差情報と、選択部136から供給される予測画像を加算し、局部的に復号された視差画像を得る。加算部130は、得られた視差画像をデブロックフィルタ131に供給するとともに、参照画像として画面内予測部133に供給する。
ステップS180において、デブロックフィルタ131は、加算部130から供給される局部的に復号された視差画像に対してフィルタリングを行うことにより、ブロック歪を除去する。
ステップS181において、デブロックフィルタ131は、フィルタリング後の視差画像をフレームメモリ132に供給し、蓄積させる。フレームメモリ132に蓄積された視差画像は、参照画像として動き予測・補償部134に出力される。そして、処理は終了する。
なお、図13および図14のステップS162乃至S181の処理は、例えば、コーディングユニット単位で行われる。また、図13および図14の視差画像符号化処理では、説明を簡単化するため、常に、画面内予測処理と動き補償処理が行われるようにしたが、実際には、ピクチャタイプ等によっていずれか一方のみが行われる場合もある。
以上のように、符号化装置50は、視差画像に関する情報を用いて予測画像を補正し、補正後の予測画像を用いて視差画像を符号化する。より詳細には、符号化装置50は、視差画像に関する情報としてカメラ間距離、視差最大値、および視差最小値を用いて、予測画像と視差画像の間で、奥行方向の被写体の位置が同一である場合に視差値が同一となるように予測画像を補正し、補正後の予測画像を用いて視差画像を符号化する。従って、視差画像に関する情報によって生じる予測画像と視差画像の差分が削減され、符号化効率が向上する。特に、視差画像に関する情報がピクチャごとに変化するとき、符号化効率が向上する。
また、符号化装置50は、予測画像の補正に用いられる情報として、補正係数そのものではなく、補正係数の算出に用いられるカメラ間距離、視差最大値、および視差最小値を伝送する。ここで、カメラ間距離、視差最大値、および視差最小値は、視点生成用情報の一部である。従って、カメラ間距離、視差最大値、および視差最小値を、予測画像の補正に用いられる情報および視点生成用情報の一部として共有させることができる。その結果、符号化ビットストリームの情報量を削減することができる。
[復号装置の一実施の形態の構成例]
図15は、図1の符号化装置50から伝送される符号化ビットストリームを復号する、本技術を適用した復号装置の一実施の形態の構成例を示すブロック図である。
図15の復号装置150は、多視点画像復号部151、視点合成部152、および多視点画像表示部153により構成される。復号装置150は、符号化装置50から伝送されてくる符号化ビットストリームを復号し、その結果得られる多視点カラー画像、多視点視差画像、および視点生成用情報を用いて表示視点のカラー画像を生成して表示する。
具体的には、復号装置150の多視点画像復号部151は、図1の符号化装置50から伝送されてくる符号化ビットストリームを受け取る。多視点画像復号部151は、受け取られた符号化ビットストリームに含まれるPPSから視差精度パラメータと伝送フラグを抽出する。また、多視点画像復号部151は、伝送フラグに応じて、符号化ビットストリームのスライスヘッダからカメラ間距離、視差最大値、および視差最小値を抽出する。多視点画像復号部151は、視差精度パラメータ、カメラ間距離、視差最大値、および視差最小値からなる視点生成用情報を生成し、視点合成部152に供給する。
また、多視点画像復号部151は、符号化ビットストリームに含まれるスライス単位の多視点補正カラー画像の符号化データを、図1の多視点画像符号化部55の符号化方式に対応する方式で復号し、多視点補正カラー画像を生成する。また、多視点画像復号部151は、復号部として機能する。多視点画像復号部151は、カメラ間距離、視差最大値、および視差最小値を用いて、符号化ビットストリームに含まれる多視点視差画像の符号化データを、多視点画像符号化部55の符号化方式に対応する方式で復号し、多視点視差画像を生成する。多視点画像復号部151は、生成された多視点補正カラー画像および多視点視差画像を視点合成部152に供給する。
視点合成部152は、多視点画像復号部151からの視点生成用情報を用いて、多視点画像復号部151からの多視点視差画像に対して、多視点画像表示部153に対応する視点数の表示視点へのワーピング処理を行う。具体的には、視点合成部152は、視点生成用情報に含まれるカメラ間距離、視差最大値、および視差最小値等に基づいて、視差精度パラメータに対応する精度で、多視点視差画像に対して表示視点へのワーピング処理を行う。なお、ワーピング処理とは、ある視点の画像から別の視点の画像へ幾何変換する処理である。また、表示視点には、多視点カラー画像に対応する視点以外の視点が含まれる。
また、視点合成部152は、ワーピング処理の結果得られる表示視点の視差画像を用いて、多視点画像復号部151から供給される多視点補正カラー画像に対して、表示視点へのワーピング処理を行う。視点合成部152は、その結果得られる表示視点のカラー画像を、多視点合成カラー画像として多視点画像表示部153に供給する。
多視点画像表示部153は、視点合成部152から供給される多視点合成カラー画像を、視点ごとに視認可能な角度が異なるように表示する。視聴者は、任意の2視点の各画像を左右の各目で見ることにより、メガネを装着せずに複数の視点から3D画像を見ることができる。
以上のように、視点合成部152は、視差精度パラメータに基づいて、視点精度パラメータに対応する精度で、多視点視差画像に対する表示視点へのワーピング処理を行うので、視点合成部152は、無駄に高精度のワーピング処理を行う必要がない。
また、視点合成部152は、カメラ間距離に基づいて、多視点視差画像に対する表示視点へのワーピング処理を行うので、ワーピング処理後の多視点視差画像の視差値に対応する視差が適正な範囲ではない場合、カメラ間距離に基づいて、視差値を適正な範囲の視差に対応する値に修正することができる。
[多視点画像復号部の構成例]
図16は、図15の多視点画像復号部151の構成例を示すブロック図である。
図16の多視点画像復号部151は、SPS復号部171、PPS復号部172、スライスヘッダ復号部173、およびスライス復号部174により構成される。
多視点画像復号部151のSPS復号部171は、受け取り部として機能し、図1の符号化装置50から伝送されてくる符号化ビットストリームを受け取り、その符号化ビットストリームのうちのSPSを抽出する。SPS復号部171は、抽出されたSPSとSPS以外の符号化ビットストリームをPPS復号部172に供給する。
PPS復号部172は、SPS復号部171から供給されるSPS以外の符号化ビットストリームからPPSを抽出する。PPS復号部172は、抽出されたPPS、SPS、およびSPSとPPS以外の符号化ビットストリームをスライスヘッダ復号部173に供給する。
スライスヘッダ復号部173は、PPS復号部172から供給されるSPSとPPS以外の符号化ビットストリームからスライスヘッダを抽出する。スライスヘッダ復号部173は、PPS復号部172からのPPSに含まれる伝送フラグが伝送の有りを表す「1」である場合、スライスヘッダに含まれるカメラ間距離、視差最大値、および視差最小値を保持するか、または、カメラ間距離、視差最大値、および視差最小値の差分符号化結果に基づいて保持されているカメラ間距離、視差最大値、および視差最小値を更新する。スライスヘッダ復号部173は、保持されているカメラ間距離、視差最大値、および視差最小値、並びに、PPSに含まれる視差精度パラメータから視点生成用情報を生成し、視点合成部152に供給する。
さらに、スライスヘッダ復号部173は、SPS,PPS、およびスライスヘッダのカメラ間距離、視差最大値、および視差最小値に関する情報以外、並びに、SPS,PPS、およびスライスヘッダ以外の符号化ビットストリームであるスライス単位の符号化データを、スライス復号部174に供給する。また、スライスヘッダ復号部173は、カメラ間距離、視差最大値、および視差最小値をスライス復号部174に供給する。
スライス復号部174は、スライスヘッダ復号部173から供給されるSPS,PPS、およびスライスヘッダのカメラ間距離、視差最大値、および視差最小値に関する情報以外に基づいて、スライス符号化部64(図5)における符号化方式に対応する方式で、スライス単位の多重化カラー画像の符号化データを復号する。また、スライス復号部174は、SPS,PPS、スライスヘッダのカメラ間距離、視差最大値、および視差最小値関する情報以外、並びに、カメラ間距離、視差最大値、および視差最小値に基づいて、スライス符号化部64における符号化方式に対応する方式で、スライス単位の多重化視差画像の符号化データを復号する。スライスヘッダ復号部173は、復号の結果得られる多視点補正カラー画像と多視点視差画像を、図15の視点合成部152に供給する。
[スライス復号部の構成例]
図17は、図16のスライス復号部174のうちの任意の1視点の視差画像を復号する復号部の構成例を示すブロック図である。即ち、スライス復号部174のうちの多視点視差画像を復号する復号部は、視点数分の図17の復号部250により構成される。
図17の復号部250は、蓄積バッファ251、可逆復号部252、逆量子化部253、逆直交変換部254、加算部255、デブロックフィルタ256、画面並べ替えバッファ257、D/A変換部258、フレームメモリ259、画面内予測部260、動きベクトル生成部261、動き補償部262、補正部263、およびスイッチ264により構成される。
復号部250の蓄積バッファ251は、図16のスライスヘッダ復号部173からスライス単位の所定の視点の視差画像の符号化データを受け取り、蓄積する。蓄積バッファ251は、蓄積されている符号化データを可逆復号部252に供給する。
可逆復号部252は、蓄積バッファ251からの符号化データに対して、可変長復号や、算術復号等の可逆復号を施すことで、量子化された係数を得る。可逆復号部252は、量子化された係数を逆量子化部253に供給する。
逆量子化部253、逆直交変換部254、加算部255、デブロックフィルタ256、フレームメモリ259、画面内予測部260、動き補償部262、および補正部263は、図6の逆量子化部128、逆直交変換部129、加算部130、デブロックフィルタ131、フレームメモリ132、画面内予測部133、動き予測・補償部134、および補正部135とそれぞれ同様の処理を行い、これにより、所定の視点の視差画像が復号される。
具体的には、逆量子化部253は、可逆復号部252からの量子化された係数を逆量子化し、その結果得られる係数を逆直交変換部254に供給する。
逆直交変換部254は、逆量子化部253からの係数に対して、逆離散コサイン変換、逆カルーネン・レーベ変換等の逆直交変換を施し、その結果得られる残差情報を加算部255に供給する。
加算部255は、復号部として機能し、逆直交変換部254から供給される復号対象の視差画像としての残差情報と、スイッチ264から供給される予測画像を加算することにより、復号対象の視差画像を復号する。加算部255は、その結果得られる視差画像をデブロックフィルタ256に供給するとともに、参照画像として画面内予測部260に供給する。なお、スイッチ264から予測画像が供給されない場合、加算部255は、逆直交変換部254から供給される残差情報である視差画像をデブロックフィルタ256に供給するとともに、参照画像として画面内予測部260に供給する。
デブロックフィルタ256は、加算部255から供給される視差画像をフィルタリングすることにより、ブロック歪を除去する。デブロックフィルタ256は、その結果得られる視差画像をフレームメモリ259に供給し、蓄積させるとともに、画面並べ替えバッファ257に供給する。フレームメモリ259に蓄積された視差画像は、参照画像として動き補償部262に供給される。
画面並べ替えバッファ257は、デブロックフィルタ256から供給される視差画像をフレーム単位で記憶する。画面並べ替えバッファ257は、記憶した符号化のための順番のフレーム単位の視差画像を、元の表示の順番に並び替え、D/A変換部258に供給する。
D/A変換部258は、画面並べ替えバッファ257から供給されるフレーム単位の視差画像をD/A変換し、所定の視点の視差画像として視点合成部152(図15)に供給する。
画面内予測部260は、加算部255から供給される参照画像を用いて、スライスヘッダ復号部173(図16)から供給される画面内予測情報が表す最適イントラ予測モードの画面内予測を行い、予測画像を生成する。そして、画面内予測部260は、予測画像をスイッチ264に供給する。
動きベクトル生成部261は、保持されている動きベクトルのうちの、スライスヘッダ復号部173から供給される動き情報に含まれる予測ベクトルインデックスが表す動きベクトルと、動きベクトル残差とを加算し、動きベクトルを復元する。動きベクトル生成部261は、復元された動きベクトルを保持する。また、動きベクトル生成部261は、復元された動きベクトルと、動き情報に含まれる最適インター予測モード等を動き補償部262に供給する。
動き補償部262は、予測画像生成部として機能し、動きベクトル生成部261から供給される動きベクトルと最適インター予測モードに基づいて、フレームメモリ259から参照画像を読み出すことにより、動き補償処理を行う。動き補償部262は、その結果生成される予測画像を補正部263に供給する。
補正部263は、図6の補正部135と同様に、図16のスライスヘッダ復号部173から供給される視差最大値、視差最小値、およびカメラ間距離に基づいて、予測画像を補正する際に用いる補正係数を生成する。また、補正部263は、補正部135と同様に、動き補償部262から供給される最適インター予測モードの予測画像を、補正係数を用いて補正する。補正部263は、補正後の予測画像をスイッチ264に供給する。
スイッチ264は、画面内予測部260から予測画像が供給された場合、その予測画像を加算部255に供給し、動き補償部262から予測画像が供給された場合、その予測画像を加算部255に供給する。
[復号装置の処理の説明]
図18は、図15の復号装置150の復号処理を説明するフローチャートである。この復号処理は、例えば、図1の符号化装置50から符号化ビットストリームが伝送されてきたとき、開始される。
図18のステップS201において、復号装置150の多視点画像復号部151は、図1の符号化装置50から伝送されてくる符号化ビットストリームを受け取る。
ステップS202において、多視点画像復号部151は、受け取られた符号化ビットストリームを復号する多視点復号処理を行う。この多視点復号処理の詳細は、後述する図19を参照して説明する。
ステップS203において、視点合成部152は、カラー画像生成部として機能し、多視点画像復号部151から供給される視点生成用情報、多視点補正カラー画像、および多視点視差画像を用いて、多視点合成カラー画像を生成する。
ステップS204において、多視点画像表示部153は、視点合成部152から供給される多視点合成カラー画像を、視点ごとに視認可能な角度が異なるように表示し、処理を終了する。
図19は、図18のステップS202の多視点復号処理の詳細を説明するフローチャートである。
図19のステップS221において、多視点画像復号部151のSPS復号部171(図16)は、受け取られた符号化ビットストリームのうちのSPSを抽出する。SPS復号部171は、抽出されたSPSとSPS以外の符号化ビットストリームをPPS復号部172に供給する。
ステップS222において、PPS復号部172は、SPS復号部171から供給されるSPS以外の符号化ビットストリームからPPSを抽出する。PPS復号部172は、抽出されたPPS、SPS、およびSPSとPPS以外の符号化ビットストリームをスライスヘッダ復号部173に供給する。
ステップS223において、スライスヘッダ復号部173は、PPS復号部172から供給されるPPSに含まれる視差精度パラメータを視点生成用情報の一部として視点合成部152に供給する。
ステップS224において、スライスヘッダ復号部173は、PPS復号部172からのPPSに含まれる伝送フラグが伝送の有りを表す「1」であるかどうかを判定する。なお、以降のステップS225乃至S234の処理は、スライス単位で行われる。
ステップS224で伝送フラグが伝送の有りを表す「1」であると判定された場合、処理はステップS225に進む。ステップS225において、スライスヘッダ復号部173は、PPS復号部172から供給されるSPSとPPS以外の符号化ビットストリームから、視差最大値、視差最小値、およびカメラ間距離、または、視差最大値、視差最小値、およびカメラ間距離の差分符号化結果を含むスライスヘッダを抽出する。
ステップS226において、スライスヘッダ復号部173は、スライスのタイプがイントラタイプであるかどうかを判定する。ステップS226でスライスのタイプがイントラタイプであると判定された場合、処理はステップS227に進む。
ステップS227において、スライスヘッダ復号部173は、ステップS225で抽出されたスライスヘッダに含まれる視差最小値を保持し、視点生成用情報の一部として視点合成部152に供給する。
ステップS228において、スライスヘッダ復号部173は、ステップS225で抽出されたスライスヘッダに含まれる視差最大値を保持し、視点生成用情報の一部として視点合成部152に供給する。
ステップS229において、スライスヘッダ復号部173は、ステップS225で抽出されたスライスヘッダに含まれるカメラ間距離を保持し、視点生成用情報の一部として視点合成部152に供給する。そして、処理はステップS235に進む。
一方、ステップS226でスライスのタイプがイントラタイプではないと判定された場合、即ちスライスのタイプがインタータイプである場合、処理はステップS230に進む。
ステップS230において、スライスヘッダ復号部173は、ステップS225で抽出されたスライスヘッダに含まれる視差最小値の差分符号化結果を、保持されている視差最小値に加算する。スライスヘッダ復号部173は、加算により復元された視差最小値を視点生成用情報の一部として視点合成部152に供給する。
ステップS231において、スライスヘッダ復号部173は、ステップS225で抽出されたスライスヘッダに含まれる視差最大値の差分符号化結果を、保持されている視差最大値に加算する。スライスヘッダ復号部173は、加算により復元された視差最大値を視点生成用情報の一部として視点合成部152に供給する。
ステップS232において、スライスヘッダ復号部173は、ステップS225で抽出されたスライスヘッダに含まれるカメラ間距離の差分符号化結果を、保持されているカメラ間距離に加算する。スライスヘッダ復号部173は、加算により復元されたカメラ間距離を視点生成用情報の一部として視点合成部152に供給する。そして、処理はステップS235に進む。
一方、ステップS224で伝送フラグが伝送の有りを表す「1」ではないと判定された場合、即ち伝送フラグが伝送の無しを表す「0」である場合、処理はステップS233に進む。
ステップS233において、スライスヘッダ復号部173は、PPS復号部172から供給されるSPSとPPS以外の符号化ビットストリームから、視差最大値、視差最小値、およびカメラ間距離、および、視差最大値、視差最小値、およびカメラ間距離の差分符号化結果を含まないスライスヘッダを抽出する。
ステップS234において、スライスヘッダ復号部173は、保持されている視差最大値、視差最小値、およびカメラ間距離、即ち符号化順で1つ前のスライスの視差最大値、視差最小値、およびカメラ間距離を、処理対象のスライスの視差最大値、視差最小値、およびカメラ間距離とすることにより、処理対象のスライスの視差最大値、視差最小値、およびカメラ間距離を復元する。そして、スライスヘッダ復号部173は、復元された視差最大値、視差最小値、およびカメラ間距離を、視点生成用情報の一部として視点合成部152に供給し、処理をステップS235に進める。
ステップS235において、スライス復号部174は、スライス符号化部64(図5)における符号化方式に対応する方式で、スライス単位の符号化データを復号する。具体的には、スライス復号部174は、スライスヘッダ復号部173からのSPS,PPS、およびカメラ間距離、視差最大値、および視差最小値に関する情報以外のスライスヘッダに基づいて、スライス符号化部64における符号化方式に対応する方式で、スライス単位の多視点カラー画像の符号化データを復号する。また、スライス復号部174は、スライスヘッダ復号部173からのSPS,PPS、カメラ間距離、視差最大値、および視差最小値に関する情報以外のスライスヘッダ、並びに、カメラ間距離、視差最大値、および視差最小値に基づいて、スライス符号化部64における符号化方式に対応する方式で、スライス単位の多視点補正画像の符号化データを復号する視差画像復号処理を行う。この視差画像復号処理の詳細は、後述する図20を参照して説明する。スライスヘッダ復号部173は、復号の結果得られる多視点補正カラー画像と多視点視差画像を、図15の視点合成部152に供給する。
図20は、図16のスライス復号部174の視差画像復号処理の詳細を説明するフローチャートである。この視差画像復号処理は、視点ごとに行われる。
図20のステップS261において、復号部250の蓄積バッファ251は、図16のスライスヘッダ復号部173から所定の視点の視差画像のスライス単位の符号化データを受け取り、蓄積する。蓄積バッファ251は、蓄積されている符号化データを可逆復号部252に供給する。
ステップS262において、可逆復号部252は、蓄積バッファ251から供給される符号化データを可逆復号し、その結果得られる量子化された係数を逆量子化部253に供給する。
ステップS263において、逆量子化部253は、可逆復号部252からの量子化された係数を逆量子化し、その結果得られる係数を逆直交変換部254に供給する。
ステップS264において、逆直交変換部254は、逆量子化部253からの係数に対して逆直交変換を施し、その結果得られる残差情報を加算部255に供給する。
ステップS265において、動きベクトル生成部261は、図16のスライスヘッダ復号部173から動き情報が供給されたかどうかを判定する。ステップS265で動き情報が供給されたと判定された場合、処理はステップS266に進む。
ステップS266において、動きベクトル生成部261は、動き情報と保持している動きベクトルに基づいて動きベクトルを復元し、保持する。動きベクトル生成部261は、復元された動きベクトルと、動き情報に含まれる最適インター予測モード等を動き補償部262に供給する。
ステップS267において、動き補償部262は、動きベクトル生成部261から供給される動きベクトルと最適インター予測モードに基づいて、フレームメモリ259から参照画像を読み出すことにより動き補償処理を行う。動き補償部262は、動き補償処理の結果生成される予測画像を補正部263に供給する。
ステップS268において、補正部263は、図6の補正部135と同様に、図16のスライスヘッダ復号部173から供給される視差最大値、視差最小値、およびカメラ間距離に基づいて、補正係数を算出する。
ステップS269において、補正部263は、補正部135と同様に、動き補償部262から供給される最適インター予測モードの予測画像を、補正係数を用いて補正する。補正部263は、補正後の予測画像を、スイッチ264を介して加算部255に供給し、処理をステップS271に進める。
一方、ステップS265で動き情報が供給されていないと判定された場合、即ち画面内予測情報がスライスヘッダ復号部173から画面内予測部260に供給された場合、処理はステップS270に進む。
ステップS270において、画面内予測部260は、加算部255から供給される参照画像を用いて、スライスヘッダ復号部173から供給される画面内予測情報が示す最適イントラ予測モードの画面内予測処理を行う。画面内予測部260は、その結果生成される予測画像を、スイッチ264を介して加算部255に供給し、処理をステップS271に進める。
ステップS271において、加算部255は、逆直交変換部254から供給される残差情報と、スイッチ264から供給される予測画像を加算する。加算部255は、その結果得られる視差画像をデブロックフィルタ256に供給するとともに、参照画像として画面内予測部260に供給する。
ステップS272において、デブロックフィルタ256は、加算部255から供給される視差画像に対してフィルタリングを行い、ブロック歪を除去する。
ステップS273において、デブロックフィルタ256は、フィルタリング後の視差画像をフレームメモリ259に供給し、蓄積させるとともに、画面並べ替えバッファ257に供給する。フレームメモリ259に蓄積された視差画像は、参照画像として動き補償部262に供給される。
ステップS274において、画面並べ替えバッファ257は、デブロックフィルタ256から供給される視差画像をフレーム単位で記憶し、記憶した符号化のための順番のフレーム単位の視差画像を、元の表示の順番に並び替え、D/A変換部258に供給する。
ステップS275において、D/A変換部258は、画面並べ替えバッファ257から供給されるフレーム単位の視差画像をD/A変換し、所定の視点の視差画像として図15の視点合成部152に供給する。
以上のように、復号装置150は、視差画像に関する情報を用いて補正された予測画像を用いて符号化することにより符号化効率が向上された視差画像の符号化データと、その視差画像に関する情報を含む符号化ビットストリームを受け取る。そして、復号装置150は、視差画像に関する情報を用いて予測画像を補正し、補正後の予測画像を用いて視差画像の符号化データを復号する。
より詳細には、復号装置150は、視差画像に関する情報としてカメラ間距離、視差最大値、および視差最小値を用いて補正された予測画像を用いて符号化された符号化データと、カメラ間距離、視差最大値、および視差最小値とを受け取る。そして、復号装置150は、カメラ間距離、視差最大値、および視差最小値を用いて予測画像を補正し、補正後の予測画像を用いて視差画像の符号化データを復号する。これにより、復号装置150は、視差画像に関する情報を用いて補正された予測画像を用いて符号化することにより符号化効率が向上された視差画像の符号化データを復号することができる。
なお、符号化装置50は、予測画像の補正に用いられる情報として、視差最大値、視差最小値、およびカメラ間距離をスライスヘッダに含めて伝送したが、伝送方法は、これに限定されない。
[予測画像の補正に用いられる情報の伝送方法の説明]
図21は、予測画像の補正に用いられる情報の伝送方法を説明する図である。
図21の第1の伝送方法は、上述したように、予測画像の補正に用いられる情報として、視差最大値、視差最小値、およびカメラ間距離をスライスヘッダに含めて伝送する方法である。この場合、予測画像の補正に用いられる情報と視点生成用情報を共有させ、符号化ビットストリームの情報量を削減することができる。しかしながら、復号装置150において、視差最大値、視差最小値、およびカメラ間距離を用いて補正係数を算出する必要があり、復号装置150の処理負荷は後述する第2の伝送方法に比べて大きい。
一方、図21の第2の伝送方法は、予測画像の補正に用いられる情報として補正係数そのものをスライスヘッダに含めて伝送する方法である。この場合、視差最大値、視差最小値、およびカメラ間距離は、予測画像の補正に用いられないため、視点生成用情報の一部として、例えば、符号化時に参照する必要がないSEI(Supplemental Enhancement Information)に含めて伝送される。第2の伝送方法では、補正係数が伝送されるので、復号装置150において補正係数を算出する必要がなく、復号装置150の処理負荷は第1の伝送方法に比べて小さい。しかしながら、補正係数が新たに伝送されるので、符号化ビットストリームの情報量は多くなる。
なお、上述した説明では、予測画像は、視差最大値、視差最小値、およびカメラ間距離を用いて補正されたが、他の視差に関する情報(例えば、多視点カラー画像撮像部51の奥行き方向の撮像位置を表す撮像位置情報など)も用いて補正されるようにすることもできる。
この場合、図21の第3の伝送方法により、予測画像の補正に用いられる情報として、視差最大値、視差最小値、カメラ間距離、および他の視差に関する情報を用いて生成された補正係数である追加補正係数がスライスヘッダに含められて伝送される。このように、視差最大値、視差最小値、およびカメラ間距離以外の視差に関する情報も用いて予測画像が補正される場合、視差に関する情報による予測画像と視差画像の差分をより削減し、符号化効率を向上させることができる。しかしながら、追加補正係数が新たに伝送されるので、第1の伝送方法に比べて符号化ビットストリームの情報量は多くなる。また、視差最大値、視差最小値、およびカメラ間距離を用いて補正係数を算出する必要があるので、第2の伝送方法に比べて復号装置150の処理負荷は大きい。
図22は、第2の伝送方法で予測画像の補正に用いられる情報を伝送する場合の符号化ビットストリームの構成例を示す図である。
図22の例では、PPS#0の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの補正係数が、それぞれ、符号化順で1つ前のスライスの補正係数と一致しない。従って、PPS#0には、伝送の有りを表す伝送フラグ「1」が含まれる。なお、ここでは、伝送フラグは、補正係数の伝送の有無を表すフラグである。
また、図22の例では、PPS#0の同一PPS単位を構成するイントラタイプのスライスの補正係数aが1であり、補正係数bが0である。従って、そのスライスのスライスヘッダには、補正係数a「1」と補正係数b「0」が含まれる。
さらに、図22の例では、PPS#0の同一PPS単位を構成する1番目のインタータイプのスライスの補正係数aが3であり、補正係数bが2である。従って、そのスライスのスライスヘッダには、そのスライスの補正係数a「3」から、符号化順で1つ前のイントラタイプのスライスの補正係数a「1」を減算した差分「+2」が、補正係数の差分符号化結果として含まれる。同様に、補正係数bの差分「+2」が補正係数bの差分符号化結果として含まれる。
また、図22の例では、PPS#0の同一PPS単位を構成する2番目のインタータイプのスライスの補正係数aが0であり、補正係数bが-1である。従って、そのスライスのスライスヘッダには、そのスライスの補正係数a「0」から、符号化順で1つ前の1番目のインタータイプのスライスの補正係数a「3」を減算した差分「-3」が、補正係数の差分符号化結果として含まれる。同様に、補正係数bの差分「-3」が補正係数bの差分符号化結果として含まれる。
また、図22の例では、PPS#1の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの補正係数が、それぞれ、符号化順で1つ前のスライスの補正係数と一致する。従って、PPS#1には、伝送の無しを表す伝送フラグ「0」が含まれる。
図23は、第3の伝送方法で予測画像の補正に用いられる情報を伝送する場合の符号化ビットストリームの構成例を示す図である。
図23の例では、PPS#0の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの視差最小値、視差最大値、カメラ間距離、および追加補正係数が、それぞれ、符号化順で1つ前のスライスの視差最小値、視差最大値、カメラ間距離、および追加補正係数と一致しない。従って、PPS#0には、伝送の有りを表す伝送フラグ「1」が含まれる。なお、ここでは、伝送フラグは、視差最小値、視差最大値、カメラ間距離、および追加補正係数の伝送の有無を表すフラグである。
また、図23の例では、PPS#0の同一PPS単位を構成するスライスの視差最小値、視差最大値、およびカメラ間距離は、図7の場合と同様であり、各スライスのスライスヘッダに含まれる視差最小値、視差最大値、およびカメラ間距離に関する情報は図7と同様であるので、説明は省略する。
また、図23の例では、PPS#0の同一PPS単位を構成するイントラタイプのスライスの追加補正係数は5である。従って、そのスライスのスライスヘッダには、追加補正係数「5」が含まれる。
さらに、図23の例では、PPS#0の同一PPS単位を構成する1番目のインタータイプのスライスの追加補正係数が7である。従って、そのスライスのスライスヘッダには、そのスライスの追加補正係数「7」から、符号化順で1つ前のイントラタイプのスライスの追加補正係数「5」を減算した差分「+2」が、追加補正係数の差分符号化結果として含まれる。
また、図23の例では、PPS#0の同一PPS単位を構成する2番目のインタータイプのスライスの追加補正係数が8である。従って、そのスライスのスライスヘッダには、そのスライスの追加補正係数「8」から、符号化順で1つ前の1番目のインタータイプのスライスの追加補正係数「7」を減算した差分「+1」が、追加補正係数の差分符号化結果として含まれる。
また、図23の例では、PPS#1の同一PPS単位を構成する1つのイントラタイプのスライスと2つのインタータイプのスライスの視差最小値、視差最大値、カメラ間距離、および追加補正係数が、それぞれ、符号化順で1つ前のスライスの視差最小値、視差最大値、カメラ間距離、および追加補正係数と一致する。従って、PPS#1には、伝送の無しを表す伝送フラグ「0」が含まれる。
符号化装置50は、図21の第1乃至第3の伝送方法のいずれの方法で、予測画像の補正に用いられる情報を伝送するようにしてもよい。また、符号化装置50は、伝送方法として採用した、第1乃至第3の伝送方法のうちの1つの伝送方法を識別する識別情報(例えば、フラグ、IDなど)を、符号化ビットストリームに含めて伝送するようにしてもよい。さらに、図21の第1乃至第3の伝送方法は、符号化ビットストリームを利用するアプリケーションに応じて、符号化ビットストリームのデータ量と復号の処理負荷のバランスを考慮して適宜選択することが可能である。
また、本実施の形態では、予測画像の補正に用いられる情報は、符号化に関する情報としてスライスヘッダに配置されたが、予測画像の補正に用いられる情報の配置領域は、符号化時に参照される領域であれば、スライスヘッダに限定されない。例えば、予測画像の補正に用いられる情報は、PPSのNALユニット等の既存のNAL(Network Abstraction Layer)ユニットや、HEVC規格で提案されているAPS(Adaptation Parameter Set)のNALユニット等の新たなNALユニットに配置されるようにすることができる。
例えば、補正係数や追加補正係数が複数のピクチャ間で共通である場合、その複数のピクチャに適応可能なNALユニット(例えば、PPSのNALユニット等)に、その共通の値を配置させることにより、伝送効率を向上させることができる。即ち、この場合、複数のピクチャ間で共通の補正係数や追加補正係数を伝送すればよいので、スライスヘッダに配置させる場合のように、スライスごとに補正係数や追加補正係数を伝送する必要がない。
従って、例えば、カラー画像が、フラッシュやフェード効果を有するカラー画像である場合、視差最小値、視差最大値、カメラ間距離等などのパラメータが変化しない傾向があるため、補正係数や追加補正係数はPPSのNALユニットなどに配置させ、伝送効率を向上させる。
補正係数や追加補正係数は、例えば、ピクチャごとに異なる場合、スライスヘッダに配置させ、複数のピクチャ間で共通である場合、スライスヘッダよりも上のレイヤ(例えば、PPSのNALユニット等)に配置することができる。
さらに、視差画像は、その視差画像に対応する視点のカラー画像の各画素の被写体の奥行方向の位置を表す奥行き値からなる画像(奥行き画像)であってもよい。この場合、視差最大値と視差最小値は、ぞれぞれ、多視点視差画像においてとり得る奥行方向の位置の世界座標値の最大値、最小値である。
また、本技術は、HEVC方式以外のAVC,MVC(Multiview Video Coding)等の符号化方式にも適用することができる。
<スライス符号化部の他の構成>
図24は、多視点画像符号化部55(図1)を構成するスライスヘッダ符号化部63(図5)とスライス符号化部64を抜き出した図である。図24では、図5に示したスライスヘッダ符号化部63、スライス符号化部64と区別を付けるために、異なる符号を付して説明するが、基本的な処理は、図5に示したスライスヘッダ符号化部63、スライス符号化部64と同様であるので、その説明は適宜省略する。
なお、視差画像として奥行き方向の位置(距離)を表す奥行き値からなる奥行き画像が用いられる場合、上記した視差最大値と視差最小値は、ぞれぞれ、多視点視差画像においてとり得る奥行方向の位置の世界座標値の最大値、最小値となる。ここでは、視差最大値と視差最小値との記載をする部分であっても、視差画像として奥行き方向の位置を表す奥行き値からなる奥行き画像が用いられる場合には、奥行方向の位置の世界座標値の最大値、最小値と適宜読み替えられる。
スライスヘッダ符号化部301は、上記したスライスヘッダ符号化部63と同様に構成され、PPS符号化部62から供給されるPPSに含まれる伝送フラグと、各スライスのタイプとに基づいて、スライスヘッダを生成する。スライスヘッダ符号化部301は、生成されたスライスヘッダを、PPS符号化部62から供給されるPPSが付加されたSPSにさらに付加し、スライス符号化部64に供給する。
スライス符号化部302は、上記したスライス符号化部64と同様の符号化を行う。すなわち、スライス符号化部302は、多視点カラー画像補正部52(図1)から供給される多視点補正カラー画像に対して、HEVC方式でスライス単位の符号化を行う。
またスライス符号化部302は、図1の視点生成用情報生成部54から供給される視点生成用情報のうちの視差最大値、視差最小値、およびカメラ間距離を視差に関する情報として用いて、多視点視差画像生成部53からの多視点視差画像に対して、HEVC方式に準じた方式でスライス単位の符号化を行う。スライス符号化部302は、符号化の結果得られるスライス単位の符号化データ等を、スライスヘッダ符号化部301から供給されるPPSとスライスヘッダが付加されたSPSに付加し、ビットストリームを生成する。スライス符号化部302は、伝送部として機能し、ビットストリームを符号化ビットストリームとして伝送する。
図25は、図24のスライス符号化部302のうちの任意の1視点の視差画像を符号化する符号化部の内部構成例を示す図である。図25に示した符号化部310は、A/D変換部321、画面並べ替えバッファ322、演算部323、直交変換部324、量子化部325、可逆符号化部326、蓄積バッファ327、逆量子化部328、逆直交変換部329、加算部330、デブロックフィルタ331、フレームメモリ332、画面内予測部333、動き予測・補償部334、補正部335、選択部336、およびレート制御部337により構成される。
図25に示した符号化部310は、図6に示した符号化部120と同様の構成を有している。すなわち、図25に示した符号化部310のA/D変換部321乃至レート制御部337は、それぞれ、図6に示した符号化部120のA/D変換部121乃至レート制御部137と同様の機能を有している。よって、ここではその詳細な説明は省略する。
図25に示した符号化部310は、図6に示した符号化部120と構成は同じであるが、補正部335の内部構成が、図6に示した符号化部120の補正部135と異なる。図26に補正部335の構成を示す。
図26に示した補正部335は、デプス用補正部341、輝度用補正部342、コスト算出部343、および設定部344から構成されている。これらの各部が行う処理については、フローチャートを参照し後述する。
図27は、視差と奥行きについて説明するための図である。図27中、C1は、カメラC1が設置されている位置を表し、C2は、カメラC2が設置されている位置を示す。カメラC1とカメラC2により、異なる視点の色画像(カラー画像)を撮影することができるようになされている。またカメラC1とカメラC2は、距離Lだけ離れて設置されている。Mは、撮像対象とされている物体であり、対象物Mと記述する。fは、カメラC1の焦点距離を表す。
このような関係のとき、次式が満たされる。
Z=(L/D)×f
この式において、Zは、視差画像(奥行き画像)の被写体の奥行き方向の位置(対象物MとカメラC1(カメラC2)との奥行方向の距離)である。Dは撮影視差ベクトル(のx成分)を表し、視差値を表す。すなわちDは、2つのカメラ間で生じる視差である。具体的には、D(d)は、カメラC1で撮像されたカラー画像上の対象物Mの位置の、カラー画像の中心からの水平方向の距離u1から、カメラC2で撮像されたカラー画像上の対象物Mの位置の、カラー画像の中心からの水平方向の距離u2を減算した値である。上述した式に示すように、視差値Dと位置Zは一意に変換可能である。従って、以下では、視差画像と奥行き画像を総称してデプス画像とする。上述した式の関係が満たされること、特に、視差値Dと奥行き方向の位置Zの関係についてさらに説明を続ける。
図28と図29は、カメラにより撮像される画像、奥行き、奥行き値の関係について説明するための図である。カメラ401は、筒411、顔412、家413を撮像する。カメラ401に近い側から順に、筒411、顔412、家413が配置されている。このとき、カメラ401に一番近い位置に配置されている筒411の奥行き方向の位置が奥行き方向の位置の世界座標値の最小値Znearに設定され、カメラ401から一番遠い位置に配置されている家413の位置が奥行方向の位置の世界座標値の最大値Zfarに設定される。
図29は、視点生成用情報の奥行き方向の位置の最小値Znearと最大値Zfarとの関係を説明する図である。図29において、横軸は、正規化前の奥行き方向の位置の逆数であり、縦軸は、デプス画像の画素値である。図29に示すように、各画素の画素値としての奥行き値は、最大値Zfarの逆数と最小値Znearの逆数が用いられて、例えば0乃至255の値に正規化される。そして、0乃至255のいずれかの値である正規化後の各画素の奥行き値を画素値として、デプス画像が生成される。
図29に示したグラフは、図2に示したグラフに対応している。図29に示したグラフは、視点生成用情報の奥行きの位置の最小値と最大値との関係を示したフラグであり、図2に示したグラフは、視点生成用情報の視差最大値と視差最小値の関係を示したグラフである。
図2を参照して説明したように、視差画像の各画素の画素値Iは、その画素の正規化前の視差値d、視差最小値Dmin、および視差最大値Dmaxを用いて、式(1)で表された。ここで、再度式(1)を、式(11)として以下に示す。
また、奥行き画像の各画素の画素値yは、その画素の正規化前の奥行き値1/Z、最小値Znear、および最大値Zfarを用いて、以下の式(13)で表される。なお、ここでは、奥行き値として位置Zの逆数が用いられるものとするが、奥行き値としては位置Zそのものを用いることもできる。
式(13)からわかるように、デプス画像の画素値yは、最大値Zfarと最小値Znearから算出される値である。この最大値Zfarと最小値Znearは、図28を参照して説明したように、撮像される物体の位置関係に依存して決定される値である。よって、撮像される画像内の物体の位置関係が変わったときには、その変化に応じて最大値Zfarと最小値Znearもそれぞれ変化する。
ここで、図30を参照し、物体の位置関係が変化したときについて説明する。図30の左側は時刻T0のときのカメラ401で撮像される画像の位置関係を示し、図28に示した位置関係と同様の位置関係を示している。時刻T0から時刻T1に変化したとき、カメラ401の近くに位置していた筒411がなくなり、顔412と家413の位置関係には変化がなかった場合を想定する。
この場合、時刻T0から時刻T1に変化したときに、最小値Znearは最小値Znear’に変化する。すなわち、時刻T0では、筒411の奥行方向の位置Zが最小値Znearであったのに対して、時刻T1では、筒411がなくなることで、カメラ401から一番近い位置の物体が顔412に変化し、その変化に伴い、最小値Znear(Znear’)の位置が、顔412の位置Zに変化する。
時刻T0のときの最小値Znearと最大値Zfarの差分(レンジ)を奥行き方向の位置のレンジを示す奥行きレンジAとし、時刻T1のときの最小値Znear’と最大値Zfarの差分(レンジ)を、奥行きレンジBとする。この場合、奥行きレンジAから奥行きレンジBに変化したことになる。ここで、上記したように、式(13)を再度参照するに、奥行き画像の画素値yは、最大値Zfarと最小値Znearから算出される値であるため、このように、奥行きレンジAから奥行きレンジBに変化したときには、そのような値を用いて算出される画素値も変化することになる。
例えば、図30の左側に、時刻T0の奥行き画像421を示したが、筒411は手前にあるために、筒411の画素値は大きく(明るく)、顔412と家413の画素値は、筒411よりも遠くに位置するため筒411よりも小さい(暗い)。同様に、図30の右側に、時刻T1の奥行き画像422を示したが、筒411が無くなったために、奥行きレンジが小さくなり、奥行き画像421に比べて顔412の画素値が大きく(明るく)なる。これは、上記したように、奥行きレンジが変化するために、同一の位置Zであっても、最大値Zfarと最小値Znearを用いて式(13)により求められる画素値yが変化するからである。
しかしながら、時刻T0と時刻T1において、顔412の位置は変化していないため、時刻T0と時刻T1において顔412の奥行き画像の画素値に急激な変化がないことが好ましい。すなわち、このように、奥行き方向の位置(距離)の最大値と最小値のレンジが急激に変わると、奥行き方向の位置が同一であっても、奥行き画像の画素値(輝度値)が大幅に変化し、予測が当たらなくなる可能性がある。そこで、このようなことが無いように制御される場合について説明する。
図31は、図30に示した図と同じである。しかしながら、図31に示した右側に示した時刻T1における物体の位置関係は、カメラ401の手前側に筒411’が位置していると想定し、最小値Znearに変化がないとして処理する。このように処理することで、上記した奥行きレンジAと奥行きレンジBが変化すること無く処理することが可能となる。よって、奥行き方向の距離の最大値と最小値のレンジが急激に変わることを防ぎ、奥行き方向の位置が同一である場合に奥行き画像の画素値(輝度値)が大幅に変化するようなことなく、予測が当たらなくなる可能性を低減させることが可能となる。
また、図32に示したように、物体の位置関係が変化する場合も想定される。図32に示した物体の位置関係において、図32の左側に示した時刻T0のときの位置関係は、図30や図31に示した場合と同じであり、カメラ401に近い位置から順に、筒411、顔412、家413が位置している場合である。
このような状態から、時刻T1のときに、顔412がカメラ401の方に移動し、筒411もカメラ401の方に移動した場合、まず、図32に示したように、最小値Znearが最小値Znear’になるため、最大値Zfarとの差分が変化し、奥行きレンジが変化することになる。このような奥行き方向の位置の最大値と最小値のレンジの急激な変化は、図31を参照して説明したように、筒411の位置が変わらないとして処理することで、奥行き方向の位置が同一である場合に奥行き画像の画素値(輝度値)が大幅に変化するようなことを防ぐことが可能である。
図32に示した場合、顔412もカメラ401方向に移動しているため、顔412の奥行き方向の位置は、時刻T0のときの顔412の奥行き方向の位置よりも小さく(奥行き画像の画素値(輝度値)が高く)なる。しかしながら、上記したような奥行き方向の位置が同一である場合に奥行き画像の画素値(輝度値)が大幅に変化することを防ぐ処理が行われると、顔412の奥行き画像の画素値が奥行き方向の位置に対応する適切な画素値(輝度値)に設定されない可能性がある。そこで、図31を参照して説明したような処理が行われた後に、顔412などの画素値(輝度値)が適切な画素値(輝度値)となるような処理が実行されるようにする。このように、奥行き方向の位置が同一である場合に奥行き画像の画素値が大幅に変化するようなことを防ぐ処理が行われるとともに、適切な画素値(輝度値)となるような処理が行われるようにする。
このような処理が行われるときのデプス画像の符号化に関わる処理について、図33、図34のフローチャートを参照して説明する。図33、図34は、図24乃至図26に示したスライス符号化部302の視差画像符号化処理の詳細を説明するフローチャートである。この視差画像符号化処理は、視点ごとに行われる。
図24乃至図26に示したスライス符号化部302は、図5、図6に示したスライス符号化部64と基本的に同様の構成を有するが、補正部335の内部構成が異なると説明した。よって、補正部335が行う処理以外の処理は、基本的に、図5、図6に示したスライス符号化部64と同様な処理、すなわち、図13、図14に示したフローチャートの処理と同様な処理として行われる。ここでは、図13、図14に示したフローチャートで説明した部分と重複する部分に関する説明は省略する。
図33のステップS300乃至S303、ステップS305乃至S313の処理は、図13のステップS160乃至S163、ステップS166乃至S174の処理と同様に行われる。但し、ステップS305の処理は、図26のコスト算出部343により行われ、ステップS308の処理は、設定部344により行われる。また、図34のステップS314乃至S320の処理は、図14のステップS175乃至S181の処理と同様に行われる。すなわち、ステップS304において実行される予測画像生成処理が、図13に示したフローチャートの処理と異なる以外は、基本的に同一の処理が実行される。
ここで、ステップS304において実行される予測画像生成処理について、図35のフローチャートを参照して説明する。ステップS331において、デプス用補正部341(図26)は、処理対象のデプス画像の画素値が視差値(ディスパリティ)であるか否かが判断される。
ステップS331において、処理対象のデプス画像の画素値が視差値であると判断された場合、ステップS332に処理が進められる。ステップS332において、視差値用の補正係数が算出される。視差値用の補正係数は、以下の式(14)で求められる。
式(14)において、Vref’,Vrefは、それぞれ、補正後の視差画像の予測画像の視差値、補正前の視差画像の予測画像の視差値である。またLcur,Lrefは、それぞれ、符号化対象の視差画像のカメラ間距離、視差画像の予測画像のカメラ間距離である。Fcur,Frefは、それぞれ符号化対象の視差画像の焦点距離、視差画像の予測画像の焦点距離である。Dcurmin,Drefminは、それぞれ、符号化対象の視差画像の視差最小値、視差画像の予測画像の視差最小値である。Dcurmax,Drefmaxは、それぞれ、符号化対象の視差画像の視差最大値、視差画像の予測画像の視差最大値である。
デプス用補正部341は、視差値用の補正係数として、式(14)のaとbを補正係数として生成する。補正係数aは、ディスパリティの重み係数(ディスパリティ重み係数)であり、補正係数bは、ディスパリティのオフセット(ディスパリティオフセット)である。デプス用補正部341は、このディスパリティ重み係数とディスパリティオフセットから、上記した式(14)に基づき、補正後のデプス画像の予測画像の画素値を算出する。
ここでの処理は、デプス画像としての視差画像を対象とした、その視差画像の画素値としてのディスパリティを正規化する際に用いる、ディスパリティのレンジを示すディスパリティレンジに基づいて、デプス重み係数としてのディスパリティ重み係数とデプスオフセットとしてのディスパリティオフセットを用いた重み付け予測処理である。ここでは、適宜、デプス重み付け予測処理と記述する。
一方、ステップS331において、処理対象のデプス画像の画素値が視差値ではないと判断された場合、ステップS333に処理が進められる。ステップS333において、奥行き方向の位置(距離)用の補正係数が算出される。奥行き方向の位置(距離)用の補正係数は、以下の式(15)で求められる。
式(15)において、Vref’,Vrefは、それぞれ、補正後の奥行き画像の予測画像の画素値、補正前の奥行き画像の予測画像の画素値である。またZcurnear,Zrefnearは、それぞれ、符号化対象の奥行き画像の一番近い被写体の奥行方向の位置(最小値Znear)、奥行き画像の予測画像の一番近い被写体の奥行方向の位置(最小値Znear)である。Zcurfar,Zreffarは、それぞれ、符号化対象の奥行き画像の一番遠い被写体の奥行方向の位置(最大値Zfar)、奥行き画像の予測画像の一番遠い被写体の奥行方向の位置(最大値Zfar)である。
デプス用補正部341は、奥行き方向の位置用の補正係数として、式(15)のaとbを補正係数として生成する。補正係数aは、奥行き値の重み係数(奥行き重み係数)であり、補正係数bは、奥行き値のオフセット(奥行きオフセット)である。デプス用補正部341は、この奥行き重み係数と奥行きオフセットから、上記した式(15)に基づき、補正後のデプス画像の予測画像の画素値を算出する。
ここでの処理は、デプス画像としての奥行き画像を対象とした、その奥行き画像の画素値としての奥行き値を正規化する際に用いる奥行きレンジに基づいて、デプス重み係数としての奥行き重み係数とデプスオフセットとしての奥行きオフセットを用いた重み付け予測処理である。ここでは、適宜、デプス重み付け予測処理と記述する。
このように、処理対象のデプス画像の画素値が視差値(D)であるか、奥行き方向の位置(距離)(Z)を表す奥行き値1/Zであるかにより異なる式が用いられて補正係数が算出される。また補正係数が用いられて、一旦、補正後の予測画像が算出される。ここで、一旦と記載したのは、後段において、輝度値の補正が行われるためである。このようにして補正係数が算出されると、ステップS334に処理が進められる。
このようにして補正係数が算出された場合、設定部344は、視差値用の補正係数を算出したのか、奥行き方向の位置(距離)用の補正係数を算出したのかを示す情報を生成し、スライスヘッダに含めて復号側に伝送する。
換言すれば、設定部344は、奥行方向の位置(距離)を表す奥行き値を正規化する際に用いる奥行きレンジに基づいてデプス重み付け予測処理を行うか、または、視差値を正規化する際に用いるディスパリティレンジに基づいてデプス重み付け予測処理を行うかを判断し、その判断に基づき、どちらの予測処理を行ったかを識別するデプス識別データを設定し、そのデプス識別データが、復号側に伝送される。
このデプス識別データは、設定部344により設定され、スライスヘッダに含まれて送信されるようにすることができる。このようなデプス識別データを符号化側と復号側で共有できるようにすると、復号側において、デプス識別データを参照することで、奥行方向の位置(距離)を表す奥行き値を正規化する際に用いる奥行きレンジに基づいてデプス重み付け予測処理を行うか、または、視差を表す視差値を正規化する際に用いるディスパリティレンジに基づいてデプス重み付け予測処理を行うかを判断することが可能となる。
また、スライスの種類により補正係数を算出するか否かを判断し、スライスの種類によっては補正係数を算出しないようにしても良い。具体的には、スライスの種類が、Pスライス、SPスライス、Bスライスである場合には、補正係数を算出し(デプス重み付け予測処理を行い)、その他のスライスである場合には、補正係数を算出しないようにしても良い。
なお、1ピクチャは複数のスライスから構成されるため、スライスの種類により補正係数を算出するか否かを判断する構成は、ピクチャの種類(ピクチャタイプ)により補正係数を算出するか否かを判断するような構成とすることもできる。例えば、ピクチャタイプがBピクチャである場合には、補正係数を算出しないようにすることができる。ここでは、スライスの種類により補正係数が算出されるか否かが決定されるとして説明を続ける。
Pスライス、SPスライスの場合において、デプス重み付け予測処理を行った場合には、設定部344は、例えば、depth_weighted_pred_flagを1に設定し、デプス重み付け予測処理を行わなかった場合には、設定部344は、depth_weighted_pred_flagを0に設定し、このdepth_weighted_pred_flagが、例えば、スライスヘッダに含まれて送信されるようにしても良い。
また、Bスライスの場合において、デプス重み付け予測処理を行った場合には、設定部344は、例えば、depth_weighted_bipred_flagを1に設定し、デプス重み付け予測処理を行わなかった(デプス重み付け予測処理をスキップした)場合には、設定部344は、depth_weighted_bipred_flagを0に設定し、このdepth_weighted_bipred_flagが、例えば、スライスヘッダに含まれて送信されるようにしても良い。
以上により、復号側においては、depth_weighted_pred_flagやdepth_weighted_bipred_flagを参照することで、補正係数を算出する必要があるか否かを判断することができるようになる。換言すれば、復号側において、スライスの種類により補正係数を算出するか否かを判断し、スライスの種類によっては補正係数を算出しないように制御するといった処理を行うことができるようになる。
ステップS334において、輝度用補正部342により輝度用の補正係数が算出される。輝度用の補正係数は、例えば、AVC方式における輝度補正を適用し、算出することができる。AVC方式における輝度補正も、上記したデプス重み付け予測処理と同じく、重み係数とオフセットを用いた重み付け予測処理が行われることで、補正される。
すなわち、上記したデプス重み付け予測処理により補正された予測画像が生成され、その補正された予測画像に対して、輝度値を補正するための重み付け予測処理が行われ、デプス画像を符号化する際に用いられる予測画像(デプス予測画像)が生成される。
この輝度用の補正係数の場合も、補正係数を算出した場合と、算出していない場合とを識別するデータを設定し、復号側に伝送するようにしても良い。例えば、Pスライス、SPスライスの場合において、輝度値の補正係数を算出した場合には、例えば、weighted_pred_flagを1に設定し、輝度値の補正係数を算出しなかった場合には、weighted_pred_flagを0に設定し、このweighted_pred_flagを、例えば、スライスヘッダに含まれて送信されるようにしても良い。
また、Bスライスの場合において、輝度値の補正係数を算出した場合には、例えば、weighted_bipred_flagを1に設定し、輝度値の補正係数を算出しなかった場合には、weighted_bipred_flagを0に設定し、このweighted_bipred_flagを、例えば、スライスヘッダに含まれて送信されるようにしても良い。
このように、まず、ステップS332またはステップS333において、正規化のずれを直し、同一の座標系に変換する効果を得てから、ステップS334において、輝度のずれを直す処理が実行される。仮に、先に輝度を直してから、正規化のずれを直す処理を実行するようにすると、最小値Znearと最大値Zfarの関係性が崩れてしまい、適切に正規化のずれを直すことができない可能性がある。よって、先に正規化のずれを直し、その後、輝度のずれを直すのが良い。
なおここでは、正規化のずれを直すデプス重み付け予測処理と、輝度値を補正する重み付け予測処理が行われるとして説明をしたが、どちらか一方のみの予測処理が行われるように構成することも可能である。
このようにして、補正係数が算出されると、ステップS335に処理が進められる。ステップS335において輝度用補正部342により予測画像が生成される。この予測画像の生成は、既に説明したので、その説明は省略する。また生成されたデプス予測画像を用いてデプス画像が符号化されて、符号化データ(デプスストリーム)が生成され、復号側に伝送される。
このようにして生成された画像を受け取り処理する復号装置について説明する。
<スライス復号部の構成>
図36は、多視点画像復号部151(図15)を構成するスライスヘッダ復号部173とスライス復号部174(図16)を抜き出した図である。図36では、図16に示したスライスヘッダ復号部173、スライス復号部174と区別が付けるために、異なる符号を付して説明するが、基本的な処理は、図5に示したスライスヘッダ復号部173とスライス復号部174と同様であるので、その説明は適宜省略する。
スライス復号部552は、スライスヘッダ復号部551から供給されるSPS,PPS、およびスライスヘッダのカメラ間距離、視差最大値、および視差最小値に関する情報以外に基づいて、スライス符号化部302(図24)における符号化方式に対応する方式で、スライス単位の多重化カラー画像の符号化データを復号する。
また、スライス復号部552は、SPS,PPS、スライスヘッダのカメラ間距離、視差最大値、および視差最小値関する情報以外、並びに、カメラ間距離、視差最大値、および視差最小値に基づいて、スライス符号化部302(図24)における符号化方式に対応する方式で、スライス単位の多重化視差画像(多重化デプス画像)の符号化データを復号する。スライス復号部552は、復号の結果得られる多視点補正カラー画像と多視点視差画像を、図15の視点合成部152に供給する。
図37は、図35のスライス復号部552のうちの任意の1視点のデプス画像を復号する復号部の構成例を示すブロック図である。即ち、スライス復号部552のうちの多視点視差画像を復号する復号部は、視点数分の図37のスライス復号部552により構成される。
図37のスライス復号部552は、蓄積バッファ571、可逆復号部572、逆量子化部573、逆直交変換部574、加算部575、デブロックフィルタ576、画面並べ替えバッファ577、D/A変換部578、フレームメモリ579、画面内予測部580、動きベクトル生成部581、動き補償部582、補正部583、およびスイッチ584により構成される。
図37に示したスライス復号部552は、図17に示した復号部250と同様の構成を有している。すなわち、図37に示したスライス復号部552の蓄積バッファ571乃至スイッチ584は、それぞれ、図17に示した蓄積バッファ251乃至スイッチ264と同様の機能を有している。よってここではその詳細な説明は省略する。
図37に示したスライス復号部552と、図17に示した復号部250は、同様の構成を有しているが補正部583の内部構成が、図17に示した補正部263と異なる。図38に、補正部583の構成を示す。
図38に示した補正部583は、選択部601、設定部602、デプス用補正部603、および輝度用補正部604から構成されている。これらの各部が行う処理については、フローチャートを参照し説明する。
図39は、デプス画像の復号処理に関わる処理について説明するためのフローチャートである。すなわち、上述した符号化側の処理で、所定の視点のデプス画像に関する情報を用いて補正された所定の視点のデプス画像のデプス予測画像を用いて符号化された所定の視点のデプス画像のデプスストリームと、所定の視点のデプス画像に関する情報とを受け取る側において実行される処理について説明する。
図39は、図36乃至図38に示したスライス復号部552の視差画像復号処理の詳細を説明するフローチャートである。この視差画像復号処理は、視点ごとに行われる。
図39に示したスライス復号部552は、図16、図17に示したスライス復号部174と基本的に同様の構成を有するが、補正部583の内部構成が異なると説明した。よって、補正部583が行う処理以外の処理は、基本的に、図16、図17に示したスライス復号部552と同様な処理、すなわち、図20に示したフローチャートの処理と同様な処理として行われる。ここでは、図20に示したフローチャートで説明した部分と重複する部分に関する説明は省略する。
図39のステップS351乃至S357、ステップS359乃至S364の処理は、図20のステップS261乃至S267、ステップS270乃至S275の処理と同様に行われる。すなわち、ステップS358において実行される予測画像生成処理が、図20に示したフローチャートの処理と異なる以外は、基本的に同一の処理が実行される。
ここで、ステップS358において実行される予測画像生成処理について、図40のフローチャートを参照して説明する。
ステップS371において、処理対象のスライスがPスライスまたはSPスライスであるかが判断される。ステップS371において、処理対象のスライスがPスライスまたはSPスライスであると判断された場合、ステップS372に処理が進められる。ステップS372において、depth_weighted_pred_flag=1であるか否かが判断される。
ステップS372において、depth_weighted_pred_flag=1であると判断された場合、ステップS373に処理が進められ、ステップS372において、depth_weighted_pred_flag=1ではないと判断された場合、ステップS373乃至S375の処理はスキップされ、ステップS376に処理が進められる。
ステップS373において、処理対象のデプス画像の画素値が視差値であるか否かが判断される。ステップS373において、処理対象のデプス画像の画素値が視差値であると判断された場合、ステップS374に処理が進められる。
ステップS374において、デプス用補正部603により、視差値用の補正係数が算出される。デプス用補正部603は、図26のデプス用補正部341と同様に、視差最大値、視差最小値、およびカメラ間距離に基づいて、補正係数(ディスパリティ重み係数とディスパリティオフセット)を算出する。補正係数が算出されると、一旦、補正後の予測画像を算出する。ここで“一旦”と記載したのは、符号化側と同じく、後段処理でさらに輝度値を補正するため、復号に用いる最終的な予測画像ではないからである。
一方、ステップS373において、処理対象のデプス画像の画素値は視差値ではないと判断された場合、ステップS375に処理が進められる。この場合、処理対象のデプス画像の画素値は、奥行き方向の位置(距離)を表す奥行き値であるため、ステップS375において、デプス用補正部603は、図26のデプス用補正部341と同様に、奥行き方向の位置(距離)の最大値、最小値に基づいて、補正係数(奥行き重み係数と奥行きオフセット)を算出する。補正係数が算出されると、一旦、補正後の予測画像を算出する。ここで“一旦”と記載したのは、符号化側と同じく、後段処理でさらに輝度値を補正するため、復号に用いる最終的な予測画像ではないからである。
ステップS374またはステップS375において、補正係数が算出された場合、またはステップS372において、depth_weighted_pred_flag=1ではないと判断された場合、ステップS376に処理が進められる。
ステップS376において、weighted_pred_flag=1であるか否かが判断される。ステップS376において、weighted_pred_flag=1であると判断された場合、ステップS377に処理が進められる。ステップS377において、輝度用補正部604により、輝度用の補正係数が算出される。輝度用補正部604は、図26の輝度用補正部342と同様に、所定の方式に基づき算出された輝度用の補正係数を算出する。この算出された補正係数が用いられて、輝度値が補正された予測画像が算出される。
このようにして、輝度用の補正係数が算出された場合、または、ステップS376において、weighted_pred_flag=1ではないと判断された場合、ステップS385に処理が進められる。ステップS385において、算出された補正係数などが用いられ、予測画像が生成される。
一方、ステップS371において、処理対象のスライスがPスライスまたはSPスライスではないと判断された場合、ステップS378に処理が進められ、処理対象のスライスが、Bスライスであるか否かが判断される。ステップS378において、処理対象のスライスが、Bスライスであると判断された場合、ステップS379に処理が進められ、Bスライスではないと判断された場合、ステップS385に処理が進められる。
ステップS379において、depth_weighted_bipred_flag=1であるか否かが判断される。ステップS379において、depth_weighted_bipred_flag=1であると判断された場合、ステップS380に処理が進められ、depth_weighted_bipred_flag=1ではないと判断された場合、ステップS380乃至S382の処理はスキップされ、ステップS383に処理が進められる。
ステップS380において、処理対象のデプス画像の画素値が視差値であるか否かが判断される。ステップS380において、処理対象のデプス画像の画素値が視差値であると判断された場合、ステップS381に処理が進められ、デプス用補正部603により、視差値用の補正係数が算出される。デプス用補正部603は、図26のデプス用補正部341と同様に、視差最大値、視差最小値、およびカメラ間距離に基づいて、補正係数を算出する。この算出された補正係数が用いられて、補正された予測画像が算出される。
一方、ステップS380において、処理対象のデプス画像の画素値が視差値ではないと判断された場合、ステップS382に処理が進められる。この場合、処理対象のデプス画像の画素値は、奥行き方向の位置(距離)を表す奥行き値であるため、ステップS382において、デプス用補正部603は、図26のデプス用補正部341と同様に、奥行き方向の位置(距離)の最大値、最小値に基づいて、補正係数を算出する。この算出された補正係数が用いられて、補正された予測画像が算出される。
ステップS381またはステップS382において、補正係数が算出された場合、またはステップS379において、depth_weighted_bipred_flag=1ではないと判断された場合、ステップS383に処理が進められる。
ステップS383において、weighted_bipred_idc=1であるか否かが判断される。ステップS383において、weighted_bipred_idc=1であると判断された場合、ステップS384に処理が進められる。ステップS384において、輝度用補正部604により、輝度用の補正係数が算出される。輝度用補正部604は、図26の輝度用補正部342と同様に、所定の方式、例えばAVC方式に基づき算出された輝度用の補正係数を算出する。この算出された補正係数が用いられて、輝度値が補正された予測画像が算出される。
このようにして、輝度用の補正係数が算出された場合、ステップS383において、weighted_bipred_idc=1ではないと判断された場合、またはステップS378において、処理対象のスライスがBスライスではないと判断された場合、ステップS385に処理が進められる。ステップS385において、算出された補正係数などが用いられ、予測画像が生成される。
このようにして、ステップS358(図39)における予測画像生成処理が実行されると、ステップS360に処理が進められる。ステップS360以降の処理は、図20のステップS271以降の処理と同様に行われ、その説明は既にしたので、ここでは省略する。
このように、処理対象のデプス画像の画素値が視差値である場合と、視差値でない場合とで、視差値用の補正係数と奥行き方向の位置(距離)用の補正係数を、それぞれ算出するようにしたことで、予測画像が視差値から生成される場合と、奥行き方向の位置を表す奥行き値から生成される場合とで適切に対応することができ、適切な補正係数を算出することが可能となる。また、輝度用の補正係数も算出するようにすることで、輝度補正も適切に行うことが可能となる。
なおここでは、処理対象のデプス画像の画素値が視差値である場合と、視差値でない場合(奥行き値である場合)とで、視差値用の補正係数と奥行き方向の位置(距離)用の補正係数が、それぞれ算出されるとして説明したが、どちらか一方が算出されるようにしても良い。例えば、符号化側と復号側で、処理対象のデプス画像の画素値としては視差値を用い、視差値用の補正係数が算出されると設定されている場合には、視差値用の補正係数だけが算出されれば良い。また例えば、符号化側と復号側で、処理対象のデプス画像の画素値としては奥行方向の位置(距離)を表す奥行き値を用い、奥行き方向の位置(距離)用の補正係数が算出されると設定されている場合には、奥行方向の位置(距離)用の補正係数だけが算出されれば良い。
<演算精度1について>
上記したように、符号化側は、例えば、ステップS333(図35)において奥行き方向の位置用の補正係数を算出し、復号側は、例えば、ステップS375(図40)において、奥行き方向の位置用の補正係数を算出する。このように、符号化側と復号側は、奥行き方向の位置用の補正係数をそれぞれ算出するが、この算出される補正係数は、同じでなければ、異なる予測画像が生成されることになるため、符号化側と復号側で同一の補正係数が算出される必要がある。換言すれば、符号化側と復号側で、演算精度が同一である必要がある。
なおここでは、奥行き方向の位置(距離)用の補正係数を例にあげて説明を続けるが、視差値用の補正係数についても同様である。
ここで、奥行き方向の位置用の補正係数を算出する際に用いられる式(15)を、式(16)として再度以下に示す。
この式(16)のうち、補正係数aの部分を、以下の式(17)のように表す。
式(17)におけるA,B,C,Dは、それぞれ固定小数点化された値とするために、以下の式(18)から算出される。
A=INT({1<<shift}/Zrefnear)
B=INT({1<<shift}/Zreffar)
C=INT({1<<shift}/Zcurnear)
D=INT({1<<shift}/Zcurfar) ・・・(18)
式(17)において、Aは、(1/Zrefnear)であるが、(1/Zrefnear)は小数点以下の数値を含む値になる可能性がある。仮に、小数点以下の値を含むときに、小数点以下を切り捨てるなどの処理が行われた場合、その切り捨てられた小数点以下の数値により、符号化側と復号側で演算精度に違いが出る可能性がある。
例えば、整数部分が大きな値の場合には、仮に小数点以下の数値を切り捨てたとしても、数値全体に占める小数点以下の数値の割合は小さいため、さほど演算精度に誤差はでないが、整数部分が小さな値の場合、例えば整数部分が0であるような場合には、小数点以下の数値が重要であり、そのような小数点以下の数値を切り捨てると演算精度に誤差がでる可能性がある。
そこで、上記したように、固定小数点化することで、小数点以下の数値が重要である場合に、その小数点以下の数値が切り捨てられることがないように制御することが可能となる。また、上記したA,B,C,Dは、それぞれ固定小数点化されるが、これらの値から算出される補正係数aも、以下の式(19)が満たされるような値とされる。
a={(A-B)<<denom}/(C-D) ・・・(19)
式(19)において、denomとしては、AVCで定義されているluma_log2_weight_denomを用いることができる。
例えば、1/Zの値が、0.12345であった場合に、Mbit shiftした後、INTに丸めて整数として扱われる場合、以下のようになる。
0.12345 → ×1000INT(123.45)=123
この場合、1000が乗算された値である123.45のINTが算出されることで、123という整数値が1/Zの値として用いられる。またこの場合、×1000という情報が符号化側と復号側で共有されれば、演算精度をマッチさせることが可能となる。
このように、浮動小数が入ってきた場合には、固定小数に変換し、固定小数からさらに整数へと変換される。固定小数は、例えば、整数Mbit、小数Nbitで表され、MとNは規格により設定される。また、整数は、例えば、整数部N桁、小数部M桁とされ、整数値a、小数値bとされる。例えば、12.25の場合、N=4、M=2、a=1100、b=0.01となる。またこのとき、(a<<M+b)=110001となる。
このように、補正係数aの部分は、式(18)と式(19)に基づいて算出されるようにしても良い。そして、このshiftとdenomの値を、符号化側と復号側で共有するように構成すれば、符号化側と復号側で演算精度を合わせることが可能となる。共有の方法として、符号化側から復号側にshiftとdenomの値を供給することで、実現できる。また、符号化側と復号側で、同一のshiftとdenomの値を使うと設定、換言すれば固定値として設定されているようにすることで、実現できる。
ここでは、補正係数aの部分を例にあげて説明したが、補正係数bの部分も同様に算出されるようにしても良い。また、上記したshiftによる小数精度は、位置Zの小数精度以上とするようにしても良い。すなわち、shiftで乗算される値が、位置Zに対して乗算される値よりも大きくなるように、shiftが設定されているようにしても良い。さらに換言すれば、位置Zの小数精度が、shiftによる小数精度以下に設定されるようにしても良い。
また、shiftやdenomを伝送する場合、depth_weighted_pred_flagとともに伝送するようにしても良い。ここでは、補正係数aと補正係数b、換言すれば、位置Zの重み係数とオフセットが、符号化側と復号側で共有されるとして説明したが、さらに、演算順序も設定され、共有されるようにしても良い。
このような演算精度を設定する設定部を、デプス用補正部341(図26)が備えるように構成することが可能である。そのようにした場合、デプス用補正部341は、デプス画像を対象として、デプス重み係数とデプスオフセットを用いたデプス重み付け予測処理を行う際に、その演算に用いる演算精度を設定するように構成することができる。また、上記したように、デプス用補正部341は、設定された演算精度に従って、デプス画像に対してデプス重み付け予測処理を行い、その結果得られるデプス予測画像を用いて、デプス画像を符号化してデプスストリームを生成するように構成されるようにすることができる。同様に、デプス用補正部603(図38)も、演算精度を設定する設定部を備えるように構成することが可能である。
演算の順序が異なると、同一の補正係数が算出されない可能性があるため、演算順序も符号化側と復号側で共有されるようにしても良い。またその共有の仕方は、上記した場合と同じく、伝送されることで共有されるようにしても良いし、固定値として設定されているようにすることで共有されるようにしても良い。
また、シフト演算のシフト量を示すシフトパラメータを設定し、生成されたデプスストリームとともに、設定されたシフトパラメータが伝送、受け取りされるようにしても良い。シフトパラメータは、シーケンス単位で固定、GOP、Picture(ピクチャ)、Slice(スライス)単位で可変とするようにしても良い。
<演算精度2について>
上記した式(16)における補正係数aの部分を変形すると、以下の式(20)で表すことができる。
この式(20)において、分子の(Zcurnear×Zcurfar)、分母の(Zrefnear×Zreffar)は、Z同士を乗算しているため、オーバーフローする可能性がある。例えば、32bit上限とし、denom=5とした場合、残り27bitとなるため、このような設定がされていたときには、13bit×13bitが限界となる。よってこの場合、Zの値としては、±4096までしか使えないことになるが、Zの値としては、例えば、1万といった4096よりも大きな値が用いられることも想定される。
よって、Z×Zの部分がオーバーフローしないように制御し、かつZの値の範囲を広げるために、式(20)により補正係数aを算出する場合、以下の式(21)が満たされるZの値にすることで、補正係数aが算出されるようにする。
Znear = Znear << x
Zfar = Zfar <<y ・・・(21)
この式(21)が満たされるように、ZnearとZfarの精度をshiftで下げて、オーバーフローしないように制御される。
このxやyといったshift量は、上記した場合と同じく、符号化側から復号側に伝送されることで、共有されるようにしても良いし、固定値として、符号化側と復号側で共有するようにしても良い。
補正係数a,bに用いる情報、精度に関する情報(シフト量)は、スライスヘッダに含まれてもよいし、SPSやPPS等のNAL(Network Abstraction Layer)ユニットに含まれるようにしてもよい。
<第2実施の形態>
[本技術を適用したコンピュータの説明]
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
そこで、図41は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
プログラムは、コンピュータに内蔵されている記録媒体としての記憶部808やROM(Read Only Memory)802に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブルメディア811に格納(記録)しておくことができる。このようなリムーバブルメディア811は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブルメディア811としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブルメディア811からドライブ810を介してコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵する記憶部808にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)801を内蔵しており、CPU801には、バス804を介して、入出力インタフェース805が接続されている。
CPU801は、入出力インタフェース805を介して、ユーザによって、入力部806が操作等されることにより指令が入力されると、それに従って、ROM802に格納されているプログラムを実行する。あるいは、CPU801は、記憶部808に格納されたプログラムを、RAM(Random Access Memory)803にロードして実行する。
これにより、CPU801は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU801は、その処理結果を、必要に応じて、例えば、入出力インタフェース805を介して、出力部807から出力、あるいは、通信部809から送信、さらには、記憶部808に記録等させる。
なお、入力部806は、キーボードや、マウス、マイク等で構成される。また、出力部807は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
本技術は、衛星放送、ケーブルTV(テレビジョン)、インターネット、および携帯電話機などのネットワークメディアを介して通信する際に、あるいは、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる符号化装置および復号装置に適用することができる。
また、上述した符号化装置および復号装置は、任意の電子機器に適用することができる。以下にその例について説明する。
<第3実施の形態>
[テレビジョン装置の構成例]
図42は、本技術を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置900は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られた符号化ビットストリームをデマルチプレクサ903に出力する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行いスピーカ908に供給することで音声出力を行う。
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置900の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置900がユーザ操作に応じた動作となるように各部を制御する。
なお、テレビジョン装置900では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
このように構成されたテレビジョン装置では、デコーダ904に本願の復号装置(復号方法)の機能が設けられる。このため、視差画像に関する情報を用いて符号化することにより符号化効率が改善された視差画像の符号化データを復号することができる。
<第4実施の形態>
[携帯電話機の構成例]
図43は、本技術を適用した携帯電話機の概略構成を例示している。携帯電話機920は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
携帯電話機920は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行いスピーカ924に出力する。
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
なお、携帯電話機920は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USBメモリ、またはメモリカード等のリムーバブルメディアである。
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、符号化データを生成する。
多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。画像処理部927は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
このように構成された携帯電話装置では、画像処理部927に本願の符号化装置および復号装置(符号化方法および復号方法)の機能が設けられる。このため、視差画像に関する情報を用いて視差画像の符号化効率を改善することができる。また、視差画像に関する情報を用いて符号化することにより符号化効率が改善された視差画像の符号化データを復号することができる。
<第5実施の形態>
[記録再生装置の構成例]
図44は、本技術を適用した記録再生装置の概略構成を例示している。記録再生装置940は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置940は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置940は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
記録再生装置940は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、ユーザインタフェース部950を有している。
チューナ941は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ941は、所望のチャンネルの受信信号を復調して得られた符号化ビットストリームをセレクタ946に出力する。
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ビットストリームをセレクタ946に出力する。
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD-Video、DVD-RAM、DVD-R、DVD-RW、DVD+R、DVD+RW等)やBlu-rayディスク等である。
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれかの符号化ビットストリームを選択して、HDD部944やディスクドライブ945のいずれかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力された符号化ビットストリームをデコーダ947に供給する。
デコーダ947は、符号化ビットストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。
OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置940の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置940がユーザ操作に応じた動作となるように各部を制御する。
このように構成された記録再生装置では、デコーダ947に本願の復号装置(復号方法)の機能が設けられる。このため、視差画像に関する情報を用いて符号化することにより符号化効率が改善された視差画像の符号化データを復号することができる。
<第6実施の形態>
[撮像装置の構成例]
図45は、本技術を適用した撮像装置の概略構成を例示している。撮像装置960は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メモリ部967から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触ICカード等であってもよい。
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
制御部970は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ等を記憶する。メモリに記憶されているプログラムは、撮像装置960の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、撮像装置960がユーザ操作に応じた動作となるように各部を制御する。
このように構成された撮像装置では、画像データ処理部964に本願の符号化装置および復号装置(符号化方法および復号方法)の機能が設けられる。このため、視差画像に関する情報を用いて視差画像の符号化効率を改善することができる。また、視差画像に関する情報を用いて符号化することにより符号化効率が改善された視差画像の符号化データを復号することができる。
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
なお、本技術は、以下のような構成もとることができる。
(1)
デプス画像を対象として、デプス重み係数とデプスオフセットを用いたデプス重み付け予測処理を行う際に用いる演算の演算精度を設定する設定部と、
前記設定部により設定された前記演算精度に従って、前記デプス画像に関する情報を用いて前記デプス画像に対して前記デプス重み付け予測処理を行い、デプス予測画像を生成するデプス重み付け予測部と、
前記デプス重み付け予測部により生成された前記デプス予測画像を用いて、前記デプス画像を符号化してデプスストリームを生成する符号化部と
を備える画像処理装置。
(2)
前記設定部は、前記デプス画像を符号化する際の前記演算と前記デプス画像を復号する際の前記演算との間でマッチするように、演算精度を設定する
前記(1)に記載の画像処理装置。
(3)
前記設定部は、前記デプス重み係数を演算する際の演算精度を設定する
前記(2)に記載の画像処理装置。
(4)
前記設定部は、前記デプスオフセットを演算する際の演算精度を設定する
前記(2)または(3)に記載の画像処理装置。
(5)
前記設定部は、前記演算精度を固定小数点精度に設定する
前記(3)または(4)に記載の画像処理装置。
(6)
前記デプス重み付け予測部は、前記演算精度に従って、前記演算時にシフト演算を行う
前記(5)に記載の画像処理装置。
(7)
前記設定部は、前記シフト演算による小数精度を、前記デプス画像の小数精度以上に設定する
前記(6)に記載の画像処理装置。
(8)
前記設定部は、前記デプス画像の小数精度を、前記シフト演算による小数精度以下に設定する
前記(6)に記載の画像処理装置。
(9)
前記設定部は、前記シフト演算のシフト量を示すシフトパラメータを設定し、
前記符号化部により生成された前記デプスストリームと前記設定部により設定された前記シフトパラメータとを伝送する伝送部
をさらに備える
前記(6)乃至(8)のいずれかに記載の画像処理装置。
(10)
前記設定部は、前記デプス重み係数を演算する際の演算順序を設定する
前記(2)乃至(9)のいずれかに記載の画像処理装置。
(11)
前記設定部は、前記デプスオフセットを演算する際の演算順序を設定する
前記(2)乃至(10)のいずれかに記載の画像処理装置。
(12)
画像処理装置が、
デプス画像を対象として、デプス重み係数とデプスオフセットを用いたデプス重み付け予測処理を行う際に用いる演算の演算精度を設定する設定ステップと、
前記設定ステップの処理により設定された前記演算精度に従って、前記デプス画像に関する情報を用いて前記デプス画像に対して前記デプス重み付け予測処理を行い、デプス予測画像を生成するデプス重み付け予測ステップと、
前記デプス重み付け予測ステップの処理により生成された前記デプス予測画像を用いて、前記デプス画像を符号化してデプスストリームを生成する符号化ステップと
を含む画像処理方法。
(13)
デプス画像に関する情報を用いて補正されたデプス予測画像を用いて符号化されたデプスストリームと、前記デプス画像に関する情報とを受け取る受け取り部と、
前記受け取り部により受け取られた前記デプスストリームを復号し、前記デプス画像を生成する復号部と
前記復号部により生成された前記デプス画像を対象として、デプス重み係数とデプスオフセットを用いたデプス重み付け予測処理を行う際に用いる演算の演算精度を設定する設定部と、
前記設定部により設定された前記演算精度に従って、前記受け取り部により受け取られた前記デプス画像に関する情報を用いて前記デプス画像に対して前記デプス重み付け予測を行い、デプス予測画像を生成するデプス重み付け予測部と
を備え、
前記復号部は、前記デプス重み付け予測部により生成された前記デプス予測画像を用いて前記デプスストリームを復号する
画像処理装置。
(14)
前記設定部は、前記デプス画像を符号化する際の前記演算と前記デプス画像を復号する際の前記演算との間でマッチするように、演算精度を設定する
前記(13)に記載の画像処理装置。
(15)
前記設定部は、前記デプス重み係数または前記デプスオフセットの少なくとも一方を演算する際の演算精度を設定する
前記(14)に記載の画像処理装置。
(16)
前記設定部は、前記演算精度を固定小数点精度に設定する
前記(15)に記載の画像処理装置。
(17)
前記デプス重み付け予測部は、前記演算精度に従って、前記演算時にシフト演算を行い、
前記設定部は、前記シフト演算による小数精度を、前記デプス画像の小数精度以上に設定する
前記(16)に記載の画像処理装置。
(18)
前記受け取り部は、前記シフト演算のシフト量を示すパラメータとして設定されたシフトパラメータを受け取り、
前記デプス重み付け予測部は、前記シフトパラメータに基づいて前記シフト演算を行う
前記(17)に記載の画像処理装置。
(19)
前記設定部は、前記デプス重み係数または前記デプスオフセットの少なくとも一方を演算する際の演算順序を設定する
前記(14)乃至(18)のいずれかに記載の画像処理装置。
(20)
画像処理装置が、
デプス画像に関する情報を用いて補正されたデプス予測画像を用いて符号化されたデプスストリームと、前記デプス画像に関する情報とを受け取る受け取りステップと、
前記受け取りステップの処理により受け取られた前記デプスストリームを復号し、前記デプス画像を生成する復号ステップと、
前記復号ステップの処理により生成された前記デプス画像を対象として、デプス重み係数とデプスオフセットを用いたデプス重み付け予測処理を行う際に用いる演算の演算精度を設定する設定ステップと、
前記設定ステップの処理により設定された前記演算精度に従って、前記受け取りステップの処理により受け取られた前記デプス画像に関する情報を用いて前記デプス画像に対して前記デプス重み付け予測を行い、デプス予測画像を生成するデプス重み付け予測ステップと
を含み、
前記復号ステップの処理では、前記デプス重み付け予測ステップの処理により生成された前記デプス予測画像を用いて前記デプスストリームを復号する
画像処理方法。