以下、画像処理装置および画像処理方法の実施例を、添付図面を参照して詳述する。図1〜図3は、画像処理方法の第1〜第3実施例を説明するための図であり、4位相巡回の場合のGOP(Group Of Picture)構成および参照画像の割り当てを説明するためのものである。
ここで、4位相巡回とは、例えば、後に図5を参照して説明する4×4=16画素領域からA→B→C→D→A→B→C→D→…のサンプリング位置が4つの位相で巡回する場合を意味する。
なお、この具体例としては、4k2k(3840×2160ピクセル)の高解像度画像からフルハイビジョン(フルHD:1920×1080ピクセル:2k1k)の低解像度画像を巡回周期4(4位相)で抽出する場合が考えられる。
図1は、画像処理方法の第1実施例を説明するための図であり、前方予測のみを使用する符号化ストリーム構成の場合を示す。本第1実施例の画像処理方法において、サンプリング位置の巡回周期F(F=4)に合わせて、符号化対象フレームのF枚(4つ)前のフレームを第1優先の前方参照フレームに割り当てるようになっている。
ここで、I0(Iフレーム)は、フレーム間予測を用いずに符号化されるフレーム(Intra-coded Frame)を示し、また、P1〜P15(Pフレーム)は、前方向予測のみを用いて符号化されるフレーム(Predictive Frame)を示す。なお、これらIフレームおよびPフレームは、他の図でも同様の意味を示すものとして使用されている。
図1において、上部の領域R11のI0→P1→P2→P3→P4→P5→P6→…は、フレーム(ピクチャ)の入力順を示し、また、中間部の領域R12のI0→P1→P2→P3→P4→P5→P6→…は、フレームのエンコード処理順序(ENC順)を示す。すなわち、本第1実施例の画像処理方法では、フレームの入力順とENC順が等しくなっている。
また、図1において、下部の領域R13のRefPicListL0 [0]〜RefPicListL0 [3]の4段のフレームは、それぞれのENC順の各フレームに対する前方参照のフレームを優先度順に示している。
ここで、RefPicListL0 [0]は第1優先の前方参照フレーム、RefPicListL0 [2]は第2優先の前方参照フレーム、RefPicListL0 [2]は第3優先の前方参照フレーム、RefPicListL0 [3]は第4優先の前方参照フレームを示す。すなわち、前方参照フレームRefPicListL0 において、[0]が一番高い優先度であり、[1]→[2]→[3]と数が大きくなるに従って、優先度が低くなる。
図1に示されるように、本第1実施例の画像処理方法は、符号化対象フレーム(現フレーム)に対して、4つ前(1周期前)のフレームを第1優先の前方参照フレーム(RefPicListL0 [0])として割り当てる。
具体的に、例えば、符号化対象フレームP4に対して、4つ前の同じ位相のフレームI0を第1優先の前方参照フレームに割り当て、また、符号化対象フレームP5に対して、4つ前の同じ位相のフレームP1を第1優先の前方参照フレームに割り当てる。
同様に、例えば、符号化対象フレームP6に対して、4つ前の同じ位相のフレームP2を第1優先の前方参照フレームに割り当て、また、符号化対象フレームP7に対して、4つ前の同じ位相のフレームP3を第1優先の前方参照フレームに割り当てる。
すなわち、図1に示す第1実施例の画像処理方法では、サンプリング位置が4位相で巡回するので、第1優先の前方参照フレーム(RefPicListL0 [0])は、前方で同じ位相のフレームとされている。
なお、第2優先の前方参照フレーム(RefPicListL0 [1])は、符号化対象フレームの1つ前のフレームとされ、また、第3優先の前方参照フレーム(RefPicListL0 [2])は、符号化対象フレームの2つ前のフレームとされる。そして、第4優先の前方参照フレーム(RefPicListL0 [3])は、符号化対象フレームの3つ前のフレームとされる。
具体的に、例えば、符号化対象フレームP4に対して、第2優先の前方参照フレームはフレームP3とされ、また、第3優先の前方参照フレームはフレームP2とされ、そして、第4優先の前方参照フレームはフレームP1とされる。
同様に、例えば、符号化対象フレームP7に対して、第2優先の前方参照フレームはフレームP6とされ、また、第3優先の前方参照フレームはフレームP5とさ、そして、第4優先の前方参照フレームはフレームP4とされる。
このように、本第1実施例の画像処理方法は、動画像圧縮処理時に、入力される画像のサンプリング位置制御と動画像符号化のGOP構成および符号化対象フレームの参照フレームの制御を連動させている。すなわち、符号化対象フレームと同じ位相のサンプリング位置のフレームを優先的に参照フレームとして割り当てるようになっている。
ここで、例えば、H.264の場合、優先度の具体的な割り当て手法としては、参照インデックスの若番から優先度の高い参照フレームとなるように参照リストを作成する。また、優先度の高い参照フレームが動きベクトル検出処理の結果、選択されやすいようにコストの重み付けを行う。
すなわち、動きベクトル検出処理において、例えば、現マクロブロックと参照マクロブロックの間のSAD(Sum of Absolute Difference:差分絶対値和)をコストに用いる手法を適用する。
さらに、判定コストとして、SAD計算に基づくコストに参照フレーム単位で重み付けを行う。具体的に、判定コストは、例えば、[判定コスト]=[SAD計算に基づくコスト]+[参照フレーム重み]とする。
ここで、優先度の高い参照フレームの参照フレーム重みを小さい値に設定すれば、優先度の高い参照フレームのベクトルが選ばれやすくなる。なお、この計算式は、以下の図2および図3に示す第2および第3実施例の画像処理方法に対しても適用される。
以上、詳述したように、本第1実施例の画像処理方法によれば、符号化対象フレームと参照フレームのサンプリング位置が一致しているので、静止領域において、現画像ブロックと参照画ブロックの差分が小さくなり、圧縮率を向上させることができる。
また、参照インデックスの0番(第1優先の参照フレーム)に同じサンプリング位置の参照フレームを割り当てることにより、圧縮率を向上させる効果がある。
ここで、時空間的に隣接するブロックから動きベクトルを予測し、ベクトル差分値や差分データを送らないスキップマクロブロックは、極めて圧縮効率が高いモードであるが、その参照画として使用されるのは、参照インデックスの0番と規定されている。
そのため、参照インデックスの0番に割り当てられた参照画(参照フレーム)が現画像(現フレーム)のサンプリング位置と同一でない場合、カメラおよび被写体が完全に静止していたとしても、現画像と参照画の間には、サンプリング位置の差だけずれがある。これにより、物体のエッジ等高周波部分での差分が発生し、差分データが0とならない。そのため、スキップは発生し難くなる。
本実施例の画像処理方法では、参照インデックスの0番に同じサンプリング位置の参照フレームを割り当てているため、スキップ用の参照画として同サンプリング位置の参照フレームが使用され、スキップが発生する可能性が高まる。
これは、本第1実施例の画像処理方法に限定されるものではなく、後述する第2および第3実施例に関しても同様である。
図2は、画像処理方法の第2実施例を説明するための図であり、Bフレームを使用する符号化ストリーム構成の場合を示す。すなわち、図2において、B0〜B3およびB8〜B11(Bフレーム)は、前方向予測,後方向予測および双方向予測のうちいずれかを選択して符号化されるフレーム(Bi-predictive Frame)を示す。なお、このBフレームは、他の図でも同様の意味を示すものとして使用される。
本第2実施例の画像処理方法において、サンプリング位置の巡回周期F(F=4)のとき、入力順で連続するF枚(4つ)を1組とし、そのF枚の組を単位と考えて、ピクチャタイプ(I,P,B)を割り当ててGOP構成とする。すなわち、後に図11を参照して説明する4枚単位のBフレームのグループ数Lは、L=1となる。
さらに、上記GOP構成において、符号化対象フレームに対して入力順で直前の同じサンプリング位置のIまたはPフレームを第1優先の前方参照フレームとして割り当てる。さらに、入力順で直後の同じサンプリング位置のIまたはPフレームを第1優先の後方参照フレームとして割り当てる。
図2において、最上部の領域R21のB0→B1→B2→B3→I4→P5→P6→…は、フレームの入力順を示し、また、上から2番目の領域R22のI4→P5→P6→P7→B0→B1→B2→…は、フレームのENC順を示す。
さらに、図2において、上から3番目の領域R23のRefPicListL0 [0]〜RefPicListL0 [6]の7段のフレームは、それぞれのENC順のフレームに対する前方参照のフレームを示す。なお、RefPicListL0 [0]は第1優先の前方参照フレーム、RefPicListL0 [1]は第2優先の前方参照フレーム、…、そして、RefPicListL0 [6]は第7優先の前方参照フレームを示す。
また、図2において、最下部の領域R24のRefPicListL1 [0]〜RefPicListL1 [3]の4段のフレームは、それぞれのENC順のフレームに対する後方参照のフレームを示す。
ここで、RefPicListL1 [0]は第1優先の後方参照フレーム、RefPicListL1 [1]は第2優先の後方参照フレーム、RefPicListL1 [2]は第3優先の後方参照フレーム、そして、RefPicListL1 [3]は第4優先の後方参照フレームを示す。すなわち、後方参照フレームRefPicListL1 において、[0]が一番高い優先度であり、[1]→[2]→[3]と数が大きくなるに従って、優先度が低くなる。
図2に示されるように、本第2実施例の画像処理方法は、符号化対象フレームに対して入力順で直前の同じサンプリング位置のIまたはPフレームを第1優先の前方参照フレームとして割り当てる。さらに、入力順で直後の同じサンプリング位置のIまたはPフレームを第1優先の後方参照フレームとして割り当てる。
具体的に、図2に示されるように、例えば、符号化対象フレームB8に対して、4つ前の同じ位相のフレームI4を第1優先の前方参照フレームに割り当て、また、4つ後の同じ位相のフレームP12を第1優先の後方参照フレームに割り当てる。
さらに、符号化対象フレームB8に対して、直前のフレームP7を第2優先の前方参照フレームに割り当て、また、フレームP12の直後のフレームP13を第2優先の後方参照フレームに割り当てる。
また、例えば、符号化対象フレームB11に対して、4つ前の同じ位相のフレームP7を第1優先の前方参照フレームに割り当て、また、4つ後の同じ位相のフレームP15を第1優先の後方参照フレームに割り当てる。
さらに、符号化対象フレームB11に対して、フレームP7の直前のフレームP6を第2優先の前方参照フレームに割り当て、また、直後のフレームP12を第2優先の後方参照フレームに割り当てる。
また、例えば、符号化対象フレームP12に対して、4つ前のフレームはBフレーム(B8)なので、8つ前の同じ位相のフレームI4を第1優先の前方参照フレームに割り当てる。
さらに、符号化対象フレームP12の前方で最初に位置するIまたはPフレームである5つ前のフレームP7を第2優先の前方参照フレームに割り当てる。また、6つ前のフレームP6を第3優先の前方参照フレームに割り当て、7つ前のフレームP5を第4優先の前方参照フレームに割り当てる。
そして、例えば、符号化対象フレームP15に対して、4つ前のフレームはBフレーム(B3)なので、8つ前の同じ位相のフレームP7を第1優先の前方参照フレームに割り当て、また、直前のフレームP14を第2優先の前方参照フレームに割り当てる。
さらに、符号化対象フレームP15に対して、2つ前のフレームP13を第3優先の前方参照フレームに割り当て、3つ前のフレームP12を第4優先の前方参照フレームに割り当てる。
また、符号化対象フレームP15に対して、フレームP7の直前のフレームP6を第5優先の前方参照フレームに割り当て、2つ前のフレームP5を第6優先の前方参照フレームに割り当て、3つ前のフレームI4を第7優先の前方参照フレームに割り当てる。
このように、本第2実施例の画像処理方法では、符号化対象フレームに対して入力順で直前の同じサンプリング位置のIまたはPフレームを第1優先の前方参照フレームとして割り当てる。さらに、入力順で直後の同じサンプリング位置のIまたはPフレームを第1優先の後方参照フレームとして割り当てる。
本第2実施例の画像処理方法によれば、第1実施例のIおよびPフレームに加えて、Bフレームを使用することで、より一層圧縮率を向上させることができる。これは、後述する第3実施例の画像処理方法でも同様である。
図3は、画像処理方法の第3実施例を説明するための図であり、図2の第2実施例と同様に、Bフレームを使用するGOP構成の場合を示す。ただし、本第3実施例の画像処理方法において、サンプリング位置の巡回周期F(F=4)のとき、M(FとMは互いに素)枚毎にIまたはPフレームとなっている。具体的に、図3では、2枚のBフレームを挟んでIまたはPフレームが位置するようになっている。すなわち、後に図12を参照して説明するI/P間B枚数L’は、L’=2となる。
本第3実施例の画像処理方法において、サンプリング位相とピクチャタイプ(IまたはP(I/P)とBの区別)が1周するF×M枚を1単位とし、その倍数でGOPを構成する。そのGOP構成において、符号化対象フレームに対して入力順で直前の同じサンプリング位置のIまたはPフレームを第1優先の前方参照フレームとして割り当てる。
さらに、本第3実施例の画像処理方法において、入力順で直後の同じサンプリング位置のIまたはPフレームを第1優先の後方参照フレームとして割り当てる。
なお、図3において、最上部の領域R31のB0→B1→I2→B3→B4→P5→B6→…は、フレームの入力順を示し、また、上から2番目の領域R32のI2→P5→B1→P8→B0→B4→P11→…は、フレームのENC順を示す。
また、図3において、上から3番目の領域R33のRefPicListL0 [0]〜RefPicListL0 [4]の5段のフレームは、それぞれのENC順のフレームに対する前方参照のフレームを示す。さらに、最下部の領域R34のRefPicListL1 [0]〜RefPicListL1 [2]の3段のフレームは、それぞれのENC順のフレームに対する後方参照のフレームを示す。
そして、図3に示されるように、本第3実施例の画像処理方法は、サンプリング位相とピクチャタイプ(I/PとBの区別)が1周するF×M枚を1単位とし、その倍数でGOPを構成する。
このGOP構成で、符号化対象フレームに対して入力順で直前の同じサンプリング位置のI/Pフレームを第1優先の前方参照フレームとして割り当て、入力順で直後の同じサンプリング位置のI/Pフレームを第1優先の後方参照フレームとして割り当てる。
具体的に、図3に示されるように、例えば、符号化対象フレームB10に対して、4つ前のフレームはBフレーム(B6)なので、8つ前の同じ位相のフレームI2を第1優先の前方参照フレームに割り当てる。
さらに、符号化対象フレームB10に対して、直前のフレームはBフレーム(B9)なので、2つ前のフレームP8を第2優先の前方参照フレームに割り当てる。そして、そのフレームP8よりも前のI/P(IまたはP)フレームである5つ前のフレームP5を第3優先の前方参照フレームに割り当てる。
また、符号化対象フレームB10に対して、4つ後の同じ位相のフレームP14を第1優先の後方参照フレームに割り当て、直後のフレームP11を第2優先の後方参照フレームに割り当てる。
同様に、例えば、符号化対象フレームB16に対して、4つ前のフレームはBフレーム(B12)なので、8つ前の同じ位相のフレームP8を第1優先の前方参照フレームに割り当てる。
さらに、符号化対象フレームB16に対して、直前のフレームはBフレーム(B15)なので、2つ前のフレームP14を第2優先の前方参照フレームに割り当てる。そして、そのフレームP14よりも前のI/P(IまたはP)フレームである5つ前のフレームP11を第3優先の前方参照フレームに割り当てる。
また、符号化対象フレームB16に対して、4つ後の同じ位相のフレームP20を第1優先の後方参照フレームに割り当て、直後のフレームP17を第2優先の後方参照フレームに割り当てる。
そして、例えば、符号化対象フレームP20に対して、4つ前のフレームはBフレーム(B16)であり、また、8つ前のフレームもBフレーム(B12)であるため、12個前の同じ位相のフレームP8を第1優先の前方参照フレームに割り当てる。
さらに、符号化対象フレームP20に対して、その前方で最初に位置するIまたはPフレームである3つ前のフレームP17を第2優先の前方参照フレームに割り当て、さらに、6つ前のフレームP14を第3優先の前方参照フレームに割り当てる。
このように、本第3実施例の画像処理方法では、サンプリング位相とピクチャタイプ(I/PとBの区別)が1周するF×M枚を1単位とし、その倍数でGOPを構成する。そして、そのGOP構成において、符号化対象フレームに対して入力順で直前の同じサンプリング位置(同じ位相)のIまたはPフレームを第1優先の前方参照フレームとして割り当てる。同様に、入力順で直後の同じサンプリング位置のIまたはPフレームを第1優先の後方参照フレームとして割り当てる。
本第3実施例の画像処理方法によれば、第2実施例と同様に、第1実施例のIおよびPフレームに加えて、Bフレームを使用することで、より一層圧縮率を向上させることができる。
このように、各実施例の画像処理方法によれば、画素位置が互いに異なる複数枚の画像から構成される動画像シーケンスを、例えば、H.264などフレーム間予測を用いた動画像符号化規格により圧縮する場合、その圧縮効率を向上させることが可能となる。
図4は、画像処理装置の一実施例が適用される画像処理システムの全体構成を概略的に示すブロック図である。図4において、参照符号10は動画像記録装置、20は動画像再生装置、そして、30は記憶装置を示す。
動画像記録装置10は、制御部11,画像入力部12,巡回サブサンプリング部13,H.264エンコーダ14およびメモリ15を有する。画像入力部12は、例えば、イメージセンサ等であり、画像データ(画像シーケンス)を巡回サブサンプリング部13に供給する。
巡回サブサンプリング部13は、画像入力部12からの画像シーケンスを間引き処理し、後述するように、周期F(例えば、F=4)でサンプリング位置を巡回させ、サブサンプリング画像を生成してメモリ15に格納する。
H.264エンコーダ14は、メモリ15からサブサンプリング画像を読み出して、H.264(H.264/MPEG-4 AVC)規格に従って符号化し、その符号化されたデータを記憶装置30に格納する。なお、上述の各処理は、例えば、CPU(Central Processing Unit)である制御部11により制御される。
動画像再生装置20は、制御部21,H.264デコーダ22,合成部23,表示部24およびメモリ25を有する。H.264デコーダ22は、記憶装置30からサブサンプリング画像を読み出し、H.264規格に従って復号化し、その復号化された画像データをメモリ25に格納する。合成部23は、メモリ25から画像データを読み出し、補間画像を生成して表示部24に表示する。
ここで、画像入力部12から巡回サブサンプリング部13に供給される画像および合成部23により合成されて表示部24に表示される画像は、例えば、4k2kといった高解像度画像である。また、巡回サブサンプリング部13により生成されたサブサンプリング画像および合成部23に供給される画像は、例えば、フルHDといった低解像度画像である。なお、これらは単なる例であり、様々な場合があり得るのはいうまでもない。
また、動画像記録装置10,動画像再生装置20および記憶装置30は、例えば、カムコーダのような1つの装置に設けられることもあるが、動画像記録装置10,動画像再生装置20および記憶装置30を分離することもある。
具体的に、例えば、動画像記録装置10が撮影カメラであり、その撮影カメラによる動画像が広域放送局の記憶装置30に格納され、その広域放送を受信した各家庭に設けられた動画像再生装置20により再生を行うといった場合も考えられる。
或いは、後に、図15を参照して詳述するように、動画像記録装置10および動画像再生装置20を分離し、通信手段(送信機31および受信機32)を介して動画像記録装置10からの画像を動画像再生装置20で再生することもできる。
すなわち、図4の画像処理システムは、動画像記録装置10,動画像再生装置20および記憶装置30は、それぞれ別の装置として構成されることもあるが、それらの幾つかまたは全てを一体化して1つの装置として構成されることもある。
図5は、4位相巡回によるサブサンプリング画像の生成を説明するための図であり、また、図6は、4位相巡回によるサブサンプリング画像から補間画像の生成を説明するための図である。ここで、図5は、図4の巡回サブサンプリング部13における処理に相当し、また、図6は、図4の合成部23における処理に相当する。
図5は、例えば、高解像度画像(例えば、4k2k)の入力画から、低解像度画像(例えば、フルHD)のサブサンプリング画を生成する様子を示す。すなわち、図5は、例えば、4k2kの各画素を注目点として、周辺の画素との演算(LPFフィルタ)によってリサンプリング画素を演算する際の位相A,B,C,Dを示し、4k2kのうちの4×4画素を抜粋して図示したものである。
LPFフィルタ(LPF)は、中心画素に対して一定の大きさを持っており、例えば、3×3や5×5、或いは、偶数の場合もある。具体的に、例えば、図5に示すフレーム0の4×4画素領域における左上端の画素(A)を考えると、この画素を中心としてその上下左右の周辺を含めた3×3や5×5の領域の画素データをLPFに入力し、LPFにより間引いたサンプリング、すなわち、サブサンプリングが行われる。
すなわち、巡回サブサンプリング部13は、画像入力部12からの画像を間引いてサブサンプリング画像を生成し、そのサブサンプリング画像をメモリ15に書き込む。ここで、図5に示されるように、巡回サブサンプリング部13で行われる間引き処理は、例えば、縦1/2,横1/2の間引きとされ、1周期を4巡回(4位相:A,B,C,D)で行うようになっている。
具体的に、4×4の16画素に対して、最初のフレーム0では、4つの画素Aを重心(中心)とし、また、次のフレーム1では、4つの画素Bを重心として、サブサンプリング画像を生成する。
さらに、4×4の16画素に対して、フレーム2では、4つの画素Cを重心とし、また、次のフレーム3では、4つの画素Dを重心として、サブサンプリング画像を生成する。そして、さらに次のフレーム4では、再び4つの画素Aを重心として、サブサンプリング画像を生成し、同様の処理を繰り返す。
ここで、巡回サブサンプリング部13により間引きが行われて生成されたサブサンプリング画像(4位相巡回サブサンプリング画像)は、それぞれ入力画に比べて1/4の画像サイズとなる。
H.264エンコーダ14は、メモリ15からサブサンプリング画像を読み出し、H.264の符号化処理を行う。なお、H.264エンコーダ14は、H.264の符号化処理中、適宜、メモリ15に対するローカルデコード画像の書き込み、並びに、メモリ15からの参照画像の読み出しを行う。そして、H.264エンコーダ14により生成されたH.264ストリームは、記憶装置30に書き込まれる。
動画像再生装置20において、H.264デコーダ22は、記憶装置30からH.264ストリームを読み出し、H.264の復号処理を行う。なお、H.264デコーダ22は、この復号処理中、適宜、メモリ25からの参照画像の読み出し、並びに、メモリ25に対するデコード画像の書き込みを行う。
ここで、メモリ25に書き込まれたデコード画像は、元の入力画の1/4のサイズの画像であるため、合成部23では、1/4サイズ画像から元画像サイズに補間拡大した表示画像を生成し、表示部24で表示する。
この合成部23で行われる補間拡大は、時間的に近接する画像を用いて行われる。すなわち、補間手法の一例を挙げると、領域単位で動き検出を行い、動きのない領域は、近接フレームの対応するサンプリング位置の画素を用いたフレーム間補間を行う。そして、動きのある領域は、自フレームの周辺画素からのフレーム内補間を行うといった手法がある。
図6に示されるように、具体的に、4つの画素Cによるサブサンプリング画像(サンプリング位相Cのフレーム2)の補間画像を生成する場合、最初のフレーム0から5番目のフレーム4までのサブサンプリング画像を用いる。
サンプリング位相Cについては、そのサブサンプリング画像の画素をそのまま使用し、他のサンプリング位相A,BおよびDは、補間により生成する。
その際、同じサンプリング位相Aのフレーム0とフレーム4を用いて動き検出処理を行い、動きがない領域と判定された場合は、フレーム0,1および3の画像を用いて、サンプリング位相A,BおよびDの画素の補間を行う。
また、動きがあると判定された場合には、フレーム2のサンプリング位相Cの周辺画素からサンプリング位相A,BおよびDの画素の補間を行う。
本実施例のシステムでは、記録側で巡回位相画像シーケンスを圧縮し、再生側で補間処理を行って元画サイズ画像を生成するので、元画をそのまま圧縮するのに比べて少ないデータ量で記録が可能である。
図7は、動画像記録装置の動作を説明するための制御ブロック図である。図7に示されるように、巡回サブサンプリング部13およびH.264エンコーダ14は、制御部11からの指示に従って、フレーム単位で所定の動作を行うようになっている。
すなわち、巡回サブサンプリング部13は、制御部11からのサンプリング位相指示に従って、入力画像から指定された位相の間引き処理を行い、サブサンプリング画像をメモリ15に格納する。
H.264エンコーダ14は、制御部11から指示されたエンコード入力画像をメモリ15から読み出し、指定されたピクチャタイプ(PicType)および参照リストに従ってエンコード処理を行う。
すなわち、エンコード処理順序(ENC順:EncOrder)やピクチャタイプなどのストリームのGOP構成に関わる情報は、制御部11から指示される構成となっている。そして、制御部11は、これらの指示を行うために、入力画像管理テーブルおよび参照画像管理テーブルを使用するようになっている。
すなわち、制御部11では、これら入力画像管理および参照画像管理テーブルをフレーム単位で処理し、適宜更新しながらH.264エンコーダ14に対して指示を行う。
図8は、IPPP構造のシーケンスにおける入力画像管理テーブルおよび参照画像管理テーブルの例を示す図であり、前述した図1の場合に対応したものである。ここで、図8(a)は、i=3のフレーム入力時の入力画像管理テーブルを示し、また、図8(b)は、i=4のフレームのエンコード時の参照画像管理テーブルを示す。
まず、図8(a)に示されるように、入力画像管理テーブルは、フレームIDのInFrame0, InFrame1, InFrame2, InFrame3に対して、サンプリング位相がA,B,C,Dとなっている場合(F=4)を示す。また、フレームIDに対して、入力順(i)およびENC順は、同様に、0,1,2,3となり、ピクチャタイプは、I,P,P,Pとなっている。
具体的に、図8(a)のテーブルは、図1のような入力順がI0→P1→P2→P3に対して、ENC順もI0→P1→P2→P3となり、サンプリング位相がA→B→C→Dとなっている様子を示す。
次に、図8(b)に示されるように、参照画像管理テーブルは、フレームIDのRefFrame0, RefFrame1, RefFrame2, RefFrame3に対して、サンプリング位相がA,B,C,Dで、入力順(PicNum(=i)が0,1,2,3となる場合を示す。ここで、フレームIDのRefFrame0, RefFrame1, RefFrame2, RefFrame3に対して、L0ListIdxは、0,3,2,1となる。
具体的に、図8(b)のテーブルは、図1のフレームP4に対して、同じ位相のフレームI0が第1優先の前方参照フレームに割り当てられ、フレームP3,P2およびP1が、それぞれ第2,第3および第4優先の前方参照フレームに割り当てられる様子を示す。
ここで、図8(b)の参照画像管理テーブルにおいて、L0ListIdxは、前方参照フレームの優先度を示し、また、L1ListIdxは、後方参照フレームの優先度を示す。なお、図8(b)では、ピクチャタイプがIおよびPなので、L1ListIdxは設定されない(『−』)。また、優先度は、『0』が一番高く、『1』→『2』→『3』と数が増えるに従って低くなるのは、前述した通りである。
図9は、IPPP構造のシーケンスにおける入力画像管理テーブルの情報生成処理を説明するためのフローチャートであり、上述した図8(a)のような入力画像管理テーブルの情報を生成するための処理を一般化して示すものである。
すなわち、図9は、例えば、前述した図1に対応する入力画像管理テーブルの情報を生成するための処理を示し、GOP単位における入力順(i)の画像(フレーム)に対するピクチャタイプ(PicType)、エンコード処理順序(EncOrder)の生成処理を示している。
図9に示されるように、入力画像管理テーブルの情報生成処理が開始すると、ステップST11において、サンプリング巡回周期Fを取得してステップST12に進み、GOP構成を決定し、GOP内のフレーム数Nを、N=F*KとしてステップST13に進む。ここで、Kは、自然数(K=1,2,3,…)であり、Nは、Fの倍数となる。
すなわち、サブサンプリングの巡回周期Fに応じたGOP構成を決定して、ステップST13に進む。なお、図1は、F=4,K=4の場合であり、GOP内フレーム数Nは、N=F*K=4*4=16(枚)となる。
ステップST13では、i=0としてステップST14に進み、ステップST14で、i==0かどうかを判定する。
ステップST14において、i==0であると判定すると、ステップST15に進んで、ピクチャタイプ(PicType(i))をIピクチャ(I-picture)としてステップST17に進む。一方、ステップST14において、i==0ではないと判定すると、ステップST16に進んで、ピクチャタイプをPピクチャ(P-picture)としてステップST17に進む。
ステップST17では、ENC順をiとして(EncOrder(i)=i)、ステップST18に進み、iに1を加算して(i=i+1)、ステップST19に進む。
ステップST19では、i==N−1かどうかを判定し、i==N−1ではないと判定すると、ステップST14に戻って同様の処理を繰り返す。そして、ステップST19において、i==N−1である、すなわち、GOP内のフレーム数Nまで処理を行った(i=0〜15までの16枚の処理が完了した)と判定すると、入力画像管理テーブルの情報生成処理を終了する。
これにより、図8(a)の入力画像管理テーブルや図1のフレーム配列に対応した情報を有する入力画像管理テーブルを生成することができ、この入力画像管理テーブルを使用することで、第1実施例の画像処理方法(画像圧縮方法)を実現することが可能となる。
以上において、サンプリング巡回周期Fは、4に限定されるものではなく、様々に変更することができるのはいうまでもない。
図10は、IPB構造のシーケンスの一例における入力画像管理テーブルおよび参照画像管理テーブルの例を示す図であり、前述した図2の場合に対応したものである。ここで、図10(a)は、i=15のフレーム入力時の入力画像管理テーブルを示し、また、図10(b)は、i=8のフレームのエンコード時の参照画像管理テーブルを示す。
まず、図10(a)に示されるように、入力画像管理テーブルは、フレームIDのInFrame0, InFrame1, InFrame2, InFrame3, …, InFrame6, InFrame7に対して、サンプリング位相がA,B,C,D,…,C,Dとなっている場合(F=4)を示す。
さらに、入力画像管理テーブルは、入力順(i)が8,9,10,11,12,13,14,15に対して、ENC順が12,13,14,15,8,9,10,11となり、ピクチャタイプがB,B,B,B,P,P,P,Pとなっている場合を示す。
具体的に、図10(a)のテーブルは、図2のような入力順がB8→B9→B10→B11→P12→P13→P14→P15に対して、ENC順がP12→P13→P14→P15→B8→B9→B10→B11となっている様子を示す。なお、サンプリング位相は、A→B→C→D→A→B→C→Dとなっている。
次に、図10(b)に示されるように、参照画像管理テーブルは、フレームIDのRefFrame0, RefFrame1, RefFrame2, RefFrame3, RefFrame4, RefFrame5, RefFrame6, RefFrame7に対して、サンプリング位相がA,B,C,D,A,B,C,Dとなる場合を示す。
なお、入力順は4,5,6,7,12,13,14,15となり、L0ListIdxは0,3,2,1,−,−,−,−となり、L1ListIdxは−,−,−,−,0,1,2,3となっている。
具体的に、図10(b)のテーブルは、図2のフレームB8に対して、同じ位相のフレームI4が第1優先の前方参照フレームに、また、フレームP7,P6およびP5が、それぞれ第2,第3および第4優先の前方参照フレームに割り当てられる様子を示す。
また、図10(b)のテーブルは、図2のフレームB8に対して、同じ位相のフレームP12が第1優先の後方参照フレームに、また、フレームP13,P14およびP15が、それぞれ第2,第3および第4優先の後方参照フレームに割り当てられる様子を示す。
図11は、IPB構造のシーケンスの一例における入力画像管理テーブルの情報生成処理を説明するためのフローチャートであり、上述した図10(a)のような入力画像管理テーブルの情報を生成するための処理を一般化して示すものである。
すなわち、図11は、例えば、前述した図2に対応する入力画像管理テーブルの情報を生成するための処理を示し、GOP単位における入力順(i)の画像に対するピクチャタイプ(PicType)、エンコード処理順序(EncOrder)の生成処理を示している。
図11に示されるように、入力画像管理テーブルの情報生成処理が開始すると、ステップST21において、サンプリング巡回周期Fを取得して、ステップST22に進む。
ステップST22では、GOP構成を決定し、I/P間Bグループ数(IまたはPフレームの間のBフレームのグルール数)Lを設定し、GOP内のフレーム数Nを、N=(L+1)*F*KとしてステップST23に進む。ここで、Kは、自然数(K=1,2,3,…)であり、Nは、(L+1)*Fの倍数となる。
なお、図2は、F=4,L=1,K=2の場合であり、GOP内フレーム数Nは、N=(L+1)*F*K=2*4*2=16(枚)となる。すなわち、図2は、I/P間Bグループ数Lは、4枚単位のBフレームの1つのグループにより処理する場合を示し、L=1になっている。
ステップST23では、i=0としてステップST24に進み、ステップST24で、i%(F*(L+1))<F*Lが成立するかどうかを判定する。ここで、図2の場合、F*(L+1)およびF*Lは、F=4,L=1なので、F*(L+1)=8、また、F*L=4となる。
すなわち、ステップST24において、iを8で割り、余りが4よりも小さければ、ステップST26に進み、それ以外は、ステップST25に進む。従って、図2の場合、iが0〜3および8〜11のとき、余りが0〜3になるので、i%8<4と判定され、ステップST26に進む。
ステップST26では、ピクチャタイプ(PicType(i))をBピクチャ(B-picture)とし、さらに、ENC順を、iに4を加算した順番とし、そして、ステップST30に進む。従って、図2に示されるように、入力順が1〜4番目(i=0〜3)および9〜12番目(i=8〜11)の画像がBフレームとなり、ENC順は、入力順に4加算された順番となる。
一方、ステップST24において、i%8<4ではないと判定すると、ステップST25に進んで、i=F*Lかどうかを判定する。
ステップST25において、i=F*L=4であると判定するとステップST27に進んで、ピクチャタイプ(PicType(i))をIピクチャ(I-picture)とし、さらに、ステップST29に進む。従って、図2に示されるように、入力順が5番目の画像(5枚目の入力フレーム:i=4)だけがIフレームとなる。
逆に、ステップST25において、i=F*Lではないと判定すると、ステップST28に進んで、ピクチャタイプ(PicType(i))をPピクチャ(P-picture)とし、さらに、ステップST29に進む。従って、図2に示されるように、入力順が6〜8番目(i=5〜7)および13〜16番目(i=12〜15)の画像がPフレームとなる。
そして、ステップST29において、エンコード処理順序(EncOrder(i):ENC順)を、EncOrder(i)=i−F*L=i−4としてステップST30に進む。すなわち、IフレームおよびPフレームのENC順は、入力順から4だけ減算した順番となる。
ステップST30では、iに1を加算して(i=i+1)、ステップST31に進み、i==N−1かどうかを判定し、i==N−1ではないと判定すると、ステップST24に戻って同様の処理を繰り返す。そして、ステップST31において、i==N−1である、すなわち、GOP内のフレーム数Nまで処理を行った(i=0〜15までの16枚の処理が完了した)と判定すると、入力画像管理テーブルの情報生成処理を終了する。
これにより、図10(a)の入力画像管理テーブルや図2のフレーム配列に対応した情報を有する入力画像管理テーブルを生成することができ、この入力画像管理テーブルを使用することで、第2実施例の画像処理方法を実現することが可能となる。
図12は、IPB構造のシーケンスの他の例における入力画像管理テーブルの情報生成処理を説明するためのフローチャートであり、例えば、前述した図3に対応する入力画像管理テーブルの情報を生成するための処理を示す。
図12に示されるように、入力画像管理テーブルの情報生成処理が開始すると、ステップST41において、サンプリング巡回周期F(=4)を取得して、ステップST42に進む。
ステップST42では、GOP構成を決定し、I/P間B枚数(IまたはPフレームの間のBフレームの枚数)L’(=2)を設定し、GOP内のフレーム数Nを、N=LMC(L’+1,F)*KとしてステップST43に進む。
なお、図3は、F=4,L’=2,K=2の場合であり、LMC(L’+1,F)、すなわち、3と4の最小公倍数(LMC)は12となり、N=LMC(L’+1,F)*K=LMC(3,4)*2=12*2=24(枚)となる。すなわち、図3では、I/P間B枚数L’=2とされ、これにより、以下に述べるように、F=4(4位相巡回)のときに2枚単位のBフレームのグループにより処理するようになっている。
ステップST43では、i=0としてステップST44に進み、ステップST44で、i%(L’+1)=L’が成立するかどうかを判定する。ここで、図3の場合、i%(L’+1)=L’は、L’=2なので、ステップST44では、i%3=2かどうかを判定する。
ステップST44において、iを3で割り、余りが2であると判定すれば、ステップST45に進み、それ以外は、ステップST46に進む。ステップST45では、i==L’かどうかを判定し、i==L’であると判定すれば、ステップST47に進む。
従って、図3に示されるように、i=2のとき、ステップST47に進んで、ピクチャタイプ(PicType(i))をIピクチャ(I-picture)とし、さらに、ステップST50に進んで、ENC順を0とし、そして、ステップST56に進む。
ステップST45において、i==L’ではない、すなわち、iが2ではないと判定すると、ステップST48に進んで、ピクチャタイプ(PicType(i))をPピクチャ(P-picture)とし、さらに、ステップST49に進む。
ステップST49では、i==2L’+1かどうかを判定し、i==2L’+1である、すなわち、iが5であると判定すると、ステップST51に進んで、ENC順を1とし、そして、ステップST56に進む。
ステップST49において、i==2L’+1ではない、すなわち、iが5ではないと判定すると、ステップST52に進んで、ENC順(EncOrder(i))を、次の式(1)により求め、そして、ステップST56に進む。
従って、ステップST52の処理により、図3に示されるように、入力順が9,12,15,18,21および24番目のPフレーム(P8,P11,P14,P17,P20およびP23)のENC順は、それぞれ5だけ減算されることになる。
一方、ステップST44において、i%3=2ではないと判定すると、ステップST46に進み、ピクチャタイプ(PicType(i))をBピクチャ(B-picture)とし、さらに、ステップST53に進んで、最初のBピクチャ(フレーム)かどうかを判定する。すなわち、入力順が、2枚単位のBフレームのグループにおける最初(1枚目)のフレームであると判定すると、ステップST54に進み、最初のフレームではない(2枚目のフレームである)と判定すると、ステップST55に進む。
そして、ステップST54では、次の式(2)によりENC順を求め、また、ステップST55では、次の式(3)によりENC順を求め、そして、ステップST56に進む。
従って、ステップST54の処理により、例えば、図3における入力順が4,10,16,…のBフレーム(P3,B9,B15,…)のENC順は、それぞれ4だけ加算されることになる。また、ステップST55の処理により、例えば、図3における入力順が5,11,17,…のBフレーム(P4,B11,B16,…)のENC順は、それぞれ1だけ加算されることになる。
そして、ステップST56では、iに1を加算して(i=i+1)、ステップST57に進み、i==N−1かどうかを判定し、i==N−1ではないと判定すると、ステップST44に戻って同様の処理を繰り返す。そして、ステップST57において、i==N−1である、すなわち、GOP内のフレーム数Nまで処理を行った(i=0〜23までの24枚の処理が完了した)と判定すると、入力画像管理テーブルの情報生成処理を終了する。
これにより、図3のフレーム配列に対応した情報を有する入力画像管理テーブルを生成することができ、この入力画像管理テーブルを使用することで、第3実施例の画像処理方法を実現することが可能となる。
図13は、参照バッファの登録処理を説明するためのフローチャートであり、例えば、図8(b)および図10(b)における RefFrame0〜RefFrame3 および RefFrame0〜RefFrame7の参照バッファへの登録処理に関するものである。
なお、図13は、Iピクチャ(フレーム)およびPピクチャを参照画とし、また、Bピクチャを非参照画とし、そして、GOP単位で参照画の依存関係をクリアするクローズドGOP(Closed GOP)の構成として説明する。
図13に示されるように、参照バッファへの登録処理が開始すると、まず、ステップST61において、GOPの先頭かどうかを判定する。
ステップST61で、GOPの先頭であると判定すると、ステップST62に進んで、参照バッファをクリアしてステップST63に進み、また、ステップST61で、GOPの先頭ではないと判定すると、そのままステップST63に進む。
ステップST63において、Bピクチャかどうかを判定し、Bピクチャであると判定すると、Bピクチャは非参照なので、参照バッファへの登録処理を終了する。また、ステップST63において、Bピクチャではない、すなわち、IまたはP(I/P)ピクチャであると判定すると、ステップST64に進んで、現フレーム(IまたはPピクチャ)を参照バッファへ登録して、ステップST65に進む。
ステップST65では、参照バッファ枚数が閾値よりも大きいかどうかを判定し、参照バッファ枚数が閾値よりも大きい(参照バッファ>閾値)と判定すると、ステップST66に進み、また、そうでなければ、参照バッファへの登録処理を終了する。
ステップST66では、最も過去のフレーム、すなわち、入力順(PicNum)が最も小さいフレームを参照バッファから削除して、参照バッファへの登録処理を終了する。すなわち、登録の際、参照バッファ枚数が規定の枚数を越えた場合には、入力順で最も過去のフレームを参照リストから削除する。
なお、参照バッファの規定枚数は、例えば、前述した図1では4枚、図2では、8枚、そして、図3では5枚となっている。また、図13を参照して説明した参照バッファへの登録処理は、フレーム符号化処理の終了時に行われ、各フレーム(ピクチャ)に対して行われる。
図14は、参照リストの生成処理を説明するためのフローチャートである。この図14を参照して説明する参照リストの生成処理は、フレーム符号化処理の開始時に行われる。
図14に示されるように、参照リストの生成処理が開始すると、ステップST71において、Iピクチャがどうかを判定し、Iピクチャであると判定すると参照リストの生成処理を終了し、そうでなければ、ステップST72に進む。すなわち、Iピクチャの場合は、参照リストは不要なので、そのまま参照リストの生成処理を終了する。
ステップST72では、Pピクチャかどうかを判定し、Pピクチャであると判定すると、ステップST73に進んで、参照フレームをL0ListIndexの若番からPicNum降順に並べ替えて、ステップST74に進む。
具体的に、ステップST73では、例えば、図2のENC順が9番目のフレームP12に対して、L0ListIndexの最も若番である前方参照画の優先順位のIdxが0(RefPicList0[0])から4(RefPicList0[4])に対して、入力順(PicNum)の降順に並べる。すなわち、RefPicList0[0]にP7,RefPicList0[1]にP6,RefPicList0[2]にP5,RefPicList0[3]にI4としてリストを生成する。
さらに、ステップST74において、現フレームと同位相の参照フレームの中で、最上位のフレームのL0Listの先頭(Idx=0)に昇格して、参照リストの生成処理を終了する。すなわち、ステップST74では、生成されたリストを、符号化処理対象フレームのサンプリング位相と同じ位相で最上位にある(Idxが若い)フレームを、最優先に昇格させるリスト修正を行う。
具体的に、ステップST74では、例えば、図2のENC順が9番目のフレームP12に対して、RefPicList0[3]のI4がP12(現フレーム)と同位相なので、Idx=0に昇格する。すなわち、I4を第1優先の前方参照フレームRefPicList0[0]に昇格させ、それに伴って、P7〜P5を降格させる。これにより、RefPicList0[0]にI4,RefPicList0[1]にP7,RefPicList0[2]にP6,RefPicList0[3]にP5となるリストが生成される。
すなわち、最優先の参照フレームは、参照バッファに同位相フレームがない場合を除き、現処理対象フレームと同位相となり、以降は、現処理対象フレームに時間的に近い順から優先されるリストとなる。
ステップST72において、Pピクチャではない、すなわち、Bピクチャであると判定すると、ステップST75に進み、参照バッファから現フレームよりも表示順(入力順)で前(PicNumが小さい)参照フレームをL0List用に抽出して、ステップST76に進む。
ここで、Bピクチャの場合は、前方参照フレーム(L0List)および後方参照フレーム(L1List)の両方を生成することになる。なお、L0Listは、前方参照画の優先順位を規定し、また、L1Listは、後方参照画の優先順位を規定する。
ステップST76では、参照フレームをL0ListIndexの若番からPicNumの降順に並べ替えて、ステップST77に進む。すなわち、L0Listの生成は、処理対象フレームよりも、PicNumが小さい(過去の)フレームを抽出し、抽出された参照フレームをIdxの若番から、PicNumの大きい方から小さい方に向かう降順にリストを生成する。
ステップST77では、現フレームと同位相の参照フレームの中で、最上位のフレームのL0Listの先頭(Idx=0)に昇格するリスト修正を行って、ステップST78に進む。ここで、ステップST76およびST77は、前述したPピクチャに対するステップST73およびST74の処理と同様のものである。
ステップST78では、参照バッファから現フレームよりも表示順(入力順)で後(PicNumが大きい)参照フレームをL1List用に抽出して、ステップST79に進む。ステップST79では、参照フレームをL1ListIndexの若番からPicNumの昇順に並べ替えて、ステップST80に進む。
すなわち、L1Listの生成は、処理対象フレームよりも、PicNumが大きい(未来の)フレームを抽出し、抽出された参照フレームをIdxの若番から、PicNumの小さい方から大きい方に向かう昇順にリストを生成する。
具体的に、ステップST78では、例えば、図2のENC順が15番目のフレームB10に対して、L1ListIndexの最も若番である後方参照画の優先順位のIdxが0(RefPicList1[0])から4(RefPicList1[4])に対して、入力順(PicNum)の昇順に並べる。すなわち、RefPicList1[0]にP12,RefPicList1[1]にP13,RefPicList1[2]にP14,RefPicList1[3]にP15としてリストを生成する。
ステップST80では、現フレームと同位相の参照フレームの中で、最上位のフレームのL1Listの先頭(Idx=0)に昇格するリスト修正を行って、参照リストの生成処理を終了する。
具体的に、ステップST80では、例えば、図2のENC順が15番目のフレームB10に対して、RefPicList1[2]にP14がB10(現フレーム)と同位相なので、Idx=0に昇格する。すなわち、P14を第1優先の後方参照フレームRefPicList1[0]に昇格させ、それに伴って、P12,P13を降格させる。これにより、RefPicList1[0]にP14,RefPicList1[1]にP12,RefPicList1[2]にP14,RefPicList1[3]にP15となるリストが生成される。
以上により、L0ListおよびL1Listともに最優先の参照フレームは、参照バッファに同位相フレームがない場合を除き、現処理対象フレームと同位相となり、以降は、現処理対象フレームに時間的に近い順から優先されるリストとなる。
図15は、画像処理装置の他の実施例が適用される画像処理システムの全体構成を概略的に示すブロック図である。図15において、参照符号10は動画像記録装置、20は動画像再生装置、31は送信機、そして、32は受信機を示す。
動画像記録装置10は、制御部11,画像入力部12,サブサンプリング回路130,H.264エンコード回路140およびメモリ15を有する。サブサンプリング回路130は、固定サブサンプリング部131および巡回サブサンプリング部132を有し、また、H.264エンコード回路140は、第1エンコーダ141,第2エンコーダ142およびマルチプレクサ143を有する。
画像入力部12は、例えば、イメージセンサ等であり、画像データ(画像シーケンス)をサブサンプリング回路130における固定サブサンプリング部131および巡回サブサンプリング部に供給する。
固定サブサンプリング部131は、画像入力部12からの画像シーケンスを処理し、図16を参照して後述するように、固定されたサンプリング位置により間引き処理した固定サブサンプリング画像を生成してメモリ15に格納する。
巡回サブサンプリング部132は、画像入力部12からの画像シーケンスを処理し、図16を参照して後述するように、周期Fでサンプリング位置を巡回させて間引き処理し、サブサンプリング画像を生成してメモリ15に格納する。
H.264エンコード回路140の第1エンコーダ141および第2エンコーダ142は、それぞれメモリ15からサブサンプリング画像を読み出して、H.264規格に従って符号化し、その符号化されたデータをマルチプレクサ143に供給する。なお、上述の各処理は、例えば、CPUである制御部11により制御される。
動画像再生装置20は、制御部21,H.264デコード回路220,合成部230,表示部24,メモリ25および表示選択部26を有する。H.264デコード回路220は、動画像記録装置10からのデータを送信機31および受信機32を介して受け取るデマルチプレクサ223、並びに、第1デコーダ221および第2デコーダ222を有する。
H.264デコード回路220の第1デコーダ221および第2デコーダ222は、マルチプレクサ223からサブサンプリング画像を受け取って、H.264規格に従って復号化し、その復号化された画像データをメモリ25に格納する。合成部230は、メモリ25から画像データを読み出し、補間画像を生成して表示選択部26に供給する。
表示選択部26は、メモリ25から読み出した画像データまたは合成部230からの画像データを選択し、その選択された画像データを表示部24に表示する。ここで、メモリ25から表示選択部26に直接供給される画像データは、例えば、フルHDといった低解像度画像であり、また、合成部230から表示選択部26に供給される画像データは、例えば、4k2kといった高解像度画像である。
さらに、画像入力部12からサブサンプリング回路130に供給される画像は、例えば、4k2kといった高解像度画像である。また、固定サブサンプリング部131および巡回サブサンプリング部132により生成されたサブサンプリング画像、並びに、送信機31から受信機32に伝送される画像は、例えば、フルHDといった低解像度画像である。なお、これらは単なる例であり、様々な場合があり得るのはいうまでもない。
また、図15では、動画像記録装置10からのデータは、送信機31および受信機32を介して動画像再生装置20に供給されているが、この送信機31および受信機32は、例えば、前述した図4のように、記憶装置に置き換えることもできる。
図16は、固定位相+3位相巡回によるサブサンプリング画像の生成を説明するための図である。ここで、図16では、図15を参照して説明したように、固定サブサンプリング部131および巡回サブサンプリング部132により、固定位相のサブサンプリングと巡回位相のサブサンプリングの2つのサブサンプリング画像が生成される。
具体的に、図16に示されるように、例えば、縦1/2,横1/2の間引きとすると、固定位相のサブサンプリングは、1位相(A)により行われ、また、巡回位相のサブサンプリングは、1周期を3巡回(3位相:B,C,D)により行われる。なお、間引き後の画像サイズは、入力画像に比べて、1/4の画像サイズとなる。
具体的に、まず、固定サブサンプリング部131による固定位相のサブサンプリングは、例えば、4×4の16画素の入力画に対して、全てのフレーム0〜7に対して、同じ位相の4つの画素Aを間引いて取り込む。これにより、1位相巡回サンプリング画を得ることができる。
また、巡回サブサンプリング部132による巡回位相のサブサンプリングは、4×4の16画素の入力画に対して、最初のフレーム0で4つの画素Bを間引いて取り込み、また、次のフレーム1で4つの画素Cを間引いて取り込む。
さらに、その次のフレーム2で4つの画素Dを間引いて取り込み、そして、フレーム2で4つの画素Cを間引いて取り込む。その後、さらに次のフレーム3で最初のフレーム0と同じ位相の4つの画素Bを間引いて取り込み、同様の処理を繰り返す。このようにして、3位相巡回サンプリング画を得ることができる。
ところで、前述した図15のH.264エンコード回路140は、メモリ15に書き込まれた2つのサンプリング画像シーケンスを読み出し、それぞれ第1エンコーダ141および第2エンコーダ142に供給してH.264の符号化処理を行う。
ここで、符号化処理中、H.264エンコード回路140は、適宜、メモリ15に対してローカルデコード画像の書き込みや参照画像の読み出しを行い、生成された2つのH.264ストリームは、マルチプレクス143で多重化され、送信機31へ送られる。
なお、図15に示す例では、H.264エンコード回路140が2つのエンコーダ141,142を有しているが、例えば、1つのエンコーダにより時分割処理を行ってもよい。また、ストリーム構成として、元々2つのH.264ストリームとして扱うのではなく、例えば、MVC(Multi View Coding)を用いて、1つのストリームとして生成することもできる。
このようにして生成されたストリームは、前述したように、送信機31および受信機32を経由して、動画像再生装置20へ入力される。動画像再生装置20に入力されたH.264ストリームは、H.264デコード回路220によりH.264の復号処理が行われる。
図17は、固定位相+3位相巡回によるサブサンプリング画像から補間画像の生成を説明するための図である。ここで、図17では、合成部230により固定位相サブサンプリング画および3位相巡回サブサンプリング画から補間画像が生成される。
H.264デコード回路220において、入力されたH.264ストリームは、デマルチプレクサ223により固定位相サブサンプリング画像シーケンスおよび巡回位相サブサンプリング画像シーケンスのストリームにデマルチプレクス(分配)される。
そして、固定位相サブサンプリング画像シーケンス(固定位相サブサンプリング画)のストリームは、例えば、第1デコーダ221に入力されてH.264の復号処理が行われる。同様に、巡回位相サブサンプリング画像シーケンス(3位相巡回サブサンプリング画)のストリームは、例えば、第2デコーダ222に入力されてH.264の復号処理が行われる。
ここで、復号化処理中、H.264デコード回路220は、適宜、メモリ25から参照画像の読み出しを行い、そして、デコード画像をメモリ25へ書き込む。なお、メモリ25に書き込まれたデコード画像は、元の入力画の1/4のサイズの画像である。
合成部230では、上記1/4サイズの画像から元の画像サイズに補間拡大した表示画像を生成する。なお、合成部230に入力される1/4サイズの画像は、例えば、フルHDの低解像度画像であり、また、合成部230から出力される画像は、例えば、4k2kの高解像度画像であるのは、前述した通りである。
なお、合成部230で行われる補間拡大は、時間的に近接する画像を用いて行われる。この補間手法の例としては、例えば、領域単位で動き検出を行い、動きのない領域は、近接フレームの対応するサンプリング位置の画素を用いたフレーム間補間を行い、動きのある領域は、自フレームの周辺画素からのフレーム内補間を行うといった方法がある。
すなわち、図17の丸で囲まれた出力画に注目すると、位相AおよびDについては、固定位相サブサンプリング画像および巡回位相サブサンプリング画像のそのままの画素を用い、他の位相BおよびCは、補間により生成する。
その際、固定位相サブサンプリング画像のフレーム1,2および3の間で動き検出処理を行い、動きがない領域と判定された場合は、巡回位相サブサンプリングのフレーム1および3の画像を用いて、位相BおよびCの画素の補間を行う。一方、動きがあると判定された場合は、フレーム2の位相AおよびDの周辺画素から位相BおよびCの画素の補間を行う。
表示選択回路26は、合成部230で補間生成した元画像サイズのフレームと固定位相画像シーケンスのフレームのどちらか一方を選択し、その選択された画像が表示部26に表示される。
このように、図15〜図17を参照して説明した実施例では、固定位相サブサンプリングと巡回位相サブサンプリングの2つのサブサンプリング画像シーケンスを生成する。そして、再生側で小さいサイズ(元画の1/4サイズ)の表示の場合には、固定位相サブサンプリングの画像シーケンスを表示する。また、再生側で大きいサイズ(元画サイズ)の表示の場合には、固定位相サブサンプリング画像シーケンスと巡回位相サブサンプリング画像シーケンスの両方を使用して、補間画像を生成するという選択を行うことが可能である。
なお、図15〜図17を参照して説明した実施例は、基本的には図1〜図14を参照して説明した実施例と同様であり、各処理フローを適用することができるが、図15〜図17の実施例では、サンプリング位置の巡回周期FがF=3となっている点が異なる。
図18は、画像処理方法の第4実施例を説明するための図であり、また、図19は、画像処理方法の第5実施例を説明するための図であり、そして、図20は、画像処理方法の第6実施例を説明するための図である。ここで、図18〜図20において、サンプリング位置の巡回周期Fは、F=3となっている。
すなわち、図18の第4実施例の画像処理方法は、前述した図1のIおよびPピクチャ(フレーム)のみの第1実施例の画像処理方法において、サンプリング位置の巡回周期FをF=3としたものに相当する。
なお、図18における領域R41,R42およびR43は、図1における領域R11,R12およびR13に相当する。また、図18では、F=3,K=5で、GOP内フレーム数は15となっている。
また、図19の第5実施例の画像処理方法は、前述した図2のI,PおよびBピクチャを使用した第2実施例の画像処理方法において、サンプリング位置の巡回周期FをF=3としたものに相当する。
なお、図19における領域R51,R52,R53およびR54は、図2における領域R21,R22,R23およびR24に相当する。また、図19では、F=3,L=1,K=3で、GOP内フレーム数は18となっている。
ここで、第4および第5実施例の画像処理方法において、入力画像管理テーブルの管理フローは、前述した図9および図11を参照して説明したものをそのまま適用することができる。
図20の第6実施例の画像処理方法は、前述した図3のI,PおよびBピクチャを使用した第3実施例の画像処理方法において、サンプリング位置の巡回周期FをF=3としたものに相当するが、入力画像管理テーブルの管理フローは、図21のようになる。
なお、図20における領域R61,R62,R63およびR64は、基本的には図3における領域R31,R32,R33およびR34に相当する。また、図20では、F=3,L=1,K=3で、GOP内フレーム数は18となっている。
図21は、IPB構造のシーケンスのさらに他の例における入力画像管理テーブルの情報生成処理を説明するためのフローチャートであり、上述した図20の第6実施例の画像処理方法による入力画像管理テーブルの情報生成処理を説明するためのものである。
図21と前述した図12との比較から明らかなように、図21におけるステップST81〜ST88は、図12におけるステップST41〜ST48に相当する。ただし、図21に示す入力画像管理テーブルの情報生成処理では、ステップST81において、サンプリング巡回周期F(=3)を取得して、ステップST82に進む。
ステップST82では、GOP構成を決定し、I/P間B枚数(IまたはPフレームの間のBフレームの枚数)L(=1)を設定し、GOP内のフレーム数Nを、N=LMC(L+1,F)*Kとしている。
すなわち、図20では、F=3,L=2,K=3の場合であり、LMC(L+1,F)、すなわち、2と3の最小公倍数(LMC)は6となり、N=LMC(L+1,F)*K=LMC(2,3)*3=6*3=18(枚)となる。すなわち、図20では、I/P間B枚数L=1とされ、これにより、F=3(3位相巡回)のときに1枚単位のBフレームにより処理するようになっている。
図21に示されるように、ステップST84において、iを3で割り、余りが2であると判定すると、ステップST85に進み、i==Lかどうかを判定し、i==Lであると判定すれば、ステップST87に進む。
従って、i=1のとき、ステップST87に進んで、ピクチャタイプ(PicType(i))をIピクチャ(I-picture)とし、さらに、ステップST89に進んで、ENC順を0とし、そして、ステップST92に進む。
一方、ステップST84において、iを3で割り、余りが2ではないと判定すれば、ステップST86に進み、ピクチャタイプ(PicType(i))をBピクチャ(B-picture)とし、さらに、ステップST91に進む。
ステップST85において、i==Lではない、すなわち、iが1ではないと判定すると、ステップST88に進んで、ピクチャタイプ(PicType(i))をPピクチャ(P-picture)とし、さらに、ステップST90に進む。
ステップST90は、図12におけるステップST52に相当し、ENC順(EncOrder(i))を、次の式(4)により求め、そして、ステップST92に進む。また、ステップST91は、図12におけるステップST54相当し、ENC順(EncOrder(i))を、次の式(5)により求め、そして、ステップST92に進む。
従って、ステップST90の処理により、図20に示されるように、入力順が4,6,8,10,…,18番目のPフレーム(P3,P5,P7,P9,…,P17)のENC順は、それぞれ2だけ減算されることになる。
また、ステップST91の処理により、図20に示されるように、入力順が1,3,5,7,…,15番目のBフレーム(B0,B2,B4,B6,…,B14)のENC順は、それぞれ2だけ加算されることになる。なお、入力順が17番目のBフレーム(B16)のENC順は、GOP内のフレーム数N=18により制限されるので、1だけ加算された18番目となる。
そして、ステップST92では、iに1を加算して(i=i+1)、ステップST93に進み、i==N−1かどうかを判定し、i==N−1ではないと判定すると、ステップST84に戻って同様の処理を繰り返す。そして、ステップST93において、i==N−1である、すなわち、GOP内のフレーム数Nまで処理を行った(i=0〜17までの18枚の処理が完了した)と判定すると、入力画像管理テーブルの情報生成処理を終了する。
これにより、図20のフレーム配列に対応した情報を有する入力画像管理テーブルを生成することができ、この入力画像管理テーブルを使用することで、第6実施例の画像処理方法を実現することが可能となる。
このように、上述した各実施例によれは、サンプリング画素位置が異なる画像が連続した画像シーケンスを、フレーム間予測を使用した動画像復号化規格を用いて圧縮する場合に、その圧縮効率を向上させることが可能となる。
これにより、サンプリング画素位置が互いに異なる複数枚の画像から、より高解像の画像を生成する目的で生成された動画像シーケンスを高圧縮率で符号化することができ、その結果、そのシーケンスの記録容量の削減、並びに、伝送帯域の削減が可能となる。
以上において、サンプリング位置の巡回周期Fは、F=3または4に限定されるものではなく、2以上の整数に設定することができる。さらに、巡回周期Fは、例えば、図15における送信機31と受信機32間の通信のビットレートや必要とされる画質によって変更され得るものであり、例えば、ビットレートの変化に応じて動的に設定を変化させることも可能である。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
入力画像における各フレームのサンプリング位置を制御してサブサンプリング画像を生成するサブサンプリング部と、
前記各フレームのサンプリング位置の情報、および、符号化ストリームのGOP構造に基づいて、符号化対象フレームと同じサンプリング位置のフレームを当該符号化対象フレームの参照フレームとして優先的に割り当てる制御部と、
前記符号化対象フレームのサブサンプリング画像、および、前記制御部により割り当てられた参照フレームに基づいてフレーム間予測により動画像圧縮処理を行い、前記符号化対象フレームを符号化するエンコーダと、
を含むことを特徴とする画像処理装置。
(付記2)
前記サブサンプリング部は、前記各フレームのサンプリング位置を、前記入力画像の入力順における周期F[Fは、2以上の整数]で巡回させること
を特徴とする付記1に記載の画像処理装置。
(付記3)
前記制御部は、前記周期Fで巡回する互いに異なるサンプリング位置における同じ位相のサンプリング位置の符号化済み画像を優先的に参照フレームとして割り当てること
を特徴とする付記2に記載の画像処理装置。
(付記4)
前記GOP構造は、フレーム間予測を用いずに符号化されるIフレーム,および、前方向予測のみを用いて符号化されるPフレームを含むこと
を特徴とする付記1乃至付記3のいずれか1項に記載の画像処理装置。
(付記5)
前記GOP構造は、さらに、前方向予測,後方向予測および両方向予測のうちいずれかを選択して符号化されるBフレームを含むこと
を特徴とする付記4に記載の画像処理装置。
(付記6)
前記制御部は、前記符号化対象フレームがPフレームの場合、前記入力順で直前のIまたはPフレームの組における同じサンプリング位置の符号化済みフレームを第1優先の前方参照フレームとして割り当てること
を特徴とする付記4または付記5に記載の画像処理装置。
(付記7)
前記GOP構造は、前記入力順で連続するF枚単位でIまたはPフレームの組とBフレームの組とされ、
前記制御部は、
前記符号化対象フレームがBフレームの場合、
前記入力順で直前のIまたはPフレームの組における同じサンプリング位置の符号化済みフレームを第1優先の前方参照フレームとして割り当て、且つ、
前記入力順で直後のIまたはPフレームの組における同じサンプリング位置の符号化済みフレームを第1優先の後方参照フレームとして割り当てること
を特徴とする付記6に記載の画像処理装置。
(付記8)
前記GOP構造は、前記入力順でM[FとMは互いに素]枚毎にIまたはPフレームとされ、
前記制御部は、
前記符号化対象フレームがPフレームの場合、前記入力順でF×M枚だけ前の符号化済みフレームを第1優先の前方参照フレームとして割り当て、
前記符号化対象フレームがBフレームの場合、
前記入力順で前方にある同一サンプリング位置のIまたはPフレームの中で直前の符号化済みフレームを第1優先の前方参照フレームとして割り当て、
前記入力順で後方にある同一サンプリング位置のIまたはPフレームの中で直後の符号化済みフレームを第1優先の後方参照フレームとして割り当てること
を特徴とする付記6に記載の画像処理装置。
(付記9)
前記制御部は、前記符号化対象フレームのサンプリング位置の情報、並びに、前記符号化ストリームのGOP構造に基づいて、該符号化対象フレームに対する優先度に従った参照画像の管理を行う参照画像管理テーブルを生成すること
を特徴とする付記1乃至付記8のいずれか1項に記載の画像処理装置。
(付記10)
前記制御部は、前記符号化対象フレームのサンプリング位置の情報、並びに、前記符号化ストリームのGOP構造に基づいて、前記入力順とエンコード順との対応を示す入力画像管理テーブルを生成すること
を特徴とする付記9に記載の画像処理装置。
(付記11)
入力画像における各フレームのサンプリング位置を制御してサブサンプリング画像を生成し、
前記各フレームのサンプリング位置の情報、および、符号化ストリームのGOP構造に基づいて、符号化対象フレームと同じサンプリング位置のフレームを当該符号化対象フレームの参照フレームとして優先的に割り当て、並びに、
前記符号化対象フレームのサブサンプリング画像、および、前記参照フレームに基づいてフレーム間予測により動画像圧縮処理を行う、
を含むことを特徴とする画像処理方法。
(付記12)
前記サブサンプリング画像を生成するのは、前記各フレームのサンプリング位置を、前記入力画像の入力順における周期F[Fは、2以上の整数]で巡回させて行うこと
を特徴とする付記11に記載の画像処理方法。
(付記13)
前記符号化対象フレームに対する前記参照フレームの割り当ては、前記周期Fで巡回する互いに異なるサンプリング位置における同じ位相のサンプリング位置の符号化済み画像を優先的に参照フレームとして割り当てること
を特徴とする付記12に記載の画像処理方法。
(付記14)
前記GOP構造は、フレーム間予測を用いずに符号化されるIフレーム,および、前方向予測のみを用いて符号化されるPフレームを含むこと
を特徴とする付記11乃至付記13のいずれか1項に記載の画像処理方法。
(付記15)
前記GOP構造は、さらに、前方向予測,後方向予測および両方向予測のうちいずれかを選択して符号化されるBフレームを含むこと
を特徴とする付記14に記載の画像処理方法。
(付記16)
前記符号化対象フレームに対する前記参照フレームの割り当ては、前記符号化対象フレームがPフレームの場合、前記入力順で直前のIまたはPフレームの組における同じサンプリング位置の符号化済みフレームを第1優先の前方参照フレームとして割り当てること
を特徴とする付記14または付記15に記載の画像処理方法。
(付記17)
前記GOP構造は、前記入力順で連続するF枚単位でIまたはPフレームの組とBフレームの組とされ、
前記符号化対象フレームに対する前記参照フレームの割り当ては、
前記符号化対象フレームがBフレームの場合、
前記入力順で直前のIまたはPフレームの組における同じサンプリング位置の符号化済みフレームを第1優先の前方参照フレームとして割り当て、且つ、
前記入力順で直後のIまたはPフレームの組における同じサンプリング位置の符号化済みフレームを第1優先の後方参照フレームとして割り当てること
を特徴とする付記16に記載の画像処理方法。
(付記18)
前記GOP構造は、前記入力順でM[FとMは互いに素]枚毎にIまたはPフレームとされ、
前記符号化対象フレームに対する前記参照フレームの割り当ては、
前記符号化対象フレームがPフレームの場合、前記入力順でF×M枚だけ前の符号化済みフレームを第1優先の前方参照フレームとして割り当て、
前記符号化対象フレームがBフレームの場合、
前記入力順で前方にある同一サンプリング位置のIまたはPフレームの中で直前の符号化済みフレームを第1優先の前方参照フレームとして割り当て、
前記入力順で後方にある同一サンプリング位置のIまたはPフレームの中で直後の符号化済みフレームを第1優先の後方参照フレームとして割り当てること
を特徴とする付記16に記載の画像処理方法。
(付記19)
前記符号化対象フレームに対する前記参照フレームの割り当ては、前記符号化対象フレームのサンプリング位置の情報、並びに、前記符号化ストリームのGOP構造に基づいて、該符号化対象フレームに対する優先度に従った参照画像の管理を行う参照画像管理テーブルを生成して行うこと
を特徴とする付記11乃至付記18のいずれか1項に記載の画像処理方法。
(付記20)
前記符号化対象フレームに対する前記参照フレームの割り当ては、前記符号化対象フレームのサンプリング位置の情報、並びに、前記符号化ストリームのGOP構造に基づいて、前記入力順とエンコード順との対応を示す入力画像管理テーブルを生成して行うこと
を特徴とする付記19に記載の画像処理方法。