以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
0.概要
1.第1の実施の形態(符号化装置)
2.第2の実施の形態(ネットワーク)
3.第3の実施の形態(コンピュータ)
4.第4の実施の形態(テレビジョン装置)
5.第5の実施の形態(携帯電話機)
6.第6の実施の形態(記録再生装置)
7.第7の実施の形態(撮像装置)
8.実施のその他の例
<概要>
(符号化方式)
以下においては、HEVC(High Efficiency Video Coding)方式の画像符号化・復号に適用する場合を例に、本技術を説明する。
(ブロック分割)
MPEG2又はH.264/AVC(以下、AVCと称する)などの旧来の画像符号化方式では、符号化処理は、マクロブロックと呼ばれる処理単位で実行される。マクロブロックは、16×16画素の均一なサイズを有するブロックである。これに対し、HEVCでは、符号化処理は、符号化単位(CU:Coding Unit)と呼ばれる処理単位で実行される。CUは、最大符号化単位(LCU:Largest Coding Unit)を再帰的に分割することにより形成される、可変的なサイズを有するブロックである。選択可能なCUの最大サイズは、64×64画素である。選択可能なCUの最小サイズは、8×8画素である。最小サイズのCUは、(SCU:Smallest Coding Unit)と呼ばれる。
このように、可変的なサイズを有するCUが採用される結果、HEVCでは、画像の内容に応じて画質及び符号化効率を適応的に調整することが可能である。予測符号化のための予測処理は、予測単位(PU:Prediction Unit)と呼ばれる処理単位で実行される。PUは、CUをいくつかの分割パターンのうちの1つで分割することにより形成される。さらに、直交変換処理は、変換単位(TU:Transform Unit)と呼ばれる処理単位で実行される。TUは、CU又はPUをある深さまで分割することにより形成される。
(再帰的なブロックの分割)
図1は、HEVCにおけるCUについての再帰的なブロック分割の概要を説明するための説明図である。CUのブロック分割は、1つのブロックの4(=2×2)個のサブブロックへの分割を再帰的に繰り返すことにより行われ、結果として四分木(Quad-Tree)状のツリー構造が形成される。1つの四分木の全体をCTB(Coding Tree Block)といい、CTBに対応する論理的な単位をCTU(Coding Tree Unit)という。
図1の上部には、一例として、64×64画素のサイズを有するCUであるC01が示されている。C01の分割の深さは、ゼロに等しい。これは、C01がCTUのルートでありLCUに相当することを意味する。LCUサイズは、SPS(Sequence Parameter Set)又はPPS(Picture Parameter Set)において符号化されるパラメータにより指定され得る。CUであるC02は、C01から分割される4つのCUのうちの1つであり、32×32画素のサイズを有する。C02の分割の深さは、1に等しい。CUであるC03は、C02から分割される4つのCUのうちの1つであり、16×16画素のサイズを有する。C03の分割の深さは、2に等しい。CUであるC04は、C03から分割される4つのCUのうちの1つであり、8×8画素のサイズを有する。C04の分割の深さは、3に等しい。このように、CUは、符号化される画像を再帰的に分割することにより形成される。分割の深さは、可変的である。例えば、青空のような平坦な画像領域には、より大きいサイズの(即ち、深さが小さい)CUが設定され得る。一方、多くのエッジを含む急峻な画像領域には、より小さいサイズの(即ち、深さが大きい)CUが設定され得る。そして、設定されたCUの各々が、符号化処理の処理単位となる。
(CUへのPUの設定)
PUは、イントラ予測及びインター予測を含む予測処理の処理単位である。PUは、CUをいくつかの分割パターンのうちの1つで分割することにより形成される。図2は、図1に示したCUへのPUの設定について説明するための説明図である。図2の右には、2N×2N、2N×N、N×2N、N×N、2N×nU、2N×nD、nL×2N及びnR×2Nという、8種類の分割パターンが示されている。これら分割パターンのうち、イントラ予測では、2N×2N及びN×Nの2種類が選択可能である(N×NはSCUでのみ選択可能)。一方、インター予測では、非対称動き分割が有効化されている場合に、8種類の分割パターンの全てが選択可能である。
(CUへのTUの設定)
TUは、直交変換処理の処理単位である。TUは、CU(イントラCUについては、CU内の各PU)をある深さまで分割することにより形成される。図3は、図1に示したCUへのTUの設定について説明するための説明図である。図3の右には、C02に設定され得る1つ以上のTUが示されている。例えば、TUであるT01は、32×32画素のサイズを有し、そのTU分割の深さはゼロに等しい。TUであるT02は、16×16画素のサイズを有し、そのTU分割の深さは1に等しい。TUであるT03は、8×8画素のサイズを有し、そのTU分割の深さは2に等しい。
上述したCU、PU及びTUといったブロックを画像に設定するためにどのようなブロック分割を行うかは、典型的には、符号化効率を左右するコストの比較に基づいて決定される。エンコーダは、例えば1つの2M×2M画素のCUと、4つのM×M画素のCUとの間でコストを比較し、4つのM×M画素のCUを設定した方が符号化効率が高いならば、2M×2M画素のCUを4つのM×M画素のCUへと分割することを決定する。
しかしながら、HEVCにおいて選択可能なブロックサイズの種類は、旧来の画像符号化方式と比較すると格段に多い。選択可能なブロックサイズの種類が多いということは、最適なブロックサイズを探索するためにコストを比較すべきブロックサイズの組合せが多いことを意味する。対照的に、AVCにおける(符号化処理の処理単位である)マクロブロックのブロックサイズは16×16画素に限定されていた。AVCにおける予測ブロックのブロックサイズは可変的であったが、そのサイズの上限は16×16画素であった。AVCにおける変換ブロックのブロックサイズは、4×4画素又は8×8画素であった。HEVCにおける選択可能なブロックサイズの種類の増加は、限られた時間内でより多くの情報をより速く処理しなければならないという要件をエンコーダに課し、エンコーダの実装コストを増加させる。
(CU/PUの走査順)
画像を符号化する際、画像(又はスライス、タイル)内に格子状に設定されるCTB(又はLCU)が、ラスタスキャン順に走査される。1つのCTBの中では、CUは、四分木を左から右、上から下に辿るように走査される。カレントブロックを処理する際、上及び左の隣接ブロックの情報が入力情報として利用される。図4は、CU/PUの走査順について説明するための説明図である。図4の左上には、1つのCTBに含まれ得る4つのCUである、C10、C11、C12及びC13が示されている。各CUの枠内の数字は、処理の順序を表現している。符号化処理は、左上のCUであるC10、右上のCUであるC11、左下のCUであるC12、右下のCUであるC13の順で実行される。図4の右には、CUであるC11に設定され得るインター予測のための1つ以上のPUが示されている。図4の下には、CUであるC12に設定され得るイントラ予測のための1つ以上のPUが示されている。これらPUの枠内の数字に示したように、PUもまた、左から右、上から下に辿るように走査される。1つのブロックがより多くのサブブロックに分割されると、直列的に走査されるべきサブブロックの数が増加する結果、処理回路のクロックがタイトになり、メモリアクセスの回数も増大する。よって、こうしたより小さいブロックへのブロック分割もまた、エンコーダの性能要件の上昇の原因となり得る。
(隣接ブロックの参照)
HEVCのインター予測は、適応動きベクトル予測(AMVP:Adaptive Motion Vector Prediction)と呼ばれる仕組みを有する。AMVPでは、動きベクトル情報の符号量を削減するために、カレントPUの動きベクトル情報が、隣接PUの動きベクトル情報に基づいて予測符号化される。図5は、インター予測処理における隣接PUの参照について説明するための説明図である。図5の例において、カレントCUに2つのPUである、P10、P11が設定されている。PUであるP11は、カレントPUである。PUであるP11についてのインター予測処理のAMVPでは、左の隣接ブロックNA0及びNA1並びに上の隣接ブロックNB0、NB1及びNB2に設定された動きベクトルが、予測動きベクトルの候補として参照される。従って、PUである P11についてのインター予測処理は、これら上及び左の隣接ブロックについてのインター予測処理の終了を待ってから実行されることになる。
HEVCのイントラ予測では、カレントPUの予測画素値が、隣接PUの参照画素値を用いて計算される。図6は、イントラ予測処理における隣接PUの参照について説明するための説明図である。図6の例において、PU P21がカレントPUである。画素PX11は、PU P11に属する画素である。一方、画素q0乃至q6は上の隣接PUに属する参照画素であり、画素r1乃至r6は左の隣接PUに属する参照画素である。例えば、イントラDC予測における画素PX11の予測画素値は、参照画素q1、q2、q3、q4、r1、r2、r3及びr4の画素値の平均に等しい。
図5及び図6を用いて説明したブロック間の参照関係もまた、1つのブロックがより多くのブロックに分割された場合のエンコーダの性能要件の上昇の要因である。例えば、隣接ブロックの処理の終了までカレントブロックの処理を開始できない結果として、処理回路のクロックはタイトになり得る。また、隣接ブロックの画素値を保持するバッファへのアクセスの回数は、参照画素が利用される回数に依存し得る。
(モード選択)
ところで、AVCそしてHEVC符号化方式において、より高い符号化効率を達成するには、適切な予測モードの選択が重要である。
かかる選択方式の例として、JM (Joint Model) と呼ばれるAVCの参照ソフトウエア (http://iphome.hhi.de/suehring/tml/index.htm において公開されている) に実装されている方法を挙げることが出来る。
JMにおいては、以下に述べる、High Complexity Modeと、Low Complexity Modeの2通りのモード判定方法を選択することが可能である。どちらも、それぞれの予測モードModeに関するコスト関数値を算出し、これを最小にする予測モードを当該ブロック乃至マクロブロックに対する最適モードとして選択する。
High Complexity Modeにおけるコスト関数は、以下の式(1)のように示される。
ここで、Ωは、当該ブロック乃至マクロブロックを符号化するための候補モードの全体集合、Dは、当該予測モードで符号化した場合の、復号画像と入力画像の差分エネルギーである。λは、量子化パラメータの関数として与えられるLagrange未定乗数である。Rは、直交変換係数を含んだ、当該モードで符号化した場合の総符号量である。
つまり、High Complexity Modeでの符号化を行うには、上記パラメータD及びRを算出するため、全ての候補モードにより、一度、仮エンコード処理を行う必要があり、より高い演算量を要する。
Low Complexity Modeにおけるコスト関数は、以下の式(2)のように示される。
ここで、Dは、High Complexity Modeの場合と異なり、予測画像と入力画像の差分エネルギーとなる。Qp2Quant(QP)は、量子化パラメータQpの関数として与えられ、HeaderBitは、直交変換係数を含まない、動きベクトルや、モードといった、Headerに属する情報に関する符号量である。
すなわち、Low Complexity Modeにおいては、それぞれの候補モードに関して、予測処理を行う必要があるが、復号画像までは必要ないため、符号化処理まで行う必要はない。このため、High Complexity Modeより低い演算量での実現が可能である。
(画面間予測)
HEVCにおける動き補償処理は、AVCと同様に、輝度信号は1/4画素精度、色差信号は1/8画素精度の動き補償処理をすることが可能である。
ただし、AVCにおいては、輝度信号に6タップのフィルタを用い、色差信号は線形内挿による動き補償を行うのに対し、HEVCにおいては、輝度信号には8または7タップの、色差信号には4タップのフィルタによって動き補償が行われる。すなわち、HEVCにおいては、AVCと比して、タップ長が長くなっていることに加え、演算精度が16ビットに向上されている。
さらに、水平方向の積和演算を行って丸め処理を行い、垂直方向の積和演算を行って丸め処理を行うといった2段階の処理を行うのではなく、水平方向と垂直方向の積和演算を行った後、1度だけ丸め処理を行うことによって、演算誤差を減少させ、より高い符号化効率を実現させている。
また、HEVCにおいては、対称分割(単一のCUを、上下もしくは左右に均等な大きさのPU形状に分割)による動き補償パーティションに加え、非対称分割(単一のCUを、上下もしくは左右に不均等な大きさのPU形状に分割)による動き補償パーティションを用いることも可能であり、これによって、さらに符号化効率を向上させている。
(画面内予測)
図7は、AVCとHEVCとの画面内予測の違いを示す図である。HEVCにおいては、近接画素間の相関関係を利用し圧縮率を向上させるため、復号済みの画素値を用いた画面内予測符号化が行われる。画面内予測の場合、予測は正方形のTU単位で行われ、4×4、8×8、16×16、32×32の4サイズがある。HEVCの画面内予測は、AVCの画面内予測と比して、次のようにさまざまに改良されている。
まず、被符号化ブロックに隣接する参照画素に、条件によりフィルタをかけるため、雑音除去によって予測効率が高まり、とくに参照画素から遠い場所での予測効率が高まっている。また、上記フィルタ処理において、グラデーション領域符号化の視覚的な品質を高めるための特別なフィルタ処理が条件によって施される。
方向性予測は、AVCが9方向であったのに対して、HEVCにおいては、33方向と、方向性予測がより細かく指定できるようになっており、微妙な角度でも高い効率で予測か可能である。
また、HEVCにおいては、AVCにもあったDC予測、水平・垂直予測がそれぞれ改良されており、AVCのPlane予測に代わる、より高性能なPlanar予測が導入されている。
AVCの画面内予測ブロックサイズは、4×4、8×8、16×16であったが、HEVCは、これらに加えて、32×32もある。また、全ブロックサイズで予測の種類が共通である。
以上のように、HEVCにおいては、PU毎に2通りの非方向性予測と33通りの方向性予測をまとめて0乃至34と番号付けされた画面内予測モード番号(predModeIntra)が与えられる。TUは、PUと同じか、より小さいサイズの正方形となり、符号化・復号、画面内予測はTU単位に行われる。PU内の各TUでは、同一のpredModeIntraが用いられる。
次に、3種類の画面内予測処理について説明する。なお、以降、TU内で生成される予測画素値をpreSamples[x][y]と記す。
1.Planar予測(predModeIntra=0の場合)
Planar予測においては、予測画素値が、4個の参照画素値を使って滑らかに生成される。Planar予測の予測画素値は、次の式(3)で表わされる。
図8は、Planar予測を説明する図である。Planar予測においては、p[N][-1]が(N,y)でなく、(N+1,y)の位置にあるかのように、また、p[-1][N]が(x,N-1)の位置にあるかのように見立て、(x,y)の位置で、水平/垂直にそれぞれ線形補間した値(○)の平均が補間値となる。
すなわち、AVCのplane予測では、最小二乗平面で予測画像が作られたが、HEVCのPlanar予測では、予測画像は曲面となる。
2.直流(DC)予測(predModeIntra=1の場合)
予測画像は、図9の黒丸で示される参照画素(2N個)の平均値(dcVal)でTU内を埋め尽くすことで生成される。DC予測の予測画素値は、次の式(4)で表わされる。
ただし、輝度信号でTUサイズ(N)が32未満の場合、TUの上縁・左縁の画素については、最近傍の参照画像(図9の白丸で示される予測画素と破線で繋がれた黒丸で示される参照画素)との重み付き平均をとることで、破線方向の画素値変化を低減させることができる。
すなわち、次の式(5)に示されるように、AVCのDC予測では参照画素平均値で予測画像が作られたが、HEVCのDC予測では、参照画素に隣接する部分を馴染ませる処理が加えられている。
なお、縁以外はdeValそのままである。
3.方向性予測(predModeIntra=2乃至34の場合)
・参照方向の傾き
図10は、predModeIntraと参照方向を示す図である。図10の矢印が、方向性予測(predModeIntra=2乃至34の33通り)における画素値参照方向を表している。矢印が指している先の数字をみると参照方向の傾きがわかる。例えば、predModeIntra=10の場合は水平方向(y方向の変化が0であるため)の参照、13の場合は-9/32の傾きの参照(x方向の変化が-32、y方向の変化が-9であるため)、22の場合は32/13の傾きの参照(x方向の変化が-13、y方向の変化が-32であるため)になる。
・内分値による予測
図11は、predModeIntra=22の場合の予測例を示す図である。なお、図11においては、図9の場合と同じ座標系が用いられている。predModeIntra=22の場合の(3,2)の位置を求めるには、参照方向の傾きが32/13であるので、参照画素のあるラインまでy方向に-3移動すると、x軸方向には13/32*3=39/32ずれてしまう。すなわち、実際には、(1,-1)から25/32、(2,-1)から7/32離れたところ(図11の破線の丸)の画素値を仮想的に求めることになってしまう。
HEVCにおいては、この値を参照画素からの距離に応じた内分計算により求める。すなわち、次の式(6)が(3,2)の位置の画面内予測値となる。なお、参照先が整数画素位置であれば、内分計算は行われず、その位置の参照画素値がそのまま予測値となる。
・invAngleを使った間引き転写と予測
図11において、(0,2)の位置の予測値を求める場合、AVCでは、左の参照画素列から三角の位置の画素値を求めるが、HEVCでは、補間値計算に先立って、参照画素が一直線(この場合(predModeIntra=22>18)水平。predModeIntraが18未満のときは垂直)に並ぶように指定されるinvAngle(inverse angle parameter,図10の矢印が指す数字(-2乃至32の整数)の逆数に8192(=2
13)をかけ整数に丸めたもの)という値を使った間引き転写が行われる。この間引き転写は、次の式(7)で表わされる。
predModeIntra=22の場合、invAngleは-630であるので、次の式(8)のように間引き転写がなされる。
その後、次に式(9)に示されるように、上述の(3,2)の場合とまったく同様に補間値が求められる。
・予測値の例外処理
さらに、輝度信号でN<32の場合、以下の例外的な予測が行われる。
predModeIntra=10(水平方向参照)の場合は予測画像上端の一行を、
predSamples[x][0]=Clip(p[-1][0]+((p[x][-1]-p[-1][-1])>>1))(x=0..N-1)
と、predModeIntra=26(垂直方向参照)の場合は左端の一行を、
predSamples[0][y]=Clip(p[0][-1]+((p[-1][y]-p[-1][-1])>>1))(y=0..N-1)
と予測します。なお、Clip()は、引数を輝度信号の取り得る値(8ビット画像であれば0乃至255)にクリッピングする(上下限内におさめる)関数である。
以上のように、HEVCは、AVCに対しても非常に多くの予測モードがあり、さらに、符号化効率向上のための改良により計算量も増えている。したがって、上述した式(1)や式(2)を用いて、全てのモードのコストを計算すると、計算量が膨大になってしまい、例えば、低遅延やリアルタイムといった用途のエンコーダとして使用することが困難であった。
また、コスト計算で用いられている歪み量は、一般にSAD(Sum of Abusolute Difference )やSNR(Signal-Noise Ratio)といった客観評価値であるが、それが必ずしも主観にマッチしているわけではない。すなわち、現状のコスト計算を用いると、主観上最適ではないモードが選択される恐れがあった。
そこで、本技術においては、画像を符号化する際に用いる量子化パラメータに応じて選択対象となる予測モードの種類が制限された状態で、画像を符号化する際に用いる予測モードが設定される。そして、設定された予測モードに従って、画像が再帰的に分割された符号化ブロック毎に符号化される。
次に、以上のような本技術について、具体的な装置への適用例について説明する。
<第1実施の形態>
(符号化装置の一実施の形態の構成例)
図12は、本技術を適用した符号化装置の一実施の形態の構成例を示すブロック図である。
図12の符号化装置12は、A/D変換部31、画面並べ替えバッファ32、演算部33、直交変換部34、量子化部35、可逆符号化部36、蓄積バッファ37、逆量子化部38、逆直交変換部39、および加算部40を有する。また、符号化装置12は、フィルタ41、フレームメモリ44、スイッチ45、イントラ予測部46、動き予測・補償部47、予測画像選択部48、レート制御部49、およびモードテーブル選択部50を有する。
符号化装置12のA/D変換部31は、符号化対象として入力されたフレーム単位の画像をA/D変換する。A/D変換部31は、変換後のデジタル信号である画像を画面並べ替えバッファ32に出力して記憶させる。
画面並べ替えバッファ32は、記憶した表示の順番のフレーム単位の画像を、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ32は、並べ替え後の画像を、演算部33、イントラ予測部46、動き予測・補償部47、およびモードテーブル設定部50に出力する。また、画面並べ替えバッファ32は、画像の種類の情報として、画像のピクチャタイプを、モードテーブル設定部50に出力する。
演算部33は、画面並べ替えバッファ32から供給される画像から、予測画像選択部48から供給される予測画像を減算することにより符号化を行う。演算部33は、その結果得られる画像を、残差情報(差分)として直交変換部34に出力する。なお、予測画像選択部48から予測画像が供給されない場合、演算部33は、画面並べ替えバッファ32から読み出された画像をそのまま残差情報として直交変換部34に出力する。
直交変換部34は、TU単位で、演算部33からの残差情報に対して直交変換処理を行う。直交変換部34は、直交変換処理後の直交変換処理結果を量子化部35に供給する。
量子化部35は、直交変換部34から供給される直交変換処理結果を量子化する。量子化部35は、量子化の結果得られる量子化値を可逆符号化部36に供給する。
可逆符号化部36は、最適イントラ予測モードを示す情報(以下、イントラ予測モード情報という)をイントラ予測部46から取得する。また、可逆符号化部36は、最適インター予測モードを示す情報(以下、インター予測モード情報という)、動きベクトル、参照画像を特定する情報などを動き予測・補償部47から取得する。また、可逆符号化部36は、フィルタ41からオフセットフィルタに関するオフセットフィルタ情報を取得する。
可逆符号化部36は、量子化部35から供給される量子化値に対して、可変長符号化や算術符号化などの可逆符号化を行う。
また、可逆符号化部36は、イントラ予測モード情報、または、インター予測モード情報、動きベクトル、および参照画像を特定する情報、並びにオフセットフィルタ情報などを、符号化に関する符号化情報として可逆符号化する。可逆符号化部36は、可逆符号化された符号化情報と量子化値を、符号化データとして蓄積バッファ37に供給し、蓄積させる。
なお、可逆符号化された符号化情報は、可逆符号化された量子化値のヘッダ情報(例えばスライスヘッダ)とされてもよい。
蓄積バッファ37は、可逆符号化部36から供給される符号化データを、一時的に記憶する。また、蓄積バッファ37は、記憶している符号化データを、符号化ストリームとして伝送部13に供給する。
また、量子化部35より出力された量子化値は、逆量子化部38にも入力される。逆量子化部38は、量子化値を逆量子化する。逆量子化部38は、逆量化の結果得られる直交変換処理結果を逆直交変換部39に供給する。
逆直交変換部39は、TU単位で、逆量子化部38から供給される直交変換処理結果に対して逆直交変換処理を行う。逆直交変換の方式としては、例えば、IDCT(逆離散コサイン変換)とIDST(逆離散サイン変換)がある。逆直交変換部39は、逆直交変換処理の結果得られる残差情報を加算部40に供給する。
加算部40は、逆直交変換部39から供給される残差情報と、予測画像選択部48から供給される予測画像を加算し、復号を行う。加算部40は、復号された画像をフィルタ41とフレームメモリ44に供給する。
フィルタ41は、加算部40から供給される復号された画像に対して、フィルタ処理を行う。具体的には、フィルタ41は、デブロックフィルタ処理と適応オフセットフィルタ(SAO(Sample adaptive offset))処理を順に行う。フィルタ41は、フィルタ処理後の符号化済みのピクチャをフレームメモリ44に供給する。また、フィルタ41は、行われた適応オフセットフィルタ処理の種類とオフセットを示す情報を、オフセットフィルタ情報として可逆符号化部36に供給する。
フレームメモリ44は、フィルタ41から供給される画像と、加算部40から供給される画像を蓄積する。フレームメモリ44に蓄積されたフィルタ処理が行われていない画像のうちのPU(Prediction Unit)に隣接する画像は、周辺画像としてスイッチ45を介してイントラ予測部46に供給される。一方、フレームメモリ44に蓄積されたフィルタ処理が行われた画像は、参照画像としてスイッチ45を介して動き予測・補償部47に出力される。
イントラ予測部46は、PU単位で、フレームメモリ44からスイッチ45を介して読み出された周辺画像を用いて、候補となる全てのイントラ予測モードのイントラ予測処理を行う。
また、イントラ予測部46は、画面並べ替えバッファ32から読み出された画像と、イントラ予測処理の結果生成される予測画像とに基づき、モードテーブル設定部50から供給される情報が示す使用可能であるイントラ予測モードに対してコスト関数値(詳細は後述する)を算出する。そして、イントラ予測部46は、コスト関数値が最小となるイントラ予測モードを、最適イントラ予測モードに決定する。
イントラ予測部46は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、予測画像選択部48に供給する。イントラ予測部46は、予測画像選択部48から最適イントラ予測モードで生成された予測画像の選択が通知された場合、イントラ予測モード情報を可逆符号化部36に供給する。なお、イントラ予測モードとはPUのサイズ、予測方向などを表すモードである。
動き予測・補償部47は、モードテーブル設定部50から供給される情報が示す使用可能であるインター予測モードの動き予測・補償処理を行う。具体的には、動き予測・補償部47は、画面並べ替えバッファ32から供給される画像と、フレームメモリ44からスイッチ45を介して読み出される参照画像に基づいて、モードテーブル設定部50から供給される情報が示す使用可能であるインター予測モードの動きベクトルをPU単位で検出する。そして、動き予測・補償部47は、その動きベクトルに基づいてPU単位で参照画像に補償処理を施し、予測画像を生成する。
このとき、動き予測・補償部47は、画面並べ替えバッファ32から供給される画像と予測画像とに基づいて、モードテーブル設定部50から供給される情報が示す使用可能であるインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。そして、動き予測・補償部47は、最適インター予測モードのコスト関数値と、対応する予測画像を予測画像選択部48に供給する。また、動き予測・補償部47は、予測画像選択部48から最適インター予測モードで生成された予測画像の選択が通知された場合、インター予測モード情報、対応する動きベクトル、参照画像を特定する情報などを可逆符号化部36に出力する。なお、インター予測モードとは、PUのサイズなどを表すモードである。
予測画像選択部48は、イントラ予測部46および動き予測・補償部47から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちの、対応するコスト関数値が小さい方を、最適予測モードに決定する。そして、予測画像選択部48は、最適予測モードの予測画像を、演算部33および加算部40に供給する。また、予測画像選択部48は、最適予測モードの予測画像の選択をイントラ予測部46または動き予測・補償部47に通知する。
レート制御部49は、蓄積バッファ37に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部35の量子化動作のレートを制御する。また、レート制御部49は、量子化パラメータQpを、モードテーブル設定部50に供給する。
モードテーブル設定部50は、量子化パラメータQpに応じて、どの予測モードが使用可能で、どの予測モードが使用不可能であるかが示されている(すなわち、選択対象となる予測モードの種類が制限されている状態である)複数のモードテーブルを有している。換言するに、これらのモードテーブルは、量子化パラメータと選択対象となる予測モードとの対応関係をテーブル形式で表わしたものである。
モードテーブル設定部50は、例えば、CTB毎に、モードテーブル選択処理を行う。具体的には、モードテーブル設定部50は、画面並べ替えバッファ32から読み出された原画像から統計情報を算出し、算出した統計情報、画面並べ替えバッファ32からのピクチャタイプ、およびレート制御部49からの量子化パラメータQpなどに応じて、複数のモードテーブルのうち、使用するモードテーブルを決定し、使用可能な予測モードを決定する。モードテーブル設定部50は、決定した使用可能な予測モードの情報を、イントラ予測部46および動き予測・補償部47に供給する。例えば、使用可能な予測モードが1つであれば、処理対象のCTBの予測モードは、それに決定される。すなわち、予測画像選択部48で決定される予測モードは、モードテーブル設定部50が決定した使用可能な予測モードのいずれかである。
図13は、モードテーブル設定部50の構成例を示すブロック図である。
図13のモードテーブル設定部50は、統計情報算出部61、テーブル選択部62、およびテーブル記憶部63を含むように構成されている。
統計情報算出部61は、画面並べ替えバッファ32から読み出された原画像から統計情報を算出する。統計情報としては、例えば、Variance64×64やSAD64×64がある。これらは、それぞれ、式(10)と式(11)で表わされる。
なお、統計情報としては、Variance64×64やSAD64×64に限らず、Complexityや動きを推定可能な統計情報であるならば他の情報でもよい。例えば、Complexityであれば、Total VariationやMAD(Mean Absolute Deviation : 平均絶対偏差)でもよい。また、統計情報を求める単位も一例として64×64を用いたが、8×8、16×16、32×32単位で算出してもよいし、さらに、いずれかの単位での平均値でもよい。
統計情報算出部61は、算出した統計情報(Variance64×64、SAD64×64)をテーブル選択部62に供給する。テーブル選択部62には、さらに、画面並べ替えバッファ32からの画像のピクチャタイプと、レート制御部49からの量子化パラメータQpが供給される。
テーブル選択部62は、統計情報およびピクチャタイプに応じて、テーブル記憶部63に記憶されている、選択対象となる予測モードの種類が制限された状態にある複数のモードテーブルのうち、使用するモードテーブルを決定する。例えば、テーブル選択部62は、ピクチャタイプがIスライスであるか否か、または、統計情報が所定の閾値より大きいか小さいかなどに応じて、その領域が、グラデーションエリアか、ファストエッジエリアか、それら以外のノーマルエリアかを判定し、各エリアに対応するモードテーブルを選択する。なお、ファストエッジエリアとは、例えば、監視カメラなどで撮像される、例えば、通り過ぎる人の輪郭などの早い動きのエッジがあるエリアのことをいう。
具体的には、Iスライスであって、Varianceが閾値Th_var_flat以下の場合、グラデーションエリアであると判定される。
また、Iスライス以外であって、SADが、閾値Th_sao_low以上、かつ、閾値Th_sao_high(Th_sad_low<Th_sad_high)以下の場合(すなわち、ある程度の動きがある場合)で、Varianceが閾値Th_var_flat以下の場合、グラデーションエリアであると判定される。
Iスライス以外であって、SADが、閾値Th_sao_low以上、かつ、閾値Th_sao_high(Th_sad_low<Th_sad_high)以下の場合(すなわち、ある程度の動きがある場合)で、Varianceが閾値Th_var_flatより大きく、閾値Th_var_edge_low以上であり、閾値Th_var_edge_highである場合(すなわち、ある程度の複雑さがある場合)、ファストエッジエリアであると判定される。なお、Th_var_flat<Th_var_edge_low<Th_var_edge_highである。
それ以外の場合、ノーマルエリアであると判定される。すなわち、Iスライスであって、Varianceが閾値Th_var_flatより大きい場合、ノーマルエリアであると判定される。Iスライス以外であって、SADが、閾値Th_sao_low以上、かつ、閾値Th_sao_high(Th_sad_low<Th_sad_high)以下の場合(すなわち、ある程度の動きがある場合)で、Varianceが閾値Th_var_flatより大きいが、閾値Th_var_edge_low以下、または、閾値Th_var_edge_high以上である場合、ノーマルエリアであると判定される。
また、Iスライス以外であって、SADが、閾値Th_sao_lowより小さいか、または、閾値Th_sao_high(Th_sad_low<Th_sad_high)より大きい場合も、ノーマルエリアであると判定される。
そして、例えば、グラデーションエリアの場合、主観画質を考慮したテーブルが選択される。ファストエッジエリアの場合、主観画質を考慮したテーブルが選択される。それら以外のノーマルエリアの場合、符号化効率最大値化を考慮したテーブルが選択される。
一般に平坦部では、64×64のインター予測モードやイントラ予測モードを選択した方が、符号化効率がよくなる傾向がある。これに対して、同じ平坦部でも滑らかなグラデーションエリアにおいては、また、人物や物体の輪郭などエッジのあるファストエッジエリアについても同様に4×4などの細かいインター予測モードやイントラ予測モードを選択した方が主観上よくなる傾向がある。このような傾向があることに基づいて、テーブルの選択が行われている。
そして、テーブル選択部62は、量子化パラメータQpに応じて、決定したテーブルから(すなわち、選択対象となる予測モードの種類が制限された状態で)、使用可能な予測モードを決定する。なお、使用が制限された状態とは、すなわち使用不可能な状態であり、換言するに、全予測モードから、使用可能なモードの数を絞り込んだ状態である。テーブル選択部62は、決定された使用可能な予測モードの情報を、イントラ予測部46と動き予測・補償部47に供給する。
すなわち、特に、符号化効率最大値化を考慮したテーブルにおいては、量子化パラメータQpが低いほど、コスト関数値の計算における歪み量の重要度が高いので、一般的に歪み量の小さい4×4のインター予測モードまたはイントラ予測モードが使用可能とされている。一方、量子化パラメータQpが高いほど、コスト関数値の計算におけるビット発生量の重要度が高いので、符号化効率の高い64×64などの大きなインター予測モードまたはイントラ予測モードが使用可能とされている。
テーブル記憶部63は、メモリなどで構成され、量子化パラメータQpに応じて、どの予測モードが使用可能で、どの予測モードが使用不可能であるかが示されている(すなわち、選択対象となる予測モードの種類が制限されている状態である)複数のモードテーブルを記憶している。
このようにすることで、特定領域においては、領域に応じた最適なモードを選択することができるので、画質を維持することができる。なお、画質は、客観指標に基づく画質だけではなく、主観画質も含む。すなわち、客観画質も主観画質も維持することができる。さらに、特定領域以外においては、エンコード速度と符号化効率の観点でバランスのよいモード選択を行うことができる。
(モードテーブルの例)
図14は、符号化効率最大化を考慮したモードテーブルの例を示す図である。図15は、主観画質を考慮したモードテーブルの例を示す図である。図14および図15の例において、イントラ予測の候補としては、64×64、32×32、16×16、8×8、4×4の予測モードがあり、インター予測の候補としては、64×64、64×32、32×64、32×32、32×24、32×16、32×8、24×32、16×32、8×32、16×16、16×12、16×8、16×4、12×16、8×16、4×16、8×8、8×4、4×8、4×4の予測モードがある。また、図14および図15の例において、丸は使用可能なモードであることを示し、バツは使用不可能なモードであることを示している。
図14のモードテーブルについて説明する。図14のモードテーブルにおいては、Qpが5つのレンジに分けられている。Qpが0乃至19の場合、イントラ予測においては、4×4の1つの予測モードのみが使用可能であり、インター予測においては、8×8、8×4、4×8、4×4の4つの予測モードが使用可能である。Qpが20乃至28の場合、イントラ予測においては、8×8の1つの予測モードのみが使用可能であり、インター予測においては、16×16、16×8、8×16、8×8の4つの予測モードが使用可能である。Qpが29乃至36の場合、イントラ予測においては、16×16の1つの予測モードのみが使用可能であり、インター予測においては、32×32、32×16、16×32、16×16の4つの予測モードが使用可能である。
Qpが37乃至43の場合、イントラ予測においては、32×32の1つの予測モードのみが使用可能であり、インター予測においては、64×64、32×16、16×32、32×32の4つの予測モードが使用可能である。Qpが44乃至51の場合、イントラ予測においては、64×64の1つの予測モードのみが使用可能であり、インター予測においては、64×64、64×32、32×64、32×32の4つの予測モードが使用可能である。
図15のモードテーブルについて説明する。図15のモードテーブルにおいては、Qpが2つのレンジに分けられている。Qpが0乃至19の場合、イントラ予測においては、4×4の1つの予測モードのみが使用可能であり、インター予測においては、4×4の1つの予測モードが使用可能である。Qpが20乃至51の場合、イントラ予測においては、8×8の1つの予測モードのみが使用可能であり、インター予測においては、8×8の1つの予測モードが使用可能である。
以上のように、どちらのモードテーブルにおいても、Qpのレンジ毎に選択対象となる予測モードが制限された状態となっている。これは、高速化のため、予測モードをできるだけ少なく絞り込む必要があるからである。また、どちらのモードテーブルも、量子化パラメータQpの大きさにより、レンジ毎に、使用不可能な(制限する)モードを変えている。各モードテーブルは、基本的には発生符号量が大きくなるサイズの小さい(細かい)モードが小さい量子化パラメータQpで選択されるように、また、発生符号量が小さくなるサイズの大きいモードが大きい量子化パラメータQpで選択されるように作成されている。なお、これらのサイズの比較は、例えば、閾値を用いて行われる。
また、HEVCより選択可能となった32×24、32×8、24×32、8×32、16×12、12×16、16×4、4×16といった予測モード(すなわち、符号化ブロックを異なる大きさの2つのブロックに分割する、非対称動き分割の予測モード)は計算量増分の割に符号化効率があまり改善しないので、速度対効率観点で選択しないように作成されている。
さらに、主観画質を考慮したモードテーブルは、8×8より大きいサイズを選択すると画質に影響がでてしまうので、8×8より大きいサイズは選択されない。
なお、図14および図15のモードテーブルにおいては、例えば、速度優先のリアルタイム符号化のアプリケーションの符号化装置を例としているので、予測モードの候補数(表における丸の数)を多くても5モードと2モードにそれぞれ絞ったが、制限する予測モードの数は、符号化のアプリケーションに応じて変更することができる。また、制限する予測モードの種類も、符号化のアプリケーションに応じて変更される。ここで、アプリケーションとは、使用目的や使用サービスの形態である。また、アプリケーションには、ビットストリームのビットレート、解像度、画枠などの符号化ツールにリンクするパラメータも含まれる。
(符号化装置の処理の説明)
図16および図17は、図12の符号化装置12の符号化処理を説明するフローチャートである。
図16のステップS61において、符号化装置12のA/D変換部31(図12)は、符号化対象として入力されたフレーム単位の画像をA/D変換する。A/D変換部31は、変換後のデジタル信号である画像を画面並べ替えバッファ32に出力して記憶させる。
ステップS62において、画面並べ替えバッファ32は、記憶した表示の順番のフレームの画像を、GOP構造に応じて、符号化のための順番に並べ替える。画面並べ替えバッファ32は、並べ替え後のフレーム単位の画像を、演算部33、イントラ予測部46、動き予測・補償部47、およびモードテーブル設定部50に供給する。また、画面並べ替えバッファ32は、画像のピクチャタイプを、モードテーブル設定部50に出力する。
ステップS63において、モードテーブル設定部50は、モードテーブル選択処理を行う。モードテーブル選択処理の詳細は、図18を参照して後述される。すなわち、モードテーブル設定部50は、画面並べ替えバッファ32から読み出された原画像から統計情報を算出し、算出した統計情報、画面並べ替えバッファ32からのピクチャタイプ、およびレート制御部49からの量子化パラメータQpなどに応じて、複数のモードテーブルのうち、使用するモードテーブルを決定し、使用可能な予測モードを決定する。モードテーブル設定部50は、決定した使用可能な予測モードの情報を、イントラ予測部46および動き予測・補償部47に供給する。
ステップS64において、イントラ予測部46は、PU単位で、モードテーブル設定部50から供給される情報が示す使用可能であるイントラ予測モードのイントラ予測処理を行う。すなわち、イントラ予測部46は、画面並べ替えバッファ32から読み出された画像と、イントラ予測処理の結果生成される予測画像とに基づいて、モードテーブル設定部50から供給される情報が示す使用可能であるイントラ予測モードに対してコスト関数値を算出する。そして、イントラ予測部46は、コスト関数値が最小となるイントラ予測モードを、最適イントラ予測モードに決定する。イントラ予測部46は、最適イントラ予測モードで生成された予測画像、および、対応するコスト関数値を、予測画像選択部48に供給する。
また、動き予測・補償部47は、ステップS65においてPU単位で、モードテーブル設定部50から供給される情報が示す使用可能であるインター予測モードの動き予測・補償処理を行う。また、動き予測・補償部47は、画面並べ替えバッファ32から供給される画像と予測画像とに基づいて、モードテーブル設定部50から供給される情報が示す使用可能であるインター予測モードに対してコスト関数値を算出し、コスト関数値が最小となるインター予測モードを最適インター予測モードに決定する。そして、動き予測・補償部47は、最適インター予測モードのコスト関数値と、対応する予測画像を予測画像選択部48に供給する。
ステップS66において、予測画像選択部48は、イントラ予測部46および動き予測・補償部47から供給されるコスト関数値に基づいて、最適イントラ予測モードと最適インター予測モードのうちのコスト関数値が最小となる方を、最適予測モードに決定する。そして、予測画像選択部48は、最適予測モードの予測画像を、演算部33および加算部40に供給する。
ステップS67において、予測画像選択部48は、最適予測モードが最適インター予測モードであるかどうかを判定する。ステップS67で最適予測モードが最適インター予測モードであると判定された場合、予測画像選択部48は、最適インター予測モードで生成された予測画像の選択を動き予測・補償部47に通知する。
そして、ステップS68において、動き予測・補償部47は、インター予測モード情報、動きベクトル、および参照画像を特定する情報を可逆符号化部36に供給し、処理をステップS70に進める。
一方、ステップS67で最適予測モードが最適インター予測モードではないと判定された場合、即ち最適予測モードが最適イントラ予測モードである場合、予測画像選択部48は、最適イントラ予測モードで生成された予測画像の選択をイントラ予測部46に通知する。そして、ステップS69において、イントラ予測部46は、イントラ予測モード情報を可逆符号化部36に供給し、処理をステップS70に進める。
ステップS70において、演算部33は、画面並べ替えバッファ32から供給される画像から、予測画像選択部48から供給される予測画像を減算することにより符号化を行う。演算部33は、その結果得られる画像を、残差情報として直交変換部34に出力する。
ステップS71において、直交変換部34は、TU単位で、残差情報に対して直交変換処理を行う。直交変換部34は、直交変換処理後の直交変換処理結果を量子化部35に供給する。
ステップS72において、量子化部35は、直交変換部34から供給される直交変換処理結果を量子化する。量子化部35は、量子化の結果得られる量子化値を可逆符号化部36と逆量子化部38に供給する。
ステップS73において、逆量子化部38は、量子化部35からの量子化値に対して逆量子化を行う。逆量子化部38は、逆量化の結果得られる直交変換処理結果を逆直交変換部39に供給する。
ステップS74において、逆直交変換部39は、TU単位で、逆量子化部38から供給される直交変換処理結果に対して逆直交変換処理を行う。逆直交変換部39は、逆直交変換処理の結果得られる残差情報を加算部40に供給する。
ステップS75において、加算部40は、逆直交変換部39から供給される残差情報と、予測画像選択部48から供給される予測画像を加算し、復号を行う。加算部40は、復号された画像をフィルタ41とフレームメモリ44に供給する。
ステップS76において、フィルタ41は、加算部40から供給される復号された画像に対して、デブロッキングフィルタ処理を行う。
ステップS77において、フィルタ41は、デブロッキングフィルタ後の画像に対して、適応オフセットフィルタ処理を行う。フィルタ41は、その結果得られる画像をフレームメモリ44に供給する。また、フィルタ41は、LCUごとに、オフセットフィルタ情報を可逆符号化部36に供給する。
ステップS78において、フレームメモリ44は、フィルタ41から供給される画像と加算部40から供給される画像を蓄積する。フレームメモリ44に蓄積されたフィルタ処理が行われていない画像のうちのPUに隣接する画像は、周辺画像としてスイッチ45を介してイントラ予測部46に供給される。一方、フレームメモリ44に蓄積されたフィルタ処理が行われた画像は、参照画像としてスイッチ45を介して動き予測・補償部47に出力される。
ステップS79において、可逆符号化部36は、イントラ予測モード情報、または、インター予測モード情報、動きベクトル、および参照画像を特定する情報、並びにオフセットフィルタ情報などを、符号化情報として可逆符号化する。
ステップS80において、可逆符号化部36は、量子化部35から供給される量子化値を可逆符号化する。そして、可逆符号化部36は、ステップS78の処理で可逆符号化された符号化情報と可逆符号化された量子化値から、符号化データを生成し、蓄積バッファ37に供給する。
ステップS81において、蓄積バッファ37は、可逆符号化部36から供給される符号化データを、一時的に蓄積する。
ステップS82において、レート制御部49は、蓄積バッファ37に蓄積された符号化データに基づいて、オーバーフローあるいはアンダーフローが発生しないように、量子化部35の量子化動作のレートを制御する。その際、レート制御部49は、量子化パラメータQpを、モードテーブル設定部50に供給する。そして、符号化処理は終了される。
次に、図18のフローチャートを参照して、図16のステップS63のモードテーブル選択処理の詳細を説明する。なお、この処理は、CTB単位で行われる。
モードテーブル設定部50の統計情報算出部61には、画面並べ替えバッファ32から読み出された原画像が供給される。モードテーブル設定部50のテーブル選択部62には、画面並べ替えバッファ32からのピクチャタイプを示す情報と、レート制御部49からの量子化パラメータQpが供給される。
統計情報算出部61は、ステップS91において、画面並べ替えバッファ32から読み出された原画像から統計情報、例えば、Variance64×64やSAD64×64を算出する。統計情報算出部61は、算出した統計情報(Variance64×64、SAD64×64)をテーブル選択部62に供給する。
テーブル選択部62は、ステップS92において、ピクチャタイプがIスライスであるか否かを判定する。ステップS92において、Iスライスであると判定された場合、処理は、ステップS93に進む。ステップS93において、テーブル選択部62は、Variance64×64が、閾値Th_var_flat以下であるか否かを判定する。ステップS93において、Variance64×64が、閾値Th_var_flat以下であると判定された場合、処理は、ステップS94に進む。
ステップS94において、テーブル選択部62は、いまの領域がグラデーション(Gradation)エリアであるとし、テーブル記憶部63の中のモードテーブルのうち、主観を考慮したモードテーブル(例えば、図15)を選択する。
ステップS93において、Variance64×64が、閾値Th_var_flatより大きいと判定された場合、処理は、ステップS96に進む。
また、ステップS92において、Iスライスではないと判定された場合、処理は、ステップS95に進む。ステップS95において、テーブル選択部62は、SAD64×64が閾値Th_sad_low以上であり、かつ、閾値Th_sad_high以下であるか否かを判定する。ステップS96において、SAD64×64が閾値Th_sad_lowより小さい、または、閾値Th_sad_highより大きいと判定された場合、処理は、ステップS96に進む。
ステップS96において、テーブル選択部62は、いまの領域がノーマル(Normal)エリアであるとし、テーブル記憶部63の中のモードテーブルのうち、符号化効率アップを考慮したモードテーブル(例えば、図14)を選択する。
ステップS95において、SAD64×64が閾値Th_sad_low以上であり、かつ、閾値Th_sad_high以下であると判定された場合、処理は、ステップS97に進む。ステップS97において、テーブル選択部62は、Variance64×64が、閾値Th_var_flat以下であるか否かを判定する。ステップS97において、Variance64×64が、閾値Th_var_flat以下であると判定された場合、処理は、ステップS94に進む。
そして、上述したように、ステップS94において、テーブル選択部62は、いまの領域がグラデーションエリアであるとし、テーブル記憶部63の中のモードテーブルのうち、主観を考慮したモードテーブル(例えば、図15)を選択する。
ステップS97において、Variance64×64が、閾値Th_var_flatより大きいと判定された場合、処理は、ステップS98に進む。ステップS98において、テーブル選択部62は、Variance64×64が、閾値Th_var_edge_low以上であり、かつ、閾値Th_var_edge_high以下であるか否かを判定する。ステップS98において、Variance64×64が、閾値Th_var_edge_lowより小さい、または、閾値Th_var_edge_highより大きいと判定された場合、処理は、ステップS96に進む。
そして、上述したように、ステップS96において、テーブル選択部62は、いまの領域がノーマルエリアであるとし、テーブル記憶部63の中のモードテーブルのうち、符号化効率アップを考慮したモードテーブル(例えば、図14)を選択する。
ステップS98において、Variance64×64が、閾値Th_var_edge_low以上であり、かつ、閾値Th_var_edge_high以下であると判定された場合、処理は、ステップS99に進む。ステップS99において、テーブル選択部62は、いまの領域がファストエッジ(Fast Edge)エリアであるとし、テーブル記憶部63の中のモードテーブルのうち、主観を考慮したモードテーブル(例えば、図15)を選択する。
ステップS94、S96、またはS99において、統計情報に応じて選択されたモードテーブルが選択された後、処理は、ステップS100に進む。ステップS100において、テーブル選択部62は、統計情報に応じて選択されたモードテーブルから、量子化パラメータQpに応じて、使用可能な予測モードを選択し、それを示す情報を、イントラ予測部94および動き予測・補償部95に供給する。その後、処理は、モードテーブル選択処理は終了し、図16のステップS63に戻る。
なお、閾値Th_var_flat、閾値Th_sad_low、閾値Th_sad_high、閾値Th_var_edge_low、閾値Th_var_edge_は、量子化パラメータQpに応じて値が変わる閾値である。これは、Qpが大きい場合に発生量増分対策であり、このようにすることで、領域が調整されるので、Qpが大きい場合の発生量増分を抑えることができる。
ここで、上述した図14および図15のモードテーブルは、速度優先のリアルタイム符号化用途に用いられる(すなわち、符号化アプリケーションを有する)符号化装置を例としていたが、画質優先のオーサリング符号化装置を例とした場合のモードテーブルの例を、図19および図20に示す。
(モードテーブルの他の例)
図19は、符号化効率最大化を考慮したモードテーブルの例を示す図である。図20は、主観画質を考慮したモードテーブルの例を示す図である。図19および図20の例において、イントラ予測の候補としては、64×64、32×32、16×16、8×8、4×4のモードがあり、インター予測の候補としては、64×64、64×32、32×64、32×32、32×24、32×16、32×8、24×32、16×32、8×32、16×16、16×12、16×8、16×4、12×16、8×16、4×16、8×8、8×4、4×8、4×4のモードがある。また、図19および図20の例において、丸は使用可能なモードであることを示し、バツは使用不可能なモードであることを示している。
図19のモードテーブルについて説明する。図19のモードテーブルにおいては、Qpが3つのレンジに分けられている。Qpが0乃至19の場合、イントラ予測においては、32×32、16×16、8×8、4×4の4つの予測モードが使用可能であり、インター予測においては、32×32、16×16、16×8、8×16、8×8、8×4、4×8、4×4の8つの予測モードが使用可能である。Qpが20乃至36の場合、イントラ予測においては、64×64、32×32、16×16、8×8の4つの予測モードのみが使用可能であり、インター予測においては、64×64、32×32、32×16、16×32、16×16、16×8、8×16、8×8の8つの予測モードが使用可能である。
Qpが37乃至51の場合、イントラ予測においては、64×64、32×32、16×16、8×8の4つの予測モードのみが使用可能であり、インター予測においては、64×64、64×32、32×64、32×32、32×16、16×32、16×16、8×8の8つの予測モードが使用可能である。
図20のモードテーブルについて説明する。図20のモードテーブルにおいては、Qpが1つのレンジのモードテーブルとなっている。Qpが0乃至51の場合、イントラ予測においては、4×4、8×8の2つの予測モードのみが使用可能であり、インター予測においては、8×8、8×4、4×8、4×4の4つの予測モードが使用可能である。
ここで、図19のモードテーブルは、量子化パラメータQpの大きさにより、また、レンジ毎に、使用不可能な(制限する)モードが異なっている。図19のモードテーブルは、図14および図15のモードテーブルと同様に、基本的に、発生符号量が大きくなるサイズの小さい(細かい)モードが小さい量子化パラメータQpで選択されるように、また、発生符号量が小さくなるサイズの大きいモードが大きい量子化パラメータQpで選択されるように作成されている。
なお、図19の例において、Qpのレンジの分け方が、図14よりも少ないのは、リアルタイム性を重視する必要がないので、細かく分ける必要がないためと、使用する予測モードを増やして品質を重視することができるためである。図15と図20のモードテーブルについても同様で、図20の例において、Qpのレンジが分けられていないのは、図15の例と異なり、リアルタイム性を重視する必要がないので、使用する予測モードを増やして品質を重視することができるためである。また、上述した図14および図15の例においては、速度優先のリアルタイム符号化のアプリケーションの符号化装置を例としているので、予測モードの候補数(表における丸の数)を多くても5モードと2モードにそれぞれ絞った。これに対して、図19および図20のモードテーブルはオーサリング符号化用途に用いられるため、予測モードの候補数は、それぞれ、8モードと4モードと、リアルタイム符号化用途の場合より候補数を多くすることが可能である。これにより、画質を優先することができる。
また、図19および図20のモードテーブルは、図14および図15のモードテーブルと同様に、HEVCより選択可能となった32×24、32×8、24×32、8×32、16×12、12×16、16×4、4×16といった予測モード(すなわち、符号化ブロックを異なる大きさの2つのブロックに分割する、非対称動き分割の予測モード)は計算量増分の割に符号化効率があまり改善しないので、速度対効率観点で選択しないように作成されている。さらに、図20のモードテーブルは、8×8より大きいサイズを選択すると画質に影響がでてしまうので、8×8より大きいサイズは選択されないように作成されている。
以上のように、本技術により、エンコード速度および主観画質を含む画質が改善される。したがって、低遅延やリアルタイムといった用途(アプリケーション)の符号化装置で使用可能となり、ある程度画質も維持することができる。ただし、速度の改善率は、テーブルの設計次第である。
例えば、即時符号化が要求されるコンテンツとして、サッカーなどのスポーツや野外コンサートなどのライブコンサートはコンテンツをすぐにユーザに提供するために符号化速度を速くするために、ある程度画質を犠牲にするしかなかった。
しかしながら、本技術により、符号化速度が大幅に改善され、また、これまで以上の画質クオリティでコンテンツをユーザに提供することができる。
また、例えば、監視カメラまたは素材伝送系用途として、野外カメラ(常に旋回しているものを想定)を遠隔操作でリモート監視する場合、遅延が大きいと旋回をユーザが止めたい瞬間に止まらず、多少映像がずれてしまっていた。
素材伝送についても、野球などのスポーツ中継でワイヤレスカメラと有線カメラが混在する中継での映像切り替えなどで遅延が大きいと時間が戻ってしまっていた。
しかしながら、本技術により、低遅延を実現できるので、ユーザの要望に沿った映像の取得や適切な映像切り替えが可能となる。
以上においては、符号化方式としてHEVCに準じた方式を用いるようにした。ただし、本技術はこれに限らず、その他の符号化方式/復号方式を適用することができる。
なお、上述したように、モードテーブルを持たずに、原画像の統計情報と過去選択された予測モードから、現状の予測モードを学習し、予測モードを予測するようにしてもよい。その際、例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
<第2実施の形態>
(本技術を適用したクラウドコンピューティングの構成例)
図21は、本技術を適用したクラウドコンピューティングシステムの一実施の形態の構成例を示す図である。
図21に示されるように、クラウドコンピューティングシステム100は、サーバ101が、クライアント102と、インターネットなどのネットワーク103を介して接続されて構成される。
サーバ101は、図12の符号化装置12、および上述した統計情報と過去選択された予測モードのデータベース111を備えている。符号化装置12は、図13のモードモードテーブル設定部50の代わりに、図22の過去選択された予測モードを学習する機能を有するモードテーブル設定部50を備える。
符号化装置12(モードテーブル設定部50)は、クライアント102などから画像または画像の統計情報を受ける。画像を受けた場合、符号化装置12は、クライアント102などからサーバ101にアップされた画像を用いて、統計情報を算出する。
符号化装置12は、算出した統計情報、またはクライアント102からの統計情報と、データベース111を用いて、過去選択された予測モードから現状の予測モードを、ニューラルネットワークやCNNなどで学習することで選択し、学習した予測モードの情報を、データベース111に登録する。
あるいは、符号化装置12は、クライアント102からの統計情報を受けると、データベース111を用いて、予測モードを選択し、選択した予測モードの情報を、データベース111に登録し、学習していく。
学習後、符号化装置12は、選択した予測モードの情報を、クライアント102に提供してもよいし、あるいは、選択した予測モードを用いて、画像を符号化し、クライアント102に提供するために蓄積するようにしてもよい。
データベース111は、統計情報と過去選択された予測モードとを記憶している。データベース111は、例えば、統計情報と過去選択された予測モードとを対応付けて記憶している。
クライアント102は、例えば、携帯端末などで構成される。クライアント102は、撮像した画像情報や画像情報に基づいて算出された統計情報を、ネットワーク103を介して、サーバ101に送信する。サーバ101から予測モードの情報を受けると、クライアント102は、画像情報を符号化する。
なお、図21の例において、サーバ101が1台しか示されていないが、複数台で構成される。同様に、クライアント102も1台しか示されていいないが、複数台で構成される。
図22は、図21のモードテーブル設定部50の構成例を示すブロック図である。
モードテーブル設定部50は、図13の統計情報算出部61を有している点が、図13のモードテーブル設定部50と共通している。モードテーブル設定部50は、テーブル選択部62の代わりに、テーブル選択部121を備え、テーブル記憶部123の代わりに、学習部123およびデータベース111を備えている点が異なっている。
統計情報算出部61は、算出した統計情報を、テーブル選択部121に供給する。テーブル選択部121は、学習部123により学習することで選択された予測モードを、使用可能な予測モードの情報として、イントラ予測部46や動き予測補償部47、または、クライアント102に供給する。また、テーブル選択部121は、統計情報算出部61からの統計情報、ピクチャタイプ、およびQpを学習部123に供給する。
学習部123は、テーブル選択部121からの統計情報、ピクチャタイプ、Qp、並びに、データベース111などを用いて、過去選択された予測モードから現状の予測モードを、ニューラルネットワークやCNNなどで学習し、学習した予測モードの情報を、データベース111に登録する。
以上のように、クラウドコンピューティングシステム100には限定されないが、クラウドコンピューティング100のように、大量のマシーンパワーが見込める環境であれば、モードテーブルを持たず、その都度学習し、予測するようにすることも可能である。
なお、本技術は、例えば、HEVC方式等の様に、離散コサイン変換等の直交変換と動き補償によって圧縮された画像情報(ビットストリーム)を、衛星放送、ケーブルテレビジョン、インターネット、または携帯電話機などのネットワークメディアを介して受信する際に用いられる画像符号化装置に適用することができる。また、本開示は、光、磁気ディスク、およびフラッシュメモリのような記憶メディア上で処理する際に用いられる画像符号化装置に適用することができる。
<第3実施の形態>
(本開示を適用したコンピュータの説明)
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図23は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)201,ROM(Read Only Memory)202,RAM(Random Access Memory)203は、バス204により相互に接続されている。
バス204には、さらに、入出力インタフェース205が接続されている。入出力インタフェース205には、入力部206、出力部207、記憶部208、通信部209、及びドライブ210が接続されている。
入力部206は、キーボード、マウス、マイクロホンなどよりなる。出力部207は、ディスプレイ、スピーカなどよりなる。記憶部208は、ハードディスクや不揮発性のメモリなどよりなる。通信部209は、ネットワークインタフェースなどよりなる。ドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア211を駆動する。
以上のように構成されるコンピュータでは、CPU201が、例えば、記憶部208に記憶されているプログラムを、入出力インタフェース205及びバス204を介して、RAM203にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU201)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア211に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア211をドライブ210に装着することにより、入出力インタフェース205を介して、記憶部208にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部209で受信し、記憶部208にインストールすることができる。その他、プログラムは、ROM202や記憶部208に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
<第4実施の形態>
(テレビジョン装置の構成例)
図24は、本技術を適用したテレビジョン装置の概略構成を例示している。テレビジョン装置900は、アンテナ901、チューナ902、デマルチプレクサ903、デコーダ904、映像信号処理部905、表示部906、音声信号処理部907、スピーカ908、外部インタフェース部909を有している。さらに、テレビジョン装置900は、制御部910、ユーザインタフェース部911等を有している。
チューナ902は、アンテナ901で受信された放送波信号から所望のチャンネルを選局して復調を行い、得られた符号化ビットストリームをデマルチプレクサ903に出力する。
デマルチプレクサ903は、符号化ビットストリームから視聴対象である番組の映像や音声のパケットを抽出して、抽出したパケットのデータをデコーダ904に出力する。また、デマルチプレクサ903は、EPG(Electronic Program Guide)等のデータのパケットを制御部910に供給する。なお、スクランブルが行われている場合、デマルチプレクサ等でスクランブルの解除を行う。
デコーダ904は、パケットの復号化処理を行い、復号処理化によって生成された映像データを映像信号処理部905、音声データを音声信号処理部907に出力する。
映像信号処理部905は、映像データに対して、ノイズ除去やユーザ設定に応じた映像処理等を行う。映像信号処理部905は、表示部906に表示させる番組の映像データや、ネットワークを介して供給されるアプリケーションに基づく処理による画像データなどを生成する。また、映像信号処理部905は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それを番組の映像データに重畳する。映像信号処理部905は、このようにして生成した映像データに基づいて駆動信号を生成して表示部906を駆動する。
表示部906は、映像信号処理部905からの駆動信号に基づき表示デバイス(例えば液晶表示素子等)を駆動して、番組の映像などを表示させる。
音声信号処理部907は、音声データに対してノイズ除去などの所定の処理を施し、処理後の音声データのD/A変換処理や増幅処理を行いスピーカ908に供給することで音声出力を行う。
外部インタフェース部909は、外部機器やネットワークと接続するためのインタフェースであり、映像データや音声データ等のデータ送受信を行う。
制御部910にはユーザインタフェース部911が接続されている。ユーザインタフェース部911は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部910に供給する。
制御部910は、CPU(Central Processing Unit)やメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータ、EPGデータ、ネットワークを介して取得されたデータ等を記憶する。メモリに記憶されているプログラムは、テレビジョン装置900の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、テレビジョン装置900がユーザ操作に応じた動作となるように各部を制御する。
なお、テレビジョン装置900では、チューナ902、デマルチプレクサ903、映像信号処理部905、音声信号処理部907、外部インタフェース部909等と制御部910を接続するためバス912が設けられている。
このように構成されたテレビジョン装置では、上述したように符号化された符号化ストリームを復号する復号装置(復号方法)の機能が設けられる。したがって、主観画質を大幅に改善することができる。また、低遅延を実現できるので、ユーザの要望に沿った映像の取得や適切な映像切り替えが可能となる。
<第5実施の形態>
(携帯電話機の構成例)
図25は、本開示を適用した携帯電話機の概略構成を例示している。携帯電話機920は、通信部922、音声コーデック923、カメラ部926、画像処理部927、多重分離部928、記録再生部929、表示部930、制御部931を有している。これらは、バス933を介して互いに接続されている。
また、通信部922にはアンテナ921が接続されており、音声コーデック923には、スピーカ924とマイクロホン925が接続されている。さらに制御部931には、操作部932が接続されている。
携帯電話機920は、音声通話モードやデータ通信モード等の各種モードで、音声信号の送受信、電子メールや画像データの送受信、画像撮影、またはデータ記録等の各種動作を行う。
音声通話モードにおいて、マイクロホン925で生成された音声信号は、音声コーデック923で音声データへの変換やデータ圧縮が行われて通信部922に供給される。通信部922は、音声データの変調処理や周波数変換処理等を行い、送信信号を生成する。また、通信部922は、送信信号をアンテナ921に供給して図示しない基地局へ送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、得られた音声データを音声コーデック923に供給する。音声コーデック923は、音声データのデータ伸張やアナログ音声信号への変換を行いスピーカ924に出力する。
また、データ通信モードにおいて、メール送信を行う場合、制御部931は、操作部932の操作によって入力された文字データを受け付けて、入力された文字を表示部930に表示する。また、制御部931は、操作部932におけるユーザ指示等に基づいてメールデータを生成して通信部922に供給する。通信部922は、メールデータの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、メールデータを復元する。このメールデータを、表示部930に供給して、メール内容の表示を行う。
なお、携帯電話機920は、受信したメールデータを、記録再生部929で記憶媒体に記憶させることも可能である。記憶媒体は、書き換え可能な任意の記憶媒体である。例えば、記憶媒体は、RAMや内蔵型フラッシュメモリ等の半導体メモリ、ハードディスク、磁気ディスク、光磁気ディスク、光ディスク、USB(Universal Serial Bus)メモリ、またはメモリカード等のリムーバブルメディアである。
データ通信モードにおいて画像データを送信する場合、カメラ部926で生成された画像データを、画像処理部927に供給する。画像処理部927は、画像データの符号化処理を行い、符号化データを生成する。
多重分離部928は、画像処理部927で生成された符号化データと、音声コーデック923から供給された音声データを所定の方式で多重化して通信部922に供給する。通信部922は、多重化データの変調処理や周波数変換処理等を行い、得られた送信信号をアンテナ921から送信する。また、通信部922は、アンテナ921で受信した受信信号の増幅や周波数変換処理および復調処理等を行い、多重化データを復元する。この多重化データを多重分離部928に供給する。多重分離部928は、多重化データの分離を行い、符号化データを画像処理部927、音声データを音声コーデック923に供給する。画像処理部927は、符号化データの復号化処理を行い、画像データを生成する。この画像データを表示部930に供給して、受信した画像の表示を行う。音声コーデック923は、音声データをアナログ音声信号に変換してスピーカ924に供給して、受信した音声を出力する。
このように構成された携帯電話装置では、画像処理部927に、本技術の符号化装置(符号化方法)と、上述したように符号化された符号化ストリームを復号する復号装置(復号方法)の機能が設けられる。このため、エンコード速度を改善し、画質を維持することができる。また、低遅延を実現できるので、ユーザの要望に沿った映像の取得や適切な映像切り替えが可能となる。
<第6実施の形態>
(記録再生装置の構成例)
図26は、本開示を適用した記録再生装置の概略構成を例示している。記録再生装置940は、例えば受信した放送番組のオーディオデータとビデオデータを、記録媒体に記録して、その記録されたデータをユーザの指示に応じたタイミングでユーザに提供する。また、記録再生装置940は、例えば他の装置からオーディオデータやビデオデータを取得し、それらを記録媒体に記録させることもできる。さらに、記録再生装置940は、記録媒体に記録されているオーディオデータやビデオデータを復号して出力することで、モニタ装置等において画像表示や音声出力を行うことができるようにする。
記録再生装置940は、チューナ941、外部インタフェース部942、エンコーダ943、HDD(Hard Disk Drive)部944、ディスクドライブ945、セレクタ946、デコーダ947、OSD(On-Screen Display)部948、制御部949、ユーザインタフェース部950を有している。
チューナ941は、図示しないアンテナで受信された放送信号から所望のチャンネルを選局する。チューナ941は、所望のチャンネルの受信信号を復調して得られた符号化ビットストリームをセレクタ946に出力する。
外部インタフェース部942は、IEEE1394インタフェース、ネットワークインタフェース部、USBインタフェース、フラッシュメモリインタフェース等の少なくともいずれかで構成されている。外部インタフェース部942は、外部機器やネットワーク、メモリカード等と接続するためのインタフェースであり、記録する映像データや音声データ等のデータ受信を行う。
エンコーダ943は、外部インタフェース部942から供給された映像データや音声データが符号化されていないとき所定の方式で符号化を行い、符号化ビットストリームをセレクタ946に出力する。
HDD部944は、映像や音声等のコンテンツデータ、各種プログラムやその他のデータ等を内蔵のハードディスクに記録し、また再生時等にそれらを当該ハードディスクから読み出す。
ディスクドライブ945は、装着されている光ディスクに対する信号の記録および再生を行う。光ディスク、例えばDVDディスク(DVD−Video、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等)やBlu−ray(登録商標)ディスク等である。
セレクタ946は、映像や音声の記録時には、チューナ941またはエンコーダ943からのいずれかの符号化ビットストリームを選択して、HDD部944やディスクドライブ945のいずれかに供給する。また、セレクタ946は、映像や音声の再生時に、HDD部944またはディスクドライブ945から出力された符号化ビットストリームをデコーダ947に供給する。
デコーダ947は、符号化ビットストリームの復号化処理を行う。デコーダ947は、復号処理化を行うことにより生成された映像データをOSD部948に供給する。また、デコーダ947は、復号処理化を行うことにより生成された音声データを出力する。
OSD部948は、項目の選択などのメニュー画面等を表示するための映像データを生成し、それをデコーダ947から出力された映像データに重畳して出力する。
制御部949には、ユーザインタフェース部950が接続されている。ユーザインタフェース部950は、操作スイッチやリモートコントロール信号受信部等で構成されており、ユーザ操作に応じた操作信号を制御部949に供給する。
制御部949は、CPUやメモリ等を用いて構成されている。メモリは、CPUにより実行されるプログラムやCPUが処理を行う上で必要な各種のデータを記憶する。メモリに記憶されているプログラムは、記録再生装置940の起動時などの所定タイミングでCPUにより読み出されて実行される。CPUは、プログラムを実行することで、記録再生装置940がユーザ操作に応じた動作となるように各部を制御する。
このように構成された記録再生装置では、エンコーダ943に、本技術の符号化装置(符号化方法)の機能が設けられる。また、デコーダ947に、上述したように符号化された符号化ストリームを復号する復号装置(復号方法)の機能が設けられる。したがって、エンコード速度を改善し、画質を維持することができる。また、低遅延を実現できるので、ユーザの要望に沿った映像の取得や適切な映像切り替えが可能となる。
<第7実施の形態>
(撮像装置の構成例)
図27は、本開示を適用した撮像装置の概略構成を例示している。撮像装置960は、被写体を撮像し、被写体の画像を表示部に表示させたり、それを画像データとして、記録媒体に記録する。
撮像装置960は、光学ブロック961、撮像部962、カメラ信号処理部963、画像データ処理部964、表示部965、外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970を有している。また、制御部970には、ユーザインタフェース部971が接続されている。さらに、画像データ処理部964や外部インタフェース部966、メモリ部967、メディアドライブ968、OSD部969、制御部970等は、バス972を介して接続されている。
光学ブロック961は、フォーカスレンズや絞り機構等を用いて構成されている。光学ブロック961は、被写体の光学像を撮像部962の撮像面に結像させる。撮像部962は、CCDまたはCMOSイメージセンサを用いて構成されており、光電変換によって光学像に応じた電気信号を生成してカメラ信号処理部963に供給する。
カメラ信号処理部963は、撮像部962から供給された電気信号に対してニー補正やガンマ補正、色補正等の種々のカメラ信号処理を行う。カメラ信号処理部963は、カメラ信号処理後の画像データを画像データ処理部964に供給する。
画像データ処理部964は、カメラ信号処理部963から供給された画像データの符号化処理を行う。画像データ処理部964は、符号化処理を行うことにより生成された符号化データを外部インタフェース部966やメディアドライブ968に供給する。また、画像データ処理部964は、外部インタフェース部966やメディアドライブ968から供給された符号化データの復号化処理を行う。画像データ処理部964は、復号化処理を行うことにより生成された画像データを表示部965に供給する。また、画像データ処理部964は、カメラ信号処理部963から供給された画像データを表示部965に供給する処理や、OSD部969から取得した表示用データを、画像データに重畳させて表示部965に供給する。
OSD部969は、記号、文字、または図形からなるメニュー画面やアイコンなどの表示用データを生成して画像データ処理部964に出力する。
外部インタフェース部966は、例えば、USB入出力端子などで構成され、画像の印刷を行う場合に、プリンタと接続される。また、外部インタフェース部966には、必要に応じてドライブが接続され、磁気ディスク、光ディスク等のリムーバブルメディアが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて、インストールされる。さらに、外部インタフェース部966は、LANやインターネット等の所定のネットワークに接続されるネットワークインタフェースを有する。制御部970は、例えば、ユーザインタフェース部971からの指示にしたがって、メディアドライブ968から符号化データを読み出し、それを外部インタフェース部966から、ネットワークを介して接続される他の装置に供給させることができる。また、制御部970は、ネットワークを介して他の装置から供給される符号化データや画像データを、外部インタフェース部966を介して取得し、それを画像データ処理部964に供給したりすることができる。
メディアドライブ968で駆動される記録メディアとしては、例えば、磁気ディスク、光磁気ディスク、光ディスク、または半導体メモリ等の、読み書き可能な任意のリムーバブルメディアが用いられる。また、記録メディアは、リムーバブルメディアとしての種類も任意であり、テープデバイスであってもよいし、ディスクであってもよいし、メモリカードであってもよい。もちろん、非接触IC(Integrated Circuit)カード等であってもよい。
また、メディアドライブ968と記録メディアを一体化し、例えば、内蔵型ハードディスクドライブやSSD(Solid State Drive)等のように、非可搬性の記憶媒体により構成されるようにしてもよい。
制御部970は、CPUを用いて構成されている。メモリ部967は、制御部970により実行されるプログラムや制御部970が処理を行う上で必要な各種のデータ等を記憶する。メモリ部967に記憶されているプログラムは、撮像装置960の起動時などの所定タイミングで制御部970により読み出されて実行される。制御部970は、プログラムを実行することで、撮像装置960がユーザ操作に応じた動作となるように各部を制御する。
このように構成された撮像装置では、画像データ処理部964に本願の符号化装置(符号化方法)と、上述したように符号化された符号化ストリームを復号する復号装置(復号方法)の機能が設けられる。したがって、エンコード速度を改善し、画質を維持することができる。また、低遅延を実現できるので、ユーザの要望に沿った映像の取得や適切な映像切り替えが可能となる。
<第8実施の形態>
(実施のその他の例)
以上において本開示を適用する装置やシステム等の例を説明したが、本開示は、これに限らず、このような装置またはシステムを構成する装置に搭載するあらゆる構成、例えば、システムLSI(Large Scale Integration)等としてのプロセッサ、複数のプロセッサ等を用いるモジュール、複数のモジュール等を用いるユニット、ユニットにさらにその他の機能を付加したセット等(すなわち、装置の一部の構成)として実施することもできる。
(ビデオセットの構成例)
本開示をセットとして実施する場合の例について、図28を参照して説明する。図28は、本開示を適用したビデオセットの概略的な構成の一例を示している。
近年、電子機器の多機能化が進んでおり、その開発や製造において、その一部の構成を販売や提供等として実施する場合、1機能を有する構成として実施を行う場合だけでなく、関連する機能を有する複数の構成を組み合わせ、複数の機能を有する1セットとして実施を行う場合も多く見られるようになってきた。
図28に示されるビデオセット1300は、このような多機能化された構成であり、画像の符号化や復号(いずれか一方でもよいし、両方でも良い)に関する機能を有するデバイスに、その機能に関連するその他の機能を有するデバイスを組み合わせたものである。
図28に示されるように、ビデオセット1300は、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314等のモジュール群と、コネクティビティ1321、カメラ1322、およびセンサ1323等の関連する機能を有するデバイスとを有する。
モジュールは、互いに関連するいくつかの部品的機能をまとめ、まとまりのある機能を持った部品としたものである。具体的な物理的構成は任意であるが、例えば、それぞれ機能を有する複数のプロセッサ、抵抗やコンデンサ等の電子回路素子、その他のデバイス等を配線基板等に配置して一体化したものが考えられる。また、モジュールに他のモジュールやプロセッサ等を組み合わせて新たなモジュールとすることも考えられる。
図28の例の場合、ビデオモジュール1311は、画像処理に関する機能を有する構成を組み合わせたものであり、アプリケーションプロセッサ、ビデオプロセッサ、ブロードバンドモデム1333、およびRFモジュール1334を有する。
プロセッサは、所定の機能を有する構成をSoC(System On a Chip)により半導体チップに集積したものであり、例えばシステムLSI(Large Scale Integration)等と称されるものもある。この所定の機能を有する構成は、論理回路(ハードウエア構成)であってもよいし、CPU、ROM、RAM等と、それらを用いて実行されるプログラム(ソフトウエア構成)であってもよいし、その両方を組み合わせたものであってもよい。例えば、プロセッサが、論理回路とCPU、ROM、RAM等とを有し、機能の一部を論理回路(ハードウエア構成)により実現し、その他の機能をCPUにおいて実行されるプログラム(ソフトウエア構成)により実現するようにしてもよい。
図28のアプリケーションプロセッサ1331は、画像処理に関するアプリケーションを実行するプロセッサである。このアプリケーションプロセッサ1331において実行されるアプリケーションは、所定の機能を実現するために、演算処理を行うだけでなく、例えばビデオプロセッサ1332等、ビデオモジュール1311内外の構成を必要に応じて制御することもできる。
ビデオプロセッサ1332は、画像の符号化・復号(その一方若しくは両方)に関する機能を有するプロセッサである。
ブロードバンドモデム1333は、インターネットや公衆電話回線網等の広帯域の回線を介して行われる有線若しくは無線(またはその両方)の広帯域通信に関する処理を行うプロセッサ(若しくはモジュール)である。例えば、ブロードバンドモデム1333は、送信するデータ(デジタル信号)をデジタル変調する等してアナログ信号に変換したり、受信したアナログ信号を復調してデータ(デジタル信号)に変換したりする。例えば、ブロードバンドモデム1333は、ビデオプロセッサ1332が処理する画像データや画像データが符号化されたストリーム、アプリケーションプログラム、設定データ等、任意の情報をデジタル変調・復調することができる。
RFモジュール1334は、アンテナを介して送受信されるRF(Radio Frequency)信号に対して、周波数変換、変復調、増幅、フィルタ処理等を行うモジュールである。例えば、RFモジュール1334は、ブロードバンドモデム1333により生成されたベースバンド信号に対して周波数変換等を行ってRF信号を生成する。また、例えば、RFモジュール1334は、フロントエンドモジュール1314を介して受信されたRF信号に対して周波数変換等を行ってベースバンド信号を生成する。
なお、図28において点線1341に示されるように、アプリケーションプロセッサ1331とビデオプロセッサ1332を、一体化し、1つのプロセッサとして構成されるようにしてもよい。
外部メモリ1312は、ビデオモジュール1311の外部に設けられた、ビデオモジュール1311により利用される記憶デバイスを有するモジュールである。この外部メモリ1312の記憶デバイスは、どのような物理構成により実現するようにしてもよいが、一般的にフレーム単位の画像データのような大容量のデータの格納に利用されることが多いので、例えばDRAM(Dynamic Random Access Memory)のような比較的安価で大容量の半導体メモリにより実現するのが望ましい。
パワーマネージメントモジュール1313は、ビデオモジュール1311(ビデオモジュール1311内の各構成)への電力供給を管理し、制御する。
フロントエンドモジュール1314は、RFモジュール1334に対してフロントエンド機能(アンテナ側の送受信端の回路)を提供するモジュールである。図28に示されるように、フロントエンドモジュール1314は、例えば、アンテナ部1351、フィルタ1352、および増幅部1353を有する。
アンテナ部1351は、無線信号を送受信するアンテナおよびその周辺の構成を有する。アンテナ部1351は、増幅部1353から供給される信号を無線信号として送信し、受信した無線信号を電気信号(RF信号)としてフィルタ1352に供給する。フィルタ1352は、アンテナ部1351を介して受信されたRF信号に対してフィルタ処理等を行い、処理後のRF信号をRFモジュール1334に供給する。増幅部1353は、RFモジュール1334から供給されるRF信号を増幅し、アンテナ部1351に供給する。
コネクティビティ1321は、外部との接続に関する機能を有するモジュールである。コネクティビティ1321の物理構成は、任意である。例えば、コネクティビティ1321は、ブロードバンドモデム1333が対応する通信規格以外の通信機能を有する構成や、外部入出力端子等を有する。
例えば、コネクティビティ1321が、Bluetooth(登録商標)、IEEE 802.11(例えばWi-Fi(Wireless Fidelity、登録商標))、NFC(Near Field Communication)、IrDA(InfraRed Data Association)等の無線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した信号を送受信するアンテナ等を有するようにしてもよい。また、例えば、コネクティビティ1321が、USB(Universal Serial Bus)、HDMI(登録商標)(High-Definition Multimedia Interface)等の有線通信規格に準拠する通信機能を有するモジュールや、その規格に準拠した端子を有するようにしてもよい。さらに、例えば、コネクティビティ1321が、アナログ入出力端子等のその他のデータ(信号)伝送機能等を有するようにしてもよい。
なお、コネクティビティ1321が、データ(信号)の伝送先のデバイスを含むようにしてもよい。例えば、コネクティビティ1321が、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等の記録媒体に対してデータの読み出しや書き込みを行うドライブ(リムーバブルメディアのドライブだけでなく、ハードディスク、SSD(Solid State Drive)、NAS(Network Attached Storage)等も含む)を有するようにしてもよい。また、コネクティビティ1321が、画像や音声の出力デバイス(モニタやスピーカ等)を有するようにしてもよい。
カメラ1322は、被写体を撮像し、被写体の画像データを得る機能を有するモジュールである。カメラ1322の撮像により得られた画像データは、例えば、ビデオプロセッサ1332に供給されて符号化される。
センサ1323は、例えば、音声センサ、超音波センサ、光センサ、照度センサ、赤外線センサ、イメージセンサ、回転センサ、角度センサ、角速度センサ、速度センサ、加速度センサ、傾斜センサ、磁気識別センサ、衝撃センサ、温度センサ等、任意のセンサ機能を有するモジュールである。センサ1323により検出されたデータは、例えば、アプリケーションプロセッサ1331に供給されてアプリケーション等により利用される。
以上においてモジュールとして説明した構成をプロセッサとして実現するようにしてもよいし、逆にプロセッサとして説明した構成をモジュールとして実現するようにしてもよい。
以上のような構成のビデオセット1300において、後述するようにビデオプロセッサ1332に本開示を適用することができる。したがって、ビデオセット1300は、本開示を適用したセットとして実施することができる。
(ビデオプロセッサの構成例)
図29は、本開示を適用したビデオプロセッサ1332(図28)の概略的な構成の一例を示している。
図29の例の場合、ビデオプロセッサ1332は、ビデオ信号およびオーディオ信号の入力を受けてこれらを所定の方式で符号化する機能と、符号化されたビデオデータおよびオーディオデータを復号し、ビデオ信号およびオーディオ信号を再生出力する機能とを有する。
図29に示されるように、ビデオプロセッサ1332は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、フレームメモリ1405、およびメモリ制御部1406を有する。また、ビデオプロセッサ1332は、エンコード・デコードエンジン1407、ビデオES(Elementary Stream)バッファ1408Aおよび1408B、並びに、オーディオESバッファ1409Aおよび1409Bを有する。さらに、ビデオプロセッサ1332は、オーディオエンコーダ1410、オーディオデコーダ1411、多重化部(MUX(Multiplexer))1412、逆多重化部(DMUX(Demultiplexer))1413、およびストリームバッファ1414を有する。
ビデオ入力処理部1401は、例えばコネクティビティ1321(図28)等から入力されたビデオ信号を取得し、デジタル画像データに変換する。第1画像拡大縮小部1402は、画像データに対してフォーマット変換や画像の拡大縮小処理等を行う。第2画像拡大縮小部1403は、画像データに対して、ビデオ出力処理部1404を介して出力する先でのフォーマットに応じて画像の拡大縮小処理を行ったり、第1画像拡大縮小部1402と同様のフォーマット変換や画像の拡大縮小処理等を行ったりする。ビデオ出力処理部1404は、画像データに対して、フォーマット変換やアナログ信号への変換等を行って、再生されたビデオ信号として例えばコネクティビティ1321(図28)等に出力する。
フレームメモリ1405は、ビデオ入力処理部1401、第1画像拡大縮小部1402、第2画像拡大縮小部1403、ビデオ出力処理部1404、およびエンコード・デコードエンジン1407によって共用される画像データ用のメモリである。フレームメモリ1405は、例えばDRAM等の半導体メモリとして実現される。
メモリ制御部1406は、エンコード・デコードエンジン1407からの同期信号を受けて、アクセス管理テーブル1406Aに書き込まれたフレームメモリ1405へのアクセススケジュールに従ってフレームメモリ1405に対する書き込み・読み出しのアクセスを制御する。アクセス管理テーブル1406Aは、エンコード・デコードエンジン1407、第1画像拡大縮小部1402、第2画像拡大縮小部1403等で実行される処理に応じて、メモリ制御部1406により更新される。
エンコード・デコードエンジン1407は、画像データのエンコード処理、並びに、画像データが符号化されたデータであるビデオストリームのデコード処理を行う。例えば、エンコード・デコードエンジン1407は、フレームメモリ1405から読み出した画像データを符号化し、ビデオストリームとしてビデオESバッファ1408Aに順次書き込む。また、例えば、ビデオESバッファ1408Bからビデオストリームを順次読み出して復号し、画像データとしてフレームメモリ1405に順次書き込む。エンコード・デコードエンジン1407は、これらの符号化や復号において、フレームメモリ1405を作業領域として使用する。また、エンコード・デコードエンジン1407は、例えばマクロブロック毎の処理を開始するタイミングで、メモリ制御部1406に対して同期信号を出力する。
ビデオESバッファ1408Aは、エンコード・デコードエンジン1407によって生成されたビデオストリームをバッファリングして、多重化部(MUX)1412に供給する。ビデオESバッファ1408Bは、逆多重化部(DMUX)1413から供給されたビデオストリームをバッファリングして、エンコード・デコードエンジン1407に供給する。
オーディオESバッファ1409Aは、オーディオエンコーダ1410によって生成されたオーディオストリームをバッファリングして、多重化部(MUX)1412に供給する。オーディオESバッファ1409Bは、逆多重化部(DMUX)1413から供給されたオーディオストリームをバッファリングして、オーディオデコーダ1411に供給する。
オーディオエンコーダ1410は、例えばコネクティビティ1321(図28)等から入力されたオーディオ信号を例えばデジタル変換し、例えばMPEGオーディオ方式やAC3(AudioCode number 3)方式等の所定の方式で符号化する。オーディオエンコーダ1410は、オーディオ信号が符号化されたデータであるオーディオストリームをオーディオESバッファ1409Aに順次書き込む。オーディオデコーダ1411は、オーディオESバッファ1409Bから供給されたオーディオストリームを復号し、例えばアナログ信号への変換等を行って、再生されたオーディオ信号として例えばコネクティビティ1321(図28)等に供給する。
多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化する。この多重化の方法(すなわち、多重化により生成されるビットストリームのフォーマット)は任意である。また、この多重化の際に、多重化部(MUX)1412は、所定のヘッダ情報等をビットストリームに付加することもできる。つまり、多重化部(MUX)1412は、多重化によりストリームのフォーマットを変換することができる。例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームに変換する。また、例えば、多重化部(MUX)1412は、ビデオストリームとオーディオストリームとを多重化することにより、記録用のファイルフォーマットのデータ(ファイルデータ)に変換する。
逆多重化部(DMUX)1413は、多重化部(MUX)1412による多重化に対応する方法で、ビデオストリームとオーディオストリームとが多重化されたビットストリームを逆多重化する。つまり、逆多重化部(DMUX)1413は、ストリームバッファ1414から読み出されたビットストリームからビデオストリームとオーディオストリームとを抽出する(ビデオストリームとオーディオストリームとを分離する)。つまり、逆多重化部(DMUX)1413は、逆多重化によりストリームのフォーマットを変換(多重化部(MUX)1412による変換の逆変換)することができる。例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図28)から供給されたトランスポートストリームを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。また、例えば、逆多重化部(DMUX)1413は、例えばコネクティビティ1321により(図28)各種記録媒体から読み出されたファイルデータを、ストリームバッファ1414を介して取得し、逆多重化することにより、ビデオストリームとオーディオストリームとに変換することができる。
ストリームバッファ1414は、ビットストリームをバッファリングする。例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等に供給する。
また、例えば、ストリームバッファ1414は、多重化部(MUX)1412から供給されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、例えばコネクティビティ1321(図28)等に供給し、各種記録媒体に記録させる。
さらに、ストリームバッファ1414は、例えばコネクティビティ1321やブロードバンドモデム1333等(いずれも図28)を介して取得したトランスポートストリームをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
また、ストリームバッファ1414は、例えばコネクティビティ1321(図28)等において各種記録媒体から読み出されたファイルデータをバッファリングし、所定のタイミングにおいて、若しくは外部からの要求等に基づいて、逆多重化部(DMUX)1413に供給する。
次に、このような構成のビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321(図28)等からビデオプロセッサ1332に入力されたビデオ信号は、ビデオ入力処理部1401において4:2:2Y/Cb/Cr方式等の所定の方式のデジタル画像データに変換され、フレームメモリ1405に順次書き込まれる。このデジタル画像データは、第1画像拡大縮小部1402または第2画像拡大縮小部1403に読み出されて、4:2:0Y/Cb/Cr方式等の所定の方式へのフォーマット変換および拡大縮小処理が行われ、再びフレームメモリ1405に書き込まれる。この画像データは、エンコード・デコードエンジン1407によって符号化され、ビデオストリームとしてビデオESバッファ1408Aに書き込まれる。
また、コネクティビティ1321(図28)等からビデオプロセッサ1332に入力されたオーディオ信号は、オーディオエンコーダ1410によって符号化され、オーディオストリームとして、オーディオESバッファ1409Aに書き込まれる。
ビデオESバッファ1408Aのビデオストリームと、オーディオESバッファ1409Aのオーディオストリームは、多重化部(MUX)1412に読み出されて多重化され、トランスポートストリーム若しくはファイルデータ等に変換される。多重化部(MUX)1412により生成されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等を介して外部ネットワークに出力される。また、多重化部(MUX)1412により生成されたファイルデータは、ストリームバッファ1414にバッファされた後、例えばコネクティビティ1321(図28)等に出力され、各種記録媒体に記録される。
また、例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等を介して外部ネットワークからビデオプロセッサ1332に入力されたトランスポートストリームは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。また、例えばコネクティビティ1321(図28)等において各種記録媒体から読み出され、ビデオプロセッサ1332に入力されたファイルデータは、ストリームバッファ1414にバッファされた後、逆多重化部(DMUX)1413により逆多重化される。つまり、ビデオプロセッサ1332に入力されたトランスポートストリームまたはファイルデータは、逆多重化部(DMUX)1413によりビデオストリームとオーディオストリームとに分離される。
オーディオストリームは、オーディオESバッファ1409Bを介してオーディオデコーダ1411に供給され、復号されてオーディオ信号が再生される。また、ビデオストリームは、ビデオESバッファ1408Bに書き込まれた後、エンコード・デコードエンジン1407により順次読み出されて復号されてフレームメモリ1405に書き込まれる。復号された画像データは、第2画像拡大縮小部1403によって拡大縮小処理されて、フレームメモリ1405に書き込まれる。そして、復号された画像データは、ビデオ出力処理部1404に読み出されて、4:2:2Y/Cb/Cr方式等の所定の方式にフォーマット変換され、さらにアナログ信号に変換されて、ビデオ信号が再生出力される。
このように構成されるビデオプロセッサ1332に本開示を適用する場合、エンコード・デコードエンジン1407に、上述した各実施形態に係る本開示を適用すればよい。つまり、例えば、エンコード・デコードエンジン1407が、第1実施の形態に係る符号化装置や復号装置の機能を有するようにすればよい。このようにすることにより、ビデオプロセッサ1332は、図1乃至図22を参照して上述した効果と同様の効果を得ることができる。
なお、エンコード・デコードエンジン1407において、本開示(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
(ビデオプロセッサの他の構成例)
図30は、本開示を適用したビデオプロセッサ1332(図28)の概略的な構成の他の例を示している。図30の例の場合、ビデオプロセッサ1332は、ビデオデータを所定の方式で符号化・復号する機能を有する。
より具体的には、図30に示されるように、ビデオプロセッサ1332は、制御部1511、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、および内部メモリ1515を有する。また、ビデオプロセッサ1332は、コーデックエンジン1516、メモリインタフェース1517、多重化・逆多重化部(MUX DMUX)1518、ネットワークインタフェース1519、およびビデオインタフェース1520を有する。
制御部1511は、ディスプレイインタフェース1512、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516等、ビデオプロセッサ1332内の各処理部の動作を制御する。
図30に示されるように、制御部1511は、例えば、メインCPU1531、サブCPU1532、およびシステムコントローラ1533を有する。メインCPU1531は、ビデオプロセッサ1332内の各処理部の動作を制御するためのプログラム等を実行する。メインCPU1531は、そのプログラム等に従って制御信号を生成し、各処理部に供給する(つまり、各処理部の動作を制御する)。サブCPU1532は、メインCPU1531の補助的な役割を果たす。例えば、サブCPU1532は、メインCPU1531が実行するプログラム等の子プロセスやサブルーチン等を実行する。システムコントローラ1533は、メインCPU1531およびサブCPU1532が実行するプログラムを指定する等、メインCPU1531およびサブCPU1532の動作を制御する。
ディスプレイインタフェース1512は、制御部1511の制御の下、画像データを例えばコネクティビティ1321(図28)等に出力する。例えば、ディスプレイインタフェース1512は、デジタルデータの画像データをアナログ信号に変換し、再生されたビデオ信号として、またはデジタルデータの画像データのまま、コネクティビティ1321(図28)のモニタ装置等に出力する。
ディスプレイエンジン1513は、制御部1511の制御の下、画像データに対して、その画像を表示させるモニタ装置等のハードウエアスペックに合わせるように、フォーマット変換、サイズ変換、色域変換等の各種変換処理を行う。
画像処理エンジン1514は、制御部1511の制御の下、画像データに対して、例えば画質改善のためのフィルタ処理等、所定の画像処理を施す。
内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516により共用される、ビデオプロセッサ1332の内部に設けられたメモリである。内部メモリ1515は、例えば、ディスプレイエンジン1513、画像処理エンジン1514、およびコーデックエンジン1516の間で行われるデータの授受に利用される。例えば、内部メモリ1515は、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516から供給されるデータを格納し、必要に応じて(例えば、要求に応じて)、そのデータを、ディスプレイエンジン1513、画像処理エンジン1514、またはコーデックエンジン1516に供給する。この内部メモリ1515は、どのような記憶デバイスにより実現するようにしてもよいが、一般的にブロック単位の画像データやパラメータ等といった小容量のデータの格納に利用することが多いので、例えばSRAM(Static Random Access Memory)のような比較的(例えば外部メモリ1312と比較して)小容量だが応答速度が高速な半導体メモリにより実現するのが望ましい。
コーデックエンジン1516は、画像データの符号化や復号に関する処理を行う。このコーデックエンジン1516が対応する符号化・復号の方式は任意であり、その数は1つであってもよいし、複数であってもよい。例えば、コーデックエンジン1516は、複数の符号化・復号方式のコーデック機能を備え、その中から選択されたもので画像データの符号化若しくは符号化データの復号を行うようにしてもよい。
図30に示される例において、コーデックエンジン1516は、コーデックに関する処理の機能ブロックとして、例えば、MPEG-2 Video1541、AVC/H.2641542、HEVC/H.2651543、HEVC/H.265(Scalable)1544、HEVC/H.265(Multi-view)1545、およびMPEG-DASH1551を有する。
MPEG-2 Video1541は、画像データをMPEG-2方式で符号化したり復号したりする機能ブロックである。AVC/H.2641542は、画像データをAVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.2651543は、画像データをHEVC方式で符号化したり復号したりする機能ブロックである。HEVC/H.265(Scalable)1544は、画像データをHEVC方式でスケーラブル符号化したりスケーラブル復号したりする機能ブロックである。HEVC/H.265(Multi-view)1545は、画像データをHEVC方式で多視点符号化したり多視点復号したりする機能ブロックである。
MPEG-DASH1551は、画像データをMPEG-DASH(MPEG-Dynamic Adaptive Streaming over HTTP)方式で送受信する機能ブロックである。MPEG-DASHは、HTTP(HyperText Transfer Protocol)を使ってビデオのストリーミングを行う技術であり、予め用意された解像度等が互いに異なる複数の符号化データの中から適切なものをセグメント単位で選択し伝送することを特徴の1つとする。MPEG-DASH1551は、規格に準拠するストリームの生成やそのストリームの伝送制御等を行い、画像データの符号化・復号については、上述したMPEG-2 Video1541乃至HEVC/H.265(Multi-view)1545を利用する。
メモリインタフェース1517は、外部メモリ1312用のインタフェースである。画像処理エンジン1514やコーデックエンジン1516から供給されるデータは、メモリインタフェース1517を介して外部メモリ1312に供給される。また、外部メモリ1312から読み出されたデータは、メモリインタフェース1517を介してビデオプロセッサ1332(画像処理エンジン1514若しくはコーデックエンジン1516)に供給される。
多重化・逆多重化部(MUX DMUX)1518は、符号化データのビットストリーム、画像データ、ビデオ信号等、画像に関する各種データの多重化や逆多重化を行う。この多重化・逆多重化の方法は任意である。例えば、多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、複数のデータを1つにまとめるだけでなく、所定のヘッダ情報等をそのデータに付加することもできる。また、逆多重化の際に、多重化・逆多重化部(MUX DMUX)1518は、1つのデータを複数に分割するだけでなく、分割した各データに所定のヘッダ情報等を付加することもできる。つまり、多重化・逆多重化部(MUX DMUX)1518は、多重化・逆多重化によりデータのフォーマットを変換することができる。例えば、多重化・逆多重化部(MUX DMUX)1518は、ビットストリームを多重化することにより、転送用のフォーマットのビットストリームであるトランスポートストリームや、記録用のファイルフォーマットのデータ(ファイルデータ)に変換することができる。もちろん、逆多重化によりその逆変換も可能である。
ネットワークインタフェース1519は、例えばブロードバンドモデム1333やコネクティビティ1321(いずれも図28)等向けのインタフェースである。ビデオインタフェース1520は、例えばコネクティビティ1321やカメラ1322(いずれも図28)等向けのインタフェースである。
次に、このようなビデオプロセッサ1332の動作の例について説明する。例えば、コネクティビティ1321やブロードバンドモデム1333(いずれも図28)等を介して外部ネットワークからトランスポートストリームを受信すると、そのトランスポートストリームは、ネットワークインタフェース1519を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、例えば、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図28)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてファイルデータに変換され、ビデオインタフェース1520を介して例えばコネクティビティ1321(図28)等に出力され、各種記録媒体に記録される。
さらに、例えば、コネクティビティ1321(図28)等により図示せぬ記録媒体から読み出された、画像データが符号化された符号化データのファイルデータは、ビデオインタフェース1520を介して多重化・逆多重化部(MUX DMUX)1518に供給されて逆多重化され、コーデックエンジン1516により復号される。コーデックエンジン1516の復号により得られた画像データは、画像処理エンジン1514により所定の画像処理が施され、ディスプレイエンジン1513により所定の変換が行われ、ディスプレイインタフェース1512を介して例えばコネクティビティ1321(図28)等に供給され、その画像がモニタに表示される。また、例えば、コーデックエンジン1516の復号により得られた画像データは、コーデックエンジン1516により再符号化され、多重化・逆多重化部(MUX DMUX)1518により多重化されてトランスポートストリームに変換され、ネットワークインタフェース1519を介して例えばコネクティビティ1321やブロードバンドモデム1333(いずれも図28)等に供給され図示せぬ他の装置に伝送される。
なお、ビデオプロセッサ1332内の各処理部の間での画像データやその他のデータの授受は、例えば、内部メモリ1515や外部メモリ1312を利用して行われる。また、パワーマネージメントモジュール1313は、例えば制御部1511への電力供給を制御する。
このように構成されるビデオプロセッサ1332に本開示を適用する場合、コーデックエンジン1516に、上述した各実施形態に係る本開示を適用すればよい。つまり、例えば、コーデックエンジン1516が、第1実施の形態に係る符号化装置や復号装置を実現する機能ブロックを有するようにすればよい。さらに、例えば、コーデックエンジン1516が、このようにすることにより、ビデオプロセッサ1332は、図1乃至図25を参照して上述した効果と同様の効果を得ることができる。
なお、コーデックエンジン1516において、本開示(すなわち、上述した各実施形態に係る画像符号化装置や画像復号装置の機能)は、論理回路等のハードウエアにより実現するようにしてもよいし、組み込みプログラム等のソフトウエアにより実現するようにしてもよいし、それらの両方により実現するようにしてもよい。
以上にビデオプロセッサ1332の構成を2例示したが、ビデオプロセッサ1332の構成は任意であり、上述した2例以外のものであってもよい。また、このビデオプロセッサ1332は、1つの半導体チップとして構成されるようにしてもよいが、複数の半導体チップとして構成されるようにしてもよい。例えば、複数の半導体を積層する3次元積層LSIとしてもよい。また、複数のLSIにより実現されるようにしてもよい。
(装置への適用例)
ビデオセット1300は、画像データを処理する各種装置に組み込むことができる。例えば、ビデオセット1300は、テレビジョン装置900(図24)、携帯電話機920(図25)、記録再生装置940(図26)、撮像装置960(図27)等に組み込むことができる。ビデオセット1300を組み込むことにより、その装置は、図1乃至図22を参照して上述した効果と同様の効果を得ることができる。
なお、上述したビデオセット1300の各構成の一部であっても、ビデオプロセッサ1332を含むものであれば、本開示を適用した構成として実施することができる。例えば、ビデオプロセッサ1332のみを本開示を適用したビデオプロセッサとして実施することができる。また、例えば、上述したように点線1341により示されるプロセッサやビデオモジュール1311等を本開示を適用したプロセッサやモジュール等として実施することができる。さらに、例えば、ビデオモジュール1311、外部メモリ1312、パワーマネージメントモジュール1313、およびフロントエンドモジュール1314を組み合わせ、本開示を適用したビデオユニット1361として実施することもできる。いずれの構成の場合であっても、図1乃至図22を参照して上述した効果と同様の効果を得ることができる。
つまり、ビデオプロセッサ1332を含むものであればどのような構成であっても、ビデオセット1300の場合と同様に、画像データを処理する各種装置に組み込むことができる。例えば、ビデオプロセッサ1332、点線1341により示されるプロセッサ、ビデオモジュール1311、または、ビデオユニット1361を、テレビジョン装置900(図24)、携帯電話機920(図25)、記録再生装置940(図26)、撮像装置960(図27)等に組み込むことができる。そして、本開示を適用したいずれかの構成を組み込むことにより、その装置は、ビデオセット1300の場合と同様に、図1乃至図22を参照して上述した効果と同様の効果を得ることができる。
また、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、本開示は、HEVC方式以外の符号化方式の符号化装置や復号装置にも適用することができる。
また、本開示は、符号化ストリームを、衛星放送、ケーブルTV、インターネット、携帯電話などのネットワークメディアを介して受信する際、または光、磁気ディスク、フラッシュメモリのような記憶メディア上で処理する際に用いられる符号化装置や復号装置に適用することができる。
さらに、本開示は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 画像を符号化する際に用いる量子化パラメータに応じて選択対象となる予測モードの種類が制限された状態で、画像を符号化する際に用いる予測モードを設定する設定部と、
前記設定部により設定された予測モードに従って、前記画像を再帰的に分割された符号化ブロック毎に符号化する符号化部と
を備える画像符号化装置。
(2) 前記設定部は、量子化パラメータのレンジ毎に、選択対象となる予測モードが制限された状態で、画像を符号化する際に用いる予測モードを設定する
前記(1)に記載の画像符号化装置。
(3) 前記設定部は、量子化パラメータが閾値より小さい値である場合、ブロックサイズが小さい予測モードが選択対象とされ、ブロックサイズが大きい予測モードが非選択対象とされた状態で、画像を符号化する際に用いる予測モードを設定する
前記(1)または(2)に記載の画像符号化装置。
(4) 前記設定部は、量子化パラメータが閾値以上の値である場合、ブロックサイズが大きい予測モードが選択対象とされ、ブロックサイズが小さい予測モードが非選択対象とされた状態で、画像を符号化する際に用いる予測モードを設定する
前記(1)乃至(3)のいずれかに記載の画像符号化装置。
(5) 前記設定部は、非対称動き分割の予測モードが非選択対象とされた状態で、画像を符号化する際に用いる予測モードを設定する
前記(1)乃至(4)のいずれかに記載の画像符号化装置。
(6) 前記設定部は、
ブロックサイズが所定の大きさ以上の予測モードが非選択対象とされた状態で、画像を符号化する際に用いる予測モードを設定する
前記(1)乃至(5)のいずれかに記載の画像符号化装置。
(7) 前記設定部は、前記画像の統計情報に応じて、前記量子化パラメータと選択対象となる予測モードとの対応関係を変更する
前記(1)乃至(6)のいずれかに記載の画像符号化装置。
(8) 前記設定部は、符号化ブロックを再帰的分割する際の起点となるCTB(Coding Tree Block)毎に、前記量子化パラメータと選択対象となる予測モードとの対応関係を変更する
前記(7)に記載の画像符号化装置。
(9) 前記画像の統計情報は、前記画像の分散情報または動き情報である
前記(7)または(8)に記載の画像符号化装置。
(10) 前記設定部は、アプリケーションに応じて、前記量子化パラメータと選択対象となる予測モードとの対応関係を変更する
前記(7)乃至(9)のいずれかに記載の画像符号化装置。
(11) 前記設定部は、前記アプリケーションに応じて、選択対象となる予測モードの数を変更する
前記(10)に記載の画像符号化装置。
(12) 前記設定部は、前記アプリケーションに応じて、選択対象となる予測モードの種類を変更する
前記(10)または(11)に記載の画像符号化装置。
(13) 前記量子化パラメータと選択対象となる予測モードとの対応関係をテーブル形式で記憶するメモリを
さらに備え、
前記設定部は、前記メモリに記憶されたテーブルを用いて、予測モードを設定する
前記(1)乃至(12)のいずれかに記載の画像符号化装置。
(14) 前記設定部により設定された予測モードに応じて、制限する予測モードのパターンを学習する学習部を
さらに備え、
前記設定部は、前記学習部により学習されたパターンに従って、予測モードを設定する
前記(1)乃至(13)のいずれかに記載の画像符号化装置。
(15) 前記学習部は、前記画像の種類または前記画像の統計情報に応じて、制限する予測モードのパターンを学習する
前記(14)に記載の画像符号化装置。
(16) 画像符号化装置が、
画像を符号化する際に用いる量子化パラメータに応じて選択対象となる予測モードの種類が制限された状態で、画像を符号化する際に用いる予測モードを設定し、
設定された予測モードに従って、前記画像を再帰的に分割された符号化ブロック毎に符号化する
画像符号化方法。