<実施形態の動画像符号化装置の一例>
以下、図面を参照して、実施形態について説明する。図1は、実施形態の動画像符号化装置1の一例を示している。実施形態の動画像符号化装置1は、多視点動画像符号化を行う装置である。多視点動画像符号化装置は、例えば三次元動画像符号化装置である。
動画像符号化装置1は、左目画像符号化部10Lと右目画像符号化部10Rとを備える。左目画像符号化部10Lは、多視点の動画像データのうち左目画像データを入力する。右目画像符号化部10Rは、多視点の動画像データのうち右目画像データを入力する。
以下、左目画像データを左目画像とし、右目画像データを右目画像として説明する。左目画像符号化部10Lは、左目画像を入力して、左目画像の予測符号化を行う。右目画像符号化部10Rは、右目画像を入力して、右目画像の予測符号化を行う。左目画像は、基準画像(base view)の一例であり、右目画像は非基準画像(non-base view)の一例である。
左目画像符号化部10Lは、予測誤差信号生成部11Lと整数変換部12Lと量子化部13Lとエントロピー符号化部14Lと逆量子化部15Lと逆整数変換部16Lと参照画像生成部17Lとフィルタ処理部18Lとフレームメモリ19Lとを備える。
また、左目画像符号化部10Lは、動き検出部20Lと動き補償部21Lとフレーム内予測部22Lと符号化制御部23Lと切り替え部24Lとを備える。左目画像符号化部10Lのフレーム内予測部22Lは、第1の予測符号化部の一例である。フレーム内予測部22Lが行う予測符号化は、第1の予測符号化の一例である。
右目画像符号化部10Rは、予測誤差信号生成部11Rと整数変換部12Rと量子化部13Rとエントロピー符号化部14Rと逆量子化部15Rと逆整数変換部16Rと参照画像生成部17Rとフィルタ処理部18Rとフレームメモリ19Rとを備える。
また、右目画像符号化部10Rは、動き検出部20Rと動き補償部21Rとフレーム内予測部22Rと符号化制御部23Rと切り替え部24Rと領域設定部25とを備える。右目画像符号化部10Rの動き検出部20Rは、第2の予測符号化部の一例である。動き検出部20Rが行う予測符号化は、第2の予測符号化の一例である。
左目画像符号化部10Lと右目画像符号化部10Rとのうち、領域設定部25以外の各部は、共通している。ただし、動き検出部20Lと動き検出部20Rとは異なる処理を行う。また、符号化制御部23Lと符号化制御部23Rとは異なる制御を行う。
以下、各部について説明する。以下の説明において、「L」は左目画像符号化部10Lの機能であることを示し、「R」は右目画像符号化部10Rの機能であることを示すものとする。
予測誤差信号生成部11は、原画像信号と予測画像信号とを入力する。予測誤差信号生成部11は、原画像信号と予測画像信号との差分を演算し、予測誤差信号を生成する。整数変換部12は、予測誤差信号生成部11から入力した予測誤差信号を整数変換して、整数変換後の信号を量子化部13に出力する。
量子化部13は、整数変換後の信号を量子化して、予測誤差信号の符号量を低下させた量子化データをエントロピー符号化部14に出力する。エントロピー符号化部14は、量子化データに対して、エントロピー符号化を行う。
エントロピー符号化部14は、エントロピー符号化を行った符号化画像データを出力する。エントロピー符号化部14Lは、符号化画像データを左目画像として出力する。エントロピー符号化部14Rは、符号化画像データを右目画像として出力する。例えば、エントロピー符号化は、シンボルの頻度に応じて可変長の符号を割り当てる符号化方式を用いた符号化である。
逆量子化部15は、量子化部13から量子化データを入力し、入力した量子化データを逆量子化する。逆整数変換部16は、逆量子化部15から入力したデータに対して、逆整数変換処理を施す。これにより、符号化前の予測誤差信号と同程度の信号が得られる。
参照画像生成部17は、動き補償部21により動き補償されたマクロブロックの画素データと、逆量子化部15および逆整数変換部16が復号した予測誤差信号とを加算する。これにより、参照画像生成部17は、動き補償された参照画像(参照ピクチャとも称する)を生成する。
フィルタ処理部18は、参照画像のマクロブロックのデータに対して、デブロッキングフィルタ処理を行い、ブロックノイズの発生を抑制した後の参照画像のフレームをフレームメモリ19に記憶する。
動き検出部20は、上述したように、左目画像符号化部10Lと右目画像符号化部10Rとで異なる処理を行う。左目画像符号化部10Lの動き検出部20Lは、時間的に前後する画像(フレーム)を参照した予測符号化を行う。この予測符号化は、インター予測とも称される。
右目画像符号化部10Rの動き検出部20Rは、ビュー間予測またはインター予測を行う。ビュー間予測は、同じ時刻の視点が異なるフレームを参照した予測符号化である。ビュー間予測は、視点間予測とも称される。実施形態の場合、動き検出部20Rは、領域設定部25が設定した左目画像の領域を参照したビュー間予測を行う。
動き補償部21は、時間的に前後するフレームの動きを検出して、時間的に前のフレームに対して検出した動き分の動き補償を行う。例えば、動き補償部21は、時間的に前後するフレームに基づいて、動きベクトルを検出する。
フレーム内予測部22は、同じ画像(フレーム)内で予測符号化を行う。この予測符号化は、イントラ予測とも称される。フレーム内予測部22は、同じ画像内の周辺画素に基づいて、予測画像のマクロブロックを生成して、予測符号化を行う。
符号化制御部23Lは、左目画像符号化部10Lが行う予測符号化をイントラ予測にするか、またはインター予測にするかの制御を行う。符号化制御部23Rは、右目画像符号化部10Rが行う予測符号化をイントラ予測にするか、インター予測にするか、またはビュー間予測にするかの制御を行う。
例えば、H.264規格では、4×4画素をサブブロックとして、イントラリフレッシュを行う予測モードが策定されている。上記のサブブロックが、イントラリフレッシュ済み領域の境界に接している場合、サブブロックのうち何れかの画素が未リフレッシュ領域の画素を参照することがある。
この場合、イントラリフレッシュを行うことは制限される。符号化制御部23Lは、サブブロックがイントラリフレッシュの制限の対象になっていない場合、フレーム内予測部22Lがイントラリフレッシュを行うように制御する。一方、サブブロックがイントラリフレッシュの制限の対象になっている場合、符号化制御部23Lは、インターリフレッシュを行うように制御する。
このため、符号化制御部23Lは、切り替え部24Lを制御する。サブブロックがイントラリフレッシュの制限の対象になっていない場合、符号化制御部23Lは、切り替え部24Lがフレーム内予測部22Lに接続する。サブブロックがイントラリフレッシュの制限の対象になっている場合、符号化制御部23Lは、切り替え部24Lが動き補償部21に接続する。
領域設定部25は、右目画像のうち、ビュー間予測符号化を行う領域を設定する。領域設定部25は、左目画像符号化部10Lが左目画像に対してイントラリフレッシュを行う領域に対して所定量の差をつけた領域をビュー間予測符号化の対象の領域に設定する。この所定量の差は、左目画像と右目画像との視差に基づいている。
<多視点動画像符号化における予測符号化の一例>
次に、多視点動画像符号化における予測符号化の一例について説明する。図2は、多視点動画像符号化にイントラ予測符号化を適用した一例を示す。イントラ予測符号化は、イントラリフレッシュとも称される。
図2の例の場合、リフレッシュ領域は左目画像および右目画像のうち、所定幅を有する一部の領域(リフレッシュ領域)に設定される。また、リフレッシュ領域は、経時的に所定幅の分だけずれていく。このように、リフレッシュ領域を順次ずらして行うイントラリフレッシュはイントラスライスと称される場合もある。
イントラスライスによる予測符号化では、上記のリフレッシュ領域にイントラリフレッシュが行われる。このため、エラーの伝播が抑制される。また、リフレッシュ領域は異なる時刻の画像に分散されるため、一度に画像の全領域に対してイントラリフレッシュが行われない。従って、符号化効率が向上する。
図3は、画像のうちリフレッシュ境界の近傍の領域の一例を示している。図3において、マクロブロックは、例えば、16×16画素の領域であるとする。リフレッシュ境界は、リフレッシュ済み領域(網掛けされた領域)と未リフレッシュ領域(網掛けされていない領域)との境界である。
イントラライン(ハッチングが施された領域)は、リフレッシュ境界に接しているマクロブロックの縦のラインである。イントララインのマクロブロックに対してイントラリフレッシュを行う場合、未リフレッシュ領域の画素を参照するイントラリフレッシュは制限される。
図4は、上述したH.264規格で策定されているイントラリフレッシュを行う予測モードを示している。イントラリフレッシュを行う対象の画素は、4×4画素(サブブロック)である。このサブブロックは、マクロブロックに含まれる。
図4の例では、イントラリフレッシュが行われていない画素を未リフレッシュ画素と表記している。また、イントラリフレッシュが行われる際に未リフレッシュ画素が参照する画素を参照画素と表記している。図4の例において、参照画素には網掛けが施されており、未リフレッシュ画素には網掛けが施されていない。
図4の例では、予測モード3および7以外の予測モードでは、サブブロックの各画素が参照する参照画素は未リフレッシュ領域に含まれない。一方、予測モード3および7では、サブブロックの各画素のうち複数画素が参照する参照画素は未リフレッシュ領域に含まれる。
未リフレッシュ領域の各画素は、イントラリフレッシュが行われていない。このため、予測モード3および7では、リフレッシュ境界に接するサブブロックがイントラリフレッシュを行うことが制限される。
図5は、多視点動画像符号化における参照関係の一例を示している。図5の例において、「I」はIフレーム(Intra-Coded Frame)を示している。Iフレームは、イントラ予測により予測符号化されるフレームである。
「P」はPフレーム(Predicted Frame)を示している。Pフレームは、インター予測により予測符号化されるフレームである。Pフレームは、前の時刻のフレーム(過去のフレーム)を参照して予測符号化が行われるフレームである。
「B」はBフレーム(Bi-direction Frame)を示している。Bフレームは、インター予測により予測符号化されるフレームである。Bフレームは、前の時刻のフレーム、後の時刻のフレームまたは前後の時刻のフレームを参照して予測符号化が行われるフレームである。
左目画像は、IフレームとBフレームとBフレームとPフレームとが1周期になっている。右目画像は、PフレームとBフレームとBフレームとPフレームとが1周期になっている。また、右目画像のリフレッシュは、リフレッシュ済みの左目画像を参照して行われる。これにより、ビュー間予測符号化が行われる。
図5の例では、右目画像のリフレッシュは、インター予測またはビュー間予測により行われる。従って、エラーの伝播の可能性があるため、動画像をエラーから早期に回復させるために、右目画像に対してイントラ予測を行ったフレーム(以下、イントラフレームと称する)が挿入される。このため、挿入されるイントラフレームのために情報量が多くなる。
図2の例のように、左目画像と右目画像とにそれぞれ独立してイントラリフレッシュを行えば、イントラフレームを挿入しなくてもよい。ただし、左目画像と右目画像とにそれぞれ独立にイントラリフレッシュが行われるため、符号量が増大する。このため、符号化効率が低下する。
そこで、実施形態では、図6に示すように、左目画像符号化部10Lは、左目画像の所定の幅を有する領域をリフレッシュ領域Lとして、該リフレッシュ領域Lに対してイントラリフレッシュを行う。時刻Tにおいて、左目画像符号化部10Lは、リフレッシュ領域Lに対してイントラリフレッシュを行う。
右目画像符号化部10Rは、同じ時刻Tの左目画像のリフレッシュ領域Lよりも狭い幅の領域をリフレッシュ領域Rとして、該リフレッシュ領域Rに対してビュー間予測符号化を行う。時刻Tにおけるリフレッシュ領域Rの幅は、左目画像と右目画像との視差に基づく。
左目画像符号化部10Lと右目画像符号化部10Rとは、経時的に同じ方向にリフレッシュ領域をずらしてリフレッシュを行う。このとき、リフレッシュ領域Rは、上記の視差に基づく幅分だけ、リフレッシュ領域Lよりも遅れている。
右目画像符号化部10Rは、左目画像符号化部10Lが時刻Tの左目画像のリフレッシュ領域Lのうちリフレッシュ領域Rに相当する領域に対してイントラリフレッシュを行った後に、リフレッシュ領域Rに対してビュー間予測符号化を行う。
これにより、右目画像符号化部10Rがリフレッシュ領域Rのうち、リフレッシュ境界に接するサブブロックのリフレッシュを行うときには、既に左目画像符号化部10Lは、リフレッシュ境界を越えた領域に対してイントラリフレッシュを行っている可能性が高い。
このため、右目画像のリフレッシュ境界に接するサブブロックはリフレッシュ済みの画素を参照する可能性が高くなる。よって、右目画像符号化部10Rは、イントラリフレッシュが制限されているサブブロックに対して、ビュー間予測符号化を行うことができる。
時刻T+1において、左目画像符号化部10Lは、左目画像に対して、時刻Tにおいてリフレッシュしたリフレッシュ領域Lから該リフレッシュ領域Lの幅分をずらした領域を時刻T+1のリフレッシュ領域Lに設定する。そして、左目画像符号化部10Lは、設定したリフレッシュ領域Lに対してイントラリフレッシュを行う。
時刻T+1において、右目画像符号化部10Rは、右目画像に対して、時刻Tにおいてリフレッシュしたリフレッシュ領域Rから左目画像のリフレッシュ領域Lの幅分をずらした領域を時刻T+1のリフレッシュ領域Rに設定する。
このとき、右目画像符号化部10Rは、時刻T+1のリフレッシュ領域Rの幅をリフレッシュ領域Lの幅と同じ幅に設定する。これにより、時刻T+1のリフレッシュ領域Rとリフレッシュ領域Lとは同じ大きさになる。
時刻T+1以降、左目画像符号化部10Lは、指定領域(図6において、太線で囲まれた領域)を設定する。指定領域は、右目画像符号化部10Rが現在のフレームと過去の1以上のフレームとにおいてイントラリフレッシュを行った領域である。
時刻T+1以降、右目画像符号化部10Rは、指定領域を参照して、設定したリフレッシュ領域Lに対してビュー間参照によるリフレッシュを行う。右目画像のリフレッシュ境界は、指定領域の先端よりも遅れている。
よって、右目画像符号化部10Rがビュー間予測符号化を行うときに、リフレッシュ領域Rのリフレッシュ境界に接するサブブロックにイントラリフレッシュの制限があったとしても、サブブロックをリフレッシュできる。
<実施形態の具体例>
次に、図7を参照して、実施形態の具体例について説明する。左目画像および右目画像の幅方向をX方向とし、幅方向に直交する方向をY方向とする。また、左目画像および右目画像の両端のうち、最初にリフレッシュ領域が設定される端部を最後端とし、反対側の端部を最先端とする。
左目画像符号化部10Lの符号化制御部23Lは、イントラ予測を行うとき、フレーム内予測部22Lが接続されるように切り替え部24Lを制御する。フレーム内予測部22Lは、左目画像のうち最後端から幅nの領域をリフレッシュ領域Lに設定する。
そして、フレーム内予測部22Lは、最後端から最先端に向けて、フレームごとに、順次イントラリフレッシュを行う。これにより、フレーム内予測部22Lは、左目画像に対してイントラリフレッシュを行う。
右目画像符号化部10Rの領域設定部25は、リフレッシュ領域Rの幅aを設定する。この幅aは、左目画像と右目画像との視差に基づく。多視点動画像では、複数の視点で被写体を撮影する。従って、左目画像と右目画像との間に視差を生じる。
例えば、領域設定部25は、時刻Tにおいて、左目画像と右目画像とを比較して、視差に基づくずれ量を求めてもよい。左目画像と右目画像とは、同じ被写体を撮影しているため、領域設定部25は、2つの画像を比較することで、ずれ量を視差として求めることができる。領域設定部25は、求めたずれ量を幅aに設定してもよい。
幅nは幅aよりも大きいものとする。従って、時刻Tにおいて、リフレッシュ領域Lはリフレッシュ領域Rよりも広い。右目画像符号化部10Rは、左目画像のうちリフレッシュ済みのリフレッシュ領域Lを参照して、ビュー間予測符号化を行う。
右目画像符号化部10Rがビュー間予測符号化を行う場合、切り替え部24Rは動き補償部21Rに接続される。動き検出部20Rは、左目画像符号化部10Lのフレームメモリ19Lの左目画像を参照して、ビュー間予測符号化を右目画像のうちリフレッシュ領域Rに対して行う。
時刻T+1において、フレーム内予測部22Lは、左目画像のうち幅nのリフレッシュ領域Lに対してイントラリフレッシュを行う。左目画像符号化部10Lは、現在のフレームのリフレッシュ領域Lと1以上の過去のフレームのリフレッシュ済み領域とを含む指定領域を設定する。なお、指定領域は、リフレッシュ領域Lの先端から最後端までの領域としてもよい。
右目画像符号化部10Rの領域設定部25は、左目画像の指定領域のうち幅nの領域をリフレッシュ領域Rに設定する。リフレッシュ領域Rは、最後端から幅aをずらした位置から幅nの領域になる。
動き検出部20Rは、右目画像のうち領域設定部25が設定したリフレッシュ領域Rに対して、左目画像の指定領域を参照したビュー間予測符号化を行う。これにより、動き検出部20Rは、時刻T+1における右目画像のリフレッシュ領域Rを行う。
時刻T+T1において、リフレッシュ領域Lは左目画像を一巡して、再び最初に設定された位置に戻っている。図7の例の場合、指定領域は分割されている。指定領域の一部は最後端から幅nの領域になり、残りは最先端から所定幅の領域になる。
時刻T+T1において、左目画像の指定領域に対応して、右目画像のリフレッシュ領域Rも分割されている。領域設定部25は、左目画像の指定領域に基づいて、左目画像の最先端から幅「n−a」の領域と最後端から幅aの領域とをリフレッシュ領域Rに設定する。
動き検出部20Rは、時刻T+T1における左目画像の指定領域を参照して、ビュー間予測符号化を行う。これにより、時刻T+T1における右目画像のリフレッシュ領域Rのリフレッシュが行われる。
従って、右目画像符号化部10Rは、左目画像符号化部10Lよりも幅aの分だけ遅れてリフレッシュを行う。この幅aは、左目画像と右目画像との視差に基づいている。右目画像符号化部10Rは、左目画像のうちイントラリフレッシュ済みの指定領域を参照して、ビュー間予測符号化を行う。
このため、右目画像符号化部10Rは、イントラリフレッシュを行うことなく、右目画像をリフレッシュすることができる。従って、左目画像と右目画像とのそれぞれに対して、イントラリフレッシュが行われないため、符号化効率が向上する。
また、右目画像符号化部10Rは、同じ時刻の左目画像の指定領域を参照して、ビュー間予測符号化を行っている。従って、右目画像符号化部10Rは、イントラフレームを挿入しなくても、右目画像のリフレッシュを行うことができる。このため、イントラフレームが挿入されないため、発生する情報量が抑制される。
<実施形態のフローチャート>
次に、図8乃至図10のフローチャートを参照して、実施形態の処理の流れを説明する。左目画像符号化部10Lの符号化制御部23Lは、左目画像のうち、リフレッシュ領域Lを設定する(ステップS1)。例えば、符号化制御部23Lは、左目画像のX方向の幅を複数に等分して、等分した幅nの領域をリフレッシュ領域Lに設定してもよい。
符号化制御部23Lは、リフレッシュ領域Lの全ての領域に符号化ブロックを設定する(ステップS2)。例えば、符号化制御部23Lは、符号化ブロックを4×4画素のサブブロックに設定してもよい。
左目画像符号化部10Lは、左目画像内の全ての符号化ブロックについて、ラスタスキャン順で予測符号化を行うループを開始する(ステップS3)。符号化制御部23Lは、符号化ブロックがイントラリフレッシュの制限対象になっているか否かを判定する(ステップS4)。
上述したように、符号化ブロックが未リフレッシュ領域の画素を参照するイントラ予測符号化(イントラリフレッシュ)は制限される。従って、符号化ブロックがイントラリフレッシュの制限対象になっている場合(ステップS4でYES)、フレーム内予測部22Lは、リフレッシュ済み領域を参照したイントラ予測符号化を行う(ステップS5)。
このため、ステップS4でYESの場合、符号化制御部23Lは、切り替え部24Lがフレーム内予測部22Lに接続されるように制御を行う。一方、符号化ブロックがイントラリフレッシュの制限対象になっていない場合(ステップS4でNO)、符号化制御部23Lは、インター符号化またはイントラ符号化を行うように制御する(ステップS5)。
例えば、符号化ブロックがリフレッシュ領域Lの内側にある場合、符号化制御部23Lは、切り替え部24Lがフレーム内予測部22Lに接続される制御を行う。これにより、フレーム内予測部22Lは、リフレッシュ領域Lの内側にある符号化ブロックに対して、イントラ符号化を行う。
また、符号化ブロックがリフレッシュ領域Lの外側にある場合、符号化制御部23Lは、切り替え部24Lが動き補償部21Lに接続される制御を行う。これにより、動き検出部20Lは、リフレッシュ領域Lの外側にある符号化ブロックに対して、時間的に前後するフレームを参照したインター符号化を行う。
左目画像符号化部10Lは、左目画像の1画像内の全ての符号化ブロックについて、ステップS5またはステップS6の処理が実行されるようにループ制御を行う(ステップS7)。ステップS3〜ステップS7のループが終了すると、処理は次のステップに進む。
右目画像符号化部10Rの領域設定部25は、右目画像のリフレッシュ領域Rを設定する(ステップS8)。領域設定部25は、設定したリフレッシュ領域Rの内側の全ての領域にリフレッシュ対象の符号化ブロックを設定する(ステップS9)。そして、処理は「A」に進む。
右目画像のリフレッシュ領域Rの設定について、図9のフローチャートを参照して説明する。領域設定部25は、左目画像符号化部10Lが設定するリフレッシュ領域Lが最初に左目画像に設定するリフレッシュ領域Lであるか否かを判定する(ステップS11)。
リフレッシュ領域Lが最初に設定するリフレッシュ領域Lである場合(ステップS11でYES)、領域設定部25は、右目画像のリフレッシュ領域Rの幅aを設定する(ステップS12)。この幅aは、左目画像と右目画像との視差に基づく幅であり、実施形態では、固定値である。
領域設定部25は、左目画像のリフレッシュ領域Lが最後端に設定されているか否かを判定する(ステップS13)。左目画像のリフレッシュ領域Lが最後端に設定されている場合(ステップS13でYES)、指定領域は、最後端からの所定領域と最先端までの所定領域とに分割されている。
従って、領域設定部25は、右目画像のリフレッシュ領域Rの幅を最後端から幅aの領域と最先端までの幅「n−a」の領域とに分割して設定する(ステップS14)。左目画像のリフレッシュ領域Lが最後端に設定されていない場合(ステップS13でNO)、領域設定部25は、右目画像のリフレッシュ領域Rの幅をnに設定する(ステップS15)。
「A」以降の処理について、図10を参照して説明する。右目画像符号化部10Rは、右目画像内の全ての符号化ブロックについて、ラスタスキャン順で予測符号化を行うループを開始する(ステップS20)。
符号化制御部23Rは、符号化ブロックがイントラリフレッシュの制限対象になっているか否かを判定する(ステップS21)。符号化ブロックがイントラリフレッシュの制限対象になっている場合(ステップS21でYES)、右目画像符号化部10Rは、左目画像の指定領域内の符号化ブロックについてビュー間予測符号化を行う(ステップS22)。
この場合、右目画像符号化部10Rの符号化制御部23Rは、切り替え部24Rが動き補償部21Rに接続される制御を行う。これにより、右目画像符号化部10Rは、左目画像の指定領域を参照したビュー間予測符号化を行う。
また、ステップS21でYESの場合、右目画像符号化部10Rは、リフレッシュ済み領域を参照したイントラ予測符号化を行ってもよい。この場合、符号化制御部23Rは、切り替え部24Rがフレーム内予測部22Rに接続される制御を行う。
符号化ブロックがイントラリフレッシュの制限対象になっていない場合(ステップS21でNO)、右目画像符号化部10Rは任意の方式(イントラ予測符号化、インター予測符号化またはビュー間予測符号化)で予測符号化を行う(ステップS23)。
右目画像符号化部10Rがイントラ予測符号化で右目画像の予測符号化を行う場合、符号化制御部23Rは、切り替え部24Rがフレーム内予測部22Rに接続される制御を行う。
右目画像符号化部10Rがインター予測符号化またはビュー間予測符号化で右目画像の予測符号化を行う場合、符号化制御部23Rは、切り替え部24Rが動き補償部21Rに接続される制御を行う。
右目画像符号化部10Rは、右目画像の1画像内の全ての符号化ブロックについて、ステップS22またはステップS23の処理が実行させるようにループ制御を行う(ステップS37)。ステップS21〜ステップS24のループが終了すると、処理は終了する。
<変形例の動画像符号化装置の一例>
次に、図11を参照して、変形例の動画像符号化装置の一例について説明する。変形例の動画像符号化装置1のうち、上述した動画像符号化装置1と共通している機能の説明は省略する。
図11の例に示されるように、変形例の動画像符号化装置1の右目画像符号化部10Rは、候補領域設定部26と保持部27と統計部28とを備えている。候補領域設定部26は、右目画像のうち右目画像符号化部10Rが予測符号化を行うリフレッシュ領域Rの候補を設定する。以下、リフレッシュ領域Rの候補をリフレッシュ候補領域と称することがある。
保持部27は、ビュー間予測ベクトルを符号化ブロック単位で保持する。動き検出部20Rは、ビュー間予測符号化を行う。保持部27は、過去に動き検出部20Rがビュー間予測符号化を行ったときの予測ベクトルを1以上のフレームについて保持する。ビュー間予測符号化を行ったときの予測ベクトルは、左目画像と右目画像との視差を示している。
統計部28は、保持部27が保持する過去の1以上のフレームの各符号化ブロックの予測ベクトルについて、統計処理を行う。統計部28が統計処理を行った結果を評価値とする。従って、評価値は、予測ベクトルに対して統計処理を行った値であるため、左目画像と右目画像との視差を示す値になる。
統計部28は、直前の1フレームの各符号化ブロックの予測ベクトルの統計処理を行ってもよい。ただし、サンプル数が多いほど、統計処理の精度は向上する。このため、統計部28は、過去の複数フレームの各符号化ブロックの予測ベクトルの統計処理を行うことが好ましい。
例えば、統計部28は、過去の複数フレームの各符号化ブロックの予測ベクトルの平均値を評価値としてもよい。また、統計部28は、過去の複数フレームの各符号化ブロックの予測ベクトルの最大値を評価値としてもよい。
<変形例の具体例>
次に、図12乃至図14を参照して、変形例の具体例について説明する。図12において、右目画像符号化部10Rの候補領域設定部26は、リフレッシュ候補領域(図中で太線の破線で囲まれた領域)の幅cを設定する。ここで、図13に示すように、左目画像符号化部10Lが左目画像に対してイントラリフレッシュを行うリフレッシュ領域Lの先端から左目画像の最後端までの幅をxnとする。
この幅xnの領域は、左目画像のうち、リフレッシュ領域Lと既にイントラリフレッシュが行われたリフレッシュ済み領域との領域である。また、右目画像のうち、リフレッシュが行われたリフレッシュ済み領域の幅をbとする。
候補領域設定部26は、リフレッシュ候補領域の幅cを「c=xn―b」に設定する。図12は、リフレッシュ領域を設定する最初の時刻Tにおける左目画像のリフレッシュ領域Lおよび右目画像のリフレッシュ領域Rを示している。
上述した実施形態と同様に、最初の時刻Tにおいて、左目画像符号化部10Lは、左目画像の最後端から幅nの領域をリフレッシュ領域Lに設定する。最初の時刻Tにおいて、左目画像にはリフレッシュ済み領域がない。
幅xnは、リフレッシュ領域Lとリフレッシュ済み領域との領域である。そして、最初の時刻Tにおいて、左目画像にリフレッシュ済み領域はない。よって、幅xnは、左目画像に設定されたリフレッシュ領域Lの幅nになる。
また、最初の時刻Tにおいて、右目画像にリフレッシュ済み領域はない。よって、候補領域設定部26は、リフレッシュ候補領域の幅cを「c=xn−b=n」に設定する。また、最初の時刻Tにおいて、領域設定部25は、左目画像と右目画像との視差に基づく幅aをリフレッシュ領域Rの幅mに設定する。
次に、図13を参照して、時刻T+T2における左目画像のリフレッシュ領域Lおよび右目画像のリフレッシュ領域Rについて説明する。時刻T+T2において、左目画像のリフレッシュ領域Lは、時刻TのときよりもX方向に進んでいる。
幅xnは、リフレッシュ領域Lとリフレッシュ済み領域との領域の幅である。よって、リフレッシュ済み領域の幅は「xn―n」になる。指定領域は、幅xnの全ての領域としてもよい。
右目画像符号化部10Rの候補領域設定部26は、リフレッシュ候補領域の幅cを設定する。時刻T+T2の時点において、右目画像のリフレッシュ済み領域の幅bがあるものとする。
従って、候補領域設定部26は、リフレッシュ候補領域の幅c(=xn―b)を設定する。領域設定部25は、候補領域設定部26が設定したリフレッシュ候補領域の幅cに基づいて、フレームごとに、リフレッシュ領域Rを設定する。
領域設定部25は、リフレッシュ領域Rの幅mを「m=c−v」に設定する。幅cは、リフレッシュ候補領域の幅である。幅vは、統計部28が統計処理を行った評価値に基づく幅である。
統計部28は、保持部27が符号化ブロック単位で保持する保持する予測ベクトルに対して統計処理を行い、評価値を得る。この評価値は、過去のフレームにおいて、ビュー間予測符号化を行ったときの予測ベクトルに基づく値である。従って、評価値は、過去の左目画像と右目画像との視差に基づく値になる。
そこで、領域設定部25は、フレームごとに、評価値に基づく幅vを反映したリフレッシュ領域Rの幅mを設定する。上述したように、リフレッシュ領域Rの幅mは、リフレッシュ候補領域の幅cから評価値に基づく幅vを減算した幅になる。
評価値に基づく幅vは、左目画像と右目画像との視差を反映した値になる。よって、領域設定部25はリフレッシュ領域Rの幅mを「m=c−v」と設定することで、リフレッシュ領域Rの幅mは、左目画像と右目画像との視差に応じた可変値になる。
これにより、右目画像のリフレッシュ領域Rの幅nは、左目画像のリフレッシュ領域Lの幅nに同期するため、右目画像符号化部10Rは、左目画像のリフレッシュ済み領域を参照して、右目画像のリフレッシュを行うことができる。
図14は、時刻T+T3の時点のリフレッシュ領域Lおよびリフレッシュ領域Rの一例を示している。左目画像符号化部10Lは、左目画像に対してイントラ符号化によるリフレッシュを行い、時刻T+T3の時点で、左目画像を一巡して、リフレッシュ領域Lは左目画像の最後端に戻っている。
上述した実施形態で説明したように、左目画像符号化部10Lは、左目画像の最後端から一部の領域と最先端までの一部の領域とに指定領域を分割する。この場合、右目画像符号化部10Rの候補領域設定部26は、右目画像のリフレッシュ候補領域の幅cを左目画像のリフレッシュ領域Lの幅nと同じ幅に設定する。
また、領域設定部25は、リフレッシュ候補領域の幅cを幅vと幅mとに分割し、幅vの領域を右目画像の最先端までの領域に設定し、幅mの領域を右目画像の最後端からの領域に設定する。
ここで、幅vの領域は、対応する左目画像の指定領域に含まれる。よって、右目画像符号化部10Rは、幅vの領域に対応する左目画像の指定領域を参照して、ビュー間予測符号化を行うことができる。
領域設定部25は、幅vの領域をリフレッシュ領域Rの一部の領域に設定する。なお、幅vは、評価値に基づく幅である。一方、領域設定部25は、幅m(m=c−v)の領域もリフレッシュ領域Rの一部の領域に設定する。幅mは幅nより狭い。
従って、右目画像符号化部10Rは、幅mに対応する左目画像の指定領域を参照してビュー間予測符号化を行うことができる。そこで、領域設定部25は、幅mの領域をリフレッシュ領域Rの一部の領域に設定する。
従って、時刻T+T3において、左目画像の指定領域が分割されて、リフレッシュ領域Lが左目画像の最後端に接している場合、領域設定部25は、左目画像のリフレッシュ領域Lと同じ幅nの領域をリフレッシュ領域Rに設定する。この場合、リフレッシュ領域Rの幅は、最も広くなる。
上述したように、領域設定部25は、動画像データの各時刻のフレームごとに、右目画像のリフレッシ領域Rの大きさを、左目画像と右目画像との視差に基づいて、変化させている。このため、右目画像符号化部10Rは、右目画像のリフレッシュ領域Rにビュー間参照符号化を行うとき、左目画像のうちリフレッシュ済みの領域を参照する可能性を高くすることができる。
<変形例のフローチャート>
次に、変形例のフローチャートについて説明する。変形例の処理は、実施形態の各処理のうち、右目画像のリフレッシュ領域Rを設定する処理が実施形態の処理と異なる。つまり、変形例では、図8のステップS8の処理が実施形態の処理と異なる。
右目画像のリフレッシュ領域Rを設定する処理以外の各種の処理は、実施形態で説明した処理と同様である。よって、実施形態と同様の処理については、変形例では説明を省略する。
変形例における右目画像のリフレッシュ領域Rの設定処理について説明する。領域設定部25は、左目画像符号化部10Lが設定するリフレッシュ領域Lが最初に左目画像に設定するリフレッシュ領域Lであるか否かを判定する(ステップS31)。
リフレッシュ領域Lが最初に設定するリフレッシュ領域Lである場合(ステップS31でYES)、領域設定部25は、右目画像のリフレッシュ領域Rの幅aを設定する(ステップS32)。この幅aは、左目画像と右目画像との視差に基づく幅である。
候補領域設定部26は、左目画像のリフレッシュ領域Lが最後端に設定されているか否かを判定する(ステップS33)。左目画像のリフレッシュ領域Lが最後端に設定されていない場合(ステップS33でNO)、候補領域設定部26は、右目画像のリフレッシュ候補領域の幅cを設定する(ステップS34)。
候補領域設定部26は、幅xnから幅bを減算することで、幅cを得る。そして、候補領域設定部26は、幅cの領域を右目画像のリフレッシュ候補領域に設定する。領域設定部25は、幅cから評価値に基づく幅vを減算した幅に対応する領域をリフレッシュ領域Rに設定する(ステップS35)。
左目画像のリフレッシュ領域Lが最後端に設定されていると候補領域設定部26が判定した場合(ステップS33でYES)、候補領域設定部26は、右目画像のリフレッシュ候補領域の幅cを幅nと同じ幅に設定する(ステップS36)。
そして、領域設定部25は、右目画像のリフレッシュ領域Rの一部の領域の幅を評価値に基づく幅vと同じ幅に設定する(ステップS37)。また、領域設定部25は、右目画像の最先端から幅vの領域をリフレッシュ領域Rの一部の領域に設定する。
領域設定部25は、右目画像のリフレッシュ領域Rの一部の領域の幅を、リフレッシュ候補領域の幅cから評価値に基づく幅vを減算した幅に設定する(ステップS38)。また、領域設定部25は、右目画像の最後端から幅「c−v」の領域をリフレッシュ領域Rの一部の領域に設定する。
<動画像符号化装置のハードウェア構成の一例>
次に、図16の例を参照して、動画像符号化装置1のハードウェア構成の一例を説明する。図16の例に示すように、バス100に対して、プロセッサ111とRAM112とROM113と補助記憶装置114と媒体接続部115と通信インタフェース116とが接続されている。
プロセッサ111は任意の処理回路である。プロセッサ111はRAM112に展開されたプログラムを実行する。実行されるプログラムとしては、実施形態の処理を行うプログラムを適用してもよい。ROM113はRAM112に展開されるプログラムを記憶する不揮発性の記憶装置である。
補助記憶装置114は、種々の情報を記憶する記憶装置であり、例えばハードディスクドライブや半導体メモリ等を補助記憶装置114に適用してもよい。媒体接続部115は、可搬型記録媒体118と接続可能に設けられている。
可搬型記録媒体118としては、可搬型のメモリや光学式ディスク(例えば、Compact Disc(CD)やDigital Versatile Disc(DVD)、半導体メモリ等)を適用してもよい。この可搬型記録媒体118に実施形態の処理を行うプログラムが記録されていてもよい。
動画像符号化装置1の各部は、プロセッサ111が所定のプログラムを実行することにより実現されてもよい。また、動画像符号化装置1の各部はFPGA等により実現されてもよい。FPGAは、Field Programmable Gate Arrayの略称であり、プログラム可能な半導体集積回路である。
RAM112、ROM113、補助記憶装置114および可搬型記録媒体118は、何れもコンピュータ読み取り可能な有形の記憶媒体の一例である。これらの有形な記憶媒体は、信号搬送波のような一時的な媒体ではない。
<その他>
本実施形態は、以上に述べた実施の形態に限定されるものではなく、本実施形態の要旨を逸脱しない範囲内で種々の構成または実施形態を取ることができる。