[映像分割配信について]
はじめに、図16〜19を参照して、本発明の前提となる映像分割配信システムについて説明する。映像分割配信システムとは、元画像を複数の分割画像に分割して、指定される表示対象領域を含む分割画像を再生装置側に送信するシステムである。
図16は、この映像分配配信システムにおける超高解像度映像の圧縮符号化の一例を模式的に示している。
図16(a)に示されるフレーム画像200は、パノラマによる超高解像度映像としての1フレームを示している。このフレーム画像200の圧縮符号化にあたっては、図16(b)に示すように、フレーム画像200の全領域を所定の水平/垂直画素数による分割領域210{210−1,210−2,・・・210−32}により分割する。一例として、ここでは、32個(4行×8列)の分割領域210−1,210−2,・・・210−32により分割することとしている。
そして、上記分割領域210{210−1,210−2,・・・210−32}のそれぞれを圧縮符号化し、分割領域210{210−1,210−2,・・・210−32}の各符号化データを生成する。そして、図16(c)に示すように、これらの分割領域210{210−1,210−2,・・・210−32}の符号化データを、1つのファイル300として管理する。このファイル300は、1フレームに対応した符号化映像となる。このフレーム単位のファイル300が順次に配列されることで、1ファイルの映像のストリームデータが形成される。
図17は、上記図16(c)に示すファイル300の再生処理を模式的に示している。図17(a)には、図16(c)と同様のファイル300が示されている。ここでは、ファイル300から、図17(b)のフレーム画像200における表示対象領域400を再生表示させる場合を想定する。この場合において、図17(b)に示される表示対象領域400は、6つの分割領域210−11、210−12、210−19、210−20、210−27および210−28における各一部の領域を含んでいる。そこで、再生処理としては、ファイル300からこれら分割領域210−11、210−12、210−19、210−20、210−27および210−28を読み出して、伸張処理を実行する。そして、これらの復号された分割領域210−11、210−12、210−19、210−20、210−27および210−28の画像を同期させ、表示対象領域400の画像部分を表示出力させる。この再生処理をフレームごとに順次実行することで動画の再生が行われる。
ここで、上記ファイル300から成る映像ストリームデータをネットワーク経由でサーバから再生装置に転送し、この再生装置により上記図17により説明したように再生させるという映像配信システムを想定してみる。この場合、配信される映像ストリームデータは、例えばフレームごとに応じたファイル300が配列された構造を有するために、単位再生時間あたりのデータ量は相当なものとなるため、伝送に際しては相当に高いデータレートが要求される。ネットワークの帯域に制限がある現状において、このようにデータレートが非常に高い映像ストリームデータを伝送することは困難である。
そこで、非特許文献2に記載されるように、再生装置側で必要な分割領域の符号化データのみを映像ストリームデータから部分的に取り出して転送するようにした技術が提案されている。図18および図19は、この技術による映像配信の一例を模式的に示している。
図18(a)は、1つのフレーム画像200に対応するファイル300の構造を示す。まず、フレーム画像200は、複数の解像度による解像度変換が施される。これにより、フレーム画像200を元として、それぞれが異なる所定の解像度による複数のフレーム画像が生成される。つまり、図18(a)における横軸として示すように、ファイル300は、同じ画像内容のフレーム画像200として、解像度が異なる複数が配列される構造を有する。
次に、上記のように解像度変換されたフレーム画像200は、それぞれ、先に図16(a)および図16(b)により説明したのと同様に、複数の分割領域210に分割される。この図18(a)の例では、図16および図17と同様に、1つのフレーム画像200を32個の分割領域210−1〜210−32に分割している。
そして、これらの分割領域210は、それぞれが異なる複数の符号化量(ビットレート)ごとによる圧縮符号化を行う。これにより、図18(a)の縦軸として示すように、1つの解像度に対応して、それぞれが異なる符号量により符号化された分割領域210−1〜210−32から成る、複数のフレーム画像が配列されることになる。つまり、図18(a)に示されるファイル300において、1つの分割領域210の位置の映像は、α個の符号化量と同じ数であるα個が備えられる。配信サーバ(図示は省略)は、この図18(a)に示す構造のファイル300がフレームごとに配列された映像ストリームデータを記憶している。
ここでは、上記図17(a)に示すファイル300から、図18(b)における表示対象領域400の画像を再生表示する場合を想定する。図18(c)は、図18(b)の表示対象領域400を再生した表示映像500の例を示している。
上記図18(b)に示される表示対象領域400は、フレーム画像200における8個の分割領域210−10、210−11、210−12、210−13、210−18、210−19、210−20および210−21の各画像部分を含んで形成されている。限られた帯域の中で、表示対象領域の映像品質をあげるためには、品質の低い分割領域に対して高い符号化量を割振る必要がある。映像品質を判断するために、全ての分割領域の全てのフレームに対して品質評価情報(例えばPSNR情報)が存在している。帯域として許容される間は、一番品質が低い分割領域から符号化量を順にあげていく。図18の例では、割領域210−11、210−12、210−19および210−20の4個が一番高い符号化量まで、残りの分割領域が2番目の符号化量まで向上した例を示している。
また、超高解像度のパノラマ画像を表示するにあたっては、フレーム画像200における一部領域をズームイン(拡大)して再生表示させたり、ズームアウト(縮小)して再生表示させたりすることも想定されている。図19は、ズームアウトによる再生に対応したデータ配信の態様例を模式的に示している。
図19(a)は、上記図18(a)と同様のファイル300の構造が示されている。ここでは、図19(c)の表示映像500に示すように、フレーム画像200をズームアウト)縮小して再生表示させることを想定している。この表示映像500に対応する表示対象領域400は、図19(b)に示されるように、解像度は低い方の4個の分割領域210−21、210−22、210−24および210−25の各画像部分により形成される。ズームアウト表示の場合、図18の場合と比較すれば、例えば同じ4つの分割領域により表示すべき画像範囲は広くなるので、より低い解像度のフレームから分割領域を選択することになる。そこで、配信サーバは、図19(a)に示すように、解像度の低い方のフレーム画像200から上記分割領域210−21、210−22、210−24および210−25を読み出して再生装置に転送する。
一方、図示は省略するが、ズームアウト(縮小)して広範囲を表示させる場合には、逆に一定以上の高解像度は過剰になる。そこで、この場合の配信サーバは、複数の解像度のうちから低い方の解像度のフレーム画像200から、表示対象領域400の再生に必要な分割領域210を読み出して再生装置に転送する。
上記の図18および図19に示す態様の映像配信では、再生装置が再生しようとする領域に対応して必要とされる分割領域210を選択して転送することとしている。さらに、表示対象領域400における映像部分の占有率に応じて、転送すべき分割領域210の符号化量を適宜選択することとしている。また、表示映像500の表示倍率に応じて、転送すべき分割領域210の解像度を適宜選択することとしている。これにより、配信データのデータレートを抑制して、帯域制限のあるネットワーク環境において超高解像度映像を配信することが可能になる。
説明の簡易化のため、本発明の前提となる映像分割配信システムについてフレーム単位で配信することを前提として記載したが、H.264などの符号化方式で符号化した場合は、フレーム単位ではなくGOP単位となることは言うまでもない。
<第1実施形態>
次に、本発明に係る一実施形態にかかる映像符号化装置の一例について説明する。図1は、本実施形態にかかる映像符号化装置の構成の一例を示す図である。以下説明する第1実施形態に係る映像符号化装置は、上述した映像分割配信システムにおいて利用される装置の一例である。
[映像符号化装置の構成]
図1は、本発明の第1の実施の形態としての映像符号化装置100の構成例を示している。この図に示す映像符号化装置100は、解像度変換部110と、領域分割部120と、符号化部130と、多重化部140と、制御部150と備える。解像度変換部110は、複数の解像度変換部を含み、例えば、第1解像度変換部110−1〜第3解像度変換部110−3を含む。領域分割部120は、複数の領域分割部を含み、例えば、第1領域分割部120−1〜第3領域分割部120−3を含む。符号化部130は、同一のデータに対して異なる符号化レートで並行して符号化可能な複数の符号化部を備え、例えば、第1符号化部130−1〜第4符号化部130−4を含む。なお、本実施形態において、各第1符号化部130−1〜第4符号化部130−4は、それぞれが別個の装置を構成している。
バッファ111−1〜111−3は、それぞれ、第1解像度変換部110−1〜第3解像度変換部110−3に対応して設けられる。このバッファ111−1〜111−3は、それぞれ、第1解像度変換部110−1〜第3解像度変換部110−3が処理すべきデータを保持する。
バッファ121−1〜121−3は、それぞれ、第1領域分割部120−1〜第3領域分割部120−3に対応して設けられる。このバッファ121−1〜121−3は、それぞれ、第1領域分割部120−1〜第3領域分割部120−3が処理すべきデータを保持する。
バッファ131−1〜131−4は、それぞれ、第1符号化部130−1〜第4符号化部130−4に対応して設けられる。このバッファ131−1〜131−4は、それぞれ、第1符号化部130−1〜第4符号化部130−4が処理すべきデータを保持する。
バッファ141は、多重化部140が処理すべきデータを保持する。
入力映像は、例えば4k解像度や8k解像度などと称される、超高解像度による所定形式の映像信号データである。ここでは、説明の便宜上、フレーム画像単位で入力されるものとする。この入力映像としてのフレーム画像のデータは、バッファ111−1〜111−3に分岐して、フレーム毎に、異なるフレーム画像が供給される。バッファ111−1〜111−3は、供給されたフレーム画像を保持する。
第1解像度変換部110−1〜第3解像度変換部110−3は、それぞれ、バッファ111−1〜111−3からフレーム画像を入力して、予め決められた1つ又は複数の解像度ごとによるフレーム画像を生成するための解像度変換処理を行う。例えば、第1解像度変換部110−1〜第3解像度変換部110−3には、それぞれ、予め決められた複数の解像度が設定されている。これら第1解像度変換部110−1〜第3解像度変換部110−3に設定されている複数の解像度は、同一の解像度である。第1解像度変換部110−1〜第3解像度変換部110−3は、入力するフレーム画像を、設定されている解像度に変換して、各解像度に対応するフレーム画像を出力する。これにより、1つの解像度変換部110により、それぞれが異なる解像度に変換された複数のフレーム画像が生成される。なお、解像度のパターン数と、各解像度パターンにおける解像度の値は、予め定められており、1フレーム画像がパターン数分の解像度に変換される。本実施形態では、説明便宜のため、同一の1つの解像度が第1解像度変換部110−1〜第3解像度変換部110−3に設定されているとする。第1解像度変換部110−1〜第3解像度変換部110−3は、それぞれ、設定されている解像度に変換したフレーム画像を出力する。
バッファ121−1〜121−3には、それぞれ、上記第1解像度変換部110−1〜第3解像度変換部110−3により生成された、複数の解像度パターンに応じた複数のフレーム画像のデータが入力される。
第1領域分割部120−1〜第3領域分割部120−3は、それぞれ、バッファ121−1〜121−3に保持されたフレーム画像のデータを入力し、このフレーム画像を所定の大きさ(解像度)の分割領域に分割するように領域分割処理を実行する。つまり、領域分割部120が入力する1つのフレーム画像200が図16(a)に示されるものであるとすると、領域分割部120は、このフレーム画像200を、図16(b)に示すように、所定の水平/垂直画素数により分割することで、32個の分割領域210{210−1,210−2,・・・210−32}から成る形式に変換する。なお、第1領域分割部120−1〜第3領域分割部120−3は、同一のフレーム画像について設定された解像度に変換したフレーム画像を、それぞれ32個の分割領域210{210−1,210−2,・・・210−32}に分割する。
第1領域分割部120−1〜第3領域分割部120−3から出力された分割領域210のデータは、バッファ131−1〜131−4のいずれか1つに対して適宜入力される。バッファ131−1〜131−4は、入力された分割領域210のデータを保持する。
第1符号化部130−1〜第4符号化部130−4は、それぞれ、バッファ131−1〜131−4にて保持されたデータを入力して圧縮符号化処理を実行する。ここでの圧縮符号化の方式については特に限定されるものではないが、一例として、多視点映像符号化方式(MVC:MultiView Video Coding)を採用することができる。また、以降においては、圧縮符号化について単に符号化と称する。
第1符号化部130−1〜第4符号化部130−4により分割領域210を符号化して得られた符号化分割領域のデータは、バッファ141に対して入力され、ここで保持される。
多重化部140は、バッファ141にて保持されている符号化分割領域のデータを入力し、符号化分割領域のデータをフレーム単位で多重化して1つのファイルとするための多重化処理を実行する。なおこのフレーム単位のフレーム数は符号化方式に依存する。多視点映像符号化方式(MVC:MultiView Video Coding)を採用した場合は、フレーム数はGOP単位となる。これにより、図16(a)に示すように、1つのフレーム画像200に対応するファイル300として、複数解像度と複数の符号化量の組み合わせに応じた数の分割領域210から成る構造が得られる。そして、多重化部140は、このフレーム単位に対応するファイル300を、順次、出力映像として出力する。このように順次出力されるファイル300の連結により映像ストリームデータが形成される。
なお、上記図1に示される解像度変換部110、領域分割部120および符号化部130に含まれる各構成の並列数は、後述する映像符号化装置100の符号化処理の具体例に対応させたものであり、あくまでも一例となるものである。
制御部150は、解像度変換部110、領域分割部120、符号化部130および多重化部140に対する制御を実行する。
解像度変換部110、領域分割部120、符号化部130および多重化部140は、例えばDSP(Digital Signal Processor)により実現されるもので、制御部150は、このDSPに対する制御によって、解像度変換部110、領域分割部120、符号化部130の各並列数を変更して信号処理回路を形成することができる。
また、制御部150は、設定された信号処理回路の構成に応じて、解像度変換部110、領域分割部120、符号化部130および多重化部140に対するデータの振り分けや処理タイミングを指示する。
上記構成の映像符号化装置100により生成される映像ストリームデータを例えばネットワーク経由で配信するのであれば、ネットワーク上に配信サーバ(図示は省略する)を設け、上記のように形成される映像ストリームデータを記憶させることになる。そして、配信サーバが映像配信を行う際には、例えば図18および図19にて説明したようにフレーム画像200において再生装置が表示させようとする部分の画像に対応する分割領域210のデータのみを配信する。また、配信サーバは、表示対象領域400における映像部分の占有率に応じて、転送すべき分割領域210の符号化量を適宜選択して配信するものであってもよい。また、表示映像500の表示倍率に応じて、転送すべき分割領域210の解像度を適宜選択して配信するものであってもよい。これにより、限られた帯域のネットワークを経由して超高解像度映像を配信することが可能になる。
[符号化処理タイミング例]
次に、上記図1に示す構成の映像符号化装置100が実行する符号化処理の実行タイミング例について説明する。以降の説明においては、図2に示すファイル300の構造を前提とする。ここでは、説明簡略化のため、1つのフレーム画像200は第1分割領域210−1と第2分割領域210−2の2つの領域に分割されるものとする。また、符号化量については第1符号化量と第2符号化量との2つの符号化レートγ1、γ2により符号化されるものとする。なお、解像度は、αとする。図2のファイル300は、(分割数「2」×符号化レートのパターン数「2」)で表される数の分割領域210を有することになる。なお、実際には、解像度のパターン数、分割数、符号化レートのパターン数が非常に多く、ファイル300における分割領域210の数は膨大である。一般的には、解像度nの時の分割数をαn、解像度nの時の符号化レートをβnとすると、ファイル300における分割領域数は
Σ(αn×βn)
と表わすことができる。
なお、このファイル300に相当するデータのうち、第1符号化部132−1が符号化する分割領域はバッファ131−1に格納されている。同様に符号化部132−2〜132−4が符号化する分割領域は、バッファ131−2〜131−4にそれぞれ格納されている。なお分割領域数と符号化部数が同数とは限らず、また1対1で割り当てられるとは限らない。分割領域と符号化の割振りは制御部150によってなされる。
例えば、第1符号化部132−1が、第1分割領域を第1符号化量で符号化し、第2符号化部132−2が、第2分割領域を第1符号化量で符号化し、第3符号化部132−3が、第1分割領域を第2符号化量で符号化し、第4符号化部132−4が、第2分割領域を第2符号化量で符号化する場合の一例について説明する。この場合、制御部150は、予め設定される符号化パラメータ(例えば、入力映像の解像度、領域分割の解像度、解像度のパターン数、符号化量のパターン数など)に応じて、バッファ131−1には、第1分割領域を、バッファ131−2には、第2分割領域を、バッファ131−3には、第1分割領域を、バッファ131−4には、第2分割領域を、それぞれ格納される。
また、第1符号化部132−1が、第1分割領域を第1符号化量と第2符号化量で符号化し、第2符号化部132−2が、第2分割領域を第1符号化量と第2符号化量で符号化する場合は、以下のように制御する。つまり、制御部150は、バッファ131−1には、第1分割領域を、バッファ131−2には、第2分割領域をそれぞれ格納させる。よって、バッファ131−3およびバッファ131−4にはデータが格納されないことになる。
図3のタイミングチャートは、図1に示す第1の実施の形態の映像符号化装置100が実行する符号化処理の一例を時間経過にしたがって示している。まず、入力映像は、図示するように、フレーム1、2、3、4・・・のように、例えばフレーム周期に応じたタイミングで順次入力される。
解像度変換処理に対応するバッファ111−1〜111−3は、上記のように入力されるフレーム1、2、3、4・・・を、図示するタイミングにより順次保持する。具体的にバッファ111−1はフレーム1を保持し、バッファ111−2はフレーム2を保持し、バッファ111−3はフレーム3を保持する。このように、バッファ111−1〜111−3によるデータの保持が一巡すると、また、バッファ111−1がフレーム4を保持し、以降、同様にしてバッファ111−1〜111−3によるフレームの保持が繰り返される。
第1解像度変換部110−1は、バッファ111−1に保持されたフレーム1のデータを入力して解像度変換処理を実行する。つまり、フレーム1のデータから、異なる解像度α1のフレーム画像(以下、解像度変換データという)を生成する。なお、異なる解像度を作らない場合は、この処理はスルーすることもできる。例えば、第1解像度については入力映像と同じ解像度としてもよい。
次に、第2解像度変換部110−2は、バッファ111−2に保持されたフレーム2を入力して解像度変換処理を実行し、解像度α1の解像度変換データを生成する。次に、第3解像度変換部110−3は、バッファ111−3に保持されたフレーム3を入力して解像度変換処理を実行し、解像度α1の解像度変換データを生成する。次に、フレーム4はバッファ111−1に保持されているので、第1解像度変換部110−1がフレーム4を入力して解像度変換処理を実行し、解像度α1の解像度変換データを生成する。このように、第1〜第3解像度変換部110−1〜110−3は、フレームのデータを順次入力して巡回的に解像度変換処理を実行する。
上記のように第1解像度変換部110−1により生成された複数解像度によるフレーム1の解像度変換データは、領域分割処理に対応するバッファ121−1に出力され、ここで保持される。次に、第2解像度変換部110−2により生成された複数解像度によるフレーム2の解像度変換データはバッファ121−2に出力され、ここで保持される。次に、第3解像度変換部110−3により生成された複数解像度によるフレーム3の解像度変換データはバッファ121−3に出力され、ここで保持される。次に、第1解像度変換部110−1により生成された複数解像度によるフレーム4の解像度変換データはバッファ121−1に出力され、ここで保持される。
第1領域分割部120−1は、バッファ121−1から複数解像度によるフレーム1の解像度変換データを入力し、領域分割処理として、第1分割領域210−1と第2分割領域210−2に分割する。図では、フレーム1の第1分割領域210−1のデータを、分割領域1−1として表記し、フレーム1の第2分割領域210−2のデータを、分割領域1−2として表記している。
次に、第2領域分割部120−2は、バッファ121−2から複数解像度によるフレーム2の解像度変換データを入力し、同様に、第1分割領域(分割領域2−1)と第2分割領域(分割領域2−2)に分割する。次に、第3領域分割部120−3は、バッファ121−3から複数解像度によるフレーム3の解像度変換データを入力し、第1分割領域(分割領域3−1)と第2分割領域(分割領域3−2)に分割する。次に、第1領域分割部120−1は、バッファ121−1から複数解像度によるフレーム4の解像度変換データを入力し、第1分割領域(分割領域4−1)と第2分割領域(分割領域4−2)に分割する。このように、第1領域分割部120−1〜第3領域分割部120−3も、巡回的に複数解像度によるフレームのデータを順次入力して領域分割処理を実行する。なお、以降において図3に示されるデータを説明するにあたり、同図と同じ表記を用いる。
第1領域分割部120−1により生成された分割領域1−1および1−2のうち、分割領域1−1は、第1符号化部132−1に対応するバッファ131−1および第2符号化部132−2に対応するバッファ131−2に対して並列に入力され、ここで保持される。一方、分割領域1−2は、第3符号化部132−3に対応するバッファ131−3および第4符号化部132−4に対応するバッファ131−4に対して並列に入力され、ここで保持される。
次に、第2領域分割部120−2により生成された分割領域2−1および2−2のうち、分割領域2−1は、第1符号化部130−1に対応するバッファ131−1および第2符号化部130−2に対応するバッファ131−2に対して並列に入力され、ここで保持される。分割領域2−2は、第3符号化部130−3に対応するバッファ131−3および第4符号化部130−4に対応するバッファ131−4に対して並列に入力され、ここで保持される。
次に、第3領域分割部120−3により生成された分割領域3−1および3−2のうち、分割領域3−1は、第1符号化部130−1に対応するバッファ131−1および第2符号化部132−2に対応するバッファ131−2に対して並列に入力され、ここで保持される。分割領域3−2は、第3符号化部132−3に対応するバッファ131−3および第4符号化部132−4に対応するバッファ131−4に対して並列に入力され、ここで保持される。
次に、第4領域分割部120−3により生成された分割領域4−1および4−2のうち、分割領域4−1は、第1符号化部130−1に対応するバッファ131−1および第2符号化部132−2に対応するバッファ131−2に対して並列に入力され、ここで保持される。分割領域4−2は、第3符号化部132−3に対応するバッファ131−3および第4符号化部132−4に対応するバッファ131−4に対して並列に入力され、ここで保持される。
これにより、第1符号化部132−1および第2符号化部132−2の各々に対応するバッファ131−1および131−2は、それぞれ、分割領域1−1、2−1、3−1および4−1を順次保持していく。また、第3符号化部132−3および第4符号化部132−4の各々に対応するバッファ131−3および131−4は、それぞれ、分割領域1−2、2−2、3−2および4−2を順次保持していく。
図2にて説明したように、ここでは第1符号化量と第2符号化量による2つの符号化量による符号化を行う場合を想定している。第1符号化部132−1〜第4符号化部132−4のうち、第1符号化部132−1および第2符号化部132−2は、第1分割領域のデータについて、それぞれ第1符号化量と第2符号化量による符号化を行う。第3符号化部132−3および第4符号化部132−4は、第2分割領域のデータについて、それぞれ第1符号化量と第2符号化量による符号化を行う。
第1符号化部132−1は、バッファ131−1にて保持されている分割領域1−1、2−1、3−1および4−1のデータのうち、まず、フレーム1の分割領域1−1を入力して第1符号化量による符号化を行って、符号化分割領域1−1−1を生成する。以降、第1符号化部132−1は、順次、フレーム2、3、4の分割領域2−1、3−1および4−1を入力し、符号化分割領域2−1−1、3−1−1および4−1−1を生成する。
第2符号化部132−2は、バッファ131−2にて保持されている分割領域1−1、2−1、3−1および4−1のデータのうち、まず、分割領域1−1を入力して第2符号化量による符号化を行って、符号化分割領域1−1−2を生成する。以降、第2符号化部132−2は、順次、分割領域2−1、3−1および4−1を入力し、符号化分割領域2−1−2、3−1−2および4−1−2を生成する。
第3符号化部132−3は、バッファ131−3にて保持されている分割領域1−2、2−2、3−2および4−2のデータのうち、まず、分割領域1−2を入力して第1符号化量による符号化を行って、符号化分割領域1−2−1を生成する。以降、第3符号化部132−3は、順次、分割領域2−2、3−2および4−2を入力し、符号化分割領域2−2−1、3−2−1および4−2−1を生成する。
第4符号化部132−4は、バッファ131−4にて保持されている分割領域1−2、2−2、3−2および4−2のデータのうち、まず、分割領域1−2を入力して第2符号化量による符号化を行って、符号化分割領域1−2−2を生成する。以降、第3符号化部132−3は、順次、分割領域2−2、3−2および4−2を入力し、符号化分割領域2−2−2、3−2−2および4−2−2を生成する。
上記のように第1符号化部132−1〜第4符号化部132−4が符号化処理を実行することで、1フレームにおける2つの第1分割領域と第2分割領域は、それぞれ、第1符号化量による符号化と、第2符号化量による符号化が施される。つまり、1フレームにおいて、第1符号化量による第1分割領域と、第2符号化量による第1分割領域と、第2符号化量による第1分割領域と、第2符号化量による第2分割領域との4パターンの符号化分割領域が得られる。そして、この1フレームにおける4パターンの符号化分割領域が、時間経過にしたがって、順次、フレームごとに形成されていく。なお、これらの符号化分割領域のデータの各々は、複数の解像度に応じた複数の分割領域から成る。
第1符号化部132−1は、上記のように符号化分割領域1−1−1、2−1−1、3−1−1および4−1−1のデータを順次生成していくごとに、これらのデータを多重化部140に対応するバッファ141に転送する。同様に、第2符号化部132−2は、符号化分割領域1−1−2、2−1−2、3−1−2および4−1−2のデータを順次生成していくごとに、バッファ141に転送する。第3符号化部132−3は、符号化分割領域1−2−1、2−2−1、3−2−1および4−2−1のデータを順次生成していくごとに、バッファ141に転送する。第4符号化部132−4は、符号化分割領域1−2−2、2−2−2、3−2−2および4−2−2のデータを順次生成していくごとに、バッファ141に転送する。これにより、バッファ141には、図3に示すタイミングで、順次、上記のように転送されたデータが保持されていく。
多重化部140は、フレーム1に対応する4つの符号化分割領域1−1−1、1−1−2、1−2−1、1−2−2のすべてがバッファ141に保持されたタイミングで、これらの符号化分割領域を入力して多重化処理を実行し、図示するようにフレーム1に対応するファイルを生成する。次いで、多重化部140は、フレーム2に対応する4つの符号化分割領域2−1−1、2−1−2、2−2−1、2−2−2のすべてがバッファ141に保持されたタイミングで、これらの符号化分割領域を入力して多重化処理を実行し、フレーム2に対応するファイルを生成する。
以降、多重化部140は、フレーム3、4・・・ごとに、対応の符号化分割領域がすべてバッファ141に保持されたタイミングで多重化処理を実行し、順次、フレーム3、4・・・のファイルを生成していく。このように、フレーム単位のファイルが順次生成されることで、出力映像としてのストリームデータが得られる。もしくはフレーム単位のファイルを順次1つのファイルとして結合し、出力映像ファイルを得る。
上記図3の処理タイミングとして示されるように、第1符号化部132−1〜第4符号化部132−4により順次フレームを符号化する処理は、図3にも示されているように、同時並行して実行される。つまり、本実施の形態は、複数の符号化部130を並列に設け、これらに符号化処理を同時並行して実行させることにより、符号化処理に要する時間について、領域分割を行わない場合と同等としているものである。これにより、本実施の形態では、フレーム画像200を分割領域210により分割しているのに係わらず、符号化処理に要する時間を大幅に短縮することが可能となる。
なお、実際のフレームごとの処理時間にはばらつきが生じる。例えば、解像度変換部110および領域分割部120は、処理対象とするデータの解像度に応じてフレーム単位の処理時間が異なる。また、符号化部130による符号化処理では、例えばI(Intra)ピクチャ、P(Predictive)ピクチャおよびBピクチャ(Bi−directional Predictive)ごとに処理時間が異なる。そこで、解像度変換部110、領域分割部120、符号化部130および多重化部140に対して、それぞれ、バッファ111、121、131および141を設けている。これにより、上記処理時間の相違を吸収して処理タイミングを同期させることができる。
[符号化処理手順例]
図4のフローチャートは、第1の実施の形態における映像符号化装置100が実行する処理手順例を示している。この図は、上記図3に示した処理タイミングにおいて、1つのフレームを処理する手順を示している。この図に示す処理は、図1に示した各部が適宜実行するものとしてみることができる。
ステップS101において、制御部150は、フレームの番号を示す変数nについて初期値である「1」を代入する。次に、制御部150は、ステップS102において、入力映像として供給されるフレームnを、第((n・mod・m))解像度変換部110−(n・mod・m))に対応するバッファ111−(n・mod・m)に転送する。mは解像度変換部110の数であり、ここでは「3」となる。また、(n・mod・m)は、nをmで除算したときの余りを示す。ただし、mが「3」の場合の(n・mod・m)は、「0」、「1」、「2」のいずれかを取り得るが、「0」の場合には、「m」の値を取るものとする。これにより、図3に示したように、フレーム1、2、3、4・・・は、順次巡回するように、第1〜第3解像度変換部110−1〜110−3に対応するバッファ111−1〜111−3にて保持される。なお、表記を簡単にするために、以降において、(n・mod・m)は、「N」で置き換えて表記する。
次に、第N解像度変換部110−Nは、ステップS103において、解像度変換処理を実行する。つまり、フレームnから第1〜第i解像度によるフレームnのデータを生成する。そして、第N解像度変換部110−Nは、ステップS104において、この第1〜第i解像度によるフレームnのデータを、第N領域分割部120−Nに対応するバッファ121−Nに転送して保持させる。
次に、第N領域分割部120−Nは、ステップS105において、バッファ121−Nに保持されている第1〜第i解像度によるフレームnのデータを入力して領域分割処理を実行する。つまり、フレームnのデータについて、第1分割領域210−1と第2分割領域210−2に分割する。図3の表記との対応では、分割領域n−1と分割領域n−2に分割することになる。以降の図4の説明においては、この図3の表記を用いる。
そして、第N領域分割部120−Nは、ステップS106において、分割領域n−1のデータを第1符号化部132−1に対応するバッファ131−1に転送して保持させる。また、第N領域分割部120−Nは、ステップS107において、分割領域n−1のデータを第2符号化部132−2に対応するバッファ131−2に転送して保持させる。
また、第N領域分割部120−Nは、ステップS108において、分割領域n−2のデータを第3符号化部132−3に対応するバッファ131−3に転送して保持させる。また、第N領域分割部120−Nは、ステップS109において、分割領域n−2のデータを第4符号化部132−4に対応するバッファ131−4に転送して保持させる。
次に、第1符号化部132−1は、ステップS110において、バッファ131−1に保持されている分割領域n−1のデータを入力して、第1符号化量により符号化して符号化分割領域n−1−1のデータを生成する。そして、第1符号化部132−1は、この符号化分割領域n−1−1のデータを、多重化部140に対応するバッファ141に転送して保持させる。
また、第2符号化部132−2は、ステップS111において、バッファ131−2に保持されている分割領域n−1のデータを入力して、第2符号化量により符号化して符号化分割領域n−1−2のデータを生成する。そして、第2符号化部132−2は、この符号化分割領域n−1−2のデータをバッファ141に転送して保持させる。
また、第3符号化部132−3は、ステップS112において、バッファ131−3に保持されている分割領域n−2のデータを入力して、第1符号化量により符号化して符号化分割領域n−2−1のデータを生成する。そして、第3符号化部132−3は、この符号化分割領域n−2−1のデータをバッファ141に転送して保持させる。
また、第4符号化部132−4は、ステップS113において、バッファ131−4に保持されている分割領域n−2のデータを入力して、第2符号化量により符号化して符号化分割領域n−2−2のデータを生成する。そして、第4符号化部132−4は、この符号化分割領域n−2−2のデータをバッファ141に転送して保持させる。なお、図3にて説明したように、ステップS110〜S113による符号化処理は、同時に並行して実行されるものである。
そして、多重化部140は、上記ステップS110〜S113により得られた4つの符号化分割領域n−1−1、n−1−2、n−2−1およびn−2−2のデータが保持されると、ステップS114において、これらを多重化する処理を実行する。これにより、フレームnに対応するファイルが形成される。ステップS114までの処理が終了すると、制御部150は、ステップS115において変数nをインクリメントしてステップS102の処理に戻る。このように処理が実行されることで、フレーム単位で順次ファイル300を形成していくことができる。
なお、映像符号化装置100により生成された映像ストリームデータを配信するにあたっては、図18および図19に準じた配信態様を想定することができる。つまり、再生装置での再生に必要な分割領域のうちから、さらに再生に必要な符号化量および解像度のデータを選択して配信するというものである。これは、例えばユーザが視聴領域を指定操作するのではなく、配信側で入力映像の一部を適宜拡大または縮小するように編集したものを配信するというサービスに適用できる。このような配信の態様に対応する映像符号化装置100の処理として、1つには、次のようなものを考えることができる。
まず、図1に示す映像符号化装置100において、解像度変換部110と領域分割部120は、それぞれ、これまでの説明のように予め設定された所定数の解像度パターンによる解像度変換処理と分割領域210に分割する分割領域処理を実行する。そして、これらの分割領域210のデータを、例えば図3にて示したように、符号化部130におけるバッファ131に保持させる。この段階までは、これまでに図3および図4により説明した処理手順と同様となる。
そのうえで、制御部150は、再生装置からの再生データ要求に応じて、再生装置に送信すべき分割領域と、これらの分割領域のデータの符号化量と解像度パターンの組み合わせを判定する。そして、制御部150は、すべての符号化部130のうちから、判定した分割領域と符号化量の組み合わせに応じて符号化処理を実行する符号化部130に対して符号化処理を指示する。また、この際、制御部150は、符号化処理を指示した符号化部130に対して、符号化すべき解像度パターンを指定する。これに応じて、符号化処理の指示を受けた符号化部130は、対応のバッファ131に保持されている複数の解像度パターンごとに応じたフレームのデータのうちから、指定された解像度パターンのフレームのデータのみを入力して符号化処理を実行する。
一具体例として、分割領域および符号化量については、図2に示した場合を想定し、解像度変換部110は全部で解像度α1、α2の2パターンによる解像度変換処理を行うものとする。そのうえで、再生に必要なデータとしては、分割領域210−1であり、解像度はα1であり、第2符号化量により符号化されたものであるとする。この場合、図1の符号化部132−1〜132−4のうち、分割領域210−1を処理対象とし、かつ、第2符号化量による処理を実行する符号化部132−2のみが符号化処理を実行することになる。そのうえで、符号化部132−2は、バッファ131−2からデータを入力するにあたり、解像度α1と解像度α2のフレームのうち、解像度α1のフレームのデータのみを入力して符号化処理を実行することになる。これに応じて、図4のフローチャートについては、ステップS110、S112およびS113が省略される。また、この場合、多重化されたフレームごとのファイルは、符号化部132−2により符号化された圧縮分割領域のデータにより形成されることになる。
上記のような処理とすることで、再生に必要な分割領域210と符号化量の組み合わせに対応する一部の符号化部130のみが符号化処理を行い、さらに、符号化処理を実行する符号化部130は、再生に必要な解像度パターンのフレームのみを対象に符号化処理を実行すればよい。これにより、符号化処理の並行数が削減されて処理負荷が軽減されるとともに、1つの符号化部132が処理するフレーム数も削減されることとなって処理時間の短縮も図られる。なお、解像度変換処理に関しては、例えば、解像度変換部110に対して、再生に必要な解像度パターンのみによる解像度変換処理を実行させるように制御部150が制御するように構成してもよい。さらに、リアルタイムに符号化処理を実行する必要がない配信システムの場合であれば、映像符号化装置100としては、すべての解像度パターンと符号化量パターンの組み合わせにより、すべての分割領域の符号化処理を行えばよい。そして、このように生成した映像ストリームデータを記憶装置に記憶させておく。配信サーバは、再生装置からの要求に応じて、再生に必要な解像度パターンと符号化量パターンの組み合わせによる分割領域210のデータを、記憶装置に記憶された映像ストリームデータから読み出し、これを所定形式のコンテンツデータとして再生装置に送信する。
<第2の実施の形態>
[映像符号化装置の構成]
図5は、第2の実施の形態における映像符号化装置100の構成例を示している。この図において、図1と同一部分には同一符号を付して説明を省略する。この図に示す映像符号化装置100は、符号化処理を実行する部位として2つの第1符号化部130−1と第2符号化部130−2を備える。
そのうえで、第1符号化部130−1は、その内部に、第1サブ符号化部132−1、バッファ131−1、第2サブ符号化部132−2およびバッファ131−2を備える。また、第2符号化部130−2は、その内部に、第3サブ符号化部132−3、バッファ131−3、第4サブ符号化部132−4およびバッファ131−4を備える。
第1サブ符号化部132−1〜第4サブ符号化部132−4は、それぞれ、図1における第1符号化部132−1〜第4符号化部132−4に相当し、同等の処理を実行する。つまり、第1符号化部130−1において、第1サブ符号化部132−1は、バッファ131−1にて保持された第1分割領域210−1のデータを入力して第1符号化量による符号化処理を実行する。第2サブ符号化部132−2は、バッファ131−2にて保持された第1分割領域210−1のデータを入力して第2符号化量による符号化処理を実行する。したがって、第1符号化部130−1は、第1分割領域に対応した符号化処理を実行する部位となる。
一方、第2符号化部130−2は、第2分割領域に対応した符号化処理を実行する部位となる。つまり、第3サブ符号化部132−3は、バッファ131−3にて保持された第2分割領域210−2のデータを入力して第1符号化量による符号化処理を実行する。第4サブ符号化部132−4は、バッファ131−4にて保持された第2分割領域210−2のデータを入力して第2符号化量による符号化処理を実行する。
[符号化処理タイミング例]
図6のタイミングチャートは、上記図5に示す第2の実施の形態としての映像符号化装置100が実行する符号化処理の実行タイミング例を示している。この図において、先の図3と同様となる処理については説明を省略する。
図6における符号化処理は、先に図3に示した第1符号化部132−1〜第4符号化部132−4に代えて、第1サブ符号化部132−1〜第4サブ符号化部132−4が実行する。ここで、第1サブ符号化部132−1〜第4サブ符号化部132−4が実行する符号化処理タイミングは、図3の第1サブ符号化部132−1〜第4サブ符号化部132−4が実行する符号化処理と同様となる。したがって、図6に示される各処理の実行タイミングは、図3と同様となっている。
ただし、先の図3においては、例えば第1領域分割部120−1は、分割処理により得た分割領域1−1のデータを第1符号化部132−1に転送し、さらに第2符号化部132−2に転送するようにされていた。また、第1領域分割部120−1は、分割領域1−2のデータを第3符号化部132−3と第4符号化部132−4のそれぞれに転送するようにされていた。つまり、第1の実施の形態では、第1領域分割部120−1が分割領域のデータを転送するにあたり、符号化量のパターン数と同じ回数の転送を行っている。つまり、同じデータを複数回転送する動作を実行していることになり、データ伝送量は増加する。
これに対して、第2の実施の形態の第1領域分割部120−1は、分割領域1−1のデータを第1符号化部130−1に転送する。第1符号化部130−1は、このように転送されたデータを、図6に示すように第1サブ符号化部132−1に対応するバッファ131−1に格納して保持させる。次に、第1符号化部130−1は、上記のようにバッファ131−1に保持させた分割領域1−1のデータを、第2サブ符号化部132−2に対応するバッファ131−2にコピーして保持させる。これにより、第1領域分割部120−1は、分割領域1−1のデータを第1サブ符号化部132−1と第2サブ符号化部132−2のそれぞれに対して個別に転送する必要はなくなる。つまり、分割領域1−1のデータを転送する動作は、符号化量のパターン数に係わらず1回でよいことになる。
また、第1領域分割部120−1は、分割領域1−2のデータを第2符号化部130−2に転送する。そして、第2符号化部130−2においても、転送されたデータを第3サブ符号化部132−3に対応するバッファ131−3に格納して保持させ、次に、このバッファ131−3に保持させたデータを、第4サブ符号化部132−4に対応するバッファ131−4にコピーして保持させる。これにより、第1領域分割部120−1が分割領域n−2のデータを転送する動作も符号化量のパターン数に係わらず1回でよいことになる。
このように、本実施の形態において領域分割部120が分割領域のデータを後段のバッファに保持させるための転送動作は、1回で済むようになっている。これにより、データ転送量の増加はなくなり、例えば処理負荷の軽減や符号化処理のさらなる高速化が図られる。
[符号化処理手順例]
図7のフローチャートは、第2の実施の形態における映像符号化装置100が実行する処理手順例を示している。この図は、上記図6に示した処理タイミングにおいて、1つのフレームを処理する手順を示している。
図7において、ステップS201〜S205の処理は、図4のステップS101〜S105と同様となる。そして、ステップS206において、第N領域分割部120−Nは、分割領域n−1のデータを第1符号化部130−1に対して転送する。これに応じて、第1符号化部130−1は、ステップS207において、第N領域分割部120−Nから転送されたデータを第1サブ符号化部132−1に対応するバッファ131−1に格納して保持させる。また、同じステップS207において、第1符号化部130−1は、上記のようにバッファ131−1に格納したデータを、第2サブ符号化部132−2に対応するバッファ131−2にコピーして保持させる。
次に、第N領域分割部120−Nは、ステップS208において、分割領域n−2のデータを第2符号化部130−2に対して転送する。これに応じて、第2符号化部130−2は、ステップS209において、転送されたデータを、第3サブ符号化部132−3に対応するバッファ131−3に格納して保持させる。また、第2符号化部130−2は、バッファ131−3に格納したデータを、第4サブ符号化部132−4に対応するバッファ131−4にコピーして保持させる。以降のステップS210〜S215の処理は、図4のステップS110〜S115と同様となる。
上記図7の処理手順とすることにより、第N領域分割部120−Nによる分割領域n−1とn−2のデータ転送は、ステップS206およびS208により各1回ずつ行われる。つまり、領域分割部120による1つの分割領域の転送は、符号化パターン数に係わらず各1回となるようにされている。
<第3の実施の形態>
[映像符号化装置の構成]
図8は、第3の実施の形態における映像符号化装置100の構成例を示している。なお、この図において、図1および図5と同一部分には同一符号を付して説明を省略する。
図8に示す映像符号化装置100は、符号化処理に対応する構成として、第1符号化部130−1および第2符号化部130−2を備える。また、第1符号化部130−1は、その内部に、第1サブ符号化部132−1と第2サブ符号化部132−2を備え、第2符号化部130−2は、その内部に、第3サブ符号化部132−3と第2サブ符号化部132−3を備える。この点については、図5と同様である。
ただし、図8の第1符号化部130−1は、1つのバッファ131A−1のみを備え、第1サブ符号化部132−1および第2サブ符号化部132−2は、いずれもバッファ131A−1からデータを入力する。同様に、第2符号化部130−2は、1つのバッファ131A−2のみを備え、第3サブ符号化部132−3および第4サブ符号化部132−4は、バッファ131A−2からデータを入力する。つまり、第3の実施の形態において、1つの符号化部130におけるバッファ131Aは、複数のサブ符号化部130により共有される。
[符号化処理タイミング例]
図9のタイミングチャートは、上記図8に示す第3の実施の形態としての映像符号化装置100が実行する符号化処理の実行タイミング例を示している。この図において、図3および図5と同様となる処理については説明を省略する。
第1領域分割部120−1は、領域分割処理により生成した分割領域1−1および102のデータを、それぞれ、第1符号化部130−1内のバッファ131A−1に転送し、第2符号化部130−2内のバッファ131A−2に転送する。これにより、バッファ131A−1は分割領域n−1のデータを保持し、バッファ131A−2は分割領域n−2のデータを保持する。
そして、第1符号化部130−1における第1サブ符号化部132−1は、バッファ131A−1から分割領域n−1のデータを入力して第1の符号化量に対応する符号化処理を実行する。また、同じ第1符号化部130−1における第2サブ符号化部132−2も、バッファ131A−1から分割領域n−1のデータを入力して第2の符号化量に対応する符号化処理を実行する。
また、第2符号化部130−2において、第3サブ符号化部132−3は、バッファ131A−2から分割領域n−2のデータを入力して第1の符号化量に対応する符号化処理を実行する。また、同じ第2符号化部130−1における第4サブ符号化部132−4も、バッファ131A−2から分割領域n−2のデータを入力して第2の符号化量に対応する符号化処理を実行する。そして、第1〜第3領域分割部120−1〜第3領域分割部120−3は、フレーム順にしたがって巡回的に上記と同様の処理を、順次実行していく。
上記のように分割領域のデータが処理されることにより、第3の実施の形態においては、1つの符号化部130において、複数のバッファ131の間で分割領域のデータをコピーする処理は行う必要がなくなる。これにより、バッファ131間のデータコピーに要する時間が削減されることとなる結果、映像符号化装置100としての符号化処理の時間をさらに短縮することが可能になる。
[符号化処理手順例]
図10は、フローチャートは、第3の実施の形態における映像符号化装置100が実行する処理手順例を示している。この図は、上記図9に示した処理タイミングにおいて、1つのフレームを処理する手順を示している。
図10におけるステップS301〜S305の処理は、図7におけるステップS201〜S205と同様である。そして、ステップS306において、第N領域分割部120−Nは、領域分割処理により生成した分割領域n−1とn−2のうち、分割領域n−1のデータを第1符号化部130−1に対応するバッファ131A−1に転送する。また、第N領域分割部120−Nは、ステップS307において、分割領域n−2のデータを第2符号化部130−2に対応するバッファ131A−2に転送する。
ステップS308〜S313は、図7におけるステップS210〜S215と同様となる。ただし、ステップS308とS309の処理にあたり、第1サブ符号化部132−1と第2サブ符号化部132−2の両者は、バッファ131A−1にて保持された分割領域n−1のデータを入力する。同様に、ステップS310とS311の処理にあたり、第3サブ符号化部132−3と第4サブ符号化部132−4の両者は、バッファ131A−2にて保持された分割領域n−2のデータを入力する。このようにな手順とされることで、バッファ間で分割領域のデータをコピーすることなく、サブ符号化部132に分割領域のデータを受け渡すことができる。
[符号化部の他の構成例]
図11は、第3の実施の形態において符号化処理に対応する部位についての他の構成例を示している。図11は、第1符号化部130−1において4つの第1〜第4サブ符号化部132−1〜132−4を備え、第2符号化部130−2において同じく4つの第5〜第8サブ符号化部132−5〜132−8を備えた例が示されている。
この構成は、第1符号化部130−1と第2符号化部130−2がそれぞれ分割領域n−1とn−2に対応するものとしたうえで、1つの分割領域について第1〜第4符号化量の4パターンにより符号化する場合に対応するものとなる。
第1符号化部130−1は、4つの第1サブ符号化部132−1〜第4サブ符号化部132−4と、これらのサブ符号化部132に共通に対応する1つのバッファ131A−1を備える。同様に、第2符号化部130−2は、4つの第5サブ符号化部132−5〜第3サブ符号化部132−8と、これらのサブ符号化部132に共通に対応する1つのバッファ131A−2を備える。
第1符号化部130−1に転送されてきた第1分割領域のデータは、バッファ131A−1にて保持される。そして、第1サブ符号化部132−1〜第4サブ符号化部132−4は、バッファ131A−aから第1分割領域のデータを入力して、それぞれ、第1符号化量〜第4符号化量による符号化処理を実行する。
第2符号化部130−2においても、上記と同様に、第2分割領域のデータがバッファ131A−2により保持される。そして、第5サブ符号化部132−5〜第8サブ符号化部132−8により、それぞれ、第1〜第4符号化量による符号化処理が実行される。
図8においては、1つのバッファ131Aに2つのサブ符号化部132が対応する構成となっていた。しかし、バッファ131Aを共有するサブ符号化部132はこれに限定されるものではなく、上記図11に示すように、1つのバッファ131Aに対して、例えば符号化量のパターンに応じた数のサブ符号化部を対応させる構成とすることができる。
<解像度変換部、領域分割部および符号化部の並列数設定>
本実施の形態において、解像度変換部110、領域分割部120およびサブ符号化部130の並列数の組み合わせは1つのパターンに限定されるものではなく、適宜変更が可能である。また、例えば映像符号化装置100がDSPにより実現される場合には、その設定を適宜変更することも可能である。
上記並列数をどのように設定するのかについては多様に考えられるが、その第1例および第2例について、それぞれ、図12(a)と図12(b)のフローチャートにより説明する。なお、これら図12(a)と図12(b)に示す処理は、制御部150が実行するものとしてみることができる。
図12(a)の第1例について説明する。図12(a)において、制御部150は、ステップS401において、映像符号化装置100のリソース量に基づいて、同時並行で解像度変換処理および領域分割処理が可能なフレーム数i1を判定する。次に、制御部150は、ステップS402において、i1個の解像度変換部110と、同じi1個の領域分割部120を形成する。
また、制御部150は、ステップS403において、映像符号化装置100としてのリソース量に基づいて、同時並行で処理が可能な符号化処理部の数j1を判定する。次に、制御部150は、ステップS404において、j1個のサブ符号化部130を形成する。これにより、第1〜第i1解像度変換部110−1〜110−i1、第1〜第i1領域分割部120−1〜120−i1、第1〜第j1サブ符号化部130−1〜130−j1を備える映像符号化装置100が形成される。
次に、図12(b)の第2例について説明する。第2例では、入力元の映像ソースが分割されている場合を前提とする。4Kや8Kなど、高解像度映像を入力する場合、映像信号が分割されていることがある。実際に4Kカメラの出力としてHD-SDIを4本使って映像ソース4本として出力するものが存在する。制御部150は、ステップS501において、解像度変換部110および領域分割部120の並列数i2について、入力映像ソース数rと所定の自然数aを利用して(r×a)の演算により求める。そして、ステップS502において、i2個の解像度変換部110とi2個の領域分割部120を形成する。このように、入力ソース数rの整数倍による数の解像度変換部110を並列に設けることで、この並列に応じた数のフレームの解像度変換処理を同時に実行させることが可能になり、単位フレーム数あたりの解像度変換処理に要する時間が短縮される。
次に、制御部150は、ステップS503において、予め定められている解像度パターンごとの解像度の値に基づいて1フレーム画像における分割領域数を判定する。このことき解像度nにおける分割領域数をfnとする。次に、制御部150は、ステップS504において、サブ符号化部130の並列数j2について、上記分割領域数fnと、解像度nの符号化量パターンの数gnとを利用してΣ(fn×gn)の演算により求めるようにする。そして、制御部150は、ステップS505において、j2個のサブ符号化部130を形成する。これにより、映像符号化装置100は、第1〜第i2解像度変換部110−1〜110−i2、第1〜第i2領域分割部120−1〜120−i2、第1〜第j2サブ符号化部130−1〜130−j2を備える構成を有することになる。
次に、図13のフローチャートを参照して、並列数設定の第3例について説明する。この第3例では、解像度変換部110、領域分割部120および符号化部132の並列数をリソース(資源)の数として扱う。ここでのリソースとは、解像度変換部110、領域分割部120および符号化部132に対して割り当て可能な演算器に相当する。以降の説明から理解されるように、第3例の並列数設定によっては、入力映像を圧縮符号化して出力するまでの処理時間が最短となるように動的にリソースの割り当てを行う。なお、制御部150および多重化部140には固定数によるリソースが予め割り当てられる。
制御部150は、ステップS601において、初期設定として、解像度変換、領域分割および符号化の各処理に割り当てるべきリソース数を示す変数iについて「1」を代入する。そのうえで、制御部150は、ステップS602において、事前評価のために、所定単位の映像を入力して、現在のリソース数(i=1)に対応する各1つの解像度変換部110−1、領域分割部120−1および符号化部132−1により圧縮符号化処理を実行させる。この際に入力する映像の単位は、例えばGOP(Group Of Picture)単位であるとすれば、1GOPから数GOP程度でよい。
次に、制御部150は、ステップS603において、上記ステップS602による処理の結果から、解像度変換処理、領域分割処理および符号化処理ごとに、1フレームの処理に1つのリソースが要する処理時間を算出する。ここで算出された1フレームあたりの解像度変換処理の処理時間をx1として表し、1フレームあたりの領域分割処理の処理時間をx2として表す。また、1フレームにおける1分割領域の符号化処理の処理時間をx3として表す。
また1フレームあたりの符号化処理の速度は、s3として表す。
符号化に割り当てたリソース数(符号化処理部132の数に相当)が「1」である場合の1フレームあたりの符号化処理に要する処理時間は、1フレームにおける分割領域数をfとして、(x3×f)により表すことができる。そして、例えば符号化に割り当てるリソース数「i」を割り当てたとした場合、1フレームあたりの符号化処理の処理時間は(x3×(f/i))として表すことができる。
このことは、符号化処理に関して、1フレームあたりの処理時間が最短となる(処理速度が最も高くなる)のは、リソース数iに分割領域数fを設定した場合であることを意味している。この場合、1フレームにおけるf個の分割領域を、f個の符号化部132により同時並行して符号化ができるからである。ただし、分割領域数fより大きなリソース数を与えた場合には、処理時間はこれ以上高速になることはないが、複数フレームを同時に処理可能になるために、スループット(単位時間あたりに処理可能なデータ量)を向上させることができる。符号化処理において、フレーム数yを同時に符号化する場合のスループットは、例えば(s3・y)で表される値に相当する。この際、符号化処理のリソース数iは、(f×y)である。
制御部150は、ステップS604において、解像度変換処理、領域分割処理および符号化処理のうち、現在割り当てられているリソース数に応じて求められる処理時間が最長またはスループットの値が最小の処理を、リソース割当対象として選択する。つまり、処理能力が最低のものを選択する。なお、ステップS603に続いて実行される最初のステップS604においては、例えば変数iが「1」であることに応じて、ステップS602において求められた1フレームあたりの解像度変換処理の処理時間x1と、1フレームあたりの領域分割処理の処理時間s2と、1フレームあたりの符号化処理の処理時間(x3×f)とを比較する。そして、その値が最大の処理を選択すればよい。
次に、制御部150は、ステップS605において、上記ステップS604によりリソース割当対象として選択された処理に割り当てるべきリソース数iを所定の処理手順にしたがった設定数により増加させる。なお、このステップS605の処理手順については後述する。そして、制御部150は、上記ステップS605によりリソース数iが増加された場合のリソース割当対象処理の処理時間またはスループットを算出し、ステップS605において、この算出された処理時間またはスループット(処理能力)が、他の2つの処理よりも低い(最低)か否かについて判定する。処理時間については、他の2つよりも多ければ処理能力は最低であることになり、スループットについては、他の2つよりも小さければ処理能力は最低であることになる。
ステップS607において処理能力が最低であると判定した場合、制御部150は、ステップS605の処理に戻り、さらにリソース数iを増加させる。そして、ステップS607において処理能力が最低ではないと判定すると、制御部150は、ステップS608に進む。
ステップS608において、制御部150は、解像度変換処理、領域分割処理および符号化処理に対して割り当て可能なリソースが残っているか否かについて判定する。ここで、割り当て可能なリソースが残っていると判定した場合には、ステップS604に戻る。これにより、リソース割当対象は、これまでのリソース数の割り当てによって処理能力が最低ではなくなった処理に代えて、現在において最も処理能力が低い処理が選択されることになる。このようにステップS604〜S608の処理が繰り返されることで、順次、解像度変換処理、領域分割処理および符号化処理の各処理に対して与えるリソース数が逐次増加されるように設定されていく。そして、ステップS608において割り当て可能なリソース数が残っていないと判定した段階で、リソース数の設定を完了する。
図14は、上記図13のステップS605としてのリソース割当対象の処理に対するリソース数増加のための処理手順例を示している。先ず、制御部150は、ステップS701において、現在選択されているリソース割当対象の処理は、符号化処理であるか否かについて判定する。ここで、符号化処理ではないと判定した場合、リソース割当対象の処理は、解像度変換処理と領域分割処理のいずれかであることになる。そこで、制御部150は、ステップS702により、現在リソース割当対象となっている解像度変換処理または領域分割処理について、リソース数iをインクリメントする。つまり、割り当てるべきリソースを1つ増加する。なお、例えばインクリメントするのに代えて、2以上の一定数を加算していくようにすることも考えられる。
一方、ステップS701において符号化処理がリソース割当対象であると判定した場合、制御部150は、ステップS703に進む。ステップS704において、制御部150は、符号化処理に対して現在割り当てられているリソース数iが、分割領域数fより大きいか否かについて判定する。ここで、リソース数iが分割領域数f以下であると判定した場合、制御部150は、ステップS702により、リソース数iをインクリメントする。この段階では、同時並行で処理が可能な符号化部132の数が分割領域数f以下であるので、リソース数iが増加されるのに応じて、符号化処理の処理速度が高くなっていく。
これに対して、リソース数iが分割領域数fを越えていると判定した場合、制御部150は、ステップS704により、割り当て可能なリソース数の残りが、分割領域fに所定の自然数αを乗算した(f×α)以上であるか否かについて判定する。ここで、割り当て可能なリソース数の残りが(f×α)以上であると判定した場合、制御部150は、ステップS705において、リソース数iに(f×α)を加算する。つまり、符号化部132の並列数が分割領域f以上となった段階では、これ以上、処理速度は高くすることはできないが、同時並行処理可能なフレーム数を増加させることでスループットが向上する。そこで、ステップS705において、分割領域fの整数倍によりリソース数iを増加させるものである。
一方、ステップS704において、割り当て可能なリソース数の残りが(f×α)未満であると判定された場合、制御部150は、ステップS706に進む。ステップS706において、制御部150は、リソース数iに現在の残っているすべてのリソース数βを加算する。このように処理が行われることで、解像度変換処理、領域分割処理および符号化処理の間で、最も効率の高い圧縮符号化処理が行われるように、リソースの分配が行われる。また、特に符号化処理に関しては、まず処理速度を高く(処理時間を短く)していき、リソース数が分割領域数と同じになった段階で、スループットを高くしていくようにリソース数を増加させていくことができる。
<解像度変換部と領域分割部の対応関係についての変形例>
これまでの実施の形態の構成では、解像度変換部110と領域分割部120は同じ並列数とされたうえで1対1の関係により対応させていた。しかし、1つの解像度変換部110に対して2以上の領域分割部120を対応させた構成とすることもできる。図15は、このような構成の例として、第1解像度変換部110−1に対して、第1A領域分割部120A−1および第1B領域分割部120B−1の2つが対応する構成が示されている。
ここでは具体例として、第1解像度変換部110−1は、解像度変換処理として、4パターンの解像度に応じた第1〜第4解像度フレームのデータを生成するものとする。そして、第1解像度変換部110−1は、例えば第1〜第4解像度フレームのうち、第1解像度フレームと第2解像度フレームのデータをバッファ121A−1に転送して保持させる。また、第3解像度フレームと第4解像度フレームのデータをバッファ121B−1に転送して保持させる。
第1A領域分割部120A−1は、バッファ121A−1から第1解像度フレームと第2解像度フレームのデータを入力して領域分割処理を実行する。また、第1B領域分割部120B−1は、バッファ121B−1から第3解像度フレームと第4解像度フレームのデータを入力して領域分割処理を実行する。このように、1つの解像度変換部110に複数の領域分割部120を割り当てた構造とすることで、1つの領域分割部120が入力する解像度フレームの数を分散させることができる。これにより、例えば1つの領域分割部120の処理負荷を軽減させて処理速度の低下を防ぐことができる。
なお、図3などに示した処理タイミングでは、複数の解像度変換部110による解像度変換処理と複数の領域分割部120による領域分割処理は、それぞれ、入力映像のフレーム周期に応じたタイミングで順次実行されている。しかし、複数の解像度変換部110は同時並行で解像度変換処理が可能であり、同じく複数の領域分割部120も同時並行で領域分割処理が可能である。したがって、例えば解像度変換処理の処理時間が1フレーム周期よりも長くなる場合には、解像度変換部110の間で処理期間が重複するように解像度変換処理を実行していくことができる。領域分割部120も同様に、処理時間が1フレーム周期よりも長くなる場合には、領域分割部120の間で処理期間が重複するように解像度変換処理を実行していくことができる。このように、解像度変換処理または領域分割処理の処理時間が1フレーム周期よりも長くなる条件では、解像度変換部110と領域分割部120とで並行処理が行われることで、処理時間の短縮が図られる。
なお、これまでの実施の形態においては、フレーム単位で処理を行うようにしているが、これに限定されるものではなく、例えばGOP(Group Of Picture)単位で処理を行うようにする場合にも本実施の形態の構成を適用することができる。
また、本実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えることができる。また、これら一連の手順をコンピュータに実行させるためのプログラムまたはそのプログラムを記憶する記録媒体として捉えることができる。この記録媒体としては、例えば、ブルーレイディスク(Blu−ray Disc(登録商標))、DVD(Digital Versatile Disk)、HDD(ハードディスク)、メモリカード等を挙げることができる。
なお、上述の装置は、内部にコンピュータシステムを有している。そして、動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、各処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。