以下、図面を用いて実施形態を説明する。
図1は、画像符号化装置の一実施形態を示す。
図1に示す画像符号化装置100は、予測部10および符号化部20を含む。画像符号化装置100は、有線または無線を介して撮像装置30および記憶装置40に接続される。
例えば、撮像装置30は、カメラ等であり、被写体を撮影した画像に含まれる各画素の輝度Y及び色差Cb,Crを、例えば、4:2:2形式の色差フォーマットの画像に変換し、変換した画像を出力する。撮像装置30は、輝度Yおよび色差Cb,Crの画像を、色差フォーマットの種類を示す情報を付加して画像符号化装置100に出力する。なお、画像符号化装置100が受ける画像は、静止画像でもよいし、毎秒数コマから数十コマのフレームレートで撮影された動画でもよい。また、4:2:2形式の色差フォーマットの場合、撮像装置30は、例えば、水平方向が1920画素、垂直方向が1080画素等の画像を、同じ画素数の輝度Yの画像と、水平方向の画素数を半分にした色差Cb,Crの画像とに変換し、変換した画像を出力する。また、撮像装置30が画像符号化装置100に接続されたが、これに限定されない。例えば、撮影された動画等の画像を同等の色差フォーマットで格納したハードディスク装置あるいは光ディスク等のリムーバブルディスクが装着可能な光学ドライブ装置等の記憶装置が画像符号化装置100に接続されてもよい。この場合、画像符号化装置100は、画像を示すデジタル信号を、撮像装置30の代わりに画像符号化装置100に接続された記憶装置から受ける。
例えば、記憶装置40は、ハードディスク装置あるいは光ディスク等のリムーバブルディスクが装着可能な光学ドライブ装置等であり、画像符号化装置100により符号化された画像を、予め割り当てられた格納領域に格納する。なお、符号化された画像は、記憶装置40に格納されたが、ネットワーク等に送信されてもよい。
例えば、予測部10は、撮像装置30から受けた輝度Yおよび色差Cb,Crの画像のそれぞれを輝度Yと色差Cb,Crとで異なる形状を有する処理単位ごとに、輝度Yおよび色差Cb,Crの画像のイントラ予測の予測方向を求める。例えば、予測部10は、求めた色差Cb,Crの画像の予測方向が予め設定された所定の方向である場合、求めた予測方向と逆向きの輝度Yで定義された予測方向を用いて処理単位における色差Cb,Crの画像をイントラ予測する。すなわち、予測部10は、求めた色差Cb,Crの画像の予測方向が所定の方向である場合、求めた予測方向を、輝度Yのイントラ予測で定義された予測方向の中で予測された方向と逆向きの予測方向を用いて置き換える。なお、予測方向の置き換えについては、図4から図6を用いて説明する。また、予測部10は、求めた予測方向または置き換え後の輝度Yの予測方向を用いてイントラ予測を行い、色差Cb,Crの画像における処理単位に対応する予測画像を生成する。そして、予測部10は、生成した予測画像と処理単位との差分を示す差分画像および予測画像の生成に用いた予測方向を、イントラ予測の結果として、符号化部20に出力する。予測部10の動作については、図2から図6で説明する。
ここで、例えば、色差フォーマットが4:2:2の場合、HEVCの規格で規定された輝度Yの処理単位の形状は、16画素×16画素、32画素×32画素および64画素×64画素のいずれかの縦方向と横方向との画像数が同数の形状である。一方、色差Cb,Crの処理単位の形状は、8画素×16画素、16画素×32画素および32画素×64画素のいずれかの横方向の画素数に比べて縦方向の画素数が多い形状である。
符号化部20は、予測部10によるイントラ予測により、輝度Yの画像における処理単位及び色差Cb,Crの画像における処理単位ごとに求められた差分画像を符号化する。符号化部20の動作については、図3から図5で説明する。
ここで、例えば、HEVCの規格では、輝度Yおよび色差Cb,Crの画像イントラ予測する処理単位として、4種類のブロックが規定されている。4種類のブロックには、CTU(Cording Tree Unit)、CU(Cording Unit)、PU(Prediction Unit)およびTU(Transform Unit)がある。
図2および図3は、4種類のブロックの関係の例を示す。なお、図2および図3は、輝度Yの画像における処理単位の例を示すが、色差Cb,Crの画像における処理単位として生成されるブロック相互の関係は、ブロックの縦方向の画素数が横方向の2倍である点を除き同様である。
例えば、CTU60は、HEVCの規格において符号化処理の処理単位を示すブロックであり、図1に示した予測部10により輝度Yの画像を分割することで生成される処理単位に相当する。また、CTU60は、CTU60を4分木分割して得られるCU65(65(1)−65(3))の集合体である。
例えば、CU65(1)は、CTU60を4分木分割したブロックである。また、CU65(2)は、CU65(1)の一つを4分木分割したブロックであり、CU65(3)は、CU65(2)の一つを4分木分割したブロックである。例えば、CTU60が被写体の動きあるいはエッジ量が所定値以上の複雑な絵柄を示す場合、CTU60内の位置に応じて、予測誤差が最小となる予測方向が変化する。すなわち、予測部10は、複雑な絵柄を示すCTU60について、予測誤差が最小となる1つの予測方向を特定することが困難となる。CTU60が複雑な絵柄を示す場合を想定して、予測部10は、CTU60を4分木分割し、CU65(1)からCU65(3)ごとに予測誤差が最小となる予測方向を求める。なお、輝度YのCU65(1)は、8画素×8画素、16画素×16画素および32画素×32画素のいずれかの大きさを有する。また、色差Cb,CrのCU65(1)は、4画素×8画素、8画素×16画素または16画素×32画素のいずれかの大きさを有する。なお、輝度YのCU65(2)は、8画素×8画素または16画素×16画素の大きさを有し、輝度YのCU65(3)は、8画素×8画素の大きさを有する。また、色差Cb,CrのCU65(2)は、4画素×8画素または8画素×16画素の大きさを有し、色差Cb,CrのCU65(3)は、4画素×8画素の大きさを有する。
例えば、図3に示すTU70−72は、CU65(1)のブロックに含まれ、符号化部20における直交変換で用いられる基本単位である。TU70−72は、CU65(1)のブロックを4分木分割したブロックであり、CU65(1)の大きさに応じて、4画素×4画素、8画素×8画素、16画素×16画素および32画素×32画素のいずれかの大きさを有する。
例えば、図3に示すPU80(80(1)−80(8))は、CU65(1)に含まれ、予測部20におけるイントラ予測等の予測処理で用いられる基本単位である。PU80は、HEVCの規格に規定される方式で分割される。すなわち、PU80(1)は、CU65(1)と同じ大きさを有するブロックであり、PU80(2)は、CU65(1)を4分木分割した4つのブロックを有する。また、PU80(3)は、CU65(1)を垂直方向に2等分した2つのブロックを有し、PU80(4)は、CU65(1)を水平方向に2等分した2つのブロックを有する。PU80(5)は、CU65(1)を垂直方向に1:3で分割した2つのブロックを有し、PU80(6)は、CU65(1)を垂直方向に3:1で分割した2つのブロックを有する。また、PU80(7)は、CU65(1)を水平方向に1:3で分割した2つのブロックを有し、PU80(8)は、CU65(1)を水平方向に3:1で分割した2つのブロックを有する。なお、予測部20は、イントラ予測においてPU80(1)およびPU80(2)を用いる。
例えば、HEVCの規格におけるイントラ予測では、予め定義された35通りの予測モードを有する。予測部10は、CTU60に含まれるPU80の処理単位ごとに、35通りの予測モードのそれぞれで予測画像を求める。そして、予測部10は、求めた予測画像とPU80における画像との間の差分から求められる予測誤差に基づいて、例えば、最小の予測誤差を与える1つの予測モードを選択する。35通りの予測モードには、画素補間で予測画像を生成するPlanar予測、周囲の画素の平均値を予測画像とするDC(Direct Current)予測が含まれる。さらに、35通りの予測モードには、33通りの方向のいずれかで選択された方向にある画素を用いて予測画像を生成する方向性(Angular)予測が含まれる。そして、Planar予測は予測モード0、DC予測は予測モード1、方向性予測は方向に応じて予測モード2−34と称される。なお、予測部10は、輝度Yおよび色差Cb,Crの予測モードが互いに一致する場合、色差Cb,Crの予測モードとして輝度Yの予測モードを選択する。これは、DM(Direct Mode)モードと称される。一方、予測部10は、輝度Yと色差Cb,Crとの予測モードが互いに異なる場合、色差Cb,Crの予測モードとして、輝度Yとは独立にPlanar予測、DC予測、水平方向予測(予測モード10)、垂直方向予測(予測モード26)および予測モード34の中から選択する。予測部10によるPlanar予測、DC予測および方向性予測の動作については、図4から図6で説明する。
図4は、HEVCの規格における方向性予測モードで定義された33通りの予測方向の例を示す。図4(a)は、例えば、輝度のPU80において予め定義された33通りの予測方向を示し、図4(b)は、色差Cb,CrのPU80において予め定義された33通りの予測方向を示す。以下の説明において、図4に示した各予測方向の向きは、矢印Da、Dbでそれぞれ示した水平方向の右向きを0度の方向とし、反時計回りに0度から360度の角度で定義される。
図4(a)に示すように、4:2:2の色差フォーマットでは、輝度Yの画像に含まれるPU80は正方形の形状を有し、色差Cb,Crの画像に含まれるPU80は、輝度YのPU80を水平方向に半分にした長方形の形状を有する。このため、輝度Yについてのイントラ予測で用いる予測モード2−34の各々は、時計回りに225度から45度の方向を示すのに対し、色差Cb,Crのイントラ予測に用いる予測モード2−34の各々は、243度から63度の方向を示す。すなわち、予測モード10(180度)および予測モード26(90度)以外の予測モードは、輝度Yと色差Cb,Crとのそれぞれにおけるイントラ予測で、同じ番号の方向性予測モードにより示される角度の間にずれが生じる。そこで、HEVCの規格では、輝度Yおよび色差Cb,Crの各々のイントラ予測で用いられる各予測モードを示す角度の間のずれを考慮して、色差Cb,Crのイントラ予測における各予測モードを置き換えるための補正テーブルが予め定義されている。
図5は、HEVCの規格における補正テーブル110の例を示す。補正テーブル110は、色差の予測モードの格納領域と輝度の予測モードの格納領域とを有する。色差の予測モードの格納領域には、色差Cb,Crについてのイントラ予測において定義された予測モード2−34を示す番号が格納される。また、輝度の予測モードの格納領域には、対応する色差Cb,Crの予測モードの置き換えに用いられる輝度Yの予測モードを示す番号が格納される。補正テーブル110では、予測モード10(180度)と予測モード26(90度)を除き、色差Cb,Crにおける予測モード2−9,11−25,27−34は、輝度Yの予測モード2−8,12−25,27−31のいずれかで置き換えられることを示す。ここで、輝度Yについてのイントラ予測では、243度から225度の方向を示す予測モードが定義されていないことから、図5に示した補正テーブル110では、色差予測モード2−5は、1つの輝度Yの予測モード2に置き換えられる。
しかしながら、色差Cb,Crの予測モード2−5に対応する予測方向は角度243度から225度の範囲であるため、輝度Yの予測モード2の予測方向の角度225度とのずれは、色差Cb,Crの予測モード4,3,2の順に大きくなる。そして、角度のずれが大きくなれば、予測部10による色差Cb,Crについてのイントラ予測の予測誤差は大きくなり、符号化部20による画像の符号化の符号量が増加するとともに、復号された際の画像の品質が低下する。
ここで、輝度YのPU80は、243度から225度の方向に対応した予測モードを有しないが、243度から225度の方向と逆向きの63度から45度の方向を示す予測モード31−34を有する。そこで、図1に示した予測部10は、図5に示した補正テーブル110の代わりに、色差Cb,Crの予測モード2−5を輝度Yの予測モード31−34にそれぞれに対応付ける、修正された補正テーブルを用いる。
図6は、修正された補正テーブル120の例を示す。補正テーブル120は、図5に示した補正テーブル110と同様に、色差の予測モードの格納領域と輝度の予測モードの格納領域とを有する。色差の予測モードの格納領域には、色差Cb,Crの予測モード2−34を示す番号が格納される。また、輝度の予測モードの格納領域には、対応する色差Cb,Crの予測モードの置き換えに用いられる輝度Yの予測モードを示す番号が格納される。補正テーブル120では、色差Cb,Crの予測モード2−5のそれぞれが、網掛けの領域で示すように、輝度Yの予測モード31−34のそれぞれに対応付けられる。なお、色差Cb,Crの予測モード6−34については、図5に示した補正テーブル110と同様に、輝度Yの予測モード3−31のいずれかで対応付けられる。色差Cb,Crの予測モード2−5が示す方向は、予測部10において予測方向の置き換えを行う所定の第1方向の一例であり、輝度Yの予測モード31−34が示す予測方向は、所定の第1方向と逆向きの輝度Yで定義された予測方向の一例である。
図7は、図1に示した予測部10がPU80の予測画像を生成する処理の例を示す。例えば、図7に示したPU80は、縦方向にN個および横方向にN個の画素85(85(1,1)−85(N,N))を有する輝度Yの画像における処理単位である。なお、色差Cb,Crの場合、PU80は、縦方向にN個および横方向に2分のN個の画素85を有する処理単位である。画素90(90(1)−90(2N))および画素92は、既に符号化部20により符号化されたPU80の左側の垂直方向に隣接する画素であり、“左隣接画素”と称される。また、画素95(95(1)−95(2N))および画素92は、既に符号化部20により符号化されたPU80の上側の水平方向に隣接する画素であり、“上隣接画素”と称される。なお、画素92は、左隣接画素および上隣接画素の両方に含まれる。なお、PU80が図3に示したPU80(2)の場合には、4分木分割された各ブロックについて左隣接画素および上隣接画素が適用される。
予測部10は、例えば、Planar予測の予測モード0を選択した場合、画素85(i,j)の画素値を、画素90(j)と画素95(N+1)および画素90(N+1)と画素95(i)との画素値を用いた線形の平均値から予測する。なお、i,jは、1からNの正の整数である。一方、予測部10は、DC予測の予測モード1を選択した場合、画素92を除く画素90(1)−90(N)と画素95(1)−95(N)との平均値を画素85(i,j)の画素値と予測する。また、予測部10は、方向性予測の予測モード2−34のいずれかを選択した場合、画素85(i,j)の位置から選択した予測モードが示す方向にある画素90,92,95のいずれかの画素値を、画素85(i,j)の画素値と予測する。例えば、予測部10は、予測モード2が選択された場合に、画素85(i,j)から角度225度の方向にある画素90(i+j)の画素値を、画素85(i,j)の画素値と予測する。なお、例えば、予測部10は、予測モードごとに、PU80に含まれる全ての画素85の画素値を予測し、予測した画素値を有する予測画像とPU80における画像とを差分した予測誤差の差分画像を求める。予測部10は、求めたPU80における差分画像を符号化した場合の符号量をコストとして求め、求めたコストが最小となる予測モードを選択する。
なお、色差Cb,Crのイントラ予測は、PU80の形状が長方形である点、および、図8で説明するように、DMモードの場合に補正テーブル110,120のいずれかを用いた予測モードの置き換えを行う点を除き、輝度Yのイントラ予測と同様である。つまり、DMモードが選択された場合の色差Cb,Crのイントラ予測は、補正テーブル110,120のいずれかを用いて置き換えを行った後の予測モードで示される角度の方向にある画素90,92,95の画素値を用いて行われる。
例えば、予測部10は、輝度Yおよび色差Cb,Crの各PU80における画素85の画素値を予測した後、予測された画素85の画素値を用いCTU60における輝度Yおよび色差Cb,Crの予測画像を生成する。予測部10は、輝度Yおよび色差Cb,Crの各々において、生成した予測画像とCTU60の処理単位における画像とを差分し、差分画像を算出する。予測部10は、算出した差分画像と各PU80における予測モードを示す情報とを符号化部20に出力する。
例えば、符号化部20は、予測部10から受けた輝度Yおよび色差Cb,Crの各差分画像に対してTU70−72のサイズに応じたDCT(Discrete Cosine Transform)変換あるいはアダマール変換等の直交変換を施す。そして、符号化部20は、各差分画像の周波数成分を求める。符号化部20は、例えば、画像符号化装置100に含まれるROM(Read Only Memory)等の記憶部に格納された量子化テーブルを用い、求めた各差分画像の周波数成分を量子化する。符号化部20は、例えば、CABAC(Context-based Adaptive Binary Arithmetic Coding)を用いて、量子化された周波数成分を各PU80における予測モードを示す情報とともに符号化する。符号化部20は、例えば、全てのCTU60の処理単位における輝度Yおよび色差Cb,Crの各画像について符号化した後、輝度Yおよび色差Cb,Crの各画像の符号化で得られた符号化データを記憶装置50に出力する。
図8は、図1に示した画像符号化装置100における符号化処理の例を示す。図8に示したステップS10からステップS17の動作は、画像符号化装置100に含まれるプロセッサ等の制御部が画像符号化プログラムを実行することにより実現される。すなわち、図8は、画像符号化プログラムおよび画像符号化方法の一実施形態を示す。なお、図8に示す処理は、画像符号化装置100に搭載されるハードウェアにより実行されてもよい。この場合、図1に示した予測部10および符号化部20は、画像符号化装置100内に配置される回路により実現される。
ステップS10において、予測部10は、図1において説明したように、撮像装置30より輝度Yおよび色差Cb,Crの画像を受信する。
次に、ステップS11において、予測部10は、図2、図3および図7において説明したように、輝度Yの画像と形状が異なる色差Cb,Crの処理単位であるCTU60ごとに、受信した色差Cb,Crの各画像におけるイントラ予測の予測モードを求める。なお、予測部10は、例えば、色差Cb,Crの予測モードの予測と並行して、輝度Yの処理単位であるCTU60ごとに、輝度Yの画像におけるイントラ予測の予測モードを求める。また、予測部10は、輝度Yの処理単位であるCTU60ごとにイントラ予測の予測モードを求める処理を、色差Cb,Crの予測モードの処理に先立って実行してもよい。
次に、ステップS12において、予測部10は、図4から図6で説明したように、ステップS11で求めたCTU60に含まれるPU80での色差Cb,Crの画像の予測モードが、対応するPU80での輝度Yの画像の予測モードと一致するか否かを判定する。例えば、予測部10は、求めた色差Cb,Crと輝度Yとの画像の予測モードが一致する場合(YES)、処理をステップS13に移行する。一方、予測部10は、求めた色差Cb,Crと輝度Yとの予測モードが一致しない場合(NO)、色差Cb,Crの予測モードとして、予測誤差が最小となるPlanar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のいずれかを選択する。そして、予測部10は、処理をステップS15に移行する。
次に、ステップS13において、予測部10は、図4から図6で説明したように、ステップS11で求めたCTU60に含まれるPU80における色差Cb,Crの画像の予測モードが、予測モード2−5のいずれかであるか否かを判定する。予測部10は、PU80における色差Cb,Crの画像の予測モードが、予測モード2−5のいずれかの場合(YES)、処理をステップS14に移行する。一方、予測モード2−5でない場合(NO)、図5に示した補正テーブル110に基づいて、予測部10は、PU80における色差Cb,Crの画像の予測モードを、DMモードで輝度Yの予測モードに置き換える。そして、予測部10は、処理をステップS15に移行する。
ステップS14において、予測部10は、図5および図6で説明したように、補正テーブル120に基づいて、PU80における色差Cb,Crの画像について求めた予測モードを、逆向きの方向を示す輝度Yの予測モード31−34のいずれかに置き換える。
ステップS15において、予測部10は、図7において説明したように、選択した予測モードに基づいて、色差Cb,Crの画像に対するイントラ予測を行う。例えば、予測部10は、色差Cb,CrのCTU60に含まれる各PU80における画素85の画素値を予測した後、予測した画素85の画素値を用い、CTU60の処理単位における色差Cb,Crの予測画像を生成する。予測部10は、色差Cb,Crそれぞれについて、生成した予測画像とCTU60における画像とを差分し、色差Cb,CrのCTU60における差分画像を算出する。予測部10は、算出した差分画像と各PU80における予測モードを示す情報とを符号化部20に出力する。なお、予測部10は、CTU60における輝度Yの画像に対するイントラ予測を並行して実行する。
次に、ステップS16において、符号化部20は、図1および図7において説明したように、イントラ予測した処理単位のCTU60における色差Cb,Crの各差分画像を符号化する。例えば、符号化部20は、受けたCTU60における色差Cb,Crの各差分画像に対してTU70−72のサイズに応じDCT変換等の直交変換を施し、差分画像の周波数成分を求める。符号化部20は、画像符号化装置100に含まれるROM等の記憶部に格納された量子化テーブルを用い、求めた差分画像の周波数成分を量子化し、CABACを用い量子化された周波数成分を各PU80における予測モードを示す情報とともに符号化する。なお、符号化部20は、イントラ予測した処理単位のCTU60における輝度Yの画像の符号化を並行して実行する。
次に、ステップS17において、符号化部20は、全ての処理単位のCTU60における輝度Yおよび色差Cb,Crの各画像に対し符号化処理を行ったか否かを判定する。符号化部20は、全てのCTU60における輝度Yおよび色差Cb,Crの各画像に対して符号化した場合(YES)、符号化した各画像のデータを記憶装置40に出力し、記憶装置40に予め割り当てられた格納領域に格納させる。一方、符号化部20は、全てのCTU60における輝度Yおよび色差Cb,Crの各画像に対し符号化していない場合(NO)、次のCTU60における輝度Yおよび色差Cb,Crの各画像を符号化するために、処理をステップS11に移行する。
そして、画像符号化装置100は、符号化の処理を終了する。なお、図8の処理のフローは、撮像装置30から画像を受ける度に実行される。
以上、この実施形態では、予測部10は、輝度Yの画像の形状とは異なる処理単位であるCTU60に含まれるPU80ごとに、色差Cb,Crの各画像におけるイントラ予測の予測モードを求める。予測部10は、求めたPU80における色差Cb,Crの各画像の予測モードが予測モード2−5のいずれかの場合、求めた予測モードとは逆向きの方向を示す輝度Yの予測モード31−34のいずれかに置き換える。そして、予測部10は、置き換え後の輝度Yの予測モードでPU80における色差Cb,Crの画像のイントラ予測を行う。図4から図6で説明したように、求めた色差Cb,Crの予測モード2−5が示す方向と、置き換え後の輝度Yの予測モード31−34が示す方向とのずれは、180度程度となる。しかしながら、例えば、PU80における絵柄が予測モード2−5の方向のエッジを多く含む場合などに、輝度Yの予測モード31−34を用いた場合の予測誤差は、色差Cb,Crの予測モード2−5を輝度Yの予測モード2に置き換える場合と比べて小さくなる。したがって、画像符号化装置100は、従来と比べて画像を効率良く符号化することができる。
図9は、画像符号化装置の別実施形態を示す。図9に示す画像符号化装置100の各要素のうち、図1に示した画像符号化装置100の要素と同一または同様の機能を有するものについては、同一の符号を付し詳細な説明は省略する。
画像符号化装置100は、メモリ140および制御部150を含む。また、画像符号化装置100は、キーボードあるいはタッチパネル等の入力装置を含む。画像符号化装置100は、有線または無線を介して撮像装置30および記憶装置40に接続される。
メモリ140は、ROMあるいはフレームメモリ等を含み、制御部150が実行する画像符号化プログラム、図5に示した補正テーブル110、および図6に示した補正テーブル120を格納する格納領域を有する。また、メモリ140は、画像符号化装置100が受信する画像が動画の場合、1フレーム前の画像を格納する格納領域を有する。
例えば、制御部150は、プログラムを実行するプロセッサ等を含み、プロセッサがメモリ140の画像符号化プログラムを実行することで、分割部11、判定部12、イントラ予測部13、インター予測部14、切替部15および生成部16として動作する。さらに、制御部150は、プログラムを実行することで、減算部17、符号化部20a、変換部21、逆変換部22および加算部23として動作する。分割部11、判定部12、イントラ予測部13、生成部16および減算部17は、図1に示した予測部10の別例である。
例えば、分割部11は、撮像装置30から受けた輝度Yおよび色差Cb,Crの画像のそれぞれを、予め設定された符号化の4:2:2あるいは4:2:0等の色差フォーマットに応じた形状を有する処理単位に分割する。そして、分割部11は、符号化の色差フォーマットを示す情報とともに、分割した処理単位の輝度Yおよび色差Cb,Crの各画像をラスタスキャンの順に判定部12、イントラ予測部13、インター予測部14および減算部17にそれぞれ出力する。なお、分割部11は、入力装置を介して、ユーザより予め符号化の色差フォーマットを示す情報を受け、受けた符号化の色差フォーマットを示す情報を設定してもよい。また、分割部11は、撮像装置30から、撮像装置30に設定された色差フォーマットに従って生成された後の画像を受けてもよい。撮像装置30と分割部11とに設定された色差フォーマットが互いに異なる場合、分割部11は、拡大または縮小フィルタを用い、受信した輝度Yおよび色差Cb,Crの各画像を符号化の色差フォーマットに応じた形状に変換することが好ましい。
例えば、判定部12は、分割部11から受信した符号化の色差フォーマットを示す情報に基づいて、符号化の色差フォーマットが4:2:2か否かを判定する。判定部12は、判定の結果をイントラ予測部13に出力する。
例えば、イントラ予測部13は、処理単位のCTU60に含まれる各PU80の色差Cb,Crの画像におけるイントラ予測の予測モードを求める。イントラ予測部13は、図7において説明したように、各PU80において求めた予測モードに基づいて、CTU60の処理単位における色差Cb,Crの画像を示す予測画像を生成する。なお、イントラ予測部13は、PU80で求めた色差Cb,Crの予測モードの予測方向が図4(b)に示した予測モード2−5の場合、予測モードを、逆向きを示す輝度Yの予測モード31−34に置き換える処理を行う。そして、イントラ予測部13は、置き換え後の輝度Yの予測モードを用いCTU60での色差Cb,Crの画像を示す予測画像を生成する。また、イントラ予測部13は、各CTU60での色差Cb,Crの画像に対するイントラ予測と並行して、各CTU60での輝度Yの画像に対応するイントラ予測を行う。
例えば、イントラ予測部13は、CTU60に含まれる各PU80において輝度Yおよび色差Cb,Crの各画像から求めた予測モードを示す情報の符号量を求める。また、イントラ予測部13は、輝度Yおよび色差Cb,Crごとに、CTU60における画像とイントラ予測により求めた予測画像との差分の絶対値和の符号量を求める。イントラ予測部13は、求めた差分の絶対値和と予測モードを示す情報との符号量を加算し、加算した値をコストとして切替部15に出力する。イントラ予測部13の動作については、図10で説明する。
例えば、インター予測部14は、撮像装置30からの画像が動画の場合、分割部11より受けたCTU60の処理単位の輝度Yおよび色差Cb,Crの各画像と、メモリ140に格納された1フレーム前の画像とを用いてインター予測を行う。例えば、インター予測部14は、輝度Yおよび色差Cb,Crごとに、メモリ140に格納された1フレーム前の画像を読み出す。インター予測部14は、分割部11より受けたCTU60の画像と読み出した1フレーム前の画像とを、図3に示したPU80(1)−80(8)のいずれかのブロックで相関度が高い部分を検索する。そして、インター予測部14は、検索した相関度が高いPU80を基準にして、2つの画像間の変位を示す動きベクトルを求めるとともに、2つの画像の差分の絶対値和を求める。インター予測部14は、求めた動きベクトルと差分の絶対値和との符号量をそれぞれ求め、求めた符号量を加算した値をコストとして切替部15に出力する。
例えば、切替部15は、イントラ予測部13とインター予測部14とから受けたコストを比較し、コストが小さいイントラ予測またはインター予測を、CTU60における輝度Yおよび色差Cb,Crの各画像に対する予測処理として選択する。
例えば、生成部16は、切替部15により選択されたイントラ予測またはインター予測に基づいて、分割部11より受けたCTU60の処理単位における画像に対する予測画像を生成する。例えば、生成部16は、イントラ予測が選択された場合、輝度Yおよび色差Cb,Crごとに、CTU60に含まれる各PU80における左隣接画素の画素90,92および上隣接画素の画素92,95の画素値をメモリ140より読み込む。生成部16は、イントラ予測部13により求められた輝度Yおよび色差Cb,Crの各予測モードと読み込んだ画素90,92,95の画素値とを用い、図7に示したPU80に含まれる各画素85の画素値を予測する。生成部16は、予測した画素85の画素値を用いて、CTU60での輝度Yおよび色差Cb,Crの各予測画像を生成する。生成部16は、生成した輝度Yおよび色差Cb,Crの各予測画像を減算部17に出力する。
一方、生成部16は、例えば、インター予測が選択された場合、1フレーム前の輝度Yおよび色差Cb,Crの各画像をメモリ140より読み込む。生成部16は、読み込んだ1フレーム前の画像と、CTU60に含まれる各PU80の輝度Yおよび色差Cb,Crの各画像において求めた動きベクトルとを用い、CTU60における輝度Yおよび色差Cb,Crの予測画像を生成する。生成部16は、生成した輝度Yおよび色差Cb,Crの各予測画像を減算部17に出力する。
例えば、減算部17は、分割部11より受けたCTU60の処理単位の輝度Yおよび色差Cb,Crの各画像と、生成部16により生成された輝度Yおよび色差Cb,Crの各予測画像とを差分し、差分画像を算出する。減算部17は、算出した輝度Yおよび色差Cb,Crの各差分画像を変換部21に出力する。
例えば、変換部21は、減算部17より受けたCTU60の処理単位の輝度Yおよび色差Cb,Crの各差分画像に対し、図3に示したTU70−72のサイズに応じたDCT変換あるいはアダマール変換等の直交変換を施し、各差分画像の周波数成分を求める。変換部21は、例えば、メモリ140に格納された量子化テーブルを用い、輝度Yおよび色差Cb,Crの各差分画像の周波数成分を量子化する。変換部21は、量子化した輝度Yおよび色差Cb,Crの各差分画像の周波数成分を符号化部20aおよび逆変換部22に出力する。
例えば、符号化部20aは、例えば、CABACを用いて、量子化された輝度Yおよび色差Cb,Crの各差分画像の周波数成分を各PU80における予測モードを示す情報とともに符号化する。符号化部20aは、全てのCTU60の処理単位の輝度Yおよび色差Cb,Crの画像について符号化した後、符号化した各画像のデータを記憶装置40に出力する。
例えば、逆変換部22は、メモリ140に格納された量子化テーブルを用い、変換部21により量子化されたCTU60の処理単位における輝度Yおよび色差Cb,Crの各差分画像の周波数成分を逆量子化する。逆変換部22は、逆量子化された輝度Yおよび色差Cb,Crの各周波数成分に対して、図3に示したTU70−72のサイズに応じた逆DCT変換等の逆直交変換を施し、CTU60の処理単位における輝度Yおよび色差Cb,Crの各差分画像を復号する。逆変換部22は、復号した輝度Yおよび色差Cb,Crの各差分画像を加算部23に出力する。
例えば、加算部23は、輝度Yおよび色差Cb,Crごとに、CTU60の処理単位における生成部16により生成された予測画像と逆変換部22により復号された差分画像とを加算し、CTU60における元の輝度Yおよび色差Cb,Crの各画像を生成する。加算部23は、生成したCTU60の処理単位における元の輝度Yおよび色差Cb,Crの各画像をメモリ140に予め割り当てられた格納領域に格納する。
図10は、HEVCの規格における輝度Yの方向性予測モードで定義された33通りの予測方向の例を示す。以下の説明において、図10に示した各予測方向の向きは、矢印Daでそれぞれ示した水平方向の右向きを0度の方向とし、反時計回りに0度から360度の角度θで定義される。
図10に示すように、64画素×64画素の正方形の輝度YのPU80の中心を原点とする場合、予測モード2の予測方向は(−32,32)、予測モード3の予測方向は(−32,26)、予測モード4の予測方向は(−32,21)のベクトルで表される。また、予測モード5の予測方向は(−32,17)、予測モード6の予測方向は(−32,13)、予測モード7の予測方向は(−32,9)、予測モード8の予測方向は(−32,5)のベクトルで表される。また、予測モード9の予測方向は(−32,2)、予測モード10の予測方向は(−32,0)、予測モード11の予測方向は(−32,−2)、予測モード12の予測方向は(−32,−5)のベクトルで表される。予測モード13の予測方向は(−32,−9)、予測モード14の予測方向は(−32,−13)、予測モード15の予測方向は(−32,−17)、予測モード16の予測方向は(−32,−21)のベクトルで表される。予測モード17の予測方向は(−32,−26)、予測モード18の予測方向は(−32,−32)、予測モード19の予測方向は(−26,−32)、予測モード20の予測方向は(−21,−32)のベクトルで表される。
また、予測モード21の予測方向は(−17,−32)、予測モード22の予測方向は(−13,−32)、予測モード23の予測方向は(−9,−32)、予測モード24の予測方向は(−5,−32)のベクトルで表される。予測モード25の予測方向は(−2,−32)、予測モード26の予測方向は(0,−32)、予測モード27の予測方向は(2,−32)のベクトルで表される。予測モード28の予測方向は(5,−32)、予測モード29の予測方向は(9,−32)、予測モード30の予測方向は(13,−32)、予測モード31の予測方向は(17,−32)のベクトルで表される。予測モード32の予測方向は(21,−32)、予測モード33の予測方向は(26,−32)、予測モード34の予測方向は(32,−32)のベクトルで表される。なお、図10に示したPU80は64画素×64画素としたが、32画素×32画素等の大きさのPU80についても同様である。
一方、例えば、32画素×64画素の長方形の色差Cb,CrのPU80において、例えば、色差Cb,Crの予測モード2の予測方向は(−16,32)のベクトルで表される。また、色差Cb,Crの予測モード3の予測方向は(−16,26)、予測モード4の予測方向は(−16,21)、予測モード5の予測方向は(−16,17)のベクトルで表される。そして、色差Cb,Crの各予測モード2−5のベクトルの傾きは、0.5,0.6,0.8,0.9であり、輝度Yの各予測モード31−34のベクトルの傾きは、0.5,0.7,0.8,1.0であり、互いに近似している。すなわち、色差Cb,Crの各予測モード2−5は、図5に示した補正テーブル110のように1つの輝度Yの予測モード2にするより、図6に示した補正テーブル120のように逆向きの輝度Yの予測モード31−34の各々にするため、方向のずれを小さくなる。そして、イントラ予測部13は、PU80での色差Cb,Crの予測モード2−5を輝度Yの予測モード31−34に置き換える場合、置き換えた輝度Yの予測モードの方向にある上隣接画素92,95を用い、PU80での色差Cb,Crの予測画像を生成する。ただし、輝度Yの予測モード31−34が示す方向は、色差Cb,Crの予測モードにおいて定義されていないため、例えば、イントラ予測部13は、式(1)−(4)を用い、置き換えた輝度Yの予測モードに応じて上隣接画素92,95の画素数Laを調整する。
色差Cb,Crの予測モード2に対応する輝度Yの予測モード31:
La=(2N+1)×(33+17)/65=(2N+1)×50/65 …(1)
色差Cb,Crの予測モード3に対応する輝度Yの予測モード32:
La=(2N+1)×(33+21)/65=(2N+1)×54/65 …(2)
色差Cb,Crの予測モード4に対応する輝度Yの予測モード33:
La=(2N+1)×(33+26)/65=(2N+1)×59/65 …(3)
色差Cb,Crの予測モード5に対応する輝度Yの予測モード34:
La=(2N+1)×(33+32)/65=(2N+1) …(4)
ここで、“33”の値は、Nが32画素の場合に、図10に示す輝度Yの予測モード18から予測モード26までの予測方向にある上隣接画素の画素92,95の画素数を示す。“17”、“21”、“26”および“32”の値は、Nが32画素の場合に、輝度Yの予測モード26と各予測モード31−34との予測方向の間にある上隣接画素の画素95の画素数を示す。
例えば、Nが4画素の場合、色差Cb,Crの予測モード2−5に対応する、逆向きの輝度Yの予測モード31−34それぞれの上隣接画素の画素92,95の画素数Laは、7画素、7画素、8画素および9画素となる。また、Nが8画素の場合、色差Cb,Crの予測モード2−5に対応する輝度Yの予測モード31−34それぞれの上隣接画素の画素92,95の画素数Laは、13画素、14画素、15画素および17画素となる。Nが16画素の場合、色差Cb,Crの予測モード2−5に対応する輝度Yの予測モード31−34それぞれの上隣接画素の画素92,95の画素数Laは、25画素、28画素、30画素および33画素となる。Nが32画素の場合、色差Cb,Crの予測モード2−5に対応する輝度Yの予測モード31−34それぞれの上隣接画素の画素92,95の画素数Laは、50画素、54画素、59画素および65画素となる。Nが64画素の場合、色差Cb,Crの予測モード2−5に対応する輝度Yの予測モード31−34それぞれの上隣接画素の画素92,95の画素数Laは、99画素、107画素、117画素および129画素となる。
なお、イントラ予測部13は、例えば、PU80における色差Cb,Crの画像を貫くように色差Cb,Crの予測モードが示す方向にエッジ等が一様に分布している場合に、求めた色差Cb,Crの予測モード2−5を輝度Yの予測モード31−34に置き換える。そこで、イントラ予測部13は、色差Cb,Crの予測モード2−5の置き換えに先立って、PU80における色差Cb,Crの画像の特徴を調べるため、左隣接画素の画素90が示す被写体の特徴と上隣接画素の画素95が示す被写体の特徴との類似性を評価する。例えば、イントラ予測部13は、式(5)を用い、左隣接画素の画素90の画素値と上隣接画素の画素95の画素値との差分から互いの被写体の類似性を示す評価値Hを算出する(jは1からLaの正の整数)。なお、画素92は、上隣接画素とともに左隣接画素でもあることから、式(5)では、画素92同士の差分を除外している。また、左隣接画素の画素90,92の画素数は2N+1個であり、上隣接画素の画素92,95の画素数は、式(1)−(4)のいずれかで算出される2N+1以下のLa個である。そこで、イントラ予測部13は、式(5)の計算にあたり、予め縮小フィルタを用い、左隣接画素の画素90,92の画素数を2N+1個からLa個に減少させる。
例えば、イントラ予測部13は、算出した評価値Hが閾値Th以下の場合、左隣接画素の画素90と上隣接画素の画素95との画素値の差が小さいことから、左隣接画素の画素90と上隣接画素の画素95とにおける被写体は類似性を示すと評価する。この場合に、イントラ予測部13は、PU80における色差Cb,Crの画像において予測モード2−5の方向のエッジが一様に分布していると判定する。そして、イントラ予測部13は、求めた色差Cb,Crの予測モード2−5を、補正テーブル120に基づいて、逆向きの方向を示す輝度Yの予測モード31−34のいずれかに置き換える。イントラ予測部13は、置き換えた輝度Yの予測モードと上隣接画素の画素95の画素値とを用い、画素85の画素値を予測する。
一方、イントラ予測部13は、算出した評価値Hが閾値Thより大きい場合、左隣接画素の画素90と上隣接画素の画素95との画素値の差が大きいことから、左隣接画素の画素90と上隣接画素の画素95との被写体の類似性がないと評価する。この場合に、イントラ予測部13は、PU80における色差Cb,Crの画像では、予測モード2−5の方向のエッジが一様に分布していないと判定する。そして、イントラ予測部13は、求めた色差Cb,Crの予測モード2−5を、従来の補正テーブル110に基づいて、輝度Yの予測モード2に置き換える。イントラ予測部13は、輝度Yの予測モード2と左隣接画素の画素90の画素値とを用い、画素85の画素値を予測する。なお、評価値Hに基づく類似性の判定に用いる閾値Thは、評価に用いる上隣接画素の画素数Laに応じて適宜設定される。
図11および図12は、図9に示した画像符号化装置100における符号化処理の例を示す。図11および図12に示したステップS20からステップS41の動作は、制御部150が画像符号化プログラムを実行することにより実現される。すなわち、図11および図12は、画像符号化プログラムおよび画像符号化方法の別実施形態を示す。なお、図11および図12に示す処理は、画像符号化装置100に搭載されるハードウェアにより実行されてもよい。この場合、図9に示した分割部11、判定部12、イントラ予測部13、インター予測部14、切替部15、生成部16、減算部17、符号化部20a、変換部21、逆変換部22および加算部23は、画像符号化装置100内に配置される回路により実現される。
ステップS20において、分割部11は、図9において説明したように、撮像装置30より輝度Yおよび色差Cb,Crの画像を受信する。
次に、ステップS21において、分割部11は、図9において説明したように、受信した輝度Yおよび色差Cb,Crの画像のそれぞれを、予め設定された符号化の色差フォーマットに応じた形状を有する処理単位に分割する。分割部11は、符号化の色差フォーマットを示す情報とともに、分割した処理単位の輝度Yおよび色差Cb,Crの画像を、ラスタスキャンの順に、判定部12、イントラ予測部13、インター予測部14および減算部17にそれぞれ出力する。
次に、ステップS22において、判定部12は、図9において説明したように、受信した符号化の色差フォーマットを示す情報に基づいて、符号化の色差フォーマットが4:2:2か否かを判定する。判定部12は、符号化の色差フォーマットが4:2:2の場合(YES)、処理をステップS23に移行する。一方、判定部12は、符号化の色差フォーマットが4:2:0あるいは4:4:4等の4:2:2以外の場合(NO)、処理をステップS30に移行する。
ステップS23において、イントラ予測部13は、図9において説明したように、処理単位のCTU60に含まれる各PU80の色差Cb,Crの画像におけるイントラ予測の予測モードを求める。また、イントラ予測部13は、色差Cb,Crの予測モードの予測と並行して、CTU60に含まれる各PU80の輝度Yの画像におけるイントラ予測の予測モードを求める。なお、イントラ予測部13は、輝度Yの画像におけるイントラ予測の予測モードを求める処理を、色差Cb,Crの予測モードの処理に先立って実行してもよい。
次に、ステップS24において、イントラ予測部13は、ステップS23においてPU80で求めた色差Cb,Crの画像の予測モードが、対応するPU80で求めた輝度Yの画像の予測モードと一致するか否かを判定する。イントラ予測部13は、PU80における色差Cb,Crと輝度Yとの画像の予測モードが一致する場合(YES)、処理をステップS25に移行する。一方、イントラ予測部13は、互いに一致しない場合(NO)、PU80での色差Cb,Crの画像の予測モードとして、Planar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のうち予測誤差が最小となる予測モードを選択する。そして、イントラ予測部13は、処理をステップS32に移行する。
ステップS25において、イントラ予測部13は、図10において説明したように、PU80において求めた色差Cb,Crの画像の予測モードが予測モード2−5のいずれかであるか否かを判定する。イントラ予測部13は、PU80における色差Cb,Crの画像の予測モードが予測モード2−5のいずれかの場合(YES)、処理をステップS26に移行する。一方、イントラ予測部13は、PU80における色差Cb,Crの画像の予測モードが予測モード2−5でない場合(NO)、補正テーブル110に基づいて、PU80での色差Cb,Crの画像の予測モードを、DMモードで輝度Yの予測モードに置き換える。そして、イントラ予測部13は、処理をステップS32に移行する。
ステップS26において、イントラ予測部13は、図10において説明したように、求めた色差Cb,Crの予測モード2−5を輝度Yの予測モード31−34で置き換えるにあたり、式(1)−(4)を用い上隣接画素の画素92,95の画素数Laを調整する。
次に、ステップS27において、イントラ予測部13は、図10において説明したように、式(5)を用い、PU80での色差Cb,Crの画像の左隣接画素の画素90と上隣接画素の画素95とが示す被写体の特徴の類似性を示す評価値Hを算出する。
次に、ステップS28において、イントラ予測部13は、図10において説明したように、算出した評価値Hと閾値Thとの比較から、左隣接画素の画素90と上隣接画素の画素95とが示す被写体の類似性を判定する。例えば、イントラ予測部13は、算出した評価値Hが閾値Th以下の場合、左隣接画素の画素90と上隣接画素の画素95とにおける被写体は類似性を示し同じ被写体と評価し(YES)、処理をステップS29に移行する。一方、イントラ予測部13は、算出した評価値Hが閾値Thより大きい場合、左隣接画素の画素90と上隣接画素の画素95との被写体の類似性がなく互いに異なる被写体と評価する(NO)。イントラ予測部13は、補正テーブル110に基づいて、PU80において求めた色差Cb,Crの画像の予測モード2−5をDMモードで輝度Yの予測モード2に置き換える。そして、イントラ予測部13は、処理をステップS32に移行する。
ステップS29において、イントラ予測部13は、図10において説明したように、補正テーブル120に基づいて、PU80における色差Cb,Crの画像の予測モードを、DMモードで輝度Yの予測モード31−34のいずれかに置き換える。そして、イントラ予測部13は、処理をステップS32に移行する。
ステップS30において、イントラ予測部13は、図9において説明したように、輝度Yと同じ形状を有する処理単位のCTU60に含まれる各PU80における色差Cb,Crの画像のイントラ予測の予測モードを求める。また、イントラ予測部13は、色差Cb,Crの予測モードの予測と並行して、対応するCTU60に含まれる各PU80での輝度Yの画像のイントラ予測の予測モードを求める。なお、イントラ予測部13は、輝度Yの処理単位であるCTU60ごとにイントラ予測の予測モードを求める処理を、色差Cb,Crの予測モードの処理に先立って実行してもよい。
次に、ステップS31において、イントラ予測部13は、ステップS30においてPU80で求めた色差Cb,Crの画像の予測モードを、対応するPU80で求めた輝度Yの予測モードに応じて選択する。例えば、イントラ予測部13は、求めた色差Cb,Crと輝度Yとの予測モードが一致する場合、PU80での色差Cb,Crの画像の予測モードとして、DMモードで求めた輝度Yの予測モードを選択する。一方、イントラ予測部13は、予測モードが互いに一致しない場合、PU80での色差Cb,Crの画像の予測モードとして、予測誤差が最小となるPlanar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のいずれかを選択する。そして、イントラ予測部13は、処理をステップS32に移行する。
ステップS32において、イントラ予測部13は、各PU80において選択した輝度Yおよび色差Cb,Crの画像における予測モードに基づいて予測画像を生成し、生成した予測画像を用いてイントラ予測におけるコストを算出する。例えば、イントラ予測部13は、各PU80で選択した輝度Yおよび色差Cb,Crの画像の予測モードを示す情報の符号量と、輝度Yおよび色差Cb,Crごとに、CTU60における画像とイントラ予測による予測画像との差分の絶対値和の符号量を求める。イントラ予測部13は、求めた差分の絶対値和と予測モードを示す情報との符号量を加算し、加算した値をコストとして算出する。イントラ予測部13は、算出したコストを切替部15に出力する。
次に、ステップS33において、インター予測部14は、図9において説明したように、分割部11より受けたCTU60の輝度Yおよび色差Cb,Crの各画像と、メモリ140に格納され1フレーム前の画像とを用いインター予測におけるコストを算出する。例えば、インター予測部14は、輝度Yおよび色差Cb,Crごとに、メモリ140に格納された1フレーム前の画像を読み出す。インター予測部14は、分割部11より受けたCTU60の画像と読み出した1フレーム前の画像とを、図3に示したPU80のいずれかのブロックで相関度が高い部分を検索する。インター予測部14は、検索した相関度が高いPU80を基準にして、2つの画像間の変位を示す動きベクトルと、2つの画像の差分の絶対値和とを求める。インター予測部14は、求めた動きベクトルと差分の絶対値和との符号量をそれぞれ求め、求めた符号量を加算した値をコストとして算出する。インター予測部14は、算出したコストを切替部15に出力する。
次に、ステップS34において、切替部15は、図9において説明したように、イントラ予測部13とインター予測部14とから受けたコストを比較し、コストが小さい予測処理を選択する。
次に、ステップS35において、生成部16は、図9において説明したように、選択されたイントラ予測またはインター予測に基づいて、CTU60の処理単位における輝度Yおよび色差Cb,Crの各予測画像を生成する。
次に、ステップS36において、減算部17は、図9において説明したように、分割部11より受けたCTU60における輝度Yおよび色差Cb,Crの各画像と、生成部16により生成された輝度Yおよび色差Cb,Crの各予測画像とを差分する。減算部17は、差分した輝度Yおよび色差Cb,Crの各差分画像を変換部21に出力する。
次に、ステップS37において、変換部21は、図9において説明したように、CTU60の処理単位の輝度Yおよび色差Cb,Crの各差分画像に対してDCT変換等の直交変換を施し、各差分画像の周波数成分を求める。例えば、変換部21は、メモリ140に格納された量子化テーブルを用い、輝度Yおよび色差Cb,Crの各差分画像の周波数成分を量子化する。そして、変換部21は、量子化した輝度Yおよび色差Cb,Crの各差分画像の周波数成分を符号化部20aおよび逆変換部22に出力する。
次に、ステップS38において、逆変換部22は、図9において説明したように、変換部21により量子化されたCTU60の輝度Yおよび色差Cb,Crの各差分画像の周波数成分と、メモリ140に格納された量子化テーブルとを用い、各差分画像を復号する。逆変換部22は、CTU60の処理単位における復号した輝度Yおよび色差Cb,Crの各差分画像を加算部23に出力する。
次に、ステップS39において、加算部23は、図9において説明したように、生成部16により生成された予測画像と逆変換部22により復号された差分画像とを加算し、CTU60の処理単位における元の輝度Yおよび色差Cb,Crの各画像を生成する。加算部23は、生成した元の輝度Yおよび色差Cb,Crの画像をメモリ140に予め割り当てられた格納領域に格納する。
次に、ステップS40において、符号化部20aは、図9において説明したように、CABACを用いて、量子化された輝度Yおよび色差Cb,Crの各差分画像の周波数成分を、各PU80における予測モードを示す情報とともに符号化する。
次に、ステップS41において、符号化部20aは、全ての処理単位のCTU60における輝度Yおよび色差Cb,Crの各画像に対し符号化処理を行ったか否かを判定する。符号化部20aは、全てのCTU60における輝度Yおよび色差Cb,Crの各画像に対して符号化した場合(YES)、符号化した各画像のデータを記憶装置40に出力し、記憶装置40に予め割り当てられた格納領域に格納させる。一方、符号化部20aは、全てのCTU60における輝度Yおよび色差Cb,Crの各画像に対し符号化していない場合(NO)、次のCTU60における輝度Yおよび色差Cb,Crの各画像を符号化するために、処理をステップS22に移行する。
そして、画像符号化装置100は、符号化の処理を終了する。なお、図11および図12の処理のフローは、撮像装置30から画像を受ける度に実行される。
以上、この実施形態では、イントラ予測部13は、輝度Yの画像の形状とは異なる処理単位であるCTU60に含まれるPU80ごとに、色差Cb,Crの各画像におけるイントラ予測の予測モードを求める。イントラ予測部13は、PU80での色差Cb,Crの画像の予測モードとして予測モード2−5のいずれかを求めた場合、左隣接画素と上隣接画素とが示す被写体の特徴の類似性に応じて、逆向き方向を示す輝度Yの予測モード31−34のいずれかに置き換える。イントラ予測部13は、置き換えた輝度Yの予測モードでPU80における色差Cb,Crの画像のイントラ予測を行う。図10で説明したように、求めた色差Cb,Crの予測モード2−5が示す方向と、逆向きの輝度Yの予測モード31−34が示す方向とのずれは、色差Cb,Crの予測モード2−5を輝度Yの予測モード2に置き換える場合と比べて小さくなる。したがって、上隣接画素の画像と左隣接画素の画像との相関が高い場合に、色差Cb,Crの予測モード2−5を輝度の予測モード31−34で置き換えることで、画像符号化装置100は、従来と比べて画像を効率良く符号化することができる。
なお、ステップS23からステップS32までのイントラ予測部13の処理と、ステップS33のインター予測部14の処理とは、図11および図12に示した順序とは逆の順番で実行されてもよいし、並列に実行されてもよい。
なお、イントラ予測部13は、式(5)を用い、左隣接画素の画素90が示す被写体の特徴と上隣接画素の画素95が示す被写体の特徴との類似性を示す評価値Hを算出したが、これに限定されない。例えば、イントラ予測部13は、式(6)を用い、左隣接画素の画素90が示す被写体の特徴と上隣接画素の画素95が示す被写体の特徴との類似性を示す評価値Hを算出してもよい。
ここで、係数α(j)は、重み付け係数を示し、画素90(j)または画素95(j)を起点にして予測モードが示す方向にPU80を横切る線分の長さ、または線分上にある画素85の画素数に応じて決定される。これは、PU80を横切る線分が長いほど、あるいは線分上にある画素85の画素数が多いほど、PU80における予測画像の生成に影響を与えるためである。すなわち、イントラ予測部13は、PU80を横切る線分の長さまたは線分上にある画素85の画素数に応じて重み付けされた評価値Hを算出することで、左隣接画素と上隣接画素との被写体の類似性を、式(5)を用いる場合より正確に評価することができる。
なお、画像符号化装置100は、撮像装置30から受ける画像を動画としたが、静止画でもよい。例えば、画像符号化装置100は、画像が静止画の場合、ステップS32、ステップS37およびステップS38の処理を省略するとともに、ステップS33において、切替部15にイントラ予測を選択させるように制御する。
図13は、画像符号化装置の別実施形態を示す。図13に示す画像符号化装置100の各要素のうち、図9に示した画像符号化装置100の要素と同一または同様の機能を有するものについては、同一の符号を付し詳細な説明は省略する。
画像符号化装置100は、メモリ140および制御部150aを含む。また、画像符号化装置100は、キーボードあるいはタッチパネル等の入力装置を含む。画像符号化装置100は、撮像装置30および記憶装置40に接続される。
例えば、制御部150aは、プログラムを実行するプロセッサ等を含み、プロセッサがメモリ140の画像符号化プログラムを実行することで、分割部11、判定部12、イントラ予測部13a、インター予測部14、切替部15および生成部16として動作する。さらに、制御部150aは、プログラムを実行することで、減算部17、符号化部20a、変換部21、逆変換部22および加算部23として動作する。
例えば、イントラ予測部13aは、処理単位のCTU60に含まれる各PU80の輝度Yの画像におけるイントラ予測の予測モードを求める。イントラ予測部13aは、PU80での色差Cb,Crの画像の予測モードとして、対応するPU80で求めた輝度Yの画像の予測モード、Planar予測、DC予測、水平方向予測、垂直方向予測、予測モード34のうち予測誤差が最小の予測モードを選択する。
ところで、図5において説明したように、輝度Yと色差Cb,Crとの処理単位の形状が互いに異なる場合、色差Cb,Crの予測モード2−5が示す予測方向に対応する輝度Yの予測モードがない。換言すれば、輝度Yの予測モード31−34が示す予測方向に対応する色差Cb,Crの予測モードがない。そこで、イントラ予測部13aは、輝度Yの画像で求めた予測モードが予測モード31−34の場合、色差Cb,Crの画像の予測モードを、図6に示した補正テーブル120に基づいて、逆向きの方向を示す色差Cb,Crの予測モード2−5に置き換えを行う。予測モードの置き換え処理を行うにあたり、イントラ予測部13aは、図10で説明したようにして、PU80における色差Cb,Crの画像の特徴を判別する。例えば、イントラ予測部13aは、式(5)を用い、PU80における色差Cb,Crの画像の左隣接画素の画素90が示す被写体の特徴と上隣接画素の画素95が示す被写体の特徴との類似性を評価する。なお、PU80における色差Cb,Crの画像の特徴を判別するために用いる上隣接画素の画素92,95の画素数Laは、式(1)−(4)を用いて調整される。
イントラ予測部13aは、評価値Hの値が閾値Th以下の場合、左隣接画素の画素90と上隣接画素の画素95とにおける被写体が類似性を示す、すなわちPU80における色差Cb,Crの画像は図10で説明した特徴を有すると評価する。イントラ予測部13aは、補正テーブル120に基づいて、PU80で求めた輝度Yの画像の予測モード31−34を、逆向きの方向を示す色差Cb,Crの予測モード2−5のいずれかに置き換える。イントラ予測部13aは、置き換え後の色差Cb,Crの予測モード、Planar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のうち予測誤差が最小の予測モードを、PU80の色差Cb,Crの画像における予測モードとして選択する。一方、イントラ予測部13aは、評価値Hの値が閾値Thより大きい場合、左隣接画素の画素90と上隣接画素の画素95とにおける被写体の類似性がないと評価する。そして、イントラ予測部13aは、Planar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のうち符号量が最小となる予測モードを、PU80の色差Cb,Crの画像における予測モードとして選択する。
図14および図15は、図13に示した画像符号化装置100における符号化処理の例を示す。なお、図14および図15に示したステップの動作のうち、図11および図12に示したステップと同様の処理を示すものについては、同一のステップ番号を付し、詳細な説明は省略する。図14および図15に示したステップS20からステップS22、ステップS50からステップS56およびステップS30からステップS41の動作は、制御部150aが画像符号化プログラムを実行することにより実現される。すなわち、図14および図15は、画像符号化プログラムおよび画像符号化方法の別実施形態を示す。なお、図14および図15に示す処理は、画像符号化装置100に搭載されるハードウェアにより実行されてもよい。この場合、図13に示した分割部11、判定部12、イントラ予測部13a、インター予測部14、切替部15、生成部16および減算部17は、画像符号化装置100内に配置される回路により実現される。また、図13に示した符号化部20a、変換部21、逆変換部22および加算部23は、画像符号化装置100内に配置される回路により実現される。
図14に示すステップS20からステップS22の処理は、図11で説明した処理と同等であるため、詳細な説明は省略する。ただし、ステップS22において、判定部12は、符号化の色差フォーマットが4:2:2の場合(YES)、処理をステップS50に移行する。一方、判定部12は、符号化の色差フォーマットが4:2:0あるいは4:4:4等の4:2:2以外の場合(NO)、処理をステップS30に移行する。
そして、ステップS50において、イントラ予測部13aは、図13において説明したように、CTU60に含まれる各PU80において、輝度Yの画像におけるイントラ予測の予測モードを求める。
次に、ステップS51において、イントラ予測部13aは、図13において説明したように、ステップS50で求めたPU80における輝度Yの画像の予測モードが予測モード31−34のいずれであるか否かを判定する。例えば、イントラ予測部13aは、輝度Yの画像の予測モードが予測モード31−34のいずれかの場合(YES)、処理をステップS52へ移行する。一方、イントラ予測部13aは、輝度Yの画像の予測モードが予測モード31−34でない場合、処理をステップS56に移行する。
ステップS52において、イントラ予測部13aは、図13において説明したように、画像の特徴を判別するために、上隣接画素の画素92,95の画素数Laを、式(1)−(4)を用い調整する。
次に、ステップS53において、イントラ予測部13aは、図13において説明したように、式(5)を用い、PU80での色差Cb,Crの画像の左隣接画素の画素90と上隣接画素の画素95とが示す被写体の特徴の類似性を示す評価値Hを算出する。
次に、ステップS54において、イントラ予測部13aは、図13において説明したように、算出した評価値Hと閾値Thとの比較から、左隣接画素の画素90と上隣接画素の画素95とが示す被写体の特徴の類似性を判定する。例えば、イントラ予測部13aは、算出した評価値Hが閾値Th以下の場合、左隣接画素の画素90と上隣接画素の画素95とにおける被写体が類似性を示し同じ被写体と評価し(YES)、処理をステップS55に移行する。一方、イントラ予測部13aは、算出した評価値Hが閾値Thより大きい場合、左隣接画素の画素90と上隣接画素の画素95とにおける被写体の類似性がなく互いに異なる被写体と評価する(NO)。そして、イントラ予測部13aは、Planar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のうち、予測誤差が最小となるPU80における色差Cb,Crの画像の予測モードを選択し、処理をステップS32に移行する。
ステップS55において、イントラ予測部13aは、図13において説明したように、補正テーブル120に基づいて、求めた輝度Yの予測モード31−34を、逆向きの方向を示す色差Cb,Crの予測モード2−5のいずれかで置き換える。
図15に示すステップS56において、イントラ予測部13aは、図13において説明したように、CTU60に含まれる各PU80の色差Cb,Crの画像におけるイントラ予測の予測モードを選択する。例えば、イントラ予測部13aは、色差Cb,Crの画像の予測モードとして、ステップS51で求めた輝度Yの画像の予測モード、Planar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のうち、予測誤差が最小の予測モードを選択する。あるいは、イントラ予測部13aは、ステップS55で置き換えた色差Cb,Crの予測モード、Planar予測、DC予測、水平方向予測、垂直方向予測および予測モード34のうち、予測誤差が最小の予測モードを色差Cb,Crの画像の予測モードとする。イントラ予測部13aは、ステップS32に移行する。
そして、画像符号化装置100は、ステップS32からステップS41の処理を実行する。なお、ステップS32からステップS41の処理は、図12で説明した処理と同等であるため、詳細な説明は省略する。また、図14および図15の処理のフローは、撮像装置30から画像を受ける度に実行される。
以上、この実施形態では、イントラ予測部13aは、色差Cb,Crの画像の形状とは異なる処理単位であるCTU60に含まれるPU80ごとに、輝度Yの画像におけるイントラ予測の予測モードを求める。イントラ予測部13aは、PU80での輝度Yの画像において予測モード31−34のいずれかを求めた場合、左隣接画素と上隣接画素とが示す被写体の特徴の類似性に応じて、逆向きの方向を示す色差Cb,Crの予測モード2−5のいずれかに置き換える。イントラ予測部13aは、置き換えた色差Cb,Crの予測モードでPU80における色差Cb,Crの画像のイントラ予測を行う。これにより、イントラ予測部13aは、求めた輝度Yの予測モードが予測モード31−34の場合でも、DMモードで色差Cb,Crの予測モードを選択することができ、画像符号化装置100は、従来と比べて画像を効率良く符号化することができる。
なお、ステップS50からステップS56およびステップS30からステップS32のイントラ予測部13aの処理と、ステップS33のインター予測部14の処理とは、図14から図15に示した順序とは逆の順番で実行されてもよいし、並列に実行されてもよい。
なお、イントラ予測部13aは、式(5)を用い、左隣接画素の画素90が示す被写体の特徴と上隣接画素の画素95が示す被写体の特徴との類似性を示す評価値Hを算出したが、これに限定されず、例えば、式(6)を用いて評価値Hを算出してもよい。
なお、画像符号化装置100は、撮像装置30から受ける画像を動画としたが、静止画でもよい。例えば、画像符号化装置100は、画像が静止画の場合、ステップS33、ステップS38およびステップS39の処理を省略するとともに、ステップS34において、切替部15にイントラ予測を選択させるように制御する。
図16は、図1、図9および図13に示した画像符号化装置100のハードウェア構成の例を示す。なお、図16に示す各要素のうち、図1、図9および図13に示した要素と同等のものについては同一の符号を付して示し、詳細な説明は省略する。
コンピュータ装置200は、プロセッサ210、カメラインタフェース220、入出力インタフェース230、光学ドライブ装置240、メモリ250およびハードディスク装置260を含む。プロセッサ210、カメラインタフェース220、入出力インタフェース230、光学ドライブ装置240、メモリ250およびハードディスク装置260は、バスを介し互いに接続される。また、プロセッサ210、カメラインタフェース220、入出力インタフェース230、メモリ250は、画像符号化装置100に含まれる。
コンピュータ装置200は、カメラインタフェース220を介して、例えば、撮像装置30に接続される。プロセッサ210は、カメラインタフェース220を介して、撮像装置30により撮像された被写体の画像を受信する。なお、図16では、撮像装置30は、コンピュータ装置200の外部に配置されるが、例えば、コンピュータ装置200の内部に配置されてもよい。
入力装置300は、例えば、キーボード、タッチパネルあるいはマウス等である。コンピュータ装置200のユーザは、入力装置300を操作し、例えば、画像の符号化処理の開始あるいは終了の指示、または符号化の色差フォーマットの設定等を行う。
また、出力装置400は、有機ELや液晶等のディスプレイあるいはプリンタ等を含む。出力装置400は、プロセッサ210の制御により撮像装置30により撮影された画像を表示あるいは印刷等する。
光学ドライブ装置240は、光ディスク等のリムーバブルディスク245を装着可能であり、装着したリムーバブルディスク245に記録された情報の読み出しおよび記録を行う。
また、ハードディスク装置260は、コンピュータ装置200のオペレーティングシステムとともに、プロセッサ210が符号化処理を実行するためのアプリケーションプログラムを格納する。また、メモリ250やハードディスク装置260は、図5に示した補正テーブル110および図6に示した補正テーブル120を予め格納する。
なお、符号化処理を実行するためのアプリケーションプログラムは、例えば、リムーバブルディスク245に記録して頒布することができる。そして、リムーバブルディスク245が光学ドライブ装置240に装着され、プロセッサ210が読み込み処理を行うことにより、符号化処理を実行するためのアプリケーションプログラムは、メモリ250やハードディスク装置260に格納されてもよい。また、コンピュータ装置200は、コンピュータ装置200に含まれるネットワークインタフェースを介し、ネットワークから符号化処理を実行するためのアプリケーションプログラムをダウンロードし、メモリ250やハードディスク装置260に格納してもよい。
また、プロセッサ210は、符号化処理のアプリケーションプログラムを実行することで、図1に示した予測部10および符号化部20として機能する。また、プロセッサ210は、符号化処理のアプリケーションプログラムを実行することで、図9に示した分割部11、判定部12、イントラ予測部13、インター予測部14、切替部15および生成部16として機能する。さらに、プロセッサ210は、符号化処理のアプリケーションプログラムを実行することで、図9に示した減算部17、符号化部20a、変換部21、逆変換部22および加算部23として機能する。また、プロセッサ210は、符号化処理のアプリケーションプログラムを実行することで、図13に示した分割部11、判定部12、イントラ予測部13a、インター予測部14、切替部15および生成部16として機能する。さらに、プロセッサ210は、符号化処理のアプリケーションプログラムを実行することで、図13に示した減算部17、符号化部20a、変換部21、逆変換部22および加算部23として機能する。
つまり、画像符号化装置100は、プロセッサ210、カメラインタフェース220、入出力インタフェース230、メモリ250の協働によって実現する。
符号化処理のアプリケーションプログラムは、撮像装置30から受けた輝度Yおよび色差Cb,Crの各画像を、符号化の色差フォーマットに応じた形状の処理単位で予測誤差が最小となる予測方向を求める処理をプロセッサ210に実行させるプログラムを含む。符号化処理のアプリケーションプログラムは、求めた色差Cb,Crの予測方向が所定の予測方向の場合、求めた予測方向と逆向きの輝度Yで定義された予測方向で色差Cb,Crの画像をイントラ予測する処理をプロセッサ210に実行させるプログラムを含む。また、符号化処理のアプリケーションプログラムは、イントラ予測の結果に基づいて色差Cb,Crの画像を符号化する処理をプロセッサ210に実行させるプログラムを含む。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。