(本発明の基礎となった知見)
本発明者は、以下の問題が生じることを見出した。
まず、本発明の実施の形態に係る画像符号化装置及び画像復号装置の基本的な構成を説明する。
図1は、典型的なH.264/MPEG−4 AVC及びHEVCに対応する画像符号化装置100の一例を示すブロック図である。図1に示す画像符号化装置100は、入力画像信号120を符号化することで符号化画像信号140を生成する。この画像符号化装置100は、減算器101と、変換部102と、量子化部103と、逆変換部104と、加算器105と、デブロッキングフィルタ106と、適応ループフィルタ107と、参照フレームバッファ108と、予測部109とを備える。なお、画像符号化装置100における符号化処理はブロック単位で行われる。
減算器101は、符号化対象ブロックの入力画像信号120と予測画像信号129との差分である残差信号121(予測誤差信号)を算出する。この残差信号121は、符号化対象ブロックの予測処理に用いられる。また、予測画像信号129は、後述する予測部109により生成される。ここで、予測処理に用いられる予測タイプは、フレーム毎又はブロック毎に異なる可能性がある。時間予測を用いて予測されたブロック及びフレームはインター符号化されたと称され、空間予測を用いて予測されたブロック及び/フレームは、イントラ符号化されたと称される。時間予測を用いた予測画像信号129は、参照フレームバッファ108に格納されている画像信号128から導出される。この画像信号128は、先行して符号化された画像信号に対応する。また、空間予測を用いた予測画像信号は、先行して符号化及び復号された後、参照フレームバッファ108に格納された近隣ブロックの画素値から導出される。
変換部102は、残差信号121を変換することで変換係数122を生成する。量子化部103は、変換係数122を量子化することで量子化係数123を生成する。エントロピー符号化部110は、格納又は送信されるデータ量をさらに削減するために、量子化係数123に可逆方式のエントロピー符号化を行うことで符号化画像信号140を生成する。エントロピー符号化は、主に、可変長の符号語を有する符号を適用することによって達成される。この符号語の長さは、発生確率に基づいて選択される。
また、復号画像信号125(再構成画像信号)を得るため、画像符号化装置100には復号部が組み込まれている。
逆変換部104は、量子化係数123に逆量子化及び逆変換を行うことで残差信号124を復元する。この残差信号124は、量子化ノイズと呼ばれる量子化誤差により、元の残差信号121とは完全には一致しない。加算器105は、残差信号124と予測画像信号129とを加算することで、復号画像信号125を生成する。このように、画像符号化装置100は、画像復号装置と同じ方式を用いて、符号化された後の信号を復号するとともに、復号により得られた信号に基づいて、予測画像信号129を算出する。これにより、画像符号化装置側と画像復号装置側との互換性を維持できる。
ここで、量子化の結果、復号画像信号125には量子化ノイズが重畳される。また、ブロック単位で符号化されるため、重畳ノイズには多くの場合ブロッキング特性を有する。その結果、特に強い量子化において復号画像に可視ブロック境界ができる。そのようなブロッキングアーチファクトは、人間の視覚にネガティブな影響を与える。これらのアーチファクトを削減する目的で、デブロッキングフィルタ106は、復号画像に含まれる全てのブロックにデブロッキングフィルタ処理を行う。デブロッキングフィルタ処理は、一般的にブロックの端部を滑らかにすることで、復号画像の主観的品質を改善する。さらに、画像のフィルタリングされた部分が、後の画像の動き補償予測に用いられる。つまり、このフィルタリングにより予測誤差が削減されることで符号化効率が改善される。
適応ループフィルタ107は、デブロッキングフィルタ処理された後の画像信号126に適応ループフィルタ(ALF)処理を行なう。この適応ループフィルタ処理は画素単位の忠実性(“客観的”品質)の改善を目的とする。特に、適応ループフィルタ処理は、圧縮によって起こる画像歪みの補償に用いられる。この適応ループフィルタ処理は、フレーム全体にも局部領域(ブロック)にも適用できる。また、どの領域をフィルタリングするかを示す追加的な情報が、ブロック毎、フレーム毎、又は四分木単位で送信される。
参照フレームバッファ108は、インター符号化されたブロックを復号するために、先行して符号化され、続いて復号された画像部分(画像信号127)を格納する。
予測部109は、動き補償予測処理を用いたインター予測により予測画像信号129を生成する。具体的には、まず、動き予測器が、先行して符号化され復号されたフレームの中から、符号化対象ブロックに最適なブロックを見つける。この最適ブロックは予測画像信号129として用いられる。また、符号化対象ブロックとその最適ブロックとの間の相対的なずれ(動き)が、復号画像データと共に送信される。具体的には、このずれ(動き)は、3つの成分の動きベクトルを含む動きデータとして送信される。ここで3つの成分は、2つの空間成分と、1つの時間成分とで構成される。
なお、予測精度を最適化する目的で、動きベクトルを空間小数画素解像度、例えば1/2画素又は1/4画素の解像度で求めてもよい。空間小数画素解像度の動きベクトルは、復号済フレーム内で実際の画素値がない空間位置、つまり小数画素位置を示す。よって、動き補償予測を行うために、そのような画素値を空間的に補完する必要がある。この補完は、例えば、予測部109に含まれる補完フィルタによって行われる。
イントラ及びインター符号化モードの両方において、変換部102は、対象ブロックの入力画像信号120と予測画像信号129との差分である残差信号121を変換することで変換係数122を生成する。量子化部103は、変換係数122を量子化することで量子化係数123を生成する。変換部102では、二次元離散コサイン変換(DCT)のような直交変換又はその整数バージョンが用いられる。これらの変換は、自然映像の相関を効率的に削減できる。ここで、低周波成分は高周波成分よりも画質にとって重要である。よって、高周波成分の符号化よりも低周波成分の符号化に多くのビットが使われる。
エントロピー符号化部110は、量子化係数123の二次元マトリクスを一次元配列に変換する。典型的に、この変換はいわゆるジグザグスキャンによって行われる。ジグザグスキャンは、二次元配列の左上角にあるDC係数から始まり、二次元配列を所定の順序で走査し、右下角のDC係数で終わる。エネルギーは、低い周波数に対応する、係数の二次元マトリクスの左上部分に集中しているため、ジグザグスキャンの結果は、通常最後の値がゼロである配列となる。これにより、エントロピー符号化の一部又はその前処理としてランレングス符号を用いることで、効率的な符号化が可能になる。
次に、本実施の形態に係る画像復号装置の構成を説明する。
図2は、H.264/MPEG−4 AVC又はHEVC映像符号化標準規格に基づく画像復号装置200を示すブロック図である。図2に示す画像復号装置200は、符号化画像信号240を復号することで画像信号227を生成する。この画像復号装置200は、エントロピー復号部210と、逆変換部204と、加算器205と、デブロッキングフィルタ206と、適応ループフィルタ207と、参照フレームバッファ208と、予測部209とを備える。
符号化画像信号240は、エントロピー復号部210に入力される。エントロピー復号部210は、符号化画像信号240を復号することで、量子化係数223と、動きデータ及び予測モード等といった復号に必要な情報を生成する。量子化係数223は、二次元マトリクスを得る目的で逆走査され、その後、逆変換部204に送られる。
逆変換部204は、量子化係数223を逆変換及び逆量子化することで残差信号224を生成する。残差信号224は、量子化ノイズも誤差もないと仮定した場合の画像符号化装置へ入力された画像信号から予測画像信号を減算して得られた差分に対応する。
予測画像信号229は、時間又は空間予測処理により得られる。また、復号された情報は、通常さらに、イントラ予測の場合の予測タイプ、及び動き補償予測の場合の動きデータのような、予測に必要な情報を含む。
加算器205は、空間領域の残差信号224と、予測画像信号229とを加算することで復号画像信号225を算出する。デブロッキングフィルタ206は、復号画像信号225にデブロッキングフィルタ処理を行うことで画像信号226を生成する。適応ループフィルタ207は、画像信号226に適応ループフィルタ処理を行うことで画像信号227を生成する。参照フレームバッファ208は、画像信号227を画像信号228として格納する。
ここで、標準化されたハイブリッド映像符号化、例えばH.264/MPEG−4 AVC又はHEVCは、複数の色成分(YUV、YCbCr、RGB、RGBA等)を有する画像信号の符号化に用いられる。予測を目的として、符号化対象画像はブロックに分割される。また、異なるサイズのブロックを用いることができる。そして、利用されるブロックサイズを示す情報が符号化され、送信される。また、標準化された画像符号化装置は、通常、最小ブロックサイズ、例えば4×4サンプルの長方形ブロックを利用する。
H.264/MPEG−4 AVC及びHEVC標準規格は、ビデオ符号化層(VCL)及びネットワーク抽象化層(NAL)の、2つの機能層を有する。ビデオ符号化層は、上述したような符号化の機能性を提供する。
ネットワーク抽象化層は、データのチャネルを越える送信及び記憶装置への格納といった用途に合わせて、シンタックス要素を、NALユニットと呼ばれる標準単位にカプセル化する。シンタックス要素は、例えば、符号化予測誤差信号、予測タイプ、量子化パラメータ、及び動きベクトル等といった画像信号の復号に必要な情報である。このような標準規格では、圧縮された画像データと関連情報とを含むVCL NALユニットが用いられる。また、当該標準規格では、映像シーケンス全体又はその一部分に関連するパラメータセットである追加データがカプセル化されたnon−VCLユニットが用いられる。また、当該標準規格では、復号精度の改善のために用いられる追加情報を提供する補足的な付加情報(SEI)も用いられる。他のnon−VCL NALユニットとして、例えば、ピクチャパラメータセット(PPS)及びシーケンスパラメータセット(SPS)があり、これらは非特許文献1、非特許文献2のセクション7.3.2.1及び7.3.2.2、並びに非特許文献3のセクション7.3.2.1及び7.3.2.2に記載されている。
ピクチャパラメータセットは、ピクチャに関連する情報を含む。シーケンスパラメータセットは、映像シーケンスに関連する情報を含む。例えば、シーケンスパラメータセットは映像シーケンスに含まれるピクチャのサイズに関する情報を含む。H.264/MPEG4 AVCにおいて、ピクチャの垂直及び水平サイズは、マクロブロック(16×16画素のブロック)数の単位で送信される。したがって、ピクチャの内部サイズは、マクロブロックサイズの倍数である必要ある。
また、原画像が16×16の倍数ではない解像度を有する場合、画像符号化装置は、16×16の倍数である画像サイズを得るためにバッファの一部にパディングを行う。そして、ピクチャのどの部分が関連するか、つまり、どの部分が画像符号化装置に入力された原画像の信号に対応するかを信号で伝えるために、クロッピングデータがシーケンスパラメータセットに埋め込まれる。H.264/MPEG4 AVCと比較して、HEVCは、輝度サンプル数を示す信号を用いてピクチャサイズを伝えるため、想定されるどのようなサイズの原画像でも信号を伝えることができる。しかしながら、符号化処理には依然として、様々なサイズのブロック(単位)が用いられる。したがって、画像符号化装置及び画像復号装置におけるピクチャの内部サイズは、符号化ブロックサイズの整数倍でなければならない。
一方で、ビットストリームにエラーが含まれていることを適切に検出したいという要望がある。例えば、ビットストリームにエラーが含まれることで、ビットストリームに含まれる情報で示されるピクチャの内部サイズが、符号化ブロックサイズの整数倍でない場合が発生する可能性がある。このような場合には、画像復号装置で復号処理を正しく行えない可能性があるという問題を本発明者は見出した。また、最悪の場合には復号処理が停止してしまう可能性がある。
そこで、本実施の形態は、ビットストリームのエラーを適切に検出できる画像復号方法及び画像復号装置を提供する。
上記問題を解決するために、本発明の一形態に係る画像復号方法は、ビットストリームを復号する画像復号方法であって、前記ビットストリームから画像サイズを抽出する画像サイズ抽出ステップと、前記ビットストリームから最小符号化単位のサイズを抽出する最小符号化単位サイズ抽出ステップと、前記画像サイズが前記最小符号化単位のサイズの整数倍であるか否かを判定する判定ステップと、前記画像サイズが前記最小符号化単位のサイズの整数倍である場合、前記画像サイズを用いて前記ビットストリームに含まれる符号化画像信号を復号することで第1復号画像を生成する第1復号ステップとを含む。
これによれば、本発明の一形態に係る画像復号方法は、ビットストリームのエラーを適切に検出できる。
また、前記画像復号方法は、さらに、前記画像サイズが前記最小符号化単位のサイズの整数倍でない場合、前記ビットストリームにエラーが含まれていると判定するエラー処理ステップを含んでもよい。
また、前記エラー処理ステップは、正しい画像サイズが前記最小符号化単位のサイズの整数倍であると仮定して、仮定した画像サイズを用いて前記ビットストリームに含まれる符号化画像信号を復号することで第2復号画像を生成する第2復号ステップを含んでもよい。
これによれば、本発明の一形態に係る画像復号方法は、ビットストリームに含まれる情報を用いて、パディングされた画像から原画像のサイズの画像を生成できる。
また、前記エラー処理ステップは、前記抽出された画像サイズと前記仮定した画像サイズとの差分に基づき、パディング行数又はパディング列数を算出するパディング数算出ステップと、前記第2復号画像から、前記パディング行数又はパディング列数の画像を切り落とすクロッピングステップとを含んでもよい。
これによれば、本発明の一形態に係る画像復号方法は、ビットストリームにエラーが発生した場合でも、復号画像を生成できる。
また、前記画像復号方法は、さらに、前記画像の上下左右側の1つを示すパディング方向情報を前記ビットストリームから抽出するパディング方向情報抽出ステップを含み、前記クロッピングステップでは、前記第2復号画像から、前記パディング行数又はパディング列数の画像を前記パディング方向情報で示される前記画像の上下左右側のいずれかから切り落としてもよい。
これによれば、本発明の一形態に係る画像復号方法は、ビットストリームに含まれる情報を用いて、パディングされた画像から原画像のサイズの画像を生成できる。
また、前記パディング方向情報抽出ステップでは、前記ビットストリームに含まれる、ピクチャ固有のパラメータセット又はシーケンス固有のパラメータセットから前記パディング方向情報を抽出してもよい。
また、本発明の一形態に係る画像符号化方法は、画像信号を符号化する画像符号化方法であって、画像サイズとして、最小符号化単位のサイズの整数倍である画像数を算出する画像サイズ算出ステップと、前記最小符号化単位のサイズと、前記画像数とを含むビットストリームを生成するビットストリーム生成ステップとを含んでもよい。
これによれば、本発明の一形態に係る画像符号化方法は、画像復号装置において、エラーを適切に検出することができるビットストリームを生成できる。
また、本発明の一形態に係る画像復号装置は、ビットストリームを復号する画像復号装置であって、前記ビットストリームから画像サイズと、最小符号化単位のサイズとを抽出する解析部と、前記画像サイズが前記最小符号化単位のサイズの整数倍であるか否かを判定する判定部と、前記画像サイズが前記最小符号化単位のサイズの整数倍である場合、前記画像サイズを用いて前記ビットストリームに含まれる符号化画像信号を復号することで第1復号画像を生成する画像復号部とを備えてもよい。
これによれば、本発明の一形態に係る画像復号装置は、ビットストリームのエラーを適切に検出できる。
また、本発明の一形態に係る画像符号化装置は、画像信号を符号化する画像符号化装置であって、画像サイズとして、最小符号化単位のサイズの整数倍である画素数を算出する画像サイズ算出部と、前記最小符号化単位のサイズと、前記画像数とを含むビットストリームを生成するビットストリーム生成部とを備えてもよい。
これによれば、本発明の一形態に係る画像符号化装置は、画像復号装置において、エラーを適切に検出することができるビットストリームを生成できる。
また、本発明の一形態に係る画像符号化復号装置は、前記画像符号化装置と、前記画像復号装置とを備えてもよい。
なお、これらの全般的または具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたは記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラムまたは記録媒体の任意な組み合わせで実現されてもよい。
以下、本発明の一態様に係る画像復号化装置および画像符号化装置について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
(実施の形態1)
以下、本発明の実施の形態1に係る画像符号化装置及び画像復号装置について説明する。
符号化対象の映像シーケンスの画像サイズは、画像符号化装置で設定される。その画像サイズは、通常その後、符号化された画像データを含むビットストリームに埋め込まれる。当該ビットストリームは、画像符号化装置と画像復号装置とにおいて同じ方法で解析できるように、情報を埋め込むための予め定義されたフォーマットを有する。画像復号装置は、適宜、ビットストリームから、符号化された画像を復号する。例えば、H.264/MPEG−4 AVCにおいて、画像サイズはシーケンスパラメータセット(SPS)を含むnon−VCL NALユニットに含まれる。シーケンスパラメータセットは通常、ビットストリームの最初に配置される。符号化映像シーケンスに、複数のシーケンスパラメータセットが含まれることがあるが、符号化映像シーケンス全体に有効なシーケンスパラメータセットは、通常1つだけである。H.264/MPEG−4 AVCにおいて、符号化映像シーケンスはIDRピクチャで始まると定義されている(非特許文献2のセクション7.4.1.2.1参照)。
画像(静止画像又は映像シーケンスに含まれるフレーム)のサイズは、通常、画像の垂直サイズ及び水平サイズで定義される。画像の垂直サイズ及び水平サイズは、異なる単位で示されてもよい。例えば、H.264/MPEG−4 AVCには、マクロブロック数を単位とするピクチャサイズ、つまり16×16サイズを単位とするピクチャサイズが示されている。符号化前に、ピクチャは通常、所定サイズのブロックに分割されるので、ピクチャの内部サイズ(装置の内部で符号化に用いられる画像サイズ)は符号化ブロックのサイズの倍数となる。原画像(画像符号化装置に入力された元の画像)が、予め定義された符号化単位(マクロブロック等)の整数倍ではないサイズのとき、画像符号化装置内のピクチャの内部サイズは、原画像のサイズと異なる。この場合、画像復号装置は、画像のサイズを、内部サイズから画像符号化装置側で符号化された原画像に対応するサイズにレンダリングする。よって、画像復号装置においても、内部サイズは、出力(表示)される復号ピクチャのサイズと異なっていてもよい。
原画像サイズをフレキシブルに保ち、画像符号化装置と画像復号装置とでの互換性を保つために、ビットストリーム内にクロッピングデータが含まれる。このクロッピングデータは、ピクチャのどの部分が関連性を有するか、つまり、ピクチャのどの部分が原画像に対応するかを示す。このクロッピングデータは、例えば、ピクチャの下側或いは上側にパディングされる(追加される)行数、又はピクチャの右側或いは左側に追加される列数を示す。ここで行及び列とは、それぞれ二次元配列された画素の行及び列を指す。
HEVC規格は、符号化単位をマクロブロックに限定しない。ピクチャは最大符号化単位(LCU)に分割され、さらに、再帰的により小さな符号化単位(CU)に分割される。HEVCの符号化単位は、2の整数乗(128、64、32、16、又は8等)に対応するサイズである。符号化シーケンスで使用可能な最小符号化単位のサイズが、シーケンスパラメータセットに含まれ、送信される。また、ピクチャの内部サイズは、常に最小符号化単位(SCU)サイズの倍数に制約される。
加えて、HEVCでは、画像サイズをブロック数単位で信号伝達しない。ピクチャサイズは、輝度サンプル数単位で信号伝達される。これは、色差成分が、例えばYUVフォーマット4:2:2又は4:2:0の場合に、さらに細分化されてもよいためである。また、許可されない画像サイズもある。さらに、ピクチャの下及び右の境界にパディングする画素数が示される。
本実施の形態は、画像の内部サイズ及び原画像サイズの両方を求めるのに必要な情報をビットストリーム内に示す、より効率的な方法を提供する。これは、画像の内部サイズ及び原画像サイズを求めることに対応する。
さらに、本実施の形態は、輝度サンプル数及びパディング画素数を単位としてピクチャサイズをビットストリーム内に示すのは冗長であるとの見解に基づく。具体的には、ピクチャサイズ(原画像サイズ)は輝度サンプル(画素)数を単位として信号伝達される。この原画像サイズは、必ずしも最小符号化単位サイズの倍数ではない。また、この原画像サイズの情報もビットストリームのシンタックスに含まれ、送信される。
画像復号装置は、最小CU(符号化単位)サイズを読み込んだ後、信号伝達された最小CUサイズの倍数である内部サイズを得るために必要なパディング画素数を、画像符号化装置と同じ方法で自動的に計算する。よって、ピクチャの内部サイズを明確に求める目的で、パディング情報をビットストリームに追加的に埋め込む必要はない。具体的には、画像符号化装置及び画像復号装置は、パディングされる画素の列又は行数が、最小CUサイズよりも多くないと仮定する。つまり、画像符号化装置及び画像復号装置は、最小CUサイズの倍数である内部サイズを得るのに必要な最小限の画素数だけがパディングされると判断する。
図3は、例示の原画像500に画素をパディングする必要があることを示している。また、図3は、原画像500と、最小符号化単位510と、最大符号化単位520との相対的サイズを例示している。原画像500は、最小符号化単位510、又は最小符号化単位510より大きいが最大符号化単位520より小さい符号化単位530等の様々なサイズの符号化単位に細分化される。この符号化単位は、最小符号化単位510と最大符号化単位520とを含む、両者間の範囲であればいかなるサイズでもよい。
1つの符号化シーケンスのピクチャに使用される最小符号化単位510及び最大符号化単位520を示す情報は、シーケンスパラメータセット(SPS)に含まれる。HEVCの場合、許される符号化単位サイズは8から128の間の2の整数倍だけである。つまり、シーケンスパラメータセット内の信号で伝えられる最小CUサイズ及び最大CUサイズは、その範囲に属さなければならない。
しかしながら、異なるサイズ又は形の符号化単位を用いることが、本実施の形態を適用してもよい他のコーデックにおいて可能である。なお、HEVCにおいて、いかなるサイズの符号化単位も、正方形でなければならない。また、ピクチャ境界において、符号化単位を自動的により小さな符号化単位に分割してもよい。また、符号化単位は、そのサイズが最小CUサイズよりも大きい場合にのみ分割してもよい。図3から分かるように、原画像500にパディングを行わなければ、符号化単位に分割後、右端の画素の列(画像領域502)が符号化単位内に含まれずに残る。この画像領域502の水平サイズは、最小CUサイズの水平サイズより小さい。よってこの画像領域502を符号化できない。
HEVCにおけるシーケンスパラメータセットの最新シンタックス(非特許文献3のセクション7.3.2.1及び7.3.2.2を参照)は、ピクチャサイズとして輝度サンプル数で規定したピクチャ幅とピクチャ高とを含む。さらに、当該シンタックスでは、最小CUサイズを、2を底とする最小CUサイズの対数から3を引いた値として表す。例えば、最小CUサイズが8×8の場合、最小CUサイズを示す情報として「0」が伝達され、最小CUサイズが16×16の場合、最小CUサイズを示す情報として「1」が伝達され、最小CUサイズが32×32の場合、最小CUサイズを示す情報として「2」が伝達される。
最新の設計において、画像符号化装置及び画像復号装置におけるピクチャの内部サイズは、最小符号化単位サイズの倍数でなければならない。最新のテストソフトウェア(HEVC test Model (HM) version3.0、http://hevc.kw.bbc.co.uk/svn/jctvc−hmから利用可能)では、画像の右及び下部の境界におけるパディング領域を画素数単位で示すパディング情報を伝送する。
本実施の形態では、原画像サイズと最小CUサイズとがビットストリーム内に示され、これらの情報に基づいて、画像復号装置は、パディング行又は列数を、画像符号化装置と同じ方法で求める。よって、パディング行又は列数等のいかなる追加情報も画像符号化装置から画像復号装置へ送る必要ない。このように、本実施の形態は、画像符号化装置と画像復号装置との両方で画像の内部サイズと原画像サイズとを求めるための効率的な手法を提供できる。
図4は、図3と同様に、様々なサイズの符号化単位に細分化された原画像500を示す。図4から分かるように、ピクチャの右側境界に、原画像500の一部であり、右側境界に位置する画像領域502が存在する。この画像領域502の幅は、最小符号化単位の幅よりも小さい。この原画像500に対して、画像符号化装置は、パディング領域540A(パディング画素列)をパディングする。画像符号化装置は、このパディング領域540Aの画素列の数を、画像領域502の列数とパディング領域540Aの列数との和が最小符号化単位の水平サイズに等しくなるように計算する。具体的には、画像符号化装置は、原画像の水平サイズと最小符号化単位サイズの水平サイズとの整数除算後の残りを、最小符号化単位サイズの水平サイズから減算することによってパディング領域540Aの画素列の数を算出する。つまり、パディング領域540Aの列数Nは、以下の(式1)で示される。
ここで、sは最小符号化単位の水平サイズであり、wは原画像の幅であり、%はモジュロ演算である。
このように、本実施の形態では、ビットストリーム内に、垂直又は水平方向のパディング画素数といったいかなる追加的シンタックス要素も必要としない。よって、現在のシンタックスの冗長性が削減される。また、一貫性のない構成が回避できるので、シンタックスに間違いが起こりにくくなる。例えば、最小符号化単位の整数倍にならないパディング画素数が設定されることを回避できる。
以下、本実施の形態に係る画像符号化装置300の構成を説明する。
図5は、本実施の形態に係る画像符号化装置300のブロック図である。図5に示す画像符号化装置300は、原画像323を符号化することでビットストリーム329を生成する。この画像符号化装置300は、パディング領域算出部301と、パディング部302と、画像符号化部303と、ビットストリーム生成部304とを備える。
ここで、符号化する原画像323は任意のサイズでよい。原画像323は、パディング部302に入力される。
パディング領域算出部301は、原画像323の画像サイズである原画像サイズ320を取得する。例えば、パディング領域算出部301は、原画像323のヘッダファイル、又は画像符号化装置300へのユーザ入力に基づき、原画像サイズ320を判定してもよいし、その他の方法により原画像サイズ320を判定してもよい。さらに、パディング領域算出部301は、最小CUサイズ321を取得する。例えば、この最小CUサイズ321は、ユーザが設定してもよく、任意の符号化部用に予め定められていてもよい。または、パディング領域算出部301は、画像符号化部303のプロファイル、又はその他の符号化設定に基づき最小CUサイズ321を決定してもよい。
また、パディング領域算出部301は、パディング後のパディング画像のサイズ(内部サイズ)が最小CUサイズ321の整数倍になるように、原画像323に付加されるパディング領域の行及び列数の少なくとも一方を示すパディング画素数324を算出する。そして、パディング領域算出部301は、算出したパディング画素数324をパディング部302へ送る。
パディング部302は、パディング画素数324で示される列又は行数の画像を原画像323に付加する。そして、パディング部302は、得られたパディング画像327を画像符号化部303へ出力する。
ビットストリーム生成部304は、最小CUサイズ321と原画像サイズ320とを含むビットストリーム329を生成する。この処理は、画像符号化処理のはじめに行うことが望ましい。例えば、原画像サイズ320と最小CUサイズ321は、HEVCにおけるSPSなど、シーケンス固有のパラメータセットに埋め込まれる。
画像符号化部303はパディング画像327を符号化することで符号化画像信号328を生成する。例えば、この画像符号化部303は、図1に示す画像符号化装置100である。なお、この画像符号化部303は、その他の画像符号化部又は映像符号化部でもよい。具体的には、画像符号化部303は、異なるサイズの符号化単位にパディング画像327を分割し、例えば、上述した方法で各符号化単位を符号化する。そして、画像符号化部303は、符号化画像信号328をビットストリーム生成部304に送る。ビットストリーム生成部304は、この符号化画像信号328を含むビットストリーム329を生成する。このビットストリーム329は、例えば、記録又は送信される。
次に、本実施の形態に係る画像符号化装置300による画像符号化方法の流れを説明する。図6は、本実施の形態に係る画像符号化装置300による画像符号化方法のフロー図である。
まず、パディング領域算出部301は、原画像サイズ320を取得する(S101)。この原画像サイズ320は、画像符号化装置300の実装にしたがって様々な方法で決定される。例えば、原画像サイズ320は、グラフィカルユーザインタフェース又は画像符号化装置の構成ファイルを用いて、ユーザによって手動で設定されてもよい。また、原画像サイズ320は、原画像のビットストリームから抽出されてもよい。例えば、画像又は映像シーケンスが、ピクチャサイズを示すヘッダを含む場合、この原画像サイズ320はこのヘッダから抽出されてもよい。なお、原画像サイズ320の決定又は取得方法は、これらに限定されず、他の決定又は取得方法であってもよい。
また、最小CUサイズ321は、コーデックに対して、又は、そのコーデックの特定のプロファイルに対して、固定的に定義されてもよい。また、最小CUサイズ321は、HEVCを参照して上述したようにビットストリーム329のシンタックス内に設定されてもよい。この設定は、例えばグラフィカルユーザインタフェース又は構成ファイルを用いてユーザによって実行されてもよい。また、この設定は、最適化の結果として画像符号化装置300によって自動的に設定されてもよい。つまり、本実施の形態は、最小CUサイズ321を設定する方法によって限定されない。また、最小符号化単位は、HEVCの場合のように正方形でもよい。なお、最小符号化単位は正方形以外でもよい。例えば、最小符号化単位は、16×8、8×4、又は8×16等の長方形でもよい。つまり、いかなる他のサイズ又は形状の最小符号化単位も、本実施の形態に適用可能である。
次に、パディング領域算出部301は、原画像サイズ320が最小CUサイズ321の整数倍であるか否かを判定する。具体的には、パディング領域算出部301は、原画像323の水平サイズが最小CUの水平サイズの整数倍であるか否か、及び、原画像323の垂直サイズが最小CUの垂直サイズの整数倍であるか否かを判定する。
原画像323の水平サイズが最小CUの水平サイズの整数倍ではない場合、又は、原画像323の垂直サイズが最小CUの垂直サイズの整数倍ではない場合、パディング領域算出部301は、パディング画素数324を算出する(S102)。このパディング画素数324は、画像の水平(上、下)又は垂直(左、右)側にパディングされる画素の行数又は列数を示す。好ましくは、「画素」という用語は、輝度サンプルの位置に対応し、また、色差がサブサンプルされた場合も同様である。
また、最小CUサイズの整数倍のサイズを得る目的で、パディング領域算出部301は、原画像の垂直又は水平方向にパディングされる画素数を算出する。具体的には、パディング領域算出部301は、例えば最小CUの垂直又は水平サイズで画像の垂直又は水平サイズを除算した後に残る画素の行数又は列数を求める。そして、パディング領域算出部301は、最小CUサイズと当該求められた残りの画素のサイズとの差分を、パディングする行数又は列数(パディング画素数324)として算出する。
次に、パディング部302は、パディング画素数324を用いてパディングを実行することでパディング画像327を生成する(S103)。具体的には、パディング部302は、原画像323の1つ以上の辺に、パディング画素数324で示される行数又は列数の画素を加える。
なお、パディング部302は、パディング画素数324で示される行数の画素を、上側及び下側のうち、予め定義された側に加えてもよい。同様に、パディング部302は、パディング画素数324で示される列数の画素を、右側及び左側のうち、予め定義された側に加えてもよい。これにより、どの側に画素をパディングするかを明示的に特定することなく、画像符号化装置と画像復号装置とが対応して機能できる。つまり、上下のどちら側に、又は、左右のどちら側にパディング領域を加えるかを示す情報を画像符号化装置から画像復号装置に送る必要がない。
さらに代替的に、パディング部302は、パディング行数の画素行を原画像323の上側及び下側に分割して加えてもよい。例えば、算出されたパディング行数が偶数の場合は、パディング部302は、原画像323の上側及び下側に同数の画素行を加えてもよい。また、算出されたパディング行数が奇数の時は、上側又は下側の何れにより多くの画素行を加えてもよい。同様に、パディング部302は、パディング列数の画素列を原画像323の左右に分割して加えてもよい。
また、パディング部302は、パディング画素数324として、パディング行数及び列数の両方が示されている場合には、上記処理を行及び列のそれぞれで行う。さらに、パディングされる画素は、予め定義された値を有してもよく、又は、境界近くの画素の関数として求められてもよい。そのような関数は、例えば、境界近くの画素の加重平均であってもよい。
次に、画像符号化部303は、最小CUの整数倍サイズを有するパディング画像327を符号化することで符号化画像信号328を生成する(S104)。
次に、ビットストリーム生成部304は、原画像サイズ320と最小CUサイズ321と符号化画像信号328とを含むビットストリーム329を生成する(S105及びS106)。このように、原画像サイズ320と最小CUサイズ321とをビットストリーム329に埋め込むことで、画像符号化装置と画像復号装置との間での画像処理の互換性を保証できる。
また、ステップS102において、原画像サイズ320が最小CUサイズ321の整数倍である場合には、パディング処理(S103)は行われない。つまり、画像符号化部303は、原画像323を符号化することで符号化画像信号328を生成する。
なお、図6は、本実施の形態の処理を示す一例であり、本発明はこれに限定されない。例えば、ステップS105とS106との順番は逆であってもよい。また、典型的には、原画像サイズ320は、最小CUサイズ321が書き込まれる前にビットストリーム329に書き込まれる。しかしながら、この埋め込みの順番も逆でもよい。さらに、ステップS105及びS106は、ステップS104の前に実行されてもよい。現在のコーデックにおいて、これらのシンタックス要素は、シーケンスパラメータセット又はピクチャパラメータセットに含まれる。これらのパラメータセットはピクチャの符号化前に符号化されているため、これらのシンタックス要素は、ステップS104の前にビットストリームに書き込まれる。
ここで埋め込むとは、予め定義されたシンタックスにしたがって、シンタックス要素をビットストリーム内に並べることである。また、これらのシンタックス要素は、固定長符号化又は可変長符号化されてもよい。特に同一シンタックス要素におけるある値が他の値よりも確率が高い場合、可変長符号化がより有益である。可変長符号化は、整数の符号化(例えばElias符号又はゴロム符号)、ハフマン符号(固定又はコンテキスト適応型)、又は(固定又はコンテキスト適応型確率モデルを伴う)算術符号化等のエントロピー符号化でもよい。
以下、本実施の形態に係る画像復号装置について説明する。
図7は、本実施の形態に係る画像復号装置400のブロック図である。図7に示す画像復号装置400は、ビットストリーム420を復号することで、画像信号426を生成する。この画像復号装置400は、解析部401と、パディング領域算出部402と、画像復号部403と、クロッピング部404とを備える。
解析部401は、ビットストリーム420を通信チャネルから受信するか、記録部から取得する。このビットストリーム420は、例えば、上記画像符号化装置300により生成されたビットストリーム329である。具体的には、解析部401は、パディング前の画像サイズである原画像サイズ421と、最小CUサイズ422とをビットストリーム420から抽出する。解析部401は、さらに、符号化画像信号423をビットストリーム420から抽出する。そして、解析部401は、符号化画像信号423を画像復号部403に送る。
画像復号部403は、符号化単位ごとに符号化画像信号423を復号することで、画像符号化装置300におけるパディング画像327に対応する復号画像425を生成する。ただし、量子化などの不可逆圧縮により、復号画像425の品質はパディング画像327の品質より低下する可能性がある。また、画像復号部403は、例えば、図2に示す画像復号装置200である。
パディング領域算出部402及びクロッピング部404は、パディング前の原画像のサイズのピクチャを得るために設けられている。
パディング領域算出部402は、解析部401によりビットストリーム420から抽出された原画像サイズ421と最小CUサイズ422とを取得する。画像符号化装置300におけるパディング領域算出部301と同様に、パディング領域算出部402は、原画像サイズ421と最小CUサイズ422とに基づき、画像符号化装置300で原画像に付加されたパディング領域の画素数(パディング列数又はパディング行数)を示すパディング画素数424を算出する。具体的には、パディング領域算出部402は、パディング前の原画像サイズ421と、原画像の垂直サイズ及び水平サイズのそれぞれに最も近く、かつそれよりも大きい最小CUサイズの整数倍との差分を、パディング行数及びパディング列数として算出する(上記式1を参照)。また、パディング領域算出部402は、決定されたパディング画素数424をクロッピング部404に送る。
クロッピング部404は、パディング画像(復号画像425)から、パディング画素数424の画像をクロッピングすることで、パディング領域を含まない、原画像サイズのピクチャである画像信号426を生成する。また、画像復号装置400は、画像信号426をディスプレイに表示してもよいし、記録部に記録してもよいし、画像信号426に対してさらに処理を行なってもよい。
次に、本実施の形態に係る画像復号装置400による画像復号方法の流れを説明する。図8は、本実施の形態に係る画像復号装置400による画像復号方法のフロー図である。
ここで、例えば、画像復号装置400に入力されるビットストリーム420は、図6に示す画像符号化方法によって生成されたビットストリーム329である。
まず、解析部401は、ビットストリーム420を解析する。そして、解析部401は、ビットストリーム420に埋め込まれた原画像サイズ421を取得する(S201)。この、原画像サイズ421は、画像復号処理のために画像復号部403へ送信される。
また、解析部401は、最小CUサイズ422も、ビットストリーム420から抽出する(S202)。
次に、パディング領域算出部402は、画像符号化装置300で画像に加えられた画素数を示すパディング画素数424を算出する(S203)。なお、この処理の詳細は、図6に示す画像符号化方法におけるステップS102の処理と同様である。具体的には、パディング領域算出部402は、原画像サイズ421が最小CUサイズ422の整数倍であるか否かを判定する。より具体的には、パディング領域算出部402は、原画像の水平サイズが最小CUの水平サイズの整数倍であるか否か、及び、原画像の垂直サイズが最小CUの垂直サイズの整数倍であるか否かを判定する。原画像の水平サイズが最小CUサイズの水平サイズの整数倍でない場合、又は、原画像の垂直サイズが最小CUサイズの垂直サイズの整数倍でない場合、パディング領域算出部402は、パディング画像が最小CUサイズ422の整数倍になるようにパディング画素数424を算出する。具体的には、パディング領域算出部402は、原画像の垂直及び水平サイズを、最小CUサイズで除算した残りと、最小CUとの差分を、パディング列数又はパディング行数として算出する(上記式1参照)。なお、最小符号化単位が正方形でない場合には、パディング領域算出部402は、原画像の垂直サイズを、最小CUサイズの垂直サイズで除算し、原画像の水平サイズを最小CUサイズの水平サイズで除算する。
次に、画像復号部403は、符号化画像信号423を復号することで、復号画像425(パディング画像)を生成する(S204)。
次に、クロッピング部404は、復号画像425をクロッピングすることで、画像信号426を生成する(S205)。具体的には、クロッピング部404は、ステップS203で算出されたパディング画素数424で示される行数又は列数の画像を復号画像425から切り落とす。これにより、画像信号426は、符号化前の原画像のピクチャサイズに対応するサイズのピクチャとなる。
なお、本実施の形態は、パディングデータの決定方法に関するものではない。本実施の形態に、任意のパディングデータの決定方法を用いてもよい。一般的には、パディング処理は、原画像にピクチャの境界にある画素を重複させたパディング領域を付加することにより実行される。つまり、同じライン(列又は行)を繰り返すことにより、又は、境界に最も近い複数のラインを繰り返すことによりパディング領域を付加してもよい。しかしながら、他の手法を用いてもよく、符号化部の最適化に基づいて、パディングデータをより高度な手法で決定してもよい。
また、上記の例では、パディング画素数が常に最小CUサイズ未満であると仮定している。つまり、検討したパディング画素数は常にピクチャの符号化に必要な最小数である。つまり、画像符号化装置と画像復号装置とは、この仮定に基づき、パディング画素数を決定してもよい。このような仮定により、HEVCにおいては、異なるサイズの符号化単位にピクチャを再分割することが行われる。例えば、8×8の最小符号化単位と64×64の最大符号化単位とが用いられ、原画像の垂直サイズが128画素であり、水平サイズが141画素である場合を考える。この場合において、ピクチャが最大CUサイズの符号化単位にのみ分割される場合、ピクチャの水平サイズは、最大符号化単位の2倍のサイズ(結果として、128の輝度サンプル)と、残りの13サンプルとを含む。しかしながら、13は依然として最小CUサイズよりも大きいため、この13サンプルは、より小さなサイズの符号化単位である16×16サイズの1つの符号化単位又は8×8サイズの2つの符号化単位にさらに分割される。この再分割の後には、3行の画素のみがパディング対象として残る。つまり、画像符号化装置及び画像復号装置におけるパディング画素数の決定方法に応じて、入力ピクチャサイズ(原画像サイズ)に基づきピクチャが分割される場合の最小粒度が決まる。上記の例では、16×16サイズ又はそれよりも小さいサイズの符号化単位が、画像の右縁で用いられる。ここで、右縁に32×32サイズの符号化単位を用いることはできない。なぜなら、上述した仮定に反するからである。
しかしながら、符号化効率の観点から考えると、より大きな符号化単位を用いるほうがより有利な場合もある。例えば、ピクチャの境界において、符号化単位のサイズが残りの画素数よりも大きい場合、上述したように符号化単位は自動的にさらに分割される。これにより、画像によっては、多くの小さな符号化単位が境界で存在することになる。この結果、より多くの予測情報が生成され送信されることで、符号化効率が低下する可能性がある。
したがって、以下のような方法でパディング処理を実行してもよい。画像符号化装置がピクチャの境界で、最適なパディング画素数とCUサイズとを実現できるように、パディング画素数を調節できるようにする。具体的には、必要最小限のパディング画素数より、使用するパディング画素数を多く設定できるように、1つ以上の追加的構文要素をビットストリームに加える。この構文要素は、パディング領域に含まれる最小CUの数を示すSCUパディング数(pad_right)である。
以下、具体例を説明する。図9は、画像の右縁におけるSCUパディング数が「1」の場合(「pad_right=1」)の例を示す。なお、上述した図4の例は、SCUパディング数が「0」の場合(「pad_right=0」)である。つまり、パディング画素数はSCUサイズ×pad_right以上である。また、図9の例では、原画像500の右境界に位置する画像領域502とパディング領域540Bとの合計の幅は、SCUの幅の2倍である。このように、パディング画素数を最小符号化単位より多くすることで、符号化効率を向上できる。
具体的には、パディング行数Nは、以下の(式2)を用いて算出できる。
ここで、sは最小符号化単位の水平サイズであり、wは原画像の幅であり、pad_rightはSCUパディング数を示す構文要素であり、%はモジュロ演算である。
なお、画像左側でパディングが実行される場合、pad_leftを、pad_rightに置き換えて用いることができる。同様に、pad_top又はpad_bottomを用いて、垂直方向のSCUパディング数を示してもよい。また、これらの構文のうち2以上を同時に用いてもよい。
この場合、図6に示す画像符号化方法に、ビットストリーム生成部304が、SCUパディング数をビットストリームに埋め込むステップが追加される。同様に、図8に示す画像復号方法に、解析部401が、SCUパディング数をビットストリームから抽出するステップが追加される。これにより、SCUパディング数は画像符号化装置300と画像復号装置400とで同様に用いられる。よって、画像符号化装置及び画像復号装置においてパディング画素数を一義的に導出できる。
また、図6に示すステップS102及び図8に示すステップS203では、パディング領域算出部301又はパディング領域算出部402は、SCUパディング数に最小CUサイズを乗じた値と、必要最小限のパディング画素数とを加算したパディング画素数を算出する(上記式2を参照)。
さらなる柔軟性を実現するため、上記実施の形態の変形例に基づいて、上下左右のピクチャの4つの境界のうちの2以上に対し、SCUパディング数を別々に示してもよい。つまり、右側の追加的パディングに対しpad_rightを用い、下側の追加的パディングに対しpad_belowを用い、上側の追加的パディングに対しpad_upを用い、左側の追加的パディングに対しpad_leftを用いてもよい。これにより、画像符号化装置は、結果的に生じる画像の歪みが最適化されるように、パディング画素数を決定できる。
ここで、これらの構文は、画像の上下左右側の1つを示すパディング方向情報である。
図10は、このようなパディング方向情報を用いる場合の画像復号方法のフロー図である。図10に示す画像復号方法は、図8に示す処理に加え、ステップS211が追加されている。ステップS211では、解析部401は、ビットストリーム420からパディング方向情報を抽出する。そして、ステップS205において、クロッピング部404は、復号画像425から、パディング画素数424で示されるパディング行数又はパディング列数の画像を、パディング方向情報で示される、画像の上下左右側のいずれかから切り落とす。
また、SCUサイズよりも小さなパディング画素数を決定する実施の形態の場合においても、画像のどの境界(上、下、左、右)にパディング画素を分割するかを示す信号を用いてもよい。また、下側と上側の境界又は左側と右側の境界へのパディング画素の再分割方法を予め定めてもよい。
また、画像の内容で区分される映像シーケンスごとに、パディング情報(最小CUサイズ、SCUパディング数、又はパディング方向情報等)を付加してもよい。例えば、画像符号化装置は、シーケンスパラメータセット内にパディング情報を付加する代わりに、ピクチャパラメータセット内にパディング情報を付加してもよい。ここで、シーケンスパラメータセットは、シーケンス固有のパラメータセットであり、そのシーケンスに関する情報を示す。また、ピクチャパラメータセットは、ピクチャ固有のパラメータセットであり、そのピクチャに関する情報を示す。例えば、HEVCの観点から考えると、パディング情報は、SPSよりもPPSに含めて送信することが好ましい。例えば、画像符号化装置は、最小CUサイズを、PPSに含めて送信してもよい。また、画像符号化装置は、原画像サイズ又は最小CUサイズの信号化頻度とは関わりなく、パディング情報をPPS又はSPSに含めて送信してもよい。
(実施の形態2)
本実施の形態では、上記実施の形態1で用いた「画像サイズが最小CUサイズの整数倍である」という仮定を用いて、エラー判定を行う画像復号装置について説明する。なお、以下では、実施の形態1との相違点を主に説明し、重複する説明は省略する。
図11は、本実施の形態に係る画像復号装置600のブロック図である。図11に示す画像復号装置600は、ビットストリーム620を復号することで、画像信号626を生成する。この画像復号装置600は、解析部601と、エラー判定部602と、画像復号部603と、エラー処理部604とを備える。
解析部601は、ビットストリーム620から画像サイズ621と、最小CUサイズ622と、符号化画像信号623とを抽出する。なお、上記実施の形態1では、ビットストリーム620に原画像のサイズが含まれる例を述べたが、本実施の形態ではビットストリーム620にパディング画像のサイズである画像サイズ621が含まれる。なお、画像サイズ621は、画像符号化装置においてパディング処理が行われなかった場合、つまり、原画像サイズが最小CUサイズの整数倍であった場合には、原画像のサイズを示す。また、画像サイズ621は、画像符号化装置においてパディング処理が行われた場合には、パディング画像のサイズを示す。
エラー判定部602は、画像サイズ621が最小CUサイズ622の整数倍であるか否かを判定する判定部である。
画像復号部603は、符号化画像信号623を復号することで復号画像625を生成する。例えば、この画像復号部603は、図2に示す画像復号装置200である。また、画像復号部603は、エラー判定部602により、画像サイズ621が最小CUサイズ622の整数倍であると判定された場合、画像サイズ621を用いて符号化画像信号623を復号することで復号画像625を生成する。
エラー処理部604は、エラー判定部602により、画像サイズ621が最小CUサイズ622の整数倍でないと判定された場合、ビットストリーム620にエラーが含まれていると判定する。また、エラー処理部604は、ビットストリーム620にエラーが含まれていると判定した場合に、エラー処理を行う。例えば、エラー処理部604は、ビットストリーム620にエラーが含まれていることを外部に通知する。
ここで、上述したように、符号化される画像のサイズは、最小CUサイズの整数倍である必要がある。つまり、上記画像サイズ621は、最小CUサイズの整数倍である必要がある。よって、本実施の形態に係る画像復号装置600は、この画像サイズ621が、最小CUサイズの整数倍であるか否かに基づき、ビットストリーム620に含まれる画像サイズ621の値が正しい値であるか否かを判定する。これにより、当該画像復号装置600は、ビットストリーム620にエラーが含まれているか否かを適切に判定することができる。
これにより、例えば、通信エラー、又は符号化装置側のエラーにより、画像サイズ621が誤った値である場合に、エラーが発生していることを外部に通知できる。
以下、本実施の形態に係る画像復号装置600による画像復号方法の流れを説明する。図12は、当該画像復号方法のフロー図である。
まず、解析部601は、ビットストリーム620から画像サイズ621と、最小CUサイズ622と、符号化画像信号623とを抽出する(S301及びS302)。
次に、エラー判定部602は、画像サイズ621が最小CUサイズ622の整数倍であるか否かを判定する(S303)。
画像サイズ621が最小CUサイズ622の整数倍である場合(S303でYes)、画像復号部603は、画像サイズ621を用いて符号化画像信号623を復号することで復号画像625を生成する(S304)。具体的には、画像復号部603は、画像サイズ621で示される画像サイズを復号対象の画像の画像サイズとして用いて符号化画像信号623を復号する。なお、この場合は、画像復号装置600は、復号画像625を画像信号626として出力する。また、画像にパディングが行われている場合には、画像復号部603は、画像サイズ621と、ビットストリームに含まれるパディング情報(例えば、パディング画素数)とを用いて、クロッピング処理を行なってもよい。
一方、画像サイズ621が最小CUサイズ622の整数倍でない場合(S303でNo)、エラー処理部604は、ビットストリーム620にエラーが含まれていると判定し、エラー処理を行う(S305)。
なお、エラー処理として以下の処理を行なってもよい。図13は、エラー処理部604によるエラー処理の一例を示すフロー図である。
まず、エラー処理部604は、正しい画像サイズが最小CUサイズの整数倍であると仮定して正しい画像サイズを算出する。そして、エラー処理部604は、抽出された画像サイズ621と、仮定した画像サイズとの差分に基づき、パディング行数又はパディング列数を算出する(S311)。なお、この処理の具体例は、上述した実施の形態1におけるパディング領域算出部402による処理において、原画像サイズを、エラーを有する画像サイズ621に置き換え、パディング画像のサイズを正しい画像サイズと置き換えた場合と同様である。例えば、エラー処理部604は、最小CUサイズの整数倍の画像サイズのうち、画像サイズ621で示される画像サイズより大きく、かつ、最も近い画像サイズを、正しい画像サイズとして決定する。
次に、画像復号部603は、ステップS312で仮定された画像サイズを用いて符号化画像信号623を復号することで復号画像625を生成する(S312)。
最後に、エラー処理部604は、ステップS312で生成された復号画像625から、ステップS311で算出されたパディング行数又はパディング列数の画像を切り落とすことで、画像信号626を生成する(S313)。
以上の処理により、画像サイズ621の値が誤った値であっても、画像復号装置600は、画像信号626を生成することができる。
なお、ビットストリーム620に、パディング情報が含まれていてもよい。ここでパディング情報とは、例えば、上述したパディング画素数を示す情報又はパディング方向情報等である。また、この場合には、エラー判定部602は、このパディング情報を用いてパディング領域を決定してもよい。
具体的には、解析部601は、さらに、画像の上下左右側の1つを示すパディング方向情報をビットストリーム620から抽出する。そして、エラー処理部604は、復号画像625から、パディング行数又はパディング列数の画像をパディング方向情報で示される画像の上下左右側のいずれかから切り落としてもよい。ここで、パディング行数又はパディング列数の値は、例えば、上記ステップS311で算出された値である。なお、ビットストリーム620にパディング行数又はパディング列数を示す情報が含まれている場合には、このパディング行数又はパディング列数の値は、当該ビットストリーム620に含まれる情報で示される値であってもよい。
また、これらのパディング情報は、例えば、ビットストリーム620のピクチャパラメータセット又はシーケンスパラメータセットに含まれる。
また、エラー処理部604は、上記エラー処理に加え、エラーが発生したことを示す情報を外部へ出力してもよい。
以下、本実施の形態に係る画像符号化装置及び画像符号化方法について説明する。
上述したように、上記実施の形態1では、ビットストリームに原画像のサイズが含まれる例を述べたが、本実施の形態ではビットストリームにパディング画像のサイズである画像サイズ(画像サイズ621)が含まれる。つまり、本実施の形態に係る画像符号化方法は、図6に示すステップS105の処理が実施の形態1と異なる。具体的には、ステップS105において、本実施の形態に係る画像符号化方法は、画像サイズとして、原画像サイズの代わりにパディング画像のサイズを含むビットストリームを生成する。ここで、画像サイズは、画像に含まれる画素数(列数及び行数)を示す。
なお、この画像サイズは、画像符号化装置がパディング処理を行わなかった場合、つまり、原画像サイズが最小CUサイズの整数倍であった場合には、原画像のサイズを示す。また、この画像サイズは、画像符号化装置においてパディング処理が行われた場合には、パディング画像のサイズを示す。
つまり、本実施の形態に係る画像符号化方法は、画像サイズとして、最小CUサイズの整数倍である画素数を算出する画像サイズ算出ステップ(S102)と、最小CUサイズと、算出した画素数とを含むビットストリームを生成するビットストリーム生成ステップ(S105及びS106)とを含む。
なお、画像サイズ(パディング画像のサイズ)を算出する具体的な方法は、上述した実施の形態1と同様の方法を用いることができる。
また、本実施の形態に係る画像符号化装置は、画像サイズとして、最小CUサイズの整数倍である画素数を算出する画像サイズ算出部(パディング領域算出部301)と、最小CUサイズと、算出した画素数とを含むビットストリームを生成するビットストリーム生成部304とを含む。
以上の構成により、本実施の形態に係る画像符号化装置及び画像符号化方法は、画像復号装置において、エラーを適切に検出することができるビットストリームを生成できる。
以上、本発明の実施の形態に係る画像符号化装置、及び画像復号装置について説明したが、本発明は、この実施の形態に限定されるものではない。
例えば、上記実施の形態に係る、画像符号化装置、及び画像復号装置、並びにそれらの変形例の機能のうち少なくとも一部を組み合わせてもよい。
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを1つの機能ブロックとして実現したり、1つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
また、上記画像符号化方法及び画像復号方法に含まれる複数のステップが実行される順序は、本発明を具体的に説明するために例示するためのものであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
(実施の形態3)
上記各実施の形態で示した動画像符号化方法(画像符号化方法)または動画像復号化方法(画像復号方法)の構成を実現するためのプログラムを記憶メディアに記録することにより、上記各実施の形態で示した処理を独立したコンピュータシステムにおいて簡単に実施することが可能となる。記憶メディアは、磁気ディスク、光ディスク、光磁気ディスク、ICカード、半導体メモリ等、プログラムを記録できるものであればよい。
さらにここで、上記各実施の形態で示した動画像符号化方法(画像符号化方法)や動画像復号化方法(画像復号方法)の応用例とそれを用いたシステムを説明する。当該システムは、画像符号化方法を用いた画像符号化装置、及び画像復号方法を用いた画像復号装置からなる画像符号化復号装置を有することを特徴とする。システムにおける他の構成について、場合に応じて適切に変更することができる。
図14は、コンテンツ配信サービスを実現するコンテンツ供給システムex100の全体構成を示す図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex106、ex107、ex108、ex109、ex110が設置されている。
このコンテンツ供給システムex100は、インターネットex101にインターネットサービスプロバイダex102および電話網ex104、および基地局ex106からex110を介して、コンピュータex111、PDA(Personal Digital Assistant)ex112、カメラex113、携帯電話ex114、ゲーム機ex115などの各機器が接続される。
しかし、コンテンツ供給システムex100は図14のような構成に限定されず、いずれかの要素を組合せて接続するようにしてもよい。また、固定無線局である基地局ex106からex110を介さずに、各機器が電話網ex104に直接接続されてもよい。また、各機器が近距離無線等を介して直接相互に接続されていてもよい。
カメラex113はデジタルビデオカメラ等の動画撮影が可能な機器であり、カメラex116はデジタルカメラ等の静止画撮影、動画撮影が可能な機器である。また、携帯電話ex114は、GSM(登録商標)(Global System for Mobile Communications)方式、CDMA(Code Division Multiple Access)方式、W−CDMA(Wideband-Code Division Multiple Access)方式、若しくはLTE(Long Term Evolution)方式、HSPA(High Speed Packet Access)の携帯電話機、またはPHS(Personal Handyphone System)等であり、いずれでも構わない。
コンテンツ供給システムex100では、カメラex113等が基地局ex109、電話網ex104を通じてストリーミングサーバex103に接続されることで、ライブ配信等が可能になる。ライブ配信では、ユーザがカメラex113を用いて撮影するコンテンツ(例えば、音楽ライブの映像等)に対して上記各実施の形態で説明したように符号化処理を行い(即ち、本発明の一態様に係る画像符号化装置として機能する)、ストリーミングサーバex103に送信する。一方、ストリーミングサーバex103は要求のあったクライアントに対して送信されたコンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex111、PDAex112、カメラex113、携帯電話ex114、ゲーム機ex115等がある。配信されたデータを受信した各機器では、受信したデータを復号化処理して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
なお、撮影したデータの符号化処理はカメラex113で行っても、データの送信処理をするストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。同様に配信されたデータの復号化処理はクライアントで行っても、ストリーミングサーバex103で行ってもよいし、互いに分担して行ってもよい。また、カメラex113に限らず、カメラex116で撮影した静止画像および/または動画像データを、コンピュータex111を介してストリーミングサーバex103に送信してもよい。この場合の符号化処理はカメラex116、コンピュータex111、ストリーミングサーバex103のいずれで行ってもよいし、互いに分担して行ってもよい。
また、これら符号化・復号化処理は、一般的にコンピュータex111や各機器が有するLSIex500において処理する。LSIex500は、ワンチップであっても複数チップからなる構成であってもよい。なお、動画像符号化・復号化用のソフトウェアをコンピュータex111等で読み取り可能な何らかの記録メディア(CD−ROM、フレキシブルディスク、ハードディスクなど)に組み込み、そのソフトウェアを用いて符号化・復号化処理を行ってもよい。さらに、携帯電話ex114がカメラ付きである場合には、そのカメラで取得した動画データを送信してもよい。このときの動画データは携帯電話ex114が有するLSIex500で符号化処理されたデータである。
また、ストリーミングサーバex103は複数のサーバや複数のコンピュータであって、データを分散して処理したり記録したり配信するものであってもよい。
以上のようにして、コンテンツ供給システムex100では、符号化されたデータをクライアントが受信して再生することができる。このようにコンテンツ供給システムex100では、ユーザが送信した情報をリアルタイムでクライアントが受信して復号化し、再生することができ、特別な権利や設備を有さないユーザでも個人放送を実現できる。
なお、コンテンツ供給システムex100の例に限らず、図15に示すように、デジタル放送用システムex200にも、上記各実施の形態の少なくとも動画像符号化装置(画像符号化装置)または動画像復号化装置(画像復号装置)のいずれかを組み込むことができる。具体的には、放送局ex201では映像データに音楽データなどが多重化された多重化データが電波を介して通信または衛星ex202に伝送される。この映像データは上記各実施の形態で説明した動画像符号化方法により符号化されたデータである(即ち、本発明の一態様に係る画像符号化装置によって符号化されたデータである)。これを受けた放送衛星ex202は、放送用の電波を発信し、この電波を衛星放送の受信が可能な家庭のアンテナex204が受信する。受信した多重化データを、テレビ(受信機)ex300またはセットトップボックス(STB)ex217等の装置が復号化して再生する(即ち、本発明の一態様に係る画像復号装置として機能する)。
また、DVD、BD等の記録メディアex215に記録した多重化データを読み取り復号化する、または記録メディアex215に映像信号を符号化し、さらに場合によっては音楽信号と多重化して書き込むリーダ/レコーダex218にも上記各実施の形態で示した動画像復号化装置または動画像符号化装置を実装することが可能である。この場合、再生された映像信号はモニタex219に表示され、多重化データが記録された記録メディアex215により他の装置やシステムにおいて映像信号を再生することができる。また、ケーブルテレビ用のケーブルex203または衛星/地上波放送のアンテナex204に接続されたセットトップボックスex217内に動画像復号化装置を実装し、これをテレビのモニタex219で表示してもよい。このときセットトップボックスではなく、テレビ内に動画像復号化装置を組み込んでもよい。
図16は、上記各実施の形態で説明した動画像復号化方法および動画像符号化方法を用いたテレビ(受信機)ex300を示す図である。テレビex300は、上記放送を受信するアンテナex204またはケーブルex203等を介して映像データに音声データが多重化された多重化データを取得、または出力するチューナex301と、受信した多重化データを復調する、または外部に送信する多重化データに変調する変調/復調部ex302と、復調した多重化データを映像データと、音声データとに分離する、または信号処理部ex306で符号化された映像データ、音声データを多重化する多重/分離部ex303を備える。
また、テレビex300は、音声データ、映像データそれぞれを復号化する、またはそれぞれの情報を符号化する音声信号処理部ex304、映像信号処理部ex305(本発明の一態様に係る画像符号化装置または画像復号装置として機能する)を有する信号処理部ex306と、復号化した音声信号を出力するスピーカex307、復号化した映像信号を表示するディスプレイ等の表示部ex308を有する出力部ex309とを有する。さらに、テレビex300は、ユーザ操作の入力を受け付ける操作入力部ex312等を有するインタフェース部ex317を有する。さらに、テレビex300は、各部を統括的に制御する制御部ex310、各部に電力を供給する電源回路部ex311を有する。インタフェース部ex317は、操作入力部ex312以外に、リーダ/レコーダex218等の外部機器と接続されるブリッジex313、SDカード等の記録メディアex216を装着可能とするためのスロット部ex314、ハードディスク等の外部記録メディアと接続するためのドライバex315、電話網と接続するモデムex316等を有していてもよい。なお記録メディアex216は、格納する不揮発性/揮発性の半導体メモリ素子により電気的に情報の記録を可能としたものである。テレビex300の各部は同期バスを介して互いに接続されている。
まず、テレビex300がアンテナex204等により外部から取得した多重化データを復号化し、再生する構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、CPU等を有する制御部ex310の制御に基づいて、変調/復調部ex302で復調した多重化データを多重/分離部ex303で分離する。さらにテレビex300は、分離した音声データを音声信号処理部ex304で復号化し、分離した映像データを映像信号処理部ex305で上記各実施の形態で説明した復号化方法を用いて復号化する。復号化した音声信号、映像信号は、それぞれ出力部ex309から外部に向けて出力される。出力する際には、音声信号と映像信号が同期して再生するよう、バッファex318、ex319等に一旦これらの信号を蓄積するとよい。また、テレビex300は、放送等からではなく、磁気/光ディスク、SDカード等の記録メディアex215、ex216から多重化データを読み出してもよい。次に、テレビex300が音声信号や映像信号を符号化し、外部に送信または記録メディア等に書き込む構成について説明する。テレビex300は、リモートコントローラex220等からのユーザ操作を受け、制御部ex310の制御に基づいて、音声信号処理部ex304で音声信号を符号化し、映像信号処理部ex305で映像信号を上記各実施の形態で説明した符号化方法を用いて符号化する。符号化した音声信号、映像信号は多重/分離部ex303で多重化され外部に出力される。多重化する際には、音声信号と映像信号が同期するように、バッファex320、ex321等に一旦これらの信号を蓄積するとよい。なお、バッファex318、ex319、ex320、ex321は図示しているように複数備えていてもよいし、1つ以上のバッファを共有する構成であってもよい。さらに、図示している以外に、例えば変調/復調部ex302や多重/分離部ex303の間等でもシステムのオーバフロー、アンダーフローを避ける緩衝材としてバッファにデータを蓄積することとしてもよい。
また、テレビex300は、放送等や記録メディア等から音声データ、映像データを取得する以外に、マイクやカメラのAV入力を受け付ける構成を備え、それらから取得したデータに対して符号化処理を行ってもよい。なお、ここではテレビex300は上記の符号化処理、多重化、および外部出力ができる構成として説明したが、これらの処理を行うことはできず、上記受信、復号化処理、外部出力のみが可能な構成であってもよい。
また、リーダ/レコーダex218で記録メディアから多重化データを読み出す、または書き込む場合には、上記復号化処理または符号化処理はテレビex300、リーダ/レコーダex218のいずれで行ってもよいし、テレビex300とリーダ/レコーダex218が互いに分担して行ってもよい。
一例として、光ディスクからデータの読み込みまたは書き込みをする場合の情報再生/記録部ex400の構成を図17に示す。情報再生/記録部ex400は、以下に説明する要素ex401、ex402、ex403、ex404、ex405、ex406、ex407を備える。光ヘッドex401は、光ディスクである記録メディアex215の記録面にレーザスポットを照射して情報を書き込み、記録メディアex215の記録面からの反射光を検出して情報を読み込む。変調記録部ex402は、光ヘッドex401に内蔵された半導体レーザを電気的に駆動し記録データに応じてレーザ光の変調を行う。再生復調部ex403は、光ヘッドex401に内蔵されたフォトディテクタにより記録面からの反射光を電気的に検出した再生信号を増幅し、記録メディアex215に記録された信号成分を分離して復調し、必要な情報を再生する。バッファex404は、記録メディアex215に記録するための情報および記録メディアex215から再生した情報を一時的に保持する。ディスクモータex405は記録メディアex215を回転させる。サーボ制御部ex406は、ディスクモータex405の回転駆動を制御しながら光ヘッドex401を所定の情報トラックに移動させ、レーザスポットの追従処理を行う。システム制御部ex407は、情報再生/記録部ex400全体の制御を行う。上記の読み出しや書き込みの処理はシステム制御部ex407が、バッファex404に保持された各種情報を利用し、また必要に応じて新たな情報の生成・追加を行うと共に、変調記録部ex402、再生復調部ex403、サーボ制御部ex406を協調動作させながら、光ヘッドex401を通して、情報の記録再生を行うことにより実現される。システム制御部ex407は例えばマイクロプロセッサで構成され、読み出し書き込みのプログラムを実行することでそれらの処理を実行する。
以上では、光ヘッドex401はレーザスポットを照射するとして説明したが、近接場光を用いてより高密度な記録を行う構成であってもよい。
図18に光ディスクである記録メディアex215の模式図を示す。記録メディアex215の記録面には案内溝(グルーブ)がスパイラル状に形成され、情報トラックex230には、予めグルーブの形状の変化によってディスク上の絶対位置を示す番地情報が記録されている。この番地情報はデータを記録する単位である記録ブロックex231の位置を特定するための情報を含み、記録や再生を行う装置において情報トラックex230を再生し番地情報を読み取ることで記録ブロックを特定することができる。また、記録メディアex215は、データ記録領域ex233、内周領域ex232、外周領域ex234を含んでいる。ユーザデータを記録するために用いる領域がデータ記録領域ex233であり、データ記録領域ex233より内周または外周に配置されている内周領域ex232と外周領域ex234は、ユーザデータの記録以外の特定用途に用いられる。情報再生/記録部ex400は、このような記録メディアex215のデータ記録領域ex233に対して、符号化された音声データ、映像データまたはそれらのデータを多重化した多重化データの読み書きを行う。
以上では、1層のDVD、BD等の光ディスクを例に挙げ説明したが、これらに限ったものではなく、多層構造であって表面以外にも記録可能な光ディスクであってもよい。また、ディスクの同じ場所にさまざまな異なる波長の色の光を用いて情報を記録したり、さまざまな角度から異なる情報の層を記録したりなど、多次元的な記録/再生を行う構造の光ディスクであってもよい。
また、デジタル放送用システムex200において、アンテナex205を有する車ex210で衛星ex202等からデータを受信し、車ex210が有するカーナビゲーションex211等の表示装置に動画を再生することも可能である。なお、カーナビゲーションex211の構成は例えば図16に示す構成のうち、GPS受信部を加えた構成が考えられ、同様なことがコンピュータex111や携帯電話ex114等でも考えられる。
図19Aは、上記実施の形態で説明した動画像復号化方法および動画像符号化方法を用いた携帯電話ex114を示す図である。携帯電話ex114は、基地局ex110との間で電波を送受信するためのアンテナex350、映像、静止画を撮ることが可能なカメラ部ex365、カメラ部ex365で撮像した映像、アンテナex350で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex358を備える。携帯電話ex114は、さらに、操作キー部ex366を有する本体部、音声を出力するためのスピーカ等である音声出力部ex357、音声を入力するためのマイク等である音声入力部ex356、撮影した映像、静止画、録音した音声、または受信した映像、静止画、メール等の符号化されたデータもしくは復号化されたデータを保存するメモリ部ex367、又は同様にデータを保存する記録メディアとのインタフェース部であるスロット部ex364を備える。
さらに、携帯電話ex114の構成例について、図19Bを用いて説明する。携帯電話ex114は、表示部ex358及び操作キー部ex366を備えた本体部の各部を統括的に制御する主制御部ex360に対して、電源回路部ex361、操作入力制御部ex362、映像信号処理部ex355、カメラインタフェース部ex363、LCD(Liquid Crystal Display)制御部ex359、変調/復調部ex352、多重/分離部ex353、音声信号処理部ex354、スロット部ex364、メモリ部ex367がバスex370を介して互いに接続されている。
電源回路部ex361は、ユーザの操作により終話及び電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することにより携帯電話ex114を動作可能な状態に起動する。
携帯電話ex114は、CPU、ROM、RAM等を有する主制御部ex360の制御に基づいて、音声通話モード時に音声入力部ex356で収音した音声信号を音声信号処理部ex354でデジタル音声信号に変換し、これを変調/復調部ex352でスペクトラム拡散処理し、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して送信する。また携帯電話ex114は、音声通話モード時にアンテナex350を介して受信した受信データを増幅して周波数変換処理およびアナログデジタル変換処理を施し、変調/復調部ex352でスペクトラム逆拡散処理し、音声信号処理部ex354でアナログ音声信号に変換した後、これを音声出力部ex357から出力する。
さらにデータ通信モード時に電子メールを送信する場合、本体部の操作キー部ex366等の操作によって入力された電子メールのテキストデータは操作入力制御部ex362を介して主制御部ex360に送出される。主制御部ex360は、テキストデータを変調/復調部ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex350を介して基地局ex110へ送信する。電子メールを受信する場合は、受信したデータに対してこのほぼ逆の処理が行われ、表示部ex358に出力される。
データ通信モード時に映像、静止画、または映像と音声を送信する場合、映像信号処理部ex355は、カメラ部ex365から供給された映像信号を上記各実施の形態で示した動画像符号化方法によって圧縮符号化し(即ち、本発明の一態様に係る画像符号化装置として機能する)、符号化された映像データを多重/分離部ex353に送出する。また、音声信号処理部ex354は、映像、静止画等をカメラ部ex365で撮像中に音声入力部ex356で収音した音声信号を符号化し、符号化された音声データを多重/分離部ex353に送出する。
多重/分離部ex353は、映像信号処理部ex355から供給された符号化された映像データと音声信号処理部ex354から供給された符号化された音声データを所定の方式で多重化し、その結果得られる多重化データを変調/復調部(変調/復調回路部)ex352でスペクトラム拡散処理をし、送信/受信部ex351でデジタルアナログ変換処理及び周波数変換処理を施した後にアンテナex350を介して送信する。
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、または映像およびもしくは音声が添付された電子メールを受信する場合、アンテナex350を介して受信された多重化データを復号化するために、多重/分離部ex353は、多重化データを分離することにより映像データのビットストリームと音声データのビットストリームとに分け、同期バスex370を介して符号化された映像データを映像信号処理部ex355に供給するとともに、符号化された音声データを音声信号処理部ex354に供給する。映像信号処理部ex355は、上記各実施の形態で示した動画像符号化方法に対応した動画像復号化方法によって復号化することにより映像信号を復号し(即ち、本発明の一態様に係る画像復号装置として機能する)、LCD制御部ex359を介して表示部ex358から、例えばホームページにリンクされた動画像ファイルに含まれる映像、静止画が表示される。また音声信号処理部ex354は、音声信号を復号し、音声出力部ex357から音声が出力される。
また、上記携帯電話ex114等の端末は、テレビex300と同様に、符号化器・復号化器を両方持つ送受信型端末の他に、符号化器のみの送信端末、復号化器のみの受信端末という3通りの実装形式が考えられる。さらに、デジタル放送用システムex200において、映像データに音楽データなどが多重化された多重化データを受信、送信するとして説明したが、音声データ以外に映像に関連する文字データなどが多重化されたデータであってもよいし、多重化データではなく映像データ自体であってもよい。
このように、上記各実施の形態で示した動画像符号化方法あるいは動画像復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記各実施の形態で説明した効果を得ることができる。
また、本発明はかかる上記実施の形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
(実施の形態4)
上記各実施の形態で示した動画像符号化方法または装置と、MPEG−2、MPEG4−AVC、VC−1など異なる規格に準拠した動画像符号化方法または装置とを、必要に応じて適宜切替えることにより、映像データを生成することも可能である。
ここで、それぞれ異なる規格に準拠する複数の映像データを生成した場合、復号する際に、それぞれの規格に対応した復号方法を選択する必要がある。しかしながら、復号する映像データが、どの規格に準拠するものであるか識別できないため、適切な復号方法を選択することができないという課題を生じる。
この課題を解決するために、映像データに音声データなどを多重化した多重化データは、映像データがどの規格に準拠するものであるかを示す識別情報を含む構成とする。上記各実施の形態で示す動画像符号化方法または装置によって生成された映像データを含む多重化データの具体的な構成を以下説明する。多重化データは、MPEG−2トランスポートストリーム形式のデジタルストリームである。
図20は、多重化データの構成を示す図である。図20に示すように多重化データは、ビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム(PG)、インタラクティブグラフィックスストリームのうち、1つ以上を多重化することで得られる。ビデオストリームは映画の主映像および副映像を、オーディオストリーム(IG)は映画の主音声部分とその主音声とミキシングする副音声を、プレゼンテーショングラフィックスストリームは、映画の字幕をそれぞれ示している。ここで主映像とは画面に表示される通常の映像を示し、副映像とは主映像の中に小さな画面で表示する映像のことである。また、インタラクティブグラフィックスストリームは、画面上にGUI部品を配置することにより作成される対話画面を示している。ビデオストリームは、上記各実施の形態で示した動画像符号化方法または装置、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠した動画像符号化方法または装置によって符号化されている。オーディオストリームは、ドルビーAC−3、Dolby Digital Plus、MLP、DTS、DTS−HD、または、リニアPCMのなどの方式で符号化されている。
多重化データに含まれる各ストリームはPIDによって識別される。例えば、映画の映像に利用するビデオストリームには0x1011が、オーディオストリームには0x1100から0x111Fまでが、プレゼンテーショングラフィックスには0x1200から0x121Fまでが、インタラクティブグラフィックスストリームには0x1400から0x141Fまでが、映画の副映像に利用するビデオストリームには0x1B00から0x1B1Fまで、主音声とミキシングする副音声に利用するオーディオストリームには0x1A00から0x1A1Fが、それぞれ割り当てられている。
図21は、多重化データがどのように多重化されるかを模式的に示す図である。まず、複数のビデオフレームからなるビデオストリームex235、複数のオーディオフレームからなるオーディオストリームex238を、それぞれPESパケット列ex236およびex239に変換し、TSパケットex237およびex240に変換する。同じくプレゼンテーショングラフィックスストリームex241およびインタラクティブグラフィックスex244のデータをそれぞれPESパケット列ex242およびex245に変換し、さらにTSパケットex243およびex246に変換する。多重化データex247はこれらのTSパケットを1本のストリームに多重化することで構成される。
図22は、PESパケット列に、ビデオストリームがどのように格納されるかをさらに詳しく示している。図22における第1段目はビデオストリームのビデオフレーム列を示す。第2段目は、PESパケット列を示す。図22の矢印yy1,yy2,yy3,yy4に示すように、ビデオストリームにおける複数のVideo Presentation UnitであるIピクチャ、Bピクチャ、Pピクチャは、ピクチャ毎に分割され、PESパケットのペイロードに格納される。各PESパケットはPESヘッダを持ち、PESヘッダには、ピクチャの表示時刻であるPTS(Presentation Time−Stamp)やピクチャの復号時刻であるDTS(Decoding Time−Stamp)が格納される。
図23は、多重化データに最終的に書き込まれるTSパケットの形式を示している。TSパケットは、ストリームを識別するPIDなどの情報を持つ4ByteのTSヘッダとデータを格納する184ByteのTSペイロードから構成される188Byte固定長のパケットであり、上記PESパケットは分割されTSペイロードに格納される。BD−ROMの場合、TSパケットには、4ByteのTP_Extra_Headerが付与され、192Byteのソースパケットを構成し、多重化データに書き込まれる。TP_Extra_HeaderにはATS(Arrival_Time_Stamp)などの情報が記載される。ATSは当該TSパケットのデコーダのPIDフィルタへの転送開始時刻を示す。多重化データには図23下段に示すようにソースパケットが並ぶこととなり、多重化データの先頭からインクリメントする番号はSPN(ソースパケットナンバー)と呼ばれる。
また、多重化データに含まれるTSパケットには、映像・音声・字幕などの各ストリーム以外にもPAT(Program Association Table)、PMT(Program Map Table)、PCR(Program Clock Reference)などがある。PATは多重化データ中に利用されるPMTのPIDが何であるかを示し、PAT自身のPIDは0で登録される。PMTは、多重化データ中に含まれる映像・音声・字幕などの各ストリームのPIDと各PIDに対応するストリームの属性情報を持ち、また多重化データに関する各種ディスクリプタを持つ。ディスクリプタには多重化データのコピーを許可・不許可を指示するコピーコントロール情報などがある。PCRは、ATSの時間軸であるATC(Arrival Time Clock)とPTS・DTSの時間軸であるSTC(System Time Clock)の同期を取るために、そのPCRパケットがデコーダに転送されるATSに対応するSTC時間の情報を持つ。
図24はPMTのデータ構造を詳しく説明する図である。PMTの先頭には、そのPMTに含まれるデータの長さなどを記したPMTヘッダが配置される。その後ろには、多重化データに関するディスクリプタが複数配置される。上記コピーコントロール情報などが、ディスクリプタとして記載される。ディスクリプタの後には、多重化データに含まれる各ストリームに関するストリーム情報が複数配置される。ストリーム情報は、ストリームの圧縮コーデックなどを識別するためストリームタイプ、ストリームのPID、ストリームの属性情報(フレームレート、アスペクト比など)が記載されたストリームディスクリプタから構成される。ストリームディスクリプタは多重化データに存在するストリームの数だけ存在する。
記録媒体などに記録する場合には、上記多重化データは、多重化データ情報ファイルと共に記録される。
多重化データ情報ファイルは、図25に示すように多重化データの管理情報であり、多重化データと1対1に対応し、多重化データ情報、ストリーム属性情報とエントリマップから構成される。
多重化データ情報は図25に示すようにシステムレート、再生開始時刻、再生終了時刻から構成されている。システムレートは多重化データの、後述するシステムターゲットデコーダのPIDフィルタへの最大転送レートを示す。多重化データ中に含まれるATSの間隔はシステムレート以下になるように設定されている。再生開始時刻は多重化データの先頭のビデオフレームのPTSであり、再生終了時刻は多重化データの終端のビデオフレームのPTSに1フレーム分の再生間隔を足したものが設定される。
ストリーム属性情報は図26に示すように、多重化データに含まれる各ストリームについての属性情報が、PID毎に登録される。属性情報はビデオストリーム、オーディオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム毎に異なる情報を持つ。ビデオストリーム属性情報は、そのビデオストリームがどのような圧縮コーデックで圧縮されたか、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか、アスペクト比はどれだけであるか、フレームレートはどれだけであるかなどの情報を持つ。オーディオストリーム属性情報は、そのオーディオストリームがどのような圧縮コーデックで圧縮されたか、そのオーディオストリームに含まれるチャンネル数は何であるか、何の言語に対応するか、サンプリング周波数がどれだけであるかなどの情報を持つ。これらの情報は、プレーヤが再生する前のデコーダの初期化などに利用される。
本実施の形態においては、上記多重化データのうち、PMTに含まれるストリームタイプを利用する。また、記録媒体に多重化データが記録されている場合には、多重化データ情報に含まれる、ビデオストリーム属性情報を利用する。具体的には、上記各実施の形態で示した動画像符号化方法または装置において、PMTに含まれるストリームタイプ、または、ビデオストリーム属性情報に対し、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示す固有の情報を設定するステップまたは手段を設ける。この構成により、上記各実施の形態で示した動画像符号化方法または装置によって生成した映像データと、他の規格に準拠する映像データとを識別することが可能になる。
また、本実施の形態における動画像復号化方法のステップを図27に示す。ステップexS100において、多重化データからPMTに含まれるストリームタイプ、または、多重化データ情報に含まれるビデオストリーム属性情報を取得する。次に、ステップexS101において、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成された多重化データであることを示しているか否かを判断する。そして、ストリームタイプ、または、ビデオストリーム属性情報が上記各実施の形態で示した動画像符号化方法または装置によって生成されたものであると判断された場合には、ステップexS102において、上記各実施の形態で示した動画像復号方法により復号を行う。また、ストリームタイプ、または、ビデオストリーム属性情報が、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠するものであることを示している場合には、ステップexS103において、従来の規格に準拠した動画像復号方法により復号を行う。
このように、ストリームタイプ、または、ビデオストリーム属性情報に新たな固有値を設定することにより、復号する際に、上記各実施の形態で示した動画像復号化方法または装置で復号可能であるかを判断することができる。従って、異なる規格に準拠する多重化データが入力された場合であっても、適切な復号化方法または装置を選択することができるため、エラーを生じることなく復号することが可能となる。また、本実施の形態で示した動画像符号化方法または装置、または、動画像復号方法または装置を、上述したいずれの機器・システムに用いることも可能である。
(実施の形態5)
上記各実施の形態で示した動画像符号化方法および装置、動画像復号化方法および装置は、典型的には集積回路であるLSIで実現される。一例として、図28に1チップ化されたLSIex500の構成を示す。LSIex500は、以下に説明する要素ex501、ex502、ex503、ex504、ex505、ex506、ex507、ex508、ex509を備え、各要素はバスex510を介して接続している。電源回路部ex505は電源がオン状態の場合に各部に対して電力を供給することで動作可能な状態に起動する。
例えば符号化処理を行う場合には、LSIex500は、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有する制御部ex501の制御に基づいて、AV I/Oex509によりマイクex117やカメラex113等からAV信号を入力する。入力されたAV信号は、一旦SDRAM等の外部のメモリex511に蓄積される。制御部ex501の制御に基づいて、蓄積したデータは処理量や処理速度に応じて適宜複数回に分けるなどされ信号処理部ex507に送られ、信号処理部ex507において音声信号の符号化および/または映像信号の符号化が行われる。ここで映像信号の符号化処理は上記各実施の形態で説明した符号化処理である。信号処理部ex507ではさらに、場合により符号化された音声データと符号化された映像データを多重化するなどの処理を行い、ストリームI/Oex506から外部に出力する。この出力された多重化データは、基地局ex107に向けて送信されたり、または記録メディアex215に書き込まれたりする。なお、多重化する際には同期するよう、一旦バッファex508にデータを蓄積するとよい。
なお、上記では、メモリex511がLSIex500の外部の構成として説明したが、LSIex500の内部に含まれる構成であってもよい。バッファex508も1つに限ったものではなく、複数のバッファを備えていてもよい。また、LSIex500は1チップ化されてもよいし、複数チップ化されてもよい。
また、上記では、制御部ex501が、CPUex502、メモリコントローラex503、ストリームコントローラex504、駆動周波数制御部ex512等を有するとしているが、制御部ex501の構成は、この構成に限らない。例えば、信号処理部ex507がさらにCPUを備える構成であってもよい。信号処理部ex507の内部にもCPUを設けることにより、処理速度をより向上させることが可能になる。また、他の例として、CPUex502が信号処理部ex507、または信号処理部ex507の一部である例えば音声信号処理部を備える構成であってもよい。このような場合には、制御部ex501は、信号処理部ex507、またはその一部を有するCPUex502を備える構成となる。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路または汎用プロセッサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
さらには、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適応等が可能性としてありえる。
(実施の形態6)
上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データを復号する場合、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データを復号する場合に比べ、処理量が増加することが考えられる。そのため、LSIex500において、従来の規格に準拠する映像データを復号する際のCPUex502の駆動周波数よりも高い駆動周波数に設定する必要がある。しかし、駆動周波数を高くすると、消費電力が高くなるという課題が生じる。
この課題を解決するために、テレビex300、LSIex500などの動画像復号化装置は、映像データがどの規格に準拠するものであるかを識別し、規格に応じて駆動周波数を切替える構成とする。図29は、本実施の形態における構成ex800を示している。駆動周波数切替え部ex803は、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合には、駆動周波数を高く設定する。そして、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801に対し、映像データを復号するよう指示する。一方、映像データが、従来の規格に準拠する映像データである場合には、映像データが、上記各実施の形態で示した動画像符号化方法または装置によって生成されたものである場合に比べ、駆動周波数を低く設定する。そして、従来の規格に準拠する復号処理部ex802に対し、映像データを復号するよう指示する。
より具体的には、駆動周波数切替え部ex803は、図28のCPUex502と駆動周波数制御部ex512から構成される。また、上記各実施の形態で示した動画像復号化方法を実行する復号処理部ex801、および、従来の規格に準拠する復号処理部ex802は、図28の信号処理部ex507に該当する。CPUex502は、映像データがどの規格に準拠するものであるかを識別する。そして、CPUex502からの信号に基づいて、駆動周波数制御部ex512は、駆動周波数を設定する。また、CPUex502からの信号に基づいて、信号処理部ex507は、映像データの復号を行う。ここで、映像データの識別には、例えば、実施の形態4で記載した識別情報を利用することが考えられる。識別情報に関しては、実施の形態4で記載したものに限られず、映像データがどの規格に準拠するか識別できる情報であればよい。例えば、映像データがテレビに利用されるものであるか、ディスクに利用されるものであるかなどを識別する外部信号に基づいて、映像データがどの規格に準拠するものであるか識別可能である場合には、このような外部信号に基づいて識別してもよい。また、CPUex502における駆動周波数の選択は、例えば、図31のような映像データの規格と、駆動周波数とを対応付けたルックアップテーブルに基づいて行うことが考えられる。ルックアップテーブルを、バッファex508や、LSIの内部メモリに格納しておき、CPUex502がこのルックアップテーブルを参照することにより、駆動周波数を選択することが可能である。
図30は、本実施の形態の方法を実施するステップを示している。まず、ステップexS200では、信号処理部ex507において、多重化データから識別情報を取得する。次に、ステップexS201では、CPUex502において、識別情報に基づいて映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものであるか否かを識別する。映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合には、ステップexS202において、駆動周波数を高く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、高い駆動周波数に設定される。一方、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、ステップexS203において、駆動周波数を低く設定する信号を、CPUex502が駆動周波数制御部ex512に送る。そして、駆動周波数制御部ex512において、映像データが上記各実施の形態で示した符号化方法または装置によって生成されたものである場合に比べ、低い駆動周波数に設定される。
さらに、駆動周波数の切替えに連動して、LSIex500またはLSIex500を含む装置に与える電圧を変更することにより、省電力効果をより高めることが可能である。例えば、駆動周波数を低く設定する場合には、これに伴い、駆動周波数を高く設定している場合に比べ、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することが考えられる。
また、駆動周波数の設定方法は、復号する際の処理量が大きい場合に、駆動周波数を高く設定し、復号する際の処理量が小さい場合に、駆動周波数を低く設定すればよく、上述した設定方法に限らない。例えば、MPEG4−AVC規格に準拠する映像データを復号する処理量の方が、上記各実施の形態で示した動画像符号化方法または装置により生成された映像データを復号する処理量よりも大きい場合には、駆動周波数の設定を上述した場合の逆にすることが考えられる。
さらに、駆動周波数の設定方法は、駆動周波数を低くする構成に限らない。例えば、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を高く設定し、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、LSIex500またはLSIex500を含む装置に与える電圧を低く設定することも考えられる。また、他の例としては、識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合には、CPUex502の駆動を停止させることなく、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合には、処理に余裕があるため、CPUex502の駆動を一時停止させることも考えられる。識別情報が、上記各実施の形態で示した動画像符号化方法または装置によって生成された映像データであることを示している場合であっても、処理に余裕があれば、CPUex502の駆動を一時停止させることも考えられる。この場合は、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する映像データであることを示している場合に比べて、停止時間を短く設定することが考えられる。
このように、映像データが準拠する規格に応じて、駆動周波数を切替えることにより、省電力化を図ることが可能になる。また、電池を用いてLSIex500またはLSIex500を含む装置を駆動している場合には、省電力化に伴い、電池の寿命を長くすることが可能である。
(実施の形態7)
テレビや、携帯電話など、上述した機器・システムには、異なる規格に準拠する複数の映像データが入力される場合がある。このように、異なる規格に準拠する複数の映像データが入力された場合にも復号できるようにするために、LSIex500の信号処理部ex507が複数の規格に対応している必要がある。しかし、それぞれの規格に対応する信号処理部ex507を個別に用いると、LSIex500の回路規模が大きくなり、また、コストが増加するという課題が生じる。
この課題を解決するために、上記各実施の形態で示した動画像復号方法を実行するための復号処理部と、従来のMPEG−2、MPEG4−AVC、VC−1などの規格に準拠する復号処理部とを一部共有化する構成とする。この構成例を図32Aのex900に示す。例えば、上記各実施の形態で示した動画像復号方法と、MPEG4−AVC規格に準拠する動画像復号方法とは、エントロピー符号化、逆量子化、デブロッキング・フィルタ、動き補償などの処理において処理内容が一部共通する。共通する処理内容については、MPEG4−AVC規格に対応する復号処理部ex902を共有し、MPEG4−AVC規格に対応しない、本発明の一態様に特有の他の処理内容については、専用の復号処理部ex901を用いるという構成が考えられる。特に、本発明の一態様は、エラー判定処理に特徴を有していることから、例えば、逆量子化については専用の復号処理部ex901を用い、それ以外の逆量子化、エントロピー復号、デブロッキング・フィルタ、動き補償のいずれか、または、全ての処理については、復号処理部を共有することが考えられる。復号処理部の共有化に関しては、共通する処理内容については、上記各実施の形態で示した動画像復号化方法を実行するための復号処理部を共有し、MPEG4−AVC規格に特有の処理内容については、専用の復号処理部を用いる構成であってもよい。
また、処理を一部共有化する他の例を図32Bのex1000に示す。この例では、本発明の一態様に特有の処理内容に対応した専用の復号処理部ex1001と、他の従来規格に特有の処理内容に対応した専用の復号処理部ex1002と、本発明の一態様に係る動画像復号方法と他の従来規格の動画像復号方法とに共通する処理内容に対応した共用の復号処理部ex1003とを用いる構成としている。ここで、専用の復号処理部ex1001、ex1002は、必ずしも本発明の一態様、または、他の従来規格に特有の処理内容に特化したものではなく、他の汎用処理を実行できるものであってもよい。また、本実施の形態の構成を、LSIex500で実装することも可能である。
このように、本発明の一態様に係る動画像復号方法と、従来の規格の動画像復号方法とで共通する処理内容について、復号処理部を共有することにより、LSIの回路規模を小さくし、かつ、コストを低減することが可能である。